RS232 nicht lesbar? - 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: RS232 nicht lesbar? (/Thread-RS232-nicht-lesbar) Seiten: 1 2 |
RS232 nicht lesbar? - Vision_Michl - 27.08.2015 08:43 Guten Morgen, ich beschäftige mich seit gestern verzweifelt damit, ein Luxmeter mit LabVIEW auszulesen. Dieses ist über RS232 angeschlossen und wird auch erkannt, die mitgelieferte Software funktioniert auch. Die Einstellungen des seriellen Ports sind ebenfalls korrekt. Mit Visa Schreiben scheine ich das Gerät zu erreichen, da hier eine "Remote"-LED aufleuchtet. Das Problem jetzt: Visa Lesen gibt mir immer einen Timeout-Fehler aus. Die Zeit ist bereits variiert, alles, was ich bisher im Forum und auf der NI-Seite gefunden habe, führt zu keinem Erfolg. Ich habe mir nun das Beispielprogramm "Continuous Read and Write" angeschaut, welches genau den gleichen Fehler ausgibt, unabhängig von den Einstellungen. Jetzt bin ich wirklich mit meinem Latein am Ende und bitte euch um Hilfe Ich habe den Verdacht, dass mir das auslesen irgendwie verboten wird oder ich dieses einschalten müsste, ich weiss aber einfach nicht, wo Vielen Dank bereits im Voraus! RE: RS232 nicht lesbar? - frehdie - 27.08.2015 09:17 Hallo und guten Morgen, um eine Kommunikation über RS 232 und LV zu realisieren, muss man den Befehl erst senden, daß man einen bestimmten Wert abfragen will. Im Kommunikationsprotokoll nachschaun. Bevor man dann den Wert empfängt, sollte man dem Gerät eine Pause gönnen, damit er den Wert zum Senden bereiten kann. Das ist abhänging von Anzahl der Datenbits und Baudrate. Also: Senden des Strings zur Wertabfrage; Pause; Wert empfangen. Noch ein Tip, wenn man den Aufbau der Kommunikation, sie funktioniert ja mit dem Programm vom Herstellen, entschlüsseln will, kann man die RS 232 bei der Kommunikation ausspionieren. Dazu gibt es Gratisprogramme im Netz. Hoffe, Tip hilft. RE: RS232 nicht lesbar? - macmarvin - 27.08.2015 09:17 Was sagt denn das Handbuch dazu? Üblichweise muss man solchen Messgeräten erst eine Frage (Befehl in definiertem Syntax) schicken, bevor die etwas zurück senden, das man dann von der Schnittstelle lesen kann. RE: RS232 nicht lesbar? - jg - 27.08.2015 09:18 Wichtig auch: Korrekte Baudrate und korrekte Einstellung des "Termination Char". Gruß, Jens RE: RS232 nicht lesbar? - Vision_Michl - 27.08.2015 10:12 Danke für die regen Tipps! Leider funktioniert es immer noch nicht... Baudrate, Parität, Datenbits, Stoppbit sind alle laut Handbuch angegeben, daher gehe ich von keinem Fehler diesbezüglich aus. Der Termination Character und die Befehle sind etwas kryptisch (für mich zumindest) daher gebe ich euch den entsprechenden Absatz aus dem Handbuch einfach mal im Wortlaut an: Jeder Befehl, der an das Digilux geschickt wird, muss mit einem <CR> (ASCII 13 dez.) abgeschlossen werden. Die Parameter eines Befehls (soweit vorhanden) müssen untereinander und vom Befehlswort durch ein Blank (ASCII 32 dez.) getrennt werden. Das Digilux beantwortet jeden gültigen Befehl, den es korrekt ausführen kann, mit einem <ACK> (ASCII 6 dez.) und evtl. mit einem Antwortstring. Dieser Antwortstring wird ebenfalls mit <CR> abgeschlossen. Ungültige oder nicht ausführbare Befehle werden mit <NAK> (ASCII 21 dez.) quittiert. Ein neuer Befehl darf immer erst gesendet werden, wenn die Antwort auf den vorhergehenden Befehl vollständig empfangen wurde. Und als Beispielbefehl: "SV" gibt die Gerätekommunikation und allgemeines anderes Gelärch aus. Wie muss ich das denn jetzt formulieren? Ich finde leider kein Beispiel hierzu, vielleicht ist mein Syntax einfach grundlegend falsch, aber ich gebe als Befehlsstring einfach "SV <CR>" an. Habe auch schon alles in Dezimal, Hexadezimal, mit Leerzeichen, Leerzeilen, Kommata, mit und ohne eckige Klammern probiert. Nichts. Nicht einmal ein <NAK>, was ja scheinbar auch, wenn ich Käse eingebe, einfach kommen sollte, wenn ich nur ein CR reinschreibe. RE: RS232 nicht lesbar? - jg - 27.08.2015 10:48 Du sollst nicht <CR> in deinen String reinschreiben, sondern ein "Carriage Return" Zeichen (HEX 0x0D) hinten dranhängen. Außerdem schließt dein Gerät jede Antwort mit einem <CR> Buchstaben ab, du kannst also bei "VISA Configure Serial Port" mit aktiviertem TermChar arbeiten: [attachment=53911] Gruß, Jens RE: RS232 nicht lesbar? - Trinitatis - 27.08.2015 10:50 (27.08.2015 10:12 )Vision_Michl schrieb: vielleicht ist mein Syntax einfach grundlegend falsch, aber ich gebe als Befehlsstring einfach "SV <CR>" an. nur mal so als ganz dumme Frage: Du schreibst nicht wirklich die Zeichen "SV <CR>" so in den Sendestring, oder?! Also das CR steht für ein Enterzeichen - ASCII-Code 13, so wie im Handbuch beschrieben. Du musst also an dein SV eineEnterkonstante anhängen, zu finden in der Stringpalette. Gruß, Marko RE: RS232 nicht lesbar? - Vision_Michl - 27.08.2015 14:53 Ja, leider keine dumme Frage... ich hab das mit dem Carriage Return noch nie gehört, ich habs halt genau so in den Eingangsstring geschrieben. Aber rein aus der Bedienungsanleitung wirds halt auch irgendwie nicht klar. Ne kleine Erläuterung wäre meiner Meinung nach da auch schön gewesen... Es funktioniert jetzt mittlerweile, also vielen Dank an alle RE: RS232 nicht lesbar? - Trinitatis - 27.08.2015 15:48 (27.08.2015 14:53 )Vision_Michl schrieb: ... ich hab das mit dem Carriage Return noch nie gehört, ich habs halt genau so in den Eingangsstring geschrieben. Also wenn im Handbuch steht Jeder Befehl, der an das Digilux geschickt wird, muss mit einem <CR> (ASCII 13 dez.) abgeschlossen werden., dann sollte das für einen Programmierer Erklärung genug sein. Die Tatsache, dass du das mit dem Carriage Return noch nie gehört hast, ist wohl mehr eine Bildungslücke deinerseits, als ein Versäumnis der Handbuchschreiber. Gruß, Marko RE: RS232 nicht lesbar? - jg - 27.08.2015 15:52 Ball flach halten, Marko. Laut NI Marketing kann jeder ohne weiteres Vorwissen mit LabVIEW ein Messprogramm erstellen. Gruß, Jens |