上节我们学习了整数运算指令,本节我们来介绍一下西门子S7-200 SMART逻辑运算指令。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逻辑与的结果。
逻辑运算结果
本篇我们介绍了S7-200 SMART的逻辑运算指令,并通过简单的实例讲解了逻辑运算指令在程序中的应用。学习更多西门子PLC编程知识,欢迎持续关注本号。