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