呂星宇



摘 要: 針對計算機網絡自動檢測控制系統的遠程檢測診斷需求,提出并設計了單服務器數據處理、多客戶端數據采集的網絡化自動檢測系統。系統依據軟件組件間的數據傳輸原理及基于DataSocket的技術方法,在LabVIEW環境中給出了基于多線程技術的服務器端和客戶端的實現方法。最后通過波形文件的測量對系統進行實驗,實驗結果表明設計的檢測系統是切實可行的。
關鍵詞: 自動檢試; DataSocket技術; C/S 模型; 計算機網絡化; 多線程技術
中圖分類號: TN911?34; TG202 文獻標識碼: A 文章編號: 1004?373X(2017)01?0099?05
Abstract: Aiming at the requirement of the computer network automatic detection and control system for remote detection and diagnosis, a network automatic detection system with single server data processing and multiple clients data acquisition is proposed and designed. According to the data transmission principle among the software components and the technologies based on DataSocket, the multithreading technology based implementation method on the server side and client side is presented in LabVIEW environment. The experiment of the system was carried out by the measurement of the waveform file. The experimental results show that the detection system is feasible.
Keywords: automatic test; DataSocket technology; C/S model; computer network; multithreading technology
0 引 言
隨著虛擬儀器技術及計算機網絡通信技術的快速發展,計算機網絡自動檢測系統已成為發展趨勢。本文在對DataSocket技術進行研究的基礎上,設計了便于服務器和網絡進行實時數據交換的通信模塊。同時運用軟件工程的設計思想,以LabVIEW為平臺開發了操作簡便、界面友好的客戶端程序。實現了對裝備的遠程測試診斷,從而提高了測試效率,降低了測試成本,對各領域通信保障能力的提高具有重要意義。
1 系統的總體方案設計
1.1 系統的總體結構
本文采用如圖1所示的組網方式構建網絡化自動檢測系統,不同的用戶在各自地域利用檢測設備對被測對象進行數據采集,并通過網絡連接請求服務器進行數據分析并返回分析結果。
每一個自動檢測的實現都需要整個系統協同工作,各主要功能單元的分工如下:
設備用戶端:主要負責用戶接口;
服務器端:從用戶端接收用戶的請求信息并對信息進行處理,得出處理結果,并返回給客戶端;
檢測單元:是實現檢測功能的關鍵環節,接受設備用戶端的控制,與被測設備通過適當的接口相連接,采集輸入信號并輸出激勵信號;
網絡通信:服務器端和設備用戶端都須支持同樣的網絡協議,以便能在整個網絡環境中進行通信;
數據庫:主要用于存儲設備信息、用戶信息及檢測記錄等。服務器在進行用戶管理時,會對用戶信息表進行更新。
1.2 自動檢測系統的硬件平臺
自動檢測系統的硬件平臺主要由檢測控制器、檢測儀器資源、開關系統、信號接口裝置和檢測總線五部分組成,具體如圖2所示。
基于VXI和PXI的總線檢測系統的檢測能力大大增強(尤其是對現代多輸入多輸出數字電路的檢測能力[1]),同時檢測范圍也得到了很大的拓展。
檢測系統硬件平臺的主體是一臺由多種NI模塊集成的基于PXI總線的機箱式檢測設備。通過此設備提供所有被測單元需要的激勵,被測單元產生的所有響應數據也都通過該設備來采集[2?3]。
系統的具體結構如圖3所示,除檢測設備的主體部分外,還設計了一個設備公用接口裝置。
1.3 通信模式及關鍵技術設計
由于本系統中用戶設備端對控制檢測設備進行直接操作,且服務器和客戶端都需要運行軟件完成相關功能,因此采用網絡應用中常見的基于桌面應用的C/S通信模式[4]。在C/S模式中,服務器端的進程為客戶端的虛擬儀器應用進程提供服務,多臺計算機執行不同的功能,實現不同的服務器與用戶角色,借助網絡環境可實現數據的遠程檢測及處理。
DataSocket是NI公司提供的一個基于TCP/IP協議的網上實時數據交換開發工具,支持本地文件的I/O操作、HTTP和FTP文件傳輸和實時數據共享,并提供了統一的API函數。LabVIEW不能直接對數據庫進行訪問,但其提供了豐富的外部程序接口[5]。由于Windows已經包含了ADO組件,所以通過ADO組件與ODBC連接,就能夠訪問任何支持ODBC的數據庫。在使用LabSQL之前需在Windows操作系統中的ODBC數據源中創建一個DSN,數據庫與LabSQL之間的連接也是建立在DSN基礎上的。
2 系統軟件工作流程及功能分析
2.1 系統軟件工作流程分析
計算機網絡自動檢測系統對應用軟件的要求主要有可靠性、實時性、安全性、有效性、開放性、可維護性幾方面。為保證上述性能,設計的計算機網絡化自動檢測系統由檢測設備、檢測用戶端和遠程服務器組成。在進行檢測時,用戶通過主控機控制檢測設備完成相應的檢測操作,檢測數據通過網絡連接傳送到遠程服務器進行處理分析,整個系統的主要工作流程圖如圖4所示。
系統所需的功能模塊應該包括:運行于客戶端的檢測模塊、實現服務器和客戶端通信的網絡模塊以及服務器端為用戶請求提供服務的運算模塊。
2.2 系統軟件模塊功能分析
根據系統功能需求特點,對軟件功能模塊進行劃分,具體如圖5所示。
系統管理模塊包括操作管理、檢測診斷程序管理、檢測任務管理、操作人員管理和設備管理,具體功能如下:
操作管理:接收用戶的遠程登錄請求命令并進行分析診斷,然后調用不同的響應程序執行相應的請求命令;
檢測診斷程序管理:管理本系統的所有檢測分析診斷程序;
檢測任務管理:管理每一項檢測任務中的檢測記錄和分析診斷結果,并保存到相應數據庫中;
操作人員管理:用于管理操作人員信息;
設備管理:記錄每個能與服務器連接的設備用戶端檢測設備的配置狀況,設備端被廢除后要刪除設備端信息,設備端檢測單元進行配置變更時也要及時在服務器中更新設備的相關信息。
分析診斷模塊能夠提供故障診斷的在線支持,專家系統支持,并實現故障定位及隔離。
網絡通信模塊包括通信連接、數據發送和數據接收,各部分的功能如下:
通信連接:建立通信連接,為數據傳輸提供通信通道;
數據發送:將緩沖區內等待發送的數據傳送到遠端接收端口;
數據接收:將遠端發送來的數據接收到相應緩沖區,以供進一步分析處理。
檢測資源模塊將ATE中儀器的性能、控制方法存儲到器件模型文件中,將適配器的描述存儲到適配器模型文件中,將配置信息存儲到配置模型文件中。用戶可以對器件模型文件、適配器模型文件及配置模型文件進行修改,并對適配器模型文件進行處理,將適配器模型文件中的信息和前一步中信息的處理結果進行綜合,從而連線數據庫。完成系統本身的檢測、校驗。
檢測執行模塊包括激勵信號配置和檢測控制,各部分的功能如下:
激勵信號配置:根據檢測任務需求,在軟件平臺上進行各檢測設備的激勵信號配置;
檢測控制:控制各個檢測系統及其所有的資源,根據輸入的激勵信號采集輸出的響應信號,完成檢測任務。
3 系統的軟件設計
3.1 數據庫的設計
在本系統中需存儲大量的信息,為便于存儲檢索,本文通過設計的數據庫VItest對網絡化虛擬儀器檢測系統信息進行管理。主要的表格有用戶信息表、設備信息表、服務程序列表。其中用戶數據表的形式如表1所示。
在增加或刪除用戶,或用戶登錄退出時,系統都會對表1進行維護。增加新用戶時,由系統管理員在表中增加一個新用戶記錄,在新用戶登錄時,就會檢查表中是否有相應的記錄。
3.2 系統組件間通信的實現
DataSocket支持多種數據傳輸協議,本系統采用的是DSTP協議。由于不同協議采用的URL不同,所以DataSocket可通過URL判斷協議類型。
本系統中收發兩端的每一個數據項的通信都是相互獨立的,設計原理相似,因此只對某一數據項的設計進行分析。由于LabVIEW中提供了DataSocket編程的很多VI,用戶可以調用這些VI直接完成對數據項的讀、寫操作[6]。
3.3 客戶端程序設計
3.3.1 多線程技術及動態載入VI
基于自動檢測系統的需求實現和功能特點,客戶端的程序設計采用多線程技術[7]。本系統中,激勵信號的輸入、采集以及數據的通信等都需要同時進行。系統客戶端的程序流程如圖6所示。
由于系統規模較大,一個面板很難顯示所有的內容,需要設計簡潔的多面板人機界面。為了減少內存的占用并提高系統的運行效率,利用 LabVIEW的SubPanel方法節點實現各功能VI的動態載入。
本系統不同功能模塊都有相應的顯示界面,為了實現各功能界面的切換,在LabVIEW中可通過SubPanel實現該功能,SubPanel能夠在一個VI的前面板中包含其他VI的前面板[8]。
3.3.2 各功能模塊的設計
激勵信號配置VI模塊設計:系統為用戶提供了便捷、直觀的信號配置面板,用戶可以在控制面板上單擊某個按鈕或改變數值即可改變輸入的激勵信號參數。本VI模塊采用”事件”結構和條件結構設計程序。
響應信號采集VI模塊設計:該VI模塊共有五個獨立的程序模塊分別進行靜態數據采集程序,電壓、電流測量的程序,動態數據采集的程序,模擬信號測量的程序,信號采集的程序。
用戶登錄VI模塊設計:用戶信息存儲于數據庫中,用戶登錄時通過訪問用戶信息數據庫對用戶身份進行驗證,用戶登錄VI為獨立的功能模塊,輸出布爾類型信號,用戶通過驗證則輸出真,并啟動自動檢測系統。
用戶管理VI模塊設計:用戶管理可以進行”密碼修改”、”刪除用戶”、”增加用戶”等操作,程序設計則采用條件結構。
3.4 服務器程序設計
3.4.1 多線程設計
一般處理多任務有兩種方式:循環處理和并發處理。本文中要求可以同時處理多個用戶請求,并且要求響應的速度快,執行的效率高,因此采用并發處理方式。VI服務器采用多線程機制實現并發,同時完成用戶管理,設備管理等功能。VI服務器中的主要線程有:初始化VI服務器,監控用戶客戶端的連接;處理用戶請求線程; 設備管理線程;服務程序管理線程。
不同線程間,是通過事件觸發來控制多線程之間同步有序的工作,線程之間的通信采用內存的方式交換參數。服務器端程序流程如圖7所示。
3.4.2 多線程實現
監聽用戶的連接線程,主要完成以下幾方面的功能:初始化系統; 建立DataSocket連接,等待用戶連接;檢驗客戶身份;根據用戶請求類型分配相應處理線程。
本系統中服務器能為每一個用戶請求分配處理用戶請求的線程,從而能同時為多個客戶端服務。
4 系統軟件檢測檢驗
以波形文件的測量分析為例對設計的檢測系統進行實驗。兩個客戶端分別將采集到的模擬波形發送到服務器端,服務器端分析出波形信號的振幅、最高電平和最低電平、脈沖時間間隔、頻率周期、周期均方根等,并將結果分別回送至客戶端。
4.1 配置與操作
檢測平臺需在服務器端設計一個用于波形測量分析的服務程序WaveTest.vi,并通過服務器端的服務程序管理功能添加到系統中。在客戶端A運用到 “模擬輸入”、模擬輸出”、“信號配置”三個VI模塊完成信號的產生與采集,將波形的分析結果在客戶端的“結果發布”模塊中顯示。客戶端B通過產生一路模擬信號發送到服務器端,并接收服務器端的分析結果。檢測客戶端A涉及的硬件模塊有:用于向被測單元提供模擬輸入信號的D/A模塊,用于波形信號采集的示波器模塊及用于信號轉接的矩陣開關模塊。由于試驗條件限制,沒有使用檢測對象與適配板接口相連,而是在適配板端口將提供模擬信號的端口直接與波形信號采集的端口相連,期間利用矩陣開關進行一次信號的轉接。信號的流向如圖8所示。
在客戶端A完成檢測硬件連接等外部工作之后,可根據登錄檢測系統完成檢測任務,客戶端的操作流程如圖9所示。
4.2 分析結果
客戶端A根據以上操作,在客戶端“模擬輸入”模塊配置如圖10所示的模擬信號,由于該信號沒有輸入任何被測設備而直接被“模擬輸出”模塊采集并且傳送至服務器,因此服務器端調用的“波形測量分析”服務程序即為對該波形的分析,分析結果可從客戶端的“結果發布”模塊窗口讀取,具體如圖11所示。客戶端B的輸入和結果同端口A類似,說明系統是有效可行的。
5 結 論
本文通過網絡技術實現了用戶與檢測設備的遠程通信,能夠對裝備進行遠程檢測診斷,按照C/S模式設計并實現了由客戶端和VI服務器組成的基于計算機網絡的自動檢測系統,著重研究了軟件中的組件間的數據傳輸原理和實現方法,實現了在設備端進行數據采集并發送至遠端服務器進行分析處理的功能。但還無法完全保證數據傳輸的實時性和準確性,還需在后續的工作中繼續研究。
參考文獻
[1] 于勁松,李行善.下一代自動測試系統體系結構與關鍵技術[J].計算機測量與控制,2005,13(1):1?3.
[2] National Instruments. Specifications for the NI PXI/PCI?6541/6542 help [R]. America: National Instruments, 2007.
[3] 沙曉光,陳國順,王格芳.基于C/S與B/S混合結構的測試診斷網絡研究[J].計算機測量與控制,2005,13(5):401?402.
[4] 毛頓,郭慶平.LabVIEW中用DataSocket技術實現網絡化應用[J].現代電子技術,2002,25(3):70?71.
[5] MICHAEL J, CALVERT D K L.TCP/IP Sockets編程[M].北京:清華大學出版社,2009:263?301.
[6] 林立杰,耿濤.面向多種總線測試設備的軟件設計[J].現代電子技術,2015,38(3):85?86.
[7] 李勇,呂永衛.基于網絡遠程測試診斷系統的研究[J].計算機測量與控制,2005,13(10):1040?1043.
[8] 陳亮亮,孔祥艷,程甜甜,等.基于體系結構和面向構件的虛擬儀器開發方法[J].儀器儀表學報,2007,28(4):263?266.