Autor Tema: panel de mandos para linuxcnc  (Leído 7380 veces)

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
panel de mandos para linuxcnc
« en: 27 Mayo 2015, 20:05 »
he comprado una tarjeta para preparar un panel de mandos para la cnc...martzis usb hid interface...

tiene un monton de entradas digitales,,,entradas para 4 encoders y otras tantas analogicas..

de momento ya se que voy a ir poniendo....dos joysticks para mover la maquina en movimientos rapidos....un encoder para movimientos finos....un selector para los pasos del encoder. selector de eje para el encoder...boton start, pause , run from here, stop..refrigerante ,encender spindle , autozero de herramienta...centro de agujero....hacer home de maquina, 4 botones para tocar con sonda la pieza en los 4 lados...ir a posicion 0 ,  dos potis para velocidad de trabajo y spindle ...seta de parada de emergencia,

y aqui viene mi duda....que mas podria poner? o pensais que asi ya esta completito..........









borondes2010

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #1 en: 27 Mayo 2015, 20:13 »
Suele ser de buena educacion poner un enlace para si alguien mas se lo quiere hacer o simplemente para saber del producto en cuestion ;)

http://www.ebay.es/itm/New-Martzis-HID-Interface-USB-Card-USB-Board-PC-Via-BUS-For-Linux-EMC-Mach-3-/161170762161?pt=LH_DefaultDomain_0&hash=item258686a9b1
« última modificación: 27 Mayo 2015, 20:24 por MICHEL 100% »

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #2 en: 27 Mayo 2015, 20:44 »
Si....no lo he puesto porque en el curro tengo el ebay capau.....mia disculpass

borondes2010

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #3 en: 27 Mayo 2015, 20:48 »
OK..es que si no con la cantidad de cacharros que ay ni se sabe de que se trata..por otro lado tu estas seguro de que esa tarjeta funciona en linux cnc..lo digo por que debe ser tela configurar toda esa cantidad de cosas que tu quieres poner y encima la tarjeta es usb..la verdad es que en esto estoy pez..asi que si la tarjeta funciona y quieres explicar el cableado y la configuracion..pues cojonudo y si no..pues te ponemos en la lista negra..ja ja .brinda

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #4 en: 27 Mayo 2015, 23:36 »
pues el enlace que has puesto es la misma que he comprado.....


pero en este otro enlace


http://www.ebay.es/itm/Martzis-USB-HID-Interface-MUHI-Card-Board-For-Linux-EMC-and-Mach-3-PC-Via-BUS-/150941627764


viene para descargar el manual .....


http://www.cnc-tekniikka.com/CNC-forum1/index.php?topic=391.0


y este foro en polaco es del creador de la tarjeta....


en principio debe estar diseñada para emc2.....aunque tb existe un plugin para mach3






la info que aparece es la siguiente


 Inputs:
 
  •   64 digital inputs (LS TTL)
  •   4 analog inputs (0-5V)
  •   4 encoder inputs (1x or 2x)
  All 64 digital 5V logic inputs are pulled up via LS TTL internal resistors. A simple switch can be connected directly between input and groud.
 4 analog inputs can measure a voltage between 0-5V.  A potentiometer can be connected directly to these inputs. The center wire is connected to the input pin and two
other wires to ground and 5V connectors.
 
  •   4 encoder inputs can be configured to work in 1X or 2X mode. 




 Encoder inputs can also be used as pulse counters. In 1X mode A channel counts either rising or falling edges if B channel is connected permanetly to 5V or ground. In 2X
mode card counts both rising and falling edges if the signal is connected to both A and B channel
 Jumpers:
 Card has 5 jumper connectors which configures card functionalities during card startup:
 JP1 = Disables analog channels. Minimizes USB traffic if analog inputs are not needed.
 JP2 = 1X mode for encoder channels 1 and 2.
 JP3 = 1X mode for encoder channel 3.
 JP4 = 1X mode for encoder channel 4.
 JP5 = Invert digital inputs.
 Linux EMC
 Features:
 
  •   64 digital inputs (input.[0-1].btn_[1-32]
  •   analog inputs are shows as absolute value between 1-254 (input.0.abs_[1-4])
  •   enkooder inputs increase or decrease input value (input.1.rel[1-4])
  Configuration in Ubuntu 10.04 & Python 2.6
 Create /etc/udev/rules.d/40-permissions.rules file and add this line to it:
 

SUBSYSTEM==”input”, ATTRS{idVendor}==”04d8″, SYSFS{idProduct}==”0666″, MODE:=”0660″, GROUP=”plugdev”

 

(do not copy paste this line, ” characters shown in this page  are not compatible with rules file)

You can also download file here: http://martsola.com/python2.6/40-permissions.rules

 For correct naming of the inputs linux_event.py (linux_event.py) requires minor changes. Modified version is copied to folder/usr/lib/python2.6/dist-packages/. You can
obtain modified version from here: http://martsola.com/python2.6/linux_event.py

 This HAL  command enables the card:

 

loadusr -W hal_input Martzis:0 Martzis:1
 Configuration in Ubuntu 8.04 & Python 2.5
 /etc/udev/rules.d/40-permissions.rules needs the following line:
 

SUBSYSTEM==”input”, GROUP=”plugdev”, MODE=”0660″ (do not copy paste this line, ” characters shown in this page  are not compatible with rules file)

 For correct naming of the inputs linux_event.py (http://git.linuxcnc.org/gitweb?p=emc2.git;a=blob_plain;f=lib/python/linux_event.py;hb=HEAD) requires minor
changes.
Modified version is copied to folder /usr/lib/python2.5/site-packages/. You can obtain modified version from here:http://martsola.com/python2.5/linux_event.py
 This HAL  command enables the card:

 

loadusr -W hal_input Martzis:0 Martzis:1
 Adjustments
 Absolute axes have a dead in the middle zone by default. It shall be disabled with following commands:
setp input.0.abs-1-flat

 setp input.0.abs-2-flat



 setp input.0.abs-3-flat


 setp input.0.abs-4-flat



 It is possible to add bigger hysteresis for the analog axes. Normally this is not needed
 

setp input.0.abs-1-fuzz 5

 

setp input.0.abs-2-fuzz 5

setp input.0.abs-3-fuzz 5
setp input.0.abs-4-fuzz 5
 MPG configuration example
 Link to Finnish CNC site: http://www.cnc-tekniikka.com/CNC-forum1/index.php?topic=391.msg3794#msg3794


borondes2010

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #5 en: 28 Mayo 2015, 08:13 »
elpit .ereselmejor .ereselmejor la tarjeta pinta tremenda..en mi caso lo malo es andar toqueteando dentro de linux..pero bueno lo importante a priori es saber que existe y que es para linux cnc..luego algun alma caritativa ya le encontrara la manera de que podamos usarla..ja ja .brinda

delichon

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #6 en: 28 Mayo 2015, 08:24 »
elpit yo utilizo esta para el mach y se puede utilizar también para el Linux, es un simulador de teclado, gestiona tres ejes , encoders, entradas y salidas analógicas y digitales, sensores, sensores térmicos etc.. una maravilla.
La utilizan mucho la gente para hacer los simuladores de vuelo, aparte tiene un programa PoBloks que es como un plc, muy completo.
La tienes por USB y Ethernet
USB http://www.poscope.com/PoKeys56U
Ethernet http://www.poscope.com/PoKeys57E

Aparte tiene otras variaciones y puede llevar hasta 8 ejes http://www.poscope.com/PoKeys57CNC pero la base es la pequeña tarjeta.

Saludos

borondes2010

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #7 en: 28 Mayo 2015, 08:26 »
Ya sabia yo que me sonaba esa tarjeta...maestro .palmas lo que yo no sabia era que sirviese para linux..soys unos cracks .brinda

delichon

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #8 en: 28 Mayo 2015, 09:16 »
Funciona hasta con la Rapsberry PI, se lo traga todo, pero en Linux es mas complicado la programación, por lo menos para mi que no tengo ni pajotera idea de Linux.
Saludos

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #9 en: 28 Mayo 2015, 09:21 »
Ya me imagino que voy a sudar para ponerla en marcha......jejeje.....pero ahi esta el gustillo...jejej

delichon

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #10 en: 28 Mayo 2015, 09:27 »
Yo utilizo teclados matriz 4x4 y 4x3, ahorraras en cables.
Pues dale ya y haber si aprendemos que yo estoy muy pez
Saludos

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #11 en: 28 Mayo 2015, 14:44 »
aqui he encontrado el texto de un fichero hal configurado con la tarjetija en cuestion

# Mpg box
# Load Muhi
# Talli:
loadusr -W hal_input usb-0000:00:1d.1-1/input0 usb-0000:00:1d.1-1/input1
# Lappari, Usb oik.alhaalla:
# loadusr -W hal_input usb-0000:00:1d.0-2/input0 usb-0000:00:1d.0-2/input1

# Remove muhi default analog deadzone
setp input.0.abs-1-flat 0
setp input.0.abs-2-flat 0
setp input.0.abs-3-flat 0
setp input.0.abs-4-flat 0

# load mux 8.0 mpg wheel scale selector and set scale values
# Load mux 8.1 feedrate selector and set feedrate values
loadrt mux8 count=2
setp mux8.0.in0 0.000
setp mux8.0.in1 0.0001
setp mux8.0.in2 0.001
setp mux8.0.in4 0.01
addf mux8.0 servo-thread

setp mux8.1.in0 0
setp mux8.1.in1 50
setp mux8.1.in2 100
setp mux8.1.in3 200
setp mux8.1.in4 300
setp mux8.1.in5 400
setp mux8.1.in6 500
setp mux8.1.in7 3000
addf mux8.1 servo-thread

# Load Ilowpass filter for smooth mpg wheel action and set default values
loadrt ilowpass
setp ilowpass.0.scale 10
setp ilowpass.0.gain 0.01
addf ilowpass.0 servo-thread

# Set each axis to stop moving when mpg wheel stops turning
setp axis.0.jog-vel-mode 1
setp axis.1.jog-vel-mode 1
setp axis.2.jog-vel-mode 1

# Link feed buttons
net feedxplus input.0.btn-01 => halui.jog.0.plus
net feedxminus input.0.btn-02 => halui.jog.0.minus
net feedyplus input.0.btn-03 => halui.jog.1.plus
net feedyminus input.0.btn-04 => halui.jog.1.minus
net feedzplus input.0.btn-05 => halui.jog.2.plus
net feedzminus input.0.btn-06 => halui.jog.2.minus

# Link mpg wheel axis selector
net selmpgx input.0.btn-07 => axis.0.jog-enable
net selmpgy input.0.btn-08 => axis.1.jog-enable
net selmpgz input.0.btn-09 => axis.2.jog-enable
net selmpg4 input.0.btn-10 => axis.3.jog-enable

# Link mpg scale selector knob to mux8.0
# Same knob to feedrate
net selmpgscale1 input.0.btn-11 => mux8.0.sel0
net selmpgscale2 input.0.btn-12 =>  mux8.0.sel1
net selmpgscale3 input.0.btn-13 =>  mux8.0.sel2

# Link mux8.0 output to set mpg (jogging) scales 
net mpgscale mux8.0.out => axis.0.jog-scale
net mpgscale mux8.0.out => axis.1.jog-scale
net mpgscale mux8.0.out => axis.2.jog-scale
net mpgscale mux8.0.out => axis.3.jog-scale

# Link feedrate knob (circuit board) to mux8.1
# Same knob to mpgscale
net selfeedrate1 input.0.btn-14 => mux8.1.sel0
net selfeedrate2 input.0.btn-15 => mux8.1.sel1
net selfeedrate3 input.0.btn-16 => mux8.1.sel2

# Link feedrate to halui.jog-speed
net feedrate mux8.1.out halui.jog-speed

# Link mpg wheel
# Ilowpass filter for smooth action
net mpgrawcounts input.1.rel-1-counts => ilowpass.0.in
net mpgcounts ilowpass.0.out => axis.0.jog-counts
net mpgcounts ilowpass.0.out => axis.1.jog-counts
net mpgcounts ilowpass.0.out => axis.2.jog-counts

# Set feedrate potentiometer scale feed and connect to halui
setp halui.feed-override.scale 0.006
net feedoverride input.0.abs-1-counts => halui.feed-override.counts

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #12 en: 31 Mayo 2015, 18:58 »
bueno.....tras un par de dias de peleas....y eso que me he tenido que instalar el linuxcnc en una maquina virtual y asi poder estudiar el tema en las horas muertas en el curro.....

tengo resultados satisfactorios.....es decir....que funciona la tarjetita.....



empezamos con esto,,,,un encoder,,,dos potis....y 3 pulsadores....



adjunto un rar con los archivos necesarios....por si alguien se anima.....

empezamos por el archivo "  40-permissions.rules "

este hay que copiarlo en la carpeta /etc/udev/rules.d/

dentro de este archivo va el siguiente texto

SUBSYSTEM==”input”, ATTRS{idVendor}==”04d8″, SYSFS{idProduct}==”0666″, MODE:=”0660″, GROUP=”plugdev”







una vez copiado hay de darle los permisos correspondientes

abrimos terminal root y escribimos

chmod 660 /etc/udev/rules.d/40-permissions.rules


con esto ya deberia reconocer la tarjeta.....pero no es asi......luego lo vamos viendo....

tenemos al archivo linux_event.py que esta incluido en el rar tb.....

este lo tenemos que copiar a la carpeta  /usr/lib/pymodules/python2.7/




y tenemos que preparar el custom.hal

loadusr -W hal_input Martzis:0 Martzis:1



# Set feedrate potentiometer scale feed and connect to halui
setp halui.feed-override.scale 0.013
net feedoverride input.0.abs-3-counts => halui.feed-override.counts

setp halui.max-velocity.scale 0.05
net maxvelocity input.0.abs-4-counts => halui.max-velocity.counts




loadrt mux4 count=1

addf mux4.0 servo-thread

setp mux4.0.in0 1
setp mux4.0.in1 0.1
setp mux4.0.in2 0.01

net scale1 mux4.0.sel0 <= input.0.btn-01
net scale2 mux4.0.sel1 <= input.0.btn-02

net pend-scale axis.0.jog-scale <= mux4.0.out
net pend-scale axis.1.jog-scale
net pend-scale axis.2.jog-scale

net mpg-x axis.0.jog-enable <= input.0.btn-07
net mpg-y axis.1.jog-enable <= input.0.btn-08
net mpg-z axis.2.jog-enable <= input.0.btn-09

net pend-counts axis.0.jog-counts <= input.1.rel-1-counts
net pend-counts axis.1.jog-counts
net pend-counts axis.2.jog-counts



y supuestamente deberia funcionar.....pues no

y aqui viene el problema que al final he encontrado....guiandome por la poca documentacion que he encontrado sobre esta tarjeta.....la unica refencia esta aqui...

http://www.cnc-tekniikka.com/CNC-forum1/index.php?topic=391.0

en la ultima pagina...que es lo mas o menos actualsi hablan del problema de que de fallo con las versiones nuevas de linuxcnc...hay que tener en cuenta que el diseño de esta tarjeta es de 2011...

cuando se conecta la trajeta o se enciende el pc con el linuxcnc se crean unos permisos para los drivers en la carpeta /dev/input

 

si os fijais los archivos event6 y event7 son accesibles....tienen de permisos 666....los demas tienen 000....

el problema es que de inicio uno de los dos archivos se queda con permisos 000....

no siempre son el 6 y 7 ...tras veces son el 4 y 5 , pero siempre uno se queda sin permisos...




viendo aqui las propiedades de los archivos se puede comprovar hacia que event estan direccionados....

siendo el caso de que sea el even7 el que se queda sin permisos le aplicamos un :

chmod 666 /dev/input/event7

entonces si que nos arranca correctamente el linux....

un poti controla el feedrate.....otro la velocidad maxima......

cada pulsador correspònde a cada eje ...pulsandolo y girando el encoder se va moviendo el eje al ritmo del encoder....

y a partir de aqui ya es cuestion de las necesidades de botones que tenga cada uno.....

entonces con todo esto explicado,,,,si el señor MICHEL 100% ya se queda satisfecho con la exposicion.....vuelvo a formular mi pregunta


os parecen suficiontes botones los que tengo pensado poner o creeis que algun otro puede venir bien....pueden ser funciones directas o llamadas a subrutinas.....

borondes2010

  • Visitante
Re:panel de mandos para linuxcnc
« Respuesta #13 en: 31 Mayo 2015, 19:13 »
Estoy 100% satisfecho ojala otros tomesen ejemplo claro esta que los que saben y no colaboran no pasa nada..cuando luego preguntan algo pues se les ignora y asunto solucionado ;)..muchas gracias .brinda y respecto a tu pregunta te voy a comentar una cosa que quizas te parezca poco interesante pero que traen la malloria de controles cnc que yo e visto y es un indicador digital o analogico de la potencia que esta usando el cabezal por un lado y otro que algunos traen que es del esfuerzo del eje que seleccionemos..eso lo traen para que asi vayas viendo la caña que le estas metiendo y si estas llegando al limite..en los cnc de verdad tienes un margen..si te excedes durante x tienpo el cnc te da un error y se para..no se si eso lo podras o no implementar pero nunca esta de mas tener informacion de lo que esta pasando en nuestra maquina

Desconectado elpit

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 220
  • Ubicación: Lezo
Re:panel de mandos para linuxcnc
« Respuesta #14 en: 31 Mayo 2015, 19:20 »
Eso ya lo tenia pensado.......pero esa salida la puedes sacar del variador....

es configurar una de las salidas analogicas que suelen tener los variadores para que te de el consumo de corriete en %
la salida suele de 4 a 20mA....se conecta a un dial y listo.

De hecho en la pantalla del variador tengo por defecto el consumo del motor.....

y para los ejes conmotores de pasos no veo como hacerlo de manera efectiva.....si es un servo posiblemente tenga la misma opcion de salida analogica como un variador.....

ahora solo falta que alguien que sepa de verdad de linux no explique como solucionar el problema de los permisos de los archivos event.....porque lo que no es plan es tener que andar dando permisos cada vez que enciendes el pc...

« última modificación: 31 Mayo 2015, 19:36 por elpit »