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>
181 lines
12 KiB
Markdown
181 lines
12 KiB
Markdown
---
|
||
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 |
|