Entrada
Synchronous
CycleTime
5.1.3.17
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 el
hardware dispara un evento, como p. ej. un flanco, en una entrada o un evento de contador
rápido. Los eventos como errores de diagnóstico o de tiempo solo se producen cuando ocurre
un error. Las prioridades de eventos y las colas de espera sirven para determinar el orden de
procesamiento de los OB de alarma.
La CPU procesa los eventos en orden de prioridad, siendo 1 la prioridad más baja y 26 la más alta.
Antes de la V4.0 de la CPU S7-1200, cada tipo de OB pertenecía a una clase de prioridad fija (1
a 26). A partir de la versión 4.0 se puede asignar una clase de prioridad a cada OB que se
configure. El número de prioridad se configura en los atributos de las propiedades del OB.
Modos de ejecución con y sin interrupciones
Los OB (Página 75) se ejecutan en orden de prioridad de los eventos que los disparan. En
las propiedades de arranque de la configuración de dispositivos de la CPU (Página 153) es posible
configurar que la ejecución de los OB sea con o sin interrupciones. Recuerde que los OB de ciclo
siempre son con interrupciones, pero todos los demás OB se pueden configurar para que sean
con o sin interrupciones.
Con el modo con interrupciones activado, si se está ejecutando un OB y se produce un evento
de mayor prioridad antes de que se complete la ejecución del OB, esta se interrumpe para
permitir la ejecución del OB de evento de prioridad superior. El OB de evento de prioridad
superior se ejecuta y cuando la ejecución se ha completado continúa el OB que se había
interrumpido. Si se producen varios eventos mientras se está ejecutando un OB con
interrupciones, la CPU procesará los eventos en orden de prioridad.
Si no activa el modo con interrupciones, un OB se ejecutará hasta el final una vez disparado,
independientemente de cualquier otro evento que se dispare durante su ejecución.
Observe los dos casos siguientes, en los que unos eventos de alarma disparan un OB de ciclo y
un OB de retardo de tiempo. En ambos casos, el OB de retardo (OB 201) carece de asignación de
memoria imagen parcial de proceso (Página 67) y se ejecuta con prioridad 4. El OB de ciclo
(OB 200) tiene una asignación de memoria imagen parcial de proceso MIPP1 y se ejecuta con
prioridad 2. Las siguientes ilustraciones muestran la diferencia en la ejecución entre los modos
de ejecución con y sin interrupciones:
Controlador programable S7-1200
Manual de sistema, V4.5 05/2021, A5E02486683-AO
Tipo de datos Descripción
BOOL
Reservado
UDINT
Visualización del ciclo de aplicación configurado para el OB MC-Servo
en microsegundos
Principios básicos del PLC
5.1 Ejecución del programa de usuario
87