# Anlagenparameter auslesen und u.a. in Datenbank speichern



## DevDig80 (17 Februar 2022)

Hallo Zusammen,

da dies mein erster Beitrag hier ist, kurz ein paar Infos über mich: Ich bin im Bereich des Engineering/Digitalisierung angesiedelt (Produktentwicklung Maschinenbau, nebenbei Programmierung C# und Datenbanken; habe somit keinen Automatisierungstechnik/SPS - Hintergrund, kenne aber sowohl die IT-Seite wie auch die Produktionsseite sehr gut), und bekam nun folgende, sehr interessante Aufgabe:

Wir sind ein größeres Unternehmen mit mehreren Produktionsstandorten mit zig Anlagen (hauptsächlich Siemens S7-Steuerungen, gibt aber auch andere, wobei mir hier noch der genaue Überblick fehlt; Anbindung über TCP/IP). Ziel wäre nun, endlich unsere Anlagen zu "digitalisieren", sprich: Die Prozessparameter der Anlagen zu erfassen, und zur weiteren Verarbeitung in unsere Datenbank (SQL Server) zu speichern (geht dann weiter in Richtung Datenauswertung, Machine learning, ...). Folgende Schritte wären angedacht:

1) Leuchtturmprojekt: Als erstes sollen die Parameter aus einer einzelnen Versuchsanlage ausgelesen und in eine Datenbank geschrieben werden (eventuell ein zusätzliches C#-Programm, welches dann mit diesen Daten arbeitet).
2) Je nach Erfolg von Punkt 1: Digitalisierung ganzer Produktionsstandorte, Vernetzung dieser untereinander, eventuell Cloud-Lösungen, ... (das steht aber alles noch in den Sternen)

Wichtig wäre aktuell Punkt 1: Soweit ich weiß, wäre hierfür ein OPC UA Server nötig, der mir die Anlagenparameter in meine Datenbank schreibt. z.B. von KepWare gäbe es den KepServerEX, davon sogar eine gratis Demo zum rumspielen: Dies wäre natürlich ideal zum probieren, und ich denke, dass wäre ja auch das richtige Produkt für meinen Anwendungsfall, oder? (wobei ich hier den Unterschied zum OPC-Router von KepWare noch nicht verstehe)

Natürlich wäre ich für jegliche Vorschläge offen, wie ich so etwas (anfangs) kostengünstig umsetzen könnte. Für eine größere Lösung wäre dann später natürlich schon das entsprechende Budget vorhanden. Ich könnte natürlich auch selber eine einfache Bastellösung programmieren (für Punkt 1), jedoch wäre dies dann kein gangbarer Weg, falls das Thema dann später ganze Produktionsstandorte betrifft. Gerne könnt ihr mir auch eure Erfahrungen inkl. Kostenabschätzung schildern, die ihr in euren Unternehmen bei der Einführung solcher Dinge gemacht habt (kleine Anmerkung: Wir fangen da aktuell quasi bei 0 an)

Danke jedenfalls schon mal für eure Antworten; bin gespannt


----------



## inray (17 Februar 2022)

Hallo!

Also OPC UA als generelle Basis für die Infrastruktur ist auf jeden Fall eine gute, wenn nicht die beste Entscheidung. Und das egal von welchem Hersteller. In der Praxis wird sich das eh mischen. Auf Client, wie auch auf Server Seite. Daher sollte für so ein Projekt idealerweise als Grundregel die Kommunikation über OPC UA festgelegt werden.
Zum Unterschied KepServerEx und OPC Router: Der KepServerEx ist ein OPC UA Server, der mit über 160 Treibern viele verschiedene Steuerungen und Geräte anbinden kann und dann deren Daten als OPC UA Server bereitstellen kann. Der OPC Router hingegen ist ein OPC Client, der ganz klassisch die Datenpunkte von OPC UA Servern anbinden kann und dann weiterverarbeitet, z.B. kann er sie in eine Datenbank schrieben, per MQTT versenden, REST Calls machen, Daten an SAP geben und vieles mehr. OPC UA ist dabei natürlich von Haus aus bidirektional.

Viel Erfolg für das spannende Projekt!  

Viele Grüße vom inray Team.


----------



## DevDig80 (17 Februar 2022)

Vielen dank für deine Antwort.

Verstehe ich das richtig: Um die Parameter aus der Anlage lesen zu können, wäre als erstes der OPC UA Server nötig (KepServerEX); dieser würde dann als Knotenpunkt dienen, wo die Daten "abgeholt" werden können, z.B. eben mit dem OPC UA Client (OPC Router). Wäre als erste kleine Lösung auch ein eigenes C# Programm denkbar, welches die Daten vom OPC Server abholt und in die Datenbank schreibt (quasi also Ersatz für den OPC Router; für Demonstrationszwecke?


----------



## inray (17 Februar 2022)

Genau so ist es. Es wird neben dem KepServerEx in so einer großen Landschaft später sicher auch noch andere OPC UA Server geben, da manche Geräte heute auch schon von sich aus OPC UA bereitstellen. Aber das ist genau das Prinzip von OPC.
Der KepServerEx kann die aber auch konsolidieren.
Das C# Programm wäre ein OPC Client in der Struktur. Auch auf der Clientseite wird es sicher mehrere geben, die jeweils unterschiedliche Verwendung für die Daten haben.
Das ist das Schöne, die OPC Idee von 1994 geht bis heute auf 🙂


----------



## volker (18 Februar 2022)

Grundsätzlich alles richtig.
zur Info
S7-1500er können als OPC UA Server konfiguriert werden. Jetzt mal unabhängig von der Performance (Aktualisierungszeit)


----------



## malloc (16 März 2022)

inray schrieb:


> Also OPC UA als generelle Basis für die Infrastruktur ist auf jeden Fall eine gute, wenn nicht die beste Entscheidung. Und das egal von welchem Hersteller.



Darf ich kurz zwischenfragen:
Welche Entscheidung wäre besser - und warum?

Danke


----------



## sps_hubert (20 Juli 2022)

Bei der Entscheidung sollte die Skalierbarkeit nicht vergessen werden. Relativ langsame Daten >100ms gehen immer über OPC ganz gut. Der OPC Server ist wahrscheinlich bei vielen OPC Clients und schnelleren, größeren Datenmengen der begrenzende Faktor. Meist wird eine Anwendung zwischen SQL-Server und OPC auf einem PC laufen müssen. Wer pflegt diese?
Meine Bausteine können ohne weitere Hard- oder Software direkt aus einer S7-300 oder S7-1200 oder S7-1500 in eine SQL Datenbank schreiben. Selbst die kleinste S7-1211 schafft locker eine SQL Anweisung unter 20ms. Die S7-1511 ist unter 2ms gut dabei. Alles bei "normaler" SPS Auslastung hinsichtlich Speicher und Zykluszeit. Die Skalierbarkeit hängt bei richtig dimensionierter SPS daher "nur" am SQL-Server.


----------

