郭萬森,楊春霞,王 婧,呂海濤
(北京中水科水電科技開發有限公司,北京 100038)
在水電站計算機監控系統的人機界面上,運行人員下發命令的界面稱之為“控制界面”,該界面上包括控制命令和設備狀態顯示,屬于關鍵性人機界面,關系到實際設備的控制運行。如何才能更好地設計并集成該類界面,一直是集成工程師關注的重點。對于傳統的控制界面,只能下發一個設備的一個命令類型,如果想要下發其他設備的命令或者下發其他命令類型,需要多次打開多個控制界面,大大地降低了運行效率。基于iP9000智能一體化平臺的JavaScript腳本控制方式,可以滿足多樣化、復雜的控制界面需求。其界面采用Qt(跨平臺圖形用戶界面集成開發工具)制作的UI(可視化設計的窗體定義文件),可以根據實際運行需求,把某一子系統設備(例如:高壓油系統)的控制命令全部集成到一個控制界面,運行人員只需打開一個控制界面,就可以完成對該子系統的控制,同時還可以實現閉鎖條件的判斷和顯示,告知運行人員哪些控制命令滿足條件可以下發,哪些控制命令不滿足條件不可下發,并顯示出哪些條件不滿足,提高效率的同時也滿足了交互友好性。
無論是傳統控制方式,還是JavaScript腳本方式,下發命令是其最基本的功能,但是傳統的控制方式局限于設備對象,即人機界面上的圖元連接哪個對象(例如:1號高壓油泵),只能下發該對象的命令(啟動/停止/故障復歸),而JavaScript腳本方式突破了這種局限性,以高壓油系統為例,假如該系統有3臺油泵,分別為:1號、2號高壓油泵互備冗余,3號高壓油泵是備用泵。主要控制命令如表1所示。

表1 高壓油系統控制命令
由表1可見,高壓油系統共有27個命令,其中相同標號命令屬于同一種類型。如果采用傳統控制方式,需要在人機界面至少建立11個命令按鈕(右上標數字相同的為一組命令,即一個命令按鈕),運行人員若要完成以上操作,就需要經歷非常繁瑣操作過程。如果采用JavaScript腳本方式,我們可以將這些命令分為兩大類:系統命令(7~11)、單泵命令(1和4,2和5,3和6),其中單泵命令可以關聯到人機界面的每個泵圖元上,系統命令鏈接到系統命令按鈕即可,實現了不同命令類型按要求組合,同一命令界面能夠完成多種命令下發功能,極大地簡化了人機界面,更方便運行人員操作。
為了更好地提高人機界面友好交互性,還可以增加如下功能:
(1)狀態燈:下發命令后,反饋結果以“灰/綠”狀態燈顯示在控制界面上,例如下發1號高壓油泵啟動命令,灰色燈表示沒有運行,綠色燈表示已經運行,同時需要不斷刷新獲取實時狀態;
(2)命令按鈕關聯閉鎖狀態:閉鎖條件不滿足情況下,將命令按鈕變灰并不可點擊,防止誤操作,同樣需要不斷刷新獲取閉鎖狀態,一旦閉鎖滿足,立即將命令按鈕可執行;
(3)閉鎖顯示:如果閉鎖條件不滿足,需要向運行人員具體顯示出哪些條件不滿足,需要單獨增加一個顯示按鈕,而不是點擊命令按鈕后顯示,二者是區分開的;
(4)全局閉鎖:例如LCU的遠方/現地把手,只有在“遠方”狀態下,操作員站才能下令,這樣的閉鎖針對該LCU所有控制命令,可以用該條件閉鎖控制界面的控制命令區,而不是具體的控制命令。
界面的繪制工具采用Qt 5.6.2(或更高版本),其豐富的控件及屬性參數極大地方便了集成工作,仍以上述“高壓油系統”為例繪制控制界面,需要繪制兩種控制界面:系統控制(圖1所示)、單泵控制(圖2所示),主要內容如下:

圖1 系統控制界面示例
(1)界面劃分:標題區、控制命令區、操作權限區;
(2)整體背景:采用QDialog,默認顏色;
(3)狀態燈:采用QLable,填充圖片方式(灰、綠、紅),一般繪制兩個大小一樣并疊加在一起;
(4)命令按鈕:采用QpushButton,默認顏色或填充圖片方式;
(5)閉鎖顯示按鈕:采用QpushButton,填充圖片方式(點擊,如圖3所示);

圖3 閉鎖條件顯示界面示例
(6)單元組:采用QGroupBox,默認顏色,標題為分區名稱。

圖2 單泵控制界面示例
iP9000智能一體化平臺支持豐富的系統交互函數,可以滿足讀取實時數據、查詢閉鎖狀態、發送遙調/遙控命令、產生事件、語音告警等,編寫JavaScript腳本時可以調用這些函數。基本函數如表2所示。

表2 iP9000智能一體化平臺支持的JavaScript基本函數列表
腳本文件的格式為“xxx.qs”,其中xxx需要遵循一定的命名規則,例如“電廠縮寫+機組編號+設備縮寫或編號”。以“高壓油系統”為例,系統控制與單泵控制的區別是狀態燈數量和命令數量、種類,基本邏輯一致,腳本邏輯結構如圖4所示。

圖4 高壓油系統控制腳本邏輯結構圖
控制界面與腳本完成后,需要集成到iP9000平臺上運行并測試,控制界面文件格式為“*.ui”,腳本文件的格式為“*.qs”,需要將這兩種文件放置在“homeemsh9000uifscript”目錄下。平臺提供了人機界面集成工具“IPM”。啟動IPM,打開“高壓油系統”界面,在適當位置放置一個熱點按鈕,用來調用系統控制的腳本,3個泵的圖元直接調用相應的單泵控制腳本,無論是熱點按鈕,還是泵圖元,均可在其屬性內選擇控制類型為“調用腳本”,在“腳本名稱”欄內填寫相應的腳本文件名,保存后完成人機界面的集成,如圖5所示。

圖5 JavaScript腳本集成到人機界面示例
人機界面運行工具是平臺提供的“OIX”。啟動OIX后,打開“高壓油系統”實時界面,分別點擊“系統控制”命令按鈕和“單泵控制”圖元,系統自動調用相應的控制界面,測試內容如下:
(1)檢查標題區內容是否正確;
(2)所有狀態燈與現場實際情況核對;
(3)逐一滿足閉鎖狀態,檢查命令按鈕使能;
(4)逐一打開閉鎖界面,檢查邏輯正確性;
(5)逐一切換操作權限,檢查控制命令區使能;
(6)在閉鎖狀態和權限滿足情況下,下發控制命令,檢查確認窗口的命令描述正確性,同時檢查事件一覽表和現場實際設備動作情況。
上述測試內容準確無誤后,即可投入運行使用。JavaScript腳本控制方式具有可復制性,所有機組相同設備可調用一個控制界面,減少了集成工作量。
JavaScript控制腳本方式相比于傳統控制方式的優勢,在于控制界面的集成度更高,同一控制界面能夠完成不同類型命令的下發,極大簡化操作步驟。同時JavaScript腳本控制方式可復制性更好,針對相同屬性的命令對象,只需改變命令節點,就可滿足復雜環境中命令下發需求,符合工業控制中按對象編程的要求。目前此項技術在三峽巴西項目伊利亞電站和朱比亞電站計算機監控系統中廣泛應用,得到業主充分認可。