Vous êtes sur la page 1sur 6

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

ISSN 0122-1701

Implementacin de un microcontrolador PIC con el Mtodo Grafcet


Implementing of a PIC microcontroller with GRAFCET method
Resumen Se describe una metodologa para programar un microcontrolador PIC 16F84 a partir del Grafcet y se aplica a un problema en particular. Palabras clave: PIC, Grafcet, microcontrolador. Abstract A methodology is described to program a microcontroler PIC 16F84, starting from the Grafcet of the solution of the problem and is carried out a practical application from this methodology to a particular problem. Keywords: PIC, Grafcet, microcontroller. Osiel Arbelez Salazar Ingeniero en Control Electrnico e Instrumentacin Profesor Asistente Universidad Tecnolgica de Pereira osiel@utp.edu.co Jairo Alberto Mendoza Vargas Ingeniero Electricista, M.Sc Profesor Asistente Universidad Tecnolgica de Pereira jam@utp.edu.co Jos A. Muriel Escobar Ingeniero Mecnico Instructor SENA Industria. Dosquebradas jamuriel@sena.edu.co 1. Introduccin La programacin de microcontroladores PIC en lenguaje ensamblador resulta un poco confusa para las personas no expertas en la programacin en este ambiente, porque por lo general se carece de un mtodo sistemtico para solucionar el problema y tampoco se dispone de un codificador en el lenguaje ensamblador del microcontrolador. El Grafcet (Grfico Funcional de Etapas y Transiciones) es un mtodo de descripcin funcional de sistemas (procesos) en el curso de su operacin, que establece una correspondencia secuencial (sucesin de etapas) entre las entradas (informacin) y las salidas (acciones). Una de las ventajas del Grafcet es que con un grfico se puede plasmar la solucin de un problema de lgica secuencial de una manera ordenada y muy sencilla. Adems es de mucha utilidad programar directamente el microcontrolador a partir de la solucin dada en el Grafcet, sin necesidad de acudir a un tipo de conversin o de traducir al lenguaje del microcontrolador. Para realizar lo anterior, se necesita conocer solo algunas instrucciones bsicas del listado del microcontrolador. En este documento no se profundizar en el Grafcet ni en la programacin de los microcontroladores, sino se mostrar una manera
Fecha de Recepcin: (Letra Times New Roman de 8 puntos) Fecha de Aceptacin: Dejar en blanco

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).

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

Regla 1: Etapa inicial

<==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).

Regla 3: Evolucin de las etapas activas una etapa provoca

<==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

Figura 6. Acciones asociadas

Reglas de evolucin:

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

3 RA2 RA3 RB0 RB1 RB2

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

Tabla 1. Acciones, entradas, salidas del microcontrolador

El Grafcet correspondiente a la solucin se representa en la Figura 8, as:

0
H [RA0]

Subir Rpido [RB0]

PM

1
PM [RA1]

2
b1 [RA2]

Bajar Rpido (RB1)

3 h b1

Bajar Lento (RB2)


b2 [RA3]

Figura 8. Grafcet ejemplo de aplicacin 1

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:

Final de carrera h Pulsador de inicio


________________________

Entrada puerto A RA0 RA1

Salida Puerto B

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

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).

list p=16f84 radix hex

;tipo de C ;base numrica para trabajar

ptob ptoa estado w

equ equ equ equ

0x06 0x05 0x03 0x00

;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

org goto org

0 inicio 7

;salto del vector de interrupciones

inicio

bsf movlw movwf movlw movwf bcf

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

Subir Rpido [ RB0


h [ RA0 ]

;------------------------------------------------------------------------------------------------------; ; ; =========== DESDE AQUI EL PROGRAMA GRAFCET =========== Este programa controla un sistema de perforacin de piezas

1
PM [ RA1 ]

;--------------------------------------------------------------------------------------------------------

etapa0

movlw movwf btfss goto

b'00000001' ptob ptoa,0 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.

Bajar Rpido (RB1)


b1 [ RA2 ]

etapa1

movlw movwf btfss goto

b'00000000' ptob ptoa,1 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

Bajar Lento (RB2) ( b2 [ RA3 ] ) OR ( Stop [ RA4 ] )

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

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

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).

;================= CONFIGURACIN DE PIC ========

list p=16f84 radix hex

;tipo de uC ;base numrica para trabajar

ptob ptoa

equ equ equ equ

0x06 0x05 0x03 0x00

;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

org goto org

0 inicio 7

;salto del vector de interrupciones

1
PM [ RA1 ]
inicio

Figura 12. Cdigo en ensamblador


bsf movlw movwf movlw movwf estado,5 ;configuracin de las

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)

; ; =========== DESDE AQUI EL PROGRAMA GRAFCET ===========

4
b2
RA3

Bajar Lento (RB2)

;--------------------------------------------------------------------------------------------------------

NOT(b2)

etapa0

movlw movwf btfss

b'00000001' ptob ptoa 0

;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

Figura 11. Grafcet adaptado para el Ejemplo de Aplicacin II

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

Acc 1 NOT (A ) Acc 1 NOT (B )

15

20

Acc 2

Figura 13. Grafcet para estructura AND

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

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.

Vous aimerez peut-être aussi