Serielle Kommunikation VISA - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: Serielle Kommunikation VISA (/Thread-Serielle-Kommunikation-VISA) |
Serielle Kommunikation VISA - NoUse666 - 26.07.2011 14:47 Hallo, ich bin neu im Forum, habe aber schon öfter mal Lösungsvorschläge hier gefunden, deswegen hoffe ich kann mir jemand mit meinem aktuellen Problem helfen: ich rufe über serielle Schnitstellen (mittels Com-to-Ethernet-Adapter) Daten ab, die kontinuierlich gesendet werden. Es wird alle 5 Sekunden der Wert abgerufen und der Cache des Com-Ports geflushed. Das funktioniert einige Stunden auch problemlos, nur werden dann keine neuen Werte mehr ausgelesen. Im Anhang ist ein Bild meines VIs, das die serielle Kommunikation managed, dieses VI wird 3 mal gestartet, da ich 3 Ports auslesen muss. Ausserdem werden die Daten in eine Queue geschrieben, die das Hauptprogramm dann weiterverarbeitet. Weiss vielleicht jemand Rat? oder hat Verbesserungsvorschläge für das Vi? Danke und Gruß, NoUse666 RE: Serielle Kommunikation VISA - GerdW - 26.07.2011 19:19 Hallo "Zahl des Tieres", - wozu ständig flushen, "Bytes at port" abfragen und ein eigenes Loopintervall vorgeben? So kann, muss es aber nicht funktionieren... - wenn du Daten schon per Queue weiterreichst, kann dein Queue-Reader das Parsen der empfangenen Bytes übernehmen - ebenfalls ein Grund, die gezeigte Schleife zu verschlanken! - es gibt unzählige Threads hier im Forum zum Thema "serieller Port" - etliche davon haben exzellente Beiträge von "Lucki", der die zu wählenden Optionen hervorragend erläutert: einfach mal suchen! - einfach mal den Aufräumknopf drücken, das kann die Lesbarkeit des Codes ungemein erhöhen... - es gibt eine "leerer String"-Konstante... - es gibt eine Vergleichsoperation "Ist leerer String?"... RE: Serielle Kommunikation VISA - NoUse666 - 30.07.2011 20:57 Danke für die Tipps, das macht das VI schon deutlich übersichtlicher. Allerdings habe ich immernoch nicht herausgefunden, warum das VI manchmal nichts mehr empfängt. In den letzten 48 Stunden lief das Programm problemlos. Dennoch habe ich mal ein kleines Java-Programm geschrieben, das die Daten abruft und loggt, sodass ich sehen kann, ob das am VI liegt oder ob die Hardware irgendwo einen Hänger hat. Also jetzt den Langzeit-Test abwarten... --Edit-- Da das Java Programm ein ähnliches Verhalten zeigt, also nach mehreren Stunden Laufzeit bricht die Kommunikation ab, gehe ich davon aus, dass es an der Hardware oder den Com-to-Ethernet Treibern. Startet man das Programm neu (sowohl das VI als auch das Java-Programm) funktioniert es direkt wieder. Gruß, NoUse666 |