劉 杰,毛偉蘭,孫 鋒,周建輝
(1.武漢理工大學 能源與動力工程學院,湖北 武漢 430063;2.中國艦船研究設計中心,湖北 武漢 430070)
船舶軸系試驗臺是大型工程設備,其設計壽命一般在5年以上,在長期的運行過程中,難以避免測試設備發生性能退化、故障和報廢的問題[1]。這需要對測試設備定期進行維護保養或更換,以及校準和標定,要求測試系統數據采集軟件具有良好的配置性和靈活性以適應這種頻繁的更改和調整;同樣,擴大監測區域、增加監測對象是試驗臺朝著通用化、集成化和復雜化動態演化的方式,這同樣要求數據采集軟件能支持新板卡、新設備的擴展和配置,以降低改造升級的經濟和時間成本。
傳統數據采集軟件的工作原理為讀取數據采集卡通道數據,計算解析后存儲到數據庫或本地文本文件,其中各類通道的解析計算公式、存儲方式已在程序中固定[2-3]。如果需要修改某個通道的計算處理方式、增加新采集通道以及擴展新數據采集卡等,均需要重新編寫源代碼,再編譯部署,具有開發周期長、成本高的問題。針對以上問題,提出一種基于配置方式的數據采集軟件實現方法。
軟件配置技術可以避免代碼固化、模塊間耦合強的缺點,提煉程序運行過程所需的關鍵參數作為配置信息,決定程序的運行流程和方式,以達到動態擴展、適應新需求的目的[4-5]。為提高軟件的配置性和擴展性,必須保證數據采集卡各通道數據對應的解析計算公式、存儲表信息可以被修改、增加或刪除,并將這些信息設計成配置信息,讓采集軟件在運行時據此決定如何計算解析及存儲。
可配置式采集程序架構如圖1所示,包括采集初始化部分和采集主程序部分。采集初始化部分從數據庫中加載配置信息到內存中,并按計算解析和存儲2大類進行組織,建立通道號與計算解析配置和存儲配置的映射關系,并存放到合適的數據結構中,為采集主程序的運行提供支持;在初始化完成后,采集主程序,循環讀取數據采集卡原始數據,并進行處理。首先根據解析配置信息將原始數據計算轉化為物理參數,然后根據存儲配置信息將解析的物理參數存儲到指定數據庫表中。

圖1 可配置式采集程序架構
設計配置式采集軟件,需要實現采集業務流程可配置化,即同一個采集通道的業務流程依據不同的配置信息來處理,計算結果和數據流向則會有所不同,那么配置信息的設計是重中之重。一般配置信息可由xml文件、注冊表和數據庫表格等多種文件類型存儲,軸系試驗臺架測試系統軟件中,配置信息較多,所以采用數據庫來存儲配置信息是比較安全合理的[6]。針對采集軟件部分設計板卡配置表(表1)、通道配置信息表(表2)、存儲表編號分配表(表3)。
表1用于登記每塊數據采集卡的總體配置信息,重要字段說明如下:①采集卡編號。每塊采集卡分配唯一的編號,在程序初始化時用于實例化一個采集卡對象,該對象封裝所有采集功能和服務。②通道數量。表示采集卡通道總數。③空閑通道數量。表示沒有連接傳感器的通道數量。④采集周期。表示數據采集卡采集工作周期。

表1 板卡配置表
表2描述每塊數據采集卡各通道的業務配置信息,每個通道都要設置一條或多條配置信息,代表該通道測試數據的處理方式。重要字段說明如下:①通道號。采集卡通道編號,表示1個物理通道,在程序中用于對配置信息的索引,便于定位與查找。②存儲表編號。表示該通道數據需要存儲到的數據表。③表字段。該通道數據需要存儲到的數據表字段。④計算解析公式。該通道數據計算解析方式,一般為多項式的形式。⑤解析參數。該通道數據計算解析所使用的系數。⑥解析區間。解析計算公式適用的區間范圍,對于有多個計算解析區間的通道,需要設計多條對應的配置信息。

表2 通道配置信息表
表3用于記錄每個測試數據存儲表的記錄狀態,與通道配置信息表中的字段“存儲表編號”對應。重要字段說明如下:①表名。表示采集卡通道數據需要存儲到的數據表。②表說明。表示存儲數據的說明。③字段數量。該表負責存儲數據的通道數量。

表3 存儲表編號分配表
數據采集程序主要分為2部分。第一部分是采集軟件初始化,如圖2所示,用于加載采集配置信息,根據采集卡編號實例化數據采集卡對象,并建立采集卡通道號與計算解析配置、存儲配置信息的映射關系,以全局變量的形式存放,包括計算解析哈希表對象數組A、存儲哈希表對象數組B、采集周期哈希表以及定時器對象數組。最后,為每個采集周期實例化1個定時器,并激活定時器。

圖2 可配置式采集軟件初始化流程
第二部分用于實際數據采集工作,以定時器觸發對應采集卡對象的采集任務,定時器啟動后,每完成1個計數周期,觸發1次采集任務,在采集任務中,根據定時器的定時周期屬性獲取需要工作的采集卡對象,利用該對象完成1次采集任務。采集程序根據通道號,從全局哈希表中獲取計算解析信息和存儲配置信息,依次對每個活動通道數據進行計算解析并存儲到數據庫,具體采集流程見圖3。
在標定傳感器輸出電壓和測試物理量的關系時,可以采用多項式插值法或線性插值法尋求它們的解析表達式。在解析計算時,根據解析參數確定解析計算方式,設計的解析參數字符串形式為“a0,a1,a2,…,an”(an∈實數),對應解析計算公式為a0+a1x+a2x2+…+anxn,x為需要計算解析的原始電壓數據。那么在計算解析每個通道原始電壓數據時,獲取該通道解析配置信息,根據解析參數字符串還原解析表達式,從而把電壓數據解析為測試數據。

圖3 可配置式采集流程
計算解析后的測試數據,需要存儲到數據庫,插入數據庫表通用操作Sql語句如下:
insert into {0}(number,time,{1}) values({2},′{3}′,{4})
其中,{0}、{1}、{2}、{3}和{4}表示占位符,需使用具體的變量替換:{0}和{1}分別采用存儲配置信息數據庫表名和表字段名替換,{2}采用采集計數替換,{3}采用當前時間替換,{4}采用解析后的測試數據替換。程序需要根據通道存儲配置信息和測試數據,動態替換該Sql語句的占位符,然后執行Sql命令將數據存儲到指定數據表字段下即可。采集程序對采集卡每個通道執行一次計算解析和存儲后,便完成一次采集任務。
為了測試驗證可配置式采集軟件設計方法的可行性,以VS.NET2017和Sql Server2008為測試軟件,MCC數據采集卡為測試硬件。設置待測試板卡的詳細配置信息,在數據庫中完善板卡配置表和通道配置信息表。
對于板卡配置信息,采集卡編號為4,采集卡名稱為MCCBoard4,通道總數為8,空閑通道數為0,采集周期為2 000 ms。
MCCBoard4的通道詳細配置信息如表4所示,解析公式“1+2x+x2”對應的解析參數為“1,2,1”,通道1、3、7和8具有相同解析公式,而通道2、4、5和6具有相同解析公式。配置MCCBoard 4的信號源,設置通道1~4產生方波的范圍為[-2.5,2.5],通道5~8產生鋸齒波的范圍為[-2.5,2.5]。
運行可配置式數據采集程序,一段時間后可以觀察到數據庫已經存儲了測試數據,表5所示是截取數據庫存儲的測試數據,通道1~4的原始數據都是方波數據且大小相同,計算解析后通道1和通道3,通道2和通道4的數據相同;而且,測試數據在數據表中的存儲位置嚴格按通道存儲配置信息的指定,可見采集程序的計算解析環節和存儲環節是正確的,觀察通道5~8的測試數據可以得到相同的結論。此外,數據存儲時間間隔是2 s,與板卡配置信息采集周期2 000 ms一致,驗證采集程序的實時性符合設置要求。

表4 測試板卡通道配置信息

表5 采集的測試數據
1)當數據采集卡擁有空余的通道時,可以利用空余通道擴展新的采集測點,只需要為新通道添加配置信息,即可實現新測點的數據采集。
2)在維修、更換傳感器等測試設備時,需要重新標定軟件或參數校準。采用該方法只需修改計算解析配置信息即可,不需要修改代碼。
3)當需要擴展與現存板卡同廠家的新板卡時,不需要為新板卡編寫采集程序,只需要為新板卡添加板級配置信息和通道配置信息,基于配置式的采集軟件能自動解析板級配置和通道配置,實現數據采集,以支持新板卡的擴展。
4)該方法已應用到軸系試驗臺測試系統軟件中,可推廣到類似的應用場合,提高測試設備維護的便捷性,降低升級改造的成本,具有工程實用價值。