国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

嵌入式數(shù)據(jù)庫礦場安全系統(tǒng)的設計

發(fā)布時間:2010-12-27 19:50    發(fā)布者:designer
本文是針對當前礦業(yè)安全事故頻繁,設計了這樣一個能在惡劣環(huán)境下正常工作的安全系統(tǒng)。首先介紹了嵌入式系統(tǒng)的相關概念和軟硬件環(huán)境,闡明煤礦井上監(jiān)控終端的嵌入式系統(tǒng)需求和Windows CE 嵌入式操作系統(tǒng)選擇;接著,從嵌入式數(shù)據(jù)庫的相關概念和煤礦井上

監(jiān)控終端的嵌入式數(shù)據(jù)庫需求及特點出發(fā),詳細研究Berkeley DB 數(shù)據(jù)庫的關鍵技術(shù)特性以及在煤礦井上監(jiān)控系統(tǒng)中的適用性,并介紹Berkeley DB 數(shù)據(jù)庫的基本概念和基本API 函數(shù)操作。

嵌入式數(shù)據(jù)庫不僅在功能概念及系統(tǒng)特點上與傳統(tǒng)的數(shù)據(jù)庫有著很大的差別,而且在它的應用方式上也是不同的。嵌入式數(shù)據(jù)庫并不是直接銷售給用戶,而是提供給設備的生產(chǎn)商或應用的開發(fā)商,以便直接生成在嵌入式系統(tǒng)和應用之中,嵌入式數(shù)據(jù)庫在許多領域擁有廣泛的應用前景,如手持式計算和移動計算,智能設備,在本文中便提供了較好的應用。

1 系統(tǒng)需求分析

前端數(shù)據(jù)采集、監(jiān)控、發(fā)送等嵌入式系統(tǒng)軟件開發(fā)工作。為了滿足前端嵌入式監(jiān)控系統(tǒng)對井下實時數(shù)據(jù)的存儲、查詢、顯示等大量處理要求,必須安裝數(shù)據(jù)庫管理系統(tǒng),而傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)顯然因其資源占用大、數(shù)據(jù)管理效率低等特點不能適用與嵌入式礦場監(jiān)控系統(tǒng),因此,探索一種適用于礦場惡劣環(huán)境下的嵌入式監(jiān)控終端的數(shù)據(jù)庫系統(tǒng)成為本文進展的關鍵。

嵌入式數(shù)據(jù)庫管理系統(tǒng)是隨著嵌入式應用的發(fā)展而興起的一類嵌入式應用軟件,已經(jīng)成為數(shù)據(jù)庫技術(shù)研究的一個重要分支,在移動計算平臺(如HPC,PDA)、家庭信息環(huán)境(如機頂盒數(shù)字電視)、通訊計算平臺、汽車電子平臺、電子商務平臺(如智能卡應用)等領域得到廣泛的應用。

為解決這些問題,提出了嵌入式系統(tǒng)在煤礦井上監(jiān)控系統(tǒng)中的應用,嵌入式系統(tǒng)技術(shù)的小體積、高可靠性、低功耗和低成本等特點滿足井上監(jiān)控系統(tǒng)設備的嚴格要求及現(xiàn)場惡劣生產(chǎn)環(huán)境的適應性,并且監(jiān)控終端移植嵌入式數(shù)據(jù)庫管理系統(tǒng),滿足傳統(tǒng)煤礦安全監(jiān)控系統(tǒng)的主要功能需求:

1.數(shù)據(jù)通信功能需求。

2.實時查詢及顯示需求。

3.用戶登錄管理需求。

2 系統(tǒng)總體設計

嵌入式礦場安全系統(tǒng)的核心是數(shù)據(jù)處理。監(jiān)控終端實時采集礦場各類傳感器的模擬信號(如瓦斯?jié)舛取⒁谎趸紳舛取L速、溫度、濕度、粉塵、壓力等)和現(xiàn)場設備控制設備的開關量信號(如風機啟、停狀態(tài)等),實現(xiàn)數(shù)據(jù)實時顯示、實時/歷史曲線顯示、查詢和報表打印、聲光報警、手動/自動控制,以及網(wǎng)絡通信等功能。而所有這些功能的實現(xiàn)都是以數(shù)據(jù)管理為基礎的,嵌入式數(shù)據(jù)庫系統(tǒng)可以有效地組織和管理煤礦場下各類數(shù)據(jù),從而達到礦場監(jiān)控系統(tǒng)實時查詢、控制等功能的設計要求。圖1 是一個典型的采用了嵌入式數(shù)據(jù)庫的礦場安全系統(tǒng)的結(jié)構(gòu)圖:






系統(tǒng)采用 Windows CE 嵌入式操作系統(tǒng)和Berkeley DB 嵌入式數(shù)據(jù)庫作為礦場井上監(jiān)控系統(tǒng)終端應用程序的開發(fā)平臺;以現(xiàn)有的礦場安全監(jiān)測監(jiān)控系統(tǒng)為數(shù)據(jù)源,以文件共享的方式實時采集現(xiàn)場安全生產(chǎn)數(shù)據(jù),進行數(shù)據(jù)的處理和發(fā)送。

3.系統(tǒng)主要功能模塊實現(xiàn)

3.1 數(shù)據(jù)采集模塊

數(shù)據(jù)采集模塊實現(xiàn)煤礦數(shù)據(jù)源傳感器實時數(shù)據(jù)的讀取,并設計成一定格式的數(shù)據(jù)結(jié)構(gòu),以便數(shù)據(jù)庫和應用程序操作。本系統(tǒng)以現(xiàn)有的礦場安全系統(tǒng)(MSUS )為數(shù)據(jù)源,安全系統(tǒng)按照協(xié)議規(guī)定的文件格式組織傳感器數(shù)據(jù),存儲在指定本地磁盤路徑中。

1.設備安裝信息文件(dev.xml )

傳感器設備文件分為數(shù)據(jù)頭和數(shù)據(jù)體,數(shù)據(jù)頭格式規(guī)定如下:

<礦場編號><礦井名稱><日期><傳感器個數(shù)><其他><保留>

2.實時數(shù)據(jù)文件(rtdata. xml )

實時數(shù)據(jù)文件分為數(shù)據(jù)頭和數(shù)據(jù)體,數(shù)據(jù)頭格式規(guī)定如下:

<礦場編號><數(shù)據(jù)上傳時間><傳感器數(shù)目>

數(shù)據(jù)體格式規(guī)定如下:

<傳感器編號><數(shù)據(jù)值><數(shù)據(jù)狀態(tài)>

其中,數(shù)據(jù)狀態(tài)按位來表示數(shù)據(jù)的狀態(tài)(用二進制定義,使用時轉(zhuǎn)換為整數(shù)),其文本對應關系如下:






   




數(shù)據(jù)采集程序設計

數(shù)據(jù)采集模塊程序使用了 ReadFile.h 和ReadFile.cpp 文件,因此本文設計了CReadFile 類,該類封裝了對dev.xml 和rtdata.xml 交換文件所有的數(shù)據(jù)采集操作。根據(jù) dev.xml 和rtdata.xml 交換文件的構(gòu)成,以及數(shù)據(jù)庫存儲操作上的考慮,程序為每個傳感器設計了DEVDATA 和REALDATA 結(jié)構(gòu)體,分別用來保存dev.xml 和rtdata.xml 文件的數(shù)據(jù)信息。DEVDATA 結(jié)構(gòu)體如下所示:

typedef struct devdata

{ TCHAR m_str_devSubstation[MAXLENGTH];//分站

TCHAR m_str_devID[MAXID];//傳感器編號

TCHAR m_str_devPlace[MAXLENGTH];//安裝地點

TCHAR m str_devName[MAX];//檢測類別

TCHAR m str_devType[MAX];//傳感器類型

TCHAR m str_devUnit[MAX];//單位

float m_data_up;//量程上限

float mes_data_down;//量程下限

float m_alarrn_up;//報警上限

float m_alarm_down;//報警下限

float m_power_off;//斷電值

float m_power_on;//復電值

}DEVDATA;

REALDATA 結(jié)構(gòu)體如下所示:

typedef struct realdata

{TCHAR m_str_devID[MAXID];//傳感器編號

float m_data;//傳感器數(shù)值

TCHAR m_str_dataStatus[MAXSTATUS];//數(shù)據(jù)狀態(tài)

}REALDATA;

CReadFile 類使用了CPtrList 鏈表數(shù)據(jù)結(jié)構(gòu),用以管理交換文件的所有傳感器信息,數(shù)據(jù)節(jié)點為DEVDATA 和REALDATA 結(jié)構(gòu)體。

3.2 數(shù)據(jù)存儲模塊

將傳感器設備上傳時間作為 key,封裝在DEVDATA 結(jié)構(gòu)體中的設備安裝信息和封裝在REALDATA 結(jié)構(gòu)體中的實時數(shù)據(jù)信息分別構(gòu)成數(shù)據(jù)庫的data,從而構(gòu)成兩組Key 到Data對。因此,該方案將形成兩張表,分別存儲在兩個數(shù)據(jù)庫文件中。將傳感器設備安裝信息和實時數(shù)據(jù)信息形成兩個數(shù)據(jù)庫文件分別存儲,只在設備安裝信息改變的時候才會進行設備文件的存儲操作,這樣大大減少了數(shù)據(jù)庫文件的磁盤占用空間。

Berkeley DB 用Key/Data(關鍵詞/數(shù)據(jù))來區(qū)分數(shù)據(jù)庫中的數(shù)據(jù),Key/Data 對是BerkeleyDB 用來進行數(shù)據(jù)庫管理的基礎,由這兩者構(gòu)成的Key/Data 對組成了數(shù)據(jù)庫中的一個基本結(jié)構(gòu)單元,而整個數(shù)據(jù)庫實際上就是由許多這樣的結(jié)構(gòu)單元所構(gòu)成的。也就是說,調(diào)用數(shù)據(jù)庫接口實際上就是提供了相應的關鍵詞,通過該關鍵詞來查找要操作的數(shù)據(jù)。

如果把一組相關的 Key/Data 對也看作一個表的話,那么每一個數(shù)據(jù)庫只允許存放一個table,因此,一般一種類型的Key/Data 對構(gòu)成一個數(shù)據(jù)庫文件。數(shù)據(jù)庫存儲代碼設計主要分為設備安裝信息(key/data 對為設備上傳時間/DEVDATA 結(jié)構(gòu)體)存儲代碼設計和實時數(shù)據(jù)信息(key/data 對為設備一上傳時間/REALDATA 結(jié)構(gòu)體)存儲代碼設計。Berkeley DB 是以文件為單位進行數(shù)據(jù)庫管理的,由于設備安裝信息只在數(shù)據(jù)改變的時候才進行數(shù)據(jù)庫存儲操作,并且其間隔周期較長,因此作者設計了dev.db 文件實現(xiàn)安裝信息的存儲管理;由于實時數(shù)據(jù)信息的更新周期較短,數(shù)據(jù)庫存儲操作頻繁,并且每天都會有數(shù)據(jù)的采集和更新,因此作者以每天的日期為單位設計了實時數(shù)據(jù)庫文件,系統(tǒng)將會獲取當天的日期,并以之為文件名形成數(shù)據(jù)庫文件進行數(shù)據(jù)庫操作,例如當天的日期為2007 年2 月8 日,那么數(shù)據(jù)庫文件名為 2007-02-08.db 。

 
   

 

設備安裝信息和實時數(shù)據(jù)信息的存儲代碼具有一定的相似性,作者以實時數(shù)據(jù)信息的存儲代碼為例說明其設計過程,程序流程如下所示:






圖 2 設備安裝信息數(shù)據(jù)庫存儲程序流程

  3.3 數(shù)據(jù)查詢模塊

實時/歷史數(shù)據(jù)查詢模塊設計主要就是GetDevKey、DataQueryByRealTime 和DataQuery函數(shù)設計。

1. DataQueryByRealTime 函數(shù)設計

若用戶輸入的查詢時間段內(nèi)設備安裝信息沒有改變,GetDevKey 函數(shù)會直接返回FALSE,程序接著會調(diào)用DataQueryByRealTime 函數(shù)查詢實時數(shù)據(jù)庫文件,設備安裝信息直接從m-devList 結(jié)構(gòu)體鏈表中獲得,函數(shù)設計包括如下:

①根據(jù)用戶輸入的查詢?nèi)掌冢纬蓪崟r數(shù)據(jù)庫文件如2007-02-09.db,打開實時數(shù)據(jù)庫。

②構(gòu)建游標cursor,使用get 方法,以查詢時間為key,flag 標簽為DB_ SET_ RANGE 游標定位到數(shù)據(jù)庫文件多重記錄的首一記錄。

③遍歷數(shù)據(jù)庫文件擁有相同 kev 的多重記錄,將data 中傳感器ID 號與用戶輸入ID 號相等的REALDATA 結(jié)構(gòu)體與相應的m devList 鏈表節(jié)點DEVDATA 結(jié)構(gòu)體在列表框控件(CC1istCtrl)中顯示出來。

2. DataQuery 函數(shù)設計

若設備查詢時間對應的安裝信息相對于當前時間段己經(jīng)改變,GetDevKey 函數(shù)會返回正確的設備安裝信息查詢時間devKey,這個查詢時間可能跟用戶輸入的傳感器查詢時間不同;程序接著會調(diào)用DataQuery 函數(shù),并將這個正確的設備查詢時間devKey、用戶輸入的傳感器實時數(shù)據(jù)查詢時間realKey、傳感器ID 號strDevID 以及實時數(shù)據(jù)庫文件名strRealDbName以形參方式傳給DataQuery 函數(shù),其函數(shù)設計包括如下:

①打開設備數(shù)據(jù)庫 dev.db 文件,根據(jù)形參strRealDbName 打開實時數(shù)據(jù)庫文件。

②構(gòu)建游標 cursor,使用get 方法,分別以devKey 和realKey 為數(shù)據(jù)庫的key, flag標簽為DB_ SET_ RANGE,游標定位到設備數(shù)據(jù)庫文件和實時數(shù)據(jù)庫文件的首記錄。

③遍歷數(shù)據(jù)庫文件擁有相同key 的多重記錄,若設備數(shù)據(jù)庫文件記錄的data 中(DEVDATA 結(jié)構(gòu)體)傳感器ID 號與實時數(shù)據(jù)庫文件記錄的data 中(REALDATA 結(jié)構(gòu)體)傳感器ID 號相等,則將這兩個data 信息在列表框控件(CC1istCtrl)中顯示出來。

4.總結(jié)

本文的創(chuàng)新點:分析嵌入式煤礦井上監(jiān)控系統(tǒng)的功能需求,開發(fā)設計了基于Berkeley DB數(shù)據(jù)庫和Windows CE 的礦場安全系統(tǒng),實現(xiàn)了窗口登錄、數(shù)據(jù)采集、系統(tǒng)界面、數(shù)據(jù)庫存儲、實時/歷史數(shù)據(jù)查詢、實時曲線顯示等功能模塊,深入討論研究了系統(tǒng)的數(shù)據(jù)采集方法、數(shù)據(jù)庫KEY/DATA 對存儲方案及實時/歷史傳感器數(shù)據(jù)的數(shù)據(jù)庫查詢策略。在實際生產(chǎn)中工作穩(wěn)定,查詢速度快,達到了預期的設計目標。
本文地址:http://m.qingdxww.cn/thread-47949-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 特级免费毛片| 精品一区二区三区在线成人| 亚洲一色| 亚洲精品高清中文字幕完整版| 伊人精品视频在线观看| 处xxxx.88| 快播h动漫网站| 亚洲欧美一区二区三区久久| 视频一区久久| 日韩图色| 伊人色综合久久天天人手人停| 亚洲高清一区二区三区久久| 2019一級特黃色毛片免費看| 好姑娘社区在线视频| 色噜噜噜亚洲男人的天堂| 欧美一级网| 亚洲一区国产| 日韩无砖2021特黄| 网址在线观看| 中文字幕精品视频在线观看| 国内精品久久| 亚洲AV日韩AV欧美在线观看网| 色综合小说久久综合图片| 日日干夜夜草| 最近手机中文字幕1页| 亚洲综合在线一区| 国产69精品久久久久无码麻豆| 欧美亚洲日韩欧洲不卡| 亚洲色欲色欲综合网站| 亚洲国产一区二区三区a毛片| 人人插97| 亚洲欧洲高清| 亚洲久草| 范冰冰hdxxxx| 三级黄色在线观看| 欧美激情亚洲精品日韩1区2区| 视频国产免费| 天美传媒传媒免费观看| 足恋调教丝袜视频网站| 久久久久久久99精品免费观看| 亚洲成人综合在线|