Werte von SPS in den SQL Server schreiben?

mimuel

Level-1
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich hab von SPS'en wenig Ahnung, aber meine Frage:
Ist es möglich direkt von einer SPS in eine Datenbank,
z.B. in den SQL-Server Daten zu schreiben?
Über Modbus oder sonst irgendwie oder muss ich erst
eine spezielle Software dafür schreiben?

Danke Michael
 
Die 343-1 ERP kann das angeblich. Ansonsten wird in der Regel ein Programm auf einem PC die SPS abklappern und die Ergebnisse in eine SQL-Datenbank schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das geht, keine Angst ..

Hallo,

Rainer Hönle schrieb:
Ansonsten wird in der Regel ein Programm auf einem PC die SPS abklappern und die Ergebnisse in eine SQL-Datenbank schreiben.

Oder alternativ wird der PC die Datenbank per SQL abklappern (oder einen Trigger der DB empfangen) und die Ergebnisse in die SPS schreiben.

Eine direkte Verbindung zwischen SPS und einer Datenbank wird in der Regel über ein Programm auf einem externen PC als Gateway zur Übersetzung der verschiedenen Datenformate der SPS (S5, S7, AB etc.) und der Datenbank (Oracle, IBM AS400, MS SQL Server, Firebird etc.) programmiert. Da mag es vielleicht einen CP 343-1 ERP geben, aber ob der alle SQL-Dialekte kann ? Ich möchte das mal stark bezweifeln.

Ich habe bisher ca. 50 SPS-Steuerungen an verschiedene Datenbanken der EDV meiner Kunden angebunden. Dieses PC Gateway ist im Moment (noch) die beste Lösung, da äusserst zuverlässig und flexibel. Zum Beispiel wenn der Kunde von Oracle auf MS SQL Server wechselt, tausche ich im Normalfall nur den Treiber auf meinem PC aus, un feddich ...

Und wenn der Kunde von S5 auf S7 hochrüstet, dann wird im OPC-Server ein anderes Transportprotokoll angewählt, und wieder feddich.

Ich verwende allerdings grundsätzlich auf dem PC Datenbank-Treiber von DevArt. Damit tunnele ich ich den ganzen Overhead von den MS ODBC Treibern über das Windows OS und kann direkt über zB. TCP auf das API der Datenbank zugreifen. Das geht dann sauschnell und eine Installation eines DB-Client auf dem PC ist nicht erforderlich (Lizenzkosten gespart !!!).

Ich muss auch ganz ehrlich gestehen, als ich diese Variante mit den DevArt Treibern vor ca. 7 Jahren erstmals eingesetzt habe, war ich eigentlich überrascht, mit welcher rekordverdächtigen Reaktionszeit selbst sehr komplexe SQL-Abfragen ausgeführt wurden.

Also in diesem Sinne, selbst wenn es einen Simatic CP 343-1 ERP für direkte Anbindung von S7 an eine Datenbank gibt, man ist immer auf diese Baugruppe festgenagelt und unflexibel beim Wechseln von Datenbank oder SPS.

Ausserdem hat meine Lösung den Vorteil, dass der DB-Admin ausser dem Einrichten der Tables nichts von seiner wertvollen Arbeitskraft verschwenden muss und der ganze Driss dann ohne jegliches Engagemant des DB-Admins abläuft. Und wer DB-Admins kennt, der weiss das solche Lösungen immer erwünscht sind :ROFLMAO:

Gruß

Question_mark

PS : Das Thema gehört nicht in den Stammtisch, kann das bitte einer der Mods in den richtigen Fred verschieben ?
 
Zuletzt bearbeitet:
SPS <--> Database

Hallo,

IBFS schrieb:
Sind diese Datenbanktreiber kostenpflichtig? und wie genau erfolgt die S7 Anbindung?

Die Datenbanktreiber sind kostenplichtig. Aber die Lizenzkosten in höhe von ca. 350,- Euronen plus Mwst sind Ihren Preis wert, da absolut professionell. Ausserdem sind die Lizenzkosten nur einmalig fällig, also kann ich mit einer Lizenz auch beliebig viele Projekte erstellen (Ich darf nur die Quelltexte nicht weitergeben). Ich habe alle aktuellen DB-Driver von DevArt gekauft und lizensiert.

Die Anbindung an die S7 erfolgt entweder über einen Simatic OPC-Server, AGLink von Deltalogic oder einen anderen Treiber des Herstellers der SPS. Und auch für Modbus gibt es Treiber.

Ich verwende je nach Anwendungsfall meist den OPC-Server von Siemens oder den AGLink von Deltalogic. Beide sind gut und zuverlässig, ich entscheide das jeweils nach den Anforderungen des Projektes.

Gruß

Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mir das Teil mal angesehen. Soweit ich das für die .net-Geschichte sehe, setzt der Treiber auf den Standard-Schnittstellen auf und bietet "nur" eine einheitliche Schnittstelle für den Entwickler. Ist dies bei Deiner Version ähnlich implementiert? Wenn ja, woher kommt dann die gute Performance? Oder müssen nur .net-Entwickler darauf verzichten?
 
Hallo,

kann man dies Verfahren auch auf Nicht-Siemens-Steuerungen übertragen?
(z.B. Elau Steuerung)

In welches Forum hätte diese Frage gepaßt?

Danke Michael
 
Die grundsätzliche Vorgehensweise passt für alle Steuerungen. qm hat ja da schon einige implementiert. Und allen ist gemeinsam, dass (in der Regel) die SPS nicht auf eine Datenbank zugreifen kann und dies über einen separaten PC (im weitesten Sinne) laufen muss.
Wenn Elau das Ziel ist, wäre "Beckhoff - CoDeSys - IEC61131" passender. Alternativ natürlich auch Programmierstrategien. Aber die Entscheidung ist auch nicht immer einfach.
 
warum soll der Tunnel schneller sein?

mich würde auch interessieren wie ein ODBC/TCP (wie auch immer) Connection Wrapper schneller sein soll als der native Klient - und noch dazu die Abfragegeschwindigkeit (kleine/grosse SQL-Statements, mit Prepare oder sonstigem, Datenmenge?) erhöhen: wie hast du es den vorher gemacht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.net

Hallo,

Rainer Hönle schrieb:
Ist dies bei Deiner Version ähnlich implementiert? Wenn ja, woher kommt dann die gute Performance? Oder müssen nur .net-Entwickler darauf verzichten?

Ich glaube, die Frage war an mich gerichtet, bin mir da aber nicht ganz sicher.

Ich benutze nicht die .net Treiber, sondern die VCL Treiber für Win32. Bei denen gibt es den sogenannten "Direct mode", damit kann man aus meiner Anwendung heraus direkt ohne weiteren Treiber und unter Umgehung von ODBC und MDAC und dem Betriebssystem direkt auf den remoten Datenbankserver über TCP zugreifen.
Auf dem PC muss nur das TCP/IP Protokoll installiert sein, ein Datenbank Client ist nicht erforderlich.

Bei den .net Treibern sehe ich diese Möglichkeit nicht, jedenfalls habe ich nichts dazu gefunden.

Gruß

Question_mark
 
Jepp, Frage war an Dich gerichtet.
Dann ist ja auch klar, warum dies bei Delphi schneller sein kann. Bei .net habe ich nichts derartiges gefunden. Da setzen die auf dem Standard-Treiber auf. Performanceverbesserungen sind somit eher nicht zu erwarten.
 
OK nur für Oracle, MySQL und PostgreSQL - schade nicht bei MSSQL :-[
aber der Rest ist eher unwichtig (da ist die reine Anbindbarkeit entscheident)
 
Ja. Hab selbst so ein Programm in C# programmiert.
Es speichert alle Daten in eine Access-Tabelle...

Mit Libnodave und ein wenig Hilfe hier im Forum
ist das Ganze recht simpel! Welche Programmiersprache
und welche SPS verwendest du?

lg Marco*
 
Zuletzt bearbeitet:
Zurück
Oben