国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

基于WindowsCE的便攜式數據采集與處理系統設計

發布時間:2010-8-19 13:31    發布者:lavida
關鍵詞: WINCE , 數據采集
目前,一些發達國家的工業設備運行監測和管理已日趨信息化和專業化,但國內這方面尚存在許多問題。有些企業出于投資規模和經濟效益的考慮,尚未引進現代化的檢測設備和管理手段,依舊使用傳統的人工巡檢和記錄模式。即使一些大型企業已配備了較先進的監測系統和監測儀器,但是由于具體操作人員的素質和責任心等方面的問題,并未使其發揮應有的作用,且導致近年來國內設備運行故障頻繁發生。因此研制和開發過程裝備智能診斷系統是十分必要的。整個系統的設計思想是:系統主機對設備運行狀況進行分析并發出任務指令;巡檢人員按任務指令要求利用巡檢儀采集并存儲數據,然后將采集好的數據發送到主機;主機再根據巡檢儀輸入的數據分析設備的運行狀態并發出下一次的任務指令。如此循環以達到保證設備安全運行的目的。本文介紹針對巡檢儀提出的一種基于Windows CE的數據采集與處理系統,并給出了硬件設計和軟件設計。  

選擇Window CE(以下簡稱CE)作為軟件運行平臺,這主要是基于它的特點考慮的。CE是多線程、多任務、完全搶占式的32位嵌入式操作系統。新的內核服務,例如嵌套式的中斷、更好的線程響應、新增的任務特性、信號量等,使得它能對事件和中斷立即響應,能夠滿足數據采集中苛刻的實時性要求。它支持的多線程使得數據采集和顯示處理等能夠同時進行。它具有強大的存儲和文件處理能力,能夠滿足數據存儲的需要。它對通信及網絡的支持,使得它與系統主機的通信變得更加容易。  

1 系統的硬件結構  

系統硬件的主要組成如圖1所示。  


  
TPC-650是為CE或其他高級操作系統設計的硬件平臺。它適合于各種工業應用,包括工業自動化、自動化生產線、精密加工、生產過程控制、環境控制、終端信息系統、娛樂管理系統等。它具有高質量的*“VGA TFT/5.7”QVGA STN液晶顯示器、Intel Pentium 266 MMX微處理器、10/100 Base-T網口、二個串口(RS-232,RS-232/422/485)、一個快閃卡插槽、一個外部16位PC/104模塊擴展槽和觸摸屏。它的核心是微型X86 CPU,但它在圖形顯示和網絡通信方面的性能更優。  

PCM-3718H是一個高效的多通道數據采集模塊,插在TPC-650的PC-104插槽。它支持12位的A/D轉換和數字輸入/輸出,能夠實現DMA方式的單/多通道的A/D轉換。其DMA轉換的采樣頻率可達100kHz。它具有靈活的觸發選擇,包括軟件觸發、實時同步觸發和外部脈沖觸發。  

PCLD-880是通用螺絲端子板,能提供方便的信號接線,并能與數據采集卡的20芯扁平電纜相連。它還帶有一個DB-37接口,可以支持帶有DB-37的數據采集控制卡。它是能在惡劣的環境下實現可靠連接的工業端子塊。  

本系統的主要工作過程是用位移/速度/加速度傳感器提取模擬電壓信號,經過PCLD-880,輸入到PCM-3718H。通過軟件編程控制PCM-3718H數據采集模塊,對模擬電壓信號進行采樣,完成A/D轉換和數據的存儲及處理。  

2 軟件設計  

2.1 應用程序執行數據采集的工作過程  

首先,從上位機下載任務文件,打開任務文件,在用戶界面上顯示為任務列表。操作人員將信息鈕只讀器與設備上的信息鈕貼合,程序自動從任務表中找到匹配項,進行數據采集。每采集完一個設備,該設備號從任務列表中自動刪除。  

采集開始的同時會顯示三種曲線:實時曲線、平均值曲線和FFT曲線。操作人員根據平均值曲線的平穩程度決定是否將采集到的數據存儲起來。實時曲線可以反應所測物理量的真實變化情況。FFT曲線體現所測物理量的頻域特征。采集完成后,向上位機發送數據。  

2.2 多線程的數據采集  

因為需要在較短的時間內完成數據采集、分析、圖形顯示和數據存儲等任務,所以采用多線程模型利用多個線程分別完成各項任務。  

本系統充分利用CE 操作系統的多線程特點將不同的任務分布到各個線程中,使各個任務同步而協調地進行。主線程負責創建用戶界面、接收消息等工作。為了保證數據采集不被其他線程中斷,專門開辟一個優先級較高的線程來采集數據。各個線程(數據采集線程、數據動態顯示線程和數據存儲線程)中所要完成的工作并行進行。線程間的通信通過消息響應函數PostMessage 和CEvent對象來實現。  

數據采集線程和顯示線程之間的同步通過使用線程同步對象Critical Section來實現。它能夠保證在同一時間只有一個線程訪問數據緩沖區。當采集線程向緩沖區中寫數據時,采集線程擁有Critical Section,顯示線程就不能夠訪問緩沖區;只有當采集線程將Critical Section對象釋放之后,顯示線程獲得了Critical Section對象,進而才能讀取緩沖區中的數據。這就保證了顯示線程讀到正確的數據。數據存儲線程、采集線程及顯示線程三者之間的同步也是如此。  

2.3 軟件模塊關系和各個模塊的功能  

系統各軟件模塊關系如圖2所示。  


  
2.3.1 通信模塊  

通信模塊負責本系統與上位機之間的通信,包括從上位機下載文件和向上位機傳送采集的數據。使用CSocket類建立TPC-650上的客戶端和桌面PC上的服務器程序。用CSocket類與CSocketFile和CArchive類一起使用來完成數據的發送和接收。在程序運行時,為了“聽”由客戶端程序發出的連接請求,服務器程序首先運行。下面是建立服務器和客戶端通信程序的步驟。  

(1)構造一個CSocket類對象。使用BOOL Create(UINT nSocketPort=0,int nSocketType=SOCK_STREAM,LPCTSTR lpszSocketAddress=NULL)函數。在服務器程序中使用該函數時,要指定nSocketPort值。  

(2)客戶端CSocket調用CAsynCSocket∷Connect函數連接服務器Csocket。服務器端用CAsynCSocket∷Listen函數“聽”客戶端發送的連接消息。調用CAsynCSocket∷Accept函數接收客戶端發送的消息。注意,virtual BOOL Accept(CAsynCSocket& rConnectedSocket,SOCKADDR*lpSockAddr=NULL,int*lpSockAddrLen=NULL)函數需要一個新的rConnectedSocket作為參數。因此在接收之前,要先構造一個新的CSocket類。  

(3)構造一個CSocketFile類對象,它與CSocket類對象相關聯。  

(4)構造一個CArchive類對象,它與CSocketFile對象相關聯。  

(5)使用CArchive類對象在服務器和客戶端之間傳遞數據。  

系統程序中有二部分要用到客戶端和服務器之間的通信。一是從上位機即桌面PC上下載任務文件;二是向上位機發送采集的數據。  

在TPC-650上運行的客戶端程序主要完成:(1)連接服務器;(2)向服務器發送采集到的數據;  

(3)向服務器發送請求,要求服務器發送任務文件,并將任務文件存儲起來。  

在桌面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))  

//獲得設備特征參數  

DRV_AllocateDMABuffer(DriverHandle,(LPT_AllocateDMA-Buffer)&ptAllocateDMABuffer))  

//為ADDMA轉換分配緩沖區  

DRV_FAIDmaStart(DriverHandle,(LPT_FAIDmaStart)&ptFA-IDmaStart)) //開始采集  

數據存儲:用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支持多線程、數據庫、通信及實時性等特點開發出的數據采集和處理系統具有界面友好、性能可靠、采集速度快、軟件可擴展等優點。目前該系統已投入使用并取得良好的效果。
本文地址:http://m.4huy16.com/thread-22406-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 常見深度學習模型介紹及應用培訓教程
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • Microchip第22屆中國技術精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表