ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

零基础实现IEC61850(三)报告服务端

零基础实现IEC61850(三)报告服务端

什么是报告

报告是IEC61850中常用的服务,大家常聊的遥信和遥测就是用到的IEC61850中的报告服务,关于报告服务的一些细节,可以查阅IEC61850标准7-2的相关章节,本文直接讲述如何实现。

建模

鉴于云行科技的YX-PIS协议栈的特点,需要什么功能在模型里面配置就可以了,所以实现报告功能只需要在模型中配置报告控制块即可

建模工具直接访问云端版:
http://scl.yunxing.tech:8888
也可在该地址下载桌面版。

创建报告控制块

添加报告控制块

打开yx-ied-designer工具,按照下图添加报告控制块

填写报告控制块信息

设置报告控制块触发条件

设置报告控制块选项域

设置报告控制块最大实例数量

创建数据集

这个报告控制块还无法选择数据集,是因为这个模型文件中尚未创建过数据集,所以我们还要进行数据集的创建。

添加数据集

选择数据及命名

在控制块中选择数据集

数据集创建成功后即可在报告控制块中进行选择

CID文件中的报告控制块

通过工具完成了报告控制块的建模,我们可以打开cid文件,看看实际的内容如下:

<ReportControlbuffered="false"confRev="1"datSet="testDataSet"desc="测试用的报告控制块"indexed="true"intgPd="9000"name="testReportCB"><TrgOpsdchg="true"dupd="true"gi="true"period="true"qchg="true"/><OptFields/><RptEnabledmax="3"/></ReportControl>

编码运行

上一文的程序不用做任何修改,直接启动即可

验证

MMS版本的验证

使能

通过IEDSCOUT工具,连接后选择报告控制块实例,然后使能这个报告控制块实例,如下图:
(使能相当于订阅,只有使能了,服务端才会向这个客户端发送报告)

这里可以进行修改,也可以直接点击使能

抓包


可以看到,代码没有任何变化,只是改变了CID文件,就可以实现报告的完整性周期性发送。

总召唤

CMS版本验证

直接将CMakelist.txt文件中的

set(COMMUNICATION_PROTOCOL "MMS")

修改为

set(COMMUNICATION_PROTOCOL "CMS")

保存,重新编译运行

使能

连接成功后,按照图中步骤进行使能

抓包


抓包需要安装cms插件,大连云行已经免费分享,请看视频
CMS抓包插件分享视频

总召唤

刚刚的测试用例参数做如下调整,然后发送即可

其他触发

无论是CMS还是MMS,如何实现数据变化、数据更新、质量变化触发呢?可结合上一文的数据更新进行验证,通过数据更新接口更新报告控制块关联的数据即可,这里就不重复介绍了。

其他尝试

可以将CID中的报告控制块修改为缓存报告控制块,然后根据缓存报告控制的规范进行一些验证
比如:
1、数据变化后先缓存,待缓存时间到达后发送;
2、缓存报告的补发;

总结

1、要实现报告模块功能,只需要在CID模型文件中创建报告控制块即可;
2、客户端要想收到报告,需要先使能报告控制块实例;

返回列表