实时数据库在智能建筑管理系统的应用

时间:2022-09-29 10:49:17

实时数据库在智能建筑管理系统的应用

摘要:随着管理要求的不断提高,智能建筑管理系统对信息实时性的要求也不断提高,传统的数据库已经不能满足实际使用的需求。为此,本文通过分析实时数据库系统的特点――数据及事务的定时限制,提出在智能建筑管理系统中引入实时数据库系统,并详细介绍包括对实时数据分发服务器、实时数据库、历史数据库、实时数据库与OPC通信等几个数据库子模块的设计,以实现基于子系统平等方式集成的实时智能建筑管理系统,以协助提高用户的管理水平及效率。

关键词:实时数据库;智能建筑管理系统;实时事务管理;OPC

中图分类号:TU24 文献标识码:A

智能建筑管理系统是信息时代和计算机技术应用的重要产物,作为一个典型的分布式系统,其具体任务就是在物理上集成各子系统信息,集中监视各子系统、关键设备、关键监测点状态,执行集中管理控制指令,向数据库提供各子系统数据、图像信息,实现各子系统间的联动功能,并且协调优化各系统的运行,从而为建筑物提供安全、舒适、方便的生活条件和高效的工作环境,并保证其运行维护管理的经济性和智能化。

1实时数据库管理系统的特点

传统的数据库管理系统的设计目标是维护数据的绝对正确性、保证系统的低代价、提供友好的用户接口。这种数据库系统对传统的商务和事务型应用是有效的、成功的,然而,它不适合实时应用,这关键在于它不考虑与数据及事务相联的定时限制,其系统的性能指标是吞吐量和平均响应时间,而不是数据及事务相联的定时限制,调度与处理决策根本不理各种实时特性。与之相反,实时数据库管理系统的设计目标首先是对事务定时限制的满足,其基本原则是:宁要部分正确而及时的信息,也不要绝对正确但过时的信息。系统性能指标是满足定时限制的事务的比率,它要求必须确保硬实时事务的截止期,必要时宁肯牺牲数据的准确性与一致性。软实时事务满足截止期的比率相对较高,但要100%满足截止期很难或几乎不可能。实时数据库管理系统中数据的时间摘要:随着管理要求的不断提高,智能建筑管理系统对信息实时性的要求也不断提高,传统的数据库已经不能满足实际使用的需求。为此,本文通过分析实时数据库系统的特点――数据及事务的定时限制,提出在智能建筑管理系统中引入实时数据库系统,并详细介绍包括对实时数据分发服务器、实时数据库、历史数据库、实时数据库与OPC通信等几个数据库子模块的设计,以实现基于子系统平等方式集成的实时智能建筑管理系统,以协助提高用户的管理水平及效率。

关键词:实时数据库;智能建筑管理系统;实时事务管理;OPC

中图分类号:TU24 文献标识码:A限制是通过事务对数据的处理时间来实现的,实时数据库管理系统的正确性不仅仅依赖于计算的逻辑结果,还同时依赖于逻辑结果的产生时间。"实时"意在用户可施加所要求的时间限制,并能通过系统的时间识别与处理机制来处理并保证或尽可能地保证满足与各种活动相关联的时间限制。

2实时数据库管理系统在智能建筑管理系统中的实现

在智能建筑管理系统的实现过程中,数据库管理系统为IBMS系统集成的关键。IBMS系统对实时数据的操作包括并发的多用户查询操作和实时数据的更新操作。一般来说,一万个监控点的值的刷新必须在0.5秒内完成才能满足工程上的需要,而实时数据到达客户端的时延一般也不能超过一秒。所以数据库的必须提供紧凑的数据结构和高效的空间利用率以及各种实时数据操作的高速执行。数据库管理系统主要包括实时数据分发服务器模块、实时数据库模块、历史数据库模块以及实时数据库与OPC客户端的通信模块。它为集成系统和下层子系统之间的数据通信提供高速通道,是智能建筑系统集成的核心。

数据库系统向上接受监控中心的控制指令,准确迅速地传递给各个子系统,达到控制设备运转的目的;向下数据库系统从现场控制网获取数据,对数据进行分析、处理,执行用户定义的子系统联动功能,保存历史数据。

(1)实时数据分发服务器

实时数据分发服务器是实时数据库与Web客户端的数据通信接口。其功能是为浏览器端的页面表现提供数据分发服务,接收并转发客户端(访问、操作人员)下发的控制命令和事件记录。这里可以借助基于Socket的实时数据分发服务器,提供客户端与服务器之间的可靠无差错的数据传输。数据分发服务器与客户端之间的数据交互方式采用面向连接的TCP/IP流式套接字,通信双方接收数据通过多次握手完成,保证了数据传输的有效性。数据由操作功能信息码和操作数据信息两部分组成。接收方首先读取操作功能信息码,再根据操作功能信息码确定下一步读取操作中的数据类型和数据大小,以完成读取操作数据信息,保证了数据传输的安全性。操作功能信息码的各字段值由交互双方的操作类型决定。操作类型划分为客户端注册、客户端注销、客户端用户登录、客户端用户退出、信息点同步、分发状态数据和接收控制指令。操作数据信息的数据包结构如图1所示:

图1数据包封装图例

实时数据分发服务器采用事件驱动机制传输数据,服务器把更新的数据主动提供给客户端,以保证数据传输的实时性。

(2)实时数据库

实时数据库是数据库系统的核心部分,在智能建筑集成系统中起着至关重要的作用。数据库系统的实时数据库基于对象方式进行设计,采用从上至下包容的方式:包含系统类对象、子系统类对象、设备类对象和点类对象。实时数据库类对象的层次结构如图2所示:

图2实时数据库类的层次结构图

目前,在Windows环境的组态软件中I/O接口驱动程序与系统实时数据库之间的数据交换一般都是利用动态数据交换协议(DDE)来实现的。由于DDE为基于消息的协议标准,数据传送过程需要处理多条消息,数据交换效率会受到影响。为了提高系统的实时性能,这里提出了利用动态链接库(DLL)和全局共享内存技术来建立实时数据库的设计思想,并通过给用户提供一套接口标准--实时数据库接口,来实现OPC Client及用户程序和实时数据库间的高速数据传递。实时数据库接口由一组API函数组成,包括创建点、删除点、设置点属性、读取点属性等功能,OPC Client和各个用户模块可以直接访问数据库,使系统具有全面的开放型和二次开发功能。

如图3,在实时数据库中,OPC Client和分发服务器之间通过内存映射实现全局共享内存。OPC Client通过内存映射获得实时数据库点对象的指针,完成写,读,修改配置参数以及对数据的操作,包括添加、删除对象。由于系统包含的点对象的数量庞大,需要使用hash表来记录点名与点对象的地址。本系统采用静态分配桶(hash链表长度)结合拉链的方法构造hash链表。拉链即将所有关键字为同义词的结点链接在同一个单链表中。hash表的结构如图4所示,纵向的为静态桶数据结构,横向的为hash node节点数据。

图4 hash链表以及hash node的结构

以上的结构建立了点名与点内存地址的一个映射,这样通过点名就可以查询到点的内存地址,即点对象指针。系统采用time33的hash算法,定义点名变量str,取hash初值为5381。核心代码为:

hash+=(hash<<5)+(*str++);

用掩码取结果的有效位,得到最终的hash值。

在多线程访问同一个数据对象的情况下必须要考虑冲突的解决问题。系统采用对数据加锁的方式,即访问数据必须先获得锁再进行操作。该算法构造一个和hash静态桶数组一样的一个BOOL型记录锁数组,访问时通过点名经过hash函数运算得到一个key及对应桶数组的位置。得到key后判断锁数组对应位置的BOOL型变量是否为0(没其他线程访问),如果为0则改为1(这个操作过程须为原子操作),如果为1(其他线程正在操作数据)则放弃剩余时间片,等到下个时间再判断是否锁已经开了,循环一段时间如果还没有开则放弃此次操作报警。经过测试,拉链长度16229静态桶,插入10000个随机字符串,最大拉链长度为7,一个记录锁最多锁住7个点,函数调用总时间不超过1.4秒。

(3)历史数据库

本系统使用SQL Server作为历史数据库的开发平台。历史数据库用于记录、保存和查询各种报警和操作事件、设备运行数据及故障情况。系统采用时间片结合缓冲区链表的方法将实时数据库里的数据写入历史数据库。具体实现办法是:缓冲区维护一个300条数据的链表,实时数据库不断将已更新的数据写入缓存区。一旦缓存区满或经过了一个时间片,系统就将缓存区里的数据追加到历史数据库里面。这样做的好处是能防止断电丢失缓存区里的数据且能提高数据的有效性和准确性。

(4)实时数据库与OPC的通信

OPC是OLE for Process Control的缩写。顾名思义,OPC是一种利用微软的COM/DCOM技术来达成自动化控制的协定。基于OPC技术的接口是一种有效的手段,能够实现各异构子系统的无缝连接,从而快捷有效地把已有建筑子系统融合起来,组成智能建筑系统集成。

OPC协议采用Client/Server体系。应用程序作为OPC接口中的Client方,硬件驱动程序作为OPC接口中的Server方。OPC Client通过读取配置文件,加载实时数据库DLL并且打开内存映射文件获得实时数据库对象的指针。

结束语

本文提出了基于子系统平等的智能建筑管理系统,并对该系统的数据库模块,包括实时数据库、实时数据分发服务器、历史数据库、实时数据库与OPC的通信几个子模块进行了深入的研究和设计。基于流式套接字的分发服务器保证了数据传输的安全性、有效性和及时性;动态链接库和全局共享内存技术的应用提高了系统的实时性;hash表在点名和点的内存地址之间建立了快速有效的映射关系;子系统平等方式集成的特点以及OPC技术的运用使得各个异构子系统之间的无缝集成成为可能,解决了系统集成的伸缩性问题。

参考文献

[1]陈立定,李文兢,胥布工,面向智能建筑集成管理系统的轻量级实时数据库设计[J]低压电器,2007.10.

上一篇:基于内容冗余的Web信息抽取 下一篇:家用无线路由器的设置与调试