![]() |
UDP Verbindung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: UDP Verbindung (/Thread-UDP-Verbindung) |
UDP Verbindung - JRO - 27.05.2008 07:47 Hi zusammen, Ich hab folgendes Problem: Ich soll ein Kundengerät über Ethernet ansteuern bzw. im ersten Schritt die Sensordaten die es liefert einsammeln und ablegen. Das Gerät wird direkt mit Ethernetkabel an die Netzwerkkarte angeschlossen. Meinem Rechner habe ich eine feste IP vergeben, da das Gerät an diese Adresse an Port 8011 sendet. In LabVIEW habe ich das UDP Receiver VI zu meinen Zwecken umgebaut. Ich habe den entsprechenden Port eingestellt, bekome aber keine Daten. Die Daten kommen aber auf jeden Fall an meinem PC an! Das habe ich mit dem IPSniffer Wireshark überprüft. Der Block UDP Open funktioniert (er bringt beim Aufrufen zumindest keinen Fehler) Der Block UDP read bringt immer einen Timeout, weil er anscheind keine Daten bekommt. Was seltsam ist, da das Gerät stetig die Sensordatem mit 100Mbit sendet. Also irgendwann müsste irgendetwas ankommen. Die Telegrammgrösse habe ich auch anhand von Wireshark festgestellt und entsprechend auf 1391byte gestellt. Gibt es iregendeine Einstellung die einen LabVIEW Zugriff auf einen UDP Port verhindern könnte? Die Windows Firewall ist inaktiv! Das habe ich bereits geprüft. Über Hilfe wäre ich sehr Dankbar!!! Bin seit Tagen am verzweifeln...denn die Aufgabe an sich ist ja recht simpel aber aus irgendeinem Grund funzts nicht. ![]() Gruß JRO P.S. Ich nutze LabVIEW Version 8.5.1 UDP Verbindung - assh - 27.05.2008 09:36 Hi, wenn ich mir das VI anschaue fallen mir schon einige Dinge auf. 1) Deine While-Schleife läuft auf Rechnergeschwindigkeit… besser „wait for“ mit 100ms einfügen… Timing ist bei TCP und UDP von Bedeutung. 2) Timeout am UDP-read dann auf 200ms, somit erreichst Du, dass dort kein Fehler durch Timeout entsteht. 3) In der LV-Hilfe steht weiterhin, dass die Anzahl der zu lesenden Bytes nicht 548 überschreiten sollte, sonst Windows-Fehler. 4) Weiterhin würde ich VI-Server Einstellung überprüfen. 5) Wenn das Kundengerät über Ethernet verfügt sollte es auch eine eigene IP-Adresse besitzen? Diese gegebenenfalls mit einbinden. 6) Warum keine TCP-Verbindung? Gruß assh UDP Verbindung - JRO - 04.06.2008 14:31 Hi, Danke für die Hilfe. Vor allem der Tip mit den VI Server Einstellungen. Inzwischen läuft das ganze. Ich hab nur noch nicht genau eingrenzen können an was es lag ![]() Hab unter den Windows Firewire Einstellungen nochmel explizit den Port freigegeben. Genauso unter den VI-Server Einstellungen...ich schäzte daran lag es dann auch. Und siehe da...kaum macht mans richtig, funktionierts! ![]() Konnte es nur bisher nicht weiter testen welche Einstellung das ganze blockiert hat, da ein Kollege gerade Tests mit dem Gerät macht. Zu den anderen Anmerkungen: UDP verwenden wir weil wir möglichst schnelle Datenübertragung brauchen und es nicht soooo wichtig ist wenn mal ein Packet verloren geht. TCP ist zwar sicherer aber einfach langsamer. Das mit dem Timing hatte ich eigentlich immer implementiert, hatte es nur dummerweise in der Version die ich hochgeladen hatte versuchsweise gelöscht ![]() Und die Anzahl der zu lesenden Bytes ist nicht auf 548 beschränkt, habs nochmal nachgelesen. Hab hier mal die Endversion angehängt. Vielleicht kanns mal jemand brauchen. LabVIEW Version: 8.5.1 |