一种提高电力监控服务器端报文处理速度的方法

文档序号:7726899阅读:190来源:国知局
专利名称:一种提高电力监控服务器端报文处理速度的方法
技术领域
本发明要解决的技术问题在于提供一种提高电力监控服务器端报文处理速度的方法。
背景技术
电力监控系统以计算机、通讯设备、测控单元为基本工具,为变配电系统的实时数据采集、开关状态检测及远程控制提供了基础平台,它可以和检测、控制设备构成任意复杂的监控系统,在变配电监控中发挥了核心作用,可以帮助企业消除孤岛、降低运作成本,提高生产效率,加快变配电过程中异常的反应速度。在它的功能不断完善的同时,用户对实时性方面提出了越来越高的要求。由于它采用的面向连接TCP/IP技术,系统的响应时间取决于发送方的发送速率和接收方响应处理能力,要尽量避免出现因接收方处理速度慢,数据在TCP/IP缓冲层堆积,导致发送方发送数据失败,速率降低的情况。因此服务器端和客户端应支持并发处理方式,一个任务阻塞等待的时候另一个任务正好得以调度运行,充分利用CPU的能力。

发明内容
本发明要解决的技术问题在于提供一种运行稳定,处理速度快捷的电力监控服务器端报文处理方法。为解决上述技术问题,本发明通过一下技术方案来实现一种提高电力监控服务器端报文处理速度的方法,基于IEC61850客户端的动态库软件,实现与IEC61850服务器端的连接,提高服务器发送的报文快速有效的处理,包括有编码模块、解码模块、测试模块、 数据接收线程模块、客户端动态库接口模块和滤波模块,其实现过程包括以下步骤,a、所述编码模块主要任务是对各种命令进行组帧,组织报文的依据是匪S协议, 主要的算法是采用后序编码,即从缓冲区的末尾向前进行编码;b、所述解码模块由各种命令解帧函数构成,主要用来解析接收缓冲区的报文,线程是在初始化MMS成功后和报文接收线程同时创建,从缓冲区取出一帧正确的数据放入临时缓冲区,然后调用解帧函数对报文进行处理;C、所述测试模块主要是对各种命令的组帧函数进行单测,检验的方法是将发送帧输出到屏幕上,然后将接受到的报文也输出到屏幕上,与IEDSC0UT软件对照即可知道是否接受成功;d、所述数据接收线程模块主要是接收来自服务器端的报文,把收到的数据放入接收缓冲区,当接收数据有问题时断开网络,之后重新连接;e、所述是客户端的最终接口,该接口直接提供给上层程序进行调用,该动态库的接口函数有一些函数构成,能实现传统的四遥功能,以及录波等功能,并且能满足现场的要求,能够处理程序的一些异常情况,使程序能够稳定的运行。所述步骤a中编码模块的组帧有以下三种情况,初始化MMS,只有这个成功才创建MMS数据解析与接收线程;读取树节点报文,读树信息会涉及到很多嵌套,一定要发送一条命令且等待解析完后才能发下一条命令,这个等待用一个事件来触发解析完成,等待会有一个超时,超时会读取树节点函数会异常退出,程序又要重新开始读取树信息,组帧完后调用发送函数就返回,中间不会等待;错误处理MMS启动报文是初始化MMS,读取树节点报文的发送报文失败会让函数返回失败,之后重新建立连接,再次发送,发送后失败后,会断开网络连接,数据接收线程会检测到这个状态,重新连接网络,这个报文不会重新发送。所述步骤b中解码模块算法,首先对固定字节进行比较,判定接收到的报文是否有错;如果没有错,继续解析,当遇到有所需要的数据时,如果为LD,则创建一个LD对象,为 LN,则创建一个LN对象,其他对象方法一样;然后调用添加元素函数,将LD,LN等对象加入到相应节点的下面,添加成功后,返回帧。本发明采用多线程处理的方法,分为匪S命令发送线程,接收服务端报文线程以及报文处理线程,服务端报文线程一直监测Socket缓冲区是否有数据,如果有数据到来就一次性全部读出来放入应用程序开辟数据共享缓冲区,然后通知数据处理线程从数据共享缓冲区读取数据作解码处理,本发明总体来说具有以下优点1.模块性强,扩展性好;2.采用多线程的处理方式,提高任务的并发性和吞吐量;3.处理因数据变化、品质变化等原因引起遥信、遥测报告实时性很强;4.应用程序开辟大块缓冲区,减少因TCP缓冲区满导致服务器端发送失败的机率;5.严密的逻辑判断和异常处理,极大程度保证程序稳定运行。


图1为本发明编码模块原理图2为本发明编码模块接口流程图3为本发明解码模块原理图4为本发明解码模块流程图5为本发明数据接收线程模块原理图6为本发明数据接收线程模块数据接收线程模块流程图。
具体实施例方式一种提高电力监控服务器端报文处理速度的方法,基于IEC61850客户端的动态库软件,实现与IEC61850服务器端的连接,提高服务器发送的报文快速有效的处理,包括有编码模块、解码模块、测试模块、数据接收线程模块、客户端动态库接口模块和滤波模块。实施例一图1、图2所示,编码模块主要任务是对各种命令进行组帧,组织报文的依据是MMS协议,主要的算法是采用后序编码,即从缓冲区的末尾向前进行编码,该函数的具体流程如下组帧分为几种情况匪S启动报文、读取树节点报文、YK召唤TO(YC、KffH)。 MMS启动报文是初始化MMS 只有这个成功才创建MMS数据解析与接收线程。读取树节点报文读树信息会涉及到很多嵌套,一定要发送一条命令且等待解析完后才能发下一条命令。 这个等待用一个事件来触发解析完成,等待会有一个超时,超时会读取树节点函数会异常退出,程序又要重新开始读取树信息。 (召唤TO(YC、KWH)组帧完后调用发送函数就返回, 中间不会等待。错误处理:MMS启动报文是初始化MMS、读取树节点报文的发送报文失败会让树函数返回失败,之后重新建立连接,再次发送。 (召唤TO(YC、KWH)发送后失败后,会断开网络连接,数据接收线程会检测到这个状态,重新连接网络,这个报文不会重新发送。实施例二 图3、图4所示,解码模块由各种命令解帧函数构成,主要用来解析接收缓冲区的报文,线程是在初始化MMS成功后和报文接收线程同时创建,从缓冲区取出一帧正确的数据放入临时缓冲区,然后调用解帧函数对报文进行处理。首先对固定字节进行比较,判定接收到的报文是否有错,如果没有错,继续解析,当遇到有所需要的数据时,如果为LD,则创建一个LD对象,为LN,则创建一个LN对象,其他对象方法一样,然后调用添加元素函数,将LD,LN等对象加入到相应节点的下面,添加成功后,返回真。实施例三测试模块主要是对各种命令的组帧函数进行单测,检验的方法是将发送帧输出到屏幕上,然后将接受到的报文也输出到屏幕上,与IEDSC0UT软件对照即可知道是否接受成功。实施例四图5、图6所示,数据接收线程模块主要是接收来自服务器端的报文,把收到的数据放入接收缓冲区,当接收数据有问题时断开网络,之后重新连接,整个循环缓冲区的大小用RECV_BUF_SUE来表示,其中变量headP为从循环缓冲区读到的数据位置,每读一个位置headP就移动一个位置,tailP为将数据往循环缓冲区写的位置,每写一个字节就向前移动一个位置;当headP或者tailP的值超过RECV_BUF_SUE时,缓冲区头开始读或写数据;当写要超过headP时,也就是缓冲区不够写数据时,覆盖之前没有处理的数据。实施例五客户端的最终接口,该接口直接提供给上层程序进行调用,该动态库的接口函数有一些函数构成,能实现传统的四遥功能,以及录波等功能,并且能满足现场的要求,能够处理程序的一些异常情况,使程序能够稳定的运行。
权利要求
1.一种提高电力监控服务器端报文处理速度的方法,其特征在于基于IEC61850客户端的动态库软件,实现与IEC61850服务器端的连接,提高服务器发送的报文快速有效的处理,包括有编码模块、解码模块、测试模块、数据接收线程模块、客户端动态库接口模块和滤波模块,其实现过程包括以下步骤,a、所述编码模块主要任务是对各种命令进行组帧,组织报文的依据是MMS协议,主要的算法是采用后序编码,即从缓冲区的末尾向前进行编码;b、所述解码模块由各种命令解帧函数构成,主要用来解析接收缓冲区的报文,线程是在初始化MMS成功后和报文接收线程同时创建,从缓冲区取出一帧正确的数据放入临时缓冲区,然后调用解帧函数对报文进行处理;c、所述测试模块主要是对各种命令的组帧函数进行单测,检验的方法是将发送帧输出到屏幕上,然后将接受到的报文也输出到屏幕上,与IEDSC0UT软件对照即可知道是否接受成功;d、所述数据接收线程模块主要是接收来自服务器端的报文,把收到的数据放入接收缓冲区,当接收数据有问题时断开网络,之后重新连接;e、所述是客户端的最终接口,该接口直接提供给上层程序进行调用,该动态库的接口函数有一些函数构成,能实现传统的四遥功能,以及录波等功能,并且能满足现场的要求, 能够处理程序的一些异常情况,使程序能够稳定的运行。
2.根据权利要求1所述的提高电力监控服务器端报文处理速度的方法,其特征在于 所述步骤a中编码模块的组帧有以下三种情况,初始化MMS,只有这个成功才创建MMS数据解析与接收线程;读取树节点报文,读树信息会涉及到很多嵌套,一定要发送一条命令且等待解析完后才能发下一条命令,这个等待用一个事件来触发解析完成,等待会有一个超时, 超时会读取树节点函数会异常退出,程序又要重新开始读取树信息,组帧完后调用发送函数就返回,中间不会等待;错误处理MMS启动报文是初始化丽S,读取树节点报文的发送报文失败会让函数返回失败,之后重新建立连接,再次发送,发送后失败后,会断开网络连接, 数据接收线程会检测到这个状态,重新连接网络,这个报文不会重新发送。
3.根据权利要求1所述的提高电力监控服务器端报文处理速度的方法,其特征在于 所述步骤b中解码模块算法,首先对固定字节进行比较,判定接收到的报文是否有错;如果没有错,继续解析,当遇到有所需要的数据时,如果为LD,则创建一个LD对象,为LN,则创建一个LN对象,其他对象方法一样;然后调用添加元素函数,将LD,LN等对象加入到相应节点的下面,添加成功后,返回帧。
全文摘要
一种提高电力监控服务器端报文处理速度的方法,基于IEC61850客户端的动态库软件,实现与IEC61850服务器端的连接,提高服务器发送的报文快速有效的处理,包括有编码模块、解码模块、测试模块、数据接收线程模块、客户端动态库接口模块和滤波模块,所述编码模块主要任务是对各种命令进行组帧,组织报文的依据是MMS协议,主要的算法是采用后序编码,即从缓冲区的末尾向前进行编码;所述解码模块由各种命令解帧函数构成,主要用来解析接收缓冲区的报文,报文的处理方法运行稳定,处理速度快捷。
文档编号H04L12/56GK102307138SQ20111020116
公开日2012年1月4日 申请日期2011年7月18日 优先权日2011年7月18日
发明者丁建义, 刘正方, 廖民康, 张孝山, 林峰平 申请人:深圳市康必达中创科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1