Résolu Jointure 0 en erreur de limite sur tour avec moteur pas à pas

ladolDéjeune
Nouveau
30 Novembre 2017
25
  • Auteur de la discussion
  • #1
Bonjour à tous,

J'explique mon cas:
Nous sommes en présence d'un petit tour (EMCO Compact 5 CNC) numérisé et piloté via LinuxCNC.
Jusqu'à maintenant, j'utilisais un PC plutôt hors d'age, le ventre à l'air et aux piètres performances. Cette config ayant pour effet d'occasionner des lags peu confortable lors des déplacements manuels au clavier, et un rafraîchissement d'écran vraiment lent. En revanche, l’exécution des programmes en mode automatique se déroule bien.

Pour les raisons évoquées ci-dessus, j'ai entrepris de remplacer ledit vieux PC au profit d'un modèle plus contemporain sur lequel le test de latence de LinuxCNC laissait réver à un comportement bien meilleur. En effet, le confort à l'utilisation est incomparable MAIS pour une raison que je n'explique pas, le bazard se met en sécurité de manière imprévisible et inopinée sur fond du message d'erreur suivant:

Jointure 0 en erreur sur limite
Or:
- la prise d'origine se déroule parfaitement à chaque fois que j'en demande une
- l'info des contacts est bien prise en compte lorsque lorsqu'un axe vient en déclencher un,
- j'ai tenté de mettre l'entrée 12 (celle qui est utilisée pour le capteur de PO/FDC de l'axe X) à la masse une fois la prise d'origine accomplie

et rien n'y fait, je continue a avoir des "jointure 0 en erreur sur limite" sournoises qui apparaissent n'importe quand.

au niveau d:u matériel:
- moteurs pas à pas (pas de servo donc j'aurai tendance à laisser de coté les problèmes de poursuite)
- un et un seul capteur NF par axe (positionée en X+ et Z-)
- le capteur de l'axe X est sur l'entrée 12
- Le capteur de l'axe Y est sur l'entrée 13

En désespoir de cause, je me tourne vers la communauté compétente du forum pour essayer de trouver un remède avant de tout balancer par la fenêtre (-; Je viens de passer 2 jours a essayer de solutionner ça sans succès. Heureusement le week end est la et va peut etre me permettre de prendre un peu de recul...

Merci par avance à toutes les âmes charitables qui apporteront de l'eau à mon moulin !
 
Samifred
Compagnon
27 Septembre 2009
1 069
Bonjour,

Eh bien moi j'y connais pas grand chose... :???: c'est juste pour t'encourager et te dire de ne pas jeter le tout par la fenêtre... tu pourrais vraiment le regretter.... qu'une solution il y a, qu'il faut être patient et laisser passer la nuit qui porte conseil.

Un vieux qui est passé aussi par là...

Cdt.
 
ladolDéjeune
Nouveau
30 Novembre 2017
25
  • Auteur de la discussion
  • #5
Merci @Samifred pour ces sages paroles:)
@Earthwalker , je vérifie cela des demain et si cela ne donne rien, je tente d'implémenter le fameux debonce de @gaston48 au sujet duquel j'ai lu quelques bricoles entre temps et qui semble effectivement assez prometteur. Ca ne veut pas dire pour autant que c'est joué parceque je ne me suis pas encore plongé dans le HAL et je trouve ça plutôt indigeste de prime abord...
Je vous tiens au courant!
 
ladolDéjeune
Nouveau
30 Novembre 2017
25
  • Auteur de la discussion
  • #6
Bonjour,
rajoute un " debounce " à ton signal
sur linuxcnc.org, tu fais une recherche avec " joint 0 limit error debounce "
Donc, je suis en train de tenter une implémentation du composent debounce sur le signal de fin de course de mon axe X.
Pas d'bol, LinuxCNC ne démarre plus et m'envoie le compte rendu que je mets en PJ.
Je n'ai pas ajouté grand chose dans mon fihier HAL mais je ne trouve pas ou ça coince.
@gaston48 ou un autre aurait-il la gentillesse de jeter un coup d'oeil au fichiers joints?
(j'ai ajouté les .txt apres les hal pour pouvoir les joindre au message)
Merci par avance
 
Fichiers joints
gaston48
Compagnon
26 Février 2008
9 010
59000
Bonjour :-D

http://linuxcnc.org/docs/2.7/html/man/man9/debounce.9.html

loadrt cfg=3 (manque 3 pour 3 filtres de même caractéristique)

Pour 3 filtres il faut charger 3 thread:

addf debounce.0 servo-thread
addf debounce.1 servo-thread
addf debounce.2 servo-thread

Quand tu crées une connexion "net" il faut donner un nom au signal qui va transiter dans cette connexion
en plus des bornes que tu veux connecter avec le fil matérialisé par la flèche
Ensuite cette variable que tu as créé, tu peux la brancher tant que tu veux, toujours avec "net", suivant tes besoins,
dans le reste du fichier HAL

exemple: A, A1 etc c'est toi qui choisit ...

net A input.0.sw0 => debounce.0.0.in
net A1 debounce.0.0.out => whateverPin1

net B input.0.sw1 => debounce.0.1.in
net B1 debounce.0.1.out => whateverPin2

net C input.0.sw2 => debounce.0.2.in
net C1 debounce.0.2.out => whateverPin3

Ensuite rien ne t’empêche de faire ceci:
net A1 => entrée_voyant
net A1 => relais_machin

en respectant impérativement cette loi:
un signal out A1 peut se brancher sur plusieurs entrées différentes
mais une entrée ne peut recevoir qu'un seul signal

ça c'est pas possible:
net A1 => entrée_voyant
net B1 => entrée_voyant

https://forum.linuxcnc.org/24-hal-components/32319-debounce
 
Dernière édition:
gaston48
Compagnon
26 Février 2008
9 010
59000
Bonjour,
Tu peux appliquer ce filtre à tous les signaux logique que tu veux.
cela permet de s'affranchir de brève impulsion parasite isolée qui traîne sur les lignes, même de masse
l’inconvénient est que tu rajoutes un léger retard dans la prise ne compte de l’état logique.
Retard correspondant au temps de base d'un servo-thread habituellement 1000 000 ns que multiplie
le paramètre delay
 
Dernière édition:
ladolDéjeune
Nouveau
30 Novembre 2017
25
Erreur trouvée! Problème de syntaxe sur la commande
Code:
net
Je n'avais pas saisi qu'il falait mettre le nom du signal directement après le "net"
Résultat, non seulement linux CNC démarre à nouveau sans erreur mais le top du top c'est que je n'ai plus de problème de jointure !!!!
Cet épisode me donne presque envie de me plonger un peu plus profondément dans le HAL parce que je commence a me rendre compte du potentiel de ce truc là!
Merci @gaston48 !
 
La dernière réponse à ce sujet date de plus de 6 mois
Haut