Modbus与RS485通信协议

本文用于学习记录

工业控制/电力通讯等领域通常采用串口通信。

最初是RS232接口,1979制定了Modbus协议。

RS485

485/232是两种电平标准。属于硬件层协议。
用于决定电压什么标准为0什么标准为1,解决0和1的可靠传输。
RS485有两线制和四线制,四线制只能实现点对点的通信方式,两线制为总线式拓扑结构。

Modbus

Bus即是总线协议。
Modbus是一种用于工业的简单的串行通信协议。属于软件层协议。TCP/IP也属于这一层。

分类

分为Modbus-RTU / Modbus-ASCII / Modbus-TCP,最常用的是Modbus-RTU

通讯过程

主从方式通信,主机发送,从机应答。(传感器就可以是一个从机)
无法同步通信,同一时间总线上只能有一个数据传输。
没有忙机制判断,所以需要通过软件判断是否正常接收。

Modbus存储区

存储的数据类型可以分为布尔量和16位寄存器。
Modbus规定了4个存储区,分别是0 1 3 4区

区号 名称 读写 地址范围
0区 输出线圈 可读可写布尔量 00001-09999
1区 输入线圈 只读布尔量 10001-19999
3区 输入寄存器 只读寄存器 30001-39999
4区 保持寄存器 可读可写寄存器 40001-49999

Modbus-RTU协议

一种十六进制表示数据的方式

帧结构

帧结构=地址+功能码+数据+校验
地址:占用一个字节,有效范围是0-247
功能码:占用一个字节,对应不同功能
数据
校验

功能码

03是查询功能码,06是修改功能码。0x10修改连续多个寄存器功能码。
0x03,主机发送起始地址+寄存器数量,从机回复总字节数+数据。
0x06,主机发送起始地址+数据内容,从机返回相同值说明修改成功。
0x10,主句发送起始地址+寄存器个数+总字节数+数据,从机返回起始地址+寄存器数量。

你可能感兴趣的:(信息与通信)