
3.6 PLC的工作原理
3.6.1 PLC的工作方式和运行框图
众所周知,继电器控制系统是一种“硬件逻辑系统”,如图3-7(a)所示,它的三条支路是并行工作的。当按下按钮SB1时,中间继电器K得电,K的两个触点闭合,接触器KM1、KM2同时得电且并行动作,所以继电器控制系统采用的是并行工作方式。
PLC是一种工业控制计算机,其工作原理建立在计算机工作原理基础之上,即通过执行反映控制要求的用户程序来实现,如图3-7(b)所示。但是CPU是以分时操作方式来处理各项任务的,计算机在每一瞬间只能做一件事,所以程序的执行是按程序顺序依次完成相应各电器的动作,所以它属于串行工作方式。

图3-7 PLC控制系统与继电器控制系统的比较
概括而言,PLC是按集中输入、集中输出,周期性循环扫描的方式工作的。每一次扫描所用的时间称为扫描周期或工作周期。CPU从执行第一条指令开始,按顺序逐条地执行用户程序,直到用户程序结束;然后返回第一条指令,开始新一轮的扫描。PLC就是这样周而复始地重复上述循环扫描的。
PLC工作的全过程可用图3-8所示的运行框图来表示。整个过程分为以下三个部分。

图3-8 PLC运行框图
第一部分是上电处理。机器上电后,对PLC系统进行一次初始化,包括硬件初始化、I/O模块配置检查、停电保持范围设定及其他初始化处理等。
第二部分是扫描过程。PLC上电处理完成以后进入扫描工作过程。先完成输入处理,其次完成与其他外设的通信处理,再次进行时钟、特殊寄存器更新。当CPU处于STOP方式时,转入执行自诊断检查。当CPU处于RUN方式时,还要完成用户程序的执行和输出处理,再转入执行自诊断检查。
第三部分是出错处理。PLC每扫描一次,执行一次自诊断检查,确定PLC自身的动作是否正常,如CPU、电池电压、程序存储器、I/O和通信等是否异常或出错。若检查出异常,CPU面板上的LED及异常继电器会接通,在特殊寄存器中会存入出错代码;当出现致命错误时,CPU被强制为STOP方式,所有的扫描停止。
PLC运行正常时,扫描周期的长短与CPU的运算速度、I/O点的情况、用户应用程序的长短及编程情况等有关。通常用PLC执行1KB指令所需时间来说明其扫描速度(一般1~10ms/KB)。值得注意的是,对于不同指令,其执行时间是不同的,从零点几微秒到上百微秒不等,故选用不同指令,所用的扫描时间不同。若用于高速系统,要缩短扫描周期,可从软、硬件上同时考虑。
3.6.2 PLC的扫描工作过程
分析上述扫描过程,如果对过程I/O特殊模块和其他通信服务暂不考虑,扫描过程就只剩下“输入采样”、“程序执行”和“输出刷新”三个阶段了。PLC典型的扫描周期如图3-9所示(不考虑立即输入、立即输出情况)。

图3-9 PLC扫描工作过程
(1)输入采样阶段
PLC在输入采样阶段,首先扫描所有输入端子,并将各输入状态存入相对应的输入映像寄存器。此时,输入映像寄存器被刷新。接着,进入程序执行阶段。在此阶段和输入刷新阶段,输入映像寄存器与外界隔离,无论输入信号如何变化,其内容保持不变,直到下一个扫描周期的输入采样阶段,才重新写入输入端的新内容。所以一般来说,输入信号的宽度要大于一个扫描周期,否则很可能造成信号丢失。
(2)程序执行阶段
根据PLC梯形图程序扫描原则,一般来说,PLC按从左至右、从上到下的顺序执行程序。当指令中涉及输入、输出状态时,PLC就从输入映像寄存器中“读入”对应的输入端子状态,从元件映像寄存器“读入”对应元件(“软继电器”)的当前状态。然后,进行相应的运算,运算结果存入元件映像寄存器。对元件映像寄存器来说,每一个元件(“软继电器”)的状态会随着程序执行过程而变化。
(3)输出刷新阶段
在所有指令执行完毕后,元件映像寄存器中所有输出继电器的状态(接通/断开)在输出刷新阶段转存到输出锁存器中,通过一定方式输出,最后经过输出端子驱动外部负载。