您現(xiàn)在的位置:
中國(guó)傳動(dòng)網(wǎng)
>
技術(shù)頻道
>
技術(shù)百科
>
嵌入式狀態(tài)監(jiān)測(cè)與故障診斷裝置的設(shè)計(jì)
時(shí)間:2009-10-27 09:22:04來源:yangliu
圖3 軟件架構(gòu)圖[/align]
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ù)的傳輸),支持輪詢、周期和狀態(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)境文件來適合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)頁存入該目錄下,CGI腳本所在目錄/var/www/cgi-bin,將cgi的腳本存放在該目錄下。
4.3 CGI網(wǎng)頁設(shè)計(jì)
CGI(通用網(wǎng)關(guān)接口)提供Web服務(wù)器一個(gè)執(zhí)行外部程序的通道,這種服務(wù)端技術(shù)建立了Web瀏覽器與Web服務(wù)器之間的交互。首先,瀏覽器將遠(yuǎn)程客戶端發(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)程客戶端。
CGI程序可以用C語言編寫,并且能夠嵌入HTML腳本。它使用ARM-GCC編譯。CGI程序可以使用GET、POST或直接的URL參數(shù)傳遞方法與遠(yuǎn)程客戶端通信。以下是將采集到的設(shè)備數(shù)據(jù)顯示到網(wǎng)頁上的一段CGI程序,其中用到的數(shù)據(jù)庫是SQLite。SQLite是用一個(gè)小型C庫實(shí)現(xiàn)的一種強(qiáng)有力的嵌入式關(guān)系數(shù)據(jù)庫管理體制,它在體積與功能之間做到了較好的平衡,是理想的嵌入式數(shù)據(jù)庫。
#include
#include "sqlite3.h"
main(){
…
sqlite3* p_db;
sqlite3_open("mydb", &p_db);/*打開數(shù)據(jù)庫*/
/*執(zhí)行SQL語句選擇alarm表中的所有記錄,并在查詢結(jié)果的每一行上執(zhí)行回調(diào)函*/
ret=sqlite3_exec(p_db, "select * from alarm;", callback,0, &errmsg);
…
sqlite3_close(p_db); /* 關(guān)閉數(shù)據(jù)庫*/
?。?
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");/*打印出查詢結(jié)果*/
return 0;
?。?
4.4動(dòng)態(tài)網(wǎng)頁技術(shù)
服務(wù)器端為嵌入式ARM,只能運(yùn)行基于TCP/IP協(xié)議的ARM-GCC編譯的Linux下的C++服務(wù)程序,本文使用嵌入式C++實(shí)現(xiàn)的UDP socket技術(shù)與客戶端通信??蛻舳耸褂胒lash或Java Applet和服務(wù)程序通信,提供動(dòng)態(tài)網(wǎng)頁。本文使用flash完成動(dòng)態(tài)刷新,動(dòng)態(tài)刷新采用線程機(jī)制,后臺(tái)數(shù)據(jù)通過UDP socket技術(shù)與服務(wù)器端通信來獲取。
服務(wù)器端和客戶端間的通信采用先進(jìn)B/S結(jié)構(gòu),用戶不需要在客戶機(jī)一端安裝診斷軟件即可以在遠(yuǎn)程進(jìn)行設(shè)備的監(jiān)測(cè)與故障診斷,形成一個(gè)開放式的遠(yuǎn)程監(jiān)測(cè)與故障診斷系統(tǒng)。基于UDP協(xié)議的Socket通信B/S架構(gòu)如圖4所示:
[align=center]
圖4 UDP Socket通信B/S架構(gòu)[/align]
系統(tǒng)動(dòng)態(tài)頁面如圖5所示:
[align=center]
圖5 狀態(tài)監(jiān)測(cè)與故障診斷系統(tǒng)主界面[/align]
5 結(jié)束語
本文作者創(chuàng)新點(diǎn):將工業(yè)以太網(wǎng)技術(shù)、嵌入式Web Server技術(shù)、CGI技術(shù)、動(dòng)態(tài)網(wǎng)頁技術(shù)應(yīng)用于嵌入式狀態(tài)監(jiān)測(cè)與故障診斷裝置中,用戶通過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.
標(biāo)簽:
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-10-31
勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價(jià)比王者」NK290M普及型數(shù)控...
2025-10-09
耐磨管道機(jī)器人檢測(cè)電纜CCTV,水下管道...
2025-09-23