



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PROCESS AUTOMATI ON INSTRUM ENTATI ON Vol . 27 No. 1 January 2006 DCS组态软件实时数据库系统的设计 Design of Real Ti m e Database System of DCS Configuration Softw are 韩玫瑰 1, 2 史明华 1 马 涛 2 董学仁 2 (天津工业大学机械电子学院 1 ,天津 300160;济南大学 2 ,济南 250022) 摘 要:实时数据库系统是DCS组态软件体系结构的关键部分。通过分析实时数据库的特点和DCS系统的使用要求,提出了采取传 统数据库系统、 文件系统和内存数据库系统兼用的多种存储介质来构建的实时数据库系统,并利用DLL来建立动态实时数据库,从而 实现代码和资源共享,进而实现任务间的快速通信。最后给出了实时数据库及相关数据模型的实现方法实例。 关键词:集散控制系统 实时数据库 组态软件 数据 中图分类号:TP31 文献标识码: A Abstract: Real time database is the critical component of architecture of DCS configuration software.Through analyzing the features of real time database and the requirement of operation of DCS, a real time database system is established with compatible multiple media for conven2 tional database system, file system and memory database system.In addition, by using DLL, the dynamic real time database is established to implement sharing of codes and resources, thus fast speed communication between tasks is realized. Practical examplesof implementingmethods for real time database and relevant data models are given. Keywords: Distributed control system Real time database Configuration software Data 0 引言 集散控制系统DCS又称为分散控制系统或分布 式控制系统,是一种集中管理和分散控制的系统。 DCS是融计算机技术、 控制技术和通信网络技术为一 体 1 ,在结构上将管理监控、 实时控制、 数据采集等功 能分散到不同的计算机中的高级控制系统。其软件部 分 工控组态软件则是实现分散控制和集中管理的 核心。实时数据库及其调度系统是组态软件的关键部 分,也是设计的难点部分。实时数据库系统处于工控 系统各功能模块数据交换的中心位置,在组态系统进 入运行环境时,工业现场的生产情况将实时地反映在 变量的数值中,操作者使用计算机发布的指令也要迅 速送达生产现场,所有这一切都是以实时数据库系统 为中介。同时实时数据库系统又是事务调度中心,数 据采集事务、 图形显示事务、 报警事务、 历史存盘事务 等都由实时数据库系统中的事务调度系统完成,从而 达到监控的实时性、 正确性和一致性 2 。 1 实时数据库与工控组态软件体系结构 实时数据库是用数据库技术管理的所有数据对象 的集合 3 。所谓的数据对象是指除了变量的数值特征 外,还将与数据相关的其它属性(如数据状态、 报警限 值等)以及对数据的操作方法(如存盘处理、 报警处理 等)封装在一起,作为一个整体,以对象的形式提供服 务。实时数据库提供管理、 刷新和查询数据对象等操 作。 实时数据库系统与普通数据库系统不同,其主要 目标是使尽量多的事务“ 在规定的时间要求内 ” 完成, 而不是公平地分配系统资源,因此它具有明显的时间 约束特点。对数据的时间约束是在数据库的普通一致 性要求外,又规定了时态一致性的要求。在实时系统 中,具有时间约束的数据主要来自于外部的动态数据, 如由传感器采集的现场数据和由这些数据导出的数 据。其次实时数据库的调度系统与传统数据库中的事 务调度是有差别的。它要求的是能使尽量多的事务在 其期限内完成,因此大多数的实时事务调度策略都是 围绕事务的优先级进行的。考虑到实时数据库中实时 性是第一位的要求,其存储管理策略应使实时数据库 在系统运行过程中,占用空间少,并常驻内存,从而保 证数据库读取速度快,存取灵活,易于各功能模块之间 的数据共享 3 。 组态软件体系结构是针对系统硬件体系来划分 的,不同的硬件部分对应不同的软件形式。集散控制 系统在硬件结构上大致分为工程师站、 操作员站和现 场控制站 4 。各部分相应的系统软件是 :工程师站组 态软件、 操作员站监控软件和现场控制站软件。其中 工程师站、 操作员站位于PC机上,而现场控制站由智 81 DCS组态软件实时数据库系统的设计 韩玫瑰,等 自动化仪表 第27卷第1期 2006年1月 能仪表或单板机组成属于下位机部分。由于通信也是 集散控制系统重要的部分,因此将系统网络通信的环 节设计为独立的软件模块 通信/接口软件。同时, 将实时数据库以一个单独的应用程序建立,以动态连 接库的形式存在,这样的设计方案有利于软件的维护 和升级,也增强了应用软件的可靠性。整个工控系统 组态软件的体系结构如图1所示。 图1 工控系统组态软件体系结构 Fig . 1 Architecture of industrial control system configuration soft ware 图中所示的4个模块软件都是独立的可执行程 序,在W indow环境下通过实时数据库系统交互通信。 通信/接口软件创建内存缓冲区以便与实时内存数据 库进行数据交换,不断地将现场数据写入实时内存数 据库中,操作员站监控软件的各任务模块和实时内存 数据库之间交换数据。由此可看出实时数据库系统是 联系组态软件系统上下层的桥梁和纽带,处于系统各 功能模块数据交换的中心位置,因此实时数据库系统 的设计是组态软件设计的关键部分。 2 实时数据库系统的设计思想 2. 1 实时数据库系统的存储策略 设计实时数据库系统时,需要处理时空矛盾,此时 应优先考虑效率的要求。如果不能在限定的时间内得 到数据,则为无效数据。工控数据库隶属于工控软件, 数据库的设计应以工控软件对不同数据所要求的响应 速度以及数据的大小为依据,来决定数据的存取策略。 为此,我们采取传统数据库系统、 文件系统和内存数据 库系统兼用,利用多种存储介质来构造系统的实时数 据库系统。 我们采用的存储策略是: 对于需要长期保存的非 共享数据(如:采样值的数模转换系数,控制组态值等) 采用文件管理系统直接存取; 对于数据量大而工控软 件无特殊要求的共享数据(如操作者记录等 ) , 将其存放 在外存数据库中;外存数据库采用Access数据库,由运 行系统通过数据库操作语言(DML)进行存取; 对于每 个采样周期都要更新的数据,例如A /D、D /A、Dl、DO的 值以及各种经常变化的实时数据,为保证最快的响应速 度,将这些值存放于内存中,即内存数据库中。 这样,通过使用外存数据库(Access数据库)、 文 管系统和内存数据库(实时数据库 ) , 既保证了数据的 共享性、 独立性、 安全性、 完整性,又节约了内存,保证 了系统的响应速度。 2. 2 利用DLL建立系统运行实时数据库系统 利用Windows的动态连接库和全局共享内存技术 来建立系统实时数据库的设计思想,并通过给用户提 供一套接口标准 实时数据库系统接口,来实现I/O 驱动程序与用户程序和实时数据库系统间的高速数据 传递。 动态连接库DLL是Windows中的一种特殊的程 序单元,被称为非任务化的可执行模块,它们由调用者 的任务所驱动。所谓动态连接是与静态连接相比较而 言的,静态连接是由连接程序将静态连接库中的函数 或资源在连接时拷贝给每个运行程序,而动态连接仅 将动态连接库在内存中(DLL)装入一次,因此在多任 务环境下使用DLL可节约内存,提高程序的执行效 率。W indows中动态连接库的单实例运行特性使得它 成为存放共享代码及资源的理想场所。通过动态连接 库中的函数,所有使用动态连接库的应用程序可以存 取动态连接库所拥有的全局数据,从而实现任务间的 快速通信。 实时数据库接口由一组自定义函数组成,利用这 些接口函数, I/O驱动程序和各个用户程序模块可以 直接访问实时数据库,而无须绕道运行程序。这样系 统不但具有全面的开放型和二次开发功能,而且其实 时性大大高于DDE方式。利用DLL来建立动态实时 数据库系统时,用户可以建立单独的I/O接口模块,利 用动态连接库所提供的接口函数直接实现对实时数据 库系统的操作。 2. 3 实时数据库系统的分析与设计 实时数据库系统包括实时数据库以及事务调度系 统。 2. 3. 1 实时数据库系统的功能分析与数据库设计 实时数据库系统应具有以下功能特点: 现场数据采集:实时数据库提供了与典型数据 源的接口,读写通信设备寄存器的现场值,送到开辟的 内存缓冲区; 91 DCS组态软件实时数据库系统的设计 韩玫瑰,等 PROCESS AUTOMATI ON INSTRUM ENTATI ON Vol . 27 No. 1 January 2006 预处理机制:可以直接在实时数据库中对原始 数据进行处理,如数据转化; 滚动存储机制:实时数据库的各数据对象以链 表形式存放在内存中,故数据库的容量相对容易固定, 当新的数据产生时,自动更新数据对象的现场值属性; 自动更新机制:当实时数据库中的数据对象现 场值属性改变时,自动启动线程,更新显示画面的数据 显示,如需存盘,存入Access数据库中,实现实时监 控; 触发和定时机制:提供丰富的触发和定时机 制,供各类数据处理、 先进控制和优化算法使用,以保 证数据的实时性、 有效性、 一致性; 补偿机制:当不能保证连续运行时(如系统备 份 ) , 需要提供相应的补偿机制,以保证数据不会丢失; 数据检索机制:可以以类似于关系型数据库的 方式检索实时数据库中的数据对象,取得所需的数据 对象属性或操作; 动态汇总机制:实时数据库提供了报警状态、 操作事件等信息的动态汇总功能。 实时数据库的设计是采用面向对象编程(OOP)的 设计技术,将实时数据库定义为类的形式。实时数据 库的功能由类的方法和专门的管理程序实现,管理程 序负责实时数据库的生成、 数据库的查询、 数据库的实 时更新以及其它任务对实时数据库的实时请求、 报警 响应等操作 5 。实时数据库管理程序的所有功能是封 装在一个专用实时数据库管理类中,通过对类的成员 函数调用实现对数据库的所有操作管理。 根据系统要求实时数据库类定义如下功能模块: 实时数据库初始化模块:实时数据库是以数据 链表的方式存放在内存中,系统运行之初是按照用户 组态好的数据库动态地生成实时数据库类,并将组态 数据库域的内容赋给相应实时数据库类对象的属性, 完成初始化工作。同时建立Access历史数据库和各 数据对象对应的对象名索引,以提高访问数据对象的 访问速度; 基本操作模块:提供数据对象的基本操作,如 对数据对象的查找操作,通过数据对象名或I D取得数 据对象的其他属性,或通过名称取得数据对象的I D等 等; 读写数据操作模块:实时数据库中的每一个数 据对象都对应于现场的某一种实时量,并与现场状态 保持一致。根据实时数据库类对象的属性调用其相应 方法,实现数据对象的读写数据操作,将存放在数据缓 冲区的现场值写入实时数据库的数据对象的现场值属 性中去,读取数据对象中的当前值; 图形显示链接模块:主要完成实时趋势、 动态 显示、 数据链接功能,使图形显示的变化与数据库对象 值的变化相一致; 窗口操作模块:读取用户窗口的名称,对指定 的用户窗口进行操作,读取用户窗口的当前状态; 存盘操作模块:照实时数 据库类 对象的 RecordProperty属性决定记录方式,并触发相应方法向 Access历史数据库中存储需要存盘的数据; 计算模块:完成实时数据库的计算功能,并触 发相应事件; 报警操作模块:它读取数据对象的报警限值, 调用实时数据库类对象报警判断方法函数,并触发相 应事件处理,如触发报警窗口控件显示、 产生报警记 录、 输出相应控制等; 通信设备读写操作模块:管理通信设备,读取 设备的当前工作状态,对指定的设备进行操作; 事故处理模块:进行事故判断、 事故报警、 防止 事故扩大对有关设备的操作,保存事故前操作者记录 及现场参数值。 2. 3. 2 实时数据库的事务调度系统 控制软件系统投入运行后,同时要进行与DCS数 据采集、 数据处理、 图形显示刷新、 历史数据存盘、 紧急 事件报警或越位报警等事务活动,所有的这些事务都 要并行处理,如等待时间太长,则无法满足实时性的要 求。这样就要求我们实现一种并行编程。在只有一个 CPU的机器上,也就是要将该CPU时间按照一定的优 先准则分配给各个事件,定期处理某一事件而不会在 某一事件上处理时间过长,在32位W indows98或W in2 dows NT410下,用多线程的编程技术来实现这种并行 编程,实时调度各事务,如图2所示。 图2 实时数据库系统调度 Fig . 2 Dispatch of real- time database system 3 实时数据库的实现 3. 1 数据对象模型的建立 实时数据模型由组对象及其结构、 组操作、 对象与 02 DCS组态软件实时数据库系统的设计 韩玫瑰,等 自动化仪表 第27卷第1期 2006年1月 操作的约束这3要素组成。实时数据模型的约束则更 突出地包括时间限制。 工业控制中的数据包括现场采集的数据、 系统数 据、 计算数据、 属性数据、 控制和管理数据等。 现场数据反映生产过程运行情况,既有模拟量、 开关量,也有字符型量;系统数据描述系统工况,组 态软件利用系统数据进行判断,更改系统的运行状 态,以维护系统正常运行;计算数据则是在利用采集 数据、 系统数据的基础上,经处理后提到的中间数据 (由其他参数间接推出 ) ; 控制和管理数据涉及控制 测量组态以及从工控软件输出到输出装置上的数据 等。 由此将数据模型归结为:模拟量、 开关量、 字符串 型三种类型。 现以实际开关量为例,以C +语言作为实时数据 库的开发语言,介绍其数据类的定义实现。 ClassDigital2Node: public Cobject public: Declare2Serial(Digital2Node) ; Digital2Node() ; public: Digital2Node() ; public: int index: / /记录号 int nodeid;/ /节点号 int deviceid;/ /所属设备号 int nodetype;/ /节点数据类型0, 1, 2, 3, 4, 5 Cstring nodename;/ /点名 Cstring nodescript;/ /点描述 Cstring ipaddr;/ /点地址链接描述符 int offset;/ /偏移地址 int physicaltype;/ /硬件类型 bool Value;/ /点值(裸数据) bool Last Value;/ /上次点值(裸数据) bool initialvalue;/ /初始值 bool issaved;/ /是否存盘 bool isalarm;/ /是否报警 bool alarmvalue;/ /报警时的值 Cstring project2tag;/ /工程单位描述 Cstring alarminfo;/ /报警信息 float rate;/ /变化率限制 float rateinterval;/ /变化率限制周期 int interval;/ /扫描周期 Dword prevtime;/ /上次采集时间ms struct2systemtime realtime; / /上次采集实际时间 int realtime2type;/ /固实时,软实时 int pri;/ /优先级 int op2mode;/ /只读,只写,读写 floatW I;/ /优先级加权因子 struct History Buffer pbuffer; / /历史缓冲区 Public: virtual bool readlogic( link, int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年法学概论考试科目简介与试题及答案
- 2025届河南省新乡、开封市名校联考八下数学期末预测试题含解析
- 行政管理专业教师的教学策略试题及答案
- 法学概论复习指南试题及答案
- 如何制定提升竞争力的策略试题及答案
- 财务报告的法律及道德责任试题及答案
- 物资分类管理方案计划
- 江苏省泰州市相城区黄桥中学2025届数学八下期末学业水平测试模拟试题含解析
- 辽宁省营口市大石桥市石佛中学2025届八年级数学第二学期期末经典试题含解析
- 防范火灾隐患的保安工作措施计划
- 招投标相关知识培训课件
- 中国血脂管理指南2024版解读课件
- 2025届浙江省稽阳联谊学校高三下学期4月二模政治试题 含解析
- 2025年北京市东城区九年级初三一模英语试卷(含答案)
- 2025年北京市东城区高三二模数学试卷(含答案)
- 首医口腔面试真题及答案
- 门诊病历基本书写规范
- 住宅区和住宅建筑内光纤到户通信设施工程设计规范
- 景区卫生培训课件
- 七年级下册《山地回忆》课件
- 《房颤心律失常的护理》课件
评论
0/150
提交评论