ci-server-engineer/examples/CI-Eng-Sample
cliu ef543cde20 Add phase 5 Engineering Module summary, authorization skill, item tests
- Summary of IM 36K10C10 (Engineering Module - I/O Processes), checked
  against dssana.sup, itm.sup and the default datasets
- New skill authorization: users and authorization groups by quick load
- item-engineering: string item limits (1-200, holds length - 1) and the
  integration granule (itm_int_secs), both tested on CI-Eng-Sample
- CI-Eng-Sample: read-only authorization group CIENG_VIEWER
- Closed ISS-001 (uoff/ublk option bits), ISS-010, ISS-019; new ISS-018, ISS-020

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:09:45 +10:00
..
monitoring Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
.gitignore Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
01_section_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
02_item_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
02b_sub_item_df.qli Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00
03_his_group_df.qli Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
04_item_his_df.qli Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
05_trigger_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
06_class_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
07_object_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
08_auth_group_df.qli Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00
85_remove_auth_group_df.qli Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00
86_remove_object_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
87_remove_class_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
88_remove_trigger_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
89_remove_item_his_df.qli Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
90_remove_his_group_df.qli Complete phase 1 and build the CI-Eng-Sample project 2026-09-30 14:01:33 +10:00
90b_remove_sub_item_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
91_remove_item_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
92_remove_section_df.qli Add phase 3 Tutorial summary and extend CI-Eng-Sample 2026-09-30 15:45:43 +10:00
load.cmd Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00
README.md Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00
remove.cmd Add phase 5 Engineering Module summary, authorization skill, item tests 2026-09-30 17:09:45 +10:00

CI-Eng-Sample

A small, invented sample project that anyone with this repo can load into a CI Server R1.03 test system. Skills use its names in their examples, and every skill task is re-tested against it so that no other project is needed.

Built and tested on CI Server R1.03.00 (unlicensed test system), 2026-09-30.

Load and remove

Test systems only: loading writes to the CI Server database. CI Server must be running. From an elevated prompt, call the scripts by full path (a bare load.cmd may not be found from the current folder):

cmd /c "<repo>\examples\CI-Eng-Sample\load.cmd"
cmd /c "<repo>\examples\CI-Eng-Sample\remove.cmd"
  • Each step prints a summary and writes a .qlo listing; check that Errors is 0.
  • Restart CI Server after loading (stop, then start the CI Service): a new storage group stores no history until CI Server restarts.
  • load.cmd on a system that already has the project reports Exists and changes nothing.
  • remove.cmd takes about 1½ minutes: a storage group can only be deleted after its stop time has passed, so the script sets a stop time one minute ahead and waits. Removing the group also deletes its history.

Current contents

Name Kind Details
CI-Eng-Sample Section Top level
CI-Eng-Sample.TANK1, .PUMP1, .SYSTEM Sections Tank, pump, system monitoring
CI-Eng-Sample.TANK1.LEVEL Item, Real %, format 999.9, limits LL 10 / L 20 / H 80 / HH 90, scale 0–100 (alarming off), stored in CIENG_EVENT
CI-Eng-Sample.TANK1.INFLOW Item, Real m3/h, format 9999.9, scale 0–500, stored in CIENG_EVENT
CI-Eng-Sample.PUMP1.RUNNING Item, Boolean
CI-Eng-Sample.PUMP1.MODE Item, Integer 0 manual, 1 auto
CI-Eng-Sample.SYSTEM.CPU_LOAD Item, Real Target for intcpumon
CI-Eng-Sample.SYSTEM.DISK_C Item, Real Target for intdskmon (reports used %)
CI-Eng-Sample.SYSTEM.PING_LOCALHOST Item, Integer Target for inttcpmon (1 = reachable)
CI-Eng-Sample.SYSTEM.PROC_ALM Item, Integer Target for intmon (1 = alm process running)
CI-Eng-Sample.PUMP1.RUNNING.RUN_SECONDS Sub-item, Integrator Running time in seconds (adds value × integration granule, itm_int_secs in itm.sup, default 1 s)
CI-Eng-Sample.TANK1.LEVEL.MAX Sub-item, Min-Max Highest level seen
CI-Eng-Sample.DEMO Section Tutorial examples
CI-Eng-Sample.DEMO.COUNTER Item, Integer Counts 1…100, one step per second, written by DEMO.INCR1
CIENG_1S Trigger group Every second
CIENG_INCR Class (traditional) Increments DEMO.COUNTER, wraps at 100; compiled on load
CI-Eng-Sample.DEMO.INCR1 Object Instance of CIENG_INCR
CIENG_EVENT Item storage group Event/Item, lifetime 1 week, rollover 1 day
CIENG_VIEWER Authorization group Read-only: ITEM_READ, SECTION_READ, ALARM_CURRENT_READ, ALARM_CHRONO_READ. No users are created by the sample.

All items are internal (no station), so the project works without any PLC or simulator. New items start with status 13 (NOT INIT) until a value is written.

Files

File Purpose
01_section_df.qli Sections (SECTION_DF); parents before children
02_item_df.qli Items (ITEM_DF)
02b_sub_item_df.qli Sub-items (SUB_ITEM_DF)
03_his_group_df.qli Item storage group (HIS_GROUP_DF)
04_item_his_df.qli Items in the storage group (ITEM_HIS_DF, name <group>:<item>)
05_trigger_df.qli, 06_class_df.qli, 07_object_df.qli Trigger group, class (source in the METHOD memo, @" … "@, COMPILE 1), object
08_auth_group_df.qli Authorization group (AUTH_GROUP_DF)
85_…92_remove_*.qli Names to delete, in reverse order
load.cmd, remove.cmd Run the steps in the right order
monitoring/*.sup.txt Setup-file lines for the monitoring processes (not applied by load.cmd)

Monitoring processes (optional)

monitoring/ holds the lines to add to the setup files in %TLS_ROOT_PATH%\tls\sup\ so that intcpumon, intdskmon, inttcpmon, intmon and intspawn write into the SYSTEM items. These change the system's own setup files: back the files up first and restore them after testing. See the system-management skill, task monitoring-processes.md.

Planned additions

Phase Adds
6 Template items, a class with attributes/prompts, objects that create items
8 Alarm settings on sample items
9 More storage groups (scan/time, aggregation)
10 A display and symbol
11 A report

Rules

  • Test systems only; invented names only, no real plant or customer data.
  • Keep the load order: sections → template items → classes (compiled) → objects → other items → storage groups → items in storage groups (IM 36K10J10 §5.6). Keep remove.cmd in reverse order.
  • Every file notes the CI Server version it was built and tested on.