Instrucciones TIA Portal

Control del Programa
Flujo y Ejecución

Domine el flujo lógico de su programa. Desde saltos condicionales hasta herramientas de diagnóstico en tiempo real, optimice la estructura de ejecución de su autómata.

¿Qué son las operaciones de control en TIA Portal?

Las operaciones de control del programa permiten modificar el orden secuencial de ejecución de los segmentos. Se utilizan para omitir partes del código (Saltos), crear ramificaciones complejas (Distribuidores) o gestionar el comportamiento interno de la CPU (Parada, Watchdog, Medida de tiempo).

Estas instrucciones son potentes pero deben usarse con precaución, especialmente la instrucción WAIT que bloquea el ciclo, o los saltos que pueden dificultar la depuración. TIA Portal también ofrece herramientas modernas para interceptar errores localmente en cada bloque.

Saltos y Flujo

Instrucciones de desvío del programa

JMP / JMPN — Saltos condicionales

JMP

Qué hace

JMP interrumpe la ejecución secuencial y salta a una etiqueta (LABEL) si el RLO es 1. JMPN hace lo mismo si el RLO es 0.

Cuándo usarlo

Omitir una sección de código que no debe ejecutarse en un modo específico, o crear bucles simples en LAD/FBD.

Consejos Pro

El destino del salto (LABEL) debe estar dentro del mismo bloque (FC o FB).

No use saltos hacia atrás para crear bucles sin condición de salida, ya que corre el riesgo de superar el tiempo de ciclo.

En SCL, use preferiblemente las estructuras IF...THEN o CASE...OF.

SWITCH — Distribuidor multicaso

SWITCH

Qué hace

Compara un valor de entrada con varios valores objetivo y salta al segmento correspondiente al primer caso verificado. Equivalente gráfico del Switch/Case.

Cuándo usarlo

Gestión de estados máquina (Grafcet simple), selección de modos de funcionamiento o enrutamiento de piezas según un código tipo.

Consejos Pro

Más limpio y legible que una serie de comparadores == puestos en serie.

Use la entrada 'ELSE' para gestionar el caso en que ningún valor coincida.

Ideal para estructuras de menús en HMI.

RET — Retorno

RET

Qué hace

Fuerza el fin de la ejecución del bloque actual (FC/FB) y regresa al bloque llamante.

Cuándo usarlo

Terminación anticipada de una función si se detecta un error al inicio del bloque, o si no se cumple una condición de seguridad.

Consejos Pro

Útil para optimizar el tiempo de ciclo al no procesar el resto del código innecesariamente.

Sea vigilante: las salidas del bloque no procesadas mantendrán su último estado.

En SCL, use la instrucción RETURN;

Control del Runtime

Gestión del ciclo CPU y medidas de rendimiento

RUNTIME — Medir el tiempo

RUNTIME

Qué hace

Mide el tiempo de ejecución de una porción de programa o del bloque entero en microsegundos (µs).

Cuándo usarlo

Optimización de código, diagnóstico de segmentos pesados o cálculos de rendimiento de la máquina.

Consejos Pro

Llame a RUNTIME una vez para inicializar la medida y una segunda vez para obtener el resultado.

Use el tipo de datos LReal para almacenar el resultado de la medida.

Práctico para comprobar si un bucle FOR complejo se acerca a los límites del watchdog.

WAIT — Temporización fija

WAIT

Qué hace

Suspende la ejecución del programa durante una duración especificada en microsegundos. ATENCIÓN: a diferencia de un Temporizador, WAIT bloquea totalmente el ciclo de la CPU.

Cuándo usarlo

Esperar unos microsegundos para estabilizar una señal electrónica en una tarjeta de E/S ultra rápida.

Consejos Pro

Usar con extrema moderación. Un WAIT demasiado largo activará un error Watchdog y detendrá el PLC.

Nunca usar para retardos de proceso (segundos/minutos); use Temporizadores TON para ello.

Solo disponible en S7-1500.

STP — Parada de CPU

STP

Qué hace

Fuerza el paso de la CPU a modo STOP.

Cuándo usarlo

Condición de error fatal donde la máquina no debe ser controlada, o prueba de diagnóstico.

Consejos Pro

La parada es inmediata. Se requerirá intervención manual (HMI o interruptor) para reiniciar.

Prefiera la gestión de alarmas con modo seguro antes que la parada brusca de la CPU siempre que sea posible.

Útil en proyectos de puesta en marcha para hacer un 'break' en un punto preciso.

Gestión de Errores

Intercepción local de fallos de ejecución

GET_ERROR / GET_ERR_ID

Qué hacen

Recuperan información sobre el primer error ocurrido dentro de un bloque (ej: acceso a un índice de array inexistente).

Cuándo usarlo

Hacer sus bloques robustos interceptando errores de programación sin detener el PLC.

Consejos Pro

GET_ERROR proporciona una estructura detallada, GET_ERR_ID solo devuelve el número del error.

Coloque estas instrucciones al final de sus bloques críticos.

Permite crear un registro de errores personalizado.

Saltos vs Estructuras de control

¿Qué método usar para desviar el programa?

Usted necesita...Instrucción recomendada¿Por qué?
Salto simple en LadderJMPOmitir un segmento
Opción múltiple complejaSWITCH / CASEMás legible que 10 saltos
Medir duración internaRUNTIMEOptimización de rendimiento
Parada inmediataSTPError crítico hardware
Espera muy cortaWAITEstabilización electrónica
Diagnóstico localGET_ERROREvitar el STOP de CPU

Preguntas Frecuentes

¿Cuál es la diferencia entre JMP y JMP_LIST?

JMP es un salto único. JMP_LIST permite definir una lista de destinos. Según un índice numérico, el programa salta a la 1ª, 2ª o N-ésima etiqueta de la lista.

¿Es peligrosa la instrucción WAIT?

Sí, si se usa mal. Suspende la ejecución de TODO el programa. Si sus esperas superan el tiempo de watchdog (ej: 150ms), la CPU pasará a STOP.

¿Cómo medir el tiempo de ciclo total del PLC?

No necesita RUNTIME para eso. Puede leerlo en las propiedades de la CPU online o usar las variables de sistema del OB1.

¿Dónde colocar las etiquetas LABEL?

Los LABEL pueden ir al inicio de cualquier segmento. En LAD aparecen sobre el raíl izquierdo. El nombre debe ser único en el bloque.

Automatice sus estructuras de control

Describa su lógica de salto y T-IA Connect generará los segmentos optimizados para su aplicación.