@fa_yoshinobu/node-red-contrib-plc-comm-slmp 0.2.13 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -5
- package/README.md +3 -2
- package/docsrc/user/GETTING_STARTED.md +2 -1
- package/docsrc/user/USER_GUIDE.md +6 -4
- package/lib/slmp/client.js +159 -413
- package/lib/slmp/core.js +24 -12
- package/lib/slmp/error-codes.js +56 -0
- package/lib/slmp/errors.js +26 -0
- package/lib/slmp/lang/slmp-end-code-messages-en.json +686 -0
- package/lib/slmp/transport.js +459 -0
- package/nodes/slmp-connection.html +8 -0
- package/nodes/slmp-connection.js +8 -1
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
## 0.2.14 - 2026-06-12
|
|
4
|
+
|
|
5
|
+
- add an optional `Remote password` credential to `slmp-connection`; configured connections unlock remote-password protection after opening SLMP transport and try to lock it before disconnecting
|
|
6
|
+
- add SLMP end-code name/message helpers backed by the full English communication error-code table, and expose remote-password end-code classification on `SlmpError`
|
|
7
|
+
- add forced remote STOP support through `remoteStop({ force: true })`
|
|
8
|
+
- fix `writeBlock()` payload layout so each `1406` block writes its data immediately after that block's device spec and point count
|
|
9
|
+
- add maintainer notes for the resolved mixed `1406` layout root cause and current no-fallback behavior
|
|
10
|
+
- clarify that `G` and `HG` are intentionally unsupported in the public Node-RED high-level surface, not pending TODO items
|
|
11
|
+
- reject direct `G` and `HG` device names even when no `plcFamily` is supplied, keeping the public surface from sending unitless Extended Specification-only devices
|
|
12
|
+
|
|
13
|
+
## 0.2.12 - 2026-05-02
|
|
6
14
|
|
|
7
15
|
- bump the release revision for npm and Node-RED Flow Library publishing; the Flow Library currently shows `0.2.3` as the public baseline
|
|
8
16
|
- refresh README, user-guide, latest-verification, and example-flow docs with compatibility notes from the published Flow Library version
|
|
@@ -19,8 +27,8 @@
|
|
|
19
27
|
- remove stale user-guide and TODO wording that still described `LCS` and `LCC`
|
|
20
28
|
as future support; the high-level helpers route reads through direct bit read
|
|
21
29
|
and writes through random bit write (`0x1402`)
|
|
22
|
-
- keep `G` and `HG` out of the default public device-matrix flow
|
|
23
|
-
|
|
30
|
+
- keep `G` and `HG` out of the default public device-matrix flow because they
|
|
31
|
+
are not part of the public high-level surface
|
|
24
32
|
|
|
25
33
|
## 0.2.10 - 2026-04-27
|
|
26
34
|
|
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ This package is documented for the high-level Node-RED workflow only:
|
|
|
35
35
|
## Quick Start
|
|
36
36
|
|
|
37
37
|
1. Install the package into your Node-RED user directory and restart Node-RED.
|
|
38
|
-
2. Add one `slmp-connection` config node and set `host`, `port`, `transport`, and `PLC type`.
|
|
38
|
+
2. Add one `slmp-connection` config node and set `host`, `port`, `transport`, and `PLC type`. If the route is protected, set `Remote password`.
|
|
39
39
|
3. Add `slmp-read` for the first smoke test, using a safe address such as `D300`, `D300,4`, or `DSTR320,10`.
|
|
40
40
|
4. When read works, add `slmp-write` and use known-safe test devices before moving to production addresses.
|
|
41
41
|
|
|
@@ -51,7 +51,7 @@ Start with `D` word devices for the first smoke test. Do not start with `slmp-de
|
|
|
51
51
|
## Release Information
|
|
52
52
|
|
|
53
53
|
- package name: `@fa_yoshinobu/node-red-contrib-plc-comm-slmp`
|
|
54
|
-
- package version: `0.2.
|
|
54
|
+
- package version: `0.2.14`
|
|
55
55
|
- npm package: <https://www.npmjs.com/package/@fa_yoshinobu/node-red-contrib-plc-comm-slmp>
|
|
56
56
|
- Node-RED requirement: `>=3.0.0`
|
|
57
57
|
- Node.js requirement: `>=18`
|
|
@@ -129,6 +129,7 @@ Maintainer-only notes and retained evidence live under `internal_docs/`.
|
|
|
129
129
|
- connection control via `connect` / `disconnect` / `reinitialize` messages
|
|
130
130
|
|
|
131
131
|
Set one explicit PLC type for each connection. The node stores it as `plcFamily` internally and derives `frameType`, access profile, and `X/Y` string-address rules from that selection.
|
|
132
|
+
If `Remote password` is set, the connection unlocks the PLC remote-password protection after opening the SLMP transport and tries to lock it again before disconnecting.
|
|
132
133
|
|
|
133
134
|
Supported canonical PLC type values:
|
|
134
135
|
|
|
@@ -9,7 +9,7 @@ Recommended first path:
|
|
|
9
9
|
1. Install the package into your Node-RED user directory.
|
|
10
10
|
2. Restart Node-RED.
|
|
11
11
|
3. Add one `slmp-connection` config node.
|
|
12
|
-
4. Set `host`, `port`, `transport`, and `PLC type`.
|
|
12
|
+
4. Set `host`, `port`, `transport`, and `PLC type`. If the PLC route uses remote-password protection, set `Remote password`.
|
|
13
13
|
5. Import `examples/flows/slmp-basic-read-write.json`.
|
|
14
14
|
6. Replace the host and safe test addresses.
|
|
15
15
|
7. Deploy and confirm that one `D` read succeeds.
|
|
@@ -43,6 +43,7 @@ Set these fields explicitly on `slmp-connection`:
|
|
|
43
43
|
- `port`
|
|
44
44
|
- `transport`
|
|
45
45
|
- `PLC type`
|
|
46
|
+
- `Remote password` when required by the PLC route
|
|
46
47
|
- timeout
|
|
47
48
|
|
|
48
49
|
Canonical `PLC type` values:
|
|
@@ -15,7 +15,7 @@ See also:
|
|
|
15
15
|
## Quick start
|
|
16
16
|
|
|
17
17
|
1. Install the package into your Node-RED user directory and restart Node-RED.
|
|
18
|
-
2. Create one `slmp-connection` and set `host`, `port`, `transport`, and `PLC type`.
|
|
18
|
+
2. Create one `slmp-connection` and set `host`, `port`, `transport`, and `PLC type`. Set `Remote password` when the PLC route is protected.
|
|
19
19
|
3. Drop in `slmp-read` and try a safe address such as `D300`, `D300,4`, or `DSTR320,10`.
|
|
20
20
|
4. Once reads work, add `slmp-write` and verify with known-safe test devices.
|
|
21
21
|
|
|
@@ -63,9 +63,11 @@ Configure these explicitly on the connection node:
|
|
|
63
63
|
- port
|
|
64
64
|
- transport: `tcp` or `udp`
|
|
65
65
|
- PLC type: `iq-f`, `iq-r`, `iq-l`, `mx-f`, `mx-r`, `qcpu`, `lcpu`, `qnu`, or `qnudv`
|
|
66
|
+
- Remote password: optional SLMP remote-password credential for protected PLC routes
|
|
66
67
|
- route fields: network, station, module I/O, multidrop
|
|
67
68
|
|
|
68
69
|
The connection node stores the selection as `plcFamily` internally and derives `frameType`, access profile, and string-address interpretation from the explicit `PLC type`.
|
|
70
|
+
When `Remote password` is configured, the shared connection sends remote-password unlock after opening the SLMP transport and attempts remote-password lock before disconnecting.
|
|
69
71
|
|
|
70
72
|
Validated PLC models:
|
|
71
73
|
|
|
@@ -114,9 +116,9 @@ Address notes:
|
|
|
114
116
|
- count and string forms work on supported devices, for example `D300,10`, `M1000,8`, and `DSTR320,10`
|
|
115
117
|
- `LTN`, `LSTN`, and `LCN` default to 32-bit current-value access in the high-level nodes
|
|
116
118
|
- `LCS` and `LCC` state reads use direct bit read; high-level state writes use random bit write (`0x1402`)
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
Family-specific unsupported device codes:
|
|
119
|
+
- `G` and `HG` are intentionally unsupported in the public Node-RED high-level surface
|
|
120
|
+
|
|
121
|
+
Family-specific unsupported device codes:
|
|
120
122
|
|
|
121
123
|
- all families: `G`, `HG`
|
|
122
124
|
- `iq-r`, `iq-l`, `mx-f`, `mx-r`: none beyond `G`, `HG`
|