This website requires JavaScript.
Explore
Help
Register
Sign In
dohertj2
/
lmxopcua
Watch
1
Star
0
Fork
0
You've already forked lmxopcua
Code
Issues
5
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
22de358f743a2a89462b93a223b796fa5dc6c685
lmxopcua
/
docs
/
v2
T
History
Joseph Doherty
22de358f74
v2-ci / unit-tests (push)
Has been cancelled
Details
docs(ga): G2 PASS (one defect fixed in f416b883; #909/#910/#911 environmental); G1 + G7 evidence recorded pending owner decision
2026-11-13 08:59:07 -05:00
..
implementation
chore(auth): OtOpcUa unify dev LDAP base DN to dc=zb,dc=local (Task 1.6)
2026-06-02 06:45:23 -04:00
acl-design.md
docs+ui(security): state plainly that node ACLs are not enforced (§8.1,
#520
)
2026-07-27 18:36:48 -04:00
admin-ui.md
docs(v2): finish path corrections in phase-7-status, admin-ui, OpcUaClient fixture
2026-05-26 12:09:47 -04:00
AdminUI-rebuild-plan.md
docs: source-verified deferment register + correct 17 drifted docs
2026-07-27 17:26:20 -04:00
Architecture-v2.md
test+docs: retire the stale EquipmentTagsDarkBatch4 skips, guard the deploy-time
2026-07-28 14:32:13 -04:00
aveva-system-platform-io-research.md
…
Cluster.md
docs: one role authority — precedence, normalization, and the overlay invariant (R3-04)
2026-08-20 10:29:37 -04:00
config-db-schema.md
docs: fix two stale mesh-program claims found in review (Phase 5 gate passed; Phase 6 ended fleet-wide gossip)
2026-08-06 16:30:47 -04:00
ControlPlane.md
docs(v2): Architecture-v2 + Cluster + ControlPlane + Runtime overviews (Task 65)
2026-05-26 06:41:48 -04:00
dev-environment.md
feat(focas): OtOpcUa-owned otopcua-focas-fixture stack (
#651
) + FOCAS backlog docs (
#633
)
2026-10-08 19:12:13 -04:00
dl205.md
fix(driver-modbus-addressing): resolve Low code-review findings (Driver.Modbus.Addressing-006,007,009)
2026-05-23 08:18:15 -04:00
driver-specs.md
docs(security): credential-reference namespaces + migration note (
#815
)
2026-11-11 01:37:25 -05:00
driver-stability.md
docs: rewrite IncrementalSync + AddressSpace for v3, fix driver-specs/driver-stability tier claims, update Secrets runbook for pair replication + KEK rotation (
#623
)
2026-10-08 08:13:14 -04:00
f14b-part9-sdk-notes.md
feat(scripted-alarms): materialise real Part 9 AlarmConditionState nodes (T14)
2026-06-10 19:19:10 -04:00
focas-version-matrix.md
feat(focas): real FANUC 30i/31i-B PDU-v3 support (live-validated on a 31i-B)
2026-06-25 16:41:42 -04:00
Galaxy.ParityMatrix.md
docs: post-PR-7.2 cleanup — audit + three-track scrub
2026-04-30 08:59:59 -04:00
Galaxy.ParityRig.md
docs: post-PR-7.2 cleanup — audit + three-track scrub
2026-04-30 08:59:59 -04:00
Galaxy.Performance.md
fix(galaxy): park data-change events that overtake their SubscribeBulk reply (
#859
)
2026-11-11 10:19:24 -05:00
mitsubishi.md
Phase 3 PR 55 -- Mitsubishi MELSEC Modbus TCP quirks research document. 451-line doc at docs/v2/mitsubishi.md mirroring the docs/v2/dl205.md template for the MELSEC family (Q-series + QJ71MT91, L-series + LJ71MT91, iQ-R + RJ71EN71, iQ-R built-in Ethernet, iQ-F FX5U built-in, FX3U + FX3U-ENET / FX3U-ENET-P502, FX3GE built-in). Like Siemens S7, MELSEC Modbus is a patchwork of per-site-configured add-on modules rather than a fixed firmware stack, but the MELSEC-specific traps are different enough to warrant their own document. Key findings worth flagging for the PR 58+ implementation track: (1) MODULE NAMING TRAP -- QJ71MB91 is SERIAL RTU, not TCP. The Q-series TCP module is QJ71MT91. Driver docs + config UI should surface this clearly because the confusion costs operators hours when they try to connect to an RS-232 module via Ethernet. (2) NO CANONICAL MAPPING -- every MELSEC Modbus site has a unique 'Modbus Device Assignment Parameter' block of up to 16 assignments (each binding a MELSEC device range like D0..D1023 to a Modbus-address range); the driver must treat the mapping as runtime config, not device-family profile. (3) X/Y BASE DEPENDS ON FAMILY -- Q/L/iQ-R use HEX notation for X/Y (X20 = decimal 32), FX/iQ-F use OCTAL (X20 = decimal 16, same as DL260); iQ-F has a GX Works3 project toggle that can flip this. Single biggest off-by-N source in MELSEC driver code -- driver address helper must take a family selector. (4) Word order CDAB across Q/L/iQ-R/iQ-F by default (CPU-level, not module-level) -- no user-configurable swap on the server side. FX5U's SWAP instruction is for CLIENT mode only. Driver Mitsubishi profile default must be ByteOrder.WordSwap, matching DL260 but OPPOSITE of Siemens S7. (5) D-registers are BINARY by default (opposite of DL205's BCD-by-default). FNC 18 BCD / FNC 19 BIN instructions confirm binary-by-default in the ladder. Caller must explicitly opt-in to Bcd16/Bcd32 tags when the ladder stores BCD, same pattern as DL205 but the default is inverted. (6) FX5U FIRMWARE GATE -- needs firmware >= 1.060 for native Modbus TCP server; older firmware is client-only. Surface a clear capability error on connect. (7) FX3U PORT 502 SPLIT -- the standard FX3U-ENET cannot bind port 502 (lower port range restricted on the firmware); only FX3U-ENET-P502 can. FX3U-ENET-ADP has no Modbus at all and is a common operator mis-purchase -- driver should surface 'module does not support Modbus' as a distinct error, not 'connection refused'. (8) QJ71MT91 does NOT support FC22 (Mask Write) or FC23 (Read-Write Multiple). iQ-R and iQ-F do. Driver bulk-read optimization must gate on module capability. (9) MAX CONNECTIONS -- 16 simultaneous on Q/L/iQ-R, 8 on FX5U and FX3U-ENET. (10) STOP-mode writes -- configurable on Q/L/iQ-R/iQ-F (default = accept writes even in STOP), always rejected with exception 04 on FX3U-ENET. Per-model test differentiation section names the tests Mitsubishi_QJ71MT91_*, Mitsubishi_FX5U_*, Mitsubishi_FX3U_ENET_*, with a shared Mitsubishi_Common_* fixture for CDAB-word-order + binary-not-BCD + standard-exception-codes tests. 17 cited references including primary Mitsubishi manuals (SH-080446 for QJ71MT91, JY997D56101 for FX5, SH-081259 for iQ-R Ethernet, JY997D18101 for FX3U-ENET) plus Ignition / Kepware / Fernhill / HMS third-party driver release notes. Three unconfirmed rumours flagged explicitly: iQ-R RJ71EN71 early firmware rumoured ABCD word order (no primary source), QJ71MT91 firmware < 2010-05 FC15 odd-byte-count truncation (forum report only), FX3U-ENET firmware < 1.14 out-of-order TxId echoes under load (unreproducible on bench). Pure documentation PR -- no code, no tests. Per-quirk implementation lands in PRs 58+. Research conducted 2026-04-18.
2026-04-18 22:51:28 -04:00
modbus-addressing.md
fix(arrays): Modbus row honours the FC16/FC03 protocol ceilings, the RMW read cap and the address-space end
2026-10-22 17:32:57 -04:00
modbus-test-plan.md
docs: update path references for module-folder reorganization
2026-05-17 02:10:29 -04:00
multi-host-dispatch.md
Phase 6.1 multi-host dispatch — document shipped contract + per-driver status
2026-04-24 19:01:47 -04:00
phase-7-status.md
docs: source-verified deferment register + correct 17 drifted docs
2026-07-27 17:26:20 -04:00
plan.md
docs: sync against recent code changes
2026-05-23 18:57:04 -04:00
redundancy-interop-playbook.md
docs: source-verified deferment register + correct 17 drifted docs
2026-07-27 17:26:20 -04:00
Runtime.md
refactor(runtime): delete the dead in-place ApplyDelta seam; config change = respawn only (
#665
)
2026-10-09 11:23:16 -04:00
s7.md
…
test-data-sources.md
fix(abcip,adminui): ParseEnum device wording + libplctag probe assertion (
#574
); AB forms preserve unknown keys + MaxConcurrentReads (
#576
); probe off for new AbCip driver (
#577
); docs T4:0.DN (
#584
)
2026-10-07 22:53:04 -04:00
v2-release-readiness.md
docs(ga): G2 PASS (one defect fixed in f416b883; #909/#910/#911 environmental); G1 + G7 evidence recorded pending owner decision
2026-11-13 08:59:07 -05:00
V1_ARCHIVE_STATUS.md
Phase 2 PR 61 -- Close V1_ARCHIVE_STATUS.md; Phase 2 Streams D + E done. Purely a documentation-closure PR. The v1 archive deletion itself happened across earlier PRs: PR 2 on phase-2-stream-d archive-marked the four v1 projects (IsTestProject=false so dotnet test slnx bypassed them); Phase 3 PR 18 deleted the archived project source trees. What remained on disk was stale bin/obj residue from pre-deletion builds -- git never tracked those, so removing them from the working tree is cosmetic only (no source-file diff in this PR). What this PR actually changes: V1_ARCHIVE_STATUS.md is rewritten from 'Deletion plan (Phase 2 PR 3)' pre-work prose to a CLOSED retrospective that (a) lists all five v1 directories as deleted with check-marks (src/OtOpcUa.Host, src/Historian.Aveva, tests/Historian.Aveva.Tests, tests/Tests.v1Archive, tests/IntegrationTests), (b) names the parity-bar tests that now fill the role the 494 v1 tests originally held (Driver.Galaxy.E2E cross-FX subprocess parity + stability-findings regression, per-component *.Tests projects, Driver.Modbus.IntegrationTests, LiveStack/ smoke tests), and (c) gives the closure timeline connecting PR 2 -> Phase 3 PR 18 -> this PR 61. Also added the Modbus TCP driver family as parity coverage that didn't exist in v1 (DL205 + S7-1500 + Mitsubishi MELSEC via pymodbus sim). Stream D (retire legacy Host) has been effectively done since Phase 3 PR 18; Stream E (parity validation) is done since PR 2 landed the Driver.Galaxy.E2E project with HostSubprocessParityTests + HierarchyParityTests + StabilityFindingsRegressionTests. This PR exists to definitively close the two pending Phase 2 tasks on the task list and give future-me (or anyone picking up Phase 2 retrospectives) a single 'what actually happened' doc instead of a 'what we plan to do' prose that didn't match reality. dotnet build ZB.MOM.WW.OtOpcUa.slnx: 0 errors, 200 warnings (all xunit1051 cancellation-token analyzer advisories, unchanged from v2 tip). No test regressions -- no source code changed.
2026-04-18 23:20:54 -04:00