PLC的工作方式采用循环扫描,其扫描过程如图 1-3 所示。扫描时有两个状态:处于停止(STOP)状态时,只进行内部处理和通信操作服务等内容;处于运行(RUN)状态时,从内部处理、通信操作、程序输入、程序执行到程序输出,一直在循环扫描进行工作。
图1-3 循环扫描工作过程
PLC执行程序有三个阶段:输入采样阶段、程序执行阶段和输出刷新阶段,如图 1-4 所示。
在输入采样阶段,PLC以扫描工作方式顺序对所有的输入端进行采样,并存入输入映像寄存器中,这时输入映像寄存器被刷新。接着进入程序执行阶段,在程序执行阶段或其他阶段,即使输入状态发生变化,输入映像寄存器的内容也不会改变,输入状态的改变只有在下一个扫描周期的输入采样阶段才能被采样到。
图 1-4 PLC执行程序过程
在程序执行阶段,PLC对程序按顺序进行扫描。如果程序用梯形图表示,应按先上后下、先左后右的顺序执行。当遇到程序跳转指令时,根据是否满足跳转条件来决定程序是否跳转。当指令中涉及输入/输出状态时,PLC从输入映像寄存器和元件映像寄存器中读出,根据用户程序进行运算,运算的结果再存入元件映像寄存器中。对于元件映像寄存器来说,其内容会随程序执行的过程而变化。
当所有程序执行完毕后,进入输出处理阶段。在这一阶段里,PLC将输出映像寄存器中与输出有关的状态(输出继电器状态)转存到输出锁存器中,通过隔离电路输出,驱动外部负载。
PLC在输入采样阶段只对输入端进行扫描。当PLC进入程序执行阶段后,输入端将被封锁,直到下一个扫描周期的输入采样阶段才对输入重新进行采样。这种方式称为集中采样。
PLC在程序循环扫描中采用“串行”方式工作,这种串行工作方式避免了继电器接触器控制系统中触点竞争和时序失配的问题。同时,扫描周期是PLC的一个很重要的指标,小型PLC的扫描周期按用户程序的长短而论,一般为十几到几十毫秒。
PLC在输出刷新阶段,如果在用户程序中对输出结果多次赋值,则最后一次有效。在一个扫描周期内,只在输出刷新阶段才将输出映像寄存器中的内容输出,对输出接口进行刷新。在其他阶段输出状态一直保存在输出映像寄存器中。这种方式称为集中输出。
对于小型PLC,其I/O点数较少,用户程序较短,一般采用集中采样、集中输出的工作方式,虽然在一定程度上降低了系统的响应速度,但使得PLC工作时大多数时间与外部I/O设备隔离,从而提高了系统的抗干扰能力,增加了系统的可靠性。而大中型PLC,其I/O点数较多,控制能力强,用户程序较长,为了提高系统响应速度,可以采用定期采样、定期输出方式,或中断输入/输出方式以及采用智能I/O接口等多种方式。