Foro MetalAficion

CNC => CNC - Software y Controladores => Mensaje iniciado por: borondes2010 en 05 Marzo 2013, 19:51

Título: COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 05 Marzo 2013, 19:51
Hola compañeros ,por una vez y sin crear precedente ya que no me gusta dar la vara, voy a pedir ayuda a los expertos en temas cnc o electronicos del foro,mi pregunta es como cerrar el lazo con mach3 o linux cnc poniendo reglas digitales opticas.
Que material es necesario?
AY alguien que lo tenga echo funcionando correctamente?
a partir de aqui me rindo a los dioses del cnc que me iluminen este tortuoso camino.
decir que mi sistema llevaria servomotores brussles , un puerto paralelo. y por supuestos reglas opticas
todo esto es para que mis colaboradores en mis proyectos cnc tengan un poquito de ayuda y asi el tema vaya saliendo mas fluido y mejor
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: madmondi en 06 Marzo 2013, 00:26
Me encantaria poder echarte una mano Boro, pero es que ni p..a idea, seguire este post a ver que puedo aprender y si me entero de algo da por hecho que lo posteo. .bien
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 09:31
Gracias mad ,`por lo que veo en el foro e leido bastantes veces el tema del lazo cerrado pero parece ser que o es el secreto mejor guardado del CNC y el que lo sabe no suelta ni media o es que se habla mucho y se hace poco..ya veremos en que acaba el tema y a ver si entre unos cuantos podemos explorar esta via que creo que en el cnc sea con motores de pasos o con servomotores es importantisimo ya que asi podemos mejorar bastante la precision de nuestros CNC caseros .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 09:36
Vaya, la pregunta del millón para PaP, pero con servos pensaba que lo de perder pasos era otra historia, por lo del encoder. Pensaba que como este te dice en todo momento hasta dónde ha girado el motor, pues no habría pérdida, solo la precisión del husillo y del encoder. Y si por algún error (que so sería por falta de fuerza como en los PaP, en los que si el motor no responde al impulso, este impulso se pierde) la controladora se saltase un pulso que recibe del encoder, el error sería muy inferior a la precisión del resto de la máquina.
¿No es así como digo?
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 09:41
sergifire ,en las maquinas profesionales con servomotores tambien llevan captadores lineales de posicion para digamos calcular lo que se mueve el motor y donde realmente llega que es lo que le dice la regla o captador lineal y asi digamos que se cierra el lazo y asi me gustaria que fuese en mis CNC caseros..y espero conseguirlo y asi poder fiarme de que el cnc va a hacer exactamente lo que le mando y no que me joda una pieza despues de una hora de mecanizado.... .palmas .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 09:50
Aquí dicen que no se puede.
http://www.machsupport.com/forum/index.php?PHPSESSID=nrdtcv4hv7b7amon3cnh186cp3&topic=15204.10 (http://www.machsupport.com/forum/index.php?PHPSESSID=nrdtcv4hv7b7amon3cnh186cp3&topic=15204.10)

Sin embargo aquí venden una tarjeta PCI para un segundo puerto paralelo con hasta 4 entradas de encoder o eso me parece entender.
http://www.rogersmachine.net/encoderinfo.html (http://www.rogersmachine.net/encoderinfo.html)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 09:54
buenos dias carlos.te estaba esperando..ja ja en el mach ya habia leido algo pero tampoco era muy aclaratorio...veremos a ver en linux cnc...a ver si esto tira para adelante y salimos de la burrologia del desconocimiento .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 09:56
Esto ya se ha hablado, pero sin ninguna conclusión: ¿y si en lugar de los pulsos que recibe la controladora desde el encoder, los recibiera de la regla lineal? Este cambio un buen electrónico, de los que habitan en este foro, lo tiene hecho en nada (he visto en varios posts cómo leen las señales de las reglas digitales).
 Saludos.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 10:05
Las reglas no pueden recibir impulsos, solamente los envian.Una regla no es mas que un encoder lineal y es simplemente un cristal con muchas rayitas de forma que cada rayita que pase por delante de un captador óptico emite un impulso.El problema es conseguir que el software acepte esa función y con un solo puerto paralelo es imposible.Necesitas entradas adicionales y que el Mach las reconozca.
Yo creo que si algún dia termino la máquina y quisiera optar por un lazo cerrado me iria a tarjetas profesionales con software del mismo fabricante.Puede que pierda ciertas utilidades y facilidades del Mach pero a cambio tendré velocidad y precisión.Claro está que para eso la máquina debe ser mas precisa que la mia y de momento con la correa dentada del eje Y sería como dar una capa de minio a una estructura completamente podrida.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 10:13
Carlinos, yo no me refiero a que las reglas reciban impulsos (de dónde), me refería a las señales que envía el encoder a la controladora, y si estas se podrían cambiar por las señales de posición de la regla, que la regla enviaría a la controladora. Y si las señales que emite la regla no son las mismas que emite el encoder, supongo que será 'fácil' igualarlas.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 10:20
Claro, todos los servos aceptan señales de un encoder exterior para funcionar en modo maestro-esclavo, pero el problema no es ese.El problema es que el Mach se tiene que enterar también de los movimientos de la máquina en tiempo real.Eso no sería un verdadero lazo cerrado ya que el Mach tiene que ser el que se encargue de corregir los errores, no el servo por si mismo.Perdona que no te haya entendido antes.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 10:36
Por otra parte, las señales de la reglas son totalmente compatibles con las de los encoders, solamente hay que tener cuidado de que el dispositivo al que se conecten acepte ese tipo de señales ya que hay varios tipos de señales distintas que puede emitir un encoder.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 10:40
Será que no entiendo bien esto del cómo funciona un CNC, pero si hay una regla digital que envía pulsos, ¿qué problema hay .confuso2? ¿que no se puede enviar al Match porque este no puede recibir señales? ¿El soft del LinuxCNC sí acepta señales?
De poder enviar señales del encoder/regla al software, sí que se sabría en todo momento donde está la herramienta, ¿verdad? Y según el movimiento requerido, el software enviaría corriente a los motores adecuados.
A ver si el hilo este despega y entre todos sacamos algo, y yo de pase me aclaro, ;)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 10:50
El problema que hay es precisamente ese, saber si el Mach acepta señales de encoder y como conseguir las entradas adicionales.En el enlace que pongo en segundo lugar dicen que lo pueden hacer, pero habría que ver si alguien lo hizo.En ese enlace no veo las fotos ni caracteristicas de esa tarjeta que dice que lo hace. Yo de Mach no controlo una patata pero creo que si que tiene la posibilidad de aceptar esas señales.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 10:59
Pues ya lo veo, Mach acepta entradas de encoder y la tarjeta es esta.
http://www.rogersmachine.net/Encoderboard.pdf (http://www.rogersmachine.net/Encoderboard.pdf)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 11:06
Carlinos, aquí tienes el manual de la tarjeta:
http://maintenance5.com/Sound-Logic-Encoder-Interface-download-w1914.pdf (http://maintenance5.com/Sound-Logic-Encoder-Interface-download-w1914.pdf)
Sácanos de dudas. .baba
Edito:Uii, creo que me colé.  ::)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 11:21
Aquí parece que las tienen mas profesionales por Ethernet.
http://www.vitalsystem.com/web/hicon/hicon.php (http://www.vitalsystem.com/web/hicon/hicon.php)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 11:27
Aquí hay uno que compró la tarjeta de Rogers y tenia problemas que no sé si solucionó ya que no me lo he leido pero lo haré.

http://groups.yahoo.com/group/mach1mach2cnc/message/54871 (http://groups.yahoo.com/group/mach1mach2cnc/message/54871)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 11:39
Hay mucho silencio con este tema, y mucha confusión.¿No decían que Mach no aceptaba lazo cerrado? Ahora resulta que con instalar un segundo puerto paralelo se consigue. ¿Es eso cierto? La placa de Rogers parece que lo consigue, pero hay tan poco material sobre ella en la red que extraña.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: el octavo pasajero en 06 Marzo 2013, 12:03
bueno yo le puse un encoder lineal a la fresadora configure el mach pero nunca llego a funcionar , no se que hice mal , se que algo detectaba por que me lo marcaba en diagnostics pero nunca llegué a ver las coordenadas del encoder como debería ,también decir que no le dedique .más de mdia hora.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 12:07
Yo creo que lo hace muy poca gente por el simple motivo de que no compensa para la mayoria de aplicaciones. Si tienes una fresadora con motores paso a paso sin encoder (la mayoria) pues es una tonteria ya que te salen los encoders y demás parafernalia por un pico.Por otro lado los que necesitan mucha precisión las suelen comprar hechas y con software dedicado.Borondes que es muy suyo pues se lo quiere hacer por si mismo y la cosa tiene su merito.Por mi parte primero tengo que ver la mia funcionando y aprender cosas básicas de fresado antes de ponerme a buscar precisión.Borondes es fresador profesional y sabe sacar ventaja de la precisión por el tipo de trabajos que hace.A mi de momento me queda muy grande el tema pero una cosa que tengo clara es que mi fresadora de llegar a buen puerto será ampliable y mejorable en un futuro.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: sergifire en 06 Marzo 2013, 12:34
Carlinos, tienes razón aunque discrepo en lo de que la gente no lo implanta en sus máquinas porque vale un "pico". Si con solo unas reglas digitales y puede que otro segundo puerto paralelo (que sería un 5-10% del total de la inversión en la máquina), se pudiese hacer el lazo cerrado, las reglas digitales volaban de las tiendas.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 13:06
Puede ser, pero una buena electrónica nunca compensará una mecánica de pichiglás como diría nuestro amigo Borondes. Si todo se arreglase poniendo reglas ya hace tiempo que se venderían CNC´s de metacrilato.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: tessen en 06 Marzo 2013, 13:39
Hola
mach3 por si solo no hace bucle cerrado, hay que recurrir a una FPGA externa que se encargue de hacer el bucle cerrado, lo que si se puede hacer con el mach3 es conectarle encoder para que sirva como visualizador pero NO hay retroalimentacion

yo solo he visto que mach3 pueda trabajar en bucle cerrado con la señal de sincronismo del roscado (y no recuerdo cuantos pulsos por vuelta soporta)

por mi parte tengo todo el cableado de las reglas digitales para hacer bucle cerrado, pero aun no lo tengo listo, lo que si puedo hacer es ver la posición con ellas, usando la placa kflop

y coincido con carlinos, primero la parte mecánica y luego lo demás, meterse a trabajar en bucle cerrado no es tan sencillo, requiere ajustes PID y filtros varios, tirar de osciloscopio..  es "mas sencillo" dejarle esa tarea al driver (que también hay que toquetear)

borondes, yo te diría lo siguiente, si no tienes experiencia con servos, primero prueba a trabajar con ellos en lazo abierto y luego, si ves que te hace falta te planteas el bucle cerrado

salu2!
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 06 Marzo 2013, 14:04
Entonces si solo visualiza no sirve de nada conectar reglas.Partiendo de la base de que con servos siempre vas a ir a la posición que indique Mach, nunca podrás corregir el Backlash de la máquina que es en realidad de lo que se trata.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: jordi3sk97 en 06 Marzo 2013, 19:47
Por lo que llevo leído:

Mach no puede llevar bucle cerrado no está previsto para ello.

LinuxCNC podría hacerlo por diseño, (lo del kernel en tiempo real y de allí la necesidad de los puertos paralelos), pero en la practica no, es un tema del ancho de banda y capacidad de digerir la cantidad bits por segundo que van volcando las reglas al moverse la maquina.

En la wiki de LinuxCNC, o en las faq de la misma web se habla de la realimentación.

En todo caso pensad que si esto fuera posible y barato ya no harían falta los PAP ni los encoders, se podría trabajar con cualquier motor y controla el movimiento real solo con la regla. 

Otra cosa es buscar placas controladoras que hagan el trabajo quitando la faena al PC.
 
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 20:14
ya me parecia que habia leido mucho por ay del bucle cerrado pero nunca a nivel de cnc casero lo habia visto...yo en los talleres estoy acostumbrado a lidiar con fresadoras cnc,centros de mecanizado etc que logicamente tienen lazo cerrado pero claro los controla un control numerico profesional,de todas maneras si alguien averigua como hacerlo por favor que lo comparta con lo demas ya que seria la releche..ja ja me parece que con lo novato que soy en el tema del cnc casero igual le quiero pedir peras al olmo...supongo que tendre que conformarme con los servomotores y poner las reglas con su dro y vigilar en la medida de lo posible las diferencias que pueda tener el cnc...no es lo que yo quiero pero creo que me tendre que adaptar a lo que es fabricar algo casero,para mi a nivel casero el poner servomotores ya es la leche ahora claro cerrar el lazo seria la BOMBA..ja ja aun asi y leyendo vuestros comentarios de su imposibilidad creo que ya que tengo una regla para pruebas pues el compañero gil y el compañero becerra igual se quieren entretener un ratito en probar alguna de sus locas ideas...veremos a ver lo que dicen..yo por desgracia no llego a ese nivel electronico .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 21:33
APARTE DE TODO LO ESCRITO POR AQUI,voy a poner un trocito de algo que un buen colaborador RURAL me puso en una de mis preguntas siempre complicadas,si al el le parece y tiene tiempo quizas pueda ir abriendo algo de luz en el CASI IMPOSIBLE LAZO CERRADO.

El lazo cerrado está implementado en "el cerebro de movimiento" de LinuxCNC... es lo que llaman PID (PID es una fórmula para compensar el error de posición actual con la solicitada)
 La otra pieza clave es HAL que es como el cableado "en programa" desde los pines a las piezas de software que lo controlan
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Tou en 06 Marzo 2013, 22:48
Me quedo atento a lo que descubrís, muy interesante  .palmas

Solo comentar que hay máquinas cnc industriales que por un lado llevan por supuesto servomotores con su propio encoder en el eje posterior que es el que "cierra el lazo" marcándole grados al servoamplificador -tal como lo entiendo yo asimilándolo a pulsos-dirección.
Las holguras y desalineos son algo que se debe controlar y corregir en los parametros o ajustes del cnc y cuando sobrepasan determinados valores se sustituye o trampea lo que toque: guías, patines, husillos, tuercas...
Luego hay máquinas que tienen reglas y/o encoders duplicados en algunos ejes, algunas solo es para mostrar en una pantalla la diferencia entre coordenadas reales/programadas y en máquinas más modernas ya te puede saltar una alarma si la interferencia es demasiado amplia.

Mi reflexión es que no hace tanto tiempo que están disponibles estas ventajas para uso industrial digamos en máquinas de menos de 100000€ y es pronto para aprovecharlas a nivel doméstico, a buen precio quiero decir  :P
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 22:59
tou tu reflexion me parece medio acertada.ya que desde hace muchisimos años todos los controles profesionales llevan aparte del encoder que llevan los servos que es imprescindible para que trabajen tambien llevan en la mesa captadores de posicion o reglas digitales para que el cnc cierre el lazo,yo como ya e metido las manos en unos cuantos cnc profesionales pues por eso viene mi idea de la implantacion del lazo cerrado y te puedo asegurar que voy a echar el tiempo que necesite en saber si realmente a nivel casero lo puedo implementar en mis maquinas,logicamente a nivel industrial esta casi todo ya inventado,de todas maneras creo que algunos conceptos de como trabaja un servo y sus controladoras y como interactuan estas con el CNC me parece que no lo tienes muy claro,YO TE PUEDO ASEGURAR que eso si lo tengo bien claro lo que me falta conseguir el implementarlo en un cnc casero ,tengo fe ciega en los criterios de tio_gil-jbecerra-dedalo1111 y otros que no lo ven imposible del todo por eso abri este post por si alguien mas que mis colaboradores en este proyecto sabia algo de informacion que pudiese ser valiosa,logicamente si al final damos con ello lo pondremos aqui,ya que ninguno de nosotros nos queremos llevar las investigaciones a la tumba,asi que todo el quiera puede aportar toda la informacion que quiera o que crea que pùeda ser interesante y luego ya cribaremos lo que sirva y lo que no,a veces unos locos tienen que dar el primer paso para que otros lleguen con el camino ya echo .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: el octavo pasajero en 06 Marzo 2013, 23:03
Tou ahí le has dado ,
 
Las holguras y desalineos son algo que se debe controlar y corregir en los parametros o ajustes del cnc y cuando sobrepasan determinados valores se sustituye o trampea lo que toque: guías, patines, husillos, tuercas...
Luego hay máquinas que tienen reglas y/o encoders duplicados en algunos ejes, algunas solo es para mostrar en una pantalla la diferencia entre coordenadas reales/programadas y en máquinas más modernas ya te puede saltar una alarma si la interferencia es demasiado amplia.

Mi reflexión es que no hace tanto tiempo que están disponibles estas ventajas para uso industrial digamos en máquinas de menos de 100000€ y es pronto para aprovecharlas a nivel doméstico, a buen precio quiero decir  :P

si se sacaran los trapos sucios de la mayoría de maquinas de las empresas la palabra precisión cambiaría de significado.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Tou en 06 Marzo 2013, 23:17
creo que algunos conceptos de como trabaja un servo y sus controladoras y como interactuan estas con el CNC me parece que no lo tienes muy claro
Que quede claro que de "rollos digitales" yo no tengo ni idea y trabajo mejor si no tengo que abrir el armario eléctrico  ;D .
Solo quería compartir lo que he visto y averías que me han pasado personalmente. He visto el mismo control Fagor montado con motores de pasos o servos y solo habría que desenchufar y cambiar settings. Luego he estrenado máquinas en las que el captador de posición era un opcional que pagas o no y en la puesta en marcha se verifica y configura, o en una muy vieja taladradora-roscadora Maquisis incluso se lo llegamos a desmontar cuando se estropeó y simplemente marcaba 0 en el eje X sin alarmas. El resto de por donde entran y como salen las coordenadas son conjeturas mías   :-X
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 23:25
ok mi experiencia digamos que es un poco distinta a la tuya,pero leyendo unos cuantos tochos y preguntando a los que saben de cncs de verdad saque unas conclusiones muy claras de como interactuan los servos profesionales y sus controladoras con los captadores lineales de la maquina y de como interpreta el cnc esos parametros,en este post toda la informacion y experiencias de cada uno son bienvenidas siempre y cuando no sean chorradas o comentarios que no vengan al tema en cuestion,en tu caso ya que trabajas con cncs de verdad tu experiencias y observaciones son bienvenidas ya que siempre aportan cosas que a veces no nos damos cuenta asi que a ver si entre todos sacamos algo concluyente para nuestros sistemas caseros y si no pues seguro que aprendemos un monton de cosas .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Tou en 06 Marzo 2013, 23:30
Tou ahí le has dado ,si se sacaran los trapos sucios de la mayoría de maquinas de las empresas la palabra precisión cambiaría de significado.
Que no es eso tampoco pero el cero no existe: primero la mecánica debe estar lo mejor posible. Aquí confío que Borondes y sus técnicas rurales  ;) se aproximarán al 0,0. Seguro que la electrónica tambien la borda el resto del equipo  .bien .

Las controladoras serán lo mejor dentro de lo que el bolsillo permita pero claro a mi se me hace raro que un software de 150€ como Mach3 maneje todas las señales que le entran y vomite pulsos coherentemente  :o
De EMC me lo creería más por eso estoy atento  .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 06 Marzo 2013, 23:34
Hola, ufff como cunde el hilo en un solo día. Os cuento lo que yo llevo indagado -a nivel de documentación ojo, me puedo columpiar porque aún no me he puesto al lio- a ver si entre todos sacamos algo en claro esta vez.

................

En Mach3 lo que llevo leido -de foros- me coincide con lo que ponéis, puede leer de reglas A/B añadiendo un segundo puerto, pero solo lo usa para el DRO... lo cual es una sorpresa ¡carajo!, si manejas lo más complicado la trayectoria, la generación de pulsos e incluso tienes la lectura de un DRO... ¿no rematas la faena y añades una "formulita" en el programa??.

Yo probaría a mandar un correo al soporte de Mach3 (ya que lo tienes comprado) y preguntarles directamente a ArtSoft que confirmen si esto es así, incluso en las últimas versiones.

.................

Sobre LinuxCNC definitivamente si es posible, al menos a nivel de teórico/manuales -salvo el tema de frecuencia de pulsos que comentáis que desconozco-. Es lo que llaman "PID anidado" (nested PID), hay o había una sección de HAL dedicada a ello (que basta que la busque para no dar con ello).

Lo que se consigue con este doble lazo, es que el lazo interno gobierna la velocidad del motor y la regla en el lazo externo gobierna la posición. Con ello se obtiene la máxima precisión posible.

La implementación con "servoamplificadores" es la más sencilla, "PID" no deja de ser más que una fórmula que simplificando mucho es:

Código: [Seleccionar]
error = [valor real] - [valor teórico]
error, puede ser velocidad o posición, según lo que estemos calculando (un tacómetro o una regla de posición).

Este valor de "error" es fácil de convertir en una señal de +/-10V y ya tienes un lazo cerrado. Cuando se complica es cuando la señal son Pulso/Dir... pues hay que andar generando pasos que compensen y a la vez mantener el ritmo.

A ver si puedo sacar un rato y pongo los enlaces concretos a toda esta "teoría" en los manuales del LinuxCNC.

En esta parte es donde se agradecerían enlaces a información relativa.

Salu2

PD. Yo en mi controladora estoy incorporando toda esta lógica en el micro del servo de cada eje, porque como dice Gil "divide y vencerás" en la línea de no hacer coincidir todas estas señales sobre el PC y que sea el cuello de botella como comentábais.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 23:46
varias cosas,mi maquinillo va a llevar husillos de bolas hiwin y no mierda china,el ajuste sera lo maximo que la mecanica RURAL me pueda dar,y la electronioca esta compuesta por servomotores profesionales con encoders de 2000 pulsos y controladoras profesionales para esos servos osea que no tiene nada que ver con un motor de pasos y una controladora china..y el cnc lo va a controlar linux cnc lo del mach3 es para recabar informacion por si alguien que lo use le pudiese servir lo que descubramos,y las reglas opticas seran de 5micras osea que veremos a ver lo que logramos con este coctel de piezas,y si es cierto que el cero absoluto no existe pero ay que intentar acercarse lo mas posible,no es lo mismo acercarse 3 micras que 3 decimas,ademas yo no soy conformista si no hace las cosas el cnc como yo quiero que las haga pues desarmos el invento y vendo las piezas y sigo trabajando en mis maquinas manuales que esas si hacen lo que yo les digo a la milesima.hacerse un cnc para que vaya mas o menos bien no esta dentro de mi vision o va bien o no va y si no va que le den..ja ja el cnc que estoy casi seguro de que ira casi perfecto es el de el compañero y amigo CARLINOS ya que lo e visto in situ y con los componentes que tiene si hace lo que le queda igual de bien que lo que tiene echo sin ninguna duda sera uno de los mejores routers que veremos en mucho tiempo y ademas con potencia de maquina de verdad no con pijaditas asi que la gente sube mucho el nivel por que tiene claro lo que hace y cada vez lo hace mejor,logicamente querer hacer un cnc casero con precision y gastarse 500 euros entonces despues que no se queje de que es una porqueria y de que va mal..logicamente muchas veces tienes lo que pagas y por mucha electronica que le pongas con una mecanica de pichiglas no se consigue mas que un monton de tiempo y de dinero tirado
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 06 Marzo 2013, 23:52
YUPIIIIIIIIIIIIIIIIIIIIIIIIIIII mi equipo de colaboradores electronicos VEO QUE SON UN POCO RURALES y parece que no lo ven imposible por lo que un millon de  .palmas .palmas .palmas .palmas .palmas .palmas .palmas y seguimos adelante con la moral muy alta ahora despues de dedalo1111 falta gil para que lance una de sus bombas y nos deje flipando..ja ja y becerra pues que lea otro poquito mas el manual del emc y a ver si logramos hacer un coctel que lo podamos digerir..ja ja .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 06 Marzo 2013, 23:57
Un enlace de "nested PID" (velocidad y posición):

http://www.cnczone.com/forums/general_electronics_discussion/6862-pid_loop_sample_rates_resolution.html (http://www.cnczone.com/forums/general_electronics_discussion/6862-pid_loop_sample_rates_resolution.html)

Salu2
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Tou en 06 Marzo 2013, 23:57
Citar
hacerse un cnc para que vaya mas o menos bien no esta dentro de mi vision
¿Tienes controlada tambien la calidad de la corriente que te llega? Espero que te llegue en perfecta sincronía o como se diga pero un desfase pequeño te da al traste con cualquier precisión electrónica,  lo digo porque en el curre hubo que poner un transformador :'(
Y  repito que os deseo que os salga ese cóctel de piezas lo mejor posible y me queda claro que no vas a usar una placa cnc de ebay  ;D ;D
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 07 Marzo 2013, 00:00
la corriente de mi taller entra estabilizada con 25amperios y filtrada..tu tranquilo que eso ya lo tengo por culpa de los variadores desde hace unos cuantos años para proteger la electronica de los siemens micromaster de mis maquinas manuales,y la electronica no es una china de ebay...ja ja
aqui te dejo una muestra de mi electronica CHINA..ja ja
http://foro.metalaficion.com/index.php/topic,10532.195.html (http://foro.metalaficion.com/index.php/topic,10532.195.html)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 07 Marzo 2013, 17:07
El problema del Mach 3 y Linux es que tiran mucho del procesador del ordenador y con salida por puerto paralelo hay límites de velocidad insalvables.Cualquier CNC profesional tiene procesadores independientes que trabajan a varios MHz que es lo que necesitan las entradas de encoder.La entrada de encoder 2 exterior del servo de Borondes acepta señales de 800KHz que al final son 3.2 millones de cuentas por segundo y si multiplicamos eso por 4 entradas para una fresadora de 4 ejes ya me diréis lo que hace el procesador del PC con eso.
Yo pienso que el que quiera hacer un control CNC profesional tiene que comprar tarjetas PCI con software dedicado que también puede ser de otros fabricantes y que llevan procesadores independientes que hacen todo el trabajo pesado.
Naturalmente estas tarjetas se van por encima de 300 euros si compramos una china (que seguro puede ser muy buena) y se van a mas de 1000 si compramos una europea o americana.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 07 Marzo 2013, 20:52
Nasss, cierto que no todo se puede leer por el puerto paralelo. Aunque da un ancho de banda algo superior a 1Mhz, para el caso de una regla con resolución de 3 micras a ¿1000mm/min? lo sobrepasa.

En el caso de Mach3 el problema de uso de CPU es que al no tener un sistema de "tiempo real" (el RTOS del Linux modificado que lleva LinuxCNC) lo que hacen es poner en bucle a muestrear las patillas a toda leche. Para frecuencias de Khz pues "vale"... pero no para estos usos más serios que buscamos.

Completamente de acuerdo en que cada eje ha de ser "ayudado" con hardware dedicado (distribuir las tareas que decía Gil en su día). En particular hay una "gama" bastante bien integrada con Linux CNC que son las MESA: http://www.mesanet.com/fpgacardinfo.html (http://www.mesanet.com/fpgacardinfo.html) (hay otros fabricantes por supuesto).

Disponen de un "chip" dedicado (FPGA, que viene a ser como un micro "simplón" pero especializado en I/O) y hay toda una gama con >50 I/O (frente a la docena de un puerto paralelo) y contadores para las reglas que alcanzan los 200Mhz. Las hay PCI, USB e incluso Ethernet, pero estas últimas el driver está en "beta"... en los foros USA tienen muy buena acogida.

En Linux CNC tienen los drivers para ellas publicados e integrados con ejemplos de configuración (son los HOSTMOD2 (http://linuxcnc.org/docs/html/drivers/hostmot2.html)) para encoders, servos, PaP, etc. (hay otros fabricantes, pero de lo que he leido me ha parecido los más extendidos con un precio muy razonable precio (http://www.mesanet.com/prices.pdf)/características).

La filosofía de estas tarjetas, es poner una tarjeta al ordenador (mejor PCI, pero puede ser hasta ethernet) y esta "breakout" dispone de uno(varios) conector(es) 50pines "estandar a sus tarjetas" de forma que acoples una tarjeta de encoders, o drivers de motor, o relés, o entradas optoacopladas.... es muy, muy completa la familia.

Estos son unos ejemplos de configuración con diferentes modelos de sus tarjetas + complementos: http://linuxcnc.org/docs/html/drivers/hostmot2.html#_configurations (http://linuxcnc.org/docs/html/drivers/hostmot2.html#_configurations)

Ale, ya tenéis lectura amigos  ;D ;D

Salu2

PD. I/O para el que no le suene son Input/Output... entradas/salidas... vamos, los pines en el caso del puerto paralelo que son las señales/cables que puede manejar el ordenador.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: rosli en 09 Marzo 2013, 01:15
Hola..

No quiero ser categorico pero yo lo veo asi:

El lazo cerrado los que teneis servos ya lo teneis, no busqueis por que no hay mas, ni reglas exteriore en la mesa ni nada.
Si tu le das a un servo con su driver configurado para que acepte pulsos direccion, por ej. 30 pulsos el girara 30 pulsos
ni uno mas ni uno menos, por que si hay una fuerza exterior que quiera desviarlo de esta posicion, el servo contrarrestrara
con toda su potencia esta fuerza.

Cuando hablais de maquinas que llevan servos y ademas reglas en las mesas, estas solo se usan para decirle al control a la
velocidad a que ba hacia el destino y asi poder preveer como llegara y ajustar la velocidad del servo con su PID para que no se pase. Algunas ademas las utilizan para detectar un posible error del control (Redundancia). Hay maquinas que para este menester usan una dinamo taquimetrica.

El famoso lazo cerrado que se comenta por los foros es solo para motores pap independientemente del programa que los controle Mach, Linux, ya que estos pueden perder pasos. UN SERVO NO.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: tio_gil en 09 Marzo 2013, 08:51
Rosli, te apuesto lo que quieras a que hago perder la posicion a un servo de los que se usan por aquí y el driver ni se entera y el programa tampoco.

Olvídate del tipo de motor que se quiera poner, como si quieres poner un conejillo de indias corriendo en el carrusel y este acoplado a los ejes. Lo que estamos viendo es cómo meter un lazo cerrado como Dios manda a uno de estos programas (y ya por lo visto, el candidato es el Linux CNC). Otra cosa luego es como lo gestione

La única manera de saber si nos hemos desplazado lo que queremos es medir la mesa (para ser exactos, medir donde se hace realmente el movimiento: si es una mesa, en la mesa, si es un plato giratorio, en plato), lo demás son artificios que más o menos se pueden acercar a la realidad. Así que tengas holguras (por la tuerca, por la mesa, porque los chinos han puesto rodamientos radial en vez de axiales - los que tengan BF-20 que lo comprueben-, etc) no vale para nada el medir lo que se mueve el husillo (ni siquiera si pones un husillo a bolas).

Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Marzo 2013, 10:18
TIO_GIL menos mal que tu entiendes a UN RURAL COMO YO .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor,la explicacion de lo que yo quiero es exactamente como la comenta tio_gil mas claro imposible, .brinda .brinda .brinda .brinda .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: tessen en 09 Marzo 2013, 10:55
rosli el lazo cerrado que tu comentas es el que se establece entre las reglas (caso de que existan) y el control, tu podrías apagar la alimentación de los motores y el control seguiría conociendo/controlando la posición, con servos (sean del tipo que sean) que se suelen manejar por estos lares, el lazo cerrado es entre el driver y el motor exclusivamente, si tu obligas al servo a moverse el driver mediante el encoder lo detecta e inicia la corrección, pero el control no se entera de ná

en bucle cerrado "pata negra" no se suelen usar pulsos, se suele utilizar comando de velocidad o par y los driver no intervienen en el proceso, son unos "mandáos" hacen lo que el control les dice, sin escuchar señales externas

dedalo1111 lo explica perfectamente

Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 09 Marzo 2013, 11:44
No Tessen, en un control de posición siempre se utilizan pulsos para controlar la posición.En un control de par, la variable a controlar siempre es el par y en uno de velocidad la variable a seguir por el control siempre es la velocidad que no tienen nada que ver con el control de posición en el que la variable a controlar es la posición.En un control de posición (caso que nos ocupa)el módulo de posicionamiento (Mach 3 parece ser que no tiene) lleva incorporado un comparador que cuenta los pulsos del valor de consigna y le resta el número acumulado de pulsos con respecto a los pulsos de valor real que manda el encoder  (la regla) tratando en todo momento de que el resultado de la resta sea "0".El control de posicionamiento utiliza  un control mediante pulsos de valor de consigna que puede ser de 2 tipos .

1-PLS/DIR (pulso/dirección)
Con este método se envía a través de una salida una señal de cadena de pulsos al servoamplificador, mientras que la otra salida determina la dirección de giro.

2-FP/RP.(forward position/reverse position) o también CW/CCW (clockwise/counter clockwise)
Con este método una de las salidas entrega al servoamplificador los pulsos del valor de consigna para la marcha a la derecha, y la otra salida los pulsos de valor de consigna para la marcha a la izquierda.

El contador de comparación de valor real/valor de consigna determina la diferencia entre los pulsos de valor de consigna y los pulsos de valor real realimentados.Esta diferencia es conocida también como "pulsos acumulados".

Al operar la máquina con velocidad constante, el número de pulsos acumulados es aproximadamente constante.Durante la fase de aceleración o desaceleración, el número de pulsos acumulado cambia más.

La posición de destino ha sido alcanzada cuando el número de pulsos acumulado es igual o menor que el valor predeterminado.El servoamplificador deja de recibir pulsos de valor de consigna y envía la señal " En posición" (posicionamiento concluido).

El servomotor sigue funcionando aún hasta que el número de pulsos acumulados adopta el valor "0".

El tiempo entre la salida de la señal "IN POSITION" a la parada del servomotor es denominada "demora de detención".

los servos tienen un bloqueo de forma que si actúa una fuerza externa sobre el eje del motor, el motor genera una contrafuerza tan elevada en forma de un par opuesto tal que el numero de pulsos acumulado permanece siendo cero.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 09 Marzo 2013, 12:10
El otro día me enseñaba Gil dos husillos -de BF20?- que los ponías diente contra diente de uno y otro ¡¡y no engranaban a todo el largo!!!!

Con un doble PID (PID=lazo) este tipo de errores mecánicos se "absorven" y la regla es la que indica la posición real y absoluta sin desviaciones mecánicas y el encoder motor se asegura que las velocidades sean las adecuadas independientemente de la carga, lo cual es fundamental para movimientos coordinados (círculos, ángulos, etc.)

En Mach3 también se puede, pero no parece tan fácil. El otro día "arrebuscando" encontré que publican las interfaces con sus diferentes módulos internos, de forma que puedes "enganchar" al planificador de trayectoria  tu propio programa y delegar en el hardware que se asegure de generar y  mantener las posiciones teóricas. El "pero" es que está muy pobremente documentado, pocos drivers parecen hacerlo y aunque sepas programar lo suficiente no parece haber buen soporte con esas interfaces (incluso Smoothsteeper comentan problemas con algunas versiones, antíguas/free fundamentalmente).

Siguientes pasos: elegir una tarjeta hardware que soporte suficientes:

- contadores para los encoders de las reglas (A/B/I x 4? ejes... ¿señal diferencial o TTL?)
- suficientes I/O para los motores --> PWM / +-10V / Pulse-Dir (enable? error?)
- suficientes I/O para finales de carrera, etc. (deseable protegidos y que permitan sensores inductivos)
- relés para refrigerante?
- velocidad del cabezal? --> PWM/+-10V
==================================================================
TOTAL: ??? ??

Continuación: aprender a configurar HAL para "conectar" todo eso. (HAL es como un cableado de señales "físicas" a datos lógicos pero en un fichero de configuración)

Salu2

PD1. Borondes, te toca revisar especificaciones de tus drivers, reglas, etc. y rellenar la tabla
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Marzo 2013, 12:49
DEDALO1111 ahora si que me tiro al rio que lo tengo bien cerca..ja ja DELEGO TODO ESTE TEMA A TIO_GIL que es el que tiene mis componentes por que yo estoy perdidisimo ya no se si voy por pulso y direccion o si me realimento a mi mismo..ja ja,cuando GIL me diga ,michel esto es lo que ay que traer,se trae y punto,porque como meta baza yo seguro que la cago..gracias a todos pero este post era para intentar colaborar a traves de vuestros conocimientos con mis GURUS COLABORADORES ,pero lo que es yo en esto no tengo ni puta idea,LO MIO ES EL MECANIZADO MANUAL.eso si la pàrte mecanica de mis cnc va a ir fina fina,la electronica se la dejo a gil y el linux a jbecerra ya que se ofrecieron amablemente y altruistamente a que de una vez pudiese hacer cumplir mi sueño que era tener cnc caseros al estilo 100% RURAL..gracias a todos de verdad,valoro todas la opiniones y el tiempo que perdeis ilustrandome y ayudandome en un camino TORTUOSO .ereselmejor .palmas .palmas .palmas .palmas .palmas .palmas .palmas .brinda .brinda .brinda .brinda .brinda .brinda .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 09 Marzo 2013, 18:30
A ver ,¿sirve o no sirve esta tarjeta para Mach 3? .Yo de informática no tengo ni idea pero tanta tarjeta para encoder ya mosquea.

http://www.vitalsystem.com/web/hicon/hicon.php (http://www.vitalsystem.com/web/hicon/hicon.php)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Marzo 2013, 19:09
carlinos ,ese es el kit de la cuestion..que ay mucho por el mundo perooooooooooooooooo....no se aclara ni dios...de todas maneras esa tarjeta parece ser para motores de pasos....NO SE estoy ya con las neuronas chamuscadas...a ver dedalo1111 si te responde..ja ja QUE LA FUERZA NOS ACOMPAÑE .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Marzo 2013, 19:29
y a ver estas....esto es una p..a locura
http://www.ebay.es/itm/CNC-Ethernet-Smooth-Stepper-for-Mach3-Motion-Controller-and-Cable-combo-/160977995973?pt=LH_DefaultDomain_0&hash=item257b0948c5 (http://www.ebay.es/itm/CNC-Ethernet-Smooth-Stepper-for-Mach3-Motion-Controller-and-Cable-combo-/160977995973?pt=LH_DefaultDomain_0&hash=item257b0948c5)

http://www.ebay.es/itm/CNC-3-Axis-Mach3-USB-Card-200KHz-Breakout-Board-Interface-Leafboy-77-/170961173400?pt=LH_DefaultDomain_0&hash=item27ce147b98 (http://www.ebay.es/itm/CNC-3-Axis-Mach3-USB-Card-200KHz-Breakout-Board-Interface-Leafboy-77-/170961173400?pt=LH_DefaultDomain_0&hash=item27ce147b98)
http://www.ebay.es/itm/Smooth-Stepper-Cnc-Breakout-Board-MACH3-CM106ss-High-Performance-/180729725776?pt=LH_DefaultDomain_0&hash=item2a1454c350 (http://www.ebay.es/itm/Smooth-Stepper-Cnc-Breakout-Board-MACH3-CM106ss-High-Performance-/180729725776?pt=LH_DefaultDomain_0&hash=item2a1454c350)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 09 Marzo 2013, 19:29
Bueno, lo voy a preguntar en el foro de soporte de Mach3 y veremos que contestan los fabricantes de la tarjeta de marras.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Marzo 2013, 19:31
ok esperamos DATOS .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 10 Marzo 2013, 20:03
La respuesta es que NO SE PUEDE por lo menos con Mach3

currently there are no PID loops inside HiCON to do closed loop control.  however if you use encoder feedback from motor or glass scale, it is used as the starting point of every move, so if there are any lost steps by the motor, they will be removed when the next move is started.  machmotion has done many HiCON installations using AC drives in this setup with excellent results.  They also use differential step/dir signals which virtually eliminates any loss of steps.

regards,
Rufi
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 10 Marzo 2013, 20:24
TRAduccion de lo que pone carlinos ya que las normas del foro obligan a que los textos puestos en otro idioma deben tener debajo su traduccion en español .brinda

Actualmente no existen lazos PID dentro HICON que hacer control de lazo cerrado. Sin embargo si se utiliza realimentación de encoder de motor o regla optica, se utiliza como punto de partida de cada movimiento, de modo que si hay algún paso perdido por el motor, que se eliminará cuando el movimiento se inicie el siguiente. machmotion ha hecho muchas instalaciones HICON utilizando variadores de CA en esta configuración con excelentes resultados. También utilizan el paso diferencial / dir señales que prácticamente elimina cualquier pérdida de pasos.











Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 10 Marzo 2013, 20:27
Báscula de cristal=regla óptica.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 10 Marzo 2013, 20:31
TOTAL que el MACH3 PATATA ...NO ME ESPERABA MENOS..JA JA VIVA LINUX CNC .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Jbecerra en 10 Marzo 2013, 20:41
Hola.
Sigo con interés el post, ya que me toca tratar de poner a punto el servomotor del amigo Borondes y no quiero quedar mal.
Espero poder realimentar el servo con la regla, por lo que he leído del linuxcnc ( que es mas agradecido...) y mi experiencia(poca).
He probado a usar el PID que tiene el linuxcnc y lo he realimentado con un potenciometro a través del arduino y funcionaba, pienso que sera cuestión de echarle un montón de horas.
SCARA con pendulo. (http://www.youtube.com/watch?v=v5D6pVRwDCg#)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 10 Marzo 2013, 20:44
QUE se ponga a temblar todo el personal con la que vamos a liar...JOSE MARIA sabes que confio en ti,asi que a estudiar .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 20 Marzo 2013, 00:14
Yo sabía que lo había leido en algún lugar: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Combining_Two_Feedback_Devices_On_One_Axis (http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Combining_Two_Feedback_Devices_On_One_Axis)


Salu2
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 20 Marzo 2013, 10:35
SR.DEDALO por favor traduzca usted al cristiano para que los pobres mortales entendamos el asunto...ja ja .brinda .ereselmejor
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 20 Marzo 2013, 10:52
Pues como el viejo chiste de Arévalo del gangoso en la ferretería...

- ¿que quería el gangoso?
- ¡Anda, pues está claro!!!  una chan-chan-con-un-cipulin-que-chon-chon
  ;D ;D

Es la página de LinuxCNC donde se habla de como configurar un lazo "doble", por ejemplo un encoder en la regla y otro en el motor y como configurar el HAL. Seguro que JBecerra habla el "gangoso" también y le suena lo que dice  ;)

Citar
This example has one high resolution linear scale on the axis table and one rotary encoder on the axis drive motor.
(Este ejemplo tiene una regla de alta resolución en el eje de la mesa y un sensor rotatorio en el eje del motor)

Salu2
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 20 Marzo 2013, 10:55
OK como mis servos tienen encoder y además tengo reglas pues ya le dare la vara a JBECERRA...JA JA gracias dédalo por las molestias con este tema TABU CNC... .bien
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 20 Marzo 2013, 12:40
Después de una conversación telefónica con JBECERRA el tema esta bien claro.en breve nos pondremos con las pruebas pertinentes y ya mostraremos resultados del asunto...ja ja .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 23 Marzo 2013, 23:48
Otro enlace de lo más interesante www.linuxcnc.org/docs/html/config/pncconf.html

Ni siquiera hace falta saber "gangoso" (lease HAL)  ;D ;D

Salu2
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 24 Marzo 2013, 10:57
DEDALO1111--- .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor LA COSA PINTA BIEN, jbecerra ya tiene en su poder el material de pruebas asi que un plazo razonable sabremos si el lazocerrado es posible...ja ja QUE SIGA el personal con EL MACH3 PATATA,nosotros seguimos con linuxcnc,es una vergüenza que un software gratuito le pegue mil vueltas a muchos de pago .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: dedalo1111 en 24 Marzo 2013, 11:26
Son filosofías diferentes, en LinuxCNC son de la opinión que "un PC es barato" y sirve perfectamente para el propósito de "centralizar" los cálculos de los PID (posición --> desviación --> actualizar motores).

Otra estratégia es delegar al hardware que se ocupe de esa gestión y en el PC solo llevar el intérprete de Gcode y la planificación de trayectoria.

Mach3 es del segundo modelo, en LinuxCNC puedes abordar ambos... y como todo, cada uno tiene sus detractores y afines (LinuxCNC tampoco es perfecto).

Salu2
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 24 Marzo 2013, 11:30
LINUX CNC no es perfecto peroooooo.... a los que saben les deja toquetear y modificar muchas cosas ,en cambio en mach3 ay que tragar con lo que ay...ja ja la caña seria un hibrido entre la parte grafica de mach3 y la funcionalidad de ambos,asi tendríamos lo mejor de cada uno,peroooooooo me temo que eso no es posible para los simples mortales... .brinda .bien
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 09 Mayo 2013, 09:18
Hola, esactamente donde teneis el problema para hacer el lazo cerrado? Yo lo tengo hecho con el puerto paralelo y va de maravilla.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 09 Mayo 2013, 09:22
Pablito  .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor podrias detallar como lo tienes echo..etccc DATOS DATOS..JA JA
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 09 Mayo 2013, 09:48
Es muy sencillo, en cuatro lineas de HAL code lo tienes.

Te paso mi archivo HAL y si no entiendes algo me lo dices.


# Generated by Pablo Enguita. Grupo Volund S.A
# http://grupovolund.com/es


# loadrt threads name1=pablo period1=40000

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES

loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0 ctrl_type=p,v,p
loadrt encoder num_chan=1
loadrt pid num_chan=1


addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf encoder.update-counters base-thread


addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf encoder.capture-position servo-thread
addf pid.0.do-pid-calcs servo-thread

# loadrt threads name1=pablo period1=100000
# net spindle-cmd <= motion.spindle-speed-out
# net din-00 => motion.digital-in-00
# net din-01 => motion.digital-in-01

net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net ystep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net ydir => parport.0.pin-04-out
net zstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net xdir => parport.0.pin-06-out
net zdir => parport.0.pin-07-out


# net din-01 <= parport.0.pin-10-in
# net din-00 <= parport.0.pin-11-in


setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 50000
setp stepgen.0.dirsetup 50000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 50000
setp stepgen.1.dirsetup 50000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
# net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
# net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable => pid.0.enable

# Parafernaria made in volund

net ypos-fb axis.1.motor-pos-fb <= encoder.0.position => pid.0.feedback
net ypos-cmd  axis.1.motor-pos-cmd => pid.0.command
net ypos-out pid.0.output => stepgen.1.velocity-cmd

# Parametros del PID

setp pid.0.Pgain 15
setp pid.0.Igain 0
setp pid.0.Dgain 0
setp pid.0.bias 0.0
setp pid.0.FF0 0.0
setp pid.0.FF1 0
setp pid.0.FF2 0
setp pid.0.deadband 0.01
setp pid.0.maxoutput 140

#Visualizar encoder en mm

setp encoder.0.position-scale 200
net faseA encoder.0.phase-A
net faseB encoder.0.phase-B
net faseA <= parport.0.pin-11-in
net faseB <= parport.0.pin-10-in


setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 50000
setp stepgen.2.dirsetup 50000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared



---------------------------------------------------------

Este sistema solo tiene hecho el lazo cerrado en el eje Y. Los demas actuan en pulso direccion sin retroalimentacion de posicion.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: carlinos en 09 Mayo 2013, 10:14
¿Como implementas eso? Necesitas un montón de entradas para los encoders de 4 ejes y eso son varios puertos paralelos. Tampoco veo claro que el Mach acepte eso, pero son suposiciones mías.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 09 Mayo 2013, 11:05
Hola,

Necesitas dos entradas para cada encoder lineal, en el puerto paralelo tienes 5 o 4 entradas digitales, no me acuerdo bien. Es decir, si para leer 4 encoders lineales necesitarias 8 entradas al puerto paralelo, con dos tienes suficiente. No tengo ni idea de como funciona match, este codigo es para linuxcnc.

Si lees el final del mensaje, he puesto q este codigo solo tiene realimentacion en un eje.

De todas formas por lo que he leido, lo mejor es olvidarse del puerto paralelo y comprar una tarjeta FPGA, por 200 pabos las tienes y van muy bien. Tambien te digo que la realimentacion de posicion el puerto paralelo la hace perfecta. El problema lo tienes en la limitacion de Mhz , en la limitacion de salidas/entrada y en la latencia propia del ordenador.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: tio_gil en 09 Mayo 2013, 11:13
Carlinos, del Mach olvídate que no puede hacerlo.
Pablito: de ahí que lo primero que te hace el linux es hacerte una medida de como va la cpu, para "reajustarse" y proceder adecudamente en su core de tiempo real.
ale, para que babeis un poco con tarjetas no PC donde es posible que un LinuxCNC pueda funcionar (no lo se).
http://www.ti.com/tool/beaglebk
http://www.silica.com/product/silica-pengwyn-board.html
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 09 Mayo 2013, 11:24
El latency test lo que hace es decirte cuanto tarda tu ordenador el realizar una operacion desde el momento en que es requerida. Este test solo es valido para cuando trabajas con el puerto paralelo. Si trabajas con una tarjeta FPGA ha de ser ella la que haga las operaciones, con lo cual te la pela lo que tarde el ordenador. El tema es que tienes que hacerte unos drivers para que linuxcnc tenga todo esto en cuenta y trabaje correctamente con la tarjeta FPGA.

Es importante que estas tarjetas nunca se conecten via USB al ordenador ya que hace un cuello de botella bestial. El USB no vale para trabajar en tiempo real. Lo bueno es que linuxcnc ya viene con varios drivers de fabricantes de tarjetas FPGA. Yo por lo que he visto la gente trabaja mayormente con MESA o con PICO. Los drivers de los dos estan incluidos en el paquete de linuxcnc.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 10 Mayo 2013, 18:37
ESTAMOS CON ELLO..JA JA Pablito un millón de gracias..en breve JBECERRA pondrá los resultados...esta depurando código..ja ja .brinda
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 10 Mayo 2013, 19:20
Hola,

Nada hombre, pa eso estamos.

La base del codigo que hace el PID es muy simple. Simplemente has de tener en cuenta que:

encoder.0.position => pid.0.feedback
axis.0.position-cmd => pid.0.command
pid.0.output => stepgen.0.velocity-cmd

Para poder hacer esto tienes que tener el stepgen en modo velocidad.

Luego un poco de pelea con el HAL scope ajustando los valores del PID (Pgain, Igain, Dgain, FF0, FF1)

Y retroalimentacion barata y cojonuda funcionando.

Un artista de la talla de JBecerra no tendra ningun problema en implementarlo.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Jbecerra en 10 Mayo 2013, 23:03
Hola.

Señor Don Pablo, agradezco mucho su ayuda, gracias al hal que publico he podido poner en funcionamiento el servomotor con re-alimentación de posición por la regla usándola como encoder.

Aunque debo poner en entredicho una de sus afirmaciones, la considerarme un artista de talla, :-[,  Si es de talla mini, quizás, jeje.

Como ya puntualizó es el segundo post, el motor lo puse en modo velocidad. Aunque la segunda linea donde hace referencia al axis.0.position-cmd realmente se estaba refiriendo al axis.0.motor-pos-cmd que si estaba bien puesto en el 1 hal.

Después de haber configurado mi hal, que por cierto es al eje Z, ( con problemas gravitacionales :) he conseguido moverlo correctamente hacia arriba, pero hacia abajo a veces se pasa de medida y a veces no llega ni a pararse. me tengo que dar una buena pelea ahora con el ajuste del PID.

Anecdoticamente comentar que me he pasado un buen rato hasta hacerlo funcionar ya que olvide añadir la función del calculo del PID !! Como todo el mundo sabe, cualquier aparato eléctrico funciona mucho mejor si se conecta a la red eléctrica, ese enchufe !!!

Antes de su ayuda, había llegado a configurar el mismo (parecido) hal, pero no había puesto ninguna función PID (borrico que es uno). Pretendía realimentar directamente con el fb del encoder la posicion del motor.

Para simular el error de posición, la pieza que une el carro del eje al cursor de la regla la he montado sobre unas pequeñas correderas que me permiten mover el cursor unos milímetros y así verificar que es la regla quien manda la posición.
 
(https://lh4.googleusercontent.com/-jDl3gvnAjRY/UY1lItrqufI/AAAAAAAADAo/wn4ursf9ufQ/w657-h791-no/IMG_4337.JPG)

(https://lh5.googleusercontent.com/-qwnCbJfGr5Q/UY1lmBeWOYI/AAAAAAAADBM/vHkxitbZ1KA/w1187-h791-no/IMG_4338.JPG)
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 11 Mayo 2013, 12:26
Buenos dias!

Jbecerra me alegro de que te haya servido de algo el post. A mi tambien me han servido mucho los tuyos en las diversas peleas que he tenido con nuestro viejo amigo "emc2" . Retroalimentacion ForoID se podria llamar jeje.

Lo siento por el error del PIN, estaba liado con otra cosa y te lo dije de cabeza.

La pelea con los valores del PID es dura, y ademas lo que va bien a unas velocidades altas no va bien en bajas. Al final es un compromiso entre velocidades.

Yo ahora estoy hablando con los de MESA a ver si les pillo un pack pq con la entrada digital del puerto paralelo no puedo operar a velocidades altas la lectura del encoder. Por lo que veo tu tienes una tarjeta FPGA no? Que modelo es?

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Jbecerra en 11 Mayo 2013, 12:48
Hola.

No es una FPGA, es una breakout board, y por ahora todo el proceso va por el puerto paralelo.

Por ahora no contemplamos una tarjeta especifica, queremos probar hasta donde se puede llegar con los puertos paralelos, es factible meterle 3 puertos, y con estos ya veremos que da de si el cacharro, aunque si hay que meterse en tarjetas, pues que remedio, habrá que hacerlo.

Y una pregunta de pasada, jeje.

Piensas que es posible establecer correctamente un PID para un eje Z, teniendo en cuenta que trabajara con un peso de aproximadamente 15 kilos.

Yo creo que es obligatorio el uso de un contrapeso para hacerlo bien, pero es solo por intuición por lo que lo digo.

Retroalimentemos ¡¡¡

Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 11 Mayo 2013, 14:58
Hola,

Es que veo FPGA´s por todas partes! jeje

Yo supongo que al final lo unico que te da la FPGA es mayor velocidad, tanto de lectura como de envio de pulsos.

No lo he intentado con un eje donde la gravedad sea paralela a la linea de movimiento, pero si te sirve de algo he visto en maquinas herramienta de calidad oscilar el eje z, osea que facil no debe de ser. Ademas estas maquinas siempre van contrapesadas. Cuando me vengan las tarjetas y pueda meter los encoders lineales en todos los ejes te digo que tal me responde a mi.

Como dato te dire que la holgura que tengo el eje donde tengo la realimentacion es bastante grande (unas 3 decimas) y simplemente cuando cambio el sentido esa inercia inicial que coge el motor antes de empezar a mover ya me hace algo mas inestable la grafica de posicion real en el HAL scope, osea que el peso debe influir y mucho.

Un consejillo sin animo de ofender, en las fotos me parece ver que el paso del husillo es bastante grande. Si le pusieras uno mas pequeño al motor le seria mas facil operar ya que su par seria mucho mas efectivo.

Un saludo!

Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Jbecerra en 11 Mayo 2013, 15:14
Hola.

 Según dices. con contrapeso y siendo buenas las hay que oscilan en el Z (jo..rrr..), nos apliquemos la lección.

El husillo es de paso 20, usamos ese porque es el que hay, en teoría puede cumplir con el diseño, y es de calidad. Ademas tiene una ventaja, disminuye el trafico de datos a igualdad de longitud, este eje esta movido por un servomotor que tare un encoder de 2048 pasos, la definición es de 0.01. Y es increíble la precisión, al menos en vació.

En el eje no hay holgura ninguna, al menos con mi comparador centesimal no puedo apreciarlo, pero debe estar por debajo de 0.005. Eso facilitara ajustar el pid.

Pregunta:

¿  como configuras el hal-scope y que datos metes en el para analizar el pid ?




Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Jbecerra en 12 Mayo 2013, 16:23
Hola.

 Ya he conseguido poner el gráfico del PID en el hal-scope.

(https://lh4.googleusercontent.com/-Ow75uwT3qnU/UY-jvlmRDSI/AAAAAAAADDo/QhQlTKj8XCQ/w1004-h791-no/Grafica+PID.jpg)

Se muestran 2 movimientos, de 5 mm a 0 mm y viceversa.
La linea blanc es la velocidad. la linea roja la posición ordenada y la azul la posición real, entre lineas verticales hay 5 seg. y entre lineas horizontales 1mm.

Ahora a ver como hacerlo para que se parezcan mas.

He pensado meterle un panel donde variar los valores del PID sin tener que editar el fichero hal.


Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: Pablito en 13 Mayo 2013, 08:49
Hola,

Al final los pasos de los husillos actuan como el indice de reduccion en un engranaje. A mayor paso de husillo tendremos mayor velocidad y menor par, como si bajaramos el indice de reduccion en un engranaje. A menor paso de husillo conseguimos menor velocidad y mayor par, como si pusieramos una reduccion mayor. Ya depende de las solicitudes mecanicas de la maquina, habria que calcular que par esta solicitando ese eje en su momento mas critico y saber si estas dentro de ese par con la reduccion que tienes. De todas maneras si te funcionaba bien sin hacer lazo cerrado, yo creo que deberia de funcionarte bien tambien con el lazo cerrado.

Con esos valores tienes ya para ver el comportamiento del PID, el pid.0.error tambien puede ser interesante.

Yo abro los valores con el HAL configuration ( watch ) y los cambio al vuelo con una terminal. He leido que si en vez de poner los valores directamente en el archivo HAL, los enlazas al .ini ( como estan enlazados el valor de servo-thread, base-thread, Maxaccel,....) Los puedes cambiar al vuelo tambien con la herramienta HAL calibration pero yo nunca lo he hecho.

Un saludo.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 14 Julio 2013, 11:48
Para que no penséis que abandonamos el lazo cerrado,despues de numerosas pruebas y como bien apuntaba DEDALO1111 la velocidad del puerto paralelo es insuficiente para tal transmisión de datos...funcionar si funciona pero tienes que limitar demasiado la velocidad del CNC lo que para nada interesa ya que si no tendríamos un CNC TORTUGA...optamos después de una dura investigacion por una tarjeta especifica para LINUX CNC...EN un par de semanas mas o menos comentaremos los resultados de las pruebas realizadas con ella y si verdaderamente HACE todo lo que su fabricante PROMETE..de momento la cosa pinta bien pero yo aun no canto victoria sin hacer unas buenas baterías de pruebas con la seriedad que caracteriza a mi TEAM RURAL..prometo manteneros informados .brinda .bien
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: abu en 14 Julio 2013, 19:57
Upssssssssss.......perdon. Habia escrito una cosa, pero ya veo que la decision pasa por olvidarse del puerto paralelo.
Disculpas pues.
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 14 Julio 2013, 21:08
LA tarjeta va también conectada al puerto paralelo...pero este ya no lleva la carga de la transmisión de los buses de datos.solo hace digamos de bus de comunicaciones pero la que se encarga del trabajo duro es la tarjeta....y de momento NO revelo mas hasta las pruebas....
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: abu en 14 Julio 2013, 23:12
 ;D ;D ;D ;D ;D

Sin animo de polemizar.......no hace falta que reveles explicitamente nada, Michel. .bien
Que.........¿A por las Mesa................ o a por las Pluto?...................(son las opciones que mas me convencen ;))
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: borondes2010 en 15 Julio 2013, 09:06
ABU,sin animo de polemizar...no revelo mas nada porque todavía no se an echo pruebas con la tarjeta y es tontería decir cosas a boleo..aun así decirte que ni es una MESA ni una PLUTO... importa poco la marca lo que importa es que haga bien el trabajo que se le encomienda ni mas ni menos..eso si material CHINO NO ES.. .bien
Título: Re:COMO CREAR LAZO CERRADO EN LINUX CNC O MACH3?
Publicado por: BBMNet en 31 Julio 2013, 19:21
Si me permiten he incluídos algunos archivos para aclarar (o espero por lo menos no confundir más) sobre algunos puntos relativos a los sistemas de lazo cerrado y los controles PID.

El archivo CNC4FMA.PDF contiene una breve (?) explicación de como funciona la retroalimentación de lazo cerrado y su relación con el control PID.

El link incluído es del manual del servoamplificador GECKO 320. Este amplificador tiene sus propios ajustes PID. Pienso que uno de estos o uno similar puede ser la solución a sus problemas siempre que utilicen servomotores CD de escobillas. Estos amplificadores reciben señales convencionales de DIRECCION y PASO así como las del encoder. Al parecer no requieren retro de tacogenerador. Esto los hace ideales para muchos controles de lazo abierto ya que los hace pensar que trabajan con controles normales de motores paso a paso quitándoles la carga del control de posición y/o velocidad.

http://www.geckodrive.com/gecko/images/cms_files/G320%20REV-7%20Manual%20Formatted.pdf

Nota: en particular hasta ahora nunca he utilizado ningún amplificador comercial ya que hago los míos propios si es que se les puede llamar servoamplificadores. Sólo son switches transistorizados controlados desde la propia PC. El archivo CNC4FMA.ZIP contiene varias fotos mostrando equipos del tipo que mayormente retroajustamos para nuestros clientes incluyendo una foto del tipo de producto que hacemos mis clientes y un servidor.

Espero esto les dé algunas ideas y si consideran que en algo puedo apoyar favor de enviarme mensaje.

Saludos.