當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]使用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)已投入使用并取得良好的效果。

目前,一些發(fā)達(dá)國家的工業(yè)設(shè)備運(yùn)行監(jiān)測和管理已日趨信息化和專業(yè)化,但國內(nèi)這方面尚存在許多問題。有些企業(yè)出于投資規(guī)模和經(jīng)濟(jì)效益的考慮,尚未引進(jìn)現(xiàn)代化的檢測設(shè)備和管理手段,依舊使用傳統(tǒng)的人工巡檢和記錄模式。即使一些大型企業(yè)已配備了較先進(jìn)的監(jiān)測系統(tǒng)和監(jiān)測儀器,但是由于具體操作人員的素質(zhì)和責(zé)任心等方面的問題,并未使其發(fā)揮應(yīng)有的作用,且導(dǎo)致近年來國內(nèi)設(shè)備運(yùn)行故障頻繁發(fā)生。因此研制和開發(fā)過程裝備智能診斷系統(tǒng)是十分必要的。整個(gè)系統(tǒng)的設(shè)計(jì)思想是:系統(tǒng)主機(jī)對設(shè)備運(yùn)行狀況進(jìn)行分析并發(fā)出任務(wù)指令;巡檢人員按任務(wù)指令要求利用巡檢儀采集并存儲數(shù)據(jù),然后將采集好的數(shù)據(jù)發(fā)送到主機(jī);主機(jī)再根據(jù)巡檢儀輸入的數(shù)據(jù)分析設(shè)備的運(yùn)行狀態(tài)并發(fā)出下一次的任務(wù)指令。如此循環(huán)以達(dá)到保證設(shè)備安全運(yùn)行的目的。本文介紹針對巡檢儀提出的一種基于Windows CE數(shù)據(jù)采集與處理系統(tǒng),并給出了硬件設(shè)計(jì)和軟件設(shè)計(jì)。
  選擇Window CE(以下簡稱CE)作為軟件運(yùn)行平臺,這主要是基于它的特點(diǎn)[1]考慮的。CE是多線程、多任務(wù)、完全搶占式的32位嵌入式操作系統(tǒng)。新的內(nèi)核服務(wù),例如嵌套式的中斷、更好的線程響應(yīng)、新增的任務(wù)特性、信號量等,使得它能對事件和中斷立即響應(yīng),能夠滿足數(shù)據(jù)采集中苛刻的實(shí)時(shí)性要求。它支持的多線程使得數(shù)據(jù)采集和顯示處理等能夠同時(shí)進(jìn)行。它具有強(qiáng)大的存儲和文件處理能力,能夠滿足數(shù)據(jù)存儲的需要。它對通信及網(wǎng)絡(luò)的支持,使得它與系統(tǒng)主機(jī)的通信變得更加容易。
1 系統(tǒng)的硬件結(jié)構(gòu)
  系統(tǒng)硬件的主要組成如圖1所示。

  TPC-650是為CE或其他高級操作系統(tǒng)設(shè)計(jì)的硬件平臺。它適合于各種工業(yè)應(yīng)用,包括工業(yè)自動化、自動化生產(chǎn)線、精密加工、生產(chǎn)過程控制、環(huán)境控制、終端信息系統(tǒng)、娛樂管理系統(tǒng)等。它具有高質(zhì)量的6.4“VGA TFT/5.7”QVGA STN液晶顯示器、Intel Pentium 266 MMX微處理器、10/100 Base-T網(wǎng)口、二個(gè)串口(RS-232,RS-232/422/485)、一個(gè)快閃卡插槽、一個(gè)外部16位PC/104模塊擴(kuò)展槽和觸摸屏。它的核心是微型X86 CPU,但它在圖形顯示和網(wǎng)絡(luò)通信方面的性能更優(yōu)。
  PCM-3718H是一個(gè)高效的多通道數(shù)據(jù)采集模塊,插在TPC-650的PC-104插槽。它支持12位的A/D轉(zhuǎn)換和數(shù)字輸入/輸出,能夠?qū)崿F(xiàn)DMA方式的單/多通道的A/D轉(zhuǎn)換。其DMA轉(zhuǎn)換的采樣頻率可達(dá)100kHz。它具有靈活的觸發(fā)選擇,包括軟件觸發(fā)、實(shí)時(shí)同步觸發(fā)和外部脈沖觸發(fā)。
  PCLD-880是通用螺絲端子板,能提供方便的信號接線,并能與數(shù)據(jù)采集卡的20芯扁平電纜相連。它還帶有一個(gè)DB-37接口,可以支持帶有DB-37的數(shù)據(jù)采集控制卡。它是能在惡劣的環(huán)境下實(shí)現(xiàn)可靠連接的工業(yè)端子塊。
本系統(tǒng)的主要工作過程是用位移/速度/加速度傳感器提取模擬電壓信號,經(jīng)過PCLD-880,輸入到PCM-3718H。通過軟件編程控制PCM-3718H數(shù)據(jù)采集模塊,對模擬電壓信號進(jìn)行采樣,完成A/D轉(zhuǎn)換和數(shù)據(jù)的存儲及處理。
2  軟件設(shè)計(jì)
2.1 應(yīng)用程序執(zhí)行數(shù)據(jù)采集的工作過程

  首先,從上位機(jī)下載任務(wù)文件,打開任務(wù)文件,在用戶界面上顯示為任務(wù)列表。操作人員將信息鈕只讀器與設(shè)備上的信息鈕貼合,程序自動從任務(wù)表中找到匹配項(xiàng),進(jìn)行數(shù)據(jù)采集。每采集完一個(gè)設(shè)備,該設(shè)備號從任務(wù)列表中自動刪除。
  采集開始的同時(shí)會顯示三種曲線:實(shí)時(shí)曲線、平均值曲線和FFT曲線。操作人員根據(jù)平均值曲線的平穩(wěn)程度決定是否將采集到的數(shù)據(jù)存儲起來。實(shí)時(shí)曲線可以反應(yīng)所測物理量的真實(shí)變化情況。FFT曲線體現(xiàn)所測物理量的頻域特征。采集完成后,向上位機(jī)發(fā)送數(shù)據(jù)。
2.2 多線程的數(shù)據(jù)采集
  因?yàn)樾枰谳^短的時(shí)間內(nèi)完成數(shù)據(jù)采集、分析、圖形顯示和數(shù)據(jù)存儲等任務(wù),所以采用多線程模型利用多個(gè)線程分別完成各項(xiàng)任務(wù)。
  本系統(tǒng)充分利用CE 操作系統(tǒng)的多線程特點(diǎn)將不同的任務(wù)分布到各個(gè)線程中,使各個(gè)任務(wù)同步而協(xié)調(diào)地進(jìn)行。主線程負(fù)責(zé)創(chuàng)建用戶界面、接收消息等工作。為了保證數(shù)據(jù)采集不被其他線程中斷,專門開辟一個(gè)優(yōu)先級較高的線程來采集數(shù)據(jù)。各個(gè)線程(數(shù)據(jù)采集線程、數(shù)據(jù)動態(tài)顯示線程和數(shù)據(jù)存儲線程)中所要完成的工作并行進(jìn)行。線程間的通信通過消息響應(yīng)函數(shù)PostMessage 和CEvent對象來實(shí)現(xiàn)。
  數(shù)據(jù)采集線程和顯示線程之間的同步通過使用線程同步對象Critical Section來實(shí)現(xiàn)。它能夠保證在同一時(shí)間只有一個(gè)線程訪問數(shù)據(jù)緩沖區(qū)。當(dāng)采集線程向緩沖區(qū)中寫數(shù)據(jù)時(shí),采集線程擁有Critical Section,顯示線程就不能夠訪問緩沖區(qū);只有當(dāng)采集線程將Critical Section對象釋放之后,顯示線程獲得了Critical Section對象,進(jìn)而才能讀取緩沖區(qū)中的數(shù)據(jù)。這就保證了顯示線程讀到正確的數(shù)據(jù)。數(shù)據(jù)存儲線程、采集線程及顯示線程三者之間的同步也是如此。
2.3 軟件模塊關(guān)系和各個(gè)模塊的功能
  系統(tǒng)各軟件模塊關(guān)系如圖2所示。

 

2.3.1 通信模塊
  通信模塊負(fù)責(zé)本系統(tǒng)與上位機(jī)之間的通信,包括從上位機(jī)下載文件和向上位機(jī)傳送采集的數(shù)據(jù)。使用CSocket類建立TPC-650上的客戶端和桌面PC上的服務(wù)器程序。用CSocket類與CSocketFile和CArchive類一起使用來完成數(shù)據(jù)的發(fā)送和接收。在程序運(yùn)行時(shí),為了“聽”由客戶端程序發(fā)出的連接請求,服務(wù)器程序首先運(yùn)行。下面是建立服務(wù)器和客戶端通信程序的步驟。
  (1)構(gòu)造一個(gè)CSocket類對象。使用BOOL Create(UINT nSocketPort=0,int nSocketType=SOCK_STREAM,LPCTSTR lpszSocketAddress=NULL)函數(shù)。在服務(wù)器程序中使用該函數(shù)時(shí),要指定nSocketPort值。
  (2)客戶端CSocket調(diào)用CAsynCSocket∷Connect函數(shù)連接服務(wù)器Csocket。服務(wù)器端用CAsynCSocket∷Listen函數(shù)“聽”客戶端發(fā)送的連接消息。調(diào)用CAsynCSocket∷Accept函數(shù)接收客戶端發(fā)送的消息。注意,virtual BOOL Accept(CAsynCSocket& rConnectedSocket,SOCKADDR*lpSockAddr=NULL,int*lpSockAddrLen=NULL)函數(shù)需要一個(gè)新的rConnectedSocket作為參數(shù)。因此在接收之前,要先構(gòu)造一個(gè)新的CSocket類。
  (3)構(gòu)造一個(gè)CSocketFile類對象,它與CSocket類對象相關(guān)聯(lián)。
  (4)構(gòu)造一個(gè)CArchive類對象,它與CSocketFile對象相關(guān)聯(lián)。
  (5)使用CArchive類對象在服務(wù)器和客戶端之間傳遞數(shù)據(jù)。
  系統(tǒng)程序中有二部分要用到客戶端和服務(wù)器之間的通信。一是從上位機(jī)即桌面PC上下載任務(wù)文件;二是向上位機(jī)發(fā)送采集的數(shù)據(jù)。
  在TPC-650上運(yùn)行的客戶端程序主要完成:(1)連接服務(wù)器;(2)向服務(wù)器發(fā)送采集到的數(shù)據(jù);(3)向服務(wù)器發(fā)送請求,要求服務(wù)器發(fā)送任務(wù)文件,并將任務(wù)文件存儲起來。
  在桌面PC上運(yùn)行的服務(wù)器程序主要完成:(1)接收由客戶端程序發(fā)來的文件并存儲在新的文件中;(2)應(yīng)客戶端請求向客戶端發(fā)送文件。
2.3.2 任務(wù)表模塊
  任務(wù)表模塊負(fù)責(zé)任務(wù)表的生成。有三種生成方式,(1)從上位機(jī)下載任務(wù)文件并直接在用戶界面上生成任務(wù)表。(2)打開任務(wù)文件庫中的任務(wù)文件。(3)手動編輯任務(wù)表。任務(wù)表由二列構(gòu)成:第一列是設(shè)備號,每個(gè)設(shè)備都有四個(gè)點(diǎn)要采集,每個(gè)點(diǎn)有水平和垂直二個(gè)方向的值,所以一臺設(shè)備要采集八組數(shù)據(jù)。當(dāng)一個(gè)設(shè)備的八組數(shù)據(jù)都采集完之后,該設(shè)備從列表中消失。為了讓巡檢人員能夠清晰區(qū)分正在采集的項(xiàng)、采集完成的項(xiàng)和未被采集的項(xiàng),可用不同的顏色來區(qū)分。用紅色表示正在采集的設(shè)備和正在采集的位號,用藍(lán)色表示已經(jīng)采集過的位號。
2.3.3 數(shù)據(jù)采集模塊
  數(shù)據(jù)采集模塊要完成一系列任務(wù),包括設(shè)置采集參數(shù)、采集數(shù)據(jù)、對數(shù)據(jù)進(jìn)行處理并輸送給圖形顯示模塊和數(shù)據(jù)的存儲等。利用PCM-3718H的驅(qū)動進(jìn)行數(shù)據(jù)采集部分的編程。
  數(shù)據(jù)采集:在進(jìn)行數(shù)據(jù)采集時(shí)首先對數(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)) 

                                                //獲得設(shè)備特征參數(shù)
  DRV_AllocateDMABuffer(DriverHandle,(LPT_AllocateDMA-Buffer)&ptAllocateDMABuffer))

                        //為ADDMA轉(zhuǎn)換分配緩沖區(qū)
  DRV_FAIDmaStart(DriverHandle,(LPT_FAIDmaStart)&ptFA-IDmaStart)) //開始采集
  數(shù)據(jù)存儲[2]:用VC++ MFC在Windows上開發(fā)程序時(shí),數(shù)據(jù)庫可用ODBC(開放數(shù)據(jù)互連)或DAO(數(shù)據(jù)訪問對象)等數(shù)據(jù)庫引擎來訪問。CE既不支持ODBC,也不支持DAO。CE中的數(shù)據(jù)庫不是功能完全的數(shù)據(jù)庫系統(tǒng),而只是一些結(jié)構(gòu)化存儲數(shù)據(jù)的集合。表與表之間不存在關(guān)系數(shù)據(jù)庫中那樣的關(guān)聯(lián)。對數(shù)據(jù)庫進(jìn)行封裝的操作封裝于CCeDBDatabase、CCeDBRecord、CCeDBProp、CCeDBEnum四個(gè)類中,它們是CE所特有的。在CE中實(shí)現(xiàn)數(shù)據(jù)庫很簡單,它只有一個(gè)層次并且最多可以有四種排序和索引,但它卻可以作為一個(gè)強(qiáng)有力的工具來組織不太復(fù)雜的數(shù)據(jù)。因此用CE中的數(shù)據(jù)庫來存儲采集的數(shù)據(jù)十分方便。
2.3.4 圖形顯示模塊
  圖形顯示模塊包括三個(gè)部分:時(shí)實(shí)曲線、平均值曲線和FFT曲線。繪制曲線中遇到的主要問題就是顯示線程與采集和存儲線程之間的同步問題(前面已經(jīng)說明,此處不再贅述)。
2.3.5 巡檢地圖
  在TPC-650中存儲全廠所有設(shè)備的位置、名稱信息,形成一張?jiān)O(shè)備地圖。根據(jù)每天的任務(wù)表和這張?jiān)O(shè)備地圖,自動生成每次要巡檢的設(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)軟件在另一臺普通PC上開發(fā),其配置如圖4所示。除了要安裝CE軟件開發(fā)包,還要安裝SDK for TPCx86 VC/VB及Advantech Device Driver2.0。執(zhí)行數(shù)據(jù)采集的硬件PCM-3718H需要用軟件驅(qū)動,即具有“量身定做”的函數(shù)。因此程序要下載到硬件平臺上進(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)已投入使用并取得良好的效果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉