微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 嵌入式数据库矿场安全系统的设计

嵌入式数据库矿场安全系统的设计

时间:12-27 来源:互联网 点击:
本文是针对当前矿业安全事故频繁,设计了这样一个能在恶劣环境下正常工作的安全系统。首先介绍了嵌入式系统的相关概念和软硬件环境,阐明煤矿井上监控终端的嵌入式系统需求和Windows CE 嵌入式操作系统选择;接着,从嵌入式数据库的相关概念和煤矿井上

监控终端的嵌入式数据库需求及特点出发,详细研究Berkeley DB 数据库的关键技术特性以及在煤矿井上监控系统中的适用性,并介绍Berkeley DB 数据库的基本概念和基本API 函数操作。

嵌入式数据库不仅在功能概念及系统特点上与传统的数据库有着很大的差别,而且在它的应用方式上也是不同的。嵌入式数据库并不是直接销售给用户,而是提供给设备的生产商或应用的开发商,以便直接生成在嵌入式系统和应用之中,嵌入式数据库在许多领域拥有广泛的应用前景,如手持式计算和移动计算,智能设备,在本文中便提供了较好的应用。

1 系统需求分析

前端数据采集、监控、发送等嵌入式系统软件开发工作。为了满足前端嵌入式监控系统对井下实时数据的存储、查询、显示等大量处理要求,必须安装数据库管理系统,而传统的数据库管理系统显然因其资源占用大、数据管理效率低等特点不能适用与嵌入式矿场监控系统,因此,探索一种适用于矿场恶劣环境下的嵌入式监控终端的数据库系统成为本文进展的关键。

嵌入式数据库管理系统是随着嵌入式应用的发展而兴起的一类嵌入式应用软件,已经成为数据库技术研究的一个重要分支,在移动计算平台(如HPC,PDA)、家庭信息环境(如机顶盒和数字电视)、通讯计算平台、汽车电子平台、电子商务平台(如智能卡应用)等领域得到广泛的应用。

为解决这些问题,提出了嵌入式系统在煤矿井上监控系统中的应用,嵌入式系统技术的小体积、高可靠性、低功耗和低成本等特点满足井上监控系统设备的严格要求及现场恶劣生产环境的适应性,并且监控终端移植嵌入式数据库管理系统,满足传统煤矿安全监控系统的主要功能需求:

1.数据通信功能需求。

2.实时查询及显示需求。

3.用户登录管理需求。

2 系统总体设计

嵌入式矿场安全系统的核心是数据处理。监控终端实时采集矿场各类传感器的模拟信号(如瓦斯浓度、一氧化碳浓度、风速、温度、湿度、粉尘、压力等)和现场设备控制设备的开关量信号(如风机启、停状态等),实现数据实时显示、实时/历史曲线显示、查询和报表打印、声光报警、手动/自动控制,以及网络通信等功能。而所有这些功能的实现都是以数据管理为基础的,嵌入式数据库系统可以有效地组织和管理煤矿场下各类数据,从而达到矿场监控系统实时查询、控制等功能的设计要求。图1 是一个典型的采用了嵌入式数据库的矿场安全系统的结构图:



系统采用 Windows CE 嵌入式操作系统和Berkeley DB 嵌入式数据库作为矿场井上监控系统终端应用程序的开发平台;以现有的矿场安全监测监控系统为数据源,以文件共享的方式实时采集现场安全生产数据,进行数据的处理和发送。

3.系统主要功能模块实现

3.1 数据采集模块

数据采集模块实现煤矿数据源传感器实时数据的读取,并设计成一定格式的数据结构,以便数据库和应用程序操作。本系统以现有的矿场安全系统(MSUS )为数据源,安全系统按照协议规定的文件格式组织传感器数据,存储在指定本地磁盘路径中。

1.设备安装信息文件(dev.xml )

传感器设备文件分为数据头和数据体,数据头格式规定如下:

<矿场编号><矿井名称><日期><传感器个数><其他><保留>

2.实时数据文件(rtdata. xml )

实时数据文件分为数据头和数据体,数据头格式规定如下:

<矿场编号><数据上传时间><传感器数目>

数据体格式规定如下:

<传感器编号><数据值><数据状态>

其中,数据状态按位来表示数据的状态(用二进制定义,使用时转换为整数),其文本对应关系如下:




   

数据采集程序设计

数据采集模块程序使用了 ReadFile.h 和ReadFile.cpp 文件,因此本文设计了CReadFile 类,该类封装了对dev.xml 和rtdata.xml 交换文件所有的数据采集操作。根据 dev.xml 和rtdata.xml 交换文件的构成,以及数据库存储操作上的考虑,程序为每个传感器设计了DEVDATA 和REALDATA 结构体,分别用来保存dev.xml 和rtdata.xml 文件的数据信息。DEVDATA 结构体如下所示:

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 结构体如下所示:

typedef struct realdata

{TCHAR m_str_devID[MAXID];//传感器编号

float m_data;//传感器数值

TCHAR m_str_dataStatus[MAXSTATUS];//数据状态

}REALDATA;

CReadFile 类使用了CPtrList 链表数据结构,用以管理交换文件的所有传感器信息,数据节点为DEVDATA 和REALDATA 结构体。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top