Beschreibung
Mit der Anweisung konvertieren Sie die am Eingang IN angegebene Hexadezimalzahl in eine ASCII-Zeichenkette. Das Ergebnis der Konvertierung wird an der am Parameter OUT angegebenen Adresse abgelegt.
Die Anzahl der zu konvertierenden Hexadezimalbytes legen Sie durch den Parameter N fest. Da ein ASCII-Zeichen 8 Bits benötigt und eine Hexadezimalziffer nur 4 Bits, ist der Ausgabewert doppelt so lang wie der Eingabewert. Jedes Halbbyte der Hexadezimalzahl wird in ein Zeichen unter Beibehaltung der ursprünglichen Reihenfolge umgewandelt.
In die ASCII-Zeichenkette können maximal 65 635 Zeichen geschrieben werden. Das Ergebnis der Konvertierung wird mit den Ziffern 0 bis 9 und Großbuchstaben A bis F dargestellt.
Die Anweisung erkennt keine Fehlerbedingungen.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "HTA":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
IN |
Input |
POINTER* |
E, A, M, D |
Anfangsadresse der Hexadezimalziffer |
|
N |
Input |
WORD |
E, A, M, D, L, P oder Konstante |
Anzahl der zu konvertierenden Hexadezimalbytes |
|
OUT |
Output |
POINTER* |
D, L |
Adresse, an der das Ergebnis abgelegt wird. |
|
* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung |
||||
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Beispiel
Wenn der Signalzustand am Eingang E 0.0 = 1 (aktiviert) ist, dann wird die Anweisung ausgeführt. Der Eingangsparameter N = 3 gibt an, dass drei Hexadezimalzeichen umgewandelt werden sollen. Die Hexadezimalbytes werden in dem Datenbaustein 1 gespeichert, der an der Adresse beginnt, die von dem Pointer IN angegeben wird: DB1.DBX10.0. Die Zeichenkette wird an der Adresse ausgegeben, die von dem Pointer OUT angegeben wird: Beginn bei DB2.DBX0.0 (Datenbaustein 2).
Die folgende Tabelle zeigt Beispiele für die Konvertierung von Hexadezimalzahlen in ASCII-Zeichenketten:
|
IN |
N |
OUT |
BIE-Status |
|---|---|---|---|
|
W#16#0123 |
2 |
'0123' |
1 |
|
16#123AF01023 |
4 |
'123AF010' |
0 |
Die folgende Tabelle zeigt die ASCII-Zeichen und die entsprechenden Hexadezimalwerte:
|
Hexadezimalziffer |
ASCII-codierter Hexadezimalwert |
ASCII-Zeichen |
|---|---|---|
|
0 |
30 |
"0" |
|
1 |
31 |
"1" |
|
2 |
32 |
"2" |
|
3 |
33 |
"3" |
|
4 |
34 |
"4" |
|
5 |
35 |
"5" |
|
6 |
36 |
"6" |
|
7 |
37 |
"7" |
|
8 |
38 |
"8" |
|
9 |
39 |
"9" |
|
A |
41 |
"A" |
|
B |
42 |
"B" |
|
C |
43 |
"C" |
|
D |
44 |
"D" |
|
E |
45 |
"E" |
|
F |
46 |
"F" |