Académique Documents
Professionnel Documents
Culture Documents
ISA-UMH TDOC-2000
Indice
n
Introduccin
Subrutinas vs rutinas de interrupcin Subrutinas Tareas a realizar para utilizar una subrutina en el programa
n n n n n n
Crear una subrutina Llamar a una subrutina Rutinas de interrupcin Ejemplo subrutinas Ejemplo de interrupciones temporizadas Ejemplo de tratamiento de Interrup. De E/S
Autmatas Programables
ISA-UMH TDOC-2000
Introduccin
n
Subrutina SBR N
Autmatas Programables
ISA-UMH TDOC-2000
Introduccin
n
Subrutinas
Las subrutinas se utilizan para estructurar o dividir el programa en bloques ms pequeos. Ms fciles de gestionar. Facilita las tareas de comprobacin, eliminacin de errores y mantenimiento del programa. La CPU tambin se puede utilizar ms eficientemente, invocando el bloque slo cuando se necesite, en vez de ejecutar todos los bloques en cada ciclo. las subrutinas se pueden transportar si se hace referencia nicamente a sus parmetros y a su memoria local.
Para que una subrutina se pueda transportar, se debe evitar la utilizacin de variables/smbolos globales (direcciones absolutas en las reas de memoria I, Q, M, SM, AI, AQ, V, T, C, S, AC). n Si la subrutina no tiene parmetros de llamada (IN, OUT IN_OUT), o si utiliza nicamente variables locales en la memoria L, la subrutina se puede exportar a e importar de un proyecto diferente. Autmatas Programables
n ISA-UMH TDOC-2000
Introduccin
n
Autmatas Programables
ISA-UMH TDOC-2000
Subrutina 1
Autmatas Programables
ISA-UMH TDOC-2000
Rutinas de interrupcin
n
Antes de poder llamar a una rutina de interrupcin es preciso establecer un enlace entre el evento de interrupcin y la parte del programa que se desee ejecutar cuando se presente el evento (RUTINA DE INTERRUPCIN) La operacin Asociar interrupcin (ATCH) sirve para asignar el evento de interrupcin (indicado por el nmero de evento) a una parte del programa (indicada por el nmero de la rutina de interrupcin). Tambin es posible asociar varios eventos de interrupcin a una nica rutina de interrupcin. Por el contrario, no se puede asociar un slo evento a distintas rutinas.
Autmatas Programables
ISA-UMH TDOC-2000
Rutinas de interrupcin
Autmatas Programables
ISA-UMH TDOC-2000
Rutinas de interrupcin
n
Cuando se produce un evento estando habilitadas las interrupciones, se ejecuta nicamente la ltima rutina de interrupcin asociada a dicho evento. Cuando se asocia un evento a una rutina de interrupcin, se habilita automticamente el evento. Si se inhiben todos los eventos de interrupcin, entonces cada vez que se presente la interrupcin, se pondr en cola de espera hasta que las interrupciones se habiliten de nuevo, utilizando para ello la operacin Habilitar todos los eventos de interrupcin. Tambin es posible inhibir ciertos eventos de interrupcin, eliminando la asociacin entre el evento y la correspondiente rutina mediante la operacin DTCH (Desasociar interrupcin). Esta operacin retorna la interrupcin a un estado inactivo o ignorado.
10
Autmatas Programables
ISA-UMH TDOC-2000
Rutinas de interrupcin
n
Notas
En un programa se permiten 128 rutinas de interrupcin como mximo. La CPU procesa las interrupciones segn su prioridad y despus en el orden que aparecen. Slo se ejecuta una rutina de interrupcin a la vez. Las interrupciones que se presenten mientras se est ejecutando otra interrupcin se ponen en cola de espera para ser procesadas posteriormente.
Autmatas Programables
ISA-UMH TDOC-2000
11
Rutinas de interrupcin
Autmatas Programables
ISA-UMH TDOC-2000
12
Rutinas de interrupcin
n
Habilitar todos los eventos de interrupcin, Inhibir todos los eventos de interrupcin
La operacin Habilitar todos los eventos de interrupcin habilita la ejecucin de todos los eventos asociados. La operacin Inhibir todos los eventos de interrupcin inhibe la ejecucin de todos los eventos asociados. Operandos: ninguno Tipos de datos: ninguno Cuando la CPU pasa a modo RUN, las interrupciones se inhiben. Estando en modo RUN, se pueden habilitar todos los eventos de interrupcin con la operacin global ENI. La operacin DISI permite poner las interrupciones en cola de espera, pero no llamar a ninguna rutina de interrupcin.
Autmatas Programables
ISA-UMH TDOC-2000
13
Rutinas de interrupcin
n
Autmatas Programables
ISA-UMH TDOC-2000
14
Rutinas de interrupcin
n
Tipos de interrupciones
Interrupciones de comunicacin
n
El puerto serie. La comunicacin a travs de dicho puerto se denomina modo Freeport (comunicacin programable por el usuario). En modo Freeport, el programa define la velocidad de transferencia, los bits por carcter, la paridad y el protocolo. Las interrupciones de transmisin y recepcin permiten controlar la comunicacin mediante el programa. Las interrupciones E/S abarcan interrupciones en flancos positivos y negativos, interrupciones de los contadores rpidos, as como interrupciones de la salida de impulsos.
Interrupciones E/S
n
Autmatas Programables
ISA-UMH TDOC-2000
15
Rutinas de interrupcin
n
Tipos de interrupciones
Interrupciones temporizadas
n
Las interrupciones temporizadas incluyen tambin las de los temporizadores T32/T96. La CPU puede asistir interrupciones temporizadas. Las interrupciones temporizadas se utilizan para indicar tareas que deban ejecutarse cclicamente El tiempo de ciclo se incrementa en intervalos de 1 ms, abarcando desde 1 ms hasta 255 ms. El tiempo de ciclo de la interrupcin temporizada 0 se debe escribir en SMB34, y el de la interrupcin temporizada 1, en SMB35. Tpicamente, las interrupciones temporizadas se utilizan para controlar el muestreo de las entradas analgicas en intervalos regulares o para ejecutar un bucle PID.
Autmatas Programables
ISA-UMH TDOC-2000
16
Rutinas de interrupcin
n
Interrupciones temporizadas
Al asociar un evento de interrupcin temporizado a una rutina de interrupcin, se habilita el evento e inmediatamente se empieza a temporizar. Para poder modificar el tiempo de ciclo se deber cambiar el valor del mismo y reasociar luego la rutina de interrupcin al evento de la interrupcin temporizada. Al reasociarse la rutina de interrupcin, la funcin borra los tiempos acumulados de la asociacin anterior, con lo cual se vuelve a temporizar a partir del nuevo valor. Una vez habilitada, la interrupcin funciona de forma continua ejecutando la rutina asociada cada vez que transcurre el intervalo de tiempo indicado.
Autmatas Programables
ISA-UMH TDOC-2000
17
Rutinas de interrupcin
n
Interrupciones temporizadas
La interrupcin temporizada se inhibe saliendo del modo RUN o desasocindola de la rutina correspondiente (mediante la operacin DTCH). Si se ejecuta la operacin Inhibir todos los eventos de interrupcin, se siguen generando interrupciones temporizadas, pero se ponen en cola de espera (hasta que se habiliten nuevamente o hasta llenarse dicha cola).
Autmatas Programables
ISA-UMH TDOC-2000
18
Rutinas de interrupcin
Autmatas Programables
ISA-UMH TDOC-2000
19
Rutinas de interrupcin
n
Interrupciones de comunicacin (prioridad ms alta) Interrupciones E/S Interrupciones temporizadas (prioridad ms baja)
La CPU procesa las interrupciones segn su prioridad y despus en el orden en que aparecen. Slo se ejecuta una rutina de interrupcin en cada caso Las interrupciones que aparezcan mientras se est ejecutando otra interrupcin se ponen en cola de espera para ser procesadas posteriormente.
Autmatas Programables
ISA-UMH TDOC-2000
20
10
Rutinas de interrupcin
n
Pueden presentarse ms interrupciones de las que puede acoger la cola de espera. Marcas de desbordamiento que indican qu eventos de interrupcin no se han podido acoger en la cola de espera.
Autmatas Programables
ISA-UMH TDOC-2000
21
Rutinas de interrupcin
Autmatas Programables
ISA-UMH TDOC-2000
22
11
Rutinas de interrupcin
Autmatas Programables
ISA-UMH TDOC-2000
23
Ejemplo Subrutinas
n
Mediante la preseleccin de tres interruptores se pretende conseguir una seal de periodo variable
Q0.0
T
Autmatas Programables
ISA-UMH TDOC-2000
12
Objetivo
Utilizar las interrupciones temporizadas para generar una secuencia de destellos.
n
La activacin de la entrada I0.1 reduce la frecuencia de destellos a la mitad de la mencionada secuencia. La activacin de la entrada I0.0 restablece la frecuencia original de destellos.
Este ejemplo explica el tratamiento general de las interrupciones temporizadas as como la modificacin de la base de tiempo.
Autmatas Programables
ISA-UMH TDOC-2000
25
Autmatas Programables
ISA-UMH TDOC-2000
26
13
Autmatas Programables
ISA-UMH TDOC-2000
27
Autmatas Programables
ISA-UMH TDOC-2000
28
14
Autmatas Programables
ISA-UMH TDOC-2000
29
Objetivo
Realizar un programa que cuente de 0 hasta 255, en funcin de la entrada I0.0. Si est activada la entrada I0.0, el programa cuenta hacia atrs. Si no est activada la entrada I0.0, el programa cuenta hacia adelante. Si se conmuta la entrada, se dispara una rutina de interrupcin de entrada/salida (E/S). Esta rutina de interrupcin activa o desactiva la marca M0.0 de contaje atrs. La activacin de la entrada I0.1 provoca el reseteo del contador. Utilizar la marca SM0.5.
Autmatas Programables
ISA-UMH TDOC-2000
30
15
Flujograma
INICIO ACTIVAR I0.0 PARA DISPARAR INT 5: ACTIVAR LA MARCA DE CONTAJE ATRS (M0.0 = 1 )
DESACTIVAR I0.0 PARA DISPARAR INT 6: ACTIVAR LA MARCA DE CONTAJE ADELANTE (M0.0 = 0 ) INICIALIZAR EL CONTADOR EN EL PRIMER CICLO
NO
SI
FIN
Autmatas Programables
ISA-UMH TDOC-2000
31
Autmatas Programables
ISA-UMH TDOC-2000
32
16
Autmatas Programables
ISA-UMH TDOC-2000
33
Rutina de interrupcin 5
Rutina de interrupcin 6
Autmatas Programables
ISA-UMH TDOC-2000
34
17