Modbus RTU Tools

Generate RTU frames, inspect messages, check CRC values and convert register data. Connect a serial device using a desktop browser with Web Serial support.

Choose your RTU task

Open the frame tool for generation, parsing and CRC checks. Use the serial debugger for device communication, or the converter for numeric values and byte order.

RTU Frame Generator

Featured

Build requests for the common read and write functions listed in the tool.

Calculated CRC
Register data types
Frame preview

RTU Frame Parser

Featured

Inspect a complete RTU frame and verify its CRC.

Frame fields
CRC check
Register values

Serial Debugger

Send and receive data through a serial port you authorize in your browser.

Web Serial connection
Received data
Charts

Hex and Decimal Converter

Convert integers and IEEE 754 floats, then compare the byte orders used by your device.

Hex and decimal
IEEE 754 floats
ABCD / DCBA / BADC / CDAB
16-, 32- and 64-bit types
Instant results
Copy values

RTU CRC Check

Calculate or verify CRC-16/MODBUS within the RTU tool.

CRC-16/MODBUS
Hex frame input
Low byte first

What the tools cover

Use frame tools in your browser
Common Modbus read and write functions
Integer and floating-point values
Frame fields and checksum results
Serial access with a compatible desktop browser
Multiple interface languages
Copy generated frames and values
Browser-based calculations

Common tasks

Check device communication

Compare requests and responses for a PLC, drive, meter or sensor.

Examples
  • Verify a read request
  • Check a register value
  • Investigate an exception

Develop a device integration

Check sample frames and data formats against the device specification.

Examples
  • Inspect frame fields
  • Confirm byte order
  • Compare known values

Investigate a problem

Capture and compare exchanges during authorized device testing.

Examples
  • Inspect received messages
  • Watch changing values
  • Export captured results

Start with a frame

Build or inspect a frame without connecting a device. For serial testing, use a compatible desktop browser and authorize the correct port.

RTU and register basics

What is Modbus RTU?

Modbus RTU is a binary serial framing format for Modbus requests and responses. It is commonly used over RS485 or RS232.

Key points

  • Binary message bytes
  • CRC-16/MODBUS error check
  • Device addresses on a serial link
  • Timing and serial settings must match
RTU frame structure

A frame contains the device address, function, data and CRC.

[Device address][Function code][Data][CRC]
  • Device address: 1 byte:
  • Function code: 1 byte:
  • Data: fields defined by the function:
  • CRC: 2 bytes, low byte first:
Common function codes
Read functions
  • 01: Read coils
  • 02: Read discrete inputs
  • 03: Read holding registers
  • 04: Read input registers
Write functions (decimal)
  • 05: Write single coil
  • 06: Write single register
  • 15 (0x0F): Write multiple coils
  • 16 (0x10): Write multiple registers
CRC-16/MODBUS

The CRC checks the frame address, function and data bytes. It detects many transmission errors but does not authenticate a sender or verify that an operation is safe.

Parameters

  • 16-bit error check
  • Reflected polynomial: 0xA001
  • Initial value: 0xFFFF
  • CRC low byte transmitted first
Data types and byte order

A register stores 16 bits. The device register map defines how one or more registers represent a value.

  • Signed integers use two’s complement. FFFF is -1 as INT16 and 65535 as UINT16. The converter pads short hex input with leading zeros; FF as INT16 is 255.
  • IEEE 754 FLOAT32 uses 32 bits; FLOAT64 uses 64 bits. FLOAT32 bytes 3F 80 00 00 in ABCD order represent 1.
  • For four bytes A B C D: ABCD is unchanged; DCBA reverses the bytes; BADC swaps bytes within each 16-bit word; CDAB swaps the two words.
  • 16-bit values occupy one register, 32-bit values two, and 64-bit values four. Follow the device specification for byte and register order.
  • The converter handles 64-bit integers exactly within the selected type’s range. UINT64 runs from 0 to 18446744073709551615.
  • Hex input accepts hexadecimal digits, an optional 0x prefix and whitespace between bytes. Invalid characters are rejected rather than silently removed.
  • Integer inputs must use whole-number digits. FLOAT32 and FLOAT64 also accept fractions and scientific notation.
  • Confirm the type and byte order using a known value. A plausible-looking result alone does not verify the settings.
Compare generated frames and decoded values with the device manual before using them with equipment.