一、从物理世界到信息模型:IEC61850 的层次结构
刚接触 IEC61850 的朋友,往往会被一堆英文缩写搞晕。Server、LD、LN、DO、DA…… 说实话,我当年第一次看到这些术语时,也头疼了好一阵。
但别急。这套模型其实非常符合直觉。你想想看,一个变电站里有什么?有保护装置、有测控装置、有智能终端。每个装置里又有各种功能:过流保护、断路器控制、测量采集。每个功能又包含具体的数据:电流值、开关状态、控制命令。
IEC61850 的信息模型,说白了就是把物理世界的东西,一层层映射到数字世界。就像你整理文件柜——先分柜子(Server),再分抽屉(LD),再分文件夹(LN),再分文件页(DO),最后到具体某个字(DA)。
我个人习惯把这五层结构叫做「五层宝塔」。从顶到底,越来越细。咱们一层层拆开看。
核心记忆口诀:
服务器里装设备,设备里面放功能,功能里面有数据,数据拆开是属性。
1.1 Server(服务器)—— 整个装置的代言人
Server 是最高层。它代表一个物理装置在网络中的通信入口。比如你有一台保护装置,它对外通信时,就是一个 Server。
每个 Server 有唯一的 IP 地址和端口号。它负责管理下面所有的逻辑设备、逻辑节点,以及网络通信的建立和维持。
嗯,这里要注意:一个物理装置可以只有一个 Server,也可以有多个 Server(比如双网冗余)。但绝大多数工程中,一个装置就是一个 Server。
我的经验: 在配置工具里,Server 通常对应一个 ICD/CID 文件。你打开这个文件,最外层就是 Server 的信息。我刚开始做项目时,老是在文件里找不到 Server 在哪——其实就在根节点下,名字叫 "Server"。
1.2 Logical Device(逻辑设备)—— 装置里的功能分组
一个 Server 下面可以挂多个 LD。LD 是对物理装置内部功能的逻辑分组。
举个例子:一台合并单元装置,里面可能包含:
- 一个「测量」逻辑设备(LD0)
- 一个「保护」逻辑设备(LD1)
- 一个「控制」逻辑设备(LD2)
每个 LD 有自己独立的数据空间和访问权限。你可以把 LD 理解成装置里的「功能模块」。不同厂家对 LD 的划分习惯不太一样,但一般遵循 IEC61850 的命名规范。
我记得有一次做项目,老外的图纸上 LD 名字写的是 "PROT"、"MEAS"、"CTRL"。我当时还纳闷,怎么不写中文?后来才明白,这是国际标准规定的缩写,全世界通用。
| LD 名称 | 常见含义 | 典型功能 |
|---|---|---|
| LD0 | 公共逻辑设备 | 装置基本信息、时间同步 |
| PROT | 保护逻辑设备 | 过流、距离、差动保护 |
| MEAS | 测量逻辑设备 | 电流、电压、功率测量 |
| CTRL | 控制逻辑设备 | 断路器分合、刀闸控制 |
1.3 Logical Node(逻辑节点)—— 最小的功能单元
LD 下面就是 LN。LN 是 IEC61850 最核心的概念。它代表一个具体的、最小的自动化功能。
比如:
- XCBR —— 断路器(控制断路器分合)
- PTOC —— 过流保护(检测过流并动作)
- MMXU —— 测量单元(测量三相电压电流)
- GGIO —— 通用 I/O(处理开入开出信号)
每个 LN 都有标准化的名字和功能定义。IEC61850 定义了上百种 LN,覆盖了变电站几乎所有功能。你想想看,这就像乐高积木——每个 LN 是一块标准积木,拼在一起就构成了完整的保护测控装置。
避坑指南: 我曾经遇到一个坑——同一个功能,不同厂家用了不同的 LN 类型。比如「过流保护」,有的用 PTOC,有的用 PIOC。虽然都能实现功能,但互操作时就会出问题。所以做集成时,一定要核对 LN 类型是否匹配。
1.4 Data Object(数据对象)—— LN 里的具体数据项
一个 LN 包含多个 DO。DO 就是 LN 所拥有的具体数据。
以断路器 LN(XCBR)为例,它包含:
- Pos —— 断路器位置(合/分)
- BlkOpn —— 闭锁合闸
- BlkCls —— 闭锁分闸
- OpCnt —— 操作次数计数
每个 DO 都有标准化的名字和语义。比如 Pos 代表位置,它的值只能是 0(分)、1(合)、2(中间)、3(故障)。
我个人习惯把 DO 理解成「变量名」。你写程序时定义的变量,在 IEC61850 里就是 DO。只不过这些变量名是国际标准统一规定的,不能随便改。
1.5 Data Attribute(数据属性)—— 数据的最小单元
DO 下面就是 DA。DA 是信息模型的最底层,代表数据的具体属性。
比如 DO "Pos" 包含多个 DA:
- stVal —— 状态值(0/1)
- q —— 品质(是否有效、是否被取代)
- t —— 时标(数据变化的时间)
- d —— 描述(文本说明)
你看,一个「断路器位置」数据,不光有值(stVal),还有品质(q)和时间(t)。这就是 IEC61850 厉害的地方——它不光传数据,还传数据的「上下文」。这样接收方就能判断数据是否可靠。
重点记住: DA 是模型的最底层。你最终读写的数据,其实都是在操作 DA。DO 只是 DA 的容器。
二、层次关系总览
咱们用一张图来总结这五层的关系。我特意画了张 SVG,方便你理解。
从这张图可以清楚看到:Server 在最顶层,DA 在最底层。数据从 DA 一层层向上聚合,最终通过 Server 对外通信。
三、实际项目中的例子
光讲理论太枯燥。咱们看一个真实例子。
假设你有一台保护装置,型号叫 "PCS-931"。它有一个过流保护功能。在 IEC61850 模型里,它是这样的:
Server: PCS931_Server
├── LD: PROT
│ ├── LN: PTOC1(过流保护1段)
│ │ ├── DO: Str(启动)
│ │ │ ├── DA: stVal(状态值:0或1)
│ │ │ ├── DA: q(品质:正常/无效)
│ │ │ └── DA: t(时标:2025-01-15 10:30:00)
│ │ ├── DO: Op(动作)
│ │ │ ├── DA: stVal
│ │ │ ├── DA: q
│ │ │ └── DA: t
│ │ └── DO: A(电流值)
│ │ ├── DA: mag(幅值:1200.5 A)
│ │ ├── DA: q
│ │ └── DA: t
│ └── LN: GGIO1(通用开入)
│ └── DO: Ind1(开入1)
│ ├── DA: stVal
│ ├── DA: q
│ └── DA: t
└── LD: MEAS
└── LN: MMXU1(测量)
└── DO: PhV(相电压)
├── DA: phsA(A相电压:57.7 V)
├── DA: phsB(B相电压:57.8 V)
└── DA: phsC(C相电压:57.6 V)
你看,从 Server 到 DA,一共五层。每一层都有明确的含义。你如果要从这台装置读取过流保护的启动状态,实际上就是在读:
PCS931_Server.PROT.PTOC1.Str.stVal
这个路径,就是 IEC61850 的「数据引用路径」。在配置工具里,你经常能看到这种写法。
小技巧: 我刚开始学的时候,老是记不住这个路径顺序。后来我总结了一个规律:从大到小,从粗到细。就像你写家庭住址——中国、北京、朝阳区、某某小区、3号楼、502室。Server 是国家,LD 是城市,LN 是小区,DO 是楼栋,DA 是门牌号。这样一想,是不是好记多了?
四、为什么搞这么复杂?
你可能会问:搞五层模型,不累吗?直接传个数值不就行了?
嗯,这个问题我当年也问过。后来做了几个项目才明白——
第一,标准化。 不同厂家的装置,只要遵循同一套模型,就能互相理解。A 厂的保护装置发的数据,B 厂的监控系统能直接读懂。不需要写一堆协议转换程序。
第二,可扩展。 你想增加一个新功能?只要在对应的 LN 里加个 DO 就行。不影响其他部分。我见过一个项目,后期增加了「弧光保护」功能,就是在原有模型里加了一个 LN,其他什么都没动。
第三,自描述。 每个数据都带品质、时标等属性。接收方不需要猜这个数据靠不靠谱。品质一栏写着「无效」,你就知道这个数据不能用于保护逻辑。
说白了,这套模型就是给变电站里的设备们定了一套「通用语言」。大家用同一种语言交流,自然就不会鸡同鸭讲。
避坑指南: 我曾经遇到一个项目,A 厂家的保护装置和 B 厂家的监控系统对不上。查了两天,发现是 LN 实例编号不一致——A 厂用 PTOC1,B 厂配的是 PTOC2。就这一个数字之差,数据死活传不过去。所以做集成时,一定要核对 LN 的实例编号。
五、小结
这一章咱们讲了 IEC61850 的五层信息模型:
- Server —— 物理装置的网络入口
- LD —— 装置内的功能分组
- LN —— 最小的标准化功能单元
- DO —— LN 里的具体数据项
- DA —— 数据的最小属性单元
这五层结构,是 IEC61850 的基石。后面的所有内容——通信服务、配置语言、互操作测试——都建立在这个模型之上。
我个人建议你花点时间把这个模型记牢。最好能自己画一遍层次图,写几个例子。等你真正理解了「从 Server 到 DA」的路径,后面的学习就会顺畅很多。
好了,这一章就到这里。下一章咱们聊聊「抽象通信服务接口(ACSI)」,看看这些模型数据是怎么在网络上传输的。
公众号:蓝海资料掘金营,微信deep3321