技術頻道

      嵌入式狀態監測與故障診斷裝置的設計

      1 引 言

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

      2 裝置結構與特點

        目前,機電設備的狀態監測與故障診斷的整個系統結構如圖1所示:


      圖1 嵌入式狀態監測與故障診斷系統結構

        本文設計開發了此體系的核心裝置——嵌入式機電設備監控裝置,主要分為3個模塊:

        (1)數據采集模塊:包括多個現場數據采集單元。主要完成現場數據的檢測、采集。

        (2)數據存儲與處理模塊:包括嵌入式現場總線/以太網監控工控機和數據庫。它通過EtherNet/IP協議,和現場總線數據采集單元進行通信,實現靈敏檢測和數據存儲。

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

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

        1)應用工業以太網,使Ethernet/IP設備和現場設備能夠通信。為了實現這個功能,我們將以太網協議移植進嵌入式Linux。

        2)通過瀏覽器支持機電設備狀態的監控。我們在嵌入式Linux中移植了BOA,設計了動態網頁實時監控機電設備。

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

      3 裝置的硬件設計

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

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


      圖2 硬件結構圖

      4 裝置的軟件架構

        軟件結構如圖3所示:


      圖3 軟件架構圖

        4.1移植工業以太網協議

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

        4.2 移植BOA

        從www.boa.org下載一個主流版本的BOA源碼包,本系統用的是boa-0.94.13.tar.gz。

        第一步:修改Makefile文件,編譯BOA源碼,生成BOA可執行文件。

        修改Makefile文件,因為我們要編譯的是基于ARM的二進制代碼,所以必須修改Makefile中的CC和CPP,分別將其改為交叉編譯器安裝的路徑:CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc

        CPP=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -E

        然后運行make進行編譯,得到可執行程序boa。

        第二步:配置BOA。

        BOA啟動時將加載一個配置文件boa.conf,在boa程序運行前,必須首先編輯該文件。在Boa源碼目錄下已有一個示例boa.conf,可以在其基礎上修改。配置好的主要內容如下:

        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/

        據此配置,需要創建日志文件目錄/var/log/boa,HTML文檔的主目錄/var/www,將靜態網頁存入該目錄下,CGI腳本所在目錄/var/www/cgi-bin,將cgi的腳本存放在該目錄下。

        4.3 CGI網頁設計

        CGI(通用網關接口)提供Web服務器一個執行外部程序的通道,這種服務端技術建立了Web瀏覽器與Web服務器之間的交互。首先,瀏覽器將遠程客戶端發送的請求送到Web服務器,Web服務器將數據使用STDIN送給CGI程序,執行CGI程序后獲得緩沖區中的設備信息,最后,使用STDOUT輸出包含工業設備信息的HTML形式的結構文件,經Web服務器送回瀏覽器,顯示給遠程客戶端。

        CGI程序可以用C語言編寫,并且能夠嵌入HTML腳本。它使用ARM-GCC編譯。CGI程序可以使用GET、POST或直接的URL參數傳遞方法與遠程客戶端通信。以下是將采集到的設備數據顯示到網頁上的一段CGI程序,其中用到的數據庫是SQLite。SQLite是用一個小型C庫實現的一種強有力的嵌入式關系數據庫管理體制,它在體積與功能之間做到了較好的平衡,是理想的嵌入式數據庫。

        #include

        #include "sqlite3.h"

        main(){

        …

        sqlite3* p_db;

        sqlite3_open("mydb", &p_db);/*打開數據庫*/

        /*執行SQL語句選擇alarm表中的所有記錄,并在查詢結果的每一行上執行回調函*/

        ret=sqlite3_exe c(p_db, "sel ect * from alarm;", callback,0, &errmsg);

        …

        sqlite3_close(p_db); /* 關閉數據庫*/

        }

        int callback(void *p_data, int n_columns, char **column_names, char **column_values){ /*回調函數*/

        int i;

        for(i=0; i < n_columns; i++)

        printf("%s=%s\n",column_names[i],column_values[i]? column_values[i]:"NULL");/*打印出查詢結果*/

        return 0;

        }

        4.4動態網頁技術

        服務器端為嵌入式ARM,只能運行基于TCP/IP協議的ARM-GCC編譯的Linux下的C++服務程序,本文使用嵌入式C++實現的 UDP socket技術與客戶端通信。客戶端使用flash或Java Applet和服務程序通信,提供動態網頁。本文使用flash完成動態刷新,動態刷新采用線程機制,后臺數據通過UDP socket技術與服務器端通信來獲取。

        服務器端和客戶端間的通信采用先進B/S結構,用戶不需要在客戶機一端安裝診斷軟件即可以在遠程進行設備的監測與故障診斷,形成一個開放式的遠程監測與故障診斷系統。基于UDP協議的Socket通信B/S架構如圖4所示:


      圖4 UDP Socket通信B/S架構

        系統動態頁面如圖5所示:


      圖5 狀態監測與故障診斷系統主界面

      5 結束語

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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 亚洲国产精品自在线一区二区| 午夜精品一区二区三区在线观看| 婷婷亚洲综合一区二区| 国产激情一区二区三区四区| 国产一区二区三区小向美奈子| 亚洲人AV永久一区二区三区久久| 精品国产日韩亚洲一区在线| 国模无码视频一区二区三区| 亚洲熟女少妇一区二区| 国产一区二区不卡老阿姨| 不卡一区二区在线| 日韩一区二区视频在线观看| 精品福利一区3d动漫| 国产成人精品一区二区秒拍 | 午夜影视日本亚洲欧洲精品一区| 伊人久久精品一区二区三区| 成人区人妻精品一区二区不卡视频| 亚洲A∨无码一区二区三区| 韩国福利视频一区二区| 老熟妇仑乱视频一区二区 | 亚洲一区二区三区国产精品| 欧美成人aaa片一区国产精品| 无码视频一区二区三区在线观看| 精品无码一区二区三区水蜜桃| 国产精品视频分类一区| 久久久一区二区三区| 国产丝袜视频一区二区三区| 亚洲国产专区一区| 国产精品自在拍一区二区不卡| 亚洲中文字幕久久久一区| 中文字幕视频一区| 一本久久精品一区二区| 蜜臀AV免费一区二区三区| 99久久精品国产免看国产一区| 国产免费私拍一区二区三区| 亚洲一区精品伊人久久伊人| 国产视频一区在线播放| 日韩精品电影一区亚洲| 国产一区二区三区在线影院| 国产一区二区视频在线播放 | 一区二区三区日韩精品|