Está en la página 1de 31

Ejecución Especial

Automatización Industrial

Índice
TEMA – Ejecución Especial
1. – Ejecución de Programas
2. – Ejecución Cíclica de Programas
2.1 – Tiempos de Ciclo
2.2 – Programación del OB1
3. – Ejecución en el Arranque
4. – Ejecución por Interrupciones
5. – Ejecución por Tiempo – Alarmas Cíclicas
6. – Ejecución por Tiempo – Alarmas Horarias
7. – Ejecución por Tiempo – Alarmas de Retardo
8. – Ejecución por Error – Alarmas de Error
Ejecución de Programas – Módulos de Organización

OB10 :
Interrupción
Horaria

OB1
se ejecuta
continuamente

OB82: ... a menos que sea


Error interrumpido por otro OB
Asíncrono

Módulos de Organización (OB´s)


El sistema operativo
OB1 llama a otros OBs Ejemplo de OB10:
para utilizarlos: Ejecuta este módulo
Programa Principal cada minuto.
Empieza a las 9:00
Ejecución cíclica
hasta ser interrumpido
por un OB con una más Ejemplo de OB20:
alta prioridad. Ejecuta este módulo
2.35” después de
Una vez interrumpido detectar un evento
por el sistema operativo
el OB1 rompe su ciclo
Ejemplo de OB82:
y ejecuta el OB
Ejecuta este módulo
requerido.
si hay un cortocircuito
en la entrada
analógica PIW532
Almacenamiento de Datos de un OB Interrumpido

Pila de Interrupción (Pila I)


Contenido acumuladores ACCU1,ACCU2

Contenido registros direcciones AR1, AR2


El sistema llama a un
nuevo OB
Contenido registros módulos datos DB, DI

Puntero en la Pila L
Antes de ejecutar el
nuevo OB, se salvan Palabra Estado, Registro MCR, Puntero Pila B
los registros del
módulo interrumpido Pila de Módulo (Pila B)
Registros DB y DI

Puntero de datos temporales (pila L)

Número de Módulo

Dirección de retorno

OB´s de Error y de Interrupción


• Los OBs se encuadran dentro de dos categorías; sus respectivas funciones determinan
qué dispara el punto de ruptura del OB que se esté ejecutando.

– OBs que realizan tareas periódicas (Interrupción Horaria)


• Se ejecuta en una fecha u hora del día especificada
• Se ejecuta tras una demora especificada después de un evento
• Se ejecuta en un ciclo especificado
– OBs que reaccionan a condiciones de error (Interrupción Error)
• Se ejecuta si la CPU detecta un error de proceso o de hardware
• Se ejecuta si la CPU detecta un error que no está relacionado con una
instrucción específica del programa
• Se ejecuta si la CPU detecta un error que puede ser asociado al procesamiento
de una instrucción específica del programa
Módulos de Organización de Alarmas
Tipo de Alarma OB´s Prioridad Comentarios
Ciclo libre OB1 1 Bloque de organización para la
(OB1) ejecución cíclica
Alarmas horarias OB 10 a OB 17 2 Bloques de organización para la
(OB 10) alarma horaria (OB 10 a OB 17)
Alarmas de retardo OB 20 a OB 23 3a6 Bloques de organización para
(OB 20) alarma de retardo (OB 20 a OB 23)
Alarmas cíclicas OB 30 a OB 38 7 a 15 Bloques de organización de alarma
(OB 35) cíclica (OB 30 a OB 38)
Alarmas de proceso OB 40 a OB 47 16 a 23 Bloques de organización de alarma
(OB 40) de proceso (OB 40 a OB 47)
Errores asíncronos OB 80 a OB 87 26 ò 28 Bloques de organización para el
(OB 82) tratamiento de errores
Arranque OB 100 a OB 102 27 Bloques de organización de
(OB 100) arranque (OB 100/OB 101/OB 102)
Errores síncronos OB 121 y OB 122 - Bloques de organización para el
tratamiento de errores

• Otros OB´s soportados por la CPU 315:


• OB 80, OB 81, OB 85, OB 87, OB 121 y OB122

Ejecución Cíclica de Programas

• La ejecución más común es la ejecución cíclica


• Existen otros tipos de ejecuciones conducidas por eventos
• En la mayoría de los casos, la ejecución de un programa conducido por eventos es un
añadido a la ejecución cíclica
• El programa principal es invocado desde el OB1:
• se ejecuta con el nivel más bajo de prioridad
• puede ser interrumpido por todos los otros tipos de procesamiento
del programa
• Al finalizar la ejecución del OB1 se actualizan las imágenes del proceso
• Si se presenta un error en la actualización de las imágenes se llama al OB 85
(programa que se ejecuta ante errores)
• Si no existe el OB 85, la CPU pasa a STOP
Tiempo de Ciclo (I)

• El tiempo de ejecución del programa del OB 1 es supervisado


• El valor por defecto es 150 mseg.
• Se puede ajustar desde 1 mseg a 6 segundos en la configuración de la CPU
• Si el tiempo de procesamiento del programa principal es mayor que el tiempo fijado, llama
al OB 80 (“error de tiempo”). Si el OB 80 no existe la CPU pasa a modo STOP.
• El tiempo de ciclo ajustado debe cubrir:
• El tiempo de procesamiento del OB1. Actualización de las imágenes
• El tiempo de procesamiento de interrupciones de alta prioridad
• Procesos de comunicación del sistema operativo
• Acceso a la CPU desde un dispositivo de programación

SFC 43 RE_TRIGR: Arrancar de nuevo el tiempo de vigilancia de ciclo


• Inicia de nuevo el tiempo de vigilancia de ciclo
• No tiene parámetros

Tiempo de Ciclo (II)


• El tiempo de ciclo es el tiempo que el S.O. necesita para:
• ejecutar el programa cíclico
• partes del programa que interrumpen al cíclico (ejecución otros OBs)
• actividades del sistema (p.e. actualización de imágenes, ..)

• El tiempo de ciclo se vigila


• El tiempo de ciclo no es igual para cada ciclo
Tiempo de Ciclo (III) – Marcas de Ciclo

Variables Locales del OB1

Variable Tipo de datos Descripción


OB1_EV_CLASS BYTE Clase de evento e identificadores: B#16#11: activo
OB1_SCAN_1 BYTE Información de arranque
B#16#01: Conclusión del rearranque completo(caliente)
B#16#02: Conclusión del rearranque
B#16#03: Conclusión del ciclo libre
B#16#04: Conclusión del arranque en frío
OB1_PRIORITY BYTE Prioridad: 1
OB1_OB_NUMBR BYTE Número de OB (01)
OB1_RESERVED_1 BYTE Reservado
OB1_RESERVED_2 BYTE Reservado
OB1_PREV_CYCLE INT Tiempo de ejecución del ciclo anterior (ms)
OB1_MIN_CYCLE INT Tiempo de ciclo mínimo (ms) desde el último arranque
OB1_MAX_CYCLE INT Tiempo de ciclo máximo (ms) desde el último arranque
OB1_DATE_TIME DATE_TIME Fecha y hora en que se solicitó el OB
SFC´s – Diagnóstico
SFC 6 RD_INFO: Leer información de arranque del OB actual
Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT INT E, A, M, D, L Información de error
TOP_SI OUTPUT STRUCT D, L Información de arranque
del OB actual
START_UP_SI OUTPUT STRUCT D, L Información de arranque del
último OB activado

SFC´s – Gestión del Reloj en Tiempo Real

SFC 0 SET_CLK. Ajustar la hora


Parámetro Declaración Tipo de datos Area de memoria Descripción
PDT INPUT DT D, L, Entrada PDT para indican fecha
y hora que se desea ajustar
RET_VAL OUTPUT INT E, A, M, D, L Parámetro con código de error.

SFC 1 READ_CLK. Leer la hora


Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT INT E, A, M, D, L Parámetro con código de error
CDT OUTPUT DT D, L En la salida CDT se emiten la
fecha y la hora actuales.

SFC 64 TIME_TCK: Leer el cronómetro del sistema


Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT TIME E, A, M, D, L El parámetro tiene el cronometro
del sistema, comprendido entre
0 a 2elevado a 31–1 ms.
SFC´s – Gestión del Contador de Horas de Funcionamiento (I)
SFC 2 SET_RTM: Ajustar contador de horas de funcionamiento
Parámetro Declaración Tipo de datos Area de memoria Descripción
NR INPUT Byte E, A, M, D, L, Número del contador de horas
Const. de funcionamiento que se desea
ajustar. Valores posibles: 0a 7.
PV INPUT INT E, A, M, D, L, Contiene ajuste para el contador
Const. de horas de funcionamiento.
RET_VAL OUTPUT INT E, A, M, D, L Parámetro con código de error

SFC 3 CTRL_RTM: Arrancar y parar contador de horas de funcionamiento


Parámetro Declaración Tipo de datos Area de memoria Descripción
NR INPUT Byte E, A, M, D, L, Número del contador de horas
Const. de funcionamiento que se desea
arrancar o parar. Valores (0 - 7)
S INPUT BOOL E, A, M, D, L, Arranca o para el contador
Const. Se para con ”0”, arranca con”1”
RET_VAL OUTPUT INT E, A, M, D, L Parámetro con código de error

SFC´s – Gestión del Contador de Horas de Funcionamiento (II)

• SFC 4 READ_RTM: Leer el contador de horas de funcionamiento


Parámetro Declaración Tipo de datos Area de memoria Descripción
NR INPUT Byte E, A, M, D, L, Número del contador de horas de
Const. funcionamiento. Valores: 0 a 7.
CQ OUTPUT BOOL E, A, M, D, L Indica si contador está en marcha
o parado. Un ”0” indica parado.
Un ”1” indica en marcha.
CV OUTPUT INT E, A, M, D, L Emite el valor actual del contador.
RET_VA L OUTPUT INT E, A, M, D, L Parámetro con código de error
SFC´s – Varios
SFC 25 COMPRESS: Comprimir la memoria de usuario
Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT INT E, A, M, D, L Información de error
BUSY OUTPUT BOOL E, A, M, D, L Información si está activada la
compresión con la SFC 25 (1si)
DONE OUTPUT BOOL E, A, M, D, L Informa. si proceso a finalizado
con con éxito (1 significa éxito)

SFC 46 STP. Poner la CPU en stop


• No tiene parámetros

SFC 47 WAIT:. Retarda el tratamiento del programa de usuario


Parámetro Declaración Tipo de datos Area de memoria Descripción
WT INPUT INT E, A, M, D, L El parámetro WT contiene el
tiempo de retardo en ms.

Ejecución en el Arranque

• Previamente a que la CPU ejecute el programa principal se puede


ejecutar una rutina de arranque
• Mediante los módulos de ejecución en el arranque es posible fijar el
comportamiento del autómata antes de la primera ejecución del programa
• El módulo de organización asignado a cada tipo de arranque se ejecuta
una sola vez en cada arranque
• Mientras se ejecutan los módulos asignados al arranque no está activada la
vigilancia de tiempo de ciclo
• La CPU tiene 4 posibles estados, STOP, STARTUP, HOLD y RUN
• El relacionado con la fase de arranque se denomina STARTUP
Modos de Operación de las CPU´s (I)
2
3
5 STARTUP

1 7
STOP RUN
8
HOLD 6
4

(1) Alimentación al equipo. La CPU pasa a modo STOP


(2) Si la llave esta en RUN o RUN-P, la CPU pasa a modo STARTUP
(3) Posteriormente a modo RUN
(4)(5) Error no reconocido o cambio de posición de la llave, paso a STOP
(6)(7) En el modo HOLD el programa de usuario es testeado. Se puede
conmutar a este modo desde STARTUP o RUN y retornar al modo
original cuando el test es interrumpido
(8) Se puede llevar la CPU a STOP desde el modo HOLD
El comportamiento en el arranque se define en la configuración de la CPU

Modos de Operación de las CPU´s (II)

• Existen tres modos de arrancar el equipo


• arranque en frío (cold restart)
• arranque completo
• arranque en caliente (warm restart)
• En el arranque en frío o completo, el programa principal se ejecuta desde el
comienzo. En un arranque en caliente, continua el programa principal en el
punto de interrupción y finaliza el ciclo.
• Cada modo de arranque tiene asignado un módulo de organización
• arranque completo, OB 100
• arranque en frío, OB 102
• arranque en caliente, OB 101
• si no existen ninguno de estos módulos se pasa al programa principal
• En los modos STOP o HOLD los módulos de salida no están operativos
• Cuando la ejecución cíclica comienza, los módulos están liberados
• En el arranque en frío o completo, las imágenes del proceso son puestas a cero
• Desde el OB 100 y OB 102, se pueden consultar entradas y activar salidas
accediendo a periferia.
Modo STOP

• Las CPUs se ponen en STOP:


• cuando esta seleccionado este modo con la llave
• cuando se conmuta de RUN a STOP
• cuando se presenta un error no reconocible en la ejecución del programa
• cuando se ejecuta la SFC 46 (STOP)
• cuando se solicita desde el dispositivo de programación
• La CPU introduce la razón del STOP en el buffer de diagnóstico, que puede
ser consultado con el aparato de programación
• En modo STOP el programa de usuario no es ejecutado
• En modo STOP se puede hacer un reset de la memoria de usuario:
• desde el selector de la CPU
• desde el aparato de programación

Variables Locales de los OB´s de Arranque


Variable Tipo de datos Descripción
OB100_EV_CLASS BYTE Clase de evento e indicativos: B#16#13: activado
OB100_STRTUP BYTE Solicitud de arranque:
B#16#81: Sol. manual de rearranque completo (en caliente)
B#16#82: Sol. automática de rearranque completo (en caliente)
B#16#83: Sol. manual de rearranque
B#16#84: Sol. automática de rearranque
B#16#85: Sol. manual de arranque en frío
B#16#86: Sol. automática de arranque en frío
OB100_PRIORITY BYTE Prioridad: 27
OB100_OB_NUMBR BYTE Número de OB (100, 101 ó 102)
OB100_RESERVED_1 BYTE Reservado
OB100_RESERVED_2 BYTE Reservado
OB100_STOP WORD Número del evento que ha llevado la CPU a STOP
OB100_STRT_INFO DWORD Informaciones complementarias sobre el arranque actual
(tabla)
OB100_DATE_TIME DATE_TIME Fecha y hora a las que se solicitó el OB
Arranque Completo

Arranque RUN
Borrar datos
completo
no remanentes

Inhibir módulos
de salida Inicializar Transferir imagen
módulos proceso de salidas

Borrar imagen del


Ejecutar Actualizar imagen
proceso de entradas
OB 100 proceso de entradas

Borrar imagen del Actualizar imagen Programa principal


proceso de salidas proceso de entradas OB 1

Reset salidas Liberar módulos


del proceso de salida

SFC´s Para Programar OB´s de Arranque


• Las Funciones de Sistema integradas (SFCs) permiten direccionar módulos
y realizar comprobaciones previas a la ejecución cíclica del programa

• SFCs para direccionar módulos:


SFC 5 GADR_LGC Determinar la dirección lógica de un canal
SFC 49 LGC_GADR Determinar el slot de una dirección lógica
SFC 50 RD_LGADR Determinar direcciones lógicas de un módulo

• SFCs para transferir a registros:


SFC 54 RD_DPARM Leer parámetros definidos
SFC 55 WR_PARM Escribir parámetros dinámicos
SFC 56 WR_DPARM Escribir parámetros predefinidos
SFC 57 PARM_MOD Parametizar módulo
SFC 58 WR_REC Escribir registros
SFC 59 RD_REC Leer registro
SFC 5
Parámetro Declaración Tipo de datos Area de memoria Descripción
SUBNETID INPUT BYTE E, A, M, D, L Identificador del área:
Const. - 0, en caso que el slot esté en
bastidor central o de ampliación
RACK INPUT WORD E, A, M, D, L, Número del bástidor en el caso de
Const. Identificador de área = 0
SLOT INPUT WORD E, A, M, D, L, No de slot
Const.
SUBSLOT INPUT BYTE E, A, M, D, L, Receptáculo de submódulo
Const. (sin submódulo 0)
SUBADDR INPUT WORD E, A, M, D, L, Offset en el espacio de direcciones
Const. de datos útiles del módulo
RET_VAL OUTPUT INT E, A, M, D, L Informaciones de error
IOID OUTPUT BYTE E, A, M, D, L Identificador del área:
B#16#54: Entrada de periferia (PE)
B#16#55: Salida de periferia (PA)
LADDR OUTPUT WORD E, A, M, D, L Dirección lógica del canal

SFC 49
Parámetro Declaración Tipo de datos Area de memoria Descripción
IOID INPUT BYTE E, A, M, D, L, Identificador del área:
Const. B#16#54: Entrada de periferia (PI)
B#16#55: Salida de periferia (PQ)
LADDR INPUT WORD E, A, M, D, L, Dirección lógica
Const.
RET_VAL OUTPUT INT E, A, M, D, L Informaciones de error
AREA OUTPUT BYTE E, A, M, D, L Identificador del área: Indica
cómo interpretar el resto
de los parámetros de salida.
RACK OUTPUT WORD E, A, M, D, L No. de bastidor
SLOT OUTPUT WORD E, A, M, D, L No. de slot
SUBADDR OUTPUT WORD E, A, M, D, L Offset en el espacio de dirección
de datos útiles del módulo
SFC 50
Parámetro Declaración Tipo de datos Area de memoria Descripción
IOID INPUT BYTE E, A, M, D, L, Identificador del área:
Const. B#16#54: Entrada de periferia (PI)
B#16#55: Salida de periferia (PQ)
LADDR INPUT WORD E, A, M, D, L, Una dirección lógica
Const.
RET_VAL OUTPUT INT E, A, M, D, L Informaciones de error
PEADDR OUTPUT ANY E, A, M, D, L Campo para direcciones PI,
elementos de campo deben
ser del tipo de datos WORD.
PECOUNT OUTPUT INT E, A, M, D, L Cantidad de direcciones PI
devueltas
PAADDR OUTPUT ANY E, A, M, D, L Campo para las direcciones PA;
los elementos de campo deben
ser del tipo de datos WORD.
PACOUNT OUTPUT INT E, A, M, D, L Cantidad de direcciones PA
devueltas

Ejecución por Interrupciones

• El manejo de las interrupciones es siempre llevada por eventos


• Cuando se presenta un evento, el sistema operativo interrumpe la
ejecución del programa principal y llama a la rutina de atención
al evento particular
• Cuando finaliza la rutina de atención al evento, el sistema operativo
retorna al programa principal continuando en el punto en el que se
produjo la interrupción
• Existen varios tipos de ejecuciones conducidas por eventos
• En la mayoría de los casos, la ejecución de un programa conducido por
eventos es un añadido a la ejecución cíclica
• Las ejecuciones conducidas por eventos admiten una prioridad
• La ejecución se puede permitir o inhibir con las SFCs de gestión de
eventos de alarma:
• SFC 39 DIS_IRT SFC 40 EN_AIRT
• SFC 41 DIS_AIRT SFC 42 EN_IRT
Interrupciones del Hardware (I)

• Las interrupciones de hardware permiten detectar inmediatamente en el


programa de usuario eventos ocurridos en el control del proceso
• STEP 7 ofrece los OB 40 a OB 47 para la ejecución por interrupción
• En la CPU 315 soporta únicamente el OB 40 con prioridad 16 por defecto
• Las interrupciones se parametrizan en la configuración del hardware
• Se pueden parametrizar los módulos con capacidad de interrupción en fase de
ejecución con las SFCs para transferir registros:
• SFC 55 WR_PARM Escribir parámetros dinámicos
• SFC 56 WR_DPARM Escribir parámetros predefinidos
• SFC 57 PARM_MOD Parametrizar módulo
• Por defecto las interrupciones de hardware no están permitidas
• se puede especificar si se tiene que producir la interrupción con el evento
• se permite modificar los parámetros dinámicamente (RUN) con SFCs
• Las interrupciones de hardware son reconocidas en el módulo cuando el módulo
de organización que contiene la rutina de atención a la interrupción ha finalizado
su ejecución

Interrupciones del Hardware (II)

• En la rutina de arranque los módulos no generan interrupciones hardware


• El manejo de las interrupciones comienza con la transición a RUN
• Si una interrupción hardware es generada pero no hay OB de atención a la
misma, el S.O. llama al OB 85 (ejecución por error). Si el OB 85 no ha sido
programado la CPU se va a stop
• Las llamadas a los OBs pueden ser bloqueadas o habilitadas con las SFCs:
• SFC 39 DIS_IRT Bloquear tratamiento de nuevos eventos de alarma
• SFC 40 EN_IRT Habilitar tratamiento de nuevos eventos de alarma
• Pueden ser retrasadas y habilitadas con los SFCs:
• SFC 41 DIS_AIRT Retardar el tratamiento de eventos de alarmas
• SFC 42 EN_AIRT Habilitar el tratamiento de eventos de alarmas
Configuración Hardware de Alarmas del Proceso

Variables Locales de OB´s de Alarma del Proceso

Variable Tipo de datos Descripción


OB40_EV_CLASS BYTE Clase de evento e identificadores:
B#16#11: Alarma está activada
OB40_STRT_INF BYTE B#16#41: Alarma a través de línea de interrupción 1
B#16#42: Alarma a través de línea de interrupción 2 (S7–400)
B#16#43: Alarma a través de línea de interrupción 3 (S7–400)
B#16#44: Alarma a través de línea de interrupción 4 (S7–400)
OB40_PRIORITY BYTEPrioridad parametrizada; valor prefijado: de 16 a 23
OB40_OB_NUMBR BYTENúmero de OB (40 hasta 47)
OB40_RESERVED_1 BYTEReservado
OB40_IO_FLAG BYTEMódulo de entradas: B#16#54
Módulo de salidas: B#16#55
OB40_MDL_ADDR WORD Dirección básica lógica del módulo que ha activado
la alarma
OB40_POINT_ADDR DWORD En módulos digitales: Mapa de bits con los estados de
las entradas en el módulo
En módulos analógicos, CPs o IMs: Estado de alarma
del módulo
OB40_DATE_TIME DATE_TIME Fecha y hora a las que se solicitó el OB
SFC´s Relacionados con Interrupciones (I)
SFC 39 DIS_IRT: Bloquea tratamiento de alarma
Parámetro Declaración Tipo de datos Area de memoria Descripción
MODE INPUT BYTE E, A, M, D, L, Define los eventos de alarma y de
Const. error asíncrono que se bloquean
OB_NR INPUT INT E, A, M, D, L, Nº del OB
Const.
RET_VAL OUTPUT INT E, A, M, D, L Si ocurre un error al procesar
la función, el valor de retorno
contiene el código.
SFC 40 EN_IRT: Habilita el tratamiento de alarma
Parámetro Declaración Tipo de datos Area de memoria Descripción
MODE INPUT BYTE E, A, M, D, L, Define los eventos de alarma y
Const. error asíncrono que se habilitan
OB_NR INPUT INT E, A, M, D, L, Nº del DB
Const.
RET_VAL OUTPUT INT E, A, M, D, L Si ocurre un error al procesar la
función, el valor de retorno
contiene el código.

SFC´s Relacionados con Interrupciones (II)


SFC 41 DIS_AIRT: Retarda el tratamiento de alarma
Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT INT E, A, M, D, L Cantidad de retardos (= cantidad de
llamadas de la SFC 41)

SFC 42 EN_AIRT: Habilita el tratamiento de eventos de alarmas


Parámetro Declaración Tipo de datos Area de memoria Descripción
RET_VAL OUTPUT INT E, A, M, D, L Cantidad de retardos programados tras la
ejecución de SFC 42 o código de error
Interrupciones de Proceso (I)

Módulo de Entradas Analógicas

Si el valor del transmisor de nivel PIW 288


es mayor que el límite superior (8 voltios)
o menor que el límite inferior (2 voltios)
habilitados para esta entrada analógica, llama
al OB40.
+27648 = 10V.
+ 8 V. Límite superior para la interrupción

+ 2 V. Límite inferior para la interrupción


0

Interrupciones de Proceso (II)


Tarjeta de Entradas Analógicas

Si el valor de la PIW 288 es mayor


que el límite superior para este canal
analógico, llama al OB40.
+27648
Visualiza un mensaje de error.
+20000
Límite superior AW0
para la interrupción
0
SFC´s Relacionados con Interrupciones (III)
SFC 55

SFC´s Relacionados con Interrupciones (IV)


SFC 56
SFC´s Relacionados con Interrupciones (V)
SFC 57 PARM_MOD: Parametrizar módulo
Parámetro Declaración Tipo de datos Area de memoria Descripción
REQ INPUT BOOL E, A, M, D, L, REQ=1: Petición de escritura
Const.
IOID INPUT BYTE E, A, M, D, L, Identificador del área:
Const. B#16#54 = Entrada de periferia (PI)
B#16#55 = Salida de periferia (PQ)
LADDR INPUT WORD E, A , M, D, L, Dirección base lógica del módulo. En
Const. un módulo mixto es necesario indicar
la menor de las dos direcciones.
RET_VAL OUTPUT INT E, A, M, D, L Si ocurre un error al procesar la función,
el valor de retorno contiene un código
de error.
BUSY OUTPUT BOOL E, A, M, D, L BUSY = 1: La operación de escritura
no ha finalizado aún.

Ejecución por Tiempo – Alarmas Cíclicas

• Una alarma cíclica es una interrupción que es generada en intervalos


periódicos de tiempo.
• La alarma permite ejecutar un programa concreto periódicamente,
independientemente del tiempo de ejecución del programa cíclico
• En STEP 7 se dedican a esta función desde el OB 30 al OB 38
• La CPU 315 dispone únicamente del OB 35 que tiene la prioridad 12
• Se puede fijar el intervalo de tiempo en el rango de 1 mseg a 1 minuto
• El comienzo del tiempo para el intervalo de tiempo es el instante de la
transición START UP a RUN
• La ejecución se puede permitir o inhibir con las SFCs:
• SFC 39 DIS_IRT SFC 40 EN_AIRT
• SFC 41 DIS_AIRT SFC 42 EN_IRT
Interrupciones Cíclicas
• El OB de interrupciones cíclicas (OB35) permite interrumpir el
programa a intervalos de tiempo fijos.
Una vez activado, el OB35 se ejecutará según un intervalo de tiempo
fijado al “Configurar el HW”.

OB35
OB35
OB1
se ejecuta ...interrumpe el OB1 y se
continuamente ejecuta el OB35 cada 250ms

OB35
OB35

Configuración de Interrupciones Cíclicas


Variables Locales de OB de Alarma Cíclica

Variable Tipo de datos Descripción


OB35_EV_CLASS BYTE Clase de evento e identificadores:
B#16#11: Alarma está activada
OB35_STRT_INF BYTE (B#16#31: Solicitud de arranque para OB 30)
:
B#16#36: Solicitud de arranque para OB 35
:
(B#16#39: Solicitud de arranque para OB 38)
OB35_PRIORITY BYTE Prioridad parametrizada; valor prefijado:
de 7 (OB 30) a 15 (OB 38)
OB35_OB_NUMBR BYTE Número de OB (30 hasta 38)
OB35_RESERVED_1 BYTE Reservado
OB35_RESERVED_2 BYTE Reservado
OB35_PHASE_OFFSET WORD Desfase en ms
OB35_RESERVED_3 INT Reservado
OB35_EXC_FREQ INT Cadencia temporal en ms
OB35_DATE_TIME DATE_TIME Fecha y hora a las que se solicitó el OB.

Ejecución por Tiempo – Alarmas Horarias

• Una alarma horaria es una interrupción que permite ejecutar un programa


en un tiempo concreto, una sola vez o periódicamente.
• En STEP 7 se dedican a interrupciones horarias del OB 10 al OB 17
• La CPU 315 dispone únicamente del OB 10 que tiene la prioridad 2
• Las interrupciones horarias se pueden parametrizan:
• en la configuración del hardware
• en fase de ejecución usando SFCs
• Se puede arrancar una interrupción horaria:
• una sola vez: el OB es llamado una sola vez en el momento especificado
• periódicamente: depende de la configuración (cada minuto, hora, día,...
Interrupciones Horarias (I)

• El OB Horario (OB10 en el S7-315) permite interrumpir el OB cíclico y ejecutar un


código en una fecha especificada o a intervalos especificados. Se puede programar este
OB para que se ejecute en los siguientes intervalos:
– Una vez: se ejecuta una vez, en el momento especificado.
– Cada minuto: Se ejecuta en intervalos de 1 minuto, empezando desde el momento
especificado
– Cada hora: Se ejecuta en intervalos de 1 hora, empezando desde el momento
especificado
– Cada día: Se ejecuta 1 vez al día, desde el momento especificado
– Cada semana: Se ejecuta 1 vez por semana, empezando desde el momento
especificado
– Cada mes: Se ejecuta 1 vez al mes, empezando desde el momento especificado
– Cada año: Se ejecuta 1 vez al año, empezando desde el momento especificado

Interrupciones Horarias (II)

• En el arranque en frío o en el arranque completo, el sistema operativo


borra todas las activaciones realizadas mediante SFCs.
• Las realizadas en la configuración del hardware son mantenidas
• Se puede consultar el estado de la alarma horaria con la SFC 31 y
posteriormente, activar o desactivar la interrupción
• Las interrupciones horarias son atendidas sólo en modo RUN
• Si el OB de una interrupción horaria es llamado pero no está programado:
• el S.O. primero llama la OB 85 (programa de ejecución por error)
• si OB 85 no está programado, la CPU se va a STOP
• La ejecución se puede anular, activar, ajustar y consultar con las SFCs:
• SFC 28 SET_TINT SFC 29 CAN_TINT
• SFC 30 ACT_TINT SFC 31 QRY_TINT
Configuración de Interrupciones Horarias

Variables Locales de OB de Alarma Horaria


Variable Tipo de datos Descripción
OB10_EV_CLASS BYTE Clase de evento e identificadores:
B#16#11: Alarma activada
OB10_STRT_INFO BYTE B#16#11: Solicitud de arranque para OB 10
(B#16#12: Solicitud de arranque para OB 11)
:
(B#16#18: Solicitud de arranque para OB 17)
OB10_PRIORITY BYTE Prioridad parametrizada; valor por defecto: 2
OB10_OB_NUMBR BYTE Número de OB (10 hasta 17)
OB10_RESERVED_1 BYTE Reservado
OB10_RESERVED_2 BYTE Reservado
OB10_PERIOD_EXE WORD El OB se ejecuta en el intervalo indicado:
W#16#0000: Una vez
W#16#0201: Cada minuto
W#16#0401: Cada hora
W#16#1001: Cada día
W#16#1201: Cada semana
W#16#1401: Cada mes
W#16#1801: Cada año
OB10_RESERVED_3 INT Reservado
OB10_RESERVED_4 INT Reservado
OB10_DATE_TIME DATE_TIME Fecha y hora a las que se solicitó el OB
SFC´s para Programar OB´s de Alarmas Horarias (I)
• Funciones del Sistema integradas (SFCs) se pueden utilizar para controlar y supervisar las
interrupciones asociadas a alarmas horarias. Las SFCs relacionadas con alarmas horarias
son las siguientes.

SFC 28 SET_TINT: Ajustar hora de arranque de la alarma horaria


Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB que se activa en el
Const. instante SDT(fecha y hora de arranque)
SDT INPUT DT D, L Fecha y hora de arranque
PERIOD INPUT WORD E, A, M, D, L, Periodicidad desde el instante SDT:
Const. W#16#0000 = una vez
W#16#0201 = cada minuto
W#16#0401 = cada hora
W#16#1001 = diaria
W#16#1201 = semanal
W#16#1401 = mensual
W#16#1801 = anual
W#16#2001 = al final del mes
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error.

SFC´s para Programar OB´s de Alarmas Horarias (II)

SFC 29 CAN_TINT: Anular alarma horaria activada


Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB cuya fecha
Const y hora de arranque se han de
borrar (OB10 a OB17).
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error

SFC 30 ACT_TINT: Activar un OB de alarma horaria


Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB que se desea
Const. activar (habilitar)
(OB10 a OB17)
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error.
SFC´s para Programar OB´s de Alarmas Horarias (III)

SFC 31 QRY_TINT: Consultar alarma horaria

Parámetro Declaración Tipo de datos Area de memoria Descripción


OB_NR INPUT INT E, A, M, D, L, Número del OB cuyo estado
Cons. se ha de consultar
(OB10 a OB17).
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error.
STATUS OUTPUT WORD E, A, M, D, L Estado de la alarma horaria

Programación de una Alarma Horaria

Tarjeta de Entradas Analógicas

La CPU tiene una


llamada a un OB que
verifica y controla la
temperatura para este
tanque una vez cada
minuto, comenzando a PIW288
una fecha y hora específica.
+14000 = Temperatura Superior
+13000 = Temperatura Inferior

Q5.7
Calentador
Ejecución por Tiempo – Alarmas de Retardo

DO
AR
RET
• Una alarma de retardo es una interrupción que permite ejecutar un programa
después de una espera determinada independientemente de los temporizadores
• En STEP 7 se dedican a interrupciones de retardo del OB 20 al OB 23
• La CPU 315 dispone únicamente del OB 20 que tiene la prioridad 3

Configuración de Interrupciones de Retardo

DO
AR
RET
Variables Locales de OB de Alarma de Retardo

Variable Tipo de datos Declaración Descripción DO


AR
OB20_EV_CLASS BYTE TEMP RET
Clase de evento e identificadores:
B#16#11: Alarma está activada
OB20_STRT_INF BYTE TEMP B#16#21: Solicitud arranque OB 20
B#16#22: Solicitud arranque OB 21
B#16#23: Solicitud arranque OB 22
B#16#24: Solicitud arranque OB 23
OB20_PRIORITY BYTE TEMP Prioridad; valor prefijado: de 3 (OB20)
OB20_OB_NUMBR BYTE TEMP Número de OB (20 hasta 23)
OB20_RESERVED_1 BYTE TEMP Reservado
OB20_RESERVED_2 BYTE TEMP Reservado
OB20_SIGN WORD TEMP Identificador de usuario: parámetro de
entrada SIGN de la llamada de SFC 32
”SRT_DINT”
OB20_DTIME TIME TEMP Tiempo de retardo transcurrido en ms
OB20_DATE_TIME DATE_TIME TEMP Fecha y hora a las que se solicitó el OB

SFC´s para Programar OB´s de Alarmas Horarias de Retardo (I)

• Funciones del sistema integradas (SFCs) se pueden utilizar para arrancar y


supervisar las interrupciones asociadas a alarmas de retardo.
DO
AR
RET
Las SFCs relacionadas con alarmas de retardo son las siguientes.

SFC 32 SRT_DINT: Arrancar alarma de retardo


Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB que se arrancará
Const. al transcurrir el tiempo de retardo
(OB 20 a OB 23).
DTIME INPUT TIME E, A, M, D, L, Valor del retardo (1 a 60000 ms)
Const.
SIGN INPUT WORD E, A, M, D, L, Identificador que, al llamar el OB
Const. de alarma de retardo, aparece en
la información de eventos de
arranque del OB.
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error
SFC´s para Programar OB´s de Alarmas Horarias de Retardo (II)

DO
SFC 33 CAN_DINT: Anular alarma de retardo AR
RET
Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB que se ha de
Const. anular (OB20 a OB23).
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error

SFC 34 QRY_DINT: Consultar estado de alarma de retardo


Parámetro Declaración Tipo de datos Area de memoria Descripción
OB_NR INPUT INT E, A, M, D, L, Número del OB, cuyo STATUS
Const. se ha de consultar (OB 20 a 23)
RET_VAL OUTPUT INT E, A, M, D, L Parámetro de código de error.
STATUS OUTPUT WORD E, A, M, D, L Estado de la alarma de retardo

Interrupciones de Retardo

DO
AR
RET
• El OB20 se arranca mediante una llamada al SFC32 (SRT_DINT). Se define la
demora en los parámetros que le pasa al SFC de la siguiente forma:
– OB_NR Número del OB que arrancará después de retardo
– DTIME Duración de la demora (desde 1 hasta 60000 ms)
– SIGN Identificador que se pone en la información de
arranque del OB cuando se llama al OB de retardo
– RET_VAL Contiene el código de error si se produce un error
mientras el OB se procesa

M0.1 SFC32 M2.0


EN ENO
(SRT_DINT)
20 OB_NR RET_VAL MW10
T#500ms DTIME
W#16#01 SIGN
Interrupciones por Error del Hardware

Módulo de Entradas Analógicas

X Si el módulo analógico ha sido configurado


para habilitar la rotura de hilo como
+27648 interrupción hardware, se utilizar cualquier
problema de hardware en el transmisor
para llamar a un OB de detección de errores
(por ejemplo, el OB82)
0

Interrupciones por Error en el Programa/Sistema

• El STEP7 proporciona otros OBs utilizados para interrumpir el programa además de


las interrupciones por errores en el hardware. Los errores que llaman a esos OBs se
consideran errores en tiempo de ejecución; se detectan mediante los diagnósticos
internos del PLC.

Errores en Tiempo de Ejecución


Errores Asíncronos Errores Síncronos

OB de Error OB de Error
OB80 Error de Tiempo (por ejemplo, OB121 Error de Programación (por
tiempo de ciclo excedido) ejemplo, DB no cargado)
OB85 Error de Secuencia de Programa OB122 Error de Acceso
(por ejemplo, OB no cargado) (por ejemplo, intento de
OB87 Fallo de Comunicaciones acceder a un módulo
(por ejemplo, Datos Globales) periférico no presente)
SFC´s para Programar OB´s de Error
• Las Funciones de Sistema integradas (SFCs) se pueden utilizar para controlar y
monitorizar las interrupciones asociadas a errores síncronos y asíncronos. Estas
SFCs proporcionan los parámetros formales listados debajo los cuales pueden ser
programados con valores actuales mediante la instrucción de llamada a SFC.

• SFCs para manejo de Errores Síncronos


– SFC36 MSK_FLT Enmascarar errores de sincronización
– SFC37 DMSK_FLT Desenmascarar errores de sincronización
– SFC38 READ_ERR Leer el registro de estado de eventos

• SFCs para manejo Errores Síncronos y Asíncronos


– SFC39 DIS_IRT Inhabilitar Interrupción
– SFC40 EN_IRT Habilitar Interrupción
– SFC41 DIS_AIRT Inhabilitar Interrupciones de Alarma
– SFC42 EN_AIRT Habilitar Interrupciones de Alarma

También podría gustarte