CPU自检阶段包括CPU自诊断测试和复位监控定时器。
在自诊断测试阶段,CPU 检测每个PLC 模块的状态。如果出现异常,会立即诊断并处理。同时给出故障信号并点亮CPU面板上的LED指示灯。当发生致命错误时,CPU 被强制进入STOP 模式并停止执行程序。 CPU的自诊断测试有助于及时发现或提前预测系统故障,提高系统可靠性。
看门狗定时器也称为看门狗定时器WDT。它是CPU内部的硬件时钟,被设置为监控PLC的每次扫描时间。指定的扫描时间是在CPU运行之前设定的,每个扫描周期必须监视扫描时间是否超过指定值。这样可以避免PLC在程序执行过程中进入死循环而导致系统瘫痪,或者PLC执行非预定程序而导致系统故障。如果程序运行正常,则在每个扫描周期的内部处理阶段,WDT 被复位(清零)。如果程序运行异常,进入死循环,WDT不能按时清零,触发超时溢出,CPU会发出报警信号或停止工作。采用WDT技术也是提高系统可靠性的有效措施。
在通讯处理阶段,CPU检查是否有通讯任务,如果有则调用相应的进程完成与其他设备(例如带微处理器的智能模块、远程I/O接口、编程器等)的通讯、HMI设备等)通讯处理,以及通讯数据的相应处理。
在输入读取阶段,PLC扫描所有输入端子,将每个输入端子的通断状态存储到相应的输入映像寄存器中,并刷新输入映像寄存器的值。之后,输入图像寄存器与外界隔离。无论外设输入情况如何变化,输入图像寄存器的内容都不会改变。输入状态的变化仅在下一个循环扫描周期的读取输入阶段期间被拾取。这确保了在循环扫描周期内使用相同的输入信号状态。因此,需要注意的是,输入信号的宽度必须大于一个扫描周期,否则信号可能会丢失。
可编程控制器的用户程序由多条指令组成,这些指令按顺序排列在存储器中。当PLC处于运行模式执行程序时,CPU按顺序扫描用户程序。如果用梯形图来表示程序,则程序指令按照先上后下、从左到右的顺序一条一条地执行。每次扫描指令时,从输入图像寄存器中读取所需的输入信号状态,而不是直接使用现场输入端子的开/关状态。用户程序执行过程中,根据指令进行相应的操作或处理。每次运算的结果并不直接送到输出端立即驱动外部负载,而是先将结果写入输出映像寄存器。输出图像寄存器中的值可供后续读取指令使用。
执行完用户程序后,进入刷新输出阶段。可编程控制器将输出映像寄存器中的开/关状态发送到输出锁存器,并通过输出端子驱动用户输出设备或负载,实现控制功能。输出锁存器的值将保持到下一次刷新输出为止。
刷新输出阶段结束后,CPU进入下一个周期的扫描周期。