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

供应商
广东湘恒智能科技有限公司
认证
西门子PLC
西门子伺服电机
西门子触摸屏
西门子电缆
西门子变频器
西门子模块
联系电话
13510737515
手机号
13185520415
联系人
董海波
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
更新时间
2024-09-27 08:00

详细介绍

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:00000000 0000 0bbb bbbb bbbb bbbb bxxx

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

   例如:当ar=d4(hex)=0000 0000 0000 0000 0000 0000 11010100(b),实际上就是等于26.4。

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

   ar:10000yyy 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。84000000-840fffff指明了要寻址的范围是:

   db区的0.0——65535.7。

   例如:当ar=840000d4(hex)=1000 0100 0000 0000 0000 0000 11010100(b),实际上就是等于dbx26.4

华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理

展开全文

我们其他产品
我们的新闻
微信咨询 在线询价 拨打电话