DAK TURBO-CNC 3.0f Documentation en français Décembre 2001 Documentation octobre 13, 2001 de DAK TURBO-CNC 3.0f (Traduit en français par Dany Tremblay le 12 déc. 2001) 0. Notice légale 1. Vue d'ensemble 2. Spécifications 3. Configuration de votre machine 4. Format des fichiers, codes G et caprices 5. Machinage de pièces 6. Comment cela fonctionne 7. Améliorations futures 8. Syntaxe des Codes G et M supportés 9. Ressources suggérées 10. Dépannage 11. Contacter l'auteur ------------------------------------------------------ 0. Notice légale: ------------------------------------------------------ En forme récapitulative: 1. C'est votre faute. 2. Je n'ai aucun argent de toute façon. 3. La piraterie c'est voler. 4. Et naturellement, vous êtes d'accord. ------------------------------------------------------ 1. Vue d'ensemble: ------------------------------------------------------ Ce programme permet à un ordinateur standard de PC d'agir en tant que contrôleur de commande numérique par ordinateur en utilisant les ports parallèles comme E/S. Je l'ai initialement écrit pour contrôler mon mini-tour 7x10 converti parce que les logiciels commerciaux étaient prohibitivement cher alors (1997). Depuis lors j'ai ajouté des dispositifs pour le rendre plus flexible et facile à utiliser suite aux demandes de plusieurs individus intéressés. J'espère que les constructeurs de CNC maison le trouveront utile. TURBO CNC est un shareware. Avec des frais d'enregistrement $10, le code source vous sera envoyé par e-mail et vous pourrez faire ce que vous voulez avec excepté la redistribution. L'enregistrement vous place également sur la liste "préféré et prioritaire" pour les problèmes de support, plutôt que la pile d'à côté. Ce programme est fonctionnel à 100% même s'il n'est pas enregistré. Envoyez le paiement à admin@dakeng.com par PayPal (www.paypal.com) ou mettez un chèque dans le courrier à l'adresse dans la section 11. Paypal vous permet de payer commodément avec une carte de crédit par un serveur sécurisé. Si vous avez besoin de plus d'aide avec n'importe quoi n'hésitez pas à m'envoyer un e-mail. L'information pour me contacter est dans la dernière section. Le texte et ce logiciel sont conçues en supposant que l'utilisateur est au courant des principes de base de l'exécution de commande numérique par ordinateur. Le programme fonctionne dans le DOS. Ceci signifie un véritable système d'exploitation DOS, ou au moins un relancement de Windows en mode DOS. Selon la rapidité de votre système, vous pourriez quand même l'exécuter sous une fenêtre DOS à partir de Windows en traitement multitâche, mais je doute que ce soit satisfaisant. ------------------------------------------------------ 2. Spécifications: ------------------------------------------------------ Fonctionne sous DOS et utilise le port parallèle pour E/S (8 bits entrées, 8 sorties) Supporte 8 axes simultanés, angulaire ou linéaire Fréquence d'impulsions de 8 kHz sur un 486-66 PC (Déplacement d'un axe) Vitesse réelle ipm/ipr, linéaire, circulaire et interpolation hélicoïdale Modes de signaux step/dir ou phases. Supporte contacts externes: arrêt urgence, fin de courses. Compensation pour backlash Possibilité de corriger la vitesse en cours d'exécution Cycles de perçage Spécifications de 20 couteaux Mode incrémental/absolu en pouce ou métrique, et sous-programmes Utiliser les commandes standard Code-G EIA-274D Compatible avec les programmes CAM tel que DeskEngrave et autres Utilise le coprocesseur mathématique si disponible. Lit une ligne à la fois à partir du disque, taille du fichier illimitée. Code compact (le logiciel au complet est moins de 100K). Limitations: Les sous-programmes M60 et M62 peuvent être d'un maximum de 20 couches de profond. La longueur des lignes à un maximum de 179 caractères. 12 configurations binaires maximum par étape d'axe. L'exactitude souffre si la distance par étape est plus petite que 0.0000001 unités. Aucun mouvement ne peut exiger plus de 2 milliards d'étapes sur n'importe quel axe. Les mouvements rapides peuvent dépasser 2000 ipm ou 30 deg/sec. Anomalies connues: Si la pièce prend plus longtemps que 24 heures à machiner, le temps d'exécution affiché sera probablement incorrect. L'interpréteur de commandes DOS ne fonctionne pas toujours si exécuté sous une fenêtre Windows. ------------------------------------------------------ 3. Configuration de votre machine: ------------------------------------------------------ Ce programme supporte des signaux de sortie "step/direction" ou de "phase" pour commander les moteurs pas-à-pas par les ports parallèles. Quand vous exécutez le programme pour la première fois, allez à la configuration de machine à l'option (4) "Machine Setup". Cet écran vous permettra de configurer votre machine. Ajuster d'abord le nombre d'axes. Les configurations communes sont 2 axes pour un tour, 3 axes pour une milling. Si vous avez des jouets supplémentaires, tels qu'un plateau rotatif ou autre, alors incluez ces derniers dans le compte d'axes. Le nombre maximum d'axes dans cette version est 8, dans n'importe quel mélange d'angulaire et de linéaire. Alors sous l'option "Setup axis", ajustez les paramètres pour la configuration du port parallèle. N'importe quelle lettre peut être utilisée comme indicateur d'axe excepté les suivantes (M,F,G,I,J,K,#,N,T,R,S). Les désignations standard pour le matériel de commande numérique par ordinateur sont X,Y,Z,U,W pour les axes linéaires et A,B,C pour les angulaires. Le "Step increment" est la distance en POUCES ou DEGRÉS que l'axe déplacera avec chaque step. A l'intérieur du logiciel, tous les calculs sont faits en pouces, ainsi si vous utilisez une machine métrique vous devrez établir la conversion et l'écrire ici. Choisissez un port pour contrôler l'axe. Toutes les sorties de "step/direction" ou de "phase" pour un axe doivent être sur le même port physique. LPT1 est habituellement à l'adresse $0378 et LPT2 est $0278, bien que les configurations peuvent changer. En écrivant l'information du code d'enroulement (l'option 6 sous "Axis setup" si l'option 5 est ajustée à "direct windings", écrivez-la de sorte que l'axe voyage dans la direction positive pendant que vous descendez la liste. Jusqu'à 12 configurations peuvent être entrées. Exemple d'ordre d'enroulement: 1. 1000XXXX 2. 0100XXXX 3. 0010XXXX 4. 0001XXXX Ce serait pour un moteur unipolaire de 4 phases utilisant le mode "full step" sur les bornes 2-5 du port choisi. À chaque étape, un 1 placera une broche HAUTE sur le port, 0 le tirera le BAS, et un X n'affectera pas l'état. Avec soin, différents circuits de commande directe des phases peuvent être contrôlés avec ce mode. La configuration habituelle pour une configuration de step/dir est ACTIF LOW (tiré bas pour quelques uS à chaque step). Rarement, la configuration peut être à l'opposé. Le menu "Motion parameters" permet d'ajuster les paramètres de mouvement pour chaque moteur. "Start speed" est la vitesse la plus rapide de step qui peut être appliquée à vos moteurs à froid. Le "Max speed" est la cadence maximum de step par seconde, et l'"Acceleration" est en step/seconde par seconde. Pour un moteur typique NEMA de grosseur 34 double-bobinnage les valeurs initiales de step sont: Min: 500 CPS Maximum 7000 CPS Accel 3500 Cps/s La compensation de jeu "Backlash" utilise un algorithme non-cumulatif et est appliqué au début d'un mouvement, pas à la fin. Voici un exemple qui commande un mouvement de la position 1 à 2 et retour à la position 1 et ce qui se produit exactement sur la machine. ;Axe X commence à la position 0.000 G00 X1 ;Charge initiale, déplace X à 1.0 G00 X2 ;Départ X à 1.0 et déplacement à 2.0 G00 X1 ;Retour X à 1.0 Charge initiale: ---| * |--- déplacement à 1.0: ---|* |--- déplacement à 2.0: ---|* |--- Compensation de jeu: ---| *|--- Retour à 1.0: de ---| *|--- Le jeu mmécanique "backlash" est aussi pris aux points d'inflexion des arcs et des cercles, et sur les axes angulaires, si choisies. Les unités du jeu mécanique sont en pouces ou en degrés selon le type d'axe, et la vitesse de compensation utilisée est celle de vitesse de début "Start speed" pour l'axe compensé. Le paramètre de largeur d'impulsion "Pulse width" change la durée de l'impulsion "step" en mode "step/dir" en utilisant une boucle de délais. Ceci permet l'ajustement aux ordinateurs très rapides, qui peuvent parfois sortir une impulsion si rapide que le circuit de commande des moteurs ne peut pas l'identifier. Les systèmes basés sur 486 et autres plus lent fonctionnent avec 0, mais les Pentiums fonctionnent mieux avec c au moins 5 ou plus. A vous d'expérimenter. Les fonctions auxiliaires d'E/S (entrées/sorties) sont facultatives. Si vous activez un d'elles, vous devez indiquer le port et la pin qui servira à cette fonction. C'est utilisé principalement pour la configuration des relais tels pour le liquide réfrigérant, etc..... Pratique aussi pour le gros bouton rouge de panique. Mettre à la masse la broche pour la rendre LOW, HIGH est +5V. Si vous n'êtes pas certain des fonctions des pins vous pouvez utiliser le logiciel FKEYBIT.EXE, qui est inclus. Soyez sûr d'utiliser cette version seulement, car elle a été compilée pour lire le port la même manière que le programme de commande numérique par ordinateur. Il n'y a aucun code de "garde d'enfants" qui contrôle que vous n'avez pas assigné deux bornes à la même fonction, ou avez nommé deux axes avec la même lettre, etc..... Ceci permet quelques configurations créatrices d'être faites, mais faites attention! Si vous voulez conserver les changements, sauver le fichier "ini" avec l'option 6. L'option 5 "Reload ini file" éliminera tous les changements que vous avez faits. Si vous avez plusieurs machines avec des configurations différentes, je suggère de mettre une copie de TURBO CNC dans un répertoire différent pour chaque machine. Tous les paramètres de configuration se trouvent dans le fichier TURBOCNC.INI. Lorsque la configuration est complétée comme vous le voulez, retourner au menu principal en pressant la touche puis 3 et 1. Cela vous amène au menu de commande manuelle "Jog", où vous pouvez essayer le déplacement des axes pour vérifier les performances. Typiquement cela prend quelques essais pour obtenir les bons paramètres de mouvements. ------------------------------------------------------ 4. 4. Format des fichiers, Codes G et particularités ------------------------------------------------------ Le format d'un fichier de commande *.cnc doit être comme suit: {dakcnc3.0} - mettez les notes aléatoires ici {program start} G/M code ;commentaires ... M02 ;dernière ligne du programme Tout ce qui se trouve entre " {program start} " et la dernière ligne est exécuté par l'interprèteur de commande. Au-dessus et au-dessous de ceux-ci vous pouvez écrire vos propres commentaires. Des commentaires peuvent également être placés sur chaque ligne après un point-virgule comme montrés. L'entête "{dakcnc3.0}" doit être présente à la première ligne du fichier. Ceci vous protège contre des fichiers CNC d'autres versions de contrôleur étant utilisées sans être vérifiés et adaptés. Voyez le fichier inclus SAMPLE.CNC. NOTES: - Utilisez seulement un (1) code G ou M par la ligne. - Les codes N (numéros de lignes) ne sont pas nécessaires excepté en utilisant des sous- programmes. Lors de l'utilisation des sous-programmes, mettez un numéro de ligne sur chacune des lignes d'appele et de cible. - Le branchement à un sous-programme perd le code G modal, mais pas les vitesses de déplacement "Feed" ni toute autre chose. - Les code G et les vitesses (mots de F) sont modales. - Les interpolations circulaires et hélicoïdales s'appellent en utilisant la notation de I et J, ou de R, pour n'importe quelle combinaison d'axes.(voir la section 8: Syntaxe). - Placez des commentaires après un point-virgule, par exemple: N010 G00 X0.000 ; commentaires ici La mise d'un point-virgule au début d'une ligne réalise une négation de la ligne. - Tout les mouvements impliquants plus d'un axe sont interpolés simultanéments. Même ceux impliquants l'axe Z. Sur quelques logiciels CNC, l'axe Z se rétractera toujours d'abord avant de déplacer X et Y. Pas ici! - il n'y a aucun sélecteur de plan, ni aucune limitation sur le nombre de cadrants de cercle dans l'interpolation circulaire ou hélicoïdale comprenant un plein cercle. - Parfois une petite erreur d'arrondissement sera présente à la fin d'une interpolation hélicoïdale ou circulaire. Si vous vous trompez en calculant I et J pour le mouvement, le problème sera aggravé. - Des axes angulaires sont toujours commandées de 0 à 360 degrés. Par exemple, si une table est à 10 degrés et vous commandez un déplacement à 350 degrés, elle prendra "le long chemin". Si vous le commandiez à -10 degrés à la place, elle tournera à de -10 degrés par "le chemin court" et enregistrera alors la position actuelle comme 350 degrés. La commande d'un mouvement de +720deg fera tourner la table de deux tours pleins, mais la coordonnée finale demeurera sans changement puisqu'elle est toujours placée à quelque part entre 0 et 360 seulement. - Aucune option d'encodeur d'axe n'est encore disponible, c'est toujours à l'étude (oui..., toujours!). Si vous utilisez les vitesses en mode IPR avec un code G95, utilisez le mot S pour ajuster la vitesse d'axe en RPM à partir duquel la vitesse de déplacement sera d'abord calculée. - Les distances métriques, vitesses, etc.., sont en millimètre et mm/min ou mm/rev selon le cas. - Les délais (dwell) sont programmés en secondes de 1 sec. (G04 #1) à plusieurs heures. - La vitesse de déplacement (feedrate) dans un mouvement interpolé (déplacement de plus d'un axe en même temps) est basé sur la distance réelle a couvrir par chacun des axes linéaires impliqués. S'il n'y en a aucun, alors la vitesse de déplacement est assignée au premier axe angulaire sur la liste (degrees/sec). - Les mouvements rapides avec de faibles accélérations peuvent embourber le contrôleur et donner des résultats bizarres, car une table d'accélération est produite pour chaque axe lors des mouvements multiaxes. Maintenez les accélérations aussi hautes que votre matériel peut supporter. - Utilisez une méthode matériel pour remettre à l'état normal les interrupteurs de fin de course (limit switch), car vous ne pourrez pas déplacer les axes avec le logiciel tant que ces interrupteurs ne donnent pas un contact normal. Leurs but est d'empêcher d'atteindre les limites mécaniques de déplacement des axes. - Les mouvements interpolés très rapides peuvent produire des erreurs selon la vitesse de votre machine. Un symptôme typique est qu'un axe arrivera à destination au peu avant l'autre. Si ceci se produit, ralentissez un peu la vitesse avec les paramètres de mouvement. ------------------------------------------------------ 5. Machinage de pièces ------------------------------------------------------ Sous les menus d' usinage manuels et automatique il y a une variété d'options pour couper réellement le métal. Après chargement d'un fichier CNC (1, 1 à partir du menu principal), employez le mode manuel "Manual Mode" pour placer l'outil à la position (0) pour chaque axe par rapport à la pièce à travailler. Voici comment vous pourriez employer les décalages d'outils (Tool offset) pour tailler une pièce à l'aide des plusieurs couteaux sur une fraiseuse: Mettez votre premier outil dans la machine, par exemple, celle que vous utilisez pour pointer la position initiale. Quelques machinistes avec qui je travaille utilisent un foret de petite dimension ou une tige à pointe conique. Soyez sûr que "TOOL 0" apparaît sur la fenêtre d'état (deuxième ligne du bas). Employez les clés R et T pour changer la sélection d'outil (TOOL) au besoin. Déplacez maintenant l'outil vers le bas jusqu'à un point de référence sur votre pièce par exemple le coin de l'objet en utilisant le menu de commande manuelle (Jog). Mettez les coordonnées à zéro lorsque la position est atteinte en appuyant "0" pour chaque axe. Maintenant l'outil maître est placé. Vous pouvez fabriquer une pièce à l'aide de seulement cet outil en principe. Beaucoup de gens fonctionnent ainsi. Pour le deuxième outil, tapez "T" pour passer au prochain décalage d'outil (Tool offset). Il devrait maintenant montrer "TOOL 1" dans la fenêtre de statuts. Vous êtes maintenant dans un nouveau système de coordonnées pour l'outil # 1. Placez l'outil dans le mandrin et ajustez de nouveau la position 0 pour cet outil. Les décalages de position (Tool offset) de cet outil sont automatiquement enregistrés par rapport à l'outil principal. Jouez avec les clés R et T en mode manuel (Jog) et déplacez-vous ici et là pour vous en convaincre. Maintenant, supposons que vous utilisez un foret de départ comme outil principal et un foret régulier de 3/8" comme outil #1. Voici comment vous utiliseriez cela dans le fichier CNC: ... T0 ... Déplacer à la position requise et percer un trou de départ ... ... Retrait du trou M00 ; Pause pour permettre de poser l'outil #1 T1 ... Déplacer à la même position et percer ... etc Cette fonction est puissante, parce que vous n'avez pas à vous inquiéter qu'un outil soit 3" plus long que l'autre quand vous écrivez le programme. Une fois que tous vos outils sont configurés, je recommande que vous sauvegardez les décalages (tools offset) en utilisant l'option sous le menu de fichier (File Menu) puisqu'il faut du temps pour tous les ajuster à zéro. Typiquement, sur une fraiseuse vous ajusterez seulement l'axe Z d'un outil à l'autre, mais sur un tour vous devez vous occuper de Z et de X. Par conséquent, les décalages d'outil fonctionnent sur chaque axe pour une plus grande flexibilité. Les personnes rusées tirent profit de cette flexibilité et emploient des outils 1-10 pour une certaine position de montage, et 11-20 pour des autres sur la même table pour maintenir le tout organisé pour la production. Vous pouvez manuellement exécuter un code G/M de l'écran MDI, qui est automatiquement associée au fichier MDI.CNC et horodatée. Tous les codes sont supportés an mode MDI excepté les sous-programmes. Déplacez-vous ensuite à l'option Machinage Automatique à partir du menu principal. L'option "One Step" sert à tester un nouveau programme une ligne à la fois. Vous pouvez interrompre l'exécution de la commande en tout temps en pressant la touche . L'option "Operator moderated production" est celle normalement utilisée pour des fabrications normales où l'ordre de fonctionnement est fixation de la pièce, machinage, arrêt, enlèvement de la pièce par un opérateur humain. Un compteur de cycles d'exécutions est activé et vous permet de connaître le nombre de pièces fabriquées, jusqu'à 2 milliards. L'option "Automatic production" exécute le fichier CNC sans interruption pour un certain nombre de cycles que vous indiquez. C'est parfait si vous avez le matériel robotique pour faire le chargement et déchargement automatique du matériel pour vous. Les codes G pour exécuter les robots en tant que d'autres axes doivent être inclus dans le même programme que le code pour usiner la pièce. C'est la raison pour laquelle j'ai inclus autant d'axes de mouvement. Des arrêts d'urgence et des interrupteurs de fin de course peuvent être raccordés aux ports parallèles en tant qu'entrées logiques. Ceci dans le but de pouvoir arrêter immédiatement le déplacement des axes en cas de problèmes. Vous avez l'option, après un événement de panique, de continuer où vous avez cessé ou d'interrompre complètement le programme. Cela peut vous servir pour des choses simples, comme un outil incomplètement serré ou quelque chose que vous avez notés juste à temps. Vous pouvez également utiliser comme clef d'arrêt d'urgence, et corriger la vitesse de coupe en utilisant les touches plus grand/plus petit (<,>). Soyez informé, que la correction de la vitesse de coupe pendant un déplacement est risquée. Ainsi il vaut mieux de le frapper près de la fin d'un mouvement. La fenêtre de statut à la gauche de l'écran montre les positions d'axe, le mode du liquide réfrigérant et du mandrin, l'outil courant et les modes de déplacement, corrections de vitesses de déplacement, et ainsi de suite. Généralement, ce qui est important est affiché en blanc, tandis que les données sans importance ou par défaut apparaissent en brun pour maintenir la clarté des information utiles. Normalement les positions d'axes sont mises à jour SEULEMENT à la fin d'un mouvement afin d'optimiser la vitesse, mais vous pouvez sélectionner "Constant update" si vous voulez la mise à jour constante de l'affichage des positions. Ceci ralentis votre vitesse de déplacement maximale d'environ 1/3 à 1/2 selon votre carte vidéo et peut causer des retards d'interpolation, ainsi je suggère laisser les mises à jour constantes hors fonction quand vous effectuez un travail sérieux. ------------------------------------------------------ 6. Comment cela fonctionne ------------------------------------------------------ Au niveau du logiciel, la commande de mouvement peut être assez simple mais pourtant assez complexe si on veut bien la faire. Je vous invite à regarder le code source si vous êtes intéressé à connaître le tout en détail (gens enregistrés seulement). Le code est écrit en TurboPascal7. Ce que vous verrez est essentiellement les menus 80%, les écrans d'aide, le code de gestion des entrées/sorties, et le code d'interprétation des commandes de mouvement 20%. Déplacer un seul axe est facile. Une fois qu'il est établi à combien de pas vous allez et à quelle rapidité vous voulez vous y rendre, vous activez le premier pas. Activez le deuxième plus rapidement, et le troisième plus rapidement en suivant un algorithme d'accélération qui produit une vitesse linéairement croissante avec le temps (le mouvement trapézoïdal). Quand vous avancez aussi rapidement que vous voulez aller, rappelez-vous combien d'étapes cela a pris pour vous y arriver. Alors quand vous savez qu'il ne vous reste que le meme nombre de pas à faire pour terminer le mouvement, commencer à ralentir de la même manière. Simple n'est-ce pas? Le grand problème lors de l'exécution de ce simple déplacement est d' obtenir un temporisateur de précision pour effectuer des pas très rapides avec précision sans surcharger l'ordinateur. Ce code utilise un temporisateur qui compte les impulsions de la puce 8253/8254 pour établir un temps écoulé en micro-secondes. L'interpolation linéaire est peu une plus compliquée, mais puisqu'il est linéaire, tous les axes vont accélérer et ralentir "en synchronisation". Un axe principal est désigné pour contrôler les accélérations. Déterminer exactement comment chaque axe peut accélérer et s'assurer que chaque axe peut suivre la cadence occasionne beaucoup de calcul, ainsi une table est construite d'avance pour définir toutes les cadences avant d'effectuer le mouvement. Lors du mouvement, après chaque pas, chaque axe consulte la table et trouve la cadence du prochain pas. Mon algorithme d'interpolation circulaire et hélicoïdal est assez spéciale. Un point imaginaire est balayé dans l'espace par un vecteur constamment mis à jour. Toutes les fois que la position d'outil est plus d'un pas de ce point pour n'importe quel axe, elle est déplacée d'un pas pour s'y rapprocher. La résolution du balayage est basée sur la résolution des axes impliquées de sorte que peu de temps de calcul est impliqué. L'interprèteur de commandes G/M est simple également. Il analyse une ligne en petits morceaux selon les espaces qu'elle trouve dans la ligne, puis examine le premier caractère de chaque morceau. Si c'est une lettre identifiée, alors le reste du gros morceau devrait être un nombre et est assigné à une variable en conséquence. Une procédure est appellée selon la valeur de la variable G ou M. Dans la version 3.00f, j'ai ajouté quelques étapes de prétraitement pour recevoir les fichiers crées avec des programmes CAM qui corrige un peu la syntaxe. ------------------------------------------------------ 7. Améliorations futures. ------------------------------------------------------ Aucun de mes projets n'est jamais fini! Voici une liste de quelques améliorations que je voudrais apporter dans rév. 4 de ce programme. Bon nombre d'entre elles sont des suggestions d'utilisateur. - Support d'encodeur de position d'axe - Tournage de filets constants (boucle fermée avec le mandrin) - Assemblage en langage MCU pour vitesse (motion control unit) - Menus déroulants par souris (particulièrement pour Menu fichiers) - Éditeur de code CNC intégré - Constructeur de codes G - Fichier INI lisible - Visualisation du parcourt de l'outil - Compensation de rayon - Entrée pour roue de jog - Système d'aide Internet amélioré - Générateur de paraboles et de courbes f(x) - Paramètres et codes de boucles - Sortie 12 bit - Compatibilité multiple de fichier d'entrée (TurboCNC, Fanuc, NCCpro, HPGL, etc..) - Macros de gravure de caractères - Fonction "chien de garde" pour détecter les pannes - Rapport de durée de marche de la machine - Programmation par lot sur ligne de commande - PET - Arrêt automatique si surchauffe - Rappel des 5 dernières commandes - Limites de zones de travail par logiciel - Opération en mode simulation - Jog en continu - Affichage de plus que 3 lignes de code 8. Syntaxe des Codes G et M supportés ------------------------------------------------------ Liste des codes G et M supportés, des codes supplémentaires et de leurs significations: *************************************************************************************************** G00 Mouvement rapide Déplacement aux coordonnées indiquées aussi rapidement que possible en utilisant l'interpolation. Exemple: G00 X1.2 Y0.3 ;Déplacement rapide à (X=1.2 et Y=.0,3) *************************************************************************************************** G01 Mouvement à vitesse contrôlée Déplacement aux coordonnées indiquées en utilisant le paramètre de vitesse (Feedrate) programmé en utilisant l'interpolation. Exemple: G01 X1.2 Y0.3 F3.0 ;Déplacement à (X=1.2,Y=0,3) à 3 po/min *************************************************************************************************** G02 Interpolation circulaire horaire Déplacement d'arc circulaire dans le sens des aiguilles d'une montre et dont le centre est défini par les coordonnées signées I et J. Exemple: G02 X1.0 Y1.0 I0.0 J0.0 F2.0 ;Arc à (1,1) avec le centre à l'origine Cela déplacera du point actuel à (X=1,Y=1) en suivant un arc avec son centre à (0.0) à 2 po/min. I est le point central pour le premier axe sur la ligne (X dans ce cas-ci) et J est le point central pour la seconde (Y dans ce cas-ci). Si la destination est identique à l'origine, un plein cercle sera décrit par le mouvement d'outil. Il est aussi possible d'utiliser une autre syntaxe: Soit de définir le rayon de l'arc et les points de destination seulement: G02 X1.0 Y1.0 R0.25 ;Arc de rayon 0.25 à (X=1,Y=1) Ceci dirige l'outil à partir de la position actuelle à la position (X=1, Y=1) avec un rayon d'arc de 0.25 po. L'utilisation d'un rayon négatif produit un arc de plus de 180 degrés entre les deux points, lorsque R est positif le rayon d'arc produit est de 180 degrés ou moins. Le programme stoppera avec un avertissement si vous avez un rayon qui est impossible. *************************************************************************************************** G03 Interpolation circulaire anti-horaire G03 est semblable à G02 à l'exception du sens de rotation de l'arc. *************************************************************************************************** G04 Pause Interrompt l'exécution pendant un nombre de nombre entier de secondes. Exemple: G04 #6 ;pause de 6 secondes Attention!! N'utilisez pas G04 pour changer d'outil, Cela prend souvent plus de temps que vous pensez... Utilisez M00 à la place. *************************************************************************************************** G70 Mode pouces Définit les unités de distance et de vitesse en pouces. *************************************************************************************************** G71 Mode millimètres Définit les unités de distance en millimètres. *************************************************************************************************** G72 Interpolation circulaire hélicoïdale horaire Comme G02, mais permet à un troisième axe de voyager linéairement en même temps. Exemple: G72 X1.0 Y1.0 Z.125 I0.0 J0.0 F2.0 ;Mouvement hélicoïdal Cette ligne déplace du point actuel à (X=1,Y=1) dans un arc horaire avec son centre à (X=0,Y=0) à 2 po/minute. Pendant ce temps, l'axe Z se déplacera linéairement jusqu'à Z=0.125. La syntaxe alternative en utilisant R (rayon) est applicable aussi comme G02. *************************************************************************************************** G73 Interpolation circulaire hélicoïdale anti-horaire Semblable à G72 à l'exception du sens de rotation. *************************************************************************************************** G77 Cycle de fraisage linéaire Coupe à une profondeur définie en plusieurs passes d'épaisseur déterminée par la valeur de I. Exemple: G77 Z-1.250 X2.50 I-0.050 F3.0 ; Cycle de fraisage Cette commande coupe de la position de départ jusqu'à X=2.5 aller-retour à 3 po./min en baissant Z de 0.050" à chaque passe jusqu'à atteindre la position Z finale de -1.250". Le signe de I est important, si I est positif, Z va augmenter à chaque passe. Pour un fraisage, normalement I est négatif pour faire descendre Z à chaque passe. Si la position finale de Z n'est pas un multiple parfait de I ce n'est pas grave, le logiciel va faire la dernière coupe plus mince. *************************************************************************************************** G78 Cycle de perçage par étape Déplacement à vitesse contrôlée par étapes d'un axe jusqu'à la position finale suivit du retour à la position d'origine en vitesse rapide. Exemple: G78 Z-2.000 I-0.100 F2.0 ;Cycle de perçage Cette ligne ordonne à l'axe Z de partir de sa position actuelle jusqu'à Z=-2.00" à une vitesse de 2 po./min par étapes de -0.100" à la fois et de se rétracter à chaque fois. Le signe de I doit être le même que la direction de coupe. *************************************************************************************************** G90 Mode de coordonnées absolues Commande au programme d'interpréter les commandes de positions de manière absolues. (Toujours par rapport au point d'origine) *************************************************************************************************** G91 Mode de coordonnées relatives Commande au programme d'interpréter les commandes de positions de manière relative à la position de départ. *************************************************************************************************** G94 Sélection de vitesse IPM Sélectionne le mode de vitesse linéaire de déplacement en po/min ou mm/min selon G70/G71 *************************************************************************************************** G95 Sélection de vitesse IPR Sélectionne le mode de vitesse angulaire de déplacement en po/tour ou mm/tour selon G70/G71 Soyez sûr d'ajuster le paramètre "S" en appelant cette fonction! *************************************************************************************************** M00 Arrêt automatique Stoppe le programme jusqu'à ce que l'opérateur appuie sur une touche. *************************************************************************************************** M01 Arrêt optionnel Même fonction que M00, mais peut être désactivé par les menus du logiciel. *************************************************************************************************** M02 Fin du programme Arrête l'exécution du programme. Ce doit être la dernière ligne du programme *************************************************************************************************** M03 Mise en marche du mandrin mode horaire Active une sortie (si définie) pour mise en marche horaire du mandrin. *************************************************************************************************** M04 Mise en marche du mandrin mode anti-horaire Active une sortie (si définie) pour mise en marche anti-horaire du mandrin. *************************************************************************************************** M05 Arrêt du mandrin Désactive les sorties (si définies) de mise en marche du mandrin. *************************************************************************************************** M07 Liquide de refroidissement A à ON Active le relais A. *************************************************************************************************** M08 Liquide de refroidissement B à ON Active le relais B. *************************************************************************************************** M09 Arrêt du liquide de refroidissement Désactive les relais A et B. *************************************************************************************************** M60 Appel d'un sous-programme Saute à un numéro de ligne du programme et lors du retour, continue à la ligne suivante. Exemple: N020 M60 #10 ;Saute à la ligne 10 Utilisez un code N (pour numéroter la ligne) lors de l'appel d'un sous-programme. *************************************************************************************************** M62 Retour d'un sous-programme Reprend l'exécution du programme à la ligne suivante du plus récent code M60 exécuté. (Voir le fichier SAMPLE.CNC pour une exemple de sous-programme). *************************************************************************************************** Caractères de paramètres de commande: N Numéro de ligne F Vitesse de déplacement (Feedrate) I Paramètre d'interpolation, 1er axe J Paramètre d'interpolation, 2ieme axe K Paramètre de pas de filet T Compensation de taille d'outil (Tool offset) R Rayon d'arc S paramètre de vitesse du mandrin # Temporisation ou paramètre de sous-programme Voir le fichier sample.cnc pour des exemples de codes en action. ----------------------------------- 9. Ressources suggérées ----------------------------------- Les ressources sur la commande numérique par ordinateur abondent. Quelques-uns de mes favoris: Machinery's Handbook - Industrial Press. Un manuel indispensable couvrant beaucoup d'aspects de l'usinage, de la commande numérique par ordinateur, et de la métallurgie. http://www.yahoogroups.com/CAD_CAM_EDM_DRO Un forum de discussion consacré aux machines de commande numérique par ordinateur. http://www.geckodrive.com Source de moteurs pas-à-pas et de circuit de commande http://microsystemsgeorgia.com/cnc.htm Lexique des termes CNC http://www.dakeng.com Mon site à moi. 10. Dépannage -------------------------------------------------------- Si le programme tombe en panne quand vous essayez d'effectuer des déplacements, vérifiez ceci: - Avez-vous défini une vitesse de déplacement nulle par distraction? - Est-ce que les ports parallèle sont bien configurés? - L'accélération est-elle placée à zéro? - La syntaxe des commandes est-elle correcte? - Sautez-vous à un sous-programme qui n'existe pas? Si moteurs pas-à-pas sautent des pas, ralentissez les paramètres de vitesse maximum et d'accélération. S'ils vibrent de façon bizarre ou partent parfois à l'envers, augmenter la vitesse de départ afin de passer la bande de résonance. Vérifiez aussi la séquence des phases et essayer de varier le paramètre de largeur des impulsions. Si d'autres comportements bizarres se produisent et que vous pouvez les reproduire et les décrire, alors envoyez mois votre fichier .INI et .CNC avec les explications à admin@dakeng.com. et je ferai ce que je peut... Certains de vous ont été très bon pour trouver des problèmes, et je vous en remercie. ------------------------------------------------------- 11. Contacter l'auteur ------------------------------------------------------- J'essaye de répondre aux email assez rapidement la plupart du temps. Mon adresse est dkowalcz@dakeng.com. Ou si vous préférez la poste standard: Dave Kowalczyk 4904 Glenwood Ave Everett WA 98203 Les frais d'enregistrement de ($10) peuvent être envoyés par Paypal à admin@dakeng.com, ou par la poste à l'adresse ci-dessus. J'Espère que vous avez du plaisir à utiliser le logiciel! S'il y a des fonctions que vous voudriez y voir dans une version future de ce programme, n'hésitez pas à me le faire savoir. 1 1