光伏加柴油发电机组的混合电站建在半热带稀树草原气候区,监测系统要把设备状态和 4 类气象量同时送到本地触摸屏与远程服务器,并在无人值守下自主运行。承载这套系统的是 1 台 CompactRIO。
01 要做什么
这个项目的交付物是一套集中式监测系统,监测对象是一座光伏与柴油发电机组构成的混合发电站。电站还配有电池组,并把电送往驻防营区。
需要被监测的东西分成两组。一组是发电与配电设备本身的运行状态:光伏发电、柴油发电机组、电池组,以及送往营区的电量。另一组是气象条件:太阳总辐射、环境温度、光伏组件温度、相对湿度,一共 4 类气象量。采集气象量的用途有两个------判断电站当下的运行条件,以及为后续研究发电能效留下数据。
系统的硬要求有三条:集中、稳定、自主。电站所在区域属于半热带大陆性气候,植被是稀树草原类型,环境条件对电子设备并不友好。系统要在这种条件下长期无人值守地运行,而且要同时保住本地与远程两路数据。还有一条附加要求:本地数据展示不许再增加额外硬件。
02 难在哪:同一套需求,两代不同的架构
这条路不是一步走到的。同样的监测需求,项目方此前已经在另一处营区做过一版。那一版的架构是分布式的:用一组无线传感器网络(WSN)组成网状(mesh)拓扑,节点之间的链路可以动态配置,按设定的时间间隔远程采集气象数据,再无线汇聚到集中器。为了给 WSN 省电,采样间隔被定成 1 小时。无线链路工作在 2.405 GHz,每个传感器节点通过基于 IEEE 802.15.4 的 ZigBee 标准与集中器通信。服务器放在数据中心,上面跑一套集中监测平台,负责数据的处理、呈现与分析。
到了这一版,原计划是沿用同一套做法。改变判断的是前一版在当地环境条件下积累的经验:分布式无线方案在这个场景里不够可靠,最终换成了集中式方案,核心是一台 CompactRIO 控制器。
第二个难点是设备接口不统一。混合发电系统(HGS)的数据,包括告警,走 SNMP 协议取回;柴油发电机组那一侧的电气参数、燃油液位和告警,走 Modbus RTU RS485 取回。再加上把数据送往数据中心需要的 HTTP 与 JSON,一台控制器要同时当好几种协议的主站。
03 方案:CompactRIO 承载采集,LabVIEW 做集成
选型时被列入考虑的因素有几条:质保,以及质保期可以延长;技术支持是否靠得住;还有一条很实在的------气象传感器的信号直接接到 NI-9203 电流采集模块上,量程 ±20 mA,自己开发信号调理板这件事被省掉了。
软件在 LabVIEW 里开发,由 CompactRIO 控制器承载数据采集,同时接入电站各设备的运行参数。系统里专门做了同步模块:一头把数据推给 web 服务器,一头在触摸屏上给现场操作员提供本地图形界面。本地界面不需要额外硬件,这正好对上当初定的那条要求。
对 LabVIEW 本身的评价,项目方列得很具体。图形化的 VI 与 subVI 加上完整文档,代码容易看懂;预置的库可以直接对接模拟量与数字量采集模块;界面靠拖拽搭起来;每个 VI 承担一项具体功能、可以在应用里任意位置复用,代码因此可扩展。此外,LabVIEW 自带的 Modbus 与 FTP API,加上社区共享的第三方组件 EasyHTTP,把 HTTP、JSON 和 SNMP 这三件事的实现难度都降了下来------cRIO 就是靠 HTTP 把数据送往数据中心的。
能力不是天生就有的。项目方在现场参加过 LabVIEW Core 1、Core 2、Core 3 以及 Connectivity 的课程,配合邮件、视频会议、电话和实验室到访这几种技术支持渠道,才把开发进度和交付节点对上。
04 LabVIEW 里的程序:分层与协议插件
从程序结构看,这套应用的分工相当清楚。
底层是 I/O。气象传感器经 NI-9203 进入 cRIO,±20 mA 的电流信号换算成工程量;柴油发电机组的 Modbus RTU 数据经 RS485 进来;混合发电系统的 SNMP 数据经以太网进来。
中间是协议层,几路驱动并行跑:SNMP 负责从混合发电系统取回运行数据和告警;Modbus RTU 负责从柴油发电机组取电气参数、燃油液位和告警;HTTP 配合 JSON 负责把 cRIO 侧的数据打包送出去。EasyHTTP 这类社区组件在这里省掉了从零实现 HTTP 客户端的工作量。
应用层是若干承担具体功能的 VI 与 subVI。项目方强调的正是这一点:一个 VI 只做一件事,所以可以搬到应用里的任何位置;要加功能时是往上搭,而不是改主程序。
人机层分两路输出。触摸屏上的本地界面给现场操作员,web 服务器给远程访问,两者由同一套同步模块驱动,看到的是同一份数据。
05 结果
系统交付后的状态是:光伏发电、柴油发电机组、电池组和送出电量这几部分的数据,能在本地和远程两侧被记录和可视化;4 类气象量与设备告警一并进入记录。
项目方对结果的评价有两条。一是与用其他平台开发相比,这套系统的完成用时更短。二是得到的系统是稳定的,能在当地恶劣的环境条件下自主运行。
对操作员而言,变化在于判断电站运行状态这件事从"到现场看"变成了"看界面"。界面把设备状态集中呈现出来,运行与维护决策因此有了直接依据。
06 这个案例说明什么
集中式和分布式不是先进与落后的区别,而是环境与运维成本的匹配问题。 前一版用 WSN 加 mesh 拓扑,把采样间隔定成 1 小时来省电,在实验条件下是合理设计;换成集中式之后,省掉的是无线链路的可靠性风险和维护工作,代价是布线。判断依据不是技术新旧,而是当地环境条件给出的实际经验。
协议异构是能源类监测项目的默认前提。 一座电站里,发电系统和柴油机组来自不同供应商,接口从 SNMP 到 Modbus RTU 各不相同。系统的价值有一半在于把这些协议收进同一个控制器、同一份数据模型里,而不是在中间再插一层转换设备。
"不额外增加硬件"值得当成一条硬需求来写。 本地界面直接跑在同一台控制器上、由触摸屏呈现,省掉的不只是设备费用,还有一整套需要单独维护的软硬件。这类目标在需求阶段提出才有意义,事后补不上。
先算无线链路的维护成本
WSN 方案省电又灵活,但长期运行的维护与可靠性成本要提前估算。这一版换回集中式,依据正是上一版在当地环境里积累的经验。
把协议支持当成选型硬指标SNMP 管发电系统、Modbus RTU RS485 管柴油机组、HTTP 加 JSON 往外送数据。与其事后在中间加转换设备,不如一开始就要求控制器覆盖这些协议。
07 写在最后
能源类监测项目的复杂度,很少来自单个设备,而是来自设备之间的接口:发电系统、柴油机组、电池组各有各的协议,气象传感器又走模拟量,最后还要在本地和远程两头把同一份数据呈现出来。跨协议的系统集成与界面开发,是这个项目最花时间、也最值得投入的部分。