La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bloques de Organización

Presentaciones similares


Presentación del tema: "Bloques de Organización"— Transcripción de la presentación:

1 Bloques de Organización
Sistema Operativo OB1 FC FB FB FC SFC SFB Indice Pág. Visión Global de los Bloques de Organización OBs de Arranque Interrupción del Ciclo del Programa Interrupción por Tiempo (OB10) Interrupción Cíclica (OB35) Interrupción Hardware (OB40) Interrupción por Retardo (OB20) Diagnosis de Interrupciones: Interrupción de Error Asíncrono (OB ) Errores Asíncronos Errores Síncronos Funciones del Sistema para controlar OBs de Interrupciones Información Inicial de los OBs Ejercicio: Determinar el Tipo de Arranque en el OB Ejercicio: Estableciendo la Hora del Sistema Ejercicio: Generar una luz parpadeante con Interrupción Cíclica Ejercicio: Escribir un Programa para una Interrupción por Tiempo Otros OBs

2 Visión Global de los Bloques de Organización
Arranque OB 102 OB 100 OB 101 Ejecución Cíclica del Programa OB 1 Ejecución Periódica del Programa Ejecución del Programa por Eventos OB (Interrupción por Tiempo) OB (Interr. por Retardo) OB (Errores Asíncronos) OB (Interr. Cíclica) OB (Interr. por Hardware) OB 121, 122 (Errores Síncronos) Arranque Un programa de arranque se lleva a cabo antes de la ejecución cíclica del programa tras recuperar la alimentación, o al cambiar de modo de operación (a través del selector de modo de la CPU o con la PG). Los OBs del OB 100 al OB 102 se utilizan con este propósito. En esos bloques se puede, por ejemplo, preestablecer las conexiones de comunicaciones. Ejecución Cíclica El programa que debe ser ejecutado continuamente se encuentra almacenado del Programa en el Bloque de Organización OB 1. Una vez que el programa de usuario ha sido completamente ejecutado en el OB 1, comienza un nuevo ciclo, actualizándose las imágenes del proceso con la ejecución de la primera línea del OB 1. El tiempo ciclo y el tiempo de respuesta del sistema son el resultado de esas operaciones. El tiempo de respuesta es el tiempo total de ejecución del sistema operativo de la CPU, y se define como el tiempo que le lleva a la CPU el ejecutar una vez el programa de usuario. El tiempo de respuesta, esto es, lo rápido que cambia el estado de una salida cuando cambia su entrada asociada, es igual al tiempo ciclo x 2. Ejecución Periódica Con la ejecución periódica del programa, se puede interrumpir la ejecución del Programa cíclica en intervalos fijos. Los OBs asociados a este tipo de interrupción, del OB 30 al OB 37, se ejecutan cada vez que se alcanza el tiempo preestablecido, por ejemplo cada 100 ms. Se puede saltar a otro módulo de programación desde estos OBs. Con la Interrupción por Tiempo o Periódica, se puede ejecutar un OB a una hora determinada (p.e. A las 17:00 hours de cada día), para guardar algunos datos de importancia. Ejecución de La interrupción hardware puede utilizarse como una rápida respuesta a un Programa por Evento evento del proceso. Tras producirse el evento, el ciclo es inmediatamente interrumpido y el programa de interrupción elaborado. Las Interrupciones por Retardo se ejecutar tras un período de tiempo retardado con respecto al evento del proceso. Con los OBs de error se determina como debe comportarse el sistema si, por ejemplo, hay un fallo de alimentación. Interrupt OBs Error OBs

3 Tiempo Ciclo residual del proceso Borrado de la PAA (asign.de param.)
OBs de Arranque Arranque (manual) • sólo para el S (según la configuración en Config. HW): STOP -> RUN + WRST Rearranque Completo Automático Manual S7-300 / 400 S7-300 STOP->RUN S7-400 STOP->RUN + CRST Ejecución del OB 101 Tiempo Ciclo residual del proceso Alimentación Borrado de la PAA (asign.de param.) Borrado de las imágenes de proceso y de M,T,Z no remanentes STOP No ¿Monitorizar tiempo de rearranque excedido ? Ejecución del OB 100 Habilitar salidas Habilitar Salidas Leer de la PAE in PII Leer de la PAE C I L O Arranque Los Bloques de Organización son ejecutados exclusivamente por el Sistema Operativo del PLC. Existen diferentes eventos que hacen que se ejecuten unos determinados OBs asociados según la clase de prioridad que tengan. Los Bloques de Organización pueden contener un control de programa normal e incluso una tabla de declaraciones. Prioridades Cada ejecución de un OB puede verse interrumpida por la ejecución de otro OB de mayor prioridad. Las Prioridades se encuentran escalonadas en grados que van desde la 0 a la 27, siendo la o la prioridad más baja y la 27 la más alta. Dos OBs con la misma prioridad no se interrumpen entre ellos, sino que se ejecutan en la secuencia que se haya establecido. Arranque El S7-300 tiene un tipo de rearranque completo. A través de él, las imágenes de proceso, así como las marcas, temporizadores y contadores no remanentes son borrados. La ejecución del programa del OB1 comienza con la ejecución de la primera secuencia. El S7-400 también tiene el tipo de rearranque completo. No obstante, se mantienen todos los datos (imágenes del proceso, marcas, temporizadores y contadores).La ejecución del programa del OB1 parte desde el punto donde ocurrió la interrupción. En un rearranque completo se ejecuta el OB 100 y en un rearranque se ejecuta el OB 101. Rearranque en Frío Las CPUs y también disponen de la modalidad de rearranque en frío. Se puede especificar este tipo de rearranque adicional en el caso de que se produzca un fallo en la alimentación. Esto se hace a través de la Configuración HW del Equipo SIMATIC. Con un rearranque en frío, todas las marcas, temporizadores, contadores e imágenes de proceso son borradas. Los DBs retienen sus valores preestablecidos y el programa del OB 1 comienza a ejecutarse desde su primera secuencia, una vez que se ha finalizado la ejecución del OB 102. C I L O Ejecutar OB1 Ejecutar OB1 Guardar en la PAA Guardar en la PAA

4 Interrupción del Ciclo del Programa
P.e. OB82 (Prio.26) = Gestión de Errores. Executado en caso de rotura de cable en una entr. anal. PEW 352 P.e. OB10 (Prio.2) = Interr. por Tiempo Ejecutar una vez por minuto desde las 9:30 OB1 se ejecuta continua- mente ..... hasta que es interrumpido por otro OB P.e. OB20 (Prio.3) = Interr. por Retardo. La ejecución arranca 3.25s después de la detección OB 1 3 Interr. por Tiempo Interr. Cíclica 1 16 Gestión de Errores Programa Cíclico Interr. por Retardo Interr. Hardware 2 12 26 / 28 OB 20 OB 40 OB 10 OB 35 OB 82 Nº OB Tipo OB Prioridad OBs Los Bloques de Organización (OBs) son el interfase entre el sistema operativo de la CPU y el programa de usuario. El OB1 puede contener todo el programa de usuario o puede estructurarse en llamadas a otros módulos que contienen el programa de usuario dividido en partes. Llamadas Los OBs no pueden ser llamados por ningún otro bloque. Son ejecutados por el sistema operativo de la CPU, como respuesta a una serie de eventos. Por ejemplo : • al arrancar la CPU • al alcanzarse una determinada hora o fecha • a intervalos regulares • al transcurrir un periódo de tiempo de retardo • al producirse un error • al producirse una interrupción hardware Prioridad Los OBs se ejecutan en un orden de prioridades que ha sido asignado de antemano (1 = la más baja y 29 = la más alta). Interrumpiendo el Cuando el sistema operativo ejecuta otro OB, la ejecución cíclica del programa Ciclo de un Programa de usuario en el OB1 es interrumpida (el OB 1 tiene la prioridad más baja). Cualquier otro OB puede interrumpir el OB 1 y ejecutarse. Por lo tanto, la ejecución del OB 1 se produce desde el punto de interrupción. Si se llama a un OB con mayor nivel de prioridad que el que se está ejecutando en ese momento, el actual se ve interrumpido. El sistema operativo guarda el registro del OB interrumpido en la pila. La información del registro es recuperada cuando el sistema operativo necesita restaurar la ejecución del OB que fue interrumpido.

5 Interrupción por Tiempo (OB10)
Interrupción Las Interrupciones por Tiempo se utilizan para ejecutar un determinado por Tiempo programa codificado en el OB 10 de manera periódica (cada minuto, hora, día, semana, mes o cada año). Se configura la Interrupción por Tiempo con la herramienta de " Configuración HW ". Para determinar como y cada cuanto debe de ejecutarse el OB10, seleccionar la opción de menú Edición -> Propiedades del Objeto -> Solapa de “Alarmas Horarias“. "Activa" Al seleccionar la opción "Activa", el OB de interrupción por tiempo es ejecutado cada vez que se realiza un rearranque completo de la CPU.. Nota Las Interrupciones por Tiempo pueden ser controladas por funciones del sistema en tiempo de ejecución. Se dispone de las siguientes SFCs: • SFC 28 "SET_TINT" Establece Fecha, hora y período de arranque • SFC 29 "CAN_TINT" Cancela la Interrupción por Tiempo • SFC 30 "ACT_TINT" Activata la Interrupción por Tiempo • SFC 31 "QRY_TINT" Consulta la Interrupción por Tiempo. S7-400 Existen hasta ocho OBs (del OB 10 al 17) de Interrupción por Tiempo diferentes en un PLC S7-400.

6 Interrupción Cíclica (OB35)
Interrupción Cíclica Las Interrupciones Cíclicas (watchdog) se utilizan para ejecutar bloques a intervalos fijos. La interrupción cíclica para el S7-300 es el OB 35. El intervalo de llamada por defecto, para el OB 35, es de 100ms. No obstante puede modificarse este valor, siempre que se encuentre entre 1ms y 1 minuto. Tiempo de Inicio Cuando se activa una interrupción controlada por tiempo, se debe especificar el intervalo en relación con el “tiempo de inicio”. El tiempo de inicio comienza cada vez que se pasa la CPU de STOP a RUN. Intervalo Debe asegurarse de que el intervalo especificado no excede del tiempo requerido para la ejecución. El sistema operativo llama al OB 35 en un momento dado. Si el OB 35 está todavía activo en ese momento, el sistema operativo ejecuta el OB 80 (error en OB de interrupción cíclica). Nota Las interrupciones cíclicas no pueden ser controladas por ninguna función del sistema en tiempo de ejecución. S7-400 Existen hasta nueve OBs de interrupciones cíclicas diferentes (del OB30 al 38) para un PLC S7-400. RUN OB35 OB35 OB35 Intervalo Intervalo Intervalo OB1 OB1 O B1 OB1 OB1 OB1 OB1 O B1

7 Interrupción Hardware (OB40)
HW Config: Propiedades del módulo de entradas analógicas Propiedades de la CPU Módulo de Entradas Analógicas +27648 Valor de lím. Superior Interrupción El programa de un OB de interrupción hardware (OB40) se ejecuta tan pronto Hardware como ocurra un determinado evento. Las interrupciones hardware se ejecutan según señales procedentes de unos módulos específicos: • Para señales procedentes de módulos parametrizables (DI, DO, AI, AO) se utiliza la herramienta de “Configuración HW” para especificar la señal que tiene que disparar la interrupción hardware. • En el caso de CPs y FMs, se especifican las características de la interrupción utilizando la configuración software para el módulo que corresponda. Ejemplo En el ejemplo mostrado arriba, se han configurado valores ajustados a un módulo de entradas analógicas. Si el valor medido sobrepasa alguno de los límites, el OB 40 es ejecutado. Esto funciona igual que si se hubiera incluido una instrucción de comparación en el OB 1, la cual ejecutara un FB o un FC al alcanzar el límite. No obstante, utilizando el OB 40, nos ahorramos el tener que codificar en el OB 1 todo lo anteriormente mencionado. Se puede utilizar el programa en el OB 40 para generar interrupciones o para controlar el proceso. S7-400 Existen hasta ocho interrupciones hardware diferentes (del OB40 al 47) para un PLC S7-400. Valor de lím. Inferior

8 Interrupción por Retardo (OB20)
( ) E 0.0 M0.1 SFC 32 (SRT_DINT) EN ENO OB_NR DTIME SIGN RET_VAL 20 T#500ms W#16#01 MW10 M2.0 Interrupciones por El programa de un OB de interrupción por retardo (OB20) se ejecuta con un Retardo retardo determinado, después de que se ha producido un evento. El OB20 solo puede ser activado a través de la ejecución de la función del sistema SFC32 (SRT_DINT). La SFC32 también se utiliza para establecer el tiempo de retardo. SFC 32 • OB_NR = Número del OB a ser ejecutado con un tiempo de retardo. • DTIME = Tiempo de Retardo (1 a 60000ms) • SIGN = Señal específica de usuario para ejecutar el OB de interrupción por retardo • RET_VAL = Código de error por si ocurre algún error durante la ejecución del OB de interrupción por retardo (Ver ayuda On-line para el significado de los códigos de error). Nota Además de la SFC32, también se dispone de las siguientes funciones de gwestión de retardo del sistema: • SFC33 (CAN_DINT) = Cancela la interrupción por retardo • SFC34 (QRY_DINT) = Consulta la interrupción por retardo. S7-400 Existen hasta cuatro OBs de interrupciones por retardo diferentes (del OB20 al 23) para un PLC S7-400.

9 Diagnosis de Interrupciones: Interrupción de Error Asíncrono (OB81...87)
HW Config: Propiedades del módulo de entradas analógicas Propiedades de la CPU Módulo de Entradas Analógicas +27648 Rotura en el Cable Errores Asíncronos Los errores asíncronos son fallos en la funcionalidad del PLc que se producen de manera asíncrona con la ejecución del programa y no pueden ser detectados desde un punto particular en el programa (p.e. Una interrupción de diagnosis para un módulo). Respuesta Si se detecta un fallo en modo RUN y se ha programado el correspondiente OB de error, éste es llamado en el programa en el que está siendo ejecutado. Este programa podría contener, por ejemplo: • secuencias para hacer sonar una sirena • secuencias para hacer un backup de datos, seguido por una instrucción de STOP • un programa para archivar la frecuencia con la que se produce el error, sin que la CPU pase a STOP. Nota Si el OB de error para un fallo en particular no está presente, la CPU pasa automáticamente a STOP. Ejemplo El OB de interrupción por error asíncrono, OB 82, es ejecutado por las siguientes situaciones: • Rotura de cable en un módulo diagnosticable • Fallo en la alimentación en un módulo de entradas analógicas • Rango de medida excedido en un módulo de entradas analógicas, etc.

10 Errores Asíncronos Tipo de error Ejemplo OB 26 / 28 Prioridad 26
Error de Tiempo Máximo Tiempo Ciclo Excedido OB80 Fallo de Alimentación Fallo en la Batería Auxiliar OB81 Interrupción de Diagnosis Rotura de cable en un módulo diagnosticable de entradas OB82 Insertar / Eliminar interrupción Eliminación de una señal de un módulo durante una operación de un S7-400 OB83 Fallo de Hardware en la CPU Nivel de señal incorrecto en el interfase MPI OB84 Error de Ejecución de un Programa Error al actualizar la imagen de proceso (módulo defectuoso) OB85 Prioridad Los OBs de errores son ejecutados inmediatamente debido a que poseen el máximo nivel de prioridad de todos los OBs de interrupciones y de error: • Prioridad 26 -> Si el error se produce mientras un OB con prioridad más baja (<26) está siendo ejecutado. • Prioridad 28 -> Si el error se produce mientras un OB de arranque (prioridad 27) está siendo ejecutado. Fallo en un Rack Fallo en un elemento de expansión o en un Esclavo DP OB86 Error de Comunicaciones Error en la lectura de un mensaje OB87

11 Errores Síncronos Tipo de error Ejemplo OB Prioridad La misma que
la del OB interrumpido como resultado del error Error de Programación Se intentó llamar a un bloque en un programa en la CPU, y en ese momento no se encontraba presente en la CPU OB121 Erro de Acceso Un módulo, que puede estar defectuoso o no presente, se direccionó en el programa (p.e. acceso directo a un módulo I/O no existente) OB122 Errores Síncronos Estos errores pueden ser detectados desde un punto determinado del programa si ocurriera algún error durante la ejecución de una secuencia determinada. Los OBs de errores ejecutados en respuesta a errores síncronos, tienen la mismaprioridad que el bloque que se estaba ejecutando cuando el error fue detectado.

12 Funciones del Sistema para controlar OBs de Interrupciones
Bloque de Organización Función Número Prioridad en S7-300 SFCs para controlar OBs Observaciones Interr. por Tiempo OB 2 SFC Alternativa a Config. HW Interr. Cíclica OB ninguna 12 Interr. por Retardo OB 3 SFC Mandatorio Interr. Hardware OB 16 ninguna Interr. por Diagnosis OB 26 ninguna OB's Encontrará una lista completa de OBs con sus descripciones en la ayuda Online: Editor KOP/AWL/FUP -> Ayuda -> Temas de Ayuda -> Programar Bloques -> Crear Bloques Lógicos. SFC's Las funciones del sistema y su utilización, como ejecutarlas y la asignación de parámetros se exponen en un curso de programación avanzada.

13 Información Inicial de los OBs
L-Byte 0 / 1 2 / 3 Evento Inicial Prioridad Número Consecutivo OB No. Gestión de la información 4 / 5 6 / 7 8 / 9 10 / 11 Formatos de Datos de los L-Bytes 8, 9, 10, 11 Info. Adicional 1 (p.e. Dirección de comienzo de módulo de interr.) Info. Adicional 2 (p.e. Estátus de la interrupción) Info. Adicional 3 (p.e. Número de canal) Information Inicial 12 / 13 14 / 15 16 / 17 18 / 19 Año Día Minutos 1/10 Segundo, 1/100 Segundo Mes Horas Segundos 1 /1000 Segundo, Día de la Semana Tiempo Inicial Información de Se dispone de una información de arranque uniforme en la pila de datos locales Arranque cuando un OB es ejecutado por el sistema operativo. La información de arranque tiene una longitud de 20 bytes y se encuentra disponible tras el comienzo de una ejecución del OB. Acceso a la El software STEP 7 dispone de una tabla de declaraciones estándar para el Información de acceso simbólico de la información de arranque (ejemplo para el OB 81). Arranque Nota La tabla estándar de declaraciones puede ser modificada. El significado de las variables se expone en la ayuda Online o en el Manual de Funciones Estándar y del Sistema. En el ejemplo, la variable OB8_FLT_ID contiene un identificador siempre que se produzca un fallo en la batería auxiliar.

14 Ejercicio: Determinar el Tipo de Arranque en el OB100
Paso Qué Hacer Resultado 1 Insertar el bloque OB100 en el programa del Equipo S7 "Mi Equipo“ y escribir un programa en el OB100 que se ajuste a la tarea. El tipo de arranque se ha programado en el módulo de arranque 2 Cargar el OB100 en la CPU 3 Comprobar el funcionamiento del programa Los LEDs del simulador se iluminan dependiendo del tipo de arranque. Tarea: El S7-300 solo dispone de un OB de arranque, el OB 100. Si se quiere que el programa responda de alguna manera predefinida, se necesita codificar el OB 100. El sistema operativo introduce los siguientes identificadores en la variable OB100_STRTUP: • B#16#81 = Rearranque Completo Manual • B#16#82 = Rearranque Completo Automático. Se debe codificar el programa en el OB 100, de forma que la salida A 8.4 o la A4.4 se pone a “1“ si se ha hecho un rearranque manual y la salida A8.5 o la A4.5 se pone a “1“si se ha hecho un rearranque Automático. Ejemplo de evaluación de un rearranque manual completo L OB100_STRTUP //Carga identificador de rearranque L B#16#81 //Carga el número hexadecimal 81 ==I //Comparar su igualdad = A //Visualizar tipo de rearranque Cómo hacerlo: 1. Abrir el bloque OB 100 del programa S7 del equipo "Mi Equipo" (Projecto "Mi Projecto") 2. Codificar el programa en el OB 100. 3. Cargar el bloque en la CPU y comprobar el el funcionamiento de programa.

15 Ejercicio: Estableciendo la Hora del Sistema
Tarea Establecer la fecha y hora correctas en un PLC S7. Cómo hacerlo 1. Seleccionar la opción de menú Sistema de Destino -> Ajustar la Hora (Administrador SIMATIC o Editor de Programas). 2. Introducir la fecha correcta y la hora exacta en el campo de entrada.

16 Ejercicio: Generar una luz parpadeante con Interrupción Cíclica
Se tienen que asignar parámetros al OB 35 de acuerdo con la tarea Paso Que Hacer Resultado 1 Crear el OB 35, guardarlo en la PG y cargarlo en la CPU 2 3 Comprobar el funcionamiento del módulo El Bit de Marcas M 35.0 parpadea con una frecuencia de 3 Hz Tarea El ejercicio consiste en hacer parpadear una marca con una frecuencia de 3 Hz. Esta frecuencia, sin embargo, no se encuentra disponible en ningún bit del byte de la marca ciclo. La única solución posible es realizar el parpadeo a través de un OB de interrupción cíclica, utilizando la marca de memoria M 35.0. Nota Utilizar el programa del equipo S7 "Mi Equipo" en el proyecto "Mi Proyecto".

17 Ejercicio: Escribir un Programa para una Interrupción por Tiempo
Se han de asignar parámetros a la CPU para que la interrupción diaria se ejecute al final de la clase Paso Que Hacer Resultado 1 Crear el OB 10, guardarlo en la PG y cargarlo en la CPU 2 3 Comprobar el funcionamiento del módulo Al final de la clase sonará la bocina Desactivar la interrupción pot tiempo y volver a cargar la configuración modificada en la CPU. 4 Tarea El ejercicio consiste en hacer sonar la sirena del modelo de Cinta Transportadora al final de la clase (pregunte a su profesor cuando finaliza la clase). El mensaje acústico es acusado utilizando una entrada libre que se tenga en el simulador. Nota Utilizar el programa del equipo S7 "Mi Equipo" en el proyecto "Mi Proyecto". Resultado Ahora podrá volver a casa a su hora !!!!.


Descargar ppt "Bloques de Organización"

Presentaciones similares


Anuncios Google