基于Modbus协议的通信方法、装置及通信设备制造方法及图纸

技术编号:26693767 阅读:34 留言:0更新日期:2020-12-12 02:49
本申请提供了一种基于Modbus协议的通信方法、装置及通信设备,其中,主设备在生成通信指令时,在不连续的有效地址间添加无效地址得到,使至少两组地址不连续的有效地址形成一个地址连续的目标地址块,并针对每个目标地址块生成一条通信指令,针对相同的寄存器地址使用该方案减少了生成通信指令的条数,因此,节省了多条通信指令之间的固定延时,缩短了向从设备下发通信指令所耗费的时间,因此,相当于提高了从设备向主设备返回响应数据的速度,即指令响应速度。

【技术实现步骤摘要】
基于Modbus协议的通信方法、装置及通信设备
本专利技术属于Modbus通信
,尤其涉及一种基于Modbus协议的通信方法、装置及通信设备。
技术介绍
Modbus协议是应用于电子控制器上的一种通用语言,该协议支持传统的RS232、RS422、RS485以及以太网设备。许多工业设备,包括PLC、智能仪表等都使用Modbus协议作为通讯标准,利用Modbus协议不同厂商生产的控制设备可以连成工业网络,进行集中监控。相关技术中,生成Modbus指令时,通常是将连续的寄存器地址对应的数据采集需求信息生成一条指令,但是,实际应用时,通常间隔几个寄存器地址后仍有连续的地址,这种情况会生成多条指令。每增加一条指令,就会增加至少几百毫秒的固定延时,因此,此种方案会增加数据响应时间,即降低了数据响应速度。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于Modbus协议的通信方法、装置及通信设备,以解决相关技术中基于Modbus协议通信时的指令响应速度低的技术问题,其公开的技术方案如下:<br>第一方面,本申本文档来自技高网...

【技术保护点】
1.一种基于Modbus协议的通信方法,其特征在于,应用于主设备中,所述方法包括:/n根据所述主设备对应的Modbus编码配置信息和指令传输信息,计算得到指令发送时间间隔所对应的无效地址限值,其中,所述发送时间间隔是指依次发送两条指令之间的时间间隔;/n按照所述Modbus编码配置信息中的寄存器地址由小到大的顺序,依次在两个相邻但地址不连续的有效地址之间添加无效地址,得到至少一个地址连续的目标地址块;其中,每个所述目标地址块中包含的无效地址数量小于所述无效地址限值;/n针对每个目标地址块生成一条通信指令,并将所述通信指令发送至从设备。/n

【技术特征摘要】
1.一种基于Modbus协议的通信方法,其特征在于,应用于主设备中,所述方法包括:
根据所述主设备对应的Modbus编码配置信息和指令传输信息,计算得到指令发送时间间隔所对应的无效地址限值,其中,所述发送时间间隔是指依次发送两条指令之间的时间间隔;
按照所述Modbus编码配置信息中的寄存器地址由小到大的顺序,依次在两个相邻但地址不连续的有效地址之间添加无效地址,得到至少一个地址连续的目标地址块;其中,每个所述目标地址块中包含的无效地址数量小于所述无效地址限值;
针对每个目标地址块生成一条通信指令,并将所述通信指令发送至从设备。


2.根据权利要求1所述的方法,其特征在于,所述按照所述Modbus编码配置信息中的寄存器地址由小到大的顺序,依次在两个相邻但地址不连续的有效地址之间添加无效地址,得到至少一个地址连续的目标地址块,包括:
对于所述Modbus编码配置信息中的寄存器地址,依次在任意两个相邻但地址不连续的有效地址之间添加无效地址,形成地址连续的地址块;
按照地址由小到大的顺序,依次判断所述地址块中的当前组有效地址与相邻的下一组有效地址之间的无效地址是否大于或等于所述无效地址限值,且所述两组有效地址及之间的无效地址的地址总数是否小于所述地址数量最大值,其中,每组有效地址包括至少一个有效且连续的寄存器地址;
若所述无效地址的数量大于或等于所述无效地址限值或所述地址总数大于地址数量最大值,则确定所述当前组有效地址为一个目标地址块,并将所述下一组有效地址更新为新的当前组有效地址继续判断,其中,所述地址数量最大值根据所述Modbus编码配置信息确定;
若所述无效地址的数量小于所述无效地址限值且所述地址总数小于或等于所述地址数量最大值,则将所述当前组有效地址与相邻的下一组有效地址块以及两组有效地址之间的无效地址,合并更新为当前组有效地址继续判断,直到判断至所述地址块中的最后一组有效地址,得到所述地址块对应的所有目标地址块。


3.根据权利要求1所述的方法,其特征在于,所述根据所述主设备对应的Modbus编码配置信息和指令传输信息,计算得到两条指令间的延时时间所对应的无效地址限值,包括:
根据所述Modbus编码配置信息中的字节数和所述指令传输信息中的波特率计算得到传输指令数据所需的时间,并计算传输所述指令数据所需的时间以及所述指令传输信息中的指令间延时的总和得到指令发送时间间隔;
根据所述指令发送时间间隔、所述波特率及一条指令中除指令数据外其它字段的长度计算得到所述无效地址限值。


4.根据权利要求1-3任一项所述的方法,其特征在于,在所述针对每个目标地址生成一条通信指令之后,所述方法还包括:
判断所述通信指令是否为周期性指令;
若所述通信指令是周期性指令,则将所述通信指令存入轮询缓冲区;
若所述通信指令不是周期性指令,则将所述通信指令存入快速响应缓冲区,且所述快速响应缓冲区中的指令的优先级高于所述轮询缓冲区中的指令。


5.根据权利要求4所述的方法,其特征在于,所述将所述通信指令发送至从设备,包括:
判断所述快速响应缓冲区中是否存在待发送的指令;
若所述快速响应缓冲区中存在待发送的指令,则从所述快速响应缓冲区中读取待发送的指令并发送;
若所述快速响应缓冲区中没有指令,则从所述轮询缓冲区中读取指令并发送。


6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
当接收到所述从设备响应所述通信指令返回的响应数据时,按照所述通信指令对应的目标地址块确定目标解析规则;其中,所述目标解析规则包括所述目标地址块包含的各地址的编码方式;
根据所述目标解析规则解析所述响应数据得到目标数据。


7.根据权利要求6所述的方法,其特征在于,所述根据所述目标解析规则解析所述响应数据得到目标数据,包括:
从所述目标解析规则中获取当前待解析地址对应的解析规则;
当所述解析规则是有效的数据编码方式时,根据所述数据编码方式解析所述响应数据中与当前待解析地址对应的数据;
当所述解析规则是无效的数据编码方式时,直接丢弃所述响应数据中与所述当前待解析地址对应的数据。


8.一种基于Modbus协议的通信装置,其特征在于,应用于主设备中,所述装置包括:
无效地址限值确定模块,用于根据所述主设备对应的Modbus编码配置信息和指令传输信息,计算得到指令发送时间...

【专利技术属性】
技术研发人员:崔炎坤陈伟周辉邹绍琨
申请(专利权)人:合肥阳光新能源科技有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1