10. easyE4 communication Connection to other devices
10.17 Modbus TCP
3. The number of bytes is analyzed
4. The marker words are written to the target registers
If the values are written successfully, a response is sent.
This response will contain the function code, the starting address, and the number of
registers from the request
(→ Section "Write Multiple Registers 0x10:", page 795 Request PDU)
Function Code
1 byte
0x10 ;Write Multiple Registers
Start address
2 byte
Same value as in request
Number of
registers
2 byte
Number of registers written to (the value should match
the request)
Tab. 145: Response-PDU
10.17.2.2 Modbus TCP error handling
Read Coils 0x01:
In the event of an error, Modbus TCP will send an error frame.
Fault Code
1 byte
0x81 ; Read Coils
Exception Code
1 byte
02 or 03 or 04
Exception Code 02 = Invalid address, i.e.:
l
0 (the user keeps specifying addresses as one-based addresses)
l
Undefined* (please refer to the "Modbus TCP map" table) or
l
Un-enabled*
Exception Code 03 = The number of outputs is not >= 0x0001 and <= 0x07D0
Exception Code 04 = (Error in server) n.a.**
*For an error message, it is sufficient if only one of the requested addresses is not
unlocked or is invalid.
**Data in the image table is protected from other modules by semaphores; as of this
writing, no known criterion for a "read coil" error in the server.
Read Discrete Inputs 0x02:
In the event of an error, Modbus TCP will send an error frame.
Fault Code
1 byte
0x82 ; Read Discrete Input
Exception Code
1 byte
02 or 03 or 04
Exception Code 02 = Starting address is invalid, i.e.:
l
0 (the user keeps specifying addresses as one-based addresses)
l
Undefined* (please refer to the "Modbus TCP map" table) or
l
Un-enabled*
Exception Code 03 = The number of inputs is not >= 0x0001 and <= 0x07D0
796
easyE402/24 MN050009ENEaton.com