在實(shí)時(shí)控制過(guò)程中,干擾造成比較嚴(yán)重的危害之一就是沖毀RAM中的數(shù)據(jù),由于RAM中保存的是各種原始數(shù)據(jù)、標(biāo)志、變量等,如果被破壞,會(huì)造成系統(tǒng)出錯(cuò)或無(wú)法運(yùn)行,根據(jù)數(shù)據(jù)被沖毀的程度,一般可分為三類:
整個(gè)RAM數(shù)據(jù)被沖毀;
RAM中某片數(shù)據(jù)被沖毀;
個(gè)別數(shù)據(jù)被沖毀。
在工業(yè)控制系統(tǒng)中,RAM的大部分內(nèi)容是為了進(jìn)行分析、比較而臨時(shí)存放的,不允許丟失的數(shù)據(jù)只占極少部分。在這種情況下,除了這些不允許丟失的數(shù)據(jù)外,其余大部分內(nèi)容允許短時(shí)間被破壞,最多只引起系統(tǒng)的一個(gè)很短時(shí)間的波動(dòng),很快能自動(dòng)恢復(fù)正常。因此,在工控軟件中,只要注意對(duì)少數(shù)不允許丟失的數(shù)據(jù)保護(hù),一般常用的方法有“校驗(yàn)法” 和“設(shè)標(biāo)法”。這兩種方法各有千秋,校驗(yàn)法比較繁鎖,但查錯(cuò)的可信度高。設(shè)標(biāo)法簡(jiǎn)單,但對(duì)數(shù)據(jù)表中個(gè)別數(shù)據(jù)沖毀的情況,查錯(cuò)則無(wú)難為力。在編程中一般應(yīng)綜合使用,其具體做法為:
將RAM工作區(qū)重要區(qū)域的始端和尾端各設(shè)置一個(gè)標(biāo)志碼“0” 或“1”;
對(duì)RAM中固定不變的數(shù)據(jù)表格設(shè)置校驗(yàn)字。
在程序的執(zhí)行過(guò)程中,每隔一定的時(shí)間通過(guò)事先設(shè)計(jì)的查錯(cuò)程序來(lái)檢查其各標(biāo)志碼是否正常,如果不正常,則利用數(shù)據(jù)冗余技術(shù)通過(guò)抗干擾處理程序來(lái)進(jìn)行修正;冗余數(shù)據(jù)表的一般設(shè)計(jì)原則是:
各數(shù)據(jù)表應(yīng)相互遠(yuǎn)離分散設(shè)置,減少冗余數(shù)據(jù)同時(shí)被沖毀的概率。
數(shù)據(jù)表應(yīng)盡可能遠(yuǎn)離棧區(qū),減少由于操作錯(cuò)誤造堆棧被成數(shù)據(jù)沖的可能 。
上述對(duì)RAM區(qū)域的恢復(fù)處理方法,在不同的應(yīng)用系統(tǒng)中應(yīng)根據(jù)的具體情況進(jìn)行取舍。