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 

UDP Daten empfangen - Initialiserung und Beenden der Applikation



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.02.2017, 18:31 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2017 19:04 von Tobiii.)
Beitrag #1

Tobiii Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Feb 2017

LV2016
2016
DE


Deutschland
UDP Daten empfangen - Initialiserung und Beenden der Applikation
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


Angehängte Datei(en)
16.0 .vi  UDP_Daten.vi (Größe: 11,93 KB / Downloads: 255)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.02.2017, 20:01
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: UDP Daten empfangen - Initialiserung und Beenden der Applikation
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

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.02.2017, 12:31
Beitrag #3

Tobiii Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Feb 2017

LV2016
2016
DE


Deutschland
RE: UDP Daten empfangen - Initialiserung und Beenden der Applikation
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


Angehängte Datei(en)
16.0 .vi  Versuch mit Sequenzen.vi (Größe: 24,21 KB / Downloads: 246)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2017, 17:06
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: UDP Daten empfangen - Initialiserung und Beenden der Applikation
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:

16.0 .vi  Versuch mit Sequenzen.vi (Größe: 23,61 KB / Downloads: 228)

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.02.2017, 17:47
Beitrag #5

Tobiii Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Feb 2017

LV2016
2016
DE


Deutschland
RE: UDP Daten empfangen - Initialiserung und Beenden der Applikation
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CancaseXL mit Labview senden/empfangen 8 byte Botschaft luna 7 6.285 05.07.2021 16:47
Letzter Beitrag: luna
  CAN Message mittels XNet senden/empfangen Franz94 5 6.770 21.03.2016 19:35
Letzter Beitrag: Franz94
  Befehle einzeln Senden/Empfangen TCP/IP DeBa 9 12.324 11.11.2014 12:55
Letzter Beitrag: Y-P
  TCP IP Daten empfangen und auswerten Galle 1 5.546 22.08.2014 06:43
Letzter Beitrag: rolfk
  Daten schicken/empfangen micki09 1 4.296 10.09.2013 10:21
Letzter Beitrag: jg
  Über TCP/IP XML Daten empfangen killio 2 5.507 03.07.2013 21:23
Letzter Beitrag: Holy

Gehe zu: