配网故障定位系统的链路维护装置方法和装置的制作方法

文档序号:7866085阅读:239来源:国知局
专利名称:配网故障定位系统的链路维护装置方法和装置的制作方法
技术领域
本发明属于通信领域,尤其涉及一种配网故障定位系统的链路维护方法和装置。
背景技术
现有的配网故障定位系统中,数据的采集和监控控制要通过“前置通讯模块”系统来完成。“前置通讯模块”是每日负责通过各种通讯介质和终端进行通讯的前置设备或系统,并能在与主站其它部分脱离联系后(通讯部分还正常),依然能够维持整个系统运行。前置通讯模块主要起通讯中转的作用,通过对各种通讯规约进行解释和模拟,它在服务器软件和RTU (远程终端装置)之间起桥梁作用。目前的前置通讯模块在实际运行中,存在以下问题
( I)单个PC处理RTU数量受限;(2)多通道情况下,PC处理效率低下;(3)单个通道下挂多个RTU时,串行处理效率低下;(4)通信稳定性差;( 5 )通道切换稳定性差;(6) RTU、通道参数配置不灵活、不能更加工作量的大小灵活配置PC的性能。

发明内容
本发明实施例的目的在于提供一种配网故障定位系统的链路维护方法和装置,旨在解决现有的配网故障定位系统的效率低和稳定性差的问题。本发明实施例是这样实现的,一种配网故障定位系统的链路维护装置,所述配网故障定位系统包括RTU和通道,其中所述RTU包括以太网RTU和串行RTU,所述通道包括与所述以太网RTU通信连接的以太网通道及与所述串行RTU通信连接的串行通道;所述装置包括主控模块、与所述主控模块连接的至少一 TCP工作模块和至少一 COM工作模块,其中,所述主控模块,用于创建、设置和启动所述TCP工作模块和COM工作模块,并与所述通道通信连接;所述TCP工作模块,用于所述以太网RTU中的数据的收发、解析和处理;所述COM工作模块,用于所述串行RTU中的数据的收发、解析和处理。进一步地,所述主控模块包括加载单元,用于加载所述RTU和所述通道的数据;制定策略单元,用于根据所述RTU的类型制定通信策略,若为以太网RTU,则选择采用TCP工作模块进行RTU中的数据的通信传输,若为串行RTU,则选择采用COM工作模块进行RTU中的数据的通信传输;分配任务单元,用于为所述TCP工作模块和COM工作模块分配任务。进一步地,所述分配任务单元具体用于为所述TCP工作模块设置管理对应的以太网RTU的任务;其中,同一序号的以太网RTU对应的主要链路和备用链路由同一 TCP工作模块管理,其中,所述以太网RTU与所述以太网通道的通信连接通过每一个以太网RTU的主要链路和备用链路来完成。进一步地,所述分配任务单元还用于为所述COM工作模块设置管理对应的串行RTU的任务;其中,同一序号的串行RTU对应的主要链路和备用链路由同一 COM工作模块管理,其中,所述串行RTU与所述串行通道的通信连接通过每一个串行RT U的主要链路和备用链路来完成。进一步地,所述TCP工作模块包括第一接收数据单元,用于接收以太网RTU发送的所述以太网RTU的数据,并获取所述数据的报文长度;第一判断单元,用于判断以太网RTU发送的所述数据进入所述第一接收数据单元中的输入缓冲区中的数据的报文长度是否等于或大于所述以太网RTU的数据的报文长度;第一移出单元,当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出至第一解析单元;第一等待单元,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于所述以太网RTU的数据的报文长度时,通过所述第一移出单元将该输入缓冲区中的数据移出至第一解析单元;第一解析单元,用于对移入其中的数据进行解析。进一步地,所述COM工作模块包括第二接收数据单元,用于接收串行RTU发送的所述串行RTU的数据,并获取所述数据的报文长度;第二判断单元,用于判断串行RTU发送的所述数据进入所述第二接收数据单元中的输入缓冲区中的数据的报文长度是否等于或大于所述串行RTU的数据的报文长度;第二移出单元,当所述输入缓冲区中的数据的报文长度大于或等于所述发送的串行RTU的数据的报文长度时,将该输入缓冲区中的数据移出至第二解析单元;第二等待单元,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于所述串行RTU的数据的报文长度时,通过所述第二移出单元将该输入缓冲区中的数据移出至第二解析单元;第二解析单元,用于对移入其中的数据进行解析。进一步地,所述主控模块还用于发送切换指令至所述TCP工作模块或COM工作模块;所述TCP工作模块还用于根据接收到的切换指令完成所述以太网RTU的主要链路和备用链路切换;所述COM工作模块还用于根据接收到的切换指令完成串行RTU主要链路和备用链路的切换。本发明还提出一种配网故障定位系统的链路维护方法,所述配网故障定位系统包括RTU和通道,其中所述RTU包括以太网RTU和串行RTU,所述通道包括与所述以太网RTU通信连接的以太网通道及与所述串行RTU通信连接的串行通道;所述方法包括如下步骤所述配网故障定位系统的主控模块创建、设置和启动至少一 TCP工作模块和至少一 COM工作模块,并与所述通道通信连接;所述TCP工作模块对所述以太网RTU中的数据收发、解析和处理;所述COM工作模块对所述串行RTU的数据收发、解析和处理。
进一步地,所述主控模块创建、设置和启动至少一 TCP工作模块以及至少一 COM工作模块包括加载所述RTU和所述通道的信息;根据所述RTU的类型制定通信策略,若为以太网RTU,则选择采用TCP工作模块进行RTU中的数据的通信传输,若为串行RTU,则选择采用COM工作模块进行RTU中的数据的通信传输;为所述TCP工作模块和COM工作模块分配任务。进一步地,所述主控模块为TCP工作模块分配任务包括
为所述TCP工作模块设置管理对应的以太网RTU的任务;其中,同一序号的以太网RTU对应的主要链路和备用链路由同一 TCP工作模块管理,其中,所述以太网RTU与所述以太网通道的通信连接通过每一个以太网RTU的主要链路和备用链路来完成。进一步地,所述主控模块为COM工作模块分配任务包括为所述COM工作模块设置管理对应的串行RTU的任务;其中,同一序号的串行RTU对应的主要链路和备用链路由同一 COM工作模块管理,其中,所述串行RTU与所述串行通道的通信连接通过每一个串行RTU的主要链路和备用链路来完成。进一步地,所述TCP工作模块对以太网数据收发、解析和处理包括接收以太网RTU发送的所述以太网RTU的数据,并获取所述数据的报文长度;判断以太网RTU发送的所述数据进入所述TCP工作模块中的输入缓冲区中的数据的报文长度是否等于或大于所述以太网RTU中的数据的报文长度;当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出;在所述输入缓冲区中的数据的报文长度小于所述接收的数据,则继续接收数据,直到该输入缓冲区中的数据的报文长度大于或等于所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出;对所述移出的数据进行解析。进一步地,所述COM工作模块对以太网数据收发、解析和处理包括接收串行RTU发送的所述串行RTU的数据,并获取所述数据的报文长度;判断串行RTU发送的所述数据进入所述COM工作模块中的输入缓冲区中的数据的报文长度是否等于或大于所述串行RTU的数据的报文长度;当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述串行RTU的数据的报文长度时,将该输入缓冲区中的数据移出;在所述输入缓冲区中的数据的报文长度小于所述接收的数据,则继续接收数据,直到该输入缓冲区中的数据的报文长度大于或等于所述串行RTU中的数据的报文长度时,将该输入缓冲区中的数据移出;对所述移出的数据进行解析。进一步地,所述方法还包括 所述主控模块发送切换指令至所述TCP工作模块或COM工作模块;所述TCP工作模块根据接收到的切换指令完成所述以太网RTU的主要链路和备用链路切换;或,
所述COM工作模块根据接收到的切换指令完成串行RTU主要链路和备用链路的切换。在本发明中,基于开源网络框架,提供一种配网故障定位系统的链路维护方法和装置,改造链路建立方式、通信方式和通道切换流程,使得配网故障定位系统的稳定性、可靠性、高效性、灵活性大大增强,同时明显增强了用户体验效果、产品的稳定性和可靠性。


图I是本发明配网故障定位系统的链路维护装置一实施例的结构图;图2是本发明配网故障定位系统的链路维护装置一实施例的功能组成图;图3是本发明配网故障定位系统的链路维护装置一实施例中主控模块的结构图; 图4是本发明配网故障定位系统的链路维护装置一实施例中TCP工作模块的结构图;图5是本发明配网故障定位系统的链路维护装置一实施例中COM工作模块的结构图;图6是本发明配网故障定位系统的链路维护方法一实施例的流程图;图7是本发明配网故障定位系统的链路维护方法一实施例中任务分配的流程图;图8是本发明配网故障定位系统的链路维护方法一实施例中主控模块为TCP工作模块分配管理的示意图;图9是本发明配网故障定位系统的链路维护方法一实施例中TCP工作模块初始化的流程图;图10是本发明配网故障定位系统的链路维护方法一实施例中TCP工作模块处理流程图;图11是本发明配网故障定位系统的链路维护方法一实施例中切换通道的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明主要利用了开源网络库(Iibevent)实配网故障定位系统中的作用,尤其是Memcached网络框架(基础网络库是Iibevent网络库)在配网故障定位系统中的链路维护方法,建立了灵活的多线程开源网络通信模型,实现配网故障定位系统的多线程灵活通信机制和单线程多任务并行处理机制。图I示出了本发明实施例配网故障定位系统的链路维护装置的结构示意图,该链路维护装置可以为前置通讯模块本身,也可以是前置通讯模块中内置的一部分。本实施例的配网故障定位系统的链路维护装置主要有两部分组成主控模块10和至少一工作模块。工作模块主要有TCP (传输控制协议)工作模块20,即采用传输控制协议进行数据传输的工作模块,其主要针对以太网RTU即用以太网通信的RTU、C0M (串口)工作模块30,即采用串口通道进行数据传输的工作模块,主要针对串行RTU即用串口通信的RTU。工作模块的主要功能有两个一为数据的接收和发送;另一为对接收数据的解析和处理。RTU与通道通信连接,通道与主控模块10通信连接,由主控模块10控制其数据加载和传输,一条通道可以对应多个RTU,完成多个RTU的数据传输,而每个RTU有主、备两种链路完成通道与每个RTU的连接。本装置的网络框架的主流开发语言为QT、C++两种跨平台的开发语言,设计思想主要源于Libevent库和Memcached网络框架。针对以太网RTU的网络底层主要通过Libevent库来实现,针对串行RTU的底层主要通过QT技术(串口与信号槽技术相结合)的方式来实现。报文的网络字节序和主机字节序的屏蔽采用报文组解编技术(思想源于Dnp协议源码),串口的管理采用QT定时器技术,以太网RTU的连接管理采用Libevent库的定时器技术。主控模块10和各工作模块的交互米用Libevent的Socketpair管道技术以及QT的信号槽和定时器绑定的技术。针对以太网RTU的数据的接收和发送采用Libevent自带的Bufferevent技术。工厂、策略、FSM、单例等设计模型在开发中被使用。
链路维护装置主要功能组成如图2所示,具体如下(I)主控模块10的主要功能网络框架初始化;创建、设置、启动TCP工作模块20和COM工作模块30 ;针对以太网RTU,按照有效的以太网RTU为TCP工作模块20分配任务;针对通道,按照有效的COM工作模块30分配任务;下发手动的切换指令。(2)TCP工作模块20的主要功能以太网RTU的连接管理;接收上行数据;处理手动的切换指令;接收数据的协议解析;自动通道切换;发送下行数据。(3) COM工作模块30的主要功能主、备通道串口的初始化;接收上行数据;处理手动的切换指令;接收数据的协议解析;自动通道切换;发送下行数据。其中,如图3所示,主控模块10包括加载单元11,用于加载数据库中的RTU和通道的信息;所述RTU包括以太网RTU和串行RTU ;制定策略单元12,用于根据RTU的类型制定通信策略,若为以太网RTU,则选择采用TCP工作模块20进行RTU中的数据的通信传输,若为串行RTU,则选择采用COM工作模块30进行RTU中的数据的通信传输;分配任务单元13,用于为所述TCP工作模块10和COM工作模块20分配任务。其中,如图4所示,TCP工作模块20包括第一接收数据单元21,用于接收以太网RTU发送的以太网RTU中数据,并获取所述数据的报文长度;第一判断单元22,用于判断以太网RTU发送的数据进入第一接收数据单元21中的输入缓冲区中的数据的报文长度是否等于或大于以太网RTU中的数据的报文长度;第一移出单元23,当输入缓冲区中的数据的报文长度大于或等于所述发送的所述以太网RTU中的数据的报文长度时,将该输入缓冲区中的数据移出至第一解析单元25 ;第一等待单元24,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于以太网RTU中的数据的报文长度时,通过第一移出单元23将输入缓冲区中的数据移出至第一解析单元25 ;第一解析单元25,用于对移入其中的数据进行解析。
其中,如图5所示,COM工作模块30包括第二接收数据单元31,用于接收串行RTU发送的串行RTU中的数据,并获取所述数据的报文长度;第二判断单元32,用于判断串行RTU发送的数据进入所述第二接收数据单元31中的输入缓冲区中的数据的报文长度是否等于或大于所述串行RTU中的数据的报文长度;第二移出单元33,当 所述输入缓冲区中的数据的报文长度大于或等于所述发送的串行RTU中的数据的报文长度时,将该输入缓冲区中的数据移出至第二解析单元35 ;第二等待单元34,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于所述串行RTU中的数据的报文长度时,通过所述第二移出单元33将该输入缓冲区中的数据移出至第二解析单元35 ;第二解析单元35,用于对移入其中的数据进行解析。TCP和COM工作模块的功能是这样实现的,对应的第一或第二接收数据单元接收对应的以太网RTU或串行RTUD发送的数据,这些数据进入到对应接收数据单元的输入缓冲区,具体数据以报文的形式发送,数据的报文长度作为一个字段位于报文头,即只要对应的接收数据单元接收到数据,不管该数据是否完整,接收数据单元都能接收到报文头,获得对应RTU发送的数据的长度。而对应的判断单元则是判断输入缓冲区中的数据是否已经是完整的对应RTU发送的数据,具体通过报文长度的比较来完成判断。在判断到输入缓冲区中的数据已经是完整的对应RTU发送的数据时,就将输入缓冲区中的数据移出到解析单元进行解析。判断到输入缓冲区中的数据还不完整时,则继续等待直至数据完整再移出到解析单元中进行解析。本实施例的装置工作原理如下(I)主控模块10创建、设置和启动至少一 TCP工作模块20以及至少一 COM工作模块30。主控模块10为每个工作模块分配工作任务、启动工作模块,各工作模块管理的工作任务并行处理,具体为加载单元11加载数据库中各以太网RTU、串行RTU和通道的信息,并保存到本地;制定策略单元12制定和TCP工作模块20之间的通信策略,以及主控模块10和COM工作模块30之间的通信策略;分配任务单元13为TCP工作模块20分配任务,分配策略为根据有效的104RTU序号分配任务,并保证同一以太网RTU主要链路、备用链路两个链路由同一 TCP工作模块20管理。分配任务单元13为COM工作模块30分配任务,分配策略为根据有效的在用101通道分配任务,其中一个COM工作模块30管理两个通道主要链路和备用链路的数据接收和处理。主控模块10启动各工作模块。(2) TCP工作模块20对以太网数据收发、解析和处理,具体为TCP工作模块20先进行初始化流程并与以太网RTU建立链接TCP工作模块20实例化一个Lbevent实例;接收套接字描述符(Fd),和主控模块10进行通信;
遍历TCP工作模块20保存的以太网RTU信息(TCP工作模块20管理的以太网RTU均保存在TCP工作模块20的RTU列表中),调用Libevent库函数创建以太网RTU管理的Bufferevent,并连接。其中,一个以太网RTU建立两个链路主要链路、备用链路,两个链路的建立都在一个TCP工作模块20中完成;为创建的Bufferevent添加读、异常事件;启动Libevent事件主循环。Libevent事件主循环检测到有连接事件发生后,事件回调函数响应,以太网RTU是否连接上只能从事件回调函数中判断,若返回BEV_EVENT_CONNECTED事件,说明连接建立成功,否则返回错误码。TCP工作模块20初始化后,对以太网RTU进行处理如下TCP工作模块20检测到有读事件,对应的Bufferevent的读回调响应;第一接收数据单元21读取输入缓冲区中已接收数据的报文头,得到此数据的报 文长度L (L为大于O的自然数);第一判断单元22判断BufTereevent输入缓冲区中的数据的报文长度是否等于或大于L ;如大于或等于L,则第一移出单元23从Bufferevent的输入缓冲区中移去长度为L的数据到第一解析单元25 ;否则第一等待单元24继续等待,直到Bufferevent输入缓冲区中的数据大于或等于L,然后再由第一移出单元23从Bufferevent的输入缓冲区中移去长度为L的数据到第一解析单元25,由第一解析单元25对所述数据进行解析。需要注意的是,TCP工作模块20发送下行数据时是直接通过Libevent接口函数向对应的Bufferevent的输出缓存区中写数据。(3) COM工作模块30与对串行数据收发、解析和处理,具体为COM工作模块30的初始化,即一个通道创建一个串口对象、并对串口参数设置,串口与信号槽函数的绑定;创建、本线程关联的通道切换定时器、并关联信号槽。注意run函数中创建一个O秒的定时器,并设定只启动一次;(作用是接收主控模块10的信号)调用exec O函数,捕捉信号;C0M工作模块30和主控模块10的交互采用emit发信号的方式。串行数据的解析和处理具体为如串口有数据需要读,则关联的槽函数响应;第二接收数据单元31读取串口中的数据放入COM工作模块30的一个Buff中,并获取BufT中数据的报文头信息,得到本报文长度L ;第二判断单元32比较Buff中的数据长度是否大于或等于L,若是,第二移出单元33从Buff中移去长度为L的数据交第二解析单元35处理;若否,则第二等待单元34等待并继续接收数据,直到缓存中的数据达到L,转由第二移出单元33从Buff中移去长度为L的数据交第二解析单元35解析处理。注意发送下行数据直接通到接口函数往对应的串口中写数据。本实施例还提供了以太网RTU手动通道切换功能,具体如下主控模块10和各工作模块之间的通信基于Libevent库自带的Socketpair管道技术。主控模块10通过Send函数发送通道的切换指令给对应的TCP工作模块20,TCP工作模块20接收Fd绑定的Bufferevent读回调响应后,通过Recv函数读取通道的切换指令,然后通过调用接口做主要链路、备用链路的通道切换行为。通道切换成功后,TCP工作模块20通过接收Fd通知主控模块10,主控模块10触发一定时器定时扫描发送Fd以获知是否有切换通道报文。主控模块控制通道及RTU的数据的加载,本发明中的通道是电力行业内的行业术语,可以指一个网段,通常情况下一个通道可以下挂多个RTU,RTU类似于终端,而通道则类似于与终端通信连接的网站,而实现RTU与通道的通信连接的具体是链路,每一个RTU均设置有两条链路主要链路和备用链路。主控模块可以控制切换每个RTU的主要链路和备用链路,主控模块也可以控制切换RTU对应的通道。本实施例的装置通过运用开源的多线程网络通信模型改造现有的故障定位系统,既提高了配网故障定位系统链路维护模块的稳定性、灵活性、高效性,又使得用户更加方便快捷的使用配网故障定位系统,具体表现为(I)提高了链路数据处理的稳定性和可靠性;
(2)提高了 PC同时处理链路数量;(3)提高了通道切换的可靠性;(4)提高了 CPU的利用效率;(5)提高了配网故障定位系统的参数配置的灵活性。图6示出了本发明实施例提供的配网故障定位系统的链路维护方法,详述如下步骤S101,配网故障定位系统的主控模块创建、设置和启动至少一 TCP工作模块和至少一 COM工作模块,并与所述通道通信连接;该步骤中,主控模块为每个工作模块分配工作任务、启动工作模块,各工作模块管理的工作任务并行处理,具体如图7和图8所示加载数据库中各以太网RTU、串行RTU和通道的信息,并保存到本地。制定主控模块和TCP工作模块之间的通信策略。制定主控模块和COM工作模块之间的通信策略。为TCP工作模块分配任务;分配策略为根据有效的104RTU序号分配任务,并保证同一以太网RTU主要链路、备用链路两个链路由同一 TCP工作模块管理。为COM工作模块分配任务;分配策略为根据有效的在用101通道分配任务,其中一个COM工作模块管理两个通道主要链路和备用链路的数据接收和处理。创建、设置、启动工作模块。步骤S102,TCP工作模块对以太网RTU中的数据收发、解析和处理;该步骤中,TCP工作模块先进行初始化流程并与以太网RTU建立链接,如图9所示,具体如下实例化一个Lbevent实例。接收Fd,和主控模块进行通信。遍历TCP工作模块保存的以太网RTU信息(TCP工作模块管理的以太网RTU均保存在TCP工作模块的RTU列表中),调用Libevent库函数创建以太网RTU管理的Bufferevent,并连接。其中,一个以太网RTU回建立两个链路主要链路、备用链路,两个链路的建立都在一个TCP工作模块中完成,为创建的Bufferevent添加读、异常事件。启动Libevent事件主循环。Libevent事件主循环检测到有连接事件发生后,事件回调函数响应,以太网RTU是否连接上只能从事件回调函数中判断,若返回BEV_EVENT_CONNECTED事件,说明连接建立成功,否则返回错误码。TCP工作模块初始化后,对以太网RTU处理流程如图10所示检测到有读事件,对应的Bufferevent的读回调响应;读取输入缓冲区中已接收数据的报文头,得到此数据的报文长度L ;判断Buffereevent输入缓冲区中的数据的报文长度是否等于或大于L ;如大于或等于L,则从Bufferevent的输入缓冲区中移去长度为L的数据到协议解析层;
否则继续等待,直到Bufferevent输入缓冲区中的数据大于或等于L,然后从Bufferevent的输入缓冲区中移去长度为L的数据到协议解析层进行解析处理。需要注意的是,TCP工作模块发送下行数据时是直接通过Libevent接口函数向对应的Bufferevent的输出缓存区中写数据。步骤S103,COM工作模块对串行数据收发、解析和处理,具体为COM工作模块初始化,即一个通道创建一个串口对象、并对串口参数设置,串口与信号槽函数的绑定;创建本COM工作模块关联的通道切换定时器、并关联信号槽。注意run函数中创建一个O秒的定时器,并设定只启动一次;(作用是接收主控模块的信号)调用exec O函数,捕捉信号;C0M工作模块和主控模块的交互采用emit发信号的方式。串行数据的解析和处理具体为I)如串口有数据需要读,则关联的槽函数响应;2)读取串口中的数据放入本线程的一个Buff中;3)获取Buff中数据的报文头信息,得到本报文长度L ;4)比较Buff中的数据长度是否大于或等于L,若是,执行步骤5. I ;若否,执行步骤 5. 2 ;5. I)从Buff中移去长度为L的数据交协议解析层处理;5. 2)等待,直到缓存中的数据达到L,转到步骤5. I进行处理。注意发送下行数据直接通到接口函数往对应的串口中写数据。本实施例还提供了以太网RTU手动通道切换流程如图11所示。主控模块和各工作模块之间的通信基于Libevent库自带的Socketpair管道技术。主控模块通过Send函数发送通道的切换指令给对应的TCP工作模块,TCP工作模块接收Fd绑定的Bufferevent读回调响应后,通过Recv函数读取通道切换报文,然后通过调用接口做主、备通道的通道切换行为。通道切换成功后,TCP工作模块通过接收Fd通知主控模块,主控模块触发一定时器定时扫描发送Fd以获知是否有切换通道报文。本实施例提供了一种既高效又稳定的开源链路维护方法。通过运用开源的多线程网络通信模型改造现有的故障定位系统链路维护方法,既提高了配网故障定位系统链路维护模块的稳定性、灵活性、高效性,又使得用户更加方便快捷的使用配网故障定位系统,具体表现为(I)提高了链路数据处理的稳定性和可靠性;(2)提高了 PC同时处理链路数量;(3)提高了通道切换的可靠性;
(4)提高了 CPU的利用效率;(5)提高了配网故障定位系统的参数配置的灵活性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等, 均应包含在本发明的保护范围之内。
权利要求
1.一种配网故障定位系统的链路维护装置,所述配网故障定位系统包括RTU和通道,其中所述RTU包括以太网RTU和串行RTU,所述通道包括与所述以太网RTU通信连接的以太网通道及与所述串行RTU通信连接的串行通道;其特征在于,所述装置包括主控模块、与所述主控模块连接的至少一 TCP工作模块和至少一 COM工作模块,其中, 所述主控模块,用于创建、设置和启动所述TCP工作模块和COM工作模块,并与所述通道通信连接; 所述TCP工作模块,用于所述以太网RTU中的数据的收发、解析和处理; 所述COM工作模块,用于所述串行RTU中的数据的收发、解析和处理。
2.如权利要求I所述的链路维护装置,其特征在于,所述主控模块包括 加载单元,用于加载所述RTU和所述通道的数据; 制定策略单元,用于根据所述RTU的类型制定通信策略,若为以太网RTU,则选择采用TCP工作模块进行RTU中的数据的通信传输,若为串行RTU,则选择采用COM工作模块进行RTU中的数据的通信传输; 分配任务单元,用于为所述TCP工作模块和COM工作模块分配任务。
3.如权利要求2所述的链路维护装置,其特征在于,所述分配任务单元具体用于 为所述TCP工作模块设置管理对应的以太网RTU的任务;其中,同一序号的以太网RTU对应的主要链路和备用链路由同一 TCP工作模块管理,其中,所述以太网RTU与所述以太网通道的通信连接通过每一个以太网RTU的主要链路和备用链路来完成。
4.如权利要求2所述的链路维护装置,其特征在于,所述分配任务单元还用于 为所述COM工作模块设置管理对应的串行RTU的任务;其中,同一序号的串行RTU对应的主要链路和备用链路由同一 COM工作模块管理,其中,所述串行RTU与所述串行通道的通信连接通过每一个串行RTU的主要链路和备用链路来完成。
5.如权利要求I至4中任一项所述的链路维护装置,其特征在于,所述TCP工作模块包括 第一接收数据单元,用于接收以太网RTU发送的所述以太网RTU的数据,并获取所述数据的报文长度; 第一判断单元,用于判断以太网RTU发送的所述数据进入所述第一接收数据单元中的输入缓冲区中的数据的报文长度是否等于或大于所述以太网RTU的数据的报文长度;第一移出单元,当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出至第一解析单元; 第一等待单元,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于所述以太网RTU的数据的报文长度时,通过所述第一移出单元将该输入缓冲区中的数据移出至第一解析单元; 第一解析单元,用于对移入其中的数据进行解析。
6.如权利要求I至4中任一项所述的链路维护装置,其特征在于,所述COM工作模块包括 第二接收数据单元,用于接收串行RTU发送的所述串行RTU的数据,并获取所述数据的报文长度; 第二判断单元,用于判断串行RTU发送的所述数据进入所述第二接收数据单元中的输入缓冲区中的数据的报文长度是否等于或大于所述串行RTU的数据的报文长度; 第二移出单元,当所述输入缓冲区中的数据的报文长度大于或等于所述发送的串行RTU的数据的报文长度时,将该输入缓冲区中的数据移出至第二解析单元; 第二等待单元,在所述输入缓冲区中的数据的报文长度小于所述接收的数据时,继续接收数据直到该输入缓冲区中的数据的报文长度大于或等于所述串行RTU的数据的报文长度时,通过所述第二移出单元将该输入缓冲区中的数据移出至第二解析单元; 第二解析单元,用于对移入其中的数据进行解析。
7.如权利要求I至4中任一项所述的链路维护装置,其特征在于,所述主控模块还用于发送切换指令至所述TCP工作模块或COM工作模块;所述TCP工作模块还用于根据接收到 的切换指令完成所述以太网RTU的主要链路和备用链路切换;所述COM工作模块还用于根据接收到的切换指令完成串行RTU主要链路和备用链路的切换。
8.一种配网故障定位系统的链路维护方法,所述配网故障定位系统包括RTU和通道,其中所述RTU包括以太网RTU和串行RTU,所述通道包括与所述以太网RTU通信连接的以太网通道及与所述串行RTU通信连接的串行通道;其特征在于,所述方法包括如下步骤 所述配网故障定位系统的主控模块创建、设置和启动至少一 TCP工作模块和至少一COM工作模块,并与所述通道通信连接; 所述TCP工作模块对所述以太网RTU中的数据收发、解析和处理; 所述COM工作模块对所述串行RTU的数据收发、解析和处理。
9.如权利要求8所述的链路维护方法,其特征在于,所述主控模块创建、设置和启动至少一 TCP工作模块以及至少一 COM工作模块包括 加载所述RTU和所述通道的信息; 根据所述RTU的类型制定通信策略,若为以太网RTU,则选择采用TCP工作模块进行RTU中的数据的通信传输,若为串行RTU,则选择采用COM工作模块进行RTU中的数据的通信传输; 为所述TCP工作模块和COM工作模块分配任务。
10.如权利要求9所述的链路维护方法,其特征在于,所述主控模块为TCP工作模块分配任务包括 为所述TCP工作模块设置管理对应的以太网RTU的任务;其中,同一序号的以太网RTU对应的主要链路和备用链路由同一 TCP工作模块管理,其中,所述以太网RTU与所述以太网通道的通信连接通过每一个以太网RTU的主要链路和备用链路来完成。
11.如权利要求9所述的链路维护方法,其特征在于,所述主控模块为COM工作模块分配任务包括 为所述COM工作模块设置管理对应的串行RTU的任务;其中,同一序号的串行RTU对应的主要链路和备用链路由同一 COM工作模块管理,其中,所述串行RTU与所述串行通道的通信连接通过每一个串行RTU的主要链路和备用链路来完成。
12.如权利要求8至11中任一项所述的链路维护方法,其特征在于,所述TCP工作模块对以太网数据收发、解析和处理包括 接收以太网RTU发送的所述以太网RTU的数据,并获取所述数据的报文长度; 判断以太网RTU发送的所述数据进入所述TCP工作模块中的输入缓冲区中的数据的报文长度是否等于或大于所述以太网RTU的数据的报文长度; 当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出; 在所述输入缓冲区中的数据的报文长度小于所述接收的数据,则继续接收数据,直到该输入缓冲区中的数据的报文长度大于或等于所述以太网RTU的数据的报文长度时,将该输入缓冲区中的数据移出; 对所述移出的数据进行解析。
13.如权利要求8至11中任一项所述的链路维护方法,其特征在于,所述COM工作模块对以太网数据收发、解析和处理包括 接收串行RTU发送的所述串行RTU的数据,并获取所述数据的报文长度; 判断串行RTU发送的所述数据进入所述COM工作模块中的输入缓冲区中的数据的报文长度是否等于或大于所述串行RTU中的数据的报文长度; 当所述输入缓冲区中的数据的报文长度大于或等于所述发送的所述串行RTU的数据的报文长度时,将该输入缓冲区中的数据移出; 在所述输入缓冲区中的数据的报文长度小于所述接收的数据,则继续接收数据,直到该输入缓冲区中的数据的报文长度大于或等于所述串行RTU的数据的报文长度时,将该输入缓冲区中的数据移出; 对所述移出的数据进行解析。
14.如权利要求8至11中任一项所述的链路维护方法,其特征在于,还包括 所述主控模块发送切换指令至所述TCP工作模块或COM工作模块; 所述TCP工作模块根据接收到的切换指令完成所述以太网RTU的主要链路和备用链路切换;或, 所述COM工作模块根据接收到的切换指令完成串行RTU主要链路和备用链路的切换。
全文摘要
本发明适用于通信领域,提供了一种配网故障定位系统的链路维护方法和装置,所述配网故障定位系统包括RTU和通道,其中所述RTU包括以太网RTU和串行RTU,所述通道包括与所述以太网RTU通信连接的以太网通道及与所述串行RTU通信连接的串行通道;其特征在于,所述装置包括主控模块、与所述主控模块连接的至少一TCP工作模块和至少一COM工作模块,其中,所述主控模块,用于创建、设置和启动所述TCP工作模块和COM工作模块,并与所述通道通信连接;所述TCP工作模块,用于所述以太网RTU中的数据的收发、解析和处理;所述COM工作模块,用于所述串行RTU中的数据的收发、解析和处理。本发明提供的一种配网故障定位系统的链路维护方法和装置,提高了配网故障定位系统的效率和稳定性。
文档编号H04L12/24GK102957569SQ20121047548
公开日2013年3月6日 申请日期2012年11月21日 优先权日2012年11月21日
发明者丁明伟 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1