4 编程指导
4.1 编程的基本原则 1)外部输入/输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用,无需用复杂的程序结构来减少接点的使用次数。 2)梯形图每一行都是从左母线开始,线圈接在最右边。接点不能放在线圈的右边,在继电器控制的原理图中,热继电器的接点可以加在线圈的右边,而PLC的梯形图是不允许的。见图4-1。
3)线圈不能直接与左母线相连。如果需要可以通过一个没有使用的内部继电器的常闭接点或者特殊内部继电器R9010(常ON)的常开触点来连接。见图4-2。
4)同一编号的线圈在一个程序中使用两次称为双线圈输出。双线圈输出容易引起误操作,应尽量避免线圈的重复使用。 5)梯形图必须符合顺序执行的原则,即从左到右,从上到下地执行。不符合顺序执行的电路不能直接编程,如图4-3所示的桥式电路就不能直接编程。
6)在梯形图中串并联接点的使用次数没有限制,可无限次地使用。见图4-4。 7)两个或两个以上的线圈可以并联输出。见图4-5。
补充:要考虑输入/输出的滞后现象 设外部触点X0闭合 对于图(a)第一次进入扫描循环时,虽然外部触点X0已经闭合,但第一个扫描到的触点是R0,这时R0是断开的,所以代表输出继电器Y0的映象寄存器是OFF。当扫描到梯形图第二行的X0触点时,由于在输入采样阶段已将X0的输入映象寄存器转为ON,所以将内部继电器R0接通。尽管R0此时已经接通,但由于扫描顺序的关系,它的触点在上一行,故代表输出继电器Y0的映象寄存器仍然是OFF。扫描过程结束,进入输出刷新阶段,输出继电器Y0没有通电。 * 第二次进人扫描循环时,这一次触点R0是接通的,代表输出继电器Y0的映象寄存器转为ON。当扫描梯形图过程结束后,进入输出刷新阶段,输出继电器Y0通电。 对于图(b),结果就不一样了,按上述过程分析,当第一个扫描周期结束后,输出继电器Y0就通电了。
4.2 编程技巧 梯形图编写的顺序应体现“左沉右轻、上沉下轻”的原则,即串联触点较多的电路编在梯形图的上部,并联触点多的电路应尽量靠近左母线。 1)把串联触点较多的电路编在梯形图的上方,如图4-6。
2)并联触点多的电路应放在左边,如图 4-7所示 。
避免画出无法编程的梯形图 3)桥式电路编程。图4-3所示的梯形图是一个桥式电路,不能直接对它编程,必须重画为图4-8所示的电路才可进行编程。 图4-8 梯形图程序
梯形图的逻辑关系应该简单、清楚 4)复杂电路的处理。如果梯形图构成的电路结构比较复杂,用ANS、ORS等指令难以解决,可重复使用一些触点画出它的等效电路,然后再进行编程就比较容易了,如图4-9所示。
4.3 基本电路的编程 (一)启动和复位电路(自锁电路或自保持电路) 在PLC的程序设计中,启动和复位电路是构成梯形图的最基本的常用电路。 4.3 基本电路的编程 (一)启动和复位电路(自锁电路或自保持电路) 在PLC的程序设计中,启动和复位电路是构成梯形图的最基本的常用电路。 用输入继电器和输出继电器编制的梯形图如图4-10a所示。用输入继电器和锁存继电器编制的梯形图如图4-10b所示。其输入输出波形图如图4-10c所示。
(二)触发电路 采用DF指令构成触发器电路如图4-11所示。在输入X0信号的控制下,输出Y0不断翻转(ON / OFF )
(三)二分频电路 采用DF指令构成的二分频电路如图4-12所示。 在t0时刻输入X1接通前沿,内部继电器R0接通一个扫描周期T,输出Y1接通,常开点Y1闭合。当输入X1的第二个脉冲到来时,内部继电器R1接通,其常闭触点R1打开使Y1断开。从图4-12的波形图中可以看出,输出Y1波形的频率为输入X1波形频率的一半。
(四)延时接通电路 输入端X0接不带自锁按钮开关,延时接通电路如图4-13所示。 当输入X0端的输入接通时,输入继电器的线圈X0接通,其常开触点X0闭合,内部继电器R0接通,其常开触点R0闭合,接通定时器T0,T0的设定值K50开始递减,减为零时,T0的常开触点闭合,输出继电器Y0延迟5s后接通。当输入端X1接通后,内部继电器R0断电,其常开触点R0断开,定时器T0复位,其输出的常开触点T0断开,使输出Y0为OFF。
(五)延时断开电路 图4-14是输入X0端接不带自锁按钮的延时断开电路。当输入X0端接通,内部继电器R0线圈接通,其常开触点R0闭合,输出Y0接通,同时定时器T0开始计时,延时5s后,常闭触点打开,输出Y0线圈断开。
课堂作业 设计一种电路,使其X0接通时,Y0立即接通;而X1断开时, Y0要延时6s后再断开。请画出这种电路的控制梯形图。
(六)长时间延时电路 1.采用定时器和计数器组成的电路 当X0端接通(自锁),T0开始计时,经过10s后,其T0的常开触点闭合,计数器CT100开始递减计数,与此同时T0的常闭触点打开,T0线圈断电,常开触点T0打开,计数器CT100仅计数一次,而后T0开始重新计时,如此循环 ……。当CT100计数器经过10s×20=200s后,计数器CT100有输出,其常开触点C100闭合,输出Y0接通。显然,输入X0端接通通后,延时10 s×20后输出 Y0接通,如图4-16所示。
2.采用两个或两个以上计数器组成的电路 图4-17是由两个计数器组成的延时电路。输入X0端接通后,CT100开始计数,经过20s后,CT100有输出,其常开触点闭合,CT101计数一次,CT100复位,又经过20s,CT101计数二次……,如此循环经过 20 s×30= 600s后,CT101有输出,其常开触点 C101闭合,接通输出继电器Y0。
(七)顺序延时接通电路 1.采用计数器的电路 采用计数器编写的梯形图如图4-18所示。 当输入 X0端接通时,计数器 CT100、 CT101、 CT102分别开始计数。经10s,CT100有输出,使常开触点CT100接通,输出继电器Y0为ON;经20s,CT101有输出,使输出Y1为ON;经过30s,CT102有输出,使输出 Y2为 ON,完成了顺序延时的控制功能。
2.采用计数器和比较指令(F60CMP)构成延时接通电路 在较大的程序中,如果采用计数器定时的个数不够时,可用计数器与比较指令组合编程,其编程电路如图4-19所示。 CT100被定时于30s,用两个F60CMP指令来监视它的当前值。当输入X0端接通时,CT100开始减计数,经10s(即 CT100的当前值为K20),R900B为ON,因而输出继电器Y0为ON。 当CT100的当前值为K10时,R900B再次为ON,输出Y1为ON;经过30s,输出继电器Y2变为ON。显然只用了一个CT100即可完成顺序延时接通的功能。
(八)连锁控制 1.不能同时动作的连锁控制如右图所示。在这个控制线路中,无论先接通哪一个继电器后,另外一个继电器都不能通电。也就是说两者之中任何一个启动之后都把另一个启动控制回路断开,从而保证任何时候两者都不能同时启动。
2.以一方的动作与否为条件的连锁控制见右图。继电器Y1能否通电是以继电器Y0是否接通为条件的。将Y0作为连锁信号串在继电器Y1的控制线路中,只有继电器Y0通电后,才允许继电器Y1动作。继电器Y0断电后,继电器Y1也随之断电。在Y0闭合的条件下,继电器Y1可以进行启动和停止。
3.总操作和分别操作控制程序。 在一些生产线上常常要求提供生产线的设备是既能单机启停,又能所有设备总启停的控制。这种连锁控制的梯形图如下页图所示。
在梯形图中, X1为选择开关,当 X1= 1时,为单机启动控制;当 X1= 0时,为集中启动控制。在两种情况下,单机和总控制都能发出停止命令。
4.下面给出的是只用两个开关就能实现独立控制四个输出的控制程序,控制梯形图如下图所示。 只要改变输入触点X0、X1的状态,就可以独立控制四个输出继电器Y0、Y1、Y2和Y3的通断。
(九)时间控制 1.延时断开控制 图(a),当X0闭合后,立即启动定时器,接通输出继电器Y0。延时3s以后,不管X0是否断开,输出继电器Y0都断电。 图(b),当 X0闭合后,输出继电器 Y0立即接通,但定时器不能启动,只有将 X0断开,才能启动定时器。从X0断开后算起,延时3s后输出继电器Y0断电。
2.闪烁控制 图示的梯形图是一闪烁控制线路。其功能是输出继电器Y0周期性接通和断开。所以此电路又称振荡电路。 当X0闭合后(自锁),输出继电器Y0闪烁,接通和断开交替进行,接通时间1s由定时器T1决定,断开时间1s由定时器T0决定。
3.长延时控制 在许多场合要用到长延时控制,但一个定时器的定时时间毕竟是有限的,所以将定时器和计数器结合起来,就能实现长延时控制。下图给出了一个长延时控制的梯形图。 定时器T0的延时时间为1h,计数器的计数初值定为10,每过1 h,T0闭合一次,计数器CT减1,T0闭合10次,计数器控制触点C100动作,输出继电器Y0接通。长延时时间为10h。 K
(十)顺序控制 1.连锁式顺序步进控制 连锁式顺序步进控制是将前一个动作的常开触点串联在后一个动作的启动线路中,作为后一个动作发生的必要条件。同时将代表后一个动作的常闭触点串入前一个动作的关断线路里。这样,只有前一个动作发生了,才允许后一个动作发生,而一旦后一个动作发生了,就立即迫使前一个动作停止,因此,可以实现各动作严格地依预定的顺序逐步发生和转换,保证不会发生顺序的错乱。
图中使用了特殊内部继电器R9013这是一个初始闭合继电器,只在运行中第一次扫描时闭合,从第二次扫描开始断开并保持断开状态。在这里使用R9013是程序初始化的需要。一进入程序,输出继电器Y0就通电。从这以后R9013就不再起作用了。 在程序中使用微分指令是使X0、X1、X2和X3具有按钮的功能,若X0、X1、X2和X3就是按钮的话,微分指令可以去掉。
2.定时器式顺序控制 动作的发生是在定时器的控制下自动按顺序一步步进行的。下一个动作发生时,自动把上一个动作关断。这样,一个动作接着一个动作发生。在实际工程应用中,常用于设备的顺序启动的控制。
四个动作分别由Y0、Y1、Y2和Y3代表,当闭合启动控制触点X0后,输出继电器Y0接通,延时5s后,Y1接通,再延时5s后,Y2接通,又延时5s,最后Y3接通。 Y3接通并保持5s后,Y0又接通,以后就周而复始,按顺序循环下去。X1是停止控制触点。
4.4 编程举例
例一:运料小车的控制 输入: X0—停车按钮 X3—A点行程开关 X4—B点行程开关 X1—正转起动按钮(后退) X2—反转起动按钮(前进) (反转) (正转) 运料小车如图4-28所示,动作要求如下: l)小车可在A、B两地分别起动。小车在中途起动后自动返回A地,停止1 min等待装料,然后自动向B地运行。到达B地后,停车1 min等待卸料,然后再自动返回 A地。如此往复。 2)小车在运行过程中,均可用手动开关令其停车。再次起动后,小车重复1)中的内容。 3)小车在前进或后退过程中,分别由指示灯显示其行进的方向。 输出: Y1—正转继电器 Y2—反转继电器 Y1—正转指示灯 Y2—反转指示灯 内部: T1—装料延时继电器 T2—卸料延时继电器
I/O分配表 输入:X0(停车) 输出:Y1(正转继电器) ? X1(正转—后退) X2(反转—前进) X3(A点行程开关) X4(B点行程开关) 输出:Y1(正转继电器) Y2(反转继电器) Y3(正转指示灯) Y4(反转指示灯) 共需9个I/O点:5个输入、4个输出。其它均可由内部继电器代替。 梯形图中T1和T2是PLC内部定时器,可作为时间继电器,它们有自己的常开、常闭接点,这里的T1和T2常开接点分别作为装料和卸料延时。根据控制要求,延时的时间应该是60s。 ?
例二:顺序控制 图4-34中所示为由两组带机组成的原料运输自动化系统,该自动化系统起动顺序为:盛料斗D中无料,先起动带机C,13s后再起动带机B,经过14s再打开电磁阀YV,试完成梯形图设计。
I/O分配 该自动化系统停机的顺序恰好与起动顺序相反,为简化本例,不考虑停机的顺序。据此设计的继电器控制电路如下。 输入: X1(停车) 输出: Y1(M2驱动继电器) Y2(M1驱动继电器) Y3(YV驱动继电器)
作 业 将书中p226-227,图4-34的原料运送自动化系统改为顺序启动,逆序停止系统。画出其梯形图。 顺序启动,逆序停止 作 业 起动按钮X2 停止按钮X1 将书中p226-227,图4-34的原料运送自动化系统改为顺序启动,逆序停止系统。画出其梯形图。 顺序启动,逆序停止 起动时,按X2,立即起动M2,13s后起动M1,再经过14s后打开YV。 停止时,按X1,立即停止YV, 14s后再停止M1,再经过13s后停止M2。 Y1与Y2相隔13s Y2与Y3相隔14s (Y3) (Y2) (Y1)
补充例三:三地控制电动机的启停 三地控制的要求是在三个不同的地方控制电动机的启动和停止。每个地方有一个启动按钮、一个停止按钮。 控制过程是按下启动按钮,电动机启动旋转,按钮弹起,电动机保持旋转;按下停止按钮,电动机停止旋转。 下面给出两个方案。
方案一 I/O的分配 输入点:X0:A地启动按钮 X1:B地启动按钮 X2:C地启动按钮 X3:A地停止按钮 X4:B地停止按钮 输出点:Y0:接触器 方案一
无论哪个方案,都是停止按钮串在一起,启动按钮并在一起。 方案二 无论哪个方案,都是停止按钮串在一起,启动按钮并在一起。
补充例四:单按钮控制电动机的启停 单按钮控制的要求是只用一个按钮就能控制一台电动机的启动和停止。控制过程是按一次按钮电动机启动,并保持运转。再按一次按钮,电动机就停止。 这个控制程序非常有实用价值,因为可编程控制器的输入触点是有限的,往往在一些复杂的控制中,需要很多的输入触点,利用这个程序就可以将一个触点当成两个触点用。 给出四个方案。
方案一 I/O的分配: 输入点:X0:SB(按钮) 输出点:Y0:KM(接触器) 第1次:按下X0—Y0通,R0不通;松开X0—Y0不变(通),R0通; 第2次:按下X0—Y0断,R0不变(通);松开X0—Y0不变(断),R0断;
方案二 触点X0为计数触发信号,触点C100为复位触发信号。当X0第一次闭合时,接通Y0,并保持,经过值区EV 100的内容由2减为1。当X0第二次闭合时,经过值区EV100的内容由1减为0,常闭触点C100断开,断开Y0,与此同时常开触点C100闭合,计数器复位,为下一次X0的闭合做准备。
方案三 POPS
方案四 在该线路中,使用了位操作指令F132(BTI),这个高级指令的功能是当检测到控制信号的上升沿时,将指定的寄存器(本例是WY0)中的某一位求反(本例中是WY0D的第0位即Y0)。 位操作指令F132(BTI)相当有用,请留意。p176-177
补充例五:报警控制 报警电路的控制要求: 当报警开关S1(X0)闭合时,要求报警:警灯闪烁,警铃响。 开关S2(X1)为报警响应开关,当S2(X1)接通后,报警灯从闪烁变为常亮,同时报警铃关闭。 开关S3(X2)为警灯测试开关,S3(X2)接通,则警灯亮。
图中,定时器T0和T1构成警灯的闪烁控制,每隔0.5s亮一次,亮一次的时间也为0.5s。 当报警响应开关闭合后,X1=ON时,内部继电器R0接通。R0的接通导致了报警灯支路中的常开触点R0闭合,将定时器T0的触点短路,使警灯由闪烁变成常亮。与此同时,串在警铃支路中的常闭触点R0断开,切断警铃。如果将报警开关断开,X0=OFF,警灯熄灭。 I/O的分配: 输入: X0:S1(报警开关:警灯闪烁,警铃响) X1:S2(报警响应开关:警灯常亮,警铃关闭) X2:S3(警灯测试开关) 输出: Y0:警灯。 Y1:警铃 XO通 T0计时 0.5s后T0通 T1计时 0.5s后T1通 T0断 T1断 (Y0 通) (Y0 断)
补充例六:三地控制一盏灯 这个电路的控制要求是用三个开关分别在三个不同的位置(每个地方只有一个开关)控制一盏灯。在三个地方的任何一地,利用开关都能独立地开灯和关灯。 设计这个程序的要点是注意每个开关无论闭合或断开,都有可能将灯点亮或熄灭。也就是说开关闭合并不一定是将灯点亮,开关断开也并不一定是将灯熄灭。 I/O的分配: 输入点:X0:S1(A地开关) X1:S2(B地开关) X2:S3(C地开关) 输出点:Y0(电灯)
方案一 三地控制一盏灯的梯形图
方案二 根据逻辑表达式,画出的三地控制一盏灯的梯形图
方案三 这里又使用了位求反指令F132(BTI),三个开关中的任意一个开关不论闭合还是断开,只要是扳动开关,都能将字WY中的Y0位求反,从而达到控制一盏灯的目的。对于这种编程方式,无论多少个地方,只是在梯形图中多加几个输入触点和几条微分指令罢了。
方案四 在此程序中,使用了字比较指令,只要WX0中的内容同WR0中的内容不同,就执行Y0的求反。程序的最后又执行了把WX0的内容送WR0的操作,因此这时WX0中的内容同WR0中的内容完全一样。以后只要WX0中内容改变,Y0的状态立刻就发生变化。这个程序的奥妙之处是不止三地控制一盏灯,而是十六个地方控制一盏灯(因为WX0有16位),奇妙的是只用了三条指令。
自学“电梯控制”p227-231 或“实验十二”p378-379 第四章 结 束
(十一)顺序循环执行电路 1.采用左/右移位寄存器F119(LRSR)指令构成的电路 要使输出继电器Y0、Y1、Y2……Y8,按顺序分别接通1s,并循环执行,可采用移位寄存器 F119 LRSR指令,其编程电路如图4-20所示。 当启动开关接通输入X0时,其输入X0接通的上升沿,内部继电器R0线圈接通,使常开触点R0闭合。传送指令 F0 MV将十进制常数K1送至字输出继电器WY0,使 Y0为ON,在移位寄存器F119 LRSR的作用下,使输出继电器Y0、Y1、Y2……Y8按顺序分别接通1s,当Y8接通时,又使输出继电器Y0为ON,并如此循环下去,完成了顺序循环执行的功能。
2.利用CMP( F60)指令监视定时器的当前值,构成顺序循环执行电路 定时器TM0的设定值为 30s,用 CMP(F60)比较指令来监视TM 0的当前值,构成的顺序循环执行电路如图4-21所示。 在X0接通后,当定时器 TM0的经过值为 20s<EV0<30s时,第一个R900A为ON,输出 Y0为ON;当TM0的经过值为10s< EV0<20s时,第一个R900A为OFF,YO为OFF,而第二个R900A为ON,Y1为ON,再经过10s,TM0的经过值为 0<EV0<10s时,两个R900A均为OFF,输出Y2为ON,此时Y0和Y1为OFF,显然,X0接通后,Y0运行10s后为OFF,接通Y1,运行10s为OFF,接着Y2运行10s后为OFF,接着Y0运行10s后为OFF……如此循环。 之所以该电路能循环执行,就是由于定时器设有常闭触点T0的结果。
(十二)报警电路 报警电路如图4-22所示。本例是以一个展厅中只能容纳10人,超过10人就报警,展厅进口装设一传感器分配给X0,利用加1指令实现进人展厅1人进行加1计数,展厅出口装设一传感器分配给X1,利用减1指令,每次从出口出去一个人进行减 1计数。最后采用比较指令,一旦数据寄存器DT0中的内容大于等于10时,输出继电器 Y0为 ON,接通报警器报警(DT0内数据代表了展厅的人数)。 特殊内部继电器R9013这是一个初始闭合继电器,只在运行中第一次扫描时闭合,从第二次扫描开始断开并保持断开状态。用此来实现初始化。