本文介紹了一種數據采集系統,他主要完成對某 設備上交流電源、直流電源、模擬電壓、開關信號、 脈沖信號等各種信號的采集工作。完成對上述信號的 如下特征進行紀錄: (1)奪流電源的電壓、頻率及相序,交流電源的供電時序; (2)直流電源的電壓及供電時序; (3)模擬信號的幅值及反映其變化規律的波形; (4)開關信號的電平幅值及信號時序; (5)脈沖信號的幅值、脈寬和周期、時序。 該數據采集系統總體上由硬件和軟件2部分組成,硬件是該系統的基礎,他完成各種數據的采集;軟件是該系統的核心,他主要完成對各個硬件模塊的控制和調度,實現對數據的存儲,并提供人機操作界面。 1 系統軟件結構 在該數據采集系統的開發過程中,軟件扮演著極其重要的角色。從功能上講,他的涵蓋面很廣,從硬件設備的驅動程序到開發整套系統所需的各個開發環節在內,他們的層次性很清晰。具體結構如圖1所示。 (1)VISA管理程序及接口軟件 VISA (Virtual lnstrument Software Architec-ture)是一個獨立于硬件設備、接口、操作系統、編程語言的I/O控制庫,處理測控計算機與儀器間物理連 接的通訊信息。通過VISA,由不同硬件接口(如:GPIB,VXI或RS232等)連接的儀器設備可以集成到一個系統中,由一個軟件、一套命令函數完成所有儀器設備的控制。 (2)測試資源層 測試資源層主要由測試儀器驅動軟件組成,系統所選用的貨架成品測試儀器無論是VXI總線還是GPIB總線儀器,每臺儀器均對應一個測試驅動軟件,該軟件應按VISA要求編寫,軟件功能函數則完成對儀器測試功能的控制和測試數據的讀寫。 該部分包含有VXI—MXI—Ⅱ驅動程序,HPE1413驅動程序和HP El459驅動程序。各個驅動程序負責完成對相應模塊的初始化和各種配置,并實現對各種數據的讀寫。該驅動程序一般不單獨執行,他是由執行程序來調用。 (3)應用開發層 用戶開發層是一個軟件開發平臺,為了充分利用CVI和儀器之間的方便通訊和VC的強大功能及友好的人機界面。該軟件將利用CVI和VC共同開發,他首先用CVI編制和儀器通訊的動態鏈接庫,在用VC編寫控制函數,并調用CVI編制的動態鏈接庫里的函數來從儀器上讀取數據。 (4)用戶應用層 用戶應用層是軟件系統的頂層,他實際上就是一個執行程序,實現對各種儀器模塊的調度,包括初始化及各個模塊子系統的配置,最后實現對導彈上各種數據的同時讀取,并以波形的形式顯示出來,用來觀察各個信號的幅度大小、頻率大小、相位關系及各種時序關系。并把數據存儲在硬盤中,好在以后進行數據回放。 2 采集軟件的設計 該程序設計最主要的部分就是數據采集軟件模塊的設計,他的主要任務就是完成對數據的采集、波形的顯示、數據的存儲和數據的回放。由于要采集的數據量很大,有一百多路信號,包括數字信號和模擬信號。而且采樣間隔也很短,為1 ms。當采用單線程來完成所有的工作時,難以滿足要求。所以該程序將采用多線程來編程。另外,為了便于更好地管理采集回 來的數據,該程序將數據存儲在數據庫里。 (1)數據的采集 首先把對儀器進行配置和數據讀取的函數做成動態鏈接庫,其動態鏈接庫里的函數主要有3個:初始化函數、讀取數據的函數和關閉儀器的函數。然后在主程序中調用動態鏈接庫里的函數,首先要加載動態鏈接庫,然后獲取其函數的指針,利用其指針來調用函數,來實現對儀器的操作。 (2)波形的顯示 數據的顯示有2種情況,一種是從HP El459來的開關信號,還有一種是從HP El413來的模擬信號,通過選擇,可以顯示他們一部分通道的波形,通過翻頁, 可以選擇其他的通道進行顯示。 (3)數據的存儲 數據的存儲就是把讀入內存的數據通過ODBC存入數據庫,由于該數據的結構非常簡單,只需建立一個表格就可以把他們之間的關系描述清楚。所以在進行數據存盤之前用SQL先建立一個表格,然后在數據存盤時和這個表格建立連接,然后把讀取的數據存入該表格。 (4)數據的回放 他主要是把存放在數據庫里的數據以波形的形式顯示出來。本程序采用多文檔形式,當回放時,可以通過按下面板上的按鈕來顯示不同通道的波形。顯示的波形還可以進行放大和縮小變換。 其中軟件工作的程序流程如圖2所示。 3 關鍵技術 為了滿足采集系統的試驗要求,本軟件在開發過程中采用了3項關鍵技術。 (1)動態鏈接庫(DLL)技術。 動態鏈接庫是運行時模塊,他是把程序編譯成二進制文件,在運行程序時才加進來,這使得他與編程語言沒有關系。所以可以利用動態鏈接庫把幾種編程語言結合起來編程,充分利用各種編程語言的優點。該軟件就是通過動態鏈接庫,充分利用CVI容易和儀器進行通訊的優點和VC的友好界面及靈活的顯示功能。 (2)多媒體定時器(Multimedia Timer)。 為了提高Windows操作系統的定時精度以滿足對通道的讀取精度要求,提高實時顯示的刷新速度和軟件存儲的效率,采用Windows下提供的多媒體定時器,其定時分辨率(Resolution)最高為1ms,遠遠高于Windows提供的默認Timer的性能(55ms)。 (3)多線程技術。 Win32是一種搶占式多任務操作系統,他為每一個線程輪流分配時間段,讓線程在分配的時間段里運行。每個進程除了系統自動生成的主線程外,還可以創建多個線程來協同完成指定的操作。利用多線程可以大大提高CPU的利用率。對于該應用程序,由于要處理的數據量非常大,只有利用多線程才能滿足要求,才能保證數據不丟失。 (4)ODBC (開放數據庫互連) 技術。 通過ODBC技術實現與數據庫的連接,也即采用SQL數據庫查詢語言,可以保證軟件的通用性,避免應用程序隨著數據庫的改變而改變。另外,利用數據庫技術,可以更方便地對數據進行顯示,可以很方便地定位到某一段數據的顯示,也可以選擇任意的通道波形進行顯示。 4 結 語 使用該數據采集系統,可以快速地記錄和存儲大量的實時數據,這對分析某設備的性能參數和工作狀態具有非常重要的作用。 |