COM Schnittstelle live einlesen + ausgeben - 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: COM Schnittstelle live einlesen + ausgeben (/Thread-COM-Schnittstelle-live-einlesen-ausgeben) |
COM Schnittstelle live einlesen + ausgeben - lohr - 25.03.2008 15:27 Hallo, Ich möchte ständig die COM Schnittstelle einlesen und wollte dabei VISA verwenden, ich habe mir auch schon die vorhandenen Templates angeschaut, jedoch haben mich diese nicht weitergebracht. Anzumerken wäre noch das dies mein erstes LabVIEW VI werden soll. Die Fakten: - ständiges einlesen des COM1 Ports - Puffern der eingelesenen Daten - ausgeben auf einem "String-Darsteller" - und ausgabe in datei Und angehängt habe ich noch was ich bisher gemacht habe, jedoch zeigt es mir nichts an... Vielen Dank für eure Hilfe! Gruß lohr [attachment=11760] [attachment=11759] COM Schnittstelle live einlesen + ausgeben - maxw - 25.03.2008 16:43 Hm, das Einlesen sollte so funktionieren, die Ausgabe niemals so. VISA-Write schreibt auf die Schnittstelle, nicht in eine Datei. Du schreibst also den Inhalt der Datei aus der Pfadangabe auf die serielle Schnittstelle. Um den String in ein File zu schreiben musst du eine Datei öffnen und dann das VI Write-to-File oder so ähnlich benutzen. Was für eine Quelle liegt denn an der seriellen Schnittstelle an? Und was sendet die die ganze Zeit? Wenns eine normale Schnittstelle ist, dann dürfte es einfach zu schnell fürs Auge sein, was da ankommt; vor allem weil in der Schleife keine verzögerte Ausführung drin ist. Und gepuffert werden die Daten im Moment auch nicht wirklich (nur an der Schnittstelle selbst, aber da weiss ich zuwenig drüber). Noch als Tipp: die Schnittstelle besser ausserhalb der Schleife initialisieren, da reicht einmal, das muss man nicht dauernd machen, das kostet nur unnötig viel Zeit. COM Schnittstelle live einlesen + ausgeben - harald.jaehrig - 25.03.2008 18:18 ' schrieb:Hallo, Hallo, ich habe etwas Zeit gehabt und einen Vorschlag für das Einlesen erzeugt, ich hoffe es hilft etwas weiter. Die hochgeladene Vi sind mit 8.21 und 8.0 gemacht, wenn nur eine ältere Version da ist kann ich auch ein Bild hochladen. Gruß Harald COM Schnittstelle live einlesen + ausgeben - eg - 25.03.2008 18:21 Hier schon geschaut? http://www.LabVIEWportal.eu/viewto...?f=14&t=131 Das macht schon alles für dich: Daten im String-Format darstellen und in eine Datei loggen. COM Schnittstelle live einlesen + ausgeben - lohr - 26.03.2008 08:21 Handelt sich um die Version 8.2 Habs leider vergessen hinzuschreiben... Vielen Dank für eure Posts:)Habt mir gut geholfen! PS: Ich habe die Laufschrift nicht gesehen ^^ vielleicht sollte man sich da was "stärkeres" Überlegen... COM Schnittstelle live einlesen + ausgeben - lohr - 26.03.2008 10:54 Habe mich jetzt für das VI von eg entschieden und wollte darauf mein eigenes VI aufbauen. Nun folgende Fragen. Die Daten kommen ja praktisch in einem Stream an. Da ich jede Zeile einzeln bearbeiten will wollte ich das "Pick Line" VI benutzen, damit ich die Zeilen eben alleine als String vorliegen hab. Dies funktioniert leider nicht wie gewollt da ich keine Laufvariable hab mit der ich die jeweilige Zeile ansprechen kann, eine andere Idee von mir wäre noch einfach immer den jetzigen Stream zu editieren und mit dem "reststream" zu arbeiten, jedoch ist dort mein Problem das diese Überprüfung nur einmal stattfindet und nicht dauernd... Für Lösungsvorschläge wäre ich sehr dankbar! Gruß lohr [attachment=11771] LabVIEW 8.2 wollte es so probieren... EDIT: Stimmt es das wenn ich die String Daten in der CASE Struktur abfange das ich dann jede Zeile bekomme, bin nach bissel nachdenken zu dem Entschluß gekommen ^^ COM Schnittstelle live einlesen + ausgeben - eg - 03.09.2008 20:41 Wenn du die Daten zeilenweise verarbeiten willst, dann solltest du die Schnittstelle anders auslesen. Das Problem bei meinem "Hyper" Terminal ist, dass ich alle Daten zeichenweise anzeigen soll, auch wenn kein Zeilenende kommt. Deshalb habe ich mein Programm so gestaltet, dass auch wenn nur ein Zeichen kommt, dann wird es spätestens nach 5 ms angezeigt. Du kannst beim Initialisieren der Schnittstelle das Endzeichen auf CR/LF einstellen und nun die maximale Zeilengrösse beim VISA Read angeben. Somit bekommst du immer eine Zeile Daten oder Timeout-Fehler. |