一种基于modbus通讯协议的485总线智能扩展方法及装置与流程

文档序号:15829202发布日期:2018-11-03 00:18阅读:253来源:国知局

本发明涉及一种通讯总线,尤其是涉及一种基于modbus通讯协议的485总线智能扩展方法及装置。

背景技术

在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。目前,串行通信的最为常用的接口标准是rs-485。rs-485采用平衡发送和差分接收方式实现通信,具有抗干扰能力能强、传输速率高、传输距离远等优点;另外,rs-485可实现多点互联,便于多种器件连接采集数据,是一种适用于多节点、远距离、具有接收高灵敏度的总线标准。方法是将rs-485构成总线型网络系统,即一条总线将各个节点串接起来,采用主从方式进行多机通信。每个从机有固定地址,由主机控制完成网络上的每一次通信,且每一次只能完成一台主机与一台从机的通信。当主机想要向某一地址的从机发送数据时,会先向总线上发送一段广播,这时所有从机处于监听状态,等待主机指令。所有从机把接收到的地址与自己的地址相比较。如果符合,说明主机在呼叫该从机,从机发出应答信号,表示准备接收后面的命令和数据;若不符合则不予理睬,继续监听呼叫地址。主机收到从机应答后,开始一次通信。通信完毕,从机继续处于监听状态,等待呼叫。

但是,在实际工程中rs-485总线的运用仍存在许多缺点:

1、一条485总线只能通过串口连接一台主机,同一时间只能完成一台主机与一台从机的通信,如果同一时间有两个或两个以上主机都向总线发送广播,想要读取从机数据,就会相互干扰造成总线数据冲突;

2、目前大多数rs-485接线都是半双工两线制,也就是同一时间只能有一台从机设备发送数据,如果多个从机设备一同发送数据,会造成通讯线路的电平混乱;

3、rs-485总线上的主站对从站采取依次轮询的方式进行访问,通信效率低,无法实时读取数据。



技术实现要素:

本发明解决的技术问题是提供一种基于modbus通讯协议的485总线智能扩展方法及装置,解决在485总线不能同时有多个主机一起读取从机数据的问题,提高数据读取效率。

本发明的技术解决方案是:

一种基于modbus通讯协议的485总线智能扩展方法,其中,该方法包括:

初始阶段:

将多台主机分别连接至智能扩展装置的多个数据转发串口,所述智能扩展装置的数据采集串口经由485总线连接多台从机;

所述主机发送第一指令至所述智能扩展装置,所述智能扩展装置采集所述第一指令;

所述智能扩展装置根据所述第一指令经由数据采集串口发出轮询指令,所述轮询指令在485总线上轮询,所述从机响应所述轮询指令并反馈其响应数据至所述智能扩展装置中存储;

所述智能扩展装置经由数据转发串口将所述响应数据发送至对应的主机;

运行阶段:

已经成功响应的所述从机实时发送数据至所述智能扩展装置中存储;

所述主机发送第二指令至所述智能扩展装置,所述智能扩展装置将已存储的与所述主机的第二指令对应的从机的实时响应数据反馈至该主机。

本发明还提供一种基于modbus通讯协议的485总线智能扩展装置,其中,其设有多个数据转发串口,分别向外连接有一台主机;所述数据转发串口连接指令比较器,用以将加收到的多个指令进行比较和组合排列;所述指令比较器的输出端连接有指令采集器,所述指令采集器用以对指令阵列进行逻辑判断;所述指令采集器的输出端与指令/数据发送器连接,所述指令/数据发送器连接有数据采集串口,所述指令/数据发送器用以发送指令、发送和接收从机数据;所述数据采集串口经由485总线与多台从机连接,所述指令/数据发送器连接数据采集仓的输入端,所述数据采集仓的输出端分别连接至所述数据转发串口,所述数据采集仓用以存储从机反馈的数据。

由以上说明得知,本发明确实具有如下的优点:

本发明的一种基于modbus通讯协议的485总线智能扩展方法及装置,通过连接有智能扩展装置的中继功能,实现了多台主机同时通过485总线与多台从机通讯的目的,并且提高了通讯效率。本发明的智能扩展装置支持多个串口同时传输数据给多台主机,满足多个平台同时获取设备数据的实际需求,不会产生总线数据冲突;另外,更进一步地智能扩展装置具有指令比较、逻辑判断和数据缓存功能,使主机不必采取在总线上轮询访问的方式获取数据,可在模块中快捷获取,提高数据读取速度。

附图说明

图1为本发明的一种基于modbus通讯协议的485总线智能扩展方法的示意框图;

图2为本发明的较佳实施例的主机和从机的通讯结构示意图;

图3为本发明的较佳实施例中智能扩展装置的结构示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

本发明的一种基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,请参照图1及图2所示,为本发明的一种基于modbus通讯协议的485总线智能扩展方法的示意框图及主机和从机的通讯结构示意图。该方法包括:

初始阶段,所有主机第一次发出某个指令,且该指令对应的从机响应了该指令的呼叫的通讯过程:

s101将多台主机分别连接至智能扩展装置的多个数据转发串口,所述智能扩展装置的数据采集串口经由485总线连接多台从机;通过利用一个智能扩展装置的指令发送以及数据采集功能将多台主机与485总线连接起来,而485总线连接有多台从机。

s102所述主机发送第一指令至所述智能扩展装置,所述智能扩展装置采集所述第一指令;每一台主机均可向所述智能扩展装置发送对从机的指令。

s103所述智能扩展装置根据所述第一指令经由数据采集串口发出轮询指令,所述轮询指令在485总线上轮询,所述从机响应所述轮询指令并反馈其响应数据至所述智能扩展装置中存储;轮询指令是各个所述第一指令的整合,然后通过整合后的指令再向485总线上发送轮询,而从机响应后返回的响应数据则会存储在智能扩展装置中。

s104所述智能扩展装置经由数据转发串口将所述响应数据发送至对应的主机;所述智能扩展装置将响应数据再返回至请求该数据的主机中,实现多台主机同时连接485总线和多台从机连接通讯的目的。

运行阶段,即已经被成功呼叫过的从机再次接收到呼叫指令的通讯过程:

s201已经成功响应的所述从机实时发送数据至所述智能扩展装置中存储;所述从机能够将被请求的数据发送至智能扩展装置中进行存储。

s202所述主机发送第二指令至所述智能扩展装置,所述智能扩展装置将已存储的与所述主机的第二指令对应的从机的实时响应数据反馈至该主机;无论任意一台主机发送了要求某一台已经被呼叫过的从机的数据请求,所述主机都能够直接从智能扩展装置中直接获取到该从机的数据,而无需再向485总线上进行从机轮询,极大地提高了通讯的效率。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,所述智能扩展装置采集多个主机的第一指令后,比较各第一指令,将重复的指令去除,并组合排列成新的指令阵列,所述轮询指令根据所述指令阵列按照阵列顺序将各第一指令依次发送至485总线上轮询。例如,假设在一次通讯过程中,有四台主机发出了指令,所述智能串口扩展模块自动记录主机1、2、3、4发出的指令,并进行比较,将不同指令按顺序在总线上轮询。如主机1发出指令ab,主机2发出指令bc,主机3发出指令cd,主机4发出指令ace。这时,4种指令在模块中进行比较,去掉重复的相同指令,最后在485总线上排成阵列abcde指令,各从机的响应数据存入智能扩展装置的存储单元中,当主机再次发出指令时,模块将快速作出响应,不用在485总线上依次轮询,可实现实时读取数据。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,该方法还包括指令出栈,所述指令阵列中的指令,若在所述智能扩展装置在设定的出栈时间内没有被任意一台主机重新发出时,删除所述指令阵列中的该指令。例如,假设在如上述例子中的一次通讯过程中,当主机4第一次发出指令ace,超过指定的出栈时间后没有再次发出请求指令e,则智能扩展装置自动将e指令从阵列中删除,新的队列变成abcd。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,所述出栈时间为10分钟。当然也可以根据实际需求设定其他的出栈时间,设定10分钟为一较优的时间间隔。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,该方法还包括指令入栈,所述智能扩展装置接收到所述主机发出的不存在与原指令阵列中的新的指令时,该新的指令在比较后排列在所述指令阵列的最前端,优先轮询。例如,如上述的例子中,当4个主机设备中有任意主机新增一条指令,则该指令自动排列在队列前端,成为优先指令,被首先响应。例如主机3新增指令g,则新的队列变成gabcde,g指令在485总线上可以优先进行从机的轮询。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,该方法还包括响应确认,所述主机发出指令,当在指定次数内没有得到从机响应,则返回失败信号给所述主机,同时将该指令从指令阵列中删除。可以说该步骤也是指令出栈的一种形式,但是该指令还包括确认从机状态的功能;例如,如上的例子中,主机4出发的请求指令e指令在485总线上所有从机中连续多次得不到任何从机的响应,则e指令会从指令阵列中移除。这样的做法可以删除多余指令,缩短轮询队列长度,提高485总线通信效率。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展方法,其较佳的实施例中,所述指定次数为5次;当然也可以根据实际需求设定指定次数。例如:当主机1、2、3、4发出功能码05/06/10时,指令采集器判断出该指令为控制指令,立即将功能码发送至485总线,连续发送5次没有设备响应,则向主机返回失败信号;若成功响应,立即反馈给主机。

本发明还提出了一种基于modbus通讯协议的485总线智能扩展装置,其较佳的实施例中,请参照图3所示,为本发明的较佳实施例中智能扩展装置的结构示意图。本发明的智能扩展装置设有多个数据转发串口,分别向外连接有一台主机;所述数据转发串口连接指令比较器,用以将加收到的多个指令进行比较和组合排列;所述指令比较器的输出端连接有指令采集器,所述指令采集器用以对指令阵列进行逻辑判断,判断指令阵列中的指令是否需要出栈或入栈等;所述指令采集器的输出端与指令/数据发送器连接,所述指令/数据发送器连接有数据采集串口,所述指令/数据发送器用以发送指令、发送和接收从机数据;所述数据采集串口经由485总线与多台从机连接,所述指令/数据发送器连接数据采集仓的输入端,所述数据采集仓的输出端分别连接至所述数据转发串口,所述数据采集仓用以存储从机反馈的数据。

如上所述的本发明的基于modbus通讯协议的485总线智能扩展装置,其较佳的实施例中,所述数据转发串口有四个,分别连接四台主机。

现以上述较佳的一个实施例为例,在串行485总线中接入智能扩展装置,并连接4台主机,允许他们同时访问连接在485总线上的多台从机。所述智能扩展装置接收到来自主机1、2、3、4发出的指令,在指令比较器中自动记录并进行比较,将重复指令去掉。如主机1发出指令a和b,主机2发出指令b和c,主机3发出指令c和d,主机4发出指令a和c和e。这时,4种指令在指令比较器中进行比较,去掉重复的相同指令后排成指令阵列abcde。指令阵列在指令采集器中进行逻辑判断后,发送至指令发送器中,指令发送器按照阵列顺序将指令依次发送至485总线上进行轮询,访问各从机。各从机的响应数据反馈给指令/数据发送器,由指令/数据发送器发送至数据收集仓中存储,并通过数据转发串口发送给相应的主机。当主机再次发出相同指令时,数据收集仓中的实时数据快速做出响应,返回给对应的主机,不用将指令在485总线上依次轮询,可实现实时读取数据。当主机中有新增指令,该指令可优先在485总线上轮询,响应数据迅速发送至数据收集仓中。当主机发出指令减少时,或从机对某指令无响应时,该指令自动在指令阵列中删除,不再进行轮询。

本发明的一种基于modbus通讯协议的485总线智能扩展方法及装置,通过连接有智能扩展装置的中继功能,实现了多台主机同时通过485总线与多台从机通讯的目的,并且提高了通讯效率。本发明的智能扩展装置支持多个串口同时传输数据给多台主机,满足多个平台同时获取设备数据的实际需求,不会产生总线数据冲突;另外,更进一步地智能扩展装置具有指令比较、逻辑判断和数据缓存功能,使主机不必采取在总线上轮询访问的方式获取数据,可在模块中快捷获取,提高数据读取速度。

以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所作出的等同变化与修改,均应属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1