Académique Documents
Professionnel Documents
Culture Documents
ISSN 0122-1701
de programarlos usando una herramienta tan poderosa y verstil como el Grafcet. 2. Grafcet El grfico secuencial de funciones (Grafcet) proporciona una representacin en forma de diagrama de las secuencias del programa. En este se pueden representar selecciones alternativas de secuencia y secuencias paralelas. Los elementos bsicos son etapas y transiciones [2]. Las Etapas representan cada uno de los estados del sistema. El smbolo para una etapa es un cuadrado con un nmero o una letra en su interior que la identifica. (Ver Figura 1). 1 Figura 1. Etapa Etapa Inicial: se posiciona el sistema al iniciarse por primera vez y se representa por un cuadrado con doble lnea. (Ver Figura 2).
1
Figura 2. Etapa inicial Las Lneas de Evolucin unen entre s las etapas que representan actividades consecutivas. Las lneas se entendern siempre orientadas de arriba hacia abajo, a menos que se represente con una flecha en sentido contrario. (Ver Figura 3).
<==Lnea de evolucin 2
Regla 2: Franqueo de una transicin El franqueo de una transicin se produce cuando se valida la transicin y cuando la receptividad asociada sea verdadera, es decir, cuando se verifique o cumpla. Se dice que una transicin est validada cuando la etapa (o las etapas) precedente est activa.
Figura 3. Lneas de evolucin Las Transiciones representan las condiciones lgicas necesarias para que finalice la actividad de una etapa y se inicie la etapa o etapas inmediatamente consecutivas. Las transiciones se representan grficamente por una lnea cruzada sobre las lneas de evolucin. (Ver Figura 4).
<==Transicin 2
El franqueo de simultneamente:
La desactivacin de la etapa (o de las etapas, en caso) anterior. La activacin de la etapa (o de las etapas) siguiente.
Figura 4. Transicin Los Reenvos son smbolos en forma de flecha que indican la procedencia o destino de las lneas de evolucin. Las flechas de reenvo permiten fraccionar un grfico o evitan dibujar lneas de evolucin con excesivos cruces. (Ver Figura 5) 1
Reenvo ==>
3. Los microcontroladores PIC Un microcontrolador es un circuito integrado que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una determinada tarea y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo que l gobierna. Por esta ltima caracterstica se denomina controlador incrustado [1]. En su memoria solo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada / salida soportan la conexin de sensores y actuadores del dispositivo que se va a controlar. El microcontrolador programado sirve solamente para gobernar la tarea asignada. La programacin de los microcontroladores se realiza por medio de un lenguaje ensamblador de bajo nivel (ms cercano a la mquina), propio del microcontrolador (fabricante). Los programas bien realizados en lenguaje ensamblador optimizan el tamao de la memoria que ocupan y se ejecutan ms rpido. Los lenguajes de alto nivel ms empleados con microcontroladores son el C y el Basic. Los microcontroladores PIC son una familia de dispositivos fabricados por la firma Microchip. Son muy populares debido a sus prestaciones, bajo costo y reducido nmero de instrucciones (35), con las que se programan y manejan las tareas del
<==Reenvo
Figura 5. Reenvo Las acciones asociadas a cada etapa indican la actividad que se va a desarrollar cuando sta se active. (Ver Figura 6).
Accin 1
Accin 2
Reglas de evolucin:
microcontrolador y se conoce su arquitectura. De esta forma, se asegura una programacin efectiva. Por tratarse de instrucciones de bajo nivel son poco claras para las personas que apenas se inician en la programacin de los microcontroladores y crean con ello un doble problema: por un lado, resolver el problema de control, y por otro, la programacin en el microcontrolador. A continuacin presentaremos algunos ejemplos de aplicacin que ilustran la metodologa utilizada en este artculo. 4. Ejemplo de Aplicacin I Sea el proceso de taladro mostrado en la figura 7.
PM Final de carrera b1 Final de carrera b2 Subir taladro Rpidamente Bajar taladro Rpidamente Bajar taladro Lentamente
0
H [RA0]
PM
1
PM [RA1]
2
b1 [RA2]
3 h b1
b2
Figura 7. Sistema de perforacin
Cuando la solucin est en el Grafcet se codifica en el lenguaje ensamblador propio del microcontrolador. El repertorio de instrucciones que se utiliza es casi el mismo para cada etapa. As, para las personas no expertas en este ambiente de programacin, la codificacin y la revisin son ms fciles de interpretar, porque con el Grafcet como punto en comn se genera un puente de comunicacin estructurado entre expertos y no expertos. Atendiendo a las reglas de evolucin del Grafcet hay que tener presente la etapa inicial, las que se activan y las que se desactivan con el disparo de las transiciones, al igual que las acciones asociadas a cada etapa y la posterior verificacin de la transicin, para tomar la decisin de saltar a la siguiente o permanecer en la actual. Este procedimiento se repite indefinidamente y genera un loop en la etapa activa, que se rompe solo cuando se cumple la transicin.
El proceso debe comenzar con el taladro en posicin alta h. Activando el pulsador de marcha (PM), el taladro desciende a gran velocidad hasta llegar a la posicin de b1 y a baja velocidad hasta b2. El proceso concluye con un retroceso a gran velocidad hasta la posicin de inicio h. Se desea programar el microcontrolador (C) 16F84 de tal manera que las entradas correspondan al puerto A y las salidas al puerto B, de acuerdo con la Tabla 1:
Salida Puerto B
La configuracin preliminar del microcontrolador (entradas, salidas, acumulador, estado, tmr_opt, etc.) es particular y depende de la aplicacin que se vaya a dar al dispositivo. Enseguida se explicar la codificacin del programa y su relacin directa con el Grafcet. (Ver Figura 9).
;================= CONFIGURACIN DE PIC ========
con GOTO, la validacin de la transicin en el Grafcet se hace en el microcontrolador con la instruccin BTFSS. Lo que significa para el Grafcet permanecer en una etapa hasta que se cumpla la condicin de transicin, para el microcontrolador es un loop en la misma etapa, hasta que la condicin permita el salto a otra etiqueta. 5. Ejemplo de aplicacin II Se quiere mejorar el sistema automtico de perforacin de piezas planteado en el Ejemplo de Aplicacin I, agregando un botn de paro prioritario mientras se realiza la perforacin de la pieza, de tal forma que este paro (Stop) suba rpidamente el taladro y deje el sistema listo para una prxima operacin. El dato de entrada del botn de paro (Stop) se detectar por el puerto A del microcontrolador y en el bit RA4 (Ver Figura 10).
;se le asigna al puerto b la direccin 06h ;se le asigna al puerto a la direccin 05h ;el registro estado es la direccin 03h ;el registro de trabajo es la direccin 00h
reset
0 inicio 7
inicio
estado,5
;configuracin de las
b'00000000' ;entradas y salidas ptob 0xff ptoa estado,5 ;se configura el puerto b como salida ;se configura el puerto a como entrada
;------------------------------------------------------------------------------------------------------; ; ; =========== DESDE AQUI EL PROGRAMA GRAFCET =========== Este programa controla un sistema de perforacin de piezas
1
PM [ RA1 ]
;--------------------------------------------------------------------------------------------------------
etapa0
;la etapa 0 sube rpidamente el taladro ; se explora la transicin h (RA0) si es ; 1 salta a la etapa 1 y si es 0 vuelve a la ; etapa 0 haciendo un loop.
etapa1
;la etapa 1 desactiva todas las salidas ;espera la orden del pulsador PM, se ;explora la transicin RA0 y si es 1 salta ;a la etapa 2 y si no se queda en la 1
Figura 9. Configuracin del microcontrolador Como se observar la codificacin muestra una cierta estructura asociada al Grafcet del problema, con lo cual se llevan, de alguna manera, todas las ventajas sistemticas del Grafcet a la programacin del microcontrolador. En otras palabras, analicemos la etapa nmero 2 del Grafcet de la figura 8 y el cdigo generado: cuando se activa la etapa 2 se pone un 1 en el bit RB1 del microcontrolador (bajar rpido), con las instrucciones MOVLW y MOVWF; luego, se explora la transicin RA2 (que se hace con la instruccin BTFSS) y si es 0 (falsa), permanece en la etapa 2 (que se hace con GOTO a etapa 2 nuevamente). De lo contrario, salta a la etapa 3. Los enlaces entre epatas del Grafcet se hacen en el microcontrolador Figura 10. Ejemplo de aplicacin 2 El Grafcet del Ejemplo de Aplicacin II (Figura 10), no cambi sustancialmente, porque solo se agreg la opcin de paro prioritario como una transicin desde la etapa 3 a la etapa inicial (etapa 0). Si se desea crear el cdigo en ensamblador para el microcontrolador hay que hacer una lectura simultnea del bit RA3 y RA4 del puerto A, porque las condiciones de transicin as lo exigen. Pero el microcontrolador no trabaja lecturas paralelas, salvo en el caso de que se lea todo el puerto directamente y se enmascaren los datos que se
quieren evaluar. Esta tarea es fcil para un experto, pero compleja para quien no lo es. Por otra parte, si lo que se busca es que la codificacin en el lenguaje ensamblador del microcontrolador conserve la misma estructura que el Grafcet del problema hay que explorar primero una transicin (la prioritaria) y si es falsa (no se ha disparado), pasar a otra etapa y ejecutar la accin correspondiente, luego explorar la otra condicin de transicin del proceso (b2). Para este problema en particular se redisea el Grafcet teniendo en cuenta lo anteriormente citado respecto a la lectura secuencial de las transiciones (Ver Figura 11).
normatividad de la independencia de la tecnologa de Grafcet. Sin embargo, lo que se pretende es tener como base un mtodo estructurado de solucin de problemas de carcter secuencial para los microcontroladores, que les suministre a los no expertos una estructura fcil de comprender en la programacin de los microcontroladores. A continuacin se muestra el cdigo en lenguaje ensamblador para esta solucin en el microcontrolador PIC 16F84. (Ver figura 12).
ptob ptoa
;se le asigna al puerto b la direccin 06h ;se le asigna al puerto a la direccin 05h ;el registro estado es la direccin 03h ;el registro de trabajo es la direccin 00h
Subir Rpido [
RB0
estado w
h [ RA0 ]
reset
0 inicio 7
1
PM [ RA1 ]
inicio
2
b1 [
Bajar Rpido
(RB1)
b'00000000' ;entradas y salidas ptob 0xff ptoa estado,5 ;se configura el puerto b como salida ;se configura el puerto a como entrada
bcf
Bajar
Lento
;------------------------------------------------------------------------------------------------------; Este programa controla un sistema de perforacin de piezas
Stop RA4
NOT (Stop)
4
b2
RA3
;--------------------------------------------------------------------------------------------------------
NOT(b2)
etapa0
;la etapa 0 sube rpidamente el taladro ; se explora la transicin h (RA0) si es ; 1 salta a la etapa 1 y si es 0 vuelve a la
Como se aprecia en la Figura el Grafcet se adapt (sin ser estrictos con la norma IEC 848); la etapa 3 se extendi a otra (etapa 4), pero pas solo despus de validar la transicin de paro prioritario. Ya en la etapa 4 ejecuta nuevamente la accin de bajar lento el taladro, pero solo explora la condicin de transicin (finalizacin de la perforacin b2). Si no se ha disparado regresa a la etapa 3, vuelve a bajar lento, pero ahora explorando nuevamente la validacin o no de la transicin Stop ([RA4]). Hay que aclarar que este tipo de grficos Grafcet, como el de la Figura 11 es un poco sui gneris, porque su aplicacin se est particularizando al caso de los microcontroladores, violando la
________________________
Para cuando la transicin sea la simultaneidad de dos variables de entrada (AND), se puede plantear el siguiente Grafcet. (Ver Figura 13).
10 10 20
Acc 1 A AND B Acc 2 B A
15
20
Acc 2
La estrategia es similar a la utilizada en el Ejemplo de Aplicacin II. Analicemos el Grafcet de la Figura 13: si el proceso est en la etapa 10, primero se explora la condicin de transicin A y si es verdadera pasa a la etapa 15. Aqu se explora la condicin B y si es verdadera pasa a la etapa 20, lo que indica que tanto la condicin A como la B son verdaderas simultneamente (A and B). Si el proceso est en la etapa 10 y al explorar la condicin A resulta falsa, retorna a la misma etapa 10 sin siquiera rastrear la otra condicin (B), porque se necesita que ambas (A y B) sean verdaderas simultneamente, entonces no es necesario explorar la B. Mientras se explora la simultaneidad de las condiciones A y B, en cada etapa se debe ejecutar la accin correspondiente, como lo muestra el Grafcet de la Figura 4.
6. Pruebas y resultados La metodologa se ha probado con estudiantes que no tienen ninguna nocin de la programacin de microcontroladores, pero que s conocen bien el Grafcet como herramienta de solucin de problemas referentes al diseo de sistemas control secuencial. Los resultados han sido satisfactorios, en la medida en que se parte de la solucin del problema independientemente de la tecnologa utilizada. Y lo ms importante es que los estudiantes que no poseen ningn conocimiento sobre el tema pueden aplicarla fcilmente. Los aprendices se preocupan ms por la solucin del problema que por la misma codificacin del programa, porque son pocas las instrucciones que se utilizan y conservan adems la misma estructura. Tambin pueden abordar problemas ms complejos sin necesidad de utilizar esta metodologa que, por lo dems, les ensea a pensar en un orden estructurado en la programacin del microcontrolador. 7. Conclusiones Se encontr gran aplicacin de la metodologa en la enseanza de los microcontroladores y su programacin de una forma ms sencilla para personas no expertas. Al apoyarse en la realizacin del Grafcet la metodologa hace que se piense inicialmente solo en la solucin del problema, al margen de la
tecnologa que se va a aplicar posteriormente. Esto se traduce en una ventaja a la hora de querer abordar otras tecnologas para la implementacin de la solucin. El cdigo de programacin del microcontrolador presenta una estructura organizada y con mucha relacin al Grafcet del problema, con lo cual se gana tiempo a la hora de depurar los errores y analizar el programa. Una desventaja es que el cdigo resulta ser mucho ms largo que si se realiza de otra manera (capacidad de memoria del programa). Pero el punto a favor es que para aplicaciones de control secuencial (control de procesos industriales), por lo general los tiempos de ejecucin de las tareas son relativamente largos en comparacin con el tiempo de escaneo del microcontrolador. As, el ahorro de instrucciones con respecto a la facilidad de programacin con esta metodologa no es significativo. Como toda herramienta, no es ciento por ciento falible, pero como estrategia inicial en la enseanza de la programacin de los microcontroladores es muy poderosa, porque le da sentido funcional a la solucin de problemas de control secuencial. 8. Referencias [1] J.M. Angulo, I Angulo (1999). Microcontroladores PIC. Diseo y aplicaciones. McGraw Hill, 2da Edicin. [2] J. Balcells, J.L. Romeral (1998). Autmatas Programables. Alfaomega-Marcombo. [3] R. W. Lewis (1998).Programming industrial control systems using IEC 1131-3. IEE Control Engineering Series 50. [4] Pea, Juan Domingo (2003). Autmatas programables. Introduccin a los autmatas programables. Biblioteca Multimedia Industria. Editorial UOC. [5] Alfonseca, Manuel (1999). Teora de autmatas y lenguajes formales. Editorial Mc Graw Hill. [6] Bocksnick, Bernd (1990). Fundamentos de la tcnica de mando. Festo. [7] Bollinguer, J. G. y Duffie, N. A. (1998) Computer control of Machines and Process. Addison-Wesley. [8]Mayol, A (1990). Autmatas programables. Marcombo.