From d0b66bf105d26b33d0c9eec9bddbff4fe108a897 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Wed, 7 Oct 2026 15:09:04 -0400 Subject: [PATCH] docs(history): OtOpcUa TwinCAT native array subscriptions (2026-10-07) --- .claude/skills/sister-project-history/otopcua.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index 4e9bc51..816940c 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -28,3 +28,10 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes module I/O paths (`Local:1:I.Data`) accepted; unknown tag no longer throttles its whole device (`BadNodeIdUnknown`/`BadTimeout`); user-string arrays; width-vs-authored-type mismatch → `BadTypeMismatch`. Residual: same-width wrong type undetectable (libplctag discards the reply type code). +- **TwinCAT native array subscriptions** (same day, merge `f3e92fec`): array tags now subscribe natively — one ADS notification for the + whole array, sized by the resolved data type and decoded from raw bytes by the same `TwinCATArrayCodec` the poll read now uses (the + lib's typed array read failed live for `ARRAY OF TIME`, multi-dim and TC2 member arrays). Multi-dim flattened in PLC order; a shorter + authored `arrayLength` reads the first N; element/length/struct mismatches → `BadTypeMismatch` per tag; native arrays capped at + 128 KiB (`BadOutOfRange` beyond; poll uncapped). Supersedes the `UseNativeNotifications=false`-for-arrays workaround above. Also fixed: + bit-indexed BOOL notifications register on the parent word (the `WORD.N` path failed the whole subscribe call). Live-gated read-only + on Z33856/Z33733 — native == poll for every array incl. changing, multi-dim, STRING(80) and a 131,072 B array.