Support



Liens internets

Mastercam Forum

Site très utile contenant des informations sur le produit Mastercam et aussi, assurément le forum de discussion le plus complet sur le sujet.

Modern Machine Shop Online

Site en ligne de la revue Modern Machine Shop.

Cimco Software Support

Site de support technique pour les produits de Cimco. Vous trouverez entre autres des informations sur la configuration de câblage, des paramètres Windows pour la DNC, l'obtention des clés d'activation du produit, et plus encore ...

Sandvik coromant Online catalogue

Site permettant la recherche d'information sur les produits de Sandvik.

Edgecam Support Group

Site dévoué aux usagers de Edgecam.

CNC Zone

Machinist Community Forum

Machine Outils Sherbrooke

Entreprise locale dédié à la vente de machines-outils CNC et conventionnels, neufs et usagés.


Téléchargements / Downloads



 


Programmation paramétrique


Décalage d'origine sur centre d'usinage

Il arrive souvent qu'on veut répéter une opération d'usinage sur une pièce ou pour un ensemble de pièce installée sur la table de la CNC. Prenons l'exemple de la pièce ci-dessous. Nous voulons programmer le perçage des trous mais  en utilisant des fonctions de décalage d'origine pour faire la démonstration.

Nous pourrions faire la même chose en utilisant des sous-programmes, mais le travail en mode incrémental pose parfois des problèmes dimensionnels, nous en discuterons dans un autre article des avantages et désavantages de la programmation en mode incrémental.

Les "work offest" (G54-G59) pourraient être utilisés mais souvent leurs nombres sont limités. Nous pourrions alors utiliser un décalage "temporaire", la commande G52. Voici comment ça fonctionne:

Avec la commande G52 X2.0 Y2.0 , le zéro de la pièce sera déplacé au centre du trou inférieur gauche, idéal pour programmer l'usinage du trou. La commande G52 X8.0 Y2.0 décale l'origine au centre du trou inférieur droit.

Dans cet exemple, nous n'utilisons pas le décalage en Z mais nous pourrions le faire au besoin (ex.: pour valider un programme sur la machine).

Remarquez que le décalage se fait toujours à partir de l'origine actif et qu'il est important de ramener le décalage à G52 X0 Y0 à la fin d'un programme.

Voici un exemple sur un contrôle Fanuc pour l'usinage des trous en utilisant le décalage G52.

O1000 (numéro de sous programme)
N1 G00 X0 Y0 (déplacement au centre du trou)
N2 Z-0.25 (déplacement à la surface d'usinage)
N3 G02 Y0.5 R0.5 F5.0 (entré en arc dans le trou)
N4 Y-0.5 R1.0 (usiner coté droit du cercle)
N5 Y0.5 R1.0 (usiner coté gauche du cercle)
N6 Y0 R0.5 (retour en arc au centre du trou)
N7 G00 Z0.1 (sortir en rapide)
N8 M99 (fin du sous-programme)

et voici le programme principal

O0001 (numéro de programme principal)
N005 G54 G90 S400 M03 (choisir système de coordonnées, mode absolue, départ broche)
N010 G00 X2.0 Y2.0 (rapide par dessus trou inférieur gauche)
N015 G43 H01 Z0.1 (appel de la compensation de longueur d'outil)
N020 G52 X2.0 Y2.0 (décalage de l'origine pour le trou inférieur gauche)
N025 M98 P1000 (usiner le trou)
N030 G52 X2.0 Y6.0 (décaler l'origine pour le trou supérieur gauche)
N035 M98 P1000 (usiner trou supérieur gauche)
N040 G52 X8.0 Y6.0 (décaler pour le trou supérieur droit)
N045 M98 P1000 (usiner trou supérieur droit)
N050 G52 X8.0 Y2.0 (décaler pour le trou inférieur droit)
N055 M98 P1000 (usiner trou inférieur droit)
N060 G52 X0 Y0 (décaler l'origine au coin inférieur gauche de la pièce)
N065 G91 G28 Z0 (retour de l'axe Z)
N070 M30 (fin de programme)

N'oubliez pas de retourner votre décalage d'origine à la position originale comme dans la ligne N060 ci-dessus.

 

Changements d'outil avec commande macro!

Plusieurs sections dans vos codes CNC sont répétitives. Des commandes similaires doivent être répétées à plusieurs endroits dans le programme et ce, surtout lors des changements d'outils. Étant donné que les sections sont similaires et non identiques, l'utilisation de sous-programmes s'avèrent inefficace. Si votre contrôleur possède le langage macro B (ou tout autre langage paramétrable), vous pouvez simplifiez les commandes de changements d'outils.

Même avec un logiciel de programmation FAO, vous devez considérer les difficultés des opérateurs à l'exécution de vos programmes. La technique ci-dessous permet de simplifier la programmation, assurer un code standard pour les changements d'outils, évite les erreurs et facilite le travail des opérateurs à repartir les programmes à un numéro d'outil spécifique.

Premièrement, considérons les commandes nécessaires pour un changement d'outil sur un centre d'usinage. (Les commandes peuvent différer d'une machine à une autre)

N060 M09 (Arrêt du fluide)

N065 G91 G28 Z0 M19 (Retour de l'outil pour le changement, orientation de la broche)

N070 T02 M06 (Appel de l'outil désiré dans la broche)

N075 G90 G54 S500 M03 T03 (Mode absolu, décalage, départ de broche, choix du prochain outil)
N080 G00 X 1.5 Y 2.0 (Rapide à la première position X et Y)
N085 G43 H02 Z 0.1 (Compensation longueur d'outil, rapide à la première position en Z)
N090 M08 (Départ du fluide)

Remarquez que cette structure demeure identique pour tous les changements d'outils. Seulement les valeurs en italiques changeront d'un outil à un autre. Si des opérateurs écrivent ces codes manuellement, plusieurs erreurs peuvent arrivés. Considérons maintenant la commande macro B suivant:

N060 G65 P1000 T02 S500 X1.5 Y2.0 Z0.1 (Changement d'outil)

Lors de l'exécution de la macro (O1000), la machine effectuera tous les mouvements présents dans les lignes de codes de départ. Dans cet exemple, T indique le numéro de l'outil à mettre dans la broche, nous assumons dans notre exemple que le prochain outil suit de façon séquentiel. Si ceci n'est pas le cas, nous pourrions rajouter une variable pour l'outil en attente ( P = prochain). S identifie la vitesse de la broche et X , Y et Z les positions de départ.

Voici le programme macro:

O1000 (Macro de changement d'outil)

IF [#23 NE #0] GOTO 1 (Si W est inclu dans la commande, ne pas faire l'addition)

#23 = #20 +1 (Établir le prochain numéro d'outil en séquence)

N1 M09 (Arrêt du fluide)

G91 G28 Z0 M19 (Retour à la position de changement d'outil, orientation de la broche)

T#20 M06 (Appel de l'outil désiré)

G90 G54 S#19 M03 T#23 (Mode absolu, décalage, départ de broche, choix prochain outil)

G00 X#24 Y#25 (Rapide à la première position X et Y)

G43 H#20 Z#26 (Compensation longueur d'outil, rapide à la première position en Z)

M08 (Départ du fluide)

M99 (Fin de la macro)

Nous avons remplacé les lignes de code par des variables locales. De plus, si la macro n'appel pas le prochain outil avec un W, nous effectuons le calcul automatiquement. Même si cet exemple ne le montre pas, vous pourriez ajouter les commandes G40 et G80 sur la ligne N1 pour s'assurer de l'annulation des compensations et cycles de perçages.

Pour redémarrer un programme à un changement d'outil, l'opérateur n'a qu'à localiser les lignes G65, tous les commandes nécessaires seront alors exécutées par la macro. 

Changement de décalage (offset) avec la maintenance des outils!

Pour des entreprises avec des quantités à produire élevées sur leurs tours CNC, la maintenance des outils (rotation et changement des pastilles) doit être répétée plusieurs fois pendant la production de la pièce. Pendant la durée de vie de la pastille, l'usure de l'outil provoque des changements de dimensions sur la pièce finie, ce qui nécessite des modifications aux paramètres de décalages pour l'outil.

La plupart des tours CNC utilisent un décalages de géométrie pour associer une valeur numérique à la géométrie, et un décalage d'usure de la pastille pour compenser pour la variation de l'usure pendant la production. Tous les opérateurs s'entendent pour dire que cette réalité est présente, mais dans certains cas, on utilise la compensation d'usure pour des erreurs de montage de l'outil.

Prenons l'exemple d'un outil de finition en position numéro deux. Lors du montage de l'outil, les valeurs de décalage de géométrie sont entrées dans le contrôleur.  Si les dimensions sont exactes, le décalage d'usure sera zéro.

Par contre, pendant la coupe, d'autres facteurs (comme la pression de coupe) influencent légèrement l'outil de finition. Dans notre exemple, disons qu'après la première pièce, le diamètre tourné est plus grand de 0.0006". Les monteurs (set-up man) utiliseront souvent la compensation d'usure pour régler cette différence en entrant une valeur de -0.0006" dans la compensation d'usure numéro deux. Si la production débute avec ces valeurs, une valeur de décalage d'usure aléatoire sera entré pour chaque outil en début de production.

L'outil deux continu de produire des pièces. Après 50 pièces, l'opérateur mesure le diamètre coupé et s'aperçoit qu'il a augmenté de 0.0002", une variation due à l'usure de l'outil. L'opérateur ajuste le décalage d'usure de l'outil deux par cette variation (la valeur est maintenant de -0.0008"). Cette réduction du décalage d'usure devra probablement être répétée plusieurs fois avant que la pointe de l'outil ne soit plus coupante. Lors de l'indexation de la pastille, l'opérateur devra se souvenir de la valeur initiale (-0.0006" dans notre cas) avant de commencer la prochaine pièce. Si plusieurs outils de finition sont utilisés, il est difficile de se souvenir de toutes ces valeurs initiales.

Quelle était la cause de la variation initiale du diamètre? Évidemment pas l'usure de l'outil! Dans notre cas, c'était la pression de coupe, mais l'erreur pourrait provenir d'un mauvais placement de l'outil dans la tourelle. De toute façon, étant donné que l'on utilise le décalage d'usure pour corriger des erreurs de montage, l'opérateur doit travailler avec des valeurs aléatoires dans la table des décalages d'usure. Ces valeurs doivent être mémoriser pour reprendre après un changement ou rotation de la pastille.

En réalité, les variations de la première pièce sont dues à la mesure de la géométrie (gérer par le décalage de géométrie) que de l'usure de la pastille. En ajustant le décalage de géométrie (geometry offset) de -0.0006, le décalage d'usure (wear offset) serait de zéro pour chaque outil. Le chiffre zéro est beaucoup plus facile à se souvenir par l'opérateur lors de la rotation ou du changement de la pastille.

  

Les monteurs (set-up man) n'aiment pas modifier la valeur du décalage de géométrie avec des nombres si petits car c'est difficile de détecter les erreurs d'entrée numérique. Si votre contrôleur possède l'option de la programmation paramétrique, vous avez accès aux décalages par des variables internes. Vous pourriez utiliser les décalages d'usure lors du montage et ensuite transférer ces valeurs aux décalages de géométrie pour ensuite remettre à zéro les décalages d'usure. Ce programme peut être exécuté une fois, après les réglages de la première pièce quand les outils sont neufs.

Voici un exemple de programme paramétrique en format macro B. Il prends pour acquis que la CNC possède 12 stations d'outils.

O5001 (Numéro de programme)
#101 = 1 (Compteur)
N1 IF [#101 GT 12] GOTO 99 (Test si fini)
#[2400 + #101] = #[2400 + #101] + #[2000 + #101] (Geo offset X = Geo offset X + Wear X)
#[2500 + #101] = #[2500 + #101] + #[2100 + #101] (Geo offset Z = Geo offset Z + Wear Z)
#[2000 + #101] = 0 (Remettre décalage d'usure (wear offset) X à zéro)
#[2100 + #101] = 0 (Remettre décalage d'usure (wear offset) Z à zéro)
#101 = #101 + 1 (Incrémente le compteur)
GOTO 1 (Retour au test)
N99 M99 (Fin de la macro)

Tenir compte des variations en Z de l'épaisseur du brut!

Pour produire des programmes qui ne nécessite jamais de modifications futures, vous devez éliminer les choses qui peuvent varier entre chaque cycle de production. Parfois certaines variables sont hors de portée des opérateurs ou programmeurs CNC. Prenez le cas ou vous devez produire une pièce à partir d'un brut de fonderie et qu'il y a une variation de surépaisseur pour l'usinage, et ce, sur une base régulière.

Considérons, par exemple, le surfaçage d'une pièce. Si le brut provient de la fonderie, et que le matériel a enlevé varie d'une fois à l'autre, le nombre de passes requises pour surfacer la pièce devra être modifié en fonction du surépaisseur de matériel.

Malheureusement, la situation nous fait courir après notre queue. La prochaine fois que nous lancerons la production, la surépaisseur de matériel ne sera pas pareil et il faudra encore une fois modifier le programme. En effet, chaque fois que la pièce sera remise en production, il faudra possiblement changer le programme. Il se peut que cette variation se produit dans un même lot de production, alors le changement pourrait avoir lieu encore plus souvent.

Si le contrôle de cette surface est hors de votre portée (le fournisseur ne peut maintenir une surépaisseur constante), la prochaine chose à considérer serait de modifier le programme pour qu'il s'adapte à cette variation de surface avec la programmation en macro B (ou un autre langage de programmation paramétrique) pour que votre code G s'adapte selon la situation.

Au début de votre programme, vous pourriez ajouter deux variables:

O0001 (Programme principal)
#120 = 0.25 (Surépaisseur sur le brut de fonderie)
#121 = 0.1 (Profondeur de passe en Z)
N005 T01 M06 (Début normal du programme)

Nous avons utilisé la variable #120 pour définir l'épaisseur du matériel brut et la variable #121 pour définir la profondeur de passe. Une fois que l'outil est en position XY, donnons la commande suivante pour exécuter l'usinage:

N040 G43 Z1.015 (Déplacement rapide en Z à 1 pouce de la surface finale)
N045 G65 P9001 S#120 D#121 C2001.0 (Usiner surface)

Notre technique nécessite un mouvement rapide à exactement 1 pouce par dessus la surface finale, prenez note que nous voulons laisser 0.015" pour la finition.

Sur la ligne N045, nous appelons la macro O9001. La variable S nous donne la surépaisseur en Z et la variable D la profondeur de chaque passe. La variable C nous donne le programme contenant les mouvements en XY requis à chaque passe. Veuillez noter que le programme (O2001 dans cet exemple) peut avoir n'importe que l type de mouvement. Alors aucune limite sur le type d'application.

Voici un exemple de mouvement en XY:

O2001 (Program containing XY motions)

N001 G01 X5.75 F4.0

N002 Y3.75

N003 X0.25

N004 Y-0.6

N005 M99 (End of program)

Maintenant, voici la macro pour prendre des passes multiples:

O9001 (Numéro de programme)

#110 = #5001 (Obtenir position absolue en X)

#111 = #5002 (Obtenir position absolue en Y)

#112 = #5003 (Obtenir position absolue en Z)

#102 = FUP [#19/#7] (Calculer le nombre de passes)

#103 = #19/#102 (Recalculer les profondeurs de passes)

#104 = 1 (Compteur de passes)

#105 = #112 – 1.0 + #19 - #103 (Calculer position Z pour la passe en cours)

N9001 IF [#104 GT #102] GOTO 9005 (Si terminé, sortir)

G00 Z#105 (Rapide à la position Z à usiner)

G01 (Instaurer mode interpolation linéaire en avance programmé)

G65 P#3 (Faire les mouvements XY pour cette passe)

G00 Z#112 (Rétraction au Z initial)

X#110 Y#111 (Mouvement au XY initial)

#104 = #104 + 1 (Incrémenter le compteur de passes)

#105 = #105 - #103 (Calcul de la nouvelle surface Z à usiner)

GOTO 9001 (Retour dans la boucle)

N9005 M99 (Fin de la macro)

Au premier coup d'oeil, cette technique peut paraître compliquée, mais il faut se rappeler que la technique facilite les opérateurs et les gens réalisant les montages lorsqu'il faut tenir compte de la variation de l'épaisseur du brut. Maintenant ça devient très facile à modifier. La personne n'aura qu'à changer une ou deux lignes dans le début du programme.

Aussi, le programme O9001 est universel. Il est fonctionnel pour tout travail avec des variations en Z. Vous pouvez régler les paramètres machines pour éviter d'effacer les programmes de la série 9000 par mégarde.

Position par rapport aux coordonnées machines

Presque toutes les machines CNC ont une position de référence machine. Cette position, pour un controleur Fanuc s'appelle la position de référence machine. Les controleurs de type Fanuc utilisent un G28 pour retourner la machine à cette position. Par exemple, la commande G91 G28 X0 Y0 Z0 retournera la machine à sa position de référence machine.


Parfois, le fabricant de la machine utilisera des positions pour le changement d'outil, le chargement de pallette ou encore des mesureurs d'outils. Ces positions peuvent être interpellées indépendamment des positions de décalage de travail (work offset), permettant de déplacer la machine à des endroits prédéterminés sur la table.


Sur les controleurs Fanuc, la commande G53 permet un déplacement par rapport à la position de référence machine. La commande G53 se fait en vitesse rapide et toutes les coordonnées sont en absolues de la référence machine. Normalement, la position de référence machine est située à l'extrémité positive de chaque axe.

Prenons par exemple la position de chargement et déchargement des pièces. Cette position, mesurée une fois, par rapport à la référence machine est de X-10.3762 et Y-14.3837.

Dans le programme, une commande G53 X-10.3762 Y-14.3837 enverra la machine à la position définie en vitesse rapide, peut importe la position actuelle de la machine. Étant donné que cette position ne fait pas référence au décalage de travail (work offset), ça fonctionne dans tous les programmes.


Vous pouvez nous contacter pour des informations supplémentaires.

   
©2006 Simtech CNC Consultants inc. Revisé 2008-10-21