INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Daten von cRio ziehen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.07.2009, 16:49
Beitrag #1

Corono Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Jul 2009

8.6.1
-
en

8050
Schweiz
Daten von cRio ziehen
Hallo zusammen

Die nächste Frage: Gibt es eine Möglichkeit, gespeicherte Daten schnell per LabVIEW vom cRio auf den PC zu kopieren? Das Problem ist, wenn ichs mit der FTP-Funktion von LabVIEW mache, dauert das extrem lange, weil er jedes Mal Session erstellt, dann einloggt etc. und halt jede Datei einzeln runtergeladen werden muss. Gibt es eine Möglichkeit, eine FTP-Session zu starten, alle Files reinzupacken, die er braucht, und sie dann wieder zu beenden? Oder noch besser, gleich ganze Ordner zu kopieren. Denn wenn ich es einfach über Windows-Kommandzeile mache, dauert es auch nicht so lange, da muss ich aber acuh jedes File einzeln

Ich weiss, dass es auch einfach über Windows möglich ist, aber das ganze sollte automatisiert ablaufen.


MFG Corono
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.07.2009, 19:20
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Daten von cRio ziehen
' schrieb:Die nächste Frage:
Woher soll jemand in 2 Tagen noch wissen, dass du kurz vorher diese Frage hier gestellt hast?
http://www.LabVIEWforum.de/index.php?sho...=13599&hl=

Also, bitte immer vollständige Hintergrundinfos liefern, vor allem über verwendete Hardware (nicht nur allgemein cRIO).

Wie oft willst du Daten zwischen cRIO und einem LV-Programm auf einem PC übertragen? Wie wäre es mit direkter TCP/IP Kommunikation?!

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2009, 07:42
Beitrag #3

Corono Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Jul 2009

8.6.1
-
en

8050
Schweiz
Daten von cRio ziehen
' schrieb:Woher soll jemand in 2 Tagen noch wissen, dass du kurz vorher diese Frage hier gestellt hast?
http://www.LabVIEWforum.de/index.php?sho...=13599&hl=

Ok, cRio ist 9012.
Dachte, das spiele hier keine Rolle, weil es ja generell FTP-Server ist. Habe mal ein Bild angehängt, wie ich es bis jetzt gemacht habe über FTP.
Grundsätzlich soll es einfach so sein, dass man ab und zu mit einem PC vorbeikommen kann und sämltliche geschriebenen Logfiles rüberziehen kann. Grundsätzlich ist das ja über Windows möglich, aber es sollte eigentlich automatisiert ablaufen, also einfach ein klick und dann werden alle kopiert. So wie es im Bild mit FTP gemacht ist dauert es extrem lange, mich würde eigentlich interessieren, ob es auch schneller geht, also ob man z.B. einfach eine Session starten kann und dann alle Daten ziehen und nicht jedes Mal neu einloggen.

Es sind eben nciht immer gleich viele Daten, deshalb wird es mit einer einfachen Batchdatei ziemlich kompliziert.
Wie funktioniert denn das mit direkter TCP-IP-Übertragung? Geht das auch wenn nur ab und zu ein PC dranhängt?


MFG Corono


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2009, 19:56
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Daten von cRio ziehen
' schrieb:Es sind eben nciht immer gleich viele Daten, deshalb wird es mit einer einfachen Batchdatei ziemlich kompliziert.
Wie funktioniert denn das mit direkter TCP-IP-Übertragung? Geht das auch wenn nur ab und zu ein PC dranhängt?
MFG Corono

Also da gibt es verschiedene Möglichkeiten. Du könntest VI Server einschalten und in Deiner Application ein VI einbauen dass über VI Server aufgerufen werden kann und dass Dir die Files zurückschickt.

Du könntest das Internet Toolkit verwenden das eine komplette FTP VI Library besitzt und Dir in LabVIEW einen eigenen Client schreiben der einmal einloggt, alle Files herunterlädt und das abschliesst.

Du kannst Dir auch einen kleinen TCP/IP Server in die RT Applikation auf Deinem cRIO einbauen und einen entsprechenden Client programmieren der damit kommuniziert.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.07.2009, 06:53
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Daten von cRio ziehen
' schrieb:Wie funktioniert denn das mit direkter TCP-IP-Übertragung? Geht das auch wenn nur ab und zu ein PC dranhängt?
MFG Corono

ja.

Im Prinzip kann man sich die TCP/IP - Übertragung genauso vorstellen wie z.B. RS232. Die Daten werden byteweise übertragen und mit einem VI (TCP Read) wird geprüft ob irgendwelche Daten im Puffer liegen. das Read-VI hat einen Timeout (damit man es in einer Schleife laufen lassen kann) und wenn es Daten zurückliefert hat jemand was geschickt dass man dann verarbeiten kann und wenn es einen Fehler (Timeout) zurückliefert hat niemand was geschickt.

Es gibt dazu aber auch ein Beispiel im Example finder ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.07.2009, 07:20
Beitrag #6

Corono Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Jul 2009

8.6.1
-
en

8050
Schweiz
Daten von cRio ziehen
Ok, danke für die Antworten.

Ich probiere einfach mal aus und melde mich wieder, wenn ich Probleme haben sollte.


MFG Corono
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.07.2009, 11:40 (Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2009 11:43 von Corono.)
Beitrag #7

Corono Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Jul 2009

8.6.1
-
en

8050
Schweiz
Daten von cRio ziehen
Hallo zusammen

So, habe es jetzt mal mit TCP versucht. Grundsätzlich funktioniert es auch. Ich hätte nur ne Frage wegem dem Timing. Das Problem ist ja, dass dann das eine File auf der cRio abläuft und das andere auf dem Computer. Wie kann ich die beiden synchronisieren, konkret gesagt, wie weiss ich z.B. dass das eine File erst zu lesen beginnt wenn das andere schon geschrieben hat oder dass das eine File nicht die Verbindung unterbricht bevor das andere fertig ist mit Lesen? So was wie Semaphoren wären da nützlich, aber die kann ich ja nur Fileintern verwenden, das andere File kann da ja nicht zugreiffen.

Am Anfang funktioniert es ja, dann baut der eine die Verbindung auf und der andere hört einfach den entsprechenden Port ab. Aber danach läuft das bei mir ziemlich zufällig ab.


MFG Corono
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2009, 14:38
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Daten von cRio ziehen
' schrieb:Hallo zusammen

So, habe es jetzt mal mit TCP versucht. Grundsätzlich funktioniert es auch. Ich hätte nur ne Frage wegem dem Timing. Das Problem ist ja, dass dann das eine File auf der cRio abläuft und das andere auf dem Computer. Wie kann ich die beiden synchronisieren, konkret gesagt, wie weiss ich z.B. dass das eine File erst zu lesen beginnt wenn das andere schon geschrieben hat oder dass das eine File nicht die Verbindung unterbricht bevor das andere fertig ist mit Lesen? So was wie Semaphoren wären da nützlich, aber die kann ich ja nur Fileintern verwenden, das andere File kann da ja nicht zugreiffen.

Am Anfang funktioniert es ja, dann baut der eine die Verbindung auf und der andere hört einfach den entsprechenden Port ab. Aber danach läuft das bei mir ziemlich zufällig ab.
MFG Corono

Indem man ein intelligentes VI macht. Durch diese VI geht sowohl das Schreiben ins File als auch das Lesen davon. Dazu hast Du dann zwei Methoden im VI (plus eine Init beispielsweise mit der Du das File initialisierst/anlegst) die Du beispielsweise mittels eines Enums selektierst.

Bei nicht reentranten Vis stellt LabVIEW automatisch sicher dass es nicht gleichzeitig von zwei verschiedenen Orten aufgerufen werden kann und schon hast Du eine ganz einfache Methode um den Streit um den Filezugriff zu synchronisieren.

Kannst Dich natürlich auch mit Semaphores rumschalgen aber das ist hier völlig unnötig da nicht reentrante VIs dieses Problem sehr elegant und effizient lösen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2009, 07:23
Beitrag #9

Corono Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Jul 2009

8.6.1
-
en

8050
Schweiz
Daten von cRio ziehen
Hmm, ich bin nicht ganz sicher, ob ich deine Antwort verstehe. Das Problem ist nicht der Zugriff auf die Files, der ist schön geordnet eins nach dem anderen. Ich frage mich nur, wie ich sicherstellen kann, dass der cRio sendet und darauf der Computer liest. Am Anfang ist es ja so, dass man eine Verbindugn aufbaut und das andere File hört den Port ab. Da wird synchronisiert. Danach schreibt der cRio Daten und der Computer liest sie. Funktioniert alles ganz prima, ich frage mich jetzt nur, ob das Zufall ist, weil ich momentan gar keine Steuerung drin habe, was den Ablauf betrifft. Wie stelle ich z.B. sicher, dass das File auf dem Computer erst liest, sobald der cRio geschrieben hat? Oder macht das LabVIEW automatisch. Wird immer ein mal geschrieben und dann gelesen? Oder muss einfach das cRio-File schneller sein als das Computerfile?


MFG Corono
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2009, 08:07 (Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2009 08:07 von rolfk.)
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Daten von cRio ziehen
' schrieb:Hmm, ich bin nicht ganz sicher, ob ich deine Antwort verstehe. Das Problem ist nicht der Zugriff auf die Files, der ist schön geordnet eins nach dem anderen. Ich frage mich nur, wie ich sicherstellen kann, dass der cRio sendet und darauf der Computer liest. Am Anfang ist es ja so, dass man eine Verbindugn aufbaut und das andere File hört den Port ab. Da wird synchronisiert. Danach schreibt der cRio Daten und der Computer liest sie. Funktioniert alles ganz prima, ich frage mich jetzt nur, ob das Zufall ist, weil ich momentan gar keine Steuerung drin habe, was den Ablauf betrifft. Wie stelle ich z.B. sicher, dass das File auf dem Computer erst liest, sobald der cRio geschrieben hat? Oder macht das LabVIEW automatisch. Wird immer ein mal geschrieben und dann gelesen? Oder muss einfach das cRio-File schneller sein als das Computerfile?
MFG Corono

Genau deswegen habe ich den Vorschlag gemacht die ganze Schreib- UND Leseoperation in einem einzigen VI als jeweils atomare Operation auszuführen. Dort wo Du Daten schreiben willst rufst Du das VI auf mit den Selektoreingang auf Schreiben gesetzt. In Deinem TCP/IP Server rufst Du das VI auf mit dem Selectoreingang auf Lesen gesetzt. LabVIEW stellt dann sicher dass die Lese und Schreibmethoden nacheinander und nicht durcheinander geschehen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: