Modbus Function Code 6
Write Single Holding Register on Modbus
This function code is used to write a single holding register in a remote device. The Request PDU specifies the address of the register to be written. Registers are addressed starting at zero. Therefore register numbered 1 is addressed as 0.
Request
Function code | 1 Byte | 0x06 |
Register Address | 2 Bytes | 0x0000 to 0xFFFF |
Register Value | 2 Bytes | 0x0000 to 0xFFFF |
Response
The normal response is an echo of the request, returned after the register contents have been written.
Function code | 1 Byte | 0x06 |
Register Address | 2 Bytes | 0x0000 to 0xFFFF |
Register Value | 2 Bytes | 0x0000 to 0xFFFF |
Error
Error code | 1 Byte | 0x86 |
Exception code | 1 Byte | 01 or 02 or 03 or 04 |
Example
Request
This command is writing the contents of analog output holding register # 40005 to the slave device with address 11. Each holding register can store 16 bits.
0B 06 0004 ABCD 7604 |
- 0B: The Slave Address (0B hex = address 11)
- 06: The Function Code 6 (Write Single Holding Register)
- 0004: The Data Address of the register (0004 hex = 4, + 40001 offset = register #40005).
- ABCD: The value to write.
- 7604: The CRC (Cyclic Redundancy Check) for error checking.
Response
The normal response is an echo of the query, returned after the register contents have been written.
0B 06 0004 ABCD 7604 |
- 0B: The Slave Address (0B hex = address 11)
- 06: The Function Code 6 (Write Single Holding Register)
- 0004: The Data Address of the register (0004 hex = 4, + 40001 offset = register #40005).
- ABCD: The value written.
- 7604: The CRC (Cyclic Redundancy Check) for error checking.
Workflow Diagram for Modbus FC 6
Contents retrieved from
- http://modbus.org/
- http://www.simplymodbus.ca/
More information
- Modbus-Funktionscodes
- Modbus-Funktionscode 1 - Spulen lesen
- Modbus-Funktionscode 2 - diskrete Eingänge lesen
- Modbus-Funktionscode 3 - mehrere Halteregister lesen
- Modbus-Funktionscode 4 - Eingangsregister lesen
- Modbus-Funktionscode 5 - einzelne Spule schreiben
- Modbus-Funktionscode 6 - einzelnes Halteregister schreiben
- Modbus-Funktionscode 15 - mehrere Spulen schreiben
- Modbus-Funktionscode 16 - mehrere Halteregister schreiben
- Modbus-Referenzen
- Modbus-Protokoll-Grundlagen