机器自动化控制器原理与应用
上QQ阅读APP看书,第一时间看更新

1.4 PLC的工作原理

1.4.1 PLC的循环扫描工作过程

各种PLC都采用扫描工作方式,具体工作过程大同小异。下面以欧姆龙公司的小型机CP1为例,介绍PLC的工作过程。如图1-5a所示,PLC上电后,首先进行初始化,然后进入循环工作过程。一次循环过程可归纳为5个工作阶段,如图1-5b所示。一次循环所用的时间称为一个工作周期(或扫描周期),其长短与用户程序的长短以及PLC本身的性能有关,其数量级为ms级,典型值为几十ms。

978-7-111-44136-6-Chapter01-5.jpg

图1-5 PLC工作流程图

各阶段完成的任务如下:

1)公共处理:进行硬件检查、用户程序内存检查和电池异常检查等。检查正常后,方可进行下面的操作。如果有异常情况,则根据错误的严重程度发出报警或停止PLC运行。

2)程序执行:在程序执行阶段,CPU按先左后右,先上后下的顺序对每条指令进行解释、执行,CPU从输入映像寄存器(每个输入继电器对应一个输入映像寄存器,其通/断状态对应1/0)和元件映像寄存器(即与各种内部继电器、输出继电器对应的寄存器)中读出各继电器的状态,根据用户程序给出的逻辑关系进行逻辑运算,运算结果再写入元件映像寄存器中。

3)扫描周期计算处理:若设定扫描周期为固定值(可由用户在PLC设置中设定),则进入等待循环,直到该固定值到,再往下进行。若设定扫描周期为不定的(即决定于用户程序的长短等,为不定值),不等待,接着进行扫描周期的计算。

4)I/O刷新:在此阶段,进行I/O刷新。输入刷新时,CPU从输入电路中读出各输入点状态,并将此状态写入输入映像寄存器中;输出刷新时,将输出继电器的元件映像寄存器的状态(1/0)传送到输出锁存电路,再经输出电路隔离和功率放大,驱动外部负载。

5)外围设备服务:包括USB端口通信、串行端口通信、存储盒访问,以及通信单元的链接服务等。

根据上述PLC的工作过程,可以得出从输入端子到输出端子的信号传递过程如图1-6所示。若输入端子外接开关状态有变化,则此变化反映到输入电路的输出端;在I/O刷新阶段,CPU从输入电路的输出端读出各路状态,并将其写入输入映像寄存器;在程序执行阶段,CPU从输入映像寄存器和元件映像寄存器中读出各继电器的状态,并根据此状态执行用户程序,执行结果再写入元件映像寄存器中;在紧接着的下一个I/O刷新阶段,将输出映像寄存器的状态写入输出锁存电路,再经输出电路传递到输出端子,从而控制外接器件动作。

978-7-111-44136-6-Chapter01-6.jpg

图1-6 从输入到输出的信号传递过程

PLC的循环扫描工作方式也为PLC提供了一条死循环自诊断功能。PLC内部设置了一个监视定时器WDT,其定时时间可由用户设置为大于用户程序的扫描周期,PLC在每个扫描周期的公共处理阶段将监视定时器复位。在正常情况下,监视定时器不会动作,如果由于CPU内部故障使程序执行进入死循环,那么扫描周期将超过监视定时器的定时时间,这时监视定时器动作,运行停止,以示用户。

在循环扫描过程中,有时需要立即对某个信息进行处理,以加快响应速度,为此,PLC中引入中断功能,设有内置输入中断、定时中断、高速计数器中断、外部中断等,PLC在循环扫描的各个阶段都可以响应中断信号。

1.4.2 PLC的I/O滞后现象

PLC有很多优越特性,但也有不足之处,其中之一就是PLC的I/O有响应滞后现象。产生I/O滞后现象的原因主要有3个方面:

1)输入滤波器有时间常数。输入电路中的滤波器对输入信号有延迟作用,时间常数越大,延迟作用越大。

2)输出继电器有机械滞后。从输出继电器的线圈通电到其触点闭合有一段时间,这是输出电路的硬件参数,如CP1输出继电器的滞后时间为15ms。

3)PLC循环操作时,进行公共处理、I/O刷新和执行用户程序等产生扫描周期。

在图1-7a给出的梯形图中,从输入触点闭合到输出触点闭合有一段延迟时间,称为I/O响应时间。图1-7b为最小I/O响应时间,在I/O刷新阶段,输入信号已经在输入电路的输出端反映出来,CPU将其写入输入映像寄存器,经过程序执行后,结果在随后扫描周期的I/O刷新阶段被输出,在这种情况下,I/O响应时间最小,为输入ON时间、一个扫描周期和输出ON时间之和。图1-7c为最大I/O响应时间,在I/O刷新阶段刚结束,输入信号恰好在输入电路的输出端反映出来,由于错过了I/O刷新阶段,CPU不能读取,而要等到第一个扫描周期的I/O刷新阶段,才能被CPU写入输入映像寄存器,经过程序执行后,结果在第二个扫描周期的I/O刷新阶段被输出,在这种情况下,I/O响应时间最大,为输入ON时间、两个扫描周期和输出ON时间之和。

以CP1为例,I/O响应时间计算如下:

输入ON延时: 8ms(默认设置)

公共处理+I/O刷新时间: 2ms

程序执行时间: 14ms

输出ON延时: 15ms

最小I/O响应时间=8+(2+14)+15ms=39ms

最大I/O响应时间=8+(2+14)×2+15ms=55ms

由于PLC是在循环扫描的I/O刷新阶段才对I/O更新的,PLC这种集中输入、集中输出的刷新方式是造成输出滞后输入的原因之一。对一般工业控制设备来说,这些滞后现象是完全允许的。但某些场合下,需要输出对输入做出快速响应,PLC提供以下措施:

1)执行I/O刷新指令。CP1设置了I/O刷新指令IORF(97),在程序中执行该指令,可随时对指定的CPU单元内置的或扩展单元的I/O通道进行刷新,以缩短输出滞后输入的时间,提高I/O响应速度。

2)执行立即刷新指令。常用的输入指令是LD/LD NOT、AND-AND NOT和OR/OR NOT,常用的输出指令是OUT/OUT NOT,CP1为这些指令设置了立即刷新功能,执行时立即对指令所访问的CPU单元内置的I/O通道(字)进行刷新,刷新是以通道(字)为单位操作的,即刷新指定位时,对含该位的通道内的其他位也同时进行刷新。立即刷新指令如图1-8所示,包含!LD和!OUT,图中第一行执行时,先对PLC内置输入通道2所有的16位立即读入,然后进行逻辑运算;第二行执行时,在已更新的输入通道2的数据基础上,进行逻辑运算,将结果立即输出,这时内置输出通道100所有的16位一起被更新。

978-7-111-44136-6-Chapter01-7.jpg

图1-7 I/O响应时间

978-7-111-44136-6-Chapter01-8.jpg

图1-8 立即刷新指令