浅谈-61850-2-服务端模拟软件构建

目录

一、将附件提供的demo解压至任意文件夹,附件内容如下图

1.1、首先介绍几个重要文件,也是我们测试需要用到的,文章中没有列举到的文件可以忽略。

1.2、运行程序

二、运行程序

三、结语


前两篇文章说到61850的代码一般来说是基于思科的代码,稳定且功能全。本篇文章就以思科代码为例,去构建一个简易61850服务端,展示其用法。并介绍客户端读取的过程及方法。

有一段时间没有接触电力的方面的内容了,花了大半天时间熟悉了下,今天晚上将程序写好,因为以前的程序都是基于电力通讯平台适配的,没法给大家直接用。所以重新写了个windows版的。比较简陋,没有视窗,但是还原了代码其本来的样子。

时间有限,本服务端demo只支持遥测及遥信数据的上送(相应品质值取好上送,时间默认系统时间上送),不支持定制开发,仅用于学习61850的使用。废话不多,进入正题。

因为是原装,未封装过,布置起来可能会比较麻烦。主要流程如下:

一、将附件提供的demo解压至任意文件夹,附件内容如下图

1.1、首先介绍几个重要文件,也是我们测试需要用到的,文章中没有列举到的文件可以忽略。

1.1.1、startup.cfg,打开内容显示如下

其中只需要注意红线三处。1、服务端需要读出的IED名称,如本例名称为IEC61850.icd,名称大家可以根据需求改动(一定要保证一致,否则程序无法运行)。2、设置的IED名称,打开icd文件即可浏览 <IED configVersion="V1.00" desc="" manufacturer="TEST" name="TEST_IED">。如果读取其它icd文件,请相应同步修改2处。3、接入点名称同样在icd文件中语句<AccessPoint name="S1">。其他处无特殊需求,不需改动。

1.1.2、datamap.cfg,打开内容如下

#   COLUMN #1: Domain name

#   COLUMN #2: Leaf name

#   COLUMN #3: User text to be used by leaf function

其中我们只需要管前两列就好,第一列加第二列就可以完全确定一个数据变量。

#1翻译过来就是域名称,怎么组成的呢?就是IEDNAME+LDNAME。本demo中,智能电子设备名称为TEST_IED,逻辑设备名称为MONT4。

#2翻译过来就是叶子名称,怎么组成呢,以icd中遥测数据集下的一个功能约束数据属性条目来分析

<FCDA ldInst="MONT4" prefix="kh" lnInst="18" lnClass="MMXN" doName="Amp" fc="MX" />

大家猜一猜就知道了组成就是prefix+lnClass+lnInst+fc+doName+DA,这里的DA在icd数据集后会列举出来。本例如下

所以我们在编写ICD文件的时候,一定要注意每个条目组成后的字串的唯一性,这样61850才能正确的传输数据。

其次,强调一下这个文件的重要性,此为服务程序映射数据的表,不能删除且不能为空,否则就不会有数据条目映射到内存里,也就访问不了数据。定制化开发的话,可以对文件进行操作,删除不必要映射的点,不过挑点也比较麻烦,一般是程序挑点写文件,解放双手。

最后说一下该文件的产生,程序运行时,首先是会产生datamapout.cfg这个文件,这是datamap.cfg的雏形,会把所有需要映射的点都列举出来。当我们重新换一个icd 文件运行的时候,datamapout.cfg的内容就会相应改动。但datamap.cfg内容并未改动,因为时间原因,没有做两文件的同步。所以,大家如果替换成自己的icd进行测试的情况下,又对跳点没有太大需求,请将datamapout.cfg文件拷贝成datamap.cfg,切记,否则数据无法正常映射。

其它未提及的文件,不必要理睬,程序运行所需。

1.2、运行程序

本例提供的附件可直接运行,操作。只需要双击demo.exe,程序运行画面如下

程序依此进行了scl语法的检测,scl类型的映射创建以及datamap数据的创建。

最后会依此提示让你输入域名称,叶名称以及相应的操作值。域名称及叶名称直接从datamap.cfg文件中依此拷贝即可,需要注意的是,前面说过datamap中是直接拷贝datamapout.cfg的,所以是所以数据的映射,我们需要根据icd中数据集里列出的条目去寻找相应的映射,否则,数据能设置成功,但是客户端不一定能直观看到。(肯定有人惊呼,好麻烦,是的,因为我没进行封装)。

程序会一直提示你输入,直到你按ctrl+c结束。具体的操作及显示,大家自己去感受了。

二、运行程序

是的,正如你想的那样,客户端一般也是基于思科代码开发,不过客户端网上很多,所以博主就没有重新写个demo出来了。这里选择了一款比较好的客户端软件一起打包在附件里给大家使用。

程序运行如下

绿色表示以及连接上了,此客户端支持本地及在线连接,具体怎么操作,不再详细赘述,软件内已有说明文档,仔细看即可。

对着绿色右击,选中数据集,如下显示

依此展开,就能查询到刚刚设置的值,如本例将遥测数据集的第一个点位设置为7.8。

希望读者受本例启发,能思考到的时,这里的输入,在以后的定制开发中不会存在,而且设置的值,可以用采集上来的数据填充,比如ModBus,101,cdt等。只需要考虑做好数据及条目的映射关系就可以。这样就可以用于现场实际项目开发了。

三、结语

介绍到这里,基本结束了,软件需要大家自己去多尝试(可能会存在BUG)。通过实操,服务端与客户端的结合,61850学习起来也会事倍功半。顺便再提一句,icd文件如果手动制作,会比较麻烦,容易出错,在熟悉架构后,可以写程序自动生成,方便快捷。

程序下载路径

https://download.csdn.net/download/z5201314100/10902566

没有积分可进行百度网盘下载,路径如下:

https://pan.baidu.com/s/1AaLQLjJ29JKFkKtzKmJe0Q 提取码:47pr

关于61850问题或需求定制请联系微信号HardAndBetter,或者进qq群586166104讨论

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值