《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于麒麟系統(tǒng)的SCADA狀態(tài)診斷系統(tǒng)的設計與實現(xiàn)
基于麒麟系統(tǒng)的SCADA狀態(tài)診斷系統(tǒng)的設計與實現(xiàn)
2018年電子技術(shù)應用第5期
徐一鳳,豐大軍,王 皓,陳俊凱,范曉東
華北計算機系統(tǒng)工程研究所,北京100083
摘要: 設計實現(xiàn)了一個狀態(tài)診斷系統(tǒng),其為數(shù)據(jù)采集與監(jiān)視控制(SCADA)系統(tǒng)的子系統(tǒng)。作為工業(yè)級監(jiān)視控制軟件,對于系統(tǒng)的穩(wěn)定性和可靠性有著很高的要求。狀態(tài)診斷子系統(tǒng)即是為了保證系統(tǒng)的穩(wěn)定性和可靠性而設計的。介紹了國產(chǎn)麒麟系統(tǒng)下數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)的總體結(jié)構(gòu),以及狀態(tài)診斷子系統(tǒng)的設計與實現(xiàn)。經(jīng)測試驗證,該系統(tǒng)在國產(chǎn)麒麟操作系統(tǒng)上運行穩(wěn)定可靠。
中圖分類號: TP277
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.189011
中文引用格式: 徐一鳳,豐大軍,王皓,等. 基于麒麟系統(tǒng)的SCADA狀態(tài)診斷系統(tǒng)的設計與實現(xiàn)[J].電子技術(shù)應用,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.
The design and implementation of SCADA state diagnosis system on Kylin system
Xu Yifeng,F(xiàn)eng Dajun,Wang Hao,Chen Junkai,F(xiàn)an Xiaodong
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: The state diagnosis system is subsystem of supervisory control and data acquisition. As an industrial monitoring control software, the system has the request of high stability and reliability. The state diagnosis subsystem is designed in order to ensure stability and reliability of the system. This paper introduces the general structure of the supervisory control and data acquisition on domestic Kylin system, and the design and implementation of state diagnosis subsystem. It has been verified by test that the system runs stably and reliably on domestic Kylin operating system.
Key words : Kylin system;supervisory control and data acquisition;state diagnosis

0 引言

    現(xiàn)有的數(shù)據(jù)采集與監(jiān)視控制(SCADA)系統(tǒng)大多運行在Windows平臺上,缺少國產(chǎn)化方面的考慮[1]。本文介紹的SCADA系統(tǒng)開發(fā)及運行環(huán)境實現(xiàn)了全國產(chǎn)化。作為工業(yè)級數(shù)據(jù)采集與監(jiān)視控制軟件,對于系統(tǒng)的穩(wěn)定性和可靠性要求較高。因此SCADA系統(tǒng)中需要有狀態(tài)診斷子系統(tǒng),并且系統(tǒng)中的關(guān)鍵組件——服務器,必須實現(xiàn)冗余配置,當主服務器發(fā)生故障時,能夠及時診斷故障并切換到后備服務器,且切換過程中不能造成擾動。由于狀態(tài)診斷系統(tǒng)與操作系統(tǒng)關(guān)系較為密切,不同操作系統(tǒng)下的實現(xiàn)可能大不相同,本文設計與實現(xiàn)了自主研發(fā)的基于國產(chǎn)麒麟操作系統(tǒng)的狀態(tài)診斷系統(tǒng)。

1 整體結(jié)構(gòu)

    數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)采用跨平臺的軟件架構(gòu)設計:硬件采用國產(chǎn)飛騰處理器的服務器和臺式機(或筆記本),操作系統(tǒng)采用國產(chǎn)中標麒麟,開發(fā)工具采用可跨平臺的Qt,支持在國產(chǎn)中標麒麟和Windows操作系統(tǒng)上跨平臺運行。系統(tǒng)整體結(jié)構(gòu)如圖1所示。

jsj2-t1.gif

    數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)采用客戶端/服務器體系結(jié)構(gòu),正常情況下歷史站即為系統(tǒng)的服務器,如果用戶有高可靠性要求,會配置冗余歷史站,歷史站負責與下位機進行數(shù)據(jù)交互,并記錄歷史數(shù)據(jù)??蛻舳思锤鱾€操作員站,操作員站的數(shù)據(jù)從歷史站獲取,且網(wǎng)絡僅傳輸每秒中發(fā)生變化的變更數(shù)據(jù)集。操作員站用于人機交互,用文字、動畫顯示現(xiàn)場的狀態(tài),并可以對現(xiàn)場的開關(guān)、閥門進行操作。根據(jù)用戶需要,可以配置對外通信功能,通過網(wǎng)絡單向發(fā)布管理層用戶關(guān)心的數(shù)據(jù)和狀態(tài)[2]。

2 功能及實現(xiàn)

    數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)從功能上分為離線功能和在線功能:離線包括工程組態(tài)、離線查詢等,在線包括數(shù)據(jù)通信、服務處理、數(shù)據(jù)處理、畫面監(jiān)視等[3]。操作員站和歷史站的功能有所區(qū)別,操作員站主要包括畫面監(jiān)視、數(shù)據(jù)下發(fā)、打印等與用戶的圖形接口,歷史站除包含操作員站的所有功能外,還包含數(shù)據(jù)通信、服務處理、數(shù)據(jù)處理等后臺任務。狀態(tài)診斷是操作員站和歷史站都具有的后臺服務子系統(tǒng)。軟件結(jié)構(gòu)如圖2所示。

jsj2-t2.gif

    歷史站包含所有功能的設計優(yōu)點在于,對于很小的項目,可以只配置一臺歷史站,或者配置兩臺互為冗余的歷史站,這樣可以有效降低成本。

2.1 狀態(tài)診斷子系統(tǒng)基本功能

    (1)初始確定歷史站的主從機狀態(tài):先啟動的為主機;同時啟動時,A歷史站為主機。

    (2)周期自診斷:周期診斷本機各子任務的狀態(tài)及系統(tǒng)資源狀態(tài)。

    (3)周期互診斷:實現(xiàn)主從機之間的心跳監(jiān)測,通過周期性互發(fā)心跳值的方式實現(xiàn)。主機收不到從機的心跳信號時仍正常運行,從機收不到主機的心跳信號則切換為主機。

    (4)判斷數(shù)據(jù)站的狀態(tài):

    ①在線:任務管理、數(shù)據(jù)通信、服務器狀態(tài)診斷、校時、數(shù)據(jù)處理、歷史數(shù)據(jù)收集、數(shù)據(jù)采集、報警、全記錄等,全部正常運行。

    ②離線:除數(shù)據(jù)通信模塊,需要在線的任務都沒有運行。

    ③故障:在線時需要在線的任務存在不正常運行的[4]。

2.2 自診斷方式

    各子任務的狀態(tài)通過周期檢測心跳值的方式檢測。對于心跳超時的子任務,可以根據(jù)任務配置,對出錯的任務作不關(guān)閉不重啟、關(guān)閉不重啟、關(guān)閉并重啟等處理,如果出錯的子任務仍然不能正常運行,從機只報故障,主機需要切換為從機。

    中標麒麟系統(tǒng)可以通過兩種方式獲取系統(tǒng)資源狀態(tài):

    (1)讀取系統(tǒng)文件,例如可以通過讀取carrier文件,獲取網(wǎng)絡狀態(tài),部分示例代碼參見函數(shù)void getNetState()。

    (2)調(diào)用shell命令,解析命令的返回值,例如可以通過解析df命令的執(zhí)行結(jié)果,獲取硬盤使用率,部分示例代碼參見函數(shù)void getHardDiskOccupy()。

jsj2-cx1.gif

    針對大部分冗余歷史站容易出現(xiàn)的雙主問題,本文制作了詳細的冗余切換表,通過測試證明,可以避免雙主的出現(xiàn)。部分冗余切換如表1所示。

jsj2-b1.gif

    為了保證系統(tǒng)穩(wěn)定可靠地運行,SCADA的狀態(tài)診斷系統(tǒng)需要確定系統(tǒng)當前狀態(tài),并判斷何時滿足狀態(tài)切換的條件。本文設計并實現(xiàn)的狀態(tài)診斷系統(tǒng)按照圖3所示狀態(tài)圖進行狀態(tài)判斷和切換[5]。

jsj2-t3.gif

    狀態(tài)診斷系統(tǒng)在工程運行前需要先檢測工程配置是否正確,如果配置錯誤(如未配置歷史站、PC名字配置錯誤),則提示錯誤,并結(jié)束工程;如果配置正確,則啟動各子任務,并運行工程。

    運行工程后進入在線狀態(tài),檢測本機配置,如果配置為操作員站,則不存在主從機的區(qū)別,以操作員站的狀態(tài)運行,直到退出在線或退出工程;如果配置為歷史站,則需要判斷主從狀態(tài),根據(jù)有故障不搶主、A機優(yōu)先的原則確定主從機狀態(tài)。

    為了減少切換次數(shù),主機無故障會一直保持主機狀態(tài),從機周期檢測主機的狀態(tài),如果主機降從或退出,則從機自檢無故障可以升主。

    主機和從機均可以退出在線或退出工程。

3 實驗結(jié)果

    實驗條件:歷史站A、歷史站B均正常運行。實驗操作及實驗結(jié)果如表2所示。

jsj2-b2.gif

4 結(jié)論

    實驗結(jié)果證明,本系統(tǒng)能夠按照預期的結(jié)果在國產(chǎn)麒麟系統(tǒng)上穩(wěn)定運行。通過對任務的監(jiān)視、強制關(guān)閉與重啟任務,能夠?qū)Τ鲥e的子任務及時進行處理,保證各子任務的正常運行;通過服務器冗余配置,可以保證主歷史站出故障能夠迅速切換到從歷史站,使得從歷史站出故障時不影響主歷史站的正常運行。

參考文獻

[1] 納學禮.SCADA系統(tǒng)的發(fā)展及應用[J].中小企業(yè)管理與科技(上旬刊),2010(10):286-287.

[2] 王常力,羅安.分布式控制系統(tǒng)設計與應用實例[M].北京:電子工業(yè)出版社,2004.

[3] 馬旭東,陳永清,陳琛.基于PLC/SCADA結(jié)構(gòu)的計算機綜合控制系統(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.



作者信息:

徐一鳳,豐大軍,王  皓,陳俊凱,范曉東

(華北計算機系統(tǒng)工程研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。