LabVIEWForum.de - Zeitdifferenz zwischen Wertänderungen bestimmen

LabVIEWForum.de

Normale Version: Zeitdifferenz zwischen Wertänderungen bestimmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Forum,

ich Suche eine möglichkeit die Zeitdifferenz von Wertänderungen zu ermitteln. Wenn ein Case sich in True befinden wird der aktuelle Wert inkrementiert bei False wird der Wert der letzten Iteration weitergeleitet.
Nun möchte ich Praktisch die Zeitdifferenz der Wertänderung bezogen auf das letzte Inkrement bestimmen. Wenn keine Wertänderung stattfindet soll in einem Anzeigeelement 0 ausgegeben werden.
Vielleicht ist es ganz Simpel aber ich steh auf dem Schlauch.
Hallo cheeze,

ganz einfach:
nimm ein weiteres Shiftregister (oder FeedbackNode). Im TRUE case nimmst du die aktuelle Zeit und speist sie in das Shiftregister. Außerdem bildest du die Differenz zum letzten Zeitwert aus dem Shiftregister (dein gesuchter Wert). Im FALSE case wird einfach der Wert im Shiftregister behalten...
Ja, so hab ich es auch gemacht gehabt. Diese Lösung hat allerdings einen Schönheitsfehler. Solange durchgehend der Wert inkrementiert wird funktionierts wunderbar. Wenn der Wert nicht mehr inkrementiert wird (also FALSE) wird die letzte Zeitdifferenz angezeigt. Das ist dann allerdings nicht mehr korrekt. Wenn kein Inkrement stattfindet, möchte ich dass 0 angezeigt wird.
Glas1...Glas2

Gerd funktionierts bei dir? Ich seh' einfach nicht was Käse bei sich programmiert hat ... Huh
Hier ist ein Beispiel wie ich es meine.
Ja, so hab ich es auch gemacht gehabt. Diese Lösung hat allerdings einen Schönheitsfehler. Solange durchgehend der Wert inkrementiert wird funktionierts wunderbar. Wenn der Wert nicht mehr inkrementiert wird (also FALSE) wird die letzte Zeitdifferenz angezeigt. Das ist dann allerdings nicht mehr korrekt. Wenn kein Inkrement stattfindet, möchte ich dass 0 angezeigt wird

Das Problem ist, das 0 im False-Fall nie in das Ausgabefeld geschrieben werden kann, da sich der Indicator im True-Fall befindet...

Lösung:
Den Indicator zur Anzeige der Zeitdifferenz ausserhalb der Case-Struktur positionieren und bei true den Zeitwert reinschreiben. Bei false einfach ein 0 verbinden
Hallo cheeze,

also eher so (mit kleinem Delay, die CPU will sich doch mal schlafen legen zwischendrin):
OK, vielleicht sollte ich doch lieber den Sinn des VIs beschreiben. Ich möchte die Frequenz eines Motors bestimmen. Also wenn der Motor dreht wird bei einer Umdrehung ein Inkrement ausgelöst. Der Ansatz mit der Anzeige ausserhalb der Casestruktur ist richtig. Allerdings wird dann meine Anzeige zwischen Zeitdifferenz und 0 toggeln.
Ideal wäre für mich eine Lösung, in der Beispielsweise eine Art timer vorhanden ist. Basierend auf dem Snipped VI wird geschaut ob nach z.B: 1s eine Wertänderung stattgefunden hat. Falls das nicht der fall ist, wird eine Null ausgegeben.
Hallo cheeze,

wenn du den Delay auf 1000ms setzt, bekommst du genau das, was du eben beschrieben hast...
Du hast Recht. Stell dir aber vor ich stelle die Frequenz mit einem Frontpanel Element "Rundinstrument/Gauge" dar. Der Motor beschleunigt gleichmässig. Was würde wohl passieren wenn ich immer 1 s warte? Cool
Seiten: 1 2
Referenz-URLs