modbus协议介绍
首先我们先初步了解什么是Modbus协议
Modbus是一种通信协议,用于在工业自动化领域中设备之间进行通信。
它最初由Modicon(现在是施耐德电气的一部分)于1979年开发,并成为了工业自动化领域的标准通信协议之一。
1、Modbus协议运用的如此广泛呢?
·简单易用:Modbus协议相对简单,易于理解和实施。它的指令格式和功能码定义清晰,使得设备之间的通信设置和编程相对容易。
·可靠性:Modbus协议在工业环境中经过长期的应用和验证,具有良好的稳定性和可靠性。它能够在噪声、干扰和恶劣的工业环境下正常运行,并确保数据的准确传输。
·灵活性:Modbus协议可以通过不同的物理层传输介质进行通信,包括串行线缆和以太网,例如RS232、RS485、光纤、红外、无线等,这使得它适用于各种不同类型的设备和网络结构。此外,Modbus还支持多种功能码,提供了对设备内部数据的灵活访问和控制能力。
· 易于集成:Modbus协议被广泛支持和应用于各种工业设备和系统中。许多设备厂商提供了其通信接口,使得不同厂家的设备可以方便地集成和互联。
·成本效益:作为标准开发协议,Modbus协议公开且没有版权要求,与其他复杂的通信协议相比,其成本相对较低。
综上所述,Modbus协议的简单性、可靠性、灵活性、易于集成和成本效益使其成为工业自动化领域中常用的通信协议之一。它为设备之间的数据传输和控制提供了可靠的解决方案,并促进了工业自动化系统的互联互通。
2、modbus通信
Modbus协议采用了主从结构,其中一个设备充当主机(通常是监视和控制设备),而其他设备充当从设备(通常是传感器、执行器或其他控制设备),即一主多从。
主机通过Modbus协议与从设备进行双向通信,实现数据的读取和控制。但是只有主机可以进行发送请求,从设备智能通过接收主机发来的数据进行响应,如果主机没有发送数据,总线上就没有数据进行通信。
Modbus 协议可以通过 2 种通讯模式交换信息:
o单播模式
o广播模式
在单播模式中,主设备通过专门的地址访问从设备。从设备处理请求, 然后向主设备发送应答。
1 请求
2 处理
3 应答
广播模式下,主设备还可以使用地址 0 访问所有从设备,在这种模式下,从设备不对广播消息作出应答。
3、modbus地址以及功能码
Modbus协议中,主机通过发送特定的命令(称为功能码)来读取或写入从设备的数据寄存器、线圈寄存器等。功能码定义了不同类型的操作,例如读取数据、写入数据、读取状态等。
Modbus 的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。
· 线圈:相当于开关,在 Modbus 中可读可写,数据只有 00 和 01。
· 离散量:输入位,开关量,在 Modbus 中只读。
· 输入寄存器:只能从模拟量输入端改变的寄存器,在 Modbus 中只读。
· 保持寄存器:用于输出模拟量信号的寄存器,在 Modbus 中可读可写。
根据对象的不同,Modbus 的功能码有:
· 0x01:读线圈
· 0x05:写单个线圈
· 0x0F:写多个线圈
· 0x02:读离散量输入
· 0x04:读输入寄存器
· 0x03:读保持寄存器
· 0x06:写单个保持寄存器
0x10:写多个保持寄存器
4、modbus协议
除了传统的Modbus协议,Modbus ASCII、Modbus TCP和Modbus RTU是Modbus通信协议的不同变种,它们之间有以下区别。Modbus TCP使用以太网作为物理层传输介质,而Modbus RTU则使用串行线缆。这些变种扩展了Modbus的应用范围,并使其适用于不同的网络结构和设备类型
Modbus RTU(Remote Terminal Unit):
串行通信:Modbus RTU是一种基于串行通信的Modbus变种,常用于串行接口(如RS485)。
编码格式:Modbus RTU使用二进制编码表示数据,以字节为单位进行传输,速率较快,占用较少的带宽。
帧结构:每个数据帧包括从站地址、功能码、数据、校验和,不包括起始字符和终止字符,因此帧的长度较短,传输效率较高。
可靠性:Modbus RTU在串行通信中具有较好的噪声抑制能力和可靠性,适用于在工业环境中长距离传输数据。
Modbus ASCII(American Standard Code for Information Interchange):
编码格式:Modbus ASCII使用ASCII字符表示数据,每个字节由两个十六进制字符表示。因此,数据传输速率较慢,占用更多的带宽。
帧结构:每个数据帧包括起始字符、从站地址、功能码、数据、校验和和终止字符(回车和换行符)。帧的长度较长,增加了传输时间和带宽消耗。
可靠性:Modbus ASCII对于噪声和干扰更敏感,较Modbus RTU和Modbus TCP更容易受到通信错误的影响。
应用场景:由于传输速率较慢且对可靠性要求不高,Modbus ASCII通常用于较简单的串行通信环境,例如较短距离的单点对点通信。
Modbus TCP:
网络通信:Modbus TCP是基于TCP/IP协议的Modbus变种,使用以太网作为物理层传输介质,通过网络进行通信。
编码格式:Modbus TCP使用二进制编码表示数据,以字节为单位进行传输,速率较快,占用较少的带宽。
帧结构:Modbus TCP使用标准的TCP/IP帧结构,数据被封装在TCP报文中,可以通过以太网路由器进行转发。
可靠性:由于使用TCP/IP协议,Modbus TCP具有良好的可靠性和容错性。它可以利用TCP的确认和重传机制来确保数据的可靠传输。
应用场景:Modbus TCP通常用于工业自动化和远程监控系统,可以实现在局域网或广域网上的设备之间进行高速、可靠的通信。
5、Rs485 rs232
Modbus协议可以通过不同的物理层传输介质进行通信,包括串行线缆(如RS-232、RS-485)和以太网。这使得Modbus适用于各种不同的工业环境和设备。
那么,什么是RS485 RS232呢?
首先,他们都是一种电平标准
RS232: RS232(也称为EIA-232)标准最早出现在20世纪60年代,用于建立计算机和外部设备之间的串行通信连接。当时的计算机系统需要与打印机、终端设备、调制解调器等外部设备进行数据交换。RS232定义了串行数据传输的电气特性、信号极性和通信协议,为计算机和外部设备之间的通信提供了标准化的接口。
RS485: RS485标准的出现较晚一些,可追溯到20世纪70年代。当时,工业自动化和通信系统的发展需要更长距离的数据传输和多设备之间的通信。RS485作为RS232的扩展标准,提供了更高的传输距离、多点通信和更好的噪声抑制能力。它在工业自动化领域得到广泛应用,连接了传感器、执行器、PLC(可编程逻辑控制器)和其他控制设备。
那么,他们之间有什么区别和优缺点呢?
RS232: RS232是一种点对点通信标准,通常用于较短距离和较低速率的数据传输。它使用单个信号线传输数据的正负极性,并且通常以一个主机设备连接一个从设备的方式进行通信。
主要特点:
· 点对点通信:RS232通信是点对点的,每个连接只能有一个主机和一个从设备。
· 短距离传输:RS232适用于较短的通信距离,通常在几十米范围内。
· 低速率传输:相对于RS485,RS232的数据传输速率较低。
· 单端信号:使用单个信号线传输数据的正负极性。
RS485: RS485是一种多点通信标准,适用于在长距离和噪声环境下进行数据传输。它使用差分信号传输,其中两个信号线(A线和B线)传输数据的正负极性。RS485支持多个设备共享同一通信线路,这些设备可以作为多个从设备连接到单个主机。
主要特点:
· 多点通信:多个设备可以在同一通信线路上进行通信。
· 长距离传输:RS485支持较长的通信距离,可以达到数千米。
· 噪声抑制:RS485采用差分信号传输,具有较好的噪声抑制能力。
· 差分信号:使用两个信号线(A线和B线)传输数据的正负极性。
6、Mthings工具
最后我们来介绍一款比较实用的modbus代理工具,叫做Mthings。
具体使用方法可以网上搜索参考,这里讲一下大体的使用方法。
1)准备两台windows,都安装上mthings;
2)一台配置为主机,一台配置为从机;
3)大体配置过程如下,注:一台配置为客主(客户端主机),一台配置为服从(服务端从机)
4)模拟服务端:点击数据,添加一些自己想要的数值,
模拟客户端:点击自定义,添加一些想要发送的报文(想要读取的区块数据)
其中04代表功能码读取输入寄存器,0001代表从地址1开始读取,0002表示读两个
打开右上角报文,点击发送,可以看到报文数据和配置的一样
附上安装包
有兴趣的伙伴可以下载下来尝试下
https://wwp.lanzouy.com/mthings
首先我们先初步了解什么是Modbus协议
Modbus是一种通信协议,用于在工业自动化领域中设备之间进行通信。
它最初由Modicon(现在是施耐德电气的一部分)于1979年开发,并成为了工业自动化领域的标准通信协议之一。
1、Modbus协议运用的如此广泛呢?
·简单易用:Modbus协议相对简单,易于理解和实施。它的指令格式和功能码定义清晰,使得设备之间的通信设置和编程相对容易。
·可靠性:Modbus协议在工业环境中经过长期的应用和验证,具有良好的稳定性和可靠性。它能够在噪声、干扰和恶劣的工业环境下正常运行,并确保数据的准确传输。
·灵活性:Modbus协议可以通过不同的物理层传输介质进行通信,包括串行线缆和以太网,例如RS232、RS485、光纤、红外、无线等,这使得它适用于各种不同类型的设备和网络结构。此外,Modbus还支持多种功能码,提供了对设备内部数据的灵活访问和控制能力。
· 易于集成:Modbus协议被广泛支持和应用于各种工业设备和系统中。许多设备厂商提供了其通信接口,使得不同厂家的设备可以方便地集成和互联。
·成本效益:作为标准开发协议,Modbus协议公开且没有版权要求,与其他复杂的通信协议相比,其成本相对较低。
综上所述,Modbus协议的简单性、可靠性、灵活性、易于集成和成本效益使其成为工业自动化领域中常用的通信协议之一。它为设备之间的数据传输和控制提供了可靠的解决方案,并促进了工业自动化系统的互联互通。
2、modbus通信
Modbus协议采用了主从结构,其中一个设备充当主机(通常是监视和控制设备),而其他设备充当从设备(通常是传感器、执行器或其他控制设备),即一主多从。
主机通过Modbus协议与从设备进行双向通信,实现数据的读取和控制。但是只有主机可以进行发送请求,从设备智能通过接收主机发来的数据进行响应,如果主机没有发送数据,总线上就没有数据进行通信。
Modbus 协议可以通过 2 种通讯模式交换信息:
o单播模式
o广播模式
在单播模式中,主设备通过专门的地址访问从设备。从设备处理请求, 然后向主设备发送应答。
1 请求
2 处理
3 应答
广播模式下,主设备还可以使用地址 0 访问所有从设备,在这种模式下,从设备不对广播消息作出应答。
3、modbus地址以及功能码
Modbus协议中,主机通过发送特定的命令(称为功能码)来读取或写入从设备的数据寄存器、线圈寄存器等。功能码定义了不同类型的操作,例如读取数据、写入数据、读取状态等。
Modbus 的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。
· 线圈:相当于开关,在 Modbus 中可读可写,数据只有 00 和 01。
· 离散量:输入位,开关量,在 Modbus 中只读。
· 输入寄存器:只能从模拟量输入端改变的寄存器,在 Modbus 中只读。
· 保持寄存器:用于输出模拟量信号的寄存器,在 Modbus 中可读可写。
根据对象的不同,Modbus 的功能码有:
· 0x01:读线圈
· 0x05:写单个线圈
· 0x0F:写多个线圈
· 0x02:读离散量输入
· 0x04:读输入寄存器
· 0x03:读保持寄存器
· 0x06:写单个保持寄存器
0x10:写多个保持寄存器
4、modbus协议
除了传统的Modbus协议,Modbus ASCII、Modbus TCP和Modbus RTU是Modbus通信协议的不同变种,它们之间有以下区别。Modbus TCP使用以太网作为物理层传输介质,而Modbus RTU则使用串行线缆。这些变种扩展了Modbus的应用范围,并使其适用于不同的网络结构和设备类型
Modbus RTU(Remote Terminal Unit):
串行通信:Modbus RTU是一种基于串行通信的Modbus变种,常用于串行接口(如RS485)。
编码格式:Modbus RTU使用二进制编码表示数据,以字节为单位进行传输,速率较快,占用较少的带宽。
帧结构:每个数据帧包括从站地址、功能码、数据、校验和,不包括起始字符和终止字符,因此帧的长度较短,传输效率较高。
可靠性:Modbus RTU在串行通信中具有较好的噪声抑制能力和可靠性,适用于在工业环境中长距离传输数据。
Modbus ASCII(American Standard Code for Information Interchange):
编码格式:Modbus ASCII使用ASCII字符表示数据,每个字节由两个十六进制字符表示。因此,数据传输速率较慢,占用更多的带宽。
帧结构:每个数据帧包括起始字符、从站地址、功能码、数据、校验和和终止字符(回车和换行符)。帧的长度较长,增加了传输时间和带宽消耗。
可靠性:Modbus ASCII对于噪声和干扰更敏感,较Modbus RTU和Modbus TCP更容易受到通信错误的影响。
应用场景:由于传输速率较慢且对可靠性要求不高,Modbus ASCII通常用于较简单的串行通信环境,例如较短距离的单点对点通信。
Modbus TCP:
网络通信:Modbus TCP是基于TCP/IP协议的Modbus变种,使用以太网作为物理层传输介质,通过网络进行通信。
编码格式:Modbus TCP使用二进制编码表示数据,以字节为单位进行传输,速率较快,占用较少的带宽。
帧结构:Modbus TCP使用标准的TCP/IP帧结构,数据被封装在TCP报文中,可以通过以太网路由器进行转发。
可靠性:由于使用TCP/IP协议,Modbus TCP具有良好的可靠性和容错性。它可以利用TCP的确认和重传机制来确保数据的可靠传输。
应用场景:Modbus TCP通常用于工业自动化和远程监控系统,可以实现在局域网或广域网上的设备之间进行高速、可靠的通信。
5、Rs485 rs232
Modbus协议可以通过不同的物理层传输介质进行通信,包括串行线缆(如RS-232、RS-485)和以太网。这使得Modbus适用于各种不同的工业环境和设备。
那么,什么是RS485 RS232呢?
首先,他们都是一种电平标准
RS232: RS232(也称为EIA-232)标准最早出现在20世纪60年代,用于建立计算机和外部设备之间的串行通信连接。当时的计算机系统需要与打印机、终端设备、调制解调器等外部设备进行数据交换。RS232定义了串行数据传输的电气特性、信号极性和通信协议,为计算机和外部设备之间的通信提供了标准化的接口。
RS485: RS485标准的出现较晚一些,可追溯到20世纪70年代。当时,工业自动化和通信系统的发展需要更长距离的数据传输和多设备之间的通信。RS485作为RS232的扩展标准,提供了更高的传输距离、多点通信和更好的噪声抑制能力。它在工业自动化领域得到广泛应用,连接了传感器、执行器、PLC(可编程逻辑控制器)和其他控制设备。
那么,他们之间有什么区别和优缺点呢?
RS232: RS232是一种点对点通信标准,通常用于较短距离和较低速率的数据传输。它使用单个信号线传输数据的正负极性,并且通常以一个主机设备连接一个从设备的方式进行通信。
主要特点:
· 点对点通信:RS232通信是点对点的,每个连接只能有一个主机和一个从设备。
· 短距离传输:RS232适用于较短的通信距离,通常在几十米范围内。
· 低速率传输:相对于RS485,RS232的数据传输速率较低。
· 单端信号:使用单个信号线传输数据的正负极性。
RS485: RS485是一种多点通信标准,适用于在长距离和噪声环境下进行数据传输。它使用差分信号传输,其中两个信号线(A线和B线)传输数据的正负极性。RS485支持多个设备共享同一通信线路,这些设备可以作为多个从设备连接到单个主机。
主要特点:
· 多点通信:多个设备可以在同一通信线路上进行通信。
· 长距离传输:RS485支持较长的通信距离,可以达到数千米。
· 噪声抑制:RS485采用差分信号传输,具有较好的噪声抑制能力。
· 差分信号:使用两个信号线(A线和B线)传输数据的正负极性。
6、Mthings工具
最后我们来介绍一款比较实用的modbus代理工具,叫做Mthings。
具体使用方法可以网上搜索参考,这里讲一下大体的使用方法。
1)准备两台windows,都安装上mthings;
2)一台配置为主机,一台配置为从机;
3)大体配置过程如下,注:一台配置为客主(客户端主机),一台配置为服从(服务端从机)
4)模拟服务端:点击数据,添加一些自己想要的数值,
模拟客户端:点击自定义,添加一些想要发送的报文(想要读取的区块数据)
其中04代表功能码读取输入寄存器,0001代表从地址1开始读取,0002表示读两个
打开右上角报文,点击发送,可以看到报文数据和配置的一样
附上安装包
有兴趣的伙伴可以下载下来尝试下
https://wwp.lanzouy.com/mthings