LabVIEWForum.de
Innere while-Schleife durch einen counter abbrechen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Innere while-Schleife durch einen counter abbrechen (/Thread-Innere-while-Schleife-durch-einen-counter-abbrechen)



Innere while-Schleife durch einen counter abbrechen - nekromongas - 12.03.2012 13:58

Hallo liebe Gemeinde,
ich programmiere( habe nur sehr wenig LV-Erfahrung) momentan eine Schrittmotor-Steuerung mit einer RS232-Schnittstelle in LV 8.6 .
Die Motoren sollen Koordinaten in Schritten und kontinuierlich anfahren.
Zum Programm:
Ich habe eine äußere while-Schleife um das Programm zu bedienen welches durch einen STOP-Button abgebrochen wird.
Inder inneren while-Schleife habe ich je eine case-Struktur für das kontinuierliche Fahren und für das Fahren in Schritten. Für das Schritt-Fahren ist ein Rückwärtszähler eingebaut.
Problem:
Innere Schleife wird nicht abgebrochen da der Zähler immer wieder neu gesetzt wird. Die Schrittbewegung wird immer weiter ausgeführt.
Also kann ich biem Schrittfahren nicht bei einer bestimmten Koordinate stoppen.

Kann vielleicht jemand einen sinnvollen Tip geben, wie ich dieses Problem lösen kann.

im Anhang habe ich mal das Programm bereitgestellt um das ganzen etwas zu verdeutlichen.


RE: Innere while-Schleife durch einen counter abbrechen - eb - 12.03.2012 14:35

Hallo,

normalerweise wird der Stop-Anschluss der inneren Loop mit den versch. Abbruchbedingungen gefüttert: So zum Beispiel auch ein "manuelles Abbrechen" per Button, oder zum Beispiel durch einen (in der inneren Schleife) aufgetrenen Fehler.

Zu deinem Programm noch ein paar Hinweise:
- Ist es notwendig in jedem Schleifendurchlauf der inneren Loop die VISA-Ressource zu öffnen, zu bearbeiten und zu schließen?? Evetll. reicht es in der inneren Loop nur den bearbeiten-Case zu machen und die Ressource+Fehlerdraht durchzuschleifen
- einige lokale Variablen könnten eingespart werden
- redundanter Code könnte in ein SubVI
- Blockdiagramm könnte aufgeräumt werden. (Drähte "geradeziehen" und Code etwas kompakter anordnen)

Gruß