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!
nach einer etwas längeren Pause stehe ich mal wieder vor einem Problem
Ich Möchte 12 LEDs (Boolesch) eine nach dem anderen grün werden lassen. Aber sie sollen jeweil nach einer bestimmten Zeit auch noch blinken.
Also LED 1 geht nach 3sek. an, nach weiteren 3 fängt sie an zu blinken und nach wieder weiteren 3 geht LED 2 an, erst grün, dann blinkend...
halt immer so weiter.
Das ganze soll jederzeit Anzuhalten sein und auch wieder auf den Ausgangspunkt zurückstellbar sein, also alle 12 LEDs aus.
Ich habe mich jetzt schon ein wenig ausgetobt, aber ich komme nicht so recht weiter. Ich habe 3 Fragen:
1. Warum blinken manche LEDs ohne überhaubt einen Wert zu bekommen?
2. Wie kann ich die Case auf false stellen, bevor ihr Inhalt durchgelaufen ist?
Und zu letzt
3. Gibt es noch eine hübschere und vielleicht viel kompaktere Lösung für mein Problem?
Es wäre super, wenn Ihr mir helfen könntet
Anzeige
08.01.2013, 18:32 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2013 18:34 von Trinitatis.)
Zu 1.)
Du setzt ja die Eigenschaft der LEDs auf blinkend. Das tun sie dann auch, solange du diese Eigenschaft nicht zurücksetzt.
Beim Neustart des VIs blinken sie dann immernoch.
Zu 2.)
So wie du es programmiert hast, musst du erst warten, bis deine Forschleife durchgelaufen ist - deshalb isses egal, ob du zwischendurch den Case auf false stellst. Du musst dir in der Schleige eine Abbruchbedingung schaffen und eine Whileschleife verwenden, oder noch besser über ne Eventstruktur
zu3.) bestimmt
siehe 1. + 2.
Außerdem kannst du das Blinken ja vielleicht auch programmieren, da bist du freier in der Blinkfrequenz und der Auswahl der Blinkfarben.
Grundsätzlich kannst du dir schonmal ne Eventstruktur inne Whileschleife packen, und den TO von außen auf deinen jetzigen Wartewert legen. Dann hast du schonmal das gleiche wie jetzt, kannst aber den TO-Durchlauf jederzeit durch irgendwelche Knöpfe unterbrechen und irgendwas anderes machen, bis hin zum Stopp des ganzen.
Die Blinkerei der LEDs ist ja nur eine Farbzuweisung - musst du mal unter den Eigenschaften -> Farben der LEDs nachsehen und bisschen in der Hilfe "rumgoogeln"
Und denk an die Schieberegisterinitialisierung - das ist mit das wichtigste - sonst blinkt irgendwann nur noch alles
Mit der Stopfunktion wäre ich auch vorsichtig, da damit auch alle aufrufenden VIs gestoppt werden, falls du das VI mal als Sub-VI verwenden willst, is das dann blöd.
Gruß, Marko
Hab mir grad dein Kompakt-VI mal angesehen. Das sieht schonmal intelligenter aus
In den einzelnen Cases müsstest du jetzt die Farbzuweisungen für die Blinkerei einbauen - und die Eventstruktur würd ich in jedem Fall auch einbauen. Wenn du weiter LV programmieren willst, kommst du um die sowieso nicht herum.
Danke Markus, das mit der While funktioniert schonmal wunderbar mit der Ereignisstruktur werde ich mich dann wohl mal beschäftigen müssen.
Das mit der Initialisierung und dem Blinking verstehe ich leider noch garnicht. Sind das Snippets und es liegt an meinem Firefox, oder sind das nur Screenshots? Also die Initialisierung des Schieberegisters habe ich verstanden. Ich meine das, was du da zeigst Jens.
Das sind nur Screenshots, keine Snippets. Kann man am "fehlenden" Snippet-Rahmen erkennen.
Initialisierung: Naja, das Blinken soll doch sicher bei einem Neustart zurückgesetzt werden. Also erst einmal alle Blink-Eigenschaften aller Elemente des Cluster auf False.
Gruß, Jens
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!
Also ich weiß nurnicht, was dieses Controls an dem Blinking macht und wo ich das finde. Und muss ich dann z.B. in Case 12 Alle 11 LED Eigenschaftsknoten Blinking Packen und auf true stellen? Und in 11 dann 10 und so weiter? Oder geht das anders?
(08.01.2013 19:35 )Zufall schrieb: Also ich weiß nurnicht, was dieses Controls an dem Blinking macht und wo ich das finde.
Worauf willst du jetzt hinaus?
(08.01.2013 19:35 )Zufall schrieb: Und muss ich dann z.B. in Case 12 Alle 11 LED Eigenschaftsknoten Blinking Packen und auf true stellen? Und in 11 dann 10 und so weiter? Oder geht das anders?
Nein, THINK DATAFLOW, du hast doch schon im Schritt "Probe2" der StateMachine die Eigenschaft "Blinking" von Led1 auf True gesetzt. Die bleibt solange erhalten, bis du sie wieder auf False setzt. Im Schritt "Probe12" musst du also nur Led11 auf Blinkend stellen. Und im Fertig-Schritt dann LED12.
Könnte man natürlich auch durch Auswahl des korrekten Arrays-Elements aus dem Eigenschaftsknoten "Controls[]" machen, den ich im Init-Case eingefügt habe.
Gruß, Jens
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!