Page 1
1020/1040/1060 MANUEL DE PROGRAMMATION COMPLEMENTAIRE 0100938872/2 05-96 fr-938872/2...
Page 2
Malgré tout le soin apporté à l’élaboration de ce document, NUM ne peut garantir l’exactitude de toutes les informations qu’il contient et ne peut être tenu responsable, ni des erreurs qu’il pourrait comporter, ni des dommages qui pourraient résulter de son utilisation ou de son application.
Page 3
Table des matières Table des matières 1 Programmation structurée 1 - 1 Généralités 1 - 3 Commandes de programmation structurée 1 - 6 Exemple de programmation structurée 1 - 13 2 Lecture des symboles d'accès à l'état programme 2 - 1 Généralités 2 - 3 Symboles d’accès aux données du bloc...
Page 4
8 Fonction RTCP 8 - 1 Généralités 8 - 3 Mise en oeuvre de la fonction RTCP 8 - 4 Description des cinématiques 8 - 6 Traitements liés à la fonction RTCP 8 - 9 Utilisation en modes "JOG" et "INTERV" 8 - 11 Restrictions et conditions d’utilisation 8 - 11...
Page 5
Tableau des mises à jour EVOLUTIONS DE LA DOCUMENTATION Date Indice Nature des évolutions 02-93 Création du document (Conforme au logiciel indice D) 01-95 Mise en conformité avec l'indice G du logiciel Evolutions du manuel - Fonction RTCP - Fonction N/M AUTO Prise en compte des évolutions Logiciel indice E : - Adressage de la fonction appelante par [.RG80] dans sous programme...
Page 7
PROGRAMMATION CYLINDRIQUE OLUME OLUME OLUME OLUME 938821 938822 938820 938930 938819 Documents intégrateur Ces documents sont destinés à la mise en œuvre de la commande numérique sur une machine 1060 1020/1040 MANUEL DE MANUEL MANUEL MANUEL MANUEL PROGRAMMATION D'INSTALLATION D'INSTALLATION...
Page 8
Documents spécifiques de programmation Ces documents concernent des applications spécifiques de programmation sur commande numérique. MANUEL MANUEL PROGRAMMATION PROGRAMMATION MANUEL D'EXPLOITATION INTERACTIVE INTERACTIVE AXES DUPLIQUES DE LA FONCTION PROGRAMMATION PROCAM MILL PROCAM TURN ET SYNCHRONISES PROFIL COMPLEMENTAIRE 938937 938872 938873...
Page 9
Préliminaires Manuel de programmation complémentaire Contenu du manuel Présentation des commandes offrant la possibilité de programmer des sauts et des boucles sous forme structurée. CHAPITRE 1 PROGRAMMATION STRUCTUREE Présentation des symboles permettant d’obtenir la visibilité des fonctions program- mées et du contexte programme lors de l’appel d’un cycle par fonction G. CHAPITRE 2 LECTURE DE SYMBOLES...
Page 10
Possibilité de créer et d’assurer la gestion des tableaux de variables symboliques dans le but de ranger des fonctions et trajectoires d’un profil. CHAPITRE 4 TABLEAUX ET GESTION DE VARIABLES SYMBOLIQUES Possibilité de créer des sous programmes appelés par fonctions G. CHAPITRE 5 CREATION DE SOUS...
Page 11
Préliminaires Possibilité de prendre en compte la chaîne cinématique d'une machine permettant d'orienter l'outil par rapport à la pièce et de le faire pivoter autour de son centre. CHAPITRE 8 FONCTION RTCP Possibilité de commander des axes N/M AUTO alors que d'autres axes de la machine suivent une trajectoire programmée.
Page 12
Présentation sous forme de tableau des listes des symboles d’accès à l’état programme. adressage des fonctions G, adressage des fonctions M, ANNEXE C adressage d’une liste de bits, adressage d’une valeur, TABLEAU RECAPITULATIF adressage d’une liste de valeurs. DES SYMBOLES D'ACCES A L'ETAT PROGRAMME Présentation sous forme de tableau des listes des symboles de rangement dans les...
Page 13
/ [Symb2] ...), les «xx» après une ou plusieurs lettres adresses remplacent des caractères alphanumériques (par exemple [.IBxx(i)] ), les «xxx» après une lettres adresses remplacent des valeurs numériques (par exemple Gxxx). Exemples Syntaxe de création d’un tableau de variables symboliques P.BUILD [TAB(7,NB)] H..
Page 14
Questionnaire Afin de nous aider à améliorer la qualité de notre documentation, nous vous demandons de bien vouloir nous retourner le questionnaire figurant en fin de volume. Agences La liste des agences NUM figure en fin de volume. fr-938872/2...
Page 15
Programmation structurée 1 Programmation structurée 1.1 Généralités 1 - 3 1.1.1 Commandes utilisées dans les ensembles structurés 1 - 3 1.1.2 Règles générales de syntaxe 1 - 3 1.1.3 Imbrications et sauts 1 - 5 1.2 Commandes de programmation structurée 1 - 6 1.2.1 Diagramme d'une condition...
Page 17
Règles générales de syntaxe Les mots IF, REPEAT, WHILE, FOR, ENDI, UNTIL, ENDW et ENDF doivent être les premiers mots du bloc (pas de numéro de séquence). Les mots IF, REPEAT, THEN, ELSE, UNTIL, WHILE, DO et DOWNTO doivent être obligatoirement suivis d’un espace, par exemple :...
Page 18
Des blocs avec numéro de séquence (N..) sont permis dans les boucles. Les blocs commençant par les mots ENDI, ENDW, ENDF, EXIT ou UNTIL ne doivent pas comporter de fonctions de programmation ISO. Dans un même bloc, l’un des mots DO, THEN ou ELSE peut être suivi de fonctions de programmation ISO.
Page 19
Programmation structurée 1.1.3 Imbrications et sauts Imbrications 15 niveaux d’imbrications d’ensembles structurés sont possibles et sont indépen- dants des appels de sous programmes par la fonction G77 ... Par exemple : 1ère imbrication 2ème imbrication 3ème imbrication REPEAT UNTIL ENDI ENDI Sauts La programmation d’un saut, conditionnel ou non G79 ...
Page 20
1.2 Commandes de programmation structurée 1.2.1 Diagramme d'une condition Une condition doit suivre l’un des mots IF, WHILE ou UNTIL et doit être positionnée dans le même bloc. Si le bloc contient des bornes et éventuellement l’incrément, ceux-ci doivent suivre le mot FOR. Diagramme d'une condition <...
Page 21
Programmation structurée 1.2.2 Conditions d’exécution d’instructions Syntaxe IF(condition) THEN (instructions 1) ELSE (instructions 2) ENDI Si la condition est vraie, les "instructions 1" seront exécutées. Dans le cas contraire les "instructions 2" seront exécutées. Le mot ELSE est facultatif. Représentation graphique ALORS SINON Condition...
Page 22
1.2.3 Boucles "répéter jusqu’à" Syntaxe REPEAT (instructions) UNTIL (condition) Les instructions seront exécutées, puis répétées jusqu’à ce que la condition soit vraie. Même si la condition est vraie depuis le début, les instructions seront exécutées une fois. Représentation graphique Répéter Jusqu'à...
Page 23
Programmation structurée 1.2.4 Boucles "répéter tant que" Syntaxe WHILE (condition) DO (instructions) ENDW Tant que la condition est vraie, les instructions seront exécutées. Cependant, si la condition est fausse dès le début, il n’y aura pas exécution des instructions, ce qui diffère de la structure REPEAT UNTIL.
Page 24
1.2.5 Boucles avec variable de contrôle Syntaxe FOR (variable) = (expression 1) TO/DOWNTO (expression 2) BY (valeur) DO (instructions) ENDF Les instructions seront exécutées avec "variable = expression 1". Ensuite cette "variable" sera incrémentée (TO) ou décrémentée (DOWNTO) de "valeur" avant une nouvelle exécution des "instructions"...
Page 25
Programmation structurée Avec le mot TO, la boucle n’est exécutée que lorsque la valeur courante de la variable est inférieure ou égale à la valeur finale (incrémentation de la variable). Avec le mot DOWNTO, La boucle n’est pas exécutée lorsque la valeur courante est supérieure ou égale à...
Page 26
1.2.6 Sortie de boucle Syntaxe EXIT L’instruction EXIT permet de sortir de la boucle itéractive (FOR, WHILE ou REPEAT) et de descendre au niveau d’imbrication inférieur en éliminant les mots IF intérieurs à la boucle. Le mot EXIT est toujours conditionné par le mot IF. Exemple REPEAT (instructions)
Page 27
Programmation structurée Exemple de programmation structurée Perçages de trous suivant une grille L2 = nombre de trous suivant X L3 = nombre de trous suivant Y Départ grille 1 - 13 fr-938872/2...
Page 28
$ X DEPART : L0=$ $ Y DEPART : L1=$ $ PAS EN X : L10=$ $ PAS EN Y : L11=$ L4=0 WHILE L4 <> 15 DO Test réponse oui : O REPEAT $ NOMBRE DE POINTS EN X : L2=$ UNTIL L2>0 Test nombre de colonnes supérieur à...
Page 29
Adressage des fonctions M 2 - 4 2.2.1.3 Adressage d’une liste de bits 2 - 6 2.2.2 Symboles adressant des valeurs numériques 2 - 8 2.2.2.1 Adressage d’une valeur 2 - 8 2.2.2.2 Adressage d’une liste de valeurs 2 - 9 2.3 Symboles d’accès aux données du bloc précédent...
Page 31
à une dimension. Symboles d’accès aux données du bloc courant Ces symboles peuvent être : des symboles adressant des valeurs booléennes, des symboles adressant des valeurs numériques. Syntaxe générale Variable = [ • symbole(i)] Variable Variable programme L, variable symbolique [symb], paramètre E.
Page 32
2.2.1.1 Adressage des fonctions G [ • BGxx] Adressage des fonctions G. Le symbole [ • BGxx] permet de déterminer si les fonctions G spécifiées par xx sont actives ou non, par exemple : [ • BGxx]=0 : fonction Gxx révoquée [ •...
Page 33
Lecture des symboles d'accès à l'état programme Exemple %100 N10 G00 G52 Z0 G71 N40 G97 S1000 M03 M41 N50 M60 G77 H9000 Appel de sous-programme de contrôle outil N350 M02 %9000 [GPLAN] [MGAMME] [MSENS] [GINCH] [GABS] [XRETOUR] [YRETOUR] [ZRETOUR] ENDV $ SAUVEGARDE DU CONTEXTE N10 [GPLAN]=17...
Page 34
2.2.1.3 Adressage d’une liste de bits [ • IBxx(i)] Adressage d’une liste de bits. Le symbole [ • IBxx(i)] permet d’adresser une liste de bits correspondant aux éléments spécifiés par xx. Ces valeurs sont booléennes, 0 ou 1. L’index (i) définit le rang de l’élément dans la liste. [ •...
Page 35
Lecture des symboles d'accès à l'état programme [ • IBXM(i)] Etat miroir ou non miroir sur les axes. L’état miroir est signalé par un bit à 1, l’état non miroir par un bit à 0. Index i = 1 à 9, identiques à la liste des axes programmés dans le bloc courant (Voir [ •...
Page 36
[ • RD] Numéro du correcteur d’outil. [ • RN] Numéro de la dernière séquence (bloc) rencontrée. Si le numéro de bloc est absent, c’est le dernier bloc numéroté qui a été analysé. [ • RED] Valeur du décalage angulaire.
Page 37
= 2 : valeur de Q i = 3 : valeur de R [ • IRH(i)] Numéros de programmes ou sous programmes courants ou de niveaux d’imbrication inférieurs. Index i = 1 à n sous programme. i = 1 : adresse le programme principal i = 2 : adresse le sous programme appelé...
Page 38
[ • IRDI(i)] Valeurs définissant l'origine des décalages angulaires programmés (G59 I.. J.. K..). Index i = 1 à 3. i = 1 : valeur de I i = 2 : valeur de J i = 3 : valeur de K 2 - 10 fr-938872/2...
Page 39
Ces symboles peuvent être : des symboles adressant des valeurs booléennes, des symboles adressant des valeurs numériques. Ces symboles permettent de lire les données modales du bloc précédent. Ces données sont celles du dernier bloc précédent exécutable (ou du dernier bloc peut-être déjà...
Page 41
Rangement dans les variables L900 à L951 3 Rangement dans les variables L900 à L951 3.1 Généralités 3 - 3 3.2 Rangement de F, S, T, H et N dans les variables L900 à L925 3 - 3 3.3 Rangement de EA à EZ dans les variables L926 à L951 3 - 4 3.4 Adressage symbolique des variables L900 à...
Page 43
Un deuxième N (définissant la dernière séquence d’appel d’un sous programme N.. à N.. et qui suit le premier) est rangé dans la variable L914 (ce N ne peut en aucun cas être le numéro de bloc programmé en début de séquence). Adressage du symbole d’état : le bit [ •...
Page 44
Les valeurs de H et N sont rangées dans les variables suivantes : H dans L907, premier N dans L913, second N dans L914. Rangement de EA à EZ dans les variables L926 à L951 Les valeurs de EA à EZ à ranger dans les variables L926 à L951 sont définis par deux caractères alphabétiques : le premier est la lettre E, le second est une lettre comprise entre A et Z.
Page 45
Tableaux et gestion de variables symboliques 4 Tableaux et gestion de variables symboliques 4.1 Création de tableaux de variables symboliques 4 - 3 4.1.1 Définition d’un tableau 4 - 3 4.1.2 Dimensions des tableaux 4 - 3 4.1.3 Initialisation des variables et des tableaux 4 - 5 4.1.4 Création de tableaux pour rangement...
Page 47
Tableaux et gestion de variables symboliques Les outils de programmation décrits dans ce chapitre sont utilisés pour la création de sous programme appelé par fonction G (Voir chapitre 5). Création de tableaux de variables symboliques Les règles d'écriture des variables symboliques utilisées en création de tableaux sont identiques à...
Page 48
Pour les tableaux à 2, 3 ou 4 dimensions : la valeur d’une dimension doit être comprise entre 1 et 255. La valeur d’une dimension doit être déclarée sous la forme d’une valeur immédiate ou d’une variable symbolique déjà initialisée. Par exemple : [VAR1] = 10 [VAR] = [TAB1 (VAR1,5)]...
Page 49
Tableaux et gestion de variables symboliques 4.1.3 Initialisation des variables et des tableaux Les valeurs initialisées sont à 0 par défaut. L’initialisation par des valeurs quelconques est effectuée en déclarant le caractère = suivi de la valeur ou des valeurs initiales séparées par le caractère virgule «,» Les valeurs initiales peuvent être déclarées sur plusieurs blocs ;...
Page 50
4.1.4 Création de tableaux pour rangement de profils Le système offre la possibilité de ranger un profil écrit en ISO ou en PGP dans un tableau de la pile programme. La construction du tableau est effectuée au fur et à mesure de la lecture des blocs du profil.
Page 51
Tableaux et gestion de variables symboliques 4.1.5 Données susceptibles d’être rangées dans un tableau Les données de programmation ISO suivantes sont susceptibles d’être rangées dans un tableau. Fonctions G Il n’est possible de ranger qu’une seule fonction G par bloc. Lors d’un changement de plan d’interpolation dans un bloc, c’est la nouvelle fonction qui est rangée (G17, G18 ou G19 en fraisage.
Page 52
Commandes de gestion des variables symboliques 4.2.1 Rangement d’un profil quelconque BUILD Création d’un tableau pour rangement des trajectoires d’un profil. La fonction BUILD permet le rangement du profil dans un tableau à deux dimensions : la première dimension est limitée à 16 postes. la deuxième dimension est limitée à...
Page 53
Tableaux et gestion de variables symboliques La programmation du nom du tableau TAB et de la variable NB crée automatique- ment un tableau à deux dimensions. Par exemple : %555 N10 ... G..Premier bloc du profil G..G..
Page 54
Déclaration des postes par une liste de bits dans un champ de la fonction BUILD Dans une variable symbolique certains des axes et des arguments suivants peuvent être déclarés sous la forme d’une liste de bits : axes X, Y , Z etc... arguments I, J, K, arguments P, Q, R.
Page 55
Tableaux et gestion de variables symboliques 4.2.2 Rangement d’un profil interpolé dans le plan P.BUILD Création d’un tableau pour rangement des cotes du plan d’interpolation d’un profil. La fonction P.BUILD permet le rangement du profil dans un tableau à deux dimensions : la première dimension est limitée à...
Page 56
Définition des 7 postes de la première dimension avec la fonction P.BUILD poste 1 : Type d’interpolation : valeur 0 pour une interpolation linéaire, valeur -1 pour une interpolation circulaire sens antitrigonométrique, valeur +1 pour une interpolation circulaire sens trigonométrique. poste 2 : Point à...
Page 57
Tableaux et gestion de variables symboliques 4.2.3 Déport d’un profil ouvert et réactualisation du tableau R.OFF Déport normal d’un profil ouvert. La fonction R.OFF permet le déport normal d’un profil initial créé dans un tableau par la fonction P.BUILD ou un tableau de même format soit [Pa(7,Nb)]. Après exécution de la fonction R.OFF, le profil déporté...
Page 58
Création d’un bloc intermédiaire par le système Lorsque le profil comporte des trajectoi- Figure 1 Bloc res particulières le système peut être intermédiaire amené à créer un bloc de raccordement. Déport -1 Profil ouvert Lorsque le profil comporte un étrangle- Figure 2 ment, celui-ci doit être de taille suffisante pour permettre le passage de l’outil, si-...
Page 59
Nombre de postes du tableau. Nom de la variable contenant le nombre de blocs du tableau Pa. Angle Angle de dépouille exprimé en degrés. Particularités La fonction CUT doit être le premier mot du bloc (pas de numéro de séquence). 4 - 15 fr-938872/2...
Page 60
Rappel sur les angles d’un outil de coupe défini dans le plan ZX Angles caractéristiques : εr - Kr : angle d’arête de coupe principale. - εr : angle de pointe de l’outil. - a : angle de dépouille ou d’arête secondaire.
Page 61
Tableaux et gestion de variables symboliques Lorsque l’angle de dépouille est négatif ou nul (compris entre 0° et -180°), les zones du profil situées au dessous de cet angle sont éliminées. Lorsque l’angle de dépouille est positif (compris entre 0° et +180°), les zones du profil situées au dessus de cet angle sont éliminées.
Page 62
4.2.5 Validation ou invalidation de fonctions M et/ou d’axes. Positionnement ou suppression de bits BSET Validation de la programmation de fonctions M et/ou d’un ou plusieurs axes. Positionnement des bits de [ • IBE0(i)] et [ • IBE1(i)] BCLR Invalidation de la programmation de fonctions M et/ou d’un ou plusieurs axes.
Page 63
Particularités Les fonctions BSET ou BCLR : doivent être les premiers mots du bloc (pas de numéro de séquence), doivent être séparées de la liste des symboles par au moins un espace, par contre aucun espace ne doit s’insérer dans la liste des symboles.
Page 64
[Symb] Nom de la variable symbolique. Lorsque la variable recherchée est présente l’analyse du bloc se poursuit. Numéro du bloc auquel doit être effectué un saut lorsque la variable symbolique est absente. Exemple VAR [Symb] ENDV N90 ...
Page 65
Tableaux et gestion de variables symboliques 4.2.7 Mise à disposition d’une liste de variables symboliques SAVE Mise à disposition du programme principal et des sous programmes d’une liste de variables symboliques déclarées dans un sous programme quelconque. Syntaxe SAVE [Symb1] / [Symb2] ... SAVE Mise à...
Page 66
4.2.8 Copie des blocs ou postes d’un tableau dans un autre tableau MOVE Copie de la totalité ou partie d’un tableau dans un autre tableau. La fonction MOVE permet la copie des tableaux ayant les formats suivants : [P(m)] : m blocs de un élément , [P(n,m)] : m blocs de n éléments.
Page 67
Tableaux et gestion de variables symboliques Syntaxe copie partielle des blocs MOVE [Pj(nj,mj)],mj1,mj2 = [Pi(ni,mi)],mi1,mi2 MOVE Copie du contenu d’un tableau dans un autre tableau. Nom du tableau destination. nj,mj Postes et blocs dans le tableau destination. mj1,mj2 Bornes du tableau destination Pj entre lesquelles sont copiés les blocs indexés mi1 à...
Page 68
Particularités La fonction MOVE doit être le premier mot du bloc (pas de numéro de séquence). Le nombre de blocs d'un profil fini est limité à 95. Il est possible d’inverser l’ordre d’une copie en inversant les index des bornes de début et de fin dans l’un des tableaux.
Page 69
Tableaux et gestion de variables symboliques MOVE copie partielle des blocs. Exemple 1 : Copie d’une partie de tableau dans un autre tableau. MOVE [PB(2,5)],2,5 = [PA(2,6)],1,4 Exemple 2 : Copie d’une partie de tableau dans un autre tableau. MOVE [PB(2,5)],2,4 = [PA(2,6)],3,5 Exemple 3 : Inversion des index des bornes et des blocs lors de la copie d’une partie de tableau dans un autre tableau.
Page 70
MOVE copie partielle des blocs et spécification des postes à copier Exemple : Inversion des valeurs des postes lors de la copie d’une partie de tableau dans un autre tableau. Dans le tableau destination PB, seuls les premiers et troisièmes postes sont copiés et les valeurs des premiers postes sont inversées.
Page 71
L’adressage numérique est symbolisé par le caractère @ suivi du nom du vecteur adresse. Les variables adressées par des numéros négatifs sont détruites automatiquement par la fonction G80.
Page 72
4.2.10 Exemples de programmation Exemple 1 Utilisation de BUILD en fraisage (plan XY). En correction de rayon, trajectoires de 1 à 6 puis retour de 6 à 1. Représentation de l’usinage Tableau construit par le programme Points 22.268 8.104 28.243 14.081 18.846 17.501 Valeur du tableau à...
Page 73
Tableaux et gestion de variables symboliques %350 M999 G79 N100 N10 G1 X Y EA20 ES EB10 EA70 Définition (point 1 à 6) G2 I50 J30 R15 N40 G1 Y20 N100 BUILD [TAB(G/X/Y/I/J,NB)]N10 N40 VAR [I] ENDV FOR [I]=1 T0 [NB] D0 G41 D1 Trajectoire de 1 à...
Page 74
Exemple 2 Utilisation de P.BUILD en tournage. Exécution d’un profil avec déport et emploi des fonctions MOVE et R.OFF Représentation de l’usinage 4 - 30 fr-938872/2...
Page 75
Tableaux et gestion de variables symboliques P.BUILD [C(7,N)] N100 N110 Création d’un tableau pour rangement du profil VAR [R][G(3)]=2,1,3 [I] [V] ENDV FOR [R]= 30 DOWNTO 2 BY 2 DO VAR [M]=[N]-1 [P(7,M)] ENDV MOVE [P(7,M)] = [C(7,N)],2,[N] Copie d’un tableau dans un autre tableau R.OFF [P((7,M)] / + 1 / [R] Déport du profil à...
Page 77
Création de sous programmes appelés par fonctions G 5 Création de sous programmes appelés par fonctions G 5.1 Appel de sous programme par fonctions G 5 - 3 5.2 Non visualisation des sous programmes en cours d’exécution 5 - 5 5.3 Exemples de programmation 5 - 6 5 - 1...
Page 79
Particularités ! ATTENTION Les fonctions G200 à G255 peuvent éventuellement servir à des applications NUM, il est par conséquent conseillé de n’utiliser que les fonctions de G100 à G199. Liste des fonctions G forçant l’appel d’un sous programme : G06, G31, G33, G38, G45, G46, G48, G49, G63, G64, G65, G66, G81 à...
Page 80
Un appel de cycle par fonction Gxxx non accompagné d’arguments est ignoré par le système. Ces arguments sont définis dans le sous programme %10xxx appelé. Les sous programmes appelés par fonctions G doivent avoir la visibilité du contexte programme et de toutes les fonctions programmées dans le bloc d’appel. Le déroulement d’un sous programme appelé...
Page 81
Un sous programme et ses autres sous programmes internes en cours d’exécution peuvent être non visualisés en page programme (PROG). Le caractère " : " placé derrière le numéro du sous programme définit la non visualisation et seul le bloc d’appel du sous programme est visualisé.
Page 82
Exemples de programmation Exemple 1 Création d’un cycle particulier avec la fonction G199 (sous programme %10199). Le cycle ci-dessous n’est donné qu’à titre d’exemple de création. Le cycle permet l’exécution de plusieurs perçages ou pointages "P" répartis sur un cercle de rayon "R" et centré suivant X Y (G17). Syntaxe et paramètres du cycle N..
Page 83
Création de sous programmes appelés par fonctions G Représentation de l’usinage 3 (6 trous) 1 (6 trous) 5 (6 trous) 2 (4 trous) 4 (4 trous) Sous programme du cycle %10199: (Perçages équidistants sur cercle) [G0/1] [RETOUR] [FEED] [G94/5] ENDV [G0/1]=3 * [..BG03] [G0/1]=2 * [..BG02] + [G0/1] Mémo G0, G1, G2 ou G3 [G0/1]=1 * [..BG01] + [G0/1]...
Page 84
G [G94/5] F [FEED] Retour aux conditions initiales PULL L0 - L7 G79 N9999 Fin du cycle N100 E.500 Numéro d’erreur (Voir %20500) N101 E.501 Numéro d’erreur (Voir %20500) N9999 Programme de messages d’erreurs %20500 (Messages d’erreurs du cycle G199)
Page 85
G177 N.. N.. ER.. G177 Cycle d’usinage par passes aller-retour. N.. N.. Numéro du premier et du dernier bloc définissant le profil (lorsque les blocs sont inversés l’usinage du profil est inversé). ER.. Argument forçant ou annulant la correction de rayon : ER 40 : usinage centre outil ER 41 : correction à...
Page 86
N180 G177 N150 N80 ER41 Cycle retour N190 G0 G52 Z0 N200 G0 X-100 M5 N210 M02 Représentation de l’usinage Départ usinage retour G59 Y20 Départ usinage aller Sous programme du cycle %10177: (Profil par passes aller-retour) G998 VAR [N1] [N2] [PLANF] [G] [H] [diam] [NBLOC] [M998] [multi]=1 [axe1] [axe2] [PLANT] [centre1] [centre2] ENDV IF 'ER<40 OR 'ER>42 THEN 'ER=40...
Page 87
Création de sous programmes appelés par fonctions G IF [PLANT]<>0 THEN IF [.BG20]=1 THEN @Y=X @X=Z @J=I @I=K ELSE @Y=Y @X=X @J=J @I=I ENDI IF [diam]=1 THEN [multi]=2 Si tournage au diamètre (x2) ENDI ELSE E11005=0 IF [.BG17]=1 THEN @Y=Y @X=X @J=J @I=I ELSE IF [.BG18]=1 THEN @Y=X @X=Z @J=I @I=K Equivalence d'adresses en fraisage...
Page 88
Exemple 3 Cycle de perçage débourrage créé par la société NUM et appelé par la fonction G83 Le cycle %10083 appelle le sous programme %10080 permettant l’analyse de tous les cycles créés par NUM (Voir sous programme %10080 à la suite du sous programme %10083).
Page 89
Création de sous programmes appelés par fonctions G ENDI IF 'P > 0 THEN 'I=0 'L='ER-L[LZ] (erreur si plan de remontee = fond de trou) IF 'L = 0 THEN E.891 ENDI IF 'L < 0 THEN 'L=-'L ENDI IF 'Q = 0 OR 'Q > 'P THEN 'Q = 'P ENDI (calcul profondeur 1ere passe) 'I = 'Q-'P * 'I/'L + 'P + 'I...
Page 90
ENDI (descente fond de trou) [cote]=L[LZ] G1 F[RF] G77 H10080 N[I] N[I] ENDI N100 (temporisation par EF) IF [.IBE1(6)]=1 THEN G4 FL931 ENDI (remontee a ER) [cote] = 'ER [I]=[IZ]+10 G0 G77 H10080 N[I] N[I] G997 G9 M[M998] G[G90/1] G[G0/1] F[RF] E11005=[diam] Sous programme %10080 appelé...
Page 91
Création de sous programmes appelés par fonctions G [.IBX2(IY)] = 0 THEN [IY] = [IY]-3 ENDI (et sur axe outil ) IF [.IBX2(IZ)] = 0 THEN [IZ] = [IZ]+3 [LZ]=[LZ]-3 IF [.IBX2(IZ)] = 0 THEN E.880 ENDI ENDI (mettre dans 'ER= la derniere cote Z, retour si ER n'a pas ete programme) IF [.IBE1(18)] = 0 THEN 'ER = [..IRX(IZ)] ELSE [E]=[IZ]-1 * 1000+70007 (Si programmation au diametre, correction de 'ER)
Page 92
(tst rot broche si axe programme) IF [I]<>0 THEN [E]=[M3/4] * [.RS] G79 [E]=0 N81 ENDI G79 N800 (message de defaut) N81 E.831 (broche a l’arret) N82 E.882 (fond de trou non programmee) N83 E.890 (orientation outil incompatible) N84 E.894 (ER interdit en G20) N85 E.895 (G21,G22 interdit dans ce cycle) (—deplacements—) N11 X[cote]...
Page 93
Interpolation polynomiale 6 Interpolation polynomiale 6.1 Généralités 6 - 3 6.2 Programmation de l'interpolation polynomiale segmentée 6 - 3 6.2.1 Particularités des axes et coefficients programmés 6 - 4 6.2.2 Transformations géométriques 6 - 4 6.2.3 Vitesse d’avance en interpolation 6 - 5 6.2.4 Limitation du nombre de coefficients...
Page 95
Interpolation polynomiale Généralités L’interpolation polynomiale est un outil permettant la définition de trajectoires à partir de polynômes. Elle est utilisée pour la réalisation de courbe spline. La position sur chacun des axes est définie par un polynôme basé sur un paramètre indépendant (sans dimension) variant de 0 à...
Page 96
6.2.1 Particularités des axes et coefficients programmés La somme des coefficients de degrés supérieurs à 0 doit être égale au déplacement relatif de l’axe dans le bloc. REMARQUE On notera qu'il n'y a pas d'émission de message en cas d'erreur dans la somme des coefficients.
Page 97
Interpolation polynomiale Par exemple : Sans décalage angulaire G1 X20 Y0 /50/-180/240/-110 Avec décalage angulaire ED.. G1 X20 /20/0/0 Y0 /50/-180/240/-110 Correction de rayon en interpolation polynomiale En correction de rayon (G41 ou G42) le déport normal de l’outil n’est effectué que si les deux axes du plan d’interpolation sont programmés.
Page 98
6.2.4 Limitation du nombre de coefficients Pour chaque bloc, les coefficients sont rangés dans la pile programme qui comporte au maximum 32 postes. Chaque coefficient est rangé dans un poste; de plus pour chaque axe, un poste est occupé par l’adresse physique de l’axe suivi de son nombre de coefficients.
Page 99
Interpolation polynomiale Programmation de l'interpolation polynomiale lisse Dans la syntaxe du bloc, chaque polynôme est caractérisé par la position d’arrivée suivie des coefficients de degré croissant séparés par le caractère « / » . L'argument I.. dans la syntaxe différencie de l'interpolation polynomiale lisse de l'interpolation polynomiale segmentée (voir 6.1).
Page 100
6.3.2 Restrictions en interpolation polynomiale lisse En interpolation polynomiale lisse la correction d’outil en G41, G42 et G29 ne peut être utilisée. Le recul sur trajectoire défini par une interpolation polynomiale lisse est impossible. 6 - 8 fr-938872/2...
Page 101
Transformations de coordonnées 7 Transformations de coordonnées 7.1 Généralités 7 - 3 7.2 Mise en œuvre de la matrice de transformation des coordonnées 7 - 3 7.3 Application de la transformation de coordonnées 7 - 5 7.3.1 Restrictions et conditions d'utilisation 7 - 5 7.3.2 Temps de traitement...
Page 103
Transformations de coordonnées Généralités Les transformations de coodonnées sont effectuées par l'utilisation d'une matrice carrée. Cet outil est utilisé par l'application NUM traitant l'usinage dans un plan incliné. X' = K . La transformation des mouvements est effectuée en aval des interpolateurs par la matrice représentée ci-après.
Page 104
On notera que les vitesses de passages d'angles et les accélérations limites peuvent ne pas être respectées. Numéros et messages d'erreurs Erreur 2 : Pas de signe + ou - derrière la fonction G24. Erreur 14 : Option plan incliné invalide.
Page 105
Transformations de coordonnées Application de la transformation de coordonnées La transformation de coordonnées doit être appliquée derrière les interpolateurs, mais avant les traitements éventuels des opérateurs dynamiques et de la calibration inter-axes. Représentation schématique Ecart de poursuite → → Interpolateur X'=K.X Références Références...
Page 106
Exemple de sous programme d'application Sous programme d'application %10150 Cet exemple n'est donné qu'à titre indicatif. %10150 VAR [A]=[.RX(7)] [B]=[.RX(8)] [C]=[.RX(9)] [K11] [K12] [K13] [K21] [K22] [K23] [K31] [K32] [K33] [V] [X] [Y] [Z] ENDV (Remettre les cotes du bloc précédent dans A B et C) IF [.IBX(7)] = 1 THEN [V]=[..IRX(7)] A[V] ENDI...
Page 107
Transformations de coordonnées Appel de la fonction de validation du plan incliné %... N.. G150 X.. Y.. Z.. A.. B.. 7 - 7 fr-938872/2...
Page 109
Fonction RTCP 8 Fonction RTCP 8.1 Généralités 8 - 3 8.1.1 Commande des axes rotatifs 8 - 3 8.1.2 Traitements effectués sur les axes 8 - 3 8.2 Mise en oeuvre de la fonction RTCP 8 - 4 8.3 Description des cinématiques 8 - 6 8.3.1 Description des "twist"...
Page 111
à la pièce en le faisant pivoter autour de son centre. Le programme d’usinage contient les coordonnées cartésiennes du bout de l’outil ou du point de contact du référentiel de la pièce. Une application créée par NUM permet de traiter la majorité des cas de figures par fonction RTCP. 8.1.1 Commande des axes rotatifs Selon le mode de commande des axes rotatifs, deux cas peuvent se présenter :...
Page 112
Mise en oeuvre de la fonction RTCP La mise en œuvre de la fonction RTCP est réalisée dans le programme pièce par la syntaxe de programmation définie ci-après. Cette syntaxe contient le code de validation de la fonction RTCP suivie des arguments désignant les axes rotatifs (axes de tête "twist"...
Page 113
être programmés avec trois arguments et les inclinaisons avec deux arguments, nombre d’articulations et d’inclinaisons de plans supérieurs à sept, absence du numéro de fonctionnalité RTCP en page "OPTIONS" de la CN. Autres défauts Les défauts suivants peuvent aussi entraîner l’émission d’un message d’erreur : le changement de correcteur d’outil alors que le RTCP est validé...
Page 114
Selon le cas la validation de la fonction RTCP est donc appliquée avec des arguments spécifiques désignant les axes rotatifs. Divers cas de configurations sont traités par une application NUM. 8.3.1 Description des "twist"...
Page 115
Fonction RTCP Exemple Représentation de la cinématique tête "twist" 45° 45° Programmation [xl]=Xl/L [yl]=Yl/L [zl]=Zl/L G26+ I[xl] J[yl] K[zl] TCXc/Yc/Zc TIca/sa TBXb/Yb/Zb 8 - 7 fr-938872/2...
Page 116
8.3.2 Description des "plateaux" Dans le cas des "plateaux", chaque articulation est décrite par un axe de rotation et un vecteur de translation. Le premier vecteur de translation positionne en absolu le centre du premier plateau (plateau reposant sur le bâti machine) et le ou les plateaux suivants sont déclarés en relatif pour des position "0"...
Page 117
Fonction RTCP Traitements liés à la fonction RTCP Les autres traitements géométriques pouvant être associés à la fonction RTCP sont les suivants : pièce sur plan incliné, excentration de plateau, correction de longueur d’outil, correction dynamique d’outil, correction d’outil dans l’espace. 8.4.1 Pièce sur plan incliné...
Page 118
8.4.2 Excentration de plateau rotatif (DEC3) Les décalages liés à l’excentration du plateau rotatif (DEC3) ne sont plus traités en tant que tels lorsque la fonction RTCP est validée. La connaissance de la position de l’axe de rotation du plateau porte-pièce fait que cette correction est automatiquement incluse dans la fonction RTCP.
Page 119
Fonction RTCP Particularité de correction d'outil en G29 avec plateaux (sans axe "twist") Lorsque la cinématique d'une machine ne comporte que des "plateaux" (pas d'axe "twist"), il est nécessaire pour que la correction dans l'espace (G29) soit prise en compte de déclarer derrière la fonction G26+ : le vecteur de direction d'outil IJK suivide l'argument TD avant de décrire la cinématique des "plateaux".
Page 121
Fonction N/M AUTO 9 Fonction N/MAUTO 9.1 Généralités 9 - 3 9.1.1 Conditions générales requises en N/M AUTO 9 - 3 9.1.2 Axes non interpolés et axe NMA 9 - 3 9.1.3 Erreurs en N/M AUTO 9 - 4 9.1.4 Cas de traitement 9 - 4 9.1.5...
Page 123
Fonction N/M AUTO Généralités N/M AUTO signifie que N axes, parmi les M axes d'une machine sont contrôlés par le programme pièce, tandis que le ou les autres sont commandés manuellement. Par exemple : 2 axes interpolés et le troisième axe déplacé en manuel (2/3 AUTO) , 3 axes interpolés et les deux autres déplacés en manuel (3/5 AUTO).
Page 124
On notera que parmi les cinq axes non interpolés (à un instant donné) : seul un axe peut être piloté en NMA à l'aide de ses manipulateurs ou de sa manivelle, les quatre autres axes non interpolés (au plus) ne sont pas entraînés (au moins directement).
Page 125
Fonction N/M AUTO 9.1.5 Exemples de programmes et d'utilisation Les programmes ci-après définissent plusieurs cas possibles de validation et d'invalidation de la fonction N/M AUTO. Cas de validation/invalidation sans "ARUS" Programme original E91202=1 X10 Z10 X40 Z40 X80 Z30 X110 Z10 Représentation schématique Zone N/M AUTO valide %W2.1=0...
Page 126
Invalidation prise en compte suite à modification du paramètre E91202 E91202=1 X10 Z0 X40 Z40 Arrêt programmé X80 Z30 En manuel, axe Z déplacé à 60 E91202=0 Modification de E91202 X110 Z10 Axe Z interpolé de 60 à 10 Cas de validation/invalidation avec "ARUS" Programme original E91202=1 X10 Z10...
Page 127
Fonction N/M AUTO Mise en œuvre de la fonction N/M AUTO Lors de la mise en œuvre, un axe physique xx peut être déclaré non interpolable : "à la volée", "machine arrêtée" (c'est à dire voyant "ARUS" allumé ou voyant CYCLE éteint). Le programme automate doit autoriser et/ou confirmer l'état N/M AUTO en effectuant %W2.1=1.
Page 128
"RAP", immédiat "IMD", intervention "INTERV", séquentiel "SEQ" recherche du numéro de séquence "RNS" (voir remarque ci-après). REMARQUES En RNS, seuls les axes définis comme interpolables sont concernés par le rappel d’axes. Il est possible de passer d'un mode à l'autre, mais dans tous les cas ce changement doit être effecté...
Page 129
Fonction N/M AUTO 9.3.2 Utilisation de la manivelle 9.3.2.1 Affectation d'axe Afin qu'un axe NMA soit entraîné par manivelle, il est nécessaire que l'automate affecte cet axe non interpolé à la manivelle : [%W1x.B := Nom de l'axe non interpolé (x= A, B, C, ou D)] autorise les commandes d'avance des axes dans le (ou les) sens souhaité(s) : [%W6.0 à...
Page 130
9.3.2.4 Cas de blocage d’un axe alors que E912xx est à 1 Les raisons pouvant expliquer qu'un axe est bloqué sont les suivantes (même si E912xx=1) : variable %W2.1 à l'état 0 (C_NMAUTO), la manivelle n'est pas déclarée, n'a pas été reconnue ou certaines valeurs affectées aux paramètres machine sont incohérentes (voir P12, P13, P14), l'axe n'a pas été...
Page 131
Fonction N/M AUTO Arrêt-Reprise en N/M AUTO Afin de dévalider un axe précédemment déclaré non interpolé, trois possibilités sont utilisables. Possibilité 1 Le programme pièce effectue : E912xx=0 ; la fonction N/M AUTO est toujours valide et seul l'axe xx redevient interpolé. %R2.1 (E_NMAUTO) reste à...
Page 132
Contrôles réalisés en N/M AUTO Les contrôles réalisés en N/M AUTO sont les suivants : contrôle d’accélération, contrôle de vitesse, contrôle des courses, contrôles divers. 9.5.1 Contrôles d’accélération En cours de N/M AUTO, l’accélération maximale tolérée est l’accélération maximum de l’axe NMA correspondant (voir paramètre machine P32 (mot pair) : F pour vitesse de travail).
Page 133
Tableaux récapitulatifs des commandes de programmation structurée Annexe A Tableau récapitulatif des commandes de programmation structurée EXIT : Sortie de boucle (Voir 1.2.6) Syntaxe : EXIT FOR : Boucles avec variable de contrôle (Voir 1.2.5) Syntaxe : FOR (variable) = (expression 1) TO/DOWNTO (expression 2) BY (valeur) DO (instructions) ENDF IF : Conditions d’exécution d’instructions (Voir 1.2.2)
Page 135
Tableaux récapitulatifs des commandes de gestion des variables symboliques Annexe B Tableau récapitulatif des commandes de gestion des variables symboliques BUILD : Création d’un tableau pour rangement des trajectoires d’un profil (Voir 4.2.1) Syntaxe générale : BUILD [TAB(G / X / Y / I / J,NB)] H.. N.. +n N..+n BCLR : Invalidation de la programmation de fonctions M et/ou d’un ou plusieurs axes.
Page 136
R.OFF : Déport normal d’un profil ouvert (Voir 4.2.3) Syntaxe : R.OFF [Pa(7,Nb)] / ±1 / [R] SAVE : Mise à disposition du programme principal et des sous programmes d’une liste de variables symboliques déclarées dans un sous programme quelconque (Voir 4.2.7) Syntaxe : SAVE [Symb1] / [Symb2] ...
Page 137
Tableaux récapitulatifs des symboles d'accès à l'état programme Annexe C Tableau récapitulatif des symboles d’accès à l’état programme C.1 Adressage des fonctions G et M C - 3 C.2 Adressage d’une liste de bits C - 3 C.3 Adressage d’une valeur C - 3 C.4 Adressage d’une liste de valeurs C - 4...
Page 139
[ • RF] 2.2.2.1 Valeur de la vitesse d’avance [ • RG4] 2.2.2.1 Valeur de la temporisation programmée (G04 F..) [ • RG80] 2.2.2.1 Numéro de la fonction appelante dans appel de sous programme par fonction G C - 3 fr-938872/2...
Page 140
Symbole Voir Désignation [ • RN] 2.2.2.1 Numéro de la dernière séquence (bloc) rencontrée [ • RNC] 2.2.2.1 Valeur de la fonction NC [ • RS] 2.2.2.1 Valeur de la vitesse de broche [ • RT] 2.2.2.1 Numéro d’outil [ • RXH] 2.2.2.1...
Page 141
Tableaux récapitulatifs des symboles de rangement dans les variables L900 à L951 Annexe D Tableau récapitulatif des symboles de rangement dans les variables L900 à L951 D.1 Symboles de rangement dans les variables L900 à L925 D - 3 D.2 Symboles de rangement dans les variables L926 à L951 D - 3 D - 1 fr-938872/2...
Page 143
Tableaux récapitulatifs des symboles de rangement dans les variables L900 à L951 Symboles de rangement dans les variables L900 à L925 Symboles Voir Variables L Adresses [ • IBE0(6)] L905 [ • IBE0(8)] L907 [ • IBE0(14)] L913 [ • IBE0(15)] L914 [ •...