ci-server-engineer/knowledge/manuals/IM36K10G10-01EN.md
cliu 83af63ab53 R1.05 re-check batch 2: graphics, history, portal, system-management, items
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>
2026-10-08 19:29:15 +11:00

181 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
manual: IM 36K10G10-01EN
title: CI Server Tutorial
edition: 5th Edition, Feb. 2026 (first written from the 3rd Edition, Sep. 2023)
version: R1.05 (first written for R1.03)
status: from docs; item, sub-item, blocking, trigger group, class and object steps verified with dssqld/itmval on CI-Eng-Sample (R1.03, 2026-09-30); sections, items, sub-items, trigger group, classes and objects of the reduced sample load verified on the R1.05 test server (2026-10-08); ch. 14–15 not tested (no CENTUM VP)
---
# CI Server Tutorial (R1.05)
A guided tour of the main engineering tasks in the Engineering Module and Edit Module. Each
chapter points to the full manual for its area; the table shows where this repo covers it.
| Chapter | Topic | Covered in detail by |
|---|---|---|
| 1 | Engineering Module window: menu, configuration tree, work area (properties sheets), message area, edit history (undo/redo) | IM 36K10C10 (phase 5) |
| 2 | Authorization groups and users | IM 36K10C10 (phase 5) |
| 3 | Sections, items, sub-items, blocking, value updates, item statuses | IM 36K10C10, L35/L36 (phase 5) |
| 4 | Displays in the Edit Module; HTML displays | IM 36K10C50, R30 (phase 10) |
| 5 | Trigger groups, classes, objects, symbols linked to objects | IM 36K10L10, P10 (phase 6), C50 (phase 10) |
| 6 | I/O: lines, stations, scan types, points | IM 36K10L40/L41 (phase 5) |
| 7 | Item alarms | IM 36K10L15, C20 (phase 8) |
| 8 | Reports and printers | IM 36K10P20, R40, C30 (phase 11) |
| 9 | Audit trail | IM 36K10L25 (phase 12) |
| 10 | RDBMS data exposure (`dbc.sup`) | IM 36K10L45 (phase 7) |
| 11 | Item search | IM 36K10C10 (phase 5) |
| 12 | Excel Add-in | IM 36K10E10 (phase 11) |
| 13 | History: storage groups, units, collection types, aggregation, archiving | IM 36K10L20, C40 (phase 9) |
| 14 | Virtual test with the CENTUM VP test function (FCS simulator) — new in R1.04, extended in R1.05 | IM 36K10L55, IM 36K01C10; not covered by a skill |
| 15 | CENTUM VP HIS-TSE connection (RDP Connect, RD gateway) — new in R1.05 | IM 36K10C50 §2.31, IM 36K10L55 §2.7; skill `graphics` |
## Key points
**Users (ch. 2)**: create an authorization group (the set of allowed functions, e.g. `ALL`
with every function), then a user assigned to it. A user is needed to log on to the Edit
Module and Operator Interface.
**Items (ch. 3)**
- Full name `Section.Sub-section.Item` (max 255 bytes; no `:` or `.` inside a name; case
insensitive). Sections can be blocked as a whole, e.g. for maintenance.
- Types: Boolean, Integer, Real, String. String length (§3.2.2): default 80, maximum 200
**bytes** in the R1.05 edition (the R1.03 edition said 168 without audit, ISS-019). The
software allows `STRING_LENGTH` 1–200 with or without audit and holds length − 1 characters
(verified R1.03; same limit in the R1.05 data dictionary, ISS-124).
- Four limits (LL, L, H, HH) plus a deadband set the status LOWLOW…HIGHHIGH; the deadband sits
on the normal side of each limit. Scale high/low give OVERRANGED / UNDERRANGED.
Booleans set status TRUE/FALSE.
- An item is connected to an I/O point on the *Equipment* tab; the station must exist first.
- Sub-items: Integrator, Pulse counter, Min-Max, Rate-of-Change (with time unit), Typeless.
Sub-items cannot connect to equipment or have sub-items, and are **not** blocked with their
main item.
- Blocked items and offline items are not updated. *Update value* (Engineering Module) or
`itmval -p` changes value/status/quality; *Overwrite blocked* (`-o`) is needed for a
blocked item. New items are `NOT INIT` until a value is written.
- Item statuses are system-wide; add your own with numbers **100–127** (1–99 and above 127
are reserved), with mnemonic, alarm priority (0–15), alarm state (Normal, Alarm 1–3),
colour and shelving.
**Displays (ch. 4)**: a display is built of frames defined by a layout. Edit Module parts:
sheets, component bar, Visualizations tree, Symbols palette, menus, toolbars, drawing area.
Display names must be unique and without spaces. *HTML display* mode shows only components
and properties supported in HTML; switching it off keeps unsupported values.
**Classes and objects (ch. 5)**
- Trigger group: e.g. `ONE_SECOND`, a permanent 1-second trigger. A class can also be
triggered by item changes.
- Class (traditional language): `CLASS <name>; PROLOG … SIGNAL <var> := "<item>"; BODY
METHOD <m>; BODY … ENDMETHOD <m>; ENDCLASS <name>;`. After *Compile*, check the *Listing* tab
for errors. `ATTRIBUTE` and `PROMPT` lines define values asked when an object is created.
- Object: created in a section, from a class, with values for the prompted attributes.
- Symbol linked to a class (*PROCESS Service class*); on a display set the symbol's `object`
property to the object. Properties are linked to items/signals on the *Connection* sheet,
with a transformation (e.g. *Linear*); buttons use *Update item/parameter* actions.
- Test in the Operator Interface by typing the display name in the title bar.
**I/O (ch. 6)**: define in order **line → station → (scan type) → point**, then connect items
to points. Example: Modbus `LINE1` / `STATION1` / scan type `FAST` / `POINT1`.
**Alarms (ch. 7)**: current, historical and shelved alarm overviews. Item status → alarm
state (Normal, Alarm 1–3) system-wide, or per item (overrides). Acknowledgement types are
matrices of state transitions (automatic/manual). Delay time, repeat time (after delay),
first-out groups, collection groups, alarm selection areas (ASA, filter expressions), areas
of interest (AOI), notification by e-mail/SMS (users with schedules, destinations tied to an
ASA).
**Reports (ch. 8)**: defined with a name, destination, RQL query and layout; generated ad hoc,
on a schedule, or on an item event (with delay). Destinations: `DEFAULT`, `PRINTER_1`,
`NONE` (keep on disk), `ALARMS`, `AUDIT_TRAIL`, `MESSAGES`, `SCREEN_CAPTURE`; only `DEFAULT` and
`PRINTER_1` print by default. Destinations use primary/secondary devices with a policy
(automatic, both, none).
**Audit trail (ch. 9)**: stored in dataset `AUDIT_TRAIL`, storage group `ADT`; events are
named `<subject group>.<attribute>.<action>.<source>`, e.g. `ITEM.VALUE.MODIFY.HMI`; records
cannot be deleted except by deleting storage units. On R1.03.00 configuration and DSS changes
are recorded per dataset (e.g. `ITEM_DF.HIGH_LIMIT.MODIFY`); details in `IM36K10L25-01EN.md`,
skill `audit-trail`. R1.04 added to §9.2 a column for the **approver and reason**: who approved a
change of a critical process parameter, or who acknowledged an alarm and with what comment
(from docs).
**RDBMS exposure (ch. 10)**: copies CI Server data (`ITEM_VALUES` aggregated per interval,
`ITEM_HISTORY` with a mandatory filter, `ITEM_INPUTS` for writes back, or any dataset on
change) into SQL tables. Configure the connection string or system DSN in `dbc.sup`; with
Windows authentication add `CIX_PROCESS` to SQL Server (db_owner). Deleting an exposure drops
its target table. **Tested in R1.05 only** for `ITEM_VALUES` (skill `data-access`, task
`rdbms-exposure.md`): the manual's filter example with a quoted field name (`"NAME" like
"ABC*"`) fails (ISS-057); the installed `dbc.sup` change log says ITEM_HISTORY support was
removed (ISS-058); with the local `.\CIX_PROCESS` a remote SQL Server needs a SQL login
(ISS-059).
**CENTUM VP virtual test (ch. 14, R1.04, extended R1.05)**: CI Server graphics and alarms can
be tested against the FCS simulator of the CENTUM VP test function running on another PC.
Preparation: CENTUM VP project data and tags in CI Server (CI Exchange for CENTUM VP or by
hand; later VP project changes are not picked up), the optional CENTUM VP *Expanded Test
Function* started on the VP PC (clear *No Connect to Other PC*; R7.01 or later can allow
multiple projects), optionally Exaopc as an OPC AE station with *Broadcast Equalize Message*.
Start order: (on a virtual machine) set Vnet/IP domain and station number to 0 in the Vnet/IP
Interface Management Tool and reboot; stop VAGW and CI Server; start the control bus
communication emulation as a `CIX_MAINTENANCE` member in an elevated prompt
(`%TLS_ROOT_PATH%\tls\vagw\program(x64)\Controlbusemulation.exe -s <domain> <station> -p
<VP project DB path> -h <simulator host>`; tray icon while it runs); start VAGW (if used) and
CI Server. End in reverse: stop CI Server, stop VAGW, run the emulation with `-e` (or use the
tray icon). Test with field devices disconnected and restart the CI Server PC whenever you
switch between real and virtual mode. With HAC set both servers to manual mode first, build
the test environment on each, then back to automatic. **Not tested**: the `tls\vagw` folder
is not installed on the R1.05 test server (no Vnet/IP option), and there is no CENTUM VP
(ISS-127).
**HIS-TSE connection (ch. 15, R1.05)**: CI Server (CI Portal / CI View) acts as a client of
the CENTUM VP HIS-TSE (remote operation and monitoring) server over remote desktop, so
operators can open VP graphic, trend, faceplate and tuning views (also for block types CI
Server does not render). Needs CENTUM VP R6.07.10 or later; not for HTML displays; CI Server
cannot be installed on the HIS-TSE server.
- Edit Module: a *Generic Functions* component with function *RDP Connect*: Text Input 1 =
remote host, 2 = RemoteApp alias/program (`BKHBos` for HIS-TSE), 3 = its command line
(`-D` desktop mode; `-P O <tag or view>` panel mode, e.g. a faceplate or tuning view;
`@<project ID>` after the tag for a lower project with duplicate tag names), 4 = RD gateway
host[:port] (default 443). A parameter (e.g. `isButtonClicked`) triggers it.
- CI Exchange for CENTUM VP: project option *Display from HIS-TSE Server* (server name,
optional RD gateway) adds an RDP connection button to generated faceplates (RGS and RGS
with EAL projects; older projects via project properties, then regenerate).
- The generated `.rdp` file should be signed: each user creates a self-signed code-signing
certificate once (PowerShell script given in §15.3, valid one year by default).
- Limits: 4 or 8 sessions per HIS-TSE server; the number of VP windows per client is limited
per mode (table 15.4-1; panel mode one window); panel mode runs as RemoteApp and cannot reset
the buzzer, so some alarm buzzers do not sound; closed sessions linger 20 s, and a disconnect can block
reconnecting for about a minute unless the RemoteApp logoff delay policy on the server is set
to *Immediately*. End the session with *User Out* (Ctrl+Alt+Backspace).
- §15.5: RD gateway in the DMZ (may share the CI Portal machine), Windows Server, SSL
certificate (CA or self-signed), IT security settings.
- On the R1.05 test server only the launcher `tls\com\ConnectRDP.cmd` was found (2026-10-08).
**Not tested** (no HIS-TSE server, ISS-127).
**Other**: Item search (wildcards, copy/drag to Excel or Trend); Excel Add-in reports;
history storage groups and archiving (phase 9).
## R1.05 edition: other changes (from docs)
Found by the full text diff (2026-10-08); the revision table lists only §9.2 (R1.04) and
ch. 14–15:
- §3.2.2: string length now in bytes, maximum 200 (see *Items*).
- §8.10.2 / §8.11 (printer device): device status item and output-type parameters reworded,
same meaning (status item can be any type except Boolean, the device has more than three
states).
- §13.7.2 (storage group item, Event collection): conditions reworded; the sentence saying a
PIT filter can be set per item was dropped (the *Pass PIT* condition remains).
- §13 cross-reference corrected (13.9 → 13.7).
## Verified on CI-Eng-Sample (command-line equivalents, R1.03 2026-09-30)
On the R1.05 test server (2026-10-08) the reduced sample load created the same sections,
items, sub-items, trigger group, classes and objects with 0 errors; `DEMO.COUNTER` counted and
`TANK1.LEVEL.MAX` followed the level. Blocking was not repeated there (shared server).
| Tutorial step | Done with | Result |
|---|---|---|
| Sections and items (3.2) | `dssqld -i` `SECTION_DF`, `ITEM_DF` | loaded |
| Sub-items (3.2.3) | `SUB_ITEM_DF` | Min-Max keeps the maximum; **Integrator adds value × integration granule (`itm_int_secs` in `itm.sup`, default 1 s, system-wide); `TIME_UNIT` has no effect** (ISS-010) |
| Block item (3.3) | `dssqld -m` `ITEM_DF` `BLOCKED` 1/0 | option flag `blk` (status stays 9); writes without `-o` are **silently ignored**; after unblocking the flag `ublk` appears |
| Trigger group (5.1) | `TRIGGER_DF` (`TRIGGER_INTERVAL` "1 seconds") | loaded |
| Class (5.2) | `CLASS_DF` with `METHOD` memo and `COMPILE` 1 | compiled on load |
| Object (5.3) | `OBJECT_DF` (`NAME`, `CLASS`) | runs: `DEMO.COUNTER` counts 1…100 every second |