在TCP/IP网络上实现高可靠Modbus通信的方法与流程

文档序号:12016255阅读:554来源:国知局
本发明涉及一种Modbus通信的方法,具体是指一种在TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/因特网互联协议)网络上实现高可靠Modbus通信的方法,属于网络通信技术领域。

背景技术:
在国家大力发展天然气等绿色能源的背景下,国内各城市管网输配系统也随着城市建设规模的扩大而扩张,燃气输配情况日趋复杂,对燃气监测手段提出了更高的要求。在这种情况下,智能调压控制器应运而生,其可以实时采集与监控调压站燃气参数,并将现场实时数据通过移动通信商GPRS(GeneralPacketRadioService,通用分组无线服务)网络传输到监控中心,供燃气系统管理人员做出决策。智能调压控制器的关键是控制器内部的诸多设置参数必须与数据中心服务器时刻保持一致,同时将控制器采集的大量数据上传至数据中心服务器。控制器由干电池供电,在需要维持更长工作时间的前提下,必须设计合理有效的无线通信协议。智能调压控制器以Modbus应用层传输协议作为整个控制网络和信息网络的应用层协议。Modbus协议存在一定的局限性,设备采用查询-回应的通信机制,协议中常用功能码为01-06号,误码率高。且由于网络问题,无法持续传输数据,这种局限性使得含有Modbus设备的控制器终端设备的数据实时性下降,通信效率降低,同时因为延长了控制器网络模块的工作时间,增加了控制器终端设备的能源消耗。综上所述,对于含有Modbus设备的控制器终端来说,需要有效的传输策略,既保证数据的正确上传,又要降低控制器终端的电能消耗,使得控制器的自带电池能维持更长的工作时间。

技术实现要素:
本发明的目的是提供一种在TCP/IP网络上实现高可靠Modbus通信的方法,能够增强智能控制器与数据中心服务器之间的通信效率,同时降低智能控制器的功耗。为实现上述目的,本发明提供一种在TCP/IP网络上实现高可靠Modbus通信的方法,智能控制器与数据中心服务器进行通信,数据中心服务器接收智能控制器发送的数据,发送协议采用ModbusTCP协议的格式,该方法具体包含:S1、对数据中心服务器的存储区进行分块;S2、网络正常情况下的基于Modbus的数据交互通信;S3、网络异常或不通畅情况下的基于超时循环、异常重连接循环和补传循环互相嵌套的数据补传通信。所述的S1对数据中心服务器上的存储区进行分块方法,具体包含以下步骤:S1.1、将数据中心服务器上的存储区分为3区和4区;将整个3区分配为单独的C块,该3区C块用于存放数据中心服务器即将发送给智能控制器的最新的参数配置信息;将整个4区分配为A块、B块、C块,其中4区A块用于存放由智能控制器上传的各传感器采集的大量历史采样值;4区B块用于存放智能控制器上传的各传感器采集的当前采样值;4区C块用于存放智能控制器上传的该智能控制器的当前各参数配置情况;S1.2、初始配置状态,只在智能控制器启动时运行一次;智能控制器连接到数据中心服务器的初始配置的IP地址默认端口,用自定义功能码发送序列号,智能控制器重新启动,连接数据中心服务器;S1.3、数据运行状态,在每个数据发送周期执行一次,每次发送数据都要运行;具体包含以下步骤:S1.3.1、如果智能控制器的当前参数配置信息有修改,其向数据中心服务器的4区C块发送该智能控制器的当前最新各参数配置信息,发送指令符合ModbusTCP协议,分两次发送;数据中心服务器在接收到参数配置信息后,将覆盖原先存储在4区C块的参数配置信息;S1.3.2、如果数据中心服务器对智能控制器的参数配置信息有修改,其将对智能控制器的参数配置信息的修改更新存储在3区C块;S1.3.3、判断数据中心服务器上的4区C块和3区C块内存储的智能控制器的参数配置信息是否有修改;如果仅有4区C块内的智能控制器的参数配置信息有修改,那么以4区C块内的参数配置信息为准;如果仅有3区C块内的智能控制器的参数配置信息有修改,那么以3区C块内的参数配置信息为准;如果4区C块和3区C块内的智能控制器的参数配置信息都有修改,那么以4区C块内的参数配置信息为准;S1.3.4、数据中心服务器将修改后的最新的智能控制器的参数配置信息存储在3区C块内;使得智能控制器的参数配置信息始终与数据中心服务器上的参数配置信息保持一致;S1.3.5、智能控制器从数据中心服务器的3区C块读取最新的参数配置信息,读取指令符合ModbusTCP协议,分两次读取;S1.3.6、智能控制器将各传感器采集的当前最新的一组采样值发送到数据中心服务器的4区B块;S1.3.7、智能控制器将各传感器采集的n组历史采样值发送到数据中心服务器的4区A块,直到所有的历史采样值全部发送完毕。所述的S1.3.7中,智能控制器向数据中心服务器的4区A块发送历史采样值的原则是按时间顺序先发送最新的采样值。所述的S2,网络正常情况下,基于Modbus的数据交互通信方法,具体包含以下步骤:S2.1、智能控制器向数据中心服务器每次连续发送3帧有效数据,每一帧数据之间间隔一定的时间,数据中心服务器依靠这个时间间隔判断上一帧数据是否发送结束;S2.2、在所述的时间间隔内,智能控制器接收来自数据中心服务器的针对每一帧所发送的数据的应答数据,判断发送正常后,智能控制器继续向数据中心服务器发送之后的3帧数据;S2.3、在智能控制器向数据中心服务器发送数据的过程中,如果智能控制器上的单片机终端检测到相应的存储区块中接受到采样值数据,则在这段间隔时间内由单片机接受采样值数据;S2.4、反复执行上述步骤,直到智能控制器向数据中心服务器发送完所有数据。所述的S2.1中,发送每一帧数据之间的间隔时间为3秒。所述的S3,网络异常或不通畅情况下,基于超时循环、异常重连接循环和补传循环互相嵌套的数据补传通信方法,具体包含以下步骤:S3.1、根据Modbus协议,智能控制器向数据中心服务器每次只发送一帧数据,当智能控制器接收来自数据中心服务器针对该帧数据的应答数据后,继续发送下一帧数据;S3.2、如果智能控制器没有接收来自数据中心服务器针对该帧数据的应答数据,则进入超时循环;每间隔一个“超时间隔时间段”,再发送一次该帧数据,并等待正确的返回;S3.3、如果连续运行3次超时循环,智能控制器都无法接收数据中心服务器的正确应答数据,则进入异常重连接循环;将智能控制器断电并休眠,每间隔一个“异常重连接间隔时间段”,对智能控制器上电,并重复所述的超时循环;S3.4、如果连续运行3次异常重连接循环,智能控制器都无法接收数据中心服务器的正确应答数据,则进入补传循环;将智能控制器断电并休眠,每间隔一个“补传周期间隔时间段”,对智能控制器上电,进行数据补传循环;S3.5、最多连续运行3次补传循环,直至智能控制器接收到数据中心服务器的正确应答数据,则继续发送下一帧数据;如果仍接收不到,则将数据存储在智能控制器内存中等待工作人员手工采集。所述的S3.4中,在每一次进入补传循环之前,智能控制器根据帧号记录没有成功发送至数据中心服务器的采样数据帧,并执行数据运行状态,然后智能控制器判断是否需要补传数据,如果需要,则对未成功发送的采样数据帧进行补传,直到补传数据结束,智能控制器进入断电休眠状态。所述的补传数据是按照先补传最新的采样数据,然后补传次新的采样数据的规则进行的。综上所述,本发明所提供的在TCP/IP网络上实现高可靠Modbus通信的方法,与现有技术相比,具有以下有益效果:(1)本发明实现了Modbus协议在TCP/IP网络上的传输,且传输效果稳定;(2)本发明能够提高网络通信效率,降低智能控制器的功耗。附图说明图1为本发明中的智能控制器和数据中心服务器各区块的数据运行状态图。具体实施方式以下结合图1,详细说明本发明的一个优选实施例。本发明提供的在TCP/IP网络上实现高可靠Modbus通信的方法,智能控制器与数据中心服务器进行通信,数据中心服务器接收智能控制器发送的数据,发送协议采用ModbusTCP协议的格式,该方法具体包含:S1、对数据中心服务器的存储区进行分块;S2、网络正常情况下的基于Modbus的数据交互通信;S3、网络异常或不通畅情况下的基于超时循环、异常重连接循环和补传循环互相嵌套的数据补传通信。所述的S1对数据中心服务器上的存储区进行分块方法,具体包含以下步骤:S1.1、如图1所示,将数据中心服务器上的存储区分为3区和4区;将整个3区分配为单独的C块,该3区C块用于存放数据中心服务器即将发送给智能控制器的最新的参数配置信息;将整个4区分配为A块、B块、C块,其中4区A块用于存放由智能控制器上传的各传感器采集的大量历史采样值;4区B块用于存放智能控制器上传的各传感器采集的当前采样值;4区C块用于存放智能控制器上传的该智能控制器的当前各参数配置情况;S1.2、,只在智能控制器启动时运行一次;智能控制器连接到数据中心服务器的初始配置的IP地址默认端口,用自定义功能码(例如50)发送序列号,智能控制器重新启动,连接数据中心服务器;S1.3、数据运行状态,在每个数据发送周期执行一次,每次发送数据都要运行;具体包含以下步骤:S1.3.1、如果智能控制器的当前参数配置信息有修改,其向数据中心服务器的4区C块发送该智能控制器的当前最新各参数配置信息,发送指令符合ModbusTCP协议,分两次发送;数据中心服务器在接收到参数配置信息后,将覆盖原先存储在4区C块的参数配置信息;S1.3.2、如果数据中心服务器对智能控制器的参数配置信息有修改,其将对智能控制器的参数配置信息的修改更新存储在3区C块;S1.3.3、判断数据中心服务器上的4区C块和3区C块内存储的智能控制器的参数配置信息是否有修改;如果仅有4区C块内的智能控制器的参数配置信息有修改,那么以4区C块内的参数配置信息为准;如果仅有3区C块内的智能控制器的参数配置信息有修改,那么以3区C块内的参数配置信息为准;如果4区C块和3区C块内的智能控制器的参数配置信息都有修改,那么以4区C块内的参数配置信息为准;S1.3.4、数据中心服务器将修改后的最新的智能控制器的参数配置信息存储在3区C块内;S1.3.5、智能控制器从数据中心服务器的3区C块读取最新的参数配置信息,读取指令符合ModbusTCP协议,分两次读取;S1.3.6、智能控制器将各传感器采集的当前最新的一组采样值发送到数据中心服务器的4区B块;S1.3.7、智能控制器将各传感器采集的n组历史采样值发送到数据中心服务器的4区A块,直到所有的历史采样值全部发送完毕。所述的S1.3.7中,智能控制器向数据中心服务器的4区A块发送历史采样值的原则是按时间顺序先发送最新的采样值。所述的S2网络正常情况下,基于Modbus的数据交互通信方法,具体方法包含以下步骤:S2.1、智能控制器向数据中心服务器每次连续发送3帧有效数据,每一帧数据之间间隔一定的时间,数据中心服务器依靠这个时间间隔判断上一帧数据是否发送结束;S2.2、在所述的时间间隔内,智能控制器接收来自数据中心服务器的针对每一帧所发送的数据的应答数据,判断发送正常后,智能控制器继续向数据中心服务器发送之后的3帧数据;S2.3、在智能控制器向数据中心服务器发送数据的过程中,如果智能控制器上的单片机终端检测到相应的存储区块中接受到采样值数据,则在这段间隔时间内由单片机接受采样值数据;S2.4、反复执行上述步骤,直到智能控制器向数据中心服务器发送完所有数据。所述的S2.1中,发送每一帧数据之间的间隔时间为3秒。所述的S3,当网络异常或不通畅情况下,可能导致智能控制器无法将数据成功发送到数据中心服务器,也会加剧电量的损耗,此时智能控制器向数据中心服务器发送数据是通过超时循环、异常重连接循环和补传循环的互相嵌套,实现在降低功耗的情况下,完成数据通信;具体方法包含以下步骤:S3.1、根据Modbus协议,智能控制器向数据中心服务器每次只发送一帧数据,当智能控制器接收来自数据中心服务器针对该帧数据的应答数据后,继续发送下一帧数据;S3.2、如果智能控制器没有接收来自数据中心服务器针对该帧数据的应答数据,则进入超时循环;每间隔一个“超时间隔时间段”,再发送一次该帧数据,并等待正确的返回;本实施例中,所述的超时间隔时间段为5分钟;S3.3、如果连续运行3次超时循环,智能控制器都无法接收数据中心服务器的正确应答数据,则进入异常重连接循环;将智能控制器断电并休眠,每间隔一个“异常重连接间隔时间段”,对智能控制器上电,并重复所述的超时循环;本实施例中,所述的异常重连接间隔时间段为1小时;S3.4、如果连续运行3次异常重连接循环,智能控制器都无法接收数据中心服务器的正确应答数据,则进入补传循环;将智能控制器断电并休眠,每间隔一个“补传周期间隔时间段”,对智能控制器上电,进行数据补传循环;本实施例中,所述的补传周期间隔时间段为1小时;S3.5、最多连续运行3次补传循环,直至智能控制器接收到数据中心服务器的正确应答数据,则继续发送下一帧数据;如果仍接收不到,则将数据存储在智能控制器内存中等待工作人员手工采集。所述的S3.4中,在每一次进入补传循环之前,智能控制器根据帧号记录没有成功发送至数据中心服务器的采样数据帧,并执行数据运行状态,然后智能控制器判断是否需要补传数据,如果需要,则对未成功发送的采样数据帧进行补传,直到补传数据结束,智能控制器进入断电休眠状态。所述的补传数据是按照先补传最新的采样数据,然后补传次新的采样数据的规则进行的。综上所述,本发明所提供的在TCP/IP网络上实现高可靠Modbus通信的方法,将服务器存储区分块的方式能够保证智能控制器的参数配置信息与数据中心服务器的参数配置信息始终一致,又可以将智能控制器的参数配置信息、当前采集的数据、历史采集的数据分区存放,方便数据中心服务器处理;当网络正常稳定的情况下,能够顺利的进行交互通信,提高智能控制器与数据中心服务器的通信效率;而当网络异常或不畅通的情况下,在遵循Modbus协议的原则上,制定了超时循环、异常重连接循环和补传循环互相嵌套的数据补传策略,在保持通信效率的前提下,同时降低智能控制器的功耗。尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1