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!
22.12.2010, 12:09 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2010 12:22 von applefan.)
Hallo an alle,
ich habe da ein kleines Problem. Ich habe ein Vi welches acht Magnetventile ansteuert und ein paar selbstgemachte Symbole (Ursprung war immer eine LED) an und ausschaltet. Wenn ich jetzt während des Programmablaufes (weil ich zum Beispiel optisch einen Fehler entdecke) das Programm stoppe, stoppt zwar der Ablauf des Vis aber die Ventile und LEDs die zum Zeitpunkt des stoppens an waren bleiben an. Ich möchte aber das wann immer ich die Stop-Taste drücke alles wieder in den Ursprungszustand zurück versetzt wird, d.h. alle Ventile und LEDs aus. Kann mir da jemand helfen?
Gruß Thomas
Anzeige
22.12.2010, 12:42 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2010 12:48 von NWOmason.)
Leider kann ich das Blockdiagramm nicht öffnen. Da kriege ich immer einen schweren internen Fehler in "Image2.cpp". Häng doch mal kurz nen Screenshot vom Blockdiagramm an.
Grundsätzlich kannst du doch einfach ein kleines VI schreiben, dass dir nach dem drücken der Stop-Taste alle Leds usw wieder auf false setzt? Bezeihungsweise auch ans Programmende setzen.
Beste Grüße,
NWO
@Edit:
So ungefähr in diese Richtung:
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
Hallo NWO,
erstmal danke werde deine Methode gleich testen. Habe ein Vi angehängt ohne Hardwareverknüpfung und ein .jpeg vom Blockdiagramm, vielleicht schaust du ja noch einmal rein
Gruß Thomas
Hallo NWO,
hab es gerade probiert. Die LEDs gehen bei deiner Version aus, aber die Schalter bleiben an, d.h. für mich das die Ventile die angeschaltet sind auch angeschaltet bleiben. Ich möchte aber eben den gesamten Ablauf wieder in den START-Zustand haben - also alles aus.
Gruß Thomas
22.12.2010, 13:27 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2010 13:29 von NWOmason.)
ich würde einfach den Stop-Schalter an die Schleife durchverdrahten. Hinter der Schleife einen Case einfügen, der bei True alle Werte wieder auf False setzt.
Habe mein Beispiel mal kurz an die Gegebenheiten angepasst.
Beste grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
folgendes Vorgehen würde ich empfehlen:
- Standardwerte für Schalter etc. definieren
- Zum Start des VIs die Methode Reinitialize to Default Value (gibt's auch fürs gesamte VI) aufrufen.
Am Anfang deshalb, weil man dann im weiteren Programmablauf von definierten Zuständen ausgehen kann. Wenns beim debuggen schön aussehen soll, kannst Du den Block ja nochmal einfügen...
Hi NWO,
das funktioniert leider nur in der Simulation. Ich habe mich nach deinem ersten Vorschlag natürlich selbst ein weiter probiert. Ich habe eine Sequenz genommen und meinen Cluster aus der Whileschleife als lokale Variable in eine zweite Sequenz getan, Konstante angehängt und alle LEDs und Ventile auf False gesetzt. So weit so gut, es wird beim Stop alles abgeschaltet aber leider werden die Ventile (Hardware am NI9472) nicht ausgeschaltet.
Gruß Thomas
Hast du auch alle DOs im per DAQmx wieder auf False gesetzt? Das musst du schon selber machen, wenn du einen Task stoppst, dann bleibt ein Ausgang in seinem letzten Zustand.
Grundprinzip, alles was nicht automatisch geht, muss man selber machen.
Deinen Cluster kannst du auch per InvokeNode am Ende auf Default-Werte setzen:
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!
Natürlich müssen die digitalen Ausgänge auch noch ausgeschalten werden. Ich habe mich jetzt mal nur auf die Anzeigeelemente bezogen. Sorry, da war ich vielleicht auch etwas ungenau. Schreib doch einfach einmalig ein False an jeden Ausgang beim Beenden.
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!