ARREGLOS LÓGICOS GENÉRICOS (GAL´S) Y MOTORES A PASOS
APLICADOS AL CONTROL DE UN TRAZADOR XYZ.
J. Gilberto Mateos S., Emilio González R., Ramón Máquez L., David Godinez A.
Universidad de Guadalajara, Centro Universitario de Ciencias Exactas e Ingenierías
División de Electrónica y Computación, Departamento de Electrónica
Blvd. Marcelino García Barragán No. 1421 y Calzada Olímpica C.P. 44420
Télefono/FAX; (++52)-3619-8471 Guadalajara Jal. México C.P. 44420
EMAIL: jmateos@cucei.udg.mx

RESUMEN

Este proyecto controla el movimiento de un taladro en tres dimensiones xyz. El movimiento se realiza con tres motores a pasos. Un motor controla el movimiento "x", otro activa él "y", el tercero él "z". La secuencia de movimientos se diseña para trazar letras, el largo y ancho (tamaño) de las letras las define el usuario. El análisis booleano consiste en establecer la secuencia de las variables que intervienen, y en obtener las ecuaciones lógicas mediante mapas de Karnaugh.

La tarea del proyecto; "Arreglos Lógicos Genéricos (GAL´S) y Motores a Pasos Aplicados al Control de un Trazador xyz", es mostrar un sistema mecánico con tres grados de libertad, la herramienta se controla a través del microcircuito integrado GAL16V8.

 
Se diseña un circuito secuencial y se estructura la programación del GAL, sus terminales de salida se usan para controlar el movimiento del trazador xyz, a través de los motores a pasos.Una vez programado el GAL se implementa una etapa de potencia con 4 transistores NPN para activar las bobinas de cada motor a pasos, 3 transistores PNP controlan la alimentación.
La secuencia que se programa en el GAL controla los sentidos de giro y la alimentación de cada motor. El sistema cuenta con botón de principio de carrera, el cual hace que comience la secuencia.
 
Al finalizar la secuencia regresa automáticamente al estado inicial en espera de la siguiente instrucción de arranque. La velocidad de los motores se controla con un oscilador que se conecta al reloj del GAL. Se muestra el análisis, resultados y diagramas para realizar la programación del GAL (Generic Array Logic).Para la programación del GAL se utiliza el OPAL, el cual además de generar el archivo "file.jed", simula el funcionamiento de las ecuaciones que se proponen como solución del problema a resolver y por ultimo se graba el GAL16V8. Las ecuaciones lógicas constan de dos partes, una combinatoria y otra secuencial.
 
La ecuaciones combinatorias controla la alimentación de cada motor a pasos, de acuerdo a la activación de los botones de principio y fin de carrera; mientras que las ecuaciones secuenciales, forman un contador de anillo para controlar los pulsos de cada una de las bobinas de los motores a pasos.
 
1.0 Antecedentes
En general, los GAL, son circuitos integrados de lógica programable que utilizan tecnología MOSFET, éstos cuentan con un arreglo matricial de fusibles que inicialmente conectan todas las terminales de entrada del circuito, con todas las compuertas de un arreglo AND-OR [1].
 
Además contienen una sección denominada Macrocelda Lógica de Salida OLMC (Ouput Logic Macro Cell), que es una sección del GAL que incluye a los elementos necesarios para configurar sus salidas, de cuatro maneras lógicas distintas.
Con los GAL´S se proporciona una herramienta versátil en la solución de sistemas lógicos combinatorios o secuenciales. Los circuitos que se generan con esta técnica de diseño son pequeños y consecuentemente económicos. El GAL pertenece a la familia de los dispositivos lógicos programables (PLD’S), la característica OLMC (OutputLogic Macro Cell), hace posible el cambiar la polaridad de las salidas.
 
2.0 Dispositivos Lógicos Programables.
La lógica programable se usa como una manera de “personalizar“ los diseños lógicos, es decir, se diseñan pensando en el hardware propio. Los primeros PLD´S se programaron por máscara y se desarrollaron por fabricantes de computadoras, a principios de los sesenta llegó la lógica programable por fusibles y desde entonces ésta técnica, estuvo disponible tanto para pequeños como para grandes usuarios [1]. La tarea del diseñador lógico se simplifica con el uso del software, existen programas con los que actualmente se realizan tareas de diseño y minimización de lógica secuencial, esto es, representación Booleana de alto nivel, el software facilita la selección de dispositivos y ayuda a generar vectores de prueba para la simulación del circuito antes de su implementación final.
 
3.0 Motores a Pasos
Un motor paso a paso PAP, es una máquina eléctrica en la que sus devanados se energizan uno después del otro, estas excitaciones provocan un giro discontinuo en un ángulo que se determina por la posición que toma el eje [9]. El motor a pasos es capaz de transformar información digital, en movimientos mecánicos, el eje del motor gira un determinado ángulo por cada impulso de entrada, el resultado final del movimiento es fijo y repetible, produce un posicionamiento preciso y fiable, el sentido de rotación del motor se define con el sentido de excitación de los arrollamientos que al ser excitados con impulsos, actúan sobre un núcleo de hierro dulce ó de imán permanente y lo hacen girar un ángulo, la velocidad de rotación del eje del motor en revoluciones/minuto es;
N=60f / n                                     (Ec. 1)

En donde; f = frecuencia de los impulsos; n = número de bobinas.

El desplazamiento angular al pasar de una bobina a otra es de 2/n, lo que representa una conversión de señales digitales de excitación a una posición angular discontinua definida sobre el eje del motor. Al desplazamiento se le denomina paso angular y es precisamente lo que caracteriza a este tipo de motores, ya que funcionan a saltos ó en pasos con un ángulo determinado [9].

Según el sentido de excitación de los arrollamientos se producen saltos hacia la derecha ó hacia la izquierda, de acuerdo con el diseño del motor y su utilización prevista, los impulsos de excitación son de la misma polaridad, ó son impulsos automáticos con polaridad opuesta, la sucesión de los impulsos se aplica al mismo arrollamiento del motor ó sucesivamente a las diferentes bobinas del mismo, los impulsos no se aplican necesariamente a una frecuencia fija, la frecuencia sé varia desde cero hasta la frecuencia máxima que permita el motor, un motor de paso a paso (PAP) es capaz de girar en ambos sentidos, un número exacto de grados con incrementos mínimos que se determinan por el diseño de su construcción, este incremento esta comprendido entre 0.72 y 90, correspondientes a 500 pasos y 4 pasos por revolución, respectivamente, aunque el motor PAP es de concepción antigua, solo se emplea en la práctica a partir de la aparición de los modernos semiconductores electrónicos, con los cuales se implementan los circuitos para la regulación y el control del motor PAP.
 

Figura 1. El motor a pasos

Figura 2. Motor a pasos de reluctancia variable

3.1 Motor a pasos de Reluctancia Variable

En este tipo de motores el estator presenta un número de polos electromagnéticos, el rotor no es de imán permanente, se forma con un núcleo de hierro dulce de estructura cilíndrica, contiene un número de dientes tallados longitudinalmente a lo largo de su superficie lateral, al circular una corriente a través del bobinado, se desarrolla un momento que hace que el rotor gire a la posición en la cual la reluctancia del circuito es mínima, si se hace pasar una corriente a través de otro bobinado el punto de reluctancia mínima se genera en otra posición, y se produce el giro del motor a esa nueva posición, los motores de reluctancia variable (VR) permiten ángulos de paso pequeños sin tener que recurrir al aumento del número de bobinas, en este tipo de motores.

El rotor se construye con un núcleo de hierro dulce del que sobresalen unos dientes, tal como se ve en la figura 2.
 

Al activarse la bobina C, el rotor se alinea con ésta por su polo D, si se alimenta B, el polo más cercano es G, con lo que este se desplaza 30 para alinearse con B etc., obteniéndose de esta forma un desplazamiento angular de 30, la polaridad de la corriente no tiene importancia, ya que el rotor se desplaza hasta una posición en la que la reluctancia es mínima, con esta propiedad se hace posible obtener fácilmente distintos ángulos de paso, aunque existen limitaciones de tipo mecánico que no permiten reducir mucho el ángulo, es importante remarcar que si el funcionamiento de un PAP de reluctancia variable es muy simple, su realización práctica es bastante más compleja [9].
 
Así estos motores funcionan con entrehierros muy pequeños si se quieren mantener sus prestaciones, lo que provoca que la precisión de fabricación y su montaje sea alta, si no secorre el riesgo de que se produzcan dispersiones en las presentaciones de las series fabricadas.
 
4.0 PROCEDIMIENTO DE DISEÑO
El diseño de un circuito secuencial empieza a partir de un conjunto de especificaciones y culmina en un diagrama lógico ó una lista de funciones Booleanas de las cuales se obtiene el diagrama final, el circuito se construye con el GAL16V8 [2], durante el análisis se determina una estructura de compuertas combinatorias, la cual conjuntamente con Flip Flops producen un circuito que cubre las características enunciadas.
 
La cantidad de Flips Flops se determina por el número de estados necesarios que se encuentran presentes en el circuito, la lógica combinatoria se deriva de la tabla de estados, y una vez que se definen el tipo y número de Flips Flops, el proceso de diseño sufre una transformación, de ser un sistema secuencial, se modifica, para que se resuelva como un circuito combinatorio.
Las expresiones lógicas se minimizan mediante mapas de Karnaugh. El GAL16V8 se programa con el compilador que ofrece el software OPAL [5], la programación se inicia al describir el archivo que indica el tipo de dispositivo a utilizar, la asignación de terminales, y las ecuaciones lógicas de las salidas respetan la sintaxis del compilador.
 
4.1 Planteamiento del problema.
Se define exactamente el problema a resolver y se plantea de una manera correcta, se establece la descripción en palabras del comportamiento del sistema, también suele acompañarse con un diagrama de estados, un diagrama de tiempos o cualquier otra información pertinente [10]. La secuencia de movimientos a realizar se ejecuta según las necesidades del problema a resolver. En este caso se trazan letras sobre una superficie.
 
Primeramente obténgase una secuencia a partir de las variables que intervienen en el desarrollo del movimiento del sistema mecánico, esto es, la asignación de variables de estados que gobiernan la secuencia requerida.
 
El primer motor a pasos controla el movimiento horizontal "x", el segundo acciona el movimiento vertical "y", y el tercero de ellos hace subir y bajar "z", al mecanismo de soporte de toda la estructura del trazador mecánico.
Con referencia a las ecuaciones que se obtienen para su aplicación en el trazador, y dada la existencia en el mercado, se utiliza el GAL16V8, tres motores a pasos, y una interfaz de potencia de transistores para cada uno de los motores.
 
4.2 Tabla de asignación de estados.
De la información dada del circuito se obtiene la tabla de estados, en la tabla se definen las características del comportamiento del problema a resolver. (Véase la Tabla 1). La descripción de los movimientos de cada uno de los tres motores se simboliza con las letras; QA, QB, QC, QD y finalmente X2. Se observa que en la Tabla 1, que existen 5 variables de entrada, se tienen cuatro salidas, es decir, las 5 variables son las cuatro del estado actual Qn, más X2 que determina el sentido del giro, las cuatro salidas que corresponden al estado siguiente Qn+1 del sistema secuencial.
 
TABLA 1
 
Estado
Actual
     
Estado
Siguiente
 
QA
QB
QC
QD
X2
QA
QB
QC
QD
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0

Tabla 1. Asignación de estados del movimiento del trazador mecánico.

4.3 Mapas de Karnaugh

Enseguida se traduce la tabla de asignación de estados a un mapa de Karnaugh de 5 variables [8], con éstas se obtienen las ecuaciones lógicas Booleanas (Véase la Tabla 2), al mismo tiempo se reduce la asignación de los estados y se encuentran las ecuaciones lógicas que gobiernan el control del trazador.
 
Las ecuaciones se definen para usar Flip Flops Tipo D con la condición de un switch de arranque X2. El mapa de Karnaugh es sencillo, se usan FF´S tipo D, entonces por ejemplo según la tabla donde hay 5 entradas de cero hay un uno de salida en D, luego en el mapa se pone una D en el cruce, y así sucesivamente con todas las demás.
 
TABLA 2
 
DX2
 
ABC
00
01
11
10
000
D
A
A
B
 
001
A
B
     
011
         
010
C
D
     
110
         
111
         
101
         
100
D
C
     

Tabla 2. Mapa de Karnaugh de 5 variables.

Después de minimizar las variables del mapa de Karnaugh, se deducen las ecuaciones siguientes;

DA: = /A*/B*/C*X2+/A*/B*C*/D*/X2                                   (Ecuación 2)
DB: = /A*/B*/C*D*/X2+A*/B*C*/D*X2                                (Ecuación 3)
DC: = /A+B*/C*/D*/X2+A*/B*/C*/D*X2                               (Ecuación 4)
DD: = /B*/C*/D*/X2+/A*B*/C*/D*X2                                    (Ecuación 5)

4.4 El GAL16V8 posee las siguientes características;

Figura 3. El microcircuito GAL16V8

  • El microcircuito consta de 20 terminales.
  • La fuente de alimentación es; Vcc = 5 Volts  5%
  • Consumo de corriente 90 mA.
  • Frecuencia máxima del reloj para los FF, 41.6M Hertz
  • Vih, voltaje de entrada en nivel alto = 2 Volts.
  • Voh, voltaje de salida en nivel alto = 2.4 Volts.
  • ViL, voltaje de entrada en nivel bajo = 0.8 Volts.
  • VoL, voltaje de salida en nivel bajo 0.5 Volts.
  • Temperatura de operación de 0 a 75 C.
  • Admite 16 variables de entrada diferentes y
  • Ocho (8) variables de salida diferentes.
  • En su estructura interna se encuentra un plano AND programable a la entrada, es programable por medio de MOSFET´S [1], [2] y [3] de compuertas flotantes.

    El GAL16V8 es un dispositivo de la familia de los Dispositivos Lógicos Programables PLD’S, contiene importantes mejoras sobre sus antecesores, que lo hacen versátil y funcional, la principal ventaja es su reprogramabilidad, es decir, el GAL16V8 ofrece la opción de borrar las ecuaciones grabadas en él mediante pulsos eléctricos, su celda básica es una EECMOS, que le proporciona la característica de borrable, además ofrece un bajo consumo de corriente.

     
    5.0 Alimentación de los Motores a Pasos
    Es el aspecto más importante a tener en cuenta en un motor a pasos (PAP), ya que su correcta aplicación determina la eficacia total del sistema, la alimentación de un PAP consiste en la excitación sucesiva de diferentes bobinas del estator, esto se realiza a través de un conmutador electrónico, cuya misión es la de enviar secuencialmente la corriente a cada una de las bobinas o grupo de bobinas cada vez que recibe un impulso en su entrada, evidentemente, la excitación de las bobinas se efectua en un orden determinado ó en el contrario según sea el sentido de rotación que se desea obtener del motor, a continuación se presenta un esquema en bloques para excitar un PAP de cuatro bobinas, (Véase la Fig. 4).
    Cuadro de texto:  Figura 4. Motor a pasos de cuatro bobinas
     

    Hay que destacar que las etapas de retorno de potencia, generalmente usan un diodo para producir el efecto "volante" que permita la evacuación de corriente una vez que se deja de alimentar la bobina correspondiente, de esta forma se aumenta la velocidad, supongase un motor PAP de cuatro bobinas específicamente el modelo CRUZET cuyas características son [9]:

     
     
     

    6.4 Datos técnicos del Motor a Pasos;

  • Resistencia por fase; 144
  • Ángulo de paso; 18
  • Frecuencia máxima; 300 pasos/seg.
  • Potencia absorbida por fase; 4.1 Watts
  • Potencia total absorbida; 8.2 Watts
  • Intensidad por fase; 170 mA
  • Tensión de alimentación típica; 24 Volts
  • La etapa de potencia en este caso y su relación de terminales se detalla en las figuras 5a y 5b.
    Cuadro de texto:  Figura 5a. Conexión del motor a pasos

    Figura 5b. Detalle de la etapa de potencia

    El modo más simple para alimentar este motor es la aplicación sucesiva de impulsos positivos a las bases de cada uno de los siguientes transistores.

    Para giro a izquierdas; 1, 4, 3 y 6.Para giro a derechas; 6, 3, 4 y 1.

    7.0 Uso de la Computadora

    Las ecuaciones que se obtienen se introducen en un archivo que se graba con extensión “file.eqn”. El circuito se programa con el compilador OPAL. En primer términose crea un archivo ASCII con las ecuaciones solución, mismo que se graba con la extensión “file.eqn”, sin olvidar que se trata de una secuencia lógica secuencial, esto es, a las salidas se les anteponen dos puntos (:) Después del signo de igual, se definen las entradas y las salidas de acuerdo a las variables que se emplean, no olvidar definir la entrada OE, esta habilita las salidas (tri-state) del GAL16V8 [10].
     
    7.1 Con el OPAL se transforma el archivo de extensión “file.eqn” a extensión “file.jed”. Se llama al programa EQN2JED en el compilador OPAL para crear el archivo “file.jed”, este archivo permite el grabado del dispositivo GAL16V8 con las expresiones booleanas reducidas por el usuario a partir del archivo “file.eqn”. Con el OPAL se obtieneel archivo “file.ckt” a partir del archivo “file.jed”, generándose automáticamente un archivo con extensión “file.lst”, después de generar el “file.lst” se proporciona el comando “opalsim” para simular y/o el comando “opalview” (véase la figura 6) para observar los resultados en una gráfica de pulsos que genera automáticamente el software, los archivos “file.jed” y “file.lst” son necesarios para la visualización de los estados de entrada y salida del circuito secuencial, [10].

     

    Figura 6. Simulación del archivo trazador.lst

    Figura 7. GAL16V8 y motores a pasos aplicados 
    al control del trazador xyz

    7.2 Si la simulación produce  resultados satisfactorios, se graba en el GAL16V8 el archivo “file.jed” en un programador de dispositivos programables y queda listo para la aplicación. Finalmente se conecta el circuito de control y de potencia del trazador xyz, (véase la figura 7).

    7.3 Por último se realizan pruebas eléctricas físicas del diseño final.

    8.0 RESULTADOS

    Los resultados de este trabajo son; se minimizan expresiones booleanas secuenciales, se controla el movimiento del trazador mecánico con tres grados de libertad xyz, se diseña una interfaz con transistores de potencia, los movimientos xyz y los giros izquierda/derecha se determinan a través de la activación de tres motores a pasos, se describe el funcionamiento de los motores PAP, el circuito emplea el GAL16V8; se emplea el compilador OPAL para producir las expresiones lógicas secuenciales que se graban en el GAL, con esto se hace práctico y flexible la programación de GAL’S, obteniéndose minimización de costos, al ahorrar en la adquisición de componentes y en la reducción del dimensional físico del ensamble; se producen simulaciones gráficas de las señales de control que describen el comportamiento dinámico del sistema, lo cual ayuda a facilitar la búsqueda de la estabilidad en el prototipo final.
     
    9.0 REFERENCIAS BIBLIOGRAFICAS
    [1] Programmable Logic Devices Databook and Design Guide, National Semiconductor, 1990.
    [2] Programmable Logic Design Guide, National Semiconductor, May 1986.
    [3] Programmable Logic Comercial/Military, Handbook and Data Book 1986-1987, Advanced Micro Devices.
    [4] Programmable Logic, INTEL 1993
    [5] OPAL Junior User´s Guide/Manual, National Semiconductor 1991.
    [6] Robótica Práctica, Tecnología y Aplicaciones, José Ma. Angulo, Paraninfo, 1986.
    [7] Curso de Robótica, José Ma. Angulo, Rafael Avilés, Paraninfo, 1989.
    [8] Teoría de Conmutación y Diseño Lógico, Hill Peterson, Mc.Graw Hill, 1979.
    [9] Microprocesadores y microcontroladores aplicados a la industria, Manuel Torres Portero,Paraninfo, 1991.
    [10] Estructura y programación de arreglos lógicos genéricos (GAL´S) con aplicación al control de un brazo mecánico, J. G. Mateos, J.M. Villegas, A. Hernández, E. Sánchez, SOMIXIII, Septiembre 1998.