尽管PLC的控制要求多种多样,但大多数动作都可以通过基本逻辑功能的组合实现,因此,熟练掌握基本梯形图程序的编写方法,是提高编程效率与程序可靠性的有效措施。以下是PLC常用的梯形图程序,可供编程参考。
1.1和0的信号生成
在进行PLC程序设计时,经常需要使用状态固定为0或1的信号,以便对无需逻辑运算处理的诸如电源指示灯、实际不使用的输出等进行直接赋值。
PLC程序中状态固定为0及1的内部继电器和输出线圈等可通过图2.2-7所示的梯形图程序段生成。
图2.2-6 中间结果存储
图2.2-7 恒0和恒1信号的生成
在图2.2-7a上,输出M0.0为信号M0.2和的“与”运算的结果,状态恒为0;图2.2-7b中,M0.1为信号M0.2和的“或”运算的结果,状态恒为1。
2.状态保持程序
线圈的状态保持功能可通过梯形图程序的自锁电路、置位/复位指令、RS触发器等方式实现,它有断开优先和启动优先两种控制方式,两者在启动、断开信号同时生效时,其输出状态将有所不同。
断开优先的梯形图程序如图2.2-8所示,图中的I0.1为启动信号,I0.2为断开信号。
图2.2-8 断开优先保持程序
图2.2-8所示的程序中,如断开信号I0.2为0,3种程序均可通过启动信号I0.1=1,使得输出Q0.1=1并保持。但是,如果断开信号I0.2为1,则不论启动信号I0.1=1或0,Q0.1总是输出0,故称断开优先或复位优先。
启动优先的梯形图程序如图2.2-9所示,当断开信号I0.2为0时,3种程序也均可通过启动信号I0.1=1,使得输出Q0.1=1并保持;如果I0.2为1,则可使得Q0.1=0。但是,如果启动信号I0.1=1,则不论断开信号I0.2=1或0,Q0.1总是输出1,故称启动优先或置位优先。
图2.2-9 启动优先保持程序
3.边沿信号生成
部分PLC没有专门的上升/下降沿检测指令,可以使用图2.2-10所示的简单程序生成上升沿脉冲。如果将程序中的I0.1改为,则可生成下降沿脉冲。
图2.2-10a所示的程序中,在I0.1由0变为1的首次执行循环中,处理指令第1行时,由于M0.1的状态仍为上次循环的执行结果0,故M0.0=I0.1&的结果为1。
图2.2-10 边沿信号生成程序
当PLC处理到指令第2行时,由于本次输入采样的I0.1状态为1,M0.1的结果将为1,但是,它不能改变已经处理完成的第1行指令的M0.0结果,故M0.0在第1次循环的输出为1。执行完第1次循环后,由于M0.1已为1,故在后续循环中,M0.0=I0.1&将一直保持0。因此,利用上述梯形图,可以在I0.1为1的瞬间,在M0.0上得到一个宽度为1个PLC循环时间的上升沿脉冲信号。
4.二分频程序
在PLC控制系统中,经常有利用一个按钮的反复操作,交替控制执行元件通/断的情况,称为交替通断程序。这一程序如用于脉冲控制,其输出脉冲频率将为输入的1/2,故又称“二分频”控制。二分频控制梯形图程序有以下多种实现形式。
图2.2-11所示的梯形图程序由前述的边沿信号生成(Network1、Network2)、状态保持(Network5)以及启动、停止信号生成(Network3、Network4)3部分组成。边沿信号生成、状态保持功能程序的原理与前述相同。
图2.2-11 二分频控制程序1
当每次操作按钮I0.1时,在M0.0上得到I0.1的上升沿脉冲。如果Q0.1的当前状态为0,这一上升沿将通过Network3,产生状态保持程序的启动信号M0.2=1;如果Q0.1的当前状态为1,则将产生状态保持程序的停止信号M0.3=1。在状态保持程序上,如果Q0.1的当前状态为0,则可通过M0.2=1、将Q0.1的执行结果重新置为1;如果Q0.1的当前状态为1,则可通过M0.3=1,将Q0.1的执行结果重新置为0。由于信号M0.0只保持1个PLC循环,第2次执行循环时,M0.0已经为0,因此,Q0.1的状态变化不会引起M0.2、M0.3、Q0.1状态的循环变化。
以上程序动作清晰、理解容易,但需要占用4个内部继电器M0.0~M0.3和5个程序段,为此,实际程序中常采用图2.2-12所示的形式。
图2.2-12 二分频控制程序2
图2.2-12所示的程序可通过I0.1的边沿信号M0.0和Q0.1当前状态(上一循环的执行结果),直接控制Q0.1的状态翻转。
例如,当I0.1出现上升沿(M0.0=1)时,如Q0.1的当前状态为0,则M0.0&=1,Q0.1将输出1;而在执行第2次循环时,虽M0.0恢复为0,但因Q0.1的当前状态为1,故&Q0.1=1,Q0.1可保持1。如I0.1出现上升沿(M0.0=1)时,Q0.1的当前状态为1,则M0.0&及&Q0.1同时为0,故Q0.1将输出0;而在执行第2次循环时,虽M0.0恢复为0,但因Q0.1的当前状态为0,故M0.0&及&Q0.1仍然为0,Q0.1可保持0。
以上程序只需要使用2个内部继电器(M0.0/M0.1)和3个程序段,实现了二分频功能,程序较图2.2-11简单。
最简单的二分频梯形图程序如图2.2-13所示。这一程序只占用1个内部继电器和2个程序段,程序简洁、概念清晰,并充分利用了PLC的执行特点,因此是工程设计人员最常用的典型程序。
假设起始状态为Q0.1、M0.1均为0,操作按钮I0.1时,程序的处理时序如图2.2-13b所示,说明如下。
1)第1次按下按钮时,I0.1=1,Q0.1、M0.1的起始状态为0,故有I0.1&=1、&Q0.1=0,
因此,Q0.1=I0.1&+&Q0.1的输出将为状态1;
而&Q0.1=0、I0.1&M0.1=0,
故M0.1=&Q0.1+I0.1&M0.1的输出将为状态0。
(www.xing528.com)
图2.2-13 二分频控制程序3
2)第1次松开按钮时,I0.1=0,当前状态为Q0.1=1、M0.1=0,故有I0.1&=0、1&Q0.1=1,
因此,Q0.1=I0.1&+&Q0.1的输出将保持为状态1;
而&Q0.1=1、I0.1&M0.1=0,
故M0.1=&Q0.1+I0.1&M0.1的输出将为状态1。
3)第2次按下按钮时,I0.1=1,当前状态为Q0.1=1、M0.1=1,故有
I0.1&M0.1=0、I0.1&Q0.1=0,
因此,Q0.1=I0.1&+&Q0.1的输出将为状态0;
而&Q0.1=0、I0.1&M0.1=1,
故M0.1=&Q0.1+I0.1&M0.1的输出将为状态1。
4)第2次松开按钮时,I0.1=0,当前状态为Q0.1=0、M0.1=1,故有
I0.1&=0、&Q0.1=0,
因此,Q0.1=I0.1&+1&Q0.1的输出将保持为0;
而&Q0.1=0、I0.1&M0.1=0,
故M0.1=&Q0.1+I0.1&M0.1的输出将为状态0。
程序将重新回到起始状态。因此,操作按钮I0.1,同样可在Q0.1上得到通/断交替的输出信号。
如果使用置/复位和边沿检测指令,二分频控制还可通过图2.2-14所示的梯形图实现。假设起始状态为Q0.1、M0.1均为0,操作按钮I0.1时,程序的处理过程如下。
1)第1次按下按钮时,I0.1=1,Q0.1、M0.1的起始状态为0,故有I0.1&=1,其上升沿将使得Q0.1置位为1;在I0.1保持1的期间,复位控制条件I0.1&M0.1始终为0,故Q0.1输出1。
当按钮松开时,由于Network2的执行先于Network3,因此,复位控制条件I0.1&M0.1仍保持为0,输出Q0.1保持1。当执行Network3后,M0.1输出为1。
2)第2次按下按钮时,初始状态为Q0.1=1、M0.1=1。在PLC执行第1次循环时,Network1的置位控制条件I0.1&=0,Q0.1置位禁止;执行Network2时,复位控制条件I0.1&M0.1成为1,为生成复位下降沿做好了准备;执行Network3时,M0.1成为0。因此,Q0.1输出保持1。当PLC执行第2次循环时,Network1的置位控制条件I0.1&=1,其上升沿将使Q0.1置位。但是,执行Network2时,由于复位控制条件I0.1&M0.1成为0,其下降沿可立即将Q0.1复位,故Q0.1的最终输出为0。执行Net-work3时,M0.1保持为0。
图2.2-14 二分频控制程序4
当按钮松开时,Network1的置位控制条件I0.1&、Network2的复位控制条件I0.1&M0.1同时为0,故Q0.1输出保持0。而M0.1仍可通过Q0.1的0状态,保持为0;状态恢复至第1次操作前的初始状态。
5.采样程序
这里所说的“采样”是指通过一个信号(采样信号)来检测另一信号(被测信号)的状态,并将被测信号的状态保持到下次采样。实现这一要求的梯形图程序如图2.2-15所示。
图示的程序中,M0.1为采样信号,I0.1为被测信号,Q0.1为采样状态输出。当M0.1=1时,如I0.1=1,则:
M0.1&I0.1=1、&Q0.1=0,
因此,Q0.1=M0.1&I0.1+&Q0.1的输出状态为1;
当M0.1恢复0时,当前状态为Q0.1=1,故有
M0.1&I0.1=0、Q0.1=1,
因此,Q0.1=M0.1&I0.1+&Q0.1的输出状态将保持为1,Q0.1将记录、并保持M0.1=1采样时的I0.1状态1。
同样,当M0.1=1时,如I0.1=0,则
M0.1&I0.1=0、&Q0.1=0,
因此,Q0.1=M0.1&I0.1+&Q0.1的输出状态为0;
当M0.1恢复0时,当前状态为Q0.1=0,故有M0.1&I0.1=0、&Q0.1=0,
因此,Q0.1=M0.1&I0.1+&Q0.1的输出状态将保持为0,Q0.1上同样可记录、并保持M0.1=1时刻的I0.1状态0。
图2.2-15 采样程序
6.“异或”/“同或”程序
“异或”/“同或”是两种标准逻辑运算。所谓“异或”就是在2个信号状态不同时,输出1信号,其他情况则为0;所谓“同或”就是在2个信号状态相同时,输出1信号,其他情况则为0。由于大部分PLC无这一运算指令,使用时可通过图2.2-16所示的梯形图程序实现这一功能。
图2.2-16 “异或”及“同或”程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。