Gibt eine Referenz auf eine Queue aus.

Diese Referenz kann für weitere Queue-Funktionen verwendet werden.


icon

Ein-/Ausgänge

  • ci32.png Maximale Queue-Größe (-1, unbegrenzt)

    Maximale Queue-Größe ist die benutzerdefinierte Höchstanzahl an Elementen, die die Queue aufnehmen kann.

    Die Standardeinstellung lautet –1, das heißt, die Anzahl ist unbegrenzt.

    Wenn eine Queue die Maximale Queue-Größe erreicht, wartet die Funktion Element einfügen oder Element am Anfang einfügen so lange, bis die Funktion Element aus Queue entfernen oder Queue leeren Elemente aus der Queue entfernt hat.

    Besteht bereits eine gleichnamige Queue, wird dieser Eingang ignoriert und die Größe der vorhandenen Queue übernommen.

    Hinweis (Real-Time Module) Mit Maximale Queue-Größe wird bei der Ausführung auf einem Real-Time-System in der Queue der benötigte Platz für die angegebene Anzahl von Elementen in der Queue von Skalaren reserviert.
    Hinweis Bei anderen Systemen als Real-Time wird mit Maximale Queue-Größe nur die Anzahl der Elemente in der Queue beschränkt, aber kein Speicherplatz für den Inhalt der Queue reserviert. Um Speicher für eine bestimmte Anzahl an Elementen zu reservieren, fügen Sie entsprechend viele Elemente in die Queue ein und leeren Sie die Queue anschließend. Der dadurch gewonnene Arbeitsspeicher wird für die weitere Nutzung der Queue frei gehalten. Weitere Informationen zur Speicherreservierung für Queues finden Sie unter Details.
  • cstr.png Name (unbenannt)

    Name ist der Name der Queue, die angefordert oder erstellt werden soll.

    Die Standardeinstellung ist ein leerer String, das heißt, die Queue hat keinen Namen.
  • cfxdt.png Elementdatentyp

    Elementdatentyp ist der Datentyp, den die Queue aufnehmen soll.

    Dieser Eingang ist mit jedem Datentyp kompatibel.
  • cbool.png Erzeugen, wenn nicht gefunden? (T)

    Erzeugen, wenn nicht gefunden? gibt an, ob eine neue Queue erstellt werden soll, wenn die unter Name angegebene nicht existiert.

    Bei TRUE (Standardeinstellung) wird in diesem Fall eine Queue erstellt.
  • cerrcodeclst.png Fehler (Eingang, kein Fehler)

    Fehler (Eingang) beschreibt Fehlerbedingungen, die vor der Ausführung des Knotens auftreten. An Fehler (Eingang) werden Standardfehlerdaten übergeben.

  • iqueuern.png Queue (Ausgang)

    Queue (Ausgang) ist die Referenz auf eine bestehende oder mit dieser Funktion erstellte Queue.

  • ibool.png Neu erzeugt?

    Neu erzeugt? ist TRUE, wenn die Funktion eine neue Queue erstellt hat.

  • ierrcodeclst.png Fehler (Ausgang)

    Fehler (Ausgang) enthält Angaben zum Fehler. Dieser Ausgang ist ein Standardausgang zur Fehlerausgabe.

  • Das Einfügen und Entnehmen größenveränderlicher Datentypen (z. B. Pfade, Strings oder Arrays) hat keinen Einfluss auf den von der Queue beanspruchten Arbeitsspeicher. Queues übertragen Daten nur, ohne Kopien davon anzulegen. Wenn Sie Bedenken haben, dass die auf den Eintritt in eine volle Queue wartenden Elemente zu Jitter in einer deterministischen Schleife führen, sollten Sie die Funktion Element einfügen (verlustbehaftet) verwenden.

    Mit benannten Queues werden Daten zwischen zwei Abschnitten eines Blockdiagramms oder zwischen zwei VIs ausgetauscht. Wenn Sie Name nicht verbinden, erzeugt die Funktion eine neue Queue-Referenz ohne Namen. Wenn ein Name angegeben ist, sucht das VI nach der entsprechenden Queue und gibt eine neue Referenz auf die Queue aus. Wenn keine Queue gefunden wurde und Erzeugen, wenn nicht gefunden? TRUE ist, erstellt die Funktion eine neue Referenz auf eine benannte Queue.

    Wenn die Funktion "Queue anfordern" innerhalb einer Schleife eine Referenz auf eine benannte Queue ausgibt, erzeugt LabVIEW bei jeder Iteration der Schleife eine neue Referenz auf die Queue. Wenn "Queue anfordern" in einer engen Schleife (tight loop) verwendet wird, erhöht sich die Speicherauslastung kontinuierlich, da für jede neue Referenz weitere vier Bytes hinzukommen. Diese Bytes werden automatisch beim Stopp des VIs freigegeben. Bei Anwendungen mit langen Ausführungszeiten scheint LabVIEW aber Speicher zu verlieren, da die Auslastung kontinuierlich steigt. Daher sollte nach jeder Iteration in der Schleife die Funktion Queue freigeben aufgerufen werden, damit nicht unnötig viel Speicher belegt wird.

    Diese Funktion kann die Fehlercodes 1, 2, 1094, 1100, 1491 und 1548 ausgeben.

    Hinweis

    Mit Queues kann nicht zwischen Anwendungsinstanzen kommuniziert werden. Bei dem Versuch, mit einer benannten Queue in einer anderen Anwendungsinstanz zu kommunizieren, wird kein Fehler ausgegeben, aber möglicherweise kommt es zu falschen Ergebnissen.

    Wenn eine Queue-Referenz in einer Anwendungsinstanz verwendet wird, kann diese Referenz nicht in einer anderen Anwendungsinstanz verwendet werden. Wenn Sie versuchen, eine Queue-Referenz auf eine andere Anwendungsinstanz zu übertragen, gibt LabVIEW den Fehler 1491 aus.

    Beispiele

    Die folgenden Beispieldateien sind in LabVIEW enthalten.

    • labview\examples\Synchronization\Queue\Queue Overflow and Underflow.vi