LabVIEWForum.de
TCP mit asynchronem VI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: TCP mit asynchronem VI (/Thread-TCP-mit-asynchronem-VI)

Seiten: 1 2


TCP mit asynchronem VI - 83Daniel - 18.06.2019 08:19

Ich hab da ein Problem mit dem Starten einer TCP Verbindung wenn ich sie in einem asynchronen VI starte.


Ich starte asynchron ein VI und gebe diesem IP, Port und ein Queue mit. In dem VI wird die Verbindung aufgebaut, und die Referenz über das Queue weitergeben. Wenn ich anschließend an einer anderen Stelle die Verbindungsreferenz aus dem Queue entnehme und etwas über die Verbindung senden will erhalte ich den LabVIEW Fehler: (Hex 0x1) Ungültiger Eingangsparameter…
Die Referenz ist nicht 0 / NULL.



Kennt jemand dieses Verhalten oder könnte es mir erklären?


RE: TCP mit asynchronem VI - Freddy - 19.06.2019 08:06

Hallo Daniel,
ich vermute, die Übergabe oder das Auslesen der Queue ist falsch.
Kannst Du die VIs hier anhängen?

Gruß
Freddy


RE: TCP mit asynchronem VI - 83Daniel - 19.06.2019 08:34

Ich habe zum testen mal das Beispiel TCP Named Service umgebaut.


RE: TCP mit asynchronem VI - Freddy - 21.06.2019 08:59

Hallo Daniel,
eine Queue funktioniert nur in einer While Schleife(in der Client.vi).
Sie muss auch irgendwo einen Aufruf bekommen aktiv zu werden.

Starte ein neues Projekt und wähle als Vorlage ein Queue Projekt. Da kannst Du sehen wie eine Queue funktioniert.

Gruß
Freddy
Noch ein kleiner Tip.


RE: TCP mit asynchronem VI - 83Daniel - 24.06.2019 07:11

Danke schon mal,
"eine Queue funktioniert nur in einer While Schleife" das verstehe ich jetzt nicht... (in der NI_LVConfig.lvlib wird das ja auch nicht verwendet) und selbst wenn ich das ganze in eine While Schleife packe verhält sich das ganze immer noch genauso :-(
Wenn ich den Asynchronen Aufruf durch das VI selbst ersetzte, funktioniert es ja.


RE: TCP mit asynchronem VI - Freddy - 24.06.2019 08:26

Wie der Name schon sagt sind Queues Sammler von Aufgaben.
Damit die Stelle, die für diese Aufgaben zuständig ist, die Aufgaben auch abarbeiten kann, muss sie ständig prüfen ob Aufgaben anstehen. (das macht die While- Schleife)
In der While Schleife können durch Einsatz einer IF Anweisung die verschiedenen Aufgaben definiert werden.
Mit Aufgaben gefüllt werden kann die Queue an jeder beliebigen Stelle im Blockdiagramm.
Abgearbeitet wird nach dem Prinzip First In First Out.

So funktioniert grob beschrieben eine Queue.

Zur genauen Beschreibung gibt es die Hilfe und als Beispiel kann man das Beispielprojekt sich von LabView anlegen lassen.

Gruß
Freddy


RE: TCP mit asynchronem VI - IchSelbst - 24.06.2019 09:45

(24.06.2019 07:11 )83Daniel schrieb:  "eine Queue funktioniert nur in einer While Schleife" das verstehe ich jetzt nicht
Da es sich hier (siehe Freddy 09:26) um die Erklärungen der Funktionalität "Queue" handelt, sollte es nicht "While-Schleife" heißen, sondern "sich wiederholender Ablauf" (das ist nämlich die Abstrahierung von While-Schleife).

Die Queue-Abfrage muss nicht offensichtlich in einer While-Schleife liegen. Sie kann ohne weiteres auch im siebenten SubVI liegen. Wichtig ist nur, dass die Queue-Funktionen (Schreiben und Lesen) im beschriebenen Anwendungsfall zyklisch abgearbeitet werden. Und dieses zyklische Abarbeiten kann durch eine While-Schleife realisiert werden. Wo die While-Schleife in der Programmhierarchie steht, ist dabei irrelevant.


RE: TCP mit asynchronem VI - 83Daniel - 24.06.2019 10:48

Danke, dann hab ich doch richtig verstanden wie ne Queue funktioniert.

Ich verstehe aber immer noch nicht, warum es mit dem Asynchronen Aufruf nicht klappt. Hat dazu niemand eine Idee?


RE: TCP mit asynchronem VI - IchSelbst - 24.06.2019 11:46

(24.06.2019 10:48 )83Daniel schrieb:  Ich verstehe aber immer noch nicht, warum es mit dem Asynchronen Aufruf nicht klappt. Hat dazu niemand eine Idee?
Leider hab ich, vermutlich wie einige andere auch, kein 2019. Mit 2015 wäre die Change höhen, dass sich weitere zum Helfen finden.


RE: TCP mit asynchronem VI - 83Daniel - 24.06.2019 12:12

Hab es mal für LV 2015 gespeichert