DWORD_TO_STRING

DOUBLE WORD in STRING

Die Funktion DWORD_TO_STRING wandelt einen Wert vom Datentyp DWORD in einen Wert vom Datentyp STRING um.

Sie erzeugt eine rechtsbündige Ergebniszeichenfolge in Dezimaldarstellung. Diese wird mit führenden Nullen aufgefüllt, bis die maximale Anzahl der Zeichen erreicht ist, die für diese Zeichenfolge definiert ist.

Parameter

Eingang

Unnamed input (DWORD)
Eingangsdatentyp

Ausgang

Unnamed output (STRING)
Umwandlungsergebnis

Anmerkungen

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

Eingang

Ausgang definiert als

liefert

16#ABCDEFFE

STRING[2]

'FE'

STRING[4]

'EFFE'

STRING[6]

'CDEFFE'

STRING[8]

'ABCDEFFE'

STRING[10]

'00ABCDEFFE'

STRING[12]

'0000ABCDEFFE'

und so weiter ...

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 
		DWORD_value: DWORD:=0;
			(*example value: 16#ABCDEFFE*)
		result_string: STRING[10]:='';
			(*result: '00ABCDEFFE'*)
		@'': @'';
	END_VAR

Die Eingangsvariable DWORD_value vom Datentyp DWORD wird durch den Wert 16#ABCDEFFE initialisiert. Die Ausgangsvariable result_string ist vom Datentyp STRING[10]. Sie kann maximal 10 Zeichen speichern. Statt der Variable DWORD_value, können Sie im Rumpf eine Konstante direkt an den Eingang der Funktion schreiben.

POE-Rumpf

DWORD_value vom Datentyp DWORD wird in STRING[10] umgewandelt. Der umgewandelte Wert wird in result_string geschrieben. Mit der Variable DWORD_value = 16#ABCDEFFE steht in result_string '00ABCDEFFE'.

KOP-Rumpf

BODY
    WORKSPACE
        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,DWORD_TO_STRING!,Instance,9,1,20,3,,?D?C);
B(B_VARIN,,DWORD_value,7,1,9,3,);
B(B_VAROUT,,result_string,20,1,22,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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.

Dieses Beispiel zeigt, wie man aus einem Eingangswert vom Datentyp DWORD einen STRING[10] der Länge 10 erzeugt, in dem der führende Teilstring '16#' durch den String '0x' ersetzt wird.

		VAR
		input_value: DWORD:=16#12345678;
		result_string: STRING[10]:='';
		@'': @'';
	END_VAR

In diesem Beispiel werden eine Eingangsvariablen input_value vom Datentyp DWORD sowie eine Ausgangsvariable result_string vom Datentyp STRING[10] deklariert.

POE-Rumpf

Zur Realisierung der geforderten Aufgabe wird der Funktion DWORD_TO_STRING zusätzlich die Standardfunktion REPLACE nachgeschaltet. REPLACE ersetzt einen Abschnitt in einer Zeichenfolge durch einen anderen.

Im Beispiel liegt am Eingang IN1 der REPLACE-Funktion der Ausgangsstring von DWORD_TO_STRING an. Am Eingang IN2 liegt der Ersatz-STRING als STRING-Konstante '0x' an. Am L-Eingang von REPLACE gibt die INT-Konstante 3 die Länge des zu ersetzenden STRING an. Der P-Eingang gibt die Position an, ab der ersetzt werden soll. In diesem Fall ist dies die INT-Zahl 1. Aus der Variablen input_value = 16#12345678 wird nach der Typwandlung und der REPLACE-Funktion der result_string = '0x12345678'.

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,DWORD_TO_STRING!,Instance,8,1,19,3,,?D?C);
B(B_VARIN,,input_value,6,1,8,3,);
B(B_VAROUT,,result_string,26,1,28,3,);
B(B_F,REPLACE!,Instance,20,0,26,6,,?DIN1?DIN2?DL?DP?C);
B(B_VARIN,,'0x',18,2,20,4,);
B(B_VARIN,,3,18,3,20,5,);
B(B_VARIN,,2,18,4,20,6,);
L(19,2,20,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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