plC间接指令怎么使用?
先定义一个指向访问存储区第一个地址的指针,然后根据第一个地址加上一个偏移量,即基址索引,比如:
LP#6.0
LAR1
上午[AR1,第1.2页]
Q[AR1,第0.2页]
LM[AR1,第14.0页]
什么是PLC直接寻址和间接寻址?
直接寻址:操作数存储在数据的地址。基本逻辑指令都是直接寻址的。你说的间接寻址应该是索引寻址吧?指针:指针其实就是程序转移时被转移入口地址的标签,一个是P标签,用于跳转和子程序调用,一个是I标签,叫做中断指针。专用于中断服务子程序的入口地址。
plc字节位寻址方式有啥?
西门子PLC有两种寻址,直接寻址和间接寻址。间接寻址就是所谓的指针寻址。有四种情况,即存储器间接寻址、寄存器间接寻址、任意指针间接寻址和p指针间接寻址。因此可以认为PLC有五种寻址直接寻址、存储器间接寻址(指针寻址)、寄存器间接寻址(指针寻址)、任意指针间接寻址和p指针间接寻址。
存储器间接寻址:
16位指针,只表示存储地址的起始字节(0-16位)。
32位指针,表示存储地址的起始字节(3-18位)和位地址(0-2位),19-31位未定义。
寄存器间接寻址(AR1,AR2):
寄存器间接寻址的区域中的32位指针与存储器中32位指针的定义完全相同。
寄存器间接寻址的区域穿越32位指针,第31位1和第26位2524位组合为地址标识符,其余位与存储器中32位指针的定义一致。
所以判断是内部还是交叉指针,看第31位,0内部,1交叉,内部pangt262524位没有意义,交叉262524位有意义。
P#指针
最高字节的0-18位符合32位内存指针的定义,23-19位为0,31-24位为数据区,最低2位为DB块号或0。
任何指针
最高字的6个字节与P#指针的定义一致,接下来的N-7n-8个字节代表数据长度,N-9个字节代表数据类型,N-10个字节(最低字节)为10H(属于保留字节)。
注意:
内存间接寻址和寄存器间接寻址也是一种指针寻址,但通常很少有人直接明确地提到指针寻址,导致人们误以为指针寻址只有ANY指针和P指针。
这里只讨论四种指针寻址。