LabVIEWForum.de
VISA serielle Schnittstelle byteweise schreiben - 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: VISA serielle Schnittstelle byteweise schreiben (/Thread-VISA-serielle-Schnittstelle-byteweise-schreiben)



VISA serielle Schnittstelle byteweise schreiben - BRunner77 - 22.05.2012 18:20

Hallo,

leider muss ich eine Frage stellen die bestimmt schon oft beantwortet wurede, ich habe aber nach stundenlangen suchen und rumprobieren keine Lösung gefunden :-(

Ich möchte ein Steuergerät ansprechen dieses erwartet ein Komando welches aus verschiedenen Byte- bzw. Word-Werten zusammen gesetzt ist zum Beispiel so eines:

01 80 14 03 E8 00 3E 80 80

Erklärung:
01 ist das Startzeichen / Byte
80 ist ein Betriebszustand / Byte
14 ist ein Parameter / Byte
03 E8 ist ein Parameter / Word
usw.

Wenn ich nun das Komando mit "VISA Write" als String verschicke, sendet er natürlich anstatt dem Byte-Wert 80, die ASCII Zeichen 8 und 0 - also nicht das was ich möchte. Wenn ich mit flatten-to-string arbeite macht er aus dem Byte-Wert 80 das Zeichen "P" - also auch nicht das was ich möchte. Mit Bytearray-to-String ist es dasselbe.
Hat jemand eine Idee was ich noch probieren könnte? Ich bin mir sicher es gibt eine einfache Lösung für das Problem. Ich komme nur nicht drauf Wall Schon mal vielen Dank.

LG Micha


RE: VISA serielle Schnittstelle byteweise schreiben - GerdW - 22.05.2012 20:27

Hallo Micha,

Zitat:Wenn ich nun das Komando mit "VISA Write" als String verschicke, sendet er natürlich anstatt dem Byte-Wert 80, die ASCII Zeichen 8 und 0
VISAWrite macht das garantiert nicht! Der Fehler liegt wohl eher darin, wie du den Bytewert aufbereitest...

Zitat:Wenn ich mit flatten-to-string arbeite macht er aus dem Byte-Wert 80 das Zeichen "P" - also auch nicht das was ich möchte. Mit Bytearray-to-String ist es dasselbe.
Was ist denn deiner Meinung nach falsch daran, wenn beim Hexwert 50 das Zeichen "P" versendet wird?
Ich persönlich verwende in einem solchen Fall ByteArrayToString, ist die naheliegendste Lösung.

- Manchmal hilft ein Blick auf eine ASCII-Tabelle, wie man sie u.a. bei Wikipedia findet...
- Man muss solche "Strings" auch nicht "byteweise" versenden, wie es deine Fragestellung nahelegt...