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 

Dieses Thema hat akzeptierte Lösungen:

Queues VI übergreifend verwenden



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!

05.03.2015, 11:26 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2015 11:56 von Lucki.)
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Queues VI übergreifend verwenden

Akzeptierte Lösung

Zunächst mal: Ein ganz dickes Lob für das so wunderschön aufgeräumte VI. Solange ich hier im Forum dabei bin, habe ich so etwas Schönes kaum gesehen, die Regel ist eher säuisches Aussehen bis zum Geht-nicht-mehr.
Unterschied Lokale/globale Variablen einerseits und Queues/Melder andererseits:
Beim Datenaustausch mit lokalen/Globalen Variablen gibt es keine Synchronisation zwischen Erzeuger und Verbraucher. Beim Lesen weiß der Verbraucher nicht, ob der Wert bereits gelesen wurde oder nicht. Und umgekehrt, der Erzeuger weiß nicht, ob der letzte Wert beim Verbraucher schon abgeholt wurde oder nicht.
Dieses Manko wird überwunden mit Queues und Meldern.

Unterschied Queue und Melder:
Grob gesagt: Bei Queues kann es mehrere Erzeuger geben, aber immer nur einen Verbraucher.
Bei Meldern kann es mehrere Verbraucher geben. (Ob auch mehr als 1 Erzeuger möglich ist, weiß ich jetzt nicht genau)

Queues mit mehreren Erzeugern: Natürlich hat dann der Verbraucher ein Interesse daran zu wissen, von woher das Element kommt. Deshalb ist das Queueelement in der Regel ein Cluster mit den Elementen "Name" (Adresse) und "Wert" . Da wiederum der "Wert" je nach Herkunft unterschiedliches Format haben kann, nimmt man als Format meistens den Typ "Variant".

Die Einführung einer Wartefunkion in Deiner Verbraucherschleife ist hier für Studienzwecke natürlich begründbar. In realen Anwendungen wird man das aber nicht machen. Man könnte hier auch das studieren: Wenn der Verbrauch langsamer ist als die Erzeugung, dann ist eines Tages die Queue voll, und dann gibt es zwei Möglichkeiten: Entweder man macht es wie Du, dann bremst ab da die Verbraucherschleife die Erzeugerschleife aus. Es gehen aber keine Daten verloren. Oder man verwendet das VI "Element verlustbehaftet aus der Queue entfernen". Dann wird die Erzeugerschleife nicht ausgebremt, es gehen aber Daten verloren.

Ich habe mal das Haupt Vi ein ganz klein wenig verschlimmbessert und hänge es hier an.
Gruß Ludwig


14.0 .vi  Queues vs Local Variables.vi (Größe: 52,77 KB / Downloads: 712)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Queues VI übergreifend verwenden - mdu - 05.03.2015, 08:37
RE: Queues VI übergreifend verwenden - Lucki - 05.03.2015 11:26

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabVIEW Queues Schrankwand 3 4.345 14.12.2023 13:41
Letzter Beitrag: Schrankwand
  Bool Werte über Queues maxil 52 24.651 12.07.2019 14:00
Letzter Beitrag: GerdW
  Queues? flizzer82 14 30.611 23.05.2017 19:58
Letzter Beitrag: jg
  Queues mit FGVs in Polymorphen VI Andre_A 7 7.333 17.05.2014 07:39
Letzter Beitrag: cb
  If Schleife und queues Danjo 4 7.210 27.05.2013 15:14
Letzter Beitrag: jg
  Dynamisch Queues erstellen Kiesch 9 11.271 24.06.2012 21:46
Letzter Beitrag: Kiesch

Gehe zu: