DOUBLE WORD a STRING
La función DWORD_TO_STRING convierte un valor del tipo de datos DWORD en un valor del tipo STRING.
Genera un string con el resultado en representación decimal y justificado a la derecha. Se rellena con espacios vacíos hasta alcanzar el número de caracteres definidos en el string.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.
Entrada |
Salida definida como |
Transformado en |
---|---|---|
16#ABCDEFFE |
STRING[2] |
'FE' |
STRING[4] |
'EFFE' |
|
STRING[6] |
'CDEFFE' |
|
STRING[8] |
'ABCDEFFE' |
|
STRING[10] |
'00ABCDEFFE' |
|
STRING[12] |
'0000ABCDEFFE' |
|
y así sucesivamente ... |
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
DWORD_value: DWORD:=0;
(*example value: 16#ABCDEFFE*)
result_string: STRING[10]:='';
(*result: '00ABCDEFFE'*)
@'': @'';
END_VAR
La variable de entrada DWORD_value del tipo de datos DWORD se inicializa a 16#ABCDEFFE. La variable de salida result_string es de tipo de STRING[10]. Puede almacenar un máximo de 10 caracteres. En lugar de utilizar la variable DWORD_value, se puede introducir directamente una constante en el contacto de entrada de la función.
El valor de DWORD_value del tipo de datos DWORD se convierte a STRING[10]. El resultado de la conversión se almacena en result_string. Si la variable DWORD_value = 16#ABCDEFFE, result_string muestra '00ABCDEFFE'.
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
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.
Este ejemplo muestra cómo crear una cadena STRING[10] de tipo DWORD en la que se sustituye el prefijo '16#' por '0x'.
VAR
input_value: DWORD:=16#12345678;
result_string: STRING[10]:='';
@'': @'';
END_VAR
En este ejemplo, se ha declarado tanto la variable de entrada input_value de tipo DWORD como la variable de salida result_string de tipo STRING[10].
Para ejecutar la operación en cuestión, se ha conectado la función estándar REPLACE a la función DWORD_TO_STRING. REPLACE sustituye un conjunto de caracteres de una cadena por otro.
En este ejemplo, la cadena de salida de la función DWORD_TO_STRING se introduce en la entrada IN1 de la función REPLACE. En la entrada IN2, se introduce la constante '0x' como STRING de sustitución. En la entrada L de REPLACE, el valor constante 3 de tipo INT determina la longitud del STRING a reemplazar. La entrada P determina la posición a partir de la comienza la sustitución. En este caso, INT es igual a 1. A partir del valor de entrada input_value = 16#12345678, se obtiene la salida result_string = '0x12345678' como resultado de la operación de conversión y de la función REPLACE.
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