当前位置:
文档之家› 组态软件实时数据库的设计与实现
组态软件实时数据库的设计与实现
系统独立运行, 即在不启动开发系统的情况下运行系统可以取 得工程组态参数, 这种情况下共享内存存在一定的局限
性。所以, 通常采用文件管理系统以磁盘文件的形式保存组态 参 数 。鉴 于 XML 具 有 极 强的 描 述 能 力 , 以 XML 作 为 组 态 参 数 的描述工具, 以 MSXML DOM 为基础, 通 过 DOM 提供 的 一 系列 接口函数, 取得节点中保存的数据, 完成对工程组态文件中的 组态参数的解析, 使用户可以很方便地描述工程的组态信息和 交换数据。
int iIndex; //实时数据对象的序号 CString sName; //名称 CString sDesciption, //描述 int varType; //数 据 类 型:整 型 、长 整 型 、浮 点 型 、双 精 度 型 以及字符串型 int varPopedom; //访问权限:只读、只写或者读写 int varStorage; //存储类型:保存或不保存 int varSafety; //安全级别:系统管理员级、普通操作员级 RTData vaiInit; //初始值 RTData varMax; //原始最大值 RTData varMin; //原始最小值 SYSTEMTIME curTime; //本次采集时间 RTData curValue; //本次运行值 SYSTEMTIME preTime; //上次采集时间 RTData preValue; //上次运行值 unsigned int uCollectTime; //采样周期,以毫秒为单位 bool isSave; //是否存盘 bool isAlarm; //是否报警 实时数据使用联合存储, 从而可以满足不同类型的数据对 象的要求, 联合的定义如下: typedef union tagRealTimeData { int iValue; long lValue; float fValue; double dValue; CString sValue; }RTData; 实时数据库变量以红黑树的形式存储, 并保存在动态链接 库的全局内存中, 该块内存是由动态链接库启动时按照数据库 组态信息分配的, 分配时使用的是 Windows 的全局内存分配函数: HGLOBAL GlobalAlloc ( UNIT uFlags, DWORD dwBytes ); 把 uFlags 设为 GMEM_SHARE, 这可以 保 证实 时 数 据库 的 共享性及最快的响应速度, 而且规模不受限制。 3.2 利用 DLL 建立系统运行实时数据库系统 动 态 连 接 库 (DLL)是 Windows 中 的 一 种 特 殊 的 程 序 单 元 , 被称为非任务化的可执行模块, 它是由调用者的任务驱动的。 Windows 中动态连接库的单实例运行特性使得它成为存放共享 代码及资源的理想场所。通过动态连接库中的函数, 所有使用 动态连接库的应用程序可以存放动态连接库所拥有的全局数
新 行读操作, 将现场设备值写入内存缓冲区。
(5) 读写数据模块:根 据实 时 数 据库 类 对 象的 属 性 调用 相 应 的读、写方法, 实现对数据对象的读写操作。将存储在数据缓冲 区的现场值写入实时数据库的数据对象的对应属性值, 或者读 取数据对象中的当前值。
(6) 屏幕显示模块:主 要完 成 动 态显 示 、实 时趋 势 功 能, 使 图 形 、实 时 数 据 报 表 、实 时 曲 线 图 的 显 示 与 现 场 数 据 的 变 化 保 持 一致。
度。由于本文的主题是组态软件实时数据库, 所以这里我们不
对红黑树结构的复杂度进行详细的分析。
2.2 实时数据库的功能模块
我 们 采 用 面 向 对 象 编 程 (OOP)技 术 , 将 实 时 数 据 库 定 义 为
类 的 形 式 。各 功 能 模 块 通 过 对 实 时 数 据 库 的 接 口 函 数 调 用 实 现
3 实时数据库系统的实现
3.1 实时数据模型的建立 实时数据库模型中包含三方面的内容, 一个是实时数据对 象本身, 一个是对实时数据对象的操作, 还有一个是对实时数 据对象的完整性和一致性的约束。 工 业 控 制 中 的 数 据 包 括 组 态 参 数 、实 时 数 据 、中 间 数 据 和 控制数据。组态参数作为联系开发系统和运行系统的纽带, 描 述 工 程 信 息 如 设 备 、变 量 、图 形 等 等 的 信 息 , 以 供 运 行 系 统 加 载、识别, 生成现场监控画面的数据。实时数据反映工业现场设 备的运行情况, 可以分为模拟量、数字量和逻辑量三种。中间数 据则 是 对组 态 参 数、实 时 数 据进 行 加 工得 到 的 数据 。控 制 数 据
2 实时数据库系统的设计
2.1 实时数据库的存储策略 设计实时数据库系统时, 需要处理时空矛盾, 此时应优先 考虑效率的要求。实时数据库是组态软件的核心部分, 应该根 据组态软件对不同类型的数据所要求的响应速度以及数据量 的大小来制定数据的存储策略。为此, 我们采用传统的数据库 系 统 、文 件 管 理 系 统 和 内 存 缓 冲 区 三 者 相 结 合 的 方 法 , 利 用 多 种存储介质来构造组态软件的实时数据库。 (1) 采用 Microsoft SQL Server 作为外存数据库, 存取现场设 备的历史数据和数据量大 而组态软件无特殊要求的共享数据等, 通过实时数据库提 供的接口函数对它进行操作。 (2) 采用 文 件管 理 系 统 直 接 存 取 需 要 长 期 保 存 的 非 共 享 型 数据, 主要是组态软件的组态参数。 组态软件通常由开发系统和运行系统两部分组成, 开发系 统 与 运 行 系 统 一 般 以 两 个 独 立 的 可 执 行 文 件 的 形 式 存 在 。组 态 参数 是 由开 发 系 统生 成 的 , 用于 描 述 诸如 设 备 、变量 、图 形 等信 息 的 , 供运 行 系 统加 载 、识 别, 生 成 现 场监 控 画 面的 数 据 。组态
技 询、更ห้องสมุดไป่ตู้和删除等等。
(3) 通 信 模 块:通 信 模 块 管 理 现 场 设 备 , 读 取 其 当 前 工 作 状
术 态;并根据用户命令操作现场设备。
(4) 数据采集模块:实 时数 据 库 中的 每 个 数据 对 象 都对 应 于
创 工业现场的某种实时量,
并 与 现 场 状 态 保 持 一 致 。数 据 采 集 模 块 负 责 对 指 定 设 备 进
则涉及用户对组态软件的操作, 用于控制和监测组态软件运 行 。对 于对 实 时 性要 求 较 高、反 映 工 业现 场 设 备的 运 行 情 况 的 各种实时数据, 经过抽象归纳, 我们定义了一个统一的实时数 据模 型 , 通 过利 用 类 的继 承 、派 生、重 载 等 特性 可 以 提高 程 序 质 量, 实现实时数据库各功能模块间的高内聚、低耦合。它的基本 属性如下:
张齐:副教授 基金项目:科技部科技基础平台项目(2003DIB4J 137)
参数是开发系统和运行系统之间的联系纽带。
创
组 态 参 数 可 以 通 过 多 种 形 式 进 行 传 递 , 共 享 内 存 、磁 盘 文
新 件 等 都 可 以 用 于 组 态 参 数 传 递 。但 运 行 系 统 往 往 需 要 脱 离 开 发
(3) 采用 内 存缓 冲 区 存 取 每 个 采 样 周 期 都 要 更 新 的 数 据 如 A/D、D/A、DI、DO 值, 以及各种经常变化的实时数据。
为了 提 高实 时 数 据库 的 查 询、插 入 、删 除和 更 新 的 效 率 , 采
用 平 衡 二 叉 树 的 数 据 结 构 来 组 织 内 存 实 时 数 据 。这 里 我 们 选 择
(华南理工大学计算机系统结构研究所)张 齐 周 博 慧
ZH AN G Q I ZH O U BO H U I
摘要:本文 结 合 作 者 从 事 组 态 软 件 设 计 开 发 的 实 际 经 验, 介 绍 了 基 于 面 向 对 象 技 术 的 组 态 软 件 实 时 数 据 库 系 统 的 设 计 思 想
(7) 数据存 储模 块:将 需要 保 存 的数 据 存 入 SQL Server 数 据 库中。
(8) 报 警 模 块:读 取 数 据 对 象 的 报 警 上 下 限 , 以 及 存 储 报 警 信息。
(9) 事故 处 理模 块:进 行事 故 判 断 、事 故 报 警(包 括 屏 幕 显 示 报 警和 声 音 报 警)、防 止 事 故 扩 大 对 有 关 设 备 的 操 作 , 保 存 事 故 前的操作记录及现场参数值。
您的论文得到两院院士关注 文章编号:1008- 0570(2007)02- 3- 0161- 03
数据库 数据仓库 数据挖掘
组态软件实时数据库的设计与实现
De s ig n a n d Im p le m e n ta tio n o f RTDB o f Co n fig u ra tio n S ys te m b a s e d o n Ob je ct - Orie n te d Te ch n o lo g y
和实现方法, 提出了利用动态连接库来建立实时数据库系统的方法, 给出了数据模型和接口机制的实现方法, 利用这种方
法建立的实时数据库系统其有全面的开放性和很强的通用性。
关键词:实时数据库;功能模块;数据模型;动态连接库;接口机制
中 图 分 类 号 : T P 311
文献标识码:A
Abstr act:With the authors’experience in design and implementation of configuration software , RTDB of configuration software’s de- sign and implementation based on Object - Oriented technology are interpreted . This paper brings forward the method to construct RTDBS using Dynamic Linkage Library , gives the way to realize real- time data modules and interface mechanism . RTDBS estab- lished by this method has comprehensive openness and strong interoperability . Key Wor ds:r eal- time database,functional modules,Data models,Dynamic Linkage Libr ar y,inter face mechanism