LabVIEWForum.de - Automatisierung mittels QMH und Melder

LabVIEWForum.de

Normale Version: Automatisierung mittels QMH und Melder
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
(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. Tongue
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. [attachment=62140]

Ansonsten solltest du dir beim Warten etwas anderes überlegen, so funktioniert das nicht.
[attachment=62139] 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
(04.01.2022 07:42 )GerdW schrieb: [ -> ]über den Jahreswechsel haben viele Urlaub und wollen sich entspannen…

Warum machst du keinen Initialisierungs-State/-Case in deinem QMH? (Würde ich als "sauberere" Lösung empfinden.)

Hallo Gerd, vielen Dank für die Rückmeldung! Tut mir leid, das mit den Feiertagen habe ich nicht bedacht.. Confused

ich habe ja einen Initialisierungs Case in der Message Handler Loop. Meinst du dass ich die Messung von dort aus starten soll?
Ich habe ehrlich gesagt noch Schwierigkeiten damit, was einer Initialisierung bedarf und was nicht...


Hallo Timo,

danke für die Ausführliche Antwort!

Zitat:Und komm hier nicht auf die Idee dein Warten vorne einzufügen, damit blockierst du deine gesamte Schleife (auch dein beenden).

genau das mache ich hier aber (die True Konstante bewirkt ein Einfügen am Anfang). Ich verstehe jedoch nicht, was daran problematisch für mich sein soll. Ich will ja dass die Queue solange nicht abgearbeitet wird, bis die Zeit abgelaufen ist. Und da ich jedes mal nur eine Sekunde warte, wird der Befehl "Beenden" (der ja auch am Anfang eingefügt wird) spätestens nach 1 s ausgeführt (habe es gerade getestet).
Oder habe ich dich falsch verstanden?

Bezüglich der Temperaturmessung: das Ziel ist, sowohl die Temperatur anzuzeigen als auch zu messen (bei den Lagerstrom/Spannungsmessungen und Impedanzmessungen). Die Abtastrate muss dabei nicht sonderlich hoch sein (maximal 10 Hz denke ich).
Ich werde mir dein Beispiel heute Abend anschauen, vielleicht hilft es mir weiter.
(04.01.2022 16:33 )ar7ur8 schrieb: [ -> ]genau das mache ich hier aber .. Ich verstehe jedoch nicht, was daran problematisch für mich sein soll.
Ok, habe ich so nicht betrachtet, deine 1000ms-Wait läuft parallel, somit ist das Zeitfenster, indem dein neues Warten vor deinem Beenden kommt sehr gering, dennoch ist es möglich (meinem Verständnis nach), dass dein Beenden nach dem Warten abgearbeitet wird. Wird hier wohl keinen wirklichen Einfluss haben, wenns nicht aus geht, drückt man nochmal..
Zitat:Bezüglich der Temperaturmessung: das Ziel ist, sowohl die Temperatur anzuzeigen als auch zu messen (bei den Lagerstrom/Spannungsmessungen und Impedanzmessungen). Die Abtastrate muss dabei nicht sonderlich hoch sein (maximal 10 Hz denke ich).
Ich werde mir dein Beispiel heute Abend anschauen, vielleicht hilft es mir weiter.
Ich hoffe das Beispiel hat dir geholfen.
Seiten: 1 2 3
Referenz-URLs