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