/tia-sivarc
C# TIA Portal Openness V21 automation for SIMATIC Visualization Architect (SiVArc): rule tables, rules and groups, library instances, tag/text definitions, tag member settings, expression resolution, layout exchange, definition upgrade, and generation.
$ npx -y skills add Czarnak/totally-integrated-claude --skill tia-sivarc --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/tia-sivarc
Context preview
The summary Claude sees to decide when to auto-load this skill.
C# TIA Portal Openness V21 automation for SIMATIC Visualization Architect (SiVArc): rule tables, rules and groups, library instances, tag/text definitions, tag member settings, expression resolution, layout exchange, definition upgrade, and generation.
SKILL.md
tia-sivarc.SKILL.mdname: tia-sivarc
description: >
C# TIA Portal Openness V21 automation for SIMATIC Visualization Architect (SiVArc):
rule tables, rules and groups, library instances, tag/text definitions, tag member
settings, expression resolution, layout exchange, definition upgrade, and generation.
license: MIT
tia-sivarc
Scope
Use this skill for SiVArc engineering through the V21 C# Openness API.
- Assembly: `Siemens.Engineering.Sivarc.dll`
- Namespace: `Siemens.Engineering.SiVArc` (the namespace capitalization differs from the assembly filename)
- Entry point: `Sivarc sivarc = project.GetService<Sivarc>()`
- Prerequisite: load `tia-csharp-common` first
Do not substitute WinCC/HMI APIs for SiVArc rule or generation APIs. SiVArc generation creates, updates, renames, and may remove generated HMI objects; it is a live project mutation, not a read-only build step.
Reference files
Load only the reference required by the task.
| Reference | Use for | | --- | --- | | `references/generation.md` | SiVArc license and generation preflight; exact `GenerationOptions`; result and recursive message handling | | `references/rules-and-libraries.md` | All six rule families; tables, folders, groups, rules; library copies, type instances, and dynamic device columns | | `references/definitions-expression-layout.md` | Tag/text definitions, tag member settings, definition upgrade, expression resolution, and screen layout YML import/export | | `references/api-catalogue.md` | Complete inventory of all 92 installed V21 public SiVArc types |
V21 service acquisition
using Siemens.Engineering;
using Siemens.Engineering.SiVArc;
Sivarc sivarc = project.GetService<Sivarc>();
if (sivarc == null)
throw new InvalidOperationException("SiVArc is unavailable for the selected project or installation.");Any modification of SiVArc data, including generation, requires a valid SiVArc license. V21 reports a missing license as a recoverable `LicenseNotFound` exception; do not convert that into a successful no-op.
Safety boundary
- Require explicit authorization for the exact project, HMI runtime/device names, PLC device names, rule objects, generation options, and mutation type.
- Resolve every table, folder, group, rule, block, screen, and library item by an exact selector. Fail on zero or ambiguous matches; never use `.First()`, index zero, or a silent fallback to a default table.
- Before generation, inventory the HMI-to-PLC connections, source PLC compile status, previous/frozen generation selection, rules included by the selected flags, and generated objects that may be replaced or removed.
- `GenerationOptions.None` means “use project settings”; it is not a preview or dry run. `CreateOptions.Replace` can overwrite an existing object.
- Imports, rule expressions, dynamic attribute names, library objects, and YML files are untrusted engineering input. Validate path, provenance, identity, and destination.
- Inspect returned result objects and recursive feedback. Exceptions and error counts fail the operation. Never infer success from a non-null return value.
- Do not claim generation rollback from a transaction without live V21 evidence. Use `ExclusiveAccess` for mutations and only use a transaction for calls proven compatible with it.
- Do not save the project unless persistence was explicitly requested. If validation fails, leave the project unsaved and report that live recovery/rollback was not proven.
Execution pattern
1. Load `tia-csharp-common` and this skill. 2. Open or attach to the exact project and acquire `Sivarc`. 3. Perform a read-only inventory and resolve exact identities. 4. State the effective rule/generation scope and destructive consequences. 5. Obtain explicit authorization for the mutation. 6. Acquire `ExclusiveAccess`, perform the smallest operation, and capture all results/exceptions. 7. Compile or validate affected PLC/HMI artifacts where the API supports it. 8. Save only when explicitly requested and verification passed.
Evidence boundary
Static inspection against `Siemens.Engineering.Sivarc.xml` and reflection proves names and signatures only. License availability, project compatibility, generation behavior, retained manual edits, station-selection state, and produced HMI objects require an authorized live TIA Portal V21 run.
Read more
name: tia-sivarc description: > C# TIA Portal Openness V21 automation for SIMATIC Visualization Architect (SiVArc): rule tables, rules and groups, library instances, tag/text definitions, tag member settings, expression resolution, layout exchange, definition upgrade, and generation. license: MIT
tia-sivarc
Scope
Use this skill for SiVArc engineering through the V21 C# Openness API.
- Assembly: `Siemens.Engineering.Sivarc.dll`
- Namespace: `Siemens.Engineering.SiVArc` (the namespace capitalization differs from the assembly filename)
- Entry point: `Sivarc sivarc = project.GetService<Sivarc>()`
- Prerequisite: load `tia-csharp-common` first
Do not substitute WinCC/HMI APIs for SiVArc rule or generation APIs. SiVArc generation creates, updates, renames, and may remove generated HMI objects; it is a live project mutation, not a read-only build step.
Reference files
Load only the reference required by the task.
| Reference | Use for | | --- | --- | | `references/generation.md` | SiVArc license and generation preflight; exact `GenerationOptions`; result and recursive message handling | | `references/rules-and-libraries.md` | All six rule families; tables, folders, groups, rules; library copies, type instances, and dynamic device columns | | `references/definitions-expression-layout.md` | Tag/text definitions, tag member settings, definition upgrade, expression resolution, and screen layout YML import/export | | `references/api-catalogue.md` | Complete inventory of all 92 installed V21 public SiVArc types |
V21 service acquisition
using Siemens.Engineering;
using Siemens.Engineering.SiVArc;
Sivarc sivarc = project.GetService<Sivarc>();
if (sivarc == null)
throw new InvalidOperationException("SiVArc is unavailable for the selected project or installation.");Any modification of SiVArc data, including generation, requires a valid SiVArc license. V21 reports a missing license as a recoverable `LicenseNotFound` exception; do not convert that into a successful no-op.
Safety boundary
- Require explicit authorization for the exact project, HMI runtime/device names, PLC device names, rule objects, generation options, and mutation type.
- Resolve every table, folder, group, rule, block, screen, and library item by an exact selector. Fail on zero or ambiguous matches; never use `.First()`, index zero, or a silent fallback to a default table.
- Before generation, inventory the HMI-to-PLC connections, source PLC compile status, previous/frozen generation selection, rules included by the selected flags, and generated objects that may be replaced or removed.
- `GenerationOptions.None` means “use project settings”; it is not a preview or dry run. `CreateOptions.Replace` can overwrite an existing object.
- Imports, rule expressions, dynamic attribute names, library objects, and YML files are untrusted engineering input. Validate path, provenance, identity, and destination.
- Inspect returned result objects and recursive feedback. Exceptions and error counts fail the operation. Never infer success from a non-null return value.
- Do not claim generation rollback from a transaction without live V21 evidence. Use `ExclusiveAccess` for mutations and only use a transaction for calls proven compatible with it.
- Do not save the project unless persistence was explicitly requested. If validation fails, leave the project unsaved and report that live recovery/rollback was not proven.
Execution pattern
1. Load `tia-csharp-common` and this skill. 2. Open or attach to the exact project and acquire `Sivarc`. 3. Perform a read-only inventory and resolve exact identities. 4. State the effective rule/generation scope and destructive consequences. 5. Obtain explicit authorization for the mutation. 6. Acquire `ExclusiveAccess`, perform the smallest operation, and capture all results/exceptions. 7. Compile or validate affected PLC/HMI artifacts where the API supports it. 8. Save only when explicitly requested and verification passed.
Evidence boundary
Static inspection against `Siemens.Engineering.Sivarc.xml` and reflection proves names and signatures only. License availability, project compatibility, generation behavior, retained manual edits, station-selection state, and produced HMI objects require an authorized live TIA Portal V21 run.
A Claude Code plugin for Siemens TIA Portal engineering automation. Provides a routed skill framework covering the full TIA Portal Openness API surface — Python TIA Scripting for everyday tasks and C# Openness for advanced object-model work.
Repo: Czarnak/totally-integrated-claude
Other skills on totally-integrated-claude.
- /addin-operations
TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters.
Open skill - /plc-code-analysis
Standalone skill for multi-perspective PLC code security and quality analysis. Triggers on: "review", "audit", "analyze", "security check", "vulnerability scan", "code review", "check this code", "is this safe", "find issues" when combined with PLC, SCL, ST, LAD, FBD, Structured
Open skill - /tia-csharp-common
Internal reference skill — do NOT load directly from user queries.
Open skill - /tia-devices-general
C# Openness implementation of device-level operations
Open skill - /tia-doctor
Manual, read-only prerequisite probe for TIA Portal V21 and its modular Openness API, with optional Python TIA Scripting and TIA MCP checks.
Open skill - /tia-hmi-operations
C# Openness implementation of HMI engineering.
Open skill

