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