基于LabVIEW和Modbus/TCP的风电数据采集系统设计

2018-07-20 05:58张子实赵静一
自动化仪表 2018年7期
关键词:风电风机程序

张子实,赵静一,周 枫

(1.燕山大学机械工程学院,河北 秦皇岛 066004;2.福氏新能源技术(上海)有限公司,上海 201210)

0 引言

近年来,风电给风电设备制造业带来了巨大的市场,同时也带来了巨大的挑战[1]。随着风力发电机组装机容量的快速发展、累计运行时间的持续增加,风电机组的维护问题日益突出[2]。为了快速而准确地进行风电机组故障诊断和设计优化,需开发高效、稳定的风电数据采集系统,并完善相应的数据库。

在风机工作过程中,数据采集系统采集关键对象数据信息,并进行数据分类、存储和处理,从而实现风机系统运行实时监控、故障及时分析,进而提高风力发电机组运行的可靠性,延长其使用寿命[3]。传统的风电数据采集系统使用VB、C等文本化语言编写,使用Modbus 美国国家信息交换标准编码(American standard code for information interchange,ASCII)或远程终端设备(remote terminal unit,RTU)串口通信模式[4],对于风场中风机数量较多、通信环境较差以及程序维护更新频繁等状态的适应性较差。

本文在实际现场风机变桨数据采集项目的基础上,开发了一种基于LabVIEW和Modbus/TCP 通信协议的风机实时数据采集系统。该系统在LabVIEW环境下开发,在计算机强大的图形用户界面(graphical user interface,GUI)的基础上,充分利用Modbus/TCP通信协议高可靠性、低成本的优势,对运行中的风电变桨系统数据进行记录。系统运行稳定、控制可靠、操作友好,为风电自动化领域的实时数据监控和网络化通信提供了一种有效的解决方案[5]。

1 Modbus/TCP核心通信模块

1.1 Modbus/TCP简介

Modbus/TCP是运行在TCP /IP协议上的Modbus报文传输协议,即将Modbus协议帧嵌入到TCP/IP协议帧中,利用网络传输Modbus协议报文[6]。Modbus通常用于设备之间监控和数据采集(supervisory control and data acquisition,SCADA)的网络通信,而TCP可以在软件中高效地处理Modbus请求和响应,使用专用连接和标志符来实现更有效的网络连接。与串行链路Modbus ASCII或RTU通信相比,这种建立在以太网基础上的通信协议可扩展性更优,更易于集成不同网关设备,传输效率更高。

1.2 LabVIEW通信程序

LabVIEW是NI公司开发的、使用图标函数代替文本语言创建应用程序的虚拟仪器开发环境[7]。LabVIEW开发环境中集成了大量内置硬件驱动程序、控件和可供扩展的函数库,使得开发人员可以通过虚拟仪器程序(virtual instrument,VI)图标连线,高效地建立科学的编程体系,快速地在前面板(用户操作界面)和后面板(程序框图界面)完成模块化调试运行。

LabVIEW提供Modbus VI和Modbus I/O服务器,用于在不同类型总线或网络连接的设备之间进行Modbus通信[8]。标准的Modbus I/O功能性较为简单,通常需要配置购买LabVIEW DSC和LabVIEW Real-Time附加模块。而Modbus VI可通过Modbus Library的形式免费下载安装。Modbus VI和TCP VI可配合使用,功能完善、搭配方便。

1.3 通信模式与内容

Modbus/TCP采用C/S模式进行报文传输。该模式基于4种类型的报文,即请求、指示、响应和证实[9]。其数据帧由MBAP 报文头、功能码、数据域组成,去除了从机地址、校验码,由TCP /IP和以太网校验的机制来校验传输数据的准确性[10-12]。其采集数据内容包含控制器和驱动器数据两部分,数据地址涵盖了所有项目。

Modbus数据表如表1所示。

表1 Modbus 数据表

2 系统架构

2.1 系统层次布置

整个风电数据采集系统包括数据前端采集设备、数据采集服务端程序模块和远程监控客户端。系统运行流程如图1所示。数据前端采集设备安装在风机轮毂配电柜中,主要由DEIF AWC400变桨控制器、PHOENIX CONTACT 可组态嵌入式计算机Basic line BPC 2000及其他通信辅件组成。两者都可以直接安装在变桨控制柜或柜内导轨上。其中:DEIF AWC400主要负责整合风机自身和变桨电机驱动器的数据,并完成实时数据上传;BPC 2000主要作为承载数据采集服务端程序的载体,使用Windows 7操作系统。数据采集服务端程序基于LabVIEW,在Windows操作系统开发运行,由Modbus/TCP通信、数据处理存储以及系统配置和状态维护等部分等组成。系统根据用户需要,完成程序配置更新,通过与数据前端采集设备通信得到数据,并存储在计算机本地或实时地传输给远程监控客户端。远程监控客户端直接面向用户。用户可通过TeamViewer直接登录风场组态计算机进行远程控制、实时监控和文件传输。传输得到的历史数据及运行日志可以作为分析风机故障诊断的依据。

图1 系统运行流程图

2.2 系统设计功能点

上位机软件系统在LabVIEW环境下开发。整个程序整合为三大模块:配置文件导入模块、主通信循环模块以及数据处理保存模块。

①配置文件导入模块。

系统通过读取安装目录data support文件夹中的配置文件,将数据转化为局部变量,完成对系统运行状态的初始化输入与控制。data support文件夹由Set.txt、Error.txt、Modbus configuration.txt、Modbus name.txt和System operation record.xlsx等组成。其中:Set.txt主要负责设置通信IP地址及端口、采样频率、采样周期以及异常状态下调整参数;Error.txt文件用于存储系统运行日志,内容包含发生故障时间、次数和判断依据;Modbus configuration.txt 文件用于更改Modbus运行状态,包括功能码、起始地址和读取数量等;Modbus name.txt文件用于存储数据表头标志,以单列形式保存;System operation record.xlsx文件用于存放开发者系统版本号以及现场服务工程师更改配置时的文件存档记录条。

②主通信循环模块。

整个主通信程序建立在while循环之上,通过定时结构和事件结构,完成对程序运行的监控。初始化每个风机的数据、IP、端口及通信标志,将其绑定为唯一数组簇,初始化通信标志为布尔假;TCP连接成功后,进入Modbus通信,得到寄存器数据;一轮循环过后,在下一轮循环中更新通信标志直接使用通信成功的IP ref跳过TCP,直接进行Modbus通信。如果中途出现通信异常,首先根据通信IP和端口再次连接TCP通信;在规定的循环时间内如通信成功则返回主循环,如通信失败则返回空字符,直至通信成功再次返回主循环。通信异常的事件会被记录在系统运行日志中。

③数据处理保存模块。

通信得到的寄存器数据首先被系统打包成一维数组;然后根据数据类型进行分类整理,包括转十进制整形字符串、个别位置无符号化及状态识别位数据导出等;最后在该一维数组首列添加当前循环的系统时间,完成单次节点的数据存储。LabVIEW提供了整套数组处理函数、字符串处理函数以及定时时间函数,在通信循环框内就能方便地搭建处理系统。

数据保存建立在通信循环外的while循环中。保存测试数据,或回放存储的数据就要使用文件I/O操作。LabVIEW在文件I/O模块中提供了创建拆分文件路径、读取及写入电子表格、打开、关闭、查询和删除文件等函数模块。先通过安装文件根目录拆分得到需要存储数据的“data”文件夹路径,在初始设定每1 s采集一次数据的条件下,将每5 min的数据及数据列名称写入电子表格,并以当前最后一次保存时间为文件名保存。

当系统发生异常断电事故,系统会从Modbus传输来的数据中获得辨识,更改为异常状态下的存储周期。因为在异常电源状态下,这段时间的数据具有更高的分析价值,缩短存储周期可以获得更多的分析数据。当系统数据达到容量限定值而没有及时导出数据时,系统会根据设定溢出比例删除最早的历史数据,不会发生容量崩溃。

3 系统安装运行与数据分析

在组态计算机上运行程序需要将其编译生成可执行程序(简称exe)文件,将生成的exe文件和一些用到的组件打包生成installer,即安装程序,然后在目标计算机上运行安装程序。运行过程中生成的exe文件、LabVIEW运行引擎以及其他所用到的工具包会自动安装到目标计算机上。这种移植方法较为简单。

主程序运行界面包含界面提示栏、标题栏、Modbus配置栏、地址文件栏、通信状态栏及数据展示栏。程序运行过程中,系统计数栏数字跳动,MB Status状态灯常亮。点击停止存盘按钮,程序停止,数据展示栏展示收集数据,生成error日志记录文件及生成完整数据记录文件。为保证通电重启后依旧可以采集数据,程序更改了系统注册表,设置了开机自启动。设备配置了无线网卡。用户可以通过TeamViewer远程登录该界面进行监控。随着记录时间增加,在data文件夹中会保存按时间顺序排列的txt文件,可合并成一个数据文件,并导入Matlab进行后续的数据分析。

以海西A1风机的数据为例,重点分析驱动器参数类的数据。导入合并后的数据,用plot指令绘制得到的位置指令曲线如图2所示。

图2 位置指令曲线

由图2可知,在将近10 h内,风机大部分时间处于停机状态。

4 结束语

风力发电的高效稳定依赖于风机大量的实时数据分析。本文开发了基于Modbus/TCP通信协议的风电数据采集系统。开发过程中,软件直接调用软件通信函数,使系统搭建调试周期短;操作过程中,HMI界面友好,具有稳定的异常状态处理机制和灵活的文件配置机制;运行过程中,实现了多对象高效率通信、采集数据完整、存储稳定,便于查询处理。该系统已成功运行一段时间并传回阶段性数据,其系统模式为风电数据采集系统开发提供了一种新的途径。

猜你喜欢
风电风机程序
试论我国未决羁押程序的立法完善
海上风电跃进隐忧
分散式风电破“局”
风机折翼“倒春寒”
风电:弃风限电明显改善 海上风电如火如荼
“程序猿”的生活什么样
风机倒塔事故为何频发?
英国与欧盟正式启动“离婚”程序程序
某热电厂风机电机节能技术改造
重齿风电