--- manual: IM 36K10G10-01EN title: CI Server Tutorial edition: 3rd Edition, Sep. 2023 version: R1.03 status: from docs; item, sub-item, blocking, trigger group, class and object steps verified with dssqld/itmval on CI-Eng-Sample (2026-09-30) --- # CI Server Tutorial (R1.03) 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) | ## 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 (the Tutorial says max length 80 by default, up to 168 without audit; the installed R1.03 allows `STRING_LENGTH` 1–200 with or without audit and holds length − 1 characters, verified, ISS-019). - 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 ; PROLOG … SIGNAL := ""; BODY METHOD ; BODY … ENDMETHOD ; ENDCLASS ;`. 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 `...`, 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`. **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). **Other**: Item search (wildcards, copy/drag to Excel or Trend); Excel Add-in reports; history storage groups and archiving (phase 9). ## Verified on CI-Eng-Sample (command-line equivalents) | 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 |