1.2.2 PLC的工作原理
(1)PLC控制系统的等效电路
图1-27是一个典型的机床继电器控制电路,KT是时间继电器;KM1、KM2是两个接触器,分别控制电机M1、M2的运转;SB1为停止按钮,SB2为启动按钮。控制过程如下:按下启动按钮SB2,电机M1开始运转,10s后,电机M2开始运转;按下停止按钮SB1,电机M1、M2同时停止运转。
图1-27 一个典型的机床继电器控制电路
在控制线路中,当按下SB2时,KM1、KT的线圈同时通电,KM1的一个常开触点闭合并自锁,M1开始运转;KT线圈通电后开始计时,10s后KT的延时常开触点闭合,KM2线圈通电,M2开始运转。当按下SB1时,KM1、KT线圈同时断电,KM2线圈也断电,M1、M2随之停转。
现用日本三菱公司生产的FX系列微型PLC来实现上述的控制功能,图1-28为改用PLC控制的等效电路图。在PLC的面板上有一排输入端子和一排输出端子,输入端子和输出端子各有自己的公共接线端子COM,输入端子的编号为X1、X2、…输出端子的编号为Y1、Y2、…停止按钮SB1、启动按钮SB2、热继电器FR1与FR2的一端接到输入端子上,另一端通过电源接到输入公共端子COM上;接触器KM1、KM2的线圈接到输出端子上,输出公共端子COM上接AC220V负载驱动电源。PLC控制的等效电路由三部分组成。
图1-28 将图1-27改用PLC控制的等效电路图
①输入部分:接收操作指令(由启动按钮、停止按钮、开关等提供),或接收被控对象的各种状态信息(由行程开关、接近开关、各种传感器信号等提供)。PLC的每一个输入点对应一个内部输入继电器,当输入点与输入COM端接通时,输入继电器线圈通电,它的常开触点闭合、常闭触点断开;当输入点与输入COM端断开时,输入继电器线圈断电,它的常开触点断开、常闭触点接通。
②控制部分:这部分是用户编制的控制程序,通常用梯形图的形式表示。用户控制程序放在PLC的用户程序存储器中。系统运行时,PLC依次读取用户程序存储器中的程序语句,对它们的内容进行解释并加以执行,有需要输出的结果则送到PLC的输出端子,以控制外部负载的工作。
③输出部分:根据程序执行的结果直接驱动负载。PLC的每一个输出点对应一个内部输出继电器,每个输出继电器仅有一个硬触点与输出点相对应。当程序执行的结果使输出继电器线圈通电时,对应的硬输出触点闭合,控制外部负载动作。
其PLC控制过程为:当按下SB2时,输入继电器X2的线圈通电,X2的常开触点闭合,使输出继电器Y1的线圈得电,Y1对应的硬输出触点闭合,KM1得电,M1开始运转;同时Y1的一个常开触点闭合并自锁;定时器T0的线圈通电开始计时,延时10s后KT的常开触点闭合,输出继电器Y2的线圈得电,Y2对应的硬输出触点闭合,KM2得电,M2开始运转。当按下SB1时,输入继电器X1的线圈通电,X1的常闭触点断开,Y1、T0的线圈均断电,Y2的线圈也断电,Y1、Y2对应的两个硬输出触点随之断开,KM1、KM2断电,M1、M2停转。
(2)PLC的工作原理
PLC采用循环扫描工作方式,其工作过程如图1-29所示。PLC通电后,有两种基本的工作状态,即运行(RUN)状态与停止(STOP)状态。在运行状态,PLC的工作过程分为内部处理、通信服务、输入处理、程序执行和输出处理5个阶段。在停止状态,PLC只进行内部处理和通信服务。
图1-29 PLC采用循环扫描工作
①内部处理阶段 在内部处理阶段,PLC复位监控定时器,运行自诊断程序(进行硬件检查、用户内存检查等)。检查正常后,方可进行下面的操作。如果有异常情况,则根据错误的严重程度报警或停止PLC运行。
②通信服务阶段 通信服务阶段又叫通信处理阶段、通信操作阶段或外设通信阶段。在此阶段,PLC与带微处理器的外部智能装置进行通信,响应编程工具键入的命令,更新编程工具的显示内容。
当PLC处于停止状态时,只执行以上两个阶段的操作;当PLC处于运行状态时,还要完成以下三个阶段的操作。
③输入处理阶段 输入处理阶段又叫输入采样阶段、输入刷新阶段或输入更新阶段。在此阶段,PLC中的CPU把所有外部输入电路的接通/断开(ON/OFF)状态通过输入接口电路读入输入映像寄存器(此时输入映像寄存器的状态被刷新),接着进入程序执行阶段。在输入处理阶段,如果外接的输入触点电路接通,对应的输入映像寄存器为“1”状态,梯形图中对应的输入继电器的常开触点接通,常闭触点断开;如果外接的输入触点电路断开,对应的输入映像寄存器为“0”状态,梯形图中对应的输入继电器的常开触点断开,常闭触点接通。在输入处理阶段完成后,输入映像寄存器与外界隔离,即使外部输入信号的状态发生了变化,输入映像寄存器的状态也不会随之而变。输入信号变化了的状态只有等到下一个扫描周期的输入处理阶段到来时才能通过CPU送入输入映像寄存器中,这种输入工作方式称为集中输入工作方式。
④程序执行阶段 PLC的用户程序由若干条指令组成,指令在存储器中按步序号顺序排列。在没有跳转指令时,则从第一条指令开始,逐条顺序地执行用户程序,直到用户程序结束之处;然后,进入输出处理阶段。在程序执行阶段,CPU对程序按从左到右、先上后下的顺序对每条指令进行解释、执行,则从输入映像寄存器、输出映像寄存器和元件映像寄存器中将有关编程元件的“0”/“1”(“OFF”/“ON”)状态读出来,并根据用户程序给出的逻辑关系进行相应的逻辑运算,运算的结果再写入到对应的输出映像寄存器和元件映像寄存器中。因此,各编程元件的映像寄存器(输入映像寄存器除外)的内容随着程序的执行而变化。
⑤输出处理阶段 输出处理阶段又叫输出刷新阶段或输出更新阶段。在此阶段,则将输出映像寄存器的“0”/“1”状态传送到输出锁存器,然后经输出接口电路和输出端子再传送到外部负载。在梯形图中,如果某一输出继电器的线圈“通电”,对应的输出映像寄存器为“1”状态,相应的输出锁存器也为“1”状态。信号经输出接口电路的隔离和功率放大后(继电器型输出接口电路中对应的硬件继电器的线圈通电,其常开触点闭合),驱动外部负载通电工作;反之,外部负载断电,停止工作。在输出处理阶段完成后,输出锁存器的状态不变,即使输出映像寄存器的状态发生了变化,输出锁存器的状态也不会随之改变。输出映像寄存器变化了的状态只有等到下一个扫描周期的输出处理阶段到来时才能通过CPU送入输出锁存器中,这种输出工作方式称为集中输出工作方式。
根据PLC的上述循环扫描工作过程,可以得出从输入端子到输出端子的信号传递过程,如图1-30所示。
图1-30 PLC从输入到输出的信号传递过程示意图
在输入处理阶段,CPU将SB1、SB2、FR1、FR2触点的状态读入相应的输入映像寄存器,外部触点接通时存入输入映像寄存器的是二进制数“1”,反之存入“0”。
在程序执行阶段,当执行第一条指令时,从输入映像寄存器X1、X2、X3、X4和输出映像寄存器Y1中读出二进制数进行逻辑运算(触点串联对应“与”运算,触点并联对应“或”运算),其运算结果写入输出映像寄存器Y1和元件映像寄存器T0中。当执行第二条指令时,从元件映像寄存器T0中读出二进制数,然后写入输出映像寄存器Y2中。
在输出处理阶段,CPU将各输出映像寄存器中的二进制数写入输出锁存器并锁存起来,再经输出电路传递到输出端子,从而控制外部负载动作。如果输出映像寄存器Y1和Y2中存放的是二进制数“1”,外接的KM1和KM2线圈将通电,反之将断电。
PLC的循环扫描工作方式为PLC提供了一条死循环自诊断功能。PLC内部设置了一个监控定时器WDT,其定时时间可由用户设置为大于用户程序的扫描周期,PLC在每个扫描周期的内部处理阶段将监控定时器复位。正常情况下,监控定时器不会动作,如果由于CPU内部故障使程序执行进入死循环,那么,扫描周期将超过监控定时器的定时时间,这时监视定时器动作,运行停止,以示用户。
综上所述,PLC虽具有微机的许多特点,但它的工作方式却与微机有很大不同。微机一般采用等待命令的工作方式,而PLC则采用循环扫描的工作方式。在PLC中用户程序按先后顺序存放,如图1-31所示。
图1-31 PLC循环扫描方式图
对每个程序,CPU从第一条指令开始执行,直至遇到结束符END后又返回第一条,如此周而复始不断循环,每一个循环称为一个扫描周期。扫描周期的长短主要取决于以下几个因素:一是CPU执行指令的速度;二是执行每条指令占用的时间;三是程序中指令条数的多少。一个扫描周期大致可分为I/O刷新和执行指令两个阶段,即:
所谓I/O刷新是指PLC先将上一次扫描的执行结果送到输出端,再读取当前输入的状态,也就是将存放输入、输出状态的寄存器内容进行一次更新,故称为“I(输入)/O(输出)刷新”。由于每一个扫描周期只进行一次I/O刷新,即每一个扫描周期PLC只对输入、输出状态寄存器更新一次,故使系统存在输入、输出滞后现象,这在一定程度上降低了系统的响应速度。由此可见,若输入变量在I/O刷新期间状态发生变化,则本次扫描期间输出会相应地发生变化。反之,若在本次刷新之后输入变量才发生变化,则本次扫描输出不变,而要到下一次扫描的I/O刷新期间输出才会发生变化。由于PLC采用循环扫描的工作方式,所以它的输出对输入的响应速度要受扫描周期的影响。PLC的这一特点,一方面使它的响应速度变慢,但另一方面也使它的抗干扰能力增强,对一些短时的瞬间干扰,可能会因响应滞后而躲避开。这对一些慢速控制系统是有利的,但对一些快速响应系统则不利,在使用中应特别注意这一点。
总之,采用循环扫描的工作方式,是PLC区别于微机和其他控制设备的最大特点,使用者对此应给予足够的重视。再如图1-32所示为一加电输出禁止程序,该程序运用了西门子PLC的特殊标志位存储器SM0.3。SM0.3为加电接通一个扫描周期,使M1.0置位为“1”,这时I2.0、I2.1无论处于什么状态,Q1.0和Q1.1均无输出。其PLC具体的循环扫描工作过程图与工作流程图如图1-33和图1-34所示。
图1-32 加电输出禁止程序
图1-33 PLC的循环扫描工作过程图
图1-34 PLC的工作流程图
(3)可编程控制器的扫描周期
PLC在运行状态时,执行一次扫描操作所用的时间称为扫描周期(工作周期),其典型值为几十毫秒。扫描周期T的计算公式为
T=T1+T2+T3+T4+T5
式中,T1为内部处理时间;T2为通信服务时间;T3为输入处理时间;T4为程序执行时间;T5为输出处理时间。
如日本三菱公司FX2-40MR型PLC,配置开关量输入24点,开关量输出16点,用户程序为1000步,不包含功能指令,PLC运行时不连接编程器等外设。FX2-40MR型PLC的I/O扫描速度为0.03ms/8点,用户程序的扫描速度为0.74μs/步,内部处理所需要的时间为0.96ms。则
内部处理所需要的时间为T1=0.96ms
通信服务所需要的时间T2=0ms
输入处理所需要的时间T3=0.03ms/8点×24点=0.09ms
程序执行所需要的时间T4=0.74μs/步×1000步=0.74ms
输出处理所需要的时间T5=0.03ms/8点×24点=0.06ms
一个扫描周期T为
T=T1+T2+T3+T4+T5=0.96ms+0ms+0.09ms+0.74ms+0.06ms=1.85ms
该例中假设用户程序中没有功能指令,而在实际的控制程序设计中,稍微复杂一点的程序都包含有功能指令。对于功能指令,逻辑条件满足与否,执行时间不同甚至差异较大,计算出的扫描周期也不一样。