Bonjour à tous,
J'ai un ptit soucis, je pense savoir d’où ça vient mais je voulais me renseigné si il n'y'avait pas moyen de trouver une solution software avant de passer au hardware…
Je m'explique, voici ces 2 filetages réaliser exactement avec le même programme. Et on voit qu'il y a un souci. A vu de nez, le pas n'est pas dutout le même on dirait environ d'un facteur 2.
La ligne de prog pour un filetage de M10 que j'utilise
G76 P1.5 Z-6 I-0.05 J0.08 K0.85 Q29.5 L2 E0.0
(a noter que j'ai pas bien compris le paramètre I..)
Je pense savoir d’où ça vient, quand j'ai acheté et monté mon codeur d'indexation et je n'avais pas tout lu en profondeur avant… C'est un codeur phase A, B, Z à 100 impulsions par tour (je n'utilise pas B). Pour une question de place j'ai pris un rapport de poulie ½ donc mon codeur donne 200 impulsion par tour. Jusque là rien de grave, mais pour l'impulsion de départ (Z) ben j'en ai 2 par tours! Et je pense que c'est ça qui pose ce problème. Je ne vois pas comment corriger ça en software, car pour le système il ne peut pas savoir quels impulsion d'indexation choisir…. Bref à part revoir mon rapport de courroie et passer à du 1/1 je vois pas d'autre solution et vous ?
ma config:
############# Spindle Encoder #############
# add scale and lowpass, these will be used in custom_postgui.hal
loadrt scale count=1
loadrt lowpass count=1
# add the encoder to HAL and attach it to threads.
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
# set the HAL encoder to 200 pulses per revolution.
setp encoder.0.position-scale 200
# set the HAL encoder to non-quadrature simple counting using A only.
setp encoder.0.counter-mode true
#setp encoder.0.counter-mode 1 - alternative line
# connect the HAL encoder outputs to LinuxCNC.
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
# connect the HAL encoder inputs to the real encoder.
net spindle-phase-a encoder.0.phase-A <= parport.0.pin-11-in
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z <= parport.0.pin-12-in
############# End Spindle Encoder #############