Kostenlose DevOps-Analyse
Zurück zum Glossar
DevOps Glossar·OT / Industrial·Zuletzt geprüft

S7.NET

// Direkte Antwort

Was ist S7.NET und wofür wird es eingesetzt?

S7.NET (Paketname S7.NetPlus) ist eine offene C#-Library, mit der .NET-Anwendungen über das S7-Protokoll mit Siemens-Steuerungen (S7-200 bis S7-1500) kommunizieren. Der Code läuft nicht auf der SPS, sondern auf einem Windows-/Linux-Host oder Edge-Device und liest bzw. schreibt Datenbausteine, Merker und Peripherie. Typische Einsätze sind HMI-Anwendungen, OPC-UA-Gateways, MES-Anbindungen und Edge-Datenvorverarbeitung.

Auch bekannt als: S7netplus · S7.Net Plus · Siemens-S7-.NET-Bibliothek

// Kurz gefragt1 Klick, anonym

Ist S7.NET 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.

// Im DetailS7.NET

Eine S7.NET-Anwendung baut von einem PC, Server oder Edge-Device aus eine Ethernet-Verbindung zur Steuerung auf. Dafür braucht sie den CPU-Typ, die IP-Adresse sowie Rack und Slot der CPU. Steht die Verbindung, adressiert der Code Werte absolut, etwa „DB1.DBW0“ für ein Wort im Datenbaustein 1, und liest oder schreibt Datenbausteine, Merker, Eingänge und Ausgänge. Mehrere Variablen lassen sich in einer Anfrage bündeln, damit ein Zyklus nicht aus Dutzenden Einzelabfragen besteht. Auf der SPS selbst läuft dabei nichts Zusätzliches.

Unter dem Namen S7.NET laufen im Alltag zwei getrennte Open-Source-Bibliotheken, die man auseinanderhalten sollte. S7.NetPlus, als NuGet-Paket „S7netplus“, führt das ältere Projekt S7.Net fort und unterstützt laut Projektseite S7-200, S7-300, S7-400, S7-1200 und S7-1500. Es zielt unter anderem auf .NET Standard 2.0 und läuft damit auch auf aktuellen .NET-Versionen unter Windows und Linux. Sharp7 ist eine eigene Bibliothek. Davide Nardella, der Autor von Snap7, hat den Snap7-Client damit in reines C# übertragen. Sharp7 besteht aus einer einzigen Quelldatei ohne externe Abhängigkeiten und steht unter LGPLv3. Beide sprechen dasselbe S7-Protokoll, haben aber unterschiedliche APIs. Wer von einer zur anderen wechselt, schreibt seinen Adapter neu.

S7.NET ersetzt keine Steuerungslogik nach IEC 61131-3. Die Echtzeit-Regelung bleibt im TIA Portal in KOP, FUP oder Strukturiertem Text. Die Bibliothek ist die Datenbrücke daneben, die Werte aus der Steuerung in die IT holt und gezielt zurückschreibt. Deshalb ist sie der übliche Einstieg für HMI-Anwendungen, OPC-UA-Gateways, MES-Anbindungen und Edge-Datenvorverarbeitung, bei denen niemand das validierte SPS-Programm anfassen will.

Bei S7-1200 und S7-1500 scheitert der erste Verbindungsversuch oft an zwei Einstellungen im TIA Portal. Der PUT/GET-Zugriff muss in der CPU freigegeben sein, und die gelesenen Datenbausteine brauchen den nicht optimierten Bausteinzugriff, weil nur dann feste Offsets wie „DBW0“ existieren. Beides hat eine Sicherheitsseite. Mit PUT/GET kann jeder Rechner, der die CPU im Netz erreicht, ohne Anmeldung Daten lesen und schreiben, und die klassischen S7-Telegramme sind nicht verschlüsselt. Nach IEC 62443 gehört so eine Verbindung deshalb in eine abgeschottete Zone, mit einer Firewall-Regel, die nur den einen Host zulässt.

Für DevOps-Teams zählt, dass der gesamte Adapter C#-Code ist. Er liegt in Git, geht durch Pull-Requests und wird in der CI/CD-Pipeline mit MSBuild, NUnit und statischer Analyse gebaut und getestet, ohne TIA-Portal-Lizenz auf dem Build-Agent. Kapselt man den Steuerungszugriff hinter einem Interface, laufen Unit-Tests ohne reale SPS. Integrationstests gehen gegen eine virtuelle Steuerung wie PLCSim Advanced. Ausgeliefert wird ein signiertes Artefakt, und ein Dependency-Scan prüft die NuGet-Pakete.

// Beispiele aus der Praxis2 Szenarien
/01

Temperatur aus einer S7-1500 ins MQTT-Topic

Die Temperatur eines Ofens stand bisher nur am Panel. Ein kleiner C#-Dienst öffnet mit S7.NetPlus eine Verbindung zur S7-1500, liest zyklisch einen REAL-Wert aus einem Datenbaustein und veröffentlicht ihn normiert per MQTT. Das Steuerungsprogramm bleibt unverändert, und die Qualitätssicherung sieht den Verlauf jetzt im eigenen Dashboard.

/02

Ein Edge-Gateway statt fünf Einzelanbindungen

Fünf S7-Steuerungen einer Halle waren jeweils einzeln an unterschiedliche Tools angebunden. Jetzt sammelt eine S7.NET-Anwendung auf einem Linux-Edge-Device die Werte aller fünf, ergänzt Einheiten und Anlagennamen und veröffentlicht sie über einen OPC-UA-Server. Der Code liegt in Git, und die CI/CD-Pipeline rollt jede Änderung als signiertes Artefakt aus.

// Welcher Weg passt?S7.NET
// In 2 Klicks: S7.NET richtig einsetzenSchritt 1 / 2

Wofür setzen Sie S7.NET ein?

S7.NET (S7.NetPlus / Sharp7) verbindet .NET-Anwendungen per S7-Protokoll mit Siemens-Steuerungen — der nächste Schritt hängt an Ihrem Einsatzzweck. Zwei Klicks geben die Richtung.

Wofür brauchen Sie den S7-Zugriff?

// Häufige FragenFAQ
Läuft S7.NET-Code auf der SPS?
Nein. S7.NET läuft auf einem Windows- oder Linux-Host oder einem Edge-Device neben der Steuerung und spricht über das S7-Protokoll mit ihr. Die SPS behält ihr nach IEC 61131-3 programmiertes Steuerungsprogramm unverändert. Die Bibliothek liest und schreibt nur Daten.
Worin unterscheiden sich S7.NetPlus und Sharp7?
Es sind zwei getrennte Bibliotheken für dasselbe S7-Protokoll. S7.NetPlus (NuGet-Paket „S7netplus“) führt das ältere Projekt S7.Net fort und bietet typisierte Lese- und Schreibmethoden bis hin zu ganzen Klassen und Structs. Sharp7 ist der C#-Port des Snap7-Clients von Davide Nardella, eine einzelne Quelldatei ohne Abhängigkeiten unter LGPLv3. Die APIs sind verschieden, ein späterer Wechsel bedeutet also einen neuen Adapter.
Ist S7.NET für sicherheitskritische Steuerung geeignet?
Nein. Harte Echtzeit-Regelung und Safety-Funktionen nach IEC 61508 oder IEC 61511 gehören in zertifizierten IEC-61131-3-Code in der Steuerungs-IDE. S7.NET ist für Datenaustausch, Visualisierung und Anbindung gedacht. Auch dafür muss die Verbindung nach IEC 62443 abgesichert sein, weil PUT/GET ohne Anmeldung arbeitet und die Telegramme unverschlüsselt sind. Wo das nicht reicht, ist OPC UA mit Zertifikaten der bessere Weg.
Wann nutzt man S7.NET und wann OPC UA?
S7.NET passt für ein internes Werkzeug an wenigen Siemens-Steuerungen in einer abgeschotteten Zone. Es ist schnell eingebunden und kostet keine Lizenz, bleibt aber Siemens-spezifisch und ohne Verschlüsselung. OPC UA ist herstellerneutral, beschreibt die Daten mit ihrer Bedeutung und bringt Zertifikate und Verschlüsselung mit. Sobald Daten Zonengrenzen überschreiten oder Steuerungen mehrerer Hersteller beteiligt sind, ist OPC UA die bessere Wahl.
// Ihre Einschätzung1 Klick, anonym

Wo steht Ihr Team bei S7.NET?

Uns interessiert, wo Ihr Team bei diesem Thema steht. Auf Basis Ihrer Antwort schlagen wir Ihnen den sinnvollsten nächsten Schritt vor — ganz ohne Formular.

// Quellen und Referenzen3 Quellen

Weiterführende Primärquellen zu S7.NET: Normtexte, Hersteller- und Projektdokumentation. Alle Ziele öffnen in einem neuen Tab.

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