歡迎光臨北京AG贵宾厅實業! 關於AG贵宾厅 | 聯係AG贵宾厅 | 在線留言
全國統一服務熱線
010- 56251619
當前位置:主頁 > 資訊中心 > 行業動態 >

嵌入式電磁流量計智能監控終端的設計

文章出處:AG贵宾厅實業 人氣:發表時間:2018-01-07 11:11

0 引言
    電磁流量計是隨著電子技術的發展而迅速發展起來的新型流量測量儀表。由於不受溫度、黏度、壓力等物理參數的影響,因此電磁流量計具有管道中無任何阻力部件、節能效果顯著等諸多優點,受到了國內外眾多廠商的青睞,現已發展成為工業用四大流量計之一。目前,現有的電磁流量計一般都是以單片機為核心控製器,采用點陣式液晶顯示,小容量EEPROM 存儲數據,其測量精度、人機操作、信息存儲等方麵均存在著一定的局限性,已不能滿足實際工業生產中流量測量與控製的需要。為此,本文提出一種基於ARM-Linux 嵌入式開發平台,使用MiniGUI 開發環境進行圖形用戶界麵( graphical user interface,GUI) 設計。該設計提供了友好的人機界麵、大量數據存儲與管理以及網絡通信等功能,實現了電磁流量計的智能化、信息化與網絡化。
1 電磁流量計的總體設計
    電磁流量計的總體結構如圖1 所示。流量計主要由流量測量單元、智能監控終端和遠程主機三部分組成。該儀表將嵌入式、數據庫、圖形開發和網絡等技術集成到傳統的電磁流量計中,構建了一個集流量測量、數據存儲與管理和遠程監控於一體的綜合係統。
圖1 電磁流量計的總體結構圖
圖1 電磁流量計的總體結構圖

    流量測量單元包括激磁電路、流量信號處理電路和存儲器等模塊,主要完成對流量的高精度測量,並將處理後的數據信息通過Modbus 總線傳輸到智能監控終端。智能監控終端運行基於LCD 觸摸屏的現場監控軟件,並對整個電磁流量計係統進行現場實時監控,實現儀表參數設定、串口設置、流量和電勢標定等多種功能,且提供友好的人機界麵、數據管理和網絡服務。遠程主機可以通過以太網登陸電磁流量計的遠程監控係統,進行流量信息的實時查看、數據查詢和用戶管理等操作。
2 智能監控終端硬件設計
    電磁流量計智能監控終端的硬件係統以基於ARM11 內核的S3C6410 為核心處理器,包括電源模塊、存儲器模塊( 64 MB ~ 2 GB Nand Flash 和128 MBSDRAM) 、串行通信接口、10 /100 Mbit /s 以太網口和LCD 液晶顯示屏等外圍接口。智能監控終端硬件結構如圖2 所示。
圖2 智能監控終端硬件結構圖
圖2 智能監控終端硬件結構圖

    智能監控終端硬件設計主要包括控製模塊、存儲模塊和外圍接口模塊的設計。各模塊介紹如下。
    ① 控製模塊采用S3C6410 作為MCU。S3C6410是由Samsung 公司生產的低功耗、高集成度的32 位RISC 微處理器,它提供豐富的外圍模塊,集成有獨立的16 kB 指令緩存、16 kB 數據緩存、LCD 控製器、4 通道UART、2 通道SPI 和1 通道IIC 等功能,可以滿足電磁流量計智能監控終端所需性能要求。
    ② 存儲模塊選用Samsung 公司生產的Nand Flash芯片K9F1208U0M 作為存儲器,用於保存啟動代碼、Linux 鏡像文件、大容量程序和數據等; 選用HYnix 公司生產的SDRAM 芯片HY57V561620BT-H 運行程序、維護數據和堆棧區,其單片容量為32 MB。係統使用兩片HY57V561620BT-H 構成32 位、64 MB 的SDRAM存儲器係統。
    ③ 外圍接口模塊包含以太網接口、LCD 液晶觸摸式顯示屏以及串行通信接口等。係統選用NEC 公司生產的型號為NL2432HC22-22B 的TFT 真彩液晶屏作為顯示器,並在軟件上實現LCD 的驅動。S3C6410 沒有集成以太網控製器,所以係統外接了以太網控製器DM9000A,實現以太網接入。在電路設計時需要完成DM9000A 與S3C6410 總線的連接,以及網絡隔離變壓器PH163539 和以太網水晶接頭RJ45 的連接。
3 智能監控終端軟件設計
    電磁流量計智能監控終端的軟件係統主要由4 部分組成: 硬件平台、嵌入式操作係統、設備驅動層和應用軟件層。係統的軟件設計主要包括嵌入式開發平台的建立和應用軟件的設計,其軟件結構如圖3 所示。
圖3 智能監控終端軟件結構圖
圖3 智能監控終端軟件結構圖

3. 1 嵌入式開發平台的建立
    係統選用嵌入式Linux 操作係統作為智能監控終端的軟件開發平台,選用MiniGUI 作為圖形用戶界麵開發環境。嵌入式Linux 操作係統源碼開放,可移植性好,可以根據用戶的需要進行相應的裁剪、定製,且具有強大的網絡通信功能。MiniGUI 具有可伸縮性強、占用資源少、可配置性和支持多種嵌入式操作係統等特點,為嵌入式Linux 係統提供了完整的圖形係統支持。MiniGUI 的運行需要一些動態鏈接庫的支持,係統移植的庫文件主要有: Zlib 庫、PNG 庫、JPEG 庫。要在目標板上運行MiniGUI for Linux 應用程序,首先要使用PC 宿主機對MiniGUI 的源代碼進行交叉編譯,生成MiniGUI 靜態鏈接庫文件; 然後MiniGUI 應用程序在宿主機上進行交叉編譯,並且與MiniGUI 靜態鏈接庫和POSIX 線程庫鏈接生成* . axf 映象文件或* . bin二進製文件; 最後將MiniGUI 應用程序下載到目標板並運行。
3. 2 應用軟件的設計
3. 2. 1 數據管理模塊設計
    係統采用SQLite 數據庫對測量數據和報警等記錄進行存儲和管理。SQLite 是Hipp D R 於2000 年開發的一款輕型C 庫實現的關係數據庫,其設計目標就是為嵌入式係統服務,而且源代碼是完全公開的。SQLite 數據庫提供的API 函數有多個,係統使用到的函數有sqlite3_open ( ) 、sqlite3 _ exec ( ) 、sqlite3 _ get _ table ( ) 、sqlite3_close( ) 。當用戶需要存儲和管理流量信息時,隻需構造對應的SQL 語句即可。數據庫編程如下。
int Data_SqliteProcess( )
{
sqlite3 * db = NULL; / /定義數據庫對象變量
char * zErrMsg = 0; / /出錯信息變量
int res; / /數據庫操作返回值
char query[100]; / /數據庫操作語句
…… / /其他變量定義
res = sqlite3_open( " . /data. db" ,&db) ; / /打開數據庫
if( SQLITE_OK! = res) {
fprintf( stderr,"
Can't open database: % s \ n", sqlite3_
errmsg( db) ) ;
sqlite3_close( db) ;
exit( 1) ; }
rc = sqlite3_exec( db,query,NULL,NULL, zErrMsg) ;
/ /數據庫操作語句處理
…… / /其他處理程序
sqlite3_close( db) ; / /關閉數據庫連接
exit( 0) ;
}
3. 2. 2 用戶界麵操作模塊設計
    在MniGUI 開發的人機交互界麵中,用戶可以通過操作觸摸屏操控儀表。主界麵的菜單欄中包含了登錄管理、參數設置、數據管理、儀表標定、幫助和退出六個選項,每個選項又包含若幹子選項。用戶點擊相應的彈出式菜單按鈕,可進入相應的子窗口執行操作。主菜單頁麵中還顯示當前的流量信息,包括流量、流速、百分比和空管比等測量值以及當前儀表報警情況。
3. 2. 3 串行通信模塊設計
    係統采用Modbus 的RTU 模式進行信息傳輸,Modbus 規定RTU 模式中有效功能碼範圍為1 ~ 255,設計選擇67 ~ 71 作為智能監控終端( 主機) 請求功能碼,196 ~ 199 作為流量測量單元( 從機) 回應功能碼。
    智能監控終端啟動後,首先向從機發送功能碼為67 的請求幀,獲取流量測量單元的儀表參數,然後調用check_setting( ) ,比對消息幀的參數和智能監控終端的參數。比對相同時,係統采用流量測量單元的參數,否則,重新發送功能碼。監控程序正常運行時,根據設定的時間間隔向流量測量單元發送流量數據和報警數據請求幀,如果在設定的通信時間內沒有響應,則通信超時,主機重新發送請求幀。當用戶在智能監控終端通過GUI 完成儀表的參數設定或標定設置後,智能監控終端發送功能碼為70 或71 的消息幀,把參數發送到流量測量單元,監控程序按設定的時間間隔讀取串口數據,並調用analysis_data( ) 解析從機的應答消息幀。解析時,先獲得從機地址,然後判斷功能碼並采取不同的處理措施。解析流程圖如圖4 所示。
圖4 解析函數的程序流程圖
圖4 解析函數的程序流程圖

3. 2. 4 網絡服務模塊的設計
    在Linux 下進行網絡通信可以通過調用Linux 內置的TCP /IP 協議提供的Socket 套接字接口函數來實現,常見的Socket 主要有三種類型: 流式Socket、數據報Socket、原始Socket。本係統選用流式Socket,即采用C/S 模式,將智能監控終端構建成通信服務器,以響應監控軟件的連接請求和操作。監控軟件利用C + + Builder6為開發平台,在通信中作為客戶端發起連接請求,監控電磁流量計的運行狀態。
    係統運行後,主進程首先新建一個子進程,隨後主進程運行MiniGUI 的圖形界麵應用程序,由該子進程運行Socket 通信服務器程序。為了支持多個客戶端同時訪問本服務器,係統采用多進程技術,每接收到一個連接請求,係統即創建一個新的子進程,由該進程負責與客戶端的通信。Socket 通信服務器有關代碼如下。
int send_data( char * p_data)
/ /Socket 數據發送函數,成功返回1,失敗返回- 1
{
int length = send( link_fd,p_data,strlen( p_data) ,
0) ; / /發送數據
if( length < = 0) {
fprintf( “發送數據失敗! \n”) ;
close( client_fd) ;
return( - 1) ;
}
return ( 1) ;
}
while( 1) { / /服務器主循環sin_size = sizeof( struct sockaddr_in) ;
if( ( link_fd = accept( listen_fd,( struct sockaddr* ) &
client_addr,&sin_size) ) = = - 1) {
fprintf( “無法接受連接! \n”) ; continue;
}
fprintf( “接受了以下地址的連接請求: % s! \ n”,inet_
ntoa( client_addr. sin_addr) ) ;
if( fork( ) = = 0) {
/ /接受連接後,創建子進程響應客戶端
……
exit( 0) ; / /通信結束後,子進程退出
} }
4 結束語
    本文結合嵌入式、數據庫、網絡和圖形開發等技術,設計了一種基於嵌入式技術的電磁流量計智能監控終端。係統以高性能的S3C6410 為核心處理器,以嵌入式Linux 操作係統為軟件開發平台,具有可靠性高、人機界麵友好、網絡功能強大等特點,彌補了傳統電磁流量計監控終端設計存在的局限性。目前,該係統已進入產品測試階段,試驗結果表明,監控終端運行穩定、可靠,滿足了企業的需求,具有一定的實用價值和推廣價值。

此文關鍵字:嵌入式,電磁,流量計,智能,監控,終端,的,設計,