CN111130971B - 在Modbus RTU网络实现动态分组通信的方法 - Google Patents
在Modbus RTU网络实现动态分组通信的方法 Download PDFInfo
- Publication number
- CN111130971B CN111130971B CN201911417785.1A CN201911417785A CN111130971B CN 111130971 B CN111130971 B CN 111130971B CN 201911417785 A CN201911417785 A CN 201911417785A CN 111130971 B CN111130971 B CN 111130971B
- Authority
- CN
- China
- Prior art keywords
- address
- modbus
- packet
- bit
- modbus rtu
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在Modbus RTU网络实现动态分组通信的方法。本发明一种在Modbus RTU网络实现动态分组通信的方法,包括:节点地址使用Modbus标准8bit地址,消息格式与Modbus RTU规范完全兼容;将8bit地址划分为分组位和地址位,分组位的位数或者称为分组方式可由Modbus主节点(master)设定,取值范围从0到7。本发明的有益效果:Modbus RTU标准不支持组播功能,而针对此问题的现有技术都有明显缺陷,这些技术或者在硬件层面对网络进行物理隔离实现分组,或者将Modbus RTU标准8位地址成倍扩大。这些技术不仅都无法兼容Modbus RTU标准,而且成本高、灵活性差。
Description
技术领域
本发明涉及Modbus领域,具体涉及一种在Modbus RTU网络实现动态分组通信的方法。
背景技术
Modbus通讯协议在自动化控制领域应用非常广泛,具体又分为Modbus ASCII、Modbus RTU以及Modbus TCP三中通信模式,其中Modbus RTU在实际应用中最为普遍。Modbus RTU协议是一个主从(master/slave)架构的串行协议:在一个ModBus网络中,包含一个地址为0的主节点(master)和多个的从节点(slave),每一个slave设备都有一个唯一的地址,地址值在1到247之间。
Modbus RTU规范不允许有重复的节点地址,标准协议也没有广播和组播功能(通信协议地址为一个字节,表示确定的节点地址)。如果主节点需要把同一条指令发给多个从节点,则必须逐一发送。这样不仅增加了主节点的处理负担,而且由于指令之间的间隔,造成从节点动作不同步。例如,一个区域内有5排灯光,分别由5个从节点控制,主节点需要关闭所有灯(或者关闭其中3排),则需要分别向5个从节点(或3个从节点)发关灯指令。
传统技术存在以下技术问题:
1.Modbus标准不支持广播和组播功能,主节点要把同一条指令发给多个从节点,必须逐一发送。
2.目前尚未发现在标准Modbus RTU网络中,兼容串行Modbus消息格式的动态分组通信技术。
3.部分扩展扩充了地址自动长度,无法兼容串行Modbus标准(相当于另外制定了一个标准)。
4.部分扩展技术使用硬件对网络隔离,但不是在标准Modbus网络上实现,灵活性差,也无法同时实现单播、组播和广播。
发明内容
本发明要解决的技术问题是提供一种在Modbus RTU网络实现动态分组通信的方法,本方法能够实现在标准串行Modbus网络中同时支持单播、组播和广播功能。节点地址使用Modbus标准8bit地址,消息格式与Modbus RTU规范完全兼容。本方法允许动态进行分组设置,系统在运行过程中可以通过标准Modbus寄存器读写指令修改分组方式,修改后立即生效,系统可无间断运行。本方法运行效率高、可靠性好、灵活性高、兼容性好。在一个串行Modbus网络中允许主节点将一条消息同时发给多个从节点,使串行Modbus网络具备单播、组播和广播功能。在使用Modbus标准8bit地址、遵从Modbus RTU消息格式规范的前提下,实现分组通信。能够在系统运行时对节点分组方式进行动态设置。
为了解决上述技术问题,本发明提供了一种在Modbus RTU网络实现动态分组通信的方法,包括:节点地址使用Modbus标准8bit地址,消息格式与Modbus RTU规范完全兼容;将8bit地址划分为分组位和地址位,分组位的位数或者称为分组方式可由Modbus主节点(master)设定,取值范围从0到7。
在其中一个实施例中,与之相对应的地址位范围为从8到1,不同的分组方式对应着不同的分组数和组内节点容量。
在其中一个实施例中,地址0x00始终为广播地址,所有从节点都能接收并处理主节点以目标地址0x00发出的广播消息。
在其中一个实施例中,无论哪种分组方式,每个组的首地址就是该组的组播地址(分组0的首地址为广播地址);第0组的组播地址始终为0x01,而其他组的组播地址都是偶数。
在其中一个实施例中,系统能够在运行时对分组方式进行动态设置;规定某个特定的读写寄存器保存分组方式的值;主节点通过标准Modbus指令读取和修改分组方式。
在其中一个实施例中,当主节点广播发出修改分组方式消息后,所有节点都能收到消息并修改分组方式,一条消息即可快递完成整个网络的重新分组;要求主节点启动后广播修改分组方式消息,确保从节点获得一致的分组方式设置,并建议主节点定期广播一次修改分组方式消息,以同步新上线的节点。
在其中一个实施例中,定期为每隔300秒。
基于同样的发明构思,本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一项所述的方法。
本发明的有益效果:
1.Modbus RTU标准不支持组播功能,而针对此问题的现有技术都有明显缺陷,这些技术或者在硬件层面对网络进行物理隔离实现分组,或者将Modbus RTU标准8位地址成倍扩大。这些技术不仅都无法兼容Modbus RTU标准,而且成本高、灵活性差。
2.Modbus协议历史悠久,现实中存在巨量的使用Modbus协议通讯的设备,不可能要求这些设备都修改程序。本发明与Modbus RTU标准完全兼容,也就是说Modbus分组网络中既可以有新的支持分组消息的节点,也可以包括历史遗留的标准节点,因此,应用空间巨大。
3.本发明公开了一种与Modbus RTU标准完全兼容的分组通讯的方法,沿用ModbusRTU标准8位地址和地址范围,就能够实现单播、组播和广播通讯,并且配置简便,允许动态进行分组设置。本方法运行效率高、可靠性好、灵活性高、兼容性好。
4.本发明提供了8种分组方式,既不同的分组数和组内节点容量,可适用于多种应用场景。
5.本发明提出的方法结构构简洁、处理高效,中低端微处理器即可支持其运行,成本低、实用性强。
附图说明
图1是本发明在Modbus RTU网络实现动态分组通信的方法中的分组方式3节点地址示例图。
图2是本发明在Modbus RTU网络实现动态分组通信的方法中的一个Modbus分组网络实例图。
图3是本发明在Modbus RTU网络实现动态分组通信的方法中的主节点动态维护分组方式的工作流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明公开了一种在Modbus RTU网络中实现分组通讯的方法,能够满足上述广播和组播的通讯需求。换言之,使用本发明的方法能够实现主节点将一条同时发给多个目标从节点,并且允许动态进行分组设置。本方法运行效率高、灵活性高、可靠性高,且兼容Modbus RTU规范。
本发明公开了一种在Modbus RTU网络中实现分组通讯的方法。根据本方法,节点地址使用Modbus标准8bit地址,消息格式与Modbus RTU规范完全兼容。独特之处在于,将8bit地址划分为分组位和地址位,分组位的位数或者称为分组方式可由Modbus主节点(master)设定,取值范围从0到7。例如,分组方式3对应的分组位就是3位,则地址位就是剩下的5位。因此,图1示例的从节点地址(标准Modbus地址0xA2或162)的含义:分组方式3,组号为5,组内地址为2。
图2是按本发明所述方法构建的一个Modbus分组网络实例。其分组方式为3,包括一个主节点,两个标准从节点(地址分别为3和192)和三个支持分组功能的从节点(地址分别为2、31和65)。标准从节点可以是任何不支持分组功能的第三方Modbus设备。地址为2和31的从节点同属于组0,而地址为65的从节点则属于组2。
表1分别描述了8种分组方式(分组位0到7)的编址方式和容量,其中分组方式0为默认分组方式。
表1:Modbus节点分组通信编址表
需要指出的是,分组方式0没有分组位,使用此设置时节点地址实质上就是Modbus标准地址。由此可见,Modbus标准编址可以看做本方法的一个特例,本方法可完全兼容和覆盖Modbus地址标准。此外,本发明提出的编址方法还有以下关键特征:
分组位越多支持的分组数越多,但每组包含的节点地址越少。因此,选择分组方式时应根据实际对分组数量的要求,避免分组数过多,但组内节点容量不足。
无论哪种分组方式,地址0x00始终为广播地址,也就是说所有从节点都能接收并处理主节点以目标地址0x00发出的广播消息。
无论哪种分组方式,每个组的首地址就是该组的组播地址(分组0的首地址为广播地址)。分组方式3为例,当主节点以目的地址0x20(十进制32)发出消息,地址从32到63的从节点都能接收并处理此消息。需要注意,第0组的组播地址始终为0x01,而其他组的组播地址都是偶数。
因为每个组的首地址就是该组的组播地址,所以如果从节点用此地址,就不能接收单播消息。如果节点需要接收单播指令,则应避免使用组播地址;其他地址既可以接收单播指令,也可以接收组播指令。分组方式3为例,当主节点以目的地址0x21(十进制33)发出消息,此消息可确定是发给从节点33的单播消息;而目的地址0x20(十进制32)被认为是组播地址,无法作为节点32的单播地址。因此,实际使用中,需要接收单播消息的节点应避免使用组播地址。
继续以图2所示的Modbus分组网络为例,主节点进行单播、组播和广播的消息目的地址如表2所示。
表2:分组方式3时主节点单播、组播和广播消息的目的地址
本发明公开了一种在Modbus RTU网络中实现分组通讯的方法。根据本方法,系统能够在运行时对分组方式进行动态设置。本方法规定某个特定的读写寄存器保存分组方式的值,如寄存器40001(注:此地址不特别限定,在具体项目实施时可以根据实际需求指定一个地址即可),因此,主节点可以通过标准Modbus指令读取(功能码3)和修改(功能码6)分组方式。例如:
消息[01][03][9C][41][00][01][FA][4E],表示向地址为01的从节点读取40001(0x9C41)寄存器数据,既读取分组方式。
消息[00][06][9C][41][00][03][B6][5E],表示广播(目的地址为00)写40001(0x9C41)寄存器数据,既修改分组方式为3。
当主节点广播发出修改分组方式消息后,所有节点都能收到消息并修改分组方式,一条消息即可快递完成整个网络的重新分组。本方法要求主节点启动后广播修改分组方式消息,确保从节点获得一致的分组方式设置,并建议主节点定期(如每隔300秒)广播一次修改分组方式消息,以同步新上线的节点。因此,主节点动态维护分组方式的工作流程应如图3所示。
下面给出本发明的一个具体应用场景:
以智慧教室作为应用场景举例:
本智慧教室教室的主控节点(master)需要控制多种大量Modbus终端设备,包括:4路照明、1台新风、6个电动窗帘、4台吊扇等。其中,新风和吊扇为标准Modbus设备,无法联系厂家修改程序。此应用场景需要满足两个关键目标:
在一个Modbus网络中实现对上述设备的控制,不允许有多个物理网络
照明和窗帘设备较多,需要实现分组控制,否则消息过多,不仅可靠性会降低而且操作不同步(如灯不能同时关闭、打开,用户体验不好)
如果没有本发明提供的方法,上述需求基本无法同时满足。
使用本发明提供的方法构建一个Modbus RTU分组网络,分组方式2,3,4,5都能满足需求,这里我们采用分组方式3,可支持多达8个分组、每组30多个节点。具体分组如下:
组1(组播地址0x020):4路照明,节点地址分别为33,34,35,36
组2(组播地址0x040):6个电动窗帘,节点地址分别为65,66,67,68,69,70标准Modbus设备:4台吊扇地址分别为2,3,4,5;新风节点地址为192
如果要单独控制某个设备,则向其节点地址发单播消息;
如果要控制一组设备,如照明全开或全关,则向组播地址发消息,如0x20;
如果要控制所有设备,比如放学关闭全部设备,则向0x00发广播消息。
因为风扇是不支持分组消息的传统Modbus设备,所以如果要打开4台风扇,就需要按传统方式向地址2,3,4,5各发一条控制消息。如果后续风扇厂家升级软件支持分组消息,则4个设备都归属组0,无需修改节点地址,即可实现组播控制(组播地址0x01)。
本发明的关键技术如下:
本发明公开了一种与Modbus RTU标准完全兼容的分组通讯的方法,沿用ModbusRTU标准8位地址和地址范围,就能够实现单播、组播和广播通讯,并且支持动态分组设置。
本发明完全兼容Modbus RTU通信规范,具有广泛的兼容性。本发明提出的编址方案节点结构简洁、处理高效,中低端微处理器即可支持其运。
Modbus RTU的8位地址被划分为分组位和地址位两部分。分组位的位数也就是分组方式取值范围从0到7,与之相对应的地址位范围为从8到1,不同的分组方式对应着不同的分组数和组内节点容量。
地址0x00始终为广播地址,所有从节点都能接收并处理主节点以目标地址0x00发出的广播消息。
无论哪种分组方式,每个组的首地址就是该组的组播地址(分组0的首地址为广播地址)。第0组的组播地址始终为0x01,而其他组的组播地址都是偶数。
系统能够在运行时对分组方式进行动态设置。本方法规定某个特定的读写寄存器保存分组方式的值,如寄存器40001(注:此地址不特别限定,在具体项目实施时可以根据实际需求指定一个地址即可),因此,主节点可以通过标准Modbus指令读取(功能码3)和修改(功能码6)分组方式。
当主节点广播发出修改分组方式消息后,所有节点都能收到消息并修改分组方式,一条消息即可快递完成整个网络的重新分组。本方法要求主节点启动后广播修改分组方式消息,确保从节点获得一致的分组方式设置,并建议主节点定期(如每隔300秒)广播一次修改分组方式消息,以同步新上线的节点。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (7)
1.一种在Modbus RTU网络实现动态分组通信的方法,其特征在于,包括:节点地址使用Modbus标准8 bit地址,消息格式与Modbus RTU规范完全兼容;将8 bit地址划分为分组位和地址位,分组位的位数或者称为分组方式可由Modbus主节点设定,取值范围从0到7;
与之相对应的地址位范围为从8到1,不同的分组方式对应着不同的分组数和组内节点容量;
地址0x00始终为广播地址,所有从节点都能接收并处理主节点以目标地址0x00发出的广播消息;
无论哪种分组方式,每个组的首地址就是该组的组播地址;分组0的首地址为广播地址;第0组的组播地址始终为0x01,而其他组的组播地址都是偶数。
2.如权利要求1所述的在Modbus RTU网络实现动态分组通信的方法,其特征在于,系统能够在运行时对分组方式进行动态设置;规定某个特定的读写寄存器保存分组方式的值;主节点通过标准Modbus指令读取和修改分组方式。
3.如权利要求1所述的在Modbus RTU网络实现动态分组通信的方法,其特征在于,当主节点广播发出修改分组方式消息后,所有节点都能收到消息并修改分组方式,一条消息即可快递完成整个网络的重新分组;要求主节点启动后广播修改分组方式消息,确保从节点获得一致的分组方式设置,并建议主节点定期广播一次修改分组方式消息,以同步新上线的节点。
4.如权利要求3所述的在Modbus RTU网络实现动态分组通信的方法,其特征在于,定期为每隔300秒。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1到4任一项所述方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1到4任一项所述方法的步骤。
7.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1到4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417785.1A CN111130971B (zh) | 2019-12-31 | 2019-12-31 | 在Modbus RTU网络实现动态分组通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417785.1A CN111130971B (zh) | 2019-12-31 | 2019-12-31 | 在Modbus RTU网络实现动态分组通信的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130971A CN111130971A (zh) | 2020-05-08 |
CN111130971B true CN111130971B (zh) | 2021-10-26 |
Family
ID=70506841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911417785.1A Active CN111130971B (zh) | 2019-12-31 | 2019-12-31 | 在Modbus RTU网络实现动态分组通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130971B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114980162A (zh) * | 2022-04-29 | 2022-08-30 | 苏州碳感科技有限公司 | 一种无线传感网络节点的分组方法和通讯方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067238B (zh) * | 2012-12-28 | 2015-09-30 | 深圳市研控自动化科技有限公司 | 一种兼容于modbus总线的数据采集方法 |
TW201514645A (zh) * | 2013-10-03 | 2015-04-16 | Bigbest Solutions Inc | 應用Modbus通訊協定的群組控制系統及方法 |
CN106211184A (zh) * | 2015-04-30 | 2016-12-07 | 东莞市星东升实业有限公司 | 基于微网协议的微网构建法 |
CN107222458A (zh) * | 2017-04-17 | 2017-09-29 | 珠海格力电器股份有限公司 | 一种兼容Modbus协议的BACnet协议栈的数据处理方法及系统 |
CN207530843U (zh) * | 2017-10-27 | 2018-06-22 | 笔笔发信息技术(上海)有限公司 | 按照地址表主动上报数据的通讯设备 |
CN108737590B (zh) * | 2018-05-15 | 2022-02-25 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN109525429B (zh) * | 2018-11-15 | 2022-07-26 | 洛阳理工学院 | 一种适用于modbus协议的rtu及其通信方法 |
-
2019
- 2019-12-31 CN CN201911417785.1A patent/CN111130971B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111130971A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111200547B (zh) | 在Modbus RTU网络中基于设备类型的多节点选择通信方法 | |
CN108431701B (zh) | 智能家居设备的控制方法、控制面板及控制系统 | |
CN101820435B (zh) | 分布式网络处理系统的mac地址表项信息同步方法及装置 | |
CN102625554B (zh) | 一种分布式dali灯光照明控制系统及其方法 | |
CN103974380A (zh) | 一种终端接入位置保活的方法及装置 | |
WO2005025277A1 (en) | Digital addressable lighting interface translation method | |
WO2022002173A1 (zh) | 一种智能设备入网方法、装置及智能设备控制系统、方法 | |
US9019959B2 (en) | Node, switch, and system | |
CN102143229A (zh) | 一种终端批量升级的方法及系统 | |
CN104301238A (zh) | 一种报文处理方法、装置及系统 | |
CN111130971B (zh) | 在Modbus RTU网络实现动态分组通信的方法 | |
CN113625589A (zh) | 一种设备控制方法、装置、电子设备和存储介质 | |
CN111913397A (zh) | 设备控制方法、装置、存储介质及电子装置 | |
CN111866856A (zh) | Mesh设备的控制方法和系统、存储介质及电子装置 | |
CN116684024B (zh) | Fc-ae-1553边界时钟端口状态配置方法及系统 | |
CN112073249B (zh) | 数据传输方法、集群交换机系统及相关设备 | |
CN112929418B (zh) | 一种基于发布订阅的RapidIO高速通信方法及系统 | |
CN114423128A (zh) | 灯组控制方法、系统及相关设备 | |
CN110661873B (zh) | 物联网平台参数转换方法、装置、设备、介质及系统 | |
WO2021046935A1 (zh) | 管理数据同步方法、装置、存储设备及可读存储介质 | |
CN102497458B (zh) | 一种网元ip地址的分配方法 | |
WO2021102694A1 (zh) | BLE Mesh设备的访问方法、装置、设备及存储介质 | |
US20130077530A1 (en) | Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation | |
CN111856952B (zh) | 智能家居组合控制方法、装置、设备及介质 | |
CN109413641B (zh) | 基于mesh的网络系统、通信方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |