2014年第1期 钢铁 总129期 基于OPC协议的EMS系统数据采集设计与实现 杨鹏,黄文江,李川阳 (宝钢集团八钢公司冶金信息分公司) 摘 要:文章结合能源数据采集系统以西门子 业控制网络SIMATICNET和S7PLC为例,介绍了OPC数据采 集系统的结构和具体实现方法,使用OPC接口与现场PLC进行通讯数据采集,应用c#编程语言进行采集数 据并通过网络保存到能源管理系统数据库,为能源管理系统提供数据基础,为企业提供统计数据依据。 关键词:OPC协议;数据采集;能源管理系统;SIMATICNET 中图分类号:TP274 文献标识码:A 文章编号:1672—4224(2014)0l—o014—o4 Design and Implementation of Data Acquisition in EMS by OPC Protocol YANG Peng,HUANG Wen-jiang,LI Chuan—yang (Metallurgical Information Company,Bayi Iron&Steel Co.,Baosteel Group) Abstract:In this paper,combined with the energy data collecting system with Siemens industril controla network of SIMATICNET and S7PLC,as an example to introduce the structure of OPC data acquisition system and the concrete real— ization method,using the OPC interface and PLC communication data acquisition,using C样programming langqlage acqui— sition data and save the energy management system database through the network,provide the data basis for the energy management system statistical data,provide the basis for the enterprise. Key words:OPC;data acquisition;enery gmanagement system;SIMATICNET 1前言 OPC(OLE for Process Contro1)是一种通用的工 础,为企业提供决策数据依据。 2 OPC协议介绍 OPC fOLE for Process Control,用于过程控制的 OLE)是一个工业标准,管理这个标准国际组织是 OPC基金会。OPC基金会现有会员已超过220家, 遍布全球,包括世界上所有主要的自动化控制系统、 仪器仪表及过程控制系统的公司。 业标准。OPC是微软公司的对象链接和嵌入技术在 过程控制领域的应用,为工业自动化软件面向对象 的开发以提供一项统一的标准。OPC是为了不同供 应厂商的设备和应用程序之间的软件接口标准化, 以其间的数据交换更加简单化为目的而提出的。作 为结果,从而可以向用户提供不依靠于特定开发语 言和开发环境的可以自由组合使用的过程控制软件 组件产品。 能源管理系统(EMS)是要采集PLC的能源介 OPC协议是为解决应用软件与各种设备驱动 程序之间的通信而提出的,它把硬件厂商和应用软 件开发商分离开来,大大提高了双方的工作效率。 OPC减少了系统集成过程中的重复工作,代表了今 后过程控制系统通信标准的发展方向。 基于微软的OLE(现在的Active X)、COM(部件 对象模型)和DCOM(分布式部件对象模型)技术。 OPC包括一整套接口、属性和方法的标准集,用于 过程控制和制造业自动化系统。它的出现为基于 质计量数据,传输到上层管理数据库中,利用OPC 开放协议,按照应用程序(客户程序)的要求提供数 据采集服务的OPC服务器。 使用OPC服务器所必需的OPC接口,从PLC 中采集介质消耗数据,为能源管理系统提供数据基 联系人:杨鹏,男,27岁,本科,软件程师,乌鲁木齐(830022)宝钢集团八钢公司冶金信息分公司 E—mail:yangpeng@bygt.tom.cn l4 2014年第1期 钢铁 总129期 Windows的应用程序和现场过程控制应用建立了桥 梁。在过去,为了存取现场设备的数据信息,每一个 应用软件开发商都需要编写专用的接口函数。由于 现场设备的种类繁多,且产品的不断升级,往往给用 户和软件开发商带来了巨大的工作负担。通常这样 也不能满足工作的实际需要,系统集成商和开发商 急切需要一种具有高效性、可靠性、开放性、可互操 作性的即插即用的设备驱动程序。在这种情况下, OPC标准应运而生。OPC标准以微软公司的OLE技 术为基础,它的制定是通过提供一套标准的 OLE/COM接口完成的,在OPC技术中使用的是 OLE 2技术,OLE标准允许多台微机之间交换文档、 图形等对象。 COM是Component Object Model的缩写,是所 有OLE机制的基础。COM是一种为了实现与编程 语言无关的对象而制定的标准,该标准将Windows 下的对象定义为单元,可不受程序地访问 这些单元。这种标准可以使两个应用程序通过对象 化接口通讯,而不需要知道对方是如何创建的。通过 DCOM技术和OPC标准,完全可以创建一个开放 的、可互操作的控制系统软件。OPC采用客户/服务 器模式,把开发访问接口的任务放在硬件生产厂家 或第三方厂家,以OPC服务器的形式提供给用户, 解决了软、硬件厂商的矛盾,完成了系统的集成,提 高了系统的开放性和可互操作性。 OPC服务器通常支持两种类型的访问接口,它 们分别为不同的编程语言环境提供访问机制。这两 种接口是:自动化接口(Automation interface);自定 义接口(Custominterface)。自动化接口通常是为基 于脚本编程语言而定义的标准接口,可以使用Vi— sualBasic、Delphi、c#等编程语言开发OPC服务器 的客户应用。而自定义接口是专门为c#等高级编 程语言而制定的标准接口。OPC现已成为工业界系 统互联的缺省方案,为工业监控编程带来了便利。 3数据采集EMS系统架构 能源管理系统(Energy Management System,简称 EMS)是钢铁企业信息化系统的一个重要组成部分, 对能源数据进行采集、加_T、分析,处理以实现对能 源设备、能源实绩、能源计划、能源预测等方面发挥 着重要的作用。能源供给状态数据、能源供给整点数 据、能源供给累加数据,每种数据都有不同的应用范 围。而能源供给状态数据是所有数据的基础,其它两 种数据是通过仪器、仪表、手工录入或计算程序得 到,是其它应用系统需要的关键数据和基础。 在钢铁企业信息化系统的架构中,把能源管理 作为MES的一个基本应用构件,并作为大型企业自 动化和信息化的重要组成部分,如图1所示。 钢铁企业能源介质种类主要包括:高炉煤气 (BFG)、焦炉煤气(COG)、转炉煤气(LDG)、天然气 (NG)、氧气(O )、氮气(N )、氩气(Ar)、压缩空气 (Air)、蒸汽、氢气(H )、采暖热网、生活水、工业净环 水、工业浊环水、浓盐水、除盐水、软化水、电力等。 能源介质信息包括:压力、流量、温度、煤气热 值、供水品质(水质)、阀门开闭、调节阀开度、开关信 号、动力设备运行状态、主生产线设备的运行状态 等。 环保信息包括:环保设备的运行情况、外排水中 主要污染物的浓度、流量、主要废气排放点的外排放 废气中烟(粉)尘、SO:、NO、CO 等污染因子的浓度 和流量、污染物排放总量等介质指标。 典型能源系统架构包括能源管理中心、通讯网 络、远程数据采集单元等三级物理结构,如图2所 示。基于基础自动化向信息化建设发展的原则,EMS 系统为核心构建能源管理系统,结合网络通讯、数据 库产品和技术建立一套先进的,符合钢铁企业管理 应用功能的能源管理系统。 图2 EMS系统体系结构 15 2014年第1期 钢铁 总129期 4能源数据采集系统设计和实现 OPC数据存储和接口规范,OLE自动化标准接 口,及采用OLE自动化技术进行调用,其技术为上 节所述的OLE自动化技术。OLE自动化标准接口定 义了以下三层接口,依次呈包含关系。 OPC Server:OPC启动服务器,获得其他对象和 服务的起始类,并用于返回OPC Group类对象。 OPC Group:存储由若干OPC Item组成的 Group信息,并用于返回OPC Item类对象。 OPC Item:存储具体Item的定义、数据值、状态 值等信息。许多OPC服务器,包括OPC.SimaticNet, 是在COM平台开发的,从而对于基于.NET框架下 的c#语言,作为客户端程序语言访问OPCServer, 需要解决两个平台间无缝迁移的问题。OPC基金会 对会员提供了OpcRcw动态链接库,OPC NET COM 包装器和OPC NET API,将OPC复杂的规范封状成 简单易用的C#类,可以比较容易地实现数据访问。 以八钢南疆公司能源管理系统为例,按照基础 设计的实施情况,数据采集层采用西门子PLC。因此 设计开放数据采集通讯。以OPC.SimaticNet为实例, 逐步通过c#语言编写客户端程序,访问OPC. SimaticNet,对PLC数据进行读取的全过程。 南疆能源EMS系统的主要特点是OPC服务对 数据进行读取操作。OPC读数有三种方式:同步、异 步、订阅。 同步通讯时,OPC客户程序向OPC服务器进行 请求时,OPC客户程序必须等到OPC服务器对应的 响应全部完成以后才能返回,在此期间OPC客户程 序一直处于等待状态,若进行读操作,那么必须等待 OPC服务器响应后才返回。因此在同步通讯时,如 果有大量数据进行操作或者有很多OPC客户程序 对OPC服务器进行读操作,必然造成OPC客户程 序的阻塞现象。因此同步通讯适用于OPC客户程序 较少,数据量较小时的场合。 同步通信流程如图3所示。 SerVer m ̄mup.s h 删l 习Cal1 脚Iy 图3 同步通信流程 16 异步通讯时,OPC客户程序对服务器进行请求 时,OPC客户程序请求后立刻返回,不用等待OPC 服务器的响应,可以进行其它操作。OPC服务器完 成响应后再通知OPC客户程序,如进行读操作, OPC客户程序通知OPC服务器后离开返回,不等待 OPC服务器的读完成,而OPC服务器完成读后,会 自动的通知OPC客户程序,把读结果传送给OPC 客户程序。因此相对于同步通讯,异步通讯的效率更 高。异步通信流程如图4所示。 up.As)fncR酬 myGroup_AsyncReadComplete(H 图4异步通信流程 订阅方式时,OPC客户程序对服务器进行请求 时,OPC客户程序操作后立刻返回,不用等待OPC 服务器的操作,可以进行其它操作,OPC服务器的 Group组在组内有数据发生改变时,自动根据更新 周期刷新相应的客户端数据,如图5所示。 客户端只向OPC服务发送一次请求,之后不再 对服务器请求。 图5 订阅方式图 结合南疆EMS系统特点采用了对于清零等开 关量采用了订阅方式,当开关量变化时候通知我们 更新EMS系统累计量,对于计量数据采用异步读 的,读取PLC的数据。