REAL_TO_STRING

REAL in STRING

Die Funktion REAL_TO_STRING wandelt einen Wert vom Datentyp REAL in einen Wert vom Datentyp STRING[15] mit je 7 Vor- und 7 Nachkommastellen. Der Ergebnisstring wird im Bereich von '-999999.0000000' bis '9999999.0000000' dargestellt. Im positiven Bereich wird das Pluszeichen weggelassen. Führende Nullen werden mit Leerzeichen aufgefüllt (z.B. wird aus -12,0 der STRING '-12,0').

Parameter

Eingang

Unnamed input (REAL)
Eingangsdatentyp

Ausgang

Unnamed output (STRING)
UmwandlungsergebnisSTRING[15]

Anmerkungen

  • Die Funktion benötigt ungefähr 160 Schritte Programmspeicher. Bei mehrmaliger Verwendung sollte man sie daher in eine Anwenderfunktion integrieren, die dann nur einmal im Speicher abgelegt ist.

  • Bei der Verwendung des Datentyps STRING mit Kleinsteuerungen wie FP-e oder FP0 müssen Sie darauf achten, dass die Länge der Ergebniszeichenfolge mindestens so groß ist wie die Länge der Ausgangszeichenfolge.

Beispiel:

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

VAR
		input_value: REAL:=-123.4560166;
		result_string: STRING[15]:='';
END_VAR	

Die Eingangsvariable input_value vom Datentyp REAL wird mit dem Wert -123,4560166 initialisiert. Die Ausgangsvariable result_string ist vom Datentyp STRING[15]. Sie kann maximal 15 Zeichen speichern. Statt der Variable input_value, können Sie im Rumpf eine Konstante direkt an den Eingang der Funktion schreiben.

POE-Rumpf

input_value vom Datentyp REAL wird in STRING[15] umgewandelt. Der umgewandelte Wert wird in result_string geschrieben. Mit der Variable input_value = 123,4560166 steht in result_string ' -123.4560165'.

KOP-Rumpf

BODY
    WORKSPACE</p>
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,REAL_TO_STRING!,Instance,7,1,17,3,,?D?C);
B(B_VARIN,,input_value,5,1,7,3,);
B(B_VAROUT,,result_string,17,1,19,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

AWL-Rumpf

Beispiel:

POE-Kopf

Dieses Beispiel zeigt, wie man aus einem Eingangswert vom Datentyp REAL einen STRING der Länge 7 mit 4 Vor- und 2 Nachkommastellen erzeugt.

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

VAR
		input_value: REAL:=-123.4560166;
			(*example value*)
		result_string: STRING[15]:='';
			(*result: here ' -123.45'*)
	END_VAR

In diesem Beispiel werden eine Eingangsvariable input_value vom Datentyp REAL sowie eine Ausgangsvariable result_string vom Datentyp STRING[7] deklariert.

POE-Rumpf

Zur Realisierung der geforderten Aufgabe wird der Funktion REAL_TO_STRING zusätzlich die Standardfunktion MID nachgeschaltet. MID sorgt für einen Mittelabschnitt der Zeichenfolge ab Position P (INT-Wert) mit L (INT-Wert) Zeichen.

Im Beispiel wird am L-Eingang von MID eine INT-Konstante 7 angelegt, welche die Länge des Ergebnisstrings festlegt. Die INT-Konstante 4 am Eingang P bestimmt die Position, ab der der Mittelabschnitt beginnt. Aus der Variablen input_value = -123.4560166 wird nach der Typwandlung der STRING ' -123.4560166'. Die MID-Funktion schneidet den STRING an der Position 4 ab und gibt result_string '-123.45' aus.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,REAL_TO_STRING!,Instance,7,2,17,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,7,17,3,19,5,);
B(B_VARIN,,4,17,4,19,6,);
L(17,3,19,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

AWL-Rumpf

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline