libiec61850
来源:互联网 发布:修真淘宝大户更新 编辑:程序博客网 时间:2024/06/04 00:45
iec61850是见过的最复杂的协议,是现实世界与计算机世界结合最为紧密的应用,把现实世界的电力设备系统层层抽象出服务器,逻辑设备,逻辑节点,数据和属性,然后映射到mms通信协议上。
使用的是7层协议,用到了表示层和会话层,大多数人可能对这两层不熟悉。
利用嵌套的有限状态机处理通信,状态较多,且嵌套较深。
构建报文的时候用链表处理变长报文。
框架有单线程模式,和多线程模式,注意区别。
对整个电力系统进行了抽象,且统一了通信报文,改善通信混乱统一标准,也分离了职责,管理人员只管建立模型,管理模型,由框架自动加载解析,不需要管具体实现,一个维护人员可以搞定所有设备,而不是每个设备需要根据单独的协议编写后台采集数据然后再汇总,节省人力沟通维护成本。
其实质是定义一套模型抽象类(字典),所有设备根据自身功能选择其中部分类构建模型(查字典中的形容词,描述自身功能或属性),以及大家约定的报文类型结构(语言语法),就像国际语言英语大家都用的英语字典里面的单词,语法也是世界通用,所以可以无障碍交流。
libiec61850是一个用C语言开发的开源库,工作原因对其进行研究。
以下是一些要点,有助于看懂lib源码是如何实现功能的:
模型部分:
模型抽象度高,需对各种专业名词深入理解,并且最好能识记。
数据映射是多对一映射,所以用到联合体,模型映射时用到了键值对,且模型映射较为复杂。
因为模型是树形结构,而且树的分支数目任意,所以用到二维表。
模型有多层嵌套,建立模型的时候用到了递归。
使用的是7层协议,用到了表示层和会话层,大多数人可能对这两层不熟悉。
利用嵌套的有限状态机处理通信,状态较多,且嵌套较深。
构建报文的时候用链表处理变长报文。
框架有单线程模式,和多线程模式,注意区别。
对整个电力系统进行了抽象,且统一了通信报文,改善通信混乱统一标准,也分离了职责,管理人员只管建立模型,管理模型,由框架自动加载解析,不需要管具体实现,一个维护人员可以搞定所有设备,而不是每个设备需要根据单独的协议编写后台采集数据然后再汇总,节省人力沟通维护成本。
其实质是定义一套模型抽象类(字典),所有设备根据自身功能选择其中部分类构建模型(查字典中的形容词,描述自身功能或属性),以及大家约定的报文类型结构(语言语法),就像国际语言英语大家都用的英语字典里面的单词,语法也是世界通用,所以可以无障碍交流。
硬件成本上升,模型和协议学习成本增加,对技术研发人员要求更高。
现在实现的案例较少,大多实现的功能不全,且相应的软件不够自动化
0 0
- libiec61850
- libiec61850系列:建模(二)
- libiec61850系列(一):编译
- IEC61850笔记--开源代码libIEC61850(一)
- IEC61850笔记--开源代码libIEC61850(二)
- libiec61850 自学笔记 01 --- 创建一个61850服务器
- libIEC61850 Open source学习心得(一)——Connection handling
- libIEC61850 Open source学习心得(二)—— Client注册报告控制块
- 第三周项目4穷举法(3)
- 浅谈C++内联函数
- shell 之 grep 指令
- day03 数据存储和界面展现(2)
- iOS原生条形码扫描
- libiec61850
- 应不应该使用inline-block代替float
- C编程命名习惯总结
- hdoj 密码 2043 (模拟水)
- Reversing Linked List
- Eclipse 配置首选项
- 计算机语言的思考
- Python里面的正则表达式:
- java编写一个端口扫描器