docs(ab): native transport, Transport switch, known gaps and the type-check change
This commit is contained in:
@@ -93,10 +93,39 @@ binds from the driver's `DriverConfig` JSON:
|
||||
- **`Devices`** — one `AbLegacyDeviceOptions` per PLC (`HostAddress`, `PlcFamily`, optional `DeviceName`).
|
||||
- **`Tags`** — pre-declared `AbLegacyTagDefinition` list (`Name`, `DeviceHostAddress`, `Address`, `DataType`, `Writable`, `WriteIdempotent`).
|
||||
- **`Probe`** — connectivity-probe `Enabled` / `Interval` / `Timeout` / `ProbeAddress`.
|
||||
- **`Transport`** — `Libplctag` (default) or `Native`; see [Transport](#transport-transport-option).
|
||||
|
||||
Full per-field descriptions live in the contracts assembly. The JSON skeleton is
|
||||
reproduced in [docs/v2/driver-specs.md §4](../v2/driver-specs.md).
|
||||
|
||||
## Transport (`transport` option)
|
||||
|
||||
Same switch as AB CIP: `transport` = `Libplctag` (default) \| `Native`, a string (case-insensitive on read,
|
||||
written as `"Libplctag"` / `"Native"`). `Native` is a managed PCCC-over-EtherNet/IP client
|
||||
(`Driver.Ab.Transport`) and is **opt-in**; the default stays `Libplctag` pending the real-press gate and the
|
||||
default flip. A change takes effect when the driver instance is recreated (a deploy that changes
|
||||
`DriverConfig`); the AdminUI form has a **Transport** dropdown in the advanced section, and the driver logs
|
||||
`transport=<X>` on every init. CLI: `--transport native|libplctag`. See
|
||||
[AbCip.md §Transport](AbCip.md#transport-transport-option) for the shared behaviour (one pooled connection
|
||||
per device, Forward Open throttle, routing).
|
||||
|
||||
Native routing: SLC500/MicroLogix/PLC-5 are direct; `logixpccc` uses UnconnectedSend and its SLC framing is
|
||||
**unverified**.
|
||||
|
||||
### Native known gaps
|
||||
|
||||
- ⚠️ **Simulator-only.** PCCC reads and writes are verified against `ab_server` only. No real SLC/MicroLogix/
|
||||
PLC-5 has been exercised, and the real-press gate (Task 21) is read-only and has not run yet.
|
||||
- **PLC-5 native is N-file reads only.** Every other file type and all PLC-5 writes are refused, currently
|
||||
surfacing as `BadCommunicationError` rather than `BadNotSupported` (#571). The planned default flip excludes
|
||||
PLC-5 and `logixpccc`.
|
||||
- Status-bit sub-element writes (e.g. `T4:0/DN`, `C5:0/DN`) are Unsupported natively (they would clobber the
|
||||
control word); nothing goes on the wire. Sub-element arrays are Unsupported natively. L-file bit indexes
|
||||
above 15 are allowed.
|
||||
- **ST (string) file layout is uncaptured**, so the string byte order is unverified natively.
|
||||
- Capture recipe for golden frames: `scripts/ab-capture/capture.sh` (see
|
||||
[AbLegacy-Test-Fixture.md](AbLegacy-Test-Fixture.md)). Follow-up issues: #564 to #577.
|
||||
|
||||
## Testing
|
||||
|
||||
- **Unit tests** — `tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Tests/` cover the driver, the PCCC address parser, and the host-address parser via fake tag runtimes.
|
||||
|
||||
Reference in New Issue
Block a user