Skip to main content
Version: 2.6.0

Mitsubishi MELSEC Nodes

Read and write Mitsubishi MELSEC PLCs directly from pipelines over SLMP / MC Protocol. Each function type authored on a MELSEC connection is available as a matching node in the Pipeline Designer, plus a dedicated MELSEC Read Group node for executing several reads in one node with request coalescing.

For connection setup, the device addressing model, data types, and per-function configuration fields, see the Mitsubishi MELSEC connection guide.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the MELSEC connection profile, pick a function, bind parameters with expression support, and optionally override the timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behaviour on timeout or failure, and error strategy. All execution settings default to pipeline-level values.

MELSEC Read node configuration

MELSEC Read Node

MELSEC Read Node

Read a single typed value from one device, or many typed datapoints from a device range in a single coalesced call. The node runs whichever read function you select — melsec.read.device (one value) or melsec.read.block (a batch of named points).

Supported Function Types:

Function NamePurposeCommon Use Cases
Read Device (melsec.read.device)Read one typed value from a single device addressSetpoint readback, status/input bit, timer/counter value
Read Block (melsec.read.block)Read many typed datapoints from a device range in the fewest SLMP requestsDashboard snapshots, historian logging, mixed-type process blocks

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesMELSEC connection profile to use
FunctionSelectionYesA melsec.read.device or melsec.read.block function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema (device, dataType, length, wordSwap, or the dataPoints array for a block read). See the MELSEC connection functions for field-level details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Input

The node receives the output of the previous node as input. Input data can be referenced in function parameter expressions using $input.

Output Structure

Read Device — a single decoded value:

{
"success": true,
"functionId": "<function-id>",
"data": {
"device": "D100",
"dataType": "REAL",
"value": 72.5
},
"durationMs": 11,
"timestamp": "2026-06-05T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the read completed without an error
functionIdstringID of the executed function
data.devicestringEchoes the device/tag reference you supplied (a raw address such as D100, or the tag name if you used one)
data.dataTypestringData type used to decode the value
data.valueanyThe decoded value — type matches dataType (BIT → boolean, WORD/INT/DWORD/DINT → number, REAL/LREAL → number, STRING → string)
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

Read Block — a map keyed by datapoint name:

{
"success": true,
"functionId": "<function-id>",
"data": {
"count": 4,
"values": {
"speed": 1234,
"count": 100000,
"level": 72.5,
"estop": true
},
"totalDataPoints": 4,
"totalReads": 2
},
"durationMs": 18,
"timestamp": "2026-06-05T08:30:00Z"
}
FieldTypeDescription
data.valuesobjectMap keyed by datapoint name — every point configured in the function appears here.
data.countnumberNumber of decoded datapoints returned
data.totalDataPointsnumberNumber of datapoints requested
data.totalReadsnumberNumber of SLMP batch requests the points were coalesced into (gap-merged + ceiling-chunked)

Access pattern in downstream nodes:

{{ $node["MELSEC Read"].data.values.speed }}
{{ $node["MELSEC Read"].data.values.estop }}
Request coalescing

A Read Block sorts its datapoints per device code and merges them into the fewest SLMP batch requests — adjacent word points within a small gap become one ReadWords request, adjacent bit points become one ReadBits request, and anything above the per-request ceiling (3584 words / 7168 bits) is automatically chunked. The totalReads field shows how many wire requests the read actually used.


MELSEC Write node configuration

MELSEC Write Node

MELSEC Write Node

Write a single typed value to one writable device. 32-bit and float values are written as a single multi-word batch (atomic per request); bit devices are written natively. Read-only devices (X inputs, TN, CN, SD, SM) are rejected before the request reaches the PLC.

Supported Function Type:

Function NamePurposeCommon Use Cases
Write Device (melsec.write.device)Write a typed value to a single deviceSetpoints, recipe download, control/output bits, mode changes

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesMELSEC connection profile to use
FunctionSelectionYesA melsec.write.device function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema (device, dataType, value, length, wordSwap). The value field supports ((paramName)) templates — see the MELSEC connection functions.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

All function parameters support expression syntax ({{ expression }}) and template placeholders (((paramName))). Use expressions like {{ $input.payload.setpoint }} to feed dynamic values into the value parameter.

Input

The node receives the output of the previous node as input.

Output Structure

On success:

{
"success": true,
"functionId": "<function-id>",
"data": {
"device": "D100",
"dataType": "REAL",
"value": "3.14"
},
"durationMs": 12,
"timestamp": "2026-06-05T08:30:00Z"
}
FieldTypeDescription
data.devicestringEchoes the device/tag reference that was written (raw address, or the tag name if you used one)
data.dataTypestringData type used to encode the value
data.valueanyEcho of the value that was written (after parameter substitution)

A write to a read-only device returns success: false with an error like device X0 (X) is read-only, and the request never reaches the PLC.

Safety First

Always validate values in a Condition node before writing to industrial equipment. A setpoint or output bit can move a motor, valve, or actuator immediately. Use parameter type/default/required settings to enforce ranges, and remember that STRING writes require the function's String Length to be set to the full string length or the value is truncated.


MELSEC Read Group node configuration

MELSEC Read Group Node

MELSEC Read Group Node

Execute multiple read functions from a single MELSEC connection in one node. The read group runs the selected functions (in parallel or sequentially) and merges their results, which is ideal for comprehensive data collection from one PLC without dropping a node per function.

Per-request batching and chunking still happen inside each melsec.read.block function; the read group coalesces at the pipeline level, the same way the Siemens S7 read group does.

Supported Function Types:

Function NamePurpose
Read Device (melsec.read.device)One typed value per function
Read Block (melsec.read.block)A batch of named datapoints per function

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesMELSEC connection profile to use
FunctionsMulti-selectionYesOne or more read functions from the selected connection
Execution ModeSelectionNoHow to execute the coalesced requests (parallel or sequential)
Timeout OverrideNumber (seconds)NoOverride the default timeout

When to use Read Group vs. the standard Read node

ApproachUse Case
MELSEC ReadExecute a single read function (one device or one block)
MELSEC Read GroupExecute several read functions from one connection together, with their requests grouped into the fewest SLMP requests
Batch reads

Device and block reads are grouped into the fewest SLMP requests, with anything above the per-request ceiling (3584 words / 7168 bits) auto-chunked for optimal performance.


Settings Tab

All MELSEC node types share the same Settings tab:

SettingTypeDefaultDescription
DescriptionTextOptional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.

Test before wiring

Use the Test Function button in the function form (on the connection page) to validate every MELSEC function against the live PLC before wiring it into a pipeline. It is the fastest way to catch a wrong address, wrong radix (hex vs decimal), wrong data type, or a read-only target.