跳转到正文

IEC 61850设备接入:从私有点表到统一模型

把一台柴油发电机组接入能源管理系统,看起来只是建立一条通信连接。控制器已经能够通过Modbus返回寄存器,EMS也能够读取数字,为什么还需要IEC 61850?

因为“读到了数字”不等于“理解了设备”。

假设柴油机控制器返回:

text
40001 = 2
40021 = 520
40035 = 8500
00017 = 1

仅凭这些地址和值,EMS无法知道:

  • 40035是功率、温度还是压力;
  • 8500应解释为8500 W、850.0 kW还是0.85 MW;
  • 这个值是否有效,什么时候产生;
  • 00017是一般提示、严重告警还是停机保护;
  • 写入启动命令之前需要满足哪些条件;
  • 更换另一厂家控制器后,这些地址是否仍然成立。

传统设备接入依靠厂家手册、Excel点表和项目人员的人工映射解决这些问题。IEC 61850希望把业务含义从人工文档中取出来,放进机器可以识别的标准对象中。

它要推动的核心变化是:

把“为每种设备定制一套翻译程序”,转变为“厂家或网关完成模型映射,项目按照统一模型做工程配置”。

一个具体任务:将三家柴油机组接入同一个EMS

假设一个微网项目有三台功能相似的柴油发电机组,分别来自A、B、C三个厂家。EMS对它们的需求基本相同:

  • 读取运行、停机、启动中和故障状态;
  • 读取有功、无功、电压、电流和频率;
  • 读取转速、油压、水温、燃油液位和启动电池电压;
  • 接收超速、低油压、高水温和启动失败告警;
  • 执行启动、停机、复归和出口开关分合闸;
  • 将数据用于画面、报表、告警和微网调度。

但三个控制器可能采用完全不同的表达:

业务信息A厂B厂C厂
有功功率40035 = 8500,乘0.1 kWACT_PWR = 850 kW31008 = 0.85 MW
运行状态40001 = 2RUN_STATE = 1状态字Bit 3
启动命令写线圈00025CMD_07脉冲输出DO_12

项目团队不得不为每个厂家分别完成:

text
协议驱动
→ 地址解析
→ 数据类型和字节序处理
→ 单位与缩放转换
→ 业务语义映射
→ 告警分级
→ 控制时序适配
→ EMS数据库与画面配置
→ 联调测试

这就是“每台设备定制开发”的来源。真正困难的不是没有通信协议,而是设备差异会穿透到EMS应用层。

当A厂机组更换成D厂机组时,修改可能沿着整条链路扩散:

text
设备协议变化
→ 驱动变化
→ 点表变化
→ 单位和状态码变化
→ EMS数据库变化
→ 告警和控制逻辑变化
→ 画面、报表与调度应用重新联调

观察“定制开发”如何转为“模型配置”

下面的演示使用三家柴油机组,逐步展示旧方式的重复开发、设备更换产生的连锁影响,以及IEC 61850如何重新划分厂家和项目集成方的责任。

演示边界

动画中的寄存器、实例名称和控制流程用于解释接入逻辑,并非特定厂家的真实点表或项目配置。正式项目应以设备协议、适用的IEC 61850版本和项目应用配置规范为准。

IEC 61850真正统一了什么

IEC 61850并不要求不同厂家的控制器内部程序相同。厂家仍然可以自由选择处理器、寄存器、算法、实时操作系统和内部变量。

它主要统一设备对外呈现的三件事:

  1. 信息模型,也就是“名词”:设备包含哪些功能,每项数据叫什么、表示什么、由什么属性组成。
  2. 通信服务,也就是“动词”:怎样读取、报告、控制和设置这些对象。
  3. 工程配置,也就是“关系图”:项目中有哪些设备,谁提供什么数据,谁订阅和控制,通信参数如何配置。

因此,完整的标准化接入不是单独使用一个协议,而是:

text
统一信息模型
+ 统一访问服务
+ SCL工程配置
= 可工程化的设备接入接口

柴发当前不支持IEC 61850,模型放在哪里

如果柴油机控制器原生支持IEC 61850,模型可以直接运行在控制器的IEC 61850 Server中。

本例假设现有控制器只支持Modbus或厂家私有协议。这时统一模型不放在柴油机控制器中,也不建议直接写进EMS,而应由接入网关承载:

text
柴油机控制器
现有Modbus/私有协议


IEC 61850接入网关
├── 采集原始寄存器
├── 完成类型、单位和缩放转换
├── 映射为IEC 61850对象
├── 生成质量q和时间t
├── 提供Read、Report和Control服务
└── 对外表现为IEC 61850 Server


EMS / 微网控制系统
IEC 61850 Client

例如:

text
控制器内部:
40035 = 8500
scale = 0.1 kW

网关对外:
MMXU1.TotW = 850 kW
q = good
t = 数据源时间

EMS不再关心40035,而是面向“柴油机总有功功率”这一业务对象。

这并没有让适配工作凭空消失,而是把它限制在更合理的边界:

  • 柴发原厂、网关厂商或集成商为每一种控制器型号建立一套可复用的模型映射模板;
  • 同型号的十台机组可以复用模板,只修改设备地址、实例名称和项目参数;
  • EMS继续使用同一套标准对象、画面、报表和调度应用。

统一模型建立后,信息怎样传递

统一模型不是每个采集周期都在网络中传送一遍。工程阶段和运行阶段传递的是两类不同信息:

text
工程阶段:
网关导出ICD
→ EMS或系统工具导入对象结构和服务能力

运行阶段:
柴发产生原始数据
→ 网关映射为标准对象
→ 通过Read或Report传给EMS

控制阶段:
EMS对标准控制对象发出命令
→ 网关反向映射为厂家协议
→ 执行结果映射回标准状态

下面的动画把模型导入、遥测上送、控制下发和状态反馈放在同一条链路中。

传递边界

ICD、SCD等模型文件主要用于工程配置;运行时传递的是对象引用、数值、质量、时间戳、控制命令和执行结果,而不是反复传递整个设备模型。

统一模型定义哪几类信息

以柴油发电机组为例,项目需要从IEC标准模型和项目应用规范中选择以下信息。

信息类别回答的问题柴发示例
设备身份它是谁机组编号、厂家、型号、序列号
功能结构它由哪些功能组成发电机测量、发动机监视、启停控制、出口开关
运行状态它现在处于什么状态停机、启动中、运行、冷却、故障
电气测量电气运行参数是多少有功、无功、电压、电流、频率、电能
发动机测量原动机状态如何转速、油压、水温、燃油液位、电池电压
告警与健康是否存在异常超速、低油压、高水温、启动失败、通信中断
控制与调节可以执行什么操作启动、停机、复归、分合闸、功率设定
数据上下文数据是否可信、何时产生单位、倍率、质量q、时间t
服务与工程信息怎样交换和配置DataSet、Report、Control、ICD、SCD、CID

IEC 61850-7-420定义分布式能源和配电自动化使用的信息模型,并尽可能复用IEC 61850-7-4中的通用逻辑节点。柴油发电机属于发电型分布式能源的一种,但项目仍需明确适用的模型子集和扩展规则。

五层结构分别代表什么

IEC 61850使用分层模型组织这些信息:

text
物理设备
└── 逻辑设备
    └── 逻辑节点
        └── 数据对象
            └── 数据属性

物理设备:模型运行在哪里

物理设备通常对应网络中可寻址的IED或Server。

由于本例柴油机控制器不原生支持IEC 61850,因此物理设备是接入网关,而不是柴油机机械本体:

text
柴油发电机组:被建模的业务资产
IEC 61850网关:承载模型和服务的物理设备

逻辑设备:按用途划分的功能区域

一台物理设备可以包含多个逻辑设备。逻辑设备不是新增硬件,而是模型中的功能分区。

例如可以按项目设计划分为:

text
LD0       公共管理
LD_GEN    发电机电气功能
LD_ENG    柴油发动机功能
LD_SWG    出口开关功能

这些实例名称用于解释结构,具体命名和分区应由产品模型及项目规范确定。

逻辑节点:标准化的功能角色

逻辑节点表示一个具有明确边界的功能单元。例如:

逻辑节点代表的功能
MMXU电压、电流、功率和频率等电气测量
MMTR电能计量
MSQI序分量和不平衡测量
XCBR断路器本体
CSWI开关控制
LLN0逻辑设备公共信息、数据集和控制块
LPHD物理设备公共信息和健康状态

MMXU1表示第一个MMXU逻辑节点实例。

数据对象:某项完整业务信息

逻辑节点内部包含数据对象。例如MMXU可以提供:

text
TotW   总有功功率
Hz     频率
PhV    三相电压
A      三相电流

数据对象回答的是:“这个功能对外提供哪一种业务信息?”

数据属性:最终值及其上下文

一个测量数据对象不是只有一个数值,还可以包含:

text
mag.f   实际浮点数值
units   单位和倍率配置
q       数据质量
t       数据源时间

因此,“850”会被组织成一条更完整的信息:

text
对象:柴油机1号总有功功率
数值:850
单位:kW
质量:good
时间:10:32:08.125

逐层观察柴油机模型

下面的动画从承载模型的接入网关开始,依次进入逻辑设备、逻辑节点、数据对象和数据属性,最终找到柴油机当前有功功率。

模型边界

演示中的LD_GENLD_ENGLD_SWG是用于讲解的逻辑设备实例划分,并不表示IEC标准强制要求所有柴油机采用完全相同的逻辑设备名称和组合。

“厂家做映射,项目做配置”分别在哪里完成

这句话对应三个不同的工作位置。

阶段责任方使用位置主要产物
产品或网关适配柴发原厂、网关厂商或集成商控制器固件、通信模块或网关映射工具IEC 61850 Server、ICD
系统工程配置系统集成商系统配置工具SCTSCD
单台设备配置调试人员、设备厂家IED配置工具ICTCID及设备下装配置
EMS应用接入EMS厂家、系统集成商EMS工程工具客户端模型、画面、报告和控制关系

第一步:在网关中完成私有数据到标准对象的映射

网关配置示意:

text
源协议:Modbus TCP
设备地址:1
寄存器:40035
数据类型:UINT16
缩放:0.1
工程单位:kW
目标对象:MMXU1.TotW
采集周期:1 s
通信失败:将质量q置为invalid

对于控制命令,还必须配置:

  • 启动命令是脉冲还是保持;
  • 是否要求远方状态;
  • 启动允许和闭锁条件;
  • 命令超时;
  • 成功反馈;
  • 通信失败时的安全动作。

不能只把一个IEC 61850控制值直接写入寄存器,否则可能绕过原有的安全条件。

一条启动命令的映射表长什么样

以“启动柴发”为例,EMS面对的是标准对象和控制服务:

text
对象:LD_DG/DCIP1.EngCtl
服务:Operate
控制值:ctlVal=on

网关中的映射记录则需要把它转换为柴发控制器实际接受的命令:

text
匹配条件:LD_DG/DCIP1.EngCtl + on
目标协议:Modbus TCP
设备地址:3
功能码:06
寄存器:41001
写入值:1
前置条件:远方模式且无启动闭锁
成功判据:运行状态寄存器变为2
反馈对象:LD_DG/DCIP1.EngOnOff

地址和数值是讲解示例,但映射记录应同时包含“命令怎样下发”和“怎样确认成功”,而不能只有一对地址。

控制边界

DCIP1.EngCtl示意往复式发动机启停控制。正式项目应依据采用的IEC 61850-7-420版本、产品模型和柴发应用Profile确定对象、控制值及ctlModel

当前功率怎样从柴发进入统一模型

测量值走的是另一条链路。以当前有功功率为例:

text
柴发控制器:
Modbus Unit 3 / FC03 / 40035 = 6500

网关映射:
6500 × 0.1 = 650.0 kW

统一模型:
LD_DG/MMXU1.TotW
├── mag.f = 650.0
├── q = good
└── t = 数据源时间

MMXU1.TotW是测量对象,通常允许Read和Report,不允许EMS直接写入实际测量值。EMS可以主动执行GetDataValues,也可以启用ReportControl,由网关在数据变化时主动报告。

动画中的“订阅”是便于理解的说法。更准确的工程过程是:

text
把TotW加入DataSet
→ 由ReportControl引用该DataSet
→ EMS启用ReportControl
→ 网关采集、映射并检测数据变化
→ 网关发送Report

其中:

  • DataSet是报告所包含的数据引用清单,不是数据库;
  • ReportControl规定报告引用哪个DataSet、怎样触发、是否缓冲以及完整性周期;
  • ReadReportSelectOperate是IEC 61850通信服务,不是数据对象自身定义的操作;
  • 网关通常周期采集Modbus并更新实时缓存,EMS主动Read时读取的是模型中的最新值。

第二步:由网关交付ICD能力文件

ICD描述这台网关能够提供哪些:

  • 逻辑设备和逻辑节点;
  • 数据对象和属性;
  • DataSet能力;
  • Report和控制服务;
  • GOOSE能力及其他通信约束。

它回答的是:“这类设备能够做什么?”

第三步:在SCT中完成项目关系配置

系统集成商导入ICD,并根据项目需求:

text
建立机组实例DG01
→ 关联一次设备和出口开关
→ 选择EMS需要的数据
→ 建立DataSet和Report
→ 配置控制关系
→ 配置IP和通信参数
→ 生成全系统SCD

SCD回答的是:“这些设备在当前项目中怎样协作?”

第四步:生成CID并下装网关

IED配置工具从系统配置中提取与当前网关相关的内容,生成或形成设备可接受的配置并下装。

设备运行时需要的是自己的实例、报告、控制和通信配置,不需要把项目中的全部业务逻辑写入固件。

第五步:EMS导入客户端视图

EMS根据SCD或工程导入结果建立对象引用:

text
DG01/MMXU1.TotW → 1号柴油机有功功率
DG01/MMXU1.Hz   → 1号柴油机频率
DG01/XCBR1.Pos  → 1号柴油机出口开关位置

随后将这些标准对象关联到画面、数据库、报表、告警和调度应用。

模型究竟放在设备侧还是EMS侧

两侧共同遵守模型,但角色不同:

text
IEC 61850网关                         EMS
┌──────────────────┐            ┌──────────────────┐
│ Server           │            │ Client           │
│ 实时对象和值      │◀──────────▶│ 对象引用和应用     │
│ 生成Report       │  MMS/报告   │ 接收、显示、存储   │
│ 校验并执行Control │  控制       │ 发起控制           │
└──────────────────┘            └──────────────────┘
  • 网关保存并更新实时模型实例;
  • EMS保存模型的客户端视图和应用映射;
  • 网关提供Read、Report和Control等服务端行为;
  • EMS发起读取、订阅报告和控制操作。

因此,标准模型不是只写在EMS数据库中的一套点名。它首先必须由设备或网关作为通信对象对外提供。

EMS怎样通过统一模型完成控制闭环

统一模型建立后,EMS控制柴发时不再直接操作厂家寄存器,而是对标准控制对象使用IEC 61850控制服务。

一个典型的闭环是:

text
EMS检查远方状态、启动允许和闭锁
→ 对柴发启动对象执行Select/Operate
→ 网关校验权限和ctlModel
→ 映射为柴发原生命令
→ 柴发控制器执行本地启动顺序
→ 网关上送运行状态、电压、频率和功率
→ EMS操作出口断路器
→ XCBR位置和TotW形成最终反馈

这里需要区分三类责任:

层次负责内容
EMS下达启动、停机和功率目标,监视状态和结果
IEC 61850模型与服务统一命令、状态、测量和交互方式
柴发控制器或PLC执行预热、盘车、保护、暖机、外围辅机和现场联锁

统一模型应描述启动命令、启动允许、当前阶段、闭锁、结果和失败原因,但通常不描述每一个内部继电器动作和PLC定时器。安全保护和详细顺序应在本地闭环完成,EMS只感知关键业务状态。

IEC 61850不等于完全即插即用

即使使用IEC 61850,项目仍需完成工程设计和一致性约束。

如果项目只写一句“支持IEC 61850”,不同厂家仍可能选择不同的可选对象、实例划分、报告方式和控制语义。要真正实现替换和复用,还应定义柴油发电机应用配置规范或BAP,至少明确:

  • 必选逻辑节点和数据对象;
  • 机组运行状态枚举;
  • 油压、水温、燃油等发动机信息采用的模型;
  • 单位、倍率、质量和时间要求;
  • 告警分级;
  • 启动、停机、复归和急停控制语义;
  • DataSet和Report组织方式;
  • 通信中断与数据失效策略;
  • SCL版本、命名空间和交付要求;
  • 网络安全、权限和时间同步要求。

发动机专有信息如果没有适用的标准对象,应按照项目扩展规则建模;不能为了方便随意创造名称,也不应把所有信息都塞入GGIO后失去业务语义。

结语

从设备接入角度看,IEC 61850标准模型要解决的不是“网线能不能连通”,而是:

不同厂家的设备能否使用统一、可由机器理解的方式,声明自己的能力、提供实时信息并接受操作。

对于不原生支持IEC 61850的柴油发电机组,最实际的方案是:

text
柴油机继续使用现有协议
→ 接入网关完成私有数据到标准模型的映射
→ ICD声明设备能力
→ SCL配置项目关系
→ EMS面向标准对象和服务开发

这样做不能消除所有工程工作,却能够把厂家差异限制在网关适配层,把项目工作从重复编写翻译器,转变为可复用、可检查、可交换的模型配置。

参考资料

内容与代码许可证待项目确认