• Usinages logo

    Rejoignez notre communauté d'amateurs et de professionnels – C'EST GRATUIT !

    L'inscription ne prend que 30 secondes. En tant que membre, vous pourrez :

    • Obtenir des conseils d'experts sur vos défis d'usinage, vos anciennes machines.
    • Rester dans la conversation grâce aux notifications instantanées.
    • Des réductions exclusives de la part de nos partenaires.
    Continuer avec l'Email

Récupérer l’état des boutons Mach3 (Reset, Cycle Start…)

  • Auteur de la discussion Auteur de la discussion esloch
  • Date de début Date de début

esloch

Compagnon
Bonjsoir

Je suis en train de concevoir une manette externe pour piloter ma CNC sous Mach3 (voir ce sujet) .. l’idée est de simuler des touches clavier pour envoyer des commandes via carte arduino .. mais j’aimerais également que ma manette récupère l’état réel des boutons Mach3 ..
par exemple :
  • savoir si Reset est actif ou non dès l’alimentation de la manette,
  • récupérer l’état du Cycle Start,
  • ...
est ce que c'est possible ??

Merci
 
Salut,

Tu veux parler d'un point de vue du basic script des macros ?

par exemple pour savoir si tu es en E-Stop, c'est: IsEstop

IsEStop
Function IsEStop() As Integer

This function returns 1 if Mach3 is currently in E-Stop mode.

Arguments:
None

Return Value:

0 indicates Mach3 is currently not in E-Stop mode
1 indicates Mach3 is currently in E-Stop mode

Example:
Dim FluxCapacitorControl As Integer
FluxCapacitorControl = OUTPUT3
‘ Are we in E-Stop?
If IsEStop() Then
‘ Yes, so turn off the flux capacitor
DeactivateOutput(FluxCapacitorControl)
Else
‘ No, so turn on the flux capacitor
ActivateOutput(FluxCapacitorControl)
End If

++
David
 
Tu as la manière très simple de récupérer le CI d'un clavier PC et de l'intégrer dans ta manette, c'est ce que j'ai fait, si ça t'intéresse je peux te dire comment. :wink:
 
A priori, je me suis mal exprimé .. Je vais essayer de mieux expliquer mon problème.

Je suis en train de concevoir une manette et j'essaie de faire quelque chose de joli — mes DIY sont avant tout du plaisir ..

Prenons le bouton reset, par exemple. J'aimerais lui ajouter une LED qui clignote lorsque le bouton est activé. Pour que la LED fonctionne correctement, elle doit connaître l'état réel dans Mach3 : activé ou pas. Quand j'allume ma manette, la LED doit avoir cette information.

Est-ce que cette information est récupérable depuis Mach3 ?
 
Est-ce que cette information est récupérable depuis Mach3 ?

Aucune idée de comment envoyer une info vers l'USB, mais quand tu es en AU (le reset) il y a bien une info qui est envoyée à la carte d'axe, c'est peut être à ce niveau qu'il faudrait la récupérer. Sur un pilotage en port //, c'est facile, il suffit de récupérer l'état de la pin assignée à l'AU, mais sur une carte en USB ou ETH, je ne sais pas ...

++
David
 
Oui tu peux faire cela "plutôt facilement", mais en utilisant ModBus (liaison RS-485) via un adaptateur USB->RS-485 qui sera relié à ton Arduino via les 2 fils du bus.
Paramétrage des sorties via un Brain et non une macro qui ne tourne pas aussi rapidement.
Dans le Brain tu récupères l'état de tes boutons que tu transmet a ton Arduino via Modbus, ultra fiable et 100% personnalisable.
 
bonne nouvelle .. c'est possible via ModBus ..

mauvaise nouvelle .. j'ai rien compris a la démarche a suivre ..

affaire a suivre ..
 
Bon .. j’ai commencé à faire des tests de communication avec Mach3 .. j’ai d’abord essayé la solution des macros Mach3 .. j’ai créé un fichier M1000.m1s contenant la commande "DoOEMButton(1021)" .. lorsque je teste cela dans le MDI :
- Si le Reset est désactivé (il ne clignote pas dans Mach3) et que j’écris M1000 dans le MDI .. le Reset s’active
- Si le Reset est activé (il clignote dans Mach3) et que j’écris M1000 dans le MDI .. rien ne se passe

Est-ce qu’il est impossible de contrôler le bouton Reset dans les deux sens (activation et désactivation) ?
 
Est-ce qu’il est impossible de contrôler le bouton Reset dans les deux sens (activation et désactivation) ?
C'est tout à fait possible, j'utilise un mini AU sur panneau de contrôle qui gère l'AU logiciel de Mach3 dans les 2 sens.
Enfoncé : AU activé
Relaché : AU désactivé + Reset fait.
Mais il ne faut pas utiliser une macro pour cela, un Brain est tout indiqué ou le signal de pompe de charge (ChargePump) (certaines carte de commande le gère nativement ou pilote un relais integré avec ce signal)
 
C'est tout à fait possible, j'utilise un mini AU sur panneau de contrôle qui gère l'AU logiciel de Mach3 dans les 2 sens.
Enfoncé : AU activé
Relaché : AU désactivé + Reset fait.
Mais il ne faut pas utiliser une macro pour cela, un Brain est tout indiqué ou le signal de pompe de charge (ChargePump) (certaines carte de commande le gère nativement ou pilote un relais integré avec ce signal)
plus de détails svp
Merci
 
je cherche a récupérer cette information de mach3 .. la fin d'un homing .. est ce que c'est possible ?
 
Vu que le homing est fait via un script, je suppose qu'il suffit d'activer une sortie en fin de script qui signifiera que c'est terminé.

++
David
 
Très simple il suffit de récupérer l'info de l'état de la LED correspondante.
X ref LED : 807
Y ref LED : 808
Z ref LED : 809
A ref LED : 810

Toutes ces infos sont indiquées dans les documents Mach3 (VB Constats for Signal Names / OEM DROs / OEM Buttons / OEM LEDs/ UserDROs & UserLEDs...
Aller je te joins l'archive du wiki Mach3 (indispensable pour editer macros, screensets, boutons, etc...)
 

Fichiers joints

bonjour

Aucune idée de comment envoyer une info vers l'USB,
je suis use les neurones la dessus, conclusion IMPOSSIBLE pour cela j'ai du employer un esp32 et j'ai pu récupérer les infos voulues grâce à la mise en place du wifi et du protocole UDP
si tu veux récupérer des infos pour les envoyer à "l’extérieur" du pc (sur une console, un afficheur, ), c'est la solution, mais si tu veux récupérer des infos et les traiter à "l'intérieur" de mach3 (led, dro, etc..) ta la solution macro ou brain ou macro+brain
l'avantage du brain il est indépendant et peux transmettre tes infos à la macro plus rapidement
il y a aussi lLe Plugin "Xbox360" et aussi une Alternative : JoyToKey (Logiciel tiers)
 
Dernière édition:
je suis use les neurones la dessus, conclusion IMPOSSIBLE pour cela j'ai du employer un esp32 et j'ai pu récupérer les infos voulues grâce à la mise en place du wifi et du protocole UDP
moi j'ai réussi .. avec un petit logiciel .. AutoHotKey .. marche impec .. enfin pour les deux infos que j'ai envoyer (état reset, état cycle)
 
bonjour eslock

je connaissais pas se logiciel, j'ai jeté un oeil il pas simple d'utilisation, mais intéressant. Il faut si plonger
JoyToKey est plus facile d’emploi on peux paramétrer une plaitore de fonctions mais cela reste filaire (USB)
si tu veux rester dans le filaire le plus simple est de passer par une liaison RJ45, la voie est royale (UCCNC+PC) la tu envoie et reçois se que tu veux
si tu veux pas de fil, aprés il y a le bluetooh + wifi sur ESP32 WROOVER-E N8R8 oubli les bases avec 4Mo de flash
 
Personnellement j'ai pas eu de problème avec ce logiciel .. il y a sûrement mieux .. et pour la programmation .. avec l'aide de l'IA et quelques corrections .. ça fonctionne sans souci ..

A noter que mon idée n'est pas directe .. elle est même un peu tordue ..

Le principe consiste à utiliser des scripts VB dans Mach3 pour enregistrer régulièrement les états dans un fichier .txt .. Ensuite AutoHotkey lit ces informations et les envoie périodiquement vers le port COM sur lequel la carte est connectée ..

Ce n'est sûrement pas très rapide .. ni très élégant .. mais ça résout le problème ..
 
Dernière édition:
pour enregistrer régulièrement des états dans un fichier txt, utilise la macro dispo : macropump.m1s
 

Sujets similaires

T
Réponses
7
Affichages
1 438
totoche974
T
Frans332
Réponses
1
Affichages
34 762
Frans332
Frans332
5axes
Réponses
8
Affichages
3 490
5axes
5axes
Retour
Haut