引言
現(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)畫(huà)顯示現(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ù)處理、畫(huà)面監(jiān)視等[3]。操作員站和歷史站的功能有所區(qū)別,操作員站主要包括畫(huà)面監(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)行。
-
處理器
+關(guān)注
關(guān)注
68文章
19400瀏覽量
230742 -
SCADA
+關(guān)注
關(guān)注
6文章
269瀏覽量
36829 -
麒麟
+關(guān)注
關(guān)注
1文章
224瀏覽量
13674
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論