请教大家个指针寻址的问题?

这是一个 通讯块里的程序,
      L     P##Send_PZD1    通信本地数据第一个地址,DB21.DBW44.0
      SRD   3
      T     #Addr_PZD_Block     存放地址(整型)
请问#Addr_PZD_Block 存放的是44吗?还是其他呢?还有装载指针后,ACCU1里内容是什么?谢谢!

最佳答案

1、首先要熟悉指针格式:
、指针AR格式: 
 1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX 
这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。bit24-26的取值确定了要寻址的区域,它的取值是这样定义的:  DB(数据块)为 100 。
其中XXX(指定bit位)表示:指定bit位。3-18bit指定byte字节。
 例如:当AR=840000D4(hex)=1000 0100 0000 0000 0000 0001 0110 0000(b),实际上就是等于DBX44.0。 
2、程序:
 L     P##Send_PZD1   // .DBW44.0装入ACC1
 SRD   3//将ACC1右移3位。
  T     #Addr_PZD_Block     存放地址(整型)
如果ACC1为1000 0100 0000 0000 0000 0001 0110 0000(b),
ACC1右移3位后为0001 0000 1000 0000 0000 0000 0010 1100(b)。
如果变量 #Addr_PZD_Block为整型(16位),T     #Addr_PZD_Block  指令将ACC1的低16位装入变量 #Addr_PZD_Block中,此时其为0000 0000 0010 1100(b),即十进制的44。
ACC1右移3位后为0001 0000 1000 0000 0000 0000 0010 1100(b)。
2、如果进一步要熟悉指针寻址见:
、《step7编程之地址概念详解》连接:
http://wenku.baidu.com/view/b2b4d3375a8102d276a22fd3.html

http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=

提问者对于答案的评价:
谢谢阿鸣大师!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc126101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月28日 上午1:35
下一篇 2017年5月28日 上午1:35

相关推荐