实时数据库介绍s

上传人:新** 文档编号:506245611 上传时间:2023-10-07 格式:DOCX 页数:5 大小:16.02KB
返回 下载 相关 举报
实时数据库介绍s_第1页
第1页 / 共5页
实时数据库介绍s_第2页
第2页 / 共5页
实时数据库介绍s_第3页
第3页 / 共5页
实时数据库介绍s_第4页
第4页 / 共5页
实时数据库介绍s_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实时数据库介绍s》由会员分享,可在线阅读,更多相关《实时数据库介绍s(5页珍藏版)》请在金锄头文库上搜索。

1、前言近年来,DCS (集散控制系统)以其强大的控制功能、可靠的安全性能和良 好的可移植性在国内外工控领域获得广泛的应 用, DCS 的日益普及为实现先进 控制、实时优化等新技术提供了强有力的硬件支持和保障。先进控制除了具有改 善控制性能、提高经济效益等主要功能外,也是深度开发和利用DCS资源、提 高企业自动化和管理水平的重要途径。先进控制软件的设计一般分为几个模块: 模型辨识器、多变量预估控制器、鲁棒PID控制器(含各种中间控制器)、实 时数据库、工艺计算包等,其中实时数据库模块是其他模块的纽带和桥梁。所以, 实时数据库模块设计的好坏直接影响到先进控制软件设 计的成败。实时数据库 是先进控制软

2、件系统的重要组成部分,也是设计的难点之一。实时数据库是先进 控制软件系统的数据处理中心。在先进控制系统投用运行环境 时,工业现场的 生产状况将实时地反映在变量的数值中,操作者在计算机前发布的指令也要迅速 送达生产现场,所有这一切都是以实时数据库为中介环节。同时,实 时数据库 又是事务调度中心,数据采集事务、图形显示事务、报警事务、历史数据存盘事 务等等都由实时数据库统一调配,从而达到控制的实时性。1实时数据库概述在引入实时数据库概念之前,先介绍一下数据对象。在先进控制软件设计中 定义的数据不同于传统意义的数据或变量, 它不只包含了变量的数值特征,还 将与数据相关的其它属性(如数据的状态、报警限

3、值等)以及对数据的操作方法 (如存盘处理、报警处理等)封装在一起,作为一 个整体,以对象的形式提供 服务。这种把数值、属性和方法定义成一体的数据称为数据对象。在设计中,用 数据对象来表述系统中的实时数据,用对象变量代替传统 意义的值变量。用数 据库技术管理的所有数据对象的集合称为实时数据库,实时数据库提供管理、刷 新、查询数据对象等操作。实时数据库与普通商用数据库不同,实时数据库的主要目标是使尽量多的事 务在规定的时间要求内完成,而不是公平地分配系统以使所有的事务都得到执 行。它有以下几个特点:1)时间约束实时数据库系统的主要特征是在数据对象和事务上施加了时间 约束。对数据的时间约束,就是在数

4、据库的普通一致性要求以外,又规定 了时 态一致性要求。在实时系统中,具有时间约束的数据主要来自于外部的动态数据, 如由传感器采集的现场数据,和由这些数据导出的数据。因此,可将数据的时 间 约束分为两类,即数据的绝对一致性和数据的相对一致性。数据的绝对一致性是 指实时数据库中的数据应与外部数据(又称为环境数据)相一致,即要求数据库 中 的数据能及时地反映外部环境的状态。例如,在化工过程控制系统中,要求 数据库中记录的塔的温度、压力等信息,与塔的实际的温度、压力等参数保持一 致。这种 一致性的破坏有时可能会导致灾难性的后果。在实时系统中,常常需 要从一组数据项导出另外的数据,例如,根据系统的电流、

5、电压导出系统的功率。 此时往往要求 用来导出新数据的一组数据在时间上应尽量接近,这就形成了实 时数据库系统中数据的相对一致性概念。2 )事务调度传统数据库系统中,事务调度的目标是提高系统对事务的吞吐率,但实时数据库系统则要求能使尽量多的事务在其期限内完成。因此,实时事务的调度与传 统数据库系统中的事务调度是有差别的。大多数的实时事务调度策略都是围绕事 务的优先级进行的。3 )实时数据库的实时数据存储管理 实时数据库主要承担系统所有实时数据的存储和管理,为相关的功能提供快 速、正确的实时信 息,因此,对实时数据库来说,其实时性是第一位的,考虑 到这一点,实时数据库在系统运行过程中,应占用空间小,

6、并常驻内存,以保证 数据库读取速度快,存取 灵活,易于各功能模块之间的数据共享。实时数据库的数据共享采用内存文件映射来实现。 对于那些实时性要求不 高的非共享数据和共享数据,如采样值的转换系数等可以放在外存储空间。因此, 在实时数据库设计时,要妥善处理时间和存储空间之间的矛盾,以保证先进控制 系统的实时性。2 实时数据库的分析与设计首先从功能角度分析实时数据库的设计。1 )实时数据库系统的功能分析: 现场数据采集:实时数据库提供了与典型数据源的接口,读写通讯设备寄存 器的现场值,送到开辟的内存缓冲区。预处理机制:可以直接在实时数据库中对原始数据进行处理,如数据转化。 滚动存储机制:实时数据库的

7、各数据对象以链表形式存放在内存中,故数据库的 容量相对容固定,当新的数据产生时,自动更新数据对象的现场值属性。自动更新机制:当实时数据库中的数据对象现场值属性改变时,自动启动线 程,更新显示画面的数据显示,如需存盘,存入 Access 数据库中,实现实时监控。触发和定时机制:提供丰富的触发和定时机制,供各类数据处理、先进控制 和优化算法使用,以保证数据的实时性、有效性、一致性。补偿机制:当不能保 证连续运行时(如系统备份),需要提供相应的补偿机制,以保证数据不会丢失。数据检索机制:可以以类似于关系型数据库的方式检索实时数据库中的数据 对象,取得所需的数据对象属性或操作。态汇总机制:实时数据库提

8、供了报警状态、操作事件等信息的动态汇总功能。2 )实时数据库事务调度分析在先进控制软件系统投入运行后,同时要进行与 DCS 数据采集、数据处理、 图形显示刷新、历史数据存盘、紧急事件报警或越位报警等等,所 有的这些事 务,都要并行处理,如等待时间太长,无法满足实时性的要求。这样就要求我们 实现一种并行编程,在只有一个 CPU 的机器上,也就是要将 该 CPU 时间按照 一定的优先准则分配给各个事件,定期处理某一事件而不会在某一事件处理过 长,在 32 位 Windows98 或 WindowsNT4.0 下,用多线程的编程技术来实现这 种并行编程,实时调度各事务。3 )实时数据库的设计以面向对

9、象编程(OOP)的设计技术,将实时数据库定义为类的形式。如 图 2 所示,将实时数据库类定义的与各图形显示模块、历史数据存盘模块等相 联系的接口函数划分为几个模块加以说明:实时数据库初始化模块:该模块主要是根据先进控制所需要的数据创建各数 据对象,以链表作为存储方式,并建立各数据对象对应的对象名索引,以提高访 问数据对象的访问速度,同时建立 Access 历史数据库。基本操作模块:提供数据对象的基本操作,如通过数据对象名或 ID 取得数 据对象的其他属性或通过名称取得数据对象的 ID 等等。读写数据操作模块:提供数据对象的读写数据操作,将存放在数据缓冲区的 现场值写入实时数据库的数据对象的现场

10、值属性中去,读取数据对象中的当前 值。3 通讯设备读写操作模块:管理通讯设备,读取设备的当前工作状态,对指 定的设备进行操作。窗口操作模块:读取用户窗口的名称,对指定的用户窗口进行操作,读取用 户窗口的当前状态。报警操作模块:存储报警信息,读取数据对象的报警限值。存盘操作模块:在 Access 数据库中存储需要存盘的数据。3实时数据库的实现 实时数据库中的数据对象类的定义:数据对象分为模拟量、开关量、字符串 三个类型,下面重点介绍模拟量类的定义,并给出部分VC+代码,其他类的定 义与此类似,在此不做介绍。/模拟量的类定义:class AnalogType : public CObjectpub

11、lic:AnalogType() ;virtual AnalogType ();private:/基本属性操作参数CString ObjectName; /对象名float ObjectInivalue; /初始值float ObjectMinvalue; /最小值float ObjectMaxvalue; /最大值 CString ObjectUnit; /对象的工程单位 int ObjectPointN; /小数位数 /存盘操作参数BOOL IsSave; /是否存盘 int SaveTime; /存盘时间 /报警操作参数BOOL IsAlarm /是否报警 int AlarmPriori

12、ty; /优先级 float LowLowvalue; /低低报警 float Lowvalue; /低报警 float HeighHeighvalue; /高高报警 float Heighvalue; /高报警 float LowDevvalue; /低偏差报警值 float HeighDevvalue; /高偏差报警值 int FieldvalueInt; /现场的实时整型值 float FieldvalueFloat; /现场的实时模拟值 /定义数据操作 public:/定义属性的输入接口提供初始化操作void SetObjectName (CString name)ObjectName

13、二name; ObjectInivalue=inivalue; ObjectMinvalue=minvalue; ObjectMaxvalue=maxvalue; void SetObjectInivalue(float inivalue) void SetObjectMinvalue(float minvalue) void SetObjectMaxvalue(float maxvalue)void SetObjectUnit (CString unit)ObjectUnit二unit;/定义输出接口,提供给基本数据操作和存盘、报警操作CString GetObjectName() floa

14、t GetObjectInivalue() float GetObjectMinvalue() float GetObjectMaxvalue() CString GetObjectUnit()return ObjectName; return ObjectInivalue; return ObjectMinvalue; return ObjectMaxvalue; return ObjectUnit; /现场的实时值操作void SetFieldvalue(float valuefield)Fieldvalue=valuefield; float GetFieldvalue() return

15、 Fieldvalue; ;实时数据库类的设计,用VC+声明的头文件如下: class RealDB : public CObjectprivate :AnalogType TemAnalog;SwitchType TemSwitch;POSITION temposition;int DataNum; private:/创建 Access 历史数据库和表BOOL CreateNewTable();BOOL CreateHistoryAlarmDB();BOOL CreateHistoryObjectTable(); public:CDaoTableDef m_newtable; CDatabase m_dataobject;CObList m_listdata; /数据对象的链表CString IndexTag200; /定义最大数据对象个数 200 int AnalogSwitchSign; /定义模拟和开关型的分割位置/操作 public: RealDB();virtual RealDB ();BOOL CreateDataObject() ; /创建数据对象 /数据对象的基本操作BOOL GetProFromName(CString Name, int Type , float InitV ,CSt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号