--- task: Create sub-items (integrator, min-max) 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 A sub-item hangs under an item (`
..`) and processes the main item's value. Types: `Integrator`, `Min-Max`, `Pulse`, `Rate-of-Change`, `Typeless`. Sub-items cannot connect to equipment, cannot have sub-items, and are **not** blocked when the main item is blocked. Quick load (`SUB_ITEM_DF`; the main item must exist): ``` @FIELDS NAME,DESCRIPTION,SUB_TYPE,TIME_UNIT,MIN_MAX @SUB_ITEM_DF "CI-Eng-Sample.PUMP1.RUNNING.RUN_SECONDS","Pump 1 running time (seconds)","Integrator","","" "CI-Eng-Sample.TANK1.LEVEL.MAX","Tank 1 maximum level","Min-Max","","Maximum" ``` Load with `dssqld -i .qli -l .qlo`; remove with a `NAME`-only file and `dssqld -r` (before removing the main item). R1.05 accepts these files unchanged (`@VERSION 1.03.00`). ## Behaviour - **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 (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`.