Modbus通信网络的网络地址分配方法、从节点设备与通信系统与流程

文档序号:12492058阅读:591来源:国知局
Modbus通信网络的网络地址分配方法、从节点设备与通信系统与流程

本发明涉及通信网络领域,尤其涉及一种Modbus通信网络的网络地址分配方法、从节点设备与通信系统。



背景技术:

Modbus是一种串行通讯协议,以其协议简单、实施容易、性价比高、可靠性好等优点而获得了越来越广发的应用,成为工业领域通信协议标准,并且是工业电子设备之间相对常压的连接方式。

Modbus网络是一个主/从结构的网络,其中有一个节点是主节点,其他使用Modbus协议参与通信的节点是从节点,该网络中每一个从节点设备都有一个唯一的地址。

在网络中,只有被指定为主节点的节点可以启动一个命令,每一个Modbus命令都包含了打算执行的节点的设备地址并以广播的方式向网络中各从节点发布,各从节点需要根据命令中包含的设备地址判断是否需要执行。因此,Modbus网络中各从节点的地址设定就显得尤为重要。

现有技术通过人工手动逐个地设置从机地址(如设置每台从机的拔码开关等方式),这样做会需要专业人员操作从而增加系统成本且效率低下。



技术实现要素:

针对上述问题,本发明的目的在于提供一种Modbus通信网络的网络地址分配方法、从节点设备与通信系统,自动化地设置从机地址,提高设置从机的网络地址的效率,减小系统成本。

为了实现上述目的,本发明一方面提供了一种Modbus通信网络的网络地址分配方法,包括:

从节点设备接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;其中,任一从节点设备的原始网络地址属于非法网络地址;

从节点设备在判定本设备的网络地址非法时进入延时抢占过程;其中,所述延时抢占过程的时长预先配置,且不同的从节点设备所配置的延时抢占过程的时长不同;

当在所述延时抢占过程中从节点设备没有接收到其他从节点设备发送的分配成功通知消息时,所述从节点设备响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息。

优选地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令为所述主节点设备按照一定的时间间隔发送到各个从节点设备,且所述第一地址分配指令所记载的网络地址为未被分配的合法网络地址。

优选地,所述合法地址分配指令还包括第二地址分配指令;所述第二地址分配指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备,且所述第二地址分配指令所记载的网络地址为产生冲突的网络地址;

所述方法还包括:

从节点设备在判定本设备的网络地址合法时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时进入延时抢占过程;

当在所述延时抢占过程中从节点设备接收到其他从节点设备发送的分配成功通知消息时,从节点设备判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时将本设备的网络地址设定为非法网络地址。

优选地,所述方法还包括:

从节点设备接收主节点设备发送的地址冲突调整指令,并判断本设备的网络地址与产生冲突的网络地址是否相同;所述地址冲突调整指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备;所述地址冲突调整指令中记载了所述产生冲突的网络地址;

从节点设备在判定本设备的网络地址与所述产生冲突的网络地址相同时,将本设备的网络地址设定为非法网络地址。

优选地,所述方法还包括:

从节点设备在上电时获取其唯一物理编号;

从节点设备根据所述唯一物理编号以及预先配置的统一算法计算所述延时抢占过程的时长并存储起来。

优选地,所述方法还包括:

从节点设备获取用户输入的网络地址设定指令;

从节点设备将本设备的网络地址设定为所述网络地址设定指令所要求设定的网络地址。

本发明实施例另一方面还提供一种Modbus通信网络中的从节点设备,包括:

分配指令接收模块,用于接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;其中,任一从节点设备的原始网络地址属于非法网络地址;

第一判定模块,用于在判定本设备的网络地址非法时进入延时抢占过程;其中,所述延时抢占过程的时长预先配置,且不同的从节点设备所配置的延时抢占过程的时长不同;

第一地址设定模块,用于当在所述延时抢占过程中从节点设备没有接收到其他从节点设备发送的分配成功通知消息时,所述从节点设备响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息。

优选地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令为所述主节点设备按照一定的时间间隔发送到各个从节点设备,且所述第一地址分配指令所记载的网络地址为未被分配的合法网络地址。

优选地,所述合法地址分配指令还包括第二地址分配指令;所述第二地址分配指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备,且所述第二地址分配指令所记载的网络地址为产生冲突的网络地址;

所述从节点设备还包括:

第二判定模块,用于在判定本设备的网络地址合法时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时进入延时抢占过程;

第二设定模块,用于当在所述延时抢占过程中接收到其他从节点设备发送的分配成功通知消息时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时将本设备的网络地址设定为非法网络地址。

优选地,所述从节点设备还包括:

调整指令接收模块,用于接收主节点设备发送的地址冲突调整指令,并判断本设备的网络地址与产生冲突的网络地址是否相同;所述地址冲突调整指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备;所述地址冲突调整指令中记载了所述产生冲突的网络地址;

从节点设备在判定本设备的网络地址与所述产生冲突的网络地址相同时,将本设备的网络地址设定为非法网络地址。

优选地,所述从节点设备还包括:

物理编号获取模块,用于在上电时获取其唯一物理编号;

时长计算模块,用于根据所述唯一物理编号以及预先配置的统一算法计算所述延时抢占过程的时长并存储起来。

优选地,所述从节点设备还包括:

设定指令获取模块,用于获取用户输入的网络地址设定指令;

第四地址设定模块,用于从节点设备将本设备的网络地址设定为所述网络地址设定指令所要求设定的网络地址。

本发明实施例还提供一种Modbus通信系统,包括主节点设备以及若干个第一方面所述的从节点设备。

相比于现有技术,本发明实施例的有益效果在于:本发明实施例提供了一种Modbus通信网络的网络地址分配方法、从节点设备与通信系统,其中方法包括:从节点设备接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;从节点设备在判定本设备的网络地址非法时进入延时抢占过程;当在所述延时抢占过程中从节点设备没有接收到其他从节点设备发送的分配成功通知消息时,所述从节点设备响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息。在本发明实施例中,不同的从节点设备所配置的延时抢占过程的时长不同,使得延时抢占过程的时长最短的从节点设备首先“抢占”所述合法地址分配指令所记载的网络地址,将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息,使得有且只有一台从节点设备能“抢占”到所述合法地址分配指令所记载的网络地址。本发明实施例能够自动化地设置从机地址,无需人工逐一设置,在有新的从节点设备接入时自动分配网络地址使从节点设备快速加入到总线中,大大地提高设置从机的网络地址的效率,减小系统成本。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种Modbus通信网络的网络地址分配方法的流程示意图;

图2是本发明实施例提供的一种Modbus通信网络中的从节点设备10的结构框图;

图3是本发明实施例提供的一种Modbus通信系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其是本发明实施例提供的一种Modbus通信网络的网络地址分配方法的流程示意图。所述Modbus通信网络的网络地址分配方法包括步骤S11~S13:

S11,从节点设备接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;其中,任一从节点设备的原始网络地址属于非法网络地址;

所述原始网络地址是指从节点设备的默认网络地址,即从节点设备在第一次接入到Modbus通信网络中所具有的网络地址。由于任一从节点设备的原始网络地址属于非法网络地址,即任一从节点设备在第一次接入到Modbus通信网络中所具有的网络地址都是非法的,需要按照本方法重新设定为合法网络地址,因而本方法可以为新接入的从节点设备自动地分配网络地址使从节点设备快速加入到总线中。

需要说明的是,这里所述的网络地址的合法与非法是在通信协议中约定好的。例如,可以约定网络地址范围为【01H,F7H】之间的地址都属于合法网络地址,所有的合法网络地址组成合法网络地址群,则该范围以外的地址都属于非法网络地址。主节点设备按照上述约定在合法地址分配指令中配置一个合法网络地址,从节点设备也按照上述约定判断本设备的网络地址是否合法。

S12,从节点设备在判定本设备的网络地址非法时进入延时抢占过程;其中,所述延时抢占过程的时长预先配置,且不同的从节点设备所配置的延时抢占过程的时长不同;

其中,所述延时抢占过程的时长配置方法可以是预先逐一配置的。

为了提高配置效率,在本实施例中所述延时抢占过程的时长配置方法采用以下的方式:

从节点设备在上电时获取其唯一物理编号;

从节点设备根据所述唯一物理编号以及预先配置的统一算法计算所述延时抢占过程的时长并存储起来。

由于从节点设备能够很容易就获取得到本设备的唯一物理编号,那么只需要在从节点设备内部写入统一算法,从节点设备就能自动根据唯一物理编号以及统一算法来计算出本设备所对应的延时抢占过程的时长。此外,不同的从节点设备的唯一物理编号是唯一的,不同的从节点设备通过统一算法计算出来的延时抢占过程的时长也不同。

S13,当在所述延时抢占过程中从节点设备没有接收到其他从节点设备发送的分配成功通知消息时,所述从节点设备响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息。

由于每个从节点设备都会经历延时抢占过程,并且不同的从节点设备所经历的时长不同,那么延时抢占过程的时长最短的从节点设备首先“抢占”所述合法地址分配指令所记载的网络地址,将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息,使得有且只有一台从节点设备能“抢占”到所述合法地址分配指令所记载的网络地址。

优选地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令为所述主节点设备按照一定的时间间隔发送到各个从节点设备,且所述第一地址分配指令所记载的网络地址为未被分配的合法网络地址。

需要说明的是,这里所述的未被分配的合法网络地址,是指在当前没有任何一台从节点设备占用的网络地址。在步骤S13中,主节点设备接收到从节点设备发送的分配成功通知消息,并将被分配的网络地址记录下来,从而在合法网络地址群中区分未被分配的合法网络地址以及被分配了的合法网络地址。为了避免将已被分配了的合法网络地址又分配出去从而产生冲突,在本实施例中第一地址分配指令所记载的网络地址为未被分配的合法网络地址。

由于程序出错或者人为原因会导致将两台从节点设备的网络地址设置成相同的,从而产生网络地址冲突,Modbus通信网络出错。为了解决网络地址冲突的问题,在本发明的第一种实施方式中将产生冲突的网络地址记载在合法地址分配指令中。

具体地,所述合法地址分配指令还包括第二地址分配指令;所述第二地址分配指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备,且所述第二地址分配指令所记载的网络地址为产生冲突的网络地址;

所述方法还包括:

从节点设备在判定本设备的网络地址合法时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时进入延时抢占过程;

当在所述延时抢占过程中从节点设备接收到其他从节点设备发送的分配成功通知消息时,从节点设备判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时将本设备的网络地址设定为非法网络地址。

此时,会抢占这个产生冲突的网络地址的从节点设备有两种:一种是本身的网络地址是非法的,另一种是原来使用该产生冲突的网络地址的从节点设备,并且第二种的从节点设备至少是两台。

为了更清楚地说明这种实施方式,以下举例说明:

假设从节点设备1和从节点设备2的网络地址冲突,共用了网络地址X,并且从节点设备3的网络地址是非法的。主节点设备检测到从节点设备1和从节点设备2的网络地址冲突,将记载了网络地址X的合法地址分配指令广播出去。从节点设备3的网络地址是非法的所以参与“抢占”,而从节点设备1和从节点设备2的网络地址与网络地址X均相同,因而从节点设备1和从节点设备2也参与抢占。对于从节点设备1和从节点设备2来说,如果没有抢占到网络地址X,就将本设备的网络地址设为非法网络地址,在下次分配时再参与“抢占”,从而解决了从节点设备之间的网络地址冲突的问题。

同样为了解决了从节点设备之间的网络地址冲突的问题,在第二种实施方式中,本方法还包括:

从节点设备接收主节点设备发送的地址冲突调整指令,并判断本设备的网络地址与产生冲突的网络地址是否相同;所述地址冲突调整指令为所述主节点设备在检测到有至少两个从节点设备的网络地址冲突时发送到各个从节点设备;所述地址冲突调整指令中记载了所述产生冲突的网络地址;

从节点设备在判定本设备的网络地址与所述产生冲突的网络地址相同时,将本设备的网络地址设定为非法网络地址。

即直接将网络地址冲突的从节点设备的网络地址设置为非法网络地址,在下次分配时再参与“抢占”。与第一种实施方式相比,在第一种实施方式中网络地址冲突的从节点设备通过“抢占”产生冲突的网络地址来解决网络地址冲突的问题,而第二种实施方式则是直接将网络地址冲突的从节点设备的网络地址设置为非法网络地址,这两种实施方式都可以实现。

更优选地,所述方法还包括:

从节点设备获取用户输入的网络地址设定指令;

从节点设备将本设备的网络地址设定为所述网络地址设定指令所要求设定的网络地址。用户可以根据需要为某台从节点设备配置指定的网络地址。

为了执行上述的Modbus通信网络的网络地址分配方法,本发明实施例还提供了一种Modbus通信网络中的从节点设备。请参阅图2,其是本发明实施例提供的一种Modbus通信网络中的从节点设备10的结构框图,包括:

分配指令接收模块11,用于接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;其中,任一从节点设备10的原始网络地址属于非法网络地址;

第一判定模块12,用于在判定本设备的网络地址非法时进入延时抢占过程;其中,所述延时抢占过程的时长预先配置,且不同的从节点设备10所配置的延时抢占过程的时长不同;

第一地址设定模块13,用于当在所述延时抢占过程中从节点设备10没有接收到其他从节点设备10发送的分配成功通知消息时,所述从节点设备10响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备10发送所述分配成功通知消息。

优选地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令为所述主节点设备按照一定的时间间隔发送到各个从节点设备10,且所述第一地址分配指令所记载的网络地址为未被分配的合法网络地址。

为了解决网络地址冲突的问题,在第一种实施方式中,所述合法地址分配指令还包括第二地址分配指令;所述第二地址分配指令为所述主节点设备在检测到有至少两个从节点设备10的网络地址冲突时发送到各个从节点设备10,且所述第二地址分配指令所记载的网络地址为产生冲突的网络地址;

所述从节点设备10还包括:

第二判定模块,用于在判定本设备的网络地址合法时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时进入延时抢占过程;

第二设定模块,用于当在所述延时抢占过程中接收到其他从节点设备10发送的分配成功通知消息时,判断本设备的网络地址与所述合法地址分配指令所记载的网络地址是否相同,并在相同时将本设备的网络地址设定为非法网络地址。

为了解决网络地址冲突的问题,在第二种实施方式中,所述从节点设备10还包括:

调整指令接收模块,用于接收主节点设备发送的地址冲突调整指令,并判断本设备的网络地址与产生冲突的网络地址是否相同;所述地址冲突调整指令为所述主节点设备在检测到有至少两个从节点设备10的网络地址冲突时发送到各个从节点设备10;所述地址冲突调整指令中记载了所述产生冲突的网络地址;

从节点设备10在判定本设备的网络地址与所述产生冲突的网络地址相同时,将本设备的网络地址设定为非法网络地址。

优选地,所述从节点设备10还包括:

物理编号获取模块,用于在上电时获取其唯一物理编号;

时长计算模块,用于根据所述唯一物理编号以及预先配置的统一算法计算所述延时抢占过程的时长并存储起来。

优选地,所述从节点设备10还包括:

设定指令获取模块,用于获取用户输入的网络地址设定指令;

第四地址设定模块,用于从节点设备10将本设备的网络地址设定为所述网络地址设定指令所要求设定的网络地址。

需要说明的是,本发明实施例提供的一种Modbus通信网络中的从节点设备10用于执行上述的Modbus通信网络的网络地址分配方法,两者的工作原理和有益效果一一对应,因而不再赘述。

请参阅图3,其是本发明实施例提供的一种Modbus通信系统的结构示意图。所述Modbus通信系统包括主节点设备20以及若干个图2实施例所示的从节点设备10。所述从节点设备10与所述主节点设备20之间通过总线连接。在图3中虽然只用三个从节点设备10示意,但实际上从节点设备10的数量是不限制的。

相比于现有技术,本发明实施例的有益效果在于:本发明实施例提供了一种Modbus通信网络的网络地址分配方法、从节点设备与通信系统,其中方法包括:从节点设备接收主节点设备发送的合法地址分配指令,并判断本设备的网络地址是否合法;从节点设备在判定本设备的网络地址非法时进入延时抢占过程;当在所述延时抢占过程中从节点设备没有接收到其他从节点设备发送的分配成功通知消息时,所述从节点设备响应于所述延时抢占过程结束将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息。在本发明实施例中,不同的从节点设备所配置的延时抢占过程的时长不同,使得延时抢占过程的时长最短的从节点设备首先“抢占”所述合法地址分配指令所记载的网络地址,将本设备的地址设定为所述合法地址分配指令所记载的网络地址,并向所述主节点设备以及其他从节点设备发送所述分配成功通知消息,使得有且只有一台从节点设备能“抢占”到所述合法地址分配指令所记载的网络地址。本发明实施例能够自动化地设置从机地址,无需人工逐一设置,在有新的从节点设备接入时自动分配网络地址使从节点设备快速加入到总线中,大大地提高设置从机的网络地址的效率,减小系统成本。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

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