%.<n>P:
Arbeitsvorbereitung
Programmierhandbuch, 02/2011, 6FC5398-2BP40-1AA0
Wandlung eines REAL-Werts in einen INTEGER-Wert unter Berücksichtigung von
<n> Nachkommastellen. Der INTEGER-Wert wird als 32-Bit-Binärzahl ausgegeben.
Kann der zu wandelnde Wert nicht mit 32 Bit dargestellt werden, wird die
Bearbeitung mit Alarm abgebrochen.
Da eine mit der Formatanweisung %.<n>P erzeugte Byte-Folge auch binäre Nullen
enthalten kann, entspricht der so erzeugte Gesamt-String nicht mehr den
Konventionen des NC-Datentyps STRING. Er kann daher weder in einer Variablen
vom Typ STRING gespeichert werden, noch mit den String-Befehlen der NC-
Sprache weiter bearbeitet werden. Die einzig mögliche Verwendung ist die
Parameterübergabe an den WRITE-Befehl mit Ausgabe an ein entsprechendes
externes Gerät (siehe folgendes Beispiel).
Sobald der <Format_String> eine Formatbeschreibung vom Typ %P enthält, wird
der gesamte String, mit Ausnahme der mit %.<n>P generierten Binärzahl,
entsprechend dem MD10750 $MN_SPRINT_FORMAT_P_CODE im Zeichen-Code
ASCII, ISO (DIN6024) oder EIA (RS244) ausgegeben. Wird ein nicht umsetzbares
Zeichen programmiert, wird die Bearbeitung mit Alarm abgebrochen.
Beispiel:
N10 DEF REAL REAL_VAR=123.45
N20 DEF INT ERROR
N30 DEF STRING[20] EXT_DEVICE="/ext/dev/1"
...
N100 EXTOPEN(ERROR,EXT_DEVICE)
N110 IF ERROR <> 0
...
N200 WRITE(ERROR,EXT_DEVICE,SPRINT("INTEGER BINARY
CODED:%.3P",REAL_VAR)
N210 IF ERROR <> 0
... ; Fehlerhandling
Ergebnis: Der String "INTEGER BINARY CODED: 'H0001E23A'" wird an das
Ausgabegerät /ext/dev/1 übertragen. Der hexadezimale Wert 0x0001E23A
entspricht dem dezimalen Wert 123450.
Flexible NC-Programmierung
1.9 Stringoperationen
; Fehlerhandling
89