TIME a STRING
La función TIME_TO_STRING convierte un valor del tipo de datos TIME en un valor del tipo STRING[20]. Según el IEC-1131, la cadena de caracteres resultado se muestra con prefijo y sin subrayar. Los posibles valores para el rango de strings resultado van desde 'T#000d00h00m00s000ms' a 'T#248d13h13m56s470ms'.
Entrada
Salida
Cuando se utiliza el tipo de datos STRING con un PLC pequeño como el FP-e o el FP0, asegurarse de que la longitud de la cadena de caracteres destino es igual o superior a la longitud de la cadena fuente.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
input_value: TIME:=T#0s;
result_string: STRING;
La variable de entrada input_value del tipo de datos TIME se inicializa a T#1h30m45s. La variable de salida result_string es de tipo de STRING[20]. Puede almacenar un máximo de 20 caracteres. En lugar de utilizar la variable input_value, se puede introducir directamente una constante en el contacto de entrada de la función.
El valor de input_value del tipo de datos TIME se convierte a STRING[20]. El resultado de la conversión se almacena en result_string. Si la variable input_value = 1T#1h30m45s, result_string muestra 'T#000d01h30m45s000ms'.
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
result_string:=TIME_TO_STRING(input_value);
Este ejemplo muestra cómo, a partir de un valor de entrada de tipo TIME, se genera un STRING[9] con el formato 'xxhxxmxxs' (horas, minutos y segundos). Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
input_value: TIME:=T#1h30m45s;
(*example value*)
result_string: STRING[9]:='';
(*result: here '01h30m45s'*)
END_VAR
En este ejemplo, se ha declarado tanto la variable de entrada input_value de tipo TIME como la variable de salida result_string de tipo STRING[9].
Para ejecutar la operación en cuestión, se ha conectado la función estándar MID a la función TIME_TO_STRING. MID divide una cadena de caracteres a partir de la posición P (valor de tipo INT) y crea otra de longitud L (valor de tipo INT).
En este ejemplo, se introduce el valor constante 9 (INT) en el entrada L de MID, que determina la longitud de la cadena resultado. El valor constante 7 (tipo INT) en la entrada P determina la posición a partir de la que comienza la nueva cadena. A partir del valor de entrada input_value = T#1h30m45s, se obtiene la salida STRING 'T#000d01h30m45s000ms' como resultado de la conversión del tipo de datos. La función MID corta el STRING en la posición 7 y proporciona el resultado result_string '01h30m45s'.
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