LabVIEWForum.de - Events mit Anzeigelementen

LabVIEWForum.de

Normale Version: Events mit Anzeigelementen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

es habe ein SubVI zur Fehlerüberwachung (bestimmter Wert überschritten). Tritt ein Fehler auf, wird die entsprechende LED auf True gesetzt. Ich möchte nun eine Fehlermeldung (über Dialogfeld das mit OK bestätigt werden muss) ausgeben. Allerdings soll die nur einmal kommen, auch wenn der Fehler weiterhin besteht (wird ja weiterhin über die LED angezeigt). Zuerst habe ich es mit einer Case Struktur versucht, hier wird das Dialogfeld allerdings so lange geöffnet bis der Fehler nicht mehr da ist. Mit einer Eventstruktur tut sich gar nichts. Habe die LED ausgewählt und das Ereignis " WErtänderung". Warum erkennt er die Wertänderung des Anzeigelement nicht? Wie kann man das lösen?

Danke,

Pascal
Hallo,

hier habe ich Dir ein Beispiel. Vielleicht hilft es Dir weiter. Die verwendete Funktion heißt "First call?"
Die jeweiligen "False"-Cases habe ich hier leer gelassen.

Gruß Markus

' schrieb:Hallo,

es habe ein SubVI zur Fehlerüberwachung (bestimmter Wert überschritten). Tritt ein Fehler auf, wird die entsprechende LED auf True gesetzt. Ich möchte nun eine Fehlermeldung (über Dialogfeld das mit OK bestätigt werden muss) ausgeben. Allerdings soll die nur einmal kommen, auch wenn der Fehler weiterhin besteht (wird ja weiterhin über die LED angezeigt). Zuerst habe ich es mit einer Case Struktur versucht, hier wird das Dialogfeld allerdings so lange geöffnet bis der Fehler nicht mehr da ist. Mit einer Eventstruktur tut sich gar nichts. Habe die LED ausgewählt und das Ereignis " WErtänderung". Warum erkennt er die Wertänderung des Anzeigelement nicht? Wie kann man das lösen?

Danke,

Pascal
Hallo,

was es nicht alles gibtBig Grin. Schon mal nicht schlecht. Nur ist jetzt das Problem, dass wenn der Fehler zum 2. Mal auftritt er nicht mehr angezeigt wird. Ein kleines Beispiel. Ich starte einen Motor, wenn die Temperatur zu hoch ist, wird die Fehlermeldung ausgegeben. Hier soll einmal dieses Dialogfeld kommen, allerdings der Fehler liegt ja weiter an bis die Temp wieder fällt. Der Motor kann so lang nicht mehr gestartet werden. Nachdem die Temp wieder gefallen ist, kann der Motor wieder gestartet werden. Ist die Temp dann wieder zu hoch soll das Dialogfeld wieder ausgegeben werden. Vielleicht hat jemand ne Idee.

Pascal
Hi,

meiner Meinung nach ist "First Call" hier völlig ungeeignet! Das liefert nur 1x die benötigte Information! Wenn dein Alarm weg geht, und dann nochmal kommt, kannst du damit nix anfangen, weil das "First Call" nur für den ersten Aufruf seit Start des (Haupt-)VIs gilt!

Du musst dir selber was basteln, z.B. indem du den Wert über ein Schiebergeister in die nächste Iteration n führst und dort mit dem Wert von n-1 vergleichst (d.h. Schieberegister auf dem linken Schleifenrand auf zwei Anschlüsse vergrößern und diese beiden Werte mit "ungleich" beurteilen).

Du kannst auch ein RS-FF verwenden, dass gibts hier irgendwo im Forum zu finden!

Gruss
Achim

Hier mal das VI...[attachment=4019]
<div align="left">Hallo, Pascal,

du könntest ja auch den Fehler in deine LED-Anzeige per Eigenschaftsknoten->Value Signaling schreiben. Dann kannst du die Fehlermeldung in die Event-Struktur einbauen.

Anbei ein BSP:

[attachment=4022]

MfG, Jens</div>
Hi,

@ Jens G:
Die Variante find ich ziemlich fragwürdig, weil du die erneute Anzeige des Fehlers vom Zustand der LED abhängig machst, und nicht vom wirklichen Fehler! Das ist SW-technisch wohl egal, aber in Analogie zum "wirklichen Leben" sollte das meiner Meinung nicht so sein: Du machst an ner Maschine ne Abschaltfunktion ja auch nicht davon abhängig, ob die Warnlampe an oder aus ist...sie könnte ja auch einfach kaputt sein! Deswegen sollte man lieber nach dem wirklichen Fehlersignal schauen...

Gruss
Achim
<div align="left">Hallo,

@Achim:
Maschinenmäßig gesehen hast du wohl nicht ganz unrecht. Aber ich sehe eigentlich keinen großen Unterschied, wo jetzt software-technisch der Fehlerzustand gespeichert wird. In deinem Bsp. wird er ja in der Shift-Variable gespeichert. Du schaust also auch nicht nach dem wirklichen Fehlersignal.
Und wenn nötig, kann mein Bsp leicht erweitert werden.

Außerdem hat es mich gereizt, das ganze per Event-Case mal zu machen.

MfG, Jens</div>
Da hast Du recht. Big Grin Da war ich etwas voreilig. Blush Immerhin hat jetzt jemand dazugelernt, dass es so was wie "First Call?" gibt. Wink

Gruß Markus

' schrieb:Hi,

meiner Meinung nach ist "First Call" hier völlig ungeeignet! Das liefert nur 1x die benötigte Information! Wenn dein Alarm weg geht, und dann nochmal kommt, kannst du damit nix anfangen, weil das "First Call" nur für den ersten Aufruf seit Start des (Haupt-)VIs gilt!

Hier mal das VI...[attachment=30151:attachment]
Danke für eure Antworten,

sorry für die späte Antwort. Das mit dem Value Signaling ist genau das was ich gesucht habe.

Pascal
<div align="left">
' schrieb:Habe die LED ausgewählt und das Ereignis " WErtänderung".
Hänge mich jetzt mal rein in die Diskussion und hoffe den richtigen Tipp geben zu können.

Zitat:Warum erkennt er die Wertänderung des Anzeigelement nicht?
Weil nicht Wertänderung an sich, sondern nur Wertänderung durch Bedieneingriff ein Ereignis "Wertänderung" auslöst.

Zitat:Wie kann man das lösen?
Durch Erstellen des Eigenschaftsknotens "Wert signalisierend" für die LED (nur beschreibbar). Wenn Du dort den neuen Wert in die LED reinschreibst und nicht in die LED direkt, wird das gewünschte Ereignis "Wertänderung LED" ausgelöst. </div>
Referenz-URLs