嵌入式狀態(tài)監(jiān)測(cè)與故障診斷裝置設(shè)計(jì)
摘 要:將工業(yè)以太網(wǎng)技術(shù)應(yīng)用于工業(yè)設(shè)備監(jiān)控系統(tǒng),實(shí)現(xiàn)了基于32位高性能處理器AT91RM9200的嵌入式遠(yuǎn)程狀態(tài)監(jiān)測(cè)與故障診斷裝置,它是機(jī)電設(shè)備狀態(tài)監(jiān)測(cè)與故障診斷系統(tǒng)的核心部分。該裝置通過(guò)工業(yè)以太網(wǎng)協(xié)議(EtherNet/IP)來(lái)實(shí)現(xiàn)DeviceNet和以太網(wǎng)的連接,移植linux和boa建立了基于網(wǎng)關(guān)的網(wǎng)絡(luò)服務(wù)器,采用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)和B/S架構(gòu)的UDP Socket通信技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)實(shí)時(shí)的網(wǎng)頁(yè)顯示。
關(guān)鍵詞:狀態(tài)監(jiān)測(cè);AT91RM9200;工業(yè)以太網(wǎng);BOA;動(dòng)態(tài)網(wǎng)頁(yè)
Design of the Embedded State Monitoring and Fault Diagnosing Instrument XIA Ting,WANG Na,MIN Hua-song
Abstract: The embedded statement monitoring and fault diagnosing instrument based on 32bit high performance microprocessor AT91RM9200 is implemented by appling Industrial Ethernet structure to industrial equipment monitoring and control system. It is the core of the monitoring and diagnosing system. Ethernet/IP protocol is ported to realize the connection between DeviceNet and Ethernet, Linux and BOA is ported to set up a web server on the gateway and dynamic web page technology and UDP Socket communication technology is adopted to realize real-time web display. The B/S architecture is adopted.
Keywords: state monitoring; AT91RM9200; EtherNet/IP; BOA; dynamic web page
1 引 言
傳統(tǒng)的狀態(tài)監(jiān)測(cè)與故障診斷裝置通常采用現(xiàn)場(chǎng)總線方式,但此方式具有很大局限性:現(xiàn)場(chǎng)總線類(lèi)型多樣,相互之間差異較大,不能實(shí)現(xiàn)互操作,彼此連接困難,系統(tǒng)的信息共享和實(shí)時(shí)性不盡如人意。為了更好地搭起終端設(shè)備和遠(yuǎn)程監(jiān)控系統(tǒng)通信的橋梁,本文提出并設(shè)計(jì)了基于工業(yè)以太網(wǎng)的嵌入式狀態(tài)監(jiān)測(cè)與故障診斷裝置,和傳統(tǒng)裝置相比,它有以下優(yōu)勢(shì):實(shí)現(xiàn)了系統(tǒng)的高效、統(tǒng)一;用戶(hù)可以通過(guò)Internet隨時(shí)隨地監(jiān)控大范圍的終端設(shè)備,取代了大量前置PC,具有更好的實(shí)時(shí)、實(shí)效性[1,2]。本裝置將現(xiàn)場(chǎng)采集到的實(shí)時(shí)數(shù)據(jù)通過(guò)以太網(wǎng)直接傳送到內(nèi)嵌的Web服務(wù)器上,服務(wù)器生成用于遠(yuǎn)程監(jiān)測(cè)和遠(yuǎn)程故障診斷的web頁(yè)面,用戶(hù)通過(guò)鍵入設(shè)備的IP地址,就可以隨時(shí)瀏覽到被監(jiān)測(cè)設(shè)備的現(xiàn)場(chǎng)運(yùn)行情況、數(shù)據(jù)采集信息以及報(bào)警信息等。
2 裝置結(jié)構(gòu)與特點(diǎn)
目前,機(jī)電設(shè)備的狀態(tài)監(jiān)測(cè)與故障診斷的整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示:
圖1 嵌入式狀態(tài)監(jiān)測(cè)與故障診斷系統(tǒng)結(jié)構(gòu)
本文設(shè)計(jì)開(kāi)發(fā)了此體系的核心裝置——嵌入式機(jī)電設(shè)備監(jiān)控裝置,主要分為3個(gè)模塊:
(1)數(shù)據(jù)采集模塊:包括多個(gè)現(xiàn)場(chǎng)數(shù)據(jù)采集單元。主要完成現(xiàn)場(chǎng)數(shù)據(jù)的檢測(cè)、采集。
?。?)數(shù)據(jù)存儲(chǔ)與處理模塊:包括嵌入式現(xiàn)場(chǎng)總線/以太網(wǎng)監(jiān)控工控機(jī)和數(shù)據(jù)庫(kù)。它通過(guò)EtherNet/IP協(xié)議,和現(xiàn)場(chǎng)總線數(shù)據(jù)采集單元進(jìn)行通信,實(shí)現(xiàn)靈敏檢測(cè)和數(shù)據(jù)存儲(chǔ)。
?。?)在線監(jiān)測(cè)模塊:包括嵌入式Web服務(wù)器和監(jiān)測(cè)網(wǎng)站。服務(wù)器生成用于遠(yuǎn)程監(jiān)測(cè)和故障診斷的web頁(yè)面。網(wǎng)絡(luò)用戶(hù)可以隨時(shí)掌握現(xiàn)場(chǎng)運(yùn)轉(zhuǎn)情況,使遠(yuǎn)程監(jiān)控真正實(shí)現(xiàn)。
本裝置擁有以下三個(gè)先進(jìn)的特征:
1)應(yīng)用工業(yè)以太網(wǎng),使Ethernet/IP設(shè)備和現(xiàn)場(chǎng)設(shè)備能夠通信。為了實(shí)現(xiàn)這個(gè)功能,我們將以太網(wǎng)協(xié)議移植進(jìn)嵌入式Linux。
2)通過(guò)瀏覽器支持機(jī)電設(shè)備狀態(tài)的監(jiān)控。我們?cè)谇度胧絃inux中移植了BOA,設(shè)計(jì)了動(dòng)態(tài)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控機(jī)電設(shè)備。
3)支持大容量數(shù)據(jù)存儲(chǔ),用一個(gè)黑匣子對(duì)設(shè)備的實(shí)時(shí)數(shù)據(jù)資源進(jìn)行監(jiān)控。通過(guò)大容量IDE總線的擴(kuò)展,連接IDE系統(tǒng)硬盤(pán),存儲(chǔ)大量數(shù)據(jù)[3]。
3 裝置的硬件設(shè)計(jì)
AT91RM9200是ATMEL針對(duì)系統(tǒng)控制及通信領(lǐng)域推出的基于ARM920T內(nèi)核的新微型控制器。它具有獨(dú)立的16KB指令和16KB數(shù)據(jù) cache、全功能的MMU虛擬內(nèi)存管理單元、16KB SRAM和128KB ROM、64MB NAND Flash 存儲(chǔ)器、LCD控制器、EBI 接口控制器、4個(gè)32位的PIO控制器、20通道的外設(shè)數(shù)據(jù)控制器(DMA)、3個(gè)同步串行控制器(SSC)、4個(gè)通用同步/異步接收/發(fā)送器(USART)、主/從串行設(shè)備接口SPI、16路12位ADC、1通道16位DAC、多媒體卡接口(MCI)、以太網(wǎng)10/100 Base-T 以太網(wǎng)媒體訪問(wèn)控制器(MAC)、觸摸屏接口、IDE接口等。
在處理器豐富資源的基礎(chǔ)上,本裝置對(duì)其進(jìn)行了相關(guān)的配置和擴(kuò)展,將處理器通過(guò)16路12位ADC接口對(duì)機(jī)電設(shè)備的電壓或電流信號(hào)進(jìn)行采集,IDE接口外掛大容量IDE硬盤(pán),用于存儲(chǔ)web、采集的數(shù)據(jù)等。通過(guò)DM9161芯片,該微處理器把EMAC接口外擴(kuò)為以太網(wǎng)接口RJ45,與工業(yè)以太網(wǎng)連接 [4]。AT91RM9200通過(guò)SPI接口連接CAN控制器SJA1000,CAN控制器與CAN收發(fā)器PCA82C250相連,用于連接 DeviceNet。硬件結(jié)構(gòu)如圖2所示:
圖2 硬件結(jié)構(gòu)圖
4 裝置的軟件架構(gòu)
軟件結(jié)構(gòu)如圖3所示:
圖3 軟件架構(gòu)圖
4.1移植工業(yè)以太網(wǎng)協(xié)議
工業(yè)以太網(wǎng)EtherNet/IP,是一種適用于工業(yè)環(huán)境的通訊體系,能夠在廣闊的區(qū)域中支持大量現(xiàn)場(chǎng)設(shè)備的連接。它采用通用工業(yè)協(xié)議(CIP)作為其應(yīng)用層協(xié)議。CIP協(xié)議支持各種控制、配置和信息處理服務(wù),包括顯式報(bào)文(用于信息傳輸,靈活的報(bào)文交換)以及隱式報(bào)文(用于控制和實(shí)時(shí)I/O數(shù)據(jù)的傳輸),支持輪詢(xún)、周期和狀態(tài)改變數(shù)據(jù)傳輸觸發(fā)機(jī)制,點(diǎn)對(duì)點(diǎn)單播和廣播數(shù)據(jù)傳輸方式[5,6]。OE服務(wù)的設(shè)計(jì)簡(jiǎn)化了EtherNet/IP的移植,只需要修改操作環(huán)境文件來(lái)適合ARM Linux操作體系。
4.2 移植BOA
從www.boa.org下載一個(gè)主流版本的BOA源碼包,本系統(tǒng)用的是boa-0.94.13.tar.gz。
第一步:修改Makefile文件,編譯BOA源碼,生成BOA可執(zhí)行文件。
修改Makefile文件,因?yàn)槲覀円幾g的是基于ARM的二進(jìn)制代碼,所以必須修改Makefile中的CC和CPP,分別將其改為交叉編譯器安裝的路徑:CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
CPP=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -E
然后運(yùn)行make進(jìn)行編譯,得到可執(zhí)行程序boa。
第二步:配置BOA。
BOA啟動(dòng)時(shí)將加載一個(gè)配置文件boa.conf,在boa程序運(yùn)行前,必須首先編輯該文件。在Boa源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎(chǔ)上修改。配置好的主要內(nèi)容如下:
User nobody
Group 0
ServerName AT91RM9200
ErrorLog /var/log/boa/error_log
AccessLog /var/log/boa/access_log
DocumentRoot /var/www
MimeTypes /etc/mime.types
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
據(jù)此配置,需要?jiǎng)?chuàng)建日志文件目錄/var/log/boa,HTML文檔的主目錄/var/www,將靜態(tài)網(wǎng)頁(yè)存入該目錄下,CGI腳本所在目錄/var/www/cgi-bin,將cgi的腳本存放在該目錄下。
4.3 CGI網(wǎng)頁(yè)設(shè)計(jì)
CGI(通用網(wǎng)關(guān)接口)提供Web服務(wù)器一個(gè)執(zhí)行外部程序的通道,這種服務(wù)端技術(shù)建立了Web瀏覽器與Web服務(wù)器之間的交互。首先,瀏覽器將遠(yuǎn)程客戶(hù)端發(fā)送的請(qǐng)求送到Web服務(wù)器,Web服務(wù)器將數(shù)據(jù)使用STDIN送給CGI程序,執(zhí)行CGI程序后獲得緩沖區(qū)中的設(shè)備信息,最后,使用STDOUT輸出包含工業(yè)設(shè)備信息的HTML形式的結(jié)構(gòu)文件,經(jīng)Web服務(wù)器送回瀏覽器,顯示給遠(yuǎn)程客戶(hù)端。
CGI程序可以用C語(yǔ)言編寫(xiě),并且能夠嵌入HTML腳本。它使用ARM-GCC編譯。CGI程序可以使用GET、POST或直接的URL參數(shù)傳遞方法與遠(yuǎn)程客戶(hù)端通信。以下是將采集到的設(shè)備數(shù)據(jù)顯示到網(wǎng)頁(yè)上的一段CGI程序,其中用到的數(shù)據(jù)庫(kù)是SQLite。SQLite是用一個(gè)小型C庫(kù)實(shí)現(xiàn)的一種強(qiáng)有力的嵌入式關(guān)系數(shù)據(jù)庫(kù)管理體制,它在體積與功能之間做到了較好的平衡,是理想的嵌入式數(shù)據(jù)庫(kù)。
#include
#include "sqlite3.h"
main(){
…
sqlite3* p_db;
sqlite3_open("mydb", &p_db);/*打開(kāi)數(shù)據(jù)庫(kù)*/
/*執(zhí)行SQL語(yǔ)句選擇alarm表中的所有記錄,并在查詢(xún)結(jié)果的每一行上執(zhí)行回調(diào)函*/
ret=sqlite3_exec(p_db, "select * from alarm;", callback,0, &errmsg);
…
sqlite3_close(p_db); /* 關(guān)閉數(shù)據(jù)庫(kù)*/
?。?/p>
int callback(void *p_data, int n_columns, char **column_names, char **column_values){ /*回調(diào)函數(shù)*/
int i;
for(i=0; i < n_columns; i++)
printf("%s=%s\n",column_names[i],column_values[i]? column_values[i]:"NULL");/*打印出查詢(xún)結(jié)果*/
return 0;
?。?/p>
4.4動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)
服務(wù)器端為嵌入式ARM,只能運(yùn)行基于TCP/IP協(xié)議的ARM-GCC編譯的Linux下的C++服務(wù)程序,本文使用嵌入式C++實(shí)現(xiàn)的 UDP socket技術(shù)與客戶(hù)端通信。客戶(hù)端使用flash或Java Applet和服務(wù)程序通信,提供動(dòng)態(tài)網(wǎng)頁(yè)。本文使用flash完成動(dòng)態(tài)刷新,動(dòng)態(tài)刷新采用線程機(jī)制,后臺(tái)數(shù)據(jù)通過(guò)UDP socket技術(shù)與服務(wù)器端通信來(lái)獲取。
服務(wù)器端和客戶(hù)端間的通信采用先進(jìn)B/S結(jié)構(gòu),用戶(hù)不需要在客戶(hù)機(jī)一端安裝診斷軟件即可以在遠(yuǎn)程進(jìn)行設(shè)備的監(jiān)測(cè)與故障診斷,形成一個(gè)開(kāi)放式的遠(yuǎn)程監(jiān)測(cè)與故障診斷系統(tǒng)?;赨DP協(xié)議的Socket通信B/S架構(gòu)如圖4所示:
圖4 UDP Socket通信B/S架構(gòu)
系統(tǒng)動(dòng)態(tài)頁(yè)面如圖5所示:
圖5 狀態(tài)監(jiān)測(cè)與故障診斷系統(tǒng)主界面
5 結(jié)束語(yǔ)
本文作者創(chuàng)新點(diǎn):將工業(yè)以太網(wǎng)技術(shù)、嵌入式Web Server技術(shù)、CGI技術(shù)、動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)應(yīng)用于嵌入式狀態(tài)監(jiān)測(cè)與故障診斷裝置中,用戶(hù)通過(guò) URL就可以隨時(shí)查看現(xiàn)場(chǎng)設(shè)備的運(yùn)行情況和報(bào)警信息,與傳統(tǒng)監(jiān)控裝置相比,提高了監(jiān)控的實(shí)時(shí)性,縮短了檢修時(shí)間,節(jié)省了檢修費(fèi)用,真正實(shí)現(xiàn)了維修制度從事故維修、定期維修向視情維修的轉(zhuǎn)變。
參考文獻(xiàn)
[1] 王堅(jiān),張浩,嚴(yán)雋薇,等.基于Internet/lntranet的數(shù)字化遠(yuǎn)程故障診斷系統(tǒng)[J].計(jì)算機(jī)工程,2000,26(10):28-29
[2] 金真,唐明浩,蔣琳.Internet遠(yuǎn)程監(jiān)控系統(tǒng)的嵌入式實(shí)現(xiàn)方法[J].計(jì)算機(jī)工程2006.1(32):245-247
[3] 胡昌林,劉鵬遠(yuǎn),李永軍,魏保華.某裝備狀態(tài)監(jiān)測(cè)與故障預(yù)測(cè)系統(tǒng)總體設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(9-1):189-191
[4] ATMEL.ARM920TTM-based Microcontroller AT91RM9200 User’s Mannual[R].August 2003.
[5] Rinaldi,John.EtherNet/IP–An application- layer protocol for industial automation[J]. Sensors(Peterborough,NH),May,2003,20(5):43-45.
提交
超越傳統(tǒng)直覺(jué),MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型
新大陸自動(dòng)識(shí)別精彩亮相2024華南國(guó)際工業(yè)博覽會(huì)
派拓網(wǎng)絡(luò)被Forrester評(píng)為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲(chǔ)強(qiáng)基 | ??低晭?lái)精彩主題演講
展會(huì)|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會(huì)