tia-hmi-operations

SkillAI & models

C# Openness implementation of HMI engineering.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the tia-hmi-operations skill

What this skill tells your AI

The instructions your AI receives, as published by czarnak/totally-integrated-claude in skills/tia-hmi-operations/SKILL.md and read by ahel’s review.

Scope

HMI engineering — full C# Openness implementation.

When the roadmap routes here, the entire solution is C#. Do not mix with Python wrapper calls. Always load tia-csharp-common first (done by roadmap).


Reference files

Load ONLY the reference file(s) relevant to the task. Do not load all files at once.

Classic WinCC (WinCC.dll — HmiTarget)

Reference fileWhen to use
references/hmi-target.mdInitialize/Compile: Getting the HmiTarget from a device; compiling HMI; HMI object model overview; namespace-to-composition mapping.
references/screens.mdScreens: Creating and managing screen folders; deleting screens, screen templates, or entire folder contents.
references/hmi-composition-hierarchy.mdScreen Items & Alarms: Complete screen composition tree (popups, slideins, templates, global elements); screen item attributes; Alarms, Recipes, and Reports API.
references/tags.mdTags: Creating HMI tag table folders; enumerating tags; deleting individual tags or tag tables.
references/scripts-cycles-connections.mdServices: Managing VB scripts and folders; cycles, connections, text lists, and graphic lists.

WinCC Unified (WinCCUnified.dll — HmiSoftware)

Reference fileWhen to use
references/unified-overview.mdInitialize/Overview: Getting HmiSoftware entry point; full composition map; required namespaces.
references/unified-tags-alarms.mdTags & Alarms: Unified tags, tag tables, groups; alarm classes, discrete/analog alarms; audit classes.
references/unified-screens.mdScreens: Unified screen hierarchy, groups, folders; ScreenBase, ScreenGroup, and ScreenWindow navigation.
references/unified-elements.mdScreen Items: Creating/finding shapes (circles, lines) and widgets (buttons, IO fields, gauges).
references/unified-parts.mdUI Components: Complex parts like DataGrids, AlarmViews, TrendAreas, and ControlBar elements.
references/unified-dynamization.mdDynamization: Scripting, Tag/Expression dynamization; MappingTables; flashing conditions.
references/unified-events.mdEvent Handlers: Subscribing to UI events (OnClick, OnChange) for all screen item types.
references/unified-features.mdFeatures: UI feature interfaces (IHmiArcFeature, IHmiWindowFeature, IHmiScaleFeature).
references/unified-logging.mdLogging: Data logs, alarm logs, audit trails, and logging tags.
references/unified-connections.mdConnections: HMI connections and driver properties.
references/unified-runtime-settings.mdRuntime: Reporting, Telemetry, OpcUaServer, and UI Runtime resource settings.
references/unified-plant-model.mdPlant Model: Plant Objects, Views, Interfaces, and CPM services.
references/unified-system-services.mdServices: JavaScript modules/scripts; Text and Graphic lists.
references/unified-enums.mdEnums: Comprehensive list of HMI-specific enums (AggregationMode, FillPattern, FontName, etc.).

Execution pattern

  1. Resolve the HMI device by exact selectors supplied by the caller; fail on zero or multiple matches
  2. Determine Classic vs Unified:
    • Classic: HmiTarget hmi = sc?.Software as HmiTarget (namespace: Siemens.Engineering.Hmi)
    • Unified: HmiSoftware hmi = sc?.Software as HmiSoftware (namespace: Siemens.Engineering.HmiUnified)
  3. Classify the task: tags, screens, alarms, scripts, logging, import/export, compile
  4. Load the relevant reference file (Classic or Unified) and navigate the composition
  5. Recursively traverse nested DeviceItem.DeviceItems; HMI software is not guaranteed to be on a top-level item
  6. Use an Openness transaction when the operation supports one, compile after changes, inspect all errors, and commit only after verification
  7. Do not save: call project.Save() only when persistence was explicitly requested

Safety and model boundary

  • Classic WinCC and WinCC Unified are separate object models. Do not cast a Unified HmiSoftware to classic HmiTarget or infer the model from order-dependent device discovery.
  • Create, import, overwrite, rename, reconnect, or delete only after explicit authorization for the exact selected object and operation.
  • Treat imported XML, JavaScript, VBScript, driver settings, addresses, and object names as untrusted engineering input. Validate paths and target-specific values before applying them.
  • For bulk or destructive work, inventory dependent screens, tags, alarms, scripts, logs, and connections first. Fail closed when identity or dependency evidence is incomplete.
  • Compile() and Unified Validate() results are gates, not logging aids: inspect result state and nested diagnostics; do not commit or save on errors.

Signals

GitHub stars
59
Forks
10
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
tia-hmi-operations
Source
github.com/czarnak/totally-integrated-claude