@fa_yoshinobu/node-red-contrib-plc-comm-slmp 0.2.3
Node-RED nodes for Mitsubishi PLC communication over SLMP binary 3E/4E frames.
Node-RED SLMP Nodes for Mitsubishi PLCs

Node-RED nodes for Mitsubishi PLC communication over SLMP binary 3E/4E frames.
This package uses the same named-device foundation as the SLMP libraries, extended here with Node-RED-friendly count and string forms:
D100D100,10D200:FD200:F,4D300:LD50.3M1000M1000,8D100:STR,10DSTR100,10
This package is documented for the high-level Node-RED workflow only:
slmp-connectionslmp-readslmp-write
Quick Start
- Install the package into your Node-RED user directory and restart Node-RED.
- Add one
slmp-connectionconfig node and sethost,port,transport,PLC series, andframe type. - Add
slmp-readfor the first smoke test, using a safe address such asD300,D300,4, orDSTR320,10. - When read works, add
slmp-writeand use known-safe test devices before moving to production addresses.
If you are working from this repository, import one of the ready-to-run flows under examples/flows first. The safest first choices are:
slmp-basic-read-write.jsonfor plain TCP scalar read/writeslmp-array-string.jsonfor,countand string accessslmp-device-matrix.jsonfor one-by-one high-level coverage across the matrix catalogslmp-udp-read-write.jsonfor UDP validation
Start with D word devices for the first smoke test. Do not start with slmp-device-matrix.json.
Release Information
- package name:
@fa_yoshinobu/node-red-contrib-plc-comm-slmp - package version:
0.2.3 - npm package: https://www.npmjs.com/package/@fa_yoshinobu/node-red-contrib-plc-comm-slmp
- Node-RED requirement:
>=3.0.0 - Node.js requirement:
>=18 - changelog: https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/CHANGELOG.md
Install from npm:
cd ~/.node-red
npm install @fa_yoshinobu/node-red-contrib-plc-comm-slmp
Install from this repository:
cd ~/.node-red
npm install /path/to/node-red-contrib-plc-comm-slmp
Optional local editor smoke test from the repository root:
npm run smoke:editor
This command installs the local package into an isolated temporary userDir, starts a temporary Node-RED runtime, imports slmp-basic-read-write.json, verifies the flow starts, and then shuts the runtime down again.
Legacy note:
- the original unscoped
[email protected]remains on npm, but new releases move to the scoped package name above
Supported PLC Registers
Start with these register/device families first:
- word devices:
D,SD,R,ZR,TN,CN - bit devices:
M,X,Y,SM,B - typed forms:
D200:F,D300:L - special Node-RED forms:
D100,10,M1000,8,D100:STR,10,DSTR100,10 - bit-in-word form:
D50.3
See the full public table in Supported PLC Registers.
Documentation
- Getting Started
- Supported PLC Registers
- Latest Communication Verification
- User Guide
- Example Flows
- Documentation Index
Maintainer-only notes and retained evidence live under internal_docs/.
What You Can Do
- Binary 3E and 4E frames
- TCP and UDP transport
- reusable
slmp-connection - high-level reads and writes through
slmp-readandslmp-write - typed source selection for literal /
msg/flow/global/env - per-request routing via
msg.targetor configured route sources - read output selection for object / array / single value
- metadata emission selection for
msg.slmp - configurable error handling with throw /
msg.error/ second output - connection control via
connect/disconnect/reinitializemessages
Set frame type and PLC series explicitly for each connection.
Current Public Register Scope
- bit devices:
SM,X,Y,M,L,F,V,B,TS,TC,STS,STC,CS,CC,SB,DX,DY - word devices:
SD,D,W,TN,LTN,STN,LSTN,CN,LCN,SW,Z,R,ZR,RD - typed views:
:S,:D,:L,:F - string/count views:
,count,:STR,DSTR - word-bit view:
.bit
Validated public hardware summary:
FX5UC-32MT/DQ06UDVCPUR08CPU
Example Flows
slmp-demo.json: combined demoslmp-basic-read-write.json: scalar, float, and bit read/write over TCPslmp-array-string.json: array and string read/write over TCPslmp-control-error.json: control messages,msgsource, and second-output errorsslmp-device-matrix.json: one-by-one high-level read, write, and readback across the matrix catalog with completed-result history, run summary, and JSONL logging inNode-RED userDir/logs/slmp-device-matrix-<session>.jsonlslmp-routing.json: per-request routing withmsg.targetslmp-udp-read-write.json: basic UDP read/write
Known Limitations
- set
frame typeandPLC seriesexplicitly for each connection .bit,countis not supported- a single client connection keeps requests serialized by default
- the read and write nodes keep the caller-visible logical request shape and do not silently retry with a different fallback split semantics
LTS,LTC,LSTS,LSTC,LCS,LCC,LZ,G, andHGare not part of the current public high-level register table
Development
Run the local test suite:
cmd /c npm.cmd test
Notes
.bitnotation is only valid for word devices such asD50.3- direct bit devices should be addressed directly as
M1000,X1F,Y20 - random read batching follows the Python helper layer for batchable word devices