4. 设备接入通信协议选型

虚拟电厂(VPP)要把分布式光伏、储能、充电桩、可调负荷、台区终端等异构设备聚合为可调度资源,协议选型直接决定接入周期、数据质量、控制时延和后期运维成本。本节不讨论“哪个协议最好”,而是建立一套按设备类型、数据方向、实时性要求和现场条件进行匹配的选型方法,并给出可落地的判断依据。

一、先明确选型的四个约束维度

在虚拟电厂场景中,协议选型应优先看以下四个维度,而不是先看协议知名度:

  • 数据方向与实时性:只采集遥测(如逆变器出力)还是需要下发功率指令(如储能PCS充放电)。只读场景对时延容忍度高,控制场景通常要求秒级甚至亚秒级闭环。
  • 设备原生接口:现场设备出厂自带什么协议,往往比“理想协议”更重要。工业逆变器、电表、保护装置的原生协议差异很大。
  • 网络与拓扑条件:设备是否在同一个局域网、是否跨公网、是否有NAT、是否使用4G/5G无线链路,直接决定能否使用需要固定IP和端口映射的协议。
  • 语义与互操作性:协议是否自带信息模型。Modbus只传寄存器地址,语义靠点表约定;IEC 61850和OPC UA自带对象模型,语义自描述能力强。

二、五类协议在虚拟电厂中的定位

Modbus(RTU/TCP)是现场层最普遍的“通用语言”。它简单、轻量、几乎全部工业逆变器、电表、温控器都支持。缺点是只有寄存器地址,没有语义,点表一旦错位就会把有功读成无功;且主从轮询机制下,一个网关挂几十台设备时轮询周期会明显拉长。适合作为站内设备到边缘网关的采集协议,不适合直接跨公网做广域控制。

DL/T 645是我国电能表行业标准,分1997版和2007版,2007版支持更完整的费率、需量、事件记录。虚拟电厂做电量结算、负荷基线核算时,电表数据必须走DL/T 645或其后继标准。它本质是电表专用协议,不适合控制类设备,通常由采集终端或网关转换为上行协议。

IEC 61850面向变电站自动化,自带SCL配置、MMS/GOOSE/SV等映射,语义严谨、互操作性强,适合储能电站、升压站、保护测控等对可靠性和模型一致性要求高的场景。但它的工程门槛高,需要ICD/SCD配置和一致性测试,小型分布式设备往往不具备原生61850接口,通常通过规约转换装置接入。

MQTT是轻量级发布/订阅协议,天然适配4G/5G、NAT穿透和弱网环境,适合海量分散设备上行遥测。它的短板是语义弱、无统一信息模型,且QoS只保证消息到达,不保证控制指令的时序和唯一性。因此MQTT更适合遥测上行和事件上报,控制指令需配合应用层序号、确认与超时重发机制。

OPC UA提供信息模型、订阅机制和安全通道,既能做采集也能做控制,适合作为边缘网关到虚拟电厂平台的汇聚协议。它支持复杂类型和语义建模,但资源开销大于MQTT,在极低功耗终端上不适用。

虚拟电厂协议分层选型参考 现场设备层 分布式光伏逆变器 Modbus RTU/TCP 储能PCS/BMS Modbus / IEC 61850 关口/分支电表 DL/T 645 充电桩/可调负荷 Modbus / MQTT 保护测控装置 IEC 61850 边缘网关 / 规约转换 南向采集驱动 Modbus / DL645 / 61850 点表映射与归一化 地址→语义标签 本地缓存与断点续传 时序队列 北向协议适配 MQTT / OPC UA 虚拟电厂平台 遥测入库与实时库 MQTT订阅 可调能力评估 基线/裕度计算 调度指令分解 OPC UA / MQTT下发 指令确认与闭环 超时重发/回执校验 遥测上行 控制下行 选型要点 • 现场层优先原生协议 • 电表走DL/T 645 • 站控走IEC 61850 • 广域上行用MQTT • 汇聚建模用OPC UA • 控制需回执与超时 • 点表必须版本管理 • 网关做协议隔离 • 安全通道不可省 • 时标统一为UTC 实时性:IEC 61850/OPC UA 订阅 > Modbus轮询 > MQTT(受网络影响) | 语义能力:OPC UA ≈ IEC 61850 > DL/T 645 > Modbus > MQTT裸报文

三、按场景给出选型结论

结合上面的分层结构,可以形成几条明确的选型规则:

  1. 站内采集:逆变器、PCS、温控等优先使用设备原生Modbus,由边缘网关统一轮询。若单网关挂载超过30台设备,应把轮询周期拆分为快慢两组,快组只读关键遥测(有功、无功、状态),慢组读电量和告警。
  2. 电量与结算:关口表和分支表使用DL/T 645-2007,采集终端按15分钟冻结电量读取,避免实时读寄存器造成结算口径不一致。
  3. 站控与保护:储能电站、升压站内涉及保护联闭锁和快速控制的节点,使用IEC 61850 MMS/GOOSE,保证模型一致性和动作确定性。
  4. 广域上行:分散的充电桩、小型光伏、可调负荷通过4G/5G使用MQTT上报遥测和事件,主题按“租户/站点/设备/测点”分层设计,QoS设为1,并携带UTC时标和序号。
  5. 平台汇聚:当虚拟电厂需要向多个上层系统(调度、交易、碳管理)提供统一数据服务时,在边缘网关或平台侧暴露OPC UA信息模型,把寄存器语义映射为可浏览的对象节点。

四、控制类指令的协议选择与可靠性设计

遥测可以容忍秒级延迟,但功率调节指令不能。以储能PCS的功率下发为例,若走MQTT,必须在应用层补齐三项机制:指令唯一ID、设备回执、超时重发。平台下发setpoint后,网关在本地记录指令ID和期望值,设备执行后回传实际功率和状态;若3秒内未收到回执,网关重发一次,连续两次失败则上报“控制不可达”事件,平台将该设备从可调资源中暂时剔除。

若走OPC UA,可利用其订阅和Method调用机制,把“写设定值”和“读回执”放在同一个会话中,减少应用层自建确认逻辑的工作量。但OPC UA对网络稳定性要求更高,跨公网时建议在网关与平台之间建立VPN或使用OPC UA over TLS,并限制匿名访问。

常见误区:把Modbus TCP直接暴露到公网做远程控制。Modbus本身没有认证和加密,一旦端口可达,任何人都能写寄存器。正确做法是Modbus只留在站内,由网关转换为带认证的MQTT或OPC UA后上行。

五、点表与语义映射的落地方法

协议选型确定后,真正影响接入质量的是点表。建议每个设备类型维护一份协议点表模板,字段至少包含:设备类型、协议、寄存器地址/对象路径、数据类型、缩放因子、单位、语义标签、读写属性、采集周期。例如某三相逆变器有功功率寄存器地址为0x9C41,数据类型int16,缩放因子0.1,单位kW,语义标签pv.active_power,只读,采集周期1秒。网关按这份表把原始值转换为带语义的JSON或OPC UA节点值,平台侧不再关心底层协议差异。

点表必须纳入版本管理。现场更换逆变器型号、升级固件后寄存器地址可能变化,若点表没有版本号和变更记录,就会出现“数据还在,但含义变了”的隐性故障。建议在网关配置中记录点表版本,并在遥测消息中携带该版本号,平台侧发现版本不匹配时触发告警。

六、选型检查清单

检查项 判断标准 不满足时的处理
设备原生协议是否明确 有厂家协议手册和点表 要求厂家提供或现场抓包确认
是否需要控制下发 是则必须有回执和超时机制 增加应用层确认或改用OPC UA
网络是否跨公网 跨公网禁用无认证协议 网关转换后走MQTT/TLS或VPN
时标是否统一 全部使用UTC并带毫秒 网关统一打时标,禁用设备本地时间
点表是否版本化 有版本号和变更记录 建立点表仓库,变更走审批
断网续传是否可用 网关本地缓存≥4小时 扩大缓存或降低采集频率

协议选型的本质是匹配:现场层用设备能听懂的语言,边缘层做翻译和缓存,平台层用带语义、带安全的协议汇聚。Modbus、DL/T 645、IEC 61850、MQTT、OPC UA 各自解决不同层次的问题,虚拟电厂通常需要同时使用其中两到三种,而不是只选一个。把点表、时标、回执和版本管理这四件事做扎实,协议差异带来的接入风险就会大幅下降。