Char_to_byte

Bei Beckhoff gibt es dafür in der TcSystem.Lib die Funktion F_toAsc. Ob andere CoDeSys-Steuerungen etwas Vergleichbares bieten, weiss ich nicht.
Im Ernstfall musst Du selbst eine Funktion schreiben. Einen String(1) als VAR_INPUT übergeben, darauf einen POINTER TO BYTE zeigen lassen, damit den Bytewert auslesen und als Funktionsergebnis zurückgeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der Oscat Bibliothek sind einige Blöcke dazu enthalten.
Ich denke, dass ist der einfachste Weg.

Du Kannst Dir auch eine Case Anweisung bauen:
Case string Of
'a' : byAusgabe:=33;
....

Es gibt sicherlich noch weitere Möglichkeiten.
 
In TwinCAT gibt es die Funktion ASC die für den ersten Character eines Strings des ASCII-Wert ausgibt.
Die Funkion CHR macht das Umgekehrte.

[EDIT]
Sorry sehe gerade das diese Funktion in der Serial Communication Lib enthalten ist. Wenn man die nicht gekauft hat kann man ASC und CHR nat. nicht nutzen.

Ich könnte aber wetten das in den Funktionen nichts weiter als eine LookUp Table enthalten ist.
 
Zuletzt bearbeitet:
Normalerweise ist bei jeder TwinCAT-Installation eine "TcSystem.lib" mit dabei. Darin findet man dann die Funktion "F_ToASC", welche das erste Zeichen eines übergebenen Strings in den zugehörigen Byte-Wert des ASCII-Codes wandelt - eine Lookup-Table braucht man dazu nicht, denn intern wird eine Zeichenkette sowieso als Folge von Bytes gespeichert. In der Funktion steckt also nicht mehr als:
Code:
VAR_INPUT
 str : STRING;
END_VAR
VAR
 pChar : POINTER TO BYTE;
END_VAR
pChar := ADR(str); 
F_ToASC := pChar^;
 
Zurück
Oben