tia-plc-operations
SkillAI & modelsC# Openness implementation of PLC software engineering.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the tia-plc-operations skill
What this skill tells your AI
The instructions your AI receives, as published by czarnak/totally-integrated-claude in skills/tia-plc-operations/SKILL.md and read by ahel’s review.
Scope
PLC software 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.
| Reference file | Load when the task involves |
|---|---|
references/online-status.md | Going online/offline, reading PLC state, configuring connection parameters, OnlineProvider, OnlineState, ConnectionConfiguration |
references/fingerprint-data.md | V21 quick-station fingerprint retrieval, FingerprintDataProvider, online/TLS/password callback handling, and fingerprint comparison limits |
references/download-upload.md | Live PLC download and station upload, DownloadProvider, StationUploadProvider, callback configurations, fail-closed target handling |
references/compare.md | Comparing PLC software or hardware, CompareResult, CompareResultState, CompareToOnline, UpdateProgram |
references/blocks.md | Program blocks, system blocks, PlcSoftware root, know-how/write protection, block groups, ProDiag-FB, DataBlock snapshots, compile individual block/UDT, fingerprints, webserver pages, OB priority, loadable file |
references/external-sources.md | PLC external source files, importing/generating blocks from sources, PlcExternalSource, PlcExternalSourceGroup |
references/tags-types.md | PLC tag tables, tags, user constants, system constants, UDTs, PLC types, UDT group navigation |
references/software-units.md | Software units (PlcUnit), PlcUnitProvider, unit relations, unit access/publish, namespaces, name value type documents |
references/safety-unit.md | Fail-safe unit (PlcSafetyUnit), SafetyUnit access, safety relations, publish safety blocks |
references/safety-administration.md | Global safety settings, SafetyAdministration, safety signature, safety system version, safety runtime groups, safety validation assistant |
references/alarms.md | PLC alarms, alarm classes, alarm text lists, PlcAlarmTextProvider |
references/technological-objects.md | Technological Objects (TOs), motion control, axes, encoders, TO mapping, hardware connections |
references/watch-force-tables.md | Watch tables, force tables, PlcWatchTable, PlcForceTable, watch entries |
references/opc-ua.md | OPC UA server interfaces, OPC UA communication groups, access control, role mapping |
references/supervision.md | Supervision settings, supervision provider, supervision export/import |
For tasks spanning multiple areas, load all relevant reference files before generating code.
Stub behaviour
If a task targets a partial reference file, do not invent API calls. State clearly which sections are missing.
Live-operation safety
Treat every live TIA Portal or hardware action as unavailable until the user has explicitly authorized the exact portal instance, project, CPU, and action. A build, stub, offline project, or simulated test is not live evidence. Never infer permission for a download, force, online write, or snapshot load from a request to inspect, compile, compare, or generate code.
Before an authorized live action, report the resolved target and current
online state, preserve whether this client established the connection, and
disconnect only a connection this client opened. Keep destructive offline
changes inside ExclusiveAccess plus a Transaction where supported; compile
and verify before saving. Use the deletion safeguards from
tia-csharp-common for every Delete() example in the references.
Execution pattern
- Access
PlcSoftwarevia device'sSoftwareContainer - Identify which reference file(s) cover the task — load them
- Navigate Openness object model per reference file patterns
- For online work: use
OnlineProviderservice on the CPUDeviceItem(seeonline-status.md) - For download/upload: require explicit live authorization, resolve the exact target, and fail closed on unhandled callbacks (see
download-upload.md) - For compare: use
CompareTo/CompareToOnlineonPlcSoftwareorDevice(seecompare.md) - For software units: access via
PlcUnitProviderservice onPlcSoftware(seesoftware-units.md) - For safety unit: access via
PlcUnitProvider.UnitGroup.SafetyUnits(seesafety-unit.md)
Access pattern (always needed)
using Siemens.Engineering.HW.Features;
using Siemens.Engineering.SW;
// From a DeviceItem (CPU)
SoftwareContainer sc = deviceItem.GetService<SoftwareContainer>();
PlcSoftware plcSoftware = sc?.Software as PlcSoftware;
Signals
- GitHub stars
- 59
- Forks
- 10
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
tia-plc-operations- Source
- github.com/czarnak/totally-integrated-claude