LabVIEWForum.de
Zeitdifferenz zwischen Wertänderungen bestimmen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zeitdifferenz zwischen Wertänderungen bestimmen (/Thread-Zeitdifferenz-zwischen-Wertaenderungen-bestimmen)

Seiten: 1 2


Zeitdifferenz zwischen Wertänderungen bestimmen - cheeze - 25.02.2010 18:21

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.


Zeitdifferenz zwischen Wertänderungen bestimmen - GerdW - 28.02.2010 14:14

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...


Zeitdifferenz zwischen Wertänderungen bestimmen - cheeze - 11.03.2010 14:56

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.


Zeitdifferenz zwischen Wertänderungen bestimmen - dimitri84 - 11.03.2010 15:13

Glas1...Glas2

Gerd funktionierts bei dir? Ich seh' einfach nicht was Käse bei sich programmiert hat ... Huh


Zeitdifferenz zwischen Wertänderungen bestimmen - cheeze - 11.03.2010 16:58

Hier ist ein Beispiel wie ich es meine.


Zeitdifferenz zwischen Wertänderungen bestimmen - M Nussbaumer - 11.03.2010 17:19

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


Zeitdifferenz zwischen Wertänderungen bestimmen - GerdW - 11.03.2010 17:43

Hallo cheeze,

also eher so (mit kleinem Delay, die CPU will sich doch mal schlafen legen zwischendrin):


Zeitdifferenz zwischen Wertänderungen bestimmen - cheeze - 11.03.2010 17:46

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.


Zeitdifferenz zwischen Wertänderungen bestimmen - GerdW - 11.03.2010 17:55

Hallo cheeze,

wenn du den Delay auf 1000ms setzt, bekommst du genau das, was du eben beschrieben hast...


Zeitdifferenz zwischen Wertänderungen bestimmen - cheeze - 12.03.2010 00:17

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