基于OPC技术的多线程数据采集系统的实现

(整期优先)网络出版时间:2017-12-22
/ 2

基于OPC技术的多线程数据采集系统的实现

贾学永李艳娇

(宜科(天津)电子有限公司天津市)

摘要:OPC技术提供了工业控制领域的标准接口,实现了OPC服务器与客户端应用程序之间的数据通讯,解决了各种设备驱动的兼容问题。利用该技术开发的电能数据采集系统,硬件上采用RS-485接口进行连接,软件上通过OPC服务器软件,实现不同设备的通讯,最后通过VB程序,对电能数据进行采集并生成报表。在实际应用中具有良好的适应性,能够完成设计功能,实现数据采集的自动化。

关键字:OPC技术;线程数据;采集系统

在能源信息化集成过程中,环保局要求各热电厂的锅炉实时数据进行上传,企业内部也需要通过浏览器实时监控锅炉数据。这些数据的传输从起点到终点要经过现场工控机(配有OPC服务器)、OPC客户端、UDP传输层和监控主机,其中OPC客户端为分散于各处的生产数据与中央监控搭建了桥梁。大部分热电厂都通过配置OPC服务器,向外提供符合OPC标准的统一接口,但传统的OPC客户端都是基于一个客户端访问一台服务器开发的。

为了适应环保局对多个热电厂数据的同时采集,本系统实现了单一客户端对多服务器的连接。同时考虑到每个连接应独立工作,当一个连接出现问题,不影响其它服务器的访问,采用了多线程模型解决这一问题。另外,数据采集是长期的工作,由于网络环境的不稳定性,客户端与服务器的连接经常断开,因此,系统提供了自动监控连接状态,断点续连的功能,减少了操作人员的负担。

1OPC技术

OPC(OLEforprocesscontrol)是一个用于过程控制的技术标准,它基于微软的OLE(现在的ActiveX)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术,采用客户/服务器模式,制定了关于数据采集、历史趋势以及事件报警等接口标准。只要遵守这些标准,在客户机和服务器之间就可以交换数据。OPC逻辑对象模型中包括3种对象:服务器对象(OPCServer)、组对象(OPCGroup)和项对象(OPCItem)。这3种对象层次不同,每种对象都包括一系列接口。

一个OPCItem对应实际的硬件装置上的某一个channel或port,它包括值(Value)、品质(Quality)、时间戳(TimeStamp)3个基本属性;一个OPCGroup则包含了许多的OPCItem,同时也定义了这些OPCItem更新的时间、方式,并提供读取OPCItem属性的接口;而一个OPCServer则包含若干个OPCGroup,同时提供操作这些OPC-Group的接口。OPC客户端若要从服务器中采集数据,首先应得到服务器对象的引用,然后通过操作组对象的接口动态创建组对象,最后通过组对象读取项对象的属性值。

本系统以VisualStudio2010为平台,应用VB.Net语言开发,项目中引入了OPCAutomation.dll组件,其中封装了客户端与服务器交互的方法。项目中建立了3个与功能相关的类,其中Opc-ClientOperator类主要表达了客户端与服务器一对一的连接,并提供了采集数据方法;ThreadsOperator类封装了OpcClientOperator类的对象数组,每个对象代表一个与服务器的连接,从而实现客户端与多服务器的交互,这个类也定义了线程数组,它为每个连接启动一个线程,避免了多连接情况下的相互冲突;OpcClientObserver类提供了异常处理以及修复。工作流程如图所示:

2系统测试

系统测试工作在一个真实的环境下进行,应用该OPC客户端采集天津市滨能集团5组锅炉的参数,首先在各自的工控机上搭建OPC服务器环境,应用的服务软件是西门子的WinCC。然后设置组和项的参数,并将这些参数导出到配置文件供OPC客户端使用,这些参数包括OPC服务器地址、类型、组名、项变量名以及相关注释。最后在一个远程主机上启动客户端,开始访问这5个OPC服务器。配置客户端的操作,列表框中导入了所有服务器的地址,当选择某个地址时,文本框中会显示该服务器类型和已添加的组。当点击“导入参数项”时,系统会读取配置文件中的项变量信息,包括序号、变量名和标题。启动客户端以后开始采集所有服务器的项变量数据。

在列表中选择某个服务器地址,可以查看从该服务器上接收的项变量的值、质量和时间戳信息。通过“重置线程”和“终止线程”,用户可以手动的重启或停止当前线程,而不影响另外4个线程的采集工作。当重启某个OPC服务器时,连接发生异常,此时断点续连机制生效,经过数次的重连、等待,连接恢复,照常接收数据。

结束语

随着计算机技术、通信技术和控制技术的发展,生产过程的底层自动化控制系统逐渐得到了完善,形成了基于集散控制系统、可编程控制器、现场总线控制系统等的各种工业控制系统,但上述系统往往缺乏统一的接口标准,难以实现各个厂家的设备互融互通及与上位机监控系统的信息交互。OPC是一种集高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。OPC技术是不同现场总线协议之间互连与互操作的一个重要手段,它将底层硬件驱动程序和上层应用程序的开发有效地分隔开,使用统一的接口实现不同总线协议间的数据互访。采用OPC技术后,能实现多现场总线控制系统的互操作,可以实现并优化多现场控制系统。为了提高系统的可用性,系统实现了设备状态监控、设备故障告警、服务治理、远程升级等运维功能系统,利用由设备控制、视频处理、现场网络和基于OPC协议的软件平台集成在一起的计算机可编程集中自动化控制系统,实现采集数据与外部信息交换,系统监控、系统管理及配置等基本业务功能。同时考虑到系统的先进性,实现了业务负载均衡、动态事务补偿、数据报文加密传输、系统设备联动、服务及前端许可证管理、角色分离等特色功能。

本系统通过OPC技术,采用面向对象封装的思想,充分利用VB.NET的多线程机制进行多服务器的连接,动态地管理线程,提高了系统的稳定性,完成了企业锅炉数据的采集与发送的开发。系统提供了便利的人机界面,方便了使用者的操作,在实际应用过程中达到了预期的效果。

参考文献:

[1]赵晓峰.基于OPC技术的Web工控系统的研究与实现[J].自动化与仪表,2016,31(2):62-64.

[2]邹威林,王凌云,王建民等.SCADA系统数据采集接口技术研究和应用[J].自动化仪表,2012,33(6):32-35.DOI:10.3969/j.issn.1000-0380.2012.06.010.

[3]庄杰.基于OPC的实时数据库关键技术研究[D].西安石油大学,2015.

[4]邹威林.SCADA系统数据采集接口技术研究与应用[D].华中科技大学,2012.

[5]石凯.OPC在管控一体化中的应用——基于OPC的制造执行系统的研究与设计[D].西安建筑科技大学,2002.