西门子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,否则将会出错。