西门子plc 如何做间接寻址

西门子plc间接寻址方法,本文提到的主要是西门子s7-300plc.
1.区域内间接寻址
指针的高位(第31位)x为0时为区域内的间接寻址,此时区域标示号rrr也为0,地址指针的格式与存储器间接寻址的相同。下面是区域内间接寻址的例子:
l      p#5.0                           //将间接寻址的指针装入累加器1
lar1                                    //将累加器1的内容送ar1
a      m[ar1, p#2.3]                  //ar1中的p#5.0加偏移量p#2.3,对m7.3进行操作
=      q[ar1, p#0.2]                   //逻辑运算的结果送q5.2,p#5.0+p#0.2=p#5.2
l      mw[ar1, p#19.0]                //将mw24装入累加器1
方括号内为操作数的地址,它等于ar1中的地址值p#5.0加上逗号后面的地址偏移量,例如第3条指令中操作数的地址为p#5.0+p#2.3=p#7.3,即操作数为m7.3。
2.区域之间的间接寻址
指针的高位(第31位)x = 1时为区域间的间接寻址,下面是区域间的间接寻址的例子:
l      p#m 6.0                     //将m6.0的双字地址装入累加器1
lar1                                //将累加器1的内容送到ar1
l      w [ar1,p#20.0]             //将mw26的内容传送到累加器1
p#m6.0对应的二进制数为2#1000 0011 0000 0000 0000 0000 0011 0000。因为地址指针p#m6.0已经包含有区域信息(rrr=2#011表示m区),第3条指令“l  w[ar1, p#50.0]”没有必要再使用地址标识符m。
用地址指针读写字、字节或双字时,指针中小数点右边的位编号必须为0,否则将会出错。