4.2 位逻辑指令

4.2.1 标准输入输出指令

(1)指令格式及功能

标准输入输出指令格式及功能说明如表4-3所示。

表4-3 标准输入输出指令格式及功能说明

(2)例说指令

程序如图4-7所示,此程序是典型的点动控制。

图4-7 梯形图

① 按下按钮I0.0,I0.0导通,Q0.0得电,即接触器线圈得电,其主触点闭合,电动机得电启动运转;

② 松开按钮,I0.0断开,Q0.0失电,电动机停止运转。

点动控制多用于机床刀架、横梁、立柱等快速移动和机床对刀等场合。

在常态(不通电)的情况下处于断开状态的触点叫常开触点。在常态(不通电、无电流流过)的情况下处于闭合状态的触点叫常闭触点。

在读PLC梯形图时,看到常开触点或常闭触点,当按钮(在PLC外部接线时,通常接实际按钮的常开触点)状态为On时,梯形图中常开触点闭合(导通),梯行图中常闭触点断开(不导通)。如当I0.0得电时,梯形图中I0.0常开触点闭合,I0.0常闭触点断开。Q0.0也可以是电磁阀、灯等其他设备。

4.2.2 触点串、并联指令

(1)指令格式及功能

触点串、并联指令格式及功能说明如表4-4所示。

表4-4 触点串、并联指令格式及功能说明

(2)例说指令

如图4-8所示,此程序是典型的启保停电路。

图4-8 梯形图

① 按下启动按钮I0.0,其常开触点闭合,Q0.0得电并保持,电动机开始运转。与I0.0并联的常开触点Q0.0闭合,保证Q0.0持续得电,这就相当于继电控制线路中的自锁。松开启动按钮后,由于自锁的作用,电动机仍保持运转状态。

② 按下停止按钮I0.1时,I0.1常闭触点断开,电动机失电停止运转。

③ 要想再次启动,重复步骤①。

图4-9(a)是电动机启停控制的主电路,图4-9(b)是电动机启停控制PLC接线图。电动机启动和停止由接触器KM来控制,并且由启动按钮(SB1)、停止按钮(SB2)通过PLC来控制接触器线圈是否通电。

图4-9 电动机控制接线图

PLC的一个工作过程一般有内部处理阶段、通信处理阶段、输入采样阶段、程序执行阶段和输出刷新阶段5个阶段。当PLC开始运行时,首先清除I/O映像区的内容,进行自诊断并与外部设备进行通信,确认正常后开始从上到下、从左到右进行扫描。

如果按钮SB1闭合,SB2断开,在输入采样阶段,PLC通过扫描输入端子的状态,按顺序将输入信号状态(I0.0为1,I0.1为0)读入输入映像寄存区,即输入采样阶段。完成输入端采样工作后,转入程序执行阶段,PLC对程序按从上到下、从左到右的顺序依次执行各条程序指令,并将执行结果存入输出状态寄存器(Q0.0为1),具体执行过程参见程序说明。

当程序中所有指令执行完毕后,PLC将输出状态寄存器中的状态送到输出,使接触器线圈得电,从而使接触器主触点得电,电动机运行。这样一个工作过程就是一个扫描周期。

一个工作过程结束后,PLC将会重新从第一条指令开始从上到下、从左到右扫描,依此循环。

4.2.3 电路块串、并联指令

(1)指令格式及功能

电路块串、并联指令格式及功能说明如表4-5所示。

表4-5 电路块串、并联指令格式及功能说明

(2)例说指令

控制程序如图4-10所示,本程序可以实现在甲、乙两地都可以控制电动机运转的功能。

图4-10 梯形图

① 按下甲地启动按钮I0.0时,I0.0得电,则Q0.0=ON,并自锁,电动机启动且持续运转。

② 按下甲地停止按钮I0.2时,I0.2得电,I0.2常闭触点断开,Q0.0=OFF,电动机失电停止运转。

③ 按下乙地启动按钮I0.1时,I0.1得电,则Q0.0=ON,并自锁,电动机持续运转。

④ 按下乙地停止按钮I0.3时,I0.3得电,I0.3常闭触点断开,Q0.0=OFF,电动机失电停止运转。

(3)综合实例———三地控制一盏灯

范例示意如图4-11所示,图4-11(a)要求由三个普通开关实现灯的三地控制。图4-11(b)为由两个单刀双掷和一个双刀双掷开关实现灯的三地控制原理接线图。

图4-11 范例示意

一盏灯可以由三个地方的普通开关共同控制,按下任一个开关,都可以控制电灯的点亮和熄灭。

元件说明见表4-6。

表4-6 元件说明

控制程序如图4-12所示。

图4-12 控制程序

① 假定三个开关原始状态均为OFF状态:

仅按下甲地开关,I0.0得电常开触点闭合,I0.1、I0.2常闭触点导通,使第二行指令有能流通过,Q0.0得电灯亮;

再按甲地开关,I0.0失电常开触点断开,Q0.0失电灯灭;

仅操作乙或丙地开关情况类似。

② 假定三个开关原始状态均为ON状态:

I0.0、I0.1、I0.2常开触点闭合,使第四行指令有能流通过,Q0.0得电灯亮;

若仅操作乙地开关,I0.1常开触点断开,Q0.0失电灯灭;再按一下乙地开关I0.1得电常开触点闭合,Q0.0得电灯亮;其余两地操作类似。

③ 甲地为ON、乙地、丙地为OFF情况:

I0.0为ON、I0.1为OFF、I0.2为OFF,I0.0常开触点闭合,I0.1、I0.2常闭触点闭合,使第二行指令有能流通过,Q0.0得电灯亮。

a.在甲地操作 操作甲地开关I0.0为OFF:I0.0为OFF、I0.1、I0.2为OFF,I0.0常开触点断开、I0.1常闭触点闭合、I0.2常闭触点闭合,Q0.0失电灯灭;再按一次灯亮。

b.在乙地操作 操作乙地开关I0.1为ON:I0.0、I0.1为ON,I0.2为OFF,I0.0常开触点闭合、I0.1常闭触点断开、I0.2常闭触点闭合,Q0.0失电灯灭;再按一次灯亮。

④ 其余情况类似,不再赘述。

⑤ 用实际开关连线来实现灯的两地控制较容易,三地控制如图2-11(b)所示,需要用到双刀双掷开关,实现起来较为麻烦。

如果将程序4-12用图4-13代替,则从逻辑功能上来说图4-12和图4-13是一样的,但其执行结果却不一样。这是由于PLC“从上到下、从左到右”的扫描机制造成的。

图4-13 梯形图

例如,根据图4-13程序假设I0.0为0,I0.1为1,I0.2为0,则执行第一条指令,Q0.0为零,执行第二条后Q0.0也为0,执行第三条后Q0.0被刷新为1,第四条后又被刷新为0。也就是说最后保留的是四条指令的运行结果,即在输出刷新阶段Q0.0将输出低电平。

而根据图4-12程序,当I0.0为0,I0.1为1,I0.2为0时,Q0.0应该为1,所以两个看起来类似的程序执行结果却不一样。

因此,编写程序当中,不允许编号相同的线圈多次出现。如果有多个输入逻辑影响同一个线圈,则应该将这些输入逻辑进行并联。形式如图4-12所示。

4.2.4 置位与复位指令

(1)指令格式及功能

置位与复位指令格式及功能说明如表4-7所示。

表4-7 置位与复位指令格式及功能说明

(2)例说指令

程序如图4-14所示,当I0.0闭合时,第一条指令将从M0.0开始的M0.0、M0.1、M0.2这3个位置为1。

图4-14 梯形图

当I0.1闭合时,第二条指令将M0.0这1个位置为0。

(3)综合实例———抽水泵的自动控制

范例示意如图4-15所示。

图4-15 范例示意

① 按下START按钮,抽水泵运行,开始将容器中的水抽出;

② 按下STOP按钮或容器中水为空,抽水泵自动停止工作。

元件说明见表4-8。

表4-8 元件说明

控制程序如图4-16所示。

图4-16 控制程序

① 只要容器中有水,I0.2常闭触点断开,按下START按钮时,I0.0得电常开触点闭合,Q0.0被置位,抽水泵电动机开始抽水。

② 当按下STOP按钮时,I0.1得电常开触点闭合,Q0.0被复位;或当容器中的水被抽干之后,I0.2失电,其常闭触点闭合,Q0.0失电,抽水泵电动机停止抽水。

① 在图4-16程序中,这两条指令除了左母线相连,其余部分没有相互连接。像这种情况,在西门子编程软件中输入程序时,应该将两条指令分别输入到不同的网络,如图4-17所示。否则在编译程序时将会报错。

图4-17 软件程序编辑区示例

② 对同一元件(同一寄存器的位)可以多次使用S/R指令。由于是扫描工作方式,当置位、复位指令同时有效时,写在后面的指令具有优先权。置位、复位指令通常成对使用,也可以单独使用。

4.2.5 置位和复位优先触发器

(1)指令格式及功能

置位和复位优先触发器指令格式及功能说明如表4-9所示。

表4-9 置位和复位优先触发器指令格式及功能

(2)例说置位优先指令

程序如图4-18所示,这是一个启动优先控制程序。

图4-18 梯形图

① 当只按下启动按钮I0.0时,Q0.0得电,消防水泵正常启动。

② 当只按下停止按钮I0.1时,Q0.0失电,消防水泵处于停止状态。

③ 当启动按钮I0.0与停止按钮I0.1同时按下时,由于置位优先,消防水泵Q0.0正常启动。

④ 当启动按钮I0.0和停止按钮I0.1都未接通时,消防水泵保持原来的状态。

置位优先触发器指令(SR),置位信号S1和复位信号R可以实现置位和复位,当置位信号S1和复位信号R同时为1时,置位优先;其中,置位输入端用S1表示,复位输入端用R表示而不用R1,是置位优先触发器指令的重要标志。

其真值表如表4-10所示。

表4-10 置位优先触发器的真值表

(3)例说复位优先指令

程序如图4-19所示,这是一个停止优先控制程序。

图4-19 梯形图

① 当只按下启动按钮I0.0时,Q0.0得电,消防水泵正常启动。

② 当只按下停止按钮I0.1时,消防水泵处于停止状态,Q0.0失电。

③ 当启动按钮I0.0与停止按钮I0.1都未按下时,消防水泵保持原来的状态。

④ 当启动按钮I0.0与停止按钮I0.1同时按下时,由于复位优先,消防水泵Q0.0将停止。

复位优先触发器指令(SR),置位信号S和复位信号R1可以实现置位和复位,当置位信号S和复位信号R1同时为1时,复位优先,其真值表如表4-11所示。

表4-11 复位优先触发器指令的真值表

4.2.6 脉冲生成指令

(1)指令格式及功能

脉冲生成指令格式及功能说明如表4-12所示。

表4-12 脉冲生成指令格式及功能说明

(2)例说指令

控制程序如图4-20所示。

图4-20 梯形图和时序图

① 在I0.1接通的瞬间,产生一个正跳变,使Q0.0得电一个扫描周期。

② 在I0.1断开的瞬间,产生一个负跳变,使Q0.1得电一个扫描周期。

(3)综合实例———单按钮控制电动机启停功能

在继电器-接触器控制系统中,控制电动机的启停往往需要两个按钮,这样当1台PLC控制多个这种具有启停操作的设备时,势必占用很多输入点。有时为了节省输入点,利用PLC软件编程,实现交替输出。

操作方法是:按一下该按钮,输入的是启动信号,再按一下该按钮,输入的是停止信号,以此类推,即单数次为启动信号,双数次为停止信号。

元件说明见表4-13。

表4-13 元件说明

控制程序如图4-21所示。

图4-21 控制程序

控制程序如图4-21所示。

① 第一次按下I0.0,I0.0得电,其上升沿触发使M0.0得电,Q0.0得电并自锁,电动机启动运行。在下一个扫描周期,虽然Q0.0常开触点闭合,但由于I0.0无上升沿,M0.0常开触点断开,因此M0.1不得电。

② 第二次按下I0.0,I0.0得电,其上升沿触发使M0.0得电,由于电动机在运行中,Q0.0常开触点此时闭合,为M0.1做准备,进而使M0.1得电,Q0.0失电,电动机停止运行。

4.2.7 取反指令与空操作指令

(1)指令格式及功能说明

取反指令与空操作指令格式及功能说明如表4-14所示。

表4-14 取反指令与空操作指令格式及功能

(2)例说取反指令

梯形图如图4-22(a)所示。常开触点I0.0和I0.1必须都闭合才能激活,使Q0.0为1。

图4-22 梯形图和时序图

NOT指令用作取反。在RUN模式下,Q0.0和Q0.1的逻辑状态相反。其时序图如图4-22(b)所示。

(3)例说空操作指令

梯形图如图4-23所示,当I0.0闭合时,执行空操作指令,共执行30次空操作。空操作指令不影响用户程序的执行。

图4-23 梯形图

4.2.8 逻辑堆栈指令

(1)指令格式及功能说明

堆栈指令格式及功能如表4-15所示。

表4-15 堆栈指令格式及功能说明

(2)例说指令

① 逻辑入栈(LPS)指令

指令格式LPS,逻辑入栈指令。

堆栈操作:用于复制栈顶的值并将这个值推入栈顶,原堆栈中各级栈值依次下移一层,其操作过程如图4-24(a)所示。

图4-24 LPS、LRD、LPP指令的操作过程

作用:在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。

② 逻辑读栈(LRD)指令

指令格式LRD,逻辑读栈指令。

堆栈操作:把堆栈中第二层的值复制到栈顶。堆栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取代,其操作过程如图4-24(b)所示。

作用:在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。

注意:LPS后第一个和最后一个从逻辑块不用本指令。

③ 逻辑出栈(LPP)指令

指令格式:LPP,逻辑出栈指令。

堆栈操作:堆栈作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上弹一级,堆栈第二层的值成为新的栈顶值,其操作过程如图4-24(c)所示。

作用:在梯形图中的分支结构中,用于将LPS指令生成的一条新母线进行恢复。应注意,LPS与LPP必须配对使用。