LP##DeviceData
LAR1
LW[AR1,P#4.0]//DBnr
T#DB_DeviceData
ASs='html_titleimg_p' STyle='text-align:center;'>
LD[AR1,P#6.0]//StaRTbytepointer
LDW#16#7FFFFF//maskAdress
AD
T#StartbyteDeviceData
最佳答案
1、要想读懂这段程序必须了解ANY数据类型的格式,例如,如果以字节4指定DB编号,也必须以字节6明确地指定存储器区。
先看看:
《S7-300/400PLCANY指针使用详解》连接:
htTP://blog.sina.com.cn/s/blog_669692a601019hvt.html
2、程序分析:
LP##DeviceData
LAR1//区设备数据地址装入地址指针AR1中。
LW[AR1,P#4.0]//DBnr,字节4指定DB编号。
T#DB_DeviceData//DB编号存入#DB_DeviceData中
LD[AR1,P#6.0]//Startbytepointer,字节6、7、8、9分别指定存储器区、字节、位地址。
LDW#16#7FFFFF//maskAdress
AD//与常数#16#7FFFFF相与屏蔽最高位,其第31bit固定为0,形成32位指针。
T#StartbyteDeviceData//存入#StartbyteDeviceData
3、32位指针格式:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
AR:
0000000000000BBBBBBBBBBBBBBBBXXX
这样规定,就意味着AR的取值只能是:0.0——65535.7
例如:当AR=D4(hex)=00000000000000000000000011010100(b),实际上就是等于26.4。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。