CN102325201B - 在Modbus通信网络中为从节点设备分配网络地址的方法 - Google Patents
在Modbus通信网络中为从节点设备分配网络地址的方法 Download PDFInfo
- Publication number
- CN102325201B CN102325201B CN 201110331464 CN201110331464A CN102325201B CN 102325201 B CN102325201 B CN 102325201B CN 201110331464 CN201110331464 CN 201110331464 CN 201110331464 A CN201110331464 A CN 201110331464A CN 102325201 B CN102325201 B CN 102325201B
- Authority
- CN
- China
- Prior art keywords
- address
- ide
- node device
- idt
- maximum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明所述的一种在Modbus网络中为从节点设备分配地址的方法属于通信领域,实现了由主节点设备自动对Modbus网络中的各从节点设备的自动识别并分配Modbus地址的方法。相对于现有技术,本发明能够在较短的时间内确定Modbus网络中从节点设备的Mosbus地址,并且能根据从节点地址的大小来设定从节点设备的响应延迟时间,加快从节点设备地址的设定速度。
Description
技术领域
本发明涉及一种分配地址的方法,尤其是一种在Modbus通信网络中为从节点设备分配地址的方法。
背景技术
Modbus是一种串行通讯协议,以其协议简单、实施容易、性价比高、可靠性好等优点而获得了越来越广发的应用,成为工业领域通信协议标准,并且是工业电子设备之间相对常压的连接方式。
Modbus网络是一个主/从结构的网络,其中有一个节点是主节点,其他使用Modbus协议参与通信的节点是从节点,该网络中每一个从节点设备都有一个唯一的地址。在网络中,只有被指定为主节点的节点可以启动一个命令,每一个Modbus命令都包含了打算执行的节点的设备地址并以广播的方式向网络中各从节点发布,各从节点需要根据命令中包含的设备地址判断是否需要执行。因此,Modbus网络中各从节点的地址设定就显得尤为重要,一旦出现重复地址或者遗漏地址,就会导致通信网络冲突,系统无法正常使用。
传统采用人工手动设定来设定通信网络从节点的网络地址,这种方法不仅工作量大,而且还可能导致重复设定地址值得情况,引入人工错误。中国专利CN101309306公开了一种在Modbus通信网络中为从节点设备分配地址的方法,由主节点设备周期性的向从节点设备发送地址轮询报文,一旦网络中存在该轮询报文中包含的地址则回应该轮询报文,并设定该从节点设备的地址。使用该方法需要首先在主节点设备中设定网络中从节点设备的地址与设备总量并依次询问,显得设定繁琐,并且设定网络地址需要很长的时间。中国专利CN101969429公开了一种在RS-485总线上电能表的自动识别方法,采用主节点与从节点之间的通信来识别从节点,但在接收到乱码应答的情况下,主节点需要进行最多100次循环来测试网络中从节点设备地址,耗时依然很长。
发明内容
针对现有技术的不足,本发明的目的是要提供一种在Modbus网络中效率高、时间短的为从节点设备份分配地址的方法。
为实现上述目的,本发明采用的技术方案如下:
一种在Modbus通信网络中为从节点设备分配地址的方法,其包括以下步骤:
1)初始化主节点设备和从节点设备,设置从节点设备的设备地址的最小值IDs和最大值IDe,所述最小值IDs和最大值IDe均为自然数;
2)主节点设备根据最小值IDs和最大值IDe计算出一大于或等于最小值IDs,小于或等于最大值IDe的中间值IDt,所述中间值IDt为自然数,并向各从节点设备发送包含有所述中间值IDt的地址报文;
3)从节点设备接收到该地址报文后进行解析,将自身的设备地址与所述中间值IDt进行比较,如果自身设备地址小于所述中间值IDt,则向主节点设备发送包含该从节点设备的设备地址的应答报文,否则不回应该地址报文;
4)如果主节点设备收到一应答报文,则向该从应答报文中的设备地址对应的节点设备发送包含Modbus网络地址的设定报文,如果在等待时间内收到该节点设备的确认报文,则该从节点设备的Modbus网络地址已经被确定,该从节点设备将不再对主节点设备发送的信息进行回应,并返回步骤1);否则主节点设备将中间值IDt赋给最大值IDe,返回步骤2);
5)如果主节点设备收到至少两个应答报文,则将中间值IDt赋给最大值IDe,返回步骤2);
6)如果主节点设备没有收到应答报文,则将中间值IDt赋给最小值IDs,返回步骤2);
当主节点设备判断最大值IDe与最小值IDs之差小于2时,所有的从节点设备都被确认并设定地址值,流程结束。
进一步,所述最小值IDt设为1,所述最大值IDe设为232-1。
进一步,所述中间值IDt的计算公式为:
相对于现有技术,本发明所述的技术方案采用搜索法查找从节点设备地址,能够在较短的时间内确定从节点设备并为其分配网络地址;其次,还可以根据从节点设备的设备地址的大小来设定从节点设备的响应延迟时间,这样能够加快从节点设备的网络地址设定的速度。
为了充分地了解本发明的目的、特征和效果,以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明。
附图说明
图1是本发明所述在Modbus网络中为节点设备分配地址的方法的流程图;
图2是本发明采用的Modbus通信网络的结构图。
具体实施方式
如图1至图2所示,本发明提供了一种在Modbus通信网络中为从节点设备2分配网络地址的方法,其通过对分搜索法查找从节点设备的设备地址,主节点设备1向从节点设备2发送包含中间值的地址报文,并根据从节点设备2的应答报文确定从节点设备的网络地址的分配是否正确完成。
请参阅图2,本发明实施例所述的在Modbus通信网络中为从节点设备2分配地址的方法是基于Modbus通信网络,所述Modbus通信网络系统包含一主节点设备1和至少一从节点设备2,所述主节点设备1和所述从节点设备2分别连接到一Modbus总线3上。主节点设备1和从节点设备2均包括微处理器、通信单元等模块。
请参阅图1,本发明一优选实施例所述的在Modbus通信网络中为从节点设备2分配地址的方法,包括以下步骤:
步骤101和步骤102:主节点设备和从节点设备进行初始化,使整个网络中的主节点设备1和从节点设备2都进行地址自动识别就绪状态。主节点初始化过程中,还需要设定通信网络从节点设备2的设备地址的最大值IDe和最小值IDs。由于每台设备都有一个自己的唯一的32位的设备地址,因此设备地址的范围为1至232-1,可以设定最大值IDe为232-1,最小值为1,其中最大值IDe和最小值IDs均为自然数。
步骤103:主节点设备1根据最大值IDe和最小值IDs计算中间值IDt,计算公式如下:
中间值IDt也为自然数,如果计算出小数则需要取整。然后主节点设备1通过Modbus网络3向各从节点设备2发送包含此中间值IDt在内的地址报文。
步骤104:各从节点设备2收到该主节点设备1发送的地址报文后对该地址报文进行解析,取出其中包含的中间值IDt后将中间值IDt与自身设备的设备地址进行比较:如果自身设备地址值小于中间值IDt,则向主节点设备1发送应答报文,否则不发送任何回应。
步骤105:主节点设备1检测从节点设备2发送的应答报文,并判断应答报文的数量:如果主节点设备1只接收到一个应答报文,则进入步骤108;如果主节点设备1接收到至少两个应答报文,则进入步骤107;如果主节点设备1没有接收到应答报文,则进入步骤106。
步骤106:主节点设备1将此时的中间值IDt赋给最小值IDs,并进入步骤110。
步骤107:主节点设备1将此时的中间值IDt赋给最大值IDe,并进入步骤110。
步骤108:主节点设备1根据应答报文中包含的该从节点设备2的设备地址向该节点设备2发送一设定报文,并进入步骤109。
步骤109:节点设备2设备收到设定报文后,再向主节点设备1发送确认报文,表明该设备确实存在并且该节点设备已经被成功设定Modbus网络中的网络地址,该节点设备2将不再对主节点设备1的广播信息进行回应,然后进入步骤112。
步骤112:主节点设备1收到从节点设备2发送的确认报文后,判断该确认报文返回的时间是否在规定的时间,如果返回时间在规定的时间内,则返回步骤102,否则进入步骤107。
步骤110:主节点设备1检测赋值后的最大值IDe和最小值IDt之差是否小于2,如果小于2,则表明Modbus网络中所有从节点设备2的网络地址均被确认并设定,进入步骤111,否则,返回步骤2进行设定地址。
步骤111:程序结束。
以下通过一应用实例来详细介绍本发明所述的一种在Modbus网络中为从节点设备地址的方法。
如图2所示,在本应用实例中,Modbus网络中设置25个从节点设备,设备地址分布在1至232-1之间,利用本发明所述的方法进行为从节点设备分配地址,具体过程如下:
初始化之后,最小值IDs=0x00000001,最大值IDe=0xffffffff,计算中间值IDt的初值为0x80000000,主节点设备1发送包含中间值IDt的地址报文给各从节点设备2。
由于主节点设备1收到多个从节点设备2返回的应答报文,将IDt的值赋给IDe,此时IDe=0x80000000,重新计算IDt=0x40000000,主节点设备1重新给各从节点设备2发送地址报文。
由于主节点设备1收到多个从节点设备2返回的应答报文,将IDt的值赋给IDe,此时IDe=0x40000000,重新计算IDt=0x20000000,主节点设备1重新给各从节点设备2发送地址报文。
由于主节点设备1收到多个从节点设备2返回的应答报文,将IDt的值赋给IDe,此时IDe=0x20000000,重新计算IDt=0x10000000,主节点设备1重新给各从节点设备2发送地址报文。
由于主节点设备1收到一个从节点设备2返回的应答报文,应答报文中包含有该从节点设备2的设备地址值0x00212213,主节点设备1向各从节点设备2发送包含该设备地址值0x00212213和Modbus地址值的设定报文,在设定的等待时间内,主节点设备1收到该从节点设备2返回的确认报文,表明该从节点设备2确实存在并被成功设定其Modbus网络中的网络地址,然后屏蔽该从节点设备2。
重复上述步骤后,最终确认当前Modbus通信网络中存在25个从节点设备2,且被均匀赋予Modbus地址值。
相对于现有技术,通过主节点设备对从节点设备的地址值采用对分搜索法查找,能够在较短时间内确定从节点设备的地址值。采用本技术方案设定的Modbus地址为1至255之间,将1至255作为地址分配给从节点设备2,不会出现重复设定地址值的情况,并且能够在较短的时间内完成仪表识别和组建网络,进一步,也可以根据仪表ID值的大小来设定其响应延迟时间,加快确认地址值的速度。
以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。
Claims (3)
1.一种在Modbus通信网络中为从节点设备分配网络地址的方法,其特征在于,其包括以下步骤:
1)初始化主节点设备和从节点设备,设置从节点设备的设备地址的最小值IDs和最大值IDe,所述最小值IDs和最大值IDe均为自然数;
2)主节点设备根据最小值IDs和最大值IDe计算出一大于或等于最小值IDs,小于或等于最大值IDe的中间值IDt,所述中间值IDt为自然数,并向各从节点设备发送包含有所述中间值IDt的地址报文;
3)从节点设备接收到该地址报文后进行解析,将自身的设备地址与所述中间值IDt进行比较,如果自身设备地址小于所述中间值IDt,则向主节点设备发送包含该从节点设备的设备地址的应答报文,否则不回应该地址报文;
4)如果主节点设备收到一应答报文,所述应答报文中包含一从节点设备对应的设备地址,则所述主节点设备向该从节点设备发送设定报文,所述设定报文中包含Modbus网络地址,如果在等待时间内收到该从节点设备的确认报文,则该从节点设备的Modbus网络地址已经被确定,该从节点设备将不再对主节点设备发送的信息进行回应,并返回步骤1);否则主节点设备将中间值IDt赋给最大值IDe,并检测赋值后的最大值IDe和最小值IDs之差是否小于2,若大于2,返回步骤2);
5)如果主节点设备收到至少两个应答报文,则将中间值IDt赋给最大值IDe,并检测赋值后的最大值IDe和最小值IDs之差是否小于2,若大于2,返回步骤2);
6)如果主节点设备没有收到应答报文,则将中间值IDt赋给最小值IDs,并检测赋值后的最大值IDe和最小值IDs之差是否小于2,若大于2,返回步骤2);
当主节点设备判断最大值IDe与最小值IDs之差小于2时,所有的从节点设备都被确认并设定地址值,流程结束。
2.如权利要求1所述的方法,其特征在于,所述最小值IDs设为1,所述最大值IDe设为232-1。
3.如权利要求1或2所述的方法,其特征在于,所述中间值IDt的计算公式为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110331464 CN102325201B (zh) | 2011-10-27 | 2011-10-27 | 在Modbus通信网络中为从节点设备分配网络地址的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110331464 CN102325201B (zh) | 2011-10-27 | 2011-10-27 | 在Modbus通信网络中为从节点设备分配网络地址的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102325201A CN102325201A (zh) | 2012-01-18 |
CN102325201B true CN102325201B (zh) | 2013-10-09 |
Family
ID=45452869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110331464 Active CN102325201B (zh) | 2011-10-27 | 2011-10-27 | 在Modbus通信网络中为从节点设备分配网络地址的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102325201B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856578B (zh) * | 2014-01-03 | 2017-10-13 | 西南大学 | Modbus RTU从站自动获取站地址方法及从站 |
CN103716420A (zh) * | 2014-01-03 | 2014-04-09 | 西南大学 | Modbus ASCII从站自动获取站地址方法及从站 |
CN105244897A (zh) * | 2014-07-11 | 2016-01-13 | 北海市深蓝科技发展有限责任公司 | 一种有功功率平衡调节及无功补偿的方法及其装置 |
CN105322557A (zh) * | 2014-07-11 | 2016-02-10 | 北海市深蓝科技发展有限责任公司 | 一种有功功率平衡调节及无功补偿的方法 |
CN105323328A (zh) * | 2014-07-11 | 2016-02-10 | 北海市深蓝科技发展有限责任公司 | 一种在rs—485上使用modbus通讯协议自动识别地址的方法 |
CN105577482A (zh) * | 2016-02-04 | 2016-05-11 | 北京安控科技股份有限公司 | 基于Modbus RTU通信协议的从智能模块入网的方法 |
CN105577483A (zh) * | 2016-02-04 | 2016-05-11 | 北京安控科技股份有限公司 | 一种基于Modbus RTU通信协议的从站入网方法 |
CN106878488B (zh) * | 2017-04-29 | 2020-03-20 | 成都工鼎科技有限公司 | 一种Modbus RTU总线地址自动分配方法 |
CN107368432A (zh) * | 2017-07-14 | 2017-11-21 | 上海冉能自动化科技有限公司 | 逻辑地址分配方法 |
CN107454208B (zh) * | 2017-08-24 | 2020-05-08 | 广东雅达电子股份有限公司 | 一种为从节点设备分配网络地址的方法 |
CN109936640A (zh) * | 2017-12-19 | 2019-06-25 | 苏州阿特斯阳光电力科技有限公司 | 从节点设备的地址分配方法和装置 |
CN108737590B (zh) * | 2018-05-15 | 2022-02-25 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN109887262B (zh) * | 2019-03-29 | 2021-03-16 | 宁波三星医疗电气股份有限公司 | 一种mbus远程抄表系统自动安装方法 |
CN110120989B (zh) * | 2019-04-19 | 2020-05-22 | 珠海格力电器股份有限公司 | 一种实现设备间自动分配匹配地址的方法及系统 |
CN111200547B (zh) * | 2019-12-31 | 2021-07-27 | 苏州数言信息技术有限公司 | 在Modbus RTU网络中基于设备类型的多节点选择通信方法 |
CN111741143B (zh) * | 2020-06-03 | 2020-12-08 | 杭州炬华科技股份有限公司 | 一种电测仪表Modbus地址在线分配的方法、装置 |
CN114640650A (zh) * | 2022-01-26 | 2022-06-17 | 珠海派诺科技股份有限公司 | 一种仪表设备自动编址方法、设备、介质及产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2055991C (en) * | 1991-01-02 | 1997-04-22 | John Harris Blevin | Address management for remote terminals in digital loop transmission systems |
US6178414B1 (en) * | 1997-12-16 | 2001-01-23 | Nortel Networks Limited | Method and apparatus for updating and searching an ordered list of values stored within a memory resource |
CN101226225B (zh) * | 2008-01-29 | 2011-01-05 | 中兴通讯股份有限公司 | 一种在线测试仪的通道号查找方法 |
CN101309306B (zh) * | 2008-07-16 | 2010-06-30 | 哈尔滨工业大学 | 在Modbus通信网络中为从节点设备分配地址的方法 |
CN101447894B (zh) * | 2008-12-22 | 2013-01-30 | 三一重工股份有限公司 | 识别分节点物理地址、网络配置及维护方法、网络系统 |
-
2011
- 2011-10-27 CN CN 201110331464 patent/CN102325201B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102325201A (zh) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102325201B (zh) | 在Modbus通信网络中为从节点设备分配网络地址的方法 | |
CN108737590B (zh) | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 | |
CN101751761B (zh) | 一种网络自动路由的无线抄表方法 | |
CN103475747B (zh) | 自动发送地址信息的电能表组网系统的地址信息发送方法 | |
CN107508930A (zh) | Id分配方法及系统 | |
CN106603735B (zh) | 一种分配智能仪表通信地址的方法、装置和系统 | |
CN105336138A (zh) | 无线电表自动注册到集中器的方法与系统 | |
CN109041181A (zh) | 无线通信方法、系统及网关设备 | |
CN105788226A (zh) | 一种宽带载波并行抄表方法及系统 | |
CN104065763A (zh) | 基于rs485的自由数量空调自动随机定址通信方法 | |
EP3422655B1 (en) | Method for managing address of meter device, and acquisition terminal and meter device | |
CN111865745B (zh) | 一种自动识别从设备的无延时轮询方法及系统 | |
CN103200058A (zh) | 数据处理方法、协调器和节点设备 | |
CN203399150U (zh) | 一种自动发送地址信息的电能表组网系统 | |
CN102254414B (zh) | 一种基于gprs的嵌入式自动抄表系统 | |
CN106953809B (zh) | 一种基于485分时通信的设备资源采集方法 | |
CN115470165A (zh) | 地址分配方法、电池管理系统以及电子设备 | |
CN105978779B (zh) | 基于工业互联网的实时通信方法、装置及系统 | |
CN107454208A (zh) | 一种为从节点设备分配网络地址的方法 | |
CN115334041A (zh) | 一种主从站通讯设备自动分配地址的方法、主站、从站和系统 | |
CN111629080A (zh) | 一种自动分配电表地址的方法 | |
CN114585100A (zh) | LoRa组网方法、系统、电子设备及存储介质 | |
CN103441509A (zh) | 无功补偿柜及控制方法 | |
CN107247683B (zh) | 一种用于机架服务器的定位管理系统及其方法 | |
CN112052214A (zh) | 一种多机竞号的通信方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |