Exception code
| Extended exception code
| Extended exception name
| Notes
|
Not applicable
| 0
| No error
| The last function completed successfully.
|
1
| 1
| Function not defined
| The function requested is not defined in this standard and is not recognised as a manufacturer specific function, no actions were taken
|
1
| 2
| Function not implemented
| The function is defined in this standard but not implemented on this slave device, no actions were taken. This will currently never be returned as both functions 3 and 16 must be implemented.
|
2
| 3
| Register not defined
| The register specified is not defined in this standard and is not recognised as a manufacturer specific register, no actions were taken
|
2
| 4
| Register not implemented
| The register specified is defined in this standard but not implemented on this slave device, no actions were taken. This will never be returned by function 3 as all defined registers must return an ‘unimplemented’ value, see the description of function 3 below. It may be returned by function 16 if a defined register is not implemented.
|
2
| 5
| Read from a write only register
| An attempt was made to read a write only register, no actions were taken..
|
2
| 6
| Write to a read only register
| An attempt was made to write to a read only register, the register was not changed and no actions were taken. If this occurred due to insufficient privilege then the ‘insufficient privilege’ exception will be returned instead
|
2
| 7
| Illegal value written to register
| An attempt was made to write a value that is not within the allowable range, the register was not changed and no actions were taken
|
1
| 8
| Inappropriate circumstances
| An operation was requested that is not appropriate in the present circumstances, for example a start attempt when a shutdown alarm is present.
|
1
| 9
| Insufficient privilege
| An operation was attempted without sufficient privilege, such as writing when the read only password has been entered.
|
6
| 10
| Slave device too busy
| The slave device was too busy to perform the operation, try it again later if it is still required. Note that it may not be possible to read the extended exception code in this situation.
|
1
| 11
| Unsupported language
| The selected language is not supported, the language has not been changed.
|
1
| 12
| Reserved register
| The specified register is defined as reserved in this standard
|
2
| 13
| Block violation
| The specified range of registers in invalid, no actions were taken. An attempt to read part of a state string would cause this error for example.
|
| 14-255
| Reserved
| Reserved for future use in this standard
|
1
| 256
| No satellite socket
| Returned by a hub only. The specified satellite state is ‘No socket’.
|
1
| 257
| Satellite disabled
| Returned by a hub only. The specified satellite state is ‘Disabled’.
|
1
| 258
| Satellite error
| Returned by a hub only. The specified satellite state is ‘Error’.
|
| 259-32767
| Reserved
| Reserved for future use in this standard
|
1/2
| 32767-65535
| Manufacturer specific error
| An error occurred in a manufacturer specific operation either using register pages 128-255 or functions other than 3 and 16. The meaning of these exception codes is manufacturer specific, any software not knowing the meaning for a particular slave must print the message ‘Manufacturer specific error n’ where n is the exception code.
|
This standard only uses Modbus functions 3 and 16 as recommended in the Open Modbus/TCP Specification draft 2.
1. Any other functions may be implemented if required, for example for configuration of the slave device, but are not defined in this standard.
2. Any device which requires other functions to be implemented in order to perform a task which can be performed by function 3 or 16 is deemed to be non-compliant with this standard.