APP下载

基于OPC的太阳能热水监测系统数据中心的设计

2014-12-13朱彬,江爱朋,姜周曙,黄国辉

现代电子技术 2014年23期
关键词:远程监测数据中心

朱彬,江爱朋,姜周曙,黄国辉

摘  要: 针对太阳能热水工程地域分布范围广、监控难度大等问题,研制开发一套基于OPC技术的远程监测系统。详细阐述了系统的总体方案和组成,介绍了OPC技术及其数据采集的基本原理,并采用OPC技术在C#.NET平台下用Windows Form窗体完成了远程监测系统数据中心的设计,实现数据中心服务器集中管理各现场监测终端,具有实时数据的采集、显示、存储以及故障报警等功能。通过实际应用表明,系统运行可靠、稳定,可以满足远程监控的要求,并可以在一些相关领域中加以推广。

关键词: OPC; 远程监测; 太阳能热水系统; 数据中心

中图分类号: TN931+.3?34; TP277               文献标识码: A                    文章编号: 1004?373X(2014)23?0159?03

Design of OPC?based data centre for solar energy water heating monitoring system

ZHU Bin, JIANG Ai?peng, JIANG Zhou?shu, HUANG Guo?hui

(Institute of Energy Utilization System and Automation, Hangzhou Dianzi University, Hangzhou 310018, China)

Abstract: The OPC?based remote monitoring system was designed to solve the problems of wide geographical distribution and difficult monitoring existing in the solar energy water heating systems. The system overall scheme and composition are elaborated in detail. The basic principles of OPC technology and its data acquisition are introduced. The OPC technology is adopted to achieve design scheme of data centre in the remote monitoring system by means of Windows Form in the C#.NET platform, and realize the centralized management of each field monitoring terminal through a server in the data center, which possesses the functions of data acquisition, display, storage and failure warning. The practical application shows that the system works well, and has an excellent portability, so that it can be widely applied to the other industrial automation.

Keywords: OPC; remote monitoring; solar energy water heating systems; data center

0  引  言

随着能源消费量的不断增长和人们对环境质量要求的不断提高,各种新能源己越来越受到人们的重视,太阳能热水系统作为绿色环保的新能源系统,近几年在住宅建筑的应用得到了飞速发展,但太阳能热水器与建筑系统的集成还存在许多问题[1]。目前国内外很少有研究单位或部门对建筑的太阳能热水系统进行连续一年以上的运行状况监测,而这些监测数据对可再生能源示范建筑的示范性是非常重要的[2]。因此研究太阳能热水远程监测系统,并根据监测数据进行系统的综合指标评价对研究在不同气候条件下太阳能热水系统的太阳能利用情况具有非常重要的意义。

为了更好地实现与建筑能耗监测平台的集成,本文提出了一种基于OPC技术的太阳能热水远程监测系统的设计方案,使得运行于上位机上的系统能够通过以太网实现对多个太阳能热水子系统的远程实时监测和运行状态数据实时采集以及处理。

1  OPC技术

OPC是以Microsoft公司的OLE/COM 技术为基础,采用客户/服务器模型制定的一种工业控制领域的开放式标准。OPC 在工业控制设备与应用软件之间建立了统一的软件接口标准,主要解决监控程序与其数据源的交互问题。利用OPC 技术,可以对现场设备及其驱动程序进行封装, 形成OPC服务器。

OPC 服务器向下对设备数据进行采集,向上与OPC 客户应用程序通信完成数据交换。OPC服务器屏蔽了现场物理设备的驱动程序,只要客户应用程序符合OPC接口规范,就可以与OPC 服务器进行数据交换,不必再去关心现场设备的驱动程序。

OPC技术规范是OPC基金组织倡导的工业控制和生产自动化领域中使用的硬件和软件的接口标准[3]。OPC规范提供了两套标准接口:自定义接口(Custom Interface)和自动化接口(Automation Interface)。自动化接口通常是为Visual Basic等基于脚本编程语言而定义的标准接口,而自定义接口是专门为C++等高级编程语言而制定的标准接口。应用程序作为OPC接口的客户方,硬件驱动程序作为OPC接口中的服务器方。一个OPC应用程序可以同时与多个OPC服务器连接,一个OPC服务器也可以同时为多个应用程序提供数据。endprint

OPC服务器、客户应用程序与硬件设备之间的关系如图1所示。

<;E:\2014年23期\2014年23期\Image\21t1.tif>;

图1 OPC服务器、客户应用程序与硬件设备间的关系

2  太阳能热水远程监测系统总体架构

太阳能热水远程检测系统由分布在各个地区、不同气候条件的现场监测系统与数据中心平台构成。现场监测系统经过以太网与数据中心平台进行数据交互,实现对现场的监测。

根据工业现场的应用需求,在工业控制现场为每一台PLC配置一个PLC工业以太网模块,以便PLC能通过以太网传输数据。由于光纤传输信号带宽宽、稳定性好,因此远距离传输信号时都采用光纤传输。首先在工业控制现场将PLC工业以太网模块与光电转换器连接,通过光电转换器将工业以太网的电信号转换成光信号,然后通过光纤传输,到达远处的控制室时,再通过光电转换器将光信号转换成电信号,接入交换机。对于处在不同工业控制现场的多台PLC,可以分别通过光纤进行数据传输,最终接入到控制室的交换机上。OPC服务器和应用程序所在的服务器也接入到交换机上。这样就形成了一个面向远程多PLC的监测系统的网络结构,应用程序可以通过OPC服务器来获取PLC的数据。

系统网络拓扑结构如图2所示。

3  数据中心功能设计与实现

软件的设计遵从了模块化、松耦合等软件工程规范[4?6],在Windows操作系统下设计出了一套基于面向对象思想,融入了UML、多线程等编程技术,以Microsoft SQL 2005为数据库,并且引入了NI,MSChart,Flash等绘图控件的监测软件[7]。其功能模块图如图3所示。

<;E:\2014年23期\2014年23期\Image\21t2.tif>;

图2 系统网络拓扑结构图

<;E:\2014年23期\2014年23期\Image\21t3.tif>;

图3 软件系统功能结构图

3.1  OPC通信模块

在微软的.NET平台上用C#语言实现OPC的数据通信[8],对应系统的软硬件平台,安装完SIMATIC NET后,采用OPC.SimaticNET作为OPC Server,在VS中引用由西门OPC服务器提供的Siemens OPC DA Automation 2.0,利用自动化接口形式访问OPC服务器[9?10]。在接口函数中OPC的逻辑对象中有OPCServer,OPCGroup,OPCItem。其中OPCServer维护服务器的信息并作为OPCGroup对象的容器,OPCGroup维护自己的信息并提供包含OPCItems和以有效的逻辑组织OPCItems的机制、OPCItem代表与数据源的连接。OPC服务器与OPC客户端的交互存在三种方式:同步、异步和订阅。通过3种方式的比较,本通信机制采用异步方式。

3.1.1  数据交互方式

在同步访问方式中,OPC服务器把按照OPC应用程序要求得到的数据访问结果作为方法的参数返回给OPC应用程序,OPC应用程序在结果被返回之前必须处于等待状态。本访问方式适合于传输数据量较少的通信。本监测系统共包含8个监测子系统,每个子系统的数据监测点有30个,共240个监测点,如采用此种访问方式,应用程序的等待时间浪费比较长,降低了程序的效率。

订阅方式数据采集只需要OPC应用程序向OPC服务器发送一次请求,就可以自动接到从OPC服务器送来的变化通知的订阅方式数据采集。服务器按一定的周期更新OPC服务器的数据缓冲器的数值,如果发现数值有变化,就会以数据变化事件通知OPC应用程序。系统采取该订阅方式可以通过不敏感带来设置当前值与前次之差的绝对值超过一定限度时,才更新缓冲区数据并通知OPC应用程序,从而进一步减轻OPC服务器和应用程序的负荷,但由于本监测系统对数据实时性要求较高,所以不宜采用此种方式。

在异步访问方式中,OPC服务器接到OPC应用程序的要求后,几乎立即将方法返回。OPC应用程序随后可以进行其他处理。当OPC服务器完成数据访问时,触发OPC应用程序的异步访问事件,将数据访问结果传送给OPC应用程序。OPC应用程序在C#的事件处理程序中接受从OPC服务器传送来的数据。因此,本访问方式针对本监测系统的海量数据的传输和客户端对OPC服务器的频繁要求,效率比较高。

3.1.2  数据存取方式

在OPC服务器中,Cache是重要的组成部分,存储结构将直接影响数据访问的速度,它负责将从设备中读取的数据先存放在数据缓冲区,供同步或异步读取[11]。设计良好的Cache对服务器的数据更新速度至关重要。考虑到本监测系统存取的速度、方便管理以及存取较多的数据量项,采用Cache构造方式中的哈希存储方式。同时,由于.NET平台有独立的哈希表类(Hashtable Class)可以直接使用,大大降低数据的存储和查找消耗的时间。因此,系统使用Hashtable的基本操作可以建立一个稳定而快速的Cache,从而保证了数据的快速响应。OPC数据通信的具体实现代码如下:

/***声明使用的对象与变量***/

Public  OPCServer  MyOpcServer = new OPCServer();

Public OPCGroup[] MyGroup = new OPCGroup[1];

Public  OPCItem[]  MyItem1 = new OPCItem[1];

Public Int32[] ItemServerHandle1 = new Int32[1];endprint

int cancelId;

Array[] errors = new Array[1];

Array[] MySrverHandle = new Array[1];

/*****连OPC服务器、建立OPC组和添加OPC项****/

MyOpcServer = new OPCServer();

MyOpcServer.Connect("OPC.SimaticNET",localhost");

MyGroup[0]=MyOpcServer.OPCGroups.Add("group");

MyGroup[0].IsActive = true;

/****对应变量的具体地址及服务句柄****/

MyItem1[0]=MyGroup[0].OPCItems.AddItem("S7:[S7 connection_1]db1,d208,1", 1);

ItemServerHandle1[1] = MyItem1[1].ServerHandle;

/***注册异步读取事件***/

MyGroup[0].AsyncReadComplete+=newDIOPCGroupEvent_     AsyncReadCompleteEventHandler(MyGroup01_ReadComplete);

/***异步读、异步读完成的回调函数***/

MyGroup[0].AsyncRead(20, ref MySrverHandle[0], out errors[0], 1, out cancelId);

void MyGroup01_ReadComplete(int TransactionID, int NumItems, ref System.Array ClientHandles, ref System.Array ItemValues, ref System.Array Qualities, ref System.Array TimeStamps, ref System.Array Errors);

3.2  数据访问模块

数据访问模块是按照软件开发领域中典型的三层架构来实现的。三层架构将软件规划成表示层、业务逻辑层和数据访问层[4],如图4所示。

<;E:\2014年23期\2014年23期\Image\21t4.tif>;

图4 三层架构示意图

对于数据库,系统将存储过程子程序放在数据库中,当.NET调用时,可以像调用函数一样对数据库进行操作。执行运行在数据库中,在被调用一次后会放在Cache中,为下次执行提供了方便。后期对数据库操作维护时,不需要修改应用程序软件,直接修改数据库存储过程子程序。

3.3  UI显示模块

对于本地监控系统,数据采集部分通过OPC通信方式,使用定时器控制数据读取命令,将一些必要的数据,如液位、温度等,通过Flash、曲线与仪表显示,增强了人机交互性,方便人员观察数据的变化。显示界面如图5所示。

<;E:\2014年23期\2014年23期\Image\21t5.tif>;

图5 系统显示界面

3.4  故障报警模块

实现对工程项目现场设备非正常状态信息的多方式通报提醒。当数据服务器分析出系统存在故障后,运行界面上会出现报警灯的闪烁。当用户点击报警灯后可以查看具体的故障类型和发生时间。数据中心操作员可以根据故障的类型及时通知现场管理员对故障进行及时处理,避免发生严重的事故。

3.5  天气预报

太阳能集热工程与天气状况密切相关,所以在系统中集成了天气预报的功能,提供大中型城市3 天内的详细气象信息。该功能通过调用中国气象局数据服务接口实现,准确可靠。该数据接口的服务地址为:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx。

4  结  语

针对现有太阳能热水监测系统功能不完善、工程应用较少的现状,开发一套太阳能热水远程监测系统,重点研究了软件功能设计与实现。监测系统基于.NET平台开发,引入了OPC技术有效地解决了数据远传问题。系统应用结果表明,基于OPC的实时监测系统可以稳定、可靠地实现对多太阳能热水子系统的远程实时监测。在现场PLC的支持下,还可以实现对PLC的远程控制。下一步还可以对系统进行扩展,设计基于B/S模式的Web子系统,用于监测数据的网络发布,以使系统的功能更加完整。

参考文献

[1] 世博中心项目给水排水设计团队.国内外太阳能热水系统应用比较[J].给水排水,2008(1):67?72.

[2] 龚攀峰.基于OPC技术的城市能源监测系统的研究[D].广州:华南理工大学,2012.

[3] 花新峰,贠卫国.OPC数据访问客户端开发方法讨论[J].现代电子技术,2005,28(19):129?132.

[4] 温昱.软件架构设计[M].北京:电子工业出版社,2007.

[5] 郑效田,郑丰隆,邓铁六,等.KJ56型煤矿监控系统软件设计[J].煤炭科学技术,1999,27(8):47?50.

[6] 罗冰洋,莫易敏.面向对象的煤矿监控系统软件设计方法研究[J].武汉理工大学学报:信息与管理工程版,2005,27(3):31?33.

[7] ELLIOTT C,VIJAYAKUMAR V,ZINK W,et al. National instruments LabVIEW:a programming environment for laboratory automation and measurement [J]. Journal of the Association for Laboratory Automation, 2007, 12(1): 17?24.

[8] 王杰,高昆仑,朱晓东.OPC通信技术在可视化界面监控系统中的应用研究[J].计算机测量与控制,2012(1):74?77.

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

[10]  刘旭昌,石林锁.基于OPC技术的系统集成设计与实现[J].现代电子技术,2009,32(8):46?48.

[11] 马亮,张志鸿.OPC DA服务器的设计与实现[J].微计算机信息,2008(25):228?230.endprint

int cancelId;

Array[] errors = new Array[1];

Array[] MySrverHandle = new Array[1];

/*****连OPC服务器、建立OPC组和添加OPC项****/

MyOpcServer = new OPCServer();

MyOpcServer.Connect("OPC.SimaticNET",localhost");

MyGroup[0]=MyOpcServer.OPCGroups.Add("group");

MyGroup[0].IsActive = true;

/****对应变量的具体地址及服务句柄****/

MyItem1[0]=MyGroup[0].OPCItems.AddItem("S7:[S7 connection_1]db1,d208,1", 1);

ItemServerHandle1[1] = MyItem1[1].ServerHandle;

/***注册异步读取事件***/

MyGroup[0].AsyncReadComplete+=newDIOPCGroupEvent_     AsyncReadCompleteEventHandler(MyGroup01_ReadComplete);

/***异步读、异步读完成的回调函数***/

MyGroup[0].AsyncRead(20, ref MySrverHandle[0], out errors[0], 1, out cancelId);

void MyGroup01_ReadComplete(int TransactionID, int NumItems, ref System.Array ClientHandles, ref System.Array ItemValues, ref System.Array Qualities, ref System.Array TimeStamps, ref System.Array Errors);

3.2  数据访问模块

数据访问模块是按照软件开发领域中典型的三层架构来实现的。三层架构将软件规划成表示层、业务逻辑层和数据访问层[4],如图4所示。

<;E:\2014年23期\2014年23期\Image\21t4.tif>;

图4 三层架构示意图

对于数据库,系统将存储过程子程序放在数据库中,当.NET调用时,可以像调用函数一样对数据库进行操作。执行运行在数据库中,在被调用一次后会放在Cache中,为下次执行提供了方便。后期对数据库操作维护时,不需要修改应用程序软件,直接修改数据库存储过程子程序。

3.3  UI显示模块

对于本地监控系统,数据采集部分通过OPC通信方式,使用定时器控制数据读取命令,将一些必要的数据,如液位、温度等,通过Flash、曲线与仪表显示,增强了人机交互性,方便人员观察数据的变化。显示界面如图5所示。

<;E:\2014年23期\2014年23期\Image\21t5.tif>;

图5 系统显示界面

3.4  故障报警模块

实现对工程项目现场设备非正常状态信息的多方式通报提醒。当数据服务器分析出系统存在故障后,运行界面上会出现报警灯的闪烁。当用户点击报警灯后可以查看具体的故障类型和发生时间。数据中心操作员可以根据故障的类型及时通知现场管理员对故障进行及时处理,避免发生严重的事故。

3.5  天气预报

太阳能集热工程与天气状况密切相关,所以在系统中集成了天气预报的功能,提供大中型城市3 天内的详细气象信息。该功能通过调用中国气象局数据服务接口实现,准确可靠。该数据接口的服务地址为:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx。

4  结  语

针对现有太阳能热水监测系统功能不完善、工程应用较少的现状,开发一套太阳能热水远程监测系统,重点研究了软件功能设计与实现。监测系统基于.NET平台开发,引入了OPC技术有效地解决了数据远传问题。系统应用结果表明,基于OPC的实时监测系统可以稳定、可靠地实现对多太阳能热水子系统的远程实时监测。在现场PLC的支持下,还可以实现对PLC的远程控制。下一步还可以对系统进行扩展,设计基于B/S模式的Web子系统,用于监测数据的网络发布,以使系统的功能更加完整。

参考文献

[1] 世博中心项目给水排水设计团队.国内外太阳能热水系统应用比较[J].给水排水,2008(1):67?72.

[2] 龚攀峰.基于OPC技术的城市能源监测系统的研究[D].广州:华南理工大学,2012.

[3] 花新峰,贠卫国.OPC数据访问客户端开发方法讨论[J].现代电子技术,2005,28(19):129?132.

[4] 温昱.软件架构设计[M].北京:电子工业出版社,2007.

[5] 郑效田,郑丰隆,邓铁六,等.KJ56型煤矿监控系统软件设计[J].煤炭科学技术,1999,27(8):47?50.

[6] 罗冰洋,莫易敏.面向对象的煤矿监控系统软件设计方法研究[J].武汉理工大学学报:信息与管理工程版,2005,27(3):31?33.

[7] ELLIOTT C,VIJAYAKUMAR V,ZINK W,et al. National instruments LabVIEW:a programming environment for laboratory automation and measurement [J]. Journal of the Association for Laboratory Automation, 2007, 12(1): 17?24.

[8] 王杰,高昆仑,朱晓东.OPC通信技术在可视化界面监控系统中的应用研究[J].计算机测量与控制,2012(1):74?77.

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

[10]  刘旭昌,石林锁.基于OPC技术的系统集成设计与实现[J].现代电子技术,2009,32(8):46?48.

[11] 马亮,张志鸿.OPC DA服务器的设计与实现[J].微计算机信息,2008(25):228?230.endprint

int cancelId;

Array[] errors = new Array[1];

Array[] MySrverHandle = new Array[1];

/*****连OPC服务器、建立OPC组和添加OPC项****/

MyOpcServer = new OPCServer();

MyOpcServer.Connect("OPC.SimaticNET",localhost");

MyGroup[0]=MyOpcServer.OPCGroups.Add("group");

MyGroup[0].IsActive = true;

/****对应变量的具体地址及服务句柄****/

MyItem1[0]=MyGroup[0].OPCItems.AddItem("S7:[S7 connection_1]db1,d208,1", 1);

ItemServerHandle1[1] = MyItem1[1].ServerHandle;

/***注册异步读取事件***/

MyGroup[0].AsyncReadComplete+=newDIOPCGroupEvent_     AsyncReadCompleteEventHandler(MyGroup01_ReadComplete);

/***异步读、异步读完成的回调函数***/

MyGroup[0].AsyncRead(20, ref MySrverHandle[0], out errors[0], 1, out cancelId);

void MyGroup01_ReadComplete(int TransactionID, int NumItems, ref System.Array ClientHandles, ref System.Array ItemValues, ref System.Array Qualities, ref System.Array TimeStamps, ref System.Array Errors);

3.2  数据访问模块

数据访问模块是按照软件开发领域中典型的三层架构来实现的。三层架构将软件规划成表示层、业务逻辑层和数据访问层[4],如图4所示。

<;E:\2014年23期\2014年23期\Image\21t4.tif>;

图4 三层架构示意图

对于数据库,系统将存储过程子程序放在数据库中,当.NET调用时,可以像调用函数一样对数据库进行操作。执行运行在数据库中,在被调用一次后会放在Cache中,为下次执行提供了方便。后期对数据库操作维护时,不需要修改应用程序软件,直接修改数据库存储过程子程序。

3.3  UI显示模块

对于本地监控系统,数据采集部分通过OPC通信方式,使用定时器控制数据读取命令,将一些必要的数据,如液位、温度等,通过Flash、曲线与仪表显示,增强了人机交互性,方便人员观察数据的变化。显示界面如图5所示。

<;E:\2014年23期\2014年23期\Image\21t5.tif>;

图5 系统显示界面

3.4  故障报警模块

实现对工程项目现场设备非正常状态信息的多方式通报提醒。当数据服务器分析出系统存在故障后,运行界面上会出现报警灯的闪烁。当用户点击报警灯后可以查看具体的故障类型和发生时间。数据中心操作员可以根据故障的类型及时通知现场管理员对故障进行及时处理,避免发生严重的事故。

3.5  天气预报

太阳能集热工程与天气状况密切相关,所以在系统中集成了天气预报的功能,提供大中型城市3 天内的详细气象信息。该功能通过调用中国气象局数据服务接口实现,准确可靠。该数据接口的服务地址为:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx。

4  结  语

针对现有太阳能热水监测系统功能不完善、工程应用较少的现状,开发一套太阳能热水远程监测系统,重点研究了软件功能设计与实现。监测系统基于.NET平台开发,引入了OPC技术有效地解决了数据远传问题。系统应用结果表明,基于OPC的实时监测系统可以稳定、可靠地实现对多太阳能热水子系统的远程实时监测。在现场PLC的支持下,还可以实现对PLC的远程控制。下一步还可以对系统进行扩展,设计基于B/S模式的Web子系统,用于监测数据的网络发布,以使系统的功能更加完整。

参考文献

[1] 世博中心项目给水排水设计团队.国内外太阳能热水系统应用比较[J].给水排水,2008(1):67?72.

[2] 龚攀峰.基于OPC技术的城市能源监测系统的研究[D].广州:华南理工大学,2012.

[3] 花新峰,贠卫国.OPC数据访问客户端开发方法讨论[J].现代电子技术,2005,28(19):129?132.

[4] 温昱.软件架构设计[M].北京:电子工业出版社,2007.

[5] 郑效田,郑丰隆,邓铁六,等.KJ56型煤矿监控系统软件设计[J].煤炭科学技术,1999,27(8):47?50.

[6] 罗冰洋,莫易敏.面向对象的煤矿监控系统软件设计方法研究[J].武汉理工大学学报:信息与管理工程版,2005,27(3):31?33.

[7] ELLIOTT C,VIJAYAKUMAR V,ZINK W,et al. National instruments LabVIEW:a programming environment for laboratory automation and measurement [J]. Journal of the Association for Laboratory Automation, 2007, 12(1): 17?24.

[8] 王杰,高昆仑,朱晓东.OPC通信技术在可视化界面监控系统中的应用研究[J].计算机测量与控制,2012(1):74?77.

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

[10]  刘旭昌,石林锁.基于OPC技术的系统集成设计与实现[J].现代电子技术,2009,32(8):46?48.

[11] 马亮,张志鸿.OPC DA服务器的设计与实现[J].微计算机信息,2008(25):228?230.endprint

猜你喜欢

远程监测数据中心
酒泉云计算大数据中心
数据中心制冷节能技术及应用
民航绿色云数据中心PUE控制
基于Zig Bee的远程火灾监测系统研究
基于云计算的交通运输数据中心实现与应用
基于Web技术的温度物联网终端研究
基于无线传感器网络的电力线杆塔监测系统的研究
Overlay Network技术在云计算数据中心中的应用