ci-server-engineer/knowledge/manuals/IM36K10L15-01EN.md
cliu bf7d88a027 R1.05 re-check batch 3: alarms, audit, authorization, classes, HAC, reporting, pyTOOLS
Full manual diffs (L15, C20, E30, L25, J40, C10 §2, L10, P10, P11, J20,
C30, P20, R40, E10) and read-only checks on the shared R1.05 test server.
Skills and summaries moved to R1.05; new skill pytools (IM 36K10P40) from
docs (no Python on the test server). Issues ISS-132..181; corrections to
version-differences (E10, E30, P11, dss_ath_grp_u0104); C10 summary lists
the 3 new authorization actions; r105-verification V10-V17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:21:36 +11:00

16 KiB
Raw Blame History


manual: IM 36K10L15-01EN title: Alarm Management Engineering edition: 4th Edition, Feb. 2026 (R1.05); content unchanged since the 3rd Edition, Sep. 2023 (R1.03): full text diff 2026-10-09 found only contact information version: R1.05 (first written for R1.03) status: R1.05 - processes, setup files, almdbg 1/9/12 and alhdbg 1 checked read-only on the R1.05 test server (2026-10-09); setup files and alarm dataset definitions identical to R1.03 except alarm_start/stop.cmd (extension scripts), alnsms.sup defaults and the new internal dataset ALARM_ATTRIBUTE_TEMP_DF; alarm behaviour not re-tested on R1.05 (shared server). R1.03 - verified for item-based alarms (acknowledgement type, AOI, ASA, ALARMING, alarm events, acknowledge, almdbg/alhdbg) on CI-Eng-Sample 2026-10-01; first-out, collections, notifications, shelving, acoustic/count destinations from docs; setup files checked read-only

Alarm Management Engineering (R1.05)

R1.05 changes: the manual text is the same as in R1.03 (revision table and full text diff, 2026-10-09). Installed software (R1.05 test server, compared with R1.03 by file hash and line by line): alm.sup, alh.sup, aldprt.sup, aldaco.sup, aldcnt.sup, alnmgr.sup, alnsmtp.sup, asbman.sup, wfladi.sup, their templates and the alarm dataset definitions are identical. Different: alarm_start.cmd / alarm_stop.cmd call extension scripts ?*_alarm_start.cmd / ?*_alarm_stop.cmd (§1, ISS-121); alnsms.sup defaults (§10, ISS-134); new internal dataset ALARM_ATTRIBUTE_TEMP_DF (§7, ISS-133). R1.04 added the display-side acknowledgement with reason and approver (C50, ISS-099); the kernel is unchanged.

ALARM Service turns item status changes (and external alarms, informational events) into alarm events, distributes them to destinations and stores them. Section numbers refer to the manual. Engineering Module forms for the same functions: IM36K10C20-01EN.md.

1. Processes (§1)

Process Role Started by default
ALM Alarm kernel: receives item-based events from ITEM Service and non-item-based events from applications, builds alarm events, sends them to destinations yes
ALH Alarm storage: current alarms (time and priority) and chronological history in storage group ALH yes
ALDPRT Printer destination: formats alarm lines for UMH, stderr or a printer yes
ALMUPD Recovery process (sends Start recovery session to ALM) —
ALNMGR, ALNSMTP, ALNSMS Notification manager, e-mail, SMS ALNMGR, ALNSMTP yes
ASBMAN Alarm shelving yes
ALDCNT Count destination (counts events into an item) no (alarm_start.cmd, commented)
ALDACO Acoustic destination (WAV or command) no (integration_start)
ALHCUR, ALHCHR Split current / history storage (ALH becomes a router) no

Blocks: ALM (kernel), ALH (storage), ALD (destinations), ALC (alarm selection areas). Installed alarm_start.cmd starts alm, alh, aldprt, alnmgr, alnsmtp, asbman (R1.03 and R1.05). On R1.05 it then calls every ?*_alarm_start.cmd in tls\com, and alarm_stop.cmd first calls every ?*_alarm_stop.cmd: the place to start aldcnt, alnsms or extra aldaco processes without editing the installed script (ISS-121; not tested).

Verified: almdbg option 1 lists the connected destinations ALH, OPXUAS (OPC UA server A&C), ALNMGR, ALDPRT (R1.03); on the R1.05 test server also WFLADI (an open alarm overview), 2026-10-09.

2. Alarm sources and states (§2.1)

  • Item-based: ITEM Service compares the value with the limits and sets the item status (LOW LOW < low-low limit ≤ LOW < low limit ≤ NORMAL ≤ high limit < HIGH ≤ high-high limit < HIGH HIGH). Each item status maps to one of four alarm states: Normal (N), Alarm 1–3 (A1–A3). The mapping is system-wide in STATUS_DF (ALARM_STATE, ALARM_PRIO, colour, mnemonic, shelve flag) and can be overridden per item (up to 6 statuses, ITEM_DF ITEM_STAT_n, ALARM_STATE_n, PRIORITY_n, ALARM_TEXT_n, …). Installed STATUS_DF: NORMAL 9 → Normal/prio 15, HIGH 10 → Alarm 2/prio 2, HIGH HIGH 11 → Alarm 3/prio 1 (140 statuses).
  • Every status change is an alarm state transition, even when old and new state are equal (e.g. LOW → HIGH, both A2).
  • External alarms: OPC A&E (mapped to items, uses force to alarm/normal) and OPC UA A&C (EAL definitions) — see C20 summary part B and IM36K10L45-01EN.md.
  • Informational events: from equipment data sources (OPC UA/A&E clients, STARDOM) or applications; shown only in history.

3. Alarm event types (§2.2)

ALARM, NORMAL, DIRECT, DELAY, REPEAT, ACKNOWLEDGE, INFORMATIONAL, DEACTIVATE, RECOVERY, DIAGNOSTIC, QUALITY, PRIORITY, FIRSTUP. External OPC UA alarms never get RECOVERY.

Verified (dataset ALARM_CHRONO, column EVENT_TYPE): switching on ALARMING gave a NORMAL event; 44.4 → 85 gave ALARM (HIGH, Normal → Alarm 2, prio 2, ACK 0); acknowledging gave two ACKNOW records (the second carries the node name: ACK_INFO is set in alm.sup); 85 → 50 gave NORMAL.

4. Kernel mechanisms (§2.3)

Mechanism Behaviour External alarms
Delay (item DELAY, s) N → Ax gives DIRECT, timer starts; at expiry DELAY (with the latest state). Back to N during the delay: NORMAL, no DELAY. Another Ax during the delay: DIRECT, timer keeps running. No delay if the previous Normal was not acknowledged yes
Repeat (item REPEAT, s) ALARM, then REPEAT every period while in alarm; a new alarm state restarts the timer yes
First-out (§2.3.3) Group of first-out items and continuation items. While a first-out item is in alarm (internal-active), new continuation alarms give only DIRECT; when the group goes inactive (after the optional internal delay) still-standing continuation alarms give ALARM. Parent groups make child groups external-active (all new alarms DIRECT) with an external delay yes
Acknowledgement (§2.3.4) Acknowledgement matrix per acknowledgement type: for each (old state, old Ack/Nack) → new state, automatic or manual. Manual ack by an operator gives an ACKNOWLEDGE event; automatic ack gives none yes (Inactive/Active matrix)
Change priority (§2.3.5) alm.sup PRIORITY = <old>,<seconds>,<new>: an unacknowledged alarm of priority old gets a PRIORITY event with new after the time; chains (max 16 useful) —
Force to normal / to alarm (§2.3.6–7) Engineering Module Update value check boxes (authorised users); option bit, itm_set_gen() from programs; also for EALs after a long OPC UA disconnection yes
Force an event (§2.3.8) Criteria mask ITM_CRI_EVENT: event without state change —

Precedence (§2.3.9): delay → first-out → repeat → change priority (repeat and change priority start together, after the ALARM).

Special events (§2.4): DEACTIVATE when alarming is switched off (or an EAL deleted) — the alarm leaves the current overview; RECOVERY from the recovery process; DIAGNOSTIC for items marked diagnostic; QUALITY when only the quality changed (needs QUALITY_CODE in alm.sup).

Recovery (§2.5): after queue overflows ALM sends RECOVERY events for every item in sets (REC_ITM, default 25, REC_WAIT 500 ms, REC_CYCL 1). External alarms are refreshed by the OPC UA client with ConditionRefresh (at connect, reconnect, redundancy switch, or On scan).

5. Acknowledgement types (dataset ALARM_ACK_DF)

Fields <from><A|N>_<to>: from state N, A1, A2, A3; A = was acknowledged, N = was not; to state N, A1, A2, A3. Value 1 = automatic, 0 = manual (operator). 32 fields; EAL_ACK 1 = external-alarm type (8 fields used). Name and the external flag cannot be changed later; a type in use cannot be deleted (verified: DSSP-E-NODEL … By <item> in dataset ITEM_DF). Items with no type behave like AUTOMATIC; EALs with none use FULLMANUAL_EAL.

Installed types: AUTOMATIC (all 1), MANUAL (only NA_N, NN_N, A1A_N, A2A_N, A3A_N = 1), FULLMANUAL (all 0) and the _EAL variants (AUTOMATIC_EAL, MANUAL_EAL, FULLMANUAL_EAL). almdbg 9/10 lists the types by number and prints the matrix.

Verified with CIENG_ACK (same matrix as MANUAL): HIGH alarm came in unacknowledged; acknowledged, then back to normal → automatically acknowledged, gone from ALARM_CURRENT. HIGH HIGH back to normal without acknowledgement → stayed in ALARM_CURRENT (NORMAL, ACK 0) until acknowledged.

6. Kernel setup file alm.sup (§2.6)

QUESIZE (KB, default 25000), PRIO_ACK_ABS / PRIO_ACK_REL (priority after ack), ACK_INFO (send node/terminal/user with acknowledgements), QUALITY_CODE, PRIORITY (change priority list), SUPPR_ACK_CHG, SYNC_COMM (async DUR to destinations), SYNC_MSG, PRESERVE_PRIO, HIGHEST_PRIO (15 or 0 = most important), recovery tab REC_CYCL, REC_ITM, REC_WAIT, RECOVER_ALL, RECOVER_QUEUE.

Installed: SYNC_COMM N, SYNC_MSG N, QUESIZE 25000, RECOVER_QUEUE Y, ACK_INFO.

7. Storage process (§3)

  • Three storage classes: current by time, current by priority, chronological (CURT, CURP, CHR in alh.sup; all on by default). Current alarms live in memory unless MEM-WRT is off; history is always on disk.
  • alh.sup: FPATH, ALM-PROC, DEF-WRT (VMS only), MEM-WRT, QUESIZE (8000 KB), MAX-OPEN-UNITS (2–100, default 5), MAX-SEARCH (s per history search, default 5), RECOVER_QUEUE.
  • Multi-process: copy arh.sup to alhchr.sup / alhcur.sup, uncomment their lines in alarm_start.cmd; the router alh.sup then holds only QUESIZE.
  • Installed alh.sup: CURP, CURT, CHR, QUESIZE 8000, MAX-SEARCH 5, RECOVER_QUEUE Y, plus DB-JRNL = WAL and DB-SYNC = OFF, not in the manual (ISS-036).
  • Datasets: ALARM_CURRENT (standing and unacknowledged alarms), ALARM_CHRONO (history; not exported unless named, filter with @SELECT). External alarm definitions are in EXTERNAL_ALARM_DF; ALARM_EXT_CURR is only a default report name, not a dataset.
  • Installed storage group ALH (HIS_GROUP_DF): type Alarm, rollover 1 day, lifetime 52 weeks (the C20 manual gives 2 days as the default; ISS-036). The fresh R1.05 install on the test server has the same 52 weeks, so this is the installed default (ISS-135).
  • Alarm attributes (CI attributes): definitions in ALARM_ATTRIBUTE_DF, current values in tls\dat\alarm_attribute_current.db (R1.03 and R1.05). R1.05 adds ALARM_ATTRIBUTE_TEMP_DF (same fields, no data file, concealed on an enterprise server, header: temporary store for item-specific alarm attributes). On the R1.05 test server it is empty and used only by the RESTful API server; not described in any manual — internal, leave it alone (ISS-133).
  • Heavy load (R1.05 test server, observed by earlier work): an alarm overview filtered by an ASA on SECTION or UNIT kept ALH at a full CPU core and timed out the alarm lists of every client (ISS-136). Avoid such overviews and unfiltered ALARM_CHRONO reads on shared servers.

8. Destination processes (§4)

  • Each destination registers with ALM giving the event types it wants (EVENTS = direct, alarm, repeat, ackn, info, deact, recov, diag, qual, prio, firstup; ALARM includes DELAY and NORMAL) and/or an alarm selection area (DEST-ASA); not both.
  • Alarm line (FORMAT = <unit>,<length>,…): ACKN, NAM1–NAM4, SECTION, NAME, PRIO, TYPE, time formats TANS/TEUR/TGEN/TDEF/TJUL/TFMT (and ST… for the original timestamp), TEXT, NWLN, SPAC, VAL (VAL-PREC), QC_DEC, QC_HEX, ITM_DESC, ENG_UNIT, OPC fields EVT_CAT, SOURCE, COND, SUBC, ACTOR_ID and combined C_… variants. TIMEFMT picture string (installed keyword name; the manual also writes TIMFMT).
  • ALDPRT (setup file = process name): LOGUMH / LOGSCN / LOGPRT (+ PRTDEV or PRTQUE, PRTBUF), HEADER … HEADEREND, DEST-TYPE, ALDMAN, PRIO-DEST. With no log destination set it logs via UMH. Installed: FORMAT prio,2,spac,1,type,6,tdef,18,name,40, text,10, EVENTS repeat,info,ackn,alarm,prio,firstup, header every 10 lines. On the test system ALDPRT received the events (almdbg counter) but no alarm line appeared in umhlog.log (ISS-035).
  • ALDCNT: counts events into ITEM-NAME (required), wraps at MAX-COUNT (1500); not the number of standing alarms. Installed file has the placeholder item.
  • ALDACO: PLAY (WAV, Windows, needs a logged-in user) or COMMAND, SILENCE = <item>,<ms> repeats until the item is NORMAL, DEF-NODE, QUE-SIZE (30 KB). One process per sound (e.g. -n aco_p1 with aco_p1.sup, each with its own ASA). On a CI Portal prefer the graphic alarm sound component.
  • Setup files of alarm displays are read each time a display opens; removing comments speeds this up (keep a backup).

9. Debuggers (§6)

almdbg (menu, -1 exit; answers can be piped):

No. Action Notes
1 / 2 / 3 Destinations / detail / disconnect read-only except 3
5–8, 27, 28 First-out groups, children, first-out and continuation items/EALs read-only
9 / 10 Acknowledgement types / matrix of one type number read-only
11 Repeat/delay list read-only
12 Statistics (events received/sent, list sizes) read-only
13 Item recovery
14 Item alarm parameters (by name): monitoring, ack type number, collection, first-out, repeat, delay read-only
15 Preset an item status changes data
16 Generate non-item-based (INFO) event: timestamp, ms, priority, name, status text, description 6 prompts; history only
17, 19, 20 Stop ALM / ALH / ALDPRT never without approval
22 Diagnostic message for an item or EAL
23–26 Collections: list, detail, reset, acknowledge

alhdbg: 1 storage groups (verified: group 3, unit 80, current cell start; R1.05 test server 2026-10-09: group 3 as well), 2 units of a group, 3 force connect to kernel, 4 tidy stop (never without approval). On R1.05, almdbg 1, 9 and 12 gave the same kind of output as on R1.03 (six ack types; statistics with start time and event counters).

Piping -1 at the end makes DURTIM log Process ALMDBG_<pid> exited unexpectedly — harmless.

10. Notifications and shelving (§7, §8)

  • alnmgr.sup: EVENTS (alarm, firstup), ALM-PROC, QUE-SIZE (500 KB), DBG-LEVEL, MAX-LOG, MAX-LIFE-TIME, MAX-CLEAR-TIME, ACK_STOPS_REPEAT, INT-QUE-SIZE (1000).
  • alnsmtp.sup: SMTP_SRV (installed localhost, 25), FROM_ADDRESS (admin@localhost.com), SMTP_TIMEOUT 10, EMAILS_PER_CONN 1, SMTP_INACTIVE, D_LEVEL, MAX_LOG, SUBJ_FORMAT / BODY_FORMAT (+ …_TIMEFMT), VAL-PREC, ALARM_PREFIX [ALARM], CLEAR_PREFIX [CLEAR], SUFFIX. Only SMTP servers without authentication or encryption.
  • alnsms.sup: SMS_PORT (installed COM1:), AT-command modem, serial line settings. R1.05 (installed file and template, ISS-134): the format help adds the units SECTION and NAME; the active defaults are now BODY_FORMAT = PRIO,2,SPAC,1,TYPE,6,TDEF,18,TEXT,6, SECTION,120 (R1.03: …,nam1,16,nam2,16,nam3,16,nam4,16,text,32) and ALARM_PREFIX = PRIO (R1.03 <ALARM>; the help still describes a plain prefix string). CLEAR_PREFIX <CLEAR> unchanged. alnsms is still not started by default. Not tested (no GSM modem).
  • asbman.sup: QUE-SIZE 500, TICKER_INTERVAL 2 s, SYS_WIDE_SHELF (installed N: shelving kept per CI View) with optional count items, DEBUG_ON. Same setting on every node. In enterprise mode use the alarm overview Location column.
  • Known issue (IM 36K01A50 §1.6): shelving more than ~500 alarms can overflow the DURM queue.

Not practiced: notifications (no SMTP server), shelving (needs a CI View display), acoustic and count destinations, split storage processes.