LabVIEWForum.de
Mit Wertänderung eine Case-Struktur ansteuern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Mit Wertänderung eine Case-Struktur ansteuern (/Thread-Mit-Wertaenderung-eine-Case-Struktur-ansteuern)



Mit Wertänderung eine Case-Struktur ansteuern - ChrisR_ - 05.09.2016 10:24

Hallo,

aktuell versuche ich mittels LabVIEW ein Programm zur Regelung der Temperatur eines beiheizbaren Messaufbaus zu schreiben.

Dabei möchte ich im Falle der Änderung der Zieltemperatur (Eingabe über numerisches Bedienelement) einen Booleansches-True ausgeben um eine Case-Struktur anzusteuern.

Mein aktueller Ansatz ist über eine Ereignisstruktur (siehe Anhang). Jedoch erhalte ich als Ausgabe durchgehend des Wert "False".


Kann mir hier jemand weiterhelfen?


Gruß Christoph


RE: Mit Wertänderung eine Case-Struktur ansteuern - TSC - 05.09.2016 10:39

Kannst du dein VI mal posten? Sicher, dass du bei Wertänderung kein TRUE erhälst? Oder siehst du es einfach nicht, weil dein Timeoutcase schneller ist, als du gucken kannst? Du gibst jede Millisekunde ein False aus.

VG,
Torsten


RE: Mit Wertänderung eine Case-Struktur ansteuern - jg - 05.09.2016 10:47

Anzeige des Zeitpunkts des Ereignisses ist auch eine schöne Debug-Möglichkeit:
[attachment=56566]
Gruß, Jens


RE: Mit Wertänderung eine Case-Struktur ansteuern - ChrisR_ - 05.09.2016 10:49

Da ich das Programm immer nur in einzelnen Zyklen laufen lasse dürfte sich da eigentlich nicht ändern.

Ich hoffe das VI ist soweit verständlich, auch wenn der Algorithmus wahrscheinlich viel komplizierter ist als er sein müsste. Aktuell ist es auch nur eine Simulation.


Wenn ich die Zeit angeben lasse bleibt der Wert bei 0 egal wie oft ich die Zieltemperatur ändere.


Schonmal vielen Dank für die Hilfe.


RE: Mit Wertänderung eine Case-Struktur ansteuern - jg - 05.09.2016 11:00

Hmm Das VI läuft einmal durch, wie soll es da eine Wertänderung durch den Benutzer mitbekommen?

Gruß, Jens


RE: Mit Wertänderung eine Case-Struktur ansteuern - TSC - 05.09.2016 11:03

Die Ereignisstruktur arbeitet folgendermaßen:

wenn der Datenfluss von LabVIEW bei der Ereignisstruktur ankommt, wartet diese, bis eines der Eingetragenen Ereignisse eintritt. In deiner Programmierung sind die Eregnisse Timeout und Wertänderung der Temperatur eingetragen. Ich bin mir zimelich sicher, dass als erstes eine Millisekunde verstreicht, bevor du überhaupt eine Wertänderung (zur Laufzeit) vornehmen kannst. Schaue dir mal die Beispiele in LabVIEW zu Ereignisgesteuerter Programmierung an.

Alternativ, wenn du tatsächlich immer nur einen Zyklus durchlaufen magst, müsstest du den alten Temperaturwert irgendwo speichern und einen Abgleich machen. Vielleicht über eine Funktionale Globale Variable (FGV). Auch dazu gibt es Beispiele.


RE: Mit Wertänderung eine Case-Struktur ansteuern - ChrisR_ - 05.09.2016 11:06

Nur für mein Verständnis:

Die Ereignisstruktur detektiert das Ereignis nur, wenn es innerhalb der angegebenen Zeit stattfindet?

Ich dachte es würde vergleichen ob es eine Änderung zu dem vorherigen Wert gibt.


RE: Mit Wertänderung eine Case-Struktur ansteuern - TSC - 05.09.2016 11:09

Die Ereignisstruktur arbeitet erst dann, wenn der Datenfluss bei ihr angekommen ist (alle Eingänge der Struktur müssen bedient sein). In deinem Fall ist das ziemlich am Anfang des Programms so, es muss vorher lediglich der Eintritt in die Sequenz erledigt werden.

Sobald die Ereignisstruktur arbeitet, wartet sie bis eines der Ereignisse auftritt. Das macht sie aber nicht vorher sonder wirklich erst dann, wenn sie dran ist.


RE: Mit Wertänderung eine Case-Struktur ansteuern - ChrisR_ - 05.09.2016 11:18

Wenn die Änderung also während des restlichen Vorgangs eintritt, so wird sie nicht als Änderung wahrgenommen?


RE: Mit Wertänderung eine Case-Struktur ansteuern - TSC - 05.09.2016 11:21

da dann die Ereignisstruktur schon abgearbeitet ist, und du sie nicht als parallelen Prozess in einer Schleife ausführst: nein, die bekommt nichts mit!