LabVIEWForum.de - Zahl an RS232

LabVIEWForum.de

Normale Version: Zahl an RS232
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

eigentlich hab ich gedacht, ganz einfach, aber anscheinend nicht für mich...
Also, ich möchte eine Zahl zwischen 0 und 255 auf die serielle Schnittstelle schreiben. Zuerst initialisiere ich die Schnittstelle. Danach wandel ich die Zahl in einen String um (kann man eigentlich nicht direkt die Zahl schreiben?) und gebe den String auf RS232.
Bei einstelligen Zahlen funktioniert das auch, aber bei den anderen nicht, warum? Muss ich das irgendwo einstellen?
Im Anhang hab ich mal zwei Bilder vom Programm
Hallo paula,

schaue doch mal in die Beispiele von LabVIEW. Dort findest Du alles was Du benötigst.

Nun zu Deinem Problem:

Also, ich möchte eine Zahl zwischen 0 und 255 auf die serielle Schnittstelle schreiben. Zuerst initialisiere ich die Schnittstelle.

[kokisan2000] bestens ...

Danach wandel ich die Zahl in einen String um (kann man eigentlich nicht direkt die Zahl schreiben?) und gebe den String auf RS232.

[kokisan2000] Genau so wird es gemacht. Die Zahl kann nicht direkt geschrieben werden, da ein ASCII Format bei der Übertragung benutzt wird, soll heissen die Zahl 123 wird seriell als '1', '2', '3' übertragen. Für die einzelnen Ziffern werden nicht die Ziffern selber, sondern für jede Ziffer der ASCII Code dieser Ziffer übertrtagen. Also z.B. hex31 für '1', hex32 für '2' usw.
Einige hex-Codes sind reserviert und steuern die angeschlossen Geräte mit sogenannten Escape-Sequenzen an. So ist z.B. hex07 vorbelegt, um ein Klingelton auszulösen, hex0A bedeutet Linefeed (springe in nächste Zeile ... Wenn Du also selber Zahlen übertragen willst, musst Du sehr genau wissen was Du da machst, sonst kommt Dein angesprochenes Gerät schnell in einen Fehlerzustand. RS232 Übertragung bedeutet eigentlich immer Wandel in ASCII-String vom Programm aus und dann senden. Oder andersrum: ASCII String empfangen und dann wandeln in das Format, was man bekommt und benötigt (Integer, Float, ...).

Bei einstelligen Zahlen funktioniert das auch, aber bei den anderen nicht, warum? Muss ich das irgendwo einstellen?

[kokisan2000] dito, schaue Dir die ASCII-Tabelle an. Die hex-Codes 00-1F sind mit den Escape-Sequenzen vorbelegt.

Schaue Dir noch mal die Beispiele an. Dein verwendetes VI zum Senden ist unüblich.


Gruß
kokisan2000
danke für deine hilfe, jetzt hab ich kapiert wie das funktioniertSmile

aber wieso ist das unüblich, so zu senden? ich hab mir gerade mal die beispiele angeschaut, aber da wird immer VISA benutzt und das brauch ich ja eigentlich nicht.
Referenz-URLs