发明内容
本发明提供一种基于IEC104规约的监听方法及系统,以解决现有技术无法及时反馈设备故障的技术问题。
本发明提供一种基于IEC104规约的监听方法,所述基于IEC104规约的监听方法包括:建立主站、子站和监听系统的TCP连接;判断报文类型,所述报文类型包括上行报文和下行报文;若报文为上行报文,则判断主站应答是否正确;若报文为下行报文,则判断子站应答是否正确;若所述主站和/或所述子站的应答不正确,则记录主站应答不正确次数或子站应答不正确次数,若所述主站应答不正确次数或所述子站应答不正确次数超过5次,则发送报警信号;若所述主站和/或所述子站的应答正确,则储存对应的上行报文和/或下行报文。
优选的,所述判断报文类型包括:识别报文IP地址;若所述IP地址与主站的IP地址一致,则所述报文为下行报文;若所述IP地址与子站的IP地址一致,则所述报文为上行报文。
优选的,所述基于IEC104规约的监听方法还包括:判断帧类型,所述帧类型包括计数帧、信息帧和命令帧;若所述帧类型为计数帧,则判断子站应答是否正确;若所述帧类型为信息帧,则储存信息帧报文;若所述帧类型为命令帧,则储存命令帧报文。
优选的,所述基于IEC104规约的监听方法还包括:判断队列是否为空或链路是否断开;若是队列为空或链路断开,则结束;若队列不为空或链路没有断开,则继续监听主站和子站的应答是否正确。
优选的,所述基于IEC104规约的监听方法还包括:解包,去掉TCP协议的封装。
优选的,所述基于IEC104规约的监听方法还包括:系统初始化,将原有的监听内容清零。
本发明还提供一种基于IEC104规约的监听系统,所述基于IEC104规约的监听系统包括:TCP连接模块,所述TCP连接模块用于建立主站、子站和监听系统的TCP连接;报文类型判断模块,所述报文类型判断模块用于判断报文类型,所述报文类型包括上行报文和下行报文;主站应答判断模块,所述主站应答判断模块用于当报文为上行报文时,判断主站应答是否正确;子站应答判断模块,所述子站应答判断模块用于当报文为下行报文时,判断子站应答是否正确;记录模块,所述记录模块用于当所述主站和/或所述子站的应答不正确时,记录主站应答不正确次数和/或子站应答不正确次数;报警信号发送模块,所述报警信号发送模块用于当主站应答不正确次数或子站应答不正确次数超过5次时,发送报警信号;储存模块,所述储存模块用于当所述主站和/或所述子站的应答正确时,储存对应的上行报文和/或下行报文。
优选的,所述报文类型判断模块包括:报文IP地址识别子模块,所述报文IP地址识别子模块用于识别报文IP地址,若所述IP地址与主站的IP地址一致,则所述报文为下行报文;若所述IP地址与子站的IP地址一致,则所述报文为上行报文。
优选的,所述基于IEC104规约的监听系统还包括:帧类型判断子模块,所述帧类型判断子模块用于判断帧类型,所述帧类型包括计数帧、信息帧和命令帧;信息帧报文储存模块,所述信息帧报文储存模块用于当所述帧类型为信息帧时,储存信息帧报文;命令帧报文储存模块,所述命令帧报文储存模块用于当所述帧类型为命令帧时,储存命令帧报文。
优选的,所述基于IEC104规约的监听系统还包括:队列或链路判断模块,所述队列或链路判断模块用于判断队列是否为空或链路是否断开;若是队列为空或链路断开,则结束;若队列不为空或链路没有断开,则继续监听主站和子站的应答是否正确。
优选的,所述基于IEC104规约的监听系统还包括:解包模块,所述解包模块用于去掉TCP协议的封装。
优选的,所述基于IEC104规约的监听系统还包括:系统初始化模块,所述系统初始化模块用于系统初始化,将原有的监听内容清零。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明提供一种基于IEC104规约的监听方法,所述基于IEC104规约的监听方法包括:建立主站、子站和监听系统的TCP连接;判断报文类型,所述报文类型包括上行报文和下行报文;若报文为上行报文,则判断主站应答是否正确;若报文为下行报文,则判断子站应答是否正确;若主站应答不正确次数或子站应答不正确次数超过5次,则发送报警信号;若所述主站和/或所述子站的应答正确,则储存对应的上行报文和/或下行报文。本基于IEC104规约的监听方法分别累计主站应答不正确次数和子站应答不正确次数,当主站应答不正确次数或子站应答不正确次数超过5次时,发出报警信号,监听工作人员可以根据报警信号及时查找并处理设备故障,有效避免网络堵塞等不良后果,因此,本监听方法可以解决现有技术无法及时反馈设备故障的技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置的例子。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。
请参看图1,所示为本发明实施例中提供的第一种基于IEC104规约的监听方法的流程图。
由图1可知,本发明提供一种基于IEC104规约的监听方法,所述基于IEC104规约的监听方法包括:建立主站、子站和监听系统的TCP连接;判断报文类型,所述报文类型包括上行报文和下行报文;若报文为上行报文,则判断主站应答是否正确;若报文为下行报文,则判断子站应答是否正确;若所述主站和/或所述子站的应答不正确,则记录主站应答不正确次数或子站应答不正确次数,若所述主站应答不正确次数或所述子站应答不正确次数超过5次,则发送报警信号;若所述主站和/或所述子站的应答正确,则储存对应的上行报文和/或下行报文。
本实施例在中,在建立主站、子站和监听系统的TCP连接之前还包括搭建监听系统:将主站和子站分别与交换机连接,在交换机的第三个接口处连接监听主机,采用端口汇聚技术将主站和子站发送的消息复制到第三个接口处,从而完成监听系统的搭建。在完成监听系统的搭建后,建立主站、子站和监听系统的TCP连接,从而确保主站和子站间信息的稳定传输。
本实施例在中,判断报文类型包括:识别报文IP地址;若所述IP地址与主站的IP地址一致,则所述报文为下行报文,即报文从主站传输到子站;若所述IP地址与子站的IP地址一致,则所述报文为上行报文,即报文从子站传输到主站。
若报文为上行报文,则判断主站应答是否正确;若主站应答正确,则将对应的上行报文储存至监听主机数据库;若主站应答不正确,则记录主站应答不正确的次数并重新传送,若主站应答不正确次数累计超过5次,则发送报警信号,并记录报警信息。
若报文为下行报文,则判断子站应答是否正确;若子站应答正确,则将对应的下行报文储存至监听主机数据库;若子站应答不正确,则记录子站应答不正确的次数并重新传送,若子站应答不正确次数累计超过5次,则发送报警信号,并记录报警信息。
本实施例提供的基于IEC104规约的监听方法分别累计主站应答不正确次数和子站应答不正确次数,当主站应答不正确次数或子站应答不正确次数超过5次时,发出报警信号,监听工作人员可以根据报警信号及时查找并处理设备故障,有效避免网络堵塞等不良后果,因此,本监听方法可以解决现有技术无法及时反馈设备故障的技术问题。
进一步,所述基于IEC104规约的监听方法还包括:判断帧类型,所述帧类型包括计数帧、信息帧和命令帧;若所述帧类型为计数帧,则判断子站应答是否正确;若所述帧类型为信息帧,则储存信息帧报文;若所述帧类型为命令帧,则储存命令帧报文。
具体的,若所述帧类型为计数帧,则判断子站应答是否正确若子站应答正确,则将对应的下行报文储存至监听主机数据库;若子站应答不正确,则记录子站应答不正确的次数并重新传送,若子站应答不正确次数累计超过5次,则发送报警信号,并记录报警信息。
若所述帧类型为信息帧,则读取报文信息,并将信息帧报文所传递的时间或者电能信息存储至监听主机数据库。
若所述帧类型为命令帧,则将主站命令等待类型(功能码)入堆栈,并将命令帧报文储存到监听主机数据库。
进一步,所述基于IEC104规约的监听方法还包括:判断队列是否为空或链路是否断开;若是队列为空或链路断开,则结束;若队列不为空或链路没有断开,则继续监听主站和子站的应答是否正确。
进一步,所述基于IEC104规约的监听方法还包括:解包,去掉TCP协议的封装以及系统初始化,将原有的监听内容清零,防止原有的监听内容对新监听任务的干扰。
请参看图2,所示为本发明实施例中提供的另一种基于IEC104规约的监听方法的流程图。
由图2可知,本发明实施例中提供的另一种基于IEC104规约的监听方法的流程图包括:
S11:建立主站、子站和监听系统的TCP连接;
S12:系统初始化;
S13:判断报文类型,所述报文类型包括上行报文和下行报文;
S14:若报文为上行报文,则解包上行报文;
S15:判断帧类型;
S16:若帧类型为计数帧,则判断子站应答是否正确;
S17:记录主站应答不正确次数,当主站应答不正确次数超过5次时,发送报警信号;
S18:结束;
S19:储存上行报文;
S20:若所述帧类型为信息帧,则储存信息帧报文;
S21:若所述帧类型为命令帧,则储存命令帧报文;
S22:若报文为下行报文,则解包下行报文;
S23:若报文为下行报文,则判断子站应答是否正确;
S24:储存下行报文;
S25:记录子站应答不正确次数,当子站应答不正确次数超过5次时,发送报警信号;
S26:结束;
S27:判断队列是否为空或链路是否断开;
S28:若是,则结束;
S29:若否,则判断队列是否为空或链路是否断开。
请参看图3,所示为本发明实施例中提供的一种基于IEC104规约的监听系统的结构示意图。
由图3可知,本发明还提供一种基于IEC104规约的监听系统,所述基于IEC104规约的监听系统包括:TCP连接模块,所述TCP连接模块用于建立主站、子站和监听系统的TCP连接;报文类型判断模块,所述报文类型判断模块用于判断报文类型,所述报文类型包括上行报文和下行报文;主站应答判断模块,所述主站应答判断模块用于当报文为上行报文时,判断主站应答是否正确;子站应答判断模块,所述子站应答判断模块用于当报文为下行报文时,判断子站应答是否正确;记录模块,所述记录模块用于当所述主站和/或所述子站的应答不正确时,记录主站应答不正确次数和/或子站应答不正确次数;报警信号发送模块,所述报警信号发送模块用于当主站应答不正确次数或子站应答不正确次数超过5次时,发送报警信号;储存模块,所述储存模块用于当所述主站和/或所述子站的应答正确时,储存对应的上行报文和/或下行报文。
进一步,所述报文类型判断模块包括:报文IP地址识别子模块,所述报文IP地址识别子模块用于识别报文IP地址,若所述IP地址与主站的IP地址一致,则所述报文为下行报文;若所述IP地址与子站的IP地址一致,则所述报文为上行报文。
进一步,所述基于IEC104规约的监听系统还包括:帧类型判断子模块,所述帧类型判断子模块用于判断帧类型,所述帧类型包括计数帧、信息帧和命令帧;信息帧报文储存模块,所述信息帧报文储存模块用于当所述帧类型为信息帧时,储存信息帧报文;命令帧报文储存模块,所述命令帧报文储存模块用于当所述帧类型为命令帧时,储存命令帧报文。
进一步,所述基于IEC104规约的监听系统还包括:队列或链路判断模块,所述队列或链路判断模块用于判断队列是否为空或链路是否断开;若是队列为空或链路断开,则结束;若队列不为空或链路没有断开,则继续监听主站和子站的应答是否正确。
进一步,所述基于IEC104规约的监听系统还包括:解包模块,所述解包模块用于去掉TCP协议的封装。
进一步,所述基于IEC104规约的监听系统还包括:系统初始化模块,所述系统初始化模块用于系统初始化,将原有的监听内容清零。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。