文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.189011
中文引用格式: 徐一鳳,豐大軍,王皓,等. 基于麒麟系統(tǒng)的SCADA狀態(tài)診斷系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,44(5):134-136,143.
英文引用格式: Xu Yifeng,F(xiàn)eng Dajun,Wang Hao,et al. The design and implementation of SCADA state diagnosis system on Kylin system[J]. Application of Electronic Technique,2018,44(5):134-136,143.
0 引言
現(xiàn)有的數(shù)據(jù)采集與監(jiān)視控制(SCADA)系統(tǒng)大多運(yùn)行在Windows平臺上,缺少國產(chǎn)化方面的考慮[1]。本文介紹的SCADA系統(tǒng)開發(fā)及運(yùn)行環(huán)境實(shí)現(xiàn)了全國產(chǎn)化。作為工業(yè)級數(shù)據(jù)采集與監(jiān)視控制軟件,對于系統(tǒng)的穩(wěn)定性和可靠性要求較高。因此SCADA系統(tǒng)中需要有狀態(tài)診斷子系統(tǒng),并且系統(tǒng)中的關(guān)鍵組件——服務(wù)器,必須實(shí)現(xiàn)冗余配置,當(dāng)主服務(wù)器發(fā)生故障時,能夠及時診斷故障并切換到后備服務(wù)器,且切換過程中不能造成擾動。由于狀態(tài)診斷系統(tǒng)與操作系統(tǒng)關(guān)系較為密切,不同操作系統(tǒng)下的實(shí)現(xiàn)可能大不相同,本文設(shè)計與實(shí)現(xiàn)了自主研發(fā)的基于國產(chǎn)麒麟操作系統(tǒng)的狀態(tài)診斷系統(tǒng)。
1 整體結(jié)構(gòu)
數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)采用跨平臺的軟件架構(gòu)設(shè)計:硬件采用國產(chǎn)飛騰處理器的服務(wù)器和臺式機(jī)(或筆記本),操作系統(tǒng)采用國產(chǎn)中標(biāo)麒麟,開發(fā)工具采用可跨平臺的Qt,支持在國產(chǎn)中標(biāo)麒麟和Windows操作系統(tǒng)上跨平臺運(yùn)行。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)采用客戶端/服務(wù)器體系結(jié)構(gòu),正常情況下歷史站即為系統(tǒng)的服務(wù)器,如果用戶有高可靠性要求,會配置冗余歷史站,歷史站負(fù)責(zé)與下位機(jī)進(jìn)行數(shù)據(jù)交互,并記錄歷史數(shù)據(jù)??蛻舳思锤鱾€操作員站,操作員站的數(shù)據(jù)從歷史站獲取,且網(wǎng)絡(luò)僅傳輸每秒中發(fā)生變化的變更數(shù)據(jù)集。操作員站用于人機(jī)交互,用文字、動畫顯示現(xiàn)場的狀態(tài),并可以對現(xiàn)場的開關(guān)、閥門進(jìn)行操作。根據(jù)用戶需要,可以配置對外通信功能,通過網(wǎng)絡(luò)單向發(fā)布管理層用戶關(guān)心的數(shù)據(jù)和狀態(tài)[2]。
2 功能及實(shí)現(xiàn)
數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)從功能上分為離線功能和在線功能:離線包括工程組態(tài)、離線查詢等,在線包括數(shù)據(jù)通信、服務(wù)處理、數(shù)據(jù)處理、畫面監(jiān)視等[3]。操作員站和歷史站的功能有所區(qū)別,操作員站主要包括畫面監(jiān)視、數(shù)據(jù)下發(fā)、打印等與用戶的圖形接口,歷史站除包含操作員站的所有功能外,還包含數(shù)據(jù)通信、服務(wù)處理、數(shù)據(jù)處理等后臺任務(wù)。狀態(tài)診斷是操作員站和歷史站都具有的后臺服務(wù)子系統(tǒng)。軟件結(jié)構(gòu)如圖2所示。
歷史站包含所有功能的設(shè)計優(yōu)點(diǎn)在于,對于很小的項目,可以只配置一臺歷史站,或者配置兩臺互為冗余的歷史站,這樣可以有效降低成本。
2.1 狀態(tài)診斷子系統(tǒng)基本功能
(1)初始確定歷史站的主從機(jī)狀態(tài):先啟動的為主機(jī);同時啟動時,A歷史站為主機(jī)。
(2)周期自診斷:周期診斷本機(jī)各子任務(wù)的狀態(tài)及系統(tǒng)資源狀態(tài)。
(3)周期互診斷:實(shí)現(xiàn)主從機(jī)之間的心跳監(jiān)測,通過周期性互發(fā)心跳值的方式實(shí)現(xiàn)。主機(jī)收不到從機(jī)的心跳信號時仍正常運(yùn)行,從機(jī)收不到主機(jī)的心跳信號則切換為主機(jī)。
(4)判斷數(shù)據(jù)站的狀態(tài):
①在線:任務(wù)管理、數(shù)據(jù)通信、服務(wù)器狀態(tài)診斷、校時、數(shù)據(jù)處理、歷史數(shù)據(jù)收集、數(shù)據(jù)采集、報警、全記錄等,全部正常運(yùn)行。
②離線:除數(shù)據(jù)通信模塊,需要在線的任務(wù)都沒有運(yùn)行。
③故障:在線時需要在線的任務(wù)存在不正常運(yùn)行的[4]。
2.2 自診斷方式
各子任務(wù)的狀態(tài)通過周期檢測心跳值的方式檢測。對于心跳超時的子任務(wù),可以根據(jù)任務(wù)配置,對出錯的任務(wù)作不關(guān)閉不重啟、關(guān)閉不重啟、關(guān)閉并重啟等處理,如果出錯的子任務(wù)仍然不能正常運(yùn)行,從機(jī)只報故障,主機(jī)需要切換為從機(jī)。
中標(biāo)麒麟系統(tǒng)可以通過兩種方式獲取系統(tǒng)資源狀態(tài):
(1)讀取系統(tǒng)文件,例如可以通過讀取carrier文件,獲取網(wǎng)絡(luò)狀態(tài),部分示例代碼參見函數(shù)void getNetState()。
(2)調(diào)用shell命令,解析命令的返回值,例如可以通過解析df命令的執(zhí)行結(jié)果,獲取硬盤使用率,部分示例代碼參見函數(shù)void getHardDiskOccupy()。
針對大部分冗余歷史站容易出現(xiàn)的雙主問題,本文制作了詳細(xì)的冗余切換表,通過測試證明,可以避免雙主的出現(xiàn)。部分冗余切換如表1所示。
為了保證系統(tǒng)穩(wěn)定可靠地運(yùn)行,SCADA的狀態(tài)診斷系統(tǒng)需要確定系統(tǒng)當(dāng)前狀態(tài),并判斷何時滿足狀態(tài)切換的條件。本文設(shè)計并實(shí)現(xiàn)的狀態(tài)診斷系統(tǒng)按照圖3所示狀態(tài)圖進(jìn)行狀態(tài)判斷和切換[5]。
狀態(tài)診斷系統(tǒng)在工程運(yùn)行前需要先檢測工程配置是否正確,如果配置錯誤(如未配置歷史站、PC名字配置錯誤),則提示錯誤,并結(jié)束工程;如果配置正確,則啟動各子任務(wù),并運(yùn)行工程。
運(yùn)行工程后進(jìn)入在線狀態(tài),檢測本機(jī)配置,如果配置為操作員站,則不存在主從機(jī)的區(qū)別,以操作員站的狀態(tài)運(yùn)行,直到退出在線或退出工程;如果配置為歷史站,則需要判斷主從狀態(tài),根據(jù)有故障不搶主、A機(jī)優(yōu)先的原則確定主從機(jī)狀態(tài)。
為了減少切換次數(shù),主機(jī)無故障會一直保持主機(jī)狀態(tài),從機(jī)周期檢測主機(jī)的狀態(tài),如果主機(jī)降從或退出,則從機(jī)自檢無故障可以升主。
主機(jī)和從機(jī)均可以退出在線或退出工程。
3 實(shí)驗結(jié)果
實(shí)驗條件:歷史站A、歷史站B均正常運(yùn)行。實(shí)驗操作及實(shí)驗結(jié)果如表2所示。
4 結(jié)論
實(shí)驗結(jié)果證明,本系統(tǒng)能夠按照預(yù)期的結(jié)果在國產(chǎn)麒麟系統(tǒng)上穩(wěn)定運(yùn)行。通過對任務(wù)的監(jiān)視、強(qiáng)制關(guān)閉與重啟任務(wù),能夠?qū)Τ鲥e的子任務(wù)及時進(jìn)行處理,保證各子任務(wù)的正常運(yùn)行;通過服務(wù)器冗余配置,可以保證主歷史站出故障能夠迅速切換到從歷史站,使得從歷史站出故障時不影響主歷史站的正常運(yùn)行。
參考文獻(xiàn)
[1] 納學(xué)禮.SCADA系統(tǒng)的發(fā)展及應(yīng)用[J].中小企業(yè)管理與科技(上旬刊),2010(10):286-287.
[2] 王常力,羅安.分布式控制系統(tǒng)設(shè)計與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2004.
[3] 馬旭東,陳永清,陳琛.基于PLC/SCADA結(jié)構(gòu)的計算機(jī)綜合控制系統(tǒng)[J].工業(yè)儀表與自動化裝置,2002(5):35-37.
[4] KRISHNA C M,SHIN K G.Real-time system[M].McGraw-Hill,2001.
[5] Qiu Bin,GOOI H B,Liu Yulu,et al.Internet-based SCADA display system[J].Computer Applications in Power.IEEE,2002,15(1):14-19.
作者信息:
徐一鳳,豐大軍,王 皓,陳俊凱,范曉東
(華北計算機(jī)系統(tǒng)工程研究所,北京100083)