LabVIEWForum.de - UDP Daten empfangen - Initialiserung und Beenden der Applikation

LabVIEWForum.de

Normale Version: UDP Daten empfangen - Initialiserung und Beenden der Applikation
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin neu hier im Forum. Hab letztes Jahr schon mal bissle was mit Labview gemacht. Jetzt möchte ich ein neues Projekt wagen.
Und zwar hab ich Daten die ich über UDP empfangen möchte und anschließend ausgeben will. Eigentlich ein recht simples Tool.
Ich möchte das aber ein bisschen auftrennen. Und zwar sollen zuerst die Ip-Adresse und der Port des Senders angegeben werden und das mit einer Taste bestätigt werden und anschließend sollen auf Daten gewartet werden (in einer while Schleife). Wenn ich dann auf einen Stop/Beenden Knopf drücke soll die While Schleife beendet werden und anschließend noch die UDP Verbindung wieder geschlossen werden und dann die Labview anwendung ebenfalls gestoppt werden.

Ich hab schonmal einen ersten Versuch gewagt. Hier kann ich auch Daten vom Programm Packet Sender empfangen. Der Beenden-Knopf hat aber Null Wirkung. Und ich muss eben den Port und die IP Adresse (aktuell "localhost") zuvor eingeben. Während dem Ablauf hat das natürlich keine Wirkung mehr.

Kann mir jemand helfen über welche Struktur ich das am besten lösen kann?
Bzw hat jemand ein kurzes Beispiel-Programm oder so?

EDIT: Ein anderes Problem habe ich, dass er den Port nicht immer sauber schließt weshalb ich beim nächsten mal ausführen einen Fehler (60) erhalte, das der Port eben nicht verfügbar ist.


Vielen Dank schon mal.

Grüße
Tobi
Starte den NI Example Finder und schau dir das Bsp "Simple UDP.lvproj" an, da ist alles drin, was zu zum Einstieg brauchst.

Kritik an deiner Umsetzung:
  • Wieso Timeout -1, wenn nichts kommt, dann kannst du deine Schleife noch nicht einmal sauber beenden?
  • Wozu dieser doofe Schaltmodus an deinem Button? IMHO braucht man in der Realität nur: Switch when Pressed für Schalter, Latch when Released für Taster, und Switch until Released, wenn man einmal eines Tast-Modus programmiert.
  • Und falls ein Fehler aus deiner Loop herauskommt, dann wird UDP-Close nicht durchgeführt.

Gruß, Jens
Hey,

also das mit dem Beispiel hab ich mal ausprobiert. Das funktioniert auch einigermaßen. Ich hab jetzt versucht mit Sequenzen zu arbeiten, sodass ich zu aller erst den Port angebe, anschließend mit "Initialisierung" weiterspringe und dann eben auf Daten warte. Aber so richtig funktioniert es nicht. Vorallem kann ich mit dem Schalter unten das ganze nicht sauber beenden. Wenn ich den als Schalter setze, so das wenn gedrückt wird er in dem zustand bleibt müsste doch die While Schleifen jeweils beendet werden?

Und eine andere Frage: Wie kann ich gewährleisten, das mein Port wieder geschlossen wird. Ich muss mein Tool immer mit "Ausführung abbrechen" (roter Button oben) beenden. Dann weiß ich aber nicht ob mein Port auch wieder freigegeben ist.


Suche dringend Hilfe.



Grüße
Tobi
THINK Dataflow!

Jetzt hast du beim UDP-Lesen Timeout keinen Wert angeschlossen. Der Default-Wert (s. Hilfe!) beträgt somit 25 Sekunden. Nachdem du deinen Beenden Schalter betätigt hast, musst du somit im Extrem-Fall 50 Sekunden warten, bis die Schleife beendet wird.

Ähnlich bei deiner Ini-Schleife: Hier hast du einen Unendlich-Timeout programmiert. Sehr ungünstig.

Und dass "Latch when Released" das optimale Schaltverhalten für Taster (und das brauchst du hier) ist, darauf hatte ich auch schon hingewiesen.

Gruß, Jens

P.S.: Zwecks Dataflow ist die Sequenz überflüssig:
[attachment=57320]
Also ich hab jetzt nochmal das ganze erweitert bzw. angepasst. Soweit funktioniert der Programmabaluf jetzt.
Das mit den Schaltern habe ich angepasst. Die Timeoutzeiten sind so in Ordnung. Wenn ich das Tool mit Beenden stope, dann hört er auch direkt auf.
Die Sequenz hab ich auch entfernt. Vielen Dank für den Hinweis.


Ich hab jetzt das Problem das ich die Daten welche ich empfangen will, nicht weiß wie ich diese als Zahlen dargstellt bekomme. Ich hab das in einem anderen Beitrag beschrieben:

https://www.labviewforum.de/Thread-Array...aufbrechen

Vielleicht kannst du mir dies bezüglich weiterhelfen. Ich erhalte eben ein Array mit vier Elementen in denen jeweils eine Float Zahl drinne steht. Und ich muss jetzt diese Zahlen einzeln auflisten können bzw. auf einzelne Plots kriegen. Hab in dem anderen Beitrag auch zwei Bilder erstellt wie ich momentan die Daten empfange.



Grüße
Tobi
Referenz-URLs