1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

Emc + coupure alimentation moteur pas à pas

Discussion dans 'EMC2 / LinuxCNC' créé par lapenduledargent/finemeca, 19 Février 2010.

  1. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonsoir,

    J'utilise emc2 en port // avec une carte de commande L297-L298 suivant les schémas de Otocoup.

    Lorsque ma cnc à terminé son cycle d'usinage mes moteurs restent sous tension et continue a chauffer.

    Si j'ai un client ou une autre occupation, je ne suis pas présent afin d'éteindre manuellement la carte.

    En fin d'usinage, je peux couper via un relai l'alimentation des moteurs ou couper l'alimentation du L297. Mais comment gérer ça par EMC2 ?
    Dans l'assistant de configuration, et son onglet "brochage du port //", y a-t-il une broche qui sert à cela ?

    J'ai activation ampli et pompe de charge ??

    Merci pour vos réponses.

    Pierre
     
  2. natale

    natale Compagnon

    Messages:
    1 022
    Inscrit:
    6 Novembre 2006
    Localité:
    Yvelines 78
    Emc + coupure alimentation moteur pas à pas
    Sur le L297 tu as une broche qui s'appelle enable si tu la met à 0 le stade de puissance est eteint, je pense que sur EMC2 est activation ampli.
     
  3. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    C'est bien l'activation de l'ampli. Mais le soucis c'est qu'il ne se désactive que si la machine est "off" et non si la machine est en fin de programme. J'ai eu le même soucis pour mettre mon circuit de driver en mode basse consommation.
    Il y a 2 solutions :
    - Générer un signal pour couper l'ampli si ni un jog ni un programme est exécuté (j'ai implémenté cette solution avec des boutons en façades pyVCP)
    - Forcer la machine à être "off" (pour EMC2) une fois le programme se termine.

    Personnellement, je pense que la seconde solution est mieux pour toi surtout que tu risques de perdre l'origine machine si tes drivers sont off. Si tu veux le bout de code dis le moi (je ne l'ai pas sur cette machine).

    Xavier
     
  4. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Merci Natale et horsot,

    Donc au niveau L297, c'est bien enable et sur emc, c'est l'ampli.

    Que veux-tu dire par machine "OFF" ?

    A bientôt

    Pierre
     
  5. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    Les sorties "axis.X.ampl-enable-out" sont à 1 lorsque le bouton "Marche arrêt machine [F2]" est relaché, je n'ai pas creusé plus. Dans le menu "machine-> configuration HAL" tu peux voir les signaux HAL évoluer. Je te renvoie à la doc de l'intégrateur EMC.

    Xavier
     
  6. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonsoir Xavier,

    Je vais tester la semaine prochaine mais j'ai également une carte test avec des leds pour visualiser les sorties du port //.

    Ton bout de code tu l'as écrit en C, en Python ? Et tu le mets où?

    A bientôt

    Pierre
     
  7. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    Désolé du retard, je n'ai pas pris le temps de prendre le source dans EMC2 mais de mémoire :

    C'est une syntaxe "HAL" qui relie des boites entre elles avec des signaux. Les "boites" représentent des "fonctions" (et logique...). Je te conseille de lire la doc de l'intégrateur d'EMC2 rubrique EMC2, c'est vraiment dans HAL que l'on peut le mieux profiter de la puissance d'EMC2.

    Ici le signal qui t'intéresse est "halui.program.is-running" qui est à 1 lorsque un programme Gcode est en cors d'exécution. Pour y avoir accès à partir du stepconf wizard il te faut l'activer dans la dernière fenêtre, profite en pour ajouter un custom panel VCP. La doc est vraiment bien faite, elle en vaut l'investissement.

    Xavier
     
  8. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonjour Xavier,

    Merci de tes précieuses réponses.
    Emc2 a beaucoup de facettes, de possibilités.
    Au départ, je le trouvais trop simple, trop basique, je viens de Ninos, une usine à gaz.
    Mais si je peux personnaliser Emc2...

    Je penses décrire mes modifs dans un post spécifique.

    A bientôt

    Pierre
     
  9. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    Pour EMC2 tu peux faire des modules en python (uniquement pour l'interface utilisateur ou processus lents) ou du C venant s'interfacer avec HAL.

    Voici comment j'ai implémenté la réduction de courant de "Petitpas" (mon driver maison). C'est un premier (en fait un second) jet je ne suis pas pleinement satisfait (mémoire et délais à implémenter : à faire en C ou en python car hal est vraiment trop spartiate). Pour ton application je te conseille d'utiliser le signal "halui.program.is-running". Le enable des L297 coupe t'il l'alim des moteurs ou fait juste une réduction de courant? S'il le coupe tu perdras l'origine machine.

    Dans custompanel.xml (fichier presque vide créé par stepconf) en gros des boutons radio et une led :
    Code:
    <pyvcp>
    <hbox>
        <relief>FLAT</relief>
        <bd>0</bd>
        <label><text>"Power reduction mode:"</text></label>
        <radiobutton>
            <choices>["Auto","On","Off"]</choices>
            <halpin>"my-radio"</halpin>
        </radiobutton>
    </hbox>
    
    <hbox>
        <relief>FLAT</relief>
        <bd>0</bd>
        <label><text>"Power reduction on :"</text></label>
        <led>
            <halpin>"pwr_red_led"</halpin>
            <size>15</size>
            <on_color>"green"</on_color>
            <off_color>"red"</off_color>
        </led>
    </hbox>
    
    </pyvcp>
    Dans custom_postgui.hal (fichier presque vide créé par stepconf) en gros l'architecture hal créée après chargement de l'interface graphique AXIS :
    Code:
    # Power reduction
    #----------------
    
    loadrt or2 count=2
    loadrt not count=1
    loadrt and2 count=1
    addf or2.0 servo-thread
    addf or2.1 servo-thread
    addf not.0 servo-thread
    addf and2.0 servo-thread
    
    # power reduction auto generation 
    net menabled not.0.in <= motion.motion-enabled
    net not_menable not.0.out => or2.0.in0
    net ipositon or2.0.in1 <= motion.in-position
    net pwr_reduc_auto  <= or2.0.out
    
    # Power reduction radio button selector
    net pwr_auto_en pyvcp.my-radio.Auto => and2.0.in0
    net pwr_reduc_auto and2.0.in1
    net toto and2.0.out => or2.1.in0
    net pwr_on_en pyvcp.my-radio.On => or2.1.in1
    net out_led or2.1.out => pyvcp.pwr_red_led
    
    net out_led or2.1.out => parport.0.pin-14-out
    
    Bon courage ça vaut le coup

    Xavier
     
  10. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonsoir Xavier,

    J'ai commencer la lecture de la doc de l'intégrateur d'EMC2... et j'ai de quoi lire.
    Mais je me suis aperçu que je n'avais pas les mêmes écrans que dans la doc. J'ai fait une mise à jour d'un pc qui est relié une carte de test.

    J'ai un ami étudiant en électronique qui me conseils à la place de travailler sur le L297 de couper via un relai la partie puissance. Le relai serai donc commandé par emc .

    D'après les réponses d'un forum d'électronique, si je modifie la tension de Vref, je peux ainsi garder un couple minimum et ainsi limiter la chauffe des moteurs.

    Tu m'expliques que si je coupe l'alim des moteurs que je perds l'origine machine. Je suppose que tu parles par exemple que la table de la machine sans couple pourrait se déplacer légèrement ?

    A bientôt

    Pierre
     
  11. natale

    natale Compagnon

    Messages:
    1 022
    Inscrit:
    6 Novembre 2006
    Localité:
    Yvelines 78
    Emc + coupure alimentation moteur pas à pas
    L'ideal est un circuit de reduction de courant à repos comme ça les moteurs sont toujours " en prise" est suffisant (au repos) de fournir le 30% de courant.
     
  12. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    Bonsoir Pierre,

    Qui a dit qu'EMC2 était trop simple :wink:
    La version à jour semble la EMC/AXIS 2.3.3, sinon utilise le gestionnaire de mise à jour (Système->Administration->Gestionnaire de mise à jour)
    Je ne suis pas pour couper les alimentations des drivers ou des moteurs pour la veille. Ce que ton amis préconise irait bien pour un arrêt d'urgence (et encore). Je ne suis pas sûr que couper l'alimentation de puissance ne soit pas nuisible aux composants de plus je crains un comportement ératique au redémarage comme sur "PetitPas" (mon driver voir section électronique de e site).

    C'est la solution que j'ai retenue pour petit pas, lorsque le signal "power reduction" est à "1" la référence de tension du ADC est immédiatement réduit à 50% puis 30s plus tard et si le signal est maintenu il est réduit de nouveau jusqu'atteindre 25% de sa valeur nominale. Si tu peux modifier la référence de tension c'est vraiment le mieux car aucun risque de perte de pas.
    Non ce n'est pas ce genre de déplacement qui m'inquiètent le plus, je pensais plus au déplacement due au microstepping, en position de repos un moteur est sur un pas entier. De plus je ne suis pas sur qu'à l'alimentation des drivers, les moteurs ne fasse pas quelques pas (sur PetitPas c'est le cas).

    Sur la remarque de Natale : je préfère que la commande de réduction de courant vienne du PC car il est le seul à savoir l'état du système (en plus de la flexibilité que cela apporte). Je m'explique, souvent la réduction automatique de courant se fait sur chaque axe séparément (au bout d'un temps d'inactivité). De ce fait un axe (Z par exemple) peut très bien être inactif pendant une "longue" période d'usinage et je trouve préjudiciable de lui réduire son courant/couple en plein usinage. Par contre si la carte dont tu parles "sait" l'état d'activité de chaque axe (la breakout board pourrait le "savoir") et réduit le courant de l'ensemble des axes, je n'ai rien dit :wink:

    A bientôt

    Xavier
     
  13. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonjour Xavier,

    J'ai testé ton code dans custompanel et dans custom_postgui.
    En manuel, ça fonctionne ON et OFF.

    Mais en automatique, je ne vois rien :?: Y-a-t-il un autre code ?

    A bientôt

    Pierre
     
  14. horsot

    horsot Compagnon

    Messages:
    768
    Inscrit:
    28 Mai 2009
    Localité:
    Toulouse
    Emc + coupure alimentation moteur pas à pas
    Bonjour Pierre,

    Heu... je ne sais plus :oops: . De toute façon le code ne me plaid pas il faut que le l'améliore. La fonction auto est activé à la détection d'un mouvement ou d'une exécution programme. L'inconvénient c'est qu'en jog la réduction va s'enclencher très souvent ce qui ne me plaid pas (ajout d'une tempo?!).

    Sinon, j'ai pensé au lieu de l'automatique une case à cocher "Réduire le courant à la fin du programme" car en fait c'est vraiment ça qui nous intéresse. Sinon "Arrêter la machine à la fin du programme" peut être une solution car ce signal désactive les amplis des drivers de moteur (fonction standard)...

    C'est un sujet ouvert à discussion, si tu as des idées je suis preneur!

    Xavier
     
  15. lapenduledargent/finemeca

    lapenduledargent/finemeca Ouvrier

    Messages:
    368
    Inscrit:
    19 Septembre 2008
    Localité:
    Walcourt en Belgique
    Emc + coupure alimentation moteur pas à pas
    Bonsoir Xavier,

    Si je prends l'exemple de ma cnc-bois avec carte à pic de chez Iprocam et son propgrame Ninos :

    Quelques seconde après des déplacements ou un usinage, la tension des moteurs se réduit.

    Sur mon autre carte Iprocam que je suis entrain de réinstaller sur ma nouvelle fraiseuse PCB, j'ai utilisé suivant tes conseils la fonction Ampli de EMC mais il faut actuellement éteindre la machine manuellement :sad:

    Ca ne serait pas un problème si il y avait une fonction Gcode.

    J'ai testé avec une led pontée sur la broche "Pas" (testé sur l'axe X) du port // avec EMC2, elle ne s'allume pas lors de la rotation du moteur.
    Par contre avec mon programme écrit en Gambas, elle s'allume et s'éteint lorsque le moteur n'est pas actif.
    Je suppose que cela est du à une forme différente des signaux de EMC ???

    L'idée était d'utiliser un pic qui lancerait une temporisation qui commanderai le signal Enable du composant de puissance.

    J'attends avec impatience ton avis.

    Pierre
     

Partager cette page