图片是监控的一段STL程序,如下:
OPN DI 125 //打开DB125
LAR2 P#DIX1220.0 //把DB125.DBX1220.0的指针加载到AR2中
+AR2 //手册上说,将ACCU1中的内容加到AR2中,结果写入AR2. 可是这里ACCU1的值是2.
我理解的是P#1220.0,然后偏置P#2.0, 结果应该是P#1222.0
但是,实际监测AR2的指针地址是P#1220.2 请大神求解,+AR2是如何偏置地址的?
图片说明:
最佳答案
1、主要原因是不了解AR的数据格式。
首先了解AR的数据格式:
0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
其中0-2bit指定bit位;3-18bit指定byte字节。
例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),0-2bit为4,3-18bit为26,实际上就是等于26.4。
2、AR2的指针地址是P#1220.0 ,1220即为十六进制的4C4,那么 在AR2中的3-18bit为4C4,注意而不是0-18bit!3-18bit为4C4即为:
AR==0000 0000 0000 0000 0010 0110 0010 0000(b),按照上述的AR的数据格式的规定,实际上就是等于1220.0。
3、实际监测AR2的指针地址是P#1220.2 ,+AR2是如何偏置地址的?
AR==0000 0000 0000 0000 0010 0110 0010 0000(b),等于1220.0,注意0-2bit是为0的,3-18bit为4C4即1220。
加上2后为:
AR==0000 0000 0000 0000 0010 0110 0010 0010(b),加上2后,注意0-2bit是为2了!所以,你实际监测AR2的指针地址是P#1220.2 了。
4、建议看看:
、《关于S7-300和S7-400指针寻址的说明与例程(更新版) 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
、《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/plc290793.html