Ploxc

Modbux

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:

  1. Choose the register type (Holding, Input, Coils or Discrete Inputs)
  2. Set the start address and length, e.g. address 0, length 23 to read the first 23 registers
  3. Click Read
Client register grid showing register values after a read

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.

Advanced Mode showing all data type interpretations as extra columns

Keep in mind that multiple interpretations can look valid at the same time. A value like 250 fits in both int16 and int32, so you can't always tell from one read which type it actually is. Cross-reference with your device documentation, or watch how values change over time to narrow it down.

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:

  1. Click Poll in the toolbar
  2. Modbux now repeatedly reads the same registers at a fixed interval
  3. Click Poll again to stop
Client polling with live-updating register values

Adjust the interval and timeout via the clock icon. A lower interval gives faster updates, but more network traffic.

Read Configuration

The Read Configuration toggle (list icon in the register configuration area) changes how Modbux reads data. Instead of reading a continuous range from start address to length, it reads only the registers you've configured, automatically grouped into efficient read operations.

This is especially useful when your configured registers are spread across a wide address range. Without Read Configuration, you'd have to do multiple reads to cover the gaps between your registers. With it, Modbux only fetches the addresses that matter.

Read Configuration mode showing configured registers with group indicators

Group column

The "G" column shows which read group each register belongs to. Modbux groups contiguous addresses into efficient read operations. The group index, with alternating background tints, lets you see exactly how your reads are grouped.

Inline errors

When a read group fails (e.g. a Modbus exception or timeout), the error is displayed inline in the grid for that specific group. This way you can immediately see which group of addresses failed, while the other groups still show their data.

You can use the Group End toggle on individual registers to split a failing group into smaller ones. Modbux normally groups registers automatically for the most efficient reads, but by setting a group end you force a split at that point. This lets you binary-search for the problematic address: split the failing group in half, see which half fails, split that half again, and so on until you've pinpointed exactly which register is causing the error.

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:

  1. Read the registers first so they appear in the grid
  2. Click the Write button on the row you want to modify
  3. Set the data type and the new value
  4. Choose FC6 (single register) or FC16 (multiple registers) and send

Writing is not possible while polling is active. Stop polling first, then write your value.

When you click the Write button, Modbux automatically switches to RAW mode so you can see the actual value you're about to overwrite.

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, bitmap

Two registers (32-bit): int32, uint32, float, unix (Unix timestamp)

Four registers (64-bit): int64, uint64, double, datetime (IEC 870-5)

Text: utf8, each register contains 2 ASCII characters. Modbux decodes consecutive registers as one string until it hits a register with a different data type set, or until there are no more registers in the read range.

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. Unix timestamps and datetime values are displayed as human-readable date/time strings.

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.

Bitmap

When you set a register's data type to bitmap, an expandable detail panel appears below the register row. This panel shows all 16 bits of the register individually, each with:

Client bitmap data type with expanded 16-bit detail panel showing per-bit comments, colors and states
  • Toggle indicator: shows the current bit state; clickable to toggle when the register is writable (Holding Registers)
  • Comment: an inline editable label for each bit (e.g. "Motor running", "Alarm active")
  • Color: choose between default, warning or error to visually flag bit states
  • Invert: flip the display logic (show "on" when the bit is 0)

Bitmap configuration (comments, colors and invert settings) persists when you save a client configuration file.

Bitmap bit in default state
Bitmap bit in warning state
Bitmap bit in error state
Bitmap bit in inverted active state
Bitmap bit in inverted inactive state

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 word 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.

The endianness setting is now included in client config files, so your word order preference is preserved when you save and load configurations.

RAW mode

Click RAW in the toolbar to ignore any configured scaling and interpolation. The value column shows the raw register value as-is.

Address base

Modbux uses 0-based protocol addresses by default. If your device documentation uses 1-based addressing, use the 0/1 toggle in register configuration to shift all displayed addresses by +1. This is a display-only change. The actual Modbus protocol addresses stay the same.

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:

  1. Give your configuration a name in the name field
  2. Click the save icon
  3. Everything is saved: register types, addresses, data types, scaling, interpolation, comments, group-end markers, bitmap configuration and word order

To load a configuration, click the load icon and choose the file.

Configuration files are now versioned (v2 format with metadata). Old v1 configuration files are automatically migrated when loaded. No manual conversion needed.

Configurations saved in v2 cannot be opened in older versions of Modbux. Keep backups if you need backward compatibility.