指令是程序的单位,程序是由若干条指令按照一定的逻辑顺序组合成一个整体,来完成某种需要的功能。一般情况下,一条指令包含操作码和操作数两部分。操作码(即指令名称)用来表明指令的功能;操作数则是指令的操作对象。CPU执行指令时,如何获得操作对象,即如何获得操作数的方式,即为寻址方式。
S7-300/400 PLC有4种寻址方式:立即寻址、直接寻址、存储器间接寻址和寄存器间接寻址。
1.立即寻址
立即寻址的特点是操作数直接出现在指令中,或者当操作数是唯一时,指令中不写出操作数。对常数或常量采取立即寻址,如:
2.直接寻址
直接寻址就是通过在指令中直接给出操作数所在存储单元的地址(绝对地址或符号地址)来获得操作数,如:
3.存储器间接寻址
存储器间接寻址的特点是用地址指针进行寻址。所谓地址指针是一个存储单元,但该存储单元里面存储的不是操作数,而是操作数所在单元的地址。地址指针需要写在方括号“[]”内,用于区别一般的地址标示符,如[MW0]就表示MW0是地址指针。根据需要描述的地址的复杂程度,地址指针可以是字或双字。对于地址范围小于65535(即16位二进制数的最大值)的存储器(如T、C、DB、FC、FB等),可以使用字指针,字指针格式如图6-7所示。对于其他存储器(如I、Q、M等)则要使用双字指针,双字指针格式如图6-8所示。
图6-7 字指针格式
图6-8 双字指针格式
图6-7中,位0~位15用来存储T、C、DB、FB、FC的编号。
字指针格式寻址示例如下:
图6-8中,位3~位18是被寻址字节的字节编号(范围0~65535);位0~位2是被寻址字节的位编号(范围0~7)。(www.xing528.com)
存储器间接寻址示例如下:
4.寄存器间接寻址
寄存器间接寻址就是通过地址寄存器进行寻址。S7 PLC中有2个地址寄存器AR1和AR2。地址寄存器的内容加上偏移量形成地址指针,该地址指针指向操作数所在的存储单元。地址寄存器及偏移量必须写在方括号“[]”内。
寄存器间接寻址有两种方式:区域内寄存器间接寻址和区域间寄存器间接寻址。寄存器间接寻址的指针格式如图6-9所示。
图6-9 寄存器间接寻址的指针格式
图6-9中,位31=0表示区域内寄存器间接寻址,位31=1表示区域间寄存器间接寻址;位24~位26(rrr)是区域标识(见表6-4);位3~位18(bb……b)是被寻址字节的字节编号(范围0~65535)。
表6-4 区域间寄存器间接寻址的区域标识位的含义
(1)区域内寄存器间接寻址。
当位31=0时,表示区域内寄存器间接寻址,此时位24~位26也为0,存储区域的类型要在指令中给出,例如:
(2)区域间寄存器间接寻址。
当位31=1时,表示区域间寄存器间接寻址,此时存储区域由位24~位26决定(见表6-4),通过改变位24~位26的数值实现跨区寻址,例如:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。