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 

Queue verwendung in komplexer Producer/Consumer Abhängigkeit



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.04.2017, 16:12 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2017 16:13 von Ksanto.)
Beitrag #1

Ksanto Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2017

16.0f2
2006
DE_EN

55234
Deutschland
Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Hallo zusammen,

meine suche im WWW und im Forum sowie direkt bei NI und deren Foren hat leider mal wieder keine Antwort geliefert.

Ich habe eine komplexe Abhängigkeit von Producer und Consumer Schleifen, die ich gerne mit Array im Queue ihre daten unabhängig voneinander austauschen lassen will.
Nun stehe ich aber vor der Frage ob ich besser ein Queue für alles (Daten Input und Daten Output), zumindest einen Queue für jeweils Daten Input und eine für Daten Output oder gar doch einen Queue für jeden Datenaustausch von zwei schleifen untereinander verwenden sollte.


Angehängt habe ich mal ein (was-auch-immer) Diagramm, das den Ablauf zeigen soll: Zahlen oben links geben die Reihenfolge an, p(roducer)Q zu c(onsumer)Q unten links und rechts geben den weg des Datenaustausches an.
Der Ablauf fängt bei 0 an und loopt nach 3 zu 1, solange bis in einer der zweier schleifen die Abbruchbedingung erreicht wurde. cQ wird bei 0 im ersten durchgang natürlich ignoriert (oder anderweitig mit Startwerten befüllt)


Wie immer schonmal vielen Dank im Vorraus für alle die sich einen Kopf machen und ihre Erfahrungswerte mitteilen.


Viele Grüße
Ksanto


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 16:30
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Vielleicht hilft dir folgende Aussage:

Eine Queue ist ideal für eine N-zu-1 Abhängigkeit, soll heißen, viele dürfen schreiben (=Producer), aber nur 1 sollte bzw. darf lesen (=Consumer). Ansonsten wird es schwierig. Von dieser Warte her ist dein Ansatz extrem ungünstig, da du an mehreren Stellen aus derselben Queue auslesen willst. So müsstest du dir jedes Element erst einmal vorab anschauen und prüfen, ob das auch für die entsprechende Stelle ist, und erst danach aus der Queue entnehmen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 17:50 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2017 19:33 von Ksanto.)
Beitrag #3

Ksanto Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2017

16.0f2
2006
DE_EN

55234
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Hi Jens,

naja, da ich ein 1D-Array in das Queue schrieben würde wobei jeder Schleife ein Index zugewiesen wird wäre, müsste ich nicht suchen/nachschauen, da ich weiß wann, an welcher stelle ich den Wert finde. Ich würde das Array also nur aktualisieren.

Aber du würdest mir also zu variante zwei raten, was das wenn man die Schleifen von 0 bis 6 durchnummeriert:


Queue1: pQ3, pQ4, pQ5 pQ6 zu cQ0 (Alle Regelungen zu Steuerung/Wertequelle)

Queue2: pQ2, pQ3, pQ4, pQ5 pQ6 zu cQ1 (Alle Regelungen und Messung zu Auswertung)

Queue3: pQ0, pQ2 zu cQ3 (Steuerung/Wertequelle und Messung zu Regelung Luft Temp)

Queue4: pQ0, pQ2 zu cQ4 (Steuerung/Wertequelle und Messung zu Regelung Boden Temp)

Queue5: pQ0, pQ2 zu cQ5 (Steuerung/Wertequelle und Messung zu Regelung Sonne Temp)

Queue6: pQ0, pQ2 zu cQ6 (Steuerung/Wertequelle und Messung zu Regelung Humidety)




Also zum Beispiel ein Queue für alle Reglungen zur Steuerung/Wertequelle, aber 4 von Steuerung/Wertequelle zu den einzelnen Reglungen?

Update: 03.04.2017 18:58 - Ergänzung in der Erklärung.
03.04.2017 20:33 - Korrektur der Anzahl von Queues


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 18:54
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Hallo ksanto,

da würde ich doch glatt eine Verwaltungsinstanz erstellen, die alle Botschaften an die korrekten Adressen verteilt. Jeder Absender muss in der Botschaft angeben, wohin die Botschaft soll.
Andererseits könnte ich mir auch vorstellen, für diese Aufgabe mir mal die Arbeit ans Bein binden, um das ActorFramework zu verstehen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 19:05
Beitrag #5

Ksanto Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2017

16.0f2
2006
DE_EN

55234
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Hi Gerd,

Das sind doch mal zwei Begriffe die mich weiter bringen, warum ist es nur immer so schwer Lösungsansätze zu Problemen zu finden die man mit beschränktem Wissensstand über diese garnichts finden kann. Angel_not Ich werde mich da mal einlesen.

Wichtig dabei ist das weiterhin alle schleifen unabhängig voneinander laufen und die Producer schleifen nicht ausgebremst werden. Mals sehne also.


Danke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 19:06
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Zitat:naja, da ich ein 1D-Array in das Queue schrieben würde wobei jeder Schleife ein Index zugewiesen wird wäre, müsste ich nicht suchen/nachschauen, da ich weiß wann, an welcher stelle ich den Wert finde. Ich würde das Array also nur aktualisieren.
Bahn was willst du damit sagen? Willst du ein 1D-Array of Queue erzeugen? Willst du ein 1D-Array als Wert in eine Queue schreiben? Aber dann steht da 1 Element drin, und für wen ist es?

Zitat:Aber du würdest mir also zu variante zwei raten, was das wenn man die Schleifen von 0 bis 6 durchnummeriert:

Im Großen und Ganzen, ja: Prinzipiell langt es aber, eine Queue pro Consumer-Loop anzulegen. Der Datentyp kann dabei auch kompliziert sein, so dass man Daten von unterschiedlichen Producer-Quellen verschicken kann. Gerne wird hierbei ein Cluster aus Enum & Variant verwendet, denn in den Variant kannst du jeden Datentyp reinschieben.

Ob es sinnvoll ist, 2 Queues für dieselbe Empfänger-Schleife zu verwenden, das musst du selber entscheiden. Es mag hilfreich sein, aber das hängt von weiteren Details ab - das kann man nicht pauschal mit Ja oder Nein beantworten.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.04.2017, 19:29
Beitrag #7

Ksanto Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2017

16.0f2
2006
DE_EN

55234
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Zitat: was willst du damit sagen? Willst du ein 1D-Array of Queue erzeugen? Willst du ein 1D-Array als Wert in eine Queue schreiben? Aber dann steht da 1 Element drin, und für wen ist es?

Das mit dem 1D-Array in dem Queue war mein Ansatz einer (wie ich jetzt weiß) Verwaltungsinstanz (Zitat von IchSelbst aus einem Kommentar zu "Mehrere serielle Schnittstellen auslesen" :
Zitat: Jede der 20 VIs schreibst an seine Position egel zu welcher Zeit die gemessenen Daten rein. Und zwar immer an die selbe Stelle
). Ich hätte also den Queue auf ein Element beschränkt (das 1D-Array) und dieses immer nur aktualisiert. Aber das habe ich aus gründen schon wieder verworfen.


Zitat: Im Großen und Ganzen, ja: Prinzipiell langt es aber, eine Queue pro Consumer-Loop anzulegen.

Genau das habe ich machen/zeigen wollen, dann komme ich auf 6 stück (danke für den indirekten Hinweis ich sah den Wald vor lauter Queues nicht, ich korrigier das mal).


Ich werde mir jedenfalls jetzt erstmal das Actor Framework an und validier dann ob mir das was bringt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 20:00
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
(03.04.2017 19:29 )Ksanto schrieb:  
Zitat: Im Großen und Ganzen, ja: Prinzipiell langt es aber, eine Queue pro Consumer-Loop anzulegen.

Genau das habe ich machen/zeigen wollen, dann komme ich auf 6 stück (danke für den indirekten Hinweis ich sah den Wald vor lauter Queues nicht, ich korrigier das mal).
Schleife 0 bis 6, macht mind. 7 Queues!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2017, 20:14 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2017 20:42 von Ksanto.)
Beitrag #9

Ksanto Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2017

16.0f2
2006
DE_EN

55234
Deutschland
RE: Queue verwendung in komplexer Producer/Consumer Abhängigkeit
Zitat: Schleife 0 bis 6, macht mind. 7 Queues!
Messung erhält keine Daten. (ist nur Producer) Tongue

Guck dir nochmal meine (aktualisierte) zusammengefasste Auflistung an.
Damit wäre alles abgedeckt was hin und wieder zurück muss.

Bearbeitet 03.04.2017 21:20: typo
03.04.2017 21:21: Ergänzung
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
  Verwendung Schieberegister de_la_questa 2 3.304 04.01.2021 17:26
Letzter Beitrag: GerdW
  Fehlerausgabe bei Verwendung von 4 Modulen bachatero18 8 6.308 04.03.2019 09:58
Letzter Beitrag: rolfk
  Wie auf abgearbeitete Queue warten mez15 11 8.074 28.09.2017 13:02
Letzter Beitrag: TR61
  Verwendung von Sub-VIs finden THL 2 4.250 01.06.2017 12:49
Letzter Beitrag: THL
  Datum Uhrzeit Queue DeleteAll 8 5.674 24.03.2017 15:47
Letzter Beitrag: GerdW
  Probleme bei mehrmaliger Verwendung eines Sub-VI in Schleife BodenseeBike 2 3.770 01.03.2017 17:59
Letzter Beitrag: BodenseeBike

Gehe zu: