<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 嵌入式狀態(tài)監(jiān)測與故障診斷裝置的研究與設(shè)計

          嵌入式狀態(tài)監(jiān)測與故障診斷裝置的研究與設(shè)計

          作者: 時間:2009-03-12 來源:網(wǎng)絡 收藏

            1 引 言

            傳統(tǒng)的狀態(tài)監(jiān)測與裝置通常采用現(xiàn)場總線方式,但此方式具有很大局限性:現(xiàn)場總線類型多樣,相互之間差異較大,不能實現(xiàn)互操作,彼此連接困難,系統(tǒng)的信息共享和實時性不盡如人意。為了更好地搭起終端設(shè)備和遠程監(jiān)控系統(tǒng)通信的橋梁,本文提出并設(shè)計了基于狀態(tài)監(jiān)測與裝置,和傳統(tǒng)裝置相比,它有以下優(yōu)勢:實現(xiàn)了系統(tǒng)的高效、統(tǒng)一;用戶可以通過Internet隨時隨地監(jiān)控大范圍的終端設(shè)備,取代了大量前置PC,具有更好的實時、實效性[1,2]。本裝置將現(xiàn)場采集到的實時數(shù)據(jù)通過以太網(wǎng)直接傳送到內(nèi)嵌的Web服務器上,服務器生成用于遠程監(jiān)測和遠程的web頁面,用戶通過鍵入設(shè)備的IP地址,就可以隨時瀏覽到被監(jiān)測設(shè)備的現(xiàn)場運行情況、數(shù)據(jù)采集信息以及報警信息等。

            2 裝置結(jié)構(gòu)與特點

            目前,機電設(shè)備的狀態(tài)監(jiān)測與故障診斷的整個系統(tǒng)結(jié)構(gòu)如圖1所示:

          嵌入式狀態(tài)監(jiān)測與故障診斷系統(tǒng)結(jié)構(gòu)

            圖1 狀態(tài)監(jiān)測與故障診斷系統(tǒng)結(jié)構(gòu)

            本文設(shè)計開發(fā)了此體系的核心裝置——機電設(shè)備監(jiān)控裝置,主要分為3個模塊:

           ?。?)數(shù)據(jù)采集模塊:包括多個現(xiàn)場數(shù)據(jù)采集單元。主要完成現(xiàn)場數(shù)據(jù)的檢測、采集。

           ?。?)數(shù)據(jù)存儲與處理模塊:包括嵌入式現(xiàn)場總線/以太網(wǎng)監(jiān)控工控機和數(shù)據(jù)庫。它通過Earthnet/IP協(xié)議,和現(xiàn)場總線數(shù)據(jù)采集單元進行通信,實現(xiàn)靈敏檢測和數(shù)據(jù)存儲。

            (3)在線監(jiān)測模塊:包括嵌入式Web服務器和監(jiān)測網(wǎng)站。服務器生成用于遠程監(jiān)測和故障診斷的web頁面。網(wǎng)絡用戶可以隨時掌握現(xiàn)場運轉(zhuǎn)情況,使遠程監(jiān)控真正實現(xiàn)。

            本裝置擁有以下三個先進的特征:

            1)應用,使Ethernet/IP設(shè)備和現(xiàn)場設(shè)備能夠通信。為了實現(xiàn)這個功能,我們將以太網(wǎng)協(xié)議移植進嵌入式Linux。

            2)通過瀏覽器支持機電設(shè)備狀態(tài)的監(jiān)控。我們在嵌入式Linux中移植了BOA,設(shè)計了動態(tài)網(wǎng)頁實時監(jiān)控機電設(shè)備。

            3)支持大容量數(shù)據(jù)存儲,用一個黑匣子對設(shè)備的實時數(shù)據(jù)資源進行監(jiān)控。通過大容量IDE總線的擴展,連接IDE系統(tǒng)硬盤,存儲大量數(shù)據(jù)[3]。

            3 裝置的硬件設(shè)計

            AT91RM9200是ATMEL針對系統(tǒng)控制及通信領(lǐng)域推出的基于ARM920T內(nèi)核的新微型控制器。它具有獨立的16KB指令和16KB數(shù)據(jù)cache、全功能的MMU虛擬內(nèi)存管理單元、16KB SRAM和128KB ROM、64MB NAND Flash 存儲器、LCD控制器、EBI接口控制器、4個32位的PIO控制器、20通道的外設(shè)數(shù)據(jù)控制器(DMA)、3個同步串行控制器(SSC)、4個通用同步/異步接收/發(fā)送器(USART)、主/從串行設(shè)備接口SPI、16路12位ADC、1通道16位DAC、多媒體卡接口(MCI)、以太網(wǎng)10/100 Base-T 以太網(wǎng)媒體訪問控制器(MAC)、觸摸屏接口、IDE接口等。

            在處理器豐富資源的基礎(chǔ)上,本裝置對其進行了相關(guān)的配置和擴展,將處理器通過16路12位ADC接口對機電設(shè)備的電壓或電流信號進行采集,IDE接口外掛大容量IDE硬盤,用于存儲web、采集的數(shù)據(jù)等。通過DM9161芯片,該微處理器把EMAC接口外擴為以太網(wǎng)接口RJ45,與連接[4]。AT91RM9200通過SPI接口連接CAN控制器SJA1000,CAN控制器與CAN收發(fā)器PCA82C250相連,用于連接DeviceNet。硬件結(jié)構(gòu)如圖2所示:

          硬件結(jié)構(gòu)圖

            圖2 硬件結(jié)構(gòu)圖

            4 裝置的軟件架構(gòu)

            軟件結(jié)構(gòu)如圖3所示:

          軟件架構(gòu)圖

            圖3 軟件架構(gòu)圖

            4.1移植工業(yè)以太網(wǎng)協(xié)議

            工業(yè)以太網(wǎng)EtherNet/IP,是一種適用于工業(yè)環(huán)境的通訊體系,能夠在廣闊的區(qū)域中支持大量現(xiàn)場設(shè)備的連接。它采用通用工業(yè)協(xié)議(CIP)作為其應用層協(xié)議。CIP協(xié)議支持各種控制、配置和信息處理服務,包括顯式報文(用于信息傳輸,靈活的報文交換)以及隱式報文(用于控制和實時I/O數(shù)據(jù)的傳輸),支持輪詢、周期和狀態(tài)改變數(shù)據(jù)傳輸觸發(fā)機制,點對點單播和廣播數(shù)據(jù)傳輸方式[5,6]。OE服務的設(shè)計簡化了EtherNet/IP的移植,只需要修改操作環(huán)境文件來適合ARM Linux操作體系。

            4.2 移植BOA

            圖4 UDP Socket通信B/S架構(gòu)

            系統(tǒng)動態(tài)頁面如圖5所示:

          狀態(tài)監(jiān)測與故障診斷系統(tǒng)主界面

            圖5 狀態(tài)監(jiān)測與故障診斷系統(tǒng)主界面

            5 結(jié)束語

            本文作者創(chuàng)新點:將工業(yè)以太網(wǎng)技術(shù)、嵌入式Web Server技術(shù)、CGI技術(shù)、動態(tài)網(wǎng)頁技術(shù)應用于嵌入式狀態(tài)監(jiān)測與故障診斷裝置中,用戶通過URL就可以隨時查看現(xiàn)場設(shè)備的運行情況和報警信息,與傳統(tǒng)監(jiān)控裝置相比,提高了監(jiān)控的實時性,縮短了檢修時間,節(jié)省了檢修費用,真正實現(xiàn)了維修制度從事故維修、定期維修向視情維修的轉(zhuǎn)變。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();