这是一个通讯块里的程序,
LP##Send_PZD1通信本地数据第一个地址,DB21.DBW44.0
SRD3
T#Addr_PZD_Block存放地址(整型)
请问#Addr_PZD_Block存放的是44吗?还是其他呢?还有装载指针后,ACCU1里内容是什么?谢谢!
最佳答案
1、首先要熟悉指针格式:
、指针AR格式:
10000YYY00000BBBBBBBBBBBBBBBBXXX
这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。bit24-26的取值确定了要寻址的区域,它的取值是这样定义的: DB(数据块)为 100 。
其中XXX(指定bit位)表示:指定bit位。3-18bit指定byte字节。
例如:当AR=840000D4(hex)=10000100000000000000000101100000(b),实际上就是等于DBX44.0。
2、程序:
LP##Send_PZD1//.DBW44.0装入ACC1
SRD3//将ACC1右移3位。
T#Addr_PZD_Block存放地址(整型)
如果ACC1为10000100000000000000000101100000(b),
ACC1右移3位后为00010000100000000000000000101100(b)。
如果变量#Addr_PZD_Block为整型(16位),T#Addr_PZD_Block指令将ACC1的低16位装入变量#Addr_PZD_Block中,此时其为0000000000101100(b),即十进制的44。
ACC1右移3位后为00010000100000000000000000101100(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=
提问者对于答案的评价:
谢谢阿鸣大师!