FMT
MSB
7
6
5
4
3
2
1
0
0
0
0
c
n
n
c = Komma (1) oder Dezimalpunkt (0)
nnn = Ziffern rechts vom Dezimalpunkt
Bild 6-16
Operand FMT der Operation Ganze Zahl (32 Bit) in ASCII-Zeichenkette wandeln (DTA)
Funktionsweise der Operation Realzahl in ASCII-Zeichenkette wandeln
Die Operation Realzahl in ASCII-Zeichenkette wandeln
(RTA) wandelt eine Realzahl IN in ASCII-Zeichen um. Das
Format (FMT) gibt die Umwandlungsgenauigkeit rechts von
der Dezimalzahl an, es gibt an, ob der Dezimalpunkt als
Punkt oder als Komma dargestellt wird und es gibt die
Größe des Ausgabepuffers an.
Das Ergebnis der Umwandlung wird in einen Ausgabepuffer
mit Beginn an OUT abgelegt.
Die Anzahl (oder Länge) der resultierenden ASCII-Zeichen entspricht der Größe des
Ausgabepuffers und kann in einem Bereich zwischen 3 und 15 Bytes oder Zeichen angegeben
werden.
Das von den S7-200 verwendete Realzahlenformat unterstützt maximal 7 signifikante Ziffern.
Sollen mehr als 7 signifikante Ziffern angezeigt werden, wird ein Rundungsfehler ausgegeben.
Bild 6-17 beschreibt den Formatoperanden (FMT) der Operation RTA. Die Größe des
Ausgabepuffers wird von dem Feld ssss angegeben. Die Größen 0, 1 oder 2 Bytes sind ungültig.
Die Anzahl der Ziffern rechts vom Dezimalpunkt im Ausgabepuffer wird vom Feld nnn angegeben.
Der gültige Bereich für das Feld nnn liegt zwischen 0 und 5. Werden 0 Ziffern rechts vom
Dezimalpunkt angegeben, wird der Wert ohne Dezimalpunkt angezeigt. Der Ausgabepuffer wird
mit ASCII-Leerzeichen belegt, wenn der Wert nnn größer als 5 ist oder wenn der angegebene
Ausgabepuffer zu klein ist, um den umgewandelten Wert zu speichern. Das Bit c gibt an, ob ein
Komma (c = 1) oder ein Dezimalpunkt (c = 0) als Trennzeichen zwischen der ganzen Zahl und
dem Bruch verwendet werden soll.
Bild 6-17 zeigt Beispiele für Werte, die mit Dezimalpunkt (c = 0), mit einer Ziffer rechts vom
Dezimalpunkt (nnn = 001) und einer Puffergröße von sechs Bytes (ssss = 0110) formatiert
wurden. Der Ausgabepuffer wird entsprechend den folgenden Richtlinien formatiert:
Positive Werte werden ohne Vorzeichen in den Ausgabepuffer geschrieben.
!
Negative Werte werden mit einem Minuszeichen (-) vor dem Wert in den Ausgabepuffer
!
geschrieben.
Führende Nullen links vom Dezimalpunkt (mit Ausnahme der Ziffer direkt neben dem
!
Dezimalpunkt) werden unterdrückt.
Der Wert rechts vom Dezimalpunkt wird gerundet, damit er der Anzahl der Ziffern entspricht,
!
die rechts vom Dezimalpunkt angegeben werden sollen.
Die Größe des Ausgabepuffers muss mindestens drei Bytes mehr umfassen als die Anzahl
!
der Ziffern rechts vom Dezimalpunkt.
Die Werte werden rechtsbündig im Ausgabepuffer angeordnet.
!
FMT
MSB
7
6
5
4
3
2
s
s
s
s
c
n
ssss = Größe des Ausgabepuffers
c = Komma (1) oder Dezimalpunkt (0)
nnn = Ziffern rechts vom Dezimalpunkt
Bild 6-17
Operand FMT der Operation Realzahl in ASCII-Zeichenkette wandeln (RTA)
Out
Out Out Out
LSB
+1 +2
0
IN = -12
n
IN = 1234567
LSB
1
0
n
n
IN = -3.67526
S7-200 Befehlssatz
Out
Out
Out
Out
+3 +4
+5 +6
+7
-
0
.
1
2
3
.
Fehlerbedingungen,
die ENO = 0 setzen
" 0006 (Indirekte Adresse)
" nnn > 5
" ssss < 3
" ssss < Anzahl der Zeichen in OUT
OUT
OUT OUT OUT
+1
IN = 1234.5
1
2
IN = -0.0004
IN = 1.95
Kapitel 6
Out
Out
Out Out
+8 +9 +10 +11
0
0
1
2
4
5
6
7
OUT
OUT
+2
+3
+4
+5
3
4
.
5
0
.
0
-
3
.
7
2
.
0
107