12.11.2010, 20:39
Beitrag #2
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Hallo Mecha,
Jein: prinzipiell kann man geöffnete Dateien auch lesen - solange sie nicht exklusiv reserviert sind...
Ob das mit den Eckdaten RT-System und FTP-Zugriff auch noch zutrifft, kann ich aber nicht sagen.
|
|
|
12.11.2010, 20:58
(Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2010 20:59 von Matze.)
Beitrag #3
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Hallo Gerd,
ich weiß gar nicht, wie man Dateien in LabVIEW exklusiv öffnet, vermutlich über "Dateiberechtigung setzen", doch das VI verwende ich nicht und die Übertragung per FTP funktioniert auch. Ich nutze das VI "Datei öffnen/erstellen" im Modus "write only".
Ich vermute, dass das EOF nur beim Schließen hinzugefügt wird (wäre auch logisch). Daher der Gedanke, die übertragene Datei irgendwie zu öffnen und das EOF anzuhängen. Nur wie kann ich die öffnen ohne EOF. *grübel*
Bei mir ist es so, dass die Datei auf einem System geöffnet ist, dann im geöffneten Zustand per FTP übertragen wird und dann auf einem anderen System ausgelesen wird.
Ich vermute, dass Dateiberechtigungen hier keine Rolle spielen.
|
|
|
12.11.2010, 22:59
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Geöffnete Datei gleichzeitig lesen, im Prinzip schon möglich. Aber das machst du ja gar nicht. Du überträgst eine geöffnete Datei per FTP. Das hört sich für mich nicht gut an. Davon würde ich die Finger lassen. Oder durch geschickte Programmierung dafür sorgen, dass nicht Schreiben und FTP-Senden/Lesen gleichzeitig passieren.
Alternativ, wieso nicht gleich die Daten aktiv per TCP/IP senden?!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
12.11.2010, 23:56
(Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2010 23:58 von Matze.)
Beitrag #5
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Hallo Jens,
es sollen die Messwerte protokolliert und nur passiv (bei Bedarf) visualisiert werden. Daher muss das Ganze auch ohne Windows-Applikation laufen. Ein laufendes Streamen ist daher nicht möglich.
Stimmt, wenn während der Übertragung in die Datei geschrieben wird, wäre das nicht gut.
Meinst du, man kann die Übertragung irgendwie so lange verzögern, bis die Daten geschrieben wurden?
Und wie könnte ich das sonst lösen?
In meinem Testfall wurde die Übertragung erst gestartet, nachdem die Daten geschrieben wurden. Und auch hier kam der EOF-Fehler.
|
|
|
14.11.2010, 14:43
Beitrag #6
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Hallo,
hat noch jemand eine Idee?
Ich habe soeben versucht, das rein unter Windows nachzustellen, doch das ist mir nicht gelungen. Folgendes funktionierte:
- Datei erstellen und hineinschreiben (geöffnet lassen)
- Datei über den Win-Explorer kopieren
- Datei schließen
- Versuch, die Kopie einzulesen
Vielleicht liegt das Problem auch in der FTP-Übertragung (Binärmodus ist eingestellt).
|
|
|
14.11.2010, 19:28
Beitrag #7
|
|
|
14.11.2010, 20:34
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2010 20:36 von Matze.)
Beitrag #8
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
Hallo,
ja das ist an sich eine gute Lösung, nur sollte das ganze System auch ohne Windows-Anwendung funktionieren. Und ich weiß nicht, ob das funktioniert.
Da bräuchte ich vermutlich eine parallele TCP/IP-Schleife in der RT-Anwendung (ich habe bereits eine zur Kommunikation mit einem anderen Gerät) und dort ein kurzes Timeout festlegen, den Timeout-Fehler abfangen und erneut versuchen, die Verbindung aufzubauen.
Starte ich dann die Win-Anwendung, wird ein Listener dort erzeugt, der auf eine eingehende Verbindung wartet.
Beende ich diese, wird der Fehler im RT-System wieder abgefangen und fortlaufend probiert, sich zu verbinden.
Wäre das ein praktikabler Weg?
So eine Lösung hätte für mich einen weiteren, großen Vorteil:
Ich kann Programmparameter von der Win-Anwendung per FTP auf das cRIO laden. Ich bin nur noch nicht auf eine Lösung gekommen, wie ich der RT-Anwendung mitteilen kann, dass eine neue Datei vorhanden ist. Das könnte ich mit deiner Lösung auch erreichen.
|
|
|
14.11.2010, 21:47
Beitrag #9
|
|
|
14.11.2010, 22:04
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2010 22:05 von Matze.)
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Geöffnete Binärdatei per FTP übertragen und einlesen
' schrieb:Den Listener würde ich RT Seite machen und dich aktiv darauf connected.
ok, dann eben so herum.
' schrieb:Ich war pauschal davon ausgegangen, daß du eh schon eine TCP Verbindung zwischen Host und RT hast, zum Konfigurieren usw.
Die besteht schon, nur ist die Anforderung, dass die Windows-Applikation nicht laufen muss. Daher erfolgt der Zugriff nur passiv (per FTP).
' schrieb:Wenn du ganz ohne spezielle Hostapp auskommen willst, kannst du auch einen einfachen Kommandointerpreter auf dem RT laufen lassen und darauf per telnet zugreifen.
Hm, damit kenne ich mich gar nicht aus.
' schrieb:Oder du benutzt FTP bzw. das RT-Filesystem als Kommandointerface. Das RT pollt ein definiertes Verzeichniss und der Benutzer legt dort per FTP Dateien die Kommandos darstellen ab. Nach der Abarbeitung löscht das RT dann jeweils die Dateien.
Die Polling Methode würde auch für neue Konfigdateien funktionieren.
Das hatte ich mir auch bereits überlegt. Als ich aber gesehen habe, wie langsam Dateizugriffe sind und wie stark sie die CPU auslasten, möchte ich eine bessere Lösung.
|
|
|
| |