一种解决基于modbus的串口通信瓶颈的方法

文档序号:7860339阅读:224来源:国知局
专利名称:一种解决基于modbus的串口通信瓶颈的方法
技术领域
本发明涉及エ业通信领域,更为具体地,涉及ー种解决基于MODBUS的串ロ通信瓶颈的方法。
背景技术
MODBUS通信协议为分布式エ业控制系统(DCS)常用的协议,该协议为纯软件协议,应用时通常采用RS485连接,而在エ业应用中为保证可靠性,采用RS485连接时的波特率通常设置的比较低,因此限制了通信的带宽和速度,这样,一旦连接的远程测控终端(RTU)较多时,通信的瓶颈立刻就能显露出来,进而影响通信的实时性和可靠性,致使エ业生产受到严重影响
发明内容
·
本发明的目的在于解决上述问题,提供一种可以解决基于MODBUS的串ロ通信瓶颈的方法,进而改进大负荷低带宽时的通信瓶颈问题。本发明采用的技术方案为ー种解决基于MODBUS的串ロ通信瓶颈的方法为在远程测控终端与建立组态系统的上位机之间设置一接ロ转换系统,通过所述接ロ转换系统采集远程测控终端的測量数据来模拟远程测控终端,上位机的组态系统从接ロ转换系统中读取所述测量数据,以实现将采用串ロ通信的远程测控终端虚拟成为采用以太网通信的远程测控终端,其中,所述远程测控终端支持MODBUS通信协议,并采用RS485硬件接ロ ;所述接ロ转换系统具有一与上位机进行通信连接的网ロ,以及至少ー个串ロ,每个串ロ通过RS485总线挂接最多256个远程测控终端;利用接ロ转换系统解决基于MODBUS的串ロ通信瓶颈的方法为接ロ转换系统在完成各串ロ的初始化动作后,通过各串ロ读取所有远程测控终端的配置文件,之后为所有远程测控终端建立与各自一一对应的内存映射区,以将各串ロ设备仿真为网ロ设备;接ロ转换系统在读取配置文件后针对网ロ执行以下的网ロ处理方法,针对每个串ロ执行以下的串ロ处理方法;所述串ロ处理方法为接ロ转换系统通过寻址读取挂在同一串口上的所有远程测控终端中的数据,并将读取到的来自每个远程测控终端的数据存放至所建立的与各自相对应的内存映射区中;所述网ロ处理方法为接ロ转换系统在通过网ロ接收到上位机的组态系统发出的数据请求后,对所述数据请求进行解析,以确定所述数据请求针对的远程测控终端,之后,接ロ转换系统将与确定的远程测控终端相对应的设备映射区中存储的数据反馈给上位机的组态系统。其中,所述串ロ处理方法中接ロ转换系统在读取一地址的远程测控终端的数据吋,若连续读取预设的最大反复读取次数后仍无响应,则判定相应地址上不存在远程测控終端。
其中,所述串ロ处理方法中接ロ转换系统读取挂在ー串口上的地址为D的远程测控终端中的数据的步骤为SlOl :接ロ转换系统读取地址为D的远程测控终端中的数据,之后执行S102 ;S102 :判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ;S103 :将读取的数据放入与地址为D的远程测控终端对应的内存映射区中;S107:计数值i=i+l,之后执行S108;其中,计数值i的初值等于O ;S108 :判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行S109 ;
S109 :判定地址为D的远程测控终端不存在。其中,所述串ロ处理方法中接ロ转换系统在一次轮询中读取挂在同一串口上的所有远程测控终端中的数据的步骤为SlOl :接ロ转换系统读取地址为D的远程测控终端中的数据,之后执行S102,其中,地址D的初值等于DO,DO为挂在串口上的远程测控终端的最小地址值;S102 :判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ;S103 :将读取的数据放入与地址为D的远程测控终端对应的内存映射区中,之后执行S1041 ;S104 :地址D=D+ Δ d,计数值i=0,之后执行S105 ;S105 :判断地址D是否小于Dl,如是则执行步骤SlOl,如否则结束一次轮询;其中Dl为挂在串口上的远程测控终端的最大地址值;S107 :计数值i=i+l,之后执行S108 ;其中,计数值i的初值等于O ;S108 :判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行
5109;S109 :判定地址为D的远程测控终端不存在,地址D=D+ Δ d,计数值i=0,之后执行
5110;其中,Λ d为相邻远程测控终端的地址差值;SllO :判断D是否小于D1,如是则执行步骤S101,如否则结束一次轮询。其中,所述接ロ转换系统在读取到远程测控终端中的数据后,先根据所述远程测控终端的设备协议将读取到的数据转换为实际测量值,再将获得的实际测量值存储至与各远程测控终端相对应的内存映射区中。本发明的有益效果为通过本发明的技术方案无需改变通信协议即可解决通信瓶颈,所以不存在应用过程中的兼容性问题。


图I示出了远程测控终端与、上位机与接ロ转换系统之间的连接关系;图2示出了本发明的解决基于MODBUS的串ロ通信瓶颈的方法的执行步骤;图3示出了图2中接ロ转换系统读取挂在ー串口上的地址为D的远程测控终端中的数据的ー种实施方式;图4示出了接ロ转换系统在一次轮询中读取挂在同一串口上的所有远程测控终端中的数据的ー种实施方式。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施方式
对本发明做进ー步详细的说明应用本发明的解决基于MODBUS的串ロ通信瓶颈的方法的硬件基础为如图I所示,在远程测控终端与建立组态系统的上位机之间设置一接ロ转换系统,通过接ロ转换系统采集远程测控终端的測量数据来模拟远程测控终端,上位机的组态系统从接ロ转换系统中读取测量数据,以实现将采用串ロ通信的远程测控终端虚拟成为采用以太网通信的远程测控终端,其中,远程测控终端支持MODBUS通信协议,并采用RS485硬件接ロ ;接ロ转换系统具有一与上位机进行通信连接的网ロ,以及至少ー个串ロ,每个串ロ通过RS485总线挂接最多256个远程测控终端。參见图2,利用接ロ转换系统解决基于MODBUS的串ロ通信瓶颈的方法为接ロ转
换系统在完成各串ロ的初始化动作后,通过各串ロ读取所有远程测控终端的配置文件,之后为所有远程测控终端建立与各自一一对应的内存映射区,以将各串ロ设备模拟为网ロ设备;接ロ转换系统在读取配置文件后针对网ロ执行以下的网ロ处理方法,针对每个串ロ执行以下的串ロ处理方法,其中,建立内存映射区的步骤、网ロ处理方法和针对各串ロ的串ロ处理方法可并列执行。该串ロ处理方法为接ロ转换系统通过寻址读取挂在同一串口上的所有远程测控終端中的数据,进而完成挂在所有串口上的所有远程测控终端,并将读取到的来自每个远程测控终端的数据存放至所建立的与各自相对应的内存映射区中,将数据存储至内存映射区中相当于在接ロ转换系统中模拟了各个远程测控终端。所述串ロ处理方法中接ロ转换系统在读取一地址的远程测控终端的数据时,若连续读取预设的最大反复读取次数(该次数可以根据实际エ况确定)后仍无响应,则可判定相应地址上不存在远程测控终端。该网ロ处理方法为接ロ转换系统在通过网ロ接收到上位机的组态系统发出的数据请求后,对所述数据请求进行解析,以确定所述数据请求针对的远程测控终端,之后,接ロ转换系统将与确定的远程测控终端相对应的设备映射区中存储的数据反馈给上位机的组态系统。以上的上位机可以采用PC或者小型工作站,利用组态软件制定好组态系统,包括需要查询的数据和良好的人机界面,组态系统的建立不属于本发明的改进点,本领域技术人员明确如何根据现有手段建立组态系统。该接ロ转换系统可在读取到远程测控终端中的数据后,先根据所述远程测控终端的设备协议(即远程测控终端输出的数据与实际测量值之间的关系)将读取到的数据转换为实际测量值(即图2和3中指出的数据处理),再将获得的实际测量值存储至与各远程测控终端相对应的内存映射区中,这样,可以减轻上位机的组态系统的计算负荷。如图,3所示,以上的串ロ处理方法中接ロ转换系统读取挂在ー串口上的地址为D的远程测控终端中的数据的步骤可以为SlOl :接ロ转换系统读取地址为D的远程测控终端中的数据,之后执行S102 ;S102 :判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ;S103 :将读取的数据放入与地址为D的远程测控终端对应的内存映射区中;S107 :计数值i=i+l,之后执行S108 ;其中,计数值i的初值等于O ;S108 :判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行S109 ;S109 :判定地址为D的远程测控终端不存在。如图4所示,以上的串ロ处理方法中接ロ转换系统在一次轮询中读取挂在同一串口上的所有远程测控终端中的数据的步骤可以为SlOl :接ロ转换系统读取地址为D的远程测控终端中的数据,之后执行S102,其 中,地址D的初值等于DO,DO为挂在串口上的远程测控终端的最小地址值,最小地址值通常为O。S102 :判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ;S103 :将读取的数据放入与地址为D的远程测控终端对应的内存映射区中,之后执行S1041 ;S104 :地址D=D+ Δ d,计数值i=0,之后执行S105 ;S105 :判断地址D是否小于Dl,如是则执行步骤SlOl,如否则结束一次轮询;其中Dl为挂在串口上的远程测控终端的最大地址值,如果串ロ满负载,则最大地址值为255。S107 :计数值i=i+l,之后执行S108 ;其中,计数值i的初值等于O ;S108 :判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行S109 ;S109 :判定地址为D的远程测控终端不存在,地址D=D+ Δ d,计数值i=0,之后执行SI 10 ;其中,Λ d为相邻(指地址相邻)远程测控终端的地址差值,在此,为了简化程序,通常设置挂在同一串口上的各远程测控终端的地址为差值是I或者其他常数的等差数列,因此,Λ d通常为I或其他常数,否则将增加空查询的次数或者增加将Λ d设置为变量的复杂性;SllO :判断D是否小于D1,如是则执行步骤S101,如否则结束一次轮询。对于增加数据处理的方案,即在以上的步骤S103中执行。在实际运行时,接ロ转换系统要不断地轮询挂接在一串口上的所有远程测控终端,因此,在完成以上的一次轮询后,可将地址D和计数值i复位,执行下一次轮询,直至系统停止运行。综上所述仅为本发明较佳的实施例,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化及修饰,皆应属于本发明的技术范畴。
权利要求
1.一种解决基于MODBUS的串口通信瓶颈的方法,其特征在于在远程测控终端与建立组态系统的上位机之间设置一接口转换系统,通过所述接口转换系统采集远程测控终端的测量数据来模拟远程测控终端,上位机的组态系统从接口转换系统中读取所述测量数据,以实现将采用串口通信的远程测控终端虚拟成为采用以太网通信的远程测控终端,其中,所述远程测控终端支持MODBUS通信协议,并采用RS485硬件接口 ;所述接口转换系统具有一与上位机进行通信连接的网口,以及至少一个串口,每个串口通过RS485总线挂接最多256个远程测控终端;利用接口转换系统解决基于MODBUS的串口通信瓶颈的方法为 接口转换系统在完成各串口的初始化动作后,通过各串口读取所有远程测控终端的配置文件,之后为所有远程测控终端建立与各自一一对应的内存映射区,以将各串口设备仿真为网口设备;接口转换系统在读取配置文件后针对网口执行以下的网口处理方法,针对每个串口执行以下的串口处理方法; 所述串口处理方法为接口转换系统通过寻址读取挂在同一串口上的所有远程测控终端中的数据,并将读取到的来自每个远程测控终端的数据存放至所建立的与各自相对应的内存映射区中; 所述网口处理方法为接口转换系统在通过网口接收到上位机的组态系统发出的数据请求后,对所述数据请求进行解析,以确定所述数据请求针对的远程测控终端,之后,接口转换系统将与确定的远程测控终端相对应的设备映射区中存储的数据反馈给上位机的组态系统。
2.根据权利要求I所述的解决基于MODBUS的串口通信瓶颈的方法,其特征在于所述串口处理方法中接口转换系统在读取一地址的远程测控终端的数据时,若连续读取预设的最大反复读取次数后仍无响应,则判定相应地址上不存在远程测控终端。
3.根据权利要求2所述的解决基于MODBUS的串口通信瓶颈的方法,其特征在于所述串口处理方法中接口转换系统读取挂在一串口上的地址为D的远程测控终端中的数据的步骤为 5101:接口转换系统读取地址为D的远程测控终端中的数据,之后执行S102 ; 5102:判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ; 5103:将读取的数据放入与地址为D的远程测控终端对应的内存映射区中; 5107:计数值i=i+l,之后执行S108 ;其中,计数值i的初值等于O ; 5108:判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行S109; 5109:判定地址为D的远程测控终端不存在。
4.根据权利要求2所述的解决基于MODBUS的串口通信瓶颈的方法,其特征在于所述串口处理方法中接口转换系统在一次轮询中读取挂在同一串口上的所有远程测控终端中的数据的步骤为 5101:接口转换系统读取地址为D的远程测控终端中的数据,之后执行S102,其中,地址D的初值等于DO,DO为挂在串口上的远程测控终端的最小地址值; 5102:判断地址为D的远程测控终端是否有响应,如有则执行S103,如没有则执行步骤S107 ;5103:将读取的数据放入与地址为D的远程测控终端对应的内存映射区中,之后执行S1041 ; 5104:地址D=D+ Δ d,计数值i=0,之后执行S105 ; 5105:判断地址D是否小于D1,如是则执行步骤S101,如否则结束一次轮询;其中Dl为挂在串口上的远程测控终端的最大地址值; S107 :计数值i=i+l,之后执行S108 ;其中,计数值i的初值等于O ; S108:判断计数值i是否小于最大反复读取次数N,若是则执行S101,若否则执行5109; 5109:判定地址为D的远程测控终端不存在,地址D=D+ Δ d,计数值i=0,之后执行5110;其中,Λ d为地址上相邻的远程测控终端的地址差值; 5110:判断D是否小于Dl,如是则执行步骤SlOl,如否则结束一次轮询。
5.根据权利要求I至4中任一项所述的解决基于MODBUS的串口通信瓶颈的方法,其特征在于所述接口转换系统在读取到远程测控终端中的数据后,先根据所述远程测控终端的设备协议将读取到的数据转换为实际测量值,再将获得的实际测量值存储至与各远程测控终端相对应的内存映射区中。
全文摘要
本发明公开了一种解决基于MODBUS的串口通信瓶颈的方法,在远程测控终端与组态系统之间设置一接口转换系统,通过接口转换系统采集远程测控终端的测量数据来模拟远程测控终端,上位机的组态系统从接口转换系统中读取所述测量数据,以实现将采用串口通信的远程测控终端虚拟成为采用以太网通信的远程测控终端。通过本发明的技术方案无需改变通信协议即可解决通信瓶颈,所以不存在应用过程中的兼容性问题。
文档编号H04L29/08GK102843380SQ20121033855
公开日2012年12月26日 申请日期2012年9月13日 优先权日2012年9月13日
发明者郭家楼, 陈超 申请人:深圳市亚特尔科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1