西门子PLC模块总代理---中国授权一级代理商

   2024-07-18 41

图片

图片

any数据类型共10个字节,数据格式如下

Byte 0:固定10h 表示S7

Byte 1:表示数据类型

图片

Byte 2,3  /Word2:表示传送的数据长度,重复因子

Byte 4,5/Word3:表示DB块号或者为0

Byte 6:表示存储区域

图片

ANY类型占10字节

比如P#DB1.Dbx0.0 Byte 10

BYTE 0  对于S7PLC 固定是16进制10

BYTE 1  对应 数据类型,2代表是BYTE。

BYTE2到3 是重复系数,相当于P#DB1.DBX0.0 BYTE 10的数字10.

BYTE 4到5 是DB号,如果 为0,则是非DB区。

BYTE 6到9 是32位指针,即相当于P#DB1.DBX0.0 BYTE 10中的指针地址 DBX0.0 即DW#16#84000000

这个程序执行后结果为:

 . 首址为uelle:

 . 地址Zeiger_单元中:存入了W#16#1002 ,即常数W#16#1002;

 . 地址Zeiger_单元中:存入了SOURCE_DBNR,即数据块号 DB25

 . 地址Zeiger_单元中:存入了由#Ziel_Anfang(DB块内的起始地址)左移3位并或#16#84000000运算结果。
该结果即形成的 一DB数据块某位的指针,即例如DBX96.0的指针;

 .  地址Zeiger_单元中:存入了#Laenge,即长度。

 说明:

 SLD  3 //因为L     # 是字节偏移量,如果不左移,则对齐了指针的后三位是xxx 小数位

 OD  DW#16#8400000

 上述两指令的用途:

 地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。

   当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:

   其0-2bit,指定bit位,3-18bit指定byte字节。
其第31bit固定为0。

   AR:0 0BBB BBBB BBBB BBBB BXXX

   这样规定,就意味着AR的取值只能是:0.0 ——65535.7

   例如:当AR=D4(hex)=0 0 (b),实际上就是等于26.4。

   而在区域间寄存器间接寻址中,由于要寻址的区域也要在AR中指定,显然这时的AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或者说规定不同。

   AR:1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX

   比较一下两种格式的不同,我们发现,这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。
聪明的你,肯定可以联想到,这是用于指定存储区域的。
对,bit24-26的取值确定了要寻址的区域,它的取值是这样定义的:

   区域标识符 

   26、25、24位 

   P(外部输入输出) 

   000 

   I(输入映像区) 

   001 

   Q(输出映像区) 

   010 

   M(位存储区) 

   011 

   DB(数据块) 

   100 

   DI(背景数据块) 

   101 

   L(暂存数据区,也叫局域数据) 

   111 

   如果我们把这样的AR内容,用HEX表示的话,那么就有:

   当是对P区域寻址时,AR=800*xx

 当是对I区域寻址时,AR=810*xx

   当是对Q区域寻址时,AR=820*xx

   当是对M区域寻址时,AR=830*xx

   当是对DB区域寻址时,AR=840*xx

   当是对DI区域寻址时,AR=850*xx

   当是对L区域寻址时,AR=870*xx

  经过列举,我们有了初步的结论:如果AR中的内容是8开头,那么就一定是区域间寻址;如果要在DB区中进行寻址,只需在8后面跟上一个40。
FFFFF指明了要寻址的范围是:

   DB区的0.0——65535.7。

   例如:当AR=840000D4(hex)=1000 0100 0 0000 (b),实际上就是等于DBX26.4

图片

图片

核心提示:华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理
 
反对 0举报 0 收藏 0 打赏 0
 
同类新闻
  • 联系人:董海波
  • 电话:13510737515
  • 地址:惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
  • 邮件:857835895@qq.com
  • 手机:13185520415
我们的产品