Modbus协议基础知识

欢迎交流学习上位机和工业软件相关的QQ群聊: 1009652195
1.Modbus调试软件

1.1 Modbus Poll -> Modbus主站或Modbus客户端
1.2 Modbus Slave -> Modbus从站或Modbus服务器
1.3 VSPD -> Virtual Serial Port Driver -> 创建虚拟一对串口

2.Modbus协议存储区说明

2.1 为什么要有存储区?
①站在协议制定者的角度思考
②协议的目的是为了数据传输
③数据传输无非就是读取和写入
④存储区类别分为布尔(线圈)和数据(寄存器)

2.2 Modbus存储区有哪些?
①只读->线圈->输入线圈
②读写->线圈->输出线圈
③只读->寄存器->输入寄存器
④读写->寄存器->输出寄存器

2.3 Modbus存储区代号
①输入线圈->1区
②输出线圈->0区
③输入寄存器->3区
④输出寄存器->4区

2.4 Modbus存储区范围
①Modbus规定,每个存储区的最大范围65536
②PLC地址:绝对地址 = 区号 + 相对地址
③Modbus地址:绝对地址 = 区号 + (相对地址 + 1)
④输出寄存器的第一个绝对地址就是40001
⑤地址模型
长地址模型
image

短地址模型
image

如果我们使用不了那么多的数据,可以使用短地址模型,否则,我们就使用长地址模型
⑥相对地址和绝对地址
我们一般在人为交流或说明文档,使用绝对地址
一般在协议报文,都会使用相对地址
因为在协议报文中,我们可以透过功能码知道是哪个存储区

3.Modbus协议功能码说明

3.1 为什么会有功能码?
①协议的目的是为了数据传输
②已经确定好存储区,存储区会存储不同数据类型
③那么必须会产生很多种不同的行为
④我们给每种行为指定一个代号,那么这个代号就是功能码
⑤功能码其实就是行为的代号

3.2 Modbus通信会有哪些行为?
①读取输出线圈
②读取输入线圈
③读取输出寄存器
④读取输入寄存器
⑤写入输出线圈
⑥写入输出寄存器

3.3 Modbus常用功能码有哪些?
①0X01->读取输出线圈
②0X02->读取输入线圈
③0X03->读取输出寄存器
④0X04->读取输入寄存器
⑤0X05->写入单个线圈
⑥0X06->写入单个寄存器
⑦0X0F->写入多个线圈
⑥0X10->写入多个寄存器

3.4 Modbus还会有一些其他的功能码,比如异常,自定义

4.Modbus协议分类以及测试

4.1 报文帧
①ModbusRTU
②ModbusASCII
③ModbusTCP

4.2 通信介质
①串口通信->232/485/422
②以太网通信->TCP/IP或UDP/IP

4.3 协议分类
image
①ModbusRTU协议
②ModbusASCII协议
③ModbusRTUOverTCP协议
④ModbusRTUOverUDP协议
⑤ModbusASCIIOverTCP协议
⑥ModbusASCIIOverUDP协议
⑦ModbusTCP协议
⑧ModbusUDP协议

posted @ 2025-07-02 20:47  一切为了尚媛小姐  阅读(107)  评论(0)    收藏  举报