1引言
OPC是OLE for Process Control的缩写,即过程控制的对象链接与嵌入技术,也是一套在基于Windows操作平台的工业应用程序之间提供高效的信息集成和交互功能的组件对象模型的接口规范,它以组件对象模型(COM/DCOM/COM+)技术为基础,为工业控制软件定义了一套标准的对象、接口和属性,通过这些对象接口,应用软件之间能够无缝地集成在一起,实现了应用程序之间数据交换方式的标准化,从而极大地提高了自动化系统、现场设备系统的互操作性[1]。
应用于风电场的OPC技术对风电场有功功率控制作用如下:
(1)实现风电场各风力发电机组当前工作状态、故障信息、环境参数等数据的实时采集;
(2)实现风电场有功功率系统对各机组设定功率的传输。
综上所述,本文在分析了风电场有功功率控制系统数据通信具体需求的基础上,开发了基于OPC技术的通信客户端,实现风电场有功功率控制系统同OPC服务器的无缝链接,从而与各风力发电机组实现数据通信。
2风电场有功功率控制
风力发电具有较强的分散自治特性,且其输出功率往往随自然风速情况具有较强的随机性和间歇性。因此,风力发电机组的输出功率难以像常规发电机组那样遵从调度计划。风电场有功功率控制可实现整个风电场功率调度值的分配控制,力求控制风电场在满足一定系统要求的同时使风电场优化运行[2]。
整个风电场有功功率控制的结构如图1所示,功率控制系统根据电网调度负责执行功率分配,OPC服务器负责将采集到的功率控制所需数据转发给功率控制系统,并将功率控制系统计算的风力发电机组设定功率转发给各风力发电机组通信控制器[3]。
图1 风电场有功功率控制系统结构图
风电场有功功率控制系统控制模型如图2所示,采用前馈和反馈控制结合的串级控制,以风电场有功功率控制为外环控制,风力发电机组有功功率控制为内环控制,实现风电场有功功率控制[4]。
图2 风电场有功功率控制模型
如图1与图2所示,风电场有功功率控制系统需要获取各风力发电机组的实时状态、风速数据实现超短期功率预测,并向各机组发送功率分配得到的功率设定值。为解决风电场有功功率控制系统与各机组的通信问题,本文设计了应用于风电场现场的OPC客户端。
3OPC数据存取规范
OPC数据存取规范(OPC DA Specification)是OPC基金会最初制定的一个工业标准,基于COM/DCOM技术的客户/服务器结构,为各厂家提供了一个公用的数据交换标准和规范。
OPC数据存取服务器的基本结构如图3所示。从总体上看,它是由服务器(Server)对象、组(Group)对象和项(Item)对象组成。OPC服务器对象包含服务器的信息并作为组对象的容器,组对象包含其自身的信息并提供包含和逻辑组织项对象的机制。OPC组对象为客户端程序提供一种组织数据的方式。
图3 OPC数据存取服务器基本结构
在每一个组中客户端可以定义一个或多个OPC项。OPC项描述了服务器中数据源的连接。从定制接口的角度看,一个OPC项是不能被OPC客户端程序作为对象访问的,因此,没有为OPC项定义引出接口,所有对OPC项对象的访问都是通过容纳它的OPC组对象完成[5]。
4OPC客户端总体设计
4.1OPC客户端软件的功能设计
OPC客户端需实现以下功能:
(1) OPC客户端能够连接风电场OPC DA服务器,并根据所需数据建立OPC组对象(Group)和OPC项对象(Item)。针对远程控制,OPC客户端既能实现本地服务器的连接,也能实现远程服务器的连接;
(2) OPC客户端可通过Group对象对其相关Item进行数据访问和传输,客户可选择设备(Device)或缓存(Cache)作为其访问数据源。数据的访问和传输包括异步读、异步写和订阅方式;
(3) OPC客户端在服务器异常或断开连接时可向客户发出异常通知。
4.2OPC客户端框架设计
OPC客户端程序主要分为以下模块:
(1)服务器对象模块。实现本地服务器和远程服务器连接的创建和断开;实现组对象的添加与移除;
(2)组对象模块。实现项对象的添加与移除;分别实现面向项对象的OPC DA2.0和3.0规范的异步读写和订阅功能;实现数据访问相关属性(数据刷新率、服务器与客户端时差、数据刷新死区等)的设置。
(3)项对象模块,实现需要读取或写入的项对象的相关属性(访问路径、访问权限、时间戳标志等)的设置与读取。
5OPC客户端功能实现
OPC客户端与服务器的交互主要分为:创建服务器对象并连接服务器;为服务器对象添加组对象,并向组对象内添加需要访问或写入数据的项对象;对相关项对象进行读或写操作;断开服务器连接。OPC客户端工作流程如图4所示。
图4 OPC客户端工作流程
5.1OPC服务器连接
OPC客户端使用QT库开发,以QT Creator为开发平台,采用Windows API函数进行编写。
QT实现与Matrikon OPC服务器连接的关键程序如下:
//创建OPC服务器对象,初始化其ProgID和IP
CKServer server("Matrikon.OPC.Simulation.1", "172.16.10.175");
//连接服务器
server.Connect();
//创建组对象
CKGroup group(&server);
//设置组名
group.SetName(“group1”);
//设置激活状态
group.SetActive(true);
//设置服务器与客户端时差
group.SetBias(0);
//设置订阅数据刷新死区
group.SetDeadband(0);
//设置数据传输速率
group.SetUpdateRate(200);
//设置语言ID(服务器支持)
group.SetLanguageID(0x0409);
//服务器对象添加组对象
server.AddGroup(&group, true);
//生成项对象集合
QList<CKItem*> *list = new QList<CKItem*>;
//组对象添加项对象
group.AddItems(*list, (*list).count(), false);
5.2风力发电机组数据的读写
OPC DA2.0和3.0规范可实现同步读写、异步读写和订阅读写功能,实际应用中同步读写效率很低,因此,OPC客户端只实现异步读写与订阅功能。
OPC DA2.0异步读取项列表list中的项数据,实现程序如下:
group.ReadAsync20(list, list.count());
其中list.count为项数。
OPC DA2.0异步写入项列表list中的项数据,实现程序如下:
group.WriteAsync20(list, valueList, list.count());
其中valueList为写入值列表。
订阅机制值组对象创建时激活,服务器通过调用客户端实现的回调接口IKDataSink20中的数据刷新回调函数OnDataChange实现数据的定时回传。
5.3断开OPC服务器连接
当客户需断开与OPC服务器的连接时,结束OPC服务并断开连接,关键程序如下:
//结束OPC服务,删除相关对象,释放资源
server.Stop();
//断开与服务器的连接
server.Disconnect();
6应用
风电场有功功率控制系统安装于内蒙古某风电场,通过自身携带OPC客户端与风电场配备的OPC服务器通信。
为适应有功功率控制系统30s控制周期,OPC客户端采用动态刷新间隔为30s的订阅机制,周期性获取各风力发电机组的实时状态码、故障码、风速数据、功率数据;功率分配结束后,OPC客户端采用基于OPC DA2.0规范的异步写功能,将计算所得的各机组设定功率通过OPC服务器发送至各机组通信控制器,实现机组功率控制的输入设定。
附表为OPC客户端数据访问报表。
附表OPC客户端数据访问报表
风机ID
|
风机状态
|
实时风速
|
实时功率
|
时间戳
|
正常运行
|
7.5
|
458
|
||
10
|
正常运行
|
7.8
|
477
|
|
10
|
正常运行
|
9.8
|
462
|
|
10
|
正常运行
|
6.3
|
474
|
|
10
|
正常运行
|
8.3
|
502
|
2010/11/12 14:43:28
|
10
|
正常运行
|
5.6
|
413
|
|
10
|
正常运行
|
4.5
|
112
|
2010/11/12 14:45:31
|
10
|
2.7
|
0
|
2010/11/12 14:46:04
|
|
10
|
停机
|
1.5
|
0
|
2010/11/12 14:46:40
|
10
|
停机
|
1.8
|
0
|
2010/11/12 14:47:15
|
10
|
停机
|
2.4
|
0
|
2010/11/12 14:47:48
|
10
|
停机
|
2.2
|
0
|
2010/11/12 14:48:22
|
7结束语
本文针对风力发电场有功功率控制系统的通信需求,设计了适用于风电场现场的OPC数据存取客户端,可实现与风电场已配备的OPC服务器的无缝连接,快速、准确地获取控制所需的风力发电机组的实时数据,较好地满足了功率控制实时、高效的通信要求。
作者简介
黄帅(1986-)男 在读硕士,研究方向:控制理论与控制工程。
参考文献
[1]陆会明,朱耀春.控制装置标准化通信-OPC服务器开发设计与应用[M].北京:机械工业出版社,2010.
[1]惠晶,顾鑫.大型风电场的集中功率控制策略研究[J].华东电力,2008,36(6):57.
[1]Gang Zheng, Hongbing Xu, Xinheng Wang, Jianxiao Zou. Applications of WiMAX-based wireless mesh network in monitoring wind farms. International Journal of Networking and Virtual Organisation, 2010,7(6): 535–548.
[1]P.Sorensen AH, K.Thomsen, T.Buhl. Operation and control of large wind turbines and wind farms. Riso National Laboratory Report, 2005. 2005.
[1]姚婧.基于OPC的监控软件设计[D].大连:大连海事大学,2009.
共0条 [查看全部] 网友评论