1.2 用一般指令编写的基本控制程序

实际的PLC程序是由这些基本程序扩展和叠加而成的。因此,如果掌握了这些基本控制程序的设计原理和编程技巧,对于编写一些大型的、复杂的应用程序是非常有利的。在编写PLC程序的过程中,除了正确应用这些基本控制程序外,还应注意控制程序之间的配合和程序中的顺序问题。

【例1-2-1】启—保—停电路

梯形图如图1-2-1所示,程序执行过程如下所述。

1)启动

2)停止

图1-2-1 启—保—停电路的梯形图和时序图

如图1-2-2所示为利用置位、复位指令编写的另一种启—保—停电路的梯形图和时序图。当◎00001[1]闭合时,执行置位指令SET[1],使10000[1]得电,而00001[1]断开时,10000[1]继续保持得电状态;当◎00002[2]闭合时,执行置位指令RSET[2],使10000[1]失电,而00002[2]断开时,10000[2]继续保持失电状态。

图1-2-2 用置位、复位指令编写的启—保—停电路的梯形图和时序图

【例1-2-2】瞬时接通、延时断开电路之一

瞬时接通、延时断开电路的梯形图和时序图如图1-2-3所示。该电路能实现在外部输入信号为ON时,立即产生相应的输出信号,而当外部输入信号变为OFF时,需要延时一段时间,输出信号才为OFF。其指令语句表如表1-2-1所示。

图1-2-3 瞬时接通、延时断开电路(一)的梯形图和时序图

表1-2-1 瞬时接通、延时断开电路(一)指令语句表

程序执行过程:

【例1-2-3】瞬时接通、延时断开电路之二

梯形图和时序图如图1-2-4所示。

图1-2-4 瞬时接通、延时断开电路(二)的梯形图和时序图

程序执行过程:

【例1-2-4】延时接通、延时断开电路之一

梯形图和时序图如图1-2-5所示。电路用00000控制10001,要求在00000变为ON,再过3s后,10001才变为ON,即延时接通;00000变为OFF,再过5s后,10001才变为OFF,即延时断开。10001用启—保—停电路来控制。

程序执行过程:

1)延时接通

图1-2-5 延时接通、延时断开电路(一)的梯形图和时序图

【例1-2-5】延时接通、延时断开电路之二

如图1-2-6所示为该电路的梯形图。

图1-2-6 延时接通、延时断开电路(二)的梯形图

程序执行过程:

1)延时接通

2)延时断开

【例1-2-6】定时器自复位的脉冲信号产生电路

定时器自复位的脉冲信号产生电路梯形图如图1-2-7所示。

程序执行过程:

图1-2-7 定时器自复位的脉冲信号产生电路的梯形图和时序图

【例1-2-7】利用微分指令产生单脉冲电路

在实际应用中,常用单个脉冲来控制系统的启动、复位、计数器的清零和计数等。在PLC程序设计中,经常用单个脉冲进行一些软继电器的复位、启动和停止。单脉冲往往是在信号变化时产生的,最常用的产生单脉冲的程序就是使用DIFU和DIFD指令实现,利用这两条指令可以得到宽度为PLC一个扫描周期的单脉冲,如图1-2-8和图1-2-9所示。

图1-2-8 上升沿产生单脉冲的梯形图和时序图

图1-2-9 下降沿产生单脉冲的梯形图和时序图

【例1-2-8】顺序脉冲发生电路

如图1-2-10(a)所示为用三个定时器产生一组顺序脉冲的梯形图,顺序脉冲时序图如图1-2-10(b)所示。

图1-2-10 顺序脉冲发生电路的梯形图与时序图

程序执行过程:

【例1-2-9】使用多个定时器接力组合的扩展定时电路

梯形图和时序图如图1-2-11所示。按下启动按钮00000后,要求10000和10001按图1-2-11(b)中的时序工作。用TIM000、TIM001和TIM002对三段时间定时。启动按钮提供给00000的是短信号,为了保证定时器的线圈有足够长的“得电”时间,用启—保—停电路控制01600。

图1-2-11 使用多个定时器接力组合的扩展定时电路的梯形图和时序图

程序执行过程:

【例1-2-10】使用定时器与计数器组合扩展定时范围

CQM1H系列定时器的最长定时时间为999.9s,如果需要更长的定时时间,可使用如图1-2-12所示的电路。当00002为OFF时,◎00002[1]断开、#00002[2]闭合,TIM000[1]和CNT000[2]处于复位状态,它们不能工作。当00002为ON时,◎00002[1]闭合,TIM000[1]得电,开始计时。300s(即5min)后,0.1s定时器TIM000[1]的定时时间到,其当前值等于设定值,#TIM000[1]断开,使它自己复位,复位后TIM000[1]的当前值变为0,同时#TIM000[1]复位闭合,使它自己重新得电,又开始定时。TIM000[1]将这样周而复始地工作,直到00002变为OFF。从上面的分析可知,梯级1是一个脉冲信号发生器,脉冲周期等于TIM000的设定值。

产生的脉冲列送给CNT000[2]进行加1计数,当减满30000个数(即25000h)后,CNT000[2]的当前值等于0,其动合触点◎CNT000[3]闭合,使10000[3]得电。设TIM000和CNT000的设定值分别为KT和KC,对于100ms定时器,总的定时时间为T=0.1KTKC(s)。

图1-2-12 定时范围的扩展

【例1-2-11】多个定时器串级使用的长定时电路

定时器串级使用时,其总的定时时间为各定时器定时时间之和。其梯形图和时序图如图1-2-13所示。

图1-2-13 多个定时器串级使用的长定时电路的梯形图和时序图

程序执行过程:

【例1-2-12】一个定时器和多个计数器连接,形成的长定时电路

该电路的梯形图如图1-2-14所示。在输入信号00000接通后,TIM038每隔1min产生一个脉冲,是分钟计时器。CNT000每小时产生一个脉冲,是小时计时器。当5h计时时间到时,CNT001为ON,这时CNT002再计时20min,10000为ON,即总计时时间为5h20min。经过5h20min后将输出继电器10000置位。

初始化脉冲25315和外部复位按钮00001对计数器起复位作用。

图1-2-14 一个定时器和多个计数器连接的长定时电路的梯形图

程序执行过程:

1)1min计时器

5)停止工作与复位

【例1-2-13】单故障报警控制

梯形图如图1-2-15所示,时序图如图1-2-16所示,PLC的I/O接线如图1-2-17所示。

图1-2-15 单故障报警控制的梯形图

图1-2-16 单故障报警控制的时序图

图1-2-17 PLC的I/O接线

程序执行过程:

1)TIM037[1]和TIM038[2]组成闪烁电路,使故障指示灯闪烁

3)报警灯检测、蜂鸣器检测

【例1-2-14】多故障报警控制

在实际工程应用中,出现的故障可能不仅一个,而是多个,在声光多故障报警控制程序中,一种故障对应一个报警指示灯,多种故障共用一个报警蜂鸣器。

当任何一种故障发生时,按该故障的消除蜂鸣器按钮后,不能影响其他故障发生时报警蜂鸣器的正常鸣响。多故障报警控制梯形图如图1-2-18所示。

图1-2-18 多故障报警控制梯形图

由于需要处理8个故障,因此使用了8个故障报警灯电路[3~10]与8个消铃电路[11~18]。

比较图1-2-18和图1-2-15可看出,如图1-2-18所示的脉冲信号发生器、故障1~8的报警灯控制及故障1~8的消铃电路与图1-2-15完全相同,只是蜂鸣器电路有所不同。由于只使用一个蜂鸣器电路,因此需将控制各消铃的支路并联,控制10010[19]。

图1-2-18中故障1用输入信号的◎00000[3、11、19]表示;故障8用00007的◎00007[10、18、19]表示;00010[11~18]为消除报警灯按钮;◎00011[3~10、19]为试报警灯、试蜂鸣器按钮。故障1指示灯用信号10000[3]输出;故障8指示灯用信号10007[10]输出;10010[19]为报警蜂鸣器输出信号。

【例1-2-15】集中与分散控制

在多台单机组成的自动线上,有在总操作台上的集中控制和在单机操作台上分散控制的联锁。梯形图如图1-2-19所示。00002为选择开关,以其触点为集中控制与分散控制的联锁触点。当00002为ON时,为单机分散启动控制;当00002为OFF时,为集中总启动控制。在两种情况下,单机和总操作台都可以发出停止命令。

00001为总停止或集中控制按钮,00003为集中控制启动按钮,00010、00011分别为单机A的启动、停止按钮,00020、00012为单机B的启动、停止按钮。

图1-2-19 集中与分散控制的梯形图

1)集中控制

(1)启动:

(2)同时停止:

分别停止:当00011[3]、00012[4]分别得电时,◎00011[3]、◎00012[4]分别断开,可使10010、10020分别失电,实现分别停止的控制要求。

2)分散控制

(1)启动:

(2)单机A分散控制:

当00010为ON时→◎00010[3]闭合(由于◎00002[3]已闭合)→10010[3]得电并自锁

(3)单机B分散控制:

当00020为ON时→◎00020[4]闭合(由于◎00002[4]已闭合)→10020[4]得电并自锁

(4)总停止:

当00001为ON时→10000[1]为ON→#10000[3]、#10000[4]均断开→使10010[3]、10020[4]均失电

(5)分别停止:

当00011为ON时→#00011[3]断开→10010[3]失电

当00012为ON时→#00012[4]断开→10020[4]失电