APP下载

分布式光伏数据采集器的设计与实现

2018-08-24,

计算机测量与控制 2018年8期
关键词:窗体采集器分布式

, , ,

(湖北大学 计算机与信息工程学院,武汉 430062)

0 引言

目前,太阳能并网发电的应用对象主要分为3个方向:集中型光伏电站、商用型并网发电和家庭户用型并网发电。光伏数据对于供应运营商和用户都十分重要,如发电量、发电效率和设备运行情况等都是供应商和用户重点关注的信息,如何高效的收集这些数据就显得非常重要[1]。

在光伏监控系统中,PC机直接通过RS485总线或RS485总线伺服器将采集到的数据直接或通过网络传输至数据中心,传输正确率无法保证,传输方式单一,丢包可能性大,铺设通信线缆成本高,数据无法存储,无法本地显示,出现故障无法报警,无法兼容多种主流受控逆变器设备等[2]。同时,商用和户用型发电设备具有布局分散、网络连接受限等特点,这就亟需依托嵌入式的平台的具有数据显示、存储、转发功能的软件系统来实现基础数据的安全管理和传输,而分布式光伏数据采集器能够满足商用和户用型的需求[3]。

1 总体架构设计

分布式光伏数据采集系统主要包括分布式光伏数据采集器和后台信息中心两部分,其总体架构如图1所示。

分布式光伏数据采集器由嵌入式处理器、RS485通信模块、GPRS通信模块、LCD液晶、SD卡模块组成[4]。其中,嵌入式处理器采用基于ARM Coretx-M3内核的芯片,运行符合工业规范的嵌入式实时操作系统uCOS II,负责控制数据采集、通信和显示等任务;RS485通信模块负责采集光伏发电设备组中逆变器等设备的运行参数;GPRS通信模块负责定时将采集的数据通过网络传输至后台信息中心,供PC端应用程序访问,为管理者提供远程的光伏发电数据可视化;LCD在本地显示设备运行数据,方便普通用户查看光伏发电信息,也利于维修人员检修设备;SD卡用于自动备份光伏数据采集器获取的信息,在网络条件不稳定的情况下,可延期发送数据,避免数据丢失。

后台信息中心由服务器、PC Web端和移动APP终端三部分组成。分布式光伏数据采集器通过GPRS通过TCP/IP协议将数据传输到服务器,再由PC Web端和移动APP终端对光伏数据进行多样展示[5]。按照数据采集系统的总体结构设计要求,设计的光伏数据采集器的硬件结构如图2所示。本文将从着重描述分布式光伏数据采集器的硬件和软件的设计与实现。

图1 分布式光伏数据采集系统架构

图2 分布式光伏数据采集器硬件框图

2 硬件设计部分

硬件设计主要包括基于ARM Cortex-M3[6]内核的控制器最小系统、RS485通信模块、GPRS通信模块、LCD显示、SD卡外部存储和电源模块。

分布式光伏数据采集器控制器选型综合处理器速度、存储容量和外设接口等情况,采用低成本、稳定性高的STM32F207VET6芯片。该芯片为32位处理器,主频可达120MHz,能够运行uCOS II实时操作系统;拥有192KB SRAM、512KB FLASH、32位定时器、2个DMA控制器、6个串口、1个RTC(具备日历功能)、1个SDIO接口、1个以太网MAC控制器和1个FSMC接口等硬件资源,配置满足光伏数据采集器的硬件电路设计需求[7]。

LCD显示选用晶联讯电子的JLX256128G-257型模块,驱动IC为ST75256功能较强、稳定性好,采用3.3V供电,整个LCD带背光情况下功耗不大于100 mW。LCD可显示图片、汉字、英文、数字和符号,如最大显示256×128点阵单色图片或显示16个×8行=64个的16×16点阵的汉字,单页面可显示信息量满足本次需求。LCD不带字库,降低LCD成本,将设备所需文字取模后,存放在数据采集器本地,实现UI的自定义显示,提升界面的美观性。LCD接口连接在处理器自带的FSMC总线上,提高了LCD的刷屏速度,降低了LCD驱动开发难度,采用8080时序并口方式进行数据传输。LCD背光通过处理器的GIPO进行控制,用户触发液晶显示时点亮背光,超时未操作液晶时背光将熄灭。液晶显示电路如图3所示。

图3 液晶显示电路

RS485通信模块采用MAX3485芯片进行电平转换,RS485接口电路如图4所示。R33为终端匹配电阻,减弱反射信号,保证通信稳定。R32和R34为偏置电阻,以保证RS485总线空闲时维持高电平[8]。RS485具有抗干扰能力、传输距离远、数据传输速度快和支持大量节点等特性,在工业领域得到广泛应用。设计的两路RS485接口均增加隔离环节,即完成电平转换又实现信号隔离,减少了干扰信号经由信号线传入传出,提高系统的抗干扰能力。RS485总线在10m时数据传输速率最高可达10Mbps,总线最长可传输距离为1200m,此时速度可达100kbps。一般RS485最多支持32个节点,特定的RS485芯片节点最大可达400个,本次设备连接8个节点,即支持对8台光伏逆变器进行数据采集。

图4 RS485接口电路

与后台中心通信采用GPRS模块进行数据通信,预留了以太网和WIFI扩展接口。GPRS是在现有GSM系统上发展出来的一种新的数据承载业务,支持TCP/IP协议,可以与分组数据网(Internet等)直接互通。GPRS无线传输系统的应用范围非常广泛,几乎可以涵盖所有的中低业务和低速率的数据传输,尤其适合突发的小流量数据传输业务。本硬件平台的GPRS无线通信模块为SIM900A,内嵌了TCP/IP协议,采用工业级的GPRS模块,适用于单片机数据采集传输系统没有TCP/IP协议栈但采用串口通信的情况。SIM900A采用4V供电,功耗较低,待机模式电流低于18mA,支持900/1800 MHz频段,满足分布式光伏数据采集器所处网络环境。采用SIM900A设计的最小系统如图5所示,模块射频发射时电流峰值可达2A,设计时VBAT引脚应并接大电容,且VBAT在PCB走线时尽量短、宽来减少走线阻抗,提高模块的稳定性。

图5 GPRS模块最小系统

SD卡接口采用STM32F207VET6自带的SDIO接口[9]进行连接,其连接电路如图6所示。SD卡通过SDIO接口进行数据读写,通过时钟信号线CLK(SDIO_CLK引脚)控制时钟周期,命令信号线CMD(SDIO_CMD引脚)传输SD卡主机发送的命令,数据线DATA(SDIO_D0~ SDIO_D3引脚)传输SD读写的数据。SD卡采用容量为8GB的micro SD,减少设备体积。

图6 SD卡接口电路

电源模块电路如图7所示,输入5V/2A直流电,通过ASM1117芯片转换为3.3V,为整个设备(除GPRS模块外)供电。5V通过MIC29302芯片转换为4V,为GPRS模块供电。整个电路具有完善的滤波电路,供电稳定可靠。在PCB设计时应考虑电源布局和布线,GPRS模块的供电走线应适当加宽、布线短。

图7 电源模块电路

数据采集器选用小功率的LED指示灯来实现电源供应、设备运行状态和网络情况的指示,便于观察、分析整个设备运行情况。数据采集器还预留了四位拨码开关,用于后期设备功能的扩展。4个按键用于切换LCD显示界面、本地配置数据采集器运行参数,如服务器IP地址和端口号、数据采集波特率、数据发送时间间隔和屏幕休眠时间参数。

由于分布式光伏数据采集器通常用在网络环境有限的环境,数据在网络不稳定的情况下不能及时传输,结合SD卡数据备份功能,通过GPRS网络可在网络良好且无工作任务的情况下,将未发送的数据继续传输,数据传输成功率要求达到100%。整个采集器实现了本地数据可视化、运行状态可视化、参数可配置和低功耗运行等功能,通过GPRS网络实现了数据和状态的远程可视化,极大地方便了对分布式光伏逆变器的监控,提升了用户使用效果。

3 软件设计部分

光伏数据采集器软件系统基于C语言开发,在集成开发环境Keil MDK下编译、调试。设计时采用由总到分式策略进行模块化开发,以便于调试、维护、升级。开发的软件保存在用户层,通过调用CMSIS层的设备外设函数和uCOS II API来管理硬件以及实现相应的功能,其架构如图8所示。

图8 光伏数据采集器软件架构

光伏数据采集器软件系统主要包括5个部分,分别是在线设备查询、数据获取、数据存储、数据传输和人机交互界面。该软件系统通过查询和识别在线的受控设备,并定时的从这些设备上获取光伏电参量数据和环境数据。同时,通过GPRS模块或以太网与服务器建立的TCP/IP连接将数据传输到服务器上,相关数据也被保存到SD卡中。人机交互界面则用以实现实时数据显示与系统参数的显示和修改。光伏数据采集器软件结构如图9所示。

图9 数据采集器软件功能划分

1)设备查询流:光伏数据采集器通过485总线与受控逆变器连接,其通信接口为串行通信口采用标准的RS485,信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验位。传输时先传高字(节),后传低字(节),数据传输波特率默认使用9600bps。检查在线设备之前先设置所查询的初始设备地址,根据地址生成测试帧。发送测试帧,根据Modbus协议,如果该设备号地址在线则会响应包含地址的数据帧。通过解析发送和响应的地址相同则可判断该设备在线,依次增加地址查询设备即可获取所有在线设备,并将这些地址保存在在线设备地址表中,同时记录总的在线设备数。查询在线设备流程如图10所示。

图10 设备查询流程图

2)中断信号量:数据采集器设备的数据获取存储和传输有明显的周期规律,在工作时间段(7:00~18:00)数据采集器会每个15分钟一场采集数据,存储数据,发送数据。采集、存储和发送数据的时间依次间隔1分钟。该过程的实现是闹钟A每分钟产生一次中断,以15次中断为一个周期。每个中断周期中,当RTC时间为工作时间段且中断累积到13次时及向获取数据任务发送获取数据的信号量;当RTC时间为工作时间段且中断累积到14次时及向存储数据任务发送存储数据的信号量;当RTC时间为工作时间段且中断累积到13次时及向传输数据任务发送传输数据的信号量。具体流程如图11所示。

图11 中断信号流程图

3)数据获取:通信的物理层是数据采集器与受控设备通过串口转接的RS485连接,数据采集器串口与转换芯片的收发直接连接,数据采集器另有I/O控制芯片收发方向。软件中先初始化串口和方向控制口,再通过应用层的Modbus协议获取受控设备的数据。

其中物理层通信流程如下:

(1)通过将USART_CR1寄存器中的UE位置1来使能USART;

(2)在程序中配置USART_CR1中的M位来定义字长;

(3)在程序中设置USART_CR2中的停止位数;

(4)若执行多缓冲区通信,在USART_CR3中使能DMA,并根据多缓冲区通信方式来进行DMA寄存器的设置;

(5)使用USART_BRR寄存器来配置合适的波特率;

(6)将USART_CR1中的TE设置为高电平,使得在第一次传输数据时首先发出一个空闲帧;

(7)往USART_DR寄存器传入需要传输的采集数据;

(8)当传输的数据全部写入USART_DR寄存器后,若TC位变为高电平,则表明最后一个帧的传送已完成。

数据采集器与逆变器通信的总线采用RS485,应用层协议采用工业界通用的Modbus标准协议。Modbus标准包含两个通信规程中采用的Modbus应用层协议以及服务规范:串行链路上的Modbus和TCP/IP上的Modbus[10]。本文的数据采集器应用层通信协议采用的是Modbus串行链路上基于485-A的通信协议。Modbus的工业通用帧结构如图12所示,一般通过应用数据单元(ADU)来表示。ADU主要由简单数据单元(PDU)和其他的附加域构成,其中PDU与基础通信层无关。对于串行链路通信方式,RS485 ADU最大可为256字节,一般服务器地址域占1字节,CRC校验码占2字节,则PDU最大为253字节。Modbus通过一个“big-Endian”表示地址和数据项,传输多个数据时将先发送最高有效位。

图12 Modbus工业通用帧结构

数据采集器在收到RTC闹钟A中断每15分发送给该模块的信号量后,按在线设备地址编号表内的地址依次生成发送数据帧获取光伏数据并更新到数据缓冲区。如果获取数据失败,则只更新对应设备地址号对应缓冲区的设备状态,数据不更新。获取数据流程如图13所示。

图13 获取数据流程图

4)保存数据:在数据获取后,收到RTC闹钟A中断每15分发送给该模块的信号量,则根据获取到的设备状态将缓冲区数据存储到SD卡中,同时保持存储时间。保存数据流程如图14所示。

图14 保存数据流程图

其中SD卡的初始化[12]过程比较复杂,具体过程分析如下:

(1)对常见SD卡的错误类型进行报错处理,确保SDIO接口初始化成功;

(2)初始化SDIO的外设时钟,进行工作模式设置;

(3)上电后发送CMD0命令,SD卡进入空闲状态;

(4)发送CMD8命令,若SD由响应且CRC检验一致,则SD卡为支持2.0版本的SD卡,无响应则为1.x版本的SD卡或者MMC卡;

(5)通过命令CMD55+ACMD41,检测SD卡上电情况,若响应ACMD41命令后,OCR寄存器第30位CCS为1,则SD卡为2.0版本的SDHC卡,反之为SDSC卡;

(6)发送CMD2命令,判断SD卡接入情况,以及获取CID寄存器内容,如SD卡生产商ID、名称和生产信息等;

(7)发送CMD3命令,将SD卡的相对地址传输给主机(数据采集器),主机发送CMD9命令来获得SD卡的具体数据,如容量和扇区大小等信息;

根据上面步骤,SD卡初始化基本完成。通过发送CMD7命令,使得SD卡进入传输模式,可开始对SD卡的读/写操作。

5)数据传输:在通信流程中,数据获取并收到RTC闹钟A中断每15分发送给该模块的信号量后,则将缓冲区数据通过TCP连接发送到远处服务器上。具体流程如图15所示。

图15 发送数据流程图

其中,GPRS状态机是保证软件在多个GPRS运行状态之间正常转换,使GPRS正常完成数据发送或正常关闭,以保证下一次数据正常发送。其状态转换如图16所示。

图16 GPRS状态转换图

整个流程的运行步骤如下:

(1)查询是否需要SIM 密码检测;

(2)查询GPRS模块信号质量;

(3)网络注册;

(4)附着GPRS业务;

(5)设置接入点CMNET;

(6)启动网络连接功能;

(7)查询本机IP地址;

(8)建立连接,配置远程服务器IP地址和端口号和TCP连接方式;

(9)发送数据;

(10)发送结束帧标识符;

(11)关闭TCP连接;

(12)关闭移动场景;

(13)关机断电。

6)人机交互界面:人机界面用于数据显示,系统状态显示,系统参数显示和系统设置,本人机交互的主要设计思想是查找表状态机设计,窗体结构体设计,控件设计和回调函数[13]。

其中,查找表状态机是用以通过查找表搜索界面跳转的逻辑关系;窗体结构体这包含了所有界面的窗体信息,如窗体ID,窗体控件指针,回调函数的指针;控件设计则是根据控件的不同功能设计窗体中的背景控件,列表控件和输入焦点;回调函数则是根据不同的按键和整体的输入所执行的函数,有些与窗体相关的函数具有通用性可以重复调用,如窗体初始化函数、窗体切换函数、焦点切换函数和列表内容切换函数等。

对应不同的窗体,其大部分的结构和回调函数都是相同的,他们的区别这主要在于背景信息,焦点信息,列表控件和初始化过程中的数据绑定函数及按键更新回调中的数据更新函数的不同。其中窗体结构体设计如图17所示。

图17 窗体结构体设计

窗体UI设计主要功能函数有窗体初始化函数、窗体退出函数、窗体异常函数、按键响应函数和窗体定时刷新函数。窗体初始化函数负责初始化每个界面显示的内容,窗体退出函数负责切换到当前窗体退出后的窗体,窗体异常函数负责跳转到异常发生时所设置的跳转窗体,按键响应函数负责将窗体切换到按键切换的窗体,窗体定时刷新函数用于定时更新界面上动态显示的内容,如设备运行时间和日累计光伏发电量等。

窗体通过唯一的ID进行索引来切换。窗体上显示的内容通过x、y坐标来放置,利用按键来选择切换项,反显用来指示选中项。

窗体的运行是依赖于信号量的触发,信号量主要是通过本地4个按键输入来产生,其运行流程如图18所示。

图18 人机界面流程图

根据光伏数据采集器功能需要,其界面结构图如图19所示。用户可通过本地按键查询所关心的日累计发电量,工程师可在本地查看数据采集器故障代码,也可通过本地按键配置设备运行参数。

图19 人机交互界面结构图

4 实物测试与分析

通过硬件设计的电路图绘制PCB文件进行打样,采集元器件进行实物制作。在完成硬件实物基本版本制作后,根据软件设计的功能进行硬件模块测试。经过多次测试硬件的模块功能,确认硬件设计无误后,开始软件和硬件的整体联合测试。

光伏数据采集器的LCD显示了连接逆变器的数量和轮询方式查询逆变器运行数据。本地可以通过4个按键进行参数设置和界面切换。

光伏数据采集器的维护只需定期检查网络指示灯是否正常,发送数据时间是否有误。如果网络异常则重新检查连接网络,若无网络接入条件且需要获取数据,则将设备中SD卡取出,通过SD卡中的ID.txt获取该设备保存的备份数据。

数据传输成功率通过数据库中日传输数据量、该数据生成时间戳和传输时间戳来判断,设置传输时间(7:00~18:00)期间,每隔一小时整点传输一次数据,7:00开始传输数据,日传输数据条目应为12条,且数据生成时间戳与传输时间范围内的整点时间大致接近。若数据传输时间戳不在7:00~18:00期间,则该条数据网络不稳定情况下,从SD卡备份数据导出对应时间段的数据。

在连续一周的GPRS网络发送数据测试过程中,数据发送成功率达到了99%以上,表明光伏数据采集器的数据传输比较稳定。结合本地SD卡数据备份,在没有发电数据传输任务期间(18:00至次日7:00),对传输失败的数据进行二次发送,数据发送成功率可达100%。

5 结论

本文设计与实现了分布式光伏数据采集器,解决了户用型光伏领域数据监控的难题。通过分布式光伏数据采集器,可实现对户用型光伏发电数据的远程监控,在网络受限的情况下仍可通过SD卡进行数据备份,避免运行数据丢失。

通过分布式光伏数据采集器传输的数据,可以监测光伏电站生产运行情况,统计分析电站历史运行数据,有利于实现电站日常工作和流程的规范化、标准化、数字化管理。分布式光伏数据采集器为光伏电站的正常运行和生产管理提供技术保障,在光伏发电领域将有着很好的应用前景。

猜你喜欢

窗体采集器分布式
COVID-19大便标本采集器的设计及应用
碰撞式宽频振动能量采集器研究进展
浅析分布式发电对电力系统的影响
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
基于预处理MUSIC算法的分布式阵列DOA估计
新型自动气象站采集器故障判断分析
分布式并联逆变器解耦电流下垂控制技术
家庭分布式储能的发展前景
WinCE.net下图形用户界面的开发