Está en la página 1de 18

CONTROL DE INTERRUPCIONES

ESTE INFORME CONTIENE: 1. INTRODUCCIN. 2. INTERRUPCIONES EN EL C200HS. 3. INTERRUPCIONES EN EL CQM1. 4. INTERRUPCIONES EN EL CV.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 1

1. INTRODUCCION

CONTROL DE INTERRUPCIONES

1. INTRODUCCION
Las interrupciones son rupturas del flujo del programa principal para la ejecucin de una subrutina de interrupcin. En cuanto se produce una interrupcin, el programa principal detiene su ejecucin para atender a la subrutina de interrupcin, y una vez atendida continua con el programa principal desde el mismo punto en el que fue interrumpido. Es importante entonces conocer el tiempo que tarda en derivarse el control hacia la subrutina de interrupcion. Este tiempo depende del equipo y su configuracion ante las interrupciones y su valor mximo est entre 1 y 1.4 ms. El tiempo de ejecucin de la subrutina de interrupcion depende de las instrucciones que la componen. Las interrupciones que contemplan nuestros equipos son causadas tanto por una fuente externa: una entrada de seal desde una unidad de entradas de interrupcin (INPUT INTERRUPTION o I/O INTERRUPTION), interrupcin power ON, interrupcin power OFF, interrupcin de contador de alta velocidad; como por una interrupcin programada (SCHEDULED INTERRUPTION), que significa que la seal de interrupcin se repite a intervalos de tiempo.

1.1. Interrupciones de entrada


Las interrupciones de entrada son ejecutadas cuando se recibe una entrada externa a travs de la unidad de entradas de interrupcin. Estn contempladas en las CPUs de los CQM1 y existen tarjetas de interrupcin para CV y C200HS.

1.2. Interrupciones programadas


Las interrupciones programadas son ejecutadas a intervalos regulares que pueden ser programados por el usuario. Existen en las tres familias de PLCs (CQM1, CV, C200HS).

1.3. Interrupcin power OFF


Una interrupcin de power OFF es generada por un corte de alimentacin de la CPU ms largo que el tiempo de corte momentneo de alimentacin establecido en el Setup del autmata . (Slo en el CV) La longitud del programa de la interrupcin de power OFF esta limitado.

1.4. Interrupcin power ON


Una interrupcin de power ON se activa cuando la alimentacin regresa a la CPU despus de un corte. La interrupcin de power ON es efectiva solo si hay un programa de interrupcin de power ON. El programa de interrupcin de power ON se ejecuta tras la inicializacin. (Slo en el CV)

1.5. Interrupcion de contador de alta velocidad


El proceso de interrupcin se ejecuta de acuerdo con el valor presente (PV) de un contador de alta velocidad que cuenta los pulsos que llegan a los bits 00004 a 00006 de la CPU. (Slo en el CQM1) PRIORIDADES OMRON ELECTRONICS, S.A. INTERRUP.DOC Pag. 2

1. INTRODUCCION

CONTROL DE INTERRUPCIONES Existe un sistema de prioridad establecida de interrupciones, de manera que, una interrupcin puede ser interrumpida por otra interrupcin ,si esta ltima tiene mayor prioridad. Si dos interrupciones llegan al mismo tiempo, se ejecutar antes la de mayor prioridad y despus la otra. ENMASCARAMIENTO Cuando se recoge una interrupcin, se almacena, se comprueba la prioridad y si procede, se ejecuta la subrutina de interrupcin. Enmscarar una interrupcin sirve para recoger las interrupciones y almacenarlas, pero se ignoran y no se ejecutan hasta que sean desenmscaradas. Para evitar que una interrupcin producida mientras estaba enmscarada, se ejecute al desenmscararla (puesto que fue almacenada e ignorada), se debe limpiar la entrada de interrupciones antes de desenmascarla. (Borrado)

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 3

2. INTERRUPCIONES EN EL C200HS.

CONTROL DE INTERRUPCIONES

2. INTERRUPCIONES EN EL C200HS.
Las interrupciones que posee el autmata C200HS son:

2.1. Interrupciones de entrada


La unidad de entradas de interrupcin C200HS-INT01 proporciona 8 entradas numeradas de IN0 a IN7 que generan las interrupciones #00 a #07 que ejecutan las subrutinas #00 a #07. Slo podemos usar una unidad C200HS-INT01 por CPU y en racks tipo -V2. Nota: Las subrutinas #00 a #07 pueden ser utilizadas como subrutinas normales cuando no se utilizan como subrutinas de interrupcin. Las entradas no usadas de la unidad de entradas de interrupcin pueden ser usadas como entradas normales.

2.2. Interrupcin programada


Para este tipo de interrupcin se usa la interrupcin #99 y por tanto se ejecuta la subrutina #99. Puede ser ejecutada en intervalos con incrementos de 10 1 ms, dependiendo de la seleccin hecha en el PC Setup en el DM6622. DM6622: 00-07 Unidad de tiempo para la interrupcin programada 00 10 ms 01 1 ms 08-15 Habilitar la unidad de tiempo para la interrupcin programada 00 Habilitar 01 Deshabilitar

Ambos tipos de interrupciones pueden ser utilizadas en modo normal o en modo de alta velocidad En el modo normal de interrupcin, el siguiente proceso se completar una vez ocurrida la interrupcin: Servicio de Host Link Servicio de E/S remotas Servicio de Unidades de E/S especiales Ejecucin de la instruccin individual En el modo de interrupcin de alta velocidad, el proceso anterior ser interrumpido y se ejecutar la subrutina de interrupcin en cuanto sta ocurra. En este caso podra haber problemas de concurrencia de datos, sobre todo si hemos interrumpido durante la ejecucin de largas instrucciones de manejo de mltiples datos, como instrucciones de transferencia de bloque. Tambin ocurrira conflicto en el caso de estar escribiendo un dato en el programa principal cuando es interrumpido y el mismo dato es ledo por la subrutina de interrupcin o viceversa lectura-escritura.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 4

2. INTERRUPCIONES EN EL C200HS.

CONTROL DE INTERRUPCIONES

DM 6620

12-15 0 1

Modo normal de interrupcin (Defecto) Modo alta velocidad de interrupcin

Prioridad de interrupciones
Las prioridades quedan establecidas como sigue:

Entrada interrupcin 1 > 2 > 3 > 4 > 5 > 6 > 7 > Interrupcin programada
INT(-) CONTROL DE INTERRUPCIN Esta instruccin es usada para controlar y ejecutar una de las ocho funciones de interrupcin. 3 de las funciones actan sobre entradas de interrupciones, 3 sobre la interrupcin programa y 2 funciones para enmscarar o desenmascarar todas las interrupciones. El formato de la orden es: INT(-) C N D Cdigo de Control Tipo de interrupcin Dato de control 000,001,002,100 200 000 004 IR, AR, DM, HR, TC, LR, #

Interrupci n

Cdigo Funcin de interrupcin Contro l Entrada 000 Enmscarar/Desenmscarar entrada de interrupciones (N=000) 001 Limpiar entrada interrupciones 002 Leer el estado actual de mscara Programada 000 Establecer intervalo interrupcin 001 Establecer tiempo para (N=004) primera interrupcin 002 Leer el intervalo de interrupcin 100 Enmscarar todas interrupciones 200 Desenmscarar todas interrupciones

Comentario

Los bits 00 a 07 del dato de control corresponden con de las interrupciones 00 a 07. la Lo escribe en el Dato de control de Dado en el dato de control la Dado en el dato de control la Lo escribe en el Dato de control las las

Para evitar que una interrupcin que esta enmscarada se ejecute al desenmscararla, se debe limpiar la entrada de interrupciones antes de desenmascararla.

Unidades especiales de E/S en subrutinas de interrupcin


Las unidades especiales de E/S pueden ser refrescadas desde las subrutinas de interrupcin usando la instruccin de refresco de E/S (IORF). Si se usa el modo de alta velocidad de interrupcin, el refresco en el ciclo normal (refresco con END y refresco IORF en el programa principal) debe ser deshabilitado para esta unidad de E/S especial que ser refrescado en la subrutina de interrupcin. Ocurrir un error (system FAL error 8B) si la misma unidad de E/S se intenta refrescar tanto en el programa de OMRON ELECTRONICS, S.A. INTERRUP.DOC Pag. 5

2. INTERRUPCIONES EN EL C200HS.

CONTROL DE INTERRUPCIONES

interrupcin como en el ciclo normal y no se refrescar en el programa de interrupcin. DM6620: 00 Deshabilita refresco ciclo normal para unidad especial E/S n 0 01 Deshabilita refresco ciclo normal para unidad especial E/S n 1 02 Deshabilita refresco ciclo normal para unidad especial E/S n 2 03 Deshabilita refresco ciclo normal para unidad especial E/S n 3 04 Deshabilita refresco ciclo normal para unidad especial E/S n 4 05 Deshabilita refresco ciclo normal para unidad especial E/S n 5 06 Deshabilita refresco ciclo normal para unidad especial E/S n 6 07 Deshabilita refresco ciclo normal para unidad especial E/S n 7 08 Deshabilita refresco ciclo normal para unidad especial E/S n 8 09 Deshabilita refresco ciclo normal para unidad especial E/S n 9 Deshabilitar el refresco de la unidad especial de E/S en el ciclo normal para realizar el refresco en la subrutina de interrupcin es necesario slo en modo de alta velocidad.

Tiempo de ejecucin de las subrutinas de interrupcin


El tiempo de ejecucin de las subrutinas de interrupcin debe mantenerse menos de 10ms si se usa el modo de alta velocidad de interrupcin y se programan unidades especiales de E/S, unidades Host Link o unidades E/S remotas. El tiempo de ejecucin de la subrutina de interrupcin con mayor tiempo de ejecucin es visualizado en el SR262 y el nmero de dicha subrutina en los dos bits menos significativos del SR263. Ejemplo. La subrutina de interrupcin #99 es la de mayor tiempo de ejecucin con 8.9 ms, entonces tendremos: SR 262: SR 263: 0089 8099 (la subrutina est en los dos bits menos significativos)

ATENCIN: Al refrescar unidades especiales de E/S en la subrutina de interrupcin, debemos tener en cuenta el tiempo de refresco de estas unidades, ya que si el tiempo de refresco es mayor que el tiempo entre interrupcin se producir un error (system FAL fatal error 9F) Por ejemplo la unidad especial C200H-AD001 tiene un tiempo de refresco de 1.3 ms por lo que no podremos refrescarla en una subrutina de interrupcin que se ejecute cada 1 ms, sino que deber hacerse por lo menos cada 2 ms. Si a esta unidad le aadimos otra el tiempo de refresco total ser la suma de los tiempos de refresco de ambas y el intervalo de tiempo entre subrutinas de interrupcin deber ser mayor.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 6

2. INTERRUPCIONES EN EL C200HS.

CONTROL DE INTERRUPCIONES

2.3. EJEMPLOS:
Para demostrar el funcionamiento y programacin de las diversas subrutinas, hemos creado unas serie de programas con sus comentarios para facilitar su entendimiento:

Ejemplo de interrupciones de entrada de C200HS.


Para este programa necesitamos un C200HS, una carta de interrupciones C200HS-INT01 y una carta de salidas (CH0) montadas en un rack C200HBC0__-V2. En los DM de configuracin habr que seleccionar: DM6620 0000 si queremos Modo Normal de respuesta 1000 Modo de respuesta a alta velocidad

En este programa tendremos desenmascaradas dos interrupciones la #0 y la #1 que corresponden con las entradas IN0 y IN1 de la carta de interrupciones. Durante el programa principal se est incrementando el valor del DM0100 a un ritmo marcado por el reloj de 0.2 segundos. Si llega una interrupcin #0 el programa principal ser interrumpido para visualizar FFFF en la carta de salidas situada en CH0 del rack y continuar el flujo normal de programa. Si llega una interrupcin #1 el programa principal ser interrumpido para visualizar 0000 en la misma carta de salida y luego continuar el flujo normal de programa.

Ejemplo de interrupcin programada en C200HS.


Para este programa necesitamos un C200HS y una carta de salida en el CH1 del rack. En los DM de configuracin habr que seleccionar: DM6620 DM6622 0000 0101 Modo Normal de respuesta Unidad de tiempo 1ms en interrupcin programada

En este programa tendremos una interrupcin programada que se ejecutar automticamente cada 300 x 1ms. Durante el programa principal se ejecuta continuamente un registro de desplazamiento que introduce 1 , cada 0.1 s y se resetea al llegar el primer 1 al ultimo bit del canal 0001. Cada 300 x 1ms, es decir, cada 0.3 segundos se ejecuta la interrupcin programada que toma el valor del registro de desplazamiento y lo lleva al canal 100 donde podremos ver como cada 0.3 segundos se modifica dicho valor en tres 1 puesto que el desplazamiento del registro ocurre cada 0.1ms.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 7

3. INTERRUPCIONES EN EL CQM1

CONTROL DE INTERRUPCIONES

3. INTERRUPCIONES EN EL CQM1
El CQM1 tiene 3 tipos de procesos de interrupciones: Interrupciones de entradas, interrupciones programadas o de temporizador de intervalo e interrupciones de contador de alta velocidad (no van a ser vistas en este informe). PRIORIDAD DE INTERRUPCIONES Las prioridades en el CQM1 estn definidas como: 1.Interrupcin de entrada 0 > 1 >2 >3 2.Interrupcin de contador de alta velocidad 1 > 2 3.Interrupcin de temporizador de intervalo 0 > 1 > 2 (coincide con la interrupcin de contador de alta velocidad 0) INCOMPATIBILIDADES En las CPUs CQM1-CPU43-44, las instrucciones INI, PRV, CTBL ,SPED, PULS, PWM, PLS2 y ACC no pueden ejecutarse en la subrutina de interrupcin, cuando en el programa principal se esta ejecutando una instruccin de control de E/S de pulsos o contadores de alta velocidad.

3.1. Interrupciones de entradas


Las interrupciones de entrada #0 a #3 corresponden respectivamente con los bits IR00000 a IR00003 y se utilizan para llamar a la subrutinas de interrupcin #0 a #3. Si no se utilizan como interrupciones pueden ser usadas como subrutinas ordinarias. Al mismo tiempo que se ejecuta la interrupcin se pueden refrescar un numero determinado de canales. Hay dos modos de procesar las interrupciones de entrada: Modo interrupcin de entrada en la que la interrupcin se ejecuta en respuesta a una entrada externa. Se pueden detectar seales con una duracin de 0.1 ms o ms. Modo de contador en el que se cuentan a alta velocidad, seales de una fuente externa y cada cierto nmero de seales se ejecuta una interrupcin. Se pueden contar seales de hasta 1Khz. PARMETROS DE CONFIGURACIN DEL PLC Selecciones de entrada de interrupcin: DM6628 00-03 04-07 08-11 12-15 Seleccin entrada de interrupcin 0 Seleccin entrada de interrupcin 1 Seleccin entrada de interrupcin 2 Seleccin entrada de interrupcin 3

Dato

0 1

Entrada normal Entrada de interrupcin

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 8

3. INTERRUPCIONES EN EL CQM1

CONTROL DE INTERRUPCIONES

Selecciones del canal de refresco de entrada DM6630 00-07 Canal inicial de refresco al ejecutar la interrupcin #0 (00 a 07) 08-15 Nmero de canales de refresco ( 00 a 08) 00-07 Canal inicial de refresco al ejecutar la interrupcin #1 (00 a 07) 08-15 Nmero de canales de refresco (00 a 08) 00-07 Canal inicial de refresco al ejecutar la interrupcin #2 (00 a 07) 08-15 Nmero de canales de refresco (00 a 08) 00-07 Canal inicial de refresco al ejecutar la interrupcin #3 (00 a 07) 08-15 Nmero de canales de refresco (00 a 08)

DM6631

DM6632

DM6633

Ej. si DM6630 se selecciona a 0100, IR000 ser refrescado cuando reciba una seal de interrupcin #0. Si no se utiliza el refresco de entradas, el estado de seal de entrada dentro de la rutina de interrupcin no ser fiable. Esto incluye el estado del bit de entrada de interrupcin que activa la interrupcin.

INT(-) CONTROL DE INTERRUPCIN DE ENTRADA El formato de la orden es: INT(-) C 000 D Cdigo de Control Dato de control 000,001,002,003,100 200 IR, SR, AR, DM, HR, TC, LR, TR, #

Cdigo Control 000 001 002 003 100 200

Funcin de interrupcin Enmscarar/Desenmscarar interrupciones de entrada Limpiar interrupciones de entrada Leer el estado de la mscara actual Renovar SV de contador Enmscarar todas las interrupciones Desenmscarar todas las interrupciones

Dato de control para cada dgito 0: sin mscara 1: con mscara 0: No borrar 1: Borrar 0: sin mscara 1: con mscara 0: Cambio 1: No cambio

Para evitar que una interrupcin que esta enmscarada se ejecute al desenmscararla, se debe limpiar la entrada de interrupciones antes de desenmscararla.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 9

3. INTERRUPCIONES EN EL CQM1

CONTROL DE INTERRUPCIONES

3 2 1 0
Entrada interrupcion 00000 Entrada interrupcion 00001 Entrada interrupcion 00002 Entrada interrupcion 00003 Las entradas de interrupcin de modo contador se programan de la manera siguiente: Primero debemos escribir los valores para la operacin de contador en los canales SR correspondientes a las interrupciones. El rango de valores va de 00000 a 65535 (0000FFFF). Un valor cero inhibir la operacin de contaje hasta que se seleccione un nuevo valor y se repita el paso siguiente. Interrupcin Interrupcin entrada 0 Interrupcin entrada 1 Interrupcin entrada 2 Interrupcin entrada 3 Canal SR 244 (hexadecimal) SR 245 (hexadecimal) SR 246 (hexadecimal) SR 247 (hexadecimal)

Con la instruccin INT, refrescar el valor seleccionado de modo contador y habilitar interrupciones. La interrupcin de entrada para la que se refresca el valor seleccionado ser habilitada en modo contador. Cuando el contador alcance el contaje seleccionado, se producir una interrupcin, se restaurar el contador y continuar el contaje/interrupciones hasta que el contador se pare. Cuando las interrupciones de entrada se usan como modo contador, el valor PV-1 del contador aparecer reflejado en los canales siguientes:

Interrupcin Interrupcin entrada 0 Interrupcin entrada 1 Interrupcin entrada 2 Interrupcin entrada 3

Canal SR 248 (hexadecimal) SR 249 (hexadecimal) SR 250 (hexadecimal) SR 251 (hexadecimal)

3.2. INTERRUPCIONES DE TEMPORIZADOR DE INTERVALO


El CQM1 dispone de tres temporizadores de intervalo, numerados de 0 a 2. El temporizador de intervalo 0 no puede utilizarse cuando se estn enviando pulsos a las unidades de salida por medio de la instruccin SPED. El temporizador de intervalo 2 no se puede utilizar al mismo tiempo que el contador de alta velocidad. Hay dos modos para operacin de temporizador de intervalo, el modo un impulso, en el que slo se ejecutar una interrupcin cuando transcurra el tiempo, y el modo de interrupcin programada en el que la interrupcin se repite a un intervalo fijo. OMRON ELECTRONICS, S.A. INTERRUP.DOC Pag. 10

3. INTERRUPCIONES EN EL CQM1

CONTROL DE INTERRUPCIONES

PARMETROS DE CONFIGURACIN DEL PLC Selecciones de canal de refresco de entrada (DM6636 a DM 6638):

DM6636 00-07 Canal inicial de refresco al ejecutar la interrupcin de temporizador #0 (00 a 11) 08-15 Nmero de canales de refresco ( 00 a 12) DM6637 00-07 Canal inicial de refresco al ejecutar la interrupcin de temporizador #1 (00 a 11) 08-15 Nmero de canales de refresco (00 a 12) DM6638 00-07 Canal inicial de refresco al ejecutar la interrupcin de temporizador #2 (00 a 11) 08-15 Nmero de canales de refresco (00 a 12)
Selecciones de contador de alta velocidad (DM6642) Antes de usar el temporizador de intervalo 2, verificar que: DM6642 est a 0000, es decir, contador de alta velocidad no utilizado.

MODO UN IMPULSO Cada vez que transcurre el intervalo especificado, el contador descendente disminuir su valor actual en uno. Cuando este valor llegue a 0, se llamar la subrutina asignada una vez y el temporizador parar su operacin

MODO INTERRUPCIN PROGRAMADA Cada vez que transcurre el intervalo especificado, el contador descendente disminuir su valor actual en uno. Cuando este valor llegue a 0, se llamar la subrutina asignada, el temporizador restaurar el valor seleccionado y empezar de nuevo la temporizacin. En el modo de interrupcin programada las interrupciones se irn repitiendo a intervalos fijos hasta que se pare la operacin.

STIM(-) TEMPORIZADOR DE INTERVALO El formato de esta instruccin es:

STIM(-)

Dato de control #1 Dato de control #2 Dato de control #3

000 a 008 y 010 a 012 IR, SR, AR, DM, HR, TX, LR, # IR, SR, AR, DM, HR, TX, LR, #

FUNCIN

TIM #1 C2

DATOS DE CONTROL #2 C2+1 INTERRUP.DOC

#3 Pag. 11

OMRON ELECTRONICS, S.A.

3. INTERRUPCIONES EN EL CQM1 0 1 2 0 Modo interrupcin programada 1 2 0 Lectura de PV de temporizador 1 2 0 Parar temporizador 1 2 Modo un impulso 000 001 002 003 004 005 006 007 008 010 011 012 Valor del contador #0000 a #9999 Valor del contador #0000 a #9999 n veces que ha descontado el contador (BCD)

CONTROL DE INTERRUPCIONES Intervalo temporizador unidad 0.1 ms N subrutina #0005 a #0320 Intervalo temporizador unidad 0.1 ms N subrutina #0005 a #0320 Intervalo tiempo Tiempo transcurrido del contador desde contaje anterior (BCD) (unidad 0.1ms) (BCB (unidad 0.1ms) 000 000

El tiempo entre interrupciones se calcula como sigue: (Contenido del canal C2) x (Contenido del canal C2+1) x 0.1 ms Si para C2 se selecciona una constante, entonces el valor seleccionado del contador ser dicha constante y el intervalo de tiempo ser 10 (1ms). El tiempo desde que arranca el temporizador hasta la ejecucin de esta instruccin de lectura de PV del temporizador, se calcula como sigue: {(Contenidos del canal C2) x (Contenidos del canal C2+1) + (Contenidos del canal C3)} x 0.1 ms Si para C2 se selecciona una constante, entonces el valor seleccionado del contador ser dicha constante y el intervalo de tiempo ser 10 (1ms).

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 12

3. INTERRUPCIONES EN EL CQM1

CONTROL DE INTERRUPCIONES

3.3. EJEMPLOS
Para demostrar el funcionamiento y programacin de las diversas subrutinas, hemos creado unas serie de programas con sus comentarios para facilitar su entendimiento:

Ejemplo de interrupciones de entrada en el CQM1.


Para este programa necesitamos un CQM1 con una carta de salida. En los DM de configuracin habr que seleccionar: DM6628 DM6630 DM6631 0011 0100 0100 Seleccionamos las entradas IR00000 e IR00001 como entradas de interrupcin Al ejecutar la interrupcin #0 se refresca el canal de entrada IR000 Al ejecutar la interrupcin #1 se refresca el canal de entrada IR000

En este programa tendremos desenmascaradas dos entradas de interrupciones, la #0 y la #1, definida la primera como modo de entrada y la segunda como modo contador con valor 5. Durante el programa principal un contador de valor 9999 va descontando cada 0.1 segundos y se reinicializa al llegar a 0000. Si llega una interrupcin #0 el programa principal ser interrumpido para almacenar el valor actual del contador en el DM0000 y continuar el flujo normal de programa. Si llega una interrupcin #1 se decrementa en uno el contador asociado a la interrupcin y cuando ste llega a 0000, el programa principal ser interrumpido para visualizar el DM0000, que contiene el ltimo valor introducido por la interrupcin #0, en la carta de salida C0100 y luego continuar el flujo normal de programa.

Ejemplo de interrupciones de temporizador de intervalo en el CQM1.


Para este programa necesitamos un CQM1 y una carta de salida. En los DM de configuracin no es necesaria ninguna configuracin. En este programa tendremos una interrupcin de temporizador de intervalo programada #1 que se ejecutar automticamente cada 2000 x 1ms = 2s y una interrupcin de temporizador de intervalo de un impulso que se ejecuta 9000 x 300 ms = 4.5 minutos. Durante el programa principal se ejecuta un contador descendente con valor 9999 que descuenta cada 0.1 segundos y se reinicializa al llegar a 0000. Si se activa el bit 11111 se para los temporizadores de interrupcin, deshabilitando las interrupciones. Cada 2s se activa la interrupcin programada #1 que visualiza en la carta de salida el contenido del contador (subrutina #10), y cuando se produce la interrupcin #0 en modo de un solo impulso, a los 4.5 minutos se activa el bit 11111 (subrutina #4). Al activar el bit 1111 se deshabilitan las interrupciones por lo que slo estn habilitadas durante 4.5 minutos.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 13

4. INTERRUPCIONES EN EL CV

CONTROL DE INTERRUPCIONES

4. INTERRUPCIONES EN EL CV
Los cuatro tipos de interrupciones soportados por el CV son: interrupcin de entrada, interrupcin programada, de prdida de tensin (power OFF) y adquisicin de tensin (power ON).

4.1. Interrupciones de entrada


Hasta 4 unidades de entrada de interrupciones (0 a 3) pueden ser montadas en el rack de la CPU y racks de expansin de la CPU. En una unidad de entrada de interrupciones (un canal), los bits 00 a 07 son usados por las seales de interrupcin pero los bits 08 a 15 no se usan.

Unidad interrupcin entrada Numero Bit n 0 0 1 2 3 4 5 6 7 1 0 1 2 3 4 5 6 7

Subrutina 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

Unidad interrupcin entrada Numero Bit n 2 0 1 2 3 4 5 6 7 4 0 1 2 3 4 5 6 7

Subrutina 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

4.2. Interrupciones programadas


El intervalo de tiempo entre interrupciones es establecido por el usuario y no tiene relacin con el cycle timing del autmata. La unidad de tiempo que multiplica al valor del intervalo puede ser seleccionada a 10, 1 0.5 ms mediante el PC Setup.

4.3. Interrupcin power OFF


Una interrupcin de power OFF es generada por un corte en la alimentacin de la CPU ms largo que el tiempo de corte momentneo de alimentacin establecido en el Setup del autmata (0 a 9 ms). Si el setup del autmata has sido preseleccionado para habilitar las interrupciones de power OFF, el programa de interrupcin ser activado para dirigir este corte de alimentacin. La longitud del programa de la interrupcin de power OFF est limitado a 10ms.

4.4. Interrupcin power ON


OMRON ELECTRONICS, S.A. INTERRUP.DOC Pag. 14

4. INTERRUPCIONES EN EL CV

CONTROL DE INTERRUPCIONES

Una interrupcin de power ON se activa cuando la alimentacin regresa a la CPU despus de un corte. La interrupcin de power ON es efectivo slo si hay un programa de interrupcin de power ON. El programa de interrupcin de power ON se ejecuta tras la inicializacin.

PRIORIDAD DE INTERRUPCIONES Una interrupcin de power OFF tiene la mxima prioridad, seguida por la de power ON, programada e interrupciones de entrada en este orden. Las interrupciones con nmeros menores tienen prioridad respecto a las de nmeros mayores. Las selecciones para las interrupciones de entradas en el PC Setup determinar si las interrupciones de entrada con mayor prioridad sern servidas inmediatamente o esperarn hasta que la actual interrupcin se completada. Si la seleccin est en HOLD, una interrupcin entrante debe esperar hasta que la primera interrupcin sea terminada, sin tener en cuenta el rango de prioridades de las dos interrupciones. Si la seleccin est en ejecutar la mxima prioridad, una interrupcin de entrada ser servida inmediatamente si su nmero de programa de interrupcin es mayor que la que se est ejecutando en ese momento.

PC SETTINGS En el PC Setup del CV existen ciertas posibles selecciones (desde el menu principal), relacionadas con las interrupciones:

AB-

Hold Areas Startup Hold -Forced status -I/O Bits -Power On Flag

C-

Startup Mode -Program -Debug -Monitor -Run

F-

Execute Control 2 Nesting No nesting -Power Off interrupt Enable Disable -I/O interrupt

J-

Scheduled interrupt

10.0 ms 1.0 ms 0.5 ms

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 15

4. INTERRUPCIONES EN EL CV INSTRUCCIONES

CONTROL DE INTERRUPCIONES

Hay tres instrucciones que controlan y monitorizan interrupciones de entrada e interrupciones programadas, MSKS(153), CLI(154), y MSKR(155). MSKS(153) enmascara interrupciones de entrada (de manera que son grabadas pero ignoradas) y establece el intervalo de tiempo para la interrupcin programada, CLI(154) limpia interrupciones, y MSKR(155) escribe tanto el estado de la mscara actual de un determinado mdulo de entradas de interrupcin como el intervalo actual de la interrupcin programada en un determinada palabra. INTERRUPT MASK MSKS(153) N S INTERRUPCIN DATO

N 0 1 2 3 4 5

Funcin Mscara unidad de entrada de interrupcin 0 0 no enmscarada Mscara unidad de entrada de interrupcin 1 1 enmscarada Mscara unidad de entrada de interrupcin 2 para cada entrada de la unidad Mscara unidad de entrada de interrupcin 3 #0000 - #00FF Intervalo de la interrupcin programa 0 #0001 - #9999 Intervalo interrupcin programa 1 ( CV1000) x valor seleccionado en PC Setup (10,1,0.5 ms)

CLEAR INTERRUPT CLI (154) N S INTERRUPCIN DATO Dato 0 no limpiar / 1 limpiar para cada bit correspondiente con la interrupcin de la unidad #0000 - #00FF #0001 - #9999 x valor seleccionado en PC Setup (10,1,0.5 ms)

N 0 1 2 3 4 5

Funcin Limpia las interrupciones almacenadas de la unidad 0 Limpia las interrupciones almacenadas de la unidad 1 Limpia las interrupciones almacenadas de la unidad 2 Limpia las interrupciones almacenadas de la unidad 3 Establece el tiempo para la primera interrupcin programada 0 Establece tiempo para primera interrupcin programada 1 (CV1000)

READ MASK MSKR (155) N S INTERRUPCIN DATO Dato de de Palabra donde se escribe de la mscara de Palabra donde se lee el intervalo de interrupcin programada Pag. 16

N Funcin 0 Lee mscara actual para unidad 0 de interrupciones entrada 1 Lee mscara actual para unidad 1 de interrupciones entrada 2 Lee mscara actual para unidad 2 de interrupciones entrada 3 Lee mscara actual para unidad 3 de interrupciones entrada 4 Escribe el intervalo de interrupcin programada 0 5 Escribe el intervalo de interrupcin programada 1 (CV1000)

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

4. INTERRUPCIONES EN EL CV

CONTROL DE INTERRUPCIONES

IMPORTANTE !!
A la hora de programar las subrutinas de interrupcin, sta programacin no se realiza en el programa principal como una subrutina normal, sino que se realiza en un submen aparte, por lo que deberemos seleccionar, desde el men principal del CVSS: P: Program I: Edit Int Program M: Main Y: I/O Interrupt R: Cyclic Interrupt E: Power Off Interrupt C: Power On Interrupt Para la programacin de la interrupcin de POWER OFF debemos seleccionar en el PC Setup: ABHold Areas Startup Hold -Forced status -I/O Bits -Power On Flag CStartup Mode -Program -Debug -Monitor -Run FExecute Control 2 -Power Off interrupt Enable HOLD HOLD HOLD

(cualquiera de los dos)

Seleccionamos a ON en el programa de interrupcin de power OFF los siguientes bits para conseguir continuar con el arranque cuando vuelva la alimentacin: AR00011 AR00012 Restart Continuation Bit Hold IOM Hold Bit

Sin activar estos bits no podremos arrancar la interrupcin de power ON en caso de existir. Una vez restablecida la alimentacin deberemos forzar a OFF el bit AR00015 de inhibicin de salidas, bien en la interrupcin de power ON, o bien en el programa principal.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 17

4. INTERRUPCIONES EN EL CV

CONTROL DE INTERRUPCIONES

4.5. EJEMPLO
Para demostrar el funcionamiento y programacin de las diversas subrutina, hemos creado unas serie de programas con sus comentarios para facilitar su entendimiento:

Ejemplo de interrupciones de power ON y power OFF en el CV.


Para este programa necesitamos un CV con una carta de salida en el canal c0000. En los PC Setting configuracin habr que seleccionar: PC Setup A- Hold Areas B- Startup Hold 1200H , 300 Forced Status I/O Bits Power On Flag Monitor Power Off interrupt

HOLD HOLD HOLD Enable

C- Startup Mode F- Execute Control 2

En este programa tendremos programadas las interrupciones de Power ON y de Power OFF que se activan y ejecutan cuando hay un corte de la alimentacin (power OFF) y cuando regresa la alimentacin (power ON). Durante el programa principal un contador de valor 1000 va descontando cada 0.1 segundos y se reinicializa al llegar a 0000. Cuando llega un corte de la alimentacin, el CV realiza sus operaciones internas y reserva un tiempo de unos 10 ms para la ejecucin de la subrutina de interrupcin de Power OFF si la hubiera. En este caso en esta subrutina se activa el bit de hold 125000, se guarda el contenido del contador en el canal de hold 1270 y se activan los bits A00011 y A00012 para habilitar la interrupcin de ON en caso de regreso de la alimentacin (sin activar estos bits, se producira alarma y no se ejecutara la interrupcin de ON). Cuando regresa la alimentacin, si est activo el bit de hold 125000 (activado en la interrupcin de OFF), se guarda FFFF en el DM0100; independientemente al bit de hold anterior, se activa el bit de hold 130000, se desactiva el bit A00015 (para habilitar las salidas) y se mueve a la carta de salida el contenido del canal DM0100 que ser FFFF. Por ltimo se desactivan los bits A0011 y A00012.

OMRON ELECTRONICS, S.A.

INTERRUP.DOC

Pag. 18

También podría gustarte