西门子s7-200 smart逻辑运算指令按照操作类型可以分为四种:取反指令、逻辑与指令、逻辑或指令和逻辑异或指令。如下图所示,四列对应四种操作类型:
逻辑运算指令按操作类型可分为四种
s7-200 smart逻辑运算指令按照操作数长度可以分为三种:字节逻辑运算指令、字逻辑运算指令、双字逻辑运算指令。如下图所示,三行对应三种操作数长度类型:
逻辑运算指令按操作数长度可分为三种
字节逻辑运算指令是对单字节数据进行逻辑操作,其操作数为八位无符号数。
字节逻辑运算指令
字逻辑运算指令是对字数据进行逻辑操作,其操作数为十六位无符号数。
字逻辑运算指令
双字逻辑运算指令是对双字数据进行逻辑操作,其操作数为三十二位无符号数。
双字逻辑运算指令
下面来介绍不同操作类型的逻辑运算指令。取反指令将输入端in操作数的二进制数逐位取反,并将结果送到输出端out中,例如将vw0中的数据逻辑取反后送到mw10,可以发现,执行逻辑取反指令后,每一位由0变为1、1变为0。
逻辑取反指令
逻辑与指令将输入端in1、in2两个操作数的对应位执行“与”运算,并将结果送到输出端out中,例如将vb1、vb2中的数据逻辑与后送到mb0中,可以发现,执行逻辑与运算指令后,如果两个操作数的对应位都为1,则运算结果的对应位为1,否则为0。
逻辑与指令
逻辑或指令将输入端in1、in2两个操作数的对应位执行“或”运算,并将结果送到输出端out中,例如将vb1、vb2中的数据逻辑或后送到mb1中,可以发现,执行逻辑或运算指令后,如果两个操作数的对应位都为0,则运算结果的对应位为0,否则为1。
逻辑或指令
逻辑异或指令将输入端in1、in2两个操作数的对应位执行“异或”运算,并将结果送到输出端out中,例如将vb1、vb2中的数据逻辑异或后送到mb2中,昌晖仪表可以发现,执行逻辑异或运算指令后,如果两个操作数的对应位不同,则运算结果的对应位为1,否则为0。
逻辑异或指令
下面将通过一个实例来说明逻辑运算指令在程序中的使用方法。要求将vw2和vw4中的数据进行逻辑与后,送到vw6。首先昌晖仪表双击电脑桌面上的step7-micro/win smart图标,打开编程软件,从指令树的位逻辑中选择一个常开触点拖放到程序编辑器的程序段1中,输入地址i0.0,从指令树逻辑运算指令中选择字与指令拖放到常开触点后,在in1处输入地址vw2,在in2处输入地址vw4,在out处输入地址vw6,这样一个简单的逻辑运算指令的应用程序就完成了。
逻辑运算指令应用实例
将应用程序编译下载到s7-200 smart plc。单击菜单中的下载按钮,在打开的通信对话框中选择要访问的cpu,单击确定进行下载,下载完成后关闭对话框。查看程序的运行情况,单击plc菜单下的运行按钮,运行项目,单击调试菜单下的程序状态按钮,在线观察程序的执行情况。在状态图表中输入地址vw2,格式选择十六进制。选中vw2单元格按回车键,地址列自动递增,添加地址vw4和vw6,格式和上一行相同。
在线观察程序执行
单击状态图表工具栏中的状态图表按钮,可以看到vw2、vw4和vw6的当前值都为0,在新值列中分别输入十六进制3456和十六进制00ff,单击状态图表工具栏中的写入按钮,则vw2和vw4变为相应的值,而vw6中的值不变。
写入相应数值
按下i0.0可以看到vw6的值变为十六进制0056,为vw2和vw4逻辑与的结果。
逻辑运算结果