LinuxCNC

Fichiers de configuration grande CN (MAJ 16/11/2022)

config_fraiseuse_2022_11_16_.zip (155,5 Ko)

Driver pendant (MAJ 16/11/2022)

trop gros (146Meg)

Optimisation du temps de latence

Il est important d’avoir un temps de latence le plus faible possible pour pouvoir générer le plus d’impulsion possible. Pour faire cela, il existe un peu de documentation sur le sujet
TroubleShooting
The Isolcpus Boot Parameter And GRUB2

Ajout d’une carte PCIE-Port Parallèle avec chip WCH382

Avec un peu de chance, la carte est directement vue par l’os

Si la carte est vue par defaut, on le voit en lancant la commande
sudo dmesg | grep parport

[ 4.643287] parport0: PC-style at 0x1200, irq 16 [PCSPP,TRISTATE]

dans ce cas 0x1200 est l’@ de la carte parallele a utiliser dans le « fraiseuse.hal »

loadrt hal_parport cfg=« 0x1200 out »

malheureusement, souvent par défaut la carte est reconnue comme une carte port série. Pour remédier à celà il faut rajouter les lignes suivante dans /etc/rc.local :

rmmod lp
rmmod parport_pc
insmod /lib/modules/3.4-9-rtai-686-pae/kernel/drivers/parport/parport_pc.ko io=0x2108,0x1200
insmod /lib/modules/3.4-9-rtai-686-pae/kernel/drivers/char/lp.ko

Les valeurs 0x2108 et 0x1200 sont à modifier en fonction de la configuration de l’ordinateur. Leur identification est décrite dans ce post de aakash.ece (4e en partant du bas de la page)

Si la carte est vue par defaut, on le voit en lancant la commande
sudo dmesg | grep parport

[ 4.643287] parport0: PC-style at 0x1200, irq 16 [PCSPP,TRISTATE]

dans ce cas 0x1200 est l’@ de la carte parallele a utiliser dans le « fraiseuse.hal »

loadrt hal_parport cfg=« 0x1200 out »

Procédure de réglage en Z de l’outil

procédure_acolab_de_réglage_en_Z_de_l_outil.pdf (547,3 Ko)

Comment tester un capteur (arret d’urgence, palpeur, …)

comment_verifier_l_etat_d_un_capteur_linuxcnc.pdf (950,1 Ko)

Amélioration du test de latence (précisions)

modification_pour_test_de_latence_et_port_parallele.pdf (521,2 Ko)

Comment rajouter un bouton qui lance un fichier gcode dans linuxcnc

  1. Création et lien du bouton dans l’interface axis de Linuxcnc (celui que l’on a à l’Acolab)

S’il n’existe pas déjà de fichier xml lancé par le fichier « .ini (fraiseuse.ini dans notre cas) », il faut en créer un dans le répertoire config.

exemple: palpage.xml

    <pyvcp>
        <!-- palpage button -->
        <button>
           <halpin>"rth-button"</halpin>
           <text>"palpage"</text>
        </button>
    </pyvcp>

Il faut ensuite référencer ce fichier xml avec le mot clef PYVCP dans la section DISPLAY du fichier .ini

[DISPLAY]
DISPLAY = axis
PYVCP = palpage.xml

Si un fichier xml existe déjà comme c’est notre cas avec l’interface de la broche, il faut rajouter le même fichier xml à la fin avant la balise fermante </pyvcp>

Exemple : custompanel.xml

    </labelframe>          <== balise fermante de l'interface de la broche

        <!-- palpage button -->
        <button>
           <halpin>"rth-button"</halpin>
           <text>"palpage"</text>
        </button>
    </pyvcp>    <== Cette balise a été ouverte au début de l'interface de la broche

Le fichier .xml étant déjà référencé dans le .ini, il n’y a rien de plus à faire pour lier ce fichier.

[DISPLAY]
DISPLAY = axis
PYVCP = custompanel.xml
  1. Lien entre ce bouton et hal (hardware abstraction layer)

Il faut, soit créer le fichier « custom_postgui.hal » dans le répertoire config ou rajouter la ligne suivante dans le fichier si il existe déjà

  net rth halui.mdi-command-00 <= pyvcp.rth-button

Puis référencer par le mot clef « POSTGUI_HALFILE » ce fichier hal dans le fichier .ini dans la section HAL s’il ne l’est pas déjà.

Exemple dans fraiseuse.ini:

[HAL]
HALUI = halui
HALFILE = test.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
  1. Commande lancée par le boutton

La commande lancée par le bouton est décrite dans la section [HALUI] sous le mot clef "MDI_COMMAND ". C’est une ligne de gcode (1 et 1 seule). Pour le palpage, cette ligne de gcode sera donc un appel à un sous-programme.

Exemple : appel du sous-programme 123.ngc

[HALUI]
MDI_COMMAND = o123 call

La documentation un peu éparse sur le sujet décrit deux mécanismes de recherche du fichier :

  • dans le répertoire pointé par la variable SUBROUTINE_PATH
  • dans le répertoire $HOME/linuxcnc/nc_files

Je n’ai été en mesure de faire marcher ni l’une ni l’autre de ces 2 méthodes. Le message d’erreur généré dans linux cnc m’a dirigé vers le fichier /usr/share/axis/images/axis.ngc. Je ne sais pas trop quel est l’usage de ce fichier mais en rajoutant la routine à la fin de ce fichier, ça marche. Cependant si quelqu’un arrive à faire marcher les méthodes documentées, je suis preneur.

  1. Syntaxe du sous programme 123.ngc

le sous-programme a la structure suivante :

o123 sub
commandes gcode pour le palpage
o123 endsub

à rajouter dans le fichier axis.ngc avant le M2 (enfin c’est comme ça que j’ai fait et ça semble marcher).

...
...
G2 X[118.69393*#<scale>] Y[5.37699*#<scale>] I[5.36449*#<scale>] J[4.87005*#<scale>]
G2 X[118.27432*#<scale>] Y[8.23889*#<scale>] I[12.16539*#<scale>] J[3.2454*#<scale>]
G0 Z3.0
M5
o123 sub
G01X100F300            <== a remplacer par le gcode de palpage
G01Y100F300            <== a remplacer par le gcode de palpage
o123 endsub
M2

Un message a été fusionné à un sujet existant : CNC Grande Dimension