Symptom and Captured Modbus RTU Transaction
An OWEN PCHV3 accepted reads from the configured Holding Register but rejected a write of decimal 123. The request used slave address 1, function 06 (Write Single Register), register field 01 FD, value 00 7B, and CRC 59 E5. The drive returned function 86 with exception 04 SLAVE DEVICE FAILURE, confirming that it received the write request but could not execute it.
| Item | Captured value | Meaning |
|---|---|---|
| Requested parameter | 0-60 |
Main-menu password, Uint16, permitted value range 0–999
|
| Initially configured address | Incorrect for parameter 0-60
|
|
| Written value |
123 / 0x007B
|
Within the documented password range |
| Device response | 04 SLAVE DEVICE FAILURE |
The drive rejected execution of the request |
Root Cause: Incorrect Register Address
The failure was caused by an address error, not by the value or the two-byte data type. The available documentation listed conflicting register information: parameter 0-51 appeared with decimal address 509 and hexadecimal address , while parameter 0-60 appeared with decimal address 599 but the same hexadecimal text. Those decimal values cannot both convert to .
For parameter 0-60, the stated address rule produces the correct register address:
Correcting the Rapid SCADA Command
- Keep the command mapped to the Holding Registers data table and retain the
Uint16/ushortrepresentation. - Replace register address with for parameter
0-60. - Write a password value within
0–999; the proven test value was decimal123. - Do not introduce byte swapping to correct this fault. The successful transaction used the corrected address, establishing address selection as the root cause.
Verification and Address-Display Caution
Verify the correction with a read-write-read sequence at : read the current password, write 123, and read it again. This sequence completed successfully in the reported test.
Account for zero-based versus one-based address displays when interpreting packet analyzers and SCADA editors. In the failed capture, the transmitted register bytes were 01 FD, while the parser displayed register 0x01FE because it counted addresses from one. Compare the raw Modbus address field, the software’s configured offset, and the manufacturer’s decimal address before changing the command.
FAQ
What register address writes the OWEN PCHV3 parameter 0-60?
Use decimal 599, which is hexadecimal , based on 60 × 10 − 1. A read-write-read test at succeeded.
Why does an OWEN PCHV3 return Modbus exception 04 when writing the password?
In this case, function 06 targeted the wrong register at . Correcting the address to eliminated 04 SLAVE DEVICE FAILURE.
The parser displays addresses using one-based numbering, while the raw request contains the zero-based address field . Validate the actual frame bytes before applying an offset in Rapid SCADA.