Skip to main content

Modbus: Word - Double-Word Node

The Modbus: Word - Double-Word node reads data from Modbus devices in 16-bit and 32-bit scenarios using a single configuration. This simplifies flows when a device exposes different registers for status values and analog measurements.

This node supports Modbus TCP, Modbus RTU, and Modbus ASCII Serial and is available in Edge Workflows.

Modbus Node Word Double-Word

Node Properties

The node is read-only. Its main purpose is to read a Modbus register as either a WORD (16 bits) or a DOUBLE-WORD (32 bits), then write the converted value into the payload.

The configuration follows the same idea as traditional Modbus nodes, but with an important difference: the register type field defines whether the node will behave as WORD or DOUBLE-WORD. From that choice, the fields displayed change to reflect the correct read behavior.

In general, you will first configure the connection, then the address and read settings, and finally the output fields in the payload.

Address Configuration

In the address section, the main fields are Connection Type, Register Type, and Address Template. The Address Template value depends on the chosen type:

  • In WORD, the address must be between 0 and 65,535.
  • In DOUBLE-WORD, the starting address must be between 0 and 65,534, because the node uses two consecutive registers.

This is important to avoid validation errors and to ensure that 32-bit read operations do not exceed the limit of valid registers.

Modbus Node Word Double-Word Address Configuration

Common Configuration

Regardless of the connection type, two fields appear frequently:

  • Unit ID: identifies the Modbus slave on the bus.
  • Timeout Template: defines the maximum wait time for the response.

In practice, a well-adjusted timeout avoids false errors in networks with latency and helps keep the flow responsive.

Register Type

The Register Type field defines how the node interprets the data returned by Modbus.

TypeDescription
WORDReads a single 16-bit register.
DOUBLE-WORDReads two consecutive 16-bit registers and converts them into one 32-bit value.

The node does not guess the type automatically. The register type must match the device manual, otherwise the interpreted value can be wrong.

Modbus Node Word Double-Word Register Type

WORD Configuration

The WORD behavior is fixed and read-only.

  • The node reads a single 16-bit register.
  • The returned value is interpreted as a signed 16-bit integer.
  • Scaling can be applied with multiplier and offset.

This means the node always reads WORD values as signed integers in the range of -32,768 to 32,767.

DOUBLE-WORD Configuration

The DOUBLE-WORD section controls how the node converts two 16-bit registers into one 32-bit value.

  • formatTemplate: defines how the two registers should be interpreted.
  • endiannessTemplate: defines the register order.
  • Scaling can be applied with multiplier and offset.

Available formats:

ValueDescription
int32Interprets the value as a signed 32-bit integer.
floatInterprets the value as an IEEE 754 floating-point number.

Available endianness values:

ValueDescription
bigThe first register is the most significant word.
littleThe register order is swapped before conversion.

Scaling (Both Types)

Multiplier and offset are applied to both WORD and DOUBLE-WORD.

The final value is calculated as:

final value = raw value × multiplier + offset

This is useful when the device returns a raw value that must be converted into engineering units, such as volts, amps, pressure, or power.

  • If multiplier is not configured, it defaults to 1.
  • If offset is not configured, it defaults to 0.

Modbus Node Word Double-Word Scaling

Destination Path

The Destination Path is the location where the final processed value will be saved in the payload. In read operations, it receives the value already converted, with multiplier and offset applied when configured.

For observability, it is recommended to also configure statusPath. This way, the flow records whether the operation finished successfully (ok) or if there was a communication or validation failure.

Modbus Node Word Double-Word Destination Path

Node Examples

Example 1 — Reading a 32-bit Float (Power Meter)

A common example is reading power from a meter that publishes a 32-bit float. In this case, configure:

FieldValue
Register TypeDOUBLE-WORD
Address Template1000
formatTemplatefloat
endiannessTemplatebig (or little, according to the manual)
destinationPathdata.measurements.power
statusPathdata.status.modbus

Expected output:

{
"data": {
"measurements": {
"power": 12.56
},
"status": {
"modbus": {
"status": "ok"
}
}
}
}

Example 2 — Reading a 16-bit Signed Register (Temperature)

A simpler example is reading a 16-bit signed register:

FieldValue
Register TypeWORD
Address Template200
multiplierTemplate0.1
offsetTemplate0
destinationPathdata.measurements.temperature

Expected output:

{
"data": {
"measurements": {
"temperature": 25.4
}
}
}

Node Errors

When something fails, errors are usually divided into two groups: validation and communication.

Validation Errors

Occur before the connection attempt, for example:

  • Address out of the allowed range;
  • Invalid register type;
  • Invalid endianness for DOUBLE-WORD;
  • Invalid format for DOUBLE-WORD;
  • Template values that do not resolve to valid numbers.

Communication Errors

Appear when the configuration is valid, but the operation with the device does not complete successfully, such as timeout, network unavailability, or device error.

In these cases, with statusPath configured, the payload receives:

{
"data": {
"status": {
"modbus": {
"status": "communication-error",
"errorType": "modbus-error",
"message": "Modbus read failed (Double-Word)."
}
}
}
}

With additional details about the failure.

Was this page helpful?


Still looking for help? You can also search the WEGnology Forums or submit your question there.