当PLC投入运行后,其工作过程大体上分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生明显的变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才可能正真的保证在任何情况下,该输入均能被读入。
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是不是要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生明显的变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生明显的变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可忽略,那么二者之间就没什么区别了。
一般来说,PLC的扫描周期包括自诊断、通讯等,如下图所示,即一个扫描周期等于自诊断、通讯、输入采样、用户程序执行、输出刷新等所有时间的总和。
可编程控制器,英文称ProgrammableLogicController,简称PLC。PLC是基于电子计算机,且适用于工业现场工作的电控制器。它源于继电控制装置,但它不像继电装置那样,通过电路的物理过程实现控制,而主要靠运行存储于PLC内存中的程序,进行入出信息变换实现控制。
PLC基于电子计算机,但并不等同于普通计算机。普遍计算机进行入出信息变换,多只考虑信息本身,信息的入出,只要人机界面好就可以了。而PLC则还应该要考虑信息入出的可靠性、实时性,以及信息的使用等问题。特别要考虑怎么适应于工业环境,如便于安装,抗干扰等问题。
输入输出信息变换靠运行存储于PLC内存中的程序实现。PLC程序既有生产厂商的系统程序(不可更改),又有用户自行开发的应用(用户)程序。系统程序提供运行平台,同时,还为PLC程序可靠运行及信号与信息转换做必要的公共处理。用户程序由用户按控制要求设计。什么样的控制要求,就应有什么样的用户程序。
可靠物理实现主要靠输人(INPUT)及输出(OUTPUT)电路。PLC的I/O电路,都是专门设计的。输入电路要对输入信号进行滤波,以去掉高频干扰。而且与内部计算机电路在电上是隔离的,靠光耦元件建立联系。输出电路内外也是电隔离的,靠光耦元件或输出继电器建立联系。输出电路还要进行功率放大,以足以带动一般的工业控制元器件,如电磁阀、接触器等等。
I/O电路是很多的,每一输入点或输出点都要有一个I或O电路。PLC有多I/O用点,一般也就有多少个I/O用电路。但由于它们都是由高度集成化的电路组成的,所以,所占体积并不大。
输入电路时刻监视着输入状况,并将其暂存于输入暂存器中。每一输入点都有一个对应的存储其信息的暂存器。
输出电路要把输出锁存器的信息传送给输出点。输出锁存器与输出点也是一一对应的
这里的输入暂存器及输出锁存器实际就是PLC处理器I/O口的寄存器。它们与计算机内存交换信息通过计算机总线,并主要由运行系统程序实现。把输人暂存器的信息读到PLC的内存中,称输入刷新。PLC内存有专门开辟的存放输入信息的映射区。这个区的每一对应位(bit)称之为输入继电器,或称软接点。这些位置成1,表示接点通,置成0为接点断。由于它的状态是由输入刷新得到的,所以,它反映的就是输入状态。
输出锁存器与PLC内存中的输出映射区也是对应的。一个输出锁存器也有一个内存位(bit)与其对应,这个位称为输出继电器,或称输出线圈。靠运行系统程序,输出继电器的状态映射到输出锁存器。这个映射也称输出刷新。输出刷新主要也是靠运行系统程序实现的。这样,用户所要编的程序只是,内存中输入映射区到输出映射区的变换,特别是怎么按输入的时序变换成输出的时序。这是一个数据及逻辑处理问题。由于PLC有强大的指令系统,编写出满足这个要求的程序是完全可能的,而且也是较为容易的。
输入刷新--再运行用户程序--再输出刷新--再输入刷新--再运行用户程序--再输出刷新……永不停止地循环反复地进行着。
有了上述过程,用PLC实现控制显然是可能的。因为:有了输入刷新,可把输入电路监控得到的输入信息存入PLC的输入映射区;经运行用户程序,输出映射区将得到变换后的信息;再经输出刷新,输出锁存器将反映输出映射区的状态,并通过输出电路产生相应的输出。又由于这样的一个过程是永不停止地循环反复地进行着,所以,输出总是反映输入的变化的。只是响应的时间上,略有滞后。当然,这个滞后不宜太大,否则,所实现的控制不那么及时,也就失去控制的意义。
为此,PLC的工作速度要快。速度快、执行指令时间短,是PLC实现控制的基础。事实上,它的速度是很快的,执行一条指令,多的几微秒、几十微秒,少的才零点几,或零点零几微秒。而且这个速度还在逐步的提升中。
图1.1所示的过程是简化的过程,实际的PLC工作过程还要复杂些。除了I/O刷新及运行用户程序,还要做些公共处理工作。
监控循环时间的目的是避免死循环,避免程序不能反复不断地重复执行。办法是用看门狗(Watchingdog)。只要循环超时,它可报警,或作相应处理.
外设服务是让PLC可接受编程器对它的操作,或通过接口向输出设备如打印机输出数据.
通讯处理是实现PLC与PLC,或PLC与计算机,或PLC与别的工业控制装置或智能部件间信息交换的。这也是增强PLC控制能力的需要。
也就是说,实际的PLC工作过程总是:公共处理--I/O刷新--运行用户程序--再公共处理--……反复不停地重复着。
用这种不断地重复运行程序实现控制称扫描方式。是用计算机进行实时控制的一种方式。此外,计算机用于控制还有中断方式。在中断方式下,需处理的控制先申请中断,被响应后正运行的程序停止运行,转而去处理中断工作(运行有关中断服务程序)。待处理完中断,又返回运行原来程序。哪个控制需要处理,哪个就去申请中断。哪个不需处理,将不被理睬。显然,中断方式与扫描方式是不同的。
在中断方式下,计算机能得到充分的利用,紧急的任务也能得到及时处理。但是,如果同时来了几个都要处理的任务该怎么去办呢?优先级高的还好办,低的呢?有极大几率会出现照顾不到之处。所以,中断方式不大适合于工作现场的日常使用。
但是,PLC在用扫描方式为主的情况下,也不排斥中断方式。即,大量控制都用扫描方式,个别急需的处理,允许中断这个扫描运行的程序,转而去处理它。这样,可做到所有的控制都能照顾到,个别应急的也能进行处理。
PLC的实际在做的工作过程比这里讲的还要复杂一些,分析其基础原理,也还有一些理论问题。有关人员如果能把上面介绍的入出变换、物理实现--信息处理、I/O电路--空间、时间关系--扫描方式并辅以中断方式,作为一种思路加以研究,弄清了它,也就好理解PLC是怎样去实现控制的,也就好把握住PLC基本原理的要点了。