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 

zeilenweise getaktet auslesen



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!

12.06.2005, 12:23
Beitrag #1

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
Hallo Zusammen,

ich möchte zeitabhängige Daten aus einer Datei auslesen und in Echtzeit darstellen. Die Daten liegen in folgender Form vor:

Zeit [s] Wert
0 0
0,5 1,5
1 3,25
1,5 2,55
.... ....

Ist es möglich, jede halbe Sekunde eine Zeile auszulesen und darzustellen und dann in der Datei eine Zeile weiter zu springen und den nächsten Wert getaktet auszulesen? Ich möchte nur ungern das VI "Aribiträres Signal simulieren" verwenden, so dass die Zeit-Spalte in der Datei nicht mehr benötigt wird.

Ich habe schon viel rumprobiert, aber eine Lösung habe ich noch nicht gefunden.

Ich hoffe, Ihr könnt mir weiterhelfen.

Vielen Dank.

Gruß
Sledge
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.06.2005, 15:38
Beitrag #2

ahlers01 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 143
Registriert seit: Feb 2005

7.1-2011
1993
DE_EN

38116
Deutschland
zeilenweise getaktet auslesen
Sledge schrieb:ich möchte zeitabhängige Daten aus einer Datei auslesen und in Echtzeit darstellen.
Ich vermute, Du meinst 'simulierte Zeit', denn das Lesen einer Datei in Echtzeit geht in Null-Koma-Nix...oder warum ist es wichtig nur jede halbe Sekunde einen Wert zu lesen??

Wenn es nur um ein langsames Darstellen geht, mach folgendes:
-Lies alle Daten in einen Array
-geh mit dem array in eine Loop und stelle im i.ten Durchlauf nur den Teil array von 0 bis i dar
-mach in jedem Durchlauf eine halbe Sekunde Pause

s. Beispiel


Angehängte Datei(en)
Sonstige .zip  unechtzeit.zip (Größe: 10,95 KB / Downloads: 275)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2005, 14:23
Beitrag #3

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
Hallo,

vielen Dank für Deine schnelle Antwort. Leider entspricht es nicht ganz dem was ich mir vorgestellt habe. Zu Deiner Frage warum es wichtig für mich ist nur jede halbe Sekunde den Wert auszulesen, kurz folgende Hintergrund-Info:

Die Werte entsprechen einer Sollwertvorgabe für eine Messung. Der Messwert soll später zusätzlich im gleichen Diagramm als Istwert dargestellt werden. Die Werte der Sollwertkurve gehören zu einem Zyklus der sich über eine Länge von 1200 Sekunden erstreckt. Bei dem Zyklus handelt es sich um ein Geschwindigkeitsprofil das online mit einem Fahrzeug nachgefahren werden muss. Pro Sekunde liegen zwei Werte vor. Um diesen darzustellen muss also alle 0,5 s ein Wert ausgelesen und dargestellt werden.

Zur Veranschaulichung habe ich einen Screenshot aus einem DIAdem-Programm hochgeladen. Die Gelbe Kurve stellt die Sollwerte dar, die grünen sind Grenzwerte. Die rote Kurve ist der Messwert der in Echtzeit dargestellt werden soll.

Ich hoffe, das veranschaulicht das Problem etwas besser.

Vielen Dank.

Gruß
Sledge


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

ahlers01 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 143
Registriert seit: Feb 2005

7.1-2011
1993
DE_EN

38116
Deutschland
zeilenweise getaktet auslesen
Vielleicht reden wir ja aneinander vorbei, aber..
Die Sollwerte kannst Du natürlich alle auf einen Schlag aus der Datei auslesen und im Programm in einem Array halten. Entscheidend ist doch wohl nur, das alle halbe Sekunden ein Istwert gemessen und mit dem Sollwert (und irgendwelchen Toelranzgrenzen) dargestellt wird. Beim Timing kommt es dann drauf an, wie exakt es sein soll. Ich denke, dass für die meisten Fälle das vom Betriebssystem garentierte Timing ausreicht. In LabVIEW nimmst Du am besten die Funktion 'Wait for next msec Multiple' (das icon mit dem Metronom). Mit dieser Taktung liest Du dann die Messwerte und stellst sie mit dem entsprechendem Sollwert (den Du aus dem vorher eingelesenen Array nimmst) dar. Warum Du das Auslesen auch nur all halbe Sekunde machen willst ist mir schleierhaft. Oder, wie gesagt, ich hab nicht verstanden worum es eigentlich geht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2005, 10:03
Beitrag #5

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
Ich habe mal programmiert wie es ungefähr aussehen soll. Läuft allerdings nicht hundertprozentig, reicht aber um die sache zu veranschaulichen.

Da ich mit LabVIEW 7.1 arbeite und Du mit 7.0 muss ich es wahrscheinlich anders abspeichern, da Du die Datei sonst nicht öffnen kannst? Kannst Du mal kurz beschreiben wie ich das mache. Wäre super.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2005, 10:49
Beitrag #6

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
So, hab gefunden wie es geht. Hoffe es hat auch geklappt.

Bei der ganzen Geschichte handelt es sich um ein Fahrerleitsystem. Auf dem Monitor soll ein Geschwindigkeitsprofilangezeigt werden, das dann nachgefahren werden muss. Das rechte Diagramm soll eine Vorschau auf das kommende Profil zeigen, damit man weiß ob beschleunigt, gebremst oder die Geschwindigkeit gehalten werden muss. Um es übersichtlich zu gestalten, soll die Vorschau allerdings nicht länger als 10s sein. Das Mess Signal wird auf dem linken Diagramm am rechten Rand angezeigt. Normalerweise soll das Sollprofil auch in diesem Diagramm mitlaufen. Die Istgeschwindigkeit habe ich jetzt durch einen Schieberegler simuliert. Ich kann auch direkt das gesamte Sollprofil im Diagramm anzeigen lassen, allerdings fehlt mir dann ein vernünftiger Bezug zur x-Achse (10s Vorschau). Sei denn von dem Profil werden jeweils nur die aktuellen Ausschnitte in einem laufenden Diagramm angezeigt. Habe aber noch nicht gefunden, wie das funktionieren soll.

Ich bin bisher von einer 2Hz-Taktung für das Sollsignal ausgegangen, da die Werte in meiner Datei so vorliegen, also für jede halbe Sekunde liegt ein Geschwindigkeitswert des Profils vor. Deshalb war ich der Meinung, es sollte jede halbe Sekunde der nächste Geschwindigkeitswert ausgelesen werden.

Sorry wenn das alles etwas unglücklich erklärt und ausgeführt ist, aber ich bin ein absoluter Anfänger mit LabVIEW. Vielleicht siehst Du die Lösung ja viel klarer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.06.2005, 15:53
Beitrag #7

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
Hallo,

habe es jetzt doch halbwegs mit Deinem Beispiel hinbekommen. Noch drei kleine Fragen dazu:

Erstens: Enspricht der angegebene Wert auf der x-Achse bei Verwendung des vi´s "Warten(ms)" konstant der laufenden Zeit (natürlcih bei korrekter Einstellung)? Habe jetzt schon mehrfach gelesen, dass die Zeit die zum Ausführen gebraucht wird nicht mit eingerechnet wird, so dass ein zeitlicher Versatz entsteht. Also z.B. 500ms Warten + 2ms Ausführung + 500ms Warten .... macht dann anstatt z.B 1000ms ca. 1004ms. Lässt sich dieses Problem, falls es überhaupt existiert, auch umgehen?

Zweitens: Wie kann ich den Wert der x-Achse nach Abbruch wieder automatisch auf Null setzen?

Drittens: Wie oben erwähnt, soll im gleichen Diagramm noch ein über den DAQ gemessener Messwert laufen. Inwieweit beeinflusst das die x-Achse? Hier wird ja dann eine reale Zeit angezeigt.

Vielen Dank für Deine Hilfe, das bringt mich ein großes Stück weiter.

Gruß
Sledge
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2005, 19:42
Beitrag #8

ahlers01 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 143
Registriert seit: Feb 2005

7.1-2011
1993
DE_EN

38116
Deutschland
zeilenweise getaktet auslesen
Sledge schrieb:Bei der ganzen Geschichte handelt es sich um ein Fahrerleitsystem. Auf dem Monitor soll ein Geschwindigkeitsprofilangezeigt werden, das dann nachgefahren werden muss.
Das rechte Diagramm soll eine Vorschau auf das kommende Profil zeigen, damit man weiß ob beschleunigt, gebremst oder die Geschwindigkeit gehalten werden muss.
Muss derjenige, der das Profile 'nachfährt', auf die Monitoranzeige reagieren? Wenn ja, dann ist eine halbe sec Reaktionszeit viel zu lang. Wenn das Display nur zur visuellen Kontrolle dient, ist's o.k.
Zitat:Das rechte Diagramm soll eine Vorschau auf das kommende Profil zeigen, damit man weiß ob beschleunigt, gebremst oder die Geschwindigkeit gehalten werden muss. Um es übersichtlich zu gestalten, soll die Vorschau allerdings nicht länger als 10s sein. Das Mess Signal wird auf dem linken Diagramm am rechten Rand angezeigt. Normalerweise soll das Sollprofil auch in diesem Diagramm mitlaufen. Die Istgeschwindigkeit habe ich jetzt durch einen Schieberegler simuliert. Ich kann auch direkt das gesamte Sollprofil im Diagramm anzeigen lassen, allerdings fehlt mir dann ein vernünftiger Bezug zur x-Achse (10s Vorschau). Sei denn von dem Profil werden jeweils nur die aktuellen Ausschnitte in einem laufenden Diagramm angezeigt. Habe aber noch nicht gefunden, wie das funktionieren soll.
Schau mal in dem VI test3.vi. Ich hab da mal rumgespielt (und vor allem die häßlichen Express VI rausgeschmissen. Bin vielleicht zu alt für so'n neumodisches Zeug).

Auf jeden Fall ist Dein Problem kein Datei I/O Problem, denn es ist ziemlich egal woher und wie schnell das VI an die Sollwerte kommt. Entscheidend ist, wie sie dargestellt und vor allem, wie sie zusammen mit den in Istzeit gemessenen Istwerten dargestellt werden.

Zitat:Ich bin bisher von einer 2Hz-Taktung für das Sollsignal ausgegangen, da die Werte in meiner Datei so vorliegen, also für jede halbe Sekunde liegt ein Geschwindigkeitswert des Profils vor. Deshalb war ich der Meinung, es sollte jede halbe Sekunde der nächste Geschwindigkeitswert ausgelesen werden.

Sorry wenn das alles etwas unglücklich erklärt und ausgeführt ist, aber ich bin ein absoluter Anfänger mit LabVIEW. Vielleicht siehst Du die Lösung ja viel klarer.
Wenn, wie oben gesagt, jemand auf die Sollanzeige reagieren soll, muss das VI auf jeden Fall schneller als mit 2 Hz update Rate laufen. In test3.vi ist gezeigt, wie man so was machen kann (wobei es sicher nicht nur diesen Weg nach Rom gibt...)

Viel Erfolg

Franz


P.S.:
Durch das Rausschmeißen dieser unsäglichen Express VIs ist test3.vi 95 kB lang, gegenüber vorher >900 kB!


Angehängte Datei(en)
Sonstige .vi  test3.vi (Größe: 95,17 KB / Downloads: 311)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2005, 21:28
Beitrag #9

Sledge Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2005



kA



zeilenweise getaktet auslesen
Hallo Franz,

vielen Dank für Deine Mühen. Das scheint echt toll zu funktionieren.

War auch gerade dabei die Express-vi´s rauszuschmeißen, aber das hätte ich nie im Leben in dieser Form hinbekommen. Ist schön, wenn man so eine Hilfe bekommt.

Ich hoffe nur, dass ich die Datenerfassung über den DAQ mit der seperaten Abtastrate problemlos einfügen kann.

Tausend Dank.

Gruß
Sledge
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2005, 13:40
Beitrag #10

dirkster
Unregistered


 







zeilenweise getaktet auslesen
Hi Slegde, Hi Franz !

bin grad zum ersten mal im forum weil mir LabVIEW kopfschmerzen bereitet und finde gleich die lösung zum problem, das nämlich ein ganz ähnliches ist wie das von slegde.
leider arbeite ich mit LabVIEW 6i also 6.02 und kann mit den bsp nichts anfangen.
wäre es möglich die mal auf 6i format zu speichern ??? (unechtzeit und test3)

DANKE !!

gruß dirk
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zeilenweise Werte aus Tabelle auslesen ColdducK 10 14.991 29.11.2011 11:27
Letzter Beitrag: GerdW
  Tabellenkalkulationsdatei zeilenweise auslese rio170 2 4.965 03.02.2011 21:08
Letzter Beitrag: rio170
  txt-Datei Zeilenweise auslesen flojoh 7 13.471 08.08.2010 16:38
Letzter Beitrag: Lucki
  Array zeilenweise lesen Daerstofer 6 9.322 09.12.2009 13:03
Letzter Beitrag: SeBa
  Textdatei zeilenweise in Array speichern skywalker 7 10.522 11.03.2008 10:57
Letzter Beitrag: jg
  Textdatei rückwärts(!) zeilenweise einlesen Anus+ 5 8.855 09.03.2006 08:25
Letzter Beitrag: Anus+

Gehe zu: