6.5 逻辑运算指令
逻辑运算是对无符号数按位进行“与”、“或”、“异或”和取反等操作。操作数的长度有B、W和DW。
6.5.1 逻辑取反指令
逻辑取反(logic invert)指令INV的功能是,将输入IN中的字节、字或双字按位取反,将结果放入OUT指定的存储单元。取反指令格式及操作数如表6-15所示。
表6-15 取反指令格式及操作数
图6-15所示的为取反指令的例子。
图6-15 取反指令举例
图6-15所示梯形图程序可完成字取反的操作,如果AC0中开始的数据为1101 0111 1001 0101,执行完字取反指令INVW后,AC0中的数据则为0010 1000 0110 1010。
6.5.2 逻辑“与”、“或”和“异或”指令
(1)逻辑“与”(logic and)指令WAND的功能是将两个输入IN1,IN2按位相“与”,得到的逻辑运算结果放入OUT指定的存储单元中。
(2)逻辑“或”(logic or)指令WOR的功能是将两个输入IN1,IN2按位相“或”,得到的逻辑运算结果放入OUT指定的存储单元中。
(3)逻辑“异或”(logic exclusive or)指令WXOR的功能是将两个输入IN1,IN2按位相“异或”,得到的逻辑运算结果,放入OUT指定的存储单元中。
上面三条逻辑运算指令的I/O数据类型均为字节、字或双字,运算结果影响零标志SM1.0。其逻辑运算指令格式及操作数如表6-16所示。
表6-16 逻辑“与”、“或”和“异或”运算指令格式及操作数
在梯形图中的指令对IN1和IN2进行逻辑运算,语句表中的指令对IN2和OUT进行逻辑运算,运算结果存放在OUT中。
若在梯形图指令中,IN2(或IN1)和OUT所指定的存储单元不同,则在语句表指令中需使用数据传送指令,将其中一个输入端的数据先送入OUT,再进行逻辑运算。
如图6-16所示的为逻辑运算指令编程举例。
在梯形图中,逻辑或操作的IN和OUT所指定的存储单元不同,则在语句表中先要使用MOV VW100,VW300指令将VW100的数据送到OUT所指定的存储单元VW300,再进行逻辑字“或”操作。如果OUT为VW100或VW200,则不用MOV指令。
图6-16 逻辑运算指令举例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。