[发明专利]一种IEC61850高层协议报文发送的管理方法有效
申请号: | 201010140460.6 | 申请日: | 2010-04-01 |
公开(公告)号: | CN101827026A | 公开(公告)日: | 2010-09-08 |
发明(设计)人: | 韩明峰;郑永志;唐永建;岳增辉 | 申请(专利权)人: | 东方电子股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 264000 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 iec61850 高层 协议 报文 发送 管理 方法 | ||
技术领域
本发明涉及一种IEC 61850高层协议报文发送的管理方法,属电力系统自动化领域。
背景技术
IEC 61850是智能变电站的系统通信标准。通过将抽象通信服务映射到具体的协议栈, IEC 61850解决了标准的稳定性与未来网络技术发展之间的矛盾。目前IEC 61850的很多服 务映射到MMS(制造报文规范),国内外绝大部分厂家都是基于SISCO公司的 MMSEASE-LITE软件来实现IEC 61850,在嵌入式装置中选用主流的VxWorks操作系统, 其实现方式为TCP/IP+RFC 1006+传输层(服务等级0)+会话层+表示层+应用层。智能变电 站强烈依赖于高速、可靠的网络通信,因此网络报文发送管理方式对系统的运行效率和可 靠性起着非常重要的作用。现有技术主要有两类方法:
(1)、为每一个网络连接建立一个网络守护任务,网络守护任务使用阻塞方式调用 recv(),在套接字上悬挂等待接收数据;在主任务中使用阻塞方式调用send()来发送网络数 据。这种方法比较简单,但是效率低。一个网络守护任务只能为一个连接接收数据。在主 任务中发送数据时,如果应用层报文较长、较多,主任务会阻塞在send()中,影响了主任务 后续事件的实时处理。
(2)、系统在初始时创建一个网络守护任务,基于select()调用负责处理所有网络连接 的数据接收,在主任务中使用非阻塞方式调用send()来发送网络数据。每发送一个应用数据 报文,将其分割成几个带RFC1006报文头的传输层报文,放入套接字的发送报文链表中, 然后从链表头开始依次发送报文。未能完全发送出去的报文继续保存在该套接字的发送报 文链表中,设置标志,由网络守护任务择机进行继续发送。但网络守护任务利用select()调 用的超时或者其它网络事件,在下次重新选择需要监视的文件描述字时才能判断此时该套 接字是否能重新发送数据。如果在超时等待期间网络连接能够重新发送数据,则存在一个 滞后发送的时间窗,影响了报文的实时发送。
智能变电站是一个实时系统,装置生成的大量报文在网络上传输,应尽可能提高传输 效率。现有技术在用户发送数据、将会话层报文分割成传输层报文、以及报文进入发送链 表时均存在报文复制,大大影响了传输效率。
发明内容
本发明所要解决的技术问题是,在VxWorks系统下,提供一种IEC 61850高层协议报 文发送的管理方法,当网络资源拥挤报文不能完全发送出去时,采取一种报文的缓存机制, 监视文件描述字,在可以发送报文时及时发送待发送的报文;采取一种高效的报文缓冲区 管理方式,提高传输效率。
为了解决上述问题,本发明采用了以下技术方案。
一种IEC 61850高层协议报文发送的管理方法,其特征是:主任务初始时分配一个空闲 发送报文缓冲区链表,每个发送报文缓冲区的大小比系统配置的会话层协议数据单元长度 多7个字节;每建立一个套接字,就创建一个相应的管道,管道消息结构包括的数据成员 有报文缓冲区起始指针、报文缓冲区长度、报文起始指针、报文实际长度、传输层报文类 型;
发送报文时,从空闲发送报文缓冲区链表中分配一个发送报文缓冲区,对于数据报文, 利用这个缓冲区从后向前进行报文编码,添加表示层协议控制信息和会话层协议控制信息; 对于连接管理报文,直接在这个缓冲区中生成一个传输层协议数据单元,然后加上RFC1006 报文头;主任务将生成报文的控制信息,包括报文缓冲区起始指针、报文缓冲区长度、报 文起始指针、报文实际长度、传输层报文类型,通过管道机制传递给网络守护任务进行发 送;
网络守护任务基于select()调用,监视一个读文件描述字数组、一个写文件描述字数组 和一个错误文件描述字数组;网络守护任务为每一个套接字设置一个标志socketFlag,用来 表示是等待网络套接字可写,还是等待套接字对应的管道有要发送的报文;网络守护任务 初始时,将套接字对应的管道文件描述字设置在读文件描述字数组中;当网络守护任务等 待的文件描述字就绪时,网络守护任务获得执行时机,检查存放系统返回值的文件描述字 数组,对于每个套接字上的报文发送:
(1)判断当前报文是否发送完;
(2)如果当前报文没有发送完,使用send(),根据当前报文已经发送到的位置,继续 发送当前报文,然后转到过程(5)执行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东方电子股份有限公司,未经东方电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010140460.6/2.html,转载请声明来源钻瓜专利网。