Modbus协议及常用工具

Modbus协议是一种常用于工业自动化和物联网领域的通信协议,以下是对Modbus协议的详细介绍。

已经更新系列文章包括104、61850、单片机等,欢迎关注+星标,后续好文章持续更新。

Modbus poll  slave工具下载: https://pan.baidu.com/s/1Q19HJEgSTcepPhIvc0E93Q 提取码: qi2e

一、概述

Modbus协议最初由Modicon公司(现为施耐德电气公司的一部分)于1979年开发,旨在实现自动化设备之间的通信。它已经成为工业领域通信协议的业界标准,并广泛应用于工业电子设备之间的连接。

  

二、主要特点

  1. 简单易懂

    :Modbus协议采用了简单的通信格式,易于理解和实现。

  2. 灵活性

    :Modbus协议支持多种物理层和传输介质,包括串口(如RS232、RS485和RS422)和以太网等,可以适应不同的通信需求。

  3. 易于扩展

    :Modbus协议支持主从结构和多点通信,可以轻松地扩展到多个设备。

  4. 开放性

    :Modbus协议是一个开放的协议,各种厂商都可以使用和实现,促进了其在工业自动化领域的广泛应用。

  5. 可靠性

    :Modbus协议具有良好的容错性和可靠性,适用于工业环境中的数据通信和控制。

三、工作原理

Modbus协议采用主从通讯技术,即由主设备主动查询和操作从设备。主设备(如工控机和工业控制器等)负责发起每次交互,从设备(如PLC可编程控制器、传感器等)则接收主机发送的数据来进行响应。通信过程中,主设备发送请求,从设备应答,主设备不发送时,总线上没有数据通信。从设备不会自己发送消息给主设备,只能回复主设备发送的消息请求。

四、协议分类

Modbus协议存在多种版本和变种,以适应不同的通信需求和传输介质。其中最常见的有:

  1. Modbus ASCII

    :当设备设置为使用ASCII模式在Modbus串行线上进行通信时,消息中的每个8位字节将作为两个ASCII 4位字符发送。此模式的效率不如Modbus RTU,因为每个字节需要两个字符。

  2. Modbus RTU

    :是一种紧凑的二进制表示数据的方式,因为使用二进制编码和CRC错误检查的结合,使得Modbus RTU适用于工业应用,比ASCII字符的替代方案更有效地传输。

  3. Modbus TCP

    :是在TCP/IP网络上运行的Modbus的实现,旨在允许Modbus ASCII/RTU协议在基于TCP/IP的网络上传输。它将Modbus消息嵌入TCP/IP帧内,实现了Modbus协议在以太网上的传输。

五、Modbus RTU帧结构

Modbus RTU(Remote Terminal Unit)是Modbus通信协议的一种变种,用于串行通信。它是一种常见的工业控制系统通信协议,通常用于采集传感器数据、控制执行器和监控设备状态。

报文结构

地址:取值范围是0-247,如果是0,就是主站广播报文;如果是1-247,则有可能是主站请求或者从站应答。

功能码:也就是报文命令,代表主站对从站的操作,读或者写

数据:数据字段,主请求报文,从应答报文会有所差异。也就是说假设抓取总线报文,如何区分是主站请求还是从站应答,则需要通过数据字段进行区分了。

CRC校验:采用CRC16,16位循环冗余校验。

Modbus RTU 帧总长度最大为 256 字节(即数据部分最多252字节)。

六、Modbus TCP帧结构

ModbusTCP的数据帧可分为两部分:MBAP+PDU,如下图所示。

MBAP(报文头)

 (1)事务标识符:可以解释为报文的序列号,客户端发送数据,每发送一次数据标识符就加一。服务器接收时会把这个数据原封返回。

 (2)协议表示:00 00代表TCP协议。 (3)长度:表示从单元标识符开始后面数据的长度。如:00 06表示后面有0X06个字节长度的数据。 (4)单元标识符:相当于设备的地址。一般为01。

PDU(帧结构)

PDU=功能码+数据。

功能码:

(1)modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。线圈:相当于开关,在MODBUS中可读可写,数据只有00和01。离散量:输入位,开关量,在MODBUS中只读。输入寄存器:只能从模拟量输入端改变的寄存器,在MODBUS中只读。保持寄存器:用于输出模拟量信号的寄存器,在MODBUS中可读可写。

(2)根据对象的不同,modbus的功能码有:

0x01:读线圈

0x05:写单个线圈

0x0F:写多个线圈

0x02:读离散量输入

0x04:读输入寄存器

0x03:读保持寄存器

0x06:写单个保持寄存器

0x10:写多个保持寄存器

六、Modbus常用工具

最常用、功能最强大的工具莫如 Modbus Poll、Modbus slave, Modbus Poll 可模拟rtu和tcp两种模式下的主机,Modbus slave可模拟rtu和tcp两种模式下的从机。是了解协议和开发协议的好助手。

Modbus Poll 如下

Modbus slave如下

工具下载: https://pan.baidu.com/s/1Q19HJEgSTcepPhIvc0E93Q 提取码: qi2e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keven-wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值