什么是报告
报告是IEC61850中常用的服务,大家常聊的遥信和遥测就是用到的IEC61850中的报告服务,关于报告服务的一些细节,可以查阅IEC61850标准7-2的相关章节,本文直接讲述如何实现。
建模
鉴于云行科技的YX-PIS协议栈的特点,需要什么功能在模型里面配置就可以了,所以实现报告功能只需要在模型中配置报告控制块即可
创建报告控制块
添加报告控制块
打开yx-ied-designer工具,按照下图添加报告控制块
填写报告控制块信息
设置报告控制块触发条件
设置报告控制块选项域
设置报告控制块最大实例数量
创建数据集
这个报告控制块还无法选择数据集,是因为这个模型文件中尚未创建过数据集,所以我们还要进行数据集的创建。
添加数据集
选择数据及命名
在控制块中选择数据集
数据集创建成功后即可在报告控制块中进行选择
CID文件中的报告控制块
通过工具完成了报告控制块的建模,我们可以打开cid文件,看看实际的内容如下:
<ReportControl buffered="false" confRev="1" datSet="testDataSet" desc="测试用的报告控制块" indexed="true" intgPd="9000" name="testReportCB">
<TrgOps dchg="true" dupd="true" gi="true" period="true" qchg="true"/>
<OptFields/>
<RptEnabled max="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、客户端要想收到报告,需要先使能报告控制块实例;