Installation du pendant LHB04B-4 sur LinuxCNC

Piste a investiguer pour faire marcher le Pendant

A première vue, je pense que si on réussi à compiler le dossier ci dessous on devrait être bon. @mike, un avis sur la faisabilité ? Ça dépasse ma zone de confort en informatique :stuck_out_tongue_winking_eye:

Ça a l’air de dépendre d’autres librairies dont une spécifique à machinekit, donc peut être qu’il faut compiler tout machinekit. J’essaierai.

Je crains que du coup ça ne marche pas avec LinuxCNC. On doit pouvoir récupérer une version déjà compilé de MachineKit pour récupérer le/les fichiers

Quelqu’un à déjà fait le gros du boulot, à vérifier :

Avec @mike, enfin surtout lui, on a réussi a faire marcher le pendant qu’on a acheté. Il reste la partie attribution de l’ensemble des boutons à faire mais on este en très bonne voie :star_struck:

2 « J'aime »

bravo a tous les 2

On continué de regarder ça avec @francois. On a réussi à faire marcher l’affichage des coordonnées X, Y et Z sur le pendant. Puis on a réussi à faire marcher le bouton Spindle on/off.

Les déplacements sur X, Y et Z fonctionnaient déjà quand on avait essayé avec @Thomas. Sauf que j’ai testé sur la machine allumée et ça fonctionne, mais pour X le pendant ne contrôle qu’un seul des 2 moteurs X. La pin qui vient du pendant c’est whb.axis.0.jog-counts et il est envoyé sur axis.0.jog-counts et d’après la doc ce signal est bien celui du joint (donc moteur) 0 et non celui de l’axe 0 :

Pin names starting with axis are actually joint values, but the pins and parameters are still called axis.N.

Et le déplacement ne fonctionne plus quand on passe LinuxCNC en mode « axis » au lieu de « joint » (avec la touche $).

Il faudrait sans doute trouver la pin ou le signal dans LinuxCNC qui déplace l’axe. Peut être les halui.jog.N.* de halui, mais il n’y a pas de jog-count.

Quel boulot ! :clap:

Gloups. CA c est du boulot de specialiste. Finalement Le chinois, c etait pas si dur. :grin:

D’après la doc

The Axis GUI has provisions for jogging in joint mode (Free) and in world mode (Teleop). Use the « $ » hotkey, or the View menu to switch between them.
Joint-mode (aka Free mode) supports continuous and incremental jogging. World-mode (aka Teleop mode) only supports continuous jogging.

C’est peut être pour ça qu’il n’y a pas de jog-count dans le halui.

Est ce que halui.jog.N.analog ne pourrait pas être utilisé à la place ? En conjonction avec knob2float ?

Suite à notre discussion avec @mike hier sur le pendant de la CN, il semble nécessaire de créer un nouveau composant HAL pour gérer le jog en mode X-Y-Z.

Hier je proposais de le faire en python mais je pense qu’il y a plus simple. En utilisant le HAL Component Generator. Il suffit de faire un copier/coller de la fonction compute_velocity disponible ici pour créer ce nouveau composant HAL.

Juste un lien pour ceux, qui comme moi ouvrent des grands yeux sur les lignes qui précèdent :sweat_smile:
Dico Linux CNC

Merci @francois je penser avoir changer de pays

merci francois.
J’ai un peu de mal avec tous ces parametres, mais dans le document on peut trouver " . Choisir une base_period_nsec trop basse peut entrainer l’arrivée du message “Unexpected real time delay” ou “délai temps réel inattendu”, le blocage de la machine ou son redémarrage spontané.". Hors ce message apparait souvent sur la console linux_cnc.
la valeur actuelle :
dans fraiseuse.ini :
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000

dans fraiseuse.hal
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES

ne faudrait il pas essayer de tuner ce parametre pour eviter les messages qui sont desagreables?

J’ai fait quelques essais en contrôlant halui.jog.0.increment-plus, et malheureusement ça ne contrôle qu’un seul moteur sur X, comme l’autre pin.

En fait avec HAL on doit pouvoir contrôler les 2 moteurs en même temps assez facilement. Il suffirait de connecter la pin whb.axis.0.jog-counts sur axis.0.jog-counts et sur le jog-count du 2e moteur X. Il y aura peut être juste à inverser le 2e.

Mais j’avais cru comprendre qu’en mode ‹ XYZ › dans Linuxcnc ça ne marchait plus ?

Je tenterai ma chance Mercredi.

J’ai porté le code dans un comp HAL mais je n’arrive pas à le compiler pour une sombre erreur que je ne comprends pas. J’ai lâché l’affaire pour ce soir.

@mike, je pense qu’en s’y penchant ensemble on doit pouvoir faire quelque chose.

Ça fonctionne ! :tada:

En connectant whb.axis.0.jog-counts à la fois sur axis.0.jog-counts et axis.3.jog-counts ça contrôle bien les 2 moteurs en X.

Si on veut régler le déplacement par pas il faut être en mode Step. On peut faire 1 ou 0.1mm. Sur Z on peut aussi faire 0.01 mm.

En mode Continuous le sélecteur de droite ne change rien. Ça change un pourcentage MPG (Manual Pulse Generator) sur l’affichage du pendant, mais ça n’a pas d’effet dans LinuxCNC. En regardant le driver effectivement il fait des trucs bizarres en mode continu, et ça n’est connecté à rien. Je peux modifier le driver pour qu’il change une valeur, mais je ne sais pas à quoi le connecter.

1 « J'aime »

:clap:

Ils disent dans les notes de mise à jour de LinuxCNC que dans la version 2.8 on peut utiliser axis.x.jog-counts en mode teleop (XYZ).

On semble être en version « AXIS 2.7.14 ». Il faudrait peut être envisager de passer en 2.8 ? Ils ont apparemment bien amélioré le support pour les axes avec plusieurs moteurs.