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