国产不卡国产不卡国产精品不卡-国产精品口爆一区二区三区-四虎成人影视免费在线站长-国产精品久久久久久久久人妻-欧美亚洲日本国产综合在线美利坚-91麻豆精品国产综合久久久-av网站在线天天有-免费无遮挡黄漫画在线观看网站-国产亚洲一区二区手机在线观看
深圳市辰沃科技有限公司
新增產品
|
公司簡介
注冊時間:
2008-10-31
聯(lián)系人:
電話:
Email:
首頁
公司簡介
產品目錄
公司新聞
技術文章
資料下載
成功案例
人才招聘
榮譽證書
聯(lián)系我們
產品目錄
研華股份
工業(yè)平板電腦
桌上型/壁掛式特種計算機
小型嵌入式工業(yè)電腦
工業(yè)母板工控機
嵌入式板卡及模塊
工業(yè)計算機平臺
嵌入式單板電腦
艾訊宏達
高性存儲設備
高效磁盤陣列
高亮度工業(yè)LCD顯示器
機架式工控機
小型工業(yè)計算機
工業(yè)平板電腦
IPC工業(yè)計算機
嵌入式單板計算機
研祥智能
工業(yè)平板電腦
網絡專用單板計算機
一體化工作站
便攜式計算機
工業(yè)底板
壁掛式工控機
上架型工控機
工業(yè)級主板
嵌入式單板計算機
威達工業(yè)電腦
工業(yè)級顯示器
工業(yè)平板電腦
一體化工作站
嵌入式單板計算機
工業(yè)電腦
工業(yè)計算機
寶晟科技
液晶平板電腦
工業(yè)計算機
工業(yè)級單板電腦
其它產品
艾雷斯工控產品
大眾工控產品
摩莎多串口通訊卡
華北工控產品
凌華工控產品
辰沃工控產品
磐儀工控產品
欣揚工控產品
研揚工控產品
當前位置:
首頁
>>>
技術文章
>
技術文章
工控機軟件抗干擾技術
工控機軟件抗干擾技術
工業(yè)現(xiàn)場各種動力設備在不斷地啟停運行。使得現(xiàn)場環(huán)境惡劣,電磁干擾嚴重。工業(yè)控制計算機在這樣的環(huán)境里面臨著巨大的考驗??梢哉f我們研制的工業(yè)控制系統(tǒng)能否正常運行,并且產生出應有的經濟效益,其抗干擾能力是一個關鍵的因素。因此,除了整個系統(tǒng)的結構和每個具體的工控機都需要仔細設計硬件抗干擾措施之外,還需要注重軟件抗干擾措施的應用。我們在多年的工業(yè)控制研究中,深感工業(yè)現(xiàn)場意外因素太多并且危害很大。有時一個偶然的人為或非人為干擾,例如并不很強烈的雷擊,就使得我們自認為無懈可擊的硬件抗干擾措施無能為力,工控機死機了(即程序跑飛了)或者控制出錯了(此時
CPU
內部寄存器內容被修改或者
RAM
和
I/O
口數(shù)據被修改)。這在某些重要的工業(yè)環(huán)節(jié)上將造成巨大的事故。使用軟件抗干擾措施就可以在一定程度上避免和減輕這些意外事故的后果。軟件抗干擾技術就是利用軟件運行過程中對自己進行自監(jiān)視,和工控網絡中各機器間的互監(jiān)視,來監(jiān)督和判斷工控機是否出錯或失效的一個方法。這是工控系統(tǒng)抗干擾的*后一道屏障。
1
工控軟件的結構特點及干擾途徑
在不同的工業(yè)控制系統(tǒng)中,工控軟件雖然完成的功能不同,但就其結構來說,一般
具有如下特點:
*
實時性:工業(yè)控制系統(tǒng)中有些事件的發(fā)生具有隨機性,要求工控軟件能夠及時地
處理隨機事件。
*
周期性:工控軟件在完成系統(tǒng)的初始化工作后,隨之進入主程序循環(huán)。在執(zhí)行主
程序過程中,如有中斷申請,則在執(zhí)行完相應的中斷服務程序后,繼續(xù)主程序循
環(huán)。
*
相關性:工控軟件由多個任務模塊組成,各模塊配合工作,相互關聯(lián),相互依
存。
*
人為性:工控軟件允許操作人員干預系統(tǒng)的運行,調整系統(tǒng)的工作參數(shù)。
在理想情況下,工控軟件可以正常執(zhí)行。但在工業(yè)現(xiàn)場環(huán)境的干擾下,工控軟件的
周期性、相關性及實時性受到破壞,程序無法正常執(zhí)行,導致工業(yè)控制系統(tǒng)的失
控,其表現(xiàn)是:
*
程序計數(shù)器
PC
值發(fā)生變化,破壞了程序的正常運行。
PC
值**擾后的數(shù)據是隨機
的,因此引起程序執(zhí)行混亂,在
PC
值的錯誤引導下,程序執(zhí)行一系列毫無意義的指
令,*后常常進入一個毫無意義的
“
死循環(huán)
”
中,使系統(tǒng)失去控制。
*
輸入
/
輸出接口狀態(tài)受到干擾,破壞了工控軟件的相關性和周期性,造成系統(tǒng)資源
被某個任務模塊獨占,使系統(tǒng)發(fā)生
“
死鎖
”
。
*
數(shù)據采集誤差加大。干擾侵入系統(tǒng)的前向通道,疊加在信號上,導致數(shù)據采集誤
差加大。特別是當前向通道的傳感器接口是小電壓信號輸入時,此現(xiàn)象更加嚴重。
* RAM
數(shù)據區(qū)受到干擾發(fā)生變化。根據干擾竄入渠道、受干擾數(shù)據性質的不同,系統(tǒng)
受損壞的狀況不同,有的造成數(shù)值誤差,有的使控制失靈,有的改變程序狀態(tài),有
的改變某些部件
(
如定時器/計數(shù)器、串行口等
)
的工作狀態(tài)等。
*
控制狀態(tài)失靈。在工業(yè)控制系統(tǒng)中,控制狀態(tài)的輸出常常是依據某些條件狀態(tài)的
輸入和條件狀態(tài)的邏輯處理結果而定。在這些環(huán)節(jié)中,由于干擾的侵入,會造成條
件狀態(tài)錯誤,致使輸出控制誤差加大,甚至控制失常。
2
工控計算機實時控制軟件運行過程中的自監(jiān)視法
自監(jiān)視法是工業(yè)控制計算機自己對自己的運行狀態(tài)的監(jiān)視。
一般的工控機
CPU
內部具有
Watchdog Timer
,使用定時中斷來監(jiān)視程序運行狀態(tài)。定時器的定時時間稍大于主程序正常運行一個
循環(huán)的時間,在主程序運行過程中執(zhí)行一次定時器時間常數(shù)刷新操作。這樣,只要
程序正常運行,定時器不會出現(xiàn)定時中斷。而當程序運行失常,不能及時刷新定時
器時間常數(shù)而導致定時中斷,利用定時中斷服務程序將系統(tǒng)復位。在
8031
應用系統(tǒng)
中作為軟件抗干擾的一個事例,具體做法是:
*
使用
8155
的定時器所產生的
“
溢出
”
信號作為
8031
的外部中斷源
INT1
。用
555
定時
器作為
8155
中定時器的外部時鐘輸入;
* 8155
定時器的定時值稍大于主程序的正常循環(huán)時間;
*
在主程序中,每循環(huán)一次,對
8155
定時器的定時常數(shù)進行刷新;
*
在主控程序開始處,對硬件復位還是定時中斷產生的自動恢復進行分類判斷處
理。
然而,這并不等于萬無一失。例如,
①
Watchdog
電路本身失效;
②
設置
Watchdog
的指令正好在取指令時**擾而讀錯;
③
Watchdog“
發(fā)現(xiàn)
”
程序跑飛之后,其產生的復位脈沖或者
NMI
申請信號正好**擾而沒奏效等等。雖然以上的導致
Watchdog
失效的因素的幾率很小,但總是存在的。另一個方面,還有相當數(shù)量的工業(yè)控制計算機沒有
Watchdog
電路。因此,以下重點討論的軟件自監(jiān)視法就勢在必行了。
2.1
隨時監(jiān)督檢查程序計數(shù)器
PC
的值是否超出程序區(qū)
計算機正常運行,其
PC
值一定在程序區(qū)內。如果
PC
值跑出程序區(qū),計算機肯定已發(fā)生了程序跑飛。檢查程序計數(shù)器
PC
值是否在程序區(qū)內的方法,是在一個經常要產生外部中斷的某個中斷服務程序中,讀取轉入該中斷時壓入堆棧的斷點地址。如果該地址在程序區(qū)內,則認為
PC
值正常,否則一定是程序跑飛了。此時,程序跳轉到機器的重啟動入口或者復位入口,機器重新啟動。于是機器又自救活了。如果沒有一個這樣合適的中斷源,可以專門設置一個定時中斷或者幾個定時中斷,在中斷服務程序中檢查
PC
值是否合法,一旦發(fā)現(xiàn)不對就立即轉入機器的重啟動入口。定時器中斷的時間常數(shù),可視機器的繁忙程度和重要性設定,一般從幾個毫秒到幾十毫秒都可以。
這個方法的局限性是不能查出
PC
值在程序區(qū)內的亂跳,即此時
PC
值雖受干擾卻并沒有超出程序區(qū),而是錯位亂拼指令而構成一些莫名其妙的操作,或者死循環(huán)。
2.2
主循環(huán)程序和中斷服務程序相互監(jiān)視
每個工控機的主循環(huán)程序和中斷服務程序都有一定的運行規(guī)律可循。因此可以設計出主循環(huán)程序與各中斷服務程序、各中斷服務程序之間的相互監(jiān)視。每個監(jiān)視對要定義一個
RAM
單元,依靠對其計數(shù)
/
清零的方法表達相互監(jiān)視信息。例如,某工控機的主循環(huán)程序循環(huán)一次*長時間為
80 ms
,它的一個定時中斷時間常數(shù)為
10 ms
,當我們安排該定時中斷監(jiān)視主循環(huán)程序運行時,可以每次
10 ms
中斷對該
RAM
單元加1計數(shù),而主循環(huán)程序每循環(huán)一次對該
RAM
單元清零。因此,正常運行時,這個監(jiān)視計數(shù)
RAM
單元的計數(shù)值不可能
≥
9,如果
10 ms
定時中斷服務程序發(fā)現(xiàn)其計數(shù)值
≥
9,就知道主循環(huán)程序已經**擾跑飛或出現(xiàn)死循環(huán),于是就跳轉到機器的重啟動入口,重新恢復運行。使用這個方法,如果設計得當?shù)脑?,是非常有效的。我們多年的經驗是:主循環(huán)程序**擾跑飛可能性*大,中斷服務程序越短小越不易跑飛。主循環(huán)程序和中斷服務程序以及中斷服務程序之間的相互監(jiān)視,應當多設計幾個監(jiān)視對會更好。
2.3
隨時校驗程序代碼的正確性
工業(yè)控制計算機的實時控制程序代碼通常都采用
EPROM
固化運行,一般不易發(fā)生被改寫的情況。但成年累月運行,我們有時也會發(fā)現(xiàn)極個別的單元出錯。其原因可能是芯片質量問題或者因靜電、雷擊干擾等造成的改寫。程序出錯了,將直接造成運行錯誤或者無法運行。校驗的方式可以采用累加和校驗或者
BCH
校驗(一種
CRC
校驗方法)。當采用
BCH
校驗時,其分組附加的冗余字節(jié)可以集中在程序區(qū)之外的某個
EPROM
區(qū)域里。校驗方法是在某個短小而且經常發(fā)生的中斷服務程序內安排一個校驗模塊,可以設計成每次循環(huán)校驗一部分程序代碼,分若干次校驗完成;或者當代碼少,任務輕松時也可以一次校驗完。如果發(fā)現(xiàn)校驗錯,應當立即向工控網絡主站報告或者以自身報警的辦法告知操作人員,以便及時處理。這個方法的局限性是被損壞的程序代碼不是校驗程序塊,而且以該中斷還可以正常響應為前提。由于該中斷服務程序短小,通常還是有很大的概率自監(jiān)視程序代碼的正確性。
2.4
隨時校驗
RAM
的正確性
在實時控制過程中,干擾造成比較嚴重的危害之一就是沖毀
RAM
中的數(shù)據,由于
RAM
中保存的是各種原始數(shù)據、標志、變量等,如果被破壞,會造成系統(tǒng)出錯或無法運行,根據數(shù)據被沖毀的程度,一般可分為三類:
*
整個
RAM
數(shù)據被沖毀;
* RAM
中某片數(shù)據被沖毀;
*
個別數(shù)據被沖毀。因此需要經常監(jiān)視
RAM
的正確性。在工業(yè)控制系統(tǒng)中,
RAM
的大部分內容是為了進行分析、比較而臨時存放的,不允許丟失的數(shù)據只占極少部分。在這種情況下,除了這些不允許丟失的數(shù)據外,其余大部分內容允許短時間被破壞,*多只引起系統(tǒng)的一個很短時間的波動,很快能自動恢復正常。因此,在工控軟件中,只要注意對少數(shù)不允許丟失的數(shù)據保護,一般常用的方法有
“
校驗法
”
和
“
設標法
”
。這兩種方法各有千秋,校驗法比較繁鎖,但查錯的可信度高。設標法簡單,但對數(shù)據表中個別數(shù)據沖毀的情況,查錯則無難為力。在編程中一般應綜合使用,其具體做法為:
*
將
RAM
工作區(qū)重要區(qū)域的始端和尾端各設置一個標志碼
“0”
或
“1”
;
*
對
RAM
中固定不變的數(shù)據表格設置校驗字。在程序的執(zhí)行過程中,每隔一定的時間通過事先設計的查錯程序來檢查其各標志碼是否正常,如果不正常,則利用數(shù)據冗余技術通過抗干擾處理程序來進行修正;冗余數(shù)據表的一般設計原則是:
*
各數(shù)據表應相互遠離分散設置,減少冗余數(shù)據同時被沖毀的概率。
*
數(shù)據表應盡可能遠離棧區(qū),減少由于操作錯誤造堆棧被成數(shù)據沖的可能
。上述對
RAM
區(qū)域的恢復處理方法,在不同的應用系統(tǒng)中應根據的具體情況進行取舍
3
實時控制系統(tǒng)的互監(jiān)視法
在實時控制系統(tǒng)中,人們關注的問題是能否確保正常的控制狀態(tài)。如果干擾進入系統(tǒng),會影響各種控制條件、造成控制輸出失誤。為了確保系統(tǒng)**可以采取下述軟件抗干擾措施:
3.1.
軟件冗余對于條件控制系統(tǒng),將控制條件的一次采樣、處理控制輸出,改為循環(huán)采樣、處理控制輸出。這種方法具有良好的抗偶然因素干擾作用。
3.2.
設置當前輸出狀態(tài)寄存單元當干擾侵入輸出通道造成輸出狀態(tài)破壞時,系統(tǒng)可以及時查詢當前輸出狀態(tài)寄存單元的輸出狀態(tài)信息,及時糾正錯誤的輸出狀態(tài)。
3.3.
設置自檢程序在計算機系統(tǒng)內的特定部位或某些內存單元設狀態(tài)標志,在運行中不斷循環(huán)測試,以保證系統(tǒng)中信息存儲、傳輸、運算的高可靠性。
4
其它常采用的軟件抗干擾方法
4.1
陷井法
有時意想不到的干擾,破壞了中斷和所有程序的正常運行。此時
PC
值可能在程序區(qū)內,也可能在程序區(qū)之外,要使其能夠自恢復正常運行,只有依賴于廣布
“
陷井
”
的絕招了。
這里所謂的
“
陷井
”
,是指某些類型的
CPU
提供給用戶使用的軟中斷指令或者復位指令。例如,
Z80
指令
RST 38H
,其機器碼為
FFH
。
CPU
執(zhí)行該指令時,則將當前程序計數(shù)器
PC
的值壓入堆棧,然后轉到
0038H
地址執(zhí)行程序。如果把
0038H
作為一個重啟動入口,則機器就可以恢復新的工作了。再例如,
INTEL8098
、
80198
系列的復位指令
RST
,機器碼也為
FFH
。
CPU
執(zhí)行該指令時,其內部進行復位操作,然后從
2080H
開始執(zhí)行程序。當然,
80198
系列還有更多的非法操作碼可作為陷井指令使用,這時只需要在
2012H
的一個字的中斷矢量單元里安排中斷入口,并且編制一個處理非法操作碼的中斷服務程序,一遇非法操作碼就能進行故障處理。作者多年的經驗表明,陷井不但需要在
ROM
的全部非內容區(qū)、
RAM
的全部非數(shù)據區(qū)設置,而且在程序區(qū)內的模塊之間廣泛布置。一旦機器程序跑飛,總會碰上陷井,立即就可以救活機器了。
4.2
重復功能設定法
工控機的很多功能的設定,通常都是在主程序開始時的初始化程序里設定的,以后再也不去設定了。這在正常情況下本無問題。但偶然的干擾會改變
CPU
內部的這些寄存器或者接口芯片的功能寄存器,例如,把中斷的類型、中斷的優(yōu)先級別、串行口、并行口的設定修改了,機器的運行肯定會出錯,因此,只要重復設定功能操作不影響其當前連續(xù)工作的性能,都應當納入主程序的循環(huán)圈里。每個循環(huán)就可以刷新一次設定,避免了偶然不測發(fā)生。對于那些重復設定功能操作會影響當前連續(xù)工作性能的,要盡量想法找機會重新設定。例如串行口,如果接收完某幀信息或者發(fā)送完某幀信息之后,串口會有一個短暫的空閑時,就應作出判斷并且安排重新設定一次的操作。
4.3
重要數(shù)據備份法
工控機中的一些關鍵數(shù)據,應當有至少有兩個以上的備份副本,當操作這些數(shù)據時,可以把主、副本進行比較,如其改變,就要分析原因,采取預先設計好的方法處理。還可以把重要數(shù)據采用校驗和或者分組
BCH
校驗的方法進行校驗。這兩種方法一并使用則更可靠。
4.4
系統(tǒng)
“
死鎖
”
的軟件對策
在工業(yè)控制系統(tǒng)中,
A/D
、
D/A
,顯示等輸入
/
輸出接口電路是必不可少的。這些接口
與
CPU
之間采用查詢或中斷方式工作,而這些設備或接口對干擾很敏感,干擾信號一
旦破壞了某一接口的狀態(tài)字后,就會導致
CPU
誤認為該接口有輸入
/
輸出請求而停止
現(xiàn)行工作,轉去執(zhí)行相應的輸入
/
輸出服務程序。但由于該接口本身并沒有輸入
/
輸
出數(shù)據,從而使
CPU
資源被該服務程序長期占用,而不釋放,其它任務程序無法執(zhí)
行,使整個系統(tǒng)出現(xiàn)
“
死鎖
”
。對這種干擾造成的
“
死鎖
”
問題,在軟件編程中,
可采用
“
時間片
”
的方法來解決。其具體步驟為:
*
根據不同的輸入
/
輸出外設對時間的要求,分配相應的*大正常的輸入
/
輸出時
間。
*
在每一輸入
/
輸出的任務模塊中,加入相應的超時判斷程序。這樣當干擾破壞了接
口的狀態(tài)造成
CPU
誤操作后,由于該外設準備好信息長期無效,經一定時間后,系統(tǒng)
會從該外設的服務程序中自動返回,保證整個軟件的周期性不受影響,從而避免
“
死鎖
”
情況的發(fā)生。
4.5
數(shù)據采集誤差的軟件對策根據數(shù)據受干擾性質及干擾后果的不同,采取的軟件對策各不相同,沒有固定的模式。對于實時數(shù)據采集系統(tǒng),為了消除傳感器通道中的干擾信號,在硬件措施上常采取有源或無源
RLC
網絡,構成模擬濾波器對信號實現(xiàn)頻率濾波。同樣,運用
CPU
的運算、控制功能也可以實現(xiàn)頻率濾波,完成模擬濾波器類似的功能,這就是數(shù)字濾波。在許多數(shù)字信號處理專著中都有專門論述,可以參考。隨著計算機運算速度的提高,數(shù)字濾波在實時數(shù)據采集系統(tǒng)中的應用將愈來愈廣。在一般數(shù)據采集系統(tǒng)中,可以采用一些簡單的數(shù)值、邏輯運算處理來達到濾波的效果。用的方法有算術平均值法、比較取舍法、中值法、一階遞推數(shù)字濾波法等。具體見本版的有關文章。
5
結束語
軟件抗干擾的內容還有很多,例如,檢測量的數(shù)字濾波、壞值剔除;人工控制指令的合法性和輸入設定值的合法性判別等等,這些都是一個完善的工業(yè)控制系統(tǒng)必不可少的
,
有關的文章可以參閱本版的其他文章。
工業(yè)控制是計算機的*重要的應用領域,也是計算機的*艱難的應用環(huán)境。我從多年來的研究經驗認為:工業(yè)控制計算機的抗干擾性能根本在硬件結構,軟件抗干擾只是一個補充。硬件的設計應當盡可能的完善,不能輕易降低標準,讓軟件去補救!而軟件的編制則要處處考慮到硬件可能的失效,可能受到的干擾等種種問題,在保證實時性、控制精度和控制功能的前提下,盡力提高系統(tǒng)的抗干擾性能。要考慮得很細致,努力賦予軟件高度的智能。這樣,軟件才是**的。把硬件和軟件有機的結合起來,一個經得起長期現(xiàn)場考驗的盡可能完善的工業(yè)控制系統(tǒng)才能實現(xiàn)。
上一篇:
嵌入式產品--彩票終端售賣機解決方案
下一篇:
工控機在汽車檢測行業(yè)中的應用
若網站內容侵犯到您的權益,請通過網站上的聯(lián)系方式及時聯(lián)系我們修改或刪除