文章目录
- 一、Modbus中的功能码
- 二、公共功能码详解
-
-
- **功能码的作用**
- **常见的 Modbus 功能码**
- **功能码详细描述**
-
- 1. **0x01 读取离散输出状态(Read Coils)**
- 2. **0x02 读取输入状态(Read Discrete Inputs)**
- 3. **0x03 读取保持寄存器(Read Holding Registers)**
- 4. **0x04 读取输入寄存器(Read Input Registers)**
- 5. **0x05 写单个离散输出(Write Single Coil)**
- 6. **0x06 写单个保持寄存器(Write Single Register)**
- 7. **0x08 跳过子网(Diagnostics)**
- 8. **0x10 写多个保持寄存器(Write Multiple Registers)**
- 9. **0x0F 写多个离散输出(Write Multiple Coils)**
- 10. **0x11 读取设备标识(Read Device Identification)**
- **异常功能码**
- **异常响应码**
- **总结**
-
- 三、常见功能码完整报文和响应报文
一、Modbus中的功能码
在 Modbus 协议中,功能码用于定义 Modbus 请求和响应中要执行的操作。不同的功能码代表了不同类型的操作,比如读取、写入数据等。Modbus 定义了一些公共功能码、用户自定义功能码和保留功能码。
1. 公共功能码(Standard Function Codes)
公共功能码是 Modbus 协议标准中定义的功能码,通常被广泛使用。它们涵盖了数据读取、写入、诊断等常见操作。常见的公共功能码如下:
- 0x01 — 读取线圈状态 (Read Coils):读取一个或多个线圈(单个位)的状态。
- 0x02 — 读取离散输入状态 (Read Discrete Inputs):读取一个或多个离散输入的状态。
- 0x03 — 读取保持寄存器 (Read Holding Registers):读取一个或多个保持寄存器的值。
- 0x04 — 读取输入寄存器 (Read Input Registers):读取一个或多个输入寄