Autor Tema: poner potenciometro para feed-override en linuxcnc  (Leído 1735 veces)

angelnu

  • Visitante
Hola a todos.

Tengo un router CNC con Linuxcnc y estoy intentando poner un cuadro de mandos, tengo una tarjeta mesa 5i25 con una 7i76
para el control de los motores  tiene 4 entradas analógicas y quiero poner un potenciómetro para el avance manual (Jog) otro para el avance rápido (rapid-override) y otro para el avance en automático (feed-override) he conseguido funcionar variar el avance manual con el potenciómetro con este código en el archivo hal.


Código: [Seleccionar]

loadrt mult2 names=mult2-rapid,mult2-feed,mult2-jog
addf mult2-rapid              servo-thread
addf mult2-feed               servo-thread 
addf mult2-jog                servo-thread

# Añadir las escalas para multiplicar

#escala para movimientos rapidos valores entre 0 y 1. Como tenemos una tension maxima de 20 V 1/20V = 0.05
setp mult2-rapid.in0 0.05

#escala para movimientos de avance automático (FEED) valores entre 0 y 2. Como tenemos una tension maxima de 20 V 2/20V = 0.1
setp mult2-feed.in0 0.1

#escala para movimientos manuales (JOG) automático valores entre 0 y 3500. Como tenemos una tension maxima de 20 V 3500 milimetros minuto /20V = 175.0
setp mult2-jog.in0 175.0

# external input signals

# --entrada analogica 0--
net val-jog  mult2-jog.in1 <= hm2_5i25.0.7i76.0.0.analogin0
net jog-speed <= mult2-jog.out




Pero para el rapid-override y feed-override  no hay pines de entrada en Halui como el pin jog-sped para poder poner el potenciómetro.
Y si que debe haber algo porque en axis si que hay barras deslizantes para Rapid Override y Max velocity, alguna idea.

Un saludo.

aletorno

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #1 en: 28 Julio 2017, 21:15 »
Mírate esto:
https://forum.linuxcnc.org/24-hal-components/32192-halui-max-speed

Yo me haría un componente para gestionar todo eso parar todo en caso de que las señales analógicas fallen o no estén disponibles.

angelnu

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #2 en: 28 Julio 2017, 22:25 »
Aletorno gracias por responder.

El enlace que me has mandado parece que halui.max-speed se configura con un encoder y no es eso lo que yo quiero hacer.
Yo tengo un potenciómetro analógico y en la tarjeta me lee valores de voltaje del potenciómetro yo quiero con esos valores que me lee la tarjeta modificar la velocidad de avances rápidos y la velocidad de avance en automático. Cosa que no se si se podrá hacer.

En cuanto a lo de hacerme un componente para gestionar todo eso, creo que todavía estoy muy verde para eso, todavía me cuesta mucho comprender el hal.

aletorno

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #3 en: 28 Julio 2017, 22:52 »
La señal analógica será un Float seguramente. Tendrás que escalarlo y convertirlo.
Usa conv_float_s32


angelnu

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #4 en: 29 Julio 2017, 11:41 »
Si la señal analogica es un float, pero a que pin la puedo conectar, por lo que veo halui.feed-override esta pensado para un encoder no para un potenciómetro.

    halui.feed-override.count-enable (bit, in) - must be true for counts to work.
    halui.feed-override.counts (s32, in) - counts from an encoder to change FO
    halui.feed-override.decrease (bit, in) - pin for decreasing the FO (-=scale)
    halui.feed-override.increase (bit, in) - pin for increasing the FO (+=scale)
    halui.feed-override.scale (float, in) - pin for setting the scale for increase and decrease
    halui.feed-override.value (float, out) - current FO value

no veo ningun pin como en el jog
halui.jog-speed (float, in) - pin for setting jog speed for minus/plus jogging

Creo que sera mas fácil con un encoder.

aletorno

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #5 en: 29 Julio 2017, 13:00 »
Al counts. Pero tienes que cargar el componente que te he dicho para cambiar de Float a s32.
Tendrás que escalarlo adecuadamente "Scale"

angelnu

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #6 en: 29 Julio 2017, 19:06 »
No había pensado en eso, creo que puede funcionar, mañana probare y ya te cuento.

Gracias.

angelnu

  • Visitante
Re:poner potenciometro para feed-override en linuxcnc
« Respuesta #7 en: 30 Julio 2017, 10:25 »
Gracias aletorno, ha funcionado perfectamente al final quedo así:

Código: [Seleccionar]
loadrt mux8 names=scala_jog
loadrt mux4 names=eje_select
loadrt mult2 names=mult2-rapid,mult2-feed,mult2-jog
loadrt conv_float_s32 names=conv-rapid,conv-feed

addf scala_jog servo-thread
addf eje_select servo-thread
addf mult2-rapid servo-thread
addf mult2-feed servo-thread 
addf mult2-jog servo-thread
addf conv-rapid servo-thread
addf conv-feed servo-thread

# Añadir las escalas para multiplicar

#escala para movimientos rapidos valores entre 0 y 100. Como tenemos una tension maxima de 20 V 100/20V = 5.00
setp mult2-rapid.in0 5.00
setp  halui.rapid-override.scale 0.01

#escala para movimientos de avance automatico (FEED) valores entre 0 y 200. Como tenemos una tension maxima de 20 V 200/20V = 10
setp mult2-feed.in0 10
setp halui.feed-override.scale 0.01

#escala para movimientos manuales (JOG) automatico valores entre 0 y 3500. Como tenemos una tension maxima de 20 V 3500/20V = 175.0
setp mult2-jog.in0 175.0



# external input signals


# --entrada analogica 0--
#---multiplico por 175 la entrada  analogin0 luego se asigna a jog-speed

net val-jog  mult2-jog.in1 <= hm2_5i25.0.7i76.0.0.analogin0
net jog-speed <= mult2-jog.out


# --entrada analogica 1--
#---multiplico por 100 la entrada  analogin1 luego convierto el valor de la multiplicacion a entero s32 y se asigna a halui.rapid-override.counts

net val-rapid   <= mult2-rapid.in1 <= hm2_5i25.0.7i76.0.0.analogin1
net val-rapid-conv <= conv-rapid.in <= mult2-rapid.out
net val-rapid-convs32 <= conv-rapid.out
net val-rapid-convs32 => halui.rapid-override.counts

# --entrada analogica 2--
#---multiplico por 200 la entrada  analogin2 luego convierto el valor de la multiplicacion a entero s32 y se asigna a halui.feed-override.counts

net val-feed  <= mult2-feed.in1 <= hm2_5i25.0.7i76.0.0.analogin2
net val-feed-conv <= conv-feed.in <= mult2-feed.out
net val-feed-convs32 <= conv-feed.out
net val-feed-convs32 => halui.feed-override.counts


Parece que funciona bastante bien, lo repito GRACIAS por tu ayuda aletorno.
Saludos Angel