西门子PLC有两种寻址方式,直接寻址和间接寻址,间接寻址就是所谓的指针寻址,有4种情况,存储器间接寻址、寄存器间接寻址、any指针间接寻址、P指针间接寻址,所以可以认为PLC有5种寻址方式:直接寻址、存储器间接寻址(指针式寻址)、寄存器间接寻址(指针式寻址)、any指针间接寻址、P指针间接寻址。
存储器间接寻址:
16位指针,只是表示存储地址的起始字节(0-16位)
32位指针,表示存储地址的起始字节(3-18位)和位地址(0-2位),19-31位没有定义
寄存器间接寻址(AR1,AR2):
寄存器间接寻址的区域内32位指针,与存储器32位指针定义完全一致
寄存器间接寻址的区域交叉32位指针,第31位=1,第26 25 24位组合是地址标识符,其余位与存储器32位指针定义一致
所以,判断是内部还是交叉指针,看第31位,0内部,1交叉,内部 pan >26 25 24位没有意义,交叉26 25 24位有意义
P#指针
最高字节的0-18位与32位存储器指针定义一致,23-19位是0,31-24位是数据区,最低2个字节是DB块号或者是0
ANY指针
最高字6个字节与P#指针定义一致,接下来的第N-7 n-8两个字节表示数据长度,第N-9个字节表示数据类型,第N-10个字节(最低字节)为10H(属于保留字节)
注意:
存储器间接寻址、寄存器间接寻址也是一种指针寻址方式,但通常很少有人直接明确提到是指针式寻址,给人造成误解,认为指针寻址只有ANY指针和P指针
这里只讨论4种指针式寻址。