Step 7 DataLogs via FTP Hochladen

S7trainee

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

aktuell arbeite ich mit einer S7-1500 und einem CP 1543.

Auf der CPU werden aktuell Produktionsdaten mitgeloggt. Alle 20s wird ein neuer Eintrag in einer .csv abgelegt. Diese sind über die Webobefläche "Data Logs" herunterladbar.
Nun wünscht sich der Kunde das diese automatisiert auf einem Server abgelegt werden. Da kein "Logik" auf dem Server vorhanden sein darf wurde dieser als FTP Server konfiguriert.
Nun soll die SPS (FTP Client) die Daten auf dem Server ablegen.

Aktuell finde ich aber keine Möglichkeit die Datalogs als ganzes via FTP zu verschicken.
Gibt es hier eine Möglichkeit?


Anmerkung 1:
Über die Beispiele von Siemens wird aus einem DB ein File erzeugt und dieses sofort verschickt. Für mich würde dies bedeuten das ich für jedes Bauteil eine neue CSV generieren müsste. Damit wäre der Kunde höchstwarscheinlich nicht zufrieden zu stellen.

Anmerkung 2:
An anderer Stelle habe ich gelesen die via einem Baustein den Inhalt der csv einzulesen und diesen via dem Baustein zu versenden. Hier sehe ich aber die Problematik bei den Größe der .csv Dateien und den variablen Längen.

Anmerkung 3:
Wenn ich den Kunden überzeugen könnte auf dem Server ein Skript o.Ä. laufen zu lassen. Wäre es dann möglich die SPS als Server zu konfigurieren und über diesen an die Logs heranzukommen?

Ich hoffe ihr könnt mir an dieser Stelle weiterhelfen.
 
Anmerkung 3:
Wenn ich den Kunden überzeugen könnte auf dem Server ein Skript o.Ä. laufen zu lassen. Wäre es dann möglich die SPS als Server zu konfigurieren und über diesen an die Logs heranzukommen?
Du hast bereits einen CP1543-1. Dieser kann als FTP-Server arbeiten. Ob die Methode für Dich interessant ist, musst Du selbst entscheiden.
Hier sind die entsprechenden Informationen dazu:
FTP-Kommunikation mit einer S7-1500 Station
 
Die Dokumentationen dazu habe ich bereits mehrfach studiert. Mein Problem liegt darin das die FTP Bausteine von Siemens eine neu Datei aus DB-Daten generieren (bzw. via Append einen Datensatz zu einer bestehenden Datei hinzufügen). Dies ist aber nicht mein beabsichtigtes Ziel. Die Datei wird bereits über einen anderen Bausteine auf der Steuerung generiert und in den DataLogs abgelegt. Hier wurde sehr viel wert auf die Formatierung gelegt, dies möchte ich nicht nochmal über die DB-Steuerung nachbauen :( (Hier werden auch verschiede Formate zu verschiedenen Bauteilen gefahren...)

Das Ziel ist eigentlich denkbar einfach: Eine bereits fertige und vorhandene Datei soll via Trigger an einen FTP Server übermittelt werden.
 
Ich bin etwas unsicher, aber da die DataLogs in \Datalogs liegen könnte FileReadC diese eventuell öffnen, womit diese dann in einem DB landen können. Dieser DB würde dann mit den FTP-Bausteinen auf den FTP-Server geschickt werden, wodurch eine Kopie entstehen würde.
Vielleicht hilft dieser Schritt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Dokumentationen dazu habe ich bereits mehrfach studiert. Mein Problem liegt darin das die FTP Bausteine von Siemens eine neu Datei aus DB-Daten generieren (bzw. via Append einen Datensatz zu einer bestehenden Datei hinzufügen).

Das tut aber nichts zur Sache. Ich habe auch nicht behauptet, dass das Beispiel eins zu eins auf deinen Fall passt.

Aber: der Baustein selber sollte schon passen:

In diesem Anwendungsbeispiel stellen wir Ihnen einen Funktionsbaustein (Ftp1X00Cmd) zur Verfügung, der einen FTP-Client in der S7-CPU implementiert. Der Baustein kann folgende FTP-Befehle ausführen:

  • CONNECT
  • STORE
  • RETRIEVE
  • DELETE
  • APPEND
  • DISCONNECT

da sollte im Zweifelsfall ein CONNECT, STORE und DISCONNECT reichen um einen vorhandenen DB auf den FTP Server zu schicken
 
da sollte im Zweifelsfall ein CONNECT, STORE und DISCONNECT reichen um einen vorhandenen DB auf den FTP Server zu schicken

Das Problem: Ich hab keinen vorhandenen Daten DB sondern ein File (.csv).

Ich bin etwas unsicher, aber da die DataLogs in \Datalogs liegen könnte FileReadC diese eventuell öffnen, womit diese dann in einem DB landen können. Dieser DB würde dann mit den FTP-Bausteinen auf den FTP-Server geschickt werden, wodurch eine Kopie entstehen würde.
Vielleicht hilft dieser Schritt?

Das ist ein interessanter Ansatz den DB aus dem File selbst zu generieren. Allerdings ist die Filegröße sehr dynamisch und übersteigt mit Leichtigkeit die Größenbegrenzung des FileReadC. Somit müsste ich das File dynamisch in mehreren Steps einlesen und dynamisch jedes char in den FTP File DB kloppen.
Sollte kein Ding der Unmöglichkeit sein, aber naja ich möchte ungern eine Rocket Science draus machen.



Bitte versteht mich nicht falsch, ich programmiere normalerweise 90% Beckhoff. Klar sind die Systeme komplett verschieden aber das Siemens hier so restriktiv ist bei einem Standard der seit 1971 funktioniert hat mich dann doch schon etwas überrascht. Aus dem Webserver heraus kann man ja auch komplette Files ziehen ohne das man die einzelnen chars zusammenbasteln muss :(
 
Zurück
Oben