ci-server-engineer/knowledge/manuals/IM36K10L36-01EN.md
cliu f24e617a70 Add phase 5 equipment and ITEM Service summaries
- Summaries of IM 36K10L40 (EQUIPMENT utilities), L41 (EQUIPMENT
  configuration: lines, stations, conversion types, Modbus master/slave,
  driver table), L35 (ITH) and L36 (ITM), checked against the installed
  start scripts, setup files and datasets
- tuning-checks: read-only itmdbg / eqpdbg via piped answers
- New ISS-021 (STATION_STAT empty), ISS-022 (itmval -f crashes),
  ISS-023 (install differs from ITEM manuals, closed); ISS-006 updated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:15:14 +10:00

4.5 KiB
Raw Blame History

manual title edition version status
IM 36K10L36-01EN ITEM Service Engineering - ITM 3rd Edition, Sep. 2023 R1.03 from docs; itm.sup, item_start.cmd and itmdbg statistics checked on the test system (2026-09-30); itmval -g/-p verified in phase 1; itmval -f crashes (ISS-022)

ITEM Service Engineering - ITM (R1.03)

ITM is the real-time item database (item common, shared memory). Section numbers refer to the manual.

1. Processes (§1.1–1.2)

Process Role
ITM item handler, message interface
ITMTIM sends buffered item events; recalculates integrators
ITMCPM / ITMCPS item copy master / slave for distributed items between nodes (buffered, compressed; after a lost MDUR link it rescans all or only changed master items in limited batches). Restart ITMCPM after deleting a distributed group.
ITMLIMUPD copies limit/deadband changes to other nodes
ITMREM cleans up event requests of processes that disappeared
itmval command-line get/put

itmtim [<period ms, default 100>] [<integration step ms, default 1000>] [<save count>]: save count = integrators saved to disk per recalculation. Installed item_start.cmd starts itmtim 100 1000 1 200 1 (five arguments; the last two are not documented). Also started: itmaah, intitmini, itmlimupd, itmrem.

2. itm.sup (§1.3)

Setting (keyword) Manual default Test system
Queue size (queue_size) 200 KB 200
Save items (item_save): ITEM_BASE (per item's remember last value), ALWAYS, NEVER ITEM_BASE ITEM_BASE
Max item groups (max_groups) 255 255
Max items per group (max_number) 65534 (255 × 65534 = 16,711,170 items) 65534
Max application info per item (max_appl_info) ≤ 20 bytes always fits 0
Max update info per item (max_upd_info) 512 512
Item pool size (pool_kbytes), guide 0.07 × groups × items + appl KB × groups × items + 10 50000 KB 650000
Integration granule (itm_int_secs), system-wide integrator time unit 1 s 1 (60 tested, ISS-010)
Lock timeout (lock_timeout_secs) 60 s 60
Save to disk (disk_save) YES yes
Not regained (not_regained): after start, mark possibly stale values until the first update; hidden in trends not described no (default block)

3. itmval (§1.4)

itmval -g [-l] -n <item>
itmval -p [-l] -n <item> [-v <value>] [-s <status>] [-q <quality>] [-o] [-t [<date>] <time> [GMT|LST]]
itmval -f <file> <vsqo> [-l] -n <item>

-l = use this node instead of the host; -o = overwrite a blocked item; -t = update time (default local time). -f should append an itmval -p … restore line with the chosen parts (value, status, quality, options) to a command file, but on the test system it crashes (segmentation fault / access violation) and writes nothing (ISS-022). The manual's space-separated name form (-n <inst> <unit> <tag>) is rejected ("no (extra) command line arguments allowed"); use the dotted full name. Practiced: skill system-management, task read-write-item.md.

4. itmdbg (§2)

Start itmdbg, then a code; answers can be piped, e.g. read-only statistics: printf '2\n-1\n' | itmdbg.

Code Shows / does
1 main info (root pointers, criterion and event request bits)
2 statistics: common size/free/fragments, configured limits, nr of items, integration secs, save mode, counters (item/sub-item updates, gets, buffered events, automatic saves, flow control) since system start and since debugger start
3 / 4 item / sub-item info by group and sequence number (value, status, options, limits, update times, name)
5–11 action blocks, main actions, task table (event requesters), event buffers, mask info (criterion bits: 1 FIRST, 2 EACH, 4 VAL, 8 STA, 10 DEL, …), item pointers, last update
12 unlock item data area (after a killed process; if pointers were being changed, restart ITEM Service)
13 save all item info to disk (before a shutdown, for a clean warm restart)
14, 15, 17, 18 flow control, integrator list, locked items, group–node relation
16 delete item from the in-core database (test/repair only)
19 / 20 most frequently updated items (10–1000) / reset those counters

Test system (itmdbg code 2): common 665,600,000 bytes, free 665,307,508, 203 items, integration 1 s, save mode item base. The same numbers appear in the automatic snapshots smd_*_itmdbg_all.log (skill system-management, task tuning-checks.md).