IEC61850的数据建模,主要是看IEC1850标准的第7部分,变电站和馈线高备的基本通信结构(7-1,7-2,7-3,7-4)
数据建模,实际上就是将设备的点表按照IEC61850标准的规则编写的一份点表文件,该点表以XML的格式描述,后缀名为.icd,另一个名字叫智能电子设备能力描述文件
以下是61850的服务与传统功能的对比列表:
服务与传统变电站功能 | |
---|---|
IEC61850服务 | 传统功能 |
报告服务 | 遥信、遥测 |
控制服务 | 遥控、遥调 |
定值服务 | 定值召唤、修改、切换 |
日志服务 | 事件服务 |
取代服务 | 人工置数 |
对时服务 | GPS对时 |
文件传输服务 | 文件传输 |
采样值传输服务 | 模拟量采样传输 |
GOOSE服务 | 装置间快速信号传输 |
在建模前,应熟知61850数据模型所含的内容及其作用。详细请看61850标准的第6部分,第7-2部分。
每个模型都具有四个对象,依次为
SERVER 服务器
LOGICAL-DEVICE 简称LD,逻辑设备
LOGICAL-NODE 简称LN,逻辑结点
DATA 数据,逻辑结点中的数据点
每个对象都有各自的名称和对象路径名,假设有一个61850服务器,SERVER为acSystem,LOGICAL-DEVICE为ac,LOGICAL-NODE为alarm,有若干数据点名为alarm1,alarm2,alarm3,
外部访问服务器的一个结点引用为acSystem.ac.alarm.alarm1
我们通常要改的就是LN部分
一般来说,不需要从零开始配置一份数据模型icd文件,直接在已有的文件修改即可,
以下是一个最简单的icd文件
status-only ="40000"
on
blocked
test
test/blocked
off
status-only
direct-with-normal-security
sbo-with-normal-security
direct-with-enhanced-security
sbo-with-enhanced-secrity
从内容可以看出,包含两大块,IED和DataTypeTemplates,DataTypeTemplates为数据类型的模板,定义该设备拥有什么数据变量,变量的类型,单位等信息,IED为设备的对象实例,定义了数据的初始值,系数,单位,寄存器地址等信息
以上文件在LNodeType字段定义了一个数据Mod,类型是EAST01DEV1.LLN0.Mod,在DOType字段中有该类型的具体定义,其中cdc(公用数据类)为INC,即可控的整数状态,而INC又定义了它必选的和可选的属懂(IEC6850标准的7-3部分的7.5.4章节有说明)
表1 逻辑节点组表 | |
---|---|
逻辑节点组指示符 | 节点标识 |
A | 自动控制 |
C | 监控 |
G | 通用功能引用 |
I | 接口和存档 |
L | 系统逻辑节点 |
M | 计量和测量 |
P | 保护功能 |
R | 保护相关功能 |
S | 传感器,监视 |
T | 仪用互感器 |
X | 开关设备 |
Y | 电力变压器和相关功能 |
Z | 其它(电力系统)设备 |
一般我们接触到的类有:
LPHD(物理装置信息,IEC61850-7-4部分的5.3.2章节)
LLN0(逻辑节点零,IEC61850-7-4部分的5.3.4章节)
GGIO(通用过程I/O,IEC61850-7-44部分的5.7.2章节)
MMXN(测量,IEC61850-7-4部分的5.10.7章节)
一般可以根据遥信,遥控,遥测,遥调四个功能来选择需要的cdc
遥信=SPS(单点状态信息,IEC61850-7-3部分的7.3.2章节)
遥控=SPC(可控的单点,IEC61850-7-3部分的7.5.2章节)
遥测=MV(测量值,IEC61850-7-3部分的7.4.2章节)
遥调=APC(可控模拟设点信息,IEC61850-7-3部分的7.6.2章节)
其中,遥测和遥调的值可以是浮点或者整型,若选择整型,则应该增加数据属性sVC,即增加系数和偏移量
以下是添加浮点型的示例
以下是添加整型的示例
配置数据对象需要在DataTypeTemplates的LNodeType字段中添加DO结点,
DO有很多种类型,一般我们按遥信,遥控,遥测,遥测四种类型配置即可,
DO有三个属性,分别为name,type,desc
name是固定的,一般字符串就行,尽量和要表达的属性命令匹配,容易维护
type需要根据当前数据来定,按3.3的说明即可,详情可以看IEC61850-7-3部分的8章节
desc为数据的描述
fc为功能约束,常用的是ST(状态),MX(测量),CO(控制),DC(描述),CF(配置),具体可以查看IEC61850-7-3部分的附录B
配置对象实例就是将上一节所定的数据都初始化一遍,包括寄存器映射地址,变量名,单位,系数等,具体看第一节的示例
配置报告分为两个步骤,分别是配置数据集和配置报告控制块,而且都是在LN0节点中配置
我们可以将数据分为遥信,遥控,遥测,遥调四个数据集,分别上报,下面配置遥信量作为数据集的例子,格式如下
注意,控制集里面的数据对象一定是在DataTypeTemplates的LNodeType字段中找得到的
配置报告控制块用于指定所需报告的数据集,一般来说,有多少数据集就有多少个报告控制块,以下是是控制块的例子
一般只要修改datset和RptEnabled的max值即可
datset指定上送的数据集名称,max值指定最多有多少个客户端能接收该报告
使用iec61850库时,需要将icd文件转为其规定的cfg文件,转换工具在libiec61850库的tools/model_generator里,使用命令
java -jar genconfig.jar xxx.icd >model.cfg
注意需要在tools/model_generator目录下,且安装好了java运行环境
如果生成文件时出现Warning…信息,则说明icd文件有错误,需要修正
生成后的model.cfg还不能用,需要将MODEL(xxx)前面几行的内容删除掉
如果是在windows下生成的,需要将文件保存为utf8格式
关于libiec61850的使用,查看另一篇文章61850服务构建流程
通过IEDScout 软件打开建好的模型文件,将所有内容都展开看一遍,只要文件能正常打开,且内容无误的话,就表示模型可用,也可以通过打开两个IEDScout,一个作为服务端,一个作为客户端来进行验证数据