Kostenlose DevOps-Analyse
Zurück zum Blog
SPS / PLC · C# · INDUSTRIAL DEVOPS·12. Mai 2026·11 min Lesezeit

SPS mit C#
programmieren.
Wann, wie, wo nicht.

S7.NET, Beckhoff TwinCAT.NET und Rockwell mit .NET — die pragmatische Brücke zwischen Steuerungstechnik und IT-Welt. Inklusive Git- und CI/CD-Workflow.

AS

Andreas Schönfeld

Geschäftsführer & DevOps-Berater, Comquent GmbH

20 Jahre CI/CD- und Industrial-DevOps-Beratung — Schwerpunkt SPS/PLC-Versionierung, IT/OT-Brücke und Embedded-Toolchains.

Veröffentlicht: 12. Mai 2026Zuletzt aktualisiert: 12. Mai 2026
// Direkte Antwort

SPS-Steuerungslogik schreiben Sie nach IEC 61131-3 — nicht in C#. Mit C# realisieren Sie in der OT drei Pfade: S7.NET für Siemens-Kommunikation, Beckhoff TwinCAT.NET für .NET-Komponenten in der TwinCAT-Runtime, und Rockwell .NET-Integration über Component Object Model. Pragmatisch — weil Git, CI/CD und Tests Standard-IT-Toolchain bleiben.

01
// 01Drei Pfade

Welche Vendor-Pfade
gibt es 2026?

Die drei großen SPS-Hersteller bieten unterschiedliche .NET-Wege. Keiner ersetzt die Steuerungs-IDE — aber alle erlauben C# als Ergänzung für HMI, OPC UA, MES-Anbindung und Test-Automation.

/01

Siemens

S7.NETPlus / Sharp7

Runtime

Windows-/Linux-Host, Edge-Device

Rolle

Datenaustausch S7-1200/1500, LOGO!, S7-300/400 — kein Code auf der SPS

Typische Anwendungsfälle
  • HMI-Anwendungen
  • OPC-UA-Gateway
  • MES-Anbindung
  • Edge-Daten-Pufferung
/02

Beckhoff

TwinCAT.NET (Beckhoff.TwinCAT.Ads)

Runtime

TwinCAT-3-Runtime in Visual Studio

Rolle

.NET-Komponenten in der TwinCAT-Runtime — echte SPS-nahe C#-Logik (nicht-zeitkritisch)

Typische Anwendungsfälle
  • Daten-Mapping
  • OPC-UA-Server
  • Logging & Visualisierung
  • Fertigungsdaten an Cloud
/03

Rockwell

Studio 5000 Component Object Model / libplctag.NET

Runtime

Windows-Host neben ControlLogix/CompactLogix

Rolle

Datenaustausch mit Logix-Steuerungen, .NET-Komponenten in Studio-5000-Add-Ons

Typische Anwendungsfälle
  • HMI-Plant-Floor
  • AS-i / OPC-UA-Bridge
  • MES-Integration
  • Reporting
02
// 02Wann C# überzeugt

Vier Gründe für
C# in der OT.

Wo C# der pragmatischere Pfad ist — und warum.

Vorteil / 01

Standard-Toolchain

MSBuild, NuGet, dotnet CLI, Roslyn, NUnit, xUnit — alle bekannten DevOps-Tools laufen direkt. Keine TIA-Portal-Lizenz auf dem Build-Agent.

Vorteil / 02

Diff-bar in Git

Anders als KOP/AWL ist C#-Code reiner Text. Pull-Request-Reviews, Branch-Strategien und Merge-Konflikte funktionieren wie in klassischen IT-Projekten.

Vorteil / 03

Test-Automation

Steuerungs-Adapter abstrahieren — und Tests laufen ohne reale SPS. Coverage ≥ 70 % auf der Daten-Mapping-Logik ist in jedem Projekt erreichbar.

Vorteil / 04

IT-Talente gewinnen

Junior-Entwickler aus der Hochschule können sofort produktiv sein — sie kennen C# und Visual Studio, aber selten Structured Text oder KOP.

03
// 03Wann C# NICHT reicht

Drei Grenzen.
Ehrlich genannt.

C# ist kein Universal-Hammer. Diese drei Use-Cases bleiben IEC 61131-3.

Grenze / 01

Harte Echtzeit-Regler

Lageregler, Motion-Control unter 1 ms, Sicherheits-SPS nach IEC 61508/SIL2+ — bleibt in IEC 61131-3 (Structured Text in TIA Portal, CODESYS, TwinCAT PLC).

Grenze / 02

Steuerungen ohne .NET-Runtime

S7-1200 ohne TwinCAT, klassische CompactLogix ohne Add-On — hier läuft C# nur als externer Kommunikations-Layer auf einem PC/Edge-Device, nicht auf der Steuerung.

Grenze / 03

Zertifizierungs-Pflicht

SIL-zertifizierte Codebasen brauchen geprüfte Compiler und Toolchains. C# und .NET sind dort meist nicht zugelassen — die Hersteller-IDEs der SPS liefern die zertifizierten Build-Strecken mit.

// 04Code-Beispiel S7.NET

Read/Write gegen
eine S7-1500.

Minimales C#-Beispiel: Verbindung zur S7-1500, einen DB-Wert lesen, einen Merker setzen. NuGet-Paket S7.NetPlus installieren und in einer Konsolen-Anwendung referenzieren.

Der Code unten läuft auf einem beliebigen Windows-/Linux-Host mit Netzwerkzugriff auf die Steuerung — die SPS selbst bleibt unverändert (kein Code-Deployment auf die SPS).

S7Reader.cs — Beispiel mit S7.NetPlus
// dotnet add package S7.NetPlus
using S7.Net;

var plc = new Plc(CpuType.S71500, "192.168.0.10", 0, 1);
await plc.OpenAsync();

// DB1.DBD0 als REAL lesen
var temperature = (float)await plc.ReadAsync("DB1.DBD0");
Console.WriteLine($"Temperatur: {temperature:F2} °C");

// Merker M10.0 setzen
await plc.WriteAsync("M10.0", true);

plc.Close();

S7.NetPlus · NuGet · Open Source (MIT) · S7-1200/1500, S7-300/400, LOGO!

05
// 05CI/CD in 4 Wochen

Vom ersten Modul
zur Pipeline.

Empirisch in 4 Wochen umsetzbar — Standard-Toolchain, kein Spezial-Setup nötig.

/01
Phase

Woche 1

Modul-Wahl & Library-Setup

Use-Case festlegen: HMI-Logik, OPC-UA-Gateway oder MES-Anbindung. NuGet-Pakete einbinden — S7.NETPlus für Siemens, Beckhoff.TwinCAT.Ads für TwinCAT, libplctag.NET für Multi-Vendor. Solution-Struktur mit Library-/Test-/Application-Project. .gitignore vorbereiten.

/02
Phase

Woche 2

Unit-Tests & Mocking

NUnit oder xUnit konfigurieren. Steuerungs-Adapter über Interface abstrahieren, damit Tests ohne reale SPS laufen. Coverage-Ziel: ≥ 70 % auf der reinen C#-Logik (Daten-Mapping, Protokoll-Adapter). Mocks für DB-Reads, Schreib-Operationen mit Test-Doubles.

/03
Phase

Woche 3

Build-Pipeline + statische Analyse

Jenkinsfile oder GitLab-CI mit MSBuild-Stage. Roslyn-Analyzer für Code-Quality, SonarQube für Coverage-Reporting. Signed-Build-Artefakt (Authenticode) für OT-Deployments. SBOM-Generierung mit CycloneDX für IEC-62443-Compliance.

/04
Phase

Woche 4

Integration-Tests gegen virtuelle SPS

PLCSim Advanced (Siemens) oder TwinCAT-Runtime im Container starten. Integration-Tests im CI gegen die virtuelle Steuerung — Read/Write-Zyklen, Datentyp-Konsistenz, Edge-Cases. Promotion auf Real-Hardware nur nach Pass.

// 06Sicherheit & Compliance

.NET-Code in der OT —
was IEC 62443 verlangt.

Sobald C#-Code mit einer Steuerung kommuniziert, wird er zum Bestandteil der OT-Sicherheitszone. IEC 62443 stuft solchen Code als SL-relevant ein — Build, Lieferkette und Deployment müssen nachvollziehbar sein.

Die fünf Pflicht-Stages, die in jeder CI/CD-Pipeline für .NET-OT-Code laufen sollten, sind unten aufgeführt. Mit dem Cyber Resilience Act kommen ab Dezember 2027 zusätzliche SBOM- und Meldepflichten dazu.

  • /01

    Authenticode-Signatur

    Build-Artefakte mit gültigem Code-Signing-Zertifikat signieren. Manipulationsschutz und Lieferanten-Nachweis in einem.

  • /02

    SBOM (CycloneDX)

    Alle NuGet-Dependencies in einer CycloneDX-Software-Bill-of-Materials erfassen. Pflicht ab CRA Dezember 2027.

  • /03

    Statische Analyse

    Roslyn-Analyzer mit Security-Regeln aktivieren (z. B. SecurityCodeScan). SonarQube für zentrale Pflege der Regeln.

  • /04

    Dependency-Scan

    Trivy oder OWASP Dependency-Check gegen alle NuGet-Pakete. CVE-Treffer ab CVSS 7 blocken den Build.

  • /05

    Verschlüsselte Kommunikation

    Wo das Protokoll es zulässt: OPC UA mit X.509-Zertifikaten statt klassische S7-Telegramme über Plain-TCP.

// 07Häufige Fragen

FAQ — C# in der
SPS-Welt.

/01
Kann man eine SPS mit C# programmieren?
Klassischer SPS-Steuerungscode wird nach IEC 61131-3 in KOP, FUP, AWL, ST oder SFC geschrieben — nicht in C#. Mit C# realisieren Sie in der OT typischerweise drei Pfade: Siemens S7.NET als Kommunikations-Library, Beckhoff TwinCAT.NET zur Programmierung der TwinCAT-Runtime mit .NET, oder Rockwell Studio 5000 mit .NET-Komponenten. Echte Echtzeit-Logik bleibt in der IEC-61131-3-Umgebung.
/02
Was ist S7.NET und wofür wird es eingesetzt?
S7.NET (auch S7.NETPlus oder Sharp7) ist eine offene C#-Library zur Kommunikation mit Siemens-S7-Steuerungen über das S7-Protokoll. Typische Use-Cases sind HMI-Anwendungen, OPC-UA-Gateways, MES-Anbindungen, Datenarchivierung und Edge-Datenvorverarbeitung. S7.NET läuft nicht auf der SPS, sondern auf Windows-/Linux-Hosts.
/03
Was ist Beckhoff TwinCAT.NET?
TwinCAT.NET-Komponenten und Beckhoff.TwinCAT.Ads.NET sind die offiziellen Beckhoff-Libraries, mit denen .NET-Anwendungen über ADS auf TwinCAT-Runtime und SPS-Variablen zugreifen. In Visual Studio lassen sich C#-Module schreiben, die auf der TwinCAT-3-Runtime gehostet werden.
/04
Wann lohnt sich C# statt KOP/AWL/ST in der SPS-Programmierung?
C# überzeugt für HMI-Logik, OPC-UA-Gateways, MES-Anbindungen, Datenarchivierung, Edge-Datenvorverarbeitung und Test-Automation. C# reicht nicht aus für: harte Echtzeit-Regler, Safety-relevante Logik nach IEC 61508/SIL2+, und tief integrierte Steuerungslogik auf Steuerungen ohne .NET-Runtime.
/05
Wie versioniere ich C#-SPS-Code mit Git?
C#-Code für SPS-Anbindung wird wie normaler .NET-Code in Git versioniert: .gitignore mit Standard-VS-Einträgen, NuGet-Pakete über PackageReference. Trennung in Library, Application und Tests. Pull-Request-Workflows funktionieren analog zu klassischen IT-Projekten.
/06
Wie baut man eine CI/CD-Pipeline für C# in der OT?
Standard-Pipeline in vier Stages: Restore (NuGet-Pakete cachen), Build (MSBuild oder dotnet build), Test (NUnit/xUnit + Coverage), Package & Sign (Authenticode). Bei TwinCAT.NET zusätzlich TcCOM-Assembly. Build-Agents brauchen Windows mit Visual Studio Build Tools.
/07
Welche Sicherheitsanforderungen gelten für .NET-Code in der OT?
IEC 62443 stuft Code, der mit Steuerungen kommuniziert, als SL-relevant ein. Pflicht sind signierte Build-Artefakte (Authenticode), SBOM für alle NuGet-Dependencies (CycloneDX), statische Code-Analyse, Dependency-Scanning auf CVEs und verschlüsselte Kommunikation zur SPS (OPC UA mit X.509).
/08
Welche Tools und Libraries für C#-SPS-Entwicklung 2026?
Siemens: S7.NETPlus, Sharp7, Siemens Openness. Beckhoff: Beckhoff.TwinCAT.Ads, TwinCAT.NET-Komponenten. Rockwell: Studio 5000 mit COM, libplctag.NET (Open Source, Multi-Vendor). Hersteller-übergreifend: OPC UA via OPC Foundation .NET Standard Stack.
// CI/CD für SPS

C# in der OT.
Pipeline in
4 Wochen.

Wir bauen Ihre erste CI/CD-Pipeline für .NET-Code in der Steuerungstechnik — mit S7.NET, TwinCAT.NET oder Multi-Vendor über libplctag. Standard-Toolchain, signierte Artefakte, virtuelle SPS-Tests.

// Nächster Schritt

Erstgespräch.
Kostenlos.
90 Tage zum Ergebnis.

Wir klären gemeinsam, wie Sie in 90 Tagen die ersten messbaren Industrial-DevOps-Erfolge erzielen.

Erstgespräch buchen
Seit 2006 · 47+ Projekte
Industrie · Automotive · Finance