Foro MetalAficion
CNC => CNC - Hardware => Mensaje iniciado por: PacoP en 30 Diciembre 2016, 22:38
-
Hola a todos
Hace tiempo que me estoy construyendo una fresadora tipo router, a ratos, por afición y para mis aficiones. Sigo diseñando mejoras y ultimando detalles, pero ya estoy comprando los componentes que ya tengo claros. He utilizado y me he basado mucho en este foro, y voy a ver si puedo aportar mi granito de arena, esta vez.
Hace bastante estuve leyendo sobre motores, servos, drivers, y sistemas de lazo cerrado. Entonces pensé que tal vez podría montarme mi propio sistema de lazo cerrado, consistente en un motor PaP, un encoder y un driver. Pues el otro día conseguí hacerlos funcionar, y voy a hacer un mini tutorial por si algún aventurero decide seguir mis pasos. Siempre viene bien una guía, especialmente para los novatos como yo.
Empecemos, pero ya que es un tutorial, primero veamos algunas cositas importantes.
- El sistema
Llamamos servo a cualquier sistema de motor que conozca su posición y la corrija si es necesario, para alcanzar la posición deseada.
El motor puede ser de cualquier tipo, que sea servo no indica qué tipo de motor es. Puede ser normal con escobillas (servo de modelismo), o sin escobillas (brushless), y en este caso generalmente suele ser de dos fases (los motores PaP normales que más se usan) o de tres fases (como los mandrinos, por ejemplo).
- Los sistemas todo en uno
Los fabricantes suelen vender el sistema entero, es decir, el driver y un motor que ya lleva el encoder integrado. El encoder es incremental, o sea, manda las señales de avance pero no tiene constancia de la posición absoluta.
El problema es que te tienes que ceñir al motor que te venden, y al encoder que va con ellos.
- El motivo
Primero por enredar, es decir, por curiosidad.
Segundo porque en su momento (hace un par de meses) creía que el "closed loop" era la h..tia. Luego veremos que no tanto.
Hay una cosa que sí es mejor: puedes elegir el motor/encoder que más te convenga. Puedes adaptarlo un poco a tus necesidades. En mi caso, elegí un motor que tiene más torque que los que venden con todo integrado, a un precio bastante menor.
En cuanto al precio, sí y no compensa, depende. Luego hablaremos un poco más.
[Continúa]
-
Bueno, ahora vamos a ver todos los componentes por separado.
DRIVER
- He encontrado varios fabricantes de drivers, aunque todos parecen cortados por el mismo patrón, fundamentalmente JMC, Lichuan, y Leadshine.
Leadshine me inspiró un poco más de confianza, así que compré uno de esos.
Los modelos son:
- EasyServo ES-D508 para motores de 3 fases
- EasyServo ES-D808 y ES-D1008 para motores de dos fases.
Yo compré el ES-D808. El 1008 es el mismo, pero puede conectarse a corriente alterna también.
Lo bueno es que lleva un conector RJ11 (de teléfono) para conectar el servo al ordenador, y modificar sus parámetros mediante su programa específico (protuner, se baja desde la web de leadshine).
Lo que yo hice:
- Poner el microstepping a 1600. Se puede poner mediante jumpers o mediante el protunner.
- Poner la resolución del encoder a 4000 pasos por revolución.
- Ajustar los porcentajes de corriente que debe entregar el driver en estado parado y en funcionamiento.
Bueno, se puede afinar el ajuste mediante otras cositas, hay que leerse el manual.
(https://c5.staticflickr.com/1/341/31614760780_26d62430a6_b.jpg)
(https://c8.staticflickr.com/1/356/31988441895_fd65a1b105_b.jpg)
MOTOR
Probablemente aquí está la gracia.
Me compré tres motores de CNC4You, de 4 Nm de torque en parado, NEMA 23. El motor debe llevar eje por detrás (para agarrar el encoder).
Yo quería motores potentes pero no tan grandes como NEMA 34, y las soluciones todo en uno de leadshine no cumplen el requisito. El motor de mayor potencia que provee leadshine, para formato NEMA23 es el ES-M22430, con 3 Nm
ENCODER
Y esta es otra de las gracias. Puedes poner el encoder que quieras, con diferentes resoluciones.
Yo me compré uno de CUI, modelo AMT112Q-V.
Estuve leyendo, y parecía que era lo mejor del mundo.
El cacharrito se puede programar mediante su software (AMT viewpoint). Él sólo se descarga el último firmware, y tú le dices la resolución a la que quieres que trabaje, y puedes alinear el índice.
(https://c5.staticflickr.com/1/379/31614760740_777c402d75.jpg)
No sufre tanto con las vibraciones como los encoders ópticos, no le afectan tanto las interferencias como a los magnéticos... todo virtudes. Luego resulta que no es tanto así. Parece que da una horquilla de lecturas falsas, que aunque sea pequeña, pues jode. Por ejemplo, aquí un ejemplo de reseñas negativas: http://www.cnczone.com/forums/viper-servo-drives/252390-economy-encoders-amt-vs-usdigital.html
¿Es importante? Pues hasta cierto punto, pero no parece que sea definitivo. En el driver de leadshine puedes programar cuántas señales debes considerar "normales" para que el motor no corrija la posición, y cuántas consideras que ya se pasa, y debe dar un error.
Como valoración personal y nada experta, a mi me parece que se comporta muy bien.
Por otra parte, si en el driver tienen contemplado un cierto margen de error, debe ser que todos los encoders dan alguna lectura falsa, incuidos los que ellos mismos montan (son encoders ópticos de 1000 líneas).
A tener en cuenta, si a alguien se le ocurre hacer lo mismo:
- En el encoder se programa cuál es su resolución (por ejemplo, 1000 cpr o "pasos"). Pero el encoder manda una señal cada vez que uno de los sensores cambia de estado (y tiene dos), de forma que A puede estar apagado/encendido, y B también, dando un total de 4 posibilidades.
- En el driver se definen los cambios de estado, de forma que para un encoder de 1000 líneas, hay que poner 4000 en el parámetro de resolución, por lo explicado anteriormente. El driver recibe 4000 señales de paso para un encoder de 1000 "pasos".
Sé que no me explico bien del todo, pero basta con leerse los tutoriales y la info de la web de CUI. En cualquier caso si alguien va a repetir los pasos y no se aclara, que pregunte aquí y yo ampliaré la información.
(https://c1.staticflickr.com/1/520/31614760720_3ca3fab1dd_b.jpg)
[Continúa]
-
LOS ACCESORIOS
Aquí viene la madre del cordero. Hace falta:
- Un cable para programar el encoder. Conecta el encoder a un puerto USB. No se puede fabricar por nosotros, no es una conexión pin a pin, lleva un circuito de por medio, ya lo he intentado y tuve que comprar el dichoso cable. Y no es nada barato. Va para los 30 euros, si no me equivoco.
- Un cable para conectar el encoder al driver. Este es más facil, es un cable simple apantallado, con algunas peculiaridades. Hay un terminal que conecta por dentro con otro cable, y tiene conexiones por fuera para hacer masa con el motor y el driver.
Yo me lo compré temiendo lo peor, que pasara como con el cable USB. El cable en sí es un timo, vale una pasta (otros 20 pavos) y mide unos 30 cm, sin comentarios. Peeeeero, si quieres hacerlo tu mismo, debes comprar los conectores y los pines de crimpar. No parece nada complicado hasta que los ves, son pequeñisimos y cuesta verlos hasta con lupa. Añade la crimpadora, o la pieza de ese tamaño para tu crimpadora.
- Un cable para conectar el driver al PC.
Este es barato y sencillo, por un lado el conector RJ11, y por el otro un conector serie. Entonces, hará falta:
- Un cable conversor USB/RS232. Barato y disponible, aunque yo no tenía, es un tumbo más que hay que dar.
PRUEBAS
Desde el mismo driver puedes hacer pruebas y rotar los motores. Puedes establecer al nº de vueltas, velocidad, aceleración...
El panel de pruebas incorpora un gráfico con los pasos que lee el driver desde el encoder, y se ve que siempre está mandando lecturas de +/- 1 paso, incluso en parado. Esto son 1/4000 vueltas, es decir, el driver no se molesta en corregir el error porque el microstepping está establecido en 1/1600 de vuelta, y no podría corregirse. Por tanto, aunque de lecturas falsas, no es importante ya que son demasiado pequeñas.
(https://c1.staticflickr.com/1/441/31614760360_ef4b02c5fa_b.jpg)
En funcionamiento, vemos que el driver reporta un rango mayor de errores de posicionamiento (entre +/- 18 lecturas, es decir, 18/4000 de vuelta).
Si el driver corrige o no, ni idea. Cuando tenga montada la fresadora tomaré el comparador y haré pruebas de posicionamiento.
PRESUPUESTO FINAL
Pues el driver me lo mandaron por DHL creo, y pasó por aduana. Suerte que el vendedor declaró un precio inferior, pero aún así en la hojita de aduanas ponía el "precio estimado" para pagar los tributos, que era superior, claro. Además, el IVA. No diré lo que pienso de este tipo de impuestos no proporcionales y abusivos, porque me enciendo (ojo, hay que pagar impuestos, no digo lo contrario, pero no hablemos de este tema). Total: 100,9 + 30,28 (aduana)
El encoder también pasó por la garita (vino de USA), y los cables, conectores... todo. Al final sube un pico. (51,5 + 15 aduana + 75 € en cables)
Los motores vinieron de UK, por ahí sin problemas. (162 € los tres)
Al final, el precio es más o menos el mismo que comprarse el sistema completo, solo que el sistema completo de Leadshine no tiene la potencia que quiero, o la tiene con un tamaño mayor de motor, o no ofrece la flexibilidad que tengo ahora (puedo poner el encoder en el husillo). Por otra parte, el sistema completo también puede salirte por una pasta, hay que añdir el envío y puede que aduanas, si compras en chino.
Finalmente, algunos desembolsos son para una sola vez (los cables que van al PC), y compré conectores y pines de sobra para montarme los otros cables, si necesito, que van del encoder al driver.
CONCLUSIÓN
Pues yo estoy contento, ahora tengo que hacer pruebas con diferentes parámetros (ajustar algunas cositas que todavía no entiendo bien), y sobre todo comprobar el sistema en funcionamiento real.
Lo que sí tengo claro: el sistema se mueve con una suavidad increible. Un ruido muy suave incluso a 2000 rpm, y no sé, poco más puedo decir.
¿Voy a comprar otros dos drivers y encoders para completar los otros ejes? Pues a día de hoy no lo sé.
En realidad con unos buenos drivers normales y unos motores potentes, la máquina no debe perder pasos. Y aunque los pierda, el lazo cerrado no puede hacer nada para corregirlo. Sólo puede avisar del fallo y pararse (que no es poco, imaginemos un atasco, es mejor que se pare solo).
Voy a valorar si merece la pena, y si alguien tiene una opinión, dudas, preguntas, aportes o críticas, que lo diga.
Saludos
-
Buenos días ,PacoP
Ante todo feliz año que entra
Me llamo Rafael soy de Córdoba (cómo no podría ser)
Bueno ante todo estos aportes para neófitos como yo, nos vienen de perlas dado que me estoy iniciando en este basto y apasionante mundo.
Ahora mismo estoy en fase de diseño de mi CNC ( sin ningún conocimiento ni experiencia)
Siempre he estado en el montaje industrial y mantenimiento eléctrico, rodeado de colegas con centros de mecanizado a nivel industrial
Todas las horas que podía, las dedicaba a estar en el taller de un amigo y la verdad que no sé si me equivoqué de oficio(que NUNCA se culminará de aprender) pero se me pasaban las horas observando cómo "arrancaba viruta " y preguntando como si tuviera 8 añitos .
Y ya se acabó😂,esa espinita tiene fecha para que salga mi primer prototipo de fresado hecho en casa, y esto me lo he propuesto como las contratas o cumples fecha o Sanción por horas de desfase.
"Disculpa la chapa"
Sobre tu aporte ( muy agradecido, y ánimo a seguir) me surge una cuestión en principio
-Si el lazo cerrado no corrige y realmente solo es una señal de control que realmente es para evaluar si parar el sistema (CNc) por atascamiento posible
Este atascamiento produce un sobre consumo . !Debería discriminarlo el Driver !? y realizar cualquier acción de seguridad, bien sea alarma, parada, retroceso o reinicio ( entendiéndose antemano que cualquier acción sería previa programación):Si fuera de esta manera, ! Cómo podría un encoder acoplado al eje bien sea motor o husillo tener acción directa en la corrección y reajuste sin provocar paradas o realizar solo la función de información ( por expresarlo de alguna forma) utilizando algún hardware por medio como un autómata
Gracias
-
Hola rmp123
A lo mejor no me he sabido explicar bien, lo intento:
- El sistema "closed loop" SÍ que corrige la posición, ante una desviación o parada momentánea.
Mira este vídeo, es el mismo driver que el mío: https://youtu.be/a8XcC4QwOXE
Y en este otro, también se observa: https://youtu.be/2SozZ7af3wg
Por eso estos sistemas son tan precisos, llevan la cuenta de la posición, y si hay un salto, una vibración o cualquier pequeño accidente, se corrigen y vuelven al sitio correcto.
- El sistema se para automáticamente cuando no consigue corregir la posición durante un tiempo que tu estableces en el driver, mediante el programa "protuner". Por ejemplo, 1000 milisegundos (1 seg.) por defecto. Si no se consigue corregir la posición y se mantiene el bloqueo durante 1 segundo, se para de forma automática.
- En cuanto al sobreconsumo, me pierdo un poco. El driver entrega la corriente necesaria en todo momento, hasta un límite méximo que tu le marcas. Puedes discernir la corriente entregada en posición de parada (que se define como el 50% de la máxima) y la corriente en movimiento (hasta el 100%).
Según pone en el manual (traducido del inglés):
"En el modo de funcionamiento normal, el driver monitoriza la posición del eje en todo momento. La corriente entregada al motor cambia dinámicamente basándose en el seguimiento del error entre la posición actual y la ordenada por la controladora."
Imagino que quiere decir que cuanto más error de posicionamiento, más corriente entregada, para que haga más fuerza y corrija dicho error.
- El encoder se puede situar en el eje del motor o del husillo.
La ventaja de ponerlo en el husillo es que mide directamente lo que gira éste, independientemente de lo que gire el motor (no tendrá en cuenta la transmisión intermedia).
Por ejemplo, si instalamos poleas/correas entre el motor y el husillo, y ponemos el encoder en el husillo, se corrige el backlash de la polea/correa, porque el motor no parará hasta que el encoder (el husillo en definitiva) haya alcanzado su posición correcta. Llevándolo al extremo de lo absurdo, podríamos instalar correas lisas, de fricción. El motor girará y girará, aunque resbale un poco, hasta que se alcance la posición correcta en el husillo, que es donde importa.
- Finalmente, este sistema no lleva ningún hardware de por medio. El driver lleva la cuenta de los pulsos y su comparación con las señales del encoder.
Hay sistemas en los que la cuenta la lleva la tarjeta controladora, pero no es el caso.
No sé si he respondido a tus dudas, si no, pregunta otra vez
Saludos y feliz año
-
Hola PacoP
Muchas gracias por la aclaración, ahora lo he entendido perfectamente y me lo has puesto muy claro
No tengo duda que lo voy a incluir en el diseño ya que pondré los motores con poleas en principio por realizar un diseño como los que observo en el foro, quedando la cnc más compacta y teniendo la capacidad de variar la relación entre poleas
Me parece mejor idea colocarlo en los ejes y no en el motor (lo veo más coherente )
Si pudieras darme tu opinión en los siguientes componentes ( y no cometer muchos errores apoyándome en vuestra experiencia con equipos y proveedores )
-Motores PAP (fiables, mi intención es nena 34 o 42)
-Draivers
-controladora ( Gecko,Triple best..)
(Mi intención es más adelante poner el cuarto eje)
Gracias
Un saludo
-
Interesante aporte, y muy bien detallado. Muchas gracias!
Una pregunta de novato que trata de aclarar conceptos: no se usan los DRO (digital read out) para esto mismo, sustituyendo al encoder? alguna ventaja de un sistema frente al otro?
Saludos y ánimo con el proyecto.
-
Hola rmp123
- Motores y drivers los encuentras a paladas, de cualquier tamaño.
Los sabios del lugar dicen con acierto que debes comprar el de mayor potencia que tu bolsillo te permita.
Es decir, para NEMA 34, los de mayor potencia suelen estar en torno a los 8 Nm y hasta 12, he visto en ocasiones.
Hay muchas tiendas, por ejemplo stepperonline, Changzhou Longs Motor en Ebay... busca NEMA 34 y te aparecen muchos.
Intenta comprar con envíos desde países en euros, es más rápido y te olvidas de aduanas y otros inconvenientes.
En cuanto a los drivers, si dices que vas a incluir el closed loop en tu diseño, pues ahí lo tienes, es el HBS86.
Si no vas a poner closed loop, te sale mejor comprar un kit de 3 motores + 3 drivers, suelen venir ya con el driver apropiado para cada caso. Ahora mismo no sabría aconsejarte, no los he comparado. Creo que los mejores son los digitales, pero no me hagas mucho caso, investiga un poco.
- En cuanto a la controladora hace no mucho se habló en este foro de algunas de ellas. Tendrás que saber si vas a controlar la máquina por puerto USB, ethernet, o paralelo (a evitar).
Mira aquí: http://foro.metalaficion.com/index.php?topic=26243.0
Anderl
Los DRO no son incrementales, son absolutos, es decir, son sensores que te dan la posición exacta. Y si, se usan para lo mismo, pero con una filosofía diferente.
No sé exactamente cómo funcionan, pero imagino que envían la posición absoluta a la controladora (no al driver) y ella se encarga de ver si tiene que corregir o no.
Es muy apropiado para desplazamientos lineales, por ejemplo, es muy útil saber si estás en la posición 10 o 10,05 del eje X. Pero es menos apropiado para movimientos circulares, por ejemplo, no es muy útil saber si estás en el ángulo 45.01º del husillo, sencillamente porque habrá que saber también en qué vuelta te encuentras para saber el avance en ese eje. Puesto que de todas formas hay que contar las vueltas, pues ya contamos la posición relativa (pasos) y ya está.
Hay un caso especial: en caso de parada, como sí que se conoce la posición absoluta, se puede reenganchar el trabajo en el mismo punto. Pero yo creo que es más apropiado para tornos, y de todas formas no he visto ningún sistema servo que lleve un encoder absoluto, todos son incrementales.
Saludos
-
Hola PacoP
Muchas gracias
Un saludo
-
Anderl
Los DRO no son incrementales, son absolutos, es decir, son sensores que te dan la posición exacta. Y si, se usan para lo mismo, pero con una filosofía diferente.
No sé exactamente cómo funcionan, pero imagino que envían la posición absoluta a la controladora (no al driver) y ella se encarga de ver si tiene que corregir o no.
Es muy apropiado para desplazamientos lineales, por ejemplo, es muy útil saber si estás en la posición 10 o 10,05 del eje X. Pero es menos apropiado para movimientos circulares, por ejemplo, no es muy útil saber si estás en el ángulo 45.01º del husillo, sencillamente porque habrá que saber también en qué vuelta te encuentras para saber el avance en ese eje. Puesto que de todas formas hay que contar las vueltas, pues ya contamos la posición relativa (pasos) y ya está.
Hay un caso especial: en caso de parada, como sí que se conoce la posición absoluta, se puede reenganchar el trabajo en el mismo punto. Pero yo creo que es más apropiado para tornos, y de todas formas no he visto ningún sistema servo que lleve un encoder absoluto, todos son incrementales.
Te agradezco la aclaración.
Slds
-
De nada
Casualmente navegando por ahí he visto que el fabricante de uno de estos drivers propone instalar el encoder en dos sitios que hemos comentado, y uno de ellos es un DRO. En ambos casos es el driver el que lleva la responsabilidad de comparar la posición ordenada y la posición efectivamente alcanzada.
(https://c7.staticflickr.com/1/676/31932181022_58982b10c9_z.jpg)
(https://c2.staticflickr.com/1/701/31962794081_b71db1ab55_z.jpg)
Saludos
Paco
-
Muchas gracias por tan detallado tutorial PacoP. .bien
Tras leerlo me he animado a probar y he pedido a china un par de drivers de JMC y encoders opticos de 1000 lineas.
Los motores de doble eje ya los tengo (28kg/cm asi los reaprovecho). A ver si funciona medio bien siendo marcas con menor "prestigio" que Leadshine u otras.
Por ahora a esperar, ya contaré que tal.
¿Has podido tu hacer mas pruebas?
Saludos
Fernando
-
De nada, me alegro de que te haya servido, ese era el propósito, que no haga falta recorrer el camino desde cero.
He hecho pocas pruebas más, sólo velocidades, micropasos y algún ajuste que otro.
He visto que el motor va sobrado con un micropaso de 4 (800 pulsos/vuelta), y el encoder a 800 pulsos. Consigo girarlo a 3000 rpm, y suena muy suave.
Si acaso haré un vídeo y lo subo, aunque no hay mucho que enseñar más que un motor girando...
-
Ten cuidado, por lo que leí en otros foros, un motor paso a paso, a partir de 1500-2000 rpm genera suficiente fuerza contraelectromotriz como para cargarse los drivers en caso de una parada brusca. .confuso2
-
Pues mira no tenía ni idea, es la primera vez que lo oigo. Se acabaron las pruebas de velocidad :D
De todas formas el driver debería estar preparado, por la pasta que cuesta, y le he programado una aceleración y deceleración lentas.
-
Por ejemplo aquí:
http://forums.reprap.org/read.php?1,670652,728216#msg-728216
On my closed-loop stepper systems, I limit the speed to 1500 RPM because at higher speeds, the regen effect of the motor can actually blow out the driver if you slam the motor to a stop.
Que viene a decir:
En mi sistema de motores paso a paso en lazo cerrado, limito la velocidad a 1500rpm ya que a velocidades mayores, el efecto regenerativo del motor puede quemar el driver si detienes bruscamente el motor.
El problema parece darse en caso de parada brusca, si programaste aceleraciones controladas no debería haber problema.
-
Buenas.
Ya me han llegado los drivers y encoders.
La primera en la frente. Los encoders son de salida simple (A,B) y el driver usa entradas diferenciales.
He leído que conectando unas resistencias podría funcionar .confuso2, a ver si pruebo y vale o tocará pedir unos conversores de simple a diferencial y vuelta a esperar.
-
Cuál es el encoder que has comprado?
-
Uno óptico de 1000 líneas para eje de 8mm.
http://www.robotdigg.com/product/893/1000-line-rotary-incremental-encoder-kit
El precio bien, lo caro son los gastos de envío y la "receta" de aduanas.
A ver si logro hacerlos andar o si no pediré unos convertidores de estos:
http://www.shop.cncdrive.com/index.php?productID=259
O similares
Al final está claro que entre envíos y aduanas, ahorrar no ahorras nada.
Todo sea por el cacharreo y experimentar.
-
Por aclarar más la información del material, estos son los drivers que pedí.
https://www.aliexpress.com/item/2-phase-Closed-loop-Step-servo-driver-for-NEMA23-motor-24V-48VDC-6A-JMC-2HSS57/32711928706.html
A ver si luego puedo hacer algunas pruebas.
-
Espérate no compres nada más, ese tiene que funcionar
Esta tarde lo miro. Mientras tanto...
Tienes el cable para programar el driver? Y el software? Y el cable del encoder al driver está bien?
Es decir, el resto de los elementos está correcto?
Me da que tienes que programar correctamente el driver. Si son 1000 líneas ópticas en el encoder (resolución física), hay que ponerle 4000 pulsos por vuelta.
-
Si, gracias.
El cable serie tengo que hacérmelo y probar.
En principio poniendo en las bornas a- y b- unas resistencias pull-up o pull-down para que la tensión en esos pines sea estable y de valor la mitad del voltaje de alimentación al encoder debería andar bien.
El cable del encoder es corto, pero fácil de conectar.
-
Bueno, perdonadme si estoy siendo muy pesado.
He hecho una prueba simple.
Conecté el driver a un motor y a un encoder como estos
(https://aws.robu.in/wp-content/uploads/2016/02/Autonics-E40S6-200-3-T-24-Rotary-Encoder-India.jpg)
Es de 600 líneas solamente y con salida simple (a,b) como el otro. Y no puse ni resistencias ni nada en las entradas a- y b- del driver.
Sin acoplar el encoder al motor, di alimentación y suavemente giré el eje del encoder hacia uno y otro lado. La respuesta fue que el motor giraba proporcionalmente según yo giraba el encoder. Entiendo que para compensar el "movimiento" que estaba viendo en el encoder.
No configuré nada aún en el driver, está tal como viene de fábrica (1600 pasos por revolución según los microswitches e imagino que encoder de 1000 líneas/4000ppr).
Tras girar una cierta cantidad el encoder, el driver se ponía en modo fallo, imagino que por haber sobrepasado el límite de error de seguimiento.
Ahora me toca ver cómo hago un útil para montar centrados los encoders de 1000 líneas en el motor (un tubo de 11.1 mm diámetro externo y 8mm diámetro interno) y hacer también el cable serie para poder configurar el driver.
-
No pongas otro encoder con otra resolución porque lo normal es que sea el de 1000 líneas 4000 pulsos por rev. El primero que has puesto, de Robotdigg, debería funcionar tal cual, porque estos driveri se venden normalmente con un motor y encoder como ese.
Prueba una tontería, que me pasó a mi:
Primero asegúrate de que las fases del motor están bien identificadas.
Luego, cambia los dos cables de la misma fase, por ejemplo, intercambia los cables A+ y A- entre sí
Eso teniendo conectado el encoder de 1000 lineas, no el de 600
Saludos
-
yotiro, no he encontrado ningún manual del driver, ni el esquema del cable de conexión, ni siquiera el software para programarlo. Estos de JMC no proporcionan mucha información que digamos.
He probado aquí: www.jmc-driver.com y aquí: http://www.jmc-motor.com/
Y también he visto algún que otro foro con usuarios con la misma petición, y nada.
Si no dispones del manual, deberías pedírselo al fabricante, y el cable. Así podríamos revisar los parámetros de configuración.
El microstepping al que configuras el driver para el motor no importa. No guarda relación con la resolución del encoder.
Aparte de eso, creo que al encoder no hay que puentearle ninguna resistencia. Simplemente debe estar bien conectado, asumo que esta parte la has revisado bien. Es un encoder incremental con señal en cuadratura, o sea, todo correcto. Simplemente asegurarse de que cada cable va a su sitio (PB+/PB- y PA+/PA-, el index Z no se conecta). El driver proporciona 5V al encoder, y el ground se debería conectar a la pantalla del cable (además de al ground, claro).
Aparte de eso, revisa los cables al motor. Yo me volví loco porque mis motores son de 8 cables, tuve que conectarlos de 2 en 2 para que funcionara en modo bipolar paralelo. Una vez con 4 cables, conectarlos correctamente al driver. Como te comento antes, prueba cambiar la conexión de una sola fase (invertir A+ con A- sólo, o B+ con B-)
Finalmente es conveniente tener el encoder conectado al eje del motor, y hacer las pruebas desde el software del driver o desde la tarjeta controladora (la breakout por ejemplo).
Si está desconectado, giras el encoder y el motor gira para compensar, en sentido contrario (se supone que ha ocurrido un desajuste, y quiere volver a la posición inicial). Pero esto sólo pasa para un determinado nº de pulsos, programado en el driver, que creo que son 1000 (yo lo cambié a 500). Si lo desajustas más de 1000 pulsos (1/4 de vuelta), manda error y se desconecta.
Bueno, avisa con tus progresos, al final se consigue.
-
Vale perdona, acabo de leer todo con más atención.
1) Parece que el encoder que te mandaron sólo tiene señales A y B. Ahora entiendo lo del circuito para convertirlo a sañal en cuadratura, o las resistencias.
2) El comportamiento con el otro modelo de encoder es correcto, según veo. Tu giras y él compensa. Parece que todo te funciona bien, simplemente seleccionaste un modelo incorrecto en robotdigg.
Si solucionas todo ponlo aquí por favor, ahora tengo curiosidad por ver cómo funcionan esos drivers (son más baratos que los mios ;D )
saludos
-
Buenos días.
Si, ya tengo el manual y el software.
Luego cuando llegue a casa los comparto para quien pueda interesarle.
Tengo que comprar los conectores rj11 y db9 para hacer el cable serie. En el manual (aunque es poca cosa como manual) viene la correspondencia de pines.
A ver si hoy hago el cable y el casquillo para centrar el encoder al montarlo y así poder hacer más pruebas.
Respecto a usar encoders de 600 líneas, no le veo problema siempre que lo configures así en el driver con su software (serán 2400ppr en vez de 4000ppr, pero en algunos casos puede ser más que suficiente). Es más complicado adaptalo al motor, pero en eBay están esos encoders que use para la prueba por menos de 10€ con envío gratis.
-
Respecto a usar encoders de 600 líneas, no le veo problema siempre que lo configures así en el driver con su software (serán 2400ppr en vez de 4000ppr, pero en algunos casos puede ser más que suficiente).
Exacto, a eso me refería.
Pues si, te agradezco si cuelgas el manual y el soft por si a alguien le puede servir, incluso a mi mismo me puede servir en otro momento. De dónde lo has sacado ? mira que he buscado...
saludos
-
Bueno, seguimos avanzando, muy poquito a poco, pero avanzando.
El manual del driver lo encontré por varios sitios (aunque no es que sea muy completo vamos).
En la parte inferior de esta pagina podéis encontrar los enlaces tanto para el manual como el software ambos en ingles (la pagina en húngaro creo):
http://www.elektrobot.hu/termek.php?filename=1467.html&i=1467
Si quereis ir directo a los ficheros, estos son los enlaces:
manual: http://variometrum.com/PDF/2HSS57-86_ENG.pdf
programa: http://variometrum.com/PDF/StepServoMotor_ENG.rar
Respecto al casquillo para montar el encoder óptico centrado se me ha ocurrido esto:
https://drive.google.com/open?id=0B7W6PdoyzTo7aDg5MkpOUmU5ODQ
Corté dos trozos de tubo de aluminio que entran concéntricos, uno de 8mm interior y 10mm exterior y el otro de 10/12 mm (int/ext).
La placa soporte tiene el orificio para paso del eje motor de 11.14mm de diámetro según el esquema de la pagina donde lo compré.
Taladré ese orificio a 12mm y listo (el escariador lo pillé en bangood hace tiempo para no recuerdo que, no es que yo tenga muchas herramientas). La placa con el orifico aumentado a 12mm, coloco el trozo de tubo de 12mm de diámetro exterior, dentro de este el otro y como el eje de mis motores son de 8mm, pues listo. Puedo o bien marcar donde hacer los taladros para fijarlo con tornillos o bien usar cinta de doble cara y fijarlo directamente.
Poco mas pude hacer hoy y ya hasta el lunes poco mas creo que pueda hacer.
-
Si quieres hacer un acoplamiento barato y sin problemas te coges una manguera trenzada de diámetro interior del tamaño del eje del encoder y de eje de tracción y los fijas con dos abrazaderas de tipo fontanero.
Si el eje del encoder no te queda bien alineado se te puede partir por la fatiga del eje. Ya que suelen ser muy delgados.
-
Buenos días.
Para el encoder con el que hice las pruebas podría valer el método que dices pero el encoder que quiero usar entra en el eje, es como este:
(http://g01.s.alicdn.com/kf/HTB1T5LSGXXXXXXIXpXXq6xXFXXXl/201798622/HTB1T5LSGXXXXXXIXpXXq6xXFXXXl.jpg)
Pero gracias por el aporte.
-
Estos de eje hueco me gustan mucho mas y todo que suelen ser más caros también son más robustos y mas fáciles de instalar. Solo les tienes que poner el altigiro, ya que el encoder suele llevar el grillón con el prisionero para bloquearlo con el eje.
-
Bueno, por fin encontré los conectores que van en el driver para hacer el cable rs232 y pude modificar los parámetros del driver.
Por ahora logro comunicar y modificar los parámetros peeero.....
Al apagar la alimentación los parámetros se vuelven a los valores de fábrica (que son algo raros).
A ver si puedo hacer más pruebas y logro avanzar, aunque hoy ya me dije un par de veces
"¿Por que me empeñaría en experimentar en vez de haber ido a algo 'mas' seguro?"
Pensando en leadshine o alguna solución ya testada.
.confuso2
-
Ánimo, ya te queda poco. Sólo tienes que encontrar la forma de grabar los parámetros al driver.
A mi me pasó con uno de ellos, y al final funcionó grabando los parámetros uno a uno. Es decir, modifico uno, lo grabo, modifico otro, lo grabo etc...
En cuanto a empeñarse a experimentar, no puedo decirte nada, yo soy así ;D
También pensé en comprar todo hecho y ya está, pero no es lo mismo, me gusta meterme en estos fregaos. Ahora tengo los tres drivers que quería, con los encoders que quería (de tipo capacitivo y con resolución programable) y los motores (más potentes) que quería. Ahora si se me rompe algo no tengo que cambiarlo todo. Y además el conjunto me ha salido un poco más barato.
En fin, eso es lo que hay.
-
yotiro me parece interesantísimo el trabajo, que sepas que te sigo de cerca .bien
-
Hola amigos.
Solo comentar que hice varias pruebas con un driver/motor sin montar en nada, todo parece funcionar muy bien, pero al quitar alimentacion todos los ajustes se pierden.
Contacté a los de JMC por si habia una version mas actual del software o si tenia que hacer algo especial para que los cambios no se perdiesen. Respondieron rapido, que vendian un aparato de mano "HISU" para hacer eso, y que no habia software. Les dije que mirasen su manual ... y quedaron en consultarlo con los "tecnicos" y ya me dirian pero nada de nada a dia de hoy.
Se me ha ocurrido preguntar en la tienda de aliexpress donde compré los drivers (TopCNC) y rapidisimamente me ha ido contestando "Sophie Ma" y enviado el manual y programa que ellos tienen, que por lo que veo es mas nuevo que el que yo tenia. Un 10 en atencion por su parte.
Por desgracia estoy de viaje por trabajo y hasta dentro de un par de semanas no podré probarlo.
Mientras tanto voy a tratar de compartirlos por si a alguien le pudiera servir.
https://drive.google.com/file/d/0B7W6PdoyzTo7UzdKSHFlYnJuMzg/view?usp=sharing (https://drive.google.com/file/d/0B7W6PdoyzTo7UzdKSHFlYnJuMzg/view?usp=sharing)
https://drive.google.com/file/d/0B7W6PdoyzTo7aGdkeGY5eDNTbXc/view?usp=sharing (https://drive.google.com/file/d/0B7W6PdoyzTo7aGdkeGY5eDNTbXc/view?usp=sharing)
Saludos
Fernando
-
Hola, tengo un pequeño problema.... estoy con el tema de la electrónica y parece ser que el driver pasa olímpicamente de mi.....
Lo he conectado a la placa y al darle orden de que se mueva se enciende el led rojo y parpadea tres veces, se para, otras 3 se para...... según el manual y la traducción de google es esto :
Si la luz roja parpadea tres veces en 3 segundos, eso significa que la posición ultra Diferencia.
El encoder funciona porque al hacer fuerza retiene el motor, para conectarme y configurarlo no puedo no hay forma de conectarse, he probado con tres archivos diferentes (entre uno de ellos el que indicais aquí) del JMCstepMotor y no se conecta no quiero conectar otro driver no sea que me este fallando algo de la conexión y lo joda, pero yo creo que esta bien conectado ya que si en el mach le cambio los pines de direccion y paso a darle la orden ya no hace nada. La verdad ya no se por donde pillarlo.
Alguna idea? Gracias!
SOLUCIONADO..... me da verguenza :-[ :-[ :-[ :-[ pero al final era la cosa mas sencilla del mundo el cable del motor..... pero lo que no entiendo es que mantiene la posición estando mal conectado??
-
Si, gracias.
El cable serie tengo que hacérmelo y probar.
En principio poniendo en las bornas a- y b- unas resistencias pull-up o pull-down para que la tensión en esos pines sea estable y de valor la mitad del voltaje de alimentación al encoder debería andar bien.
El cable del encoder es corto, pero fácil de conectar.
_____________________________________________________________________________________
my stepper motor website:skysmotor.com (https://www.skysmotor.com)
-
Hola Paco.
Gracias por este hilo. Ni lo había visto. Me lo leeré con calma para aprender un poco sobre estos asuntos, que siempre me han dado un poco de respeto.