Hallo,
ich nutze eine WAGO 750-880 und möchte Dateien von einem FTP Server auf die SD-Karte der SPS speichern. Ist es mit dem Funktionsblock FTP_Server möglich einen Speicher-Pfad anzulegen? Weiterhin möchte ich Dateien von der SD-Karte auf den FTP Server schreiben und dort in einem bestimmten Pfad ablegen. Ich habe bislang aber nicht gefunden ob und wie das mit dem Baustein funktioniert. Kann mir damit jemand helfen? Oder muss ich die Daten mit einer anderen Funktion nach der FTP Aktion extra verschieben?
Vielen Dank schonmal,
Nils
du kannst eine datei vom lokalen filesystem auf einen ftp-server kopieren aber auch in umgekehrter richtung
die doku des ftp_client solltest du dir mal kurz durchlesen
in der network.lib im ordner "demo" findest du auch ein "FTP_CLIENT_DEMO" programm
Danke für die schnelle Antwort.
Allerdings ist mein Problem nicht der generelle Einsatz des FTP_Server Bausteins, sondern das eingeben eines genauen Speicherpfades, das habe ich leider nicht gefunden. Habe ich das übersehen? Insbesondere geht es darum, dass ich gerne die SD-Karte als Quelle bzw. Ziel benutzen will. Zur Zeit speichert der Funktionsbaustein automatisch unter dem Pfad "/PLC/" ab.
die pfadangabe vom filesystem hängt von der sps ab
manche funktionieren mit laufwerksangabe und manche wollen nur ordner/dateiname
du solltest dir mal die dokumentation deiner sps bezüglich dateizugriff durchlesen, oder dich mal mit dem sps-support unterhalten
Hallo Nilsflo,
der Laufwerksbuchstabe zum Flash der Wago ist "A:"
zur SDCard "S:"
VG
Sandro
Liebes OSCAT Forum,
ich möchte wie der Kollege eine einfache Textdatei von einem FileZilla Server auf die SD Karte ablegen. Die DEMO kann ich erfolgreich aufrufen der Datentransport geht aber leider nicht. Da ich was SPS angeht sehr unerfahren bin, möchte ich euch kurz die Eingänge die ich gewählt habe auflisten:
Hardware: WAGO 750-880
Software: CoDeSys V 2.3.9
ftp_activate: BOOL;
ftp_done: BOOL;
ftp_busy: BOOL;
ftp_error_c: DWORD;
ftp_error_t: BYTE;
ftp_url: STRING := 'ftp://benutzer:sps@127.0.0.1/FTPTest/'; => aus dem Beispiel in der Doku: 'ftp://benutzername:passwort@127.0.0.1/Verzeichnis/'
ftp_filename: STRING := 'S:\FTPTest.txt'; => Hier habe ich das auch das Zielverzeichnis angegeben, korrekt so?!
ftp_download: BOOL := TRUE; => Richtung vom Server auf die SD der SPS
ftp_activ: BOOL := FALSE;
file_delete: BOOL := FALSE;=> Zeitkonstanten sind für mich zunächst nebensächlich
ftp_timeout: TIME := T#10s;
zeit : TIME := T#10s;
Als DNS_IP4 habe ich die IP Nummer des FileZilla Servers 127.0.0.1 wie folgt angegeben:
B3 1
B2 0
B1 0
B0 127
Als PLC_IP4 verwende ich die IP Adresse meines WAGO Contrllers, nämilich 134.91.120.114:
B3 114
B2 120
B1 91
B0 134
Habe meine Windows Firewall deaktiviert.
Als Antwort bekomme ich folgende Fehlermeldungen:
Error_c: 4278190080
Error_t: 2
Bitte habt Verständnis dafür, dass ich dieses relativ überschaubare Problem hier so breit rumtrete, habe aber andernfalls Bedenken, dass ich das sonst nicht auf die Kette kriege - aller Anfang ist schwer ;). Über Eure Hilfe würde ich mich sehr freuen!
Viele Grüße
du hast bei filezilla server die ip 127.0.0.1 angegeben
das ist eine loopback adresse du nur auf dem gerät selber lokal existiert und nicht von extern angesprochen werden kann
der pc auf dem filezilla server läuft hat ja eine eigene ip-adresse und die muss man bei der sps angeben
mach mal auf dem pc im command-shell (dos-fenster) "ipconfig /all" und suche deinen netzwerk adapter
dort muss dann eine ip4-adresse sichtbar sein.
das was du vom demo übernommen hast mit 127.0.0.1 kann nur funktionieren wenn auf einem pc eine soft-plc läuft und auch auf dem selben gerät der FTP-Server. eine konstellation die man in der praxis eher nicht haben wird.
Daran hats gelegen, jetzt funktionierts, vielen Dank für die tolle Hilfe! :-)
Da freut man sich das was funktioniert und stolpert ins nächste Problem ;)..... Zwar wird die Datei auf der SD Karte abgelegt, aber ich kann sie weder öffnen und nichtmal löschen. ICh habe diese mit dem FileZilla CLient überprüft und der meldet "kritscher Datenübertragungsfehler". Irgendwelche Tipps? Vielen Dank
du kannst mal probieren ob nach einen sps-spannung aus/ein die datei lesbar ist bzw. auch einen sinnvollen inhalt und datenlänge hat.
ursache ... schwer zu sagen, wahrscheinlich hilft hier nur einen datenaufzeichnung mit wireshark
Datenlänge ist sinnvoll, lässt sich auch öffnen. Möchte sie jetzt über den csv Baustein lesen, das geht leider nicht. Muss ich den FTP_Transfer stoppen, um die Datei auszulesen oder woran könnte das liegen?
hi
du must mal gezielt einen vorgang durchführen und beschreiben was du gemacht hast und was du als meldungen am baustein bekommst
ansonsten wird das nichts
aus erfahrung weiss ich das meistens alles nur auf missverständnissen passiert, sodass beide seiten von etwas reden aber jeder ganz was anderes meint
du kannst ja auch dein ergebnisse grafisch dokumentieren
verwendest du als basis das demo programm ?
wenn ja was hast alles angepasst und mit welchen parametern
ohne infos wirds das nichts...
Hi,
ich geb mir Mühe! Folgende Situation:
Die Basis meines Projekts (CoDeSys, WAGO 750-880) sind zwei Demo Programme aus der Network.lib, nämlich FTP_Client Demo und CSV_Parser_File Demo. Das heist, dass ich eine Textdatei vom FTP Server auf meine SD-Karte transferieren und anschließend mit dem csv- Baustein in ein Array darstellen möchte. Ich habe lediglich Veränderungen wie Filename und Seperator vorgenommen.
Folgendes funktioniert:
1.) Der FTP_Client sendet wie gewünscht meine Daten an die SD-Karte bzw. den internen Flash. Die Dateien weisen auch eine bestimmte Größe auf.
2.) Wenn ich die gleiche Datei "VON HAND" auf die SD-Karte oder den Flash ziehe, d.h. nicht den internen FTP_Client benutze, lässt sie sich auch problemlos auslesen und als Array konvertieren!
Folgende Problematik:
3.) Es ist nicht möglich, eine zuvor transferierte Datei anschließend mit dem csv_Baustein innerhalb eines Projekts auszulesen. Somit funktioniert jedes Projekt für sich, jedoch ist eine kombnierte Funktionalität nicht möglich. Die FTP-tranferierten Dateien scheinen nicht mehr kompatibel mit dem csv-Baustein zu sein, obwohl in der Steuerun stets die gelungene Übertragung quittiert wird. Die Screenshots verdeutlichen, dass die FTP_Übertragung problemlos funktioniert, wohingegen keine Registrierung seitens des csv_parsers zu erkennen ist.
4.) Eine weitere Info noch: Wenn ich eine Datei auf der SD-Karte habe, kann ich sie per Hand (z.B. FIleZilla Client) nicht löschen. Das geht nur, wenn ich in der CoDeSys den FB FTP_Client den Eingang file_delete auf TRUE setze. Deswegen hatte ich gegelaubt, dass bei Bausteine innerhalb eines Projekts gestartet werden müssen. Dies habe ich dann auch gemacht, aber wie geschildert leider ohne Erfolg. Alle Berechtigungen wie schreibgeschützt etc. sind zudem deaktiviert.
Ich hoffe, dass die Infos hilfreich sind, bin echt am Ende mit meinem Latein. Gerne schicke ich auch das Projekt!
Viele Grüße
Sebastian
[gelöscht durch Administrator]
verwende zum testzwecke zuerst möglichst nur das original testprogramm
lass das csv programm weg, und alles andere auch ......
teste die übertragung und probiere dann den zugriff über filezilla
nach der übertragung muss diese datei am flash kopierbar sein und auch löschbar (filezilla benutzen !)
wenn eine datei vom ftp zur sps übertragen wird und danach nicht darauf zugegriffen werden kann
so wird theoretisch diese nicht mehr mit file_close geschlossen... warum auch immer.
punkt 4 verstehe ich gar nicht
file_delete = true bedeutet nach der übertragung soll die quelldatei gelöscht werden
das würde aber bedeuten das die datei am ftp gelöscht wird und nicht auf dem flash
das hört sich so an als ob es hier ein missverständnis gibt
das ist ziemlich unlogisch..