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 

Datenstrom abspeichern und einlesen



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!

17.06.2008, 08:21
Beitrag #1

Only08 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Apr 2008

7.00
2008
de

10557
Deutschland
Datenstrom abspeichern und einlesen
Hallo Leute,

also, mein Problem ist, ich habe einen Datenstrom der innerhalb einer WHILE-Schleife von der VISA-Schnittstelle ausgelesen wird. Hier wird bei jedem Schleifen durchlauf eine Nachricht verarbeitet. Ich hab nun die Aufgabe diesen Datentrom mitzuloggen, was ich schon gemacht habe, aber auch eine bereits mitgeloggte Datei einzulesen und damit sozusagen den Datenstrom zu simulieren. Mein Problem ist nun, dass ich mir nicht sicher bin, wie ich das am besten mache.
Also aufgrund der WHILE-Schleife wird ja dann die auslesenfunktion ständig aufgerufen. Wie sag ich ihm denn da dass er immer die nächste Zeile nehmen soll?
Anbei mal das Speichern. Vielleicht hilft das etwas.


Würde mich über konstruktive Beiträge freuen!!! DANKE

LabVIEW 7.0


Angehängte Datei(en)
Sonstige .vi  datenstrom_speichern.vi (Größe: 35,45 KB / Downloads: 193)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.06.2008, 07:45 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2008 07:47 von Only08.)
Beitrag #2

Only08 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Apr 2008

7.00
2008
de

10557
Deutschland
Datenstrom abspeichern und einlesen
[attachment=40312:LOADING_TEST.vi]Also ich habs soweit hinbekommen, asu meiner Datei nach und nach die Nachrichten auszulesen, aber irgendwie schaffen es die Ergebnisse nicht aus der WHILE-Schleife. Also alle Anzeigen ausserhalb der WHILE-Schleife zeigen keine Werte an...
Was hab ich falsch gemacht, innerhalb sind die Werte noch korrekt.
Anbei mal meine Funktion zum Laden, plus entsprechendem Textdokument zum Testen.
Und noch ne Frage, ich dachte, dass bei Dateiende ein TRUE gesetzt wird mit dem ich dann die Schleife beenden kann, ohne diesen Fehler zum Schluss zu bekommen. Setzt das etwa doch keinen Wert?

LabVIEW 7.0


Angehängte Datei(en)
Sonstige .txt  test.txt (Größe: 324 Bytes / Downloads: 175)

Sonstige .vi  LOADING_TEST.vi (Größe: 42,97 KB / Downloads: 150)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2008, 09:11 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2008 09:12 von Kvasir.)
Beitrag #3

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Datenstrom abspeichern und einlesen
Also das Problem liegt, wie du richtig erkannt hast, darin, dass deine Schleife nie beendet wird. Das EOF kommt also nie. Daher können die Anzeigen außerhalb der While Schleife auch nichts anzeigen, da sie nie aufgerufen werden.

Warum das nicht funktioniert weiß ich nicht. Du kannst dir ja mal das Datei-Lesen Vi genauer anschauen (doppelklicken) und versuchen selbst darauf zu kommen (ist mir zu viel Aufwand). Vielleicht kennt sich auch hier jemand besser aus,

ABER:

Warum liest du überhaupt in einer Whileschleife die Datei aus? Warum nicht einfach einmal den kompletten String einlesen und anschließend diesen String zerlegen? Oder hast du zuviele Daten dafür?
Oder du machst es so wie im angehängte Vi und baust dir das Auslesen selbst zusammen. Die Version von mir funktioniert, allerdings arbeitet er einmal zu oft die Schleife ab, sodass du am Schluß noch einen Nulldurchlauf hast. Da müsstest du noch ein wenig herumspielen mit der Abbruchbedingung.

Grüße

Lv85_img
Sonstige .vi  LOADING_TEST_1.vi (Größe: 21,23 KB / Downloads: 180)


edit: Sehe gerade du hast 7.0. Kann leider nicht so weit runterspeichern. Aber der Screenshot sollte auch helfen.


Angehängte Datei(en) Thumbnail(s)
   

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2008, 12:00
Beitrag #4

Only08 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Apr 2008

7.00
2008
de

10557
Deutschland
Datenstrom abspeichern und einlesen
Also dadurch dass ich jetzt die erweiterten Dateimethoden verwende habe ich das Problem mit dem EOF lösen können. Was mir aber immer noch fehlt ist die Sache, dass er mir bei jedem Schleifendurchlauf das Ergebnis nach draussen leifert. Ich will ja nicht nur das letzte sondern alle Arrays haben.
Muss eine WHILE-Schleife erst komplett durchgelaufen sein, bis sie den Wert ausgibt? Das wäre in diesem Fall aber äußerst ungünstig. Hat jemand ne Ahnung wie ich das lösen kann?
Ich benutze die WHILE-Scheliefe, weil ich immer nur ein Zeile auf einmal haben will und damit die Datei durchlaufe und jeweils die wichtigen Nachrichten auslese.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2008, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2008 13:43 von Kvasir.)
Beitrag #5

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Datenstrom abspeichern und einlesen
Ja die While Schleife liefert Daten immer erst am Ende nach außen. Macht auch Sinn wenn du mich fragst.
Das Problem lösen kannst du auf verschiedene Arten (je nachdem, was du genau brauchst):

- Alles in die While Schleife packen - sprich das gesamte Programm in der Schleife abarbeiten. Dann hast du jeweils eine Zeile zur Verfügung.
- Mit Melder / Queues oder (einfacher, aber unschöner) lokalen / globalen Variablen arbeiten und parallele Schleifen verwenden. Sprich du verwendest neben dieser While Schleife noch eine zweite unabhängige in der du arbeitest und nimmst dir die Werte über besagte Methoden aus der ersten WhileSchleife.
- Auto Indizierung aktivieren (rechte Maustaste auf das Rechteck beim Schleifenausgang). Damit erhältst du einen 2D Array, in dem in jeder Zeile der Array von einem Schleifendurchlauf steht. Damit kannst du dann weiterarbeiten.

Ich würd in deinem Fall wohl 1 oder 3 verwenden, wobei ich ja nicht recht weiß, was du überhaupt anfangen willst mit den Daten.

Gruß

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2008, 14:12 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2008 14:15 von Only08.)
Beitrag #6

Only08 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Apr 2008

7.00
2008
de

10557
Deutschland
Datenstrom abspeichern und einlesen
Pro Zeile erhalte ich eine Nachricht, die ich anschließend über verschiedene SubVIs auswerten möchte. Das Ganze läuft schon ohne das einspeisen mit einer Datei, also einen Datenstrom vom Gerät, aber damit Fehler oder Ereignisse reproduziert werden können, sollen aufzeichnungen eingespeist und somit simuliert werden. Das versuche ich damit zu erreichen.
Das ganze Programm läuft bei mir schon in einer While-Schleife, aber das einlesen wollte ich eigentlich über ein SUBVI steuern. Ich schau mir mal Lösung 3 näher an, das klang ganz gut, aber ich glaube das schon getestet zu haben und dabei auch auf die Nase gefallen zu sein. Ich teste es mal.

EDIT: Also die Indizierung funzt schon mal ganz gut, nur leider steh ich ja dann wieder vor dem selben problem, dass ich jede Nachricht einzeln brauche und somit ein FOR- oder While-Schleife bemühen müsste um mir das jeweilige Teilarray nacheinander auszugeben. Ich will zudem ja ein Warten verwenden, weshalb ich ja eine schleife nutzen muss. Soll ja simuliert und nicht einfach in einer Sekunde erledigt sein. Hmm mal schauen, das ist bisher alles noch nicht so schön ....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenstrom auf Knopfdruck in Datei schreiben (oder auch nicht) _Markus_ 4 5.254 30.10.2018 09:27
Letzter Beitrag: GerdW

Gehe zu: