The LumiBMS Modbus decoder and parser is free to use online and converts raw Modbus RTU and Modbus TCP hexadecimal frames into readable protocol fields. No installation or registration is required.
Paste a Modbus request or response into the tool above to inspect the device address, function code, register address, register count, returned data, CRC status and exception information.
The tool runs directly in your browser and is useful for commissioning, troubleshooting, device testing and Modbus documentation review.
How to use the online Modbus decoder
- Select Modbus RTU or Modbus TCP.
- Paste the hexadecimal request or response into the correct field.
- Select Parse request or Parse response.
- Compare the decoded fields with the device register map and communication settings.
Spaces, commas and 0x prefixes can be used in the hexadecimal input.
Modbus RTU request example
A typical Modbus RTU request could look like this:
01 03 00 10 00 02 C5 CD
The frame contains:
| Field | Value |
|---|---|
| Device address | 01 |
| Function code | 03 |
| Starting register | 0010 |
| Register count | 0002 |
| CRC | C5 CD |
Function code 03 means Read Holding Registers.
The request asks Modbus device address 1 to read two holding registers starting from address 0x0010.
What does the Modbus parser decode?
The online Modbus parser helps identify:
- Modbus device or slave address
- Function code
- Starting register address
- Register quantity
- Returned register data
- Modbus exception responses
- Modbus RTU CRC information
- Modbus TCP transaction information
- Request and response frame structure
This makes it easier to compare the actual Modbus traffic with the device documentation or register map.
Modbus RTU vs Modbus TCP
Modbus RTU normally runs over a serial connection such as RS-485. An RTU frame contains the device address, function code, application data and a CRC checksum.
Modbus TCP runs over Ethernet. It uses an MBAP header containing information such as the transaction identifier, protocol identifier, message length and unit identifier.
The Modbus function code and application data remain closely related between RTU and TCP, which makes the decoder useful for troubleshooting both protocol variants.
Common Modbus function codes
Some of the most common Modbus function codes are:
| Function code | Function |
|---|---|
01 | Read Coils |
02 | Read Discrete Inputs |
03 | Read Holding Registers |
04 | Read Input Registers |
05 | Write Single Coil |
06 | Write Single Register |
0F | Write Multiple Coils |
10 | Write Multiple Registers |
If a device returns an exception response, the decoder can help identify the exception code and the original function.
Troubleshooting a Modbus frame
If the Modbus frame looks correct but the device does not respond, check:
- Device address
- Baud rate
- Parity
- Stop bits
- RS-485 A and B wiring
- Function code
- Register address
- Register offset
- CRC
- Device register map
A communication timeout does not always mean the Modbus frame itself is incorrect. The problem can also be caused by wiring, serial communication parameters or an incorrect device address.
Why does my Modbus device give no response?
Common causes include:
- Incorrect Modbus device address
- Different baud rate settings
- Incorrect parity
- Incorrect stop bits
- Reversed RS-485 A and B wires
- Incorrect register address
- Incorrect register offset
- Unsupported function code
- Incorrect CRC
- Device power or wiring problems
Start by checking the physical connection and communication settings. Then decode the actual request and compare it with the device register map.
What does Modbus exception code 02 mean?
Modbus exception code 02 means Illegal Data Address.
The requested register or address range is not available for the selected function code.
This can happen when the register address is incorrect, the register offset is wrong or the request extends outside the valid register range.
Why is my Modbus value wrong even though the device responds?
Successful communication does not guarantee that the returned registers are interpreted correctly.
Check:
- Data type
- Signed or unsigned value
- INT16 or UINT16
- INT32 or UINT32
- FLOAT32
- Byte order
- Word order
- Scaling
- Engineering units
- Register offset
For example, a 32 bit floating point value normally uses two consecutive 16 bit Modbus registers. Swapping the register order can produce a completely different value even though the communication itself is working correctly.
Modbus register addresses and offsets
Modbus documentation can describe the same register in different ways.
For example:
Holding register 40001
may correspond to protocol address:
0
Some software expects 40001, some expects 1 and some expects the actual protocol offset 0.
This difference is one of the most common causes of Modbus integration problems.
Always check whether the documentation and software use:
- 0 based addressing
- 1 based addressing
- 40001 style reference numbers
- Raw protocol offsets
Is this Modbus decoder free?
Yes. The LumiBMS Modbus decoder and parser is free to use online.
No account, installation or registration is required. The tool runs directly in your browser.
Can I decode Modbus RTU online?
Yes. Select Modbus RTU, paste the hexadecimal request or response into the tool and parse the frame.
The decoder can help inspect the device address, function code, register information, data and CRC.
Can I decode Modbus TCP online?
Yes. Select Modbus TCP and paste the hexadecimal Modbus TCP request or response into the parser.
The decoder can inspect the MBAP header together with the Modbus function and application data.