HTA: Hexadezimalzahl in ASCII-Zeichenkette konvertieren (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
HTA: Hexadezimalzahl in ASCII-Zeichenkette konvertieren

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"