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 per Konstante/Bedienelement anfordern



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!

10.01.2012, 22:24
Beitrag #1

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
queue per Konstante/Bedienelement anfordern
Hi,

ich hab eine queued state machine mit 2 consumer schleifen. Beide consumer haben eine eigene queue.

Jetzt möchte ich, dass consumer 1 in die queue von consumer 2 schreiben kann. Das hab ich bisher so gelöst, dass consumer 1 per "queue anfordern"-funktion, die queue von consumer 2 holt. Jetzt hab ich aber gesehen, dass man das auch etwas "schöner" lösen kann, indem man einfach eine queue konstante verwendet (rechtsklick auf das queue kabel -> konstante erstellen).

Wenn ich diese konstante jetzt statt dem queue anfordern verwende, funktionierts allerdings nicht mehr. Es kommt der Fehler:
Zitat:Fehler 1 ist bei Element einfügen in XXX.vi aufgetreten

Mögliche Ursachen:

LabVIEW: Ein Ausgabeparameter ist ungültig. Wenn am Eingang beispielsweise ein Pfad anliegt, kann dieser Pfad Zeichen wie ? oder @ enthalten, die im betreffenden Betriebssystem nicht zulässig sind.


Aber warum klappt es mit der queue-konstante in diesem Beispiel:
http://expressionflow.com/wp-content/upl...xample.zip
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.01.2012, 23:59
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 per Konstante/Bedienelement anfordern

Akzeptierte Lösung

Weil in diesem Bsp im "Init-Case 2" die Refnum der Queue in einem Schieberegister gespeichert wird:
   
Über den Rechtsklick->Create Constant wird dir "nur" der Datentyp für eine Queue-Referenz erzeugt. Aber die Queue-Refnum selber wird immer erst zur Laufzeit durch den ersten Aufruf von "Obtain Queue" erzeugt.

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
11.01.2012, 13:22
Beitrag #3

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: queue per Konstante/Bedienelement anfordern

Akzeptierte Lösung

Du kannst die Queue doch jeweils einfach in die Schleifen reinführen...oder z.B. auch in eine lokale/globale/functional global Variable speichern und dort wieder auslesen, wo du in die Queue schreiben willst! Der Queue-Draht ist ja nur sowas wie ein Zeiger bzw. eine Referenz auf einen Datenspeicher...du brauchst dir also keine Sorgen machen, dass du hier Probleme kriegst weil du den LV-Data flow nicht einhälst!

Du musst also nicht unbedingt jedes Mal "Obtain Queue" ausführen...wobei das auch egal ist. Wenn im Speicher schon eine Queue "Q1" existiert, dann wird diese bei weiteren Obtain-Operationen einfach wieder verwendet und nicht jedes mal neu erzeugt!

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2012, 15:44 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2012 22:23 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: queue per Konstante/Bedienelement anfordern

Akzeptierte Lösung

Das ist in diesem Zusammenhang vielleicht auch interessant:
Als Queue-Referenz könnte man ja eine globale Variable verwenden. Viel genialer ist aber eine "beim ersten Aufruf sich selbst initialisierende FGV", wie ich das in einem Lehrbuch-Beispiel (Johnson-Jennings) gefunden habe:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2012, 20:03
Beitrag #5

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
RE: queue per Konstante/Bedienelement anfordern
Super, vielen Dank euch allen. Das diese Queue-konstanten im init gefüllt werden, hab ich übersehen. Das ist mir dann doch zu unübersichtlich. Mein init-case ist eh schon überfüllt.

Hab es jetzt mal wie vorgeschlagen in eine FGV gepackt (siehe Anhang). Funktioniert prächtig.


Angehängte Datei(en) Thumbnail(s)
   
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
  Ausgelesener Wert als konstante in SubVi mikadm 12 7.365 02.09.2020 10:27
Letzter Beitrag: mikadm
  Negative Werte - Zeitstempel Konstante im XML-String BlackEagle 2 5.762 18.12.2019 15:30
Letzter Beitrag: BlackEagle
  Objektname einer Enum Konstante ändern mprocket 7 6.878 30.01.2018 12:23
Letzter Beitrag: mprocket
  Wie auf abgearbeitete Queue warten mez15 11 8.075 28.09.2017 13:02
Letzter Beitrag: TR61
  Datum Uhrzeit Queue DeleteAll 8 5.679 24.03.2017 15:47
Letzter Beitrag: GerdW
  Speicher-Allokation vs. Konstante Trinitatis 3 4.436 19.12.2016 14:24
Letzter Beitrag: GerdW

Gehe zu: