工控计算机实时控制软件运行过程中的自监视法
自监视法是工业控制计算机自己对自己的运行状态的监视。
一般的工控机CPU内部具有Watchdog Timer,使用定时中断来监视程序运行状态。定时器的定时时间稍大于主程序正常运行一个循环的时间,在主程序运行过程中执行一次定时器时间常数刷新操作。这样,只要程序正常运行,定时器不会出现定时中断。而当程序运行失常,不能及时刷新定时器时间常数而导致定时中断,利用定时中断服务程序将系统复位。在8031应用系统 中作为软件抗干扰的一个事例,具体做法是:
使用8155的定时器所产生的“溢出”信号作为8031的外部中断源INT1。用555定时器作为8155中定时器的外部时钟输入;
8155定时器的定时值稍大于主程序的正常循环时间;
在主程序中,每循环一次,对8155定时器的定时常数进行刷新;
在主控程序开始处,对硬件复位还是定时中断产生的自动恢复进行分类判断处 理。
然而,这并不等于万无一失。例如,① Watchdog电路本身失效;②设置Watchdog的指令正好在取指令时被干扰而读错;③ Watchdog“发现”程序跑飞之后,其产生的复位脉冲或者NMI申请信号正好被干扰而没奏效等等。虽然以上的导致Watchdog失效的因素的几率很小,但总是存在的。另一个方面,还有相当数量的工业控制计算机没有Watchdog电路。