劉 雄 王 軍 琚格格 劉 紅
(1.中國船舶重工集團公司第七二二研究所 武漢 430205)(2.中國船級社武漢分社 武漢 430022)
隨著電磁兼容檢測任務逐年增多,目前每年需要出具多達400份試驗檢測報告。而出具一份內容完整詳實、格式規范的報告需要花費一個人2~3天時間,因此每年需要在試驗報告的編制上花費大量的人力,并且如果試驗報告不能及時處理就會越積越多,最終影響客戶信心;由于檢測報告內容繁多,并且包含很多重復的信息數據,人工編制時難免忙中出錯,試驗報告中容易出現編輯錯誤;人工編制模式使得試驗流程的各個階段相互零散獨立,未能實現試驗室試驗流程的信息化管理。基于以上分析,為解決人工編制試驗報告效率低下、規避在試驗報告中出現人工編輯錯誤、實現試驗流程統一管理等問題,開發了一套試驗流程管理系統,該系統能夠實現委托單位信息、試驗要求條件等信息的輸入、保存和查詢;根據委托單號自動生成相對應的試驗委托單、試驗測試細則、試驗報告等;根據導入的測試數據的相關信息,統計分析試驗室各試驗人員的績效統計分析,最終將試驗流程的各個階段統一起來,為試驗室實現現代化的信息化管理打下基礎。
本系統使用到的關鍵技術包括LabView開發工具的使用、LabSQL軟件工具包的使用、Microsoft ADO技術[3]、ODBC數據源的使用[4]、ActiveX控件的調用[5]等。具體如圖1所示。

圖1 系統總體設計框圖
按照試驗流程劃分,本系統包括試驗前部分和試驗后部分,具體的試驗檢測過程由另外一套電磁兼容自動測試系統完成。其中實驗前主要工作過程為:通過軟件界面錄入試驗基本信息,然后調用委托單模版和試驗細則模版,完成模版的自動編輯工作,最后輸出電子檔試驗委托單和試驗細則。試驗完成后主要工作過程為:通過軟件界面導入試驗測試數據,調用試驗報告模版完成試驗檢測報告的動態自動編輯工作,最后輸出電子檔試驗報告。其中測試數據由另外一套電磁兼容軟件自動測試系統導出,測試數據以委托單號為唯一標識,其導出文件以委托單號為總目錄的文件目錄格式,具體格式如下:委托單號測試項代號測試部位測試結果圖片名稱。
按功能模塊劃分,本系統包括儀器儀表管理模塊、溫濕度環境管理模塊、試驗人員管理模塊、新建委托單模塊、刪除委托單模塊、委托單編輯模塊、委托單保存模塊、委托單生成模塊、試驗細則生成模塊、試驗報告生成模塊、績效統計管理模塊。具體見下圖。

圖2 系統功能設計框圖
本系統涉及到的數據信息較多,所有數據信息以受試設備為中心,包括受試設備本身的基本信息、與受試設備供電相關的供電信息數據、陪試設備信息數據、連接線纜信息數據、委托單位信息數據、試驗條件信息數據等。本系統數據庫數據結構的設計同時考慮兩方面內容,其一為試驗流程先后帶來的數據錄入時間不一致所帶來的數據分離,其二為同一委托單號下的數據記錄是否唯一。由于受試設備與委托單號一一對應,同一受試設備所對應的所有數據可以依據同一委托單號進行連接。受試設備對應的部分數據信息包括受試設備信息、委托單位信息、試驗條件等信息,由于一個委托單號下有且僅有一條記錄,因此這些信息可以設計一個總的關系數據表,而對于供電信息、陪試設備信息、線纜信息由于某些受試設備可能對應多條數據記錄,因此這些信息必須單獨設計數據表,不能設計在總表中。另外對于試驗完成后導入的數據信息,也不宜設計在總表中,需要單獨設計數據關系表。
本系統涉及到的主要數據表包括:設備信息(委托單號,樣品名稱,型號,編號,研制單位,委托時間,委托單位,委托單位地址,代理人,代理人手機,付款人,付款人手機,郵編,傳真,固定電話,密級,軍種,安裝平臺,平臺位置,設備特性,試驗大綱名稱,工作狀態描述,敏感性判據,項目經理,分包,標準號,測試項目)、供電(委托單號,交直流,電壓,電流,功率)、測試結論(委托單號,測試項目,檢測要求,符合性,主要超標頻點,測試部位數量)等。
軟件系統需要反復存儲、讀取大量的數據信息,Labview本身雖不具備數據庫訪問功能,但卻提供了豐富的外部程序接口,本系統利用第三方開發的免費工具包LabSQL訪問數據庫,該工具包利用 Microsoft ADO(Ac?tiveX Data Object)技 術通 過 ODBC(open data?base connectivity)數據源與數據庫進行連接,其連接過程如圖 3[6]。

圖3 應用程序與數據源連接框圖
如圖3所示,ODBC是數據庫與應用程序之間的一個公共接口,應用程序通過訪問ODBC而不是直接訪問具體數據庫來與數據庫通信。一個基于ODBC的應用程序對數據庫的操作不依賴任何形式的數據庫系統,所用的數據庫操作都由對應數據庫系統的ODBC驅動程序完成。ODBC的最大優點是能以統一的方式處理所有的數據庫。
LabSQL工具包[7]將復雜的底層ADO及SQL 操作封裝成一系列的LabView子程序,使用簡單方便。采用該方式既可以節省用于購買NI公司的附加工具包中數據庫接口工具包LabView SQL Tool?kit所需高額花費,又不需要對Microsoft ADO以及SQL語言有較深的了解,這樣可以進一步加快系統開發的進度。
安裝LabSQL后需要對LabSQL進行配置,在Windows操作系統的控制面板上,雙擊“數據源(ODBC)”,在出現的面板中單擊“系統DSN”選項中“添加”按鈕,然后在彈出的界面上選擇已經安裝的“SQL Server Native Client 10.0”驅動程序,最后點擊“完成”按鈕,輸入數據源的名稱,就完成了對數據源名稱(DSN)的建立,應用程序就可以通過數據源訪問數據庫了。
數據庫連接成功以后就可以在LabView環境下通過LabSQL對數據庫進行直接操作了。LabS?QL對數據庫的基本操作流程是先創建一個連接、打開此連接、執行SQL語句,關閉該連接、最后將該連接銷釋放掉[8],具體見圖4。

圖4 數據庫基本操作流程
圖4中過程執行的最頻繁,該過程中執行最頻繁的SQL語句包括向數據庫中記錄表中插入記錄和從數據庫記錄表中讀取相關信息。向數據庫記錄表中插入記錄軟件代碼實現如下:
該子程序的輸入參數為輸入簇,該簇包含一個表頭名和一個字符串數組,其中表頭名為字符串格式,內容為需要記錄表名稱和需要插入的字段,格式要求需要按SQL語言語法規范。數組為需要向數據庫記錄表中插入的信息,插入的信息需要與記錄表中列名對應。

圖5 數據庫插入記錄
從數據庫記錄表中讀取記錄表內容同樣是使用過程,其輸入參數相對簡單,為滿足SQL語言語法規范用于查詢數據格式的字符串,如查詢設備信息標中所有記錄信息,則過程函數的輸入參數為“use lx select*from設備信息 where委托單號=xxx”,其中lx為本系統設置的DNS數據源名稱,xxx為需要查詢的委托單號。
由于電磁兼容測試涉及的標準眾多,每個標準中包含的測試項目也較多,因此每個測試項目對應的測試細則和檢測報告的內容也不盡相同,這就導致每個測試項目對應的文檔模版文件也不相同。對于相關模板的設計有兩種方式,其一是所有項目同一類型的文檔設計一個模板,如所有測試細則設計為一個模板,所有實驗報告的測試項目首頁設計為一個模板,所有測試項目的數據頁設計為一個模板,但該模板必須兼顧所有的標準和測試項目,其二是對每一個標準的每一個測試項目設計一個模板,做到分別量身定做。
以上兩種方式各有優缺點,方式一必須兼顧各個測試項目,模板設計復雜,最關鍵的由于需要兼顧各個實驗項,模板中只能包含各個試驗項目的共性參數,在模板被調用時系統需要耗費大量的資源處理模板中信息的插入,最后導致各個文檔生成過程中幾乎需要完全生成所有的信息,整個過程耗時較長。其優勢在于同一類型的文檔只需要設計一個,可減少模板重復設計工作;而方式二由于可以做到最大化的量身定做,模板在被調用時,系統的負擔較輕,文檔自動生成過程中只需要向模板中插入少量的關鍵信息就可以完成文檔的生成工作,系統負擔小,整個文檔生成過程耗時較短。其缺點在于每個試驗項目都需要編制一個模板,前期工作量較大。結合前期試驗過程,考慮到方式一調用方式復雜,實現難度較大,而且整個實現過程耗時較長,而方式二,雖然模板眾多,但利用現有的模板進行局部調整,也可以快速實現,而且系統調用簡單、實現過程較快。
在Word中凡是手工可以完成的操作,包括對文字的編輯、圖片和表格的處理都可以通過軟件控制的方式由應用程序實現。LabView開發環境下對Word模板的訪問控制是通過ActiveX方式[9]調用Word實現的,ActiveX編程是一種基于面向對象的編程方法,其操作主要包括三種:屬性的設置、方法的調用和事件的處理。微軟公司的Word應用軟件被看成一個Application對象,該對象中包含了Word軟件的各個組成部分,包括文檔對象、命令工具對象、幫助助手對象等,而本設計中使用到文檔對象中的表格、圖片、段落等對象[10]。LabView函數面板中“互聯接口”部分中部分中包含ActiveX方式所有控件[11],具體如圖6。

圖6 ActiveX控件
本系統中通過ActiveX方式對Word應用軟件中Word文檔連接控制部分的軟件代碼如圖7[5]:

圖7 Word應用程序調用
圖7中代碼打開了Word應用程序并調用了Word文檔屬性節點,后面軟件代碼根據需要通過調用Word文檔屬性和文檔操作方法對需要操作的文檔進行需要的操作。
完成以上內容后需要對Word模板進行編輯,完成相關文檔的輸出。常規的做法是在Word模板中需要插入信息的位置預先插入電子書簽,軟件系統連接Word應用程序建立連接后,首先將光標移動到插入書簽的位置,然后在該位置插入需要插入的信息[12]。由于受試設備各不一樣,依據檢測標準也不固定、具體的測試項目也不盡相同,因此最終生成的Word文檔框架也不一定固定,因此僅采用在電子書簽位置插入信息的方式不能完全滿足系統要求。本系統采用在電子書簽位置插入信息和對Word文檔表格對象動態調整相結合的動態編輯方式實現Word模板中信息的輸入編輯,根據受試設備實際測試要求,動態調整表格的行列數,再根據表格對象的行列屬性實現對應信息數據的編輯。
該軟件系統目前已經具備基本的試驗流程管理功能,包括試驗開始前相關信息的錄入、試驗委托單的生成、試驗細則的生成、試驗完成后試驗數據的導入、試驗報告的生成等,但對于試驗過程主體卻還未涉及,即該試驗流程管理系統不具備電磁兼容自動測試能力,后期將依據GJB151系列標準、HJB34-2007、GD22-2015等標準在該軟件系統中加入自動測試功能,實現試驗流程管理和試驗自動測試于一體的軟件系統。
參考文獻
[1]楊樂平,李海濤.Labview高級程序設計[M].北京:清華大學出版社:2004.
[2]明日科技.SQL Server從入門到精通[M].北京:清華大學出版社:2015.
[3]付志超,陳馨,張聰等.LabVIEW中基于ActiveX的報表生成技術研究[J].艦電技術,2010,30(4):60-63.
[4]馬紹良,李鳳保,謝閱.用ODBC實現SQL Server 2000在VB中的應用[J].計算機應用,2003,23(1):115-118.
[5]唐波,潘紅兵,趙以順等.在LabVIEW環境下基于ADO技術和SQL語言的數據庫系統實現[J].儀器儀表學報,2007,28(4):227-229.
[6]周歡,莫軍,李代生,梁文靜.基于LabSQL的LabVIEW數據庫訪問功能研究[J].2009中國儀器儀表與測控技術大會論文集,2009,30(6):322-323.
[7]田彬.試析基于LabSQL的LabVIEW數據庫訪問技術[J].電子科學技術,2017,4(2):42-45.
[8]尹技虎,王峰.基于LabSQL的LabVIEW數據庫訪問技術[J].儀表技術,2011(4):55-56.
[9]曹玉保,周兆慶,吳凱.Labview基于ActiveX技術的word測試報表研究[J].中國集成電路,2016(205):71-72.
[10]趙波,陳道升.在LabVIEW中調用ActiveX自動填寫原始記錄的方法[J].測試技術研究與應用,2011:70-72.
[11]古萍,王亮,馮磊等.基于LabSQL環境的ActiveX編程實例[J].科技創新與應用,2016(19):23-25.
[12]李磊,楊峰,何耀等.基于Labview的檢測報告自動生成方法研究[J].自動化儀表,2012,33(1):65-69.