libiec61850

来源:互联网 发布:修真淘宝大户更新 编辑:程序博客网 时间:2024/06/04 00:45
iec61850是见过的最复杂的协议,是现实世界与计算机世界结合最为紧密的应用,把现实世界的电力设备系统层层抽象出服务器,逻辑设备,逻辑节点,数据和属性,然后映射到mms通信协议上。

libiec61850是一个用C语言开发的开源库,工作原因对其进行研究。


以下是一些要点,有助于看懂lib源码是如何实现功能的:

模型部分:

模型抽象度高,需对各种专业名词深入理解,并且最好能识记。

数据映射是多对一映射,所以用到联合体,模型映射时用到了键值对,且模型映射较为复杂。

因为模型是树形结构,而且树的分支数目任意,所以用到二维表。
模型有多层嵌套,建立模型的时候用到了递归。

通信部分
使用的是7层协议,用到了表示层和会话层,大多数人可能对这两层不熟悉。
利用嵌套的有限状态机处理通信,状态较多,且嵌套较深。
构建报文的时候用链表处理变长报文。
框架有单线程模式,和多线程模式,注意区别。

对整个电力系统进行了抽象,且统一了通信报文,改善通信混乱统一标准,也分离了职责,管理人员只管建立模型,管理模型,由框架自动加载解析,不需要管具体实现,一个维护人员可以搞定所有设备,而不是每个设备需要根据单独的协议编写后台采集数据然后再汇总,节省人力沟通维护成本。 

其实质是定义一套模型抽象类(字典),所有设备根据自身功能选择其中部分类构建模型(查字典中的形容词,描述自身功能或属性),以及大家约定的报文类型结构(语言语法),就像国际语言英语大家都用的英语字典里面的单词,语法也是世界通用,所以可以无障碍交流。


硬件成本上升,模型和协议学习成本增加,对技术研发人员要求更高。

现在实现的案例较少,大多实现的功能不全,且相应的软件不够自动化


0 0