Conceptos básicos de los PLC de la forma más sencilla
4.3 Ejecución del programa de usuario
● Los OBs de alarma de diagnóstico se ejecutan cuando se detecta y notifica un error de
4.3.3
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, los grupos de prioridad 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.
Los eventos de alarma cíclica permiten configurar la ejecución de un OB de alarma en un
tiempo de ciclo configurado. El tiempo de ciclo inicial se configura al crear el OB y
seleccionar que sea de alarma cíclica. Un evento cíclico interrumpe el ciclo del programa y
ejecuta el OB de alarma cíclica (el evento cíclico está en un grupo de mayor prioridad que el
evento de ciclo del programa).
Un solo OB de alarma cíclica puede asignarse a un evento cíclico.
A cada evento cíclico se le puede asignar un desfase. De este modo, la ejecución de
alarmas cíclicas con el mismo tiempo de ciclo puede ejecutarse con un offset entre ellas
equivalente a la cantidad de desfase. El desfase predeterminado es 0. Para modificar el
desfase inicial, o para cambiar el tiempo de ciclo inicial de un evento cíclico, haga clic con el
botón derecho del ratón en el OB de alarma cíclica del árbol de proyectos, haga clic en
"Propiedades" y, a continuación, haga clic en "Alarma cíclica" e introduzca los valores
iniciales nuevos. También se puede consultar y modificar el tiempo de ciclo y el desfase
desde el programa con las instrucciones de consulta de alarma cíclica (QRY_CINT) y ajuste
de alarma cíclica (SET_CINT). Los valores de tiempo de ciclo y desfase definidos en la
instrucción SET_CINT no se conservan tras desconectar y conectar la alimentación, o tras
pasar a estado operativo STOP; los valores de tiempo de ciclo y desfase vuelven a los
valores iniciales tras desconectar y conectar la alimentación, o tras pasar a estado operativo
STOP. La CPU soporta un total de cuatro eventos de alarmas cíclicas y de retardo.
52
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).
Manual de producto, 04/2011, A5E02486778-02
Easy Book