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 

Parallelschleifen



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.2017, 16:11
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Parallelschleifen
(20.05.2017 10:48 )Thermoman schrieb:  Wie kriege ich das am besten hin.
Im Allgemeinen gilt: Am schönsten wären natürlich drei selbständige Prozesse.

Jeder Prozess ist ein VI, das selbständig läuft, also parallel zu allem anderen. Von solchen VIs kann man (theoretisch) beliebig viele laufen lassen. So ein VI ist sowas ähnliches wie eine Klasse: hat private (also gekapselte) Variablen. Hat Methoden, die aufgerufen werden können. Hat Eigenschaften, die abgerufen werden können. - Und hat selbstverständlich eine Schnittstelle. Gesteuert wird das VI mittels einer (als Zahl: 1, nicht 2, 3 oder 4, sondern nur 1) Queue, deren Daten in einem Cluster liegen: Mindestens ein Enumerator, der die Methode festlegt, die mal ausgeführt werden soll, sowie weitere an sich beliebige Daten. Das VI stellt per Melder, von denen es mehrere geben darf, Daten für den Rest der Wert zur Verfügung. Wenn, und das ist dann die meiste Zeit, gerade mal kein neuer Befehl per Queue reinkommt, führt das VI einen "Standard"-Case aus. Apropos Case: Das VI enthält "eigentlich nur" eine While-Schleife (sonst könnte das VI nicht permanent laufen), in der sich eine Case-Sequenz befinden. Außerhalb der Case-Sequenz wird die Queue abgefragt. Der "Standard"-Case ist dann z.B. der Case, in dem Daten gesampelt werden. Die erwähnten Methoden sind im übrigen die restlichen Cases ...

Eine ganz wichtige Sache:
So ein VI hat "kein Frontpanel". Das ist LabVIEW-technisch gesehen zwar falsch, Ablauf-technisch gesehen aber von Vorteil: Dieses VI zeigt keinerlei Daten selbst an. Zum Anzeigen ist nämlich keine Zeit. Anzeigen soll irgendwer, der die anzuzeigenden Daten ja per Melder abgreifen kann.

Zitat:Die drei Module tauschen natürlich auch Daten aus und die Meßschleifen triggern auch Ereignisse in der Bilderfassungsschleife.
Und hier liegt dann die Kunst.
* Bei zeitlich unkritischen Abläufen reicht es aus, Daten per Queue zu verschicken. Meine Klassen lesen alle 50ms (manche alle 10ms) die Queue aus und reagieren entsprechend.
* Bei kritischen Abläufen muss man dann doch wieder überlegen, ob man nicht doch zwei eigentlich unabhängige Abläufe in einem VI zusammenfasst. Normalerweise würde ich sagen: Pro Task eine Klasse. Außer z.B. wenn Zähler gesampelt werden sollen oder wenn "synchron" gesampelt werden muss.
* Eine weitere Möglichkeit, Ereignisse zu triggern, ist, (weitere) synchronisierende Elemente zu verwenden: z.B. Occurence-Funktionen. Die sind aber sehr speziell, ich selbst verwendet sie praktisch 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
Antwort schreiben 


Nachrichten in diesem Thema
Parallelschleifen - Thermoman - 18.05.2017, 15:45
RE: Parallelschleifen - A.Berndsen - 18.05.2017, 15:50
RE: Parallelschleifen - GerdW - 18.05.2017, 15:52
RE: Parallelschleifen - Thermoman - 18.05.2017, 16:10
RE: Parallelschleifen - IchSelbst - 18.05.2017, 16:14
RE: Parallelschleifen - Thermoman - 20.05.2017, 10:48
RE: Parallelschleifen - IchSelbst - 20.05.2017 16:11
RE: Parallelschleifen - Thermoman - 21.05.2017, 10:54
RE: Parallelschleifen - IchSelbst - 21.05.2017, 12:08
RE: Parallelschleifen - Thermoman - 22.05.2017, 07:34
RE: Parallelschleifen - IchSelbst - 23.05.2017, 08:14
RE: Parallelschleifen - A.Berndsen - 23.05.2017, 08:45

Gehe zu: