1、应用技术研究作者简介:曾庆磊,男,电气工程系工程师 1图 1 分布式监控系统网络结构基于组件的分布式实时监控平台研究与设计曾 庆 磊文章摘要 本文提出了一种基于 OPC 接口的组件化分布式监控系统平台,探讨了系统各部分的接口实现方式。该平台由一组自适应、自容错 、接口开放的 软件组件构成,每个组件封装为具有独立功能、时间认知的智能软件主体,各个组件之间通过优先级 消息队列进行快速、高效的通信,从而在整体上提供 实时的数据采集、存储与访问功能和 Web 服务。最后,本文探 讨了客户端浏览器采用数据发布/ 订阅方式,使用 SOAP 消息存取实时和历史数据的过程。关 键 词 分布式监控系统 OPC
2、XML1 引言现实世界中的许多应用系统包含了对大量的现场数据的实时存取和管理,如工厂生产过程监控、电网调度、楼宇自动化等等,系统必须能够实时地从被控环境中获取数据,以便随时了解控制现场的最新状态,并结合过去获取的数据进行处理以及时地做出反应。其中处理的数据往往具有短暂有效性,称为时态数据,而过期的时态数据通常称为历史数据。维护时态数据的有效性是时态数据管理的重要内容,而数据的时态一致性需求也会导致事务的时间性限制 1。实时数据库(Real-time database)就是其数据和事务都有显示时间限制的数据库,系统的正确性不仅依赖于事务的结果,而且依赖于该结果所产生的时间。RTDB 中的体系结构
3、、事务调度、并发控制、资源管理等技术问题已经得到了广泛研究 2。 OPC(OLE for Process Control)是由自动化领域中主要厂商协作制定的软件接口标准。OPC技术提供了不同系统间通信的标准接口,实现了异构环境中控制网络数据的统一集成 3。将 OPC技术与 RTDB 结合起来就形成了一个统一、开放的实时数据管理平台。本文所提出的实时数据库监控系统采用组件化设计,由一组自适应、自容错、接口开放的软件组件构成,每个组件封装为具有独立功能、时间认知的智能软件主体,各个组件之间通过优先级消息队列进行高效通信与实时交互,从而在整体上提供实时的数据采集、存储与存取功能。通过 OPC 标准接
4、口存取数据,具有灵活可靠的组成方式和可靠的通信结构。系统采用基于发布/订阅的数据前推方式,将实时数据发送到客户端 Web浏览器中,实现了 Internet/Intranet 网络实时监控平台。这种设计结构已经在我们开发的实时数据库系统中得到了实现。目前该系统已经通过多家企业的实践检验,并取得了良好的监控效果。2 分布式监控系统结构2.1 总体结构设计OPC DAServ 设 备 1设 备 n设 备 Field Bus设备层监 控 站 OPC HDAServOPCXML-DA控制层Web浏 览 器 Web浏 览 器 信息层10M/0M/10M以 太 网防 火 墙IntertWeb浏 览 器Web
5、浏 览 器DCS设 备Intrat数 据 网Intraet控 制 网Web浏 览 器移 动 用 户EtherntDEServ设 备MISOPC AEServRTDB WebSrv监 控 站整 个监控系统分为设备层、控制层和信息层三层。设备层由 RTU、PLC、DCS 等控制设备组成,它们负责采集工控现场的数据。控制层分为数据采集端、数据库和现场监控站三部分,其中数据采集端可以,读取设备层的现场数据;数据库分为实时数据库、OPC 历史数据服务器(HDA) 4和 OPC 报警服务器(AE)应用技术研究25分别向客户端提供实时数据、历史数据和报警及事件信息。控制层中的数据可以通过 Web 服务器和
6、OPC XML-DA 服务器,发布到数据层中,从而实现生产数据与管理数据的统一。监控站作为 OPC客户端,访问各种服务器,实时监控设备数据和现场画面。Web 服务器对外发布嵌有 ActiveX 的监控画面和数据报表页面,并能为用户提供其他 Web 服务。Web 浏览器作为系统外监控端,可以使用浏览器(如 IE) ,通过下载 XML 格式的监控画面文件和应用配置文件,设置 ActiveX 的参数,通过 SOAP 消息与 OPC XML-DA 服务器通信,远程监测现场情况。监控端的位置可以突破传统网络架构的限制,可以位于现场,也可以位于中央控制室,甚至可以通过防火墙位于 Intranet 以外的
7、Internet 中。以上多种服务器构成了企业信息数据平台,每种服务器和客户端可根据系统情况设置为一台或多台。该系统对外提供一套完整的接口、属性和方法的标准,支持分布式应用和异构环境下应用程序之间软件的无缝集成和互操作性,它使设备层、监控层以及信息层之间的协同工作成为了可能,并且提供了工业自动化应用的统一数据传输平台,实现企业控制网和数据网的一体化,使异构系统之间的数据交换更为方便。通过以上讨论,我们可以看出,与传统 C/S监控系统相比,这种系统结构的设计具有分布式、模块化、配置灵活的特点。2.2 实时数据服务器实 时 数 据 服 务 器 (RTDB Server)提 供 两 个 服 务 端口
8、 : 数 据 采 集 服 务 端 口 与 数 据 访 问 服 务 端 口 , 它 们分 别 负 责 接 收 实 时 数 据 更 新 请 求 与 用 户 查 询 请 求 。设备通信线程负责监视采样服务端口,处理来自设备 IO 站的数据更新请求,并把请求按照EDF 策略组织到数据更新队列,由数据更新线程采用非抢占方式依次处理。请求接收线程负责接收来自用户的数据查询请求,这些请求由用户指定截止期,按照 EDF 策略组织到查询请求队列等待查询处理线程进行处理。由于不同的查询请求耗费的 CPU 时间可能差别很大,一个并不紧迫的查询可能阻塞一个紧迫的查询而导致该查询错失截止期,因此必须支持查询请求的抢占执
9、行。为了无效的事务重启造成的资源浪费,系统根据下面的策略决定是否重启:设查询事务 Tq 已经执行的时间为 Eq,截止期为 D,当前时间为 t,则当 DtE q 则表明事务重启后也不会再有足够的时间完成,因此返回查询失败,否则中断执行后重新放入查询请求队列等待处理。这种方法我们称为剩余时间准许算法。实时数据服务器采用主内存数据库技术,实时数据管理器负责内存中实时数据的管理与一致性维护;历史数据管理器负责历史数据的压缩处理与查询,并且管理历史数据缓冲区,而历史数据存储线程定期地把需要存储的历史数据由内存中的缓冲池写入磁盘上的文件队列中。实时数据管理器与历史数据管理器提供一组接口函数给数据更新线程与
10、查询处理线程,数据更新事务与数据查询事务的处理都是对这些函数调用的组合。为了支持主动数据推送,系统引入了数据订阅-发布 (Pub/Sub)机制。根据用户端应用程序的数据需求,系统中所有的数据对象被组织到不同的组,每组指定一个多点播送地址,所有关心这些数据的用户可以通过监听指定的端口来获取实时数据。这些信息保存到系统内的一个数据订阅表中,数据更新线程在完成每个更新事务后,将触发数据发布事务,由数据发布线程根据数据订阅表把这些数据采用简单对象访问协议(SOAP)播送给感兴趣的用户。 2.3 通信结构设计应用技术研究3图 2 分布式监控系统通信结构专 用数 采 端 OPC HDA服 务 器控 制 台
11、 RTDB运 行 核 心OPC AE服 务 器 OPC/DE数 采 端Devic API数 据 接 口监 控 端 历 史数 据 库OC/OPRTCom接 口报 警数 据 库 RS23数 采 端 RDB数 采 端 实 时数 据 库整个监控系统以实时数据库 5为核心,通过多层接口实现数据的采集、保存和发布。实时数据库 RTDB 分为上下两层接口。下层 Device RTDB API 数据接口为各种数据采集端(包括RS232、OPC/DDE 客户端、关系数据库 RDB 采集端等)提供接口,允许它们将采集的数据保存到实时数据库中。上层分为 RTCom 专用接口和 ODBC/OPC通用接口。控制台程序通
12、过 RTCom 接口管理实时数据库。OPC HDA 服务器和 OPC AE 服务器通过OPC 接口获得实时数据,然后按照判断逻辑生成报警数据和历史数据,并保存到各自的数据库中。监控端作为 OPC 客户端,可以通过 OPC 接口查询或者订阅实时数据、历史数据和报警信息。客户端监控软件只需要符合 OPC 规范,就能通过标准接口访问所有的服务器,从而实现了灵活配置及降低系统集成费用,而且缩短了应用软件的开发周期。系统各模块之间相对独立,都可在遵循各自接口标准的基础上独立修改升级,使得分布式监控系统中的数据采集、存储和监控各部分功能模块化,其开放性和可扩展性大为提高。3 基于 Web 浏览器的实时监控
13、目 前 , 应 用 Web 技 术 实 现 远 程 监 测 已 成 为 工 业监 控 系 统 中 不 可 或 缺 的 重 要 组 成 部 分 , 其 关 键 问 题是 如 何 实 现 被 测 对 象 ( 如 实 时 曲 线 ) 的 图 形 化 显 示和 数 据 更 新 。 为 此 , 我 们 提 出 了 一 种 高 效 可 行 的 解决 方 法 以 XML 和 ActiveX 技 术 为 核 心 的 实 时 监控 。XML 是为了更为有效地通过 web 传送带结构的信息而设计的一种语言。XML 将一个文件的内容从其陈述中分离出来,并提供了一个统一的格式在Internet 或 Intranet
14、上传送数据。基于 XML 以上特点,我们在客户浏览器和内部服务器之间增加了一个 XML 数据发布层OPC XML DataAccess Server6:(1) OPC XML DA Server 在 Web 服务器上构架;(2) 通过 OPC 用户化/自动化接口,访问系统内 OPC 服务器、历史数据服务器和报警服务器等,获得实时、历史数据和报警信息;(3) 通过 XML 和 SOAP 协议,向浏览器端提供监控画面结构和实时数据。OPC XMLDA Server 是数据服务器与用户的浏览器(即 OPC Client)之间交换数据的中间层。因此,整个网络监控的实现流程如图 3 所示:采用 B/S
15、三层结构和 “瘦“浏览器客户端设计,通过访问历史数据服务器和 OPC 服务器,将工业现场中各类监控画面、曲线和报表等信息,连接进入Web 服务器中的 XML 数据发布层,其中监控画面用XML 格式保存,实现画面结构与数据的分离,静态组件(如标题、标注、图片等)一次性传输,动态组件(如 LED、液位、开关等)则以 Active X的形式进行发布,使得网络上的任何一个授权用户,均可通过浏览器,看到现场的各类画面,订阅或者查询实时和历史数据,从而了解整个现场的运行情况。客户端 Active X 通过 SOAP 协议向 OPC XML DA 服务器发送实时数据和操作请求,收到返回消息后,解析 XML
16、文件,得到实时数据,更新监控画面。例如:客户端请求得到主干线 A 相电压值:应用技术研究4图 3 Web 浏览实现过程DistributingMainUa等 待 服 务 器 应 答收 到 新 数 据结 束开 始XML数 据 发 布访 问 OPC XMLDA服 务 器生 成 相 关 实 时 数 据 集客 户 端 ( 浏 览 器 ) Web服 务 器否下 载 网 页 和 ActiveSOAP请 求SOAP应 答进 行 XML Parse并 显 示 监 控 画 面ActiveX启 动修 改 ActiveX的 参数 ,刷 新 监 控 画 面是退 出开 始服务器解析这个 SOAP 消息请求 , 处理后向
17、客户端返回主干线 A 相电压 10002.5V:DistributingMainUa10002.5vgood2005/01/13/10:03:19增加了 OPC XML DA Server 后,系统成为了B/S 三层结构,且具有本地计算和处理、数据显示多样性、颗粒化数据更新的优点。通过 OPC XML DA Server 和 OPC 数据服务器可以实现对工业生产过程的实时远程监控,并可将实时生产数据与 MIS、ERP 系统以及用户的实时需求结合起来,构成一个企业内部统一的数据平台。 4 结束语将OPC技术引入工控实时数据库系统中是一项有意义的工作。本文结合OPC技术特点,给出了一种工业分布式监
18、控系统的结构设计和关键部分实现思路。该体系结构具有运行效率高、扩展性好、分布式处理能力强等优点。如何利用最新的Web技术,进一步提高工业监控系统的实时性、安全性和可靠性仍将是我们下一步的研究工作的重点。参考文献1 Azer Bestavros. Advances in Real-time Database systems researchM. ACM SIGMOD Record,1996.2 R.M.Sivasankaran,J.A.Stankovic, D.Towsley, B.Purimetla and K.Ramamritham, Priority Assignment in Real-
19、Time Active DatabasesM, The international Journal on Very Large Date Bases, 1996.5(1)3 OPC Common Definitions and Interface Version 1.0EB/OL. OPC Foundation, 1998.4 OPC Historial Data Access Automation Interface Standard Version 1.0EB/OL. OPC Foundation,2001.5 OPC Alarms and Events Version 1.02EB/OL. OPC Foundation, 1999.6杨庆,王堃,王宏安,戴国忠.企业级工控实时数据库研究与实现M. 计算机工程与应用,2001,13:687 OPC XML-DA Specification Version 1.01EB/OL. OPC Foundation,2004.