Operaciones de Conversión
Escalado y Tipos
La conversión de datos es el puente entre el mundo físico y el código digital. Domine el escalado de señales analógicas y la transformación de tipos de datos.
¿Qué son las operaciones de conversión en TIA Portal?
Las operaciones de conversión permiten transformar un valor de un tipo de datos a otro (ej: un Entero a un Real) o manipular la precisión de los números de coma flotante. Incluyen también herramientas de normalización y escalado, indispensables para procesar señales analógicas.
TIA Portal ofrece instrucciones modernas como SCALE_X y NORM_X que reemplazan a los antiguos bloques SCALE/UNSCALE de S7-300, ofreciendo mayor flexibilidad y precisión.
Conversión de Tipo
Transformación y redondeo de formatos numéricos
CONVERT — Convertir valor
CONVQué hace
Convierte un valor de un tipo de datos origen a uno de destino. Maneja conversiones entre enteros, reales, caracteres, tiempo y cadenas.
Cuándo usarlo
Preparar un entero para cálculos complejos pasándolo a Real, o convertir un código de error a String para el HMI.
Consejos Pro
En LAD, haga clic en los tipos de datos del bloque para seleccionar origen y destino.
En SCL: myReal := INT_TO_REAL(myInt);
Cuidado con las pérdidas de precisión al convertir tipos largos a cortos.
ROUND / TRUNC
ROUNDQué hacen
ROUND redondea un número flotante al entero más cercano. TRUNC simplemente elimina la parte decimal.
Cuándo usarlo
Mostrar una medida física como entero simple o convertir un Real a un índice de array (Int).
Consejos Pro
Si la parte decimal es .5, ROUND redondea al entero par más cercano (norma IEC).
TRUNC es preferible si solo desea ignorar los decimales sin redondear.
Ambos aceptan Real/LReal y devuelven generalmente un DInt.
CEIL / FLOOR
CEILQué hacen
CEIL (Techo) genera el entero superior o igual. FLOOR (Suelo) genera el entero inferior o igual.
Cuándo usarlo
Calcular el número de contenedores necesarios (siempre redondear al superior con CEIL).
Consejos Pro
CEIL(10.1) = 11 ; FLOOR(10.9) = 10.
Esencial para algoritmos de logística.
Útil para asegurar que un valor se mantiene en límites enteros estrictos.
Escalado (Scaling)
Tratamiento de señales analógicas
NORM_X — Normalizar
NORM_XQué hace
Transforma un valor en un rango [MIN..MAX] a un valor normalizado entre 0.0 y 1.0.
Cuándo usarlo
Leer una entrada analógica bruta (ej: 0-27648) y transformarla en porcentaje.
Consejos Pro
Generalmente seguido por un bloque SCALE_X.
Si la entrada supera los límites, la salida superará 0.0 o 1.0.
Asegúrese de que MIN sea diferente de MAX.
SCALE_X — Escalar
SCALE_XQué hace
Toma un valor normalizado [0.0..1.0] y lo proyecta a un rango físico (ej: 0-100°C).
Cuándo usarlo
Convertir el resultado de NORM_X en una unidad de ingeniería leíble.
Consejos Pro
La combinación NORM_X + SCALE_X es el estándar Siemens moderno.
Permite cambiar rangos de sensores fácilmente.
También sirve para enviar consignas físicas a salidas analógicas.
Instrucciones Legacy
Compatibilidad S7-300 (FC105 / FC106)
SCALE / UNSCALE
Qué hace
Bloques antiguos que realizan la conversión directa en un solo paso.
Cuándo usarlo
Mantenimiento de programas migrados de Step 7 Classic.
Consejos Pro
SCALE corresponde al FC105 antiguo.
Use BIPOLAR para señales negativas (+/- 10V).
Prefiera NORM_X/SCALE_X para nuevos desarrollos.
Comparación de métodos
Elegir la instrucción adecuada
| Usted quiere... | Recomendada | Ejemplo |
|---|---|---|
| Cambiar tipo (Int -> Real) | CONVERT | Cálculo preciso |
| Quitar decimales | TRUNC | Visualización simple |
| Redondear | ROUND | Estadísticas |
| Sensor 4-20mA | NORM_X + SCALE_X | Presión 0-16 bar |
| Redondeo superior | CEIL | Cálculo de pallets |
| Código S7-300 | SCALE (FC105) | Migración |
Preguntas Frecuentes
¿Por qué usar NORM_X y SCALE_X en vez de un solo bloque?
Permite mayor flexibilidad para filtrar o limitar el valor normalizado antes de escalarlo.
¿Cuál es el valor estándar para entradas analógicas Siemens?
Normalmente 0 a 27648 para señales unipolares.
¿Cómo convertir a String?
CONVERT lo hace nativamente, o use VAL_STRG para más control.
¿Diferencia entre ROUND y TRUNC?
ROUND redondea al más cercano, TRUNC simplemente corta los decimales.