IEC 61850 ICD文件解析
一、IEC 61850
IEC 61850是电力系统自动化领域的国际通信标准,由国际电工委员会第57技术委员会于2004年颁布。该标准通过定义变电站三层通信架构(站控层、间隔层、过程层)实现智能变电站工程标准化,其核心特点包括面向对象建模、数据自描述、网络独立性和抽象通信服务接口(ACSI)。
1.1 解决什么问题
我们以在变电站进行断路器远方遥控操作为例,运行人员通过监控主机对断路器进行远方控制,监控主机(在IEC 61850中被建模为客户端)首先向断路器发送一份控制命令(例如合闸),断路器收到命令后进行相应操作,操作完成之后再向监控主机发送一个报告,说明断路器位置已经发生改变。在这个过程中,断路器和监控主机一起协同工作,称为“互操作”。
为了实现断路器和监控主机之间的互操作;
- 第一监控主机首先要知道断路器的名称是什么,以及如何在变电站通信网络中正确找到该断路器(寻址);
- 第二它要知道需要向断路器发送什么信息。
第一个问题在于,实际工程中不同的用户或制造商可能会用不同的名字来命名断路器,有的可能用"CircuitBreaker1",有的可能用“CBK-2”。
第二个问题是究竟以何种方式传达操作命令,才能使通信双方都能正确理解并执行该命令。
这个简单的操作过程揭示了实现互操作的关键,即信息模型和信息交换方法要达到统一,这也正是IEC 61850标准所要解决的主要问题。
IEC 61850标准做了两个方面的标准化工作:
- 第一是对网络上传递的信息内容进行了标准化,例如统一采用“XCBR”作为断路器的标准命名;
- 第二是对这些信息交换的机制进行了标准化。
在IEC 61850标准中,这一套标准的信息交换机制就是抽象通信服务接口(ACSI)。
上面的断路器远方控制只是变电站自动化系统执行的诸多任务中的一种。 类似的任务还有很多,如操作员在远方切换保护装置的定值区号,装置向后台主机上传测量值、事故顺序记录SOE信号等。这些由变电站自动化系统执行的任务,如控制、监视、继电保护等,在IEC 61850标准中被称为功能(function)。
1.2 信息模型
信息模型和信息交换机制的统一是实现设备间互操作的关键,而信息交换机制在很大程度依赖于标准化的信息模型,因此信息模型及其建模方法是IEC 61850标准的核心。
信息模型用于描述现实世界中对象的某些特征、参数。IEC 61850标准中的信息模型是对变电站实际物理设备及其功能的一种抽象描述,用于解决通信双方对网络上传递的信息的相互理解问题,是实现互操作的基础之一。变电站设备信息模型的构建在有的文献中也被称为设备建模或数据建模。
不同于以前的通信标准,IEC 61850标准采用了面向对象的建模方法,从整个变电站到变电站内的各种设备、各个IED均被看作对象。IEC61850标准为每类对象建立了相应的信息模型。
在软件工程领域,面向对象建模的基本思想是利用计算机逻辑来模拟现实世界中的物理存在,IEC 61850标准的建模思想与之类似。
以现实世界中的实际断路器为例,我们使用IEC 61850标准为之建立的抽象信息模型--逻辑节点XCBR,XCBR就是断路器的虚拟模型。
在面向对象建模中,每个对象均应该包含属性和服务。XCBR作为一个代表断路器的对象类,同样也包含这两个要素;
- 包含Pos(断路器位置,合位/分位)、BlkOpn(跳闸闭锁)等属性;
- 包含合闸、分闸、位置上送等服务。
1.2.1 逻辑节点(LN)
逻辑节点LN(Logical Node)是IEC 61850标准面向对象建模的关键部件,也是面向对象概念的集中体现。变电站自动化系统的各种功能和信息模型的表达式都归结到逻辑节点上实现。
逻辑节点的概念体现了将变电站自动化功能进行模块化分解的一种建模思想。IEC 61850标准建模的思路就是将变电站自动化系统的功能进行分解,分解的过程就是模块化处理,形成一个一个小的模块。每个逻辑节点就是一个模块,代表一个具体的功能。多个逻辑节点协同工作,共同完成变电站内的控制、保护、测量以及其他功能。
为了满足变电站自动化系统的应用需求,IEC 61850-7-4标准定义了涵盖变电站一次设备、继电保护、测量控制、计量等领域近90个逻辑节点,覆盖了变电站内的各种设备和各种自动化功能。逻辑节点类:
常用逻辑节点:
下图是一个针对变电站一个完整线路间隔所建立的信息模型,它包含两个IED。
IED1是一台集成了保护、测量和控制功能的物理装置,IED2代表了监控主机。依照IEC 61850标准建模的思路,对IED1和IED2装置的功能进行了分解,得到了图中代表各个具体功能的逻辑节点。
IEC 61850的建模是一个逐步分解、再相互结合的过程。逻辑节点是分解得到的最小功能单元,具体描述变电站IED及其组成的自动化系统的各种功能;它可以看做是变电站IED模型的基本组成部件,多个逻辑节点组合在一起形成一个IED,共同完成IED所要实现的各种功能。
1.2.2 数据和数据属性
逻辑节点的概念体现了将变电站自动化功能进行模块化分解的一种思路,XCBR就是分解得到的代表断路器类设备的一个逻辑节点。
XCBR逻辑节点包含Pos(位置)、BlkOpn(跳闸闭)和CB0pCap(断路器操作能力)等多类信息;
- Position代表断路器的位置信息,能够被远方监视和控制;
- Block to Open代表断路器拒绝分闸的能力,例如当断路器操动机构的液压压力低于闭锁值时分闸会被闭锁。
在IEC61850中,XCBR包含的Position属性(代表开关位置)和Block to Open属性(跳闸闭锁)被定义为数据Pos和BIkOpn。Pos和BIkOpn可以看作是对逻辑节点XCBR继续分解得到的更小的模块。
实际上Pos和BIkOpn中所包含的信息还需要作进一步分解,Pos数据至少包含状态(Status)和控制(Control)两类信息;
- 状态类信息Status:包含断路器的实际位置值Value(分位off、合位on、中间位置intermediate和损坏状态bad-state)、该位置数据的品质(quality)和断路器变位时的时标(timestamp)三个方面的信息;
- 控制类信息Control:包含控制值ctVal(on或off)、最近一次控制命令的发出者(originator)和控制命令序号(Control Num)。
在IEC 61850中,Pos数据下包含的这些value、quality、 timestamp信息被定义为数据属性DA(Data Attribute)。
IEC 61850-7-3对Position和Block to Open两类信息进行了归纳和提炼, 提出了公用数据类CDC (Common Data Class)的概念。
1.2.3 公共数据类(CDC)
XDIS是代表隔离开关类设备的逻辑节点,它的Position所包含的信息和XCBR中的Position基本类似,因此可以从二者当中提炼出公用数据类DPC。DPC既可以应用于断路器设备的数据模型中,也能适用于隔离开关类设备的数据模型定义。
CDC (Common Data Class - 公共数据类) 体现了一种模块化的设计思想,每一个公用数据类均是能够被多次重复使用的模块。可以减少相同数据定义的重复描述,提高使用效率,也能够保证数据属性定义的一致性。
公用数据类DPC被反过来用于定义XCBR逻辑节点中的数据Pos。Pos可以看作是DPC的派生类,它继承DPC的全部数据属性(例如ctlVal、origin、ctlNum和stVal等),因此在定义数据Pos时不需要列出全部数据属性,只要引用DPC即可。
IEC 61850-7-3标准严格定义了每种CDC由哪些数据属性(DA) 组成,以及这些DA的层次结构。以 MV为例:
- 必选包含:mag(量值)、q(品质)、t(时标);
- 可选:instMag、range;
- 其它:更多可以参考IEC 61850-7-3标准;
这种预定义的结构确保了不同厂商的设备对同一种数据类型有着完全一致的数据模型,这是实现互操作性的基础。
IEC 61850-7-3一共定义了30多种公共数据类,分别属于7个不同的组:
| 组名 | 说明 | 所包含的CDC |
|---|---|---|
| status information | 状态信息类 | SPS、DPS、INS、ACT、ACD、SEC、BCR |
| measurand information | 测量信息类 | MV、CMV、SAV、WYE、DEL、Delta、SEQ、HMV、HWYE、HDEL |
| controllable status information | 可控状态信息类 | SPC、DPC、INC、BSC、ISC |
| controllable analogue information | 可控模拟信息类 | APC |
| status settings | 状态定值类 | SPG、ING |
| analogue settings | 模拟定值类 | ASG、CURVE |
| description information | 描述信息类 | DPL、LPL、CSD |
常用的CDC类型:
| CDC代码 | 全称 | 中文含义 | 典型应用 |
|---|---|---|---|
| SPS | Single Point Status | 单点状态 | 开关位置、告警信号 |
| DPS | Double Point Status | 双点状态 | 更可靠的开关位置 (分-合-中间-故障) |
| ENS | Enumerated Status | 枚举状态 | 设备行为模式 (Beh) 、健康状态 (Health) |
| MV | Measured Value | 测量值 | 电流、电压、功率、温度 |
| CMV | Complex Measured Value | 复数测量值 | 相量测量 (PMU) |
| SAV | Sampled Value | 采样值 | 用于SV报文传输的瞬时值 |
| SPC | Single Point Control | 单点控制 | 简单的分/合控制命令 |
| DPC | Double Point Control | 双点控制 | 分/合/保持等控制命令 |
| INC | Integer Controlled Step | 整型步控 | 档位调节 (升/降) |
逻辑节点名字、数据对象名字和数据属性名字在IEC 61850中被统称为对象名字(Object Name)。将不同层次的对象名字连接成一串,就形成了对象引用(Object Reference)。对象引用又称对象索引,它可以直观地标明对象在树形模型中的位置,逻辑节点、数据和数据属性都有各自的引用。
XCBR中的Pos数据大约包含20个数据属性,如下所示:
这些数据属性可以分为以下四类:
- 状态类信息status:包括反映断路器实际位置的状态值stVal、该stVal的数据品质q以及断路器变位时的时标信息t。数据品质q能反映当前状态值stVal的有效性,时标t中记录了stVal上次改变的时间;
- 控制类信息control:包括用于操控断路器的ctlVal、反映断路器在何时接到并处理远方控制指令的时间operTm、控制指令的发出者origin以及控制序号ctlNum(由命令发出者在控制指令中给出);
- 取代:包含人工置数的信息,例如在工程调试中可以根据需要将断器位置stVal人工置成合位或分位;
- 配置、描述和扩展信息:Pos中还有几个数据属性用于配置具体操作细节,例如脉冲配置pulseConfig(采用单脉冲还是持续脉冲、脉冲持续时间、 脉冲的个数),还有操作模式ctlModel的选择(断路器控制有直接控制、带一般安全措施、带增强性安全措施三种不同的操作模式)等。
由此可以看出,逻辑节点XCBR下面包含各种类型的数据,每个数据又包含了若干数据属性。逻辑节点—数据—数据属性之间是一种树形结构,形成了分层的数据模型。数据属性是该树形模型中最底层的组成部件。
更多有关公共数据属性类型(可以理解为IEC 61850标准定义的为不同厂商的设备共用的数据属性类型)和公共数据类的内容可以参考《DL_T 860.73-2004 变电站通信网络和系统 第7-3部分:变电站和馈线设备的基本通信结构 公用数据类》。
1.2.4 数据集(DataSet)
数据集(DataSet)是IEC 61850标准的核心概念之一,顾名思义,它是一系列数据的集合。按照IEC 61850标准的定义,数据集是有序的数据引用和数据属性引用的集合。
IEC 61850标准引入数据集的目的是利用数据集对数据进行分组,以方便数据传送。变电站IED中存在各种数据,有的需要实时传送(如电流值、电压值、频率值等),有的可以慢些传送(如电度值、功率)。由于高压变电站中存在上百个IED,而网络通信带宽是有限的,如果这些数据不进行分组而一起发送,有可能会影响数据传输的实时性,甚至会造成通信阻塞。
引入数据集的概念后,利用数据集可以方便的对数据进行分组和打包。例如可以将需要实时传输的数据组成一个数据集,将对传输时间要求不苛刻的数据分成另一个数据集,分别传送。
1.2.5 逻辑设备(LD)
逻辑节点中含有数据/数据属性,根据应用需要对数据/数据属性的引用进行分组后形成数据集,数据集通过报告服务向外发送。逻辑节点中还有控制、取代、读/写、目录/定义等通信服务。这些服务是对逻辑节点中数据/数据属性的具体操作。但是实际设备中还包括:
- 描述设备本身状态的相关信息:例如一次设备的铭牌信息,反映物理装置运行状况的上电次数、失电告警、通信缓存区溢出等信息;
- 与多个逻辑节点相关的通信服务:有些通信服务(如采样值传输、GO0SE、定值服务)需要同时与多个逻辑节点发生信息交互,这些服务不能定义在某个逻辑节点内部。逻辑节点模型无法容纳以上两类信息。
IEC 61850引入了逻辑设备(Logical Device)的概念,逻辑设备可以看做是一个包含若干个逻辑节点的容器。
按照IEC 61850标准的规定,所有逻辑设备都必须包含LLN0和LPHD两个逻辑节点。
- LLN0:它用于管理整个逻辑设备,例如包含数据集、报告控制块、日志控制块等;
- LPHD:它用于描述设备本身状态的相关信息,如一次设备的铭牌信息,反应物理装置运行状况的上电次数、失电告警等信息;
一般情况下,IEC 61850把那些具有公用特性或共同特征的逻辑节点划分到一个逻辑设备里。
1.2.6 智能电子设备(IED)
IEC 61850标准引入了智能电子设备IED(Intelligent Electronic Device)的概念,即包含一个或多个处理器的物理装置,能够接收来自外部的请求(如数据或控制指令),也能向外部发送数据和控制指令。
IED通常用来代表变电站中实际的物理装置,如常见的微机保护装置、测控装置、互感器合并单元、变压器有载分接开关控制器、断路器智能终端、电能表等。
二、SCL介绍
2.1 SCL
SCL(Substation Configuration Language):变电站配置描述语言,这是IEC 61850标准系列中专门用于描述变电站自动化系统配置的XML语言,统一了不同厂商设备的配置规范,包含IED能力描述文件(ICD)、系统规格描述文件(SSD)等核心组件。
ICD: IED能力描述文件,它本质上是一个遵循SCL语言的XML文件。它是由IED设备制造商提供的,描述了单个IED设备的功能和能力。你可以把它理解为这个设备的“简历”或“产品说明书”
2.2 ICD文件总体结构
一个ICD文件是一个结构良好的XML文件,其根元素是
<?xml version="1.0" encoding="UTF-8"?>
<SCL xmlns="http://www.iec.ch/61850/2003/SCL" version="2007" revision="B">
<!-- 以下是文件的主要部分 -->
<Header id="..." version="..." revision="...">
<!-- 历史版本信息 -->
</Header>
<Communication>
<!-- 通信信息 -->
</Communication>
<IED name="IED1" type="MyTransformerProtection" manufacturer="XXX" configVersion="1.0">
<!-- 这里详细描述了这个IED的所有能力 -->
</IED>
<DataTypeTemplates>
<!-- -->
</DataTypeTemplates>
</SCL>
三、Header(文件头)
包含文件的元数据。 主要包含文件ID、版本号、修订号、工具标识、是谁在什么时间创建或修改了这个文件等。具体案例如下:
<Header id="S61850.ICD" nameStructu re="IEDName" revision="1.3" toolID="ICDCFG" version="0.0">
<History>
<Hitem revision="1.3" version="0.0" what="" when="2023-08-14 18:12:30" who="匿名" why=""/>
</History>
</Header>
四、Communication(通信系统)
在ICD文件中,这个部分通常是空的或非常简单。 因为ICD只描述单个IED的能力,它还不知道自己在整个变电站网络中会如何与其他IED连接。具体的网络配置(子网、IP地址)会在后期集成时,在SCD文件中定义。
具体案例如下:
<Communication>
<SubNetwork name="W01" type="8-MMS">
<ConnectedAP apName="S1" iedName="TEMPLATE">
<Address>
<P type="IP">127.0.0.1</P>
</Address>
</ConnectedAP>
</SubNetwork>
</Communication>
五、IED(智能电子设备)
IED节点详细描述了IED本身。关键属性:
- name:IED名称 ,如IED1;
- type:设备型号;
- manufacturer:制造商。
IED内部是分层结构,像一个公司的组织架构。具体案例如下:
<IED configVersion="1.0" desc="61850IED" manufacturer="......" name="TEMPLATE" type="S61850">
<!-- -->
</IED>
5.1 AccessPoint(访问点)
AccessPoint相当于IED的网络接口(如"M1"用于MMS,"S1"用于GOOSE/SV),每个IED节点下最多只能有一个AccessPoint节点。关键属性:
- name:访问点名称,用于唯一标识IED的通信访问点;
- desc:描述信息,对访问点的文字描述;
- clock:时钟同步支持,表示是否支持时钟同步功能;
- router:路由功能,表示是否具有路由功能。
每个访问点下有一个 Server(服务器)。具体案例如下:
<AccessPoint clock="false" name="S1" router="false">
<Server desc="servers" timeout="60">
<!-- -->
</Server>
</AccessPoint>
5.2 Server(服务器)
对外提供数据访问服务的逻辑实体,访问点下可以包含若干个 LDevice(逻辑设备)。关键属性:
- timeout:客户端连接超时时间(秒);
- desc:对Server功能的文字描述;
具体案例如下:
<Server desc="servers" timeout="60">
<Authentication/>
<LDevice desc="DEV-LD_Device0" inst="LD_Device0">
<!-- -->
</LDevice>
</Server>
5.3 LDevice(逻辑设备)
在IEC 61850标准中,LDevice是IED内部的一个功能单元,每个LDevice代表一个功能单元或物理设备,它包含多个逻辑节点(LN)。
LDevice的子节点主要包括以下几种:
- LN0(逻辑节点零):每个LDevice必须有一个LN0,它用于管理整个逻辑设备,例如包含数据集、报告控制块、日志控制块等;
- LN(逻辑节点):这是LDevice中最主要的子节点,每个LN代表一个特定的功能。例如,MMXU代表测量单元,XCBR代表断路器,等等;
- Private(私有元素):一些厂商可能会使用私有扩展,这些扩展不在IEC 61850标准中定义,但为了兼容性,允许在LDevice中包含私有元素。
这里提一下LN0和LN的区别:
| 特性 | LN0 (逻辑节点零) | LN (普通逻辑节点) |
|---|---|---|
| 角色定位 | 逻辑设备的管理者/协调者 | 具体功能的执行者 |
| LN类名 | 固定为 LLN0 | 可变,如 XCBR, MMXU, PTOC 等 |
| 实例号 | 固定为空或 "0" | 有实例号,如 1, 2, 3... |
| 数量 | 每个逻辑设备有且只有1个 | 每个逻辑设备可以有多个 |
| 主要职责 | 设备级管理、数据组织 | 具体功能实现 |
LDevice通过inst属性标识,具体案例如下:
<LDevice desc="DEV-LD_Device0" inst="LD_Device0">
<LN0 inst="" lnClass="LLN0" lnType="LLN01">
<!-- ...... -->
</LN0>
<LN inst="1" lnClass="LPHD" lnType="LPHD1">
<!-- ...... -->
</LN>
</LDevice>
5.4 LN0(逻辑节点零)
LN0逻辑设备的管理节点,包含设备级的公共信息和功能,主要子节点:
- DataSet:数据集定义;
- ReportControl:报告控制;
- LogControl:日志控制;
- SettingControl:定值组控制;
- DOI;
具体案例如下:
<LN0 inst="" lnClass="LLN0" lnType="LLN01">
<!-- 数据集定义 -->
<DataSet desc="遥测数据集1" name="dsAin1">
<!-- ...... -->
</DataSet>
<DataSet desc="遥信数据集1" name="dsDin1">
<!-- ...... -->
</DataSet>
<!-- 报告控制 -->
<ReportControl bufTime="0" buffered="false" confRev="1" datSet="dsAin1" desc="" indexed="true" intgPd="60000" name="urcbAin1p" rptID="TEMPLATE_LD_Device0/LLN0$RP$urcbAin1p">
<!-- ...... -->
</ReportControl>
<ReportControl bufTime="100" buffered="true" confRev="1" datSet="dsDin1" desc="" indexed="true" intgPd="120000" name="brcbDin1p" rptID="TEMPLATE_LD_Device0/LLN0$BR$brcbDin1p">
<!-- ...... -->
</ReportControl>
<!-- DOI -->
<DOI desc="模式" name="Mod">
<DAI name="ctlModel">
<Val>status-only</Val>
</DAI>
<DAI name="stVal">
<Val>on</Val>
</DAI>
</DOI>
<DOI desc="行为状态" name="Beh">
<DAI name="stVal">
<Val>on</Val>
</DAI>
</DOI>
<DOI desc="健康状态" name="Health">
<DAI name="stVal">
<Val>Ok</Val>
</DAI>
</DOI>
<DOI desc="铭牌" name="NamPlt">
</LN0>
5.4.1 DataSet
DataSet节点是 IEC 61850 中数据组织的核心,它与ReportControl紧密配合工作。它定义了:
- 要收集哪些数据(测点);
- 这些数据的组织方式;
- 作为一个整体进行传输的数据包;
关键属性说明:
- name:数据集名称,在LN0内唯一;
- desc:描述信息(可选);
子节点FCDA ,它精确指向一个具体的数据点:
- ldInst(必选):逻辑设备实例名,必须引用一个已存在的LDevice实例;
- prefix(可选):逻辑节点前缀,与lnClass和lnInst一起组成完整的LN名;
- lnClass(必选):逻辑节点类,必须是IEC 61850-7-4中定义的LN类名;
- lnInst(条件必选):逻辑节点实例号,对于某些LN类(如LLN0)可能不需要,但大多数情况下需要;
- doName(必选):数据对象名,必须是该LN类中定义的有效DO名;
- daName(可选):数据属性名,如果指定,则指向具体的DA;如果不指定,则指向整个DO;
- fc(条件必选):功能约束,当引用的是DA时需要,当引用的是DO时可能不需要。
例如名字为dsAin1的DataSet,包含了若干个数据项(FCDA节点):
<DataSet desc="遥测数据集1" name="dsAin1">
<FCDA doName="AnIn1" fc="MX" ldInst="LD_Device0" lnClass="GGIO" lnInst="1"/>
<FCDA doName="AnIn2" fc="MX" ldInst="LD_Device0" lnClass="GGIO" lnInst="1"/>
<FCDA doName="AnIn3" fc="MX" ldInst="LD_Device0" lnClass="GGIO" lnInst="1"/>
<!-- ...... -->
</DataSet>
其中第一项FCDA,指向了满足如下条件的DO:
- 根据ldInst的值查找inst="LD_Device0"的逻辑设备(到LDevice节点中查找);
- 根据lnClass和lnInst查找inst="1" lnClass="GGIO"的逻辑节点(基于上一步骤,到LN节点中查找);
- 根据doName查找name="AnIn1"的数据对象(基于上一步骤,到DOI节点中查找)。
最终定位到:
<LDevice desc="DEV-LD_Device0" inst="LD_Device0">
<LN inst="1" lnClass="GGIO" lnType="GGIO1_Device0">
<DOI desc="有功功率" name="AnIn1"> <!-- 匹配项 -->
<!-- ...... -->
</DOI>
<!-- ...... -->
</LN>
<!-- ...... -->
</LDevice>
名字为dsDin1的DataSet,包含了若干个数据项(FCDA节点):
<DataSet desc="遥信数据集1" name="dsDin1">
<FCDA doName="Ind1" fc="ST" ldInst="LD_Device0" lnClass="GGIO" lnInst="100"/>
<FCDA doName="Ind2" fc="ST" ldInst="LD_Device0" lnClass="GGIO" lnInst="100"/>
<FCDA doName="Ind3" fc="ST" ldInst="LD_Device0" lnClass="GGIO" lnInst="100"/>
<!-- ...... -->
</DataSet>
5.4.2 ReportControl
在IEC 61850中,ReportControl节点位于LN0下,用于配置报告控制块。ReportControl定义了IED如何主动向客户端(如监控系统)报告数据。它就像是数据的快递服务,规定了:
- 什么时候发送数据(触发条件);
- 发送什么数据(关联的数据集);
- 如何发送数据(缓冲、选项等);
主要属性:
- name:报告控制块的名称,在同一逻辑设备内必须唯一;
- datSet:引用的数据集名称(可选)。该数据集定义了报告中包含的数据;
- rptID:报告标识符,用于在报告报文中标识此报告;
- confRev:配置版本号,从1开始,当配置发生变化时应递增;
- buffered:布尔值,表示是否缓冲报告(如果为true,则报告在通信中断时会缓冲,恢复后发送);
- bufTime:缓冲时间(可选,单位毫秒),表示报告在发送前可以缓冲的时间;
- intgPd:完整性周期(可选,单位毫秒),触发周期性报告的时间间隔;
- trgOps:触发选项,定义哪些事件会触发报告。它是多个触发条件的组合,例如数据变化(dchg)、品质变化(qchg)、数据更新(dupd)等;
- options:报告选项,例如包括序列号、时间戳等。
比如对于名字为dsAin1的DataSet,ReportControl定义如下:
<ReportControl bufTime="0" buffered="false" confRev="1" datSet="dsAin1" desc="" indexed="true" intgPd="60000" name="urcbAin1p" rptID="TEMPLATE_LD_Device0/LLN0$RP$urcbAin1p">
<TrgOps dchg="true" dupd="false" period="true" qchg="false"/>
<OptFields bufOvfl="true" configRef="true" dataRef="true" dataSet="true" entryID="true" reasonCode="true" seqNum="true" timeStamp="true"/>
<RptEnabled max="16"/>
</ReportControl>
对于名字为dsDin1的DataSet,ReportControl定义如下:
<ReportControl bufTime="100" buffered="true" confRev="1" datSet="dsDin1" desc="" indexed="true" intgPd="120000" name="brcbDin1p" rptID="TEMPLATE_LD_Device0/LLN0$BR$brcbDin1p">
<TrgOps dchg="true" dupd="false" period="true" qchg="false"/>
<OptFields bufOvfl="true" configRef="true" dataRef="true" dataSet="true" entryID="true" reasonCode="true" seqNum="true" timeStamp="true"/>
<RptEnabled max="16"/>
</ReportControl>
其子节点:
- TrgOps:触发选项,子元素包括dchg(测点数值发生变化时触发)、qchg(数据品质位发生变化时触发)、dupd(数据被更新时触发(即使值未变))、period(按完整性周期定时触发)等,每个子元素为布尔值;
- OptFields:可选字段,定义报告中包含哪些附加信息,如序列号、报告时间、原因码等;
- RptEnabled:使能报告,可以设置最大客户端数量等。
5.5 LN(逻辑节点)
每个LN代表一个具体功能实现节点,为了方便理解,可以将其当做为LNodeType的实例。关键属性:
- prefix:LN的前缀标识符;
- lnClass:LN的逻辑节点类名;
- inst:LN的实例名;
- lnType:根据该属性可以找到该LN所属的LNodeType;
LN 通过lnClass 和inst组合标识,如下:
<!-- 物理设备信息 -->
<LN inst="1" lnClass="LPHD" lnType="LPHD1">
<!-- ...... -->
</LN>
<LN inst="1" lnClass="GGIO" lnType="GGIO1_Device0">
<!-- ...... -->
</LN>
<LN inst="2" lnClass="GGIO" lnType="GGIO2_Device0">
<!-- ...... -->
</LN>
5.5.1 DO(数据对象)和 DA(数据属性)
在IEC 61850中,一个LN实例(例如下面例子中的LPHD)包含多个数据(Data),这些数据在SCL中表示为DOI(Data Object Instance,数据对象实例)。每个DOI对应一个DO(数据对象),而DO的类型由CDC(公共数据类)定义,规定了该DO应包含哪些数据属性(DA);
-
DOI(Data Object Instance):表示一个数据对象实例。它对应一个DO,通过name属性指定DO的名称(例如PhyNam、PhyHealth)。DOI可以包含DAI和SDI;
-
DAI(Data Attribute Instance):表示一个数据属性实例。它对应一个DA,通过name属性指定DA的名称(例如stVal、q、t等)。DAI可以包含一个值(Val)或者多个值(对于数组类型);
-
SDI(SubData Instance):当某个DA是结构类型(DAType数据属性类型定义)时,使用SDI来表示这个结构的成员。SDI可以包含DAI和下一级的SDI。
在ICD文件中,DO和DA的定义是在DataTypeTemplates部分中通过LNodeType、DOType和DAType来定义的。
具体案例如下:
<LN inst="1" lnClass="LPHD" lnType="LPHD1"> <!-- 指向id=LPHD1的LNodeType -->
<DOI desc="S61850导出设备" name="PhyNam"> <!-- 指向id=DPL1_PhyNam的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>S61850导出设备</Val>
</DAI>
</DOI>
<DOI desc="Ok" name="PhyHealth"> <!-- 指向id=ENS1_Healthm的DOType -->
<DAI name="stVal"> <!-- 基本数据类型:Unicode255 -->
<Val>Ok</Val>
</DAI>
</DOI>
</LN>
<LN inst="1" lnClass="GGIO" lnType="GGIO1_Device0"> <!-- 指向id=GGIO1_Device0的LNodeType -->
<DOI desc="模式" name="Mod"> <!-- 指向id=ENC1_Mod的DOType -->
<DAI name="ctlModel"> <!-- 指向id=ctlModel的EnumType -->
<Val>status-only</Val>
</DAI>
<DAI name="stVal"> <!-- 指向id=Mod的EnumType -->
<Val>on</Val>
</DAI>
</DOI>
<DOI desc="行为状态" name="Beh"> <!-- 指向id=ENS1_Beh的DOType -->
<DAI name="stVal"> <!-- 指向id=Beh的EnumType -->
<Val>on</Val>
</DAI>
</DOI>
<DOI desc="健康状态" name="Health"> <!-- 指向id=ENS1_Health的DOType -->
<DAI name="stVal"> <!-- 指向id=Health的EnumType -->
<Val>Ok</Val>
</DAI>
</DOI>
<DOI desc="铭牌" name="NamPlt"> <!-- 指向id=LPL1_NamPlt的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>IEC 61850-7-4:2003</Val>
</DAI>
</DOI>
<DOI desc="有功功率" name="AnIn1"> <!-- 指向id=MV1的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>有功功率</Val>
</DAI>
<SDI name="sVC"> <!-- DA是复杂数据类型,指向id=ScaledValueConfig1的DAType -->
<DAI name="scaleFactor"> <!-- 基本数据类型:FLOAT32 -->
<Val>1</Val>
</DAI>
<DAI name="offset"> <!-- 基本数据类型:FLOAT32 -->
<Val>0</Val>
</DAI>
</SDI>
</DOI>
<DOI desc="无功功率" name="AnIn2"> <!-- 指向id=MV1的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>无功功率</Val>
</DAI>
<SDI name="sVC"> <!-- DA是复杂数据类型,指向id=ScaledValueConfig1的DAType -->
<DAI name="scaleFactor"> <!-- 基本数据类型:FLOAT32 -->
<Val>1</Val>
</DAI>
<DAI name="offset"> <!-- 基本数据类型:FLOAT32 -->
<Val>0</Val>
</DAI>
</SDI>
</DOI>
<DOI desc="直流侧总功率" name="AnIn3"> <!-- 指向id=MV1的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>直流侧总功率</Val>
</DAI>
<SDI name="sVC"> <!-- 基本数据类型:FLOAT32 -->
<DAI name="scaleFactor">
<Val>1</Val>
</DAI>
<DAI name="offset"> <!-- 基本数据类型:FLOAT32 -->
<Val>0</Val>
</DAI>
</SDI>
</DOI>
<DOI desc="Uab电压" name="AnIn4"> <!-- 指向id=MV1的DOType -->
<DAI name="dU"> <!-- 基本数据类型:Unicode255 -->
<Val>Uab电压</Val>
</DAI>
<SDI name="sVC"> <!-- DA是复杂数据类型,指向id=ScaledValueConfig1的DAType -->
<DAI name="scaleFactor"> <!-- 基本数据类型:FLOAT32 -->
<Val>1</Val>
</DAI>
<DAI name="offset"> <!-- 基本数据类型:FLOAT32 -->
<Val>0</Val>
</DAI>
</SDI>
</DOI>
<!-- ... 更多定义 ... -->
</LN>
六、DataTypeTemplates(数据类型模板)
DataTypeTemplates是ICD文件中的一个重要部分,它定义了文件中使用的数据类型模板,包括逻辑节点类型(LNodeType)、数据对象类型(DOType)、数据属性类型(DAType)和枚举类型(EnumType)。这些模板被文件中的实际逻辑节点(LN)实例引用,以确保数据模型的一致性和标准化。
- LNodeType(逻辑节点类型):定义了一个逻辑节点类(如LPHD)所包含的数据对象(DO)及其类型;
- DOType(数据对象类型):定义了一个数据对象所包含的数据属性(DA)及其类型,以及可能的功能约束(FC)和结构;
- DAType(数据属性类型):定义了结构化的数据属性,包含多个基本数据属性(BDA);
- EnumType(枚举类型): 定义枚举类型的可能取值(如断路器位置 on, off, bad)。
格式如下:
<!-- 数据类型模板:定义数据结构 -->
<DataTypeTemplates>
<!-- 这里定义所有数据类型 -->
</DataTypeTemplates>
6.1 LNodeType(逻辑节点类型定义)
定义每个LN类包含哪些DO,具体案例如下:
<LNodeType id="GGIO1_Device0" lnClass="GGIO">
<DO desc="Mod专用" name="Mod" type="ENC1_Mod"/> <!-- 指向id=ENC1_Mod的DOType -->
<DO desc="Beh专用" name="Beh" type="ENS1_Beh"/> <!-- 指向id=ENS1_Beh的DOType -->
<DO desc="Health专用" name="Health" type="ENS1_Health"/> <!-- 指向id=ENS1_Health的DOType -->
<DO desc="NamPlt专用" name="NamPlt" type="LPL1_NamPlt"/> <!-- 指向id=LPL1_NamPlt的DOType -->
<DO desc="有功功率" name="AnIn1" type="MV1"/> <!-- 指向id=MV1的DOType -->
<DO desc="无功功率" name="AnIn2" type="MV1"/> <!-- 指向id=MV1的DOType -->
<DO desc="直流侧总功率" name="AnIn3" type="MV1"/> <!-- 指向id=MV1的DOType -->
<DO desc="Uab电压" name="AnIn4" type="MV1"/> <!-- 指向id=MV1的DOType -->
<!-- ... 更多定义 ... -->
</LNodeType>
关键属性:
- id:类型标识符,在文件中唯一;
- lnClass:对应的LN类名;
- desc:描述信息。
子节点DO属性:
- name(必选):唯一标识该LNodeType在内的身份,同一LNodeType内的DO名称不能重复;
- type(必选):指向DOType模板(元素的id),由DOType定义该DO的内部结构(即包含哪些DA,如stVal、q、t等);
- desc(可选):用户可读的描述文字,用于说明该DO的业务用途;
- accessControl(可选,默认read-write):定义该DO的访问权限,控制外部系统对DO的读写操作;常见取值(非标准强制,但行业通用):
-
read-only:只能读取DO的内容(如测量值);
-
read-write:可读取和修改DO的内容(如配置参数);
-
write-only:只能修改DO的内容(如控制指令);
-
mandatory(可选,默认true):标记该DO在LNodeType实例化时(即引用该类型的LN节点)是否必选(布尔值):
- true:每个基于该的LNodeType实例必须包含该DO;
- false:LNodeType实例可以省略该DO(适用于可选功能)。
6.2 DOType(数据对象类型)
定义每个DO的结构(包含哪些 DA),具体案例如下:
<DOType cdc="INC" desc="Mod专用" id="ENC1_Mod">
<DA bType="Enum" dchg="true" fc="ST" name="stVal" type="Mod"/> <!-- 指向id=Mod的EnumType -->
<DA bType="Quality" fc="ST" name="q" qchg="true"/> <!-- Quality为基本数据类型 -->
<DA bType="Timestamp" fc="ST" name="t"/> <!-- Timestamp为基本数据类型 -->
<DA bType="Enum" dchg="true" fc="CF" name="ctlModel" type="ctlModel"/> <!-- 指向id=ctlModel的EnumType -->
</DOType>
<DOType cdc="MV" id="MV1">
<DA bType="Struct" dchg="true" fc="MX" name="mag" type="AnalogueValue1"/> <!-- 指向id=AnalogueValue1的DAType -->
<DA bType="Quality" fc="MX" name="q" qchg="true"/> <!-- Quality为基本数据类型 -->
<DA bType="Timestamp" fc="MX" name="t"/> <!-- Timestamp为基本数据类型 -->
<DA bType="Struct" dchg="true" fc="CF" name="sVC" type="ScaledValueConfig1"/> <!-- 指向id=ScaledValueConfig1的DAType -->
<DA bType="Unicode255" fc="DC" name="dU"/> <!-- Unicode255为基本数据类型 -->
</DOType>
关键属性:
- id:类型标识符,在文件中唯一;
- cdc:公共数据类(CDC),定义标准结构;
- desc:描述信息。
6.2.1 CDC(公共数据类)
在IEC 61850中,CDC (Common Data Class - 公共数据类) 是定义在 DOType中的一个根本性、强制性的属性,它决定了该DOType所代表的数据的本质。
为了方便理解,可以将 CDC、DOType、DO 的关系理解为:
- CDC = 蓝图/国家标准 (例如:《住宅设计规范》):定义了核心原则和必须包含的内容(必须有承重墙、门窗、水管电路);
- DOType = 具体的设计图纸:根据国家标准(CDC)绘制出的具体图纸,包含了所有要求的元素(这里是一扇窗,类型是推拉窗);
- DO = 实际建好的房子:根据图纸(DOType)实例化出来的具体对象(这是301房间的窗户)。
6.2.2 DA(数据属性)
DOType的子节点DA属性:
-
name(必选):数据属性的唯一名称,用于标识DA在DOType中的身份;
- 同一DOType内的DA名称必须唯一;
- 名称需符合IEC 61850的命名规范(如stVal代表状态值、q代表质量、t代表时间戳);
-
bType(必选):基本数据类型,定义DA的原始数据格式;
- Boolean:布尔值(true/false);
- Enum:枚举类型(需关联type);
- Int8/Int16/Int32:有符号整数;
- UInt8/UInt16/UInt32:无符号整数;
- Float32/Float64:浮点数;
- Quality:质量码(固定结构);
- Timestamp:时间戳(UTC格式);
- OctetString 字节串(二进制数据);
-
type(可选,但bType=Enum/Struct/Array时必选):引用外部类型模板的id,用于扩展bType的语义:
- 当bType="Enum"时,type必须引用<EnumType>的id(定义枚举值的含义);
- 当bType="Struct"时,type必须引用另一个<DAType>的id(嵌套结构化类型);
- 当bType="Array"时,type引用数组元素的类型(如type="Int32"表示整数数组)。
-
fc(必选):功能约束(Functional Constraint),标记DA的业务用途,用于区分数据的读/写状态/配置等角色;
-
dchg(可选,默认false):当DA的值发生变化时,触发通信服务(如报告、GOOSE报文);
- 仅用于需要主动通知的DA,如开关状态stVal变化时需立即上报;
-
qchg(可选,默认false):当DA的质量码(q)发生变化时,触发通信服务;
- 用于需要关注数据有效性的DA,如传感器故障导致q变为bad时需上报;
-
sAddr(可选):短地址(Short Address),用于通信协议的快速定位。
6.2.3 FC(功能约束)
功能约束(FC) 是分配给每个数据属性(DA)的一个标签或分类。它明确指出了这个数据属性的功能用途以及与之相关的通信服务。
简单来说,FC回答了这个问题:这个数据是干什么用的?例如,一个值是用于显示状态的(只读),还是用于执行控制的(可写)?FC直接决定了客户端(如监控后台)能否以及如何通过ACSI服务(如读、写、报告)与这个数据交互。
以下是IEC 61850-7-3和7-4中定义的主要功能约束类型及其含义:
| 功能约束(FC) | 全称 | 含义与用途 | 读写特性 | 典型应用场景 |
|---|---|---|---|---|
| ST | Status (状态) | 表示系统或设备的当前状态信息。通常是只读的,反映真实的、被测量的状态。 | RO (只读) | 开关位置 (Pos)、告警信号 (Alm)、健康状态 (Health) |
| MX | Measurement (测量) | 表示测量值或模拟量。通常是只读的,代表从一次设备采集到的连续量。 | RO (只读) | 电流、电压、功率、温度等 (Amp, Vol, W) |
| CO | Control(控制) | 表示可控对象。用于执行命令,如分闸、合闸。通常是可读写的。写操作会触发实际的控制动作。 | RW (可读写) | 开关控制 (Pos)、软压板投退 (SwEna) |
| CF | Configuration(配置) | 表示设备的配置参数。这些参数通常在工程配置时设置,运行时偶尔修改。通常是可读写的。 | RW (可读写) | CT/PT变比 (Rat)、滤波器参数、通信参数 |
| SG | Setting(定值) | 表示保护的定值或设置值。修改这些值会改变保护元件的动作行为。通常组织在定值组中。可读写。 | RW (可读写) | 过流保护定值 (Op)、时间延迟 (Tms) |
| SE | Setting Extension(扩展定值) | 用于支持非标准类型的定值(如枚举型定值)。与SG配合使用。 | RW (可读写) | 特殊的、枚举型的定值选项 |
| DC | Description (描述) | 提供描述性信息,用于人机界面显示。通常是静态的、只读的字符串。 | RO (只读) | 设备铭牌信息 (NamPlt)、设备型号 (model) |
| EX | Extension(扩展) | 用于定义厂商特定的扩展功能。允许制造商在标准之外增加自定义功能。 | RW (可变) | 厂商自定义的特殊功能或参数 |
| BL | Behaviour(行为) | 与控制块(如报告控制块、GOOSE控制块)的行为配置相关。 | RW (可读写) | 报告控制块的使能 (RptEna)、配置号 (ConfRev) |
| OR | Operational Rights(操作权限) | 与访问安全、操作权限相关的属性。 | RW (可读写) | 控制操作的访问权限、密码 |
| SP | Set-point(设定值) | 用于模拟量的控制设定,例如设定一个目标温度或目标功率。 | RW (可读写) | 设定一个模拟量的输出目标 |
| SV | Substitute Value(替代值) | 用于指示某个值是否被人工置数或替代,以及替代的值是多少。 | RW (可读写) | 维护时手动输入一个值,取代测量值 |
| RP | Report Setting(报告设置) | (已过时) 早期用于报告配置,现已被BL取代。 | - | - |
| LG | Logging Setting(日志设置) | (已过时) 早期用于日志配置,现已被BL取代。 | - | - |
6.3 DAType(数据属性类型定义)
在IEC 61850 SCL标准中,DAType内的BDA元素(Basic Data Attribute,基本数据属性)是构成复杂数据类型(DAType)的最小单元。
DAType用于定义结构化数据,而BDA则是这些结构化数据的成员变量,直接对应具体的基本数据类型(如枚举、字节串、整数等)。
BDA与之前提到的DA(DOType内的数据属性)的区别在于:
- DA属于数据对象(DOType)的属性,用于定义DOType的内部结构;
- BDA属于复杂数据类型(DAType)的属性,用于定义DAType的内部成员(即结构化数据的字段)。
定义复杂的数据结构,具体案例如下:
<DAType id="AnalogueValue1">
<BDA bType="FLOAT32" name="f"/>
</DAType>
<DAType id="ScaledValueConfig1">
<BDA bType="FLOAT32" name="scaleFactor"/>
<BDA bType="FLOAT32" name="offset"/>
</DAType>
<DAType id="Originator1">
<BDA bType="Enum" name="orCat" type="orCategory"/>
<BDA bType="Octet64" name="orIdent"/>
</DAType>
关键属性:
- id:类型标识符,在文件中唯一;
例如,<DAType id="Originator1">定义了一个“发起者信息”的结构化类型,其中<BDA name="orCat">(发起者类别)和<BDA name="orIdent">(发起者标识)是该结构的两个字段。
BDA的关键属性:
- name(必选):唯一标识BDA在DAType内的身份,同一DAType中的BDA名称必须唯一;
- bType(必选):含义:定义BDA的原始数据格式(基本类型),决定了字段的取值范围和存储方式。常见类型包括:
- 布尔型:Boolean(true/false);
- 枚举型:Enum(需关联type属性);
- 整数型:Int8/Int16/Int32/Int64(有符号)、UInt8/UInt16/UInt32/UInt64(无符号);
- 浮点型:Float32/Float64;
- 字符串型:OctetString(字节串)、Octet64(64字节串)、UnicodeString(Unicode字符串);
- 时间型:Timestamp(时间戳)、Date(日期)、Time(时间);
- 质量型:Quality(数据质量码)。
- type(可选,但bType=Enum/Struct/Array时必选):引用外部类型模板的id,用于扩展bType的语义:
- 当bType="Enum"时,type必须引用<EnumType>的id(定义枚举值的含义);
- 当bType="Struct"时,type必须引用另一个<DAType>的id(嵌套结构化类型);
- 当bType="Array"时,type引用数组元素的类型(如type="Int32"表示整数数组)。
- desc(可选):用户可读的描述文字,说明BDA的业务用途;
- dchg(可选,默认false):标记BDA值变化时是否触发通信服务(如报告、GOOSE报文)。
- 仅用于需要主动通知的DA,如开关状态stVal变化时需立即上报;
- qchg(可选,默认false):当DA的质量码(q)发生变化时,触发通信服务;
- 用于需要关注数据有效性的DA,如传感器故障导致q变为bad时需上报;
- fc(可选):功能约束,与DA的fc完全一致,定义BDA的业务角色(如状态、配置、控制等);
- sAddr(可选):短地址(Short Address),用于通信协议的快速定位(如MMS协议中的“Variable Access”服务);
- 示例:sAddr="0x10"表示该BDA在MMS地址空间中的偏移量为0x10,可快速读取;
- accessControl(可选):定义该BDA的访问权限,控制外部系统对BDA的读写操作;常见取值(非标准强制,但行业通用):
- read-only:只能读取DO的内容(如测量值);
- read-write:可读取和修改DO的内容(如配置参数);
- write-only:只能修改DO的内容(如控制指令);
- 默认值:若未指定,默认read-write(可读写);
- fixed(可选,默认false):标记BDA的值是否固定不可修改;
- mandatory(可选,默认true):标记该BDA在DAType实例化时是否必选:
- true:DAType实例化时必须包含该BDA;
- false:DAType实例化时可省略该BDA。
6.4 EnumType(枚举类型)
具体案例如下:
<EnumType desc="Mod" id="Mod">
<EnumVal ord="1">on</EnumVal>
<EnumVal ord="2">blocked</EnumVal>
<EnumVal ord="3">test</EnumVal>
<EnumVal ord="4">test/blocked</EnumVal>
<EnumVal ord="5">off</EnumVal>
</EnumType>
<EnumType desc="ctlModel" id="ctlModel">
<EnumVal ord="0">status-only</EnumVal>
<EnumVal ord="1">direct-with-normal-security</EnumVal>
<EnumVal ord="2">sbo-with-normal-security</EnumVal>
<EnumVal ord="3">direct-with-enhanced-security</EnumVal>
<EnumVal ord="4">sbo-with-enhanced-security</EnumVal>
</EnumType>
6.5 与实际LN实例的关联
在IED部分引用这些类型,以如下节点为例:
<LN inst="1" lnClass="GGIO" lnType="GGIO1_Device0"> <!-- 指向id=GGIO1_Device0的LNodeType -->
<DOI desc="模式" name="Mod"> <!-- 指向id=ENC1_Mod的DOType -->
<DAI name="ctlModel"> <!-- 指向id=ctlModel的EnumType -->
<Val>status-only</Val>
</DAI>
<DAI name="stVal"> <!-- 指向id=Mod的EnumType -->
<Val>on</Val>
</DAI>
</DOI>
</LN>
关联关系:
1. LN[lnType="GGIO1_Device0"] 查找id="GGIO1_Device0"的LNodeType节点
<LNodeType id="GGIO1_Device0" lnClass="GGIO">......</LNodeType>
这是一个模板,定义了名为“GGIO1_Device0”的逻辑节点类型。它规定了这个逻辑节点有哪些DO
2. LNodeType[id="GGIO1_Device0"] 在LN子节点查找name="Mod"的DOI子节点
<DOI desc="模式" name="Mod">......</DOI>
这是一个实例。逻辑节点根据“ENC1_Mod”这个DOType模板,创建了一个名为“Mod”的具体数据对象(DO),用来代表“模式”
3. 在LNodeType子节点中查找name="Mod"的DO子节点
<DO desc="Mod专用" name="Mod" type="ENC1_Mod"/>
4. 到DOType节点中查找id="ENC1_Mod"的节点
<DOType cdc="INC" desc="Mod专用" id="ENC1_Mod">......</DOType>
这是一个模板,定义了名为“ENC1_Mod”的一种整型步控类型。它规定了这个类型的对象拥有哪些属性
5. 在DOI子节点中查找子节点
<DAI name="ctlModel">......</DAI>
这是一个实例。逻辑节点根据“ctlModel”这个EnumType模板,创建了一个名为“ctlModel”的具体数据属性(DA)
6. 在DOType子节点中查找name="ctlModel"的节点
<DA bType="Enum" dchg="true" fc="CF" name="ctlModel" type="ctlModel"/>
7. 到EnumType节点中查找id="ctlModel"的节点
<EnumType desc="ctlModel" id="ctlModel">......</EnumType>
这是一个模板,定义了名为“ctlModel”的枚举类型。它定义了枚举值
为了方便了解,这里我们绘制了流程图;
参考文章
[1] DL/T 860-2006《变电站通信网络和系统》
[2] IEC61850应用入门

浙公网安备 33010602011771号