diff --git a/.claude/skills/alarm-management/tasks/alarm-checks.md b/.claude/skills/alarm-management/tasks/alarm-checks.md index 69f496d..e3ab369 100644 --- a/.claude/skills/alarm-management/tasks/alarm-checks.md +++ b/.claude/skills/alarm-management/tasks/alarm-checks.md @@ -2,7 +2,7 @@ task: Read-only checks of ALARM Service; generate an informational test event version: R1.05 (first written for R1.03) source: IM 36K10L15-01EN §1, §2.6, §3.4, §4.3, §6; IM 36K10C20-01EN §A7 (4th editions, Feb. 2026; content as in the 3rd editions, Sep. 2023); practiced on the R1.03 test system 2026-10-01 and read-only on the R1.05 test server 2026-10-09 -status: verified on R1.03 (2026-10-01). R1.05 - verified (R1.05 test server, 2026-10-09): processes, durwfp, active setup-file lines, almdbg 1/9/12, alhdbg 1, predefined ack types and the ALH storage group; setup files, templates and alarm dataset definitions compared by hash with R1.03 (identical except the files in §5). The INFO event (§4) was not generated on R1.05 (it writes to the shared alarm history). +status: verified on R1.03 (2026-10-01). R1.05 - verified (R1.05 test server, 2026-10-09): processes, durwfp, active setup-file lines, almdbg 1/9/12, alhdbg 1, predefined ack types and the ALH storage group; setup files, templates and alarm dataset definitions compared by hash with R1.03 (identical except the files in §5). The INFO event (§4) was not generated on R1.05 (it writes to the shared alarm history). Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): INFO event with almdbg 16 (V10). --- # ALARM Service checks @@ -71,7 +71,8 @@ description. Check with a filter `'EVENT_TYPE = "INFO"'` (plus a time range) on **Verified (R1.03):** the event appears with `EVENT_TYPE` INFO, `ITEM_NAME` = the given name, `ALARM_TEXT` = status text, `DESCRIPTION` = description, priority 15, ack 1. Other text columns (`INSTALL`, `UNIT`, `SUB`, `SOURCE`, `CATEGORY`, `CONDITION`) contain leftovers or unreadable -characters (ISS-037): use the event only as a test marker. Not run on R1.05. +characters (ISS-037): use the event only as a test marker. **R1.05 (2026-10-09, V10):** same +result (`EVENT_TYPE` INFO, text and description as given, priority 15, ack 1). ## 5. What changed in the installed files on R1.05 diff --git a/.claude/skills/alarm-management/tasks/item-alarming.md b/.claude/skills/alarm-management/tasks/item-alarming.md index fdbe614..651b46b 100644 --- a/.claude/skills/alarm-management/tasks/item-alarming.md +++ b/.claude/skills/alarm-management/tasks/item-alarming.md @@ -2,7 +2,7 @@ task: Switch on alarming for an item, test an alarm, read and acknowledge alarms version: R1.05 (first written for R1.03) source: IM 36K10L15-01EN §2.1–§2.3, IM 36K10C20-01EN §A2, §A5, §A12 (4th editions, Feb. 2026; content as in the 3rd editions, Sep. 2023); IM 36K01A50 §1.16 (ODBC acknowledge, unchanged in the 5th edition); IM 36K10C50-01EN §2.22, §4.12 (custom acknowledgement, R1.04+); practiced on CI-Eng-Sample 2026-10-01 -status: verified on R1.03 (2026-10-01). R1.05 - ITEM_DF alarm fields, STATUS_DF, ALARM_CURRENT and ALARM_CHRONO definitions identical to R1.03; the sample alarm on TANK1.LEVEL (ALARMING, CIENG_ACK, CIENG_TANKS) loaded with 0 errors on the R1.05 test server (2026-10-08, load check only). Raising, acknowledging, delaying and repeating an alarm were not re-tested on R1.05 (shared server). Custom acknowledgement with reason and approver - from docs, not tested (ISS-099). +status: verified on R1.03 (2026-10-01). R1.05 - ITEM_DF alarm fields, STATUS_DF, ALARM_CURRENT and ALARM_CHRONO definitions identical to R1.03; the sample alarm on TANK1.LEVEL (ALARMING, CIENG_ACK, CIENG_TANKS) loaded with 0 errors on the R1.05 test server (2026-10-08, load check only). Raising, acknowledging, delaying and repeating an alarm were not re-tested on R1.05 (shared server). Custom acknowledgement with reason and approver - from docs, not tested (ISS-099). Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): raise, acknowledge via ALARM_CURRENT (two ACKNOW records), return to normal, DELAY 5 / REPEAT 10 (V10). --- # Item alarming @@ -121,6 +121,15 @@ No alarm line from `ALDPRT` appeared in `umhlog.log` (ISS-035). ## R1.05 (R1.05 test server) +- 2026-10-09 (V10, with approval, removed afterwards): same results as the R1.03 table. 50 → 85: + status 10, options without `ack`, one `ALARM_CURRENT` row; acknowledged with `dssqld -m` + (`NAME`,`ACK`) → `ack` back, two `ACKNOW` records (the second with the node name); back to 50 → + `NORMAL`, `ALARM_CURRENT` empty. With `DELAY` 5 / `REPEAT` 10 and 27 s above the limit: + `DIRECT`, `DELAY` +5 s, `REPEAT` +15 s and +25 s (`RPT_COUNT` 1, 2), `NORMAL` (unacknowledged), + then a `NORMAL` with ack 1 after resetting `DELAY`/`REPEAT`. Note: an `ALARM_CHRONO` export + with `@FIELDS` must include `NAME` (the primary index), otherwise `DSS-E-PIDX_FST` and nothing is + exported. Alarm history and audit records of a test cannot be removed afterwards. + - 2026-10-08: the reduced sample load switched on alarming for `TANK1.LEVEL` (`CIENG_ACK`, `CIENG_TANKS`) with 0 errors and removed it again with 0 errors. This was a load check only: no alarm was raised or acknowledged. diff --git a/.claude/skills/class-object-engineering/tasks/change-reset-class.md b/.claude/skills/class-object-engineering/tasks/change-reset-class.md index b809acf..3eb55e7 100644 --- a/.claude/skills/class-object-engineering/tasks/change-reset-class.md +++ b/.claude/skills/class-object-engineering/tasks/change-reset-class.md @@ -2,7 +2,7 @@ task: Change a class that already has objects (compile and reset) version: R1.05 (first written for R1.03) source: IM 36K10L10-01EN 4th ed. (Feb. 2026) §4 (Reset class); IM 36K10P11-01EN 4th ed. §2.3, §10.4; practiced with CI-Eng-Sample class CIENG_TANK 2026-09-30 -status: verified on R1.03 (2026-09-30, Engineering Module reset 2026-10-01). Not re-tested on R1.05; it needs the sample loaded again on the shared test server (awaiting decision, ISS-158). Manuals unchanged and CLASS_DF / CLASS_RESET_COMMAND definitions identical on R1.05 (2026-10-09), so the R1.03 results are expected to hold +status: verified on R1.03 (2026-09-30, Engineering Module reset 2026-10-01). Not re-tested on R1.05; it needs the sample loaded again on the shared test server (awaiting decision, ISS-158). Manuals unchanged and CLASS_DF / CLASS_RESET_COMMAND definitions identical on R1.05 (2026-10-09), so the R1.03 results are expected to hold Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): compile sets RESET_REQUIRED 1 and the object keeps the old code; dssqld RESET 1 still does nothing (ISS-028); opcdbg Classes action 8 resets (RESET_REQUIRED 0, new PRINT text at once); OBJECT_ATTR_VAL CAPACITY 400 → volume 200 at level 50 (V15). Compile and reset leave opc_t*.asc/.lst/.rst files in %TLS_LST_PATH%; delete them after a test. --- # Change a class that has objects diff --git a/.claude/skills/item-engineering/tasks/block-item.md b/.claude/skills/item-engineering/tasks/block-item.md index d679f04..f1aaaaa 100644 --- a/.claude/skills/item-engineering/tasks/block-item.md +++ b/.claude/skills/item-engineering/tasks/block-item.md @@ -2,7 +2,7 @@ task: Block / unblock an item and write to a blocked item version: R1.05 (first written for R1.03) source: IM 36K10G10-01EN 5th ed. (Feb. 2026) §3.3, §3.4; IM 36K10C10-01EN 5th ed. (Feb. 2026) §3.4, §3.5; practiced with CI-Eng-Sample 2026-09-30 (R1.03) -status: verified on R1.03 (2026-09-30); on R1.05 the BLOCKED fields of SECTION_DF, ITEM_DF and ITEM_VAL and the option bits are unchanged (checked 2026-10-08, read-only); blocking and writes to a blocked item not re-tested on the shared R1.05 test server, re-test awaits a decision (ISS-129) +status: verified on R1.03 (2026-09-30); on R1.05 the BLOCKED fields of SECTION_DF, ITEM_DF and ITEM_VAL and the option bits are unchanged (checked 2026-10-08, read-only); blocking and writes to a blocked item not re-tested on the shared R1.05 test server, re-test awaits a decision (ISS-129) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): block, silent ignore without -o, write with -o, unblock leaves ublk (V9). --- # Block / unblock an item @@ -38,6 +38,6 @@ dssqld -m block.qli -l block.qlo item was written by an application (`itmval -o`) while it was blocked (IM 36K10C10 §3.5, ISS-001). -R1.05: not re-tested (blocking changes live behaviour on the shared test server). Before -relying on the silent-ignore behaviour on R1.05, block a test item, write it without and with -`-o`, and check the value and the `blk` / `ublk` flags as above. +R1.05 (re-tested 2026-10-09, V9): same behaviour. `CI-Eng-Sample.TANK1.INFLOW` blocked → option +`blk`, status 9; `itmval -p … -v 77` exit 0, value unchanged; `-o` wrote 88 and added `ublk`; after +unblocking `blk` was gone and `ublk` stayed. diff --git a/.claude/skills/item-engineering/tasks/string-items.md b/.claude/skills/item-engineering/tasks/string-items.md index 3e8101a..e7aa7a1 100644 --- a/.claude/skills/item-engineering/tasks/string-items.md +++ b/.claude/skills/item-engineering/tasks/string-items.md @@ -2,7 +2,7 @@ task: String items: length limit and truncation version: R1.05 (first written for R1.03) source: IM 36K10C10-01EN 5th ed. (Feb. 2026) §3.3.4; IM 36K10G10-01EN 5th ed. (Feb. 2026) §3.2.2; data dictionary (`dssqld -f`); practiced on CI-Eng-Sample 2026-09-30 (R1.03) -status: verified on R1.03 (2026-09-30); on R1.05 the limit 1–200 / default 80 was checked in the data dictionary and ITEM_DF is identical (2026-10-08, read-only); string writes and truncation not re-tested on the shared R1.05 test server, re-test awaits a decision (ISS-129) +status: verified on R1.03 (2026-09-30); on R1.05 the limit 1–200 / default 80 was checked in the data dictionary and ITEM_DF is identical (2026-10-08, read-only); string writes and truncation not re-tested on the shared R1.05 test server, re-test awaits a decision (ISS-129) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): a 120-character write to a length-100 item stored 99 characters with status 12 (V9). --- # String items diff --git a/.claude/skills/reporting/tasks/define-reports.md b/.claude/skills/reporting/tasks/define-reports.md index 9047984..b3bbe45 100644 --- a/.claude/skills/reporting/tasks/define-reports.md +++ b/.claude/skills/reporting/tasks/define-reports.md @@ -2,7 +2,7 @@ task: Define reports by quick load (ad hoc with parameters, schedule, item trigger, HTML, logbook); generate, read, print and delete generated reports; remove reports version: R1.05 (first written for R1.03) source: IM 36K10C30-01EN §2.1, §2.3.1, §3, App. 1 (4th Edition, Feb. 2026); IM 36K10L50-01EN App. 1 (REPORT_DF, REPORT_VAL); IM 36K10P20-01EN (4th Edition, Feb. 2026); practiced on CI-Eng-Sample 2026-10-01 -status: verified on R1.03 (2026-10-01, command line and Engineering Module); on R1.05 the REPORT_DF / REPORT_VAL definitions are identical to R1.03 (file hashes, 2026-10-08) and the sample's three reports loaded and were removed with 0 errors on the R1.05 test server (2026-10-08, load check only); generating, printing and deleting generated reports not tested on R1.05 (shared server) +status: verified on R1.03 (2026-10-01, command line and Engineering Module); on R1.05 the REPORT_DF / REPORT_VAL definitions are identical to R1.03 (file hashes, 2026-10-08) and the sample's three reports loaded and were removed with 0 errors on the R1.05 test server (2026-10-08, load check only); generating, printing and deleting generated reports not tested on R1.05 (shared server) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): generate with dssqld (stored, not printed: FSL-E-PRT_UNKUSER), print a generated report to the file destination, item trigger 0 → 450 generated by RPTMAN and printed (V12). --- # Define and run reports @@ -125,6 +125,12 @@ NAME,ACTIVATION_TIME,GENERATION_INTERVAL ## R1.05 (2026-10-08/09) +- 2026-10-09 (V12, with approval, removed afterwards): same as R1.03. `GENERATE` 1 on + `CIENG_TANK1` → back to 0 within 5 s, one `REPORT_VAL` record (`ACTION_PROCESS` `DSSQLD`, + user `FULL AUTHORIZATION`), `FSL-E-PRT_UNKUSER` in `umhlog.log` and nothing printed (ISS-045); + `PRINT` 1 with `DEST_NAME` `CIENG_FILE` on that record wrote the report to the file; the item + trigger `CIENG_INFLOW_HI` (0 → 450) produced a record by `RPTMAN` and a line in the file. + - **Verified (R1.05 test server, 2026-10-08):** the reduced CI-Eng-Sample load created the file device and destination and the three reports with 0 errors (the sample files still say `@VERSION 1.03.00`; R1.05 accepts them) and the sample's remove files (schedule cleared diff --git a/.claude/skills/reporting/tasks/report-checks.md b/.claude/skills/reporting/tasks/report-checks.md index 2fea209..63ca376 100644 --- a/.claude/skills/reporting/tasks/report-checks.md +++ b/.claude/skills/reporting/tasks/report-checks.md @@ -2,7 +2,7 @@ task: Check REPORT Service (processes, set-up files, system reports) and stop a hanging report version: R1.05 (first written for R1.03) source: IM 36K10R40-01EN §1.3, §2.2, §2.3, §5 (4th Edition, Feb. 2026); IM 36K10C30-01EN §4, App. 1.3 (4th Edition, Feb. 2026); practiced on the test system 2026-10-01 -status: verified on R1.03 (2026-10-01); on the R1.05 test server processes, set-up files, start/stop scripts, system reports and factory destinations checked read-only (2026-10-09); rptstp not re-tested on R1.05 (it cancels a running report on a shared server) +status: verified on R1.03 (2026-10-01); on the R1.05 test server processes, set-up files, start/stop scripts, system reports and factory destinations checked read-only (2026-10-09); rptstp not re-tested on R1.05 (it cancels a running report on a shared server) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): rptstp rptge1 stopped an endless LOOP report, GENERATE back to 0, RPTGE1 still attached (V12). --- # REPORT Service checks @@ -83,5 +83,5 @@ above; 28 system reports; `rptstp rptge1` cancelled the test report `CIENG_LOOP` - 28 system reports, same names as R1.03, all ad hoc, priority 0, lifetime 1 week, no schedule or destination; only `SYSTEM_LOG_HTML` has `CONTAINS_HTML` 1. - Factory destinations as on R1.03, no devices (`output-devices.md`). -- Not re-tested: `rptstp` (awaiting user verification on a non-shared system: load a report with - an endless `LOOP`, generate it, run `rptstp rptge1`; expected as on R1.03). +- `rptstp` re-tested 2026-10-09 (V12, with approval): an endless `LOOP` report kept `GENERATE` 1; + `rptstp rptge1` (exit 0) stopped it, `GENERATE` went to 0 and `RPTGE1` stayed attached. diff --git a/.claude/skills/reporting/tasks/rql-interactive.md b/.claude/skills/reporting/tasks/rql-interactive.md index 61e7f6d..6c060c3 100644 --- a/.claude/skills/reporting/tasks/rql-interactive.md +++ b/.claude/skills/reporting/tasks/rql-interactive.md @@ -2,7 +2,7 @@ task: Try RQL queries in the interactive report generator; write CSV with SPOOL version: R1.05 (first written for R1.03) source: IM 36K10R40-01EN §4; IM 36K10P20-01EN §3–6, §9; IM 36K10C30-01EN §3.2.3 (all 4th Edition, Feb. 2026); R1.05 data dictionary (ITEM_VAL); practiced on the test system and CI-Eng-Sample 2026-10-01 -status: verified on R1.03 (2026-10-01); on the R1.05 test server piped query files, cursors (DECLARE/OPEN/FETCH), group functions, @VERSION and the new ITEM_VAL fields verified read-only (2026-10-09); SPOOL/CSV, history queries and the CI-Eng-Sample examples not re-run on R1.05 (sample not loaded on the shared server) +status: verified on R1.03 (2026-10-01); on the R1.05 test server piped query files, cursors (DECLARE/OPEN/FETCH), group functions, @VERSION and the new ITEM_VAL fields verified read-only (2026-10-09); SPOOL/CSV, history queries and the CI-Eng-Sample examples not re-run on R1.05 (sample not loaded on the shared server) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): SPOOL with @EXPORT wrote the quoted CSV lines to %TLS_LST_PATH% (file deleted) (V12). --- # RQL in the interactive generator diff --git a/examples/CI-Eng-Sample/README.md b/examples/CI-Eng-Sample/README.md index a622a2a..2fdfdf2 100644 --- a/examples/CI-Eng-Sample/README.md +++ b/examples/CI-Eng-Sample/README.md @@ -44,7 +44,8 @@ For a server that other projects use, where CI Server must not be restarted: | `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