@fa_yoshinobu/node-red-contrib-plc-comm-slmp 0.2.12 → 0.2.13

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 CHANGED
@@ -1,18 +1,18 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
4
-
5
- ## 0.2.12 - 2026-05-02
6
-
7
- - 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
- - refresh README, user-guide, latest-verification, and example-flow docs with compatibility notes from the published Flow Library version
9
- - document the public compatibility change from separate `PLC series` / `frame type` fields to one `PLC type` selector
10
- - document the public device-scope changes since Flow Library `0.2.3`: `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them
11
- - document the current device-matrix flow behavior: one-click run-all read/write buttons, status-lamp feedback, JSONL result logging, `plcFamily` records, and skip/error summary counts
12
-
13
- ## 0.2.11 - 2026-05-02
14
-
15
- - remove the interim device-range catalog helper from the Node-RED package
3
+ ## Unreleased
4
+
5
+ ## 0.2.12 - 2026-05-02
6
+
7
+ - 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
+ - refresh README, user-guide, latest-verification, and example-flow docs with compatibility notes from the published Flow Library version
9
+ - document the public compatibility change from separate `PLC series` / `frame type` fields to one `PLC type` selector
10
+ - document the public device-scope changes since Flow Library `0.2.3`: `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them
11
+ - document the current device-matrix flow behavior: one-click run-all read/write buttons, status-lamp feedback, JSONL result logging, `plcFamily` records, and skip/error summary counts
12
+
13
+ ## 0.2.11 - 2026-05-02
14
+
15
+ - remove the interim device-range catalog helper from the Node-RED package
16
16
  - keep ordinary Node-RED read/write validation to address format and protocol constraints, leaving actual device-range errors to the PLC response
17
17
  - reject device codes that the selected `plcFamily` does not expose in the public high-level table, aligned with the .NET `DEVICE_RANGES.md` support matrix
18
18
 
@@ -41,7 +41,7 @@
41
41
  ## 0.2.7 - 2026-04-14
42
42
 
43
43
  - require explicit `plcFamily` on the standard packaged client and connection-node route, while keeping manual frame/profile selection only for internal diagnostic paths
44
- - switch the standard device-range example to the interim catalog helper so the high-level Node surface consistently derives frame, profile, address, and range handling from one family selection
44
+ - switch the standard device-range example to the interim catalog helper so the high-level Node surface consistently derives frame, profile, address, and range handling from one family selection
45
45
 
46
46
  ## 0.2.6 - 2026-04-14
47
47
 
@@ -50,7 +50,7 @@
50
50
 
51
51
  ## 0.2.5 - 2026-04-14
52
52
 
53
- - add interim device-range catalog helpers and CPU operation-state support to the packaged SLMP client surface
53
+ - add interim device-range catalog helpers and CPU operation-state support to the packaged SLMP client surface
54
54
  - add regression tests and README coverage for the new device-range and CPU-state helpers
55
55
 
56
56
  ## 0.2.4 - 2026-04-13
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`.
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
 
@@ -50,12 +50,12 @@ Start with `D` word devices for the first smoke test. Do not start with `slmp-de
50
50
 
51
51
  ## Release Information
52
52
 
53
- - package name: `@fa_yoshinobu/node-red-contrib-plc-comm-slmp`
54
- - package version: `0.2.12`
55
- - npm package: <https://www.npmjs.com/package/@fa_yoshinobu/node-red-contrib-plc-comm-slmp>
56
- - Node-RED requirement: `>=3.0.0`
57
- - Node.js requirement: `>=18`
58
- - changelog: <https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/CHANGELOG.md>
53
+ - package name: `@fa_yoshinobu/node-red-contrib-plc-comm-slmp`
54
+ - package version: `0.2.12`
55
+ - npm package: <https://www.npmjs.com/package/@fa_yoshinobu/node-red-contrib-plc-comm-slmp>
56
+ - Node-RED requirement: `>=3.0.0`
57
+ - Node.js requirement: `>=18`
58
+ - changelog: <https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/CHANGELOG.md>
59
59
 
60
60
  Install from npm:
61
61
 
@@ -79,20 +79,20 @@ npm run smoke:editor
79
79
 
80
80
  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.
81
81
 
82
- Legacy note:
83
-
84
- - the original unscoped `node-red-contrib-plc-comm-slmp@0.2.0` remains on npm, but new releases move to the scoped package name above
85
-
86
- ### Changes Since Flow Library 0.2.3
87
-
88
- The Node-RED Flow Library currently shows `0.2.3` as the published baseline for this scoped package. Check these changes before updating an existing flow:
89
-
90
- - `slmp-connection` now uses one `PLC type` selector. Older `PLC series` and `frame type` fields from Flow Library `0.2.3` flows must be reselected after import.
91
- - `X/Y` string addresses are PLC-type-specific: iQ-F uses octal `X/Y`, while the other supported PLC types use hexadecimal `X/Y`.
92
- - `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them.
93
- - Device codes unsupported by the selected PLC type are errors by default. The `slmp-device-matrix.json` sample can instead log them as `SKIPPED` records when it sends `slmpSkipUnsupported`.
94
-
95
- ## Supported PLC Registers
82
+ Legacy note:
83
+
84
+ - the original unscoped `node-red-contrib-plc-comm-slmp@0.2.0` remains on npm, but new releases move to the scoped package name above
85
+
86
+ ### Changes Since Flow Library 0.2.3
87
+
88
+ The Node-RED Flow Library currently shows `0.2.3` as the published baseline for this scoped package. Check these changes before updating an existing flow:
89
+
90
+ - `slmp-connection` now uses one `PLC type` selector. Older `PLC series` and `frame type` fields from Flow Library `0.2.3` flows must be reselected after import.
91
+ - `X/Y` string addresses are PLC-type-specific: iQ-F uses octal `X/Y`, while the other supported PLC types use hexadecimal `X/Y`.
92
+ - `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them.
93
+ - Device codes unsupported by the selected PLC type are errors by default. The `slmp-device-matrix.json` sample can instead log them as `SKIPPED` records when it sends `slmpSkipUnsupported`.
94
+
95
+ ## Supported PLC Registers
96
96
 
97
97
  Start with these register/device families first:
98
98
 
@@ -128,9 +128,9 @@ Maintainer-only notes and retained evidence live under `internal_docs/`.
128
128
  - configurable error handling with throw / `msg.error` / second output
129
129
  - connection control via `connect` / `disconnect` / `reinitialize` messages
130
130
 
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.
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
132
 
133
- Supported canonical PLC type values:
133
+ Supported canonical PLC type values:
134
134
 
135
135
  - `iq-f`
136
136
  - `iq-r`
@@ -171,9 +171,9 @@ If an address is outside the connected PLC's actual range, the PLC response is r
171
171
  - string/count views: `,count`, `:STR`, `DSTR`
172
172
  - word-bit view: `.bit`
173
173
 
174
- Public device-code support by `plcFamily`:
175
-
176
- | PLC type | Public device codes accepted by the high-level API and Node-RED editor |
174
+ Public device-code support by `plcFamily`:
175
+
176
+ | PLC type | Public device codes accepted by the high-level API and Node-RED editor |
177
177
  | --- | --- |
178
178
  | `iq-r`, `iq-l`, `mx-f`, `mx-r` | `SM`, `SD`, `X`, `Y`, `M`, `L`, `F`, `V`, `B`, `D`, `W`, `TS`, `TC`, `TN`, `LTS`, `LTC`, `LTN`, `STS`, `STC`, `STN`, `LSTS`, `LSTC`, `LSTN`, `CS`, `CC`, `CN`, `LCS`, `LCC`, `LCN`, `SB`, `SW`, `DX`, `DY`, `Z`, `LZ`, `R`, `ZR`, `RD` |
179
179
  | `iq-f` | `SM`, `SD`, `X`, `Y`, `M`, `L`, `F`, `B`, `D`, `W`, `TS`, `TC`, `TN`, `STS`, `STC`, `STN`, `CS`, `CC`, `CN`, `LCS`, `LCC`, `LCN`, `SB`, `SW`, `Z`, `LZ`, `R` |
@@ -192,15 +192,15 @@ Validated public hardware summary:
192
192
  - [`slmp-basic-read-write.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-basic-read-write.json): scalar, float, and bit read/write over TCP
193
193
  - [`slmp-array-string.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-array-string.json): array and string read/write over TCP
194
194
  - [`slmp-control-error.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-control-error.json): control messages, `msg` source, and second-output errors
195
- - [`slmp-device-matrix.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-device-matrix.json): one-by-one and run-all high-level read, write, and readback across the matrix catalog with one outstanding request at a time, status lamp feedback, completed-result history, run summary, unsupported-device skip records, and JSONL logging in `Node-RED userDir/logs/slmp-device-matrix-<session>.jsonl`
196
- - [`slmp-routing.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-routing.json): per-request routing with `msg.target`
197
- - [`slmp-udp-read-write.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-udp-read-write.json): basic UDP read/write
198
-
199
- The device-matrix flow records `plcFamily` in each JSONL result, keeps one outstanding request at a time, and summarizes `OK`, `SKIPPED`, `NG`, mismatch, timeout, and pending counts.
200
-
201
- ## Known Limitations
202
-
203
- - the high-level Node-RED surface requires explicit PLC type selection
195
+ - [`slmp-device-matrix.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-device-matrix.json): one-by-one and run-all high-level read, write, and readback across the matrix catalog with one outstanding request at a time, status lamp feedback, completed-result history, run summary, unsupported-device skip records, and JSONL logging in `Node-RED userDir/logs/slmp-device-matrix-<session>.jsonl`
196
+ - [`slmp-routing.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-routing.json): per-request routing with `msg.target`
197
+ - [`slmp-udp-read-write.json`](https://github.com/fa-yoshinobu/node-red-contrib-plc-comm-slmp/blob/main/examples/flows/slmp-udp-read-write.json): basic UDP read/write
198
+
199
+ The device-matrix flow records `plcFamily` in each JSONL result, keeps one outstanding request at a time, and summarizes `OK`, `SKIPPED`, `NG`, mismatch, timeout, and pending counts.
200
+
201
+ ## Known Limitations
202
+
203
+ - the high-level Node-RED surface requires explicit PLC type selection
204
204
  - `.bit,count` is not supported
205
205
  - a single client connection keeps requests serialized by default
206
206
  - the read and write nodes keep the caller-visible logical request shape and do not silently retry with a different fallback split semantics
@@ -223,6 +223,6 @@ cmd /c npm.cmd test
223
223
  - `LTS`, `LTC`, `LSTS`, and `LSTC` state reads use the long timer 4-word decode helpers
224
224
  - `LCS` and `LCC` state reads use direct bit read; high-level state writes use random bit write (`0x1402`)
225
225
  - low-level direct bit writes are guarded for `LTS`/`LTC`/`LSTS`/`LSTC`/`LCS`/`LCC`
226
- - `X/Y` string addresses require explicit PLC type selection
226
+ - `X/Y` string addresses require explicit PLC type selection
227
227
  - `iq-f` interprets `X/Y` string addresses in octal, while other supported families use hexadecimal `X/Y`
228
228
  - random read batching follows the Python helper layer for batchable word devices
@@ -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`.
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.
@@ -42,10 +42,10 @@ Set these fields explicitly on `slmp-connection`:
42
42
  - `host`
43
43
  - `port`
44
44
  - `transport`
45
- - `PLC type`
45
+ - `PLC type`
46
46
  - timeout
47
47
 
48
- Canonical `PLC type` values:
48
+ Canonical `PLC type` values:
49
49
 
50
50
  - `iq-f`
51
51
  - `iq-r`
@@ -87,7 +87,7 @@ After the basic flow succeeds:
87
87
 
88
88
  If the first read fails, check these in order:
89
89
 
90
- - correct `PLC type`
90
+ - correct `PLC type`
91
91
  - correct `tcp` or `udp` selection
92
92
  - a simple `D` address instead of a typed, count, or string form
93
93
  - editor validation messages before deploy
@@ -2,19 +2,19 @@
2
2
 
3
3
  This page keeps the current public summary only. Older detailed notes are not kept in the public documentation set.
4
4
 
5
- ## Current Retained Summary
6
-
7
- - current Flow Library baseline checked for release notes: `0.2.3`
8
- - current release-prep target: `0.2.12`
9
- - verified PLC models: `FX5UC-32MT/D`, `Q06UDVCPU`, `R08CPU`
10
- - verified transports: `TCP`, `UDP`
11
- - verified public nodes: `slmp-connection`, `slmp-read`, `slmp-write`
12
- - retained first-run smoke path: `slmp-basic-read-write.json`
13
- - 2026-05-01 iQ-R live check: `R08CPU` at `192.168.250.100:1025` over TCP
14
- returned `LCS10=false` and `LCC10=false` through `readNamed`
15
- - 2026-05-02 release-prep docs align the Node-RED matrix flow with one-click run-all read/write, status-lamp feedback, JSONL logging, `plcFamily` result records, and PLC-type-unsupported `SKIPPED` records
16
-
17
- ## Confirmed Public Register Scope
5
+ ## Current Retained Summary
6
+
7
+ - current Flow Library baseline checked for release notes: `0.2.3`
8
+ - current release-prep target: `0.2.12`
9
+ - verified PLC models: `FX5UC-32MT/D`, `Q06UDVCPU`, `R08CPU`
10
+ - verified transports: `TCP`, `UDP`
11
+ - verified public nodes: `slmp-connection`, `slmp-read`, `slmp-write`
12
+ - retained first-run smoke path: `slmp-basic-read-write.json`
13
+ - 2026-05-01 iQ-R live check: `R08CPU` at `192.168.250.100:1025` over TCP
14
+ returned `LCS10=false` and `LCC10=false` through `readNamed`
15
+ - 2026-05-02 release-prep docs align the Node-RED matrix flow with one-click run-all read/write, status-lamp feedback, JSONL logging, `plcFamily` result records, and PLC-type-unsupported `SKIPPED` records
16
+
17
+ ## Confirmed Public Register Scope
18
18
 
19
19
  - bit devices: `SM`, `X`, `Y`, `M`, `L`, `F`, `V`, `B`, `TS`, `TC`, `LTS`, `LTC`, `STS`, `STC`, `LSTS`, `LSTC`, `CS`, `CC`, `LCS`, `LCC`, `SB`, `DX`, `DY`
20
20
  - word devices: `SD`, `D`, `W`, `TN`, `LTN`, `STN`, `LSTN`, `CN`, `LCN`, `SW`, `Z`, `LZ`, `R`, `ZR`, `RD`
@@ -23,12 +23,12 @@ This page keeps the current public summary only. Older detailed notes are not ke
23
23
 
24
24
  ## Practical Cautions
25
25
 
26
- - set one explicit `PLC type` for every connection
27
- - older Flow Library `0.2.3` flows must be updated from `PLC series` / `frame type` to `PLC type`
28
- - start with `D` reads before using typed, counted, or string forms
29
- - keep `slmp-device-matrix.json` for later verification, not for the first smoke test
30
- - do not rely on Node-RED for PLC model-specific range or upper-bound checks; format errors are local, range errors come from the PLC/runtime response
31
- - `.bit,count` is not part of the current public high-level surface
26
+ - set one explicit `PLC type` for every connection
27
+ - older Flow Library `0.2.3` flows must be updated from `PLC series` / `frame type` to `PLC type`
28
+ - start with `D` reads before using typed, counted, or string forms
29
+ - keep `slmp-device-matrix.json` for later verification, not for the first smoke test
30
+ - do not rely on Node-RED for PLC model-specific range or upper-bound checks; format errors are local, range errors come from the PLC/runtime response
31
+ - `.bit,count` is not part of the current public high-level surface
32
32
 
33
33
  ## Where Older Evidence Went
34
34
 
@@ -83,7 +83,7 @@ This page is the canonical public register/device table for the Node-RED high-le
83
83
 
84
84
  These are device-code support rules only. The editor and helper APIs use them to reject or skip device codes that the selected family does not expose in the public surface; they are not address upper-bound checks.
85
85
 
86
- | PLC type | Unsupported device codes in the public Node-RED surface |
86
+ | PLC type | Unsupported device codes in the public Node-RED surface |
87
87
  | --- | --- |
88
88
  | all families | `G`, `HG` |
89
89
  | `iq-r`, `iq-l`, `mx-f`, `mx-r` | none beyond `G`, `HG` |
@@ -93,6 +93,39 @@ These are device-code support rules only. The editor and helper APIs use them to
93
93
 
94
94
  This table follows only the supported/unsupported device-code portion of the .NET library's `DEVICE_RANGES.md`; Node-RED does not use it for PLC range or upper-bound validation.
95
95
 
96
+ ## iQ-R SD Range Maximum Reference
97
+
98
+ For iQ-R-series targets, the PLC-configured current point count is read from
99
+ the family-specific `SD` range registers by libraries that expose a device range
100
+ catalog. The maximum below is the cap for that SD-derived point count:
101
+
102
+ `point_count = min(SD point count, max_point_count)`
103
+
104
+ The displayed upper bound is then `point_count - 1`. Node-RED keeps this as a
105
+ reference table only; it still does not pre-check PLC model-specific address
106
+ upper bounds. If an address exceeds the connected PLC's actual configured
107
+ range, the PLC response is returned as the runtime error.
108
+
109
+ | Item | Node-RED device codes | Max address | max_point_count | Setting unit |
110
+ | --- | --- | --- | --- | --- |
111
+ | `X` | `X` | `X2FFF` | `12288` (`0x3000`) | n/a |
112
+ | `Y` | `Y` | `Y2FFF` | `12288` (`0x3000`) | n/a |
113
+ | `M` | `M` | `M94674943` | `94674944` (`0x5A4A000`) | 64 points |
114
+ | `B` | `B` | `B5A49FFF` | `94674944` (`0x5A4A000`) | 64 points |
115
+ | `F` | `F` | `F32767` | `32768` | 64 points |
116
+ | `SB` | `SB` | `SB5A49FFF` | `94674944` (`0x5A4A000`) | 64 points |
117
+ | `V` | `V` | `V32767` | `32768` | 64 points |
118
+ | `L` | `L` | `L32767` | `32768` | 64 points |
119
+ | `T` | `TS`, `TC`, `TN` | `T5259711` | `5259712` | 32 points |
120
+ | `ST` | `STS`, `STC`, `STN` | `ST5259711` | `5259712` | 32 points |
121
+ | `LT` | `LTS`, `LTC`, `LTN` | `LT1479295` | `1479296` | 1 point |
122
+ | `LST` | `LSTS`, `LSTC`, `LSTN` | `LST1479295` | `1479296` | 1 point |
123
+ | `C` | `CS`, `CC`, `CN` | `C5259711` | `5259712` | 32 points |
124
+ | `LC` | `LCS`, `LCC`, `LCN` | `LC2784543` | `2784544` | 32 points |
125
+ | `D` | `D` | `D5917183` | `5917184` (`0x5A4A00`) | 4 points |
126
+ | `W` | `W` | `W5A49FF` | `5917184` (`0x5A4A00`) | 4 points |
127
+ | `SW` | `SW` | `SW5A49FF` | `5917184` (`0x5A4A00`) | 4 points |
128
+
96
129
  ## Not Currently in the Public Surface
97
130
 
98
131
  - `G`
@@ -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`.
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
 
@@ -62,27 +62,27 @@ Configure these explicitly on the connection node:
62
62
  - host
63
63
  - port
64
64
  - transport: `tcp` or `udp`
65
- - PLC type: `iq-f`, `iq-r`, `iq-l`, `mx-f`, `mx-r`, `qcpu`, `lcpu`, `qnu`, or `qnudv`
65
+ - PLC type: `iq-f`, `iq-r`, `iq-l`, `mx-f`, `mx-r`, `qcpu`, `lcpu`, `qnu`, or `qnudv`
66
66
  - route fields: network, station, module I/O, multidrop
67
67
 
68
- The connection node stores the selection as `plcFamily` internally and derives `frameType`, access profile, and string-address interpretation from the explicit `PLC type`.
69
-
70
- Validated PLC models:
68
+ The connection node stores the selection as `plcFamily` internally and derives `frameType`, access profile, and string-address interpretation from the explicit `PLC type`.
69
+
70
+ Validated PLC models:
71
71
 
72
72
  - `FX5UC-32MT/D`
73
- - `Q06UDVCPU`
74
- - `R08CPU`
75
-
76
- ## Changes since Flow Library 0.2.3
77
-
78
- The Node-RED Flow Library currently shows `0.2.3` as the published baseline for this scoped package.
79
-
80
- - Existing `0.2.3` flows used `PLC series` and `frame type`; current flows must use one explicit `PLC type` on every `slmp-connection`.
81
- - `X/Y` string addresses are PLC-type-specific. Use `iq-f` for octal `X/Y`; other supported PLC types use hexadecimal `X/Y`.
82
- - `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them.
83
- - Device codes unsupported by the selected PLC type are rejected by default. The device-matrix sample can log them as `SKIPPED` records when it sends `slmpSkipUnsupported`.
84
-
85
- ## Supported devices
73
+ - `Q06UDVCPU`
74
+ - `R08CPU`
75
+
76
+ ## Changes since Flow Library 0.2.3
77
+
78
+ The Node-RED Flow Library currently shows `0.2.3` as the published baseline for this scoped package.
79
+
80
+ - Existing `0.2.3` flows used `PLC series` and `frame type`; current flows must use one explicit `PLC type` on every `slmp-connection`.
81
+ - `X/Y` string addresses are PLC-type-specific. Use `iq-f` for octal `X/Y`; other supported PLC types use hexadecimal `X/Y`.
82
+ - `LTS`, `LTC`, `LSTS`, `LSTC`, `LCS`, `LCC`, and `LZ` are now in the high-level surface where the selected PLC type supports them.
83
+ - Device codes unsupported by the selected PLC type are rejected by default. The device-matrix sample can log them as `SKIPPED` records when it sends `slmpSkipUnsupported`.
84
+
85
+ ## Supported devices
86
86
 
87
87
  Supported bit devices:
88
88
 
@@ -103,13 +103,13 @@ Supported word devices:
103
103
  Address notes:
104
104
 
105
105
  - `B`, `W`, `SB`, `SW`, `DX`, and `DY` use hexadecimal numbering
106
- - `X` and `Y` require explicit `PLC type`
106
+ - `X` and `Y` require explicit `PLC type`
107
107
  - `iq-f` interprets string `X/Y` addresses in octal
108
108
  - all other supported families interpret string `X/Y` addresses in hexadecimal
109
109
  - most other devices use decimal numbering
110
110
  - Node-RED input validation checks address format and protocol constraints, not PLC model-specific device ranges or upper bounds
111
111
  - if an address is outside the connected PLC's actual range, the PLC response is returned as the runtime error
112
- - Node-RED input validation does reject device codes that the selected `PLC type` does not expose in the public device table
112
+ - Node-RED input validation does reject device codes that the selected `PLC type` does not expose in the public device table
113
113
  - word devices support `.bit`, for example `D50.3`
114
114
  - count and string forms work on supported devices, for example `D300,10`, `M1000,8`, and `DSTR320,10`
115
115
  - `LTN`, `LSTN`, and `LCN` default to 32-bit current-value access in the high-level nodes
@@ -253,9 +253,9 @@ Import one of these into Node-RED, then update the connection host, port, transp
253
253
  - [`slmp-basic-read-write.json`](../../examples/flows/slmp-basic-read-write.json): scalar, float, and bit read/write over TCP
254
254
  - [`slmp-array-string.json`](../../examples/flows/slmp-array-string.json): array and string read/write over TCP
255
255
  - [`slmp-control-error.json`](../../examples/flows/slmp-control-error.json): control messages, configured `msg` source, and second-output errors
256
- - [`slmp-device-matrix.json`](../../examples/flows/slmp-device-matrix.json): one-by-one and run-all high-level read, write, and readback across the matrix catalog with one outstanding request at a time, status lamp feedback, completed-result history, run summary, unsupported-device skip records, and JSONL logging under `Node-RED userDir/logs/slmp-device-matrix-<session>.jsonl`
257
- - [`slmp-routing.json`](../../examples/flows/slmp-routing.json): per-request routing with `msg.target`
258
- - [`slmp-udp-read-write.json`](../../examples/flows/slmp-udp-read-write.json): basic UDP read/write
256
+ - [`slmp-device-matrix.json`](../../examples/flows/slmp-device-matrix.json): one-by-one and run-all high-level read, write, and readback across the matrix catalog with one outstanding request at a time, status lamp feedback, completed-result history, run summary, unsupported-device skip records, and JSONL logging under `Node-RED userDir/logs/slmp-device-matrix-<session>.jsonl`
257
+ - [`slmp-routing.json`](../../examples/flows/slmp-routing.json): per-request routing with `msg.target`
258
+ - [`slmp-udp-read-write.json`](../../examples/flows/slmp-udp-read-write.json): basic UDP read/write
259
259
 
260
260
  Recommended first import:
261
261
 
@@ -270,6 +270,6 @@ Recommended first import:
270
270
  - `.bit,count` is not supported
271
271
  - direct bit devices should be addressed directly as `M1000`, `X1F`, or `Y20`
272
272
  - a single client connection keeps requests serialized by default
273
- - the read and write nodes keep the caller-visible logical request shape and do not silently switch to a different fallback split behavior
274
- - read/write errors can throw, attach to `msg.error`, or go to a second output
275
- - the editor validates connection fields, literal address lists, literal update payloads, and literal route JSON before save
273
+ - the read and write nodes keep the caller-visible logical request shape and do not silently switch to a different fallback split behavior
274
+ - read/write errors can throw, attach to `msg.error`, or go to a second output
275
+ - the editor validates connection fields, literal address lists, literal update payloads, and literal route JSON before save
@@ -33,9 +33,9 @@ Available flows:
33
33
  - [`slmp-routing.json`](slmp-routing.json): per-request routing using `msg.lookup` and `msg.target`
34
34
  - [`slmp-udp-read-write.json`](slmp-udp-read-write.json): basic UDP read and write example
35
35
 
36
- Notes:
37
-
38
- - The flow nodes keep the caller-visible logical request shape and do not silently switch to a different fallback split behavior.
39
- - In `slmp-device-matrix.json`, `Run all reads` and `Run all writes` are the auto-run buttons. The `Auto run status lamp` shows active, pending, idle, and error state in the editor.
40
- - Family-unsupported device codes are sent with `slmpSkipUnsupported` by the matrix flow, so they become yellow `SKIPPED` result records instead of red node failures.
41
- - Each matrix JSONL result includes `plcFamily` near the top of the record, followed by request, operation, address, status, and timing fields.
36
+ Notes:
37
+
38
+ - The flow nodes keep the caller-visible logical request shape and do not silently switch to a different fallback split behavior.
39
+ - In `slmp-device-matrix.json`, `Run all reads` and `Run all writes` are the auto-run buttons. The `Auto run status lamp` shows active, pending, idle, and error state in the editor.
40
+ - Family-unsupported device codes are sent with `slmpSkipUnsupported` by the matrix flow, so they become yellow `SKIPPED` result records instead of red node failures.
41
+ - Each matrix JSONL result includes `plcFamily` near the top of the record, followed by request, operation, address, status, and timing fields.
@@ -99,7 +99,7 @@
99
99
  <input type="text" id="node-config-input-timeout" placeholder="3000" />
100
100
  </div>
101
101
  <div class="form-row">
102
- <label for="node-config-input-plcFamily"><i class="fa fa-cog"></i> PLC type</label>
102
+ <label for="node-config-input-plcFamily"><i class="fa fa-cog"></i> PLC type</label>
103
103
  <select id="node-config-input-plcFamily">
104
104
  <option value="iq-f">iQ-F</option>
105
105
  <option value="iq-r">iQ-R</option>
@@ -136,6 +136,6 @@
136
136
 
137
137
  <script type="text/html" data-help-name="slmp-connection">
138
138
  <p>Reusable SLMP connection profile for Mitsubishi PLC access over binary 3E or 4E frames.</p>
139
- <p>Select one explicit PLC type. The node derives the frame type, access profile, and string address rules from that type.</p>
139
+ <p>Select one explicit PLC type. The node derives the frame type, access profile, and string address rules from that type.</p>
140
140
  <p><code>slmp-read</code> and <code>slmp-write</code> can send <code>connect</code>, <code>disconnect</code>, and <code>reinitialize</code> control messages through this shared connection.</p>
141
141
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fa_yoshinobu/node-red-contrib-plc-comm-slmp",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "Node-RED nodes for Mitsubishi PLC communication over SLMP binary 3E/4E frames.",
5
5
  "author": "fa-yoshinobu",
6
6
  "license": "MIT",