可编程程序(PLC)的扫描过程主要包括以下几个阶段:
输入采样阶段
CPU以扫描方式依次读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。
输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。
输入信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
用户程序执行阶段
CPU按照梯形图程序从首地址开始按“自上而下、从左往右”的顺序进行逐条扫描执行。
在扫描每一条梯形图时,先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算。
根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
输出刷新阶段
CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。
输出锁存器保存的内容要等到下一个扫描周期的输出阶段才会被再次刷新。
通信处理阶段
CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程/0接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
内部处理阶段
在每次扫描周期的内部处理阶段,PLC会对WDT(看门狗定时器)进行复位(清零),以提高系统可靠性。
通过以上几个阶段的循环扫描,PLC能够实现对输入信号的采集、用户程序的执行和输出信号的刷新,从而实现对工业自动化设备的精确控制。