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!
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?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Events mit Anzeigelementen
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
was es nicht alles gibt. 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.
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...
Fehler.vi (Größe: 10,47 KB / Downloads: 225)
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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.
@ 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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
@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>
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Events mit Anzeigelementen
Da hast Du recht. Da war ich etwas voreilig. Immerhin hat jetzt jemand dazugelernt, dass es so was wie "First Call?" gibt.
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]
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' 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>