C# Openness implementation of HMI engineering.
Scanned 5/27/2026
Install via CLI
openskills install Czarnak/totally-integrated-claude---
name: tia-hmi-operations
description: >
C# Openness implementation of HMI engineering.
---
# tia-hmi-operations
## 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 file | When to use |
|---|---|
| `references/hmi-target.md` | **Initialize/Compile:** Getting the `HmiTarget` from a device; compiling HMI; HMI object model overview; namespace-to-composition mapping. |
| `references/screens.md` | **Screens:** Creating and managing screen folders; deleting screens, screen templates, or entire folder contents. |
| `references/hmi-composition-hierarchy.md` | **Screen Items & Alarms:** Complete screen composition tree (popups, slideins, templates, global elements); screen item attributes; Alarms, Recipes, and Reports API. |
| `references/tags.md` | **Tags:** Creating HMI tag table folders; enumerating tags; deleting individual tags or tag tables. |
| `references/scripts-cycles-connections.md` | **Services:** Managing VB scripts and folders; cycles, connections, text lists, and graphic lists. |
### WinCC Unified (WinCCUnified.dll — `HmiSoftware`)
| Reference file | When to use |
|---|---|
| `references/unified-overview.md` | **Initialize/Overview:** Getting `HmiSoftware` entry point; full composition map; required namespaces. |
| `references/unified-tags-alarms.md` | **Tags & Alarms:** Unified tags, tag tables, groups; alarm classes, discrete/analog alarms; audit classes. |
| `references/unified-screens.md` | **Screens:** Unified screen hierarchy, groups, folders; ScreenBase, ScreenGroup, and ScreenWindow navigation. |
| `references/unified-elements.md` | **Screen Items:** Creating/finding shapes (circles, lines) and widgets (buttons, IO fields, gauges). |
| `references/unified-parts.md` | **UI Components:** Complex parts like DataGrids, AlarmViews, TrendAreas, and ControlBar elements. |
| `references/unified-dynamization.md` | **Dynamization:** Scripting, Tag/Expression dynamization; MappingTables; flashing conditions. |
| `references/unified-events.md` | **Event Handlers:** Subscribing to UI events (OnClick, OnChange) for all screen item types. |
| `references/unified-features.md` | **Features:** UI feature interfaces (IHmiArcFeature, IHmiWindowFeature, IHmiScaleFeature). |
| `references/unified-logging.md` | **Logging:** Data logs, alarm logs, audit trails, and logging tags. |
| `references/unified-connections.md` | **Connections:** HMI connections and driver properties. |
| `references/unified-runtime-settings.md` | **Runtime:** Reporting, Telemetry, OpcUaServer, and UI Runtime resource settings. |
| `references/unified-plant-model.md` | **Plant Model:** Plant Objects, Views, Interfaces, and CPM services. |
| `references/unified-system-services.md` | **Services:** JavaScript modules/scripts; Text and Graphic lists. |
| `references/unified-enums.md` | **Enums:** Comprehensive list of HMI-specific enums (AggregationMode, FillPattern, FontName, etc.). |
---
## Execution pattern
1. Locate the HMI device in `project.Devices`
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. Use `ICompilable` for HMI compile (see `tia-project-general/references/compile.md`)
No comments yet. Be the first to comment!