一文告诉你PLC 的工作原理,其实很简单,建议收藏
PLC的循环扫描工作过程各种 PLC 都采用扫描工作方式,具体工作过程大同小异。下面以欧姆龙公司的小型机CP1为例,介绍PLC的工作过程。如图1所示,PLC上电后,首先进行初始化,然后进入循环工作过程。一次循环过程可归纳为五个工作阶段,如图1所示。一次循环所用的时间称为一个工作周期(或扫描周期),其长短与用户程序的长短以及PLC机本身性能有关,其数量级为ms级,典型值为几十ms。 各阶段完成的任务如下。 (1)公共处理:进行硬件检查、用户程序内存检查和电池异常检查等。检查正常后,方可进行下面的操作。如果有异常情况,则根据错误的严重程度发出报警或停止PLC运行。 (2)程序执行:在程序执行阶段,CPU按先左后右,先上后下的顺序对每条指令进行解释、执行,CPU从输入映象寄存器(每个输入继电器对应一个输入映象寄存器,其通/断状态对应1/0)和元件映象寄存器(即与各种内部继电器、输出继电器对应的寄存器)中读出各继电器的状态,根据用户程序给出的逻辑关系进行逻辑运算,运算结果再写入元件映象寄存器中。 (3)扫描周期计算处理:若设定扫描周期为固定值(可由用户在PLC设置中设定),则进入等待循环,直到该固定值到,再往下进行。若设定扫描周期为不定的(即决定于用户程序的长短等,为不定值),不等待,接着进行扫描周期的计算。 (4)I/O刷新:在此阶段,进行I/O刷新。输入刷新时,CPU从输入电路中读出各输入点状态,并将此状态写入输入映象寄存器中;输出刷新时,将输出继电器的元件映象寄存器的状态(1/0)传送到输出锁存电路,再经输出电路隔离和功率放大,驱动外部负载。 (5)外围设备服务:包括USB端口通信、串行端口通信、存储盒访问,以及通信单元的链接服务等。 根据上述PLC的工作过程,可以得出从输入端子到输出端子的信号传递过程,如图2所示。若输入端子外接开关状态有变化,则此变化反映到输入电路的输出端;在I/O刷新阶段,CPU从输入电路的输出端读出各路状态,并将其写入输入映象寄存器;在程序执行阶段, CPU从输入映象寄存器和元件映象寄存器中读出各继电器的状态,并根据此状态执行用户程序,执行结果再写入元件映象寄存器中;在紧接着的下一个I/O刷新阶段,将输出映象寄存器的状态写入输出锁存电路,再经输出电路传递到输出端子,从而控制外接器件动作。 PLC的循环扫描工作方式也为PLC提供了一条死循环自诊断功能。PLC内部设置了一个监视定时器 WDT,其定时时间可由用户设置为大于用户程序的扫描周期,PLC 在每个扫描周期的公共处理阶段将监视定时器复位。正常情况下,监视定时器不会动作,如果由于CPU内部故障使程序执行进入死循环,那么,扫描周期将超过监视定时器的定时时间,这时,监视定时器动作,运行停止,以提示用户。 在循环扫描过程中,有时需要立即对某个信息进行处理,以加快响应速度,为此,PLC中引入中断功能,设有内置输入中断、定时中断、高速计数器中断、外部中断等,PLC在循环扫描的各个阶段都可以响应中断信号。 PLC的I/O滞后现象PLC有很多优越特性,但也有不足之处,其中之一,PLC的I/O有响应滞后现象。产生I/O滞后现象的原因主要有3个方面。 (1)输入滤波器有时间常数。输入电路中的滤波器对输入信号有延迟作用,时间常数越大,延迟作用越大。 (2)输出继电器有机械滞后。从输出继电器的线圈通电到其触点闭合有一段时间,这是输出电路的硬件参数,如CP1输出继电器的滞后时间为15ms。 (3)PLC循环操作时,进行公共处理、I/O刷新和执行用户程序等产生扫描周期。 在图3(a)给出的梯形图中,从输入触点闭合到输出触点闭合有一段延迟时间,称为I/O响应时间。图3(b)为最小I/O响应时间,在I/O刷新阶段,输入信号已经在输入电路的输出端反映出来,CPU将其写入输入映象寄存器,经过程序执行后,结果在随后扫描周期的I/O刷新阶段被输出,这种情况下,I/O响应时间最小,为输入ON时间、一个扫描周期和输出ON时间之和。图3(c)为最大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通道(字)进行刷新,刷新是以通道(字)为单位操作的,即刷新指定位时,对含该位的通道内的其他位也同时进行刷新。立即刷新指令如图 4 所示,包含!LD 和!OUT,图中第一行执行时,先对PLC内置输入通道2所有的16位立即读入,然后进行逻辑运算;第二行执行时,在已更新的输入通道2的数据基础上,进行逻辑运算,将结果立即输出,这时内置输出通道100所有的16位一起被更新。 |