立即寻址是对操作数是常数或常量的寻址方式,其特点是操作数值直接表示在指令中,出现在指令中的操作数称为立即数。有些指令的操作数是一的,为简化起见,并不在指令中写出。 立即寻址方式可用来提供常数、设置初值等。常数值可分为字节、字、双字型等数据。CPU以二进制方式存储所有常数。在指令中可用十进制、十六进制、ASCII码或浮点数形式来表示操作数。 立即寻址示例: SET 说明:把RLO置1 OW W#16#320 将常量W#16#320与ACCU1“或”运算 L 1352 把整数1352装入ACCU1 L‘ABCD’ 把ASCII码字符ABCD装入ACCU1 L C#100 把BCD码常数100(计数值)装入ACCU1 AW W#16#3A12 常数W316#3 A12与ACCU1的低位相“与”,运算结果在ACCU1的低字中。 存储器直接寻址包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址,包括寄存器或存储器的区域、长度和位置,根据这个地址就可以立即找到该数据。例如,用MW200*位存储区中的字,地址为200;MB100表示以字节方式存取,MW100表示存取MB100、MB101组成的字,MD100表示存取MB100~ MB103组成的双字。在指令中,数据类型应与指令标识符相匹配。 直接寻址编程示例: A IO.0 说明:对输入位10.0进行“与”逻辑操作 S L20.0 把本地数据位I20.0置“l” = M115.4 使存储区位M115.4的内容等于RLO的内容 L IB10 把输入字节IB10的内容装入ACCU1 T DBD12 把ACCU1中的内容传送给数据双字DBD12中。 存储器间接寻址简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“[]”内。地址指针可以是字或双字。对于地址范围小于65 535(即16位二进制数所表示的较大值)的存储器(如T、C、DB、FB、FC等)可以用字指针,其指针格式如图所示。对于其他存储器(如I、Q、M等)则要使用双字指针。如果要用双字指针访问字节、字或双字存储器,必须保证指针的位编号为0,只有双字MD、LD、DBD和DID能作双字地址指针,存储器间接寻址的双字指针的格式如图所示,位0~2(XXX)为被寻址位的位编号(范围0~7),位3—l8为被寻址字节的字节编号(范围0~65 535)。
图 存储器间接寻址的字指针格式
图 存储器间接寻址的双字指针格式 存储器间接寻址的单字格式的指针寻址示例: L2 说明:将数字2#0000_0000_0000_0010装入累加器1 T MW50 将累加器l低字中的内容传给MW50作为指针值 OPN DB35 打开共享数据块DB35 L DBW[MW50] 将共享数据块DBW2的内容装入累加器1 存储器间接寻址的双字格式的指针寻址示例:
上面程序中Q[MD2]中的MD2称为地址指针,其里面的数值代表地址。 使用存储器间接寻址,该存储器的值是操作数的地址,因此改变了存储器的值就相当于改变了操作数的地址,在循环程序中经常使用存储器间接寻址。 寄存器间接寻址简称寄存器寻址。在S7中有两个地址寄存器,分别是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。地址寄存器及偏移量必须写在方括号“[]”内。寄存器间接寻址的语句不改变地址寄存器中的数值。用寄存器指针访问一个字节、字或双字时,必须保证地址指针中位地址编号为0。 地址寄存器的地址指针有两种格式,其长度均为双字,指针格式如图所示。
图 存储器间接寻址的指针格式 在STEP 7中,操作数有两种表示方法:物理地址(**地址)表示法和符号地址表示法。①物理地址(**地址)表示法。用物理地址表示操作数时,要明确指出操作数所在的存储区、该操作数的位数和具体位置,如Q4.0是用物理地址表示的操作数。其中,Q表示这是一个在输出过程映像区中的输出位,具体位置是*4个字节的*0位。 ②符号地址表示法。STEP 7允许用符号地址表示操作数,如Q4.0可用符号名MOTOR_ON来替代表示。 符号名必须先定义后使用,而且符号名必须是一的,不能重名。定义符号时,需要指明操作存储区、操作数的位数、具体位置及数据类型。 采用符号地址表示法可使程序的可读性增强,并可降低编程时由于笔误造成的程序错误。 |
(1)指令说明
A(与)表示串联的常开触点,AN(与非)表示串联的常闭触点。使用“与”或“与非”指令可以检查被寻址位的信号状态是否为“1”或“0”,并将检查结果与逻辑运算结果( RLO)进行“与”运算。
(2)编程示例
A I1.0 说明:11.0为常开触点,其信号状态为“1”表示触点闭合(动作),为“0”表示触点打
开(不动作)
AN I1.0 11.0为常闭触点,其信号状态为“1”表示触点打开(动作),为“0”表示触点
闭合(不动作)
在有些plc中,对于与梯形图左母线相连接的开始触点,需采用装载指令LD、LDI作为开始。但是,在S7-300/400 PLC中,则是直接以逻辑运算指令代替装协指令,如图所示。
图 A(与)和AN(与非)指令编程示例