指针在接口中的用法
指针在西门子的PLC中有很重要的地位,本文就部分用法进行记录
指针的大致分类
16位指针
- 16位的指针主要用于定时器、计数器、程序块的寻址。
- 例如,可以将一个数字1放入MW0里面,那么T[MW0]即是表示T1,而C[MW0]即是表示C1,FB[MW0]即是表示FB1,FC[MW0]即使FC1,DB[MW0]即使DB1。
- 此十六位的指针会根据MW0的值不同,而改变寻址的定时器、计数器、程序块的不同。
32位指针
- 32位的指针主要用于I、Q、M、L、DB块等寄存器中的位,字节,字和双字等的寻址。
- 一般的将其放在MD或者是LD里面。
- 在32位指针中,第3位到第18位为需要操作的数据的字节部分的数值
- 在32位指针中,第0位到第2位为需要操作的数据的位的部分的数值
- 在32位指针中,第19位到31位为保留位
- 当对某个数据以字节、字、双字等进行操作寻址时,指针的
第0位到第3位必须要为0
,这是语法规定- 例如,如果将P#1.0放入MD10中,那么对M1.0操作为M[MD10],对MB1操作为MB[MD10],对MW1操作为MW[MD10],对MD1操作为MD[MD10]。而对DB块中进行寻址,就需要用到指令
OPN DB1
L DBB[MD10]
T MB20
该指令即是把DB1.DBB1中的值送入到MD20中。
地址寄存器寻址
地址寄存器寻址分为内部地址寻址和交叉地址寻址
内部地址寻址
- 内部地址寻址部分,基本上可以将地址寄存器相当于是32位的指针寻址
- 内部地址寄存器的寻址规则:
- 语法定义:地址标识符[AR1,地址偏移量]
- 例如,