,,,
(1.武漢理工大學 能源與動力工程學院,武漢 430063;2.泰州口岸船舶有限公司,江蘇 泰州 225321)
在船舶動力設備運行狀態監測、相關實驗室性能測試分析等應用場合,都需要利用各類傳感器獲取被監測對象的狀態參數,并將其在儀表或監測系統軟件界面進行展示。當前類似系統在開發時主要根據實際需求統計監測參數個數與界面控件呈現形式,在選定的開發平臺上完成界面的布局與邏輯代碼編輯工作[1-3]。這種實現方法簡單易行,但都采用固化的軟件界面,如果需要增加顯示參量、改變某個監測參量的展示形式、調整布局位置、調整系統顯示器尺寸與個數等情況,都只能通過修改軟件源代碼、并重新編譯分發的方式才能實現,系統的靈活性不夠。針對該問題,基于配置化方式,提出一套更為靈活方便的處理方式。
配置方式的方法的核心是通過將直接測量的參數及中間計算量等需要顯示的測點與呈現控件、呈現位置、呈現顯示器動態綁定的方法,并結合設計的配置工具,幫助進行初始配置并提供用戶后續自行調整的能力。系統運行時,根據設定的配置信息,利用動態創建界面的方法自動生成界面元素[4]。在Visual Studio 2017平臺利用VB.NET及SQL Server 2008數據庫進行了方法的測試驗證。
配置信息的設計是重點之一,配置文件的形式可以是ini文件、xml文件、注冊表、數據庫表格等多種類型,但是由于實際項目中的配置信息較多,以數據庫的形式無疑是最好的選擇[5]。數據庫是信息系統的核心和基礎,把信息系統中的大量數據按照一定的模型組織起來,提供存儲、維護、檢索數據的功能,使信息系統可以方便、及時、準確的從數據庫中獲取所需要的信息[6]。具體配置信息的數據庫表的設計包括原始測點登記表、計算測點表配置表、測點顯示類型表、系統顯示器登記表、顯示配置方案表等信息。原始測點登記表是對試驗數據采集的相關信息進行存儲,主要字段結構見表1。

表1 原始測點登記表
在原始測點登記表中,幾個關鍵字段的作用描述如下。
1)測點編號。實現對測點進行編號,對每個測點的編號要求唯一。
2)對應存儲表。存儲對應測點的采集數據表的表名信息。
3)對應存儲字段。存儲對應測點在存儲表中的對應字段名。
(4)測點類型:對測點類型的描述,測點類型為原始測點或計算測點,若測點類型為計算測點,則需要配置“計算測點配置表”的數據。計算測點配置表的主要結構見表2。

表2 計算測點表配置表
計算測點表配置表中幾個關鍵字段的用途說明如下。
1)計算配置說明。對計算公式設置進行描述,例如6個測點溫度的平均值。
2)計算配置表達式。設定計算表達式,該表達式是給用戶看的,而具體計算公式設定,在計算公式設置字段中。例如(水潤滑軸承溫度測點1+水潤滑軸承溫度測點2++水潤滑軸承溫度測點6)/6。
3)計算公式設置。其值一般為(wd1+wd2++wd6)/6,其中wd1為對應“原始測點登記表”中的測點編號,其他類同,可以配置為 max(wd1,wd2,,wd6),則表示取某一次測量6個測點中的最大值,因為這6個測點在一次采樣中是都有值的,對這2個表達式,為了后續識別,需要在“計算配置說明”字段中給予一個描述。計算測點表配置表的具體示例見表3。

表3 計算測點表配置表示例
在常見的監測數據呈現系統中都是以界面控件的形式進行監測數據的展示,通過測點顯示類型表對界面控件的信息進行存儲,若測點顯示類型不滿足實際需求時,則可以通過添加配置信息的形式實現界面控件的添加。具體信息見表4。

表4 測點顯示類型表
測點顯示類型表中“類型名稱”字段用于對控件的名稱進行描述,例如垂直液柱、數字表、儀表盤以及趨勢圖等。若系統當前顯示器無法滿足全部的數據呈現功能時,可以通過系統顯示器登記表進行拓展顯示屏,增強系統的拓展性。系統顯示器登記表用于保存系統目前用多少個顯示器,每個顯示器的尺寸等信息。具體信息見表5。

表5 系統顯示器登記表
系統顯示器登記表幾個關鍵字段說明如下。
1)顯示器編號。對系統中存儲在顯示器進行編號。
2)顯示器類型。記錄顯示器的類型信息。
設計了顯示配置方案表用于將測點信息與顯示器以及界面控件相關聯的重要途徑,也是基于配置思想的軸系監測數據呈現方法設計的核心之一。常見的監測數據系統由區域、測點、控件以及文本描述組成。根據配置方式設計的顯示配置方案表結構見表6。

表6 顯示配置方案表
顯示配置方案表中幾個關鍵字段說明如下。
1)主鍵。對顯示配置方案表中的信息進行編號,對每條配置信息的編號要求唯一。
2)父主鍵。存儲當前配置信息的父主鍵信息,如果為根節點,則無父主鍵,值保存0。通過主鍵及父主鍵這2個字段,實現用結構化的存儲表格來保存樹狀的信息。
3)名稱。當前配置顯示信息的名稱,可以是標簽名、頁簽名、區域名、測點顯示名稱等。
4)類型。當前配置信息的所屬類型,其中所有可供選擇的類型為“顯示器、頁簽、區域、測點、文本描述”。
5)缺省顯示類型。存儲默認的顯示類型,當類型無信息時,類型為缺省顯示類型。
顯示器、頁簽、區域、測點以及文本描述互相之間的關系具有層次的關系,而通過主鍵與父主鍵的存在,可以建立樹狀的結構進行設置,但是這個樹狀的結構很難確定具有多少層,只能通過實際顯示配置方案表中的配置信息進行設定,圖1是樹狀結構的示例圖。
由圖1可以看出,每個區域都有邏輯測點,而邏輯測點是根據控件的類型進行設置,控件類型共分為2種模式:①簡單控件,其只能顯示測點一個時間點上的值;②復雜控件,可以顯示測點多個時間點上的值,比如趨勢圖控件。
雖然配置信息的設定比較簡單,但如果這些配置信息由人工來輸入仍然比較繁瑣,設計了一種配置設定工具,其操作界面見圖2。通過配置工具能夠快速設定配置信息,其中設定信息包括主鍵與父主鍵,配置信息的主鍵為唯一的標識,根據所選擇的類型不同,父主鍵的信息會自動進行匹配,界面元素的坐標通過用戶在示例的配置界面上用鼠標點擊位置的方式自動輸入到文本框中,并對其高度與寬度進行設定,最終決定界面元素所在的位置。
系統設計為支持不同顯示器顯示不同的監測數據,因此程序和顯示器是要對應的,在程序運行環境下設計了一個設置的ini文件,或者在程序啟動時要人為選擇一個顯示器編號,才能決定這個顯示器上顯示的內容。
當程序啟動時,根據配置信息或人工選擇獲得當前顯示器編號,根據顯示器的編號對“顯示配置方案表”進行查詢獲得需要的信息,將獲得的信息進行分類,獲得顯示的層次分別,根據顯示類型,利用動態創建控件技術界面生成頁簽等區域布局,然后針對一個最小的區域,獲取該區域下要顯示的測點,通過自動控件添加控件到區域,細化顯示,并在測點與定時器對應登記,程序化初始化顯示完成。
通過上述的這種方法程序初始化的優缺點如下。
1)優點。通過這種方式,界面顯示的控件完全由用戶自主配置,能夠適應各種工況要求,方法較為靈活。
2)缺點。界面初始化需要的時間相比原來固化設計的程序啟動使用要稍微長一些,但時間差異也不會超過0.5 s。
在文中的應用場景下,這種測試平臺數據顯示對界面初始化時間要求不是很苛刻,而且初始化后的響應時間與預先設計布局的軟件一樣的,因此沒有影響。
程序初始化完后,首先需要統計有多少個不同的數據刷新時間間隔,對每個不同的時間間隔值,登記其關聯對應的測點編號,根據統計出來的不同的數據刷新時間間隔的個數注冊定時器時間,當定時器時間到,根據該定時器關聯的測點編號,獲取對應的測點信息,包括測點的顯示模式,根據測點顯示模式確定數據值的處理方式,更新界面顯示。
若程序在運行過程中切換某個監測數據顯示方式,例如對一個監測測點,可以分為單一值顯示模式和歷史數據一起顯示模式。在程序運行過程中,用戶可能想要實時動態切換該量的形式模式,用戶可以通過右鍵選擇菜單或者點擊導航欄功能中的“切換顯示模式”選擇需要的顯示類型,將當前軟件模塊中的控件移除,根據新類型,在對應位置創建相應的控件并設置控件的數據顯示。
根據以上思路及算法實現了相應的程序,圖3是程序運行界面示例。通過基于配置方式的監測數據展示方法,程序的界面根據實際監控工況由用戶使用配置工具設定配置信息生成所需要的界面,使傳統的軟件系統固化的缺點得以改善,方便視情工況的監測數據進行呈現。
1)通過配置方式,用戶自主設定配置信息,生成所需監測界面,與傳統狀態監測系統的數據呈現方式相比,文中方法的靈活性、適應性與擴展性更強。
2)配置方式的監測系統與傳統狀態監測系統相比,系統初始化時間較固化界面稍微延長,在系統使用過程中系統穩定性與效率相同。
3)該方法可以推廣應用到類似的應用場景,具有一定的工程實用價值。