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!
Folgendes Programm soll mehrere Timer verwalten. Wenn ein Alarm auftritt soll ein oder mehrere
Relais umgeschalten werden. Einzugeben sind hierbei die Alarmzeit die Relaisnummer sowie die
Schaltrichtung. Die LED-Anzeige soll hierbei darüber informieren ob der Alarm bereits aufgetreten ist oder
noch ansteht.
Genau diese LED Anzeige bereitet hier die Probleme ohne, dass die Werte verändert werden flackern
die LED's wie verrückt. Ausser man stellt einen Alarm ein, dann bleibt die anzeige bei "ANSTEHEND" ...
so wie sie das soll. Bevor ich die Routinen zur Alarminterpretation als Sub-VI zusammengefasst habe
hat alles wunderbar funktioniert. In der vorliegenden Version als Hauptprogramm mit Sub-VI ist
dies leider nicht so.
Ich bedanke mich schonmal im Vorraus für die Hilfe.
hab Dein Programm kurz überflogen.
Das VI "SVI-Switch Timer" fehlt. Ich denke da sitzt die Funktionalität drin die das flackern auslöst.
Kannst Du das noch posten?
hab Dein Programm kurz überflogen.
Das VI "SVI-Switch Timer" fehlt. Ich denke da sitzt die Funktionalität drin die das flackern auslöst.
Kannst Du das noch posten?
Gruß
Andreas
Eigentlich müsste das "Sub-VI.vi" die entsprechende Datei sein. Am besten einfach umbenennen oder neu einfügen.
@svenni: du kannst die HP-VIs komplett rausschmeißen, der Effekt ist trotzdem zu sehen
@RR: ich war neulich schon mal dran, konnte aber nicht weitermachen. ich konnte dein Problem nachvollziehen, hab den Code sogar mal wieder ins Haupt-VI kopiert und gesehen, dass es dort klappt. vielleicht komm ich heute nochmal dazu. ich könnte mir vorstellen, dass das mit der Eventstruktur im SubVI zu tun hat...
ich meld mich wieder...
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)
1. Pack mal die Eventstruktur wieder in dein Haupt-VI, meiner Meinung nach hat die in nem SubVI nichts verloren!
2. Du hast ständig den Status geändert (durch das "Invert"), darum hat's geblinkt. Ich habe jetzt einen Vergleich zwischen zwei aufeinanderfolgenden Werten des Status gemacht, und dann klappts. Die While-Schleife im SubVI läuft nur 1x (da immer TRUE), sie wird bloß als "Transportmittel" verwendet, damit man die Schieberegister anwenden kann. Beachte: Dieses ist nicht initialisiert!
3. Ergänze mal in deinem Profil deine LV-Version! Wichtig! Die VI's hier sind in LV8, hast du das auch?
Probiers mal...ach ja, ich habs nur im Fall 5 geändert!
Erstmal vielen Dank Achim für deine Mühe. Leider habe ich, wie das bei Murphy's Law so ist, nicht LabVIEW 8 sondern 7.1. Dass das mit der Eventstruktur im Sub-Vi so nicht klappt musste ich auch schon feststellen. Ich habe aber auch noch festgestellt, dass wenn die Status-LED's auf True gesetzt werden und dies als Intialisierungswert verwendet wird (über "Make current values default"), tritt das Flackern nicht auf. Das Programm funktioniert dann zwar immernoch nicht so wie es soll aber das ist ja schomma ein Schritt vorwärts.
Ich will nochmal kurz erklären wie ich mir vorstelle, dass das Prog arbeiten soll, da dies wahrscheinlich aus der Struktur nicht unbedingt ersichtlich ist.
Ich möchte also 5 Timer (wobei die Anzahl eigentlich egal ist) setzen. Die Alarmaktion führt dann die HP-Vi durch (setzen eines Relais). Dabei möchte ich verhindern, dass das Gerät unnötig oft angesprochen wird. Daher habe ich die Status-LED's und zugehörigen Variablen eingeführt. Das schalten der Relais soll nur erfolgen wenn a) der Alarmzeitpunkt überschritten ist b) der Status auf anstehend (False) ist und c) eine Aktion (OPEN oder CLOSE ausgewählt ist. Das ändern des Status von "AUSGEFÜHRT" zu "ANSTEHEND" sollte die Ereignisstruktur erledigen. Sobald der Nutzer an der Aktion etwas ändert soll überprüft werden was, und ggf. der Status umgesetzt werden.
ich hab schon verstanden, was du vorhast! Hier mal die VIs in 7.1! Das funktioniert genauso, wie du dir das vorgestellt hast! Und ich hab nur die Eventstruktur nach "oben" verfrachtet und die Überprüfung des Status geändert! Check it out...
Ergänze deine LV-Version im Profil! Dann hätte ich dirs gleich richtig gespeichert!
<div align="left">Also tut mir Leid dich enttäuschen zu müssen Achim. Aber die Status LED's flackern immernoch.
Das passiert nat. nur wenn BusCheck=False.
Du musst dich aber nicht weiter damit belasten, da ich das Konzept dieses VI's entwas umgebaut habe und
die ganze Struktur ins Haupt-VI gebracht habe. Ich verwende jetzt einen Schalter um den Alarm "scharf" zu machen. Dieser wird dann beim Alarmereignis über eine Variable zurückgesetzt. Ich hatte auch versucht das ganze aus Platzgründen wieder in ein Sub-VI zu packen allerdings konnte ich dann den Schalter nie auf "on" bzw. true setzen. Er wurde sofort von der Variable überschrieben. Damit war dann auch meine Geduld am Ende. Somit habe ich alles 'n bisl zusammengeschoben und ins Hauptprogramm gepackt.
Die Relais tanzen nun endlich nach meiner Pfeife.
Ich danke dir trotzdem für die Mühe die du dir gemacht hast.
Mein LabVIEW-Profil enthielt eigentlich die Versionsnummer mit der ich arbeite. Die Information wurde allerdings beim umstellen des Forums in das Feld "Interessen" verschoben......so passierts.