Démarrage programme après consigne vitesse broche

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

moufy55

Modérateur
Bonsoir à vous, amis forumistes ! :-D
Ma question sera simple, il suffit de se mettre en tête que "l'outil est un petit tour CN avec commande de broche indépendante de mach3 mais, l'information de vitesse est transmise par un capteur optique voir même un signal de départ !

Je souhaiterais, mettre mon programme gcode en run "informatiquement" et que celui-ci attente une vitesse de broche avant de commencer son travail. (histoire d'éviter de planter l'outil bêtement dans la matière...)

Avez-vous une formule magique pour cela ? :)

(récapitulatif idiot en pas a pas:)
-run mach3, aucune action de se dernier
-je démarre ma broche, 500tours..
-le programme démarre et fait son travail
-fini, il s'arrête et la broche tourne toujours
 
F

fredymilou

Ouvrier
Une simple pause dans le Gcode , après démarrage de la broche par M3 ou M4 ?

Ci je ne me trompe pas c'est G4 P xxx
 
M

moufy55

Modérateur
Tu veux dire une pause temporise ?
Ça ne ferais pas un démarrage "automatique"...

ÉDIT: Explique lentement, je débute :p
 
A

Anonymous

Guest
Salut,

Ton gcode n'est pas assez "malin" pour démarrer tout seul quand la vitesse sera suffisante ! C'est Mach3 qu'il faudra configurer avec une entrée qui lancera le prog une fois la bonne vitesse atteinte...

Kris
 
F

fredymilou

Ouvrier
Quand tu lance ton programme il va démarrer ta broche via la commande Gcode M3 (à condition quelle soit piloté par le PC) et attendra un temps x milliseconde avec la commande G04 Px.

Le tous est de mesure le temps max que ta broche met a atteindre sa vitesse.

Exemple 1 seconde :

( Made using CamBam )
( Pièce1 4/21/2012 4:18:55 PM )
( T0 : 3.0 )
G21 G90 G64 G40
G0 Z5.0
( T0 : 3.0 )
T0 M6
( Poche1 )
G17
M3 S12000
G4 P1000
G0 X182.5 Y128.0
............
 
F

fredymilou

Ouvrier
Je viens de relire ta description , tu pilotes manuellement ta broche ?

Dans ce cas Kris a raison.
 
M

moufy55

Modérateur
Oui Fred, elle est pilotée manuellement comme indique et je cherche donc une "astuce" pour donner l'illusion d'un fonctionnement semi-auto.

Si j'ai bien compris Kris, il faudrait créer une variable fictive binaire avec une consigne de changement d'état en fonction de la vitesse et l'inclure par défaut dans le gcode ?

... C'est tentant mais comment on fait ça :oops:
Une vitesse différente de 0 suffirait, pas besoin qu'il démarre à une vitesse precise
 
F

fredymilou

Ouvrier
Ta broche est elle piloter par un variateur ?

Je corrige une erreur G4 est en seconde et si la case dans les paramètre généraux est cocher, ca passe en mS.
 
M

moufy55

Modérateur
Je me suis peut être mal exprimé mais considère ma broche comme totalement indépendante:
Un bouton marche/arret indépendant et gestion des vitesses par courroies.

Pour lire la vitesse j'ai activé la sortie moteur "spindle" avec des step à 0 puisque fictive et magie:
La vitesse s'affiche dans STrue mais c'est juste une visu ou une base pour les avances.

Doit bien y avoir un moyen... ?
 
A

Anonymous

Guest
Rien ne ce fera dans le G-code. A part une pause de "x" secondes... Mais c'est mieux de configurer Mach3 pour faire cette pause, sinon, à chaque oublie de la pause dans le programme, tu feras un planté d'outil...

Ensuite, par exemple, tu peux configurer ton variateur de broche pour qu'il déclenche une de ses sorties à "x" tour/min. Mach3 récupère l'info via une entrée, et "enlève la pause" ou carrément "lance le prog".

Tout est possible.
Kris
 
M

moufy55

Modérateur
Merci de ta réponse Kris mais j'ai bien peur qu'on soit tous deux partis sur des chemins différents...
Regarde bien mon post de départ, je n'ai pas de variateur ni rien...
Juste une entrée correspondant à la vitesse moteur extérieur et indépendante.

Si j'ai bien compris ton raisonnement, il serait possible d'ordonner à Mach de façon impérative, d'attendre la consigne pour démarrer mais comment ? Plugin à faire de toute pièce ?

Pourrais-tu m'expliquer comment faire ? Ça ne me paraît pas très clair... Merci a toi :wink:
 
M

moufy55

Modérateur
Je ne pourrais sans doutes ne pas avoir de réponses... :(
 
V

valentin

Compagnon
bonjour
pourquoi pas mettre un relais pour la mise en route
de ta broche au lieu du bouton
moi mis sur ouput# 1 la mise en route du relais
ou alors dans ton gcode tu met sa

(Mettre en route le moteur)
M0(arret absolu cycle start pour redemarer)
M3S200
ect...


+++
 
M

moufy55

Modérateur
Je ne souhaite pas modifier la partie electrique dans la mesure ou c'est une machine d'origine. Autant la laisser telle que :wink:

J'ai deja fait des essais avec un M3 et une valeur positive, pensant que mach verifiait l'info de vitesse avant de lancer la suite mais non... il s'en contre fiche !
C'est bien dommage, ca aurait était tout simple :(
 
V

valentin

Compagnon
bonjour
donc si je comprend bien tu voudrais que Mach3
te signale de mettre en route ta broche en manuelle
essai cette macro M33.m1s joint
tu la met dans Macro\machmill ou le nom de ton profile
et tu insere dans ton gcode
exemple
T1M6
M3S200
M33
ect..... Voir la pièce jointe M33.zip
 
F

fredymilou

Ouvrier
Non, en fait il a un retour vitesse qui luis donne la vitesse réel de la broche dans Mach3 , ce qu'il aimerait c'est que le programme ne démarre pas temps que la broche n'ai pas atteinte sa vitesse de consigne.

Il faudrait une équation dans la macros M3 , du genre compare valeur consigne et valeur réel ci pas égale recommence ci égale fin.
Tu lance ton programme , il va virtuellement démarrer ta broche mais va attendre que la vitesse soit atteint.
Le Gcode ne passe pas a la ligne suivante temps que les macros ne sont pas fini.
 
V

valentin

Compagnon
bonjour
dans ce cas il faut tester la vitesse reel
avec la fonction getoemdro(9)
essai cette macro est appelle la M333.m1s par exemple
et appelle la dans ton programme par
T1M6
S500M3
M333 S500
ect...
tant que vitesse reel na pas 500 la boucle se fait
a condition avoir un codeur de tour
voici le code

pas essaye a tester pas de codeur a ma fraiseuse

+++
 
F

fredymilou

Ouvrier
Plutot ça :

Do
If GetOEMDRO(39) +10 >= getRPM() Then Exit Do
Loop

A mètre dans M3 à la suite .

J'ai mis un petit offset de 10 tours pour compenser les erreur de mesure.

GetOEMDro(9) c'est laxe C.

Liste DRO
 
V

valentin

Compagnon
bonjour
ok erreur de frappe cest bien 39 spingle
mais sa marcheras que si il y a un codeur
pour vraiment savoir la vitesse de rotation

+++
 
M

moufy55

Modérateur
Oula !! Merci messieurs, de débattre pendant mon absence... :)

fredymilou à parfaitement compris ce que je cherche à faire.

Il me faut donc éditer le fichier macro M3 pour lui ajouter:
Do
If GetOEMDRO(39) +10 >= getRPM() Then Exit Do
Loop

Ensuite, il suffit dans chaque code d'appeler la fonction S550M3
Pour une vitesse de 550 par exemple, et cela fonctionne, c'est parfait !

C'est super chouette, merci :)
 
Haut