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 

Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi



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!

20.05.2010, 17:44
Beitrag #34

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi
Hallo IchSelbst.

Heute habe ich meine zweite Jiggle Methode M2 fertiggestellt.
Ich habe zwei Ansaetze versucht und beide basieren mehr oder weniger auf deinem und Luckis Vorschlag.

Diese Methode funktioniert so, dass man der Pumpe ein Targetvolumen vorgeben muss und sie solange pumpt, bis dieses erreicht wird.

1. Ansatz:

Date: Autofill_M2_LV2009_v1.vi

Ich habe im Timeout-Case der Eventstruktur eine while-Schleife hinzugefuegt, die solange laeuft, bis der Status T* or Target reached erreicht wird. Dann bricht sie ab und es beginnt der naechste Timeout-Case. Die Timeout-Zeit ist bei 0 sec, weil nicht gewartet werden muss.

Problem: Drueckt man in der Main.vi den "Stop-inner" Button, dann dauert es bis diese SubVi abgebrochen wird und zwar solange bis das Target reached erreicht wird, also die innerste while-Schleife in dieser SubVi beendet wird.

Ist das die richtige Erklaerung? Zweitens, haette man diese while-Schleife um die Status.vi sofort toeten koennen?


2. Ansatz:
Datei: Autofill_M2_LV2009_v2.vi

Da ich nicht wusste, wie man diese ganz innere while-Schleife toetet, habe ich mich an einer zweiten Sub.vi namens Autofill_M2_LV2009_v2.vi gebaut.

Die Status.vi habe ich rausgeworfen. Dies Loesung ist aehnlich zu Jiggle M1-Methode. Es wird alles ueber die Timeout-Zeit geregelt und es gibt im Timeout keine weitere while-Schleife. Deswegen kann man diese Abfolge sofort unterbrechen.

Ich habe zur Timeout-Zeit noch 20ms addiert. Dann hat der Motor noch genug extra Zeit zu schalten, dass eine Bewwegung zu Ende ist und die naechste anfaengt. Lasse ich diese Extra-Zeit weg, macht der Schrittmotor Probleme. Hat diesbzgl jemand Erfahrung, wenn man einen Schrittmotor zu schnell die Richtung umkehren laesst?

Diese Version funktioniert und deswegen nutze ich sie jetzt.

Was noch nicht 100% funktioniert, ist die Ausgaben 0.5 cycle und Time t von den sub.vis in die mains zu holen, so dass die immer aktuell dargestellt werden Bisher ist es so, dass die entsprechenden Anzeigen in der Main.vi nur upgedated werden, wenn die Sub.vi beendet ist.

Gruesse
blue

Lv09_img2


Angehängte Datei(en)
Sonstige .zip  Aktuelle_Version.zip (Größe: 115,19 KB / Downloads: 196)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi - bluesaturn - 20.05.2010 17:44

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eigenversuch einer ComboBox - Optimierung und Kritik gesucht TpunktN 2 2.456 30.05.2023 07:56
Letzter Beitrag: TpunktN
  HTML-Datei - Name einer PNG bzw. JPG ändern Dsans 1 2.144 09.02.2023 04:42
Letzter Beitrag: Martin.Henz
Music FGEN Erzeugung eines Signalverlaufs anhand einer Mathematischen Funktion DavidStefan 11 7.452 29.05.2021 07:03
Letzter Beitrag: GerdW
  MainVI sucht nach gelöschter .lvlib Bibliothek kwz 5 4.102 04.05.2021 16:11
Letzter Beitrag: kwz
  Mehrere Spitzenwerte aus einer Messreihe erkennen niklas2016 8 5.366 15.02.2021 14:27
Letzter Beitrag: BNT
  benutzerdefinierte Error Codes in einer zentralen Datei im Projekt verwalten t.hipp 6 6.720 26.10.2020 16:08
Letzter Beitrag: Jessel_de

Gehe zu: