位逻辑指令是实现逻辑控制的基本指令。西门子S7-1200 PLC的位逻辑指令主要包括触点指令、线圈指令、位操作指令及位检测指令,见表2-1。
表2-1 位逻辑指令
位逻辑指令是按照一定的控制要求,对“0”“1”两个布尔操作数(Bool)进行逻辑组成,可以构成“与”“或”“非”等逻辑操作,并将结果送入存储器状态字的逻辑运算结果(RLO)。
图2-1为逻辑“与”梯形图。表2-2为对应的逻辑“与”真值表。
图2-1 逻辑“与”梯形图
图2-2为逻辑“或”梯形图。表2-3为对应的逻辑“或”真值表。
图2-2 逻辑“或”梯形图
图2-3为逻辑“非”梯形图。表2-4为对应的逻辑“非”真值表。
图2-3 逻辑“非”梯形图
表2-2 逻辑“与”真值表
表2-3 逻辑“或”真值表
表2-4 逻辑“非”真值表
需要注意的是,西门子S7-1200 PLC内部输入触点(I)的闭合与断开仅与输入映像寄存器相应位的状态有关,与外部输入按钮、接触器、继电器常开/常闭触点的实际接线无关。如果输入映像寄存器的相应位为“1”,则内部的常开触点闭合,常闭触点断开。如果输入映像寄存器的相应位为“0”,则内部的常开触点断开,常闭触点闭合。
典型的逻辑“与”“或”控制示意图如图2-4所示。
图2-4 典型的逻辑“与”“或”控制示意图
取反线圈指令运算(/)是对逻辑运算结果(RLO)进行取反,并将结果分配给指定的操作数。取反逻辑操作 是对逻辑运算结果(RLO)进行取反。图2-5为取反线圈与取反逻辑运算结果示例。图中,当I1.1和I1.2的信号状态为“1”,或I2.1的信号状态为“1”时,Q4.0的信号状态为“0”;当I1.1、I1.2、I2.2的信号状态为“1”,或I2.1、I2.2的信号状态为“1”时,Q4.1的信号状态为“0”。
图2-5 取反线圈与取反逻辑运算结果示例
图2-6为取反逻辑操作示例。图中,只有当I0.0和I0.1相“与”的结果为“0”或I0.2为“1”时,与I0.3、I0.4相“与”的结果为“1”,Q4.0的信号状态为“0”;否则,Q4.0的信号状态为“1”。
图2-6 取反逻辑操作示例
置位指令和复位指令根据RLO决定被寻址位的信号状态是否需要改变: 为复位输出,即输出为“0”; 为置位输出,即输出为“1”; 为复位域指令,将从指定地址开始的连续若干个地址复位(变为“0”状态并保持); 为置位域指令,将从指定地址开始的连续若干个地址置位(变为“1”状态并保持)。
除了以上4个置位、复位指令,西门子S7-1200 PLC还提供了两个双稳态触发器,如图2-7所示,即SR复位优先触发器和RS置位优先触发器。表2-5为SR复位优先触发器真值表,当置位信号和复位信号都有效时,复位信号优先,输出线圈不接通。表2-6为RS置位优先触发器真值表,当置位信号和复位信号都有效时,置位信号优先,输出线圈接通。其中,S连接置位输入,R连接复位输入,置位、复位输入均为高电平状态有效。
图2-7 双稳态触发器
表2-5 SR复位优先触发器真值表
表2-6 RS置位优先触发器真值表
双稳态触发器应用示例如图2-8所示。
图2-8 双稳态触发器应用示例
在程序段1中,如果I0.0的信号状态为“1”,I0.1的信号状态为“0”,则置位存储器M0.0,Q0.0的信号状态为“1”;如果I0.0的信号状态为“0”,I0.1的信号状态为“1”,则复位存储器M0.0,Q0.0的信号状态为“0”;如果I0.0、I0.1的信号状态均为“0”,则Q0.0的信号状态不变化;如果I0.0、I0.1的信号状态均为“1”,则复位存储器M0.0,Q0.0的信号状态“0”。
在程序段2中,如果I0.2的信号状态为“1”,I0.3的信号状态为“0”,则复位存储器M0.1,Q0.1的信号状态为“0”;如果I0.2的信号状态为“0”,I0.3的信号状态为“1”,则置位存储器M0.1,Q0.1的信号状态为“1”;如果I0.2、I0.3的信号状态均为“0”,则Q0.1的信号状态不变化;如果I0.2、I0.3的信号状态均为“1”,则置位存储器M0.1,Q0.1的信号状态为“1”。
如图2-9所示,当边沿的信号状态变化时,就会产生跳变沿:当边沿的信号状态从“0”变到“1”时,产生一个上升沿(正跳沿);当边沿的信号状态从“1”变到“0”时,产生一个下降沿(负跳沿)。每个扫描周期都把信号状态与前一个扫描周期的信号状态进行比较,若不同,则表明有一个跳变沿。因此,前一个扫描周期的信号状态必须存储,以便与新的信号状态进行比较。
图2-9 跳变沿
在西门子S7-1200 PLC指令中: 指令表示上升沿触点输入信号; 指令表示下降沿触点输入信号; 指令表示置位操作; 指令表示复位操作。 指令和 指令的输出长度均为一个程序周期。
采用PLC控制方式,用三个开关S1、S2、S3控制一个照明灯EL,任何一个开关都可以控制照明灯EL的亮/灭。
表2-7为【实例2】的输入/输出元件及其控制功能。
表2-7【实例2】的输入/输出元件及其控制功能
【实例2】采用西门子S7-1200 PLC的CPU 1214C DC/DC/DC模块进行控制,电气接线图如图2-10所示。将电源部分省略后,【实例2】简化电气接线图如图2-11所示(如无特殊说明,后面章节中介绍的电气接线图均为简化电气接线图)。
图2-10【实例2】电气接线图
图2-11【实例2】简化电气接线图
经分析可知,只有一个开关闭合时,照明灯亮,若另外一个开关闭合,则照明灯灭,推而广之,有奇数个开关闭合时,照明灯亮,偶数个开关闭合时,照明灯灭。根据控制要求列出真值表,见表2-8。
表2-8【实例2】真值表
根据表2-8和图2-11,可以列出PLC输入/输出的逻辑表达式为
表2-9为【实例2】的变量定义。根据式(2-1)可以画出【实例2】的梯形图,如图2-12所示。
表2-9【实例2】的变量定义
图2-12【实例2】的梯形图
采用PLC控制方式,用四个开关S1、S2、S3、S4控制一个照明灯EL,任何一个开关都可以控制照明灯EL的亮/灭。
表2-10为输入/输出元件及其控制功能。
表2-10 输入/输出元件及其控制功能
根据表2-10可以画出【实例3】简化电气接线图,如图2-13所示。
图2-13【实例3】简化电气接线图
与【实例2】一样,有奇数个开关闭合时,照明灯亮,有偶数个开关闭合时,照明灯灭。根据控制要求列出【实例3】真值表,见表2-11。
表2-11【实例3】真值表
根据表2-11和图2-13,可以列出PLC输入/输出的逻辑表达式为
根据式(2-2)可以画出【实例3】的梯形图,如图2-14所示。
图2-14【实例3】的梯形图
抢答器有三个输入,分别为I0.0、I0.1和I0.2,输出分别为Q4.0、Q4.1和Q4.2,复位输入为I0.4。任务要求:三个人任意抢答,谁先按按钮,谁的指示灯就亮,且只能亮一个指示灯,进行下一个问题时,主持人按复位按钮,抢答重新开始。
表2-12为输入/输出元件及其控制功能。
表2-12 输入/输出元件及其控制功能
根据表2-12可以画出【实例4】简化电气接线图,如图2-15所示。
图2-15【实例4】简化电气接线图
由表2-12可知,输出Q4.0~Q4.2的起始地址与前面所讲实例的表示不同,需要在PLC的属性中进行I/O地址重新设置,如图2-16所示,将输出起始地址由“0”改为“4”。
根据控制要求,需要采用双稳态触发器进行编程。表2-13为【实例4】的变量表。需要注意的是,除了输入、输出变量,还增加了中间变量M0.0~M0.2,即SR双稳态触发器的地址。
【实例4】的梯形图如图2-17所示。程序段1可以实现SB1/抢答按钮1的抢答逻辑,采用SR复位优先触发器,输出指示灯为Q4.0,复位按钮为I0.4。程序段2可以实现SB2/抢答按钮2的抢答逻辑,原理同抢答按钮1。程序段3可以实现SB3/抢答按钮3的抢答逻辑。
图2-16 I/O地址重新设置
表2-13【实例4】的变量表
图2-17【实例4】的梯形图