Cursos
Clase #33 - Funciones ASIN/ACOS/ATAN en TIA Portal V18: Obtener Ángulos desde Sensores en Ladder
Funciones ASIN/ACOS/ATAN en TIA Portal V18: Obtener Ángulos desde Sensores en Ladder
💡 Por qué este video es esencial: ASIN(1.0001) = NaN inmediato. ATAN(Y/X) pierde información de cuadrante. En este video te muestro cómo limitar entradas a [-1,1] antes de ASIN/ACOS usando bloques LIMIT_R, por qué debes usar ATAN2_YX en lugar de ATAN para posicionamiento real, y cómo convertir la salida de radianes a grados dentro de Ladder. ¡La demostración de recuperación ante error de sensor es clave!
👋 Introducción: De Datos Crudos a Orientación Precisa
Bienvenido a la Clase #33. Ya calculas posiciones a partir de ángulos (Clase #32). Ahora necesitas hacer lo inverso: tus sensores te dan distancias X/Y o razones trigonométricas, y tu PLC debe determinar dónde está realmente el actuador.
Estas funciones son vitales para:
Feedback de posición en brazos robóticos y elevadores
Navegación de AGVs/AMRs (calcular heading a partir de odometría)
Control de nivel/inclinación en plataformas estabilizadas
Diagnóstico de alineación en máquinas rotativas
En Ladder, estos bloques tienen restricciones matemáticas más estrictas que SIN/COS. Una entrada de 1.001 en ASIN no da un ángulo aproximado; da NaN y detiene tu lógica de movimiento. Además, la salida siempre es en radianes, inútil para operadores humanos sin conversión posterior.
En este artículo explicamos la conexión visual, pero ver la protección de dominio y la conversión integrada solo es posible en el video.
🎯 Lo que aprenderás en esta sesión (100% Ladder)
- Bloque ASIN_R/ACOS_R en Red Ladder: Protección obligatoria de entrada [-1,1] con LIMIT_R.
- Bloque ATAN2_YX vs. ATAN_R: Por qué ATAN2 preserva el cuadrante correcto en posicionamiento XY.
- Conversión Radianes→Grados Post-Cálculo: Fórmula (Rad × 180) / π implementada en red independiente.
- Patrón de Validación + Cálculo + Conversión: Estructura de 3 redes segura para arcotrigonometría.
- Aplicaciones Industriales Visuales: Cálculo de heading AGV, ángulo de brazo robótico, corrección de inclinación.
⚙️ Conceptos Clave (Resumen Técnico Ladder)
1. El Patrón Obligatorio: Limitar → Calcular → Convertir
Como demuestro en el minuto 02:50 del video, ASIN/ACOS NO perdonan entradas fuera de [-1,1]. Usa siempre este patrón de 3 redes:
- Red N: Protección de Dominio |--[M_Calc_Activa]--[LIMIT_R(IN:=Razon_Medida, MN:=-1.0, MX:=1.0)]--(Razon_Limitada)--| Red N+1: Cálculo Arcotrigonométrico |--[M_Calc_Activa]--[ASIN_R(IN:=Razon_Limitada)]--(Angulo_Rad)--| Red N+2: Conversión a Grados |--[M_Calc_Activa]--[MUL_R(IN1:=Angulo_Rad, IN2:=180.0)]--(Temp)--| |--[M_Calc_Activa]--[DIV_R(IN1:=Temp, IN2:=PI_Tag)]--(Angulo_Grados)--|
- Red N: LIMIT_R garantiza que la entrada nunca exceda [-1,1], incluso si el sensor falla o hay ruido.
- Red N+1: Calcula el ángulo en radianes de forma segura.
- Red N+2: Convierte a grados para HMI y lógica de control. Usa tag PI de alta precisión.
️Regla de Oro en Ladder: NUNCA conectes una razón medida directamente a ASIN/ACOS. Los sensores tienen tolerancia, ruido y offset. Sin LIMIT_R previo, un valor de 1.002 por ruido detendrá tu cálculo. La limitación es OBLIGATORIA.
2. ATAN2_YX: El Verdadero Estándar Industrial
Muchos estudiantes usan ATAN_R(Y/X), pero esto tiene dos problemas graves en Ladder:
Función | Problema en Ladder | Solución |
|---|---|---|
ATAN_R(Y/X) | Pierde información de cuadrante. ATAN(1/1) = ATAN(-1/-1) = 45° | Usa ATAN2_YX(Y,X) que devuelve ángulo correcto en [-π, π] |
ATAN_R(Y/X) | Error cuando X=0 (división por cero explícita) | ATAN2_YX maneja X=0 internamente sin fault |
ATAN_R(Y/X) | Requiere bloque DIV_R previo (más redes, más riesgo) | ATAN2_YX recibe Y y X separados, sin división |
Aplicación Ladder típica: Heading de AGV desde odometría:
- Red 1: |--[M_Nav_Activa]--[ATAN2_YX(Y:=Delta_Y, X:=Delta_X)]--(Heading_Rad)--| Red 2: |--[M_Nav_Activa]--[MUL_R(IN1:=Heading_Rad, IN2:=180.0)]--(Temp)--| |--[M_Nav_Activa]--[DIV_R(IN1:=Temp, IN2:=PI_Tag)]--(Heading_Grados)--|
Resultado: -180° a +180°, cuadrante correcto siempre, sin riesgo de div/0.
3. Aplicaciones Industriales Críticas en Ladder
- Ángulo de Brazo Robótico:
θ = ASIN(Altura_Vertical / Longitud_Brazo) → LIMIT_R protege contra mediciones de altura erróneas > longitud del brazo. - Corrección de Inclinación:
φ = ATAN2_YX(Acelerometro_Y, Acelerometro_X) → Compensa drift en plataformas móviles. - Alineación de Ejes:
Error_Angular = ACOS(Product_Punto / (Mag_A × Mag_B)) → LIMIT_R asegura que cociente esté en [-1,1].
En el video implementamos cálculo de heading AGV y comparamos ATAN vs. ATAN2 mostrando error de 180° en cuadrantes II y III.
✅ Checklist de ASIN/ACOS/ATAN en Ladder
Antes de implementar:
- ASIN/ACOS SIEMPRE precedidos por LIMIT_R(MN:=-1.0, MX:=1.0) en red anterior.
- Usar ATAN2_YX en lugar de ATAN_R para cualquier aplicación de posicionamiento XY.
- Conversión radianes→grados en red posterior usando tag PI de alta precisión.
- Cada bloque en su propia red independiente.
- Marca auxiliar usada para habilitar secuencia completa.
- Comentada cada red con unidades (rad vs grados) y propósito físico.
- Verificado que salida de ASIN/ACOS está en [-π/2, π/2] y ATAN2 en [-π, π].
Este checklist está demostrado en el proyecto Ladder del video. Úsalo como referencia.
🛑 Errores Comunes en Ladder con ASIN/ACOS/ATAN
ASIN/ACOS Sin LIMIT_R: Entrada 1.002 por ruido → NaN. Tu robot se detiene inexplicablemente.
Usar ATAN en Lugar de ATAN2: Error de 180° en mitad de los cuadrantes. El AGV gira en dirección opuesta.
Olvidar Conversión a Grados: Salida en radianes enviada directo a HMI. Operador ve "1.57" en lugar de "90°". Confusión operativa.
PI Hardcodeado Como 3.14 en Conversión: Error angular sistemático. Usa tag DB PI_HighPrec.
Poner Bloques en Rama Compleja: Combinar ASIN con contactos lógicos en misma rama → ejecución condicional no deseada. Redes separadas siempre.
👉 MIRA EL VIDEO PARA VER LA DIFERENCIA ENTRE ATAN Y ATAN2 CON PUNTOS EN TODOS LOS CUADRANTES
¿Te ha pasado que tu robot calcula un ángulo imposible o tu AGV navega en dirección opuesta?
Déjame un comentario en YouTube describiendo cómo conectaste los bloques. Te ayudaremos a verificar protecciones de dominio y elección de función trigonométrica.
🔔 ¡Suscríbete y activa la campanita! En la Clase #34 exploramos FRAC y EXPT en Ladder para extraer partes decimales de señales y calcular potencias no enteras. ¡Esencial para procesamiento de datos analógicos avanzados!

Publicar un comentario
0 Comentarios