Register Grid
The register grid is where you'll spend most of your time in Client mode. This is where you read data, interpret values and write back to the device.
Reading registers
Before you can see data, you need to tell Modbux what to read:
- Choose the register type (Holding, Input, Coils or Discrete Inputs)
- Set the start address and length, e.g. address 0, length 10 to read the first 10 registers
- Click Read
The data appears in the grid, grouped by register type.
When working with multi-register data types (32-bit or 64-bit), make sure your length covers enough registers. A float needs 2 registers, a double needs 4.
Advanced Mode: see all data types at once
When you're reading a device for the first time and don't know which data types the registers use, turn on Advanced Mode via the cog icon in the toolbar. This shows int16, uint16, int32, uint32 and float interpretations as extra columns side by side, so you can immediately see which interpretation makes sense for each register.
This is one of the most useful features when exploring an unfamiliar device. Instead of guessing the data type and checking one at a time, you see all possibilities at a glance. Enable 64-bit Mode from the same menu if you also need int64, uint64 and double columns.
Monitoring live data
Want to continuously track values, for example a temperature that's changing? Then use Poll:
- Click Poll in the toolbar
- Modbux now repeatedly reads the same registers at a fixed interval
- Click Poll again to stop
Adjust the interval and timeout via the clock icon. A lower interval gives faster updates, but more network traffic.
Writing registers
Writing is only possible to Holding Registers and Coils. Input Registers and Discrete Inputs are read-only by definition.
To write a value:
- Read the registers first so they appear in the grid
- Click the Write button on the row you want to modify
- Set the data type and the new value
- Choose FC6 (single register) or FC16 (multiple registers) and send
Writing coils
Click the Write icon at the end of a coil row to open the write modal. The modal lets you choose the function code and set the value before writing.
- FC5 (Write Single Coil): toggle the coil between 0 and 1, then send.
- FC15 (Write Multiple Coils): shows toggles for all coil addresses starting from that row, so you can set multiple coils at once before sending.
Setting data types
Raw Modbus data is always 16-bit. But the actual value can be anything: a temperature as float, a counter as uint32, or text as UTF-8. Modbux can interpret the raw bytes for you.
Click the Data Type cell of a register and choose the correct type:
Single register (16-bit): int16, uint16
Two registers (32-bit): int32, uint32, float, unix timestamp
Four registers (64-bit): int64, uint64, double, datetime (IEC 61850)
Text: utf8, each register contains 2 ASCII characters
The Converted Value column shows the interpreted value. Select float for two consecutive registers, for example, and you'll see the decimal value instead of two separate 16-bit numbers.
Coils and Discrete Inputs are simple: each row shows one bit (0 or 1). No data type conversion needed.
The grid shows the address, the bit value, a comment field and (for coils) a write button.
Byte order (BE/LE)
When you use 32-bit or 64-bit data types, the value is split across multiple registers. The order of those registers (Big-Endian or Little-Endian) differs per device. If your values look like nonsense after setting the right data type, the byte order is probably wrong.
Click the BE/LE toggle in the toolbar to switch. Big-Endian (the Modbus standard) puts the most significant word in the first register. Little-Endian reverses it. See Understanding Modbus for a detailed example.
RAW mode
Click RAW in the toolbar to see unprocessed register values, without scaling or interpolation. Useful for verifying what the device is actually reporting.
Scaling and interpolation
Often a device reports a raw value that you still need to convert. Modbux offers two ways:
Scaling
A simple multiplication. Click the Scaling cell and enter a factor.
Example: a device sends 234 for a temperature of 23.4°C. Set scaling to 0.1 and you'll see 23.4 in the Converted Value column.
Interpolation
For linear conversions with two reference points. Configure x1, y1, x2, y2 in the Interpolation cell.
Example: a sensor sends values from 0-65535 that correspond to 0-100%. Set: x1=0, y1=0, x2=65535, y2=100. A raw value of 32768 then becomes 50%.
Saving and loading configurations
You can save your complete register setup so you don't have to set it up again:
- Give your configuration a name in the name field
- Click the save icon
- Everything is saved: register types, addresses, data types, scaling, interpolation, comments and group-end markers
To load a configuration, click the load icon and choose the file.
Use the eye icon to show only the registers from your loaded configuration. Combined with Read Configuration (the list icon in register configuration) Modbux then reads only the configured registers, automatically grouped.