一种基于串口服务器的光伏监控系统的设计

2015-04-01 01:02梁挺兴彭舜杰
自动化仪表 2015年12期
关键词:功能模块串口远程

海 涛 梁挺兴 彭舜杰 林 波 朱 浩 陈 凯

(广西大学电气工程学院1,广西 南宁 530004;广西比迪光电科技工程有限责任公司2,广西 南宁 530031)

0 引言

远程监控技术已在农业、电力行业、工业、军事等领域得到广泛的应用[1]。随着光伏发电技术的发展,光伏装机容量在电网中所占的比例不断增加,越来越多的独立和并网光伏电站即将或已经投入运行使用。当光伏电站需要更为智能化、人性化的科学管理时,可灵活扩展的远程光伏监控系统则显得至关重要[2]。市场上的很多光伏设备是国内外不同厂商生产的不同产品,大部分厂商只开发用于自己产品的监控平台。当一个已被投入运行的光伏系统需要扩大运行规模时,需对原有的监控系统重新部署,其面临的难题将是:添加原系统没有的新设备,淘汰落后的设备;原来的光伏设备已经不再生产或者最新的光伏设备的成本更低、性能更好;添加新的控制和管理功能。漫长的重部署过程将影响光伏电站的生产过程,故提出一种可灵活扩展的光伏监控系统方案,缩短重新设计监控系统的时间,作出少量的改变,即可让扩展后的系统重新运行;采用多线程的设计方案提高系统运行的速度。

1 监控方案的选择

1.1 常用的几种监控方案

按通信介质分类,光伏远程监控的方式可分为有线监控和无线监控两类[3]。本文重点介绍如何实现有线光伏监控系统的灵活扩展部分,3 种常见的有线监控方案对比说明如下。

方式1:下位机采用如RS-485 总线等工业总线直接与上位机通信。该方式的特点是能小范围内实现监控,结构简单,成本低。缺点是无法实现远距离监控,在单总线上,节点数量受限制,不同通信速率的设备很难共存,无法实现灵活的扩展。

方式2:采用公用电话网监控方式。该方式的特点是通过对连接公用电话网的Modem 进行拨号,其实就是大部分居民家里很常见的上网方式。虽然该方式能实现远距离监控,但是本地主机和远程主机都必须配置Modem,控制方式也相对繁杂,使用不广泛[4]。

方式3:在第一种方式的基础上,将RS-485 等通信接口转换为以太网接口,并通过工业以太网交换机和路由器实现局域网和互联网的监控方式。其特点是监控范围广、通信速度快、节点数无限制,可在此基础上实现远程监控系统的灵活扩展[5]。

1.2 以太网监控方案

基于光伏电站地处偏远、占地辽阔的特点,本文选择方式3 作为光伏系统的远程监控方案。光伏发电发展迅猛,在市场上能买到各式各样的光伏设备[6]。研发光伏设备的厂商为抢占市场份额,必须遵循业内标准。大多数光伏设备都配置了RS-485 通信接口+Modbus 通信协议的通信选择,故提出基于串口服务器(serial port server,SPS)的以太网监控方案,如图1所示。

图1 基于串口服务器的以太网监控方案Fig.1 Ethernet monitoring solution based on serial port server

实验中,使用6 块标称功率为50 W 的光伏组件组成光伏阵列,先串联两块,再并联三路输出,经继电保护模块后,由汇流箱汇集成一路输出,最后由并网逆变器输送至电网。在汇流箱中可以获取光伏阵列的输出参数,通过交流电采集模块可采集并网逆变器的输出参数,由于两者输出的参数变化快,将它们连接到波特率较大的串口服务器1。继电保护模块和由温度采集模块和太阳总辐射传感器组成的环境气象仪并不需要很快的通信速率,将它们连接到波特率较小的串口服务器2。串口服务器实现了RS-485 转以太网的功能,是方式3 的关键部件。SPS1、SPS2和本地主机都要经交换机而处于同一个网段。

1.3 串口服务器

串口服务器(SPS)可以很大程度地降低系统复杂性和提高系统的可扩展性,不同波特率的设备只需接在对应的SPS 上,监控软件统一地只负责对SPS 以太网端的操作,减小了设计监控系统的工作量。灵活地利用这个特性就能实现可扩展的远程监控平台[7]。该方案使用的SPS 支持TCP 协议,使用VB.NET 语言的Socket 接口完成对底层设备的控制。SPS 必须配置后才能使用,而配置过程也是比较简单的,只需在浏览器中输入默认地址进入Web 管理页面,设置相关IP 和串口相关的参数[8]。

2 监控系统软件的详细设计

在Microsoft Visual Studio 2010 的集成开发环境中,使用面向对象的VB.NET 语言编写程序,其中VB.NET 语言中所提供的部分功能和接口是该方案实现光伏监控系统灵活扩展的逻辑基础。使用SQL Server 2000 数据库存储监控系统的历史数据。

2.1 软件设计的总体思路

本方案的主要目的是在硬件和程序逻辑上作出很小的改动,便可以实现光伏远程监控系统的灵活扩展。在软件部分实现系统灵活扩展的关键是:将不同类型、不同型号的设备定义成对应的设备类,系统扩展则表现为对应设备类的增减。

2.2 需求分析

基本的光伏发电系统由光伏阵列、汇流箱和并网逆变器构成。市场上主流的光伏设备都配置了带Modbus 协议的RS-485 接口,再设置一个SPS,就能通过以太网监控汇流箱和并网逆变器。因此,软件部分实现设备类模块、Modbus 模块、TCP 模块和数据库模块能实现基本的光伏远程监控系统。汇流箱采用安科瑞的8 路汇流箱。由于所使用的并网逆变器不带通信接口,故使用DAM_3502 交流电采集模块监控并网逆变器的输出。

2.3 软件组织

合理、清晰、有效的软件组织是解决移植和扩展问题的基础。监控系统的软件组织和功能模块如图2 所示,各个功能模块之间相互独立。

图2 软件组织与功能模块Fig.2 The software organization and functional modules

图2(a)中,MyClass 存放所有的设备类、Modbus协议类、Socket 处理类和数据库处理类;SysFile 存放网络、设备和数据库的配置参数;MyModule 存放软件运行后的全局参数;MyForm 存放软件全部的窗体模块;Main 主要负责启动软件和调用以上功能模块。Socket数据的收发、数据库的存储、数据的显示部分采用了VB.NET 的多线程技术,在队列数据结构的配合下,提高了数据处理速度。

2.4 功能模块的设计

各功能模块的自定义结构体如表1 所示。

表1 功能模块的自定义结构体Tab.1 The custom structures of function modules

系统各功能模块的主要功能如下。MyModbusRTU模块完成Modbus 数据的提取;通过VB. NET 提供的System.Net.Sockets 接口实现MySocketTCP 模块;MySQL模块完成数据库的操作;MyDev 模块从Modbus 数据中提取真实的设备数据。各功能模块结构如图3所示。

①MyModbusRTU 模块。

该模块是设备层应用的基础,如图3(a)所示。其中Modbus 功能函数和获取Modbus 数据是该模块的主要功能。为了灵活地实现与其他模块之间的关联,自定义了4 个结构体,如表1 的前4 行所示,它们是实现系统灵活扩展的关键。Dev 用于描述设备,设备名DevName和DevClass 是该结构的两个重要参数。RW_Cmd 用于描述Modbus 协议命令,其中RegName 代表一次读写操作,DevObj 是Object 类型变量,表示该命令的所属设备。Fun_Data 用于描述Modbus 返回数据,其中CopeType 表示是读还是写,Cmd 表示是由哪个Modbus 命令返回。ReturnData 用于描述设备数据,其中DevObj 表示对于哪个设备,Data 表示该设备的真实数据。在结构体中嵌入Object 类型变量能实现在程序逻辑上的灵活应用[9]。在Mobus 功能函数部分实现了不同功能码的处理函数,1 ~4 号功能码的处理函数为:

ReadRegister(ByVal Cmd01_04 As RW_Cmd)As Byte()

图3 功能模块结构图Fig.3 Structure of functional modules

②MySocketTCP 模块。

该模块是网络通信的基础,如图3(b)所示。其中Socket 连接、发送和接收是该模块实现的主要功能,使用在类模块中嵌入多线程和数据队列的方式实现。在多SPS 应用时,只需使用New 方法建立对应数量的MySocketTCP 类对象,便可实现多 SPS 的扩展。MySocketTCP 模块的工作过程如图4 所示。

图4 MySocketTCP 模块的工作过程Fig.4 The work process of MySocketTCP module

③MyDev 模块。

MyDev 模块是所有设备类的集合,系统扩展体现在MyDev 中设备类的增减。以实现设备类DAM_3502 为例,如图3(c)所示,设备类具有相同的格式,修改部分代码就可以实现不同的设备类。为便捷地实现一个设备类,自定义了参数寄存器描述结构体RegDescript,如表1 的最后一行所示。其中,Name 表示该参数描述的名称,也称之为一次操作;Start 表示该参数在设备中的起始地址;Len 表示该参数的长度;WR 表示该参数是否可写;Show 表示该参数是否可显示。如对逆变器输出功率的描述,则设置为(“InverterActivePower”,12,1,False,True)。设备类的主要功能是处理FunData 数据,从而获得ReturnData 数据,并压入ReturnData 队列,为之后的显示和数据库操作搭起了一座桥梁。

④MySQL 模块。

在VS2010 中,只有System. Data. OleDb 接口支持SQL Server 2000 数据库,MySQL 模块如图3(d)所示。数据库操作是该模块的主要部分,实现了从ReturnData 队列中提取ReturnData 数据。在MySQL 模块中,扩展的灵活性体现在ReturnData 数据中操作名称Name 与数据库表格中的表格名称一致。

3 系统运行与扩展过程

3.1 系统运行实验

系统运行界面如图5 所示。

图5 系统运行界面Fig.5 The system running interface

扩展前监控系统由汇流箱、交流电采集模块和串口服务器1 组成。必须设置数据库参数、网络参数、设备参数后,系统才能正常运行。系统运行过程为:当窗体加载后,调用系统运行函数,首先配置所有的运行信息,如果成功,则连接所有的串口服务器,否则报警并等待再次运行。如果所有串口服务器连接成功,则启动所有的线程,否则等待重新连接,其运行界面如图5(a)所示。从图中可清晰地看出当天6 点至18 点的小时发电量。

3.2 系统扩展实验

考虑到此时的监控系统过于简单,可加入继电保护模块、温度模块和太阳总辐射传感器模块扩展系统。由温度模块和辐照度传感器模块组成的环境气象仪,可以采集到光伏发电的气象数据;利用历史的光伏发电数据和气象数据,可以实现发电预测的功能[10]。扩展过程如下:①以实现DAM_3502 设备类的方法,为继电保护模块、温度模块和太阳总辐射传感器模块编写 设 备 类(RelayControl、WP3066ADAMTemperature、SR100);②添加串口服务器2;③设置继电保护模块、温度模块和太阳总辐射传感器模块;④调整界面,运行程序,界面如图5(b)所示。

4 结束语

本设计实现了系统灵活扩展,提高了软件的组织性,减少了对计算机资源的占用。在该方案基础上,不但可以开发基于C/S 的软件,还能开发基于B/S 的软件。虽然是针对光伏电站所设计的远程监控系统,但是稍作改变,便可应用于其他领域。

[1] 邓素枚.光伏电站数据采集系统的研究与实现[D].北京:北京交通大学,2012.

[2] 戴铮.富互联网环境下的设备远程监控技术研究[D].武汉:华中科技大学,2012.

[3] 刘建.基于GPRS 的光伏式远程气象数据采集传输终端开发[D].杭州:浙江工业大学,2012.

[4] 叶琼茹.光伏并网远程监控系统的研究与设计[D].泉州:华侨大学,2012.

[5] 杨然.光伏发电环境参数采集及网络数据监控平台的设计[D].武汉:武汉纺织大学,2012.

[6] 彭继慎,李文帅,李秋香.太阳能光伏发电无线远程监控系统的研究与设计[J].计算机测量与控制,2012,20(12):29 -30.

[7] 许建风,田建创,方蕾.基于串口服务器的PLC 网络控制系统[J].浙江工业大学学报,2008,36(2):196-197.

[8] 陈平,郝继飞,周晓飞,等.基于串口服务器组网的自来水厂供水监控系统[J].湖南科技大学学报:自然科学版,2011,26(2):80-81.

[9] 赵春燕,孙英锐,董峰.高性能气象数据存储集群及在线扩展技术应用[J].计算技术与自动化,2013,32(3):117 -119.

[10]康洪波,刘瑞梅,侯秀梅.基于神经网络光伏发电预测模型的研究[J].电源技术,2013,37(3):447 -448.

猜你喜欢
功能模块串口远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于EM9000工控板高性能双串口通信模型设计与实现
远程诈骗
船舶电子设备串口数据的软件共享方法
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
高校二手交易网络平台功能及技术框架分析与设计