Macro référencement ne fonctionne qu'à moitié

  • Auteur de la discussion MCrevot
  • Date de début
M

MCrevot

Compagnon
Bonjour,

j'ai installé 4 switch de homing sur la machine que je suis en train d'achever :
/https://www.usinages.com/threads/cnc-en-profiles-alu.82791/

Ils sont positionnés en début d'axe X et A (esclave de X), Y et Z ; je souhaite m'en servir pour le homing, ainsi que pour positionner mes limites soft.

Les E/S sont correctement renseignées (X, Y, Z et A), ainsi que les limites soft (X, Y et Z), min 0 et max à la longueur des axes moins 5 mm.

J'ai également modifié la macro "Référencement" de façon à ce que X et A soient référencés en même temps.
La voici :

REFCOMBINATION(4) ' ref Z
REFCOMBINATION(9) ' ref X et A
REFCOMBINATION(2) ' ref Y

Sleep(100)
While IsMoving()
Sleep(100)
Wend

Code("G0 G53 X250 Y200 Z80")

A la fin, je rajoute un ordre de déplacement vers le milieu de la table.
Tout fonctionne correctement, homing et limites, mais en revanche après le homing la machine refuse de se déplacer en (250,200,80) et reste en (0,0,0) - je suis bien dans les limites soft ; si je retire les Sleep et la boucle d'attente , la machine commence par aller en (250, 200, 80) avant de réaliser le homing ... Help !

Michel
nb : je suis en mode émulation
 
M

MCrevot

Compagnon
Pas le moindre avis parmis les très nombreux adeptes de Mach3 sur le forum ?
Michel
 
D

dh42

Compagnon
salut,

Je viens d'essayer ton code (en simulation aussi) ... et pour moi ça marche parfaitement (mach3 EN V3.042.036) .... mystère.

++
David
 
M

MCrevot

Compagnon
Merci David,

Je suis en R3.043.066 ...

Vraiment curieux, je pense que le homing et l'exe du code sont sur 2 threads differents et qu'il y a une mauvaise communication entre les 2 ???

J'ai vu un topic sur le forum Mach3 intitulé "homing macro and ismoving", il faut que je le relise mais j'ai bien l'impression qu'il y a une espèce d'incompatibilité entre les 2 ; si tu as l'occasion de le lire, j'aimerai bien ton avis.

Bonsoir, , Michel
 
D

dh42

Compagnon
En fait oui, le VB et le Gcode s’exécutent effectivement sur un tread différent, ce qui oblige à jongler avec les while ismoving/wend quand on mélange les 2 (ce qui est pratiquement inévitable).

une solution consiste (il me semble) à remplacer les REFCOMBINATION par des DoButton, les boutons à actionner n'étant autres que ceux qui permettent de référencer axe par axe (écran diag) ... par contre pas sur que ça marche avec un moteur esclave. (edit: peut être en cochant "home slave with master axis" dans la config générale et donc en référençant X seul, sans le A)

si tu veux tester avec une version plus ancienne, tu peux les trouver ici

ftp://machsupport.com/Mach3/

copie/colle l'adresse dans ton navigateur, le lien ne marche pas ici

++
David
 
Dernière édition:
D

dh42

Compagnon
Re

Je pense avoir trouvé un truc qui marche.

dans ton bouton référencement, met:

REFCOMBINATION(4) ' ref Z
REFCOMBINATION(9) ' ref X et A
REFCOMBINATION(2) ' ref Y

Code("M900")


puis crée une macro m900.m1s, que tu sauvera dans le dossier \macro\non de ta config et qui contiendra.

Code("G0 G53 X250 Y200 Z80")

la macro M900 ne sera pas exécutée tant que les refcombination ne seront pas terminés.

testé, ça marche (mais bon, l'autre marche aussi pour moi !!)

++
David
 
M

MCrevot

Compagnon
Salut David, merçi pour ton aide,

- La macro : inopérant chez moi (la macro elle même fonctionne correctement), pourtant astucieux ! ça m'énerve, je ne comprends pas :mad:;

- Les DoButton : je les ai abandonnés au profit des RefCombination justement pour pouvoir référencer X et A en même temps, pour éventuellement ré-équerrer le portique ... mais bon, je re-essaie :
DoButton( 24 )
DoButton( 22 )
'DoButton( 25 )
DoButton( 23 )

'REFCOMBINATION(4)
'REFCOMBINATION(9)
'REFCOMBINATION(2)

While IsMoving()
Wend

Code("G00 G53 X20 Y15 Z5")

'Code("M900")

J'ai bien décoché "Ne pas référencer les axes asservis" (j'étais bien déjà dans cette conf) ; je lance le référencement :
- Z se référence, je voie sur la visu les Z s'incrémenter, je simule le switch home Z, stop incrément et
- X se référence, je voie sur la visu les X s'incrémenter, je simule le switch home X, stop incrément et
- Je ne vois pas les A s'incrémenter, je simule le switch home A, et
- Y se référence, je voie sur la visu les Y s'incrémenter, je simule le switch home Y, stop incrément et
- miracle, X, Y et Z vont en 20, 15, 5.

Donc ça a l'air de fonctionner, le seul doute que j'ai est :
- l'axe A s'est-il bien déplacé ? (si je teste en réel et qu'il ne se déplace pas, je flingue l'équerrage du portique) ;
- et quitte à abuser, question corrélée : pourquoi la visu A (axe asservi à X) ne bouge jamais, alors que physiquement le moteur tourne ?

A+, Michel
 
D

dh42

Compagnon
Salut,

Pour ce qui est de la visu A qui ne bouge pas, c'est pareil pour moi, mais je ne saurais dire si c'est normal ou pas.

Ça me semble logique, car quand tu a un axe actionné par 2 moteurs, ça paraitrais bizarre d'avoir 2 visu sur l'interface pour un même axe, à mon avis l'affichage du A est simplement désactivé sur l'interface quand il est en esclave ... mais le seul moyen de le savoir c'est d'essayer en vrai .. au pire si tu ne veux pas flinguer l'équerrage, desserre tes coupleurs moteur/vis ou ce qui en fait office, et tu verra bien si les 2 moteurs tournent et réagissent quand tu clique le/les contacts (il y en a un sur X et A ou juste sur X ?)

++
David
 
M

MCrevot

Compagnon
Bon, je teste sur la machine ; résultats des courses :
- Avec les DoButton : d'une part le G0 s'exécute avant le référencement, et d'autre part le A ne bouge pas pendant que le X se référence, bref tout faux.
- Avec les RefCombination, le G0 s'effectue avant le référencement, mais en revanche, une fois le G0 supprimé, le A bouge bien en même temps que le X.

Et pour répondre à ta question, j'ai bien un switch home sur le X et un autre sur le A, ce que je recherche, c'est, en alignant bien les 2 switchs, à obtenir un ré-équerrage à chaque homing - pour ça, j'ai doté l'un des 2 switchs d'un réglage micrométrique :
[div=none]
428112IMAG1162.jpg
[/div]

Dans la bataille, j'ai bien sur réussi à flinguer l'équerrage, heureusement j'ai pensé la machine de telle sorte que le réglage soit simple et rapide, erreur max de 5/100 mm sur 500 mm.

Je vais donc rester pour l'instant sur les RefCombination, et peut-être rajouter un bouton pour le G0 - je ne sais pas faire mais ça ne doit pas être compliqué ... et puis je vais éplucher le forum Mach3, ce sujet m'intrigue vraiment !

Un grand merci pour ton aide.
Michel
 
D

dh42

Compagnon
Je ne comprends pas pourquoi ça ne marche pas avec la macro !! et pourquoi ça marche chez moi... tu a essayé une autre version de Mach3 ?

edit: c'est la VF ou la VE que tu utilise, je vais tester sur mon portable avec la même que toi.

pour ajouter un bouton VB pour envoyer les axes ou tu veux.


bien sur, au lieu du code VB de la vidéo, il suffira d'y mettre Code("G00 G53 X20 Y15 Z5") à la place.

++
David
 
D

dh42

Compagnon
Re

Test effectués avec la méthode de l'appel de M900 avec la V R3.043.066 FR (comme ici: https://www.usinages.com/threads/macro-referencement-ne-fonctionne-qua-moitie.88261/#post-974701 ) ... et ça ne marche pas pour moi non plus ; il semble que ce soit un pb de cette version ; j'ai simplement téléchargé la version précédente R3.043.062 et l'ai installé par dessus l'autre (ce qui te permet de garder les écrans de mach3 Fr et toute ta config, même si les menu passent en anglais) ... et la ça marche sans problème !!

donc V R3.043.066 à éviter !

ftp://machsupport.com/Mach3/Mach3Version3.043.062.exe

copie colle dans ton navigateur pour y accéder

Edit: ça me rappel que j'avais aussi eu un pb de macro qui ne marchait plus en essayant la dernière version pour je ne sais plus quelle raison, je n'avais pas cherché plus loin et avait remis une version que je considère comme "fiable" vu qu'elle tourne depuis 5 ans sans histoire ..

++
David
 
Dernière édition:
D

dh42

Compagnon
Re

et dernier test avec la 066 anglaise, ça ne marche pas non plus, c'est donc un pb de la dernière version elle même sans rapport avec le fait que ce soit une VE ou VF.

++
David
 
M

MCrevot

Compagnon
Hello David,

Excellent, ok avec la v062 ; j'ai d'abord essayé en by-passant la re-instal du driver du port //, mais là l'émulation des home switch ne fonctionnait plus (bizarre ça, je ne vois pas trop le rapport ...) ; j'ai re-installé en incluant le driver, et là, enfin ça marche :-D.

J'en ai profité pour charger et installer MachScreen, ton petit tuto est parfait pour démarrer, amusant, je vais approfondir !

Encore 1000 fois merçi pour ton aide.
Michel
 
D

dh42

Compagnon
Salut,

Lors des mises à jours, il arrive aussi qu'ils modifient le driver du port //, pas seulement le soft.

++
David
 

Sujets similaires

PL50
Réponses
11
Affichages
1 019
D
PL50
Réponses
25
Affichages
1 282
D
DakotaSport07
Réponses
49
Affichages
3 238
DakotaSport07
DakotaSport07
S
Réponses
10
Affichages
2 031
D
MacPepR
Réponses
8
Affichages
5 202
ygaillard
Y
G
Réponses
4
Affichages
2 293
dh42
D
Haut