# Datenbaustein auf USB übertragen



## M. S. (2 September 2022)

Hallo zusammen,

Ich habe ein Problem, ich soll Daten aus einem DB auf einen USB Stick laden und diese entstandene Datei muss von einem PC geöffnet und gelesen werden können ohne TIA oder Step7 Zugang. Gibt es da ein Modul oder etwas womit ich das machen kann ?

Vorhandene Steuerung:
S7 - 1200 - CPU 1215C
Es soll noch ein Panel dazukommen jedoch habe ich mich noch nicht auf das Modell festgelegt.

Ich danke schonmal für die Hilfe.

Grüße
M.S.


----------



## PN/DP (2 September 2022)

An eine S7-1200 SPS kann man keinen USB-Stick anstecken. Man kann eine Speicherkarte stecken. Man kann Datalogs auf die Speicherkarte schreiben.
Prozessdaten erfassen und überwachen mit der SIMATIC S7-1200 / S7-1500 (Data Logging)

An HMI-Panels (und auch Visu-PC) kann man USB-Sticks und Speicherkarten anstecken. Das wird allerdings komplizierter zu garantieren, daß die Datenwerte aktuell und konsistent sind.
Wie greifen Sie mit SIMATIC WinCC (TIA Portal) auf einem Panel über ein Skript auf Prozessdaten in einer Datei zu?
(Der Siemens-FAQ beschreibt allerdings nur, wie man Daten speichert die schon auf dem HMI vorliegen. Wie man die Daten sicher ins HMI bekommt beschreibt der FAQ nicht)

Suchwörter für die Forumssuche: usb csv db rezeptur GetDataRecordTagsFromPLC

Ist Deine Steuerung vernetzt? Dann könnte ein PC-Programm die Daten aus der CPU auslesen und in eine Datei speichern. Oder die S7-1200 kann die Daten an den PC senden.

Harald


----------



## M. S. (6 September 2022)

Hallo Harald,

erstmal vielen dank für die schnelle Antwort. Ich benötige diesen Vorgang für eine QM-Station, die von jedem getesteten Produkt eine Datei anfertigt. Deswegen denke ich das der Erste Vorschlag nicht die Funktion ist die ich suche.
Vorschlag 2 wäre Interessant, da müsste ich mich erst mal einlesen ob es die Funktion von mir auch abdeckt.

Nein, bis jetzt ist eine Vernetzung noch nicht vorgesehen, jedoch steht es mir frei dies zu veranlassen. Meinst du mit dieser Option den TCP-Fileserver ?

Grüße
Marcel


----------



## PN/DP (6 September 2022)

M. S. schrieb:


> Meinst du mit dieser Option den TCP-Fileserver ?


Da muß die SPS aktiv die Daten zu einem Fileserver auf einem PC senden. Das könnte z.B. auch ein FTP-Server sein.
Zuletzt ging es hier um das Speichern von Daten wo der User dann die Lösung mit dem TCP-Fileserver realisiert hat:


PN/DP schrieb:


> Es gibt einige PC-Programme, die können die Aktualwerte von DB auslesen und als csv- oder Excel-Dateien speichern. Da könnte ein Operator das Auslesen händisch anstoßen, z.B. einen Button klicken. Ich glaube, manche Programme können auf ein Triggerbit in der SPS warten. Gib mal in Deine Internet-Suchmaschine die Suchwörter "s7 backup maschinendaten" ein.
> (...)
> Deine SPS könnte die Daten in Datalogs auf eine Speicherkarte speichern.
> Oder die Daten an einen TCP-Fileserver auf einem PC senden. Hier ein Siemens-Beispiel: TCP-Fileserver für S7-Controller
> Ob die S7-1500 mittlerweile direkt Dateien übers Netz auf PC erstellen/senden kann weiß ich nicht.



Es gibt auch einige fertige konfigurierbare PC-Programme, die Daten aus DB aus einer S7-SPS auslesen und auf dem PC speichern können, teilweise auch im csv-Format.


			sps s7 backup zu pc - Google Suche
		


Mit diesen Programmen habe ich allerdings nur wenig eigene Erfahrung. Ich lese Daten aus meinen SPS historisch bedingt gewöhnlich mit Excel und Libnodave aus.
FAQ: Beispiel Daten aus S7 lesen mit Excel und Libnodave

Es gibt auch andere Libs, die teilweise auch Daten aus "optimierten" DB aus S7-1x00 lesen können, wie z.B. ACCON-AGLink, Snap7 und ähnliche...



PN/DP schrieb:


> Man braucht eine Software, welche zur Kommunikation das erforderliche S7-Protokoll umsetzt. Das kann zum selber Programmieren eine Bibliothek wie Snap7 oder Libnodave sein, es gibt aber auch einfachere/fertige Pakete, mit denen man Daten aus SPS auslesen kann, z.B. ACCON-EasyLog oder ACCON-AGLink oder S7-FileLogger, oder eine WinCC Runtime auf PC oder einem HMI-Panel betreiben und damit die Daten aus der SPS lesen und in Text/csv-Dateien speichern. Theoretisch müßte man auch die API des SIMATIC Automation Tool zum auslesen von DB nutzen können.
> 
> Wenn die SPS einen Webserver hat, dann könnte man in der SPS eine Webseite erstellen, welche die gewünschten Werte enthält.
> Manche SPS können Logs und Rezepte auf die Memory Card schreiben, die man mit einem Dateibrowser auslesen kann.
> Und es gibt auch noch die Möglichkeit, daß das SPS-Programm die Daten zum PC sendet - das muß aber in der SPS programmiert werden und auf dem PC muß ein Datenempfänger (z.B. TCP-Server) installiert/programmiert werden.



Harald


----------



## JesperMP (6 September 2022)

Eine Variante wäre die Daten auf das Comfort Panel speichern (Flashkarte oder USB Stick), und dann mittels der Webserver auf den Panel die Datei(en) abholen.

Die Variante mit die Visu PC ist am einfachsten. Dann braucht man nicht den Umweg über Flashkarte, USB Stick, Webserver oder FTP server.


----------



## PN/DP (6 September 2022)

Die Varianten mit Comfort Panel oder Visu PC haben den Nachteil, daß jeder denkt daß es einfach ist, und nach einem halben Jahr merkt man, daß man nur Nullen und alte Werte gespeichert hat, weil die Werte im HMI nicht aktualisiert waren und Siemens da nicht besonders darauf hinweist...

Harald


----------



## JesperMP (6 September 2022)

PN/DP schrieb:


> Die Varianten mit Comfort Panel oder Visu PC haben den Nachteil, daß jeder denkt daß es einfach ist, und nach einem halben Jahr merkt man, daß man nur Nullen und alte Werte gespeichert hat, weil die Werte im HMI nicht aktualisiert waren und Siemens da nicht besonders darauf hinweist...


Denkst du von ein speziellen Fall ?

Ich verwende das Speichern von Daten in ein Text-Datei in WinCC Advanced, und das funktioniert zuverlässig für meinen Zweck. Ich nehme an dass es wird auch funktionieren auf ein Comfort Panel. 
Man muss sich halt nur nicht erwarten dass man in millisekunden Takt oder grossen Datenmengen speichern kann.


----------



## PN/DP (6 September 2022)

JesperMP schrieb:


> Denkst du von ein speziellen Fall ?


Ja. Die WinCC Comfort/Advanced Runtime aktualisiert Variablenwerte nur, wenn es von deren Verwendung weiß. Je nachdem wie das Skript mit dem Speichern der Werte in eine csv-Datei aufgerufen wird (und ob die Variablennamen erst im Skript zusammengebastelt werden), werden die im Skript gelesenen HMI-Variablen erst NACH der Verwendung im Skript aktualisiert, das Skript *wartet nicht* auf aktualisierte Werte, und es landen Nullwerte (Startwerte der Variablen) und alte Werte in der csv-Datei.

Lösungen:
- die zu speichernden Werte mit Handshake in das HMI einlesen, damit sie garantiert aktualisiert sind. Das geht z.B. mit Rezepturen und der Systemfunktion GetDataRecordTagsFromPLC
- alle verwendeten Variablen zweimal lesen und ein paar Sekunden warten und hoffen, daß nach dem Warten alle Variablen aktualisiert wurden, was aber nicht garantiert ist und es gibt keine Fertigmeldung dazu.
- alle verwendeten Variablen auf Erfassungszyklus "zyklisch fortlaufend" projektieren und die Erfassungszeit abwarten, was aber eine sehr schlechte Lösung ist wenn man die Werte nur einmal am Tag braucht.

Diese Problematik habe ich hier im Forum schon sooo oft erklärt, suche mal nach: GetDataRecordTagsFromPLC

Harald


----------



## M. S. (6 September 2022)

Ich danke euch beiden erstmal und werde mich mal in beide Themen einarbeiten, um dann zu entscheiden welche Lösung ich nehme.

Marcel


----------



## JesperMP (6 September 2022)

Ich habe diese Variante: 
Die Variabeln werden als Array aktualisiert, nicht als Einzel-Werte.
Das Skript wird getriggert über eine weitere Zählervariabel.
Die Werte im Array werden zuerst konsistent aktualisiert, und dann mit Verzögerung die Zählervariabel.
Es funktioniert zuverlässig. Ich logge damit in Minutentakt 30 REALs.

Ja ich kenne die GetDataRecordTagsFromPLC. Das wäre die mehr korrekte Lösung der die Datenkonsistenz garantiert. Für die Rezepte ist aber eine zusätzliche Lizenz nötig. Das war damals eine Stolperstein. Heute wurde ich es vermutlich durch die Rezepte realisieren, aber da ich keine Probleme mit die bestehende Lösung habe, habe ich kein Drang es zu umändern.

Also, es gibt mehrere Verfahren um Daten direkt auf die PC zu loggen.


----------

