docs(phase4c): cross-driver 1-D array support + isArray/arrayLength keys + coverage matrix
This commit is contained in:
@@ -291,6 +291,56 @@ See [AlarmHistorian.md](AlarmHistorian.md) for the historian sidecar setup and
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Cross-driver TagConfig key reference
|
||||
|
||||
The `TagConfig` JSON blob is the single extension surface for per-tag server-side
|
||||
behaviours across all drivers. Keys from multiple phases coexist in the same blob;
|
||||
unknown keys are preserved byte-stable on round-trip by all typed editors.
|
||||
|
||||
### Historian + alarm keys (Phase B / Phase C)
|
||||
|
||||
| Key | Type | Phase | Description |
|
||||
|---|---|---|---|
|
||||
| `isHistorized` | bool | C | Marks the tag historized (HistoryRead + Historizing=true). |
|
||||
| `historianTagname` | string | C | Explicit historian tagname override (defaults to `FullName`). |
|
||||
| `alarm` | object | B | Native alarm definition (`alarmType`, `severity`, `historizeToAveva`, …). |
|
||||
|
||||
### Array keys (Phase 4c)
|
||||
|
||||
| Key | Type | Phase | Description |
|
||||
|---|---|---|---|
|
||||
| `isArray` | bool | 4c | When `true` and `arrayLength >= 1`, materialises the node as a 1-D array (`ValueRank=OneDimension`). Absent or `false` → scalar. |
|
||||
| `arrayLength` | uint (≥1) | 4c | Element count; sets `ArrayDimensions`. Required when `isArray: true`. |
|
||||
|
||||
### Cross-driver array coverage matrix
|
||||
|
||||
| Driver | Read mechanism | Live-verify status |
|
||||
|---|---|---|
|
||||
| **Modbus** | Contiguous FC03/FC04 block; String/BitInRegister modes supported | Mac-verifiable (sim `10.100.0.35:5020`) |
|
||||
| **S7** | `ReadBytesAsync` block + per-element decode loop | Unit-proven (fixture down) |
|
||||
| **AB CIP** | libplctag native array read (atomic + UDT member arrays) | Unit-proven (fixture down) |
|
||||
| **AB Legacy** | PCCC multi-element file read via libplctag (cap 256 elements) | Unit-proven (fixture down) |
|
||||
| **TwinCAT** | ADS native array symbol read | Unit-proven (fixture down) |
|
||||
|
||||
Array writes, multi-dimensional arrays (ValueRank>1), and per-element historization are out of scope — see [Uns.md §Array tags](Uns.md#array-tags-1-d).
|
||||
|
||||
---
|
||||
|
||||
## Closed stillpending.md §2 items (Phase 4 / Phase 4b)
|
||||
|
||||
The following items from the `stillpending.md` backlog §2 were closed by earlier
|
||||
phases and are recorded here so future audits don't re-flag them.
|
||||
|
||||
| Item | Closed by | Commit |
|
||||
|---|---|---|
|
||||
| Modbus Int64 / UInt64 OPC UA node `DataType` correction | Phase 4 | `bd8fee61` |
|
||||
| `HistoryAggregateType.Total` — `Total` aggregate | Phase 4 (derived client-side as time-weighted Average × interval-seconds) | `5e27b5f7` |
|
||||
| Historian poison alarm-event indefinite retry — dead-letter cap (task #437) | Phase 4 | `fcb38014` |
|
||||
|
||||
---
|
||||
|
||||
## See also
|
||||
|
||||
- [docs/plans/2026-06-14-galaxy-phase-c-historian-design.md](plans/2026-06-14-galaxy-phase-c-historian-design.md) — full design and implementation notes
|
||||
@@ -298,3 +348,4 @@ See [AlarmHistorian.md](AlarmHistorian.md) for the historian sidecar setup and
|
||||
- [AlarmTracking.md](AlarmTracking.md) — OPC UA Part 9 alarm surface (event history source)
|
||||
- [Client.CLI.md](Client.CLI.md) — full `historyread` flag reference
|
||||
- [ScriptedAlarms.md](ScriptedAlarms.md) §"Native driver alarms" — the Phase B `alarm` object in `TagConfig` (parallel carrier)
|
||||
- [Uns.md §Array tags](Uns.md#array-tags-1-d) — `isArray`/`arrayLength` keys, cross-driver coverage, and deferrals
|
||||
|
||||
Reference in New Issue
Block a user