(03.01.2022 22:46 )ar7ur8 schrieb: ..Ich habe überlegt den Initialisierungsteil der Temperaturmessung außerhalb der While-Loops zu lassen und den "Acquisition"-Teil in der oberen (Event Handling Loop) entweder im Timeout Event der Event-Struktur oder einfach in der While Loop.
Würde das so funktionieren?
Mahlzeit Artur,
was genau ist denn das Ziel? Willst du die Temperatur nur anzeigen? Wie häufig, bzw wie aktuell muss die sein? Je nachdem ist das eine, das andere oder nichts davon geeigenet.
Im timeout event sollte keine Messung stattfinden, dort kannst du aber eine Messung triggern (Prinzip des QMH), aber Vorsichtig bei größeren Programmen, wenn zu viele Events kommen, kommt kein timeout mehr.
Ich persönlich würde hier ein separates Modul machen (noch nen QMH, als SubVI). Von deinem Main.vi kann die Messung der Temperatur gestartet und gestoppt werden und blockiert hier keine anderen Schleifen, dein Main.vi bekommt lediglich das Messergebnis um es anzuzeigen oder auszuwerten. Hier habe ich aber nur mit Delacor-QMH gearbeitet und kann dir im Aufbau bei QMH leider keine Tips geben. Ich habe dir aber dazu mal aus meinem LabVIEW Core 3 ein Beispiel angehängt, da sollte das Grundprinzip gut rüberkommen.
Datalogger_Demo_2015.zip (Größe: 261,06 KB / Downloads: 131)
Ansonsten solltest du dir beim Warten etwas anderes überlegen, so funktioniert das nicht.
Du füllst deine Queue mit einer Liste an Events, wenn du vorne dein Warten rausziehst und hinten anhängst, wird die Liste weiter abgearbeitet, dein Warten kommt erst wieder dran, wenn die Liste einmal abgearbeitet ist. Und komm hier nicht auf die Idee dein Warten vorne einzufügen, damit blockierst du deine gesamte Schleife (auch dein beenden).
Ich würde hier eine Liste übergeben (zB. Array of Cluster) und die nacheinander abarbeiten. Also die Queue nicht vorher füllen, sondern den nächsten Schritt mit erledigtem Schritt starten/einreihen. Beziehungsweise hast du deine Liste ja sogar in der Anzeige und kannst diese Abarbeiten, so könnte man auch Messungen bearbeiten, einfügen, entfernen,... Fürs visuelle: nen Haken hinten dran, wenn es fertig ist, nen Live Timer wann die Messung startet,...
Andere Tips:
Es lohnt sich sicherlich die verschiedenen Messungen in separate QMH's zu packen, jede Messung ein eigenes QMH, so zumindest meine Erfahrung.
1. Blockiert sich hier nichts gegenseitig.
2. Eine Änderung bleibt im SubVI und hat meist keine Auswirkung auf das Haupt VI.
3. Es kann auch später (re-)initialisiert werden.
MfG und gut's Neu's
Timo