From 83af63ab5371b9c9beddd3947a311076463b0349 Mon Sep 17 00:00:00 2001 From: cliu Date: Thu, 8 Oct 2026 19:29:15 +1100 Subject: [PATCH] R1.05 re-check batch 2: graphics, history, portal, system-management, items Full manual diffs (C50, R30, C60, L20, C40, L35, R10, R20, J10, L30, L50, P30, G10, C10) and read-only checks on the shared R1.05 test server where the permission system allowed them. Skills and summaries moved to R1.05. Issues ISS-092..129 (gaps 104-107, 114-115, 130-131 unused); ISS-074 closed (manual and software agree), ISS-091 corrected by ISS-119. version-differences: unlisted manual changes and installed-only changes. r105-verification: V5-V9 and new not-tested rows. Co-Authored-By: Claude Opus 5.5 --- .claude/skills/graphics/SKILL.md | 42 +++++++--- .../skills/graphics/tasks/create-display.md | 22 ++++- .../skills/graphics/tasks/deploy-displays.md | 23 ++++-- .claude/skills/graphics/tasks/layouts.md | 11 ++- .claude/skills/graphics/tasks/trend.md | 9 +- .claude/skills/history-management/SKILL.md | 29 +++++-- .../tasks/history-checks.md | 21 ++++- .../tasks/storage-groups.md | 12 ++- .claude/skills/item-engineering/SKILL.md | 25 ++++-- .../item-engineering/tasks/block-item.md | 12 ++- .../item-engineering/tasks/string-items.md | 14 ++-- .../item-engineering/tasks/sub-items.md | 30 +++---- .claude/skills/portal-setup/SKILL.md | 30 ++++--- .../portal-setup/tasks/change-setup-file.md | 20 +++-- .../portal-setup/tasks/check-web-access.md | 32 +++++++- .../portal-setup/tasks/read-setup-file.md | 19 +++-- .claude/skills/system-management/SKILL.md | 43 ++++++---- .../system-management/tasks/bus-utilities.md | 33 +++++--- .../tasks/consistency-check.md | 11 +-- .../system-management/tasks/dss-tools.md | 40 +++++++-- .../system-management/tasks/export-dataset.md | 36 ++++++-- .../system-management/tasks/load-history.md | 15 +++- .../tasks/load-remove-records.md | 19 ++++- .../tasks/monitoring-processes.md | 15 +++- .../tasks/read-write-item.md | 18 ++-- .../system-management/tasks/tuning-checks.md | 24 ++++-- knowledge/issues.md | 42 ++++++++-- knowledge/manuals/IM36K10C10-01EN.md | 45 +++++++--- knowledge/manuals/IM36K10C40-01EN.md | 42 ++++++++-- knowledge/manuals/IM36K10C50-01EN.md | 65 +++++++++++++-- knowledge/manuals/IM36K10C60-01EN.md | 18 ++-- knowledge/manuals/IM36K10G10-01EN.md | 82 +++++++++++++++++-- knowledge/manuals/IM36K10J10-01EN.md | 34 ++++++-- knowledge/manuals/IM36K10L20-01EN.md | 25 ++++-- knowledge/manuals/IM36K10L30-01EN.md | 23 ++++-- knowledge/manuals/IM36K10L35-01EN.md | 19 +++-- knowledge/manuals/IM36K10L50-01EN.md | 37 +++++++-- knowledge/manuals/IM36K10P30-01EN.md | 19 +++-- knowledge/manuals/IM36K10R10-01EN.md | 58 +++++++++---- knowledge/manuals/IM36K10R20-01EN.md | 38 +++++++-- knowledge/manuals/IM36K10R30-01EN.md | 50 ++++++++--- knowledge/progress.md | 16 ++-- knowledge/r105-verification.md | 42 ++++++++++ knowledge/version-differences.md | 14 ++++ 44 files changed, 972 insertions(+), 302 deletions(-) diff --git a/.claude/skills/graphics/SKILL.md b/.claude/skills/graphics/SKILL.md index a70a4a6..8566a49 100644 --- a/.claude/skills/graphics/SKILL.md +++ b/.claude/skills/graphics/SKILL.md @@ -1,10 +1,12 @@ --- name: graphics description: >- - CI Server R1.03 operator graphics for the Operator Interface (desktop) and the HTML display + CI Server R1.05 operator graphics for the Operator Interface (desktop) and the HTML display (web): displays, symbols, layouts. Use when the user wants to create or change a display or symbol in the Edit Module (number field, text, - alarm overview, trend, buttons, actions, parameters, connecting a component to an item), + alarm overview, trend, buttons, actions, parameters, connecting a component to an item, + Generic Functions such as Password Check or RDP Connect, custom alarm acknowledgement with + reason and approver, web browser component), deploy or remove display files, export displays to HTML / Mobile Operator, open a display in a web browser (localhost:8080/mobileoperator), validate, search or unlock displays (jwuiutl, .lck files), find where displays, symbols and layouts are stored (DEPLOY folder, @@ -15,7 +17,23 @@ description: >- IM 36K10C50-01EN, IM 36K10R30-01EN, IM 36K10C60-01EN and the installed Layouts.readme. --- -# Graphics: displays, symbols, layouts (R1.03) +# Graphics: displays, symbols, layouts (R1.05) + +Re-checked for R1.05 on 2026-10-08 against the R1.05 manuals (C50 5th ed., R30 4th ed., C60 +5th ed., Feb. 2026; full text diff against R1.03). Everything practiced in the tasks was +practiced on **R1.03**; the read-only file comparison on the R1.05 test server could not be run +yet (awaiting user verification, see the C50/R30 summaries). What changed in R1.04/R1.05: + +- *Calculation/Function* component renamed **Generic Functions** (C50 §2.31); new operations + **Password Check** (R1.04) and **RDP Connect** (R1.05, installed script `tls\com\connectrdp.cmd`). +- Alarm overview: **custom acknowledgement** with reason and approver in the audit trail + (C50 §2.22, §4.12); *Update item/parameter* actions can record reason and approver. +- Web browser component (§2.33) uses a different browser engine in R1.05 (other codecs, new + security properties): embedded media made for R1.04 or earlier may not play. +- HTML display: Enterprise displays are no longer excluded (R30 §4.7/4.8/4.10, C50 §1.7); + HIS-TSE connections are not supported on the web. +- Paths: on the R1.05 test server program and data share one root (`C:\Yokogawa\CIServer`); + always use `%TLS_WAP_PATH%` instead of the R1.03 path `C:\Users\Public\Yokogawa\tls\wap`. Background: `knowledge/manuals/IM36K10C50-01EN.md` (Edit Module, components, sheets, symbols, `jwuiutl`, display file contents), `IM36K10R30-01EN.md` (folders, layouts, dataset forms, HTML @@ -30,6 +48,7 @@ Rules: Reloading the browser page logs out — use the display menu *View > Reload*, and the display box to open other displays. - `jwuiutl -vf`, `-u`, `-c`, `-a` rewrite or unlock files of **all** displays: only with approval. + `-v` also re-saves the displays it validates (`tasks/deploy-displays.md` §2). - Ask the user to close the Edit Module before CI Server is stopped or restarted: otherwise the next start fails (skill `system-check`, §3). - The Operator Interface (desktop) reads `Layouts.xml` only at start: after layout changes, @@ -37,12 +56,13 @@ Rules: | Task | File | Status | |---|---|---| -| Build a display in the Edit Module (text, number field, alarm overview, trend) and check the saved XML | `tasks/create-display.md` | verified | -| Write display XML directly / with the sample generator (text size, rounding, arc angles, item attributes for the web, server-side command, alarm overview columns) | `tasks/create-display.md` (*Writing display XML directly*), `examples/CI-Eng-Sample/displays/generator/` | verified 2026-10-06 | -| Deploy / remove display files, export HTML, validate and search with `jwuiutl` | `tasks/deploy-displays.md` | verified | -| Trend: pen sources (history group, aggregates), every pen and chart setting, desktop vs HTML display, 50-pen web workaround (`add_trend_spares.ps1`), Micro Trend | `tasks/trend.md` | verified (desktop); web workaround verified; Micro Trend open (ISS-055) | -| Open and check a display in the browser (HTML display / Mobile Operator) | `tasks/deploy-displays.md` §4 | verified | -| Operator layouts (`Layouts.xml`): windows, menus, toolbars, frames, popups, kiosk screens; open displays in frames and layouts; every parameter and command, desktop vs web (§6) | `tasks/layouts.md` | verified (per-user layout 2026-10-06; dual screen from docs) | -| Dataset forms (`*Dia.xml`) and the form description language | R30 summary §3 | from docs | +| Build a display in the Edit Module (text, number field, alarm overview, trend) and check the saved XML | `tasks/create-display.md` | verified on R1.03; R1.05 from docs (component changes listed in §R1.05) | +| Write display XML directly / with the sample generator (text size, rounding, arc angles, item attributes for the web, server-side command, alarm overview columns) | `tasks/create-display.md` (*Writing display XML directly*), `examples/CI-Eng-Sample/displays/generator/` | verified on R1.03 2026-10-06; not re-tested on R1.05 (no displays may be deployed on the shared test server) | +| Generic Functions (Password Check, RDP Connect), custom alarm acknowledgement with reason/approver, web browser component security properties | `tasks/create-display.md` §R1.05, C50 summary §3–4 | from docs (R1.05) | +| Deploy / remove display files, export HTML, validate and search with `jwuiutl` | `tasks/deploy-displays.md` | verified on R1.03; R1.05 option list awaiting user verification | +| Trend: pen sources (history group, aggregates), every pen and chart setting, desktop vs HTML display, 50-pen web workaround (`add_trend_spares.ps1`), Micro Trend | `tasks/trend.md` | verified on R1.03 (desktop); web workaround verified on R1.03, not re-tested on R1.05; Micro Trend open (ISS-055) | +| Open and check a display in the browser (HTML display / Mobile Operator) | `tasks/deploy-displays.md` §4 | verified on R1.03 | +| Operator layouts (`Layouts.xml`): windows, menus, toolbars, frames, popups, kiosk screens; open displays in frames and layouts; every parameter and command, desktop vs web (§6) | `tasks/layouts.md` | verified on R1.03 (per-user layout 2026-10-06; dual screen from docs); R30 ch. 1 unchanged in R1.05; installed `Layouts.readme` awaiting user verification | +| Dataset forms (`*Dia.xml`) and the form description language | R30 summary §3 | from docs (unchanged in R1.05) | | Symbols, parameters, actions, localisation, record/playback | C50 summary §1, §4, §5 | from docs | -| AOG library (styles, symbols, faceplates, templates) | C60 summary | from docs | +| AOG library (styles, symbols, faceplates, templates, OPC UA method displays) | C60 summary | from docs | diff --git a/.claude/skills/graphics/tasks/create-display.md b/.claude/skills/graphics/tasks/create-display.md index 0419507..b6d5dfb 100644 --- a/.claude/skills/graphics/tasks/create-display.md +++ b/.claude/skills/graphics/tasks/create-display.md @@ -1,8 +1,8 @@ --- task: Build a display in the Edit Module and check the saved file -version: R1.03 -source: IM 36K10C50-01EN §1.2, §1.7, §2, §4.8.1; practiced on CI-Eng-Sample (display CIENG_Tank) 2026-10-01; display XML written by the sample generator and checked on desktop and web 2026-10-02 to 2026-10-06 (installed web client code, component definitions in DEPLOY\components) -status: verified +version: R1.05 (first written for R1.03) +source: IM 36K10C50-01EN (R1.03 3rd ed. Sep. 2023; R1.05 5th ed. Feb. 2026) §1.2, §1.7, §2, §2.22, §2.25, §2.31–2.33, §4.8.1, §4.12; practiced on CI-Eng-Sample (display CIENG_Tank) 2026-10-01; display XML written by the sample generator and checked on desktop and web 2026-10-02 to 2026-10-06 (installed web client code, component definitions in DEPLOY\components) +status: verified on R1.03 (Edit Module steps, saved XML, generator rules). R1.05: manual re-checked 2026-10-08 (section R1.05 below, from docs); not re-tested on the R1.05 test server (shared server, no displays may be deployed; component list comparison awaiting user verification) --- # Build a display (Edit Module) @@ -71,6 +71,22 @@ Module, the Operator Interface and the HTML display, if these rules are kept (sa | Server-side command | `` with `` and `true` runs on the CI Server node as the service account `CIX_PROCESS`, also from the web; a user in the factory group `OPERATOR` may use it (tested 2026-10-06, sample live-data *Start*) | | Alarm overview | `autoFit` true in a tab that is hidden while loading squeezes all columns to ~0 px on the web: set `autoFit` false and give `columnWidth`; `column…Visible` for `AlarmAttribute` is an array property (a plain value fails the HTML export with `ClassCastException`); the empty part of the list stays **white** on both clients (no property; web: `jquery.dataTables.css` forces it); web rows are 20 px at a 14 px font (2026-10-02/06) | +## R1.05: component changes since R1.03 (from docs, IM 36K10C50-01EN 5th ed.) + +| Component / sheet | Change (version) | +|---|---| +| *Calculation/Function* → **Generic Functions** (§2.31) | Renamed (R1.05 manual). Timing now documented: *Date and Time* runs every 200 ms; other operations check their inputs every 100 ms and run on a change, and also when the display is loaded or reloaded. | +| Generic Functions: **Password Check** (R1.04) | Inputs T[I1] user name, T[I2] password; B[O] TRUE and T[O] = user name if the pair is valid, else FALSE and the DSS error text (e.g. `DSS-E-UNK_USER`). Needs the login method *Manual CI Server* or *Manual OS* for the Password Check function in `dssana.sup` (*Login control* tab; skill `authorization`). Not tested. | +| Generic Functions: **RDP Connect** (R1.05) | When triggered, writes an `.rdp` file and starts a Remote Desktop session to T[I1] (host or IP). Optional T[I2] RemoteApp alias/program, T[I3] RemoteApp command line, T[I4] RD Gateway (`host[:port]`, default 443). T[O] receives the generated file name. Installed helper: `%TLS_ROOT_PATH%\tls\com\connectrdp.cmd`. Not tested (needs a remote desktop target). | +| JavaScript Function (§2.32) | Wording: inputs checked every 100 ms, script runs on a change and also when the display is loaded/reloaded (R1.03 text implied no run at load). | +| Alarm overview (§2.22, R1.04/R1.05) | New *[Acknowledgement]* properties: **Use Custom Acknowledgement** (acknowledge from a user-made window instead of the overview) enables *Acknowledge Event*, *Acknowledged Alarm*, *Acknowledged Alarm Text*, *Acknowledged Alarm Time*; *Selected Alarm Key*; *[External Acknowledgement]* (*Alarm Key*, *Approver*, *Reason*, *Trigger*); *[Enterprise Alarm Locations]* for enterprise displays. | +| Actions sheet (§4.12, R1.04) | *Update item/parameter* on an item, object signal or parameter can carry **Reason** (≤ 256 chars) and **Approver** (≤ 128 chars); they land in `AUDIT_TRAIL` fields `APPROVAL_REASON` / `APPROVER` (skill `audit-trail`). Two documented recipes for alarm acknowledgement with reason/approver: via an item parameter (attribute *Acknowledged* = 1, item alarms only) or via the overview's *External Acknowledgement* properties (item and external alarms). Not tested. | +| Dataset tables (§2.25, R1.05) | Column **Icon**, *Icon filter* (``, `!`, `&` bit test), *Icon tooltip*; *Operator can use column sorters*; *Operator can select row(s)* / *multiple rows*; *[Enterprise Dataset Locations]*; enterprise location supported on the HTML display. | +| Report (§2.26, R1.05) | New *[Enterprise]* category (primary / secondary data location). | +| Web Browser (§2.33, R1.05) | New browser engine: protocols WebRTC, HTTPS, WebSocket, HTTP/2, HTTP/3; codecs VP8, VP9, WebM, Opus, Vorbis, PCM. Content that played on R1.04 or earlier may not play after the upgrade. Right-click menu; new properties *Go Home/Stop/Reload*, *[Printing]*, *[Status]*, *[Security]* (*Enable Microphone/Camera*, *Allow Insecure Certificates*, *Allow Local file access*). Local files for CI Mobile View must be placed under `%TLS_ALLUSERS_PATH%\wap` and opened by URL. | +| Display generator (§2.36) | The note "not supported on HTML displays" was removed in the R1.05 manual; R30 §4.8 does not list it. Treat web support as unconfirmed. | +| `jwuiutl -m` / `-M` (§1.5) | Output now described as space-separated (R1.03 manual: CSV). On R1.03 `-m` printed comma-separated lines (verified); R1.05 output not checked (ISS-094). | + ## Verified (CIENG_Tank, 2026-10-01) Text `CI-Eng-Sample Tank 1`, number field on `TANK1.LEVEL` (live: 72 → 61), alarm overview diff --git a/.claude/skills/graphics/tasks/deploy-displays.md b/.claude/skills/graphics/tasks/deploy-displays.md index e659933..41a36f5 100644 --- a/.claude/skills/graphics/tasks/deploy-displays.md +++ b/.claude/skills/graphics/tasks/deploy-displays.md @@ -1,14 +1,18 @@ --- task: Deploy, remove, export, validate and search displays; open them in the browser -version: R1.03 -source: IM 36K10C50-01EN §1.5; IM 36K10R30-01EN §1.1, §4; practiced on CI-Eng-Sample 2026-10-01; sample operator HMI (8 displays) and validate test 2026-10-06 -status: verified +version: R1.05 (first written for R1.03) +source: IM 36K10C50-01EN §1.5 (R1.05 5th ed. Feb. 2026); IM 36K10R30-01EN §1.1, §4 (R1.05 4th ed. Feb. 2026); practiced on CI-Eng-Sample 2026-10-01; sample operator HMI (8 displays) and validate test 2026-10-06 +status: verified on R1.03. R1.05: manuals re-checked 2026-10-08 (jwuiutl options and HTML export unchanged except the search output wording); not re-tested on the R1.05 test server (shared server: no deploy, validate or export allowed); `jwuiutl --help` and the deploy folder structure there awaiting user verification --- # Deploy and check displays -No admin rights needed (`C:\Users\Public\Yokogawa\tls\wap`). `jwuiutl.cmd` is in `tls\com` -(on `PATH`); call it through `cmd` (`cmd /c "jwuiutl.cmd …"`). +On R1.03 no admin rights were needed (`C:\Users\Public\Yokogawa\tls\wap`). On the R1.05 test +server the data root is `C:\Yokogawa\CIServer\tls`: use `%TLS_WAP_PATH%` and check write access +before deploying. `jwuiutl.cmd` is in `tls\com` (on `PATH`); call it through `cmd` +(`cmd /c "jwuiutl.cmd …"`). `jwuiutl.cmd --help` prints the option list (read-only; R1.03 help +text matches the C50 summary §2, but says `-o` defaults to the current directory, whereas the +export without `-o` wrote into `mobileoperator\operatorInterfaces\` — verified R1.03). ## 1. Deploy / remove (sample scripts) @@ -48,7 +52,8 @@ attributes - same content). Run it on copies, or redeploy the source files after cmd /c "jwuiutl.cmd -d -m > \match.txt 2>&1" ``` -CSV `Type, File, Component` per match; `-M` adds actions and properties. Use it before deleting +CSV `Type, File, Component` per match (R1.03; the R1.05 manual describes the output as +space-separated, not checked, ISS-094); `-M` adds actions and properties. Use it before deleting or renaming items to find the displays that use them. ## 4. Open in the browser (HTML display) @@ -59,6 +64,12 @@ line). To switch displays type the name in the display box and press Enter. To r display menu **View > Reload** (keeps the session) — **reloading the browser page ends the session** and needs a new login. Check live values by writing a test value (`itmval -p`, test items only). +R1.05 manual (IM 36K10R30-01EN §4.10, from docs): the restrictions "no automatic reconnect +after a disconnect" (reliable socket) and "no HTML export from CI View (Edit Module over Remote +Connect)" are no longer listed; enterprise displays and enterprise user-profile settings are no +longer excluded; new: HIS-TSE connections are not supported in the HTML display. Not tested on +R1.05 (ISS-093). + ## Verified (2026-10-01) Remove → deploy recreated both files; `-e HTML` output identical to the Edit Module's HTML; diff --git a/.claude/skills/graphics/tasks/layouts.md b/.claude/skills/graphics/tasks/layouts.md index 02e9085..4ddebff 100644 --- a/.claude/skills/graphics/tasks/layouts.md +++ b/.claude/skills/graphics/tasks/layouts.md @@ -1,8 +1,8 @@ --- task: Configure operator layouts (Layouts.xml): windows, menus, toolbars, frames, popups; open displays in frames and layouts -version: R1.03 -source: Layouts.readme (installed, %TLS_WAP_PATH%\cfg\operatorInterfaces\DEPLOY\layouts); IM 36K10R30-01EN §1, §4.7; IM 36K10C50-01EN §4.12; practiced with CI-Eng-Sample (layout CIENG_Operator) in the Operator Interface (desktop) and the HTML display 2026-10-01; parameter-by-parameter test (§6) on both clients 2026-10-02, web behaviour also read from the installed web client code (mobileoperator fasttools.min.js); sample operator HMI (layouts CIENG_Operator with a tab set and CIENG_Popup, user CIENG) and test layouts on both clients 2026-10-06 -status: verified (parameters tested on desktop and web 2026-10-02 except print orientation/margins, playback, multi-screen positions and the maximumTabs limit for new tabs) +version: R1.05 (first written for R1.03) +source: Layouts.readme (installed, %TLS_WAP_PATH%\cfg\operatorInterfaces\DEPLOY\layouts; R1.03 copy); IM 36K10R30-01EN §1, §4.4, §4.7 (R1.05 4th ed. Feb. 2026); IM 36K10C50-01EN §4.12; practiced with CI-Eng-Sample (layout CIENG_Operator) in the Operator Interface (desktop) and the HTML display 2026-10-01; parameter-by-parameter test (§6) on both clients 2026-10-02, web behaviour also read from the installed web client code (mobileoperator fasttools.min.js); sample operator HMI (layouts CIENG_Operator with a tab set and CIENG_Popup, user CIENG) and test layouts on both clients 2026-10-06 +status: verified on R1.03 (parameters tested on desktop and web 2026-10-02 except print orientation/margins, playback, multi-screen positions and the maximumTabs limit for new tabs). R1.05: R30 ch. 1 (layouts) unchanged apart from wording (re-checked 2026-10-08, from docs); the installed R1.05 `Layouts.readme` / `Layouts-original.xml` and the web client were not compared yet (awaiting user verification, ISS-092); no layout may be changed on the shared R1.05 test server --- # Operator layouts @@ -123,7 +123,10 @@ open as windows inside the page; print, look-and-feel and the debug key are not the layout with `&l=`, or let the user profile choose it (§3). Verified 2026-10-06: `?l=CIENG_Operator` (and a plain logon as `CIENG`) showed the sample menu, navigation toolbar, header, tab set and banner. The web client does not zoom displays (§6.1), so size them for the -browser window. +browser window. The manual agrees: IM 36K10R30-01EN §4.4 (R1.03 and R1.05) marks the profile's +*Layout* as supported on the HTML display; the earlier reading "layout not" came from a garbled +text extraction of that table (ISS-074, ISS-095). In R1.05 the *Enterprise* profile settings are +also marked supported on the web. ## 6. Parameter reference: desktop vs web (tested 2026-10-02) diff --git a/.claude/skills/graphics/tasks/trend.md b/.claude/skills/graphics/tasks/trend.md index 939cf76..966e08b 100644 --- a/.claude/skills/graphics/tasks/trend.md +++ b/.claude/skills/graphics/tasks/trend.md @@ -1,8 +1,8 @@ --- task: Configure a trend (chart) component; what each setting does on the desktop and in the HTML display -version: R1.03 -source: IM 36K10C50-01EN §2.27 (Trend, Tables 2.27-10…28), §2.29 (Micro Trend); IM 36K10R30-01EN §4.8.7; installed web client code (`%TLS_WAP_PATH%\mobileoperator\src\fasttools\ui\components\implementation\charts\`); practiced on CI-Eng-Sample (display CIENG_TrendLab, removed 2026-10-06) 2026-10-02; sample trends CIENG_Trends / CIENG_TankFaceplate and a test display on both clients 2026-10-06 -status: verified (desktop Operator Interface: every row marked ✅/❌ below; HTML display: §6) +version: R1.05 (first written for R1.03) +source: IM 36K10C50-01EN §2.27 (Trend, Tables 2.27-10…28), §2.29 (Micro Trend) (R1.05 5th ed. Feb. 2026); IM 36K10R30-01EN §4.8.7 (R1.05 4th ed. Feb. 2026); installed web client code (`%TLS_WAP_PATH%\mobileoperator\src\fasttools\ui\components\implementation\charts\`); practiced on CI-Eng-Sample (display CIENG_TrendLab, removed 2026-10-06) 2026-10-02; sample trends CIENG_Trends / CIENG_TankFaceplate and a test display on both clients 2026-10-06 +status: verified on R1.03 (desktop Operator Interface: every row marked ✅/❌ below; HTML display: §6). R1.05: manuals re-checked 2026-10-08 — §2.27/2.29 unchanged except the trend's *Enterprise* property, now marked supported on the HTML display (from docs). Not re-tested on R1.05; whether the 50-pen web problem (ISS-041) still exists in the R1.05 web client is awaiting user verification (ISS-096) --- # Trend settings (desktop and web) @@ -116,7 +116,8 @@ rotation, zoom. Outputs (⇨): *Hairline value[n]*, *Time range begin/end*, *Upd - **A trend with fewer than 50 visible pens with an item draws no line** in R1.03 (ISS-041): the web code always builds 50 data columns (`PEN_COUNT_LIMIT`) but labels only the visible pens with an item; console `Mismatch between number of labels (…) and number of columns in - array (51)`. The desktop is not affected. + array (51)`. The desktop is not affected. R1.05: not checked yet (ISS-096); the padding + workaround is harmless, so keep it until the R1.05 web client is checked. - **Workaround** (verified 2026-10-02): pad the trend to 50 pens with `displays/add_trend_spares.ps1 -Path .xml`. Spares copy the first pen's source, are scaled to 1E30–2E30 (clipped), hidden from the legend and get blank unique legend texts diff --git a/.claude/skills/history-management/SKILL.md b/.claude/skills/history-management/SKILL.md index edb3a49..57870b6 100644 --- a/.claude/skills/history-management/SKILL.md +++ b/.claude/skills/history-management/SKILL.md @@ -1,19 +1,29 @@ --- name: history-management description: >- - CI Server R1.03 HISTORY Service and item history. Use when the user wants to store item values + CI Server R1.05 HISTORY Service and item history. Use when the user wants to store item values in history (item storage group, storage group item, Scan/Time, Event/Item, Event/Event, Direct, scan interval, averaging, quality codes, priority), set rollover interval, life time or retention of history, use aggregation (30 minutes, hourly, shift, daily, weekly, monthly, yearly maximum / minimum / average / integral / standard deviation / counter / differential summation, ithsag.sup, completion notification), read history (ITEM_HISTORY, GROUP_NAME, - INTERPOLATION, ATTRIBUTE), load history from CSV (ithloahis), force a rollover, check storage - groups and units (hisdbg, his_units, history files h*.his), repair or recover history + INTERPOLATION, ATTRIBUTE; from applications via ODBC, .NET API, RESTful API or pyTOOLS), + load history from CSV (ithloahis), force a rollover, check storage groups and units (hisdbg, his_units, history files h*.his), repair or recover history (hisrep, hisrecover), or archive and retrieve history (has.sup, hasman, hasdbg, tape, DVD, disk archive). Sources IM 36K10L20-01EN, IM 36K10C40-01EN, IM 36K10L35-01EN. --- -# History management (R1.03) +# History management (R1.05; first written for R1.03) + +Re-checked for R1.05 on 2026-10-08 (read-only): the three manuals have no content change except +IM 36K10C40 §4.2 (R1.04), which now lists the RESTful API and pyTOOLS for reading history from +applications and drops the C API. The history setup files (`has.sup`, `his*.sup`, `ith*.sup` +incl. `ithsag.sup`) and the dataset definitions `HIS_GROUP_DF`, `ITEM_HIS_DF`, `ITEM_HISTORY`, +`HIS_UNITS` are the same as in R1.03 (compared with snapshots of the R1.05 test server; only +the C interface source `dsid_ihis_df.c` of `ITEM_HIS_DF` changed, ISS-102). +`history_start.cmd` and `item_start.cmd` (and their stop files) differ (ISS-100). Storage +groups were not re-tested on R1.05: the server is shared, and a new group needs a CI Server +restart (ISS-006). Background: `knowledge/manuals/IM36K10C40-01EN.md` (storage group fields, types, aggregation, archive, reading history), `IM36K10L20-01EN.md` (history manager, files, `hisdbg`, utilities, @@ -31,10 +41,11 @@ Rules: | Task | File | Status | |---|---|---| -| Create item storage groups (Event/Item, Scan/Time, Aggregation) and add items by quick load; remove them | `tasks/storage-groups.md` | verified | -| Read history with `dssqld` (`ITEM_HISTORY`, per group); aggregates | `tasks/storage-groups.md` §4 | verified | -| Load history from CSV (`ithloahis`); which time stamps are accepted | skill `system-management`, task `load-history.md` | verified | -| Check groups, units, clients, rollover with `hisdbg` | `tasks/history-checks.md` | verified | +| Create item storage groups (Event/Item, Scan/Time, Aggregation) and add items by quick load; remove them | `tasks/storage-groups.md` | verified (R1.03); R1.05: dataset definitions and setup files identical, not re-tested (shared server, needs a restart) | +| Read history with `dssqld` (`ITEM_HISTORY`, per group); aggregates | `tasks/storage-groups.md` §4 | verified (R1.03); R1.05 not re-tested | +| Load history from CSV (`ithloahis`); which time stamps are accepted | skill `system-management`, task `load-history.md` | verified (R1.03) | +| Check groups, units, clients, rollover with `hisdbg` | `tasks/history-checks.md` | verified (R1.03); R1.05 read-only options awaiting user verification (ISS-101) | | Archive / retrieve, `hasdbg` | C40 summary §4, L20 summary §5 | from docs (no archive device) | | Repair and recovery (`hisrep`, `hisrecover`, `isfrename`, `hiswrn`) | L20 summary §4 | from docs | -| Reading history from classes and reports; ODBC | C40 summary §5; reports: skill `reporting` | verified for reports (`rql-interactive.md`); ODBC from docs | +| Reading history from classes and reports | C40 summary §5; reports: skill `reporting` | verified for reports (R1.03, `rql-interactive.md`) | +| Reading history from applications: ODBC, .NET API, RESTful API (`GetHistory`, `GetHistoryMultiTag`), pyTOOLS (`getItemHistory`) | C40 summary §5; ODBC and REST: skill `data-access` (L45 summary §1, §9); pyTOOLS: IM 36K10P40 §3.13 (no skill yet) | from docs | diff --git a/.claude/skills/history-management/tasks/history-checks.md b/.claude/skills/history-management/tasks/history-checks.md index bcd7daa..9426fc1 100644 --- a/.claude/skills/history-management/tasks/history-checks.md +++ b/.claude/skills/history-management/tasks/history-checks.md @@ -1,8 +1,8 @@ --- task: Check storage groups, units and history clients with hisdbg; force a rollover -version: R1.03 -source: IM 36K10L20-01EN §2.1, §3.1; IM 36K10C40-01EN §5.1; practiced on the test system and CI-Eng-Sample 2026-10-01 -status: verified +version: R1.05 (first written for R1.03) +source: IM 36K10L20-01EN §2.1, §3.1 (4th Edition, Feb. 2026); IM 36K10C40-01EN §5.1 (5th Edition, Feb. 2026); practiced on the test system and CI-Eng-Sample 2026-10-01 +status: verified on R1.03 (2026-10-01). R1.05 - the manual sections are unchanged and the hisdbg program is still installed (2026-10-08), but hisdbg was not run on the R1.05 test server (awaiting user verification, ISS-101; steps at the end) --- # History checks (`hisdbg`) @@ -43,8 +43,21 @@ History files are in `%TLS_ALLUSERS_PATH%\tls\his\` (path shown by option 21): - After a CI Server restart the unit sequence increases (the start script runs `hisrep`). - Delete times = stop time + life time. -## Verified (2026-10-01) +## Verified (R1.03, 2026-10-01) 45 groups, 30 clients; `CIENG_EVENT` group 1,54, opt_type `2 2`, daily GMT rollover, life 7 days; units 1,1 (created at load) → 3,1 after restart → forced rollover closed 3,1 at 12:05:26 and opened 3,2. `CIENG_SCAN10S` 1,55 `1 1`; `CIENG_AGG` 1,56 `4 4` with extra `h0101ozzz…` files. + +## R1.05: awaiting user verification (ISS-101) + +On the R1.05 test server, in a normal command prompt (read-only options only): + +``` +hisdbg +``` + +Answer the node prompt with Enter (local), then `1` (statistics), `20` (all groups), `6` +(clients), and `-1` to exit. Do not choose any other number. Expected: the same menu as R1.03 +(`-1` … `22`), the system groups with history types 21, 6, 1058, 36, 4 (no item group unless +the server has one), and clients such as ITH*, ALH, ADTSTO, LGHUMH, RPTMAN. Send the output. diff --git a/.claude/skills/history-management/tasks/storage-groups.md b/.claude/skills/history-management/tasks/storage-groups.md index 78b0579..43d4b98 100644 --- a/.claude/skills/history-management/tasks/storage-groups.md +++ b/.claude/skills/history-management/tasks/storage-groups.md @@ -1,8 +1,8 @@ --- task: Create item storage groups (Event/Item, Scan/Time, Aggregation), add items, read history -version: R1.03 -source: IM 36K10C40-01EN §2.1, §3, App. 1; IM 36K10L20-01EN §2.1; practiced on CI-Eng-Sample 2026-10-01 -status: verified +version: R1.05 (first written for R1.03) +source: IM 36K10C40-01EN §2.1, §3, §4.2, App. 1 (5th Edition, Feb. 2026); IM 36K10L20-01EN §2.1 (4th Edition, Feb. 2026); practiced on CI-Eng-Sample 2026-10-01 +status: verified on R1.03 (2026-10-01). R1.05 - dataset definitions (HIS_GROUP_DF, ITEM_HIS_DF, ITEM_HISTORY) and setup files (ithsag.sup, itheix.sup, itheex.sup, ithstx.sup) identical to R1.03 (compared 2026-10-08 with snapshots of the R1.05 test server); not re-tested on R1.05 (shared server; a new group needs a CI Server restart, and the reduced sample load left out the history groups) --- # Item storage groups (quick load) @@ -77,6 +77,10 @@ and 11:54 started storing only after the 12:00 restart). Ask the user to restart ``` `dssqld -e .qli .qli -c`. Item name and a time range are required; times are local. +From other applications (C40 §4.2, from docs): ODBC and the RESTful API (`GetHistory`, +`GetHistoryMultiTag`; both also from remote PCs) in skill `data-access`; .NET API; pyTOOLS +(`dss.getItemHistory`, IM 36K10P40 §3.13, no skill yet; uses its own attribute and period +names). Reports: skill `reporting`. `GROUP_NAME` picks one group (otherwise every group with the item answers). Columns: `SAMPLE_TIME`, `SAMPLE_END_TIME`, `INTERVAL_TIME`, `ITEM_VALUE`, `QUALITY`, `INITIAL_VALUE` (1 = value at unit start), `STATUS`, `INTERPOLATION`, `ATTRIBUTE`, `GROUP_NAME`, … @@ -105,7 +109,7 @@ Items first (`ITEM_HIS_DF` names), then give each group a `STOP_TIME` in the fut delete: `HIS-E-GROUPHASUNT`, ISS-005). `remove.cmd` does this for all three sample groups. Removing a group deletes its history. -## Verified (CI-Eng-Sample, 2026-10-01) +## Verified (R1.03, CI-Eng-Sample, 2026-10-01) | Group | Type | Result | |---|---|---| diff --git a/.claude/skills/item-engineering/SKILL.md b/.claude/skills/item-engineering/SKILL.md index 2e578a5..813dc06 100644 --- a/.claude/skills/item-engineering/SKILL.md +++ b/.claude/skills/item-engineering/SKILL.md @@ -1,14 +1,23 @@ --- name: item-engineering description: >- - CI Server R1.03 sections, items and sub-items. Use when the user wants to create or change + CI Server R1.05 sections, items and sub-items. Use when the user wants to create or change sections, items or sub-items (integrator, min-max, pulse, rate-of-change), set limits, scale or value format, string item length, integrator time unit (integration granule), PIT filter, block or unblock items or sections, or understand item status and option flags (blk, off, uoff, ublk). Sources IM 36K10G10-01EN (Tutorial) and IM 36K10C10-01EN. +version: R1.05 (first written for R1.03) --- -# Item engineering (R1.03) +# Item engineering (R1.05) + +Re-checked on R1.05 on 2026-10-08: the dataset definitions `SECTION_DF`, `ITEM_DF`, +`SUB_ITEM_DF`, `STATUS_DF`, the item form (`JhmiItemDia.xml`) and `itm.sup` (integration +granule `itm_int_secs` = 1) are identical to R1.03. Only `ITEM_VAL` changed: it has three new +fields `ENG_UNIT`, `SCALE_HIGH_LIMIT`, `SCALE_LOW_LIMIT` (by their names the item's +engineering units and scale limits next to the value; not in any manual, values not yet read, +ISS-126). The R1.05 manuals now give the string +item maximum the software uses (200 bytes, ISS-124). Background: `knowledge/manuals/IM36K10G10-01EN.md` (chapter 3). Bulk creation of sections and items uses quick load files: skill `system-management`, task `load-remove-records.md`. @@ -20,8 +29,10 @@ Rules: | Task | File | Status | |---|---|---| -| Sub-items (integrator, min-max) | `tasks/sub-items.md` | verified | -| Block / unblock an item; write to a blocked item | `tasks/block-item.md` | verified | -| String items: length limit (1–200) and truncation | `tasks/string-items.md` | verified | -| Item forms, limits, PIT filter, clamping, alarm tab, option bits, item statuses | `knowledge/manuals/IM36K10C10-01EN.md` §3–4 | from docs | -| Switch on alarming, ack type, delay/repeat, test and acknowledge alarms | skill `alarm-management`, task `item-alarming.md` | verified | +| Sections, items, sub-items (integrator, min-max) by quick load | `tasks/sub-items.md` | verified (R1.03; R1.05 test server 2026-10-08: sample sections, items and sub-items loaded with 0 errors, min-max followed the level) | +| Integrator time unit (`itm_int_secs`) | `tasks/sub-items.md` | verified (R1.03); R1.05 file identical, not re-tested (setup-file change on a shared server) | +| Block / unblock an item; write to a blocked item | `tasks/block-item.md` | verified (R1.03); R1.05 re-test awaits a decision (ISS-129) | +| String items: length limit (1–200) and truncation | `tasks/string-items.md` | verified (R1.03); R1.05 limit checked in the data dictionary, writes not re-tested (ISS-129) | +| Item forms, limits, PIT filter, clamping, alarm tab, option bits, item statuses | `knowledge/manuals/IM36K10C10-01EN.md` §3–4 | from docs (form definition identical on R1.05) | +| Switch on alarming, ack type, delay/repeat, test and acknowledge alarms | skill `alarm-management`, task `item-alarming.md` | verified (R1.03) | +| CENTUM VP virtual test and HIS-TSE connection (new Tutorial ch. 14–15) | `knowledge/manuals/IM36K10G10-01EN.md` | from docs; not tested (no CENTUM VP, ISS-127) | diff --git a/.claude/skills/item-engineering/tasks/block-item.md b/.claude/skills/item-engineering/tasks/block-item.md index 7c48550..d679f04 100644 --- a/.claude/skills/item-engineering/tasks/block-item.md +++ b/.claude/skills/item-engineering/tasks/block-item.md @@ -1,8 +1,8 @@ --- task: Block / unblock an item and write to a blocked item -version: R1.03 -source: IM 36K10G10-01EN §3.3, §3.4; practiced with CI-Eng-Sample 2026-09-30 -status: verified +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) --- # Block / unblock an item @@ -27,7 +27,7 @@ dssqld -m block.qli -l block.qlo (Engineering Module: right-click the item or section › *Block/Unblock*.) -## Behaviour (verified on `CI-Eng-Sample.TANK1.INFLOW`) +## Behaviour (verified on R1.03 with `CI-Eng-Sample.TANK1.INFLOW`) - Blocked: option flag `blk` appears in `itmval -g`; the status number is unchanged (stayed 9). - `itmval -p -n -v ` on a blocked item is **silently ignored** (exit code 0, no @@ -37,3 +37,7 @@ dssqld -m block.qli -l block.qlo - After unblocking, `blk` is gone but `ublk` (option bit 16, *updated blocked*) remains: the 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. diff --git a/.claude/skills/item-engineering/tasks/string-items.md b/.claude/skills/item-engineering/tasks/string-items.md index d0134a8..3e8101a 100644 --- a/.claude/skills/item-engineering/tasks/string-items.md +++ b/.claude/skills/item-engineering/tasks/string-items.md @@ -1,15 +1,15 @@ --- task: String items: length limit and truncation -version: R1.03 -source: IM 36K10C10-01EN §3.3.4; data dictionary (`dssqld -f`); practiced on CI-Eng-Sample 2026-09-30 -status: verified +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) --- # String items A string item has a maximum length set when it is created (`ITEM_DF.STRING_LENGTH`). -| Rule | Value (verified) | +| Rule | Value (verified R1.03) | |---|---| | Allowed `STRING_LENGTH` | 1–200 (default 80); 201 is rejected with `DSS-E-VAL_RANGE` | | Audit trailing (`AUDIT_INFO`) | no effect on the limit (200 loads with audit on) | @@ -17,8 +17,10 @@ A string item has a maximum length set when it is created (`ITEM_DF.STRING_LENGT | Value that fits | stored, status 9 NORMAL | | Value too long | cut to length − 1, status **12 OVERRANGED**, no error from `itmval` | -The manuals disagree (Engineering Module: max 100; Tutorial: 168); the installed software -allows 200 (`knowledge/issues.md` ISS-019). Multi-byte characters take more than one byte. +The R1.03 manuals disagreed (Engineering Module: max 100; Tutorial: 168; ISS-019). The R1.05 +manuals (changed in R1.04, not listed in the revision tables) give default 80 and maximum +200 **bytes**, matching the software (ISS-124). Multi-byte characters take more than one byte. +That a value holds only length − 1 characters is not in any manual. Quick load (the section must exist): diff --git a/.claude/skills/item-engineering/tasks/sub-items.md b/.claude/skills/item-engineering/tasks/sub-items.md index 16ebacc..d3db3ed 100644 --- a/.claude/skills/item-engineering/tasks/sub-items.md +++ b/.claude/skills/item-engineering/tasks/sub-items.md @@ -1,8 +1,8 @@ --- task: Create sub-items (integrator, min-max) -version: R1.03 -source: IM 36K10G10-01EN §3.1.5, §3.2.3; IM 36K10C10-01EN §3.2; practiced with CI-Eng-Sample 2026-09-30 -status: verified +version: R1.05 (first written for R1.03) +source: IM 36K10G10-01EN 5th ed. (Feb. 2026) §3.1.5, §3.2.3; IM 36K10C10-01EN 5th ed. (Feb. 2026) §3.2; practiced with CI-Eng-Sample 2026-09-30 (R1.03) +status: verified on R1.03 (2026-09-30); verified (R1.05 test server, 2026-10-08) for loading — the reduced CI-Eng-Sample load created sections, items and both sub-items with 0 errors and LEVEL.MAX followed the level; SUB_ITEM_DF and itm.sup identical to R1.03; integrator rate and the itm_int_secs change not re-tested on R1.05 --- # Sub-items @@ -23,19 +23,21 @@ NAME,DESCRIPTION,SUB_TYPE,TIME_UNIT,MIN_MAX ``` Load with `dssqld -i .qli -l .qlo`; remove with a `NAME`-only file and `dssqld -r` -(before removing the main item). +(before removing the main item). R1.05 accepts these files unchanged (`@VERSION 1.03.00`). -## Behaviour (verified) +## Behaviour -- **Integrator** adds *value × time unit*: with the main item at 1 it grows by 1 per second - by default. The time unit is the **integration granule** `itm_int_secs` in `itm.sup` - (Setup File Editor label "Integration granule, sec."), **system-wide** for all integrators, - installed value 1. Setting 60 and restarting CI Server made it grow by 1 per minute - (verified 2026-09-30, ISS-010). Changing it is a setup-file change (skill `portal-setup`, - task `change-setup-file.md`); existing integrator values are not converted, so reset or - note them. `TIME_UNIT` on the sub-item has no effect on integrators. +- **Integrator** (verified R1.03) adds *value × time unit*: with the main item at 1 it grows by + 1 per second by default. The time unit is the **integration granule** `itm_int_secs` in + `itm.sup` (Setup File Editor label "Integration granule, sec."), **system-wide** for all + integrators, installed value 1 (same file on R1.05). Setting 60 and restarting CI Server + made it grow by 1 per minute (R1.03, 2026-09-30, ISS-010). Changing it is a setup-file change + (skill `portal-setup`, task `change-setup-file.md`); existing integrator values are not + converted, so reset or note them. `TIME_UNIT` on the sub-item has no effect on integrators. - **Min-Max** with `MIN_MAX` = `Maximum` (or `Minimum`) keeps the highest (lowest) value - written to the main item: writing 30, 70, 50 gave 70. -- `TIME_UNIT` (Second, Minute, Hour, Day) belongs to Rate-of-Change (from docs, not practiced). + written to the main item: writing 30, 70, 50 gave 70 (R1.03). On R1.05 `TANK1.LEVEL.MAX` + followed the rising level (R1.05 test server, 2026-10-08). +- `TIME_UNIT` (Second, Minute, Hour, Day; default Day) belongs to Rate-of-Change (from docs, + not practiced). Example files: `examples/CI-Eng-Sample/02b_sub_item_df.qli`, `90b_remove_sub_item_df.qli`. diff --git a/.claude/skills/portal-setup/SKILL.md b/.claude/skills/portal-setup/SKILL.md index a0a0b2f..2955b97 100644 --- a/.claude/skills/portal-setup/SKILL.md +++ b/.claude/skills/portal-setup/SKILL.md @@ -1,17 +1,24 @@ --- name: portal-setup description: >- - CI Server R1.03 CI Portal, CI View and setup files. Use when the user wants to read, check + CI Server R1.05 CI Portal, CI View and setup files. Use when the user wants to read, check or change a setup file (.sup) or use the Setup File Editor, write setup file metadata (!KEYWORD, !TAB, !ARG), choose between CI Portal and CI View, set up a CI Portal node - (dur.sup host node, copying displays), check the Remote Connect web page or web ports - (8080/8443), or tune the operator interface, Engineering Module or Edit Module + (dur.sup host node, gateway core, copying displays), check the Remote Connect web page or + web ports (8080/8443, HTTP to HTTPS redirect, hostname whitelisting, security headers and + CSP), or tune the operator interface, Engineering Module or Edit Module (jwuiisg.sup, jhmiset.sup, jwuiged.sup) and the WFL processes (wflidi, wfladi, wflcdi, wflgdi, wfla_display), e.g. display cache time, flow control, alarm overview event types. Sources IM 36K10R10-01EN and IM 36K10R20-01EN. --- -# CI Portal and setup files (R1.03) +# CI Portal and setup files (R1.05) + +Re-checked on R1.05 on 2026-10-08 (read-only, single-node test server). The manuals changed +only in R10 §3.1 (install from an ISO file) and §3.3 (link to BUS Service); the Setup File +Editor and the WFL setup files are unchanged. `jwuiisg.sup` has new keywords, a new +*Access Control* tab and stricter default security headers (R10 summary §4.3, ISS-110 to +ISS-112); `dur.sup` has a new *Gateway Core* switch (ISS-109). Background: `knowledge/manuals/IM36K10R10-01EN.md` (CI Portal Setup: processes, CI Portal vs CI View, every user-interface setup file and keyword) and @@ -29,11 +36,12 @@ Rules: | Task | File | Status | |---|---|---| -| Read a setup file: active settings and keyword help | `tasks/read-setup-file.md` | verified (read-only) | -| Change a setup file safely (back up, edit, restart, verify, restore) | `tasks/change-setup-file.md` | verified | -| What the Setup File Editor shows for a file (tabs, fields, Changed status) | `tasks/read-setup-file.md`, R20 summary §2 | verified (compared in the GUI) | -| Login method / login control (moved to `dssana.sup`) | not covered yet (ISS-017) | — | -| Check web access for CI View (ports, Remote Connect page, `DEPLOY` folder) | `tasks/check-web-access.md` | verified (read-only) | -| Choose CI Portal or CI View; set up a separate CI Portal node | R10 summary §2–3 | from docs (needs a second node) | +| Read a setup file: active settings and keyword help | `tasks/read-setup-file.md` | verified (R1.03; re-run read-only on R1.05 2026-10-08) | +| Change a setup file safely (back up, edit, restart, verify, restore) | `tasks/change-setup-file.md` | verified (R1.03); R1.05 not tested (shared server: no setup-file change or restart) | +| What the Setup File Editor shows for a file (tabs, fields, Changed status) | `tasks/read-setup-file.md`, R20 summary §2 | verified in the GUI (R1.03); R1.05 awaiting user verification (ISS-113) | +| Login method / login control (moved to `dssana.sup`) | skill `authorization` (ISS-017) | — | +| Check web access for CI View (ports, Remote Connect page, security headers, `DEPLOY` folder) | `tasks/check-web-access.md` | verified (R1.03; R1.05 2026-10-08, read-only) | +| Choose CI Portal or CI View; set up a separate CI Portal node | R10 summary §2–3 | from docs; not tested (R1.03 and R1.05 test systems are single nodes) | +| Gateway core (`dur.sup` *Gateway Core*; no operator interface) | R10 summary §3 | from docs; keyword checked in the installed file (R1.05) | | Operator interface does not show a changed display/item (cache) | R10 summary §1 | from docs | -| Write metadata for a custom setup file | R20 summary §3 | from docs | +| Write metadata for a custom setup file | R20 summary §3 | from docs; keyword set checked identical R1.03/R1.05 | diff --git a/.claude/skills/portal-setup/tasks/change-setup-file.md b/.claude/skills/portal-setup/tasks/change-setup-file.md index 8c8b31f..1ba050f 100644 --- a/.claude/skills/portal-setup/tasks/change-setup-file.md +++ b/.claude/skills/portal-setup/tasks/change-setup-file.md @@ -1,8 +1,8 @@ --- task: Change a setup file safely -version: R1.03 -source: IM 36K10R20-01EN §1–2; IM 36K10R10-01EN §4 -status: verified on the test system 2026-09-30 (jwuiisg.sup HTTP port 8080 → 8081 and back; wfla_display.sup queue size via the editor and Reset Field) +version: R1.05 (first written for R1.03) +source: IM 36K10R20-01EN §1–2 (4th Edition, Feb. 2026); IM 36K10R10-01EN §4 (5th Edition, Feb. 2026) +status: verified on R1.03 2026-09-30 (jwuiisg.sup HTTP port 8080 → 8081 and back; wfla_display.sup queue size via the editor and Reset Field). R1.05 not tested (the R1.05 test server is shared: no setup-file change or restart); the editor launcher and metadata keywords are unchanged (checked 2026-10-08), editor GUI awaiting user verification (ISS-113) --- # Change a setup file safely @@ -28,9 +28,9 @@ administrator rights. Either way works: - **Setup File Editor** (Start menu *CI Server → Setup File Editor*): double-click the file, - change the field on its tab and click *OK*: **the file is written at once** (R1.03), so - back up before clicking OK. The changed field's label turns blue and the file's Status - becomes *Changed* (differs from its `!DEFAULT` block). Toggle Read Only must be off. + change the field on its tab and click *OK*: **the file is written at once** (R1.03; R1.05 + not yet re-checked, ISS-113), so back up before clicking OK. The changed field's label + turns blue and the file's Status becomes *Changed* (differs from its `!DEFAULT` block). Toggle Read Only must be off. Keywords placed before the file's first `!TAB` line are on the *General* tab. To go back to the default: cursor in the field, *Reset Field*, *OK*. - **Text edit**: change only the active line `KEYWORD = value`; keep the `!` lines, the @@ -75,3 +75,11 @@ the backup (`Get-FileHash`) to confirm the file is exactly as before. restarted in between, so never applied. - `Stop-Service`/`Start-Service StartCIServer` from a non-elevated shell fails with "Cannot open StartCIServer service". + +## R1.05 + +Not re-tested (shared test server). Same procedure expected: the editor is launched the same +way (`fsuedit.cmd` only adds `tls\exe\lib\*` to the class path) and the installed setup +files use the same metadata keywords and argument kinds as R1.03. On an upgraded system +the automatic configuration merge (skill `installation-security`) may already have changed +`.sup` files: compare with the `!DEFAULT` block before editing. diff --git a/.claude/skills/portal-setup/tasks/check-web-access.md b/.claude/skills/portal-setup/tasks/check-web-access.md index 7615c3d..207cd5e 100644 --- a/.claude/skills/portal-setup/tasks/check-web-access.md +++ b/.claude/skills/portal-setup/tasks/check-web-access.md @@ -1,8 +1,8 @@ --- task: Check web access for CI View (read-only) -version: R1.03 -source: IM 36K10R10-01EN §2.2, §3.4, §4.3; practiced on the test system 2026-09-30 -status: verified (read-only) +version: R1.05 (first written for R1.03) +source: IM 36K10R10-01EN §2.2, §3.4, §4.3 (5th Edition, Feb. 2026); installed jwuiisg.sup (R1.05); practiced on the test system 2026-09-30 +status: verified (read-only) on R1.03 (2026-09-30) and on the R1.05 test server (2026-10-08); access from another PC through the R1.05 Access Control settings not tested --- # Check web access for CI View @@ -36,7 +36,23 @@ ports were changed. Expect `200`. This is the page CI View users open as `http://:8080/` to download Remote Connect; Remote Connect then uses HTTPS on 8443. From another PC the firewall must -allow both ports (skill `installation-security`). +allow both ports (skill `installation-security`). With `HTTP_TO_HTTPS_REDIRECT = YES` +`Invoke-WebRequest` follows the redirect to HTTPS and may fail on the server certificate; +read the HTTP status alone with `curl.exe -s -o NUL -w "%{http_code}" http://localhost:8080/` +(not tested with YES). If the site has narrowed `HOSTNAME_WHITELISTING`, a CI View must use +one of the listed names (opening the page by IP address may then fail; not tested). + +On R1.05 the page also returns the default security headers from the *Security* tab of +`jwuiisg.sup` (R10 summary §4.3, ISS-111). To see them (`curl.exe` is part of Windows): + +```powershell +curl.exe -k -s -I https://localhost:8443/ +``` + +Expect `X-Content-Type-Options`, `X-Frame-Options`, `Strict-Transport-Security`, +`X-XSS-Protection`, `Cache-Control: no-store`, `Referrer-Policy`, +`X-Permitted-Cross-Domain-Policies` and a `Content-Security-Policy` line. The R1.03 file +set only `X-Frame-Options` and no CSP. ## 4. Displays deployed @@ -52,3 +68,11 @@ Get-ChildItem -Name (Join-Path $env:TLS_WAP_PATH 'cfg\operatorInterfaces\DEPLOY' ## Test system (2026-09-30) 8080 and 8443 listening (one process), page returned 200, the six `DEPLOY` folders present. + +## R1.05 test server (2026-10-08, read-only) + +Steps 1–4 as above: 8080 and 8443 listening (one `javaw.exe` running as the CI Server +service account), `http://localhost:8080/` and `https://localhost:8443/` both 200, the page +offers `CI-rc-setup.exe` (Remote Connect), the six `DEPLOY` folders present, and the seven +headers plus CSP listed above on both ports. Install paths differ from R1.03 (here +`C:\Yokogawa\CIServer`), so always use the `TLS_*` variables. diff --git a/.claude/skills/portal-setup/tasks/read-setup-file.md b/.claude/skills/portal-setup/tasks/read-setup-file.md index 8d55863..fbd3b4b 100644 --- a/.claude/skills/portal-setup/tasks/read-setup-file.md +++ b/.claude/skills/portal-setup/tasks/read-setup-file.md @@ -1,8 +1,8 @@ --- task: Read a setup file (active settings and keyword help) -version: R1.03 -source: IM 36K10R20-01EN §1, §3; IM 36K10R10-01EN §4; practiced on the test system 2026-09-30 -status: verified (read-only) +version: R1.05 (first written for R1.03) +source: IM 36K10R20-01EN §1, §3 (4th Edition, Feb. 2026); IM 36K10R10-01EN §4 (5th Edition, Feb. 2026); practiced on the test system 2026-09-30 +status: verified (read-only) on R1.03 (2026-09-30, also compared in the Setup File Editor GUI); commands re-run read-only on the R1.05 test server 2026-10-08 with the same results; R1.05 editor GUI awaiting user verification (ISS-113) --- # Read a setup file @@ -11,8 +11,10 @@ Shows what the Setup File Editor would show, without opening it. Nothing is chan ## Where -`%TLS_ROOT_PATH%\tls\sup\.sup` (e.g. `C:\Program Files (x86)\Yokogawa\CIServer\tls\sup`). -The file list with descriptions is what the Setup File Editor shows on start. +`%TLS_ROOT_PATH%\tls\sup\.sup` (R1.03 test system: +`C:\Program Files (x86)\Yokogawa\CIServer\tls\sup`; R1.05 test server: +`C:\Yokogawa\CIServer\tls\sup`; about 200 files on both). The file list with descriptions is +what the Setup File Editor shows on start. ## Active settings @@ -25,7 +27,7 @@ Select-String -Path $f -Pattern '^\s*[^!\s]' Example result (`wflidi.sup`, installed defaults): `FLOW_CONTROL = 30`, `TIMER = 20`, `SCAN_TIME = 0`, `RETRY_COUNT = 3`, `QUEUE_BUSY_LEVEL = 10`, `DUR_QUEUE_SIZE = 500`, -`NODE = -1, 1000, 0.1, 30`, `LOCK_TIMEOUT = 60`. +`NODE = -1, 1000, 0.1, 30`, `LOCK_TIMEOUT = 60` (same file and values on R1.05). A keyword that has no active line uses the program's built-in default (see its help). @@ -60,3 +62,8 @@ Keywords before the first `!TAB` appear on a *General* tab in the editor (checke `wfla_display.sup` (the manual says `wfla_displays.sup`), and some installed values differ from the manual's defaults (see `knowledge/issues.md` ISS-012 to ISS-015). - Some files have no `!DESCRIPTION`. +- R1.05 (2026-10-08): `jwuiisg.sup` and `dur.sup` gained keywords (R10 summary §3–4, + ISS-109 to ISS-112); `wfl*.sup`, `jwuiged.sup` and `jwuiaan.sup` are identical to R1.03, + `jhmiset.sup` differs only in spacing. Two new `jwuiisg.sup` blocks end with + `!ENDKEYWORD!` instead of `!ENDKEYWORD`; how the editor shows them is not yet checked + (ISS-112). diff --git a/.claude/skills/system-management/SKILL.md b/.claude/skills/system-management/SKILL.md index 28f6c51..1654527 100644 --- a/.claude/skills/system-management/SKILL.md +++ b/.claude/skills/system-management/SKILL.md @@ -1,40 +1,51 @@ --- name: system-management description: >- - CI Server R1.03 system management and command-line tools. Use when the user wants + CI Server R1.05 system management and command-line tools. Use when the user wants to stop CI Server, export dataset contents, load or remove records with quick load files (dssqld, .qli), create sections or items in bulk, read or write item values or limits (itmval), load or import history, check database consistency (dsschk), monitor processes/CPU/disk/network, back up or migrate a system, tune or debug CI Server, or plan a system layout (standalone, separate portal, HAC, - host-to-host, enterprise) or time synchronization, check whether a CI Server process is + host-to-host, enterprise, gateway core) or time synchronization, check whether a CI Server process is running (durwfp), stop a single process (durstp), read the message log (umhlog), or check BUS Service queues (adaptive queues, dur.sup), or work with DSS / Data Set Services (dsssda, - dssevt, dssman, dss.sup, quick load macros and includes, memo fields from a file, dssutl, - DSS compiler dss, .dss files, data dictionary tlsdic_dss.dic). Sources IM 36K10J10-01EN, + dssevt, dssman, dss.sup, DSSSDARST / DSSSDAPY, quick load macros and includes, memo fields from a file, dssutl, + DSS compiler dss, .dss files, data dictionary tlsdic_dss.dic, dss_*.tmp clean-up). Sources IM 36K10J10-01EN, IM 36K10L30-01EN, IM 36K10L50-01EN, IM 36K10P30-01EN. --- -# System management (R1.03) +# System management (R1.05) + +Re-checked on R1.05 on 2026-10-08 (read-only, on the R1.05 test server): all tools used here +are installed and behave as on R1.03; `dssqld` help text, the monitoring setup files +(`int*.sup`), `itm.sup` and `durm_1_udp.sup` are unchanged. Changed on R1.05: two extra DSS +data access servers (`DSSSDARST` for the RESTful API, `DSSSDAPY` for pyTOOLS), larger DSS queues, +a *Gateway Core* switch in `dur.sup`, new datasets, and start/stop scripts that call +`?*_