Skip to content
Back to skills

Tia Plc Operations

ASecurity

C# Openness implementation of PLC software engineering.

  • 66 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
developmentpythongoc#api

Works with

  • api

Security analysis

A100/100

Pro scans all 13 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add Czarnak/totally-integrated-claude --skill tia-plc-operations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tia Plc Operations?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tia Plc Operations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/czarnak-tia-plc-operations/badge)](https://www.skillsdirectory.com/skills/czarnak-tia-plc-operations)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tia-plc-operations
description: C# Openness implementation of PLC software engineering.
---

# tia-plc-operations

## 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/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. The only remaining stub is import/export
signatures in `compile-import-export.md` — all other files are complete.

---

## Execution pattern

1. Access `PlcSoftware` via device's `SoftwareContainer`
2. Identify which reference file(s) cover the task — load them
3. Navigate Openness object model per reference file patterns
4. For online work: use `OnlineProvider` service on the CPU `DeviceItem` (see `online-status.md`)
5. For compare: use `CompareTo` / `CompareToOnline` on `PlcSoftware` or `Device` (see `compare.md`)
6. For software units: access via `PlcUnitProvider` service on `PlcSoftware` (see `software-units.md`)
7. For safety unit: access via `PlcUnitProvider.UnitGroup.SafetyUnits` (see `safety-unit.md`)

## Access pattern (always needed)

```csharp
using Siemens.Engineering.HW.Features;
using Siemens.Engineering.SW;

// From a DeviceItem (CPU)
SoftwareContainer sc = deviceItem.GetService<SoftwareContainer>();
PlcSoftware plcSoftware = sc?.Software as PlcSoftware;
```

Files in this skill

  • SKILL.md3.5 KB
  • references/alarms.md33.3 KB
  • references/compare.md4.8 KB
  • references/external-sources.md11.6 KB
  • references/online-status.md5.7 KB
  • references/opc-ua.md37.7 KB
  • references/safety-administration.md74.2 KB
  • references/safety-unit.md7.1 KB
  • references/software-units.md26.8 KB
  • references/supervision.md16.4 KB
  • references/tags-types.md49.8 KB
  • references/technological-objects.md76.9 KB
  • references/watch-force-tables.md20.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.