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!
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".
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
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
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.
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.
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
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.
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
da dann die Ereignisstruktur schon abgearbeitet ist, und du sie nicht als parallelen Prozess in einer Schleife ausführst: nein, die bekommt nichts mit!
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)