Modbus通信协议

Modbus 是什么

一种串行通信协议,是Modicon公司(现在的施耐德电气)于1979年发表,用于PLC之间的通信,已成为工业领域通信协议事实上的业界标准,并且是现在工业电子设备之间常用的连接方式。

应用场景

广泛应用于PLC、传感器、继电器等设备之间的通信。

协议版本

Modbus是一种应用于总线网络的通信协议,支持单个Master,多个Slave,最多支持247个从机设备。Modbus属于应用层协议,链路层可以使用串口、以太网、蓝牙等各种通信技术。

Modbus TCP

使用以太网,接口用RJ45以太网口。

Modbus RTU

二进制传输,常用于RS232或者RS485/422串口通信。RTU 即 Remote Terminal Unit,远程终端单元。

Modbus ASCII

明文传输,常用于RS232或者RS485/422串口通信。

Modbus RTU over TCP

将 Modbus RTU 帧封装在 TCP/IP 报文中进行通信。

Modbus UDP

将 Modbus RTU 帧封装在 UDP/IP 报文中进行通信。常用于对速度要求较高的场景,如实时控制应用。

网络体系结构

Modbus 协议相关概念

Modbus 设备

Modbus设备或机器是使用Modbus协议进行通信的真实的物理设备。这些设备的范围广泛,包括从温度传感器到电机控制器的各种设备,并且可以分布在工厂车间或偏远油田等各种地方。

Modbus 主设备(Master)

主设备是发起Modbus事务的设备。它向Modbus从设备发送请求并等待响应。主设备具有于多个从设备通信的能力,并且可以向每个从设备请求不同类型的数据。

Modbus 从设备(Slave)

从设备是等待Modbus主动请求的设备。一旦收到请求,从设备将处理该请求并将响应发送回主设备。从设备不主动发起通信,它仅响应来自主设备的请求。

数据模型和寄存器

Modbus 数据模型基于一系列寄存器,这些寄存器是设备中存储数据的内存位置,它们代表设备内的存储区域。这些寄存器分为两种类型:

保持寄存器:可由Modbus主设备进行读取和写入操作。

输入寄存器:仅供主设备进行读取操作。

数据类型
类型 大小 访问类型
离散输入 1 bit 只读
线圈 1 bit 读写
输入寄存器 16 bits / 2 bytes 只读
保持寄存器 16 bits / 2 bytes 读写
常见功能码
功能 编码(十六进制)
读离散输入 02
读线圈 01
写单个线圈 05
写多个线圈 0F
读输入寄存器 04
读多个寄存器 03
写单个寄存器 06
写多个寄存器 10
Modbus 消息帧

Modbus 帧是Modbus 消息的结构。它由起始帧、功能吗、数据和结束帧组成。

Modbus ASCII 协议的帧结构:

开始 地址 功能 数据 LRC 结束
: 2个字符 2个字符 N个字符 2个字符 CRLF

Modbus RTU 协议的帧结构:

地址码 功能码 数据码 CRC校验码
1字节 1字节 N字节(0 ~ 252字节) 2字节(CRC低 | CRC高)

Modbus RTU帧最大256字节。

地址码是每个通讯信息帧的第一个字节,一般支持1到247,部分设备也支持0地址,用于接收主机的广播数据,每个从机在总线上地址必须唯一,只有与主机发送的地址码相符的从机才能响应返回数据。

Modbus 模拟器

https://www.modbustools.com/download.html

posted @ 2024-10-20 18:02  烟酒忆长安  阅读(59)  评论(0编辑  收藏  举报