Kostenlose DevOps-Analyse
Zurück zum Blog
SPS / PLC · C# · INDUSTRIAL DEVOPS·12. Mai 2026·13 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.

Andreas Schönfeld

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: 24. August 2026
// Direkte Antwort

SPS-Steuerungslogik schreiben Sie nach IEC 61131-3 — nicht in C#. C# und SPS treffen sich eine Ebene darüber, über drei Pfade: S7.NET für Siemens-Kommunikation, Beckhoff TwinCAT.NET für den Zugriff auf die TwinCAT-Runtime über die ADS-Schnittstelle, und Rockwell .NET-Integration über Component Object Model. Herstellerneutral kommen OPC UA und Modbus TCP dazu. Für HMI, OPC-UA-Gateway, MES-Anbindung und Test-Automation ist das der pragmatischere Weg. Git, CI/CD und Unit-Tests bleiben dabei Standard-IT-Toolchain, harte Echtzeit bleibt auf der Steuerung.

Stand: August 2026 · .NET 10 LTS · S7.NetPlus 0.20 · Beckhoff.TwinCAT.Ads 7.0 · TwinCAT 3 · OPC UA
// Kurz gefragt1 Klick, anonym

Ist SPS mit C# bei Ihnen gerade ein Thema?

Wir fragen kurz, wie dringend das Thema bei Ihnen gerade ist. Je nach Antwort zeigen wir Ihnen direkt den passenden nächsten Schritt — ganz ohne Formular.

01
// 01Drei Pfade

Wie programmiert man
eine SPS mit C#?

Eine SPS mit C# programmieren heißt 2026 vor allem: einen von drei Vendor-Pfaden nutzen. Keiner ersetzt die Steuerungs-IDE — aber Siemens S7.NET, Beckhoff TwinCAT.NET und Rockwell .NET erlauben C# als Ergänzung für HMI, OPC UA, MES-Anbindung und Test-Automation. Fast jedes Automatisierungsteam landet früher oder später bei dieser Frage — meist dann, wenn das erste MES-Projekt ansteht und die Steuerungstruppe auf die IT trifft.

/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
// In 2 Klicks: Welcher C#-Weg?Schritt 1 / 2

Welcher C#-Weg passt zu Ihrer Steuerung?

Für C# an der SPS gibt es je Hersteller einen anderen Weg — von S7.NET bis TwinCAT.NET. Wählen Sie Ihre Steuerung, und Sie bekommen die passende Bibliothek plus den nächsten Schritt.

Welche Steuerung setzen Sie ein?

02
// 02SPS-Sprachen & Echtzeit

Welche Programmiersprache
für die SPS?

Die Norm IEC 61131-3 definiert fünf SPS-Programmiersprachen: Kontaktplan (KOP), Funktionsplan (FUP), Anweisungsliste (AWL), Strukturierter Text (ST) und Ablaufsprache (AS). C# steht nicht in dieser Liste — es setzt eine Ebene darüber an, auf dem PC oder Edge-Device neben der Steuerung.

SpracheTypTypischer Einsatz
Kontaktplan (KOP / LD)grafischVerriegelungen und Schützlogik. Vertraut für Elektriker, dominiert in der Instandhaltung.
Funktionsplan (FUP / FBD)grafischVerknüpfungslogik aus UND-/ODER-Bausteinen, verbreitet in der Verfahrenstechnik.
Ablaufsprache (AS / SFC)grafischSchrittketten für sequenzielle Abläufe — Rüsten, Takten, Rezeptsteuerung.
Strukturierter Text (ST / SCL)textbasiertBerechnungen, Schleifen, Datenstrukturen. Textbasiert und damit diff-bar — erste Wahl für neue Projekte.
Anweisungsliste (AWL / IL)textbasiertMaschinennahe Befehlsliste aus der Step-7-Zeit. In neuen Projekten kaum noch im Einsatz.
C# / .NETaußerhalb der NormHMI, OPC-UA-Gateway, MES-Anbindung, Test-Automation — als Anwendungs- und Kommunikationsschicht neben der Steuerung, nicht auf ihr.

IEC 61131-3 · Zielframework für neue OT-Projekte: .NET 10 LTS — Support für .NET 8 endet am 10. November 2026

Ist C# echtzeitfähig?

Nicht im Sinne harter Echtzeit. .NET läuft unter Windows oder Linux mit Garbage Collection und ohne garantierte Zykluszeit — Jitter im Millisekundenbereich ist normal. Für weiche Echtzeit reicht das aus: Visualisierung, Datenerfassung, MES-Kopplung im 100-Millisekunden-Bereich. Für Motion-Control, Lageregler und Sicherheitsfunktionen bleibt die Logik auf der Steuerung.

Beckhoff bindet .NET über ADS an die TwinCAT-Runtime an — die zyklische, deterministische Task bleibt dabei die SPS-Task. Diese Trennung ist kein Kompromiss, sondern die Architektur: unten Determinismus, darüber die Anwendungslogik, die sich in Git versionieren und im CI testen lässt. Wie Versionsverwaltung für SPS-Code auf der Steuerungsseite funktioniert, zeigt der Vergleich von octoplant, Copia und TIA Portal.

03
// 03Wann 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. Wer schon einmal zwei Binär-Projektstände nebeneinandergelegt hat, um eine verschwundene Änderung zu suchen, weiß, was das wert ist.

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.

04
// 04Wann 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.

// 05Code-Beispiele S7 & ADS

Wie greift eine C#-Anwendung
auf eine Siemens S7 zu?

Über das S7-Protokoll, ohne OPC-Server und ohne Änderung am Steuerungsprogramm. 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. Dieser Ansatz ist die typische Einstiegsstufe in Industrial DevOps für den Maschinenbau.

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 0.20 · NuGet · Open Source (MIT) · S7-1200/1500, S7-300/400, LOGO!

Wie greift C# über
TwinCAT ADS zu?

Bei Beckhoff läuft der Zugriff über ADS (Automation Device Specification), das interne Kommunikationsprotokoll von TwinCAT. Das NuGet-Paket Beckhoff.TwinCAT.Ads verbindet eine C#-Anwendung in Visual Studio mit der Runtime auf der Steuerung. Port 851 adressiert die erste SPS-Runtime, Variablen spricht der Code über ihren Symbolnamen an, nicht über Adressen. Details zur Plattform stehen im Glossar unter TwinCAT.NET und ADS.

Neben dem Handle-Zugriff unten steht der Symbol-Loader zur Verfügung. Er lädt den Symbolbaum der Steuerung zur Laufzeit, sodass eine Anwendung auch Variablen findet, deren Namen zur Compile-Zeit noch nicht feststehen. Für zyklisch wechselnde Werte lohnen sich ADS-Notifications statt Polling, weil die Runtime dann nur bei einer Änderung sendet. Die Trennung aus Abschnitt 02 gilt auch hier, denn die deterministische Task bleibt die SPS-Task und C# sitzt darüber.

AdsReader.cs — Beispiel mit Beckhoff.TwinCAT.Ads
// dotnet add package Beckhoff.TwinCAT.Ads
using TwinCAT.Ads;

using var client = new AdsClient();
client.Connect(AmsNetId.Local, 851); // 851 = SPS-Runtime 1

// Symbol per Handle lesen
var h = await client.CreateVariableHandleAsync("MAIN.fTemperature", CancellationToken.None);
var temperature = await client.ReadAnyAsync<float>(h.Handle, CancellationToken.None);
Console.WriteLine($"Temperatur: {temperature:F2} °C");

// Freigabe-Bit schreiben
var r = await client.CreateVariableHandleAsync("MAIN.bRelease", CancellationToken.None);
await client.WriteAnyAsync(r.Handle, true, CancellationToken.None);

Beckhoff.TwinCAT.Ads 7.0 · NuGet · TwinCAT 2 und 3 · ADS-Port 851

Welche Libraries verbinden
C# mit der SPS?

Fünf Wege sind in der Praxis relevant: S7.NET für Siemens, Beckhoff.TwinCAT.Ads für TwinCAT, libplctag.NET für Rockwell sowie die herstellerneutralen Protokolle OPC UA und Modbus TCP. Die Hersteller-Libraries sind schneller angebunden, die neutralen Protokolle überleben den nächsten Steuerungswechsel.

Library / ProtokollSteuerungenWofür
S7.NetPlus / Sharp7SiemensDatenbausteine, Merker und Peripherie von S7-300/400, S7-1200/1500 und LOGO! lesen und schreiben, über das S7-Protokoll und ohne OPC-Server. Open Source.
Beckhoff.TwinCAT.AdsBeckhoffZugriff auf die TwinCAT-2- und TwinCAT-3-Runtime über ADS: Variablen per Handle oder Symbolname, Symbolbaum zur Laufzeit, Notifications statt Polling.
libplctag.NETRockwell, Omron, ModbusTag-basierter Zugriff auf ControlLogix, CompactLogix und Micro800 über EtherNet/IP. Open Source und herstellerübergreifend, ohne Rockwell-Lizenz auf dem Host.
OPC UA (.NET Standard Stack)herstellerneutralTypisierter Adressraum statt roher Adressen, dazu Authentifizierung und Verschlüsselung über X.509-Zertifikate. Erste Wahl bei gemischten Steuerungslandschaften.
Modbus TCP (NModbus, FluentModbus)herstellerneutralRegister- und Bit-Zugriff auf ältere Steuerungen, Frequenzumrichter und Feldgeräte. Wenig Struktur, dafür praktisch überall vorhanden.

Die Wahl entscheidet später über den Aufwand im Betrieb. Wer nur eine Siemens-Linie anbindet, kommt mit S7.NET am schnellsten zum ersten Wert. Wer mehrere Hersteller in einer Halle stehen hat, spart mit OPC UA als herstellerneutralem Protokoll die zweite und dritte Integration. Wie sich der Zugriff anschließend versionieren und automatisiert testen lässt, zeigt der Anwendungsfall CI/CD für SPS im Maschinenbau.

06
// 06CI/CD in 4 Wochen

Vom ersten Modul
zur Pipeline.

Empirisch in 4 Wochen umsetzbar — Standard-Toolchain, kein Spezial-Setup nötig. Wie Comquent CI/CD für SPS & TIA Portal im Maschinenbau in realen Projekten aufbaut, zeigt der dazugehörige Anwendungsfall.

/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. Der erste Lauf, der einen Datentyp-Fehler an der virtuellen Steuerung abfängt, bevor jemand zur Anlage fährt, ist meist der Moment, in dem das Team den Wert der vier Wochen sieht.

// 07Sicherheit & 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. Spätestens wenn der Auditor wissen will, welche NuGet-Pakete in welcher Version auf dem Gateway laufen, entscheidet die Pipeline, ob die Antwort ein SBOM-Export ist — oder eine Woche Archäologie.

Die fünf Pflicht-Stages, die in jeder CI/CD-Pipeline für .NET-OT-Code laufen sollten, sind unten aufgeführt. Wie CI/CD für SPS-Projekte konkret aufgebaut wird, zeigt der Praxisartikel zu TIA Portal & Jenkins. 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.

// 08Hä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: (1) Siemens S7.NET / Sharp7 als Kommunikations-Library zwischen .NET-Anwendung und S7-Steuerung (Datenaustausch, kein Echtzeit-Code auf der SPS), (2) Beckhoff TwinCAT.NET zur Anbindung der TwinCAT-Runtime aus .NET unter Visual Studio, (3) Rockwell Studio 5000 mit .NET-Komponenten und Component Object Model. Echte Steuerungslogik mit harten Echtzeit-Anforderungen bleibt in der jeweiligen IEC-61131-3-Umgebung.
/02
Welche Programmiersprache für SPS?
Die Norm IEC 61131-3 definiert fünf SPS-Programmiersprachen: Kontaktplan (KOP/LD), Funktionsplan (FUP/FBD), Anweisungsliste (AWL/IL), Strukturierter Text (ST/SCL) und Ablaufsprache (AS/SFC). C# steht nicht in dieser Liste — es setzt eine Ebene darüber an, auf dem PC oder Edge-Device neben der Steuerung. Wer heute neu anfängt, schreibt die Steuerungslogik meist in Strukturiertem Text, weil er textbasiert und damit in Git diff-bar ist; KOP bleibt in der Instandhaltung verbreitet, AWL wird in neuen Projekten kaum noch eingesetzt.
/03
Ist SPS-Programmierung schwer?
Die fünf Sprachen der IEC 61131-3 sind in wenigen Wochen erlernbar. Schwer ist das Umfeld: Zykluszeiten, Verriegelungslogik, Sicherheitsfunktionen und der Umstand, dass ein Fehler eine Anlage stoppt, statt einen Prozess neu zu starten. Dazu fehlt in der Steuerungstechnik meist, was in der IT selbstverständlich ist, nämlich eine Testumgebung. Wer aus der IT kommt, unterschätzt selten die Syntax, sondern das Anlagenwissen dahinter. Genau hier hilft C#. Die Anwendungs- und Kommunikationsschicht in .NET lässt sich gegen eine virtuelle Steuerung wie PLCSim Advanced oder eine TwinCAT-Runtime im Container testen, ohne dass jemand an der Maschine steht.
/04
Ist C# schwer zu lernen?
Für SPS-Programmierer mit Erfahrung in Strukturiertem Text ist der Einstieg überschaubar, weil beide Sprachen textbasiert sind und Datentypen, Schleifen und Funktionsaufrufe ähnlich funktionieren. Neu sind vor allem Objektorientierung, Namespaces, asynchrone Aufrufe und die Paketverwaltung über NuGet. Für ein erstes Modul mit S7.NET oder TwinCAT ADS reichen erfahrungsgemäß ein bis zwei Wochen, für produktionsreifen Code mit Tests, Fehlerbehandlung und Reconnect-Logik eher ein Quartal. Umgekehrt gilt dasselbe. C#-Entwickler lesen Strukturierten Text schnell, brauchen aber Zeit für Zykluszeiten, Verriegelungen und Inbetriebnahme.
/05
Ist C# echtzeitfähig?
Nicht im Sinne harter Echtzeit: .NET läuft unter Windows oder Linux mit Garbage Collection und ohne garantierte Zykluszeit, Jitter im Millisekundenbereich ist normal. Für weiche Echtzeit — Visualisierung, Datenerfassung, MES-Kopplung im 100-Millisekunden-Bereich — reicht C# aus. Für harte Echtzeit wie Motion-Control, Lageregler oder Sicherheitsfunktionen bleibt die Logik auf der Steuerung in IEC 61131-3. Beckhoff bindet .NET über ADS an die TwinCAT-Runtime an, die zyklische deterministische Task bleibt dabei die SPS-Task.
/06
Ist C# schneller als C++?
Bei reiner Rechenleistung liegen beide nahe beieinander; C++ ist bei speichernaher Verarbeitung im Vorteil, weil es ohne Garbage Collection auskommt. In der Steuerungstechnik entscheidet aber nicht der Durchsatz, sondern der Jitter. Eine Sprache taugt hier nur, wenn eine Zykluszeit garantiert ist. Das leistet weder C# noch C++ auf einem gewöhnlichen Windows oder Linux, denn harte Echtzeit kommt von der Laufzeitumgebung, nicht von der Sprache. Deshalb bleibt der zeitkritische Teil auf der SPS und dort in IEC 61131-3, während C# die Schicht darüber übernimmt.
/07
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 (S7-300/400, S7-1200/1500, LOGO!) über das S7-Protokoll. Typische Use-Cases sind HMI- und Visualisierungs-Anwendungen, OPC-UA-Gateways, MES-Anbindungen, Datenarchivierung und Edge-Datenvorverarbeitung. S7.NET läuft nicht auf der SPS, sondern auf Windows-/Linux-Hosts oder Edge-Devices und ist Read/Write-fähig gegen DBs, Merker und Peripherie.
/08
Was ist Beckhoff TwinCAT.NET?
TwinCAT.NET (offiziell TwinCAT.NET-Komponenten und Beckhoff.TwinCAT.Ads.NET) ist die offizielle Beckhoff-Library, mit der .NET-Anwendungen über ADS (Automation Device Specification) auf TwinCAT-Runtime und SPS-Variablen zugreifen. In Visual Studio lassen sich C#-Module schreiben, die mit der TwinCAT-3-Runtime zusammenarbeiten — eine vertraute Programmiererfahrung für IT-Entwickler in der Automatisierungswelt. Bei harten Echtzeit-Anforderungen bleibt die Logik in TwinCAT-PLC (Structured Text), .NET-Komponenten ergänzen sie für nicht-zeitkritische Aufgaben.
/09
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, herstellerunabhängige Tooling-Layer und Test-Automatisierung gegen virtuelle SPS. C# reicht nicht aus für: harte Echtzeit-Regler (Motion-Control, Lageregler unter 1 ms), Safety-relevante Logik nach IEC 61508/SIL2+ (dort bleibt zertifizierter IEC-61131-3-Code Pflicht), und tief integrierte Steuerungslogik auf Steuerungen ohne .NET-Runtime (S7-1200 ohne TwinCAT).
/10
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 (bin/, obj/, .vs/), Solution- und Projektdateien getrackt, NuGet-Pakete über PackageReference verwaltet. Trennung in Library (Steuerungs-Adapter), Application (HMI/Gateway) und Tests. Bei TwinCAT.NET-Projekten zusätzlich TcCOM-Komponenten und Generated-Code im .gitignore-Pattern ausnehmen. Pull-Request-Workflows funktionieren analog zu klassischen IT-Projekten — viel einfacher als KOP/AWL-Versionierung, weil diff-bar in Text.
/11
Wie baut man eine CI/CD-Pipeline für C# in der OT?
Standard-Pipeline in vier Stages: (1) Restore: NuGet-Pakete cachen, (2) Build: MSBuild oder dotnet build, (3) Test: NUnit/xUnit + Coverage, (4) Package & Sign: Artefakt signieren (Authenticode), bei TwinCAT.NET zusätzlich TcCOM-Assembly bauen. Build-Agents müssen Windows mit installierten Visual Studio Build Tools haben. Als Zielframework gehört in neue OT-Projekte .NET 10 LTS — der Support für .NET 8 endet am 10. November 2026. Bei Integration-Tests gegen virtuelle SPS (PLCSim Advanced, TwinCAT-Runtime im Container) ist ein separater Test-Agent mit OT-Lizenz nötig.
/12
Welche Sicherheitsanforderungen gelten für .NET-Code in der OT?
IEC 62443 stuft Code, der mit Steuerungen kommuniziert, als SL-relevant ein. Konkrete Pflichten: (1) Signierte Build-Artefakte (Authenticode), (2) SBOM für alle NuGet-Dependencies (CycloneDX-Format), (3) statische Code-Analyse mit Security-Regeln (Roslyn Analyzers, SonarQube Security Hotspots), (4) Dependency-Scanning auf bekannte CVEs (z. B. Trivy, OWASP Dependency-Check), (5) verschlüsselte Kommunikation zur SPS, wo das Protokoll es zulässt (OPC UA mit X.509-Zertifikaten statt klassische S7-Telegramme).
/13
Welche Tools und Libraries für C#-SPS-Entwicklung 2026?
Siemens-Welt: S7.NETPlus (Open Source), Sharp7 (leichtgewichtig), Siemens Openness (für TIA-Portal-Automatisierung). Beckhoff: Beckhoff.TwinCAT.Ads (offiziell), TwinCAT.NET-Komponenten. Rockwell: Studio 5000 Logix Designer mit Component Object Model, libplctag.NET (Open Source, Multi-Vendor). Hersteller-übergreifend: OPC UA via OPC Foundation .NET Standard Stack. Test/Build: NUnit, xUnit, Roslyn Analyzers, SonarQube, Trivy, GitHub Actions oder Jenkins mit Windows-Agents.
// 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. Der Einstieg ist unverbindlich: Ein kostenloses 30-Minuten-Erstgespräch reicht, um den passenden Pfad für Ihre Steuerungslandschaft einzugrenzen.

// +Weiterlesen
// Ihr nächster Schritt1 Klick, anonym

Wie geht es bei Ihnen mit C# in der OT weiter?

Sagen Sie uns mit einem Klick, wie es bei Ihnen weitergeht. Passend dazu bekommen Sie direkt einen konkreten nächsten Schritt — ganz ohne Formular.

// 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