LabVIEWForum.de
Wertänderung in bestimmtem Bereich detektieren... - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wertänderung in bestimmtem Bereich detektieren... (/Thread-Wertaenderung-in-bestimmtem-Bereich-detektieren)



Wertänderung in bestimmtem Bereich detektieren... - Yantit - 01.07.2010 12:14

Hallo!

Ich bin momentan auf der Suche nach folgender Funktionalität:

Ich werte den Minimalwert eines Arrays aus. Sollte dieser sich innerhalb eines bestimmten Bereiches bewegen (bspw. +- 3), kann das Programm normal weiterlaufen.
Verlässt der Wert dieses "Fenster", so soll ein Sub-VI aufgerufen werden, dass verschiedene Parameter ändert.

Leider weiß ich noch nicht, wie ich das lösen soll.

Gruß


Wertänderung in bestimmtem Bereich detektieren... - dimitri84 - 01.07.2010 12:20

In Range and Coerce Function

Vergleichspalette.


Wertänderung in bestimmtem Bereich detektieren... - Yantit - 01.07.2010 12:32

' schrieb:In Range and Coerce Function

Vergleichspalette.

Danke! Warum ich das nicht selbst gesehen habe? Huh


Wertänderung in bestimmtem Bereich detektieren... - Yantit - 01.07.2010 14:28

Ok, soweit so gut.

Die Funktionalität leuchtet mir ein. Ich habe auch erste Versuche vorgenommen, die Sache zu implementieren. Dabei wollte ich mittels eines Schieberegisters den "neuen" Maximalwert (vom letzten Auslesezyklus) mit den beiden "Grenzwerten" vom davorgehenden Zyklus vergleichen. Leider bekomme ich zwischendurch immer wieder eine Null als Grenzwert (bzw. mit meiner Ergänzung + und -3) raus. Dadurch funktioniert mein VI leider nicht mehr so wie geplant.

Wie kann ich da Abhilfe schaffen?

Danke & Gruß

Lv09_img2

[attachment=27521]


Wertänderung in bestimmtem Bereich detektieren... - GerdW - 01.07.2010 16:06

Hallo Yantit,

darf ich dich mal wieder an den Aufräumknopf erinnern?

"Leider bekomme ich zwischendurch immer wieder eine Null als Grenzwert"
Schon mal geguckt, wo die herkommt? Vielleicht mit einer Probe oder gar einer "conditional probe"?
Meine Vermutung:
Dein DequeueElement läuft in den TimeOut, gibt ein leeres Array aus - und das Maximum davon ist die Null... Bisher überprüfst du nicht den ErrorOut der Queue-Funktion!


Wertänderung in bestimmtem Bereich detektieren... - jg - 01.07.2010 18:24

' schrieb:Meine Vermutung:
Dein DequeueElement läuft in den TimeOut, gibt ein leeres Array aus - und das Maximum davon ist die Null... Bisher überprüfst du nicht den ErrorOut der Queue-Funktion!
Gute Idee, aber bei einem TimeOut kommt doch kein Fehler im ErrorCluster. Meine Empfehlung: Werte den Ausgang "timed out?" aus:
[attachment=27537]
Nur wenn der "False" ist, enthält der Ausgang "Element" was Sinnvolles. Zusätzlich könnte man noch die Länge des Strings überprüfen. z.B. so:
[attachment=27538]
Wenn die Oder-Verknüpfung "True" ergibt, dann machst du nichts, und nur bei False suchst du nach dem Maximum.

Gruß, Jens

P.S.: Die Aufräumfunktion von LabVIEW ist zwar nett, dein Haupt-VI zeigt aber, dass sie bei so einem großen BD auch keinen übersichtlichen Code erzeugen kann. Ich empfehle dir dringend, hier von Hand nachzuarbeiten.


Wertänderung in bestimmtem Bereich detektieren... - Yantit - 02.07.2010 06:54

' schrieb:Gute Idee, aber bei einem TimeOut kommt doch kein Fehler im ErrorCluster. Meine Empfehlung: Werte den Ausgang "timed out?" aus:
[attachment=56255:Image01.png]
Nur wenn der "False" ist, enthält der Ausgang "Element" was Sinnvolles. Zusätzlich könnte man noch die Länge des Strings überprüfen. z.B. so:
[attachment=56256:Image02.png]
Wenn die Oder-Verknüpfung "True" ergibt, dann machst du nichts, und nur bei False suchst du nach dem Maximum.

Gruß, Jens

P.S.: Die Aufräumfunktion von LabVIEW ist zwar nett, dein Haupt-VI zeigt aber, dass sie bei so einem großen BD auch keinen übersichtlichen Code erzeugen kann. Ich empfehle dir dringend, hier von Hand nachzuarbeiten.

Danke!

Ich werde die Tipps mal probieren. Die Aufräumfunktion hatte ich tatsächlich benutzt, allerdings, wie schon erwähnt, hilft die auch nicht weiter. Ich werde die Sache händisch bereinigen.