Controlando al Router CNC

En este apartado se guiara a lector paso a paso en los procesos del software driver, con el fin de que al finalizar la lectura comprenda el funcionamiento del mismo. El driver hace una lectura de las coordenadas “X e Y ”de un proyecto seleccionado de la base de datos , estas coordenadas al ser procesadas se obtiene como resultado final secuencias binarias que serán las que excitaran indirectamente los bobinados de los motores de los ejes “X ”e “Y”.

Antes de comenzar para lograr el correcto entendimiento del sistema controlador
hay que tener claro principalmente los siguientes temas .

> Motores Paso a paso:
                                 Principios de funcionamiento de Motores Paso a paso bipolares
                                 Métodos de secuencias para la activación de sus bobinas .
> Puerto Paralelo :
                                  Principios de funcionamiento .
                                  Bus de datos .
                                  Bus de control.
                                  Bus de estado .
                                  Métodos de escritura y lectura del puerto .
> Principio de funcionamiento del driver.

 Los conceptos sobre el funcionamiento del puerto paralelo y motores P-P bipolares son en mas simplificados, y resumidos,   para mas información ver en anexos.



MOTORES PASO A PASO

Motores paso a paso (step motor)
El motor paso a paso (step motor) está concebido para el posicionamiento con precisión y de forma discreta, con incrementos angulares de su eje, denominados pasos. Éstos se producen en la inversión de la corriente por los devanados, que a su vez es controlada por unos interruptores de estado sólido de potencia. A éstos llega una señal discreta proveniente del circuito digital de control, el cual determina la acción del motor. Existe una gran variedad de motores paso a paso, diferenciados entre si por su constitución y forma de construcción. Entre éstos destacan tres tipos:

Motores de imán permanente.
Motores de reluctancia variable.
Motores híbridos.

Estos 2 Primeros no serán descriptos en este apartado , pero si en la sección de anexos.

Motores paso a paso híbridos

Los motores híbridos paso a paso operan combinando los principios de los motores de imán permanente y los de reluctancia variable, intentando obtener las características que destacan en cada uno de ellos. Combinados se obtienen unos ángulos de paso pequeños y alto par con un tamaño pequeño.

x

Las características y forma del estator es prácticamente igual a la de los otros modelos de motores paso a paso de imán permanente y reluctancia variable. Las diferencias de importancia se encuentran en la estructura del rotor, formado por un disco cilíndrico imantado en posición longitudinal al eje. éste está altamente magnetizado produciendo un flujo unipolar .

El motor híbrido produce un par por fuerza de reluctancia, igual que el motor de reluctancia variable. La diferencia entre ambos es que el tipo de excitación utilizado. En el motor de reluctancia variable, la excitación es producida únicamente por medio del
bobinado, mientras que en el motor híbrido la excitación es conjunta entre el bobinado y el imán.

Motores paso a paso bipolares y unipolares

En los ejes X e Y se utilizan motores paso a paso híbridos bipolar estos son mas complejos para controlar que los motores P-P unipolares pero son superiores en par de torsión.

El motor más ampliamente extendido y utilizado el la mayoría de las aplicaciones es el motor híbrido de dos fases. Éste se puede encontrar con diferentes combinaciones en los bobinados de excitación, para diferentes tipos de alimentación.

-Motor bipolar: tiene dos bobinados, correspondiendo cada uno de ellos a una fase. Dispone de cuatro hilos, dos para cada bobinado. El control se realiza forzosamente de forma bipolar, normalmente mediante un puente.

-Motor unipolar: el bobinado por cada fase es doble, unido en el interior y puesto en serie nos entrega 6 hilos, agrupados de tres en tres para cada fase (uno de estos es el punto común). El control es unipolar, aunque se puede realizar un control bipolar serie dejando el hilo central al aire, no esta diseñado con esta finalidad.

-Motor de 8 hilos: se trata de un motor con doble bobinado como el motor unipolar, pero con todos los terminales accesibles desde el exterior. Esto permite realizar múltiples combinaciones de excitación, como motor unipolar uniéndolos de tres en tres en oposición de campo y como motor bipolar con los bobinados en serie o en paralelo.

Relación entre el par y la excitación bipolar y unipolar

El par de un motor paso a paso es proporcional a la intensidad del campo magnético generado por los devanados del estator. Solo puede aumentarse si se añaden mas espiras en el bobinado o se aumenta la corriente por cada fase. El límite en el aumento de la corriente es el peligro que supone llegar a saturar el núcleo, aunque esto tiene una importancia mínima. Lo que resulta mas grave es el aumento de la temperatura del motor debido a las perdidas en los bobinados. Esto pone al motor unipolar en una clara
desventaja sobre el bipolar, ya que este tiene una resistencia el doble que el otro, debido a
que la sección del hilo es aproximadamente la mitad por las limitaciones físicas de la cavidad del estator que alberga los bobinados.


x

Secuencias de excitación

El control de un motor paso a paso se consigue alimentando las diferentes fases con una corriente. Dependiendo del nivel de la intensidad, de la polaridad y del orden de excitación secuencial obtenemos diferentes respuestas en el motor. A estas diferentes formas de alimentar el motor se les denomina (secuencias de alimentación o de excitación).

En este apartado se hará referencia básicamente a la excitación de los motores híbridos, que son los que estamos utilizando para los Ejes . Hay que tener en cuenta que el control de los motores de reluctancia variable difiere de los motores híbridos y los de imán permanente en que sólo tenemos un sentido de la corriente para excitar el bobinado.

Para hacer funcionar el motor se pueden usar tres tipos de secuencias de los cuales se describirá el utilizado.

    a) Secuencia de dos fases activas (full step) .
    b) Secuencia de una fase activa (excitación por onda wave).
    c) Secuencia de medio paso (half step).

Secuencia de dos fases activas (full step)

Esta secuencia se caracteriza por que ambas fases están siempre activadas. El movimiento del rotor se consigue con el cambio de polaridad en la corriente que circula por los bobinados de las fases. La inversión del sentido de giro responde a la inversión de la secuencia de excitación.

x

Recordar que entre cada paso (fila) hay que esperar un determinado tiempo para establecer los siguientes valores,.
Este tiempo como mínimo es de 2 ms (0,002 segundo ) fundamental para obtener la suficiente fuerza de torque requerido para el mecanizado de los ejes X e Y.

Si se sigue la secuencia del paso 1 hasta el 4 nuestro motor habrá realizado 4 pasos hacia la derecha , para que gire al sentido contrario, ha de realizar la secuencia exactamente al revezo (paso 4 hasta el paso 1) . Como el motor P-P que utilizamos es un motor bipolar sus paso son de ángulos muy cortos en este caso el ángulo de avance por paso es de 1. 8o, osea se necesitan 200 pasos para un giro de 360o o que es lo mismo 50 secuencias de pasos.



PUERTO PARALELO.

Los ordenadores PC han estandarizado un tipo de interfaz para la comunicación con la impresora, conocida normalmente como CENTRONICS. Esta interfaz es capaz de enviar caracteres a la impresora de forma paralelo. Cada carácter está codificado en un byte, del cuál cada bit se transmite por un terminal diferente. Existen otros terminales que conectan ordenador e impresora, que sirven para intercambiar información de control y de estado, a fin de implementar un sencillo protocolo.

Para realizar esta interfaz, los PCs disponen de unos elementos hardware específicos,denominados puertos de impresora o también puertos paralelo.

En un PC pueden instalarse varios de estos puertos que se distinguen entre sí con los nombres LPT1, LPT2 y LPT3 (en algunos casos también LPT4). Todos ellos son idénticos, salvo que tienen asignadas diferentes direcciones en el mapa de entrada/salida.

Las comunicaciones en paralelo se realizan mediante la transferencia simultánea de todos los bits que constituyen el dato (byte o palabra). Presentan la ventaja de que la transmisión puede ser más rápida. Sin embargo, las comunicaciones en paralelo no pueden ser implementadas para grandes distancias debido a que no es viable la conexión física de todas las líneas necesarias.

Cada uno de estos puertos ocupa tres direcciones del mapa de E/S:

Puerto de Datos: De 8 bits, es donde la CPU escribe los datos que se envían a la impresora (caracteres).

Puerto de Estado: Registro de 8 bits de donde la CPU puede conocer diversos aspectos del estado de la impresora (apagada, sin papel, etc). Se usan sólo 5 de los 8 bits.

Puerto de Control: Registro de 8 bits donde la CPU puede escribir diversas señales que reconoce la impresora (validación de datos, inicialización, etc). Se usan 4 bits.

Estos tres registros ocupan posiciones consecutivas, por lo que basta con especificar la primera de ellas. El puerto de datos será el puerto base.

Las direcciones del mapa de memoria de E/S en las que se suelen colocar los puertos paralelos son:

x

La norma Centronics hace referencia a las características de la conexión entre un interface de puerto paralelo y una impresora. Las líneas son latcheadas, esto es, mantienen siempre el último valor establecido en ellas mientras no se cambien expresamente y los niveles de tensión y de corriente coinciden con los niveles de la lógica TTL, cuyos valores típicos son:

-Tensión de nivel alto: 5 V
-Tensión de nivel bajo: 0 v.
-Intensidad de salida máxima: 2.6 mA.
-Intensidad de entrada máxima: 24 mA.

La norma Centronics establece el nombre y las características de 36 líneas eléctricas para la conexión entre el PC y la impresora.

Como estamos basando nuestro sistema para algo muy distinto a una impresora no vamos a utilizar los nombre que proporciona la norma Centronics para lo hilos de los buses del puerto paralelo , al igual que el nombre “puerto de impresora” .
 
Aspecto físico del Conector DB 25 hembra .

x

Descripción.

x

El Bus de Datos

Generalmente es sólo de salida, pues se diseñó para enviar caracteres a la impresora. Actualmente este puerto es bidireccional. La correspondencia entre los bits del registro de datos y las señales presentes en el conector DB25 del exterior es:

x

El Bus de Estado
 Está destinado a la lectura del estado de las líneas de interfaz con la impresora. La señal del bit 7 es invertida antes de llegar al registro. La correspondencia entre los bits del registro de estado y las señales presentes en el conector DB25 del exterior es:

x

El Bus de Control

Este esta destinado a la escritura de comandos sobre la impresora. Las señales de bit 3, 1, y 0 son invertidas antes de llegar a los correspondientes terminales de conector externo. El bit 4 no es una señal que corresponda a alguno de los terminales de la interfaz Centronics. Se trata de un flag que habilita o prohíbe la generación de la señal del bit 4 cuando se activa la señal del bit 6 del puerto de estado . Las rutinas del BIOS que se ocupan de la impresora no utilizan esta interrupción. La correspondencia entre los bits del registro de control y las señales presentes en el conector DB25 del exterior es:

x
Principio de funcionamiento del driver.

Lectura del bus de Estado.

Lectura, entrada de un byte (solo se utilizan los 5 mas significativos) por los pines 11, 10, 12, 13 y 15. La lectura del bus de estado arrojará un número decimal correspondiente al byte que este ingresando. Suponiendo que la lectura del puerto de estado devuelve el numero decimal 170, el equivalente en binario es 10101010. De estos 8 bits, como se ha dicho, nos interesan los 5 mas significativos.

x


Ahora, a simple vista, podemos comprender que ese valor de 170 que se leyó, indica que por el pin11 hay un nivel alto, por el pin 10 un nivel bajo, por el pin 12 un nivel alto, por el pin 13 un nivel bajo y por el pin 15 un nivel alto.
Para determinar el valor de cada pin en particular es necesario realizar un enmascaramiento de bits. El enmascaramiento de bits consiste en combinar un valor binario con otro para aislar los bits que nos interesan. Para determinar el valor del bit7
(pin11) realizamos la siguiente operación:

x

El resultado es 128, lo cual indica la presencia de un 1 en el bit 7. Vemos el caso del bit 6.

x

El resultado es cero, lo cual indica la presencia de un cero en el bit 6. Teniendo en cuenta el enmascaramiento de bits, se puede programar la lectura del puertode estado cada 20 milisegundos, es decir 0.02 segundos.



Gambas3- Haciendo uso del Puerto paralelo bus de Datos .
Ejemplo :

El valor de salida es un byte, cuyo rango posible es de 0 a 255. Estos valores están expresados en sistema decimal. Al convertirlos en binario tendremos una idea de cuales pines recibirá un nivel alto y cuales un nivel bajo. Si se desea activar todas las salidas, el numero binario es 11111111, es decir, sale un 1 por cada uno de los pines. Si convertimos el binario 11111111 a decimal obtenemos el número 255, este valor es el que debemos escribir en el puerto de datos. El código para hacerlo se observa a continuación:

x

Secuencia para el control de Motor X .

x

Secuencia para el control de Motor Y .



Si sumamos las dos secuencias binarias (expresadas de forma decimal),y la escribimos en las salidas del puerto paralelo ,logramos hacer girar los dos Motores “X” y “Y” ,en el mismo instante ,a la misma velocidad, el ancho de pulso se vera limitado a ser el mismo para los dos motores , lo que nos limita a crear diferencias de velocidad de giro entre ambos
motores .



Si requerimos que los motores “X” e “Y” , inicien y terminen al mismo instante pero con diferencia en el numero de giros ,en teoría podríamos regular la duración ,”Ancho de pulso de pasos por motor ” . Lo que logramos variar la velocidad de avance compensando la diferencia en la Sumatoria de pasos .
 
Ejemplo:



Si deseamos realizar la siguiente diagonal .

x

Pasamos los centímetros de X e Y, a giros que tendran que realizar los motor de dichas coodenadas :

Coordenadas X = 6 cm
Coordenadas Y = 3 cm

GMx = Cmv * Coordenada X
GMy = Cmv * Coordenada Y

GMx = 42
GMy = 21

La suma total de pasos que realiza Mx.

∑ Px = GMx * PG
42 * 200 = 8400

∑ Px= 8400 Px

Suma total de pasos que realza My.

∑ Py = GMy * PG
21 * 200 = 4200

∑Py = 4200 Py


> Si GMx > GMy Asignamos.
Tpx == TpMin
> de lo contrario.
    Tpy == TpMin

En este caso, vamos a obtener Tpx .

∑ Tpx = 8400 * TpMin
∑ Tpx = 16800 ms

Decimos que :

Tpy = ∑ Tpx / ∑ Py

Tpy = 16800/ 4200

Tpy = 4 ms

∑ Tpy = Tpy * ∑ Py

∑ Tpy = 4 * 4200 = 16800 ms

Resultado final :

∑ Tpy = ∑ Tpx

(16,8 segundo en realizar la diagonal del gráfico)

Esta formula resuelve el problema , pero lamentablemente no puede llevarse a lapractica , ya que se requiere la ejecución de 2 procesos al mismo tiempo , “Multi-hilo”Por limitaciones aparentemente de Hardware del computador , no se puede resolver este problema ,ya que al ejecutar las funciones en procesos distintos ,se intercalan .

Solución :

Como solución se implementa el siguiente método :
Una vez obtenido el numero de giro y dirección de Mx y My se prosigue con la generacion de dos arreglos , a los cuales llamaremos “ArregloX” y “ArregloY” . cada arreglo se genera de forma independiente uno para controlar cada motor . Estos
arreglo contienen secuencias para la activación de las bobinas en modo full step , los datos son valores decimales para la escritura en el bus de datos del puerto paralelo. Cada arreglo varia por el sentido de giro que tenga que realizar el motor y por la cantidad de pasos.
El arreglo mas corto se completa hasta igualarse al mas largo repitiendo el ultimo valor de del paso anterior , y si esta se repite por mas de 15 veces, continua completando con valores iguales a 0 .La secuencia siempre se mantiene uniforme y ordenada .
Para finalizar se suman los valores entre “ArregloX” y “ArregloY” . y se genera un tercer arreglo que llamaremos “ArregloXandY” ,este ultimo arreglo es leído secuencialmente y el valor obtenido por el puntero de lectura es establecido en el bus de datos del puerto paralelo durante 1 ms y luego pasa al siguiente hasta finalizar. Como resultado se ajusta los tiempos de los pasos según los valores del arreglo ,el mínimo denominador del tiempo es 1 ms, los pasos de un motor pueden ser de mas duración que el otro . O por consiguiente si este tiempo supera los los 15 ms se apaga hasta el momento de seguir con
una nueve secuencia , esto de debido a que el motor estancado en una posición genera un sobrecargar que pondrá fin al ( IC dual H brige descrito mas adelante.)

En el siguiente ejemplo se expresa la idea .

Ejemplo :

Mx realiza 2 pasos mientras que My realiza 3 pasos . Esto es equivalente a que Mx realiza un giro de 3,6º hacia la derecha mientras que My gira 5,4º de igual sentido de giro que Mx , este procedimiento es detallado con una secuencia pequeña debido a razones obvias de espacio (los arreglos pueden ser muy largos .)

x

A continuación se presentaran diagramas del las funciones elementales del
software driver .

  1-  Verificar estados de los sensores .
    
   2-  Control del Eje Z.

   3- Accionar Motores P-P de los Ejes X e Y.

  4- Proceso de inicializacion  (se realiza al iniciar un nuevo trábajo de corte).




x

x



x

x



Interfaz gráfica del software controlador



Para finalizar este apartado se presentaran 2 print de pantalla, la primera es la interfaz gráfica, donde se puede hacer un seguimiento en tiempo real de los procesos de corte .
 En ella se observan el porcentaje de la realización del corte de las piezas, el tiempo restante , el margen de error individual de  cada linea ,entre otros datos que se podrán observar, el segundo gráfico es la interfaz donde se puede controlar manualmente los ejes y verificar el estado actual de los sensores , esto es muy útil a la hora de realizar un chequeo del Router Cnc.



                                                     Monitor de proceso de corte :

x

Control manual del router Cnc :

x