,,,
(1.武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,武漢 430063;2.泰州口岸船舶有限公司,江蘇 泰州 225321)
在船舶動(dòng)力設(shè)備運(yùn)行狀態(tài)監(jiān)測(cè)、相關(guān)實(shí)驗(yàn)室性能測(cè)試分析等應(yīng)用場(chǎng)合,都需要利用各類傳感器獲取被監(jiān)測(cè)對(duì)象的狀態(tài)參數(shù),并將其在儀表或監(jiān)測(cè)系統(tǒng)軟件界面進(jìn)行展示。當(dāng)前類似系統(tǒng)在開發(fā)時(shí)主要根據(jù)實(shí)際需求統(tǒng)計(jì)監(jiān)測(cè)參數(shù)個(gè)數(shù)與界面控件呈現(xiàn)形式,在選定的開發(fā)平臺(tái)上完成界面的布局與邏輯代碼編輯工作[1-3]。這種實(shí)現(xiàn)方法簡(jiǎn)單易行,但都采用固化的軟件界面,如果需要增加顯示參量、改變某個(gè)監(jiān)測(cè)參量的展示形式、調(diào)整布局位置、調(diào)整系統(tǒng)顯示器尺寸與個(gè)數(shù)等情況,都只能通過修改軟件源代碼、并重新編譯分發(fā)的方式才能實(shí)現(xiàn),系統(tǒng)的靈活性不夠。針對(duì)該問題,基于配置化方式,提出一套更為靈活方便的處理方式。
配置方式的方法的核心是通過將直接測(cè)量的參數(shù)及中間計(jì)算量等需要顯示的測(cè)點(diǎn)與呈現(xiàn)控件、呈現(xiàn)位置、呈現(xiàn)顯示器動(dòng)態(tài)綁定的方法,并結(jié)合設(shè)計(jì)的配置工具,幫助進(jìn)行初始配置并提供用戶后續(xù)自行調(diào)整的能力。系統(tǒng)運(yùn)行時(shí),根據(jù)設(shè)定的配置信息,利用動(dòng)態(tài)創(chuàng)建界面的方法自動(dòng)生成界面元素[4]。在Visual Studio 2017平臺(tái)利用VB.NET及SQL Server 2008數(shù)據(jù)庫進(jìn)行了方法的測(cè)試驗(yàn)證。
配置信息的設(shè)計(jì)是重點(diǎn)之一,配置文件的形式可以是ini文件、xml文件、注冊(cè)表、數(shù)據(jù)庫表格等多種類型,但是由于實(shí)際項(xiàng)目中的配置信息較多,以數(shù)據(jù)庫的形式無疑是最好的選擇[5]。數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中的大量數(shù)據(jù)按照一定的模型組織起來,提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確的從數(shù)據(jù)庫中獲取所需要的信息[6]。具體配置信息的數(shù)據(jù)庫表的設(shè)計(jì)包括原始測(cè)點(diǎn)登記表、計(jì)算測(cè)點(diǎn)表配置表、測(cè)點(diǎn)顯示類型表、系統(tǒng)顯示器登記表、顯示配置方案表等信息。原始測(cè)點(diǎn)登記表是對(duì)試驗(yàn)數(shù)據(jù)采集的相關(guān)信息進(jìn)行存儲(chǔ),主要字段結(jié)構(gòu)見表1。
表1 原始測(cè)點(diǎn)登記表
在原始測(cè)點(diǎn)登記表中,幾個(gè)關(guān)鍵字段的作用描述如下。
1)測(cè)點(diǎn)編號(hào)。實(shí)現(xiàn)對(duì)測(cè)點(diǎn)進(jìn)行編號(hào),對(duì)每個(gè)測(cè)點(diǎn)的編號(hào)要求唯一。
2)對(duì)應(yīng)存儲(chǔ)表。存儲(chǔ)對(duì)應(yīng)測(cè)點(diǎn)的采集數(shù)據(jù)表的表名信息。
3)對(duì)應(yīng)存儲(chǔ)字段。存儲(chǔ)對(duì)應(yīng)測(cè)點(diǎn)在存儲(chǔ)表中的對(duì)應(yīng)字段名。
(4)測(cè)點(diǎn)類型:對(duì)測(cè)點(diǎn)類型的描述,測(cè)點(diǎn)類型為原始測(cè)點(diǎn)或計(jì)算測(cè)點(diǎn),若測(cè)點(diǎn)類型為計(jì)算測(cè)點(diǎn),則需要配置“計(jì)算測(cè)點(diǎn)配置表”的數(shù)據(jù)。計(jì)算測(cè)點(diǎn)配置表的主要結(jié)構(gòu)見表2。
表2 計(jì)算測(cè)點(diǎn)表配置表
計(jì)算測(cè)點(diǎn)表配置表中幾個(gè)關(guān)鍵字段的用途說明如下。
1)計(jì)算配置說明。對(duì)計(jì)算公式設(shè)置進(jìn)行描述,例如6個(gè)測(cè)點(diǎn)溫度的平均值。
2)計(jì)算配置表達(dá)式。設(shè)定計(jì)算表達(dá)式,該表達(dá)式是給用戶看的,而具體計(jì)算公式設(shè)定,在計(jì)算公式設(shè)置字段中。例如(水潤滑軸承溫度測(cè)點(diǎn)1+水潤滑軸承溫度測(cè)點(diǎn)2++水潤滑軸承溫度測(cè)點(diǎn)6)/6。
3)計(jì)算公式設(shè)置。其值一般為(wd1+wd2++wd6)/6,其中wd1為對(duì)應(yīng)“原始測(cè)點(diǎn)登記表”中的測(cè)點(diǎn)編號(hào),其他類同,可以配置為 max(wd1,wd2,,wd6),則表示取某一次測(cè)量6個(gè)測(cè)點(diǎn)中的最大值,因?yàn)檫@6個(gè)測(cè)點(diǎn)在一次采樣中是都有值的,對(duì)這2個(gè)表達(dá)式,為了后續(xù)識(shí)別,需要在“計(jì)算配置說明”字段中給予一個(gè)描述。計(jì)算測(cè)點(diǎn)表配置表的具體示例見表3。
表3 計(jì)算測(cè)點(diǎn)表配置表示例
在常見的監(jiān)測(cè)數(shù)據(jù)呈現(xiàn)系統(tǒng)中都是以界面控件的形式進(jìn)行監(jiān)測(cè)數(shù)據(jù)的展示,通過測(cè)點(diǎn)顯示類型表對(duì)界面控件的信息進(jìn)行存儲(chǔ),若測(cè)點(diǎn)顯示類型不滿足實(shí)際需求時(shí),則可以通過添加配置信息的形式實(shí)現(xiàn)界面控件的添加。具體信息見表4。
表4 測(cè)點(diǎn)顯示類型表
測(cè)點(diǎn)顯示類型表中“類型名稱”字段用于對(duì)控件的名稱進(jìn)行描述,例如垂直液柱、數(shù)字表、儀表盤以及趨勢(shì)圖等。若系統(tǒng)當(dāng)前顯示器無法滿足全部的數(shù)據(jù)呈現(xiàn)功能時(shí),可以通過系統(tǒng)顯示器登記表進(jìn)行拓展顯示屏,增強(qiáng)系統(tǒng)的拓展性。系統(tǒng)顯示器登記表用于保存系統(tǒng)目前用多少個(gè)顯示器,每個(gè)顯示器的尺寸等信息。具體信息見表5。
表5 系統(tǒng)顯示器登記表
系統(tǒng)顯示器登記表幾個(gè)關(guān)鍵字段說明如下。
1)顯示器編號(hào)。對(duì)系統(tǒng)中存儲(chǔ)在顯示器進(jìn)行編號(hào)。
2)顯示器類型。記錄顯示器的類型信息。
設(shè)計(jì)了顯示配置方案表用于將測(cè)點(diǎn)信息與顯示器以及界面控件相關(guān)聯(lián)的重要途徑,也是基于配置思想的軸系監(jiān)測(cè)數(shù)據(jù)呈現(xiàn)方法設(shè)計(jì)的核心之一。常見的監(jiān)測(cè)數(shù)據(jù)系統(tǒng)由區(qū)域、測(cè)點(diǎn)、控件以及文本描述組成。根據(jù)配置方式設(shè)計(jì)的顯示配置方案表結(jié)構(gòu)見表6。
表6 顯示配置方案表
顯示配置方案表中幾個(gè)關(guān)鍵字段說明如下。
1)主鍵。對(duì)顯示配置方案表中的信息進(jìn)行編號(hào),對(duì)每條配置信息的編號(hào)要求唯一。
2)父主鍵。存儲(chǔ)當(dāng)前配置信息的父主鍵信息,如果為根節(jié)點(diǎn),則無父主鍵,值保存0。通過主鍵及父主鍵這2個(gè)字段,實(shí)現(xiàn)用結(jié)構(gòu)化的存儲(chǔ)表格來保存樹狀的信息。
3)名稱。當(dāng)前配置顯示信息的名稱,可以是標(biāo)簽名、頁簽名、區(qū)域名、測(cè)點(diǎn)顯示名稱等。
4)類型。當(dāng)前配置信息的所屬類型,其中所有可供選擇的類型為“顯示器、頁簽、區(qū)域、測(cè)點(diǎn)、文本描述”。
5)缺省顯示類型。存儲(chǔ)默認(rèn)的顯示類型,當(dāng)類型無信息時(shí),類型為缺省顯示類型。
顯示器、頁簽、區(qū)域、測(cè)點(diǎn)以及文本描述互相之間的關(guān)系具有層次的關(guān)系,而通過主鍵與父主鍵的存在,可以建立樹狀的結(jié)構(gòu)進(jìn)行設(shè)置,但是這個(gè)樹狀的結(jié)構(gòu)很難確定具有多少層,只能通過實(shí)際顯示配置方案表中的配置信息進(jìn)行設(shè)定,圖1是樹狀結(jié)構(gòu)的示例圖。
由圖1可以看出,每個(gè)區(qū)域都有邏輯測(cè)點(diǎn),而邏輯測(cè)點(diǎn)是根據(jù)控件的類型進(jìn)行設(shè)置,控件類型共分為2種模式:①簡(jiǎn)單控件,其只能顯示測(cè)點(diǎn)一個(gè)時(shí)間點(diǎn)上的值;②復(fù)雜控件,可以顯示測(cè)點(diǎn)多個(gè)時(shí)間點(diǎn)上的值,比如趨勢(shì)圖控件。
雖然配置信息的設(shè)定比較簡(jiǎn)單,但如果這些配置信息由人工來輸入仍然比較繁瑣,設(shè)計(jì)了一種配置設(shè)定工具,其操作界面見圖2。通過配置工具能夠快速設(shè)定配置信息,其中設(shè)定信息包括主鍵與父主鍵,配置信息的主鍵為唯一的標(biāo)識(shí),根據(jù)所選擇的類型不同,父主鍵的信息會(huì)自動(dòng)進(jìn)行匹配,界面元素的坐標(biāo)通過用戶在示例的配置界面上用鼠標(biāo)點(diǎn)擊位置的方式自動(dòng)輸入到文本框中,并對(duì)其高度與寬度進(jìn)行設(shè)定,最終決定界面元素所在的位置。
系統(tǒng)設(shè)計(jì)為支持不同顯示器顯示不同的監(jiān)測(cè)數(shù)據(jù),因此程序和顯示器是要對(duì)應(yīng)的,在程序運(yùn)行環(huán)境下設(shè)計(jì)了一個(gè)設(shè)置的ini文件,或者在程序啟動(dòng)時(shí)要人為選擇一個(gè)顯示器編號(hào),才能決定這個(gè)顯示器上顯示的內(nèi)容。
當(dāng)程序啟動(dòng)時(shí),根據(jù)配置信息或人工選擇獲得當(dāng)前顯示器編號(hào),根據(jù)顯示器的編號(hào)對(duì)“顯示配置方案表”進(jìn)行查詢獲得需要的信息,將獲得的信息進(jìn)行分類,獲得顯示的層次分別,根據(jù)顯示類型,利用動(dòng)態(tài)創(chuàng)建控件技術(shù)界面生成頁簽等區(qū)域布局,然后針對(duì)一個(gè)最小的區(qū)域,獲取該區(qū)域下要顯示的測(cè)點(diǎn),通過自動(dòng)控件添加控件到區(qū)域,細(xì)化顯示,并在測(cè)點(diǎn)與定時(shí)器對(duì)應(yīng)登記,程序化初始化顯示完成。
通過上述的這種方法程序初始化的優(yōu)缺點(diǎn)如下。
1)優(yōu)點(diǎn)。通過這種方式,界面顯示的控件完全由用戶自主配置,能夠適應(yīng)各種工況要求,方法較為靈活。
2)缺點(diǎn)。界面初始化需要的時(shí)間相比原來固化設(shè)計(jì)的程序啟動(dòng)使用要稍微長一些,但時(shí)間差異也不會(huì)超過0.5 s。
在文中的應(yīng)用場(chǎng)景下,這種測(cè)試平臺(tái)數(shù)據(jù)顯示對(duì)界面初始化時(shí)間要求不是很苛刻,而且初始化后的響應(yīng)時(shí)間與預(yù)先設(shè)計(jì)布局的軟件一樣的,因此沒有影響。
程序初始化完后,首先需要統(tǒng)計(jì)有多少個(gè)不同的數(shù)據(jù)刷新時(shí)間間隔,對(duì)每個(gè)不同的時(shí)間間隔值,登記其關(guān)聯(lián)對(duì)應(yīng)的測(cè)點(diǎn)編號(hào),根據(jù)統(tǒng)計(jì)出來的不同的數(shù)據(jù)刷新時(shí)間間隔的個(gè)數(shù)注冊(cè)定時(shí)器時(shí)間,當(dāng)定時(shí)器時(shí)間到,根據(jù)該定時(shí)器關(guān)聯(lián)的測(cè)點(diǎn)編號(hào),獲取對(duì)應(yīng)的測(cè)點(diǎn)信息,包括測(cè)點(diǎn)的顯示模式,根據(jù)測(cè)點(diǎn)顯示模式確定數(shù)據(jù)值的處理方式,更新界面顯示。
若程序在運(yùn)行過程中切換某個(gè)監(jiān)測(cè)數(shù)據(jù)顯示方式,例如對(duì)一個(gè)監(jiān)測(cè)測(cè)點(diǎn),可以分為單一值顯示模式和歷史數(shù)據(jù)一起顯示模式。在程序運(yùn)行過程中,用戶可能想要實(shí)時(shí)動(dòng)態(tài)切換該量的形式模式,用戶可以通過右鍵選擇菜單或者點(diǎn)擊導(dǎo)航欄功能中的“切換顯示模式”選擇需要的顯示類型,將當(dāng)前軟件模塊中的控件移除,根據(jù)新類型,在對(duì)應(yīng)位置創(chuàng)建相應(yīng)的控件并設(shè)置控件的數(shù)據(jù)顯示。
根據(jù)以上思路及算法實(shí)現(xiàn)了相應(yīng)的程序,圖3是程序運(yùn)行界面示例。通過基于配置方式的監(jiān)測(cè)數(shù)據(jù)展示方法,程序的界面根據(jù)實(shí)際監(jiān)控工況由用戶使用配置工具設(shè)定配置信息生成所需要的界面,使傳統(tǒng)的軟件系統(tǒng)固化的缺點(diǎn)得以改善,方便視情工況的監(jiān)測(cè)數(shù)據(jù)進(jìn)行呈現(xiàn)。
1)通過配置方式,用戶自主設(shè)定配置信息,生成所需監(jiān)測(cè)界面,與傳統(tǒng)狀態(tài)監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)呈現(xiàn)方式相比,文中方法的靈活性、適應(yīng)性與擴(kuò)展性更強(qiáng)。
2)配置方式的監(jiān)測(cè)系統(tǒng)與傳統(tǒng)狀態(tài)監(jiān)測(cè)系統(tǒng)相比,系統(tǒng)初始化時(shí)間較固化界面稍微延長,在系統(tǒng)使用過程中系統(tǒng)穩(wěn)定性與效率相同。
3)該方法可以推廣應(yīng)用到類似的應(yīng)用場(chǎng)景,具有一定的工程實(shí)用價(jià)值。