Oscat FTP Client, Übertragung dauert sehr lange

eedroid

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

ich setzte zum ersten mal den FTP_CLIENT von der Oscat Bibliothek ein. Bei der Steuerung handelt es sich um einen Raspberry PI, auf diesem läuft die Codesys Umgebung. Bei allen Programmen und Bibliotheken handelt es sich um die neuen Versionen (Stand 20.04.2020).

In meinem Programm mit einer Zykluszeit von 10ms werden csv-Dateien erzeugt, ca. 10 Stück. Diese variieren in der Größe zwischen 25 Byte und 2 KByte, aber viel wahrscheinlicher ist es das die Dateien ca. 100 Byte klein sind.

Mein Problem: Die Übertragung zu einem FTP-Server dauert pro Datei ca. 1 Minute. Die erste Datei - unabhängig von ihrer Größe, geht direkt - alle anderen nicht.

Meine Beobachtung: Habe zufällig gesehen das der FTP-FB aus einem großen CASE besteht, und genau hier zwischen Schritt 200 und 210 hängt der FTP-FB, er springt immer zwischen diesen beiden Schritten hin und her.

Ein bisschen suchen liefert mir das wohl schon einige andere diese Beobachtung gemacht haben, Zykluszeit kann ich nicht kleiner stellen, dann geht die CPU_LOAD über 100. Wenn ich die Übertragung in einen eigenen Task mit der kleinsten Zykluszeit von 10ms auslagere, bringt leider auch nichts, gleiche Ergebnis: Es dauert!

Vielen Dank im Voraus
Droid
 
Ich kenne Dein System nicht, habe eine Vermutung: Wartet die FTP-Übertragung vielleicht auf eine Rückmeldung, welche aber nicht kommt, und schaltet nur wegen Timeout zur nächsten Datei?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wartet die FTP-Übertragung vielleicht auf eine Rückmeldung, welche aber nicht kommt, und schaltet nur wegen Timeout zur nächsten Datei?

Nein. Im Endeffekt werden die Daten übertragen, allerdings dauert die Übertragung pro Datei ca. eine Minute. Wenn ich auf meinem wie oben bereits beschriebenen System, den FileZilla zum testen verwende, dann werden alle Dateien sofort übertragen.
 
Ich habe eine Idee aus der S7 Welt.

Wenn die CPU-Zykluszeit sehr klein ist (weil.z.b. kaum Programm läuft) ,
Dann hat das "Betriebsystem" kaum Zeit für andere Datenübertragungen (wie z.b. Put/Get von anderen Rechnern).

Lösung: eine Minimum Zykluszeit auf einen grösseren Wert 20, 50, 100 ms einstellen.
Ob das bei deinem system geht weis ich nicht.
Wo ich bei der S7 keine Minimum Zykluszeit habe, habe ich dann im OB1 eine Warteschleife mit 10ms eingebaut.
 
Zurück
Oben