[西门子] 西门子 200smart逻辑运算指令

[复制链接]
查看134 | 回复0 | 2024-7-10 19:48:35 | 显示全部楼层 |阅读模式
>



S7-200 SMART逻辑运算指令可以分为:取反指令、逻辑与、逻辑或和逻辑异或。

取反指令分为字节取反、字取反、双字取反。将输入端IN的二进制数逐位取反,并将结果送到输出端OUT中。
例如将VW0中的数据逻辑取反后送到VW2,执行逻辑取反指令后,每一位由0变为1、1变为0。例如1010 1010取反后变为0101 0101


逻辑与
逻辑与指令将输入端IN1、IN2两个操作数(字节、字、双字)的对应位执行“与”运算,并将结果送到输出端OUT中。


例如将VB0、VB1中的数据逻辑与后送到VB2中,执行逻辑与运算后,如果两个操作数的对应位都为1,则运算结果的对应位为1,否则为0。



VB0:0111 1010
VB1:1011 1100
逻辑与运算得到:
VB2:0011 1000









​  
逻辑或
逻辑或指令将输入端IN1、IN2两个操作数(字节、字、双字)的对应位执行“或”运算,将结果送到输出端OUT中。



例如将VB0、VB1中的数据逻辑或运算送到VB2中,执行逻辑或运算后,如果两个操作数的对应位都为0,则运算结果的对应位为0,否则为1(见1为1)。



VB0:0111 1010
VB1:1011 1100
逻辑或运算得到:
VB2:1111 1110







​  
逻辑异或
逻辑异或指令将输入端IN1、IN2两个操作数(字节、字、双字)的对应位执行“异或”运算,将结果送到输出端OUT中。


例如将VB0、VB1中的数据逻辑异或后送到VB2中,执行逻辑异或运算指令后,如果两个操作数的对应位不同,则运算结果的对应位为1,否则为0。



VB0:0111 1010
VB1:1011 1100
逻辑或运算得到:
VB2:1100 0110








编程注意


字节逻辑运算是对单字节数据进行逻辑操作,其操作数为8位无符号数。



字逻辑运算指令是对字数据进行逻辑操作,其操作数为16位无符号数。



双字逻辑运算指令是对双字数据进行逻辑操作,其操作数为32位无符号数。








免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则