陳立杉, 孫 濤, 劉培培, 高慧中
(中國船舶重工集團公司 第705研究所, 陜西 西安, 710077)
魚雷動力試驗數(shù)據(jù)管理軟件設計與開發(fā)
陳立杉, 孫 濤, 劉培培, 高慧中
(中國船舶重工集團公司 第705研究所, 陜西 西安, 710077)
目前國內外的數(shù)據(jù)分析系統(tǒng)基本上都是利用文件夾來存儲測試數(shù)據(jù), 數(shù)據(jù)管理方式落后、采集設置和分析調取耗時費力。為了解決以文件夾管理數(shù)據(jù)的弊端并提高采集分析軟件各功能模塊之間的信息交互性, 文中采用Access結合LabVIEW設計開發(fā)出一套魚雷動力試驗數(shù)據(jù)管理軟件。在Access中設計了數(shù)據(jù)庫模型及各個數(shù)據(jù)表之間的關系, 在 LabVIEW 中開發(fā)了數(shù)據(jù)庫維護工具、數(shù)據(jù)庫與各功能模塊的接口程序, 實現(xiàn)了對數(shù)據(jù)庫中各表的查詢、修改、刪除及數(shù)據(jù)的導入導出。該軟件極大地提高了魚雷動力試驗數(shù)據(jù)的管理效率和水平。
魚雷動力試驗; 數(shù)據(jù)庫; 數(shù)據(jù)管理; LabVIEW; Access
魚雷動力裝置試驗類型多、測點多、數(shù)據(jù)量大, 隨著試驗次數(shù)的不斷增加, 勢必產生海量的試驗數(shù)據(jù)。此種情況下, 以文件夾為核心的數(shù)據(jù)存儲方式存在查找耗時費力等弊端。此外, 隨著試驗次數(shù)的增多, 文件夾不斷累積, 同類型試驗可能因文件夾命名相同而導致新文件夾覆蓋舊文件夾, 存在數(shù)據(jù)安全隱患。為此, 文中面向魚雷動力試驗, 采用LabVIEW編程工具, 開發(fā)了以數(shù)據(jù)庫為核心, 集數(shù)據(jù)管理、分析、報告為一體的測試分析系統(tǒng)。數(shù)據(jù)管理軟件(數(shù)據(jù)庫及其管理模塊)作為該測試分析系統(tǒng)的核心, 對整個系統(tǒng)的功能、性能、穩(wěn)定性影響很大, 在整個試驗數(shù)據(jù)管理工作中發(fā)揮著至關重要的作用。
LabVIEW 本身并不具備數(shù)據(jù)庫訪問功能,不能像VB、VC那樣方便地操作數(shù)據(jù)庫, 因此系統(tǒng)需要借助其他輔助方法和工具來實現(xiàn)對數(shù)據(jù)庫的訪問及操作。劉立輝[1]通過對復雜信息系統(tǒng)的分層框架設計, 調用動態(tài)鏈接庫(dynamic linking library, DLL)實現(xiàn)對數(shù)據(jù)庫的訪問及操作, 該方法需要從底層進行復雜編程, 工作量大且界面缺乏友好性; 熊宗接[2]與孫煒強[3]分別利用LabVIEW的ActiveX功能, 調用Microsoft ADO控件, 通過SQL語言實現(xiàn)對數(shù)據(jù)庫的操作, 該方法需要熟練掌握Microsoft ADO和SQL語言, 也需要從底層進行復雜編程; 張捍東[4]與吳剛[5]利用通過第3方開發(fā)的免費工具包LabSQL實現(xiàn)對數(shù)據(jù)庫的操作, 這樣的方式雖然成本較低, 但工具包中的控件設計較為專業(yè), 同樣要求用戶熟練掌握SQL語言。
美國NI公司歷來重視LabVIEW訪問和操作數(shù)據(jù)庫的能力, 經過不斷完善, 幾年前推出了簡單易用、功能完善的數(shù)據(jù)庫工具包LabVIEW SQL Toolkit。該工具包集成封裝了一系列具有數(shù)據(jù)庫操作和訪問功能的高級功能模塊, 可以方便地訪問多種數(shù)據(jù)庫。與以上幾種數(shù)據(jù)庫訪問方式相比,該工具包具有以下優(yōu)勢: 支持 ADO所有數(shù)據(jù)庫引擎; 具有高度可移植性, 任何情況下, 用戶通過改變DB Tools Open Connection VI的輸入參數(shù)Connection String更換數(shù)據(jù)庫; 將數(shù)據(jù)庫中的Column Values數(shù)據(jù)類型轉換為標準 LabVIEW Database Connectivity Toolset數(shù)據(jù)類型, 使數(shù)據(jù)可移植性進一步增強; 不使用SQL語句就可以實現(xiàn)數(shù)據(jù)庫記錄的查詢、添加、修改及刪除等操作。目前, 論述LabVIEW SQL Toolkit訪問和操作數(shù)據(jù)庫的文獻還很少, 針對此項應用技術開展研究很有必要。
文中在對動力試驗流程進行梳理的基礎上,設計了基于Access的動力試驗數(shù)據(jù)庫, 研究了數(shù)據(jù)維護工具的具體實現(xiàn)方法, 通過高速數(shù)據(jù)流文件(technical document management system,TDMS)[6]設計了各功能模塊與數(shù)據(jù)庫的接口程序, 實現(xiàn)了數(shù)據(jù)庫與采集軟件和數(shù)據(jù)處理軟件的無縫連接。
1.1 數(shù)據(jù)庫設計
魚雷動力試驗過程中, 主要產生試驗配置信息(包括人員信息、產品信息、試驗信息)、測點配置信息(包括測點信息、采樣信息)和測量信息(包括各監(jiān)測參數(shù)的波形數(shù)據(jù))等三大類六小類信息。動力試驗數(shù)據(jù)庫用于存儲這三大類信息, 數(shù)據(jù)庫管理模塊用于創(chuàng)建數(shù)據(jù)庫并管理(添加、修改、刪除等)測量信息[1]。
Access是微軟辦公套裝軟件的一個重要組成部分, 有著廣泛的用戶群, 以它開發(fā)數(shù)據(jù)庫不但節(jié)省資源而且便于數(shù)據(jù)庫的部署。文中所構建數(shù)據(jù)庫基于Access數(shù)據(jù)庫結構, 根據(jù)存貯信息的類型確定表的類型和表的字段類型, 根據(jù)采集、分析、報告等各模塊的信息流向確定各表之間的關系。Access數(shù)據(jù)庫的“表”是數(shù)據(jù)庫的核心組成部分, 數(shù)據(jù)庫中所有的數(shù)據(jù)信息根據(jù)其自身不同的屬性存儲在不同的表中。既對原始數(shù)據(jù)有存儲功能, 又具有對原始數(shù)據(jù)進行操作的功能。為滿足試驗數(shù)據(jù)存儲及分析的需要, 共設計了 6個基本表, 分別為: 檢測人員信息表、試驗對象信息表、試驗信息表、測點信息表、采樣信息表、波形數(shù)據(jù)表。其中檢測人員信息表與試驗對象信息表、試驗對象信息表與試驗信息表、試驗信息表與測點信息表、測點信息表與采樣信息表存在一對多的從屬關系, 采樣信息表與波形數(shù)據(jù)表存在一對一的對應關系, 其E-R模型如圖1所示。
1.2 LabVIEW對系統(tǒng)數(shù)據(jù)庫的配置
為避免用戶在使用軟件過程中對數(shù)據(jù)庫進行繁瑣配置, 在使用軟件前需要配置數(shù)據(jù)庫, 這樣的程序設計使得用戶在使用軟件時更加高效、便捷。在目前公開的資料中, 將LabVIEW與數(shù)據(jù)庫進行連接需要通過 Windows操作系統(tǒng)控制面板中的管理工具對開放式數(shù)據(jù)庫互接(open database connectivity, ODBC)數(shù)據(jù)源進行配置, 通過這種方式, 用戶每次使用 LabVIEW 訪問任何類型的數(shù)據(jù)庫前都必須通過該方式創(chuàng)建數(shù)據(jù)源名(data source name, DSN)并將其添加到Windows ODBC數(shù)據(jù)源配置中, 這樣大大降低了數(shù)據(jù)庫操作過程的效率。
圖1 數(shù)據(jù)庫E-R模型Fig. 1 E-R database model
使用LabVIEW附帶的Database Connectivity Toolkit工具包對數(shù)據(jù)庫進行連接與操作。并通過字符串的連接, 創(chuàng)建SQL語言并將其輸入至工具包中的數(shù)據(jù)庫連接子VI中, 將傳統(tǒng)復雜的ODBC數(shù)據(jù)源配置步驟封裝到了一個 VI中, 使用這樣的方式避免了用戶對控制面板ODBC數(shù)據(jù)源設置及SQL語言繁瑣的操作, 只需要在路徑中選中要配置的數(shù)據(jù)庫點擊確定即可, 同時, 如果將數(shù)據(jù)庫工具從Access改變?yōu)镾QL Sever等其他形式,只需要將驅動數(shù)據(jù)庫軟件名改變即可。同時, 設計了“新建數(shù)據(jù)庫”子VI, 用戶可以使用動力試驗數(shù)據(jù)庫模板與此VI新建數(shù)據(jù)庫。
圖2 數(shù)據(jù)庫維護工具Fig. 2 Database maintenance tool
為了方便用戶對數(shù)據(jù)信息的管理, 保證魚雷動力測試軟件的統(tǒng)一性, 數(shù)據(jù)庫管理軟件的設計原則是盡量使用戶在使用軟件時只在魚雷動力測試軟件中操作而不接觸Access數(shù)據(jù)庫, 如需要對數(shù)據(jù)庫進行操作, 在軟件的數(shù)據(jù)庫維護管理軟件中進行即可, 在此原則下設計了數(shù)據(jù)庫維護工具,用戶利用該工具實現(xiàn)對數(shù)據(jù)庫各個表中數(shù)據(jù)的添加, 刪除以及修改等操作, 如圖2所示。
數(shù)據(jù)庫維護工具的界面設計為選項卡模式,這樣使得界面更加簡單明了, 同時, 使操作更加方便。在該子系統(tǒng)編程中, 設計了對應各個數(shù)據(jù)表的子VI, 在除波形數(shù)據(jù)表外的每個子VI中都包含添加、刪除及修改功能, 并使這3個模塊以并列形式運行, 相互不受影響。由于在數(shù)據(jù)采集完畢時波形數(shù)據(jù)已經錄入數(shù)據(jù)庫, 而且波形信息表中的錄入時間、試驗信息 ID以及試驗產品名稱均在數(shù)據(jù)源配置時已輸入數(shù)據(jù)庫中, 因此, 在波形信息表中不包含“添加”功能, 這樣也對數(shù)據(jù)庫起到保護作用, 防止數(shù)據(jù)的冗余錯亂。將對應各個表的子 VI以并列形式放入該子系統(tǒng)整體框架中, 在每個子 VI中, 都使用 Database Connectivity Toolkit工具包中的信息添加、修改與刪除子VI完成, 以試驗信息表為例, 其添加、修改和刪除操作程序如圖3所示。
這3種子VI分別以LabVIEW的Database Connectivity Toolkit工具包中的添加、修改和刪除工具子VI為核心, 在添加子VI中, 將所要添加的字符串輸入后即可通過 INS.VI將數(shù)據(jù)添加至所連接的數(shù)據(jù)庫; 在修改子VI中, 每個不同的表都有一個特定的搜索字段, 這個字段是不能改變的, 通過搜索字段選定需要改變的內容, 將修改后的字符串輸入后, 即可通過 UPD.VI將改后的內容輸入數(shù)據(jù)庫, 實現(xiàn)修改功能; 在刪除子 VI中, 將搜索字段字符串與 SQL語句結合為刪除SQL語言, 并輸入FREE.VI刪除子工具VI后, 用戶可以在不接觸SQL語言的同時, 利用搜索字段選定所需刪除的內容后, 即可完成表中內容的刪除操作。
圖3 表的添加、修改和刪除操作程序Fig. 3 Addition, modification and deletion processes on datasheet
從信息流的角度而言, 數(shù)據(jù)庫的數(shù)據(jù)來自采集模塊, 二者之間是輸入關系, 數(shù)據(jù)庫中的數(shù)據(jù)供分析模塊使用, 二者之間是輸出關系, 因此數(shù)據(jù)庫模塊應與其他模塊之間實現(xiàn)無縫對接。為了擴大數(shù)據(jù)來源, 本數(shù)據(jù)庫管理工具也可以以文本格式為橋梁將其他軟件采集的數(shù)據(jù)錄入本數(shù)據(jù)庫并導出至信號處理模塊進行分析處理。
3.1 采集模塊中試驗數(shù)據(jù)的循環(huán)錄入
通過TDMS技術實現(xiàn)數(shù)據(jù)流的控制, 魚雷動力試驗數(shù)據(jù)采集軟件獲取的數(shù)據(jù)以TDMS文件形式輸入至本數(shù)據(jù)庫, 如圖 4所示, 采用這種針對大數(shù)據(jù)的傳輸方式可以極大的提高數(shù)據(jù)傳輸速度,其速度大大高于傳統(tǒng)的數(shù)據(jù)傳輸方式[1]。
在信號采集與數(shù)據(jù)庫接口模塊中, 由信號采集模塊得到的數(shù)據(jù)以TDMS文件的形式存在于指定的模板TDMS文件中, 使用TDMS讀取控件將該模板文件中的數(shù)據(jù)讀入數(shù)據(jù)庫。在模板TDMS文件中, 每次的采集數(shù)據(jù)都將覆蓋上一次存儲的數(shù)據(jù), 這樣的方式使得模板 TDMS文件始終只有一個, 并且其僅僅作為一個中間路徑的形式存在, 使得 TDMS文件的占用內存幾乎為零。最后, 將獲取的波形成分由FOR循環(huán)形式一一錄入[1]。
圖4 高速數(shù)據(jù)流(TDMS)數(shù)據(jù)讀取程序Fig. 4 Rata reading process of the technical document management system(TDMS)
3.2 試驗數(shù)據(jù)讀取至信號處理模塊
在數(shù)據(jù)庫模塊與信號處理模塊接口程序設計中, 首先將數(shù)據(jù)庫連接至程序, 應用SEL.VI數(shù)據(jù)選擇控件對字段進行檢索, 再通過循環(huán)檢索, 應用Database vaiant to data.VI將變體數(shù)據(jù)轉化為字符串, 使用戶得到通道信息, 從而將數(shù)據(jù)庫中波形數(shù)據(jù)表的每個字段名稱以數(shù)組的形式導出, 如圖5所示。
將每個字段里的內容以數(shù)組的形式進行循環(huán)導出, 并轉換為字符串表格, 最終將字段名稱添加到該字符串表格的第一行作為表頭, 將字段中的內容作為表中數(shù)據(jù)輸入數(shù)據(jù)表。數(shù)據(jù)循環(huán)讀出的程序設計與循環(huán)讀入的程序設計思路相通, 但其實現(xiàn)方式相反。
若需要將其他軟件采集的以文本形式存儲的數(shù)據(jù)錄入該數(shù)據(jù)庫并進行信號處理, 只需將其他形式數(shù)據(jù)文件轉換至TDMS文件形式, 即可使用導入導出接口模塊實現(xiàn)數(shù)據(jù)的導入導出。其轉換程序如圖6所示, 通過使用表格控件將表格讀出后, 應用MATLAB軟件編寫轉換算法, 將表格中的行與列進行變換, 通過循環(huán)檢索將數(shù)據(jù)轉變?yōu)閿?shù)組, 再通過TDMS控件, 將數(shù)組寫入TDMS文件, 從而實現(xiàn)數(shù)據(jù)形式的轉換[1]。
圖5 數(shù)據(jù)表中字段名稱的讀取程序Fig. 5 Reading process of field name in datasheet
圖6 其他形式數(shù)據(jù)文件至TDMS文件轉換程序框圖Fig. 6 Block diagram of file conversion from any other format to TDMS one
文中運用 Access設計了動力試驗關系型數(shù)據(jù)庫, 在 LabVIEW 中開發(fā)了數(shù)據(jù)源配置、數(shù)據(jù)庫維護工具、數(shù)據(jù)庫與各功能模塊的接口程序,實現(xiàn)了魚雷動力試驗數(shù)據(jù)的有效管理, 并為采集分析軟件各功能模塊之間信息交流提供了一個統(tǒng)一描述的藍本, 為模塊間的互操作創(chuàng)造了必要條件。該軟件既可作為獨立的試驗數(shù)據(jù)管理軟件使用, 也可作為基于數(shù)據(jù)庫的采集分析軟件的一部分, 具有很強的實用性和適用性。Access作為小型關系型數(shù)據(jù)管理系統(tǒng), 數(shù)據(jù)存儲量相對較小,且不支持并發(fā)處理, 難以滿足今后存貯大容量數(shù)據(jù)及遠程訪問和處理數(shù)據(jù)的需要。下一步計劃采用大型數(shù)據(jù)管理系統(tǒng)(如SQL Server, ORacle)開發(fā)動力試驗數(shù)據(jù)庫, 并改進數(shù)據(jù)庫管理模塊的功能,不斷完善其可靠性與高效性。
[1] 劉立輝, 孟慶鑫. 基于動態(tài)鏈接庫的復雜信息系統(tǒng)分層框架設計[J]. 計算機與信息技術, 2009(5): 39-45. Liu Li-Hui, Meng Qing-Xin. Designing of the Complete Layered Information System Based on LabVIEW[J]. Computer & Information Technology, 2009(5): 39-45.
[2] 孫煒強, 王德明, 馬義平. LabVIEW 與數(shù)據(jù)庫在柱狀靜態(tài)參數(shù)測量系統(tǒng)中的應用[J]. 儀表技術, 2014(10): 47-54. Sun Wei-Qiang, Wang De-Ming, Ma Yi-Ping. Application of LabVIEW and Database in Static Parameter Measurement System of Columnar Parts[J]. Instrumentation Technol-ogy, 2014(10): 47-54.
[3] 熊宗接, 畢鵬. 利用數(shù)據(jù)庫在LabVIEW中實現(xiàn)自動測試[J]. 國外電子測量技術, 2007, 26(8): 56-59. Xiong Zong-Jie, Bi Peng. Autp Test in the LabVIEW Environment by Using Data Base[J]. Foreign Electronic Measurement Technology, 2007, 26(8): 56-59.
[4] 張捍東, 紀文志. 數(shù)據(jù)采集系統(tǒng)中的LabVIEW數(shù)據(jù)庫訪問技術[J]. 工業(yè)儀表與自動化裝置, 2009(4): 63-66. Zhang Han-Dong, Ji Wen-Zhi. The Database Access Technology Based on LabVIEW in Data Acquisition System[J]. Industrial Instrumentation & Automation, 2009(4): 63-66.
[5] 吳剛, 施建禮, 焦吉祥. 基于 LabSQL的故障診斷系統(tǒng)研究[J]. 機床與液壓, 2013, 41(17): 183-187. Wu Gang, Shi Jian-Li, Jiao Ji-Xiang. Study on Fault Diagnose System Based on LabSQL[J]. Machine Tool & Hydraulics, 2013, 41(17): 183-187.
[6] 陳樹學, 劉萱. LabVIEW寶典[M]. 北京: 電子工業(yè)出版社, 2011.
[7] 查志武, 史小鋒, 錢志博. 魚雷熱動力技術[M]. 北京:國防工業(yè)出版社, 2006.
[8] 李江偉, 汪銳, 汪仁煌, 等. 基于Labview的便攜式大型旋轉機械故障診斷系統(tǒng)的數(shù)據(jù)管理[J]. 自動化儀表,2001, 22(8): 12-14. Li Jiang-Wei, Wang Rui, Wang Ren-Huang, et al. The Labview Based Portable Data Management for Fault Diagnosis System of Large Rotating Machines[J]. Process Automation Instrumentation, 2001, 22(8): 12-14.
[9] 豐偉偉, 楊世文, 南金瑞, 等. 基于LABVIEW中TDMS文件和SQL數(shù)據(jù)庫數(shù)據(jù)處理速度的研究[J]. 儀器儀表與分析檢測, 2011(1): 10-12. Feng Wei-Wei, Yang Shi-Wen, Nan Jin-Rui, et al. The Data Processing Speed Research of TDMS File and SQL Database in LabVIEW[J]. Instrumentation Analysis Monitoring,2011(1): 10-12.
[10] 張鵬, 趙剡, 基于LabVIEW的位標器性能測試系統(tǒng)[J]. 計量與測試系統(tǒng), 2011, 38(1): 60-64. Zhang Peng, Zhao Yan. Coordinator Performance Testing System Base on LabVIEW[J]. Metrology & Measurement Technique, 2011, 38(1): 60-64.
[11] 劉有耀, 李彬. 基于Hadoop的測試數(shù)據(jù)處理系統(tǒng)設計與實現(xiàn)[J]. 計算機技術與應用, 2015, 41(7): 140-143. Liu You-Yao, Li Bin. The Design and Implementation of Test Data Processing System Based on Hadoop[J]. Application of Electronic Technique, 2015, 41(7): 140-143.
(責任編輯: 許 妍)
Development of Data Management Software for Torpedo Power Test
CHEN Li-shan, SUN Tao, LIU Pei-pei, GAO Hui-zhong
(The 705 Research Institute, China Shipbuilding Industry Corporation, Xi′an 710077, China)
At present, data analysis systems usually use folder to store test data, but this manner is insufficient for data management and spends more time in data acquisition, analysis and access. Therefore, a data management software for torpedo power test is developed based on LabVIEW and Access to improve information interaction among modules in the acquisition and analysis software. In Access a database model and the relationship among datasheets are designed,and in LabVIEW database maintenance tool and interface program between database and function modules are developed. Thus query, modification, deletion, and data input/output operations on datasheets are implemented with higher efficiency.
torpedo power test; database; data management; LabVIEW; Access
TJ630.32; TP311.56
A
1673-1948(2016)04-0271-06
10.11993/j.issn.1673-1948.2016.04.006
2016-05-04;
2016-07-20.
船舶工業(yè)國防科技預研基金項目(14J4.4.1)、 中國船舶重工集團公司第七 〇五研究所總工程師基金(CX-1507).作者簡介: 陳立杉(1990-), 男, 碩士, 主要研究方向為動力測試測量技術.