Modbus

← 返回 MOC | ← 主页

一句话一种 应用层的报文传输的 协议,只是协议


1969年PLC出现,为了通信,莫迪康Modicon公司创建了Modbus协议


Modbus RTU

采用二进制格式,适用于串行通讯(如RS-485),效率高,是工业现场的主流选择,

依靠时间间隔---3.5个字符时间,来区分一帧数据的开始和结束

CRC循环冗余校验(含程序),发送方和接收方约定一个“除数”。对于 Modbus RTU 来说,这个除数是固定值 0x8005

字段名称从站地址功能码起始地址数量CRC 校验(FCS)
对应值 (Hex)010300 0000 0184 0A

1774255954577

主机发送报文格式如下:

1774255989494

从机回复报文格式如下:

1774256037634

Modbus ASCII :

使用ASCII字符,便于调试,但数据冗余较多,数据接收的时候先转换成ASCII然后再判断

1774256075248

有起始和结束字符,可以打断接收,对同步时序要求较松

LRC:前面相加取低八位再转补码

字段名称起始符从站地址功能码起始地址数量LRC 校验结束符
对应字符 (ASCII):0 10 30 0 0 00 0 0 1F BCR LF
对应值,物理层 (Hex)3A30 3130 3330 30 30 3030 30 30 3146 420D 0A

Modbus TCP (以太网格式)

TCP 版本去掉了从站地址(由 IP 地址和 Unit ID 代替)和校验位(由 TCP 协议自身的校验和保证),并在前面增加了一个 MBAP 报文头(事务标识+协议标识+长度+单标识)

字段名称事务标识协议标识长度单元标识功能码起始地址数量
对应值 (Hex)00 0100 0000 06010300 0000 01

1774256149456


一主多从