97BPrincipios básicos del PLC
4.1 Ejecución del programa de usuario
● Un OB de alarma de error de tiempo se ejecuta cuando se excede el tiempo de ciclo
● Los OBs de alarma de diagnóstico se ejecutan cuando se detecta y notifica un error de
4.1.4
Prioridades y colas de espera para la ejecución de eventos
El procesamiento de la CPU es controlado por eventos. Un evento dispara la ejecución de
un OB de alarma. Se puede definir el OB de alarma para un evento al crear el bloque, al
configurar dispositivos o con una instrucción ATTACH o DETACH. Algunos eventos ocurren
con regularidad, tales como los eventos de ciclo o cíclicos. Otros eventos ocurren una sola
vez, tales como el evento de arranque y los eventos de alarma de retardo. Algunos eventos
ocurren cuando se produce un cambio disparado por hardware, p. ej. un flanco en una
entrada o un evento de contador rápido. Asimismo, hay eventos p. ej. de error de
diagnóstico o de error de tiempo que ocurren solamente cuando se produce un error. Las
prioridades de eventos y las colas de espera sirven para determinar el orden de
procesamiento de los OBs de alarma.
El evento de ciclo ocurre una vez por ciclo del programa. Durante el ciclo del programa, la
CPU escribe en las salidas, lee las entradas y ejecuta los OBs de ciclo. El evento de ciclo es
necesario y siempre está habilitado. Es posible no tener OBs de ciclo, o bien tener varios
OBs de ciclo seleccionados para el evento de ciclo. Una vez disparado el evento de ciclo, se
ejecuta el OB de ciclo con el número más bajo (normalmente el OB 1). Los demás OBs de
ciclo se ejecutan secuencialmente (en orden numérico) dentro del ciclo de programa.
76
máximo o se produce un evento de error de tiempo. El OB para procesar la alarma de
error de tiempo es el OB 80. Si se dispara, se ejecuta, interrumpiendo la ejecución cíclica
normal del programa o cualquier otro OB de evento. A continuación se describen los
eventos que disparan la alarma de error de tiempo y la reacción de la CPU a dichos
eventos:
– Rebase del tiempo de ciclo máximo: el tiempo de ciclo máximo se configura en las
propiedades de la CPU. Si el OB 80 no existe, la reacción de la CPU al excederse el
tiempo máximo es cambiar a STOP.
– Errores de tiempo: Si el OB 80 no existe, la reacción de la CPU es permanecer en
RUN. Los errores de tiempo se producen cuando un evento de hora del día falta o se
repite, una cola se desborda, o bien cuando se inicia un OB de evento (evento de
retardo, evento de hora del día o una alarma cíclica) antes de que la CPU finalice la
ejecución del primero.
La aparición de cualquiera de esos eventos genera una entrada en el búfer de
diagnóstico que describe el evento. La entrada del búfer de diagnóstico se genera
independientemente de la existencia del OB 80.
diagnóstico. Los OBs de alarma de diagnóstico interrumpen la ejecución cíclica del
programa cuando el módulo apto para diagnóstico detecta un error (si se ha habilitado la
alarma de diagnóstico para ese módulo). El OB 82 es el único número de OB soportado
para el evento de error de diagnóstico. Es posible incluir una instrucción STP (poner
CPU a STOP) en el OB 82 para que la CPU pase al estado operativo STOP en cuanto
reciba este tipo de error. Si no hay ningún OB de diagnóstico en el programa, la CPU
ignora el error (permanece en RUN).
Controlador programable S7-1200
Manual de sistema, 11/2011, A5E02486683-05