Full manual diffs (C50, R30, C60, L20, C40, L35, R10, R20, J10, L30, L50, P30, G10, C10) and read-only checks on the shared R1.05 test server where the permission system allowed them. Skills and summaries moved to R1.05. Issues ISS-092..129 (gaps 104-107, 114-115, 130-131 unused); ISS-074 closed (manual and software agree), ISS-091 corrected by ISS-119. version-differences: unlisted manual changes and installed-only changes. r105-verification: V5-V9 and new not-tested rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.3 KiB
| task | version | source | status |
|---|---|---|---|
| Read and write item values with itmval | R1.05 (first written for R1.03) | IM 36K10J10-01EN §2.9.2 (5th ed., Feb. 2026); practiced on the test system and CI-Eng-Sample 2026-09-30 (R1.03) | verified on R1.03 (2026-09-30, all examples below); itmval -p/-g used on R1.05 in the CI-Eng-Sample test, 2026-10-08; read output format, limit read and error messages re-checked read-only on the R1.05 test server 2026-10-08 |
Read and write item values (itmval)
Needs CI Server running. Reading is read-only. Writing changes live data: follow the user's chosen way of working (direct vs prepare only) and never write to an item that drives real equipment without explicit approval.
Item names are full paths: <Section>.<Sub-section>.<Tag>, e.g.
CI-Eng-Sample.TANK1.INFLOW from the sample project.
Read the current value
itmval -g -n <Section>.<Tag>
Output:
Value = 130
Status = 9
Options = 0xffffff88.00 ack
Quality = 0
- Status is a number from
STATUS_DF(export it withdssqld -e status_df.qli -d STATUS_DF -cto look numbers up). Common ones: 9NORMAL, 13NOT INIT(never written; new items start here), 4 / 5BOOLEAN 0/BOOLEAN 1, 11HIGH HIGH. - Options lists item flags as words after the hex value (option bits, IM 36K10C10 §3.5):
blk1 blocked,off2 offline (station not communicating),uoff4 updated offline (written by an application such asitmvalwhile offline),ack8 acknowledged,ublk16 updated blocked (written while blocked, e.g. with-o); 32/64 direct/delayed alarm. So writing a station item whose station is down addsuoff(0x…8a → 0x…8e); internal items (no station) never get it.
Read limits
itmval -g -n <Section>.<Tag> -a <n>
<n>: 1 deadband, 2 low, 3 high, 4 low-low, 5 high-high. The limit is returned in Value.
Items with no limits configured return ITM-E-WRONG_ATT, Wrong attribute number used
(same on R1.05). An item name that does not exist gives VIS-W-NOTFOUND, Record not found
followed by ISF-E-NOREC / GIN-E-GET lines (R1.05, 2026-10-08).
On R1.05 ITEM_VAL also has the fields ENG_UNIT, SCALE_HIGH_LIMIT and SCALE_LOW_LIMIT
(installed item_val.dss); itmval itself has no option for them.
Write a value
itmval -p -n <Section>.<Tag> -v <value> [-s <status>] [-q <quality>]
- Read the item first and note its value, so it can be restored.
- Booleans take
-v 0/-v 1; the status follows automatically (4 / 5). -ssets the status explicitly (e.g.-s 9NORMAL). Without it, a numeric write gives 9.-ooverwrites a blocked item;-t [<date>] <time> [GMT|LST]sets the timestamp (default local civil time);-ewrites to event history only, not the current value.- Read it back to confirm.
Verified examples (CI-Eng-Sample, R1.03)
On R1.05 the CI-Eng-Sample test (2026-10-08) used itmval -p and -g on the sample items in
the same way, with the same output format (Value / Status / Options / Quality).
| Command | Result |
|---|---|
itmval -p -n CI-Eng-Sample.TANK1.INFLOW -v 120.5 |
Value 120.5, status 9 |
itmval -p -n CI-Eng-Sample.TANK1.INFLOW -v 130 -s 9 |
Value 130, status 9 |
itmval -p -n CI-Eng-Sample.PUMP1.RUNNING -v 1 |
Value 1, status 5 (BOOLEAN 1) |
itmval -g -n CI-Eng-Sample.TANK1.LEVEL -a 2 / -a 3 / -a 4 / -a 5 |
20 / 80 / 10 / 90 |