2019/8/71哈尔滨理工大学周美兰周封王岳宇第四章PLC的编程及应用第一节PLC编程特点和原则一.PLC的编程特点梯形图编程是PLC编程中最常用的方法。它源于传统的继电器电路图,但二者之间又有较大的差别。继电接触器控制是按“并行”方式工作的,PLC是以“串行”方式工作的。1.程序的执行顺序①继电器梯形图和PLC梯形图执行顺序的比较X1Y1Y2X1Y1Y2继电器梯形图X1闭合后,Y1、Y2同时得电PLC梯形图X1闭合后,Y1先输出,Y2后输出②PLC程序的扫描执行结果扫描执行方式优点:可滤掉高频干扰,增强抗干扰能力。缺点:产生响应滞后,影响可靠性。2.传统继电器自身的延时效应Y1Y1Y2X1X1Y2Y1Y1X1闭合后,Y1、Y2在同一扫描周期内动作X1闭合后,Y1、Y2在两个扫描周期内动作X1X1Y1Y2X0Y1Y0X0X1动作时,Y1、Y2不同时得电与断电X1动作时,Y0、Y1同时得电与断电3.PLC中的软继电器所谓软继电器是指PLC存储空间中的一个可以寻址的位。在PLC中,软继电器种类多、数量大。如FP1-C24,共有R内部继电器1008个,特殊继电器64个,定时器/计数器144个。寄存器中触发器的状态可以读取任意次,相当于每个继电器有无数个常开和常闭触点。二.PLC的编程原则1.输入/输出继电器、内部辅助继电器、定时器、计数器等器件的触点可以多次重复使用,无需复杂的程序结构来减少触点的使用次数。2.梯形图每一行都是从左母线开始,线圈终止于右母线。触点不能放在线圈的右边。接点和线圈的顺序:X0X1Y0X2X0X1Y0X2正确程序错误程序3.除步进程序外,任何线圈、定时器、计数器、高级指令等不能直接与左母线相连。如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或某个内部继电器的常闭触点来连接。4.在程序中,不允许同一编号的线圈两次输出。下面的梯形图是不允许的。R9010TMR0,K100TMR0,K100R0利用内部特殊继电器实现常闭输出利用内部继电器常闭接点实现常闭输出X1X0Y0Y05.不允许出现桥式电路。注意:触点应画在水平线上,不能画在垂直分支上。6.程序的编写顺序应按自上而下、从左至右的方式编写。为了减少程序的执行步数,程序应为“左大右小,上大下小”。如:X0X2X4X1X3Y0Y1X2X4X1Y0X0X0X2X4X3Y1错误的桥式电路桥式电路的替代电路X0X1X2Y00STX01STX12ANX23ORS4OTY0不符合上大下小的电路,共5步X1X2X0Y00STX11ANX22ORX03OTY0符合上大下小的电路,共4步X0X1X2Y00STX01STX12ORX23ANS4OTY0不符合左大右小的电路,共5步X1X0X2Y1符合左大右小的电路,共4步7.梯形图的逻辑关系应简单、清楚,便于阅读检查和输入程序。逻辑关系不够清楚的梯形图改画后的梯形图第二节PLC基本编程电路一.AND运算电路二.OR运算例如:在锅炉控制过程中,无论是水罐的压力过高,还是水温过高都要产生声光报警。X1X2Y0AND电路,Y0接受X1和X2的AND运算结果块1块2Y0AND扩展电路,Y0接受块1和块2的AND运算结果X1X2Y1例如:只有当设备的状态为就绪状态,并且按下“开始”按扭,设备才能开始工作。OR扩展电路,Y1接受的是块1和块2的OR运算结果Y1块1块2OR电路,Y1接受的是X1和X2的OR运算结果三.自锁(自保持)电路自锁电路分为:关断优先式和启动优先式采用输出继电器的自锁电路采用keep指令的自锁电路关断优先式自锁电路:当执行关断指令,X2闭合时,无论X1的状态如何,线圈Y1均不得电。X1X2Y1Y1关断优先式自锁电路启动优先式自锁电路:当执行启动指令,X1闭合时,无论X2的状态如何,线圈Y1都得电。Y1X2X1Y10STY11AN/X22ORX13OTY1启动优先式自锁电路四.互锁电路互锁电路用于不允许同时动作的两个继电器的控制,如电机的正反转控制。X0X2Y1Y1Y2X1X2Y2Y2Y10STX01ORY12AN/X23AN/Y24OTY15STX16ORY27AN/X28AN/Y19OTY2互锁控制电路具有优先权的互锁控制电路五、分频电路当按下X0时,内部继电器R0接通一个扫描周期,输出Y0接通。当X0第二个脉冲到来时,内部继电器R1接通,常闭触点R1打开从而使Y0断开,如此反复,使Y0的频率为X0频率的一半。TX0R0Y0二分频电路五.时间控制电路时间电路主要用于延时、定时和计数控制等。时间控制电路既可以用定时器实现也可以用其他方式实现,如标准时钟脉冲实现。在FP1型PLC内部有多达100个定时器和三种标准时钟脉冲(0.01s、0.1s、1s)可用于时间控制。1、延时接通电路和延时断开电路松下FP1系列PLC中的定时器都是通电延时型定时器,即定时器输入信号一经接通,定时器的设定值不断减1,当设定值减为零时,定时器才有输出,此时定时器的常开触点闭合,常闭触点打开。当定时器输入断开时,定时器复位,由当前值恢复到设定值,其输出的常开触点断开,常闭触点闭合。X1X2R1Y110s当按下X1按钮后,需要经过100×0.1秒=10秒的时间Y1才会接通。当输入端X2接通后,内部继电器R1断电,定时器T1复位,使输出Y1为OFF。下图是延时接通电路:下图是延时断开电路:X1X2R1Y110s当按下X1按钮后,Y1接通,延时10秒后,T1常闭触点打开,输出Y1断开。1.长定时电路(1)利用多个时间继电器的组合实现长延时。下图利用两个定时器组合以实现长延时。即Y0在X0闭合30秒之后得电。X0TMY0,K10T0TMY1,K20T1Y00STX01TMY0K105STT06TMY1K2010STT111OTY0X0T1Y020s10sT0两个定时器组合实现长延时下图利用定时器串联实现长延时。即Y2在X0闭合30秒之后导通。X0TMY2,K20T1Y1TMY1,K10T2Y20STX01TMY1K105TMY2K209STT110OTY111STT212OTY2X0T2Y120s10sT1Y2(2)采用定时器和计数器组成的电路实现长延时。在许多场合要用到长延时控制,但FP1系列PLC中可定时的最长时间为32767×1秒(对应TMY定时器,合9小时多)。如果需要更长的定时时间,除了利用多个定时器的组合外,也可以将定时器和计数器结合起来,实现长延时控制。用定时器和计数器结合实现长延时电路图中,定时器T5的定时时间为50秒,计数器C120的计数初值为K2000,每经过50秒,T5闭合1次,计数器CT120减1,与此同时T5的常闭触点打开,T5线圈断电,常开接点T5打开,计数器CT120仅计数1次,而后定时器T5开始重新定时,如此循环。T5闭合2000次时,计数器常开接点C120闭合,输出继电器Y0接通。长延时时间为50×2000秒(约合27.8小时)。采用计数器的长延时电路上图是采用2个计数器构成的长延时电路。由于使用了R901E(1min时钟继电器),需经过30分钟后,CT120有输出,其常开接点C120闭合,CT121计数1次,同时CT120复位,又经过30分钟,CT121计数2次,如此循环。经过30×40分钟后,计数器CT121有输出,常开接点C121闭合,输出继电器Y0接通。3、顺序延时接通电路(1)采用计数器的顺序延时接通电路当输入X0接通时,计数器CT110、CT111和CT112分别开始计数。Y0、Y1、Y2分别经40秒、60秒、80秒接通,实现了顺序延时控制。采用计数器和比较指令构成的顺序延时接通电路在较大的程序中,如果计数器的个数不够时,可用计数器和比较指令组合编程。图中,CT120被定时于50秒,用两个F60CMP指令来监视它的当前值。当输入X0接通时,CT120开始减计数,经20秒,R900B为ON,因而输出继电器Y1为ON。当CT120的当前值为K10时,R900B再次为ON,使输出继电器Y2为ON,经过50秒,输出继电器Y3为ON。显然只用了一个计数器即可完成顺序延时接通的功能。4、顺序循环执行电路上图利用基本比较指令监视定时器的当前值,构成顺序循环执行电路。当X0接通后,Y1接通20秒后关断,同时Y2接通20秒后又关断,接着Y3接通10秒后关断又重新循环。之所以该电路能循环执行,是因为定时器TMX0的前面接有常闭触点T0的缘故。5、计数控制电路计数控制电路一般都有使用计数器CT指令或F118加减计数器指令实现,当达到目标值时,计数器接通。如果要进行中间数值的动态监控,常使用经过值寄存器EV并结合高级比较指令F60或者基本比较指令达到控制目的。(1)用一个计数器实现4个计数控制的电路按下计数按钮X1,当计数值减到30时,Y1输出;减到20时,Y2输出;减到10时,Y3输出;达到目标值时Y4输出。这里使用了基本比较指令来动态地监控CT100的中间计数值。当然使用这种方法可以用一个计数器实现更多个计数控制。(2)扫描计数电路在某些场合下,需要统计PLC的扫描次数。上图用计数器CT100统计PLC的扫描次数。当输入X1接通,内部继电器R1每隔一个扫描周期接通一次,每次接一个扫描周期,计数器CT100对扫描次数进行计数,达到设定值时计数器CT100接通,从而使输出继电器Y1接通。(3)计数器串联使用可扩大计数范围计数器的计数范围是有限制的。CT指令的预置范围为0~32767,高级指令F118的计数范围为-32768~32767。当控制系统的计数实际需要大于计数器的允许设置范围时,使用计数器串联可扩大计数器的计数范围。左图使用3个计数器串级组合,在计数值达到C100×C101×C102=10×20×30=6000时,Y0接通。6、计数报警电路当计数值达到规定数值时引发的报警叫计数报警。要实现计数报警并不一定非要使用计数器,使用加1、减1高级指令,同样可以完成计数报警功能。假设一个展厅只能容纳80人,当超过80人时就报警。在展厅进出口各装一个传感器X0、X1,当有人进入展厅时,X0检测到实现加1运算,当有人出来时X1检测到实现减1运算,在展厅内人数达到80人以上时就接通Y0报警。七、其他电路1、单脉冲电路单脉冲往往是信号发生变化时产生的,其宽度就是PLC扫描一遍用户程序所需的时间,即一个扫描周期。在实际应用中,常用单脉冲电路来控制系统的启动、复位、计数器的清零等。用输出继电器编写的单脉冲电路图利用定时器编写的单脉冲电路(R0每隔3秒产生一次脉冲,其脉宽为一个扫描周期)2.分支电路分支电路主要用于一个控制电路导致几个输出的情况。例如,开动吊车的同时打开警示灯。下图中,当X0闭合后,线圈Y1、Y2同时得电。X0Y2Y10STX01OTY12OTY23、闪光电路闪光电路是一种实用电路,既可以控制灯光的闪烁频率,也可以控制灯光的通断时间比,还可以控制其他负载,如电铃、蜂鸣器等。下图是两个用定时器实现的闪光电路。闪光电路之一闪光电路之二4、单按钮启停控制电路通常一个电路的启动和停止控制是由两只按钮分别完成的,当一台PLC控制多个具有启停操作的电路时,将占用很多输入点,这就面临着输入点不足的问题。通过增加I/O扩展单元固然可以解决,但有时候往往就缺少几个点而造成成本大大增加,因此单按钮启停控制目前得到了广泛的应用。图(a)为一单按钮启停控制电路,这里计数器的设置值一定要设为K2。当按一下X1时,计数器减1,C110不通,Y1启动;再按一下X1,C110接通,Y1断电,使所接的设备停止运行。图(b)为使用高级指令F132实现的单按钮启停控制电路,每按下X0一次,就将WY0中的Y1位求反一次,通过求反,达到单按钮控制启停目的。(a)用基本指令实现(b)用高级指令实现第三节PLC编程实例一.电动机正反转控制1.系统结构利用PLC控制一台异步电动机的正反转。输入端直流电源E由PLC内部提供,可直接将PLC电源端子接在开关上。交流电源则是由外部供给。X1X224VDCCOMX0220~240VY0Y1COMPLC红按钮K