基于Windows CE的便攜式數據采集與處理系統
在桌面PC上運行的服務器程序主要完成:(1)接收由客戶端程序發來的文件并存儲在新的文件中;(2)應客戶端請求向客戶端發送文件。
2.3.2 任務表模塊
任務表模塊負責任務表的生成。有三種生成方式,(1)從上位機下載任務文件并直接在用戶界面上生成任務表。(2)打開任務文件庫中的任務文件。(3)手動編輯任務表。任務表由二列構成:第一列是設備號,每個設備都有四個點要采集,每個點有水平和垂直二個方向的值,所以一臺設備要采集八組數據。當一個設備的八組數據都采集完之后,該設備從列表中消失。為了讓巡檢人員能夠清晰區分正在采集的項、采集完成的項和未被采集的項,可用不同的顏色來區分。用紅色表示正在采集的設備和正在采集的位號,用藍色表示已經采集過的位號。
2.3.3 數據采集模塊
數據采集模塊要完成一系列任務,包括設置采集參數、采集數據、對數據進行處理并輸送給圖形顯示模塊和數據的存儲等。利用PCM-3718H的驅動進行數據采集部分的編程。
數據采集:在進行數據采集時首先對數據采集板進行初始化配置;然后打開設備,獲得設備的特征參數;為ADDMA轉換分配數據緩沖區;開始ADDMA轉換,即數據采集。采集模塊用到的主要函數如下:
DRV_DeviceOpen(dwDeviceNum,(LONG far*)DriverHandle)
//打開設備
DRV_DeviceGetFeatures(DriverHandle,(LPT_DeviceGetFea-tures)ptDevFeatures)) 本文引用地址:http://www.j9360.com/article/163210.htm
//獲得設備特征參數
DRV_AllocateDMABuffer(DriverHandle,(LPT_AllocateDMA-Buffer)ptAllocateDMABuffer))
//為ADDMA轉換分配緩沖區
DRV_FAIDmaStart(DriverHandle,(LPT_FAIDmaStart)ptFA-IDmaStart)) //開始采集
數據存儲[2]:用VC++ MFC在Windows上開發程序時,數據庫可用ODBC(開放數據互連)或DAO(數據訪問對象)等數據庫引擎來訪問。CE既不支持ODBC,也不支持DAO。CE中的數據庫不是功能完全的數據庫系統,而只是一些結構化存儲數據的集合。表與表之間不存在關系數據庫中那樣的關聯。對數據庫進行封裝的操作封裝于CCeDBDatabase、CCeDBRecord、CCeDBProp、CCeDBEnum四個類中,它們是CE所特有的。在CE中實現數據庫很簡單,它只有一個層次并且最多可以有四種排序和索引,但它卻可以作為一個強有力的工具來組織不太復雜的數據。因此用CE中的數據庫來存儲采集的數據十分方便。
2.3.4 圖形顯示模塊
圖形顯示模塊包括三個部分:時實曲線、平均值曲線和FFT曲線。繪制曲線中遇到的主要問題就是顯示線程與采集和存儲線程之間的同步問題(前面已經說明,此處不再贅述)。
2.3.5 巡檢地圖
在TPC-650中存儲全廠所有設備的位置、名稱信息,形成一張設備地圖。根據每天的任務表和這張設備地圖,自動生成每次要巡檢的設備地圖。該地圖上表明設備的名稱、方位,并給出最優的巡檢順序。這樣既節省巡檢人員的時間又可以做到不漏檢。
巡檢地圖示意圖如圖3所示。
用星形表示正在巡檢的設備,粗線箭頭指向下一個要巡檢的設備,未巡檢的設備用方形表示,路徑用細線表示,巡檢完成的設備用圓形表示。當地圖上所有點都變為圓形時說明采集任務已完成。
3 軟件開發環境的設置
系統軟件在另一臺普通PC上開發,其配置如圖4所示。除了要安裝CE軟件開發包,還要安裝SDK for TPCx86 VC/VB及Advantech Device Driver2.0。執行數據采集的硬件PCM-3718H需要用軟件驅動,即具有“量身定做”的函數。因此程序要下載到硬件平臺上進行調試,而不能在開發用的PC上的仿真環境下調試。
4 結束語
使用embedded Visual C++開發基于CE的數據采集和處理系統是該領域里的新嘗試。利用CE支持多線程、數據庫、通信及實時性等特點開發出的數據采集和處理系統具有界面友好、性能可靠、采集速度快、軟件可擴展等優點。目前該系統已投入使用并取得良好的效果。
評論