Gotchas
Each entry starts with the symptom you will see in the editor, debug sidebar, or node status. The fixes refer to the public slmp-connection, slmp-read, and slmp-write nodes.
slmp-read returns nothing
| Symptom |
Root cause |
Fix |
slmp-read produces no useful payload or errors immediately. |
The selected slmp-connection has no PLC profile at runtime. The runtime requires one explicit canonical PLC profile. |
Open the slmp-connection config node and select the correct PLC profile, such as melsec:iq-r. |
Mixed word+bit write fails
| Symptom |
Root cause |
Fix |
One slmp-write node that writes word addresses and bit addresses returns a PLC error. |
Some PLCs reject SLMP command 0x1406 for mixed word and bit block payloads. |
Use one slmp-write node for word updates and another slmp-write node for bit updates. |
G/HG rejected
| Symptom |
Root cause |
Fix |
G or HG addresses are rejected by slmp-read or slmp-write. |
Module buffer access is not exposed through the high-level Node-RED node surface. |
Keep G and HG out of high-level flows, or use a function node with the lower-level JavaScript API for raw module access. |
DX/DY fails on melsec:iq-f
| Symptom |
Root cause |
Fix |
DX or DY fails when the connection PLC profile is melsec:iq-f. |
The iQ-F profile does not support DX and DY. |
Use X and Y for iQ-F, and remember that iQ-F X/Y text uses octal numbering. |
LTN/LSTN/LCN/LZ reads return wrong data
| Symptom |
Root cause |
Fix |
| Long timer, long counter, or long index values look truncated or are rejected. |
LTN, LSTN, LCN, and LZ are 32-bit current-value families, not normal 16-bit word values. |
Address them as LTN0:D, LSTN0:D, LCN0:D, or LZ0:D; use :L for signed 32-bit values. |
Non-canonical PLC profile rejected
| Symptom |
Root cause |
Fix |
| A hand-edited flow or environment-provided PLC profile is rejected. |
The node accepts only exact canonical PLC profiles. Short names and aliases are not normalized. |
Use one of the canonical profiles shown in the slmp-connection dropdown, such as melsec:iq-r. |
X/Y works on one PLC profile but fails on another
| Symptom |
Root cause |
Fix |
An X or Y address works after changing PLC profile but points at a different I/O point. |
melsec:iq-f uses octal X/Y text, while the other supported profiles use hexadecimal text. |
Review X and Y addresses whenever you copy a flow between PLC profiles. |
D50.3,count is rejected
| Symptom |
Root cause |
Fix |
An address such as D50.3,8 is rejected. |
.bit notation is scalar-only and means one bit inside one word. |
Use D50.3 for one bit, or use a direct bit range such as M1000,8 for consecutive bit devices. |
Device-matrix flow is noisy as a first test
| Symptom |
Root cause |
Fix |
| The first imported flow produces many skipped or failed entries. |
slmp-device-matrix.json is a broad verification flow, not the smallest connection smoke test. |
Import slmp-basic-read-write.json first and verify a simple D300 read before using the matrix flow. |