LabVIEWForum.de - Frage zu Message Queues, Queue Cluster mehrfach aufschlüsseln

LabVIEWForum.de

Normale Version: Frage zu Message Queues, Queue Cluster mehrfach aufschlüsseln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich habe mehrere Message Queues in einem Cluster zusammengefasst und
übertrage damit meine Nachrichten in unterschiedliche VIs.
[attachment=51568]
Normalerweise nutze ich die obere Variante in meinen VIs, allerdings wird es
langsam unübersichtlich durch die ganzen zusätzlichen Leitungen der Queues.
Ich würde es gerne auf die untere Variante umstellen und in jedem Case
einen eigenen "Cluster aufschlüsseln" nutzen.

Hast das irgendwelche Nachteile? Speichernutzung? etc. oder tauchen andere Probleme auf?

Danke für Euche Infos
Stefan
Sehe da auf den ersten Blick kein Problem, sind ja alles Queue-Referenzen...

Gruß, Jens
Hallo Stefan,

Nachteile:
- du benötigst in jedem Case ein eigenes UnbundleByName und damit mehr Platz im BD
- In jeder Iteration muss der Cluster erneut aufgedröselt werden (wobei ich nicht weiß, wie clever der Compiler mittlerweile ist).

Aber: Wenn du in deiner oberen Variante die Namen im Unbundle so umsortierst, das "Konfiguration" ganz unten steht, kannst du wieder gerade Drähte verwenden!
@Jens und @Gerd
Danke für die schnelle Antwort. Um die geraden Linien geht es mir weniger,
weil ich nie "frei Hand" arbeite sondern immer die Funktion "Diagramm aufräumen" nutze.
Frei Hand ist es mit Sicherheit platzsparender, aber dazu bin ich zu faul :-)

Es ist richtig, dass ich zwar in jedem Case immer wieder ein neues "Cluster aufschlüsseln"
benötige, aber in den Cases nutze ich meistens 3 oder 4 Queues und irgendwann
verschwindet der gesamt Inhalt vom Case sowieso in ein SubVI und dann geht nur
der Queue-Cluster (und einige Schieberegister) in das SubVI statt Queues.

Danke Euch
Gruß
Stefan
Mir scheint, dass das was Du da machst der "Eigenbau eines talentierten Amateurs" ist. Jedenfalls ist es nicht kompatibel mit der "reinen QSM-Lehre". (Googln QSM = queue driven state machine).
Diese lautet: Nur ein Queue einrichten, die Daten aus den unterschiedlichen Quellen (und in unterschiedlichen Formaten) für die Übertragung in der Queue nach "Variant" konvertieren.
Hier Beispiel, wie die Daten (Hier: Fomat "Text") wieder in ihr ursprüngliches Format rückkonvertiert und im zuständigen Case behandelt werden. (Das Clusterelement "Descriptor" ist nicht unbedingt notwendig, die anderen beiden Clusterelemente schon):
[attachment=51572]
Hi Lucki,
QSM ist mir natürlich bekannt. Als Vorlage für meine aktuelle Arbeit diente mir das Beispielprojekt
"Kontinuiertliche Messung und Protokollierung" von LabVIEW selber. Der Datentyp mit denen
ich die Queues erstellt habe, ist in der Tat ein Cluster aus String (Descriptor) und einem Variant.
In dem Beispiel, welches ich als Grundlage genommen habe, und bei mir, gibt es kein EventType
und der Descriptor ist die Bezeichnung des Case. Funktioniert bei mir jedenfalls einwandfrei und
ohne Probleme.
Stefan

PS: Das Beipsiel "Kontinuierliche Messung und Protokollierung" passte am besten zu meinem Anwendungsprofil.
Das Beispiel scheint in LV2014 nicht mehr dabei zu sein. Vielleicht schämt sich NI inzwischen wegen dieses Beispiels Big Grin
(10.12.2014 20:11 )Lucki schrieb: [ -> ]Das Beispiel scheint in LV2014 nicht mehr dabei zu sein. Vielleicht schämt sich NI inzwischen wegen dieses Beispiels Big Grin
doch, ist noch dabei.
Den Button "Projekt erstellen" direkt anklicken oder im Menü Datei "Projekt erstellen" und
dann solltest Du auch das Beispielprojekt "Kontinuierliche Messung und Protokollierung" finden.
Danke, habs gefunden.
Gruß Ludwig
Referenz-URLs