REAL_TO_STRING

REAL a STRING

La función REAL_TO_STRING convierte un valor de tipo REAL en un valor de tipo STRING[15], que tiene 7 espacios antes y después de la coma. La cadena resultado está justificada a la derecha y está dentro del rango de '-999999.0000000' a '9999999.0000000'. En el rango positivo se omite el signo negativo. Los espacios vacíos se rellenan con ceros (por ejemplo, para -12,0 el STRING resultado sería '-12,0').

Parámetros

Entrada

Unnamed input (REAL)
Tipo de datos de entrada

Salida

Unnamed output (STRING)
Resultado de la conversiónSTRING[15]

Observaciones

  • Esta función consume unos 160 pasos de memoria de programa. Para su uso repetitivo se debería integrar en una función de usuario que solo se almacena una vez en la memoria.

  • 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.

Ejemplo

Cabecera de la POU

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: REAL:=-123.4560166;
		result_string: STRING[15]:='';
END_VAR	

La variable de entrada input_value del tipo de datos REAL se inicializa a -123,4560166. La variable de salida result_string es de tipo de STRING[15]. Puede almacenar un máximo de 15 caracteres. En lugar de utilizar la variable input_value, se puede introducir directamente una constante en el contacto de entrada de la función.

Cuerpo de la POU

El valor de input_value del tipo de datos REAL se convierte a STRING[15]. El resultado de la conversión se almacena en result_string. Si la variable input_value = 123,4560166, result_string muestra ' -123,4560165'.

Cuerpo LD

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

Cuerpo IL

Ejemplo

Cabecera de la POU

Este ejemplo muestra cómo crear un STRING[7] con 4 dígitos enteros y 2 decimales a partir de dato de tipo REAL.

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: REAL:=-123.4560166;
			(*example value*)
		result_string: STRING[15]:='';
			(*result: here ' -123.45'*)
	END_VAR

En este ejemplo, se ha declarado tanto la variable de entrada input_value de tipo REAL como la variable de salida result_string de tipo STRING[7].

Cuerpo de la POU

Para ejecutar la operación en cuestión, se ha conectado la función estándar MID a la función REAL_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 7 (INT) en el entrada L de MID, que determina la longitud de la cadena resultado. El valor constante 4 (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 = -123.4560166, se obtiene la salida STRING ' -123.4560166' como resultado de la conversión del tipo de datos. La función MID corta el STRING en la posición 4 y proporciona el resultado result_string '-123.45'.

Cuerpo LD

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

Cuerpo IL

Modificado el: 2021-07-14Comentarios sobre esta páginaLínea directa de Panasonic