From 39e58af2ffe21af6a9864484de363e3202e99e9c Mon Sep 17 00:00:00 2001 From: cliu Date: Thu, 8 Oct 2026 19:10:26 +1100 Subject: [PATCH] R1.05 V4: reduced CI-Eng-Sample load tested and removed on shared server Classes, sub-items, Modbus loopback and OPC UA loopback pass on R1.05. New examples/CI-Eng-Sample/shared/: snapshot, reduced load/remove, test and DSS temp-file cleanup scripts for shared servers. Before/after snapshot identical; ISS-091 (dss_*.tmp left in tls\lst); ISS-080 note. Certificate files of the test await deletion by the user. Co-Authored-By: Claude Opus 5.5 --- .claude/skills/data-access/SKILL.md | 2 +- .../skills/data-access/tasks/opcua-client.md | 2 +- .claude/skills/equipment/SKILL.md | 2 +- .../skills/equipment/tasks/modbus-station.md | 2 +- examples/CI-Eng-Sample/README.md | 26 ++++++++++++- .../CI-Eng-Sample/shared/clean_dss_tmp.ps1 | 15 ++++++++ .../CI-Eng-Sample/shared/reduced_load.cmd | 27 ++++++++++++++ .../CI-Eng-Sample/shared/reduced_remove.cmd | 21 +++++++++++ examples/CI-Eng-Sample/shared/snapshot.ps1 | 37 +++++++++++++++++++ examples/CI-Eng-Sample/shared/test_r105.ps1 | 36 ++++++++++++++++++ knowledge/issues.md | 3 +- knowledge/progress.md | 8 ++-- knowledge/r105-verification.md | 26 ++++++++++--- 13 files changed, 190 insertions(+), 17 deletions(-) create mode 100644 examples/CI-Eng-Sample/shared/clean_dss_tmp.ps1 create mode 100644 examples/CI-Eng-Sample/shared/reduced_load.cmd create mode 100644 examples/CI-Eng-Sample/shared/reduced_remove.cmd create mode 100644 examples/CI-Eng-Sample/shared/snapshot.ps1 create mode 100644 examples/CI-Eng-Sample/shared/test_r105.ps1 diff --git a/.claude/skills/data-access/SKILL.md b/.claude/skills/data-access/SKILL.md index 0bafb01..e83ca54 100644 --- a/.claude/skills/data-access/SKILL.md +++ b/.claude/skills/data-access/SKILL.md @@ -47,7 +47,7 @@ Rules: | Task | File | Status | |---|---|---| -| OPC UA client to an OPC UA server (sample: loopback to CI Server's own server): line, station, subscription, points, certificate exchange, node IDs, browse via dataset | `tasks/opcua-client.md` | verified on R1.03; R1.05 files and datasets checked; loopback awaiting user decision (sample load) | +| OPC UA client to an OPC UA server (sample: loopback to CI Server's own server): line, station, subscription, points, certificate exchange, node IDs, browse via dataset | `tasks/opcua-client.md` | verified on R1.03 and R1.05 (loopback re-tested 2026-10-08) | | Make CI Server data available to OPC clients (OPC visible / Read / Write); CI Server OPC UA server endpoints, node IDs, certificates | `tasks/opcua-client.md` §1, §5 | verified on R1.03 (UA); DA/A&E from docs | | Read-only checks: ACCESS processes, ports (34493, 1583, 34597), OPC UA server config and PKI, extended functions, certificate validity, ODBC server state | `tasks/access-checks.md` | verified on R1.05 (2026-10-08) | | OPC UA client methods (`MTD_*` object, method form, `CIX_UAC_MTD` point) and R1.03 → R1.04 method upgrade | `tasks/opcua-client.md` §7 | from docs | diff --git a/.claude/skills/data-access/tasks/opcua-client.md b/.claude/skills/data-access/tasks/opcua-client.md index f2bb099..fbf7ddb 100644 --- a/.claude/skills/data-access/tasks/opcua-client.md +++ b/.claude/skills/data-access/tasks/opcua-client.md @@ -2,7 +2,7 @@ task: OPC UA client to an OPC UA server by quick load (loopback to CI Server's own OPC UA server) version: R1.05 (first written for R1.03) source: IM 36K10L45-01EN 5th ed. (Feb. 2026) §10, §11; IM 36K10E20-01EN 4th ed. (Feb. 2026) §2; practiced on CI-Eng-Sample 2026-10-01 on R1.03 (station CIENG_UA; full remove/reload; point also configured in the Engineering Module by the user and compared) -status: verified on R1.03 (§1–§6). R1.05 (2026-10-08, read-only): line/station/subscription/point dataset definitions identical to R1.03, PKI folders and client setup files checked; the loopback itself awaits the user's decision to load CI-Eng-Sample on the shared R1.05 test server (V4), the new form fields were confirmed in the installed form definitions (point form `READ_NODE_INFO` / `REBROWSE`; method form node ID type, parent object node ID, manual arguments, no process-area field), the forms themselves not opened. §7 (methods) from docs. +status: verified on R1.03 (§1–§6). R1.05 (2026-10-08, read-only): line/station/subscription/point dataset definitions identical to R1.03, PKI folders and client setup files checked; loopback re-tested on R1.05 2026-10-08 with the reduced sample load (certificate exchange as in §4, done by the user; COMM_OK 1, SRV_STATE 0, LEVEL_COPY follows TANK1.LEVEL; removed afterwards), the new form fields were confirmed in the installed form definitions (point form `READ_NODE_INFO` / `REBROWSE`; method form node ID type, parent object node ID, manual arguments, no process-area field), the forms themselves not opened. §7 (methods) from docs. --- # OPC UA client to an OPC UA server diff --git a/.claude/skills/equipment/SKILL.md b/.claude/skills/equipment/SKILL.md index a41bcc1..3ad8c1f 100644 --- a/.claude/skills/equipment/SKILL.md +++ b/.claude/skills/equipment/SKILL.md @@ -37,7 +37,7 @@ Rules: | Task | File | Status | |---|---|---| -| Modbus TCP station by quick load: line, station, scan type, points, connected items; test, off-scan, remove | `tasks/modbus-station.md` | verified | +| Modbus TCP station by quick load: line, station, scan type, points, connected items; test, off-scan, remove | `tasks/modbus-station.md` | verified (R1.03; re-tested on R1.05 2026-10-08) | | CI Server as Modbus slave (mirror `eqpmdcmem` + `eqpmdcslvtcp`) | `tasks/modbus-station.md` §1 | verified (by hand and via start file after a restart) | | Read-only equipment manager status with `eqpdbg` | `system-management` task `tuning-checks.md` | verified | | Forced scan (`eqpfrcscn`), hourly statistics (`eqpiostat`) | L40 summary | from docs (statistics empty, ISS-021) | diff --git a/.claude/skills/equipment/tasks/modbus-station.md b/.claude/skills/equipment/tasks/modbus-station.md index b654ed9..da1794f 100644 --- a/.claude/skills/equipment/tasks/modbus-station.md +++ b/.claude/skills/equipment/tasks/modbus-station.md @@ -2,7 +2,7 @@ task: Modbus TCP station by quick load (line, station, scan type, points, items) version: R1.05 (first written for R1.03) source: IM 36K10L41-01EN §2, §3.1–3.2, §3.6–3.7; IM 36K10C10-01EN §4.1; practiced on CI-Eng-Sample 2026-09-30 -status: verified on R1.03 (2026-09-30); on R1.05 the datasets, setup files and start scripts were checked identical (2026-10-08, read-only), re-run awaiting the user's decision to load CI-Eng-Sample on the shared R1.05 server (V4 in knowledge/r105-verification.md) +status: verified on R1.03 (2026-09-30); on R1.05 the datasets, setup files and start scripts were checked identical (2026-10-08, read-only), re-tested on R1.05 2026-10-08 with the reduced sample load on the shared test server (setpoint 1234 read back, COMM_OK 1, eqpdbg slave GOOD; mirror started for the test only; everything removed afterwards) --- # Modbus TCP station by quick load diff --git a/examples/CI-Eng-Sample/README.md b/examples/CI-Eng-Sample/README.md index 57e0bf0..e510549 100644 --- a/examples/CI-Eng-Sample/README.md +++ b/examples/CI-Eng-Sample/README.md @@ -1,11 +1,15 @@ # CI-Eng-Sample A small, invented sample project that anyone with this repo can load into a CI Server -**R1.03** test system. Skills use its names in their examples, and every skill task is +test system (R1.03 or R1.05). Skills use its names in their examples, and every skill task is re-tested against it so that no other project is needed. Built and tested on CI Server R1.03.00 (unlicensed test system), 2026-09-30; operator HMI, demo -user and live-data feed added 2026-10-06. +user and live-data feed added 2026-10-06. Reduced load (below) tested on R1.05.00 on a shared +server, 2026-10-08: loads with 0 errors (the `@VERSION 1.03.00` headers are accepted). + +**Every test ends with the system back in its original state:** remove what was loaded, stop +processes started for the test, undo certificate trust, delete scratch and temporary files. ## Load and remove @@ -30,6 +34,24 @@ cmd /c "\examples\CI-Eng-Sample\remove.cmd" has passed, so the script sets a stop time one minute ahead and waits. Removing the group also deletes its history. +### Testing on a shared server (`shared\`) + +For a server that other projects use, where CI Server must not be restarted: + +| Script | Does | +|---|---| +| `shared\snapshot.ps1 -Out ` | Read-only snapshot: record names (count, hash, `CIENG*` names) of every dataset the sample touches, file lists of `tls\com`, `sup`, `sav`, `lst`, the `pki` folders, running CI Server processes. Run before and after; compare the two files. | +| `shared\reduced_load.cmd` | `load.cmd` without the storage groups and history bindings (`03`, `04`: need a restart), the authorization group and user `CIENG` (`08`, `08b`: a password-less user on a shared server) and the layouts/displays (shared `Layouts.xml`) | +| `shared\test_r105.ps1` | Starts the Modbus slave mirror only for the test, checks classes, sub-items, Modbus loopback and OPC UA loopback with `itmval`, stops the mirror again | +| `shared\reduced_remove.cmd` | Removes exactly what `reduced_load.cmd` loaded | +| `shared\clean_dss_tmp.ps1 -Since