Foro MetalAficion

CNC => CNC - Software y Controladores => Mensaje iniciado por: Jbecerra en 11 Mayo 2013, 19:35

Título: ¿ Como quitarle precisión una regla digital ?
Publicado por: Jbecerra en 11 Mayo 2013, 19:35
Hola.

El post va dirigido particularmente al amigo Pacol, pero cualquier información sera bienvenida.

Sobra decir que eres el referente en el dominio del arduino y por supuesto de las reglas digitales. Así que se bien a quien me dirijo, jeje.

Estoy liado con la cnc del amigo Michel,  que como se sabe es bastante "quisquilloso" y no se fía mucho de lo que hacen los drives de los motores y quiere que la maquina este controlada por reglas.

En el diseño de la maquina hay una serie de puntos no negociables.

- Tiene que correr bajo linuxcnc.
- Usar servomotores brushless.
- Lazo cerrado en todos los ejes.
- Presicion real de 0.01 mm.

Ya hemos avanzado en varios frentes y nos hemos encontrado con algunos "problemillas" que gracias a la colaboración de los foreros se han solucionado.

Aun queda mucho por hacer, la ultima ocurrencia que me ha comentado es que debería parecerse al mach3, que es mas bonito.

Ahora me encontré con un problema que apunta exactamente a tu dominio, y aquí pido tu ayuda.

Downgrading (Bajar version ) de una regla de una precisión de 0.005 a 0.01.

La regla es el típico encoder con A, B y Z en cuadratura creo que le dicen. La cantidad de información que envía al puerto paralelo es el doble de la que necesitamos, después de repasar algunas "soluciones" he llegado a la conclusión que lo mas sencillo seria conectarla a un arduino, que este leyera la información, la convierta a posición y genere el tren de pulsos de salida correspondiente a la escala que queremos rebajarla.  EN este caso concreto 2:1

Mi conocimiento sobre el arduino es muy básico, se que tienes bibliotecas magnificas para tratar las reglas y que dominas con maestría el software.

¿ Me puedes dar norte, y echarme una mano de esas que tu sabes ?

Gracias anticipadas.
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: pacol en 11 Mayo 2013, 22:34
Hola jbecerra

Los halagos son algo exagerados, yo sólo soy un aficionado a esto. Pero echaré una mano hasta donde sepa.

Creo entender que lo que quereis es dividir el número de pulsos de entrada de los canales A y B por un factor arbitrario y que el arduino entregue en la salida el tren de pulsos hacia el puerto paralelo. No hace falta que haga ninguna medida.

En un principio es bastante sencillo, se puede solucionar con un arduino nano por regla. Lo que hay que saber es la frecuencia máxima generada por la regla para ver si el micro es capaz de atender correctamente esa información y que no se produzca ninguna pérdida de pulsos, lo que haría que Michel se pusiese serio  ;D

¿Cuál es la velocidad lineal máxima de la regla? En mi torno dispongo de dos "glass-scales" similares a las que vais a utilizar y que puedo usar para hacer las pruebas. Están conectadas  a un DRO comercial con lo que se puede detectar fácilmente algún fallo de lectura.

Saludos
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: Jbecerra en 11 Mayo 2013, 22:47
La velocidad máxima no creo que llegue a mas de 20 mm por seg. calculando a 2 señales por 0.005mm. 20:0.005 = 4000. Y eso por 2 son 8K, si no me he equivocado, creo que sobra tiempo.
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: borondes2010 en 12 Mayo 2013, 10:34
SR.PACOL REY DE LOS ARDUINOS..JA JA , valdría esto para el proyecto.... si es asi por favor diga si o en caso negativo..un enlace de lo que haga falta...
posdata...lo de la perdida de pulsos es.....SIN COMENTARIOS..JA JA
AHORA llevo tal coctel de piezas electrónicas que como un dia de algo un problema..tendre que ir a la NASA a pedir ayuda...ja ja
http://www.ebay.es/itm/230973173507?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: dedalo1111 en 12 Mayo 2013, 10:52
Perdonar la intromisión, pero mi opinión es que es un error y os váis a complicar la vida por no hacerlo bien. El puerto paralelo llega hasta donde llega y a partir de ahí hay que cambiar.

Con una tarjeta Mesa (5i22 por ejemplo) dejáis que sea el hardware dedicado el que se entienda con la regla hasta velocidades de 100Mhz que son muuuuy por encima de los 2Mhz que puedes con un puerto paralelo con suerte.... y además no freís la CPU a vigilar señales, y queda libre para hacer los cálculos de los PID, calcular la trayectoria y que se dedique a lo que tiene que hacer.

Además los drivers de estas tarjetas ya están integrados con LinuxCNC y resulta todo natural.

Salu2 y ánimo con el proyecto.
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: borondes2010 en 12 Mayo 2013, 11:01
DEDALO1111.intromision ninguna,tus comentarios siempre son tomados MUY en cuenta..de echo tenemos en la recamara el tema de la tarjeta MESA..esto es otra de las pruebas que esta haciendo JBECERRA..ya sabes que estamos probando un monton de cosas a ver cual funciona mejor en la mini fresadora rural..y no es porque yo sea maniático o puntilloso..lo que suelo ser es muy realista..al final hace tiempo que estoy convencido de que una tarjeta MESA es la solución...veremos como acaba todo esto...y si a JBECERRA no le explotan las neuronas HALL...ja ja .brinda
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: Jbecerra en 12 Mayo 2013, 11:51
Hola.

Dedalo, se agradece mucho tu opinión y por supuesto que esta muy considerada.
 
Seguramente desde mis miopes conocimientos del mundo del cnc, no me doy cuenta que quiero hacer algo que no es correcto o incluso imposible.

Acabaremos comprando una tarjeta. Pero antes queremos medir mas o menos hasta donde se podría llegar con el uso del puerto paralelo. Ya hemos conseguido cerrar el lazo con la regla, ahora estoy peleándome con el ajuste del PID y si conseguimos rebajar la info que viene de la regla a la mitad pues tendremos otro desahogo. Creo que al menos un eje se puede controlar, si es así, con 3 puertos paralelos moveríamos los 3 ejes.

También hay que considerar la inversión, comprar la tarjeta que no es barata y luego no ser capaz de controlar el lazo cerrado ni ajustar el PID por desconocimiento o incapacidad, suena como a tirar el dinero pudiéndolo probar gratis. Si comprobamos que sabemos hacerlo con un puerto paralelo, seria una delicia meterle mano a una buena tarjeta.

Y ahora el símil : Aprendí a conducir en un 2CV desahuciado y con muchos muuuuchos km, aprendí a adelantar aprovechando las inercias del coche, aprendi a dejarlo cuesta abajo, que las baterias de 6v no son buenas, que dan pena y terminas por llorar. ¡Como dolía el codo cuando se soltaba la ventanilla!, la calefacción era un lujo inalcanzable. En fin todo muy precario, pero ahora en el fordfi, que gustazo, le das al acelerador y el coche corre mas ¡¡ Incluso hasta frena.








Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: dedalo1111 en 12 Mayo 2013, 12:09
Hombre, siempre tendrás más garantías de éxito con una tarjeta que está documentada en la sección de hardware de LinuxCNC y cuyo fabricante es un "contribuidor" en la sección de drivers.

Por otro lado, no estáis haciendo un "experimento", es una configuración perfectamente probada por la casa y que figura en sus ejemplos de documentación:

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Mesa_Cards (http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Mesa_Cards)

En mi opinión váis a dedicar más esfuerzo en un camino que se sabe "limitado" y tener unos chupi-guay drivers, unas reglas con resolución del copón.... y luego "desperdiciarlo" por la tarjeta... "es para darle capones a alguno hasta decir basta"  ;D ;D :P :P

Pensar que el PID trabaja de forma "difusa", es decir necesita una pequeña zona de error para compensar y reaccionar (no como un PaP que las ordenes son "absolutas"). Si a la regla (que tiene resolución milesimal, pero +/-1 algunas milésimas), le dividís la resolución y el PID necesita "algo de error" para reaccionar (y este error se ha "engordado" artificialmente).... pues la zona "difusa" se subirá cerca de la décima (apuesto unas cocacolas a ello  :P )

Ahora, que la pasta es la pasta... y eso es otra discusión  ;)

Salu2
Título: Re:¿ Como quitarle precisión una regla digital ?
Publicado por: BBMNet en 14 Junio 2013, 15:17
Estimados amigos (permitanme llamarlos así). Soy nuevo en el foro y me llamó la atención este problema. Me dedico profesionalmente al retroajuste de maquinaria CNC, en particular de capitonadoras y edredonadoras sobre todo cuando el control CNC original está "muerto" y no hay reparación posible y el costo de la unidad de reemplazo, si existe, es sumamente costosa.

Habiéndo mencionado lo anterior y con respecto al problema particular, es posible realizar con relativa facilidad un programa utilizando un PIC16F84A-20 conducido a cristal que puede dar la lectura de posición de encoders de hasta 1000 PPR trabajando hasta unas 3500 RPM. Este componente lo utilizo actualmente para controlar un router BIESSE ROVER 342 sin mayor dificultad.

Una nota en particular, yo me he decidido por crear sistemas basados en PC con instrumentación virtual. Dado que solo uso la PC como computadora única las pantallas son muy sencillas pero se logra que el trabajo salga. Además del beneficio de que la electrónica se vuelve ridículamente simple y por tanto económica y fácil de mantener. Esto pensando en que la zona que atiendo está relativamente alejada de cualquier tienda de partes electrónicas. Para poder utilizar todos los recursos de la PC y trabajar en tiempo real mi S.O. es compatible con MSDOS y los programas están escritos en ENSAMBLADOR (algunos dirán que soy un dinosaurio pero esto me funciona).

Si hay interés puedo postear el programa.

Nota: cuando utilizo encoders de hasta 250 PPR el circuito se vuelve innecesario ingresando la señal de pulsos directamente a travéz del puerto paralelo. La frecuencia de los pulsos a máxima velocidad está dentro del rango de dicho puerto.

Gracias por su atención.