论文部分内容阅读
摘要:针对目前系统中集成能力、可操作性和可扩展能力等存在的问题,研究了工业自动化中数据集成的关键技术,提出了一个基于OPC和消息中间件的实时数据集成方案,并在此基础上进行了集成平台的实现。通过应用,证明该系统能够大幅提高数据集成的质量和效率。
关键词:OPC;消息中间件;数据集成;实时数据
0 引言
流程行业普遍采用WinCC、RSView32等监控组态软件对工业现场采集进行数据和实时监控。随着企业信息化程度的深入,这种专用监控软件已不能满足这种需求:①数据转换和整合的规则都融合在定制代码中,难以灵活地适应变化;②提供的都是过时信息,难以实时获取准确信息;③只能通过中间库或者集中库的方式来解决各个系统的数据集成,这样的做法往往形成新的数据孤岛。
目前,针对实时数据库的产品尚不成熟,一些实时数据库产品可以部分地支持一些多数据库的功能。如Honeywell公司推出的Uniformance Database System,它支持多个PHD的实时数据的集成;OSI公司的PI提供PIToPI接口,通过该接口,实时数据可从一个PI系统传送到另一个PI系统。在国内,实时数据库环境中的多数据库系统(实时数据集成平台)目前还不多见。
本文提出了一个基于OPC和消息中间件的实时数据集成(Real-Time Data Integration,RTDI)方案,其功能为:①用户系统采用B/S结构,使用浏览器就能实现现场设备和生产运行情况的监控;②为企业内部各种管理、分析系统提供统一的数据源;③具有良好的可扩展性,为后续系统开发提供一个标准的接口,后续系统只要遵循标准,就可以实现多个系统的融合,实现多个系统的集成。
本文描述了基于OPC和消息中间件的实时数据集成系统关键技术。第一节给出了RTDI体系结构;第二节介绍了系统的实时数据集成策略;第三、四节描述了系统平台的构建方案和桌面工具的设计;最后是系统在实际环境中的应用情况。
1 RTDI系统体系结构
本文的实时监控系统采用多层C/S和B/S的混合结构,集中了传统多层C/S模式和Web浏览器技术的优势。这种结构充分体现了基于Web软件集成的独到之处,被认为是当前或今后一段时期内实时监控发展的主流技术。基于这种模式下的监控结构图如图1所示。
系统自上至下由应用层、业务服务层、综合数据库层、消息中间件层、数据源层组成。下层对上层提供服务,上层是下层的客户。最下一层数据源层包括了按一定组织结构存放各种被测数据信息的实时数据点和现场设备、仪表等,负责采集、发布实时数据。消息中间件层访问底层以OPC作为通用接口,获取OPC服务器发布的现场数据,打包成消息,发送到消息队列,消息经过转发程序解析,发送至数据库。
综合数据库层是大型的关系型数据库Sybase AdaptiveServer Enterprise 12.5,负责存储由消息中间件层传送过来的实时数据,并接受Web服务器的数据服务请求,为其提供数据源。Web服务器为用户提供仿真环境的实时监控和在位查询、趋势图分析、综合查询等服务。
整个系统的核心是消息中间件层,它由OPC数据读送客户端、MSMQ消息服务器、OPC数据转发程序组成;OPC数据读送客户端负责读取OPC服务器发布的实时数据,打包成消息并发送到目标消息队列。MSMQ服务器管理进出消息队列的消息。OPC数据转发程序将目标消息队列的消息对照位号数据字典进行解析,存放到对应的数据表中。消息中间件实现的是异步通信,在网络通畅的情况下,能保证消息通信的实时性,在网络线路不稳定或断连的情况下,消息发送方不会因此而阻塞系统运行,已发送消息不会因此丢失。
2 基于OPC和消息中间件的实时数据集成策略
现场生产实时数据的集成是流程行业信息集成的核心,能否将现场实时数据及时安全地集成到中心数据库,这是事关系统成败的关键。鉴于此,本文提出了一个标准化的实时数据获取及传送策略,即基于OPC和消息中间件的实时数据集成策略,它保证了实时数据的规范化获取和可靠传输。
2.1 OPC技术及数据获取策略
实现实时数据集成首要的问题是如何从多样的工控设备或组态软件中将实时数据提取出来。为保证数据获取的实时性和准确性,我们采用了一些世界上占领先地位的自动化系统以及硬件、软件公司与Microsoft紧密合作而建立的工厂数据接口和数据交换的工业标准OPC。
OPC是Object Linking and Embedding(OLE)for ProcessControl的缩写,它是Microsoft公司的对象链接和嵌入技术在过程控制方面的应用。OPC以OLE/COM/DCOM技术为基础,采用C/S模式。它为工业自动化软件面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。采用这项标准后,硬件开发商可取代软件开发商为自己的硬件产品开发统一的OPC接口程序,而软件开发者可免除开发驱动程序的工作。这样不但可避免开发的重复性,也提高了系统的开放性和互操作性。图2示出了OPC客户端与OPC服务器端之间的接口。
本文建立的系统结构中,OPC技术应用于实时数据通信接口的规范化上。这里OPC Server位于数据源层上,它主要是发布从现场设备获取的实时数据;OPC Client以中间件的形式位于消息中间件层,它的任务是从OPC接口获取OPC Server发布的实时数据,然后打包发送到消息队列。这些接口定义符合OPC基金会数据访问用户接口标准(Data Access Custom InterfaceStandard V3,O)。有关OPC的更多信息,参见文献[5][6]。
2.2 消息中间件及数据传输策略
RTDI平台采用分布式系统。OPC数据读送程序和综合数据层之间的通信是影响系统整体性能的一个关键因素。RPC和消息中间件均可在异构的分布环境下提供通信框架。RPC采用的是面向连接的通信技术,主要提供的是同步通信功能。基于同步通信框架所构造的分布式系统是紧耦合型的,即当发送方将信息发送到目的地时,若目的地的相应服务未启动,就会造成发送失败。消息中间件采用无连接技术,可实现异步通信,当然它也可结合应用逻辑一起实现同步通信。利用消息中间件,程序之间不仅可以进行一对一通信,还可以进行一对多和多对一通信,或是它们的组合方式通讯。
实时数据集成平台,在网络通畅的情况下,要保证消息通信的实时性;在网络线路不稳定或断连的情况下,消息发送方要保证不会因此而阻塞系统运行,已发送消息不会因此丢失。另外实时数据集成平台应支持可扩展性,即实时数据点(位号)可动态加入,因此要求支持一对多的通信连接。基于上述需 求,系统采用了消息中间件。它使用MSMQ作为消息的缓冲存储,具有高度的可靠性;在消息转发时支持断点续传,避免了在较差网络环境下消息传输的“抖动问题”;同时,传输由操作日志控制,保证同一消息不会多次重复发送。
RTDI平台采用了图3所示的通信框架。采用持久远程队列(远程队列是真正的目的地队列在本地的代理)传送实时数据,OPC数据读取发送程序只需与本地的MSMQ服务器相连,然后将消息存放到远程队列中。MSMQ负责将远程队列中的消息送到远程目的地的队列上。接收方即OPC数据转发程序与当地的MSMQ服务器相连,从本地专用队列中获取消息。
这样,即使目标队列的MSMQ服务器未启动,OPC数据读送程序也可以成功地向目标队列发送数据,而且向目标队列发送的数据不会丢失,保证了实时数据传输的可靠性。
3 RTDI系统平台构建
在解决数据集成的技术问题之后,怎样更容易地获取数据以及自动化地处理数据就成为构建RTDI平台的主要问题。
为了更直观、容易地获取数据,在数据的表达和展示方面,系统使用基于Web的B/S系统结构,并大量采用模拟控制现场的图示、在位查询和智能提示等多种手段,为用户提供易于使用的信息获取方式。RTDI系统Web结构示意图如图4所示。其功能区域如下:
(1)开始菜单:系统功能导航。
(2)系统标题区:显示系统名称。
(3)各库站子系统入口:为其它后续库站实时数据集成系统提供入口。
(4)子页面标题区:显示当前功能区的标题。
(5)功能区:显示库站各工区主要功能信息,包括实时数据监控、在位查询等。
(6)子系统导航区:库站内所有工区的实时监控页面导航。
(7)功能描述区:功能区页面内容的简要介绍。
(8)刷新设置区:默认情况下显示系统时间。双击此区可设置实时数据的刷新时间和报警持续次数。
(9)报警区:以红色报警器图片的形式给出,点击图片可以查看详细的报警信息。一旦有新的报警信息,报警器会闪烁报警,用户可以对报警信息进行确认。
(10)状态提示区:提示鼠标的指向隐含的操作,显示访问量及当前用户信息。
(11)技术咨询联系方式及滚动提示信息:显示技术咨询联系方式,用户可以在后台设置滚动新闻信息和其他提示信息。
这种页面划分方式的好处是将不同的功能在页面上以模块化分开,便于功能页面的调换,让各区域各负其责,同时也便于系统的维护。
实时数据监控需要进行频繁的数据刷新。如何对监控数据进行刷新,并且不能闪屏,这是一个很关键的问题。这里的做法是把数据获取和数据展示用不同的页面来操作。刷新设置区定时获取当前功能区内所有位号的实时点数据,通过Javascript脚本将数据赋值给功能区内相应的位号层。用户只看到刷新设置区内系统时间和功能区内实时数据在变动,整个系统界面很稳定,达到了系统设计的标准。
项目为后期其它库站的实时数据集成系统开发提供了统一的集成标准。其他系统开发需要注意到以下几点:
(1)实时数据采集遵循OPC工业标准,以规范实时数据获取;
(2)对各现场设备、位号进行统一的编号,避免数据获取发生冲突;
(3)集成平台已为后续系统的加入预留了入口;
(4)本系统为后续系统开发提供了模板,确保系统页面风格一致;
(5)可动态增加位号,以增强系统的可扩展性。
4 桌面工具
状态发布工具可设置和显示3种类型的图:PFD图(过程流程图)、趋势图和报警图。在状态发布工具中,用户可以把过程数据按照它内在的物理或逻辑关系编辑、组织成PFD图显示来自不同实时数据库的实时数据。用户通过PFD图可以对企业的运作过程进行实时监控。在状态发布工具中,用户可设置实时数据的客户端刷新周期,它与服务器端提供的数据采集刷新周期一起决定了最终呈现给用户的数据实时性。
状态发布工具可以定义和显示趋势图,用户可查看来自一个/多个实时数据库的一个/多个点在任一时间段的数据,可回顾一个,多个点在过去任一时间点的数据值,可任意放大、缩小趋势图,借助于过程数据的趋势图,用户可以对实时数据进行分析和跟踪。状态发布工具还提供设置、筛选和查看运行状态报警的功能,现在的报警设置包括高限报警、低限报警。PFD图、趋势图和报警图在状态发布工具的工作空间中以树型结构组织,用户通过展开树型结构,可直接定位到所需的图结点上。各种图也能用按钮进行连接,用户可通过点击按钮以超链接(Hyperlink)方式浏览各种数据。另外,状态发布工具还是一个OLE自动服务器,因此,趋势图可以输出到任一个OLE自动客户如Word中,供用户组织有关的文档。
Excel Add-in扩展了Excel的功能,使得用户可在Excel中通过扩展的菜单导入各种实时数据。现在可导入的数据包括点的实时值、点的计算值(一段时间的历史值/平均值/最高值,最低值)、点的属性等。有了这些数据,用户可利用Excel的功能方便地对实时数据进行各种数据分析或编写各种数据报告。
Web发布工具与Web应用服务器框架协同工作,用户可在普通浏览器界面上浏览趋势图。
5 应用情况
采用本文叙述的实时数据集成技术所构造的RTDI平台已在Windows2000server环境下开发完毕。该平台引入了松耦合型的基于消息队列中间件的分布式体系结构;采用工业OPC标准和消息队列中间件技术,实现了实时数据的规范获取和可靠传输,基于这种技术的数据集成方法国内文章未见相关报道;解决了实时数据的应用问题,保证分布实时数据的可达性、一致性。该平台现已应用到石油行业的生产一线,实现了对实时数据的远程监控和设备的远程维护,为工艺改进、安全管理、生产管理、预测分析和决策支持提供准确、可靠的实时数据,提高了企业的应变和创新能力。可以从以下两个方面完善RTDI平台:继续对RTDI平台进行性能优化,提高实时数据的可用性;逐步增加系统的数据分析和数据挖掘功能。下一步的工作将围绕这两方面展开,以便更好地为实际应用服务,进一步提高企业的信息化水平。
关键词:OPC;消息中间件;数据集成;实时数据
0 引言
流程行业普遍采用WinCC、RSView32等监控组态软件对工业现场采集进行数据和实时监控。随着企业信息化程度的深入,这种专用监控软件已不能满足这种需求:①数据转换和整合的规则都融合在定制代码中,难以灵活地适应变化;②提供的都是过时信息,难以实时获取准确信息;③只能通过中间库或者集中库的方式来解决各个系统的数据集成,这样的做法往往形成新的数据孤岛。
目前,针对实时数据库的产品尚不成熟,一些实时数据库产品可以部分地支持一些多数据库的功能。如Honeywell公司推出的Uniformance Database System,它支持多个PHD的实时数据的集成;OSI公司的PI提供PIToPI接口,通过该接口,实时数据可从一个PI系统传送到另一个PI系统。在国内,实时数据库环境中的多数据库系统(实时数据集成平台)目前还不多见。
本文提出了一个基于OPC和消息中间件的实时数据集成(Real-Time Data Integration,RTDI)方案,其功能为:①用户系统采用B/S结构,使用浏览器就能实现现场设备和生产运行情况的监控;②为企业内部各种管理、分析系统提供统一的数据源;③具有良好的可扩展性,为后续系统开发提供一个标准的接口,后续系统只要遵循标准,就可以实现多个系统的融合,实现多个系统的集成。
本文描述了基于OPC和消息中间件的实时数据集成系统关键技术。第一节给出了RTDI体系结构;第二节介绍了系统的实时数据集成策略;第三、四节描述了系统平台的构建方案和桌面工具的设计;最后是系统在实际环境中的应用情况。
1 RTDI系统体系结构
本文的实时监控系统采用多层C/S和B/S的混合结构,集中了传统多层C/S模式和Web浏览器技术的优势。这种结构充分体现了基于Web软件集成的独到之处,被认为是当前或今后一段时期内实时监控发展的主流技术。基于这种模式下的监控结构图如图1所示。
系统自上至下由应用层、业务服务层、综合数据库层、消息中间件层、数据源层组成。下层对上层提供服务,上层是下层的客户。最下一层数据源层包括了按一定组织结构存放各种被测数据信息的实时数据点和现场设备、仪表等,负责采集、发布实时数据。消息中间件层访问底层以OPC作为通用接口,获取OPC服务器发布的现场数据,打包成消息,发送到消息队列,消息经过转发程序解析,发送至数据库。
综合数据库层是大型的关系型数据库Sybase AdaptiveServer Enterprise 12.5,负责存储由消息中间件层传送过来的实时数据,并接受Web服务器的数据服务请求,为其提供数据源。Web服务器为用户提供仿真环境的实时监控和在位查询、趋势图分析、综合查询等服务。
整个系统的核心是消息中间件层,它由OPC数据读送客户端、MSMQ消息服务器、OPC数据转发程序组成;OPC数据读送客户端负责读取OPC服务器发布的实时数据,打包成消息并发送到目标消息队列。MSMQ服务器管理进出消息队列的消息。OPC数据转发程序将目标消息队列的消息对照位号数据字典进行解析,存放到对应的数据表中。消息中间件实现的是异步通信,在网络通畅的情况下,能保证消息通信的实时性,在网络线路不稳定或断连的情况下,消息发送方不会因此而阻塞系统运行,已发送消息不会因此丢失。
2 基于OPC和消息中间件的实时数据集成策略
现场生产实时数据的集成是流程行业信息集成的核心,能否将现场实时数据及时安全地集成到中心数据库,这是事关系统成败的关键。鉴于此,本文提出了一个标准化的实时数据获取及传送策略,即基于OPC和消息中间件的实时数据集成策略,它保证了实时数据的规范化获取和可靠传输。
2.1 OPC技术及数据获取策略
实现实时数据集成首要的问题是如何从多样的工控设备或组态软件中将实时数据提取出来。为保证数据获取的实时性和准确性,我们采用了一些世界上占领先地位的自动化系统以及硬件、软件公司与Microsoft紧密合作而建立的工厂数据接口和数据交换的工业标准OPC。
OPC是Object Linking and Embedding(OLE)for ProcessControl的缩写,它是Microsoft公司的对象链接和嵌入技术在过程控制方面的应用。OPC以OLE/COM/DCOM技术为基础,采用C/S模式。它为工业自动化软件面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。采用这项标准后,硬件开发商可取代软件开发商为自己的硬件产品开发统一的OPC接口程序,而软件开发者可免除开发驱动程序的工作。这样不但可避免开发的重复性,也提高了系统的开放性和互操作性。图2示出了OPC客户端与OPC服务器端之间的接口。
本文建立的系统结构中,OPC技术应用于实时数据通信接口的规范化上。这里OPC Server位于数据源层上,它主要是发布从现场设备获取的实时数据;OPC Client以中间件的形式位于消息中间件层,它的任务是从OPC接口获取OPC Server发布的实时数据,然后打包发送到消息队列。这些接口定义符合OPC基金会数据访问用户接口标准(Data Access Custom InterfaceStandard V3,O)。有关OPC的更多信息,参见文献[5][6]。
2.2 消息中间件及数据传输策略
RTDI平台采用分布式系统。OPC数据读送程序和综合数据层之间的通信是影响系统整体性能的一个关键因素。RPC和消息中间件均可在异构的分布环境下提供通信框架。RPC采用的是面向连接的通信技术,主要提供的是同步通信功能。基于同步通信框架所构造的分布式系统是紧耦合型的,即当发送方将信息发送到目的地时,若目的地的相应服务未启动,就会造成发送失败。消息中间件采用无连接技术,可实现异步通信,当然它也可结合应用逻辑一起实现同步通信。利用消息中间件,程序之间不仅可以进行一对一通信,还可以进行一对多和多对一通信,或是它们的组合方式通讯。
实时数据集成平台,在网络通畅的情况下,要保证消息通信的实时性;在网络线路不稳定或断连的情况下,消息发送方要保证不会因此而阻塞系统运行,已发送消息不会因此丢失。另外实时数据集成平台应支持可扩展性,即实时数据点(位号)可动态加入,因此要求支持一对多的通信连接。基于上述需 求,系统采用了消息中间件。它使用MSMQ作为消息的缓冲存储,具有高度的可靠性;在消息转发时支持断点续传,避免了在较差网络环境下消息传输的“抖动问题”;同时,传输由操作日志控制,保证同一消息不会多次重复发送。
RTDI平台采用了图3所示的通信框架。采用持久远程队列(远程队列是真正的目的地队列在本地的代理)传送实时数据,OPC数据读取发送程序只需与本地的MSMQ服务器相连,然后将消息存放到远程队列中。MSMQ负责将远程队列中的消息送到远程目的地的队列上。接收方即OPC数据转发程序与当地的MSMQ服务器相连,从本地专用队列中获取消息。
这样,即使目标队列的MSMQ服务器未启动,OPC数据读送程序也可以成功地向目标队列发送数据,而且向目标队列发送的数据不会丢失,保证了实时数据传输的可靠性。
3 RTDI系统平台构建
在解决数据集成的技术问题之后,怎样更容易地获取数据以及自动化地处理数据就成为构建RTDI平台的主要问题。
为了更直观、容易地获取数据,在数据的表达和展示方面,系统使用基于Web的B/S系统结构,并大量采用模拟控制现场的图示、在位查询和智能提示等多种手段,为用户提供易于使用的信息获取方式。RTDI系统Web结构示意图如图4所示。其功能区域如下:
(1)开始菜单:系统功能导航。
(2)系统标题区:显示系统名称。
(3)各库站子系统入口:为其它后续库站实时数据集成系统提供入口。
(4)子页面标题区:显示当前功能区的标题。
(5)功能区:显示库站各工区主要功能信息,包括实时数据监控、在位查询等。
(6)子系统导航区:库站内所有工区的实时监控页面导航。
(7)功能描述区:功能区页面内容的简要介绍。
(8)刷新设置区:默认情况下显示系统时间。双击此区可设置实时数据的刷新时间和报警持续次数。
(9)报警区:以红色报警器图片的形式给出,点击图片可以查看详细的报警信息。一旦有新的报警信息,报警器会闪烁报警,用户可以对报警信息进行确认。
(10)状态提示区:提示鼠标的指向隐含的操作,显示访问量及当前用户信息。
(11)技术咨询联系方式及滚动提示信息:显示技术咨询联系方式,用户可以在后台设置滚动新闻信息和其他提示信息。
这种页面划分方式的好处是将不同的功能在页面上以模块化分开,便于功能页面的调换,让各区域各负其责,同时也便于系统的维护。
实时数据监控需要进行频繁的数据刷新。如何对监控数据进行刷新,并且不能闪屏,这是一个很关键的问题。这里的做法是把数据获取和数据展示用不同的页面来操作。刷新设置区定时获取当前功能区内所有位号的实时点数据,通过Javascript脚本将数据赋值给功能区内相应的位号层。用户只看到刷新设置区内系统时间和功能区内实时数据在变动,整个系统界面很稳定,达到了系统设计的标准。
项目为后期其它库站的实时数据集成系统开发提供了统一的集成标准。其他系统开发需要注意到以下几点:
(1)实时数据采集遵循OPC工业标准,以规范实时数据获取;
(2)对各现场设备、位号进行统一的编号,避免数据获取发生冲突;
(3)集成平台已为后续系统的加入预留了入口;
(4)本系统为后续系统开发提供了模板,确保系统页面风格一致;
(5)可动态增加位号,以增强系统的可扩展性。
4 桌面工具
状态发布工具可设置和显示3种类型的图:PFD图(过程流程图)、趋势图和报警图。在状态发布工具中,用户可以把过程数据按照它内在的物理或逻辑关系编辑、组织成PFD图显示来自不同实时数据库的实时数据。用户通过PFD图可以对企业的运作过程进行实时监控。在状态发布工具中,用户可设置实时数据的客户端刷新周期,它与服务器端提供的数据采集刷新周期一起决定了最终呈现给用户的数据实时性。
状态发布工具可以定义和显示趋势图,用户可查看来自一个/多个实时数据库的一个/多个点在任一时间段的数据,可回顾一个,多个点在过去任一时间点的数据值,可任意放大、缩小趋势图,借助于过程数据的趋势图,用户可以对实时数据进行分析和跟踪。状态发布工具还提供设置、筛选和查看运行状态报警的功能,现在的报警设置包括高限报警、低限报警。PFD图、趋势图和报警图在状态发布工具的工作空间中以树型结构组织,用户通过展开树型结构,可直接定位到所需的图结点上。各种图也能用按钮进行连接,用户可通过点击按钮以超链接(Hyperlink)方式浏览各种数据。另外,状态发布工具还是一个OLE自动服务器,因此,趋势图可以输出到任一个OLE自动客户如Word中,供用户组织有关的文档。
Excel Add-in扩展了Excel的功能,使得用户可在Excel中通过扩展的菜单导入各种实时数据。现在可导入的数据包括点的实时值、点的计算值(一段时间的历史值/平均值/最高值,最低值)、点的属性等。有了这些数据,用户可利用Excel的功能方便地对实时数据进行各种数据分析或编写各种数据报告。
Web发布工具与Web应用服务器框架协同工作,用户可在普通浏览器界面上浏览趋势图。
5 应用情况
采用本文叙述的实时数据集成技术所构造的RTDI平台已在Windows2000server环境下开发完毕。该平台引入了松耦合型的基于消息队列中间件的分布式体系结构;采用工业OPC标准和消息队列中间件技术,实现了实时数据的规范获取和可靠传输,基于这种技术的数据集成方法国内文章未见相关报道;解决了实时数据的应用问题,保证分布实时数据的可达性、一致性。该平台现已应用到石油行业的生产一线,实现了对实时数据的远程监控和设备的远程维护,为工艺改进、安全管理、生产管理、预测分析和决策支持提供准确、可靠的实时数据,提高了企业的应变和创新能力。可以从以下两个方面完善RTDI平台:继续对RTDI平台进行性能优化,提高实时数据的可用性;逐步增加系统的数据分析和数据挖掘功能。下一步的工作将围绕这两方面展开,以便更好地为实际应用服务,进一步提高企业的信息化水平。