廣州工控機維修工控程序運行失常怎么辦?
系統(tǒng)受到干擾侵害致使PC值改變,造成程序運行失常。對于程序運行失常的軟件對策主要是發(fā)現(xiàn)失常狀態(tài)后及時引導系統(tǒng)恢復原始狀態(tài)。
設置監(jiān)視跟蹤定時器
使用定時中斷來監(jiān)視程序運行狀態(tài)。定時器的定時時間稍大于主程序正常運行一個循環(huán)的時間,在主程序運行過程中執(zhí)行一次定時器時間常數(shù)刷新操作。這樣,只要程序正常運行,定時器不會出現(xiàn)定時中斷。而當程序運行失常,不能及時刷新定時器時間常數(shù)而導致定時中斷,利用定時中斷服務程序將系統(tǒng)復位。在8031應用系統(tǒng)中作為軟件抗干擾的一個事例,具體做法是:
使用8155的定時器所產(chǎn)生的“溢出”信號作為8031的外部中斷源INT1。用555定時器作為8155中定時器的外部時鐘輸入;
8155定時器的定時值稍大于主程序的正常循環(huán)時間;
在主程序中,每循環(huán)一次,對8155定時器的定時常數(shù)進行刷新;
在主控程序開始處,對硬件復位還是定時中斷產(chǎn)生的自動恢復進行分類判斷處理。
設置軟件陷井
當PC失控,造成程序“亂飛”而不斷進入非程序區(qū),只要在非程序區(qū)設置攔截措施,使程序進入陷井,然后強迫使程序進入初始狀態(tài)。例如Z80指令系統(tǒng)中數(shù)據(jù)FFH正好對應為重新起動指令RST56,該指令使程序自動轉入0038H入口地址。因此,在Z80CPU構成的應用系統(tǒng)中,只要將所有非程序區(qū)全部置成FFH用以攔截失控程序。并在0038H處設置轉移指令,使程序轉至抗干擾處理程序。