TIA Siemens 1512SP an SQL-Datenbank anbinden

Stefan2000

Level-2
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

wir wollen unsere Anlage mit einer Siemens 1512SP Steuerung an eine Datenbank anbinden, um Langzeitaufnahmen der Sensordaten zu erfassen. Momentan werden die Daten nur in einem Tia Wertearchiv für ein paar Tage aufgezeichnet. Leider kenne ich mich mit dem Thema nicht so aus, habe mich aber natürlich ein bisschen vorher informiert welche Lösungen es geben würde.

Ich dachte daran, das Ganze mit einem Siemens IOT 2050 und NoteRed zu lösen, da wir ein ähnliches Projekt mal in der Technikerschule durchführten. Datenbank habe ich noch keine Ahnung, welche sinnvoll wäre. Eventuell MYSQL. Als Visulisierungsoberfläche würde ich Grafana einsetzen. Hat jemand Erfahrungen in dem Thema und könnte mir ein paar Tipps gegeben, oder bin ich komplett auf dem falschen Weg und eine andere Lösung ergibt mehr Sinn?

Danke schonmal für eure Hilfe.

Grüße

Stefan
 
Hier mal was zum lesen:
Das Tabular Data Stream Protokoll (TDS) bietet Ihnen die Möglichkeit, eine direkte Verbindung mit einem Microsoft SQL-Server aufzubauen. Mit TDS können Sie sich an einer SQL-Server Datenbank anmelden und SQL-Anweisungen übertragen. So können Daten aus der Datenbank gelesen werden oder zur Speicherung dorthin gesendet werden.

Auf Basis der "Open User Communication-Bausteine" (TCON, TSEND, TRCV und TDISCON) können S7-1500 CPUs und S7-1200 CPUs das TDS Protokoll nachbilden und eine Verbindung zu einem Microsoft SQL-Server aufbauen. Mit Hilfe der SQL-Anweisungen "insert into", "update" und "select" können Sie Daten in der Datenbank speichern, updaten und Daten aus der Datenbank auslesen.
Siemens Webseite: Anbindung einer S7-1200 CPU / S7-1500 CPU an eine SQL-Datenbank
1701347108568.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Hab das im Einsatz mit MariaDB auf einem NAS seit meheren Monaten. Ohne Probleme
Das hab ich gerade im Testbetrieb! Funktioniert tadellos! Kann man sehr empfehlen.
Ich hab es mit MariaDB am laufen. Vermutlich klappt es aber mit MySQL gleich gut.
 
Der FB stammt von mir.
Ich habe nicht verstanden habe wieso es das so (öffentlich, kostenlos und direkt auf der SPS) noch nicht gibt und wollte es mal versuchen.
Dann erstmal vielen herzlichen Dank für Deine Mühe und das kostenlose zur Verfügung stellen. Hab selten so nen benutzerfreundlichen Baustein gesehen, wo man fast nix falsch machen kann. 🙂

Ich teste es übrigens gerade mit MariaDB 11.2 und funktioniert ebenfalls. Kannst also den Text bei Github anpassen.
 
Noch eine Frage, da ich noch nicht so fit bin mit SQL-Befehlen.

In meinem SQL-Programm gebe ich folgenden Skriptcode ein:

INSERT INTO Postendaten (Postennummer, Ereignis) VALUES (1,'Bearbeitung_gestartet')

Die Query-Daten fülle ich mit SCL aus. Jetzt habe ich das Problem, dass ich den Skriptbefehl nicht so in SCL schreiben kann, weil innerhalb einer Stringzuweisung, welche mit einfachen Anführungszeichen definiert wird, keine zusätzlichen einfachen Anführungszeichen enthalten sein dürfen. Die benötige ich aber für den String 'Bearbeitung_gestartet'.
Gibt es hierfür eine Lösung oder muss ich das auf anderem Wege lösen?

Alternativ würde ich es mit Zahlencodes machen. 1 = Bearbeitung gestartet, 2 = Bearbeitung beendet usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
im String steht dann
INSERT INTO Postendaten (Postennummer, Ereignis) VALUES (1,$'Bearbeitung_gestartet$')
Zunächst einmal vielen Dank, werde es morgen testen. Kannst Du mir auch in Worten erklären was genau dieses Dollarzeichen bewirkt? Hab beim Suchen nichts darüber gefunden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich werfe mal noch den TIG-Stack in der Raum wenn du eh Grafana nutzen willst:
Influx-DB
Kannst da bei Telegarf OPC-UA als Input Plugin verwenden.
Vorraussetzung ist natürlich der aktivierte OPC-UA Server auf der SPS.
Influx-DB lässt sich ziemlich simpel in Grafana nutzen.
Hat bisher immer ohne Probleme funktionert.

Ist alles Open-Source mit kostenlosen Community-Editions und kann als Docker Container irgendwo laufen.
 
Ich möchte den Zugriff von einer 1212C (6ES7 212-1HE40-0XB0, Firmware 4.6) auf einen SQL Express Server realisieren. Dafür habe ich die Bibliothek nutzen wollen:

109779336_LSQL_LIBRARY_V31.zip (1,3 MB) (siemens.com)

Vorgegangen bin ich entsprechend der Anleitung:

Dokumentation (2,8 MB) (siemens.com)

Beim Übersetzen erhalte ich jetzt folgende Fehlermeldungen:

LSql_Microsoft (FB4)
144,Der Zugriff auf einem optimierten Speicherbereich ist an dieser Stelle nicht zugelassen.
343,Der Zugriff auf einem optimierten Speicherbereich ist an dieser Stelle nicht zugelassen.
562,Der Zugriff auf einem optimierten Speicherbereich ist an dieser Stelle nicht zugelassen.

Markiert wird z.b. folgende Stelle im Code ->> '#statPreLoginData':

#FB_STATE_PRELOGIN:
REGION prelogin
//copy data from data to cache
#statStatusPreLoginIntToWord := INT_TO_WORD(Serialize(SRC_VARIABLE := #statPreLoginData, DEST_ARRAY => #statPreLoginCache, POS := #tempPos));


Nebenbei:

Beim Übersetzen des angebotenen Beispielprojekts (Austausch der 1500er gegen meine 1200er) erhalte ich die gleichen Meldungen.

Der SQL Server ist korrekt konfiguriert und der Zugriff mit den definierten Zugangsdaten auf die PLC_SQLDB ist mit HeidiSQL problemlos möglich.

Was könnte die Ursache für diese Meldung sein? Danke.
 
Steht doch klar da: Deine Bausteine müssen nicht-optimiert sein (wegen der Verwendung von "Serialize").

Entweder Bausteine umstellen oder den Siemens-Code anpassen.
 
Zurück
Oben