--- task: Acknowledgement types, areas of interest and alarm selection areas by quick load version: R1.03 source: IM 36K10L15-01EN §2.3.4, §4.1.2; IM 36K10C20-01EN §A5, §A8; practiced on CI-Eng-Sample 2026-10-01 status: verified --- # Alarm definitions (quick load) Sample file: `examples/CI-Eng-Sample/01b_alarm_df.qli` (removed by `93_remove_alarm_df.qli`). Load definitions **before** the items that use them; remove them **after** those items. Commands as in skill `system-management` (`dssqld -i` / `-m` / `-r`, `-l `); run `dssqld` from the file's folder (paths over 79 characters are cut, ISS-020). `dssqld` returns exit code 0 even when records fail: always read the summary table (Errors column) or listing. ## 1. Acknowledgement type (`ALARM_ACK_DF`) ``` @FIELDS NAME,DESCRIPTION,EAL_ACK,NA_N,NN_N,A1A_N,A2A_N,A3A_N @ALARM_ACK_DF "","",0,1,1,1,1,1 ``` - Matrix field `_`: from state `N`/`A1`/`A2`/`A3`, `A` = was acknowledged, `N` = was not, to state `N`/`A1`/`A2`/`A3`. 1 = automatic, 0 = operator must acknowledge. Fields left out are 0. The example equals the predefined `MANUAL`: every alarm needs an acknowledgement; returning to normal is automatic only if the alarm was acknowledged. - `EAL_ACK` 1 makes a type for external alarms (Inactive/Active matrix); it cannot be changed later, nor can the name. Predefined: `AUTOMATIC`, `MANUAL`, `FULLMANUAL` and `_EAL` variants. - A description longer than 78 characters fails with `DSSG-E-STRBUFSMAL … buffer is too small (79)`. - Delete refused while an item uses the type: `DSSP-E-NODEL … still in use` / `DSSP-E-NODELBY, By in dataset ITEM_DF`. - Check: `almdbg` 9 (numbers) and 10 (`` → matrix with A/M), see `alarm-checks.md`. ## 2. Area of interest (`ALARM_AOI_DF`) ``` @FIELDS NAME,DESCRIPTION @ALARM_AOI_DF "","" ``` `NUMBER` is assigned automatically. Assign to items with `ITEM_DF` `AOI_1` … `AOI_16` (never the same AOI twice on one item). ## 3. Alarm selection area (`ALARM_ASA_DF`) ``` @FIELDS NAME,DESCRIPTION,COMPILE,EXPRESSION @ALARM_ASA_DF "","",1,\ @" /* comment */ SECTION = "
." and PRIO < 3"@ ``` - `COMPILE` 1 compiles on load. Multi-line text: `\` at the end of the line, then `@"` … `"@`. (Verified with a single `SECTION` condition; the `and PRIO < 3` part follows the manual.) - Spaces are required around operators (`SECTION = "…"`, not `SECTION="…"`). Keywords and operators: C20 summary §A8.3. `SECTION` matches only items directly in that section. - **Check after loading** — a bad expression is still stored: ``` @SELECT 'NAME = ""' @ALARM_ASA_DF ``` `dssqld -e .qli .qli -c`, then look at `LISTING` and `VALID_EXPRESSION`: - good: `% ALC-I-CMP_SUCC, Expression compiled successfully`, `VALID_EXPRESSION` 1 (`COMPILE` reads 0 again after compiling); - bad: `% ALC-E-UNKNOWN_TOK, Unknown token encountered, token: (…)`, `ALC-E-CMP_NO_SUCC`, `VALID_EXPRESSION` 0 — the load summary shows 1 error. An invalid ASA filters out **all** alarms where it is used: fix and reload with `dssqld -m`, or remove. ## 4. Remove ``` @FIELDS NAME @ALARM_ASA_DF "" @ALARM_AOI_DF "" @ALARM_ACK_DF "" ``` `dssqld -r` after the items that refer to them are removed or changed. ## Verified (CI-Eng-Sample, 2026-10-01) `CIENG_ACK`, `CIENG_TANKS` (number 2), `CIENG_TANK1` (`SECTION = "CI-Eng-Sample.TANK1"`, compiled, valid) loaded and removed in a full sample remove/reload, 0 errors. A test ASA without spaces was stored invalid and then removed.