TIME_TO_STRING

TIME in STRING

Die Funktion TIME_TO_STRING wandelt einen Wert vom Datentyp TIME in einen Wert vom Datentyp STRING[20] um. Entsprechend der Darstellung gemäß IEC-1131 wird der Ergebnisstring mit kurzem Zeitpräfix und ohne Unterstriche dargestellt. Mögliche Werte für den Ergebnisstring liegen im Bereich von 'T#000d00h00m00s000ms' bis 'T#248d13h13m56s470ms'.

Parameter

Eingang

Unnamed input (TIME)
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:

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: TIME:=T#0s;
		result_string: STRING;

Die Eingangsvariable input_value vom Datentyp TIME wird durch den Wert T#1h30m45s initialisiert. Die Ausgangsvariable result_string ist vom Datentyp STRING[20]. Sie kann maximal 20 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 TIME wird in STRING[20] umgewandelt. Der umgewandelte Wert wird in result_string geschrieben. Wenn die Variable input_value = T#1h30m45s steht in result_string 'T#000d01h30m45s000ms'.

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,TIME_TO_STRING!,Instance,10,1,19,3,,?D?C);
B(B_VARIN,,input_value,8,1,10,3,);
B(B_VAROUT,,result_string,19,1,21,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

result_string:=TIME_TO_STRING(input_value);

AWL-Rumpf

Beispiel:

POE-Kopf

Dieses Beispiel zeigt, wie man aus einem Eingangswert vom Datentyp TIME eine Zeichenfolge STRING[9] der Länge 9 im Format 'xxhxxmxxs' erzeugt (es sollen nur Stunden, Minuten und Sekunden ausgegeben werden). 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: TIME:=T#1h30m45s;
			(*example value*)
		result_string: STRING[9]:='';
			(*result: here '01h30m45s'*)
	END_VAR

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

POE-Rumpf

Zur Realisierung der geforderten Aufgabe wird der Funktion TIME_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 9 angelegt, welche die Länge des Ergebnisstrings festlegt. Die INT-Konstante 7 am Eingang P bestimmt die Position, ab der der Mittelabschnitt beginnt. Aus der Variablen input_value = T#1h30m45s wird nach der Typwandlung der STRING 'T#000d01h30m45s000ms'. Die MID-Funktion schneidet den STRING an der Position 7 ab und gibt result_string '01h30m45s' 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,TIME_TO_STRING!,Instance,7,2,16,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,,9,17,3,19,5,);
B(B_VARIN,,7,17,4,19,6,);
L(1,0,1,6);
L(16,3,19,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

AWL-Rumpf

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