From e98322d165a77c9294101d1a67a9676a8e31a8d0 Mon Sep 17 00:00:00 2001 From: cliu Date: Fri, 2 Oct 2026 13:57:58 +1000 Subject: [PATCH] Add trend task (all trend settings, desktop vs web), record ISS-041 cause and ISS-055/056 Co-Authored-By: Claude Opus 5.5 --- .claude/skills/graphics/SKILL.md | 1 + .../skills/graphics/tasks/create-display.md | 3 +- .../skills/graphics/tasks/deploy-displays.md | 3 +- .claude/skills/graphics/tasks/trend.md | 130 ++++++++++++++++++ knowledge/issues.md | 4 +- knowledge/manuals/IM36K10C50-01EN.md | 4 +- knowledge/manuals/IM36K10R30-01EN.md | 3 + knowledge/progress.md | 2 + 8 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 .claude/skills/graphics/tasks/trend.md diff --git a/.claude/skills/graphics/SKILL.md b/.claude/skills/graphics/SKILL.md index 4ff3909..029e3ab 100644 --- a/.claude/skills/graphics/SKILL.md +++ b/.claude/skills/graphics/SKILL.md @@ -39,6 +39,7 @@ Rules: |---|---|---| | Build a display in the Edit Module (text, number field, alarm overview, trend) and check the saved XML | `tasks/create-display.md` | verified | | 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 | `tasks/layouts.md` | verified (dual screen, per-user layout from docs) | | Dataset forms (`*Dia.xml`) and the form description language | R30 summary §3 | from docs | diff --git a/.claude/skills/graphics/tasks/create-display.md b/.claude/skills/graphics/tasks/create-display.md index 139209f..ffa10ef 100644 --- a/.claude/skills/graphics/tasks/create-display.md +++ b/.claude/skills/graphics/tasks/create-display.md @@ -56,4 +56,5 @@ grep -n "\|\|\|itemName\|itemId\|.xml Text `CI-Eng-Sample Tank 1`, number field on `TANK1.LEVEL` (live: 72 → 61), alarm overview (no filter; listed the TANK1.LEVEL alarms), trend pen `TANK1.LEVEL` (legend `CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` = highest-priority storage group). In the HTML -display the trend drew no line (ISS-041). +display the trend drew no line: a trend needs 50 visible pens to draw on the web (ISS-041; +workaround and all trend settings in `trend.md`). diff --git a/.claude/skills/graphics/tasks/deploy-displays.md b/.claude/skills/graphics/tasks/deploy-displays.md index 84f50d0..4a98bee 100644 --- a/.claude/skills/graphics/tasks/deploy-displays.md +++ b/.claude/skills/graphics/tasks/deploy-displays.md @@ -55,4 +55,5 @@ session** and needs a new login. Check live values by writing a test value (`itm Remove → deploy recreated both files; `-e HTML` output identical to the Edit Module's HTML; validation of `CIENG_Tank` *No problems found* (also after a sample reload with new item ids — but a stale `` then shows 0 at run time, ISS-052); -search worked; browser showed live values. HTML trend without line: ISS-041. +search worked; browser showed live values. HTML trend without line: ISS-041 (cause and +workaround in `trend.md` §6). diff --git a/.claude/skills/graphics/tasks/trend.md b/.claude/skills/graphics/tasks/trend.md new file mode 100644 index 0000000..1b781a4 --- /dev/null +++ b/.claude/skills/graphics/tasks/trend.md @@ -0,0 +1,130 @@ +--- +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) 2026-10-02 +status: verified (desktop Operator Interface: every row marked ✅/❌ below; HTML display: §6) +--- + +# Trend settings (desktop and web) + +Example: `examples/CI-Eng-Sample/displays/CIENG_TrendLab.xml` (deployed by +`deploy_displays.cmd`). Method used: change one XML value in the display, deploy, *View > +Reload* in the client, compare. + +## 1. Before you start + +- **Data**: the trend draws history. `TANK1.LEVEL` / `TANK1.INFLOW` are internal items: after a + CI Server start they are `NOT INIT` (value 0) until something writes them, and the trend then + shows nothing (or a bold black line at 0 with status drawing). For tests run + `displays/trend_feed.ps1` (writes sine waves with `itmval` every 5 s; `-Seconds` = run time). +- **Reload**: changes in the display file show after *View > Reload*. A reload within a few + seconds of the deploy can still show the old file — reload again. +- The **Trend properties** dialog (right-click the trend) and the trend toolbar change the trend + only for the session; *Save trend as* writes a trend definition to + `%TLS_WAP_PATH%\cfg\charts\.xml` (same `` format; factory `Template1..4.xml`). + The display file holds the start-up settings under `` › `` › ``. + +## 2. Pen source (`` › ``) + +``` +ci:/item/
.[?historygroup=[&aggregationperiod=]][#] +``` + +| Part | Values | Result (desktop and web the same) | +|---|---|---| +| no `historygroup` | — | works; trend picks the highest-priority storage group (here `CIENG_SCAN10S`, seen in table mode); legend without `[group]` | +| `historygroup=CIENG_EVENT` / `CIENG_SCAN10S` | an item storage group | works; legend `… [GROUP]` | +| aggregation group without attribute | e.g. `CIENG_AGG` | ❌ `WFL-E-HIS_ITMN` / `ITH-E-NO_ADM_UPD` *Item not defined in group, or group not specified* | +| aggregation group **with** `aggregationperiod` + `#MAX` | periods `30MIN HOUR SHIFT DAY WEEK MONTH YEAR`; attributes `MAX MIN AVG INT SDV CNT DFSM` | ✅ one flat segment per finished period; legend `… / AGG_MAX 30MIN [CIENG_AGG]` | +| `#H` `#HH` `#L` `#LL` `#DB` | limit / deadband attributes | ❌ *Record not found* unless the limit history is stored | +| `uri=""` | — | empty pen | + +`&` must be written `&` in the XML. The *Pen attributes > Attribute[n]* property of the +component is the same attribute (`ITEM_VALUE`, `AGG_MAX`…): connecting it to an item by mistake +gives *Short attribute name () is invalid* (ISS-041 history). + +## 3. Pen settings (``) + +| XML | Values | Desktop result | +|---|---|---| +| `type` | 0/1 line, 2 bar (no button in the pen panel), 3 stair-step, 4 scatter (squares); **+256** = status drawing: offline / `NOT INIT` parts drawn bold black (256 = Edit Module default = line + status) | ✅ | +| `color`, `stroke width` | | ✅ | +| `paint` (fill) `` | | ✅ filled from 0 up, **opaque** (covers other pens); legend symbol filled | +| `visible` false | | ✅ line hidden **and** removed from legend; tick cleared in the pen panel | +| `visibleLegend` false / `legendText` | | ✅ hidden from / renamed in the legend | +| `scaleRangeType` | **0** item scale range (item definition), **1** manual `minimum`/`maximum`, **2** fit to data (with margin; min/max ignored) | ✅ | +| `procentual` | | ✅ axis 0–100 % of the range, `%` label | +| `timeShift` | seconds | ✅ data drawn later by that time (overlay of older data) | +| `axisVisible` | | ✅ value axis (left); clicking a legend entry also shows that pen's axis and thickens the line (hover thickens) | +| `axisPosition` | 0 left, 1 right | ✅ | +| `axisColor`, `labelColor` (``, `@NULL` = pen colour) | | ✅ axis + ticks / numbers | +| `labelRotation` | degrees | ✅ | +| `majorTickVisible` + `minorTickVisible` false | | removes the numbers too | +| `title`, `titlePlacement` | | ❌ nothing shown | +| `majorGridVisible`, `minorGridVisible`, `majorGridColor` | | ✅ horizontal grid in pen colour / given colour | +| `lowHighLimitGridVisible`, `lowLowHighHighLimitGridVisible` | | ✅ lines at the **item definition** limits | +| `lowLimit`…`highHighLimit` | | ❌ ignored (item definition limits are used) | +| `lowHighLimitGridAreaVisible` | | ✅ band L…H in pen colour, **opaque, drawn over the line** | +| `maximumPens` (chart level) | | ✅ only the first n pens are loaded | +| `description` | | pen panel shows the **item** description, not this value | + +## 4. Chart settings (``) + +| Group | XML | Desktop result | +|---|---|---| +| Time range | ``; `timeRangeCurrent` (no count) = current minute/hour/day…; units `TimeUnitMinute Hour Day Week Month Year` | ✅ (*Current hour*: 12:00–13:00, line up to now) | +| | `updating` true | ✅ runs live when opened (play grey, stop red) | +| | `updateInterval` (s) | ✅ shown in *Update every* (60 → "1 Minutes") | +| | `autoUpdateInterval` true | ✅ the *Update every* field disappears | +| | `fillHistory` false | ✅ empty (all pens red tag) until the first update interval, then filled | +| | custom range `timeRangeSpecific` (`startTime`/`endTime`) | not tested | +| Performance | `optimised` true (default) = sample interval by zoom (`cfg\configurations\ChartThresholdTables.xml`) | — | +| | `optimised` false + `useSampleInterval` true + `sampleInterval` 60 | ✅ one point per 60 s, last value held to now | +| | `useSampleInterval` false | ✅ all stored samples | +| | `updateFromHistory` false (runtime values) | no visible difference | +| Appearance | `plotAreaTransparent` false + `plotAreaPaint` | ✅ plot colour (paint has no effect while transparent) | +| | `backgroundPaint` | ❌ no visible effect | +| | `hairlineVisible`, `hairlineColor` | ✅ toolbar hairline button on; click in the plot → line + box with time and pen values | +| | `timeSliderVisible`, `valueSliderVisible` false | ✅ sliders removed | +| | `xAxisReversed` / `yAxisReversed` | ✅ newest left **and** time axis moves to the top / 0 at top **and** value axis moves right | +| | `renderMode` `Rendering2d`, `RenderingTable`, `Rendering3dObl` (`Rendering3dOrt`, `RenderingCSS` not tested) | ✅ table = sample time, value and status per pen (good to see what the server returns); 3D = hatched ribbons | +| Time axis | `timeAxisMajorGridColor`, `timeAxisLabelRotation`, `timeAxisTitle` | ✅ (the time-axis title shows, unlike the pen title) | +| | `timeAxisLongLabelVisible` false | ✅ date line under the first label removed | +| | `timeAxisMinorTickVisible`, `timeAxisMinorGridVisible` | nothing at a 10-minute range | +| Header/footer | `headerText`, `footerText` | ✅ top-left above the plot / bottom-left below the time control | +| Legend | `legendPositionType` `PositionNorthEast` (default, right panel), `PositionSouthWest` (= full-height panel on the **left**); also `NorthBottom NorthTop NorthWest SouthBottom SouthTop SouthEast East Absolute` | ✅ | +| | `legendTitle`, `legendColor`, `legendBackgroundColor`, `legendTransparancy` | ✅ | +| Controls | `toolbarVisible` false, `timeRangeControlVisible` false | ✅ toolbar / date and range boxes removed | +| Pen panel | `penPanelVisible`; `penPanelLayout` columns: 0 visible, 1 colour, 2 source, 3 description, 4 units, 5 hairline value, 6 statistics (min \| max \| avg of the shown range), 7 legend, 8 min, 9 max, 10 %, 11 scale range, 12 time offset, 13 appearance, 14 axis, 15 grid (default visible 0–4, 8, 9, 11, 13) | ✅ | + +Gaps (CI Server stopped): the desktop joined the last and next sample with a straight line, or +held a scan-group pen flat (seen once); the web drops to 0. + +## 5. Component property sheet (Edit Module, connectable) + +20 pen slots `[00]`–`[19]`. Inputs (⇦, item → trend): colours, tooltip, visible, transparency, +rotation, zoom. Outputs (⇨): *Hairline value[n]*, *Time range begin/end*, *Update interval*, +*Updating possible*. Both (◇): *Item name[n]*, *Attribute[n]*, *Color[n]*, *Min/Max[n]*, +*Scale type[n]*, *History group[n]*, *Updating*, *Use history*, *Item index/name*, +*Configuration file*. Connections were listed, not tested. + +## 6. HTML display (web client) + +- **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. +- **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 + (the web legend ignores *Show in legend*, ISS-056). Run it again after editing the trend; do + not keep hidden real pens (they count against the 50). Cost: 50 history requests per trend. +- Working on the web as on the desktop: value axis, last/current time range, update interval, + updating at start, plot colour, time-axis grid colour and label rotation, header and footer, + hidden range control. Not applied: legend position, pen panel, trend toolbar (no way to add + pens in the browser). Supported-property lists: IM 36K10C50 Table 2.27-28, IM 36K10R30 §4.8.7. +- **Micro Trend** (``, up to 4 pens, own SVG drawing, no controls; per-pen + `itemName[0]…`, + `scaleMin[n]`, `scaleMax[n]`; elements `numberOfPens`, `realTime`, `fillWithHistory`, + `timeRange` (s, default 300), `sampleCount` (default 300)): drew on desktop and web the first + time, then stayed blank on every later open (ISS-055, open). diff --git a/knowledge/issues.md b/knowledge/issues.md index 290e986..583dc96 100644 --- a/knowledge/issues.md +++ b/knowledge/issues.md @@ -60,7 +60,7 @@ development system (see "Test system" in `progress.md`); they do not exist on ot | ISS-038 | 2026-10-01 | HISTORY (`ithloahis` + rollover) | An `ithloahis` sample that was dropped (dated 11:50, before the active unit) still became the **initial value** of the next unit: after a forced rollover at 12:05:26 `ITEM_HISTORY` shows `CI-Eng-Sample.TANK1.INFLOW` = 95 (`INITIAL_VALUE` 1) although the item's value was 112. History after loading old samples can therefore show a wrong value at the next rollover. | closed | Retested 2026-10-01 after a CI Server restart (first unit 18:05:46). (a) Sample dated one day earlier (95), live value 112, forced rollover: initial value 112 — correct. (b) Sample dated 18:00 (96, a few minutes before the first unit), live value 113, forced rollover: initial value **96** — wrong again; the live item value stayed 113. So a dropped sample dated shortly before the first unit (same day) becomes the next unit's initial value; a much older one did not. Also found: a forced rollover within 2 minutes of the previous one is refused (`DSI-E-ROLLDONE`). Documented as a caution; behaviour confirmed, ready to close. Closed 2026-10-01 (confirmed by user). | `.claude/skills/system-management/tasks/load-history.md`; `knowledge/manuals/IM36K10C40-01EN.md` §3 | | ISS-039 | 2026-10-01 | HISTORY (setup) | Installed vs manuals: `hisdbg` menu runs to option 22 (manual text: `-1 - 10`, list to 22) and lists history types 4 (`STATION_STAT`) and 36 (`SYS_LOG`) not in IM 36K10L20 §3.1; `ithsag.sup` keyword `run_interval` (manual: *Heartbeat*) and `queue_size` 500 KB (manual default 200); the option-type table in IM 36K10L20 §3.1 is garbled in the PDF (observed: Scan/Time `1 1`, Event/Item `2 2`, Aggregation `4 4`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10L20-01EN.md` §3; `knowledge/manuals/IM36K10C40-01EN.md` §2 | | ISS-040 | 2026-10-01 | HISTORY (aggregation) | Aggregation group `CIENG_AGG` (30 min + hour, `TANK1.LEVEL` max/min/avg) ran (`ithsag.log`: *Aggregation Completed*) but stored no values: retrieval gave `0x09 = ITM error` per period. `TANK1.LEVEL` was in `CIENG_EVENT` and `CIENG_SCAN10S`, both priority 0. Also `INTERPOLATION = "30 minutes"` is refused by `dssqld`; the installed name is `30Minutes`. | closed | Closed 2026-10-01 (confirmed by user). 2026-10-01 14:02: after `CIENG_SCAN10S` got `PRIORITY` 10, the 13:30–14:00 period stored max 77, min 33, avg 52.7, quality 1000 (`ithdbg` 20 and `dssqld` with `INTERPOLATION = "30Minutes"`). Cause: equal source priorities (C40 §2.1 says the highest-priority group is the source, but not that a tie gives nothing). Sample fixed (priority 10). The hourly value for 13:00–14:00 was not stored (first half had no source); not rechecked. Proposed close. | `.claude/skills/history-management/tasks/storage-groups.md` §4 (done); `knowledge/manuals/IM36K10C40-01EN.md` §3 (done); `examples/CI-Eng-Sample/03_his_group_df.qli`, `README.md` (done) | -| ISS-041 | 2026-10-01 | GRAPHICS (HTML trend) | In the HTML display (`localhost:8080/mobileoperator/?d=CIENG_Tank`) the trend shows the pen legend `CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` and time axis but draws no line, although `ITEM_HISTORY` has 420 samples in the shown hour. Browser console: `Mismatch between number of labels (Time,CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]) and number of columns in array (51)`. The trend has 4 further empty pens. 2026-10-01 later: the trend also had the property `chart.attribute[00]` connected to `TANK1.LEVEL` (added by mistake with the pen); the Operator Interface (desktop) showed *Short attribute name ( 61.0) is invalid*. After removing it the desktop trend draws the line, but the HTML trend still logs the mismatch error. | open | Tried 2026-10-01 (fresh session after a restart, 283 history samples in the hour): removing the 4 empty pens, and `updating` true / `updateInterval` 10 like the factory `AOG_TrendOpen` — the mismatch error and the empty trend stayed in both cases (changes reverted). Still to try: a Micro Trend, the HTML-supported trend properties (IM 36K10R30 §4.8.7), clearing the browser/`MO_CACHE_DISPLAYS` cache (the console shows `CIENG_Tank.xml` *loaded (from cache)*), and adding the pen to the factory *Open Trend* display in the HTML client. | `.claude/skills/graphics/tasks/create-display.md`; `knowledge/manuals/IM36K10R30-01EN.md` §4 | +| ISS-041 | 2026-10-01 | GRAPHICS (HTML trend) | In the HTML display (`localhost:8080/mobileoperator/?d=CIENG_Tank`) the trend shows the pen legend `CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` and time axis but draws no line, although `ITEM_HISTORY` has 420 samples in the shown hour. Browser console: `Mismatch between number of labels (Time,CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]) and number of columns in array (51)`. The trend has 4 further empty pens. 2026-10-01 later: the trend also had the property `chart.attribute[00]` connected to `TANK1.LEVEL` (added by mistake with the pen); the Operator Interface (desktop) showed *Short attribute name ( 61.0) is invalid*. After removing it the desktop trend draws the line, but the HTML trend still logs the mismatch error. | open | Tried 2026-10-01 (fresh session after a restart, 283 history samples in the hour): removing the 4 empty pens, and `updating` true / `updateInterval` 10 like the factory `AOG_TrendOpen` — the mismatch error and the empty trend stayed in both cases (changes reverted). Still to try: a Micro Trend, the HTML-supported trend properties (IM 36K10R30 §4.8.7), clearing the browser/`MO_CACHE_DISPLAYS` cache (the console shows `CIENG_Tank.xml` *loaded (from cache)*), and adding the pen to the factory *Open Trend* display in the HTML client. **Cause found 2026-10-02** (trend lab `CIENG_TrendLab`): a web-client defect, not a display setting. `DataSource.refresh()` in the web trend code (`mobileoperator\src\…\charts\trend\datasources\DataSource.js`, same in the served `src\lib\fasttools.min.js`) numbers **all 50** internal pen slots (`PEN_COUNT_LIMIT`; the filter for empty/hidden pens is commented out), so each data row has 51 columns, while the dygraph labels only list visible pens with an item. Proof: a 50-pen test display drew normally in the browser. Ruled out on the way: the `?historygroup` suffix, empty pens, `optimised`. **Workaround** (verified on the web): pad each trend to 50 visible pens with `displays/add_trend_spares.ps1` (spares scaled out of view, blank unique legend texts); sample `CIENG_TrendLab` uses it. Alternatively a Micro Trend (ISS-055). Report to Yokogawa. Close when the user confirms. | `.claude/skills/graphics/tasks/trend.md` (done); `create-display.md`, `deploy-displays.md` (done); `knowledge/manuals/IM36K10R30-01EN.md` §4 (done) | | ISS-042 | 2026-10-01 | GRAPHICS (layouts) | Installed vs `Layouts.readme`: the factory layouts use status line item types `displayName`, `playbackIndicator` and `dateTime` and the commands `reload ` / `reload all`, none of which the readme lists (readme: `statusText`, `userName`, `progresBar`, `graphicsQueueLevel`, `connectionState`); the readme also writes `zooom` for the zoom command (factory files use `zoom`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/graphics/tasks/layouts.md` §2 | | ISS-043 | 2026-10-01 | REPORT (system reports) | IM 36K10C30 App. 1.3 names two system reports `ALM_ATTS_CUR` and `ALM_ATRS_HIS`; the installed reports are `ALM_ATTRS_CUR` and `ALM_ATTRS_HIS`. The other 26 names match. | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10C30-01EN.md` §8 (done) | | ISS-044 | 2026-10-01 | REPORT (scheduling) | Behaviour not in the manuals, found by quick load: a generation interval below 10 minutes is refused (`HIS-E-ROLLTOFAST`, the interval is the rollover of the report's storage group); a scheduled report cannot be deleted (`RPT-E-ACTIVE`) until `ACTIVATION_TIME` and `GENERATION_INTERVAL` are cleared; `CORRECT_DAYLIGHT` 0 counts intervals in UTC (06:00 set for January ran at 05:00 in October); a past activation time moves to the next slot - once (modify, past time within the lifetime) a single report labelled with the old time was generated, at insert with an older time none. | closed | Documented as verified behaviour; the one-off generation for a past activation time is not fully understood. Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/reporting/tasks/define-reports.md` §1, §5, §6; `knowledge/manuals/IM36K10C30-01EN.md` §2; `examples/CI-Eng-Sample/83a_stop_report_df.qli`, `18_report_df.qli` | @@ -74,3 +74,5 @@ development system (see "Test system" in `progress.md`); they do not exist on ot | ISS-052 | 2026-10-01 | GRAPHICS (stale item id) | The HTML display `CIENG_Tank` showed **0** in its number field on `CI-Eng-Sample.TANK1.LEVEL` (live value 50) and the popup `ITM-E-NO_MAIN, No main item found`, in a fresh session after a CI Server restart. The display XML stores `` **and** `1.1.268.0.0.1.1.7` from when it was built; after today's sample reloads the item has `ID_NUMBER` 357. Phase 10 had seen live values after a reload, so the id is not always used, but here it broke the field. | closed | Fixed in the sample: removed the `` line from `displays/CIENG_Tank.xml`, redeployed; the field shows 50 and the popup is gone (binding by name). Documented in `create-display.md`. Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `examples/CI-Eng-Sample/displays/CIENG_Tank.xml`; `.claude/skills/graphics/tasks/create-display.md`; `.claude/skills/graphics/tasks/deploy-displays.md` | | ISS-053 | 2026-10-01 | HAC (manual vs installed) | IM 36K10J20 vs the installed `hac.sup`/scripts: (1) *Start in manual mode*: §1.3 says HAC starts in manual by default, §1.5 and the `hac.sup` help say automatic; the installed template sets `START_MANUAL = YES`. (2) `MAXOPNDB` default: help 500, manual 50 (§1.5) and 5 (§4.8). (3) `QUESIZE` default: help 100 K, manual 2000 K (file sets 2000). (4) §4.5 says `tls\com` and `tls\exe` cannot be mirrored, but the template mirrors `12 COM` (excluding `ci_command.cmd`). (5) §4.4 says the critical processes are already in the queue/CPU check lists; the installed file has no `MAX_QUEUE`/`MAX_CPU`/`INACTIVE` lines. (6) `hacw_standby` uses `TLS_LST_PATH` when `TLS_BACKUP_PATH` is unset (manual: `TLS_ALLUSERS_PATH`). (7) The template `IP_DEVICE` is `localhost` (priority 0), which §1.3 says to remove after testing. (8) HMI properties have `communicationInterval`/`Timeout`/`RetryCount`, not in the manual. | closed | Installed software is the reference (standing user decision); documented in the J20 summary §5 and the `high-availability` skill. Not testable on one server. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10J20-01EN.md`; `.claude/skills/high-availability/tasks/*.md` | | ISS-054 | 2026-10-01 | AD (manual vs installed) | IM 36K10J40 vs the installed `dssana.sup`: the *Active Directory* tab has keywords the manual does not describe — `AD_SERVER`, `AD_SERVER_BACKUP` (host[:port], 389/636), `AD_SECURE` (LDAPS; installed `NO`, help says default yes), `AD_ACCESS_USER`/`AD_ACCESS_PASSWORD` (blank = the CI Server service account). The manual's *Profile priority* is `USER_DF.MERGE_PRIORITY`; *Directory group* is `DIRECTORY_GROUP` (68 characters). The SSO keytab path is given as `%TLS_WAP_PATH%\webapps\auth\WEB-INF` (§2.5.1) and `%TLS_ALLUSERS_PATH%\wap\webapps\auth\WEB-INF` (§3.4.3) — the same folder on the test system. | closed | Installed software is the reference; documented in the J40 summary §5 and `authorization/tasks/active-directory.md`. Not testable without a domain. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10J40-01EN.md`; `.claude/skills/authorization/tasks/active-directory.md` | +| ISS-055 | 2026-10-02 | GRAPHICS (Micro Trend) | A Micro Trend written into `CIENG_TrendLab` (`itemName[0..1]` = `TANK1.LEVEL`/`INFLOW`, `numberOfPens` 2, `realTime`, `fillWithHistory`) drew both pens on the desktop and in the browser the first time (about 13:33), then stayed **blank** on every later open on both clients: with and without the 48 spare trend pens, and with explicit `timeRange` 600 / `sampleCount` 60. No console error; CI Server running. Code: `MicroTrend.js` only starts when all properties are set (`startTrendIfAllPropertiesAreSet`; it also compares `scaleMax[i]` with `scaleMin[1]`). | open | Still to try: build the Micro Trend in the Edit Module (compare the XML), connect `itemName[n]` instead of a fixed value (as in factory/test displays), a display with only the Micro Trend, a CI Server restart. | `.claude/skills/graphics/tasks/trend.md` §6; `examples/CI-Eng-Sample/displays/CIENG_TrendLab.xml` | +| ISS-056 | 2026-10-02 | GRAPHICS (trend, manual vs installed) | (1) IM 36K10C50 Table 2.27-28 lists *Appearance - Show in Legend* as supported in the HTML display, but the web legend listed pens with `visibleLegend` false (the desktop hides them). (2) The legend position (`PositionSouthWest`) was not applied in the browser (not supported per the table). (3) The manual says a trend has up to 20 pens; the component property sheet has 20 slots, but the web code reserves 50 and `maximumPens` 50 works on the desktop. (4) Desktop: pen `title`/`titlePlacement`, pen limit values `lowLimit`… and chart `backgroundPaint` had no visible effect; time-axis minor ticks/grid showed nothing at a 10-minute range. | open | Documented in `trend.md`; installed software is the reference. Close when the user confirms. | `.claude/skills/graphics/tasks/trend.md` | diff --git a/knowledge/manuals/IM36K10C50-01EN.md b/knowledge/manuals/IM36K10C50-01EN.md index 6b8ed8a..d83ae50 100644 --- a/knowledge/manuals/IM36K10C50-01EN.md +++ b/knowledge/manuals/IM36K10C50-01EN.md @@ -3,7 +3,7 @@ manual: IM 36K10C50-01EN title: Edit Module edition: 3rd Edition, Sep. 2023 version: R1.03 -status: display CIENG_Tank built by the user in the Edit Module (text, number field, alarm overview, trend) and checked as XML and HTML 2026-10-01; jwuiutl search, validate and HTML export verified; other components, symbols, actions and the tutorial from docs +status: display CIENG_Tank built by the user in the Edit Module (text, number field, alarm overview, trend) and checked as XML and HTML 2026-10-01; jwuiutl search, validate and HTML export verified; trend settings (§2.27) tested one by one on CIENG_TrendLab 2026-10-02 (skill graphics, tasks/trend.md); other components, symbols, actions and the tutorial from docs --- # Edit Module (R1.03) @@ -58,7 +58,7 @@ export; dialog tabs Types, Columns, Filter, Alarm link display, Appearance, Head Fetching, Alarm Shelving, Enterprise, Advanced, Attributes), list of blocked items, alarm sound, dataset tables (view/edit dataset records), report, **trend** (pens on items with history; shows limits; time slider and controls; definitions can be saved from the operator -interface), DTS trend, micro trend, playback indicator, calculation/function, JavaScript +interface; every setting tested in skill `graphics`, `tasks/trend.md`), DTS trend, micro trend, playback indicator, calculation/function, JavaScript function, web browser, PDF viewer, navigation tree, display generator, map viewer. ## 4. Sheets (§4) diff --git a/knowledge/manuals/IM36K10R30-01EN.md b/knowledge/manuals/IM36K10R30-01EN.md index d52aaec..883cbe7 100644 --- a/knowledge/manuals/IM36K10R30-01EN.md +++ b/knowledge/manuals/IM36K10R30-01EN.md @@ -86,3 +86,6 @@ property files and language codes (§3.5). - Full screen F11, Chrome shortcuts or `chrome.exe --app=http://:`. - **Test system**: the HTML trend of `CIENG_Tank` drew no line although history existed; browser console `Mismatch between number of labels … and number of columns in array (51)` (ISS-041). + Cause (2026-10-02): the web trend code always builds 50 data columns, so a trend draws only + with 50 visible pens; workaround `add_trend_spares.ps1`, details and web/desktop differences in + skill `graphics`, `tasks/trend.md` §6. diff --git a/knowledge/progress.md b/knowledge/progress.md index d852792..a476263 100644 --- a/knowledge/progress.md +++ b/knowledge/progress.md @@ -133,6 +133,8 @@ now come before classes and objects (phase 6), and the other interfaces follow a | C50 | Build a display in the Edit Module, check the XML ([task](../.claude/skills/graphics/tasks/create-display.md)) | passed | passed | User built `CIENG_Tank` (HTML mode): text, number field, alarm overview, trend. File stores item name + id; after a sample reload (id 248 → 268) validation still passed and a new session showed live values. | | C50/R30 | Deploy/remove, `jwuiutl` HTML export, validate, search; HTML display in the browser ([task](../.claude/skills/graphics/tasks/deploy-displays.md)) | passed | passed | Scripts `displays/deploy_displays.cmd` / `remove_displays.cmd`; command-line HTML identical to the Edit Module's. Number field live in the browser; HTML trend draws no line (ISS-041). Browser page reload ends the session; the display menu *View > Reload* keeps it (user). | | R30/C50 | Operator layout `CIENG_Operator` (menu, toolbar, navigation/main/banner frames, status line) added with `layout.ps1`; navigation display `CIENG_Menu`; open displays in frames, layouts and the `popup` layout ([task](../.claude/skills/graphics/tasks/layouts.md)) | passed | passed | Desktop: second 1600 x 900 window, frame navigation and Back, popup on top and minimised with its parent, F11 within taskbar limits; the Operator Interface must be restarted after `Layouts.xml` changes; factory `default` layout unchanged for Admin. Web: `?d=CIENG_Tank&l=CIENG_Operator`. Status line/command names not in the readme (ISS-042). A stray trend property connection caused a desktop error (ISS-041 update). | +| C50/R30 | Trend settings one by one on `CIENG_TrendLab` (pen source, type, scale, axis, grid, limits; time range, performance, appearance, time axis, legend, pen panel; property sheet listed) ([task](../.claude/skills/graphics/tasks/trend.md)) | passed (desktop) | passed | 2026-10-02, user confirmed each round with screenshots. Pen limits, pen title and `backgroundPaint` had no effect (ISS-056). Internal items need `trend_feed.ps1` after a restart. | +| C50/R30 | HTML trend: cause of the empty web trend and 50-pen workaround (`add_trend_spares.ps1`); Micro Trend ([task](../.claude/skills/graphics/tasks/trend.md) §6) | passed (workaround) | passed | Web code always builds 50 columns (ISS-041). Padded `CIENG_TrendLab` draws in the browser with a clean legend; web ignores *Show in legend* (ISS-056). Micro Trend drew once, then blank (ISS-055). | | J10/C50 | Restart CI Server with the Edit Module open | observed | n/a | Start aborted: `JWUIGED` still attached to the BUS Service (`ci_start.log`); closing the Edit Module fixed it (skill `system-check`). | | R30/C50/C60 | Dataset forms, symbols, AOG library, dual screen, per-user layouts | not practiced | n/a | GUI work; user profiles not changed. | | R40/C30 | REPORT Service checks: processes, set-up files (`rptman.sup`, `rptge1.rpt`, `rptgen.rpt`), system reports, `rptstp` ([task](../.claude/skills/reporting/tasks/report-checks.md)) | passed | n/a | Read-only plus one cancel: `rptstp rptge1` stopped the endless-loop test report `CIENG_LOOP` (removed). 28 system reports; two names differ from the manual (ISS-043). |