INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben



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!

24.07.2012, 13:36
Beitrag #1

dat_jernot Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2012

8.5
2012
DE



Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Hallihallo,

ich bin neu in diesem Forum als Mitglied, wobei mir, mittels Google, schon unzählige Forenbeiträge weitergeholfen haben!
Nun habe ich ein Problem, was, vielleicht ganz einfach ist, aber ich bin nicht mehr in der Lage über die Forensuche etwas dazu zu finden.
Ich habe ein Programm erstellt, welches zwei Schrittmotoren steuert und gleichzeitig Daten aus einem Spektrometer ausliest. Nun ist es so, dass ich möchte, dass das Spektrometer angesprochen wird, wenn die Motoren losfahren.

Ich habe das anhängende Programm zwar hier jetzt extrem abgespeckt, aber die relevanten Teile drin gelassen.
Wenn ich den Button "Motoren starten" drücke, bekomme ich (normalerweise) eine Antwort bei Motorstart und die Motoren laufen los. Beim Drücken von "Motoren stoppen" halten die Motoren an und ich bekomme eine Antwort bei Motorstop.
Nun kommt das Spektrometer in der For-Schleife hinzu. (For-Schleife wegen der bestimmten Anzahl der Durchläufe). Um einen zeitgleichen Start von Motor und Spektrometer zu ermöglichen, habe ich die For-Schleife in eine Case-Struktur gepackt und den Auswahlanschluss mit dem Schalter für den Motorstart verbunden. Die Schalter stehen auf "Latch beim Drücken"
Dann taucht mein Problem auf. Es funktioniert insofern, als das meine Motoren starten und die For-Schleife in gewünschter Anzahl durchlaufen wird. Allerdings kann ich in dieser Zeit die Motoren nicht mehr stoppen.
Kann mir jemand beantworten, wie ich das unterbinden kann? Bzw. mir einen anderen Vorschlag machen, wie ich die Synchronisation des Starts und die gewünschte Anzahl an Durchläufen hinbekomme.
Gern beantworte ich natürlich jede Frage, falls mein Pamphlet hier oder mein VI selbige aufwerfen ;-)

Vielen Dank!


Angehängte Datei(en)
8.5 .vi  forum.vi (Größe: 263,85 KB / Downloads: 189)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 14:21
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Du könntest eine "Conditional For-Schleife" verwenden und die mit Deinem Motorstop-Button beenden.
Ich würde die Struktur aber an sich schon etwas anders machen.
Evtl. recht Dir eine State-Machine, ansonsten könntest Du auch ein "Producer-Consumer-Model" verwenden.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 14:24
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Hallo dat,

neben den (guten) Vorschlägen von Markus gibt es auch die Quick&Dirty-Lösung: parallele Schleifen unter Verwendung lokaler Variablen...

Du musst nur dein Button-Handling etwa ändern, da du dann nur "Switch"-MechanicalAction für die Buttons verwenden kannst.


Angehängte Datei(en)
8.5 .vi  forum.vi (Größe: 268,63 KB / Downloads: 183)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 15:11
Beitrag #4

tobiasf5 Offline
LabVIEW-Tutor
*


Beiträge: 40
Registriert seit: Nov 2005

Aktuell 2009; 2012. 2013 steht in den Startlöchern
2005
DE_EN

30419
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Stimmt,

oder du nimmst funktional globale Variablen, dann kannst du das Schaltverhalten lassen.

Gruß
Tobias

Also ich würd das mit LabVIEW machen......
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2012 15:24 von dat_jernot.)
Beitrag #5

dat_jernot Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2012

8.5
2012
DE



RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Vielen Dank ersteinmal :-)

Ich habe nun zuersteinmal die Quick & Dirty Lösung aufgerufen. Leider hat das zwar im Wesentlich funktioniert, aber wieder einige andere Probleme aufgerufen.
Wenn der "Motor starten" Schalter nicht nur latched, kommt der Startbefehl eben mehrmals bei der Motorsteuerung an, was dazu führt, dass die nicht mehr ganz das macht, was sie soll.
Schade eigentlich :-(

Wenn ich die conditional for Schleife verwende, kann ich das zwar super unterbrechen, aber meinen zeitgleichen Start der Motoren kriege ich dann nicht hin bzw. wenn ich alles so lasse und zusätzlich die conditional for Schleife verwende, habe ich das gleiche Problem wie vorher, dass ich warten muss, bis die Schleife durch ist und dann wieder erst Eingaben (wie auch den Stopp-Button) angenommen werden.

Das mit dem Producer-Consumer-Modell und die State Machine übersteigen noch mein derzeitiges LV-Wissen. Bin ja noch ein Neuling ;-) Erstmal schauen, was ich dazu noch finde.
Was meintest Du denn mit der Struktur generell anders?

Grüße

Edit schrieb:Ich probier das jetzt dann doch nochmal Quick & Dirty mit den funktional globalen Variablen :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 15:27
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Hallo dat,

deshalb habe ich geschrieben:
Zitat:Du musst nur dein Button-Handling etwa ändern, da du dann nur "Switch"-MechanicalAction für die Buttons verwenden kannst.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 15:36
Beitrag #7

dat_jernot Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2012

8.5
2012
DE



RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
(24.07.2012 15:27 )GerdW schrieb:  Hallo dat,

deshalb habe ich geschrieben:
Zitat:Du musst nur dein Button-Handling etwa ändern, da du dann nur "Switch"-MechanicalAction für die Buttons verwenden kannst.

Hab ich ja auch gemacht - um festzustellen, dass meine Motoren dann eben leider nicht mehr vernünftig laufen. Gäbe es noch eine Möglichkeit, diese Case-Struktur "Motoren starten" nur einmal auszuführen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 16:46
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Hallo dat,

mit dem Satz meinte ich: Du musst den Button auch programmatisch wieder zurücksetzen!
Bei Latched-Operationen geschieht dies automatisch, bei Switched eben nicht...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.08.2012, 08:48
Beitrag #9

dat_jernot Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2012

8.5
2012
DE



RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
(24.07.2012 16:46 )GerdW schrieb:  Hallo dat,

mit dem Satz meinte ich: Du musst den Button auch programmatisch wieder zurücksetzen!
Bei Latched-Operationen geschieht dies automatisch, bei Switched eben nicht...
Nun wirds klarer ;-)
Leider hab ich das nicht hinbekommen :-(
Wie kann ich einen Button programmatisch wieder zurücksetzen, ohne ihn auf Latch umzustellen? In eine Sequenz verpacken und dann als Methode nen ReInit?

Daaanke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.08.2012, 08:49
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Laufende For-Schleife in Case-Struktur verhindert Annahme weiterer Eingaben
Hallo dat,

eine lokale Variable statt einer Methode tut's auch...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 5.065 02.02.2021 15:05
Letzter Beitrag: Lucki
  Case Struktur 2 Schleifendurchläufe verzögert True setzen aber sofort auf False bachatero18 4 4.612 07.11.2020 14:08
Letzter Beitrag: Martin.Henz
  CAN Nachrichten in Array verarbeiten und aus Case Struktur weiterverarbeiten Tomate27 4 3.765 17.07.2020 13:30
Letzter Beitrag: Tomate27
  Steuerung, Case-Struktur pixie_2 4 3.323 16.04.2020 14:30
Letzter Beitrag: GerdW
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 6.855 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Case-Struktur führt True und False aus (Ereignisschleife) HIMI 11 7.786 24.08.2017 13:04
Letzter Beitrag: HIMI

Gehe zu: