面向对象建模基础:信息模型、LD、LN、DO、DA的概念与关系

各位同学好,我是老张。今天咱们聊聊IEC61850里最核心的一个概念——面向对象建模。说实话,我刚接触这个协议的时候,也被这一堆缩写搞得头大。LD、LN、DO、DA,看着就像乱码。但搞懂了它们,你就掌握了智能变电站的“通用语言”。

我习惯把IEC61850的建模比作搭积木。你想想看,一个变电站里那么多设备,怎么让它们互相理解?靠的就是这套标准化的“积木块”。每个积木块都有名字、有属性、有功能,组合起来就是一个完整的设备模型。

什么是信息模型?

信息模型,说白了就是一套“描述规则”。它规定了:

  • 设备应该长什么样(结构)
  • 设备能干什么(功能)
  • 设备怎么跟别人说话(通信)

举个例子。你买了一个智能断路器,厂家A和厂家B的产品内部结构可能完全不同。但只要它们都遵循IEC61850的信息模型,在监控系统看来,它们就是“同一个东西”。这就是标准化的力量。

核心要点:信息模型是IEC61850的“语法”,所有设备都用这套语法来描述自己。

逻辑设备(LD)—— 物理设备的“影子”

逻辑设备,英文叫Logical Device,简称LD。它是什么?它是物理设备在通信世界里的“虚拟分身”。

一个物理装置可以包含多个LD。比如一个保护测控一体装置,可能同时包含:

  • 一个“保护LD”(负责保护功能)
  • 一个“测控LD”(负责测量和控制)
  • 一个“录波LD”(负责故障录波)

我在项目里遇到过这样的情况:现场有个老外厂家提供的IED,一个装置里塞了8个LD。当时调试的时候,我一个个对着SCD文件找,差点没晕过去。后来我学乖了,拿到新设备第一件事就是看它的LD列表。

我的习惯:每个LD的名字最好有含义,比如“PROT”表示保护、“CTRL”表示控制。别用“LD1”、“LD2”这种,否则后期维护会想骂人。

逻辑节点(LN)—— 功能的最小单元

逻辑节点,Logical Node,LN。这是整个模型里最核心的概念。一个LN代表一个具体的功能,比如:

  • XCBR:断路器
  • PTOC:过流保护
  • MMXU:测量单元

每个LN都有标准化的名字和定义。IEC61850-7-4这个标准里,定义了上百种LN。你想想看,从断路器到变压器,从保护到计量,全都有对应的LN。

我记得有一次调试一个老外的变压器保护装置,对方说“我们支持TCTR(电流互感器)LN”。我当时就笑了,因为TCTR是7-4标准里定义的,不支持才怪。这就是标准化的好处——大家用同一本“字典”。

避坑指南:我曾经遇到一个厂家,把保护功能塞到了“GGIO”(通用I/O)里。虽然也能用,但违反了标准。调试的时候,其他厂家的工具解析不出来,折腾了两天。所以,能用标准LN就别自己造轮子

数据对象(DO)—— LN的“属性组”

数据对象,Data Object,DO。它是什么?它是LN下面的一组相关数据。比如一个断路器LN(XCBR)下面,会有:

  • Pos:位置(合/分)
  • BlkOpn:闭锁合闸
  • BlkCls:闭锁分闸

每个DO都有自己的数据类型。比如“Pos”是可控状态,“BlkOpn”是状态量。DO把LN的功能拆解成了一个个可操作、可读取的“数据块”。

我习惯把LN比作一个“设备面板”,DO就是面板上的“仪表和按钮”。你按哪个按钮(写DO),设备就执行什么动作;你看哪个仪表(读DO),就知道设备的状态。

数据属性(DA)—— 最底层的“原子数据”

数据属性,Data Attribute,DA。这是模型里最小的数据单元,不能再拆了。比如“Pos”这个DO下面,会有:

  • stVal:状态值(0=分,1=合)
  • q:品质(好坏、无效等)
  • t:时标(什么时候变的)

你看,一个“位置”信息,在IEC61850里被拆成了三个DA:值、品质、时间。为什么要这么细?因为电力系统对数据的可靠性要求极高。你不仅要告诉监控系统“断路器现在是合的”,还要告诉它“这个信息是可靠的,是10:23:45.678秒采集的”。

关键理解:DA是“原子”,DO是“分子”,LN是“器官”,LD是“系统”。一层层组合,就构成了完整的设备模型。

它们的关系——一张图看懂

说了这么多,咱们用一张图来总结。下面这个SVG图,展示了从物理设备到数据属性的完整层次关系:

IEC61850信息模型层次结构 物理设备(IED) 逻辑设备(LD)—— 如:PROT、CTRL、MEAS 逻辑节点(LN)—— 如:XCBR、PTOC、MMXU 数据对象(DO)—— 如:Pos、BlkOpn、BlkCls 数据属性(DA)—— 如:stVal、q、t 每一层都是下一层的“容器”,层层嵌套,构成完整的设备信息模型

一个完整的例子

咱们拿一个实际的断路器控制场景来串一遍:

物理设备:ABB的断路器控制单元(IED)
  └── 逻辑设备:CTRL(控制LD)
        └── 逻辑节点:XCBR1(断路器1)
              ├── 数据对象:Pos(位置)
              │     ├── 数据属性:stVal(状态值:0=分,1=合)
              │     ├── 数据属性:q(品质:好/坏)
              │     └── 数据属性:t(时标)
              ├── 数据对象:BlkOpn(闭锁合闸)
              │     ├── 数据属性:stVal
              │     ├── 数据属性:q
              │     └── 数据属性:t
              └── 数据对象:BlkCls(闭锁分闸)
                    ├── 数据属性:stVal
                    ├── 数据属性:q
                    └── 数据属性:t

你看,一个简单的断路器位置信息,在IEC61850里被组织成了这样一个树形结构。监控系统要读“断路器位置”,实际上是在读“XCBR1.Pos.stVal”这个DA。同时,它还会读“XCBR1.Pos.q”来判断这个数据是否可靠。

实用技巧:在SCD文件里搜索“XCBR1.Pos.stVal”,你就能找到这个数据在通信报文里的具体映射。这是调试时最常用的方法之一。

总结一下

面向对象建模,说白了就是:

  • LD:物理设备的虚拟分身
  • LN:功能的最小单元(标准化的“积木块”)
  • DO:LN下面的数据组(“仪表和按钮”)
  • DA:最底层的原子数据(“螺丝钉”)

这套模型的好处是什么?你想想看,不管你是ABB、西门子还是南瑞的设备,只要遵循这套模型,监控系统就能“无差别”地访问它们。这就是IEC61850最大的价值——互操作性

嗯,今天就聊到这儿。下一章咱们会深入LN的实例化,讲讲怎么在SCD文件里配置这些模型。到时候我会拿一个真实的工程案例来演示,保证让你一看就懂。


公众号:蓝海资料掘金营,微信deep3321