APP下载

基于OPC协议的省级计量中心检定区温湿度接口函数开发及实现

2015-10-11范志夫曹宏纯汤振华

江西电力 2015年3期
关键词:温湿度客户端计量

范志夫,曹宏纯,汤振华

(国网江西省电力公司计量中心,江西南昌 330096)

0 引言

省级计量中心承担着所辖电能计量设备和电能信息采集终端检定、检测工作。而检定环境对于检定结果的准确性有着至关重要的影响,检定报告中环境温湿度也是必须标明的。根据省级计量中心的建设要求,必须配备大型中央空调及排风系统。以江西省电力公司计量中心为例,该空调系统采用SIMATIC WINCC开发编写,在自身控制主机界面上能够显示实时温湿度等参数。但生产调度平台及自动化检定线系统却无法直接从此取得需要的温湿度参数。本文介绍一种基于OPC协议,能够读取WINCC数据存储区温湿度数据的方法,并在此基础上开发相应的接口函数,以提供数据给第三方实时调用。

1 SIMATICWINCC及OPC协议简介

SIMATIC®WinCC®基于Windows平台,能为工业领域提供完备的监控与数据采集(SCADA)功能,涵盖单用户系统直到支持冗余服务器和远程Web客户机解决方案的多用户系统。WinCC是跨公司垂直集成交换信息的基础,它采用了工厂智能,可以实现更大程度的生产过程的透明性。WinCC不仅包含开放的编程接口,还包含大量已经开发了的WinCC选件和WinCC附加件,用于给用户提供各种功能的扩展。随着自设备级直至企业级工厂智能应用的整合,西门子工业自动化与驱动技术集团(IA&DT)可以提供一种完美、灵活的“一站式”解决方案。SIMATIC WinCC工厂智能选件有效、智能地利用数据,并实时地生成关键信息,从而可以改善公司的决策过程。该过程能进一步降低工厂成本、防止原料浪费,更好地利用生产设施,确保更高的管理效率和管理有效性。SIMATICWinCC工厂智能选件实现了监控级和制造执行系统级的连接,从而可以高效地进行生产数据的采集、归档、压缩、分析和发布工作,使生产过程具有更大的透明性。

OPC全称是Object Linking and Embedding(OLE)for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。OPC以OLE/COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法,用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的OPC接口程序,而软件开发者可免除开发驱动程序的工作,充分发挥自己的特长,把更多的精力投入到其核心产品的开发上。

2 OPC读数据方式

OPC读数据有3种方式:同步、异步、订阅。

同步通讯时,OPC客户程序向OPC服务器进行请求时,OPC客户程序必须等到OPC服务器对应的响应全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态,若进行读操作,那么必须等待OPC服务器响应后才返回(如图1所示)。因此在同步通讯时,如果有大量数据进行操作或者有很多OPC客户程序对OPC服务器进行读操作,必然造成OPC客户程序的阻塞现象。因此同步通讯适用于OPC客户程序较少,数据量较小时的场合。

图1 OPC同步方式读数据

异步通讯时,OPC客户程序对服务器进行请求时,OPC客户程序请求后立刻返回,不用等待OPC服务器的响应,可以进行其它操作。OPC服务器完成响应后再通知OPC客户程序,如进行读操作,OPC客户程序通知OPC服务器后离开返回,不等待OPC服务器的读完成,而OPC服务器完成读后,会自动的通知OPC客户程序,把读结果传送给OPC客户程序(如图2所示)。因此相对于同步通讯,异步通讯的效率更高。

订阅方式时,OPC客户程序对服务器进行请求时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以进行其它操作,OPC服务器的Group组在组内有数据发生改变时,自动根据更新周期刷新相应的客户端数据,如图3所示,客户端只向OPC服务发送一次请求,之后不再对服务器请求。

图2 OPC异步方式读数据

图3 OPC订阅方式读数据

3 OPC数据访问

总的来说,OPC技术的实现由2部分组成:OPC服务器和OPC客户应用部分。OPC服务器收集现场设备的数据信息,然后通过标准的OPC接口传送给OPC客户端应用。OPC客户端则通过标准的OPC接口接收数据信息。

OPC服务器通常支持2种类型的访问接口,它们分别为不同的编程语言环境提供访问机制,包括自动化接口标准(Automation Interface Standard)和自定义接口标准(Custom Interface Standard)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。,而自定义接口适用于C和C++应用程序,它比自动化接口更高效,功能更强大。

一般地讲,一个OPC数据访问服务器由几类对象组成(如图4所示):服务器(Server)、组(Group)和项(Item)。OPC服务器对象包括有关服务器的信息而且作为一个容器为OPC组对象服务。OPC组对象包含了有关它自身的信息而且提供了逻辑上组织OPC项的机制。对于OPC客户端提供了一种组织数据的方法。例如,在一个特殊的操作显示或报告中组可以声称项数据能被读和写。可以在客户端和组里面的项之间创建基于连接的例外,也可根据需要使之允许或禁止。OPC客户端能配置OPC服务器提供给OPC客户端的数据变化率。

图4 OPC对象

4 OPC接口函数开发

计量中心中央空调系统自带的软件温湿度显示界面如图5所示,各区域的温湿度标有相应的数字,每个区域对应着相应的WINCC数据区的变量,因此,需开发接口函数读取相应的数据区的内容,最终获取温湿度数据。

OPC接口开发的一般流程见图6。

图5 计量中心厂区空调系统温湿度分布

图6 OPC接口开发流程

由于获取温湿度的数据量较小,故采用同步读数据的方式来实现,具体实现及关键代码如下:

(1)首先需安装并注册相关的OPC自动化接口服务,并添加命名空间:(需要在项目中添加相应的引用)

using OPCAutomation;

(2)定义OPC相关变量

OPCServer KepServer;

OPCGroups KepGroups;

OPCGroup KepGroup;

OPCItems KepItems;

OPCItem KepItem;

(3)获取服务器列表并选择连接OPC服务器,此处服务器为WINCC

privatevoid connectServer()

{

strHostIP="192.168.1.40";//通过IP来获取计算机名称,可用在局域网内。

IPHostEntry ipHostEntry=Dns.GetHostByAddress(strHostIP);

strHostName=ipHostEntry.HostName.ToString();

//获取本地计算机上的OPCServerName

KepServer=new OPCServer();

object serverList = KepServer.GetOPCServers(strHostName);

foreach(stringturn in(Array)serverList)

{

if(turn=="OPCServer.WinCC")

{

servername=turn;

}

}

KepServer.Connect(servername,strHostIP);

}

(4)设置OPC服务组相关属性

privatevoid SetGroupProperty()

{

KepServer.OPCGroups.DefaultGroupIsActive =true;

KepServer.OPCGroups.DefaultGroupDeadband=0;

KepGroup.UpdateRate=1000;

KepGroup.IsActive=true;

KepGroup.IsSubscribed=true;

}

(5)编写函数,通过OPC协议读取WINCC数据区温湿度数据。

privatestring Readvalue(stringname)

{

connectServer();

KepGroups=KepServer.OPCGroups;

KepGroup = KepGroups.Add("OPCDOTNETGROUP");

SetGroupProperty();

KepItems=KepGroup.OPCItems;

KepItem=KepItems.AddItem(name,0);

object ItemValues;object Qualities;object Time-Stamps;

//同步读的临时变量:值、质量、时间戳

KepItem.Read(1,out ItemValues,out Qualities,out TimeStamps);

stringmyvalue=(ItemValues).ToString();

return myvalue;

}

(6)封装成可供第三方使用者调用的接口函数

public stringgetwenshidu(stringwsd)

{

return Readvalue(wsd);

}

5 接口函数发布

通过IIS发布webservice函数,第三方系统可以直接按照约定调用该函数getwenshidu(string wsd)来返回需要的值,正常返回符合条件数据,错误则返回相应错误代码。字符串参数wsd对应着各个区域相应的温湿度变量名,经过测试,省级计量生产调度平台及自动化检定线都能正常的调用接口函数并取得相应的数据。

6 结语

由于OPC协议的出现,软件开发者无需了解硬件的实质和操作过程,只需遵循OPC标准进行开发,就能够访问OPC服务器中的数据,而C#可以根据需要将OPC客户端方便地和其他应用程序集成在一起。在此介绍了一种基于OPC协议,采用C#进行开发并使用IIS发布的省级计量中心检定区温湿度接口函数开发过程。OPC技术结合.NET架构,能够做到快速、高效的底层数据采集,安全、灵活的数据处理,便捷的信息发布,是一种非常普遍的解决方案。

[1]朱立军,安娜,陈未如.基于Visual C#的OPC客户端实现[J].现代电子技,2009(2):171-173.

[2]如何在C#中实现OPC数据访问[Z].西门子帮助文档,2009.

[3]杨传颖,黄德先.基于Microsoft.NETFramework的OPC客户端的研究与应用[J].微计算机信息,2006(06):1-3.

[4]蔡思文,祁耀斌.OPC客户端设计及其在监控系统的应用[J].微计算机信息,2007,23(5):106-108.

[5]顾亮,饶丰,寇东升.OPC技术结合.NET架构在系统集成项目中的应用[J].制造业自动化,2006,28(07):74-77.

[6]胡艳菊.C#程序设计[M].北京:北京大学出版社,2012.

猜你喜欢

温湿度客户端计量
温湿度控制器在回收砂冷却系统中的应用
《化学分析计量》2020年第6期目次
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
关注日常 计量幸福
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
计量自动化在线损异常中的应用
蒸发冷却温湿度独立控制空调系统的应用