郭萬(wàn)森,楊春霞,王 婧,呂海濤
(北京中水科水電科技開(kāi)發(fā)有限公司,北京 100038)
在水電站計(jì)算機(jī)監(jiān)控系統(tǒng)的人機(jī)界面上,運(yùn)行人員下發(fā)命令的界面稱(chēng)之為“控制界面”,該界面上包括控制命令和設(shè)備狀態(tài)顯示,屬于關(guān)鍵性人機(jī)界面,關(guān)系到實(shí)際設(shè)備的控制運(yùn)行。如何才能更好地設(shè)計(jì)并集成該類(lèi)界面,一直是集成工程師關(guān)注的重點(diǎn)。對(duì)于傳統(tǒng)的控制界面,只能下發(fā)一個(gè)設(shè)備的一個(gè)命令類(lèi)型,如果想要下發(fā)其他設(shè)備的命令或者下發(fā)其他命令類(lèi)型,需要多次打開(kāi)多個(gè)控制界面,大大地降低了運(yùn)行效率?;趇P9000智能一體化平臺(tái)的JavaScript腳本控制方式,可以滿(mǎn)足多樣化、復(fù)雜的控制界面需求。其界面采用Qt(跨平臺(tái)圖形用戶(hù)界面集成開(kāi)發(fā)工具)制作的UI(可視化設(shè)計(jì)的窗體定義文件),可以根據(jù)實(shí)際運(yùn)行需求,把某一子系統(tǒng)設(shè)備(例如:高壓油系統(tǒng))的控制命令全部集成到一個(gè)控制界面,運(yùn)行人員只需打開(kāi)一個(gè)控制界面,就可以完成對(duì)該子系統(tǒng)的控制,同時(shí)還可以實(shí)現(xiàn)閉鎖條件的判斷和顯示,告知運(yùn)行人員哪些控制命令滿(mǎn)足條件可以下發(fā),哪些控制命令不滿(mǎn)足條件不可下發(fā),并顯示出哪些條件不滿(mǎn)足,提高效率的同時(shí)也滿(mǎn)足了交互友好性。
無(wú)論是傳統(tǒng)控制方式,還是JavaScript腳本方式,下發(fā)命令是其最基本的功能,但是傳統(tǒng)的控制方式局限于設(shè)備對(duì)象,即人機(jī)界面上的圖元連接哪個(gè)對(duì)象(例如:1號(hào)高壓油泵),只能下發(fā)該對(duì)象的命令(啟動(dòng)/停止/故障復(fù)歸),而JavaScript腳本方式突破了這種局限性,以高壓油系統(tǒng)為例,假如該系統(tǒng)有3臺(tái)油泵,分別為:1號(hào)、2號(hào)高壓油泵互備冗余,3號(hào)高壓油泵是備用泵。主要控制命令如表1所示。
表1 高壓油系統(tǒng)控制命令
由表1可見(jiàn),高壓油系統(tǒng)共有27個(gè)命令,其中相同標(biāo)號(hào)命令屬于同一種類(lèi)型。如果采用傳統(tǒng)控制方式,需要在人機(jī)界面至少建立11個(gè)命令按鈕(右上標(biāo)數(shù)字相同的為一組命令,即一個(gè)命令按鈕),運(yùn)行人員若要完成以上操作,就需要經(jīng)歷非常繁瑣操作過(guò)程。如果采用JavaScript腳本方式,我們可以將這些命令分為兩大類(lèi):系統(tǒng)命令(7~11)、單泵命令(1和4,2和5,3和6),其中單泵命令可以關(guān)聯(lián)到人機(jī)界面的每個(gè)泵圖元上,系統(tǒng)命令鏈接到系統(tǒng)命令按鈕即可,實(shí)現(xiàn)了不同命令類(lèi)型按要求組合,同一命令界面能夠完成多種命令下發(fā)功能,極大地簡(jiǎn)化了人機(jī)界面,更方便運(yùn)行人員操作。
為了更好地提高人機(jī)界面友好交互性,還可以增加如下功能:
(1)狀態(tài)燈:下發(fā)命令后,反饋結(jié)果以“灰/綠”狀態(tài)燈顯示在控制界面上,例如下發(fā)1號(hào)高壓油泵啟動(dòng)命令,灰色燈表示沒(méi)有運(yùn)行,綠色燈表示已經(jīng)運(yùn)行,同時(shí)需要不斷刷新獲取實(shí)時(shí)狀態(tài);
(2)命令按鈕關(guān)聯(lián)閉鎖狀態(tài):閉鎖條件不滿(mǎn)足情況下,將命令按鈕變灰并不可點(diǎn)擊,防止誤操作,同樣需要不斷刷新獲取閉鎖狀態(tài),一旦閉鎖滿(mǎn)足,立即將命令按鈕可執(zhí)行;
(3)閉鎖顯示:如果閉鎖條件不滿(mǎn)足,需要向運(yùn)行人員具體顯示出哪些條件不滿(mǎn)足,需要單獨(dú)增加一個(gè)顯示按鈕,而不是點(diǎn)擊命令按鈕后顯示,二者是區(qū)分開(kāi)的;
(4)全局閉鎖:例如LCU的遠(yuǎn)方/現(xiàn)地把手,只有在“遠(yuǎn)方”狀態(tài)下,操作員站才能下令,這樣的閉鎖針對(duì)該LCU所有控制命令,可以用該條件閉鎖控制界面的控制命令區(qū),而不是具體的控制命令。
界面的繪制工具采用Qt 5.6.2(或更高版本),其豐富的控件及屬性參數(shù)極大地方便了集成工作,仍以上述“高壓油系統(tǒng)”為例繪制控制界面,需要繪制兩種控制界面:系統(tǒng)控制(圖1所示)、單泵控制(圖2所示),主要內(nèi)容如下:
圖1 系統(tǒng)控制界面示例
(1)界面劃分:標(biāo)題區(qū)、控制命令區(qū)、操作權(quán)限區(qū);
(2)整體背景:采用QDialog,默認(rèn)顏色;
(3)狀態(tài)燈:采用QLable,填充圖片方式(灰、綠、紅),一般繪制兩個(gè)大小一樣并疊加在一起;
(4)命令按鈕:采用QpushButton,默認(rèn)顏色或填充圖片方式;
(5)閉鎖顯示按鈕:采用QpushButton,填充圖片方式(點(diǎn)擊,如圖3所示);
圖3 閉鎖條件顯示界面示例
(6)單元組:采用QGroupBox,默認(rèn)顏色,標(biāo)題為分區(qū)名稱(chēng)。
圖2 單泵控制界面示例
iP9000智能一體化平臺(tái)支持豐富的系統(tǒng)交互函數(shù),可以滿(mǎn)足讀取實(shí)時(shí)數(shù)據(jù)、查詢(xún)閉鎖狀態(tài)、發(fā)送遙調(diào)/遙控命令、產(chǎn)生事件、語(yǔ)音告警等,編寫(xiě)JavaScript腳本時(shí)可以調(diào)用這些函數(shù)?;竞瘮?shù)如表2所示。
表2 iP9000智能一體化平臺(tái)支持的JavaScript基本函數(shù)列表
腳本文件的格式為“xxx.qs”,其中xxx需要遵循一定的命名規(guī)則,例如“電廠(chǎng)縮寫(xiě)+機(jī)組編號(hào)+設(shè)備縮寫(xiě)或編號(hào)”。以“高壓油系統(tǒng)”為例,系統(tǒng)控制與單泵控制的區(qū)別是狀態(tài)燈數(shù)量和命令數(shù)量、種類(lèi),基本邏輯一致,腳本邏輯結(jié)構(gòu)如圖4所示。
圖4 高壓油系統(tǒng)控制腳本邏輯結(jié)構(gòu)圖
控制界面與腳本完成后,需要集成到iP9000平臺(tái)上運(yùn)行并測(cè)試,控制界面文件格式為“*.ui”,腳本文件的格式為“*.qs”,需要將這兩種文件放置在“homeemsh9000uifscript”目錄下。平臺(tái)提供了人機(jī)界面集成工具“IPM”。啟動(dòng)IPM,打開(kāi)“高壓油系統(tǒng)”界面,在適當(dāng)位置放置一個(gè)熱點(diǎn)按鈕,用來(lái)調(diào)用系統(tǒng)控制的腳本,3個(gè)泵的圖元直接調(diào)用相應(yīng)的單泵控制腳本,無(wú)論是熱點(diǎn)按鈕,還是泵圖元,均可在其屬性?xún)?nèi)選擇控制類(lèi)型為“調(diào)用腳本”,在“腳本名稱(chēng)”欄內(nèi)填寫(xiě)相應(yīng)的腳本文件名,保存后完成人機(jī)界面的集成,如圖5所示。
圖5 JavaScript腳本集成到人機(jī)界面示例
人機(jī)界面運(yùn)行工具是平臺(tái)提供的“OIX”。啟動(dòng)OIX后,打開(kāi)“高壓油系統(tǒng)”實(shí)時(shí)界面,分別點(diǎn)擊“系統(tǒng)控制”命令按鈕和“單泵控制”圖元,系統(tǒng)自動(dòng)調(diào)用相應(yīng)的控制界面,測(cè)試內(nèi)容如下:
(1)檢查標(biāo)題區(qū)內(nèi)容是否正確;
(2)所有狀態(tài)燈與現(xiàn)場(chǎng)實(shí)際情況核對(duì);
(3)逐一滿(mǎn)足閉鎖狀態(tài),檢查命令按鈕使能;
(4)逐一打開(kāi)閉鎖界面,檢查邏輯正確性;
(5)逐一切換操作權(quán)限,檢查控制命令區(qū)使能;
(6)在閉鎖狀態(tài)和權(quán)限滿(mǎn)足情況下,下發(fā)控制命令,檢查確認(rèn)窗口的命令描述正確性,同時(shí)檢查事件一覽表和現(xiàn)場(chǎng)實(shí)際設(shè)備動(dòng)作情況。
上述測(cè)試內(nèi)容準(zhǔn)確無(wú)誤后,即可投入運(yùn)行使用。JavaScript腳本控制方式具有可復(fù)制性,所有機(jī)組相同設(shè)備可調(diào)用一個(gè)控制界面,減少了集成工作量。
JavaScript控制腳本方式相比于傳統(tǒng)控制方式的優(yōu)勢(shì),在于控制界面的集成度更高,同一控制界面能夠完成不同類(lèi)型命令的下發(fā),極大簡(jiǎn)化操作步驟。同時(shí)JavaScript腳本控制方式可復(fù)制性更好,針對(duì)相同屬性的命令對(duì)象,只需改變命令節(jié)點(diǎn),就可滿(mǎn)足復(fù)雜環(huán)境中命令下發(fā)需求,符合工業(yè)控制中按對(duì)象編程的要求。目前此項(xiàng)技術(shù)在三峽巴西項(xiàng)目伊利亞電站和朱比亞電站計(jì)算機(jī)監(jiān)控系統(tǒng)中廣泛應(yīng)用,得到業(yè)主充分認(rèn)可。