Bloque que realiza la conversión de un valor STRING para un valor DWORD.
Representación Ladder
![]()
Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
STR |
STRING |
Valor en STRING |
|
VAR_OUTPUT |
DONE |
BOOL |
Fin de operación |
OUT |
DWORD UDINT DINT |
Valor en DWORD |
Operación
Este bloque, cuando tiene un valor TRUE en EN, lee el valor de STR como STRING carácter por carácter, realizando la conversión para REAL y almacenando el resultado en OUT. En caso de que el primer carácter no sea matemáticamente válido, la salida OUT recibirá cero. En caso de que haya caracteres válidos, tales caracteres serán convertidos hasta el fin de la STRING, o hasta encontrar un carácter no válido.
|
¡NOTA! En caso de que el número representado en la STRING sea superior al máximo soportado por una DWORD, el valor de Result saturará en este valor máximo. |
Cuando EN tiene valor FALSE, OUT permanece inalterado y DONE permanece FALSE.
El valor de DONE pasa al próximo bloque Ladder el valor de EN luego de finalizada la operación.
Compatibilidad
Equipo |
Versión |
PLC300 |
2.10 o superior |
Diagrama de Flujo del Bloque

Ejemplo en Ladder
Los ejemplos a seguir exhiben diversas conversiones de STRING en valores del tipo DWORD. Todas las conversiones habilitan la salida DONE al fin de la operación.

La conversión de arriba fue realizada exitosamente.

La conversión de arriba fue realizada exitosamente. El guión es un carácter matemático válido.

La conversión de arriba fue realizada exitosamente. El punto decimal no es matemáticamente válido para decimales y finaliza la conversión, truncando el resultado al que ya había sido convertido.

La conversión de arriba fue realizada sin éxito. El primer carácter no fue identificado como matemáticamente válido, y la salida fue reseteada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR STR : STRING := 'A290'; OUT : DINT; END_VAR
OUT := FB_STRING_TO_DWORD(EN:=DI1, STR:=STR, DONE=>DO1);
|
|---|