西门子间接寻址的问题
首先:
1,请详细解释一下下面这段每一句语言。
2,L P#=1.0 #RBtNo_A=2;#ZoneNo=1;DB_No=350.
我试着理解一下你们看哪里不对。接口(#RBtNo_A-1=1)*84此时寄存器中的值等于84,84(10进制)=01010100(2进制)后左移3位,变成00001010 100后整数位1010=10,小数位100=4.所以84左移3位后是10.4,对吗?
10.4加上#ZoneNo=1,所以LAR1中的数据是的11.4,对吗?
3.DBX[AR1,P#27.7]中是AR1中的数据加上27.7是最后的DBX的地址吗?
图片说明:
《S7-200 SMART 间接寻址》
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/070.ht
理解有误。
下次贴代码,不要贴成图,这样解释时大家就不用输代码了
L #RBtNo_A //装入整数 RBtNo_A,就如你说的 2
L 1
-I // RBtNo_A-1 =1
L 84
*D //84*1=84
SLD 3 //84左移3位,是为了形成一个32位的指针 P#84.0
L #ZoneNo //这个值你没有说清楚,如果取值确如你图中的 1
+D //相加后则是 P#84.1
LAR1 //此时 AR1中是 P#84.1
OPN DB[#DB_No] //打开数据块 DB350
A DBX[AR1,P#27.7] // P#84.1+P#27.7=P#112.0,此时寻址的是 DB350.DBX112.0
= #Req."01" //相当于 DB350.DBX112.0 驱动 #Req."01 的线圈。
后面就不多说了。
S7-300和S7-400寻址
https://support.industry.siemens.com/cs/document/79632832