位逻辑指令是PLC编程中最基本、使用最频繁的指令,按不同的功能和用途具有不同的形式,总的来说可以分为下述几大类:标准位逻辑指令、置位/复位指令、立即位逻辑指令、其他位逻辑指令。
位逻辑指令分类
标准位逻辑指令包括常开触点、常闭触点和输出线圈指令;置位/复位指令包括置位指令、复位指令、置位优先RS触发器指令和复位优先RS触发器指令;立即位逻辑指令包括立即常开或立即常闭触点指令、立即输出线圈指令、立即置位指令、立即复位指令,指令中都带有I标识;其它位逻辑指令包括取反指令、上升沿指令、下降沿指令和空操作指令。
标准位逻辑指令
下面昌晖仪表以起保停控制程序为例来讲解一下位逻辑指令的使用。要求编写起保停控制程序,即按下瞬动按钮I0.0启动电动机Q0.0,按下瞬动按钮I0.1停止电动机Q0.0。首先,昌晖仪表双击桌面上的STEP7-Micro/WIN SMART编程软件图标,启动编程软件,从指令树的位逻辑指令选项中选择一个常开触点,拖放到程序编辑器的程序段1中,输入地址I0.0作为启动触点,拖动一个常闭触点与其串联,输入地址I0.1作为停止触点,拖放一个输出线圈,输入地址Q0.0作为起保停电路的输出线圈。
拖放触点和线圈
在常开触点I0.0的下方拖放一个Q0.0的常开触点,单击工具栏中的插入向上垂直线按钮与其并联,作为自锁触点,这样一个简单的起保停控制程序的编写就完成了。编译、下载程序到S7-200 SMART。单击菜单中的下载按钮,在打开的通信对话框中选择要访问的CPU,单击确定进行下载,下载完成后关闭对话框。
下载程序
昌晖仪表可以在线查看程序的运行情况。单击PLC菜单下的运行按钮,运行项目,单击调试菜单下的程序状态按钮,在线观察程序的执行情况。按下启动按钮I0.0,可以看到输出线圈Q0.0接通,按下停止按钮I0.1,可以看到输出线圈Q0.0断开。
在线查看程序运行
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逻辑与的结果。
逻辑运算结果