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 

Parallele Schleifen



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!

03.02.2008, 20:36
Beitrag #1

Mati Offline
LVF-Grünschnabel
*


Beiträge: 47
Registriert seit: Sep 2007

8.2
-
kA

30000
Deutschland
Parallele Schleifen
Hallo zusammen,

ich habe ein Vi erstellt, die drei While Schleifen beinhaltet:
1. die erste erfasst kontinuierlich ein analoges Signal und speichert die daten
2. Steuert einen analogen Ausgang Manuell
3. nimmt Aufnahmen auf und speichert sie

Die drei Schleifen laufen unabhängig voneinander und kommunizieren
nicht miteinander.

Die erste Frage ist, ob man in Labiew das wie oben machen kann oder soll ich
das anders verfahren?
Die zweite Frage ist, ob ich für diese Anwendung die Wait-Funktionen in der
3. Schleifen einbauen soll oder ist das nicht wichtig für meine Anwendung?

zu einer besseren Übersicht habe ich hier ein Screenshort-Beispiel angehängt:




Gruss Mati
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.02.2008, 20:56
Beitrag #2

Mati Offline
LVF-Grünschnabel
*


Beiträge: 47
Registriert seit: Sep 2007

8.2
-
kA

30000
Deutschland
Parallele Schleifen
Sorry hier ist der Screenshots.

Gruss Mati


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.02.2008, 22:51
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Parallele Schleifen
' schrieb:Die erste Frage ist, ob man in Labiew das wie oben machen kann oder soll ich das anders verfahren?
Das kann man wie oben machen - ist sogar von Vorteil. Auch dann, wenn die Schleifen mittels Queues und/oder Melder miteinander kommunizieren.

Zitat:Die zweite Frage ist, ob ich für diese Anwendung die Wait-Funktionen in der 3. Schleifen einbauen soll oder ist das nicht wichtig für meine Anwendung?
Prinzipiell musst man in jeder While-Schleife eine Verzögerungszeit haben. Entweder implizit durch Elemente wie z.B. "Warten auf Melder", etc oder explizit durch diese diversen Warte-VIs. Ohne Wartezeit gibt es diverse Probleme. Die Wartezeit ist nicht applikationsabhängig, sondern systembedingt.

Ob dieses parallele Verfahren für deine Applikation optimal ist und ob du explizite Warte-VIs brauchst, kann ich nicht entscheiden. Was du machen willst weis ich ja nicht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2008, 00:51
Beitrag #4

Mati Offline
LVF-Grünschnabel
*


Beiträge: 47
Registriert seit: Sep 2007

8.2
-
kA

30000
Deutschland
Parallele Schleifen
Hallo,

Zitat:Prinzipiell musst man in jeder While-Schleife eine Verzögerungszeit haben. Entweder implizit durch Elemente wie z.B. "Warten auf Melder", etc oder explizit durch diese diversen Warte-VIs. Ohne Wartezeit gibt es diverse Probleme. Die Wartezeit ist nicht applikationsabhängig, sondern systembedingt.

wenn das so ist würde ich das auch machen. Im fall von Wait-Funktion wie in der ersten Schleife, wenn ich die auch im zweiten und dritten einbaue, welche Zeiten soll ich nehmen, damit es keine Probleme gibt?
Diese Wait-Funktionen habe ich noch ganz genau durchgblickt.

Gruss Mati
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2008, 08:51 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2008 09:20 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Parallele Schleifen
' schrieb:Die zweite Frage ist, ob ich für diese Anwendung die Wait-Funktionen in der
3. Schleifen einbauen soll oder ist das nicht wichtig für meine Anwendung?
Auf gar keinen Fall! Es ist zwar richtig, was Ichselbst sagt, daß grundsätzlich jede Schleife eine Verzögerungszeit haben soll. Nur muß man dann gleich dazu sagen, daß das VI "DAQmx Read", welches in der Schleife zu Datenerfassung vorhanden ist, diese Wartefunktion bereits leistet und mit weiteren Wartefunktionen nur Unheil angerichtet werden kann.
Es funktioniert so:
Es blockiert so lange, bis die Anzahl der Daten, die das VI auslesen soll, tatsächlich im Buffer ist.
Wenn es auf "Alle Daten aus dem Buffer lesen" konfiguriert ist, dann wartet es solange, bis wenigstens ein Datenpunkt im Buffer vorhanden ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2008, 09:07 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2008 09:18 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Parallele Schleifen
' schrieb:wenn das so ist würde ich das auch machen. Im fall von Wait-Funktion wie in der ersten Schleife, wenn ich die auch im zweiten und dritten einbaue, welche Zeiten soll ich nehmen, damit es keine Probleme gibt?
Diese Wait-Funktionen habe ich noch ganz genau durchgblickt.
Das hängt von Deiner Applikation ab, da gibt es keine feste Regel. Wenn Du den Windows-Task-Manager aufrufst, dann kannst Du sehen, daß ohne Wartezeit die CPU-Belastung 100% beträgt, aber bereits bei 1ms ist sie weit von diesen 100% entfernt.
Wenn Du z.B. Bedienelemente in der Schleife hast, dann sollten sie so oft abgefragt werden, daß keine lästige Verzögerung der Reaktion zu beobachten ist. Mit 100ms ist man da schon gut bedient. Ebenso beim Update von Anzeigen oder Diagrammen. Eine Updaterate von mehr als 10Hz nützt dem Beobachter nichts, also ist auch hier 100ms angemessen.
Die Wait-Funktion muß man sich als zeitliches "Oder" vorstellen:
In er Schleife hat man die Wait-Funktion und irgendwelchen Code. Wenn die Abarbeitungszeit des Codes länger ist als das Wait, dann ist es so also ob das Wait gar nicht vorhanden wäre. Wenn die Abarbeitungszeit kleiner ist, dann wartet die Wait-Funktion bis zur voreingestellten Zeit. Es dominiert immer die längere der beiden Zeiten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2008, 22:25
Beitrag #7

Mati Offline
LVF-Grünschnabel
*


Beiträge: 47
Registriert seit: Sep 2007

8.2
-
kA

30000
Deutschland
Parallele Schleifen
Hallo zusammen,

jetzt ein ganz andere Frage. wie kann ich die 3 while Schleifen statt bisher
jede einzelne mit dem zugehörigen Stopbutton, alle drei Schleifen auf einmal mit nur einem
Stopbutton beende.

Gruss Mati
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.02.2008, 13:31 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2008 13:34 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Parallele Schleifen
' schrieb:wie kann ich die 3 while Schleifen statt bisher
jede einzelne mit dem zugehörigen Stopbutton, alle drei Schleifen auf einmal mit nur einem
Stopbutton beende.
Mit lokalen Variable des Stop-Bottons, wobei es da ein kleines Problem gibt: Er darf dann nicht das Schaltverhalten Latch haben, geht also beim Lesen nicht von selbst in die false-Stellung zurück. Das muß vom Programm besorgt werden.
Es gibt da drei Möglichkeiten:
1) False setzen nur bei Programmstart
2) False setzen nur bei Beenden des Programms
3) False-setzten bei Programmstart und beim Beenden, wie abgebildet.
Ich selbst bevorzuge Methode 1. Der Schönheitsfehler daran ist, daß der Knopf nach Beenden das Programms gedrückt bleibt.
Das ist bei Methode 2 nicht der Fall, dafür hat man den unerwünschten Effekt, daß, wenn jemand vor dem Start des Programms schon am Knopf herumspielt, dieser schon gedrückt sein kann und das Programm dann ungewollt sofort beendet wird.
Methode drei (Bild) ist natürlich vollkommen, aber es ist mir zu viel Aufwand.
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2008, 00:08
Beitrag #9

Mati Offline
LVF-Grünschnabel
*


Beiträge: 47
Registriert seit: Sep 2007

8.2
-
kA

30000
Deutschland
Parallele Schleifen
Hallo,

würde ich gerne nach der dritten versuchen. Die Sequenz im Diagramm ist eine Flache Sequenzstruktur ?

Zitat:Methode drei (Bild) ist natürlich vollkommen, aber es ist mir zu viel Aufwand.

Was meinst mit viel Aufwand ?

Danke im voraus

Mati
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2008, 08:13 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2008 08:14 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Parallele Schleifen
' schrieb:würde ich gerne nach der dritten versuchen. Die Sequenz im Diagramm ist eine Flache Sequenzstruktur ?
Ja, natürlich. Aber die muß nicht in jedem Fall sein, die Reihenfolge der Abarbeitung läßt sich z,B, auch durch den Datenfluß erzwingen.
Falsch ist es auf jeden Fall, bei einer der drei Schleifen eine False-Konstante nach außen zu führen und dort die lokale Schaltervariable anzuschließen. Dann wird womöglich der Schalter zurückgesetzt zu einem zu frühen Zeitpunkt, wenn die anderen beiden Schleifen noch gar nicht beendet sind.

Zitat:Was meinst mit viel Aufwand ?
Da hast recht, es ist kein Aufwand weiter, aber es geht auch um nichts. Wenn z.B. das VI Haupt-VI ist und als exe kompiliert ist, dann wird sowieso mit den Standardwerten begonnen. Man müßte dann den Schalter nicht zu Beginn auf false stellen.
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
  Parallele Frequenz-Datenerfassung mit NI-9401 ArneS 5 4.010 18.02.2021 09:41
Letzter Beitrag: GerdW
  2 Parallele While-Schleifen mit unterschiedlichen Timer beenden Tomate27 3 2.939 18.08.2020 13:29
Letzter Beitrag: GerdW
  parallele Ausführung von for-loops stsc 5 5.003 24.07.2019 15:12
Letzter Beitrag: stsc
  Verschachtelte und parallele Schleifen gleichzeitig beenden Rayid 6 7.217 14.11.2016 08:24
Letzter Beitrag: GerdW
  Parallele Ausführung mehrerer Sub-Vis Anna1988 21 13.849 20.07.2015 11:51
Letzter Beitrag: Anna1988
  Parallele Schleifen beliebig stoppen/neustarten buettnerstefan 3 4.955 03.06.2015 15:23
Letzter Beitrag: buettnerstefan

Gehe zu: