CNC - machine à commande numérique
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

CNC - machine à commande numérique



  1. #1
    mmm999

    Cool CNC - machine à commande numérique


    ------

    Bonjour
    je suis entrain de fabriquer une machine à usinage numérique, elle comporte 3 axes X,Y et Z. chacun est controllé par un moteur pas à pas.
    au niveau du programme de microprocesseur de commande, je suis entrain d'implémenter le traducteur GCODE. bref, en recevant la commande depuis m'ordinateur, le processeur doit traduire le code en movement des moteurs X,Y et Z. essentiellement je travail sur la commande G01. la forme de cette commande est comme suit :
    G01XnnnYnnnZnnnFnnn
    G01 : movement linéaire
    Xnnn : cordonnée X à l'arrivé (mm)
    Ynnn : cordonnée Y à l'arrivé (mm)
    Znnn : cordonnée Z à l'arrivé (mm)
    Fnnn : vitesse en cm/ minute

    si en envoi par exemple
    G01X100Y000Z000F001
    le moteur de l'axe X tourne a vitesse de 1 cm / minute, moteur Y et Z sont en etat d'arret
    G01X000Y100Z000F001
    le moteur de l'axe Y tourne a vitesse de 1 cm / minute, moteur X et Z sont en etat d'arret
    G01X100Y100Z000F001
    le moteur de l'axe X et Y tournent a vitesse de 1 cm / minute. ici on forme une ligne droite diagonale et la vitesse de movement resultante est de 1 cm/ minute
    mon probleme lorsque X et Y sont quelconque. je cherche à trouver les equations de vitesse pour X et Y afin de donner une vitesse resultante demande et un deplacement X et Y resultant comme demandé.
    donc j'ai commencé à crée de equation pour les deux axes qui depend du temps :
    X(t)= a.t
    Y(t)= b.t
    a et b sont les vitesse de translations de chaque moteurs.
    à la fin de course on a :
    X(t1) = a.t1 = X1
    Y(t1) = b.t1 = Y1
    X(t1) / Y(t1) = a/b = X1/Y1 (1)
    on a aussi l'equation du movement en vectoriel :
    F(t) = X(t) + Y(t)
    = a.t.i + b.t.j
    = (a.i+b.j).t
    vitesse c'est la dérivé
    V= a.i+b.j
    donc norm :
    |V| = sqrt(a²+b²) (2)

    donc de (1) et (2) on a V,X1 et Y1 sont connus
    je peux trouver a et b
    est ce que moin raisonnement est correcte?
    Merci

    -----

  2. #2
    gg0
    Animateur Mathématiques

    Re : CNC - machine à commande numérique

    Bonjour.

    Effectivement, si a et b sont les vitesses suivant deux axes perpendiculaires, la norme (intensité, module) de la vitesse résultante est

    Plus généralement, dans l'espace, si a, b et c sont les vitesses suivant trois axes perpendiculaires, la norme (intensité, module) de la vitesse résultante est

    On trouve ça dans la plupart des cours sur les vecteurs et la géométrie analytique. et aussi ceux de cinématique.

    Connaissant de plus le rapport , tu pourras en déduire les valeurs absolues de a et b; restera à trouver leurs signes, à partir du déplacement souhaité (la vitesse est dans le sens du déplacement).

    Je ne peux que t'inciter à étudier ces domaines : géométrie analytique, cinématique.

    Cordialement.

  3. #3
    mmm999

    Re : CNC - machine à commande numérique

    maintenant en travaillant sur le plan 3D et en se basant sur ces formules :






    avec X1, Y1 et Z1 les coordonnées à l'arrivé
    en ajoutant l'equation du vitesse

    V^{2}= a^{2} + b^{2}+c^{2}

    avec a,b et c les vitesses rectiligne pour chaque moteurs suivant les axes X, Y et Z.

    donc









    EST CE QUE C'EST CORRECT?

  4. #4
    gg0
    Animateur Mathématiques

    Re : CNC - machine à commande numérique

    Désolé, ce n'est pas lisible.

  5. A voir en vidéo sur Futura
  6. #5
    mmm999

    Re : CNC - machine à commande numérique

    a² = V² - ((Y1/Z1)²-1)x(z1/x1)²xa²
    voila

  7. #6
    gg0
    Animateur Mathématiques

    Re : CNC - machine à commande numérique

    J'ai eu du mal à comprendre ce que tu racontes, en particulier, pour quoi les composantes de la vitesse V seraient deux à deux proportionnelles. Comme tu n'as pas défini clairement tes notations ...

    En fait, tes X1, Y1 et Z1 sont non pas des coordonnées (ce qu'on aurait pu déduire de ton message initial), mais des variations de coordonnées, ou encore, ce qui revient au même, des coordonnées finales d'un déplacement à vitesse constante à partir de la position (0,0,0). Alors, si t est le temps de déplacement :

    donc

    Et donc



    Puis de on tire

    et après factorisation

    Qui permet de trouver a :

    puisque le signe de X1 donne le signe de a (d'où la valeur absolue sur V, au cas où on voudrait le prendre négatif).

    Il y a des méthodes plus puissantes qui permettent de raccourcir ce calcul, mais je suis resté à un niveau élémentaire.
    La formule que tu donnes aboutit peut-être au même résultat, j'ai préféré refaire un calcul argumenté.

    Cordialement.

  8. #7
    mmm999

    Re : CNC - machine à commande numérique

    Merci M. gg0
    vraiment j'apprécie votre resolution à mon problèmes, en faite j'été planter pour deux cas :
    1- dans le cas X1 = 0 ou Y1 =0 ou bien Z1 = 0. mon équation donne la forme indéterminé car j'ai le même paramétre en nomirateur et dénomirateur.
    2- le signe de chaque élement pour définir la direction du tête.
    vos équations présente la solution à mon problème.

    J'ai eu du mal à comprendre ce que tu racontes, en particulier, pour quoi les composantes de la vitesse V seraient deux à deux proportionnelles. Comme tu n'as pas défini clairement tes notations ...
    je m'excuse pour ça

    En fait, tes X1, Y1 et Z1 sont non pas des coordonnées (ce qu'on aurait pu déduire de ton message initial), mais des variations de coordonnées, ou encore, ce qui revient au même, des coordonnées finales d'un déplacement à vitesse constante à partir de la position (0,0,0). Alors, si t est le temps de déplacement :
    il y'a une langue qui traduit les formes dessiné par ordinateur vers la machines afin de réalisé les coupes (GCODE).
    prenant par exemple le dessin d'un triangle :
    http://www.intuwiz.com/triangle.html#.XIoZKIThC70

    voile le code :

    G00 X5 Y15 F70
    G01 Z-1 F50
    G01 X15 Y32.3205 F50
    G01 X25 Y15
    G01 X5 Y15
    G00 Z0 F70

    G00 --> movement vers coordonnée X, Y et Z avec maximum de vitesse
    G01 --> movement vers coordonnée X, Y et Z avec vitesse donnée comme paramètre (F)

    donc pour faire la movement : le code fournit 4 éléments essentiels :
    X1 : coordonnée X à l'arrivé
    Y1 : coordonnée Y à l'arrivé
    Z1 : coordonnée Z à l'arrivé
    F : vitesse de movement en mm/minute

    la machine est constitue par 3 moteurs pas a pas, chaque moteur a chaque step il tourne de 1.8°. donc chaque moteur quand il tourne 200 step il fait un tour complet (360°).
    l'arbre de translation qui bouge la tête permet 2 mm / tour. à chaque tour complet la tête se translate par 2 mm. on a 3 pour chaque axe.

    en programmation de la carte Electronique j'ai deux fonctions de contrôle pour chaque moteur :

    AxeX.setSpeed(vitesse)
    https://www.arduino.cc/en/Reference/StepperSetSpeed
    AxeY.step(nombre de step)
    https://www.arduino.cc/en/Reference/StepperStep

    donc lorsque je reçois un tel coordonée je dois traduire en vitesse et nombre de pas pour chaque moteur.

    - nombre de pas pour chaque axe définit le coordonné final de l'arrivé, dans tous les cas la tête doit arrivé dedans

    - vitesse de chaque moteur va donner la movement exacte de la tete, cad quand je donne coordonné X =5 et Y = 20. on sait bien que le moteur X va tourner plus lent que cel de Y, pour arriver les deux au meme instant au point (5,20) et faire une ligne rectiligne.

    je dois commencer par penser en commande G02 et G03 qu'ils sont les instructions de movement arc

  9. #8
    jiherve

    Re : CNC - machine à commande numérique

    Bonjour,
    pour en avoir fabriqué une il faut d'abord s’intéresser aux algorithmes de tracé de courbes.
    ainsi une étude approfondie des algo de type Bresenham permet de s'affranchir des noeuds au cerveau inutiles en ce qui concerne la vitesse celle ci ne variant que dans un rapport racine de deux entre un tracé "sur axe" ou à 45° et qui sont parfaitement adaptés aux PaP
    Si l'on veut "garantir la vitesse" alors il faut du double DDA c'est un peu plus pointu pour la gestion des erreurs, il faudra passer en micro pas ce qui complique la commande.
    il existe des variantes du Bresenham classique(droit) pour le tracé de cercles ou de tout autre courbe des que l'on en a pigé le principe.
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    mmm999

    Re : CNC - machine à commande numérique

    j'ai trouvé quelq'un deja utilisé pour ecrite un program
    paragraphe Drawing lines

    https://www.marginallyclever.com/201...e-interpreter/

Discussions similaires

  1. Machine d'oxycoupage à commande numérique
    Par G_Meca dans le forum Technologies
    Réponses: 4
    Dernier message: 07/04/2015, 05h26
  2. machine de découpage à commande numerique
    Par bouzid12 dans le forum Électronique
    Réponses: 13
    Dernier message: 14/02/2014, 21h52
  3. Commande Machine à commande numérique CNC
    Par diedie89 dans le forum Électronique
    Réponses: 0
    Dernier message: 06/03/2013, 11h09
  4. machine à commande numérique
    Par invite69b0fc68 dans le forum Technologies
    Réponses: 1
    Dernier message: 05/04/2010, 21h21
  5. Machine commande numérique
    Par invite69b0fc68 dans le forum Technologies
    Réponses: 3
    Dernier message: 30/10/2009, 22h53