Hallo allerseits,
ich möchte gern für das Frontpanel einer Anlage ein Statusfeld haben in dem mit Zeitstempel Warnungsmeldungen usw. ausgegeben werden.
Z.B. soll bei Detektion einer Leckage durch einen Sensor die Meldung "30.10.2013 09:02 Leckage" ausgegeben werden.
Ich generiere derzeit diese Meldungen über eine Ereignisstruktur, was im Test mit Schaltern auf dem FP auch bestens funktioniert. Leider habe ich keine Ahnung wie ich die Ereignisstruktur auf eine Signaländerung an meinem realen Eingang reagieren lasse. Meinen bisherigen Versuch mit den Schaltern zum Testen habe ich einmal angehängt.
Kann mir jemand von euch helfen?
P.S. ich bin noch ziemlich neu in der Programmierung mit LabView, also bitte nicht zu kompliziert.
Vielen Dank und viele Grüße
Timo
Hallo Timo,
du musst die Schaltfunktion auf "beim Loslassen schalten" in beiden Schaltern setzen und kannst dann über die Eigenschaft Wert (signalisierend) setzen jeweils das Event programmatisch auslösen.
Gruß, Marko
Hallo Timo,
ich würde eine Queue verwenden, um den String "Leckage" zu versenden.
Vorteile:
- man kann beliebige Signalquellen in beliebigen Schleifen/VIs haben, die ihre Meldungen alle in die "Meldungs"-Queue absetzen. Bei dir z.B. kann sowohl in einem Event als auch in der DAQ-Schleife in die Queue geschrieben werden...
- es gibt eine Schleife, die diese Queue auswertet. Meist ist diese so gut vom Rest entkoppelt und performant, dass man den Zeitpunkt der Meldung erst hier zum String hinzufügen kann.
- Man kann die Meldungen dann auch bequem in einer Logdatei speichern, ohne dass man mit Dateioperationen evtl. andere Prozesse blockiert...
Hallo Marko,
vielen Dank für deine schnelle Antwort.
Ich hab mich wohl ein bisschen schlecht ausgedrückt, die Schalter habe ich nachher im echten Programm gar nicht mehr. Die habe ich nur benutzt um die Erzeugung meiner Meldungen testen zu können, da die Hardware noch nicht da ist.
Dann doch ein dynamisches Event (wie in meinem Bsp.) oder der Vorschlag von Gerd.
Gruß Markus
(30.10.2013 09:14 )Timo86 schrieb: [ -> ]Ich hab mich wohl ein bisschen schlecht ausgedrückt, die Schalter habe ich nachher im echten Programm gar nicht mehr.
Vielen Dank für die schnellen Antworten!
Die Sache mit der Queue scheint mir ziemlich gut, allerdings verstehe ich es leider nicht.
Ich werde mich mal an den dynamischen Events versuchen.
(30.10.2013 09:09 )Y-P schrieb: [ -> ]Alternativ ein dynamisches Event:
Gruß Markus
Hallo Markus,
danke für deine Idee!
Ich habe mich mal an deinem Vorschlag mit dem dynamischen Event versucht. Leider bin ich aktiv gescheitert.
Ich verstehe die Art der Eventerzeugung noch nicht so ganz.
So wie ich es in meinem Beispiel (siehe Anhang) versucht habe erstelle ich mir ein Event mit dem Namen "Benutzerereignis", welches auch in der Ereignisstruktur auswählbar ist.
Wie kann ich denn jetzt mehrere Ereignise mit unterschiedlichen Namen erzeugen und ist die Stelle an der ich mein abzufragendes Event (simulierter Notausschalter) gebaut habe richtig?
Gruß
Timo
Was spricht denn eigentlich dagegen, das Problem in einfachser Weise mit zwei Casestrukturen zu lösen? Verstehe das nicht, aber wenn die LFV Gurus dieses Naheliegendste nicht vorschlagen, dann hat es wohl seinen Grund und ich habe etwas nicht richtig verstanden
[
attachment=47028]
(30.10.2013 10:53 )Lucki schrieb: [ -> ]Was spricht denn eigentlich dagegen, das Problem in einfachser Weise mit zwei Casestrukturen zu lösen? Verstehe das nicht, aber wenn die LFV Gurus dieses Naheliegendste nicht vorschlagen, dann hat es wohl seinen Grund und ich habe etwas nicht richtig verstanden
Hallo Lucki,
danke für den Vorschlag. Ich gebe dir absolut Recht, dass es die einfachste Variante ist. Es sollen aber in dem gesamten Steuerungsprogramm noch einige Meldungen mehr angezeigt werden können (insgesamt ca. 15), da ist es so vielleicht doch ein klein wenig unübersichtlich...