松下PLC电气控制与组态设计ppt第四章.ppt
第四章 PLC的编程及应用,第一节 PLC编程特点和原则PLC的编程特点 梯形图编程是PLC编程中最常用的方法。它源于传统的继电器电路图,但二者之间又有较大的差别。继电接触器控制是按“并行”方式工作的,PLC是以“串行”方式工作的。程序的执行顺序继电器梯形图和PLC梯形图执行顺序的比较,继电器梯形图 X1闭合后,Y1、Y2同时得电,PLC梯形图 X1闭合后,Y1先输出,Y2后输出,PLC程序的扫描执行结果 扫描执行方式优点:可滤掉高频干扰,增强抗干扰能力。缺点:产生响应滞后,影响可靠性。传统继电器自身的延时效应,X1闭合后,Y1、Y2在同一扫描周期内动作,X1闭合后,Y1、Y2在两个扫描周期内动作,X1动作时,Y1、Y2不同时得电与断电,X1动作时,Y0、Y1同时得电与断电,PLC中的软继电器 所谓软继电器是指PLC存储空间中的一个可以寻址的位。在PLC中,软继电器种类多、数量大。如FP1-C24,共有R内部继电器1008个,特殊继电器64个,定时器/计数器144个。寄存器中触发器的状态可以读取任意次,相当于每个继电器有无数个常开和常闭触点。,PLC的编程原则输入/输出继电器、内部辅助继电器、定时器、计数器等器件的触点可以多次重复使用,无需复杂的程序结构来减少触点的使用次数。梯形图每一行都是从左母线开始,线圈终止于右母线。触点不能放在线圈的右边。接点和线圈的顺序:,正确程序,错误程序,除步进程序外,任何线圈、定时器、计数器、高级指令等不能直接与左母线相连。如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或某个内部继电器的常闭触点来连接。4.在程序中,不允许同一编号的线圈两次输出。下面的梯形图是不允许的。,利用内部特殊继电器实现常闭输出,利用内部继电器常闭接点实现常闭输出,不允许出现桥式电路。注意:触点应画在水平线上,不能画在垂直分支上。程序的编写顺序应按自上而下、从左至右的方式编写。为了减少程序的执行步数,程序应为“左大右小,上大下小”。如:,错误的桥式电路,桥式电路的替代电路,不符合上大下小的电路,共5步,符合上大下小的电路,共4步,不符合左大右小的电路,共5步,符合左大右小的电路,共4步,7.梯形图的逻辑关系应简单、清楚,便于阅读检查和输入程序。,逻辑关系不够清楚的梯形图,改画后的梯形图,第二节 PLC基本编程电路 AND运算电路 OR运算例如:在锅炉控制过程中,无论是水罐的压力过高,还是水温过高都要产生声光报警。,AND电路,Y0接受X1和X2的AND运算结果,AND扩展电路,Y0接受块1和块2的AND运算结果,例如:只有当设备的状态为就绪状态,并且按下“开始”按扭,设备才能开始工作。,OR扩展电路,Y1接受的是块1和块2的OR运算结果,OR电路,Y1接受的是X1和X2的OR运算结果,自锁(自保持)电路自锁电路分为:关断优先式和启动优先式 采用输出继电器的自锁电路 采用keep指令的自锁电路 关断优先式自锁电路:当执行关断指令,X2闭合时,无论X1的状态如何,线圈Y1均不得电。,关断优先式自锁电路,启动优先式自锁电路:当执行启动指令,X1闭合时,无论X2的状态如何,线圈Y1都得电。,启动优先式自锁电路,互锁电路 互锁电路用于不允许同时动作的两个继电器的控制,如电机的正反转控制。,互锁控制电路,具有优先权的互锁控制电路,五、分频电路,当按下X0时,内部继电器R0接通一个扫描周期,输出Y0接通。当X0第二个脉冲到来时,内部继电器R1接通,常闭触点R1打开从而使Y0断开,如此反复,使Y0的频率为X0频率的一半。,二分频电路,时间控制电路 时间电路主要用于延时、定时和计数控制等。时间控制电路既可以用定时器实现也可以用其他方式实现,如标准时钟脉冲实现。在FP1型PLC内部有多达100个定时器和三种标准时钟脉冲(0.01s、0.1s、1s)可用于时间控制。,1、延时接通电路和延时断开电路 松下FP1系列PLC中的定时器都是通电延时型定时器,即定时器输入信号一经接通,定时器的设定值不断减1,当设定值减为零时,定时器才有输出,此时定时器的常开触点闭合,常闭触点打开。当定时器输入断开时,定时器复位,由当前值恢复到设定值,其输出的常开触点断开,常闭触点闭合。,当按下X1按钮后,需要经过1000.1秒=10秒的时间Y1才会接通。当输入端X2接通后,内部继电器R1断电,定时器T1复位,使输出Y1为OFF。,下图是延时接通电路:,下图是延时断开电路:,当按下X1按钮后,Y1接通,延时10秒后,T1常闭触点打开,输出Y1断开。,长定时电路(1)利用多个时间继电器的组合实现长延时。下图利用两个定时器组合以实现长延时。即Y0在X0闭合30秒之后得电。,两个定时器组合实现长延时,下图利用定时器串联实现长延时。即Y2在X0闭合30秒之后导通。,(2)采用定时器和计数器组成的电路实现长延时。在许多场合要用到长延时控制,但FP1系列PLC中可定时的最长时间为327671秒(对应TMY定时器,合9小时多)。如果需要更长的定时时间,除了利用多个定时器的组合外,也可以将定时器和计数器结合起来,实现长延时控制。,用定时器和计数器结合实现长延时电路,图中,定时器T5的定时时间为50秒,计数器C120的计数初值为K2000,每经过50秒,T5闭合1次,计数器CT120减1,与此同时T5的常闭触点打开,T5线圈断电,常开接点T5打开,计数器CT120仅计数1次,而后定时器T5开始重新定时,如此循环。T5闭合2000次时,计数器常开接点C120闭合,输出继电器Y0接通。长延时时间为502000秒(约合27.8小时)。,采用计数器的长延时电路,上图是采用2个计数器构成的长延时电路。由于使用了R901E(1min时钟继电器),需经过30分钟后,CT120有输出,其常开接点C120闭合,CT121计数1次,同时CT120复位,又经过30分钟,CT121计数2次,如此循环。经过3040分钟后,计数器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指令的预置范围为032767,高级指令F118的计数范围为-3276832767。当控制系统的计数实际需要大于计数器的允许设置范围时,使用计数器串联可扩大计数器的计数范围。左图使用3个计数器串级组合,在计数值达到C100C101C102=102030=6000时,Y0接通。,6、计数报警电路,当计数值达到规定数值时引发的报警叫计数报警。要实现计数报警并不一定非要使用计数器,使用加1、减1高级指令,同样可以完成计数报警功能。假设一个展厅只能容纳80人,当超过80人时就报警。在展厅进出口各装一个传感器X0、X1,当有人进入展厅时,X0检测到实现加1运算,当有人出来时X1检测到实现减1运算,在展厅内人数达到80人以上时就接通Y0报警。,七、其他电路,1、单脉冲电路单脉冲往往是信号发生变化时产生的,其宽度就是PLC扫描一遍用户程序所需的时间,即一个扫描周期。在实际应用中,常用单脉冲电路来控制系统的启动、复位、计数器的清零等。,用输出继电器编写的单脉冲电路图,利用定时器编写的单脉冲电路(R0每隔3秒产生一次脉冲,其脉宽为一个扫描周期),2.分支电路 分支电路主要用于一个控制电路导致几个输出的情况。例如,开动吊车的同时打开警示灯。下图中,当X0闭合后,线圈Y1、Y2同时得电。,3、闪光电路,闪光电路是一种实用电路,既可以控制灯光的闪烁频率,也可以控制灯光的通断时间比,还可以控制其他负载,如电铃、蜂鸣器等。下图是两个用定时器实现的闪光电路。,闪光电路之一,闪光电路之二,4、单按钮启停控制电路,通常一个电路的启动和停止控制是由两只按钮分别完成的,当一台PLC控制多个具有启停操作的电路时,将占用很多输入点,这就面临着输入点不足的问题。通过增加I/O扩展单元固然可以解决,但有时候往往就缺少几个点而造成成本大大增加,因此单按钮启停控制目前得到了广泛的应用。,图(a)为一单按钮启停控制电路,这里计数器的设置值一定要设为K2。当按一下X1时,计数器减1,C110不通,Y1启动;再按一下X1,C110接通,Y1断电,使所接的设备停止运行。图(b)为使用高级指令F132实现的单按钮启停控制电路,每按下X0一次,就将WY0中的Y1位求反一次,通过求反,达到单按钮控制启停目的。,(a)用基本指令实现,(b)用高级指令实现,第三节 PLC编程实例电动机正反转控制系统结构 利用PLC控制一台异步电动机的正反转。输入端直流电源E由PLC内部提供,可直接将PLC电源端子接在开关上。交流电源则是由外部供给。,PLC控制电动机正反转外部接线图,要求:黄按钮按下:电机正转蓝按钮按下:电机反转红按钮按下:电机停止,系统的控制要求,按动黄按钮时:电机正转若在此之前电机没有工作,则电机正转启动,并保持电机正转;若在此之前电机反转,则将电机切换到正转状态,并保持电机 正转;若在此之前电机的已经是正转,则电机的转动状态不变。电机正转状态一直保持到有篮按钮或红按钮按下为止。,按动蓝按钮时:电机反转若在此之前电机没有工作,则电机反转启动,并保持电机反转;若在此之前电机正转,则将电机切换到反转状态,并保持电机 反转;若在此之前电机的已经是反转,则电机的转动状态不变。电机反转状态一直保持到有黄按钮或红按钮按下为止。按下红按钮时:停止电机的转动 注:电机不可以同时进行正转和反转,否则会损坏系统,PLC的 I/O点的确定与分配 系统编程分析和实现,电机正反转控制PLC的I/O点分配表,电机初步正转控制电路,电机初步正反转控制电路,系统要求电机不可以同时进行正转和反转,如下图所示利用互锁电路可以实现。利用正转按钮来切断反转的控制通路;利用反转按钮来切断正转的控制通路。,电机正反转的互锁电路,电机正反转的切换电路,当按下红按钮时,无论在此之前电机的转动状态如何,都停止电机的转动。利用红色按钮同时切断正转和反转的控制通路。,电机正反转的最终控制程序,一、流水灯控制,下图是某一流水灯控制的时序图,移位脉冲的周期为1s,Y0Y7分别控制8个流水灯的亮灭。X0是流水灯的起动开关,当X0闭合时,移位寄存器开始工作,流水灯Y0Y7在移位脉冲的作用下依次点亮,全亮后数据再右移,即8个流水灯再按着相反的方向依次熄灭,如此循环往复。,流水灯控制时序图,(a)以字继电器为控制操作数,(b)以位继电器为控制操作数,流水灯控制梯形图,上图(a)是用双向移位寄器实现的流水灯控制梯形图。在这个程序中,X0闭合,流水灯起动运行。移位方向控制端和数据输入端使用同一个控制触点R1。这样数据向左移时,数据输入为1;当数据向右移时,数据输入为0。程序开始运行时,数据向左移,当输出继电器Y7动作后,即WY0中内容为K255时,数据又向右移,当Y0断电后,即WY0中内容为K0时,数据又开始左移。如此往复。程序中使用条件指令实现换向。图(a)是以字继电器WY0为控制操作数的,以位(Y0Y7)为控制操作数的梯形图程序如图(b)。由图(b)可以看出,该程序更加简单,但却能实现同样的流水灯控制功能。,三、设备顺序启动-循环控制,设某工件加工过程共需4道工序36秒才能完成。工件加工过程的时序如下图所示。4道工序的加工设备分别由输出继电器Y0、Y1、Y2和Y3启动。当闭合运行控制开关X0后,输出继电器Y0接通,延时6s后,Y1接通,同时关断Y0;再延时8s后,Y2接通,同时关断Y1;又延时10s后,最后Y3接通,同时关断Y2;Y3接通并保持12s后,Y0又接通,同时Y3关断。可见该工件的加工控制是顺序控制,当第4道工序加工完毕后,又回到第一道工序重新执行,以后周而复始。这里X0为一自锁按钮,X0为ON时,启动并运行;X0为OFF时停机。试编写该工件的加工程序。,某工件加工过程时序图,某工件加工PLC控制的I/O点分配表,控制系统共需5个I/O点:一个输入点和4个输出点。根据题意和加工过程时序图,本例给出了四种不同的编程方法。,方法1:,上图利用4个定时器的串联来实现4道工序的分级定时控制。一个循环内总的控制时间为6s+8s+10s+12s=36s。当X0闭合时,通过定时器的通断依次启动下一道工序同时关闭上一道工序,循环往复,直至X0断开,停止运行。,方法2:利用4个定时器实现4道工序分级定时控制另一 种编程方法。,方法3:,上图是利用1个定时器结合比较指令实现的。用1个定时器设置全过程时间,并用3条比较指令来判断和启动各道工序。定时器的预定值为总加工时间36秒(K360),当X0闭合后,Y0通电,进行第一道工序,6秒后其经过值寄存器EV的值减为K300,Y1通电,启动第二道工序,同时停止第一道工序。依次类推。图中每个输出支路都串联了运行控制开关X0,以便随时停止每道工序的加工。,方法3:,上图是利用1个计数器结合比较指令实现的。不过使用计数器时必须结合时钟脉冲继电器,这里借助于0.1秒时钟脉冲继电器进行定时控制,再结合比较指令,进行顺序和循环控制,以完成工件的加工。,四、多台电动机顺序启动与逆序停止控制,某工业控制中有4台电动机,要求按规定的时间顺序启动,逆序关断。启动和关断用同一个按钮控制。启动时每隔15秒启动一台电动机,直到4台电动机全部启动运行。关断时按逆序进行,每隔20秒停一台电动机,直到4台电动机全都停止。4台电动机顺序启动与逆序停止控制的时序如下图所示。,根据控制要求,系统共需5个I/O点:一个输入点和4个输出点。I/O点的分配如下表所示。,4台电动机顺序启动与逆序停止控制的I/O点分配表,由于4台电动机的启动和停止都要按着一定的时间间隔顺序执行,可以采用步进指令并结合定时器进行程序设计。又因为启动和停止这两级程序中都要对同一输出继电器进行控制,因此,不能采用OT指令,而采用了SET和RST指令,以满足对同一输出继电器的重复操作。梯形图程序如左图所示。,五、锅炉点火和熄火控制 锅炉的点火和熄火过程是典型的定时器式顺序控制过程。控制要求:点火过程:先启动引风,5分钟后启动鼓风,2分钟后点火燃烧。熄火过程:先熄灭火焰,2分钟后停鼓风,5分钟后停引风。PLC的I/O点的确定与分配,锅炉点火和熄火控制PLC的I/O点分配表,编程分析和实现(1)点火过程 工作过程:当蓝按钮按下(X0接通)后,启动引风(Y0输出。因X0选用的是非自锁按钮,故需要利用自锁电路锁住Y0,同时利用Y0触发时间继电器T0,T0延时300s(5分钟)后,输出继电器Y1动作,即启动鼓风。同时利用T0触发定时继电器T1,T1延时120s(2分钟)后,输出Y2,点火燃烧。,锅炉点火过程控制程序,(2)系统的点火和熄火过程的综合程序 下面所示的两个程序都可以实现锅炉系统的点火和熄火过程控制,但实现的方式不同。图(a)程序利用了4个时间继电器,但程序的逻辑关系比较简单易懂。,(a)锅炉系统点火和熄火过程的综合程序,图(b)程序利用了2个时间继电器,节约了2个时间继电器,但控制逻辑相对复杂些。,(b)锅炉系统点火和熄火过程的综合程序,六、房间灯的控制 现在一些宾馆和家庭客厅中的装饰灯,是利用一个开关来实现不同的控制组合。例如,房间内有1,2,3号三个灯 按动一下开关,三个灯全亮;再按一下,1,3号灯亮,2号灭;再按一下,2号灯亮,1,3号灭;再按一下全部灭。此控制是利用按动开关次数来控制各个灯的亮、灭,故可以用计数器来实现计数式顺序控制。,房间灯控制PLC的I/O点分配表,房间灯计数式顺序控制程序,这里使用R9013是程序初始化的需要。一进入程序,就把十进制数3赋给SV100。从这以后R9013就不起作用了。在程序中使用微分指令是使X0具有非自锁按钮的作用。初始状态:EV100=3,R3通 Y1、Y2、Y3不通,3个灯全灭;第一次接通X0:EV100=2,R2通 Y1、Y2、Y3全通,3个灯全亮;第二次接通X0:EV100=1,R1通 Y1和Y3通,Y2断,故2号灭,1号和3号灯亮;第三次接通X0:EV100=0,R0通 Y2通,Y1和Y3断,故2号亮,1号和3号灯灭。EV100=0时,若再次闭合X0,则计数器复位,灯全灭,程序从头开始重复以上过程。,七、多地点控制 要求:在三个不同的地方分别用三个开关控制一盏灯,任何一地的开关动作都可以使灯的状态发生改变,即不管开关是开还是关,只要有开关动作则灯的状态就发生改变。,三地控制一盏灯I/O分配,从这个程序中不难发现其编程规律,并能很容易地把它扩展到四地、五地甚至更多地点的控制。但其设计方法完全靠设计者的经验,初学者不易掌握。,三地控制一盏灯程序(1),利用数字电路中组合逻辑电路的设计方法,使编程者有章可循。规定:输入量为逻辑变量,输出量为逻辑函数;常开触点为原变量,常闭触点为反变量。这样就可以把继电控制的逻辑关系变成数字逻辑关系。,三地控制一盏灯逻辑函数真值表,真值表按照每相邻两行只允许一个输入变量变化的规则排列。即三个开关中的任意一个开关状态的变化,都会引起输出Y0由“1”变到“0”,或由“0”变到“1”。由真值表写出输出与输入之间的逻辑函数关系式:,可设计出梯形图程序如下图所示:,三地控制一盏灯程序(2),使用高级指令可使程序更加简单。下图为应用高级指令F132编写的控制程序。,三地控制一盏灯程序(3),上面的程序只要开关动作(不管开关是接通还是断开),即将Y0求反。程序中每一开关使用了两个微分指令,既可检测上升沿又可检测下降沿,十分巧妙地实现了控制要求。对于这种编程方式,无论多少个地方,只要在梯形图中多加几个输入触点和几条微分指令就可实现控制要求。,三地控制一盏灯程序(4),使用条件比较指令,只要(WXO)(WRO),就把YO 求反。(WXO)(WRO),使两个寄存器中内容完全一样。只要WX0中的内容改变,YO的状态就立即变化。使用了字比较指令,故WXO中的16位都可以用来作为控制开关,使程序大大简化。,八、易拉罐自动生产线计数控制 在易拉罐自动生产线上,常常需要统计出每小时生产的易拉罐数量。罐装好的易拉罐饮料一个接一个不断地经过计数装置。假设计数装置上有一感应传感器,每当一听饮料经过时,就会产生一个脉冲。要求:编制程序将一天24小时中每小时生产的数量统计出来。,易拉罐计数控制PLC的I/O点分配表,易拉罐生产数量计数控制梯形图如下:,R9013:对程序初始化。DT0DT3:存放一天24小时每小时生产罐的数量;SV:记录每小时内的时间。IX作为地址修正值,当F35指令的操作数地址发生移动时,移动量为IX中的值。如:当IX=0时,F35指令将DT0的内容加1;当IX=10时,则将DT10的内容加1。,九、查找最大数 上例中,一天24小时内每小时生产的易拉罐数已分别存储在数据寄存器DT0DT23中。编程找出其中最大的数,存入DT24中,并将最大数所在寄存器的编号存入DT50中。要求:X0的上升沿开始查找,找到后,输出Y0表示查找完成。,查找最大数据梯形图,查找数据中的最大数,只需将数据区中的数据进行两两比较即可。索引寄存器IX:用作地址修正;R0:用来表示查找状态。未查找完时,R0一直接通,当查找结束时,R0断开。,十、中断控制电路,试设计一定时中断(软中断)控制电路,当输入X0接通时,要求输出继电器Y0接通10秒,断开10秒,如此反复直至X0变为OFF后停止。,定时中断控制电路,中断指令ICTL中,第一个参数S1设为H2,规定为“定时启动中断”。当中断控制信号X0接通时,中断控制程序24(INT24)执行的时间间隔由第二个参数S2决定,即每隔10s(K100010ms=10s)执行一次。在X0接通的上升沿,输出Y0为ON,其常闭触点Y0打开,内部断电器R1为OFF状态。经10s后,执行INT24IRET之间的程序。即R0为ON,Y0为OFF,R1为ON,则常开触点R0和R1闭合,定时器TM0开始计数,经过10s后,又重新开始执行INT24IRET之间的程序,使R0又为OFF,输出Y0又为ON。实现了定时控制中断。,