#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass book
\begin_preamble
\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref}
\title{The EMC2 RS274NGC Interpreter}
\end_preamble
\language frenchb
\inputencoding default
\fontscheme bookman
\graphics default
\float_placement !h
\paperfontsize 10
\spacing single
\papersize Custom
\paperpackage a4
\use_geometry 1
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\paperwidth 8.5in
\paperheight 11in
\leftmargin 1.2in
\topmargin 1in
\rightmargin 0.6in
\bottommargin 0.6in
\secnumdepth 5
\tocdepth 5
\paragraph_separation skip
\defskip smallskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 2
\paperpagestyle default
\layout Chapter
Vue d'ensemble d'un centre d'usinage
\layout Standard
Cette section donne une brève description des interactions entre les organes
d'un centre d'usinage et son interpréteur de commandes.
Le lecteur est sensé être déjà familier avec les centres d'usinage.
\layout Standard
Le langage RS274/NGC
\begin_inset LatexCommand \index{RS274NGC}
\end_inset
et les fonctions d'usinage standards qui en découlent permettent d'envisager
un centre d'usinage sous deux points de vue:
\layout Standard
(1) les composants mécaniques de la machine.
\layout Standard
(2) les composants de contrôle et les données utilisées pour le contrôle
de la machine.
\layout Section
Composants mécaniques
\layout Standard
Un centre d'usinage dispose de beaucoup de composants mécaniques pouvant
être contrôlés ou qui peuvent avoir une incidence sur la façon dont le
contrôle de la machine s'effectue.
Cette section décrit les composants qui interagissent avec l'interpréteur.
Les composants mécaniques, qui n'interagissent pas avec l'interpréteur,
comme les boutons du jog, ne seront pas décrits ici, même si ils affectent
le contrôle.
\layout Subsection
Axes
\begin_inset LatexCommand \index{axes}
\end_inset
\layout Standard
Tout centre d'usinage dispose d'un ou de plusieurs axes.
Les différents types de machines ont différentes combinaisons d'axes.
Par exemple, une fraiseuse 4 axes peut avoir la combinaison d'axes XYZA
ou XYZB.
Un tour classique aura les axes XZ.
Une machine de découpe à fil chaud aura les axes XYUZ.
\begin_inset Foot
collapsed false
\layout Standard
Si le mouvement des composants mécaniques n'est pas indépendant, comme sur
une machine hexapode, le langage RS274/NGC et les fonctions standards seront
quand même utilisables, tant que le contrôle de bas niveau sait comment
contrôler les mécanismes actuels pour produire le mouvement relatif de
l'outil et de la pièce qui auraient été produits par des axes indépendants.
C'est appelé, la cinématique.
\end_inset
\begin_inset Foot
collapsed false
\layout Standard
Avec EMC, le cas de la machine à portique XYYZ avec deux moteurs pour un
axe est mieux traité par la cinématique que par un axe linéaire supplémentaire.
\end_inset
\layout Subsubsection
Axes linéaires primaires
\begin_inset LatexCommand \index{axes linéaires primaires}
\end_inset
\layout Standard
Les axes X, Y et Z produisent des mouvements linéaires dans trois directions,
mutuellement orthogonales.
\layout Subsubsection
Axes linéaires secondaires
\begin_inset LatexCommand \index{axes linéaires secondaires}
\end_inset
\layout Standard
Les axes U, V et W produisent des mouvements linéaires dans trois directions
mutuellement orthogonales.
Habituellement, X et U sont parallèles, Y et V sont parallèles et Z et
W sont parallèles.
\layout Subsubsection
Axes rotatifs
\begin_inset LatexCommand \index{Axes rotatifs}
\end_inset
\layout Standard
Les axes A, B et C produisent des mouvements angulaires (rotations).
Habituellement, l'axe de rotation de A est parallèle à X, l'axe de rotation
de B est parallèle à Y et l'axe de rotation de C est parallèle à Z.
\layout Subsection
Broche
\begin_inset LatexCommand \index{broche}
\end_inset
\layout Standard
Un centre d'usinage est équipé d'une broche qui maintient l'outil coupant,
la sonde de mesure et d'autres outils.
La broche peut tourner dans les deux sens.
Elle peut être conçue pour tourner à vitesse constante mais réglable.
Excepté sur les machines dont la broche est montée sur un axe rotatif,
l'axe de la broche est maintenu parallèle à l'axe Z et il est coïncident
avec l'axe Z quand X et Y sont à zéro.
La broche peut être stoppée sur une position fixée ou non.
\layout Subsection
Arrosages
\begin_inset LatexCommand \index{arrosage}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un composant fournissant l'arrosage
fuide ou en brouillard.
\layout Subsection
Chargeur de pièces
\begin_inset LatexCommand \index{chargement}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un système de chargement des pièces.
Le système se compose de deux porte-pièces sur lesquels sont fixés les
bruts des pièces à usiner.
Un seul porte-pièce à la fois est en position d'usinage.
\layout Subsection
Carrousel d'outils
\begin_inset LatexCommand \index{carrousel d'outils}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un carrousel d'outils dans lequel
sont rangés les outils déjà montés dans leurs porte-outils.
\layout Subsection
Changeur d'outil
\begin_inset LatexCommand \index{changeur d'outil}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un mécanisme de changement d'outils
(fixés dans les porte-outils) entre le carrousel d'outils et la broche.
\layout Subsection
Visu des messages
\layout Standard
Un centre d'usinage est équipé d'une visualisation capable d'afficher les
messages pour l'opérateur.
\layout Subsection
Correcteurs de vitesse
\begin_inset LatexCommand \index{correcteurs vitesse}
\end_inset
d'avance et de broche
\begin_inset LatexCommand \index{correcteur v. broche}
\end_inset
\begin_inset LatexCommand \label{sub:-Feed-and-Speed}
\end_inset
\layout Standard
Un centre d'usinage est équipé de boutons de réglage de la vitesse d'avance
et de la vitesse de rotation de la broche, ils laissent l'opérateur corriger
les vitesses nécessaires pour la broche et l'avance travail, il peut ainsi
augmenter ou réduire les vitesses programmées.
Voir la section
\begin_inset LatexCommand \ref{sub:-Interaction-vitesses}
\end_inset
.
\layout Subsection
Bouton d'effacement de block
\begin_inset LatexCommand \index{Bouton effacement de block}
\end_inset
\begin_inset LatexCommand \label{sub:-Bouton-effacement-de-block}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un bouton d'effacement de block.
Voir la section
\begin_inset LatexCommand \ref{sub:-Interaction-effacement-de-block}
\end_inset
.
\layout Subsection
Bouton d'arrêt optionnel du programme
\begin_inset LatexCommand \index{arrêt optionnel}
\end_inset
\begin_inset LatexCommand \label{sub:-arrêt-optionnel}
\end_inset
\layout Standard
Un centre d'usinage peut être équipé d'un bouton d'arrêt du programme.
Voir la section
\begin_inset LatexCommand \ref{sub:-Interaction-arrêts-optionnels}
\end_inset
.
\layout Section
Composants de contrôle et de données
\layout Subsection
Axes linéaires
\layout Standard
Les axes X, Y et Z forment un système de coordonnées orthogonales standard.
La position d'un axe s'exprime en utilisant ses coordonnées.
\layout Standard
Les axes U, V et W forment également un système de coordonnées standard.
X et U sont parallèles, Y et V sont parallèles enfin Z et W sont parallèles.
\layout Subsection
Axes rotatifs
\layout Standard
Les axes rotatifs se mesurent en degrés.
Leur sens de rotation positif est le sens anti-horaire quand l'observateur
est placé face à l'axe.
\begin_inset Foot
collapsed false
\layout Standard
Si les parallèlismes sont particuliers, le constructeur du système devra
indiquer à quels sens de rotation correspondent horaire et anti-horaire.
\end_inset
\layout Subsection
Point contrôlé
\begin_inset LatexCommand \label{sub:-Point-contrôlé}
\end_inset
\begin_inset LatexCommand \index{point contrôlé}
\end_inset
\layout Standard
Le point contrôlé est le point dont la position et la vitesse de déplacement
sont contrôlés.
Quand la compensation de longueur d'outil est zéro (valeur par défaut),
c'est un point situé sur l'axe de la broche et proche de la fin de celle-ci.
Cette position peut être déplacée le long de l'axe de la broche en spécifiant
une compensation de longueur d'outil.
Cette compensation correspond généralement à la longueur de l'outil coupant
courant.
Ainsi, le point contrôlé est à la pointe de l'outil.
Sur un tour, les correcteurs d'outil peuvent être spécifiés pour les axes
X et Z, le point contrôlé est à la pointe de l'outil ou (correction du
rayon de bec) légèrement en retrait du point d'intersection des droites
perpendiculaires formées par l'axe des points de tangence à la pièce, de
face et sur le côté de l'outil.
\layout Subsection
Mouvement linéaire coordonné
\begin_inset LatexCommand \label{sub:-Mouvement-linéaire-coordonné}
\end_inset
\layout Standard
Pour mener un outil sur une trajectoire spécifiée, un centre d'usinage doit
coordonner les mouvements de plusieurs axes.
Nous utilisons le terme
\begin_inset Quotes eld
\end_inset
mouvement linéaire coordonné
\begin_inset Quotes erd
\end_inset
pour décrire une situation dans laquelle, nominalement, chacun des axes
se déplace à vitesse constante et tous les axes se déplacent de leur point
de départ à leur point d'arrivée en même temps.
Si deux des axes X, Y, Z (ou les trois) se déplacent, ceci produit un mouvement
en ligne droite, d'où le mot
\begin_inset Quotes eld
\end_inset
linéaire
\begin_inset Quotes erd
\end_inset
dans le terme.
Dans les véritables mouvements, ce n'est souvent pas possible de maintenir
la vitesse constante à cause des accélérations et décélérations nécessaires
en début et fin de mouvement.
C'est faisable, cependant, de contrôler les axes ainsi, chaque axe doit
en permanence faire la même fraction du mouvement requis que les autres
axes.
Ceci déplace l'outil le long du même parcours et nous appelons aussi ce
genre de mouvement, mouvement linéaire coordonné.
\layout Standard
Un mouvement linéaire coordonné peut être exécuté soit en vitesse travail,
soit en vitesse rapide, ou il peut être synchronisé à la rotation de la
broche.
Si les limites physique de l'axe rendent le déplacement impossible, tous
les axes seront ralentis pour maintenir le chemin prévu.
\layout Subsection
Vitesse
\begin_inset LatexCommand \index{vitesse d'avance}
\end_inset
\begin_inset LatexCommand \label{sub:-Vitesse-d'avance}
\end_inset
\layout Standard
La vitesse à laquelle le point contrôlé se déplace est ajustable par l'opérateur.
Sauf cas particulier, (vitesse inverse du temps, vitesse par tour, voir
la section
\begin_inset LatexCommand \ref{sub:G93,-G94:-Set}
\end_inset
) , dans l'interpréteur, l'interprétation des vitesses est la suivante:
\layout Enumerate
Si le déplacement concerne un des axes XYZ, F est en unités machine par
minute dans le système Cartésien XYZ et les mouvements des autres axes
(UVWABC) sont également dans un même mode de coordonnées.
\layout Enumerate
Autrement, si le déplacement concerne un des axes UVW, F est en unités machine
par minute dans le système Cartésien UVW, tous les autres axes (ABC) se
déplacent dans un même mode de coordonnées.
\layout Enumerate
Autrement, le mouvement est purement rotatif et le mot F est en unités de
rotation dans le système pseudo-Cartésien ABC.
\layout Subsection
Arrosage
\begin_inset LatexCommand \index{arrosage}
\end_inset
\layout Standard
Arrosage fluide ou brouillard (gouttelettes) peuvent être activés séparément.
Le langage RS274/NGC les arrête ensemble (voir la section
\begin_inset LatexCommand \ref{sub:M7,-M8,-M9:}
\end_inset
).
\layout Subsection
Temporisation
\begin_inset LatexCommand \index{tempo}
\end_inset
\layout Standard
Une temporisation peut être commandée (ex: pour immobiliser tous les axes)
pendant une durée spécifique.
La broche n'est pas arrêtée pendant une temporisation! Sans s'occuper du
mode de contrôle de trajectoire (voir la section
\begin_inset LatexCommand \ref{sub:Modes-de-contrôle-trajectoires}
\end_inset
) la machine s'arrêtera exactement à la fin du dernier mouvement avant la
temporisation.
\layout Subsection
Unités
\begin_inset LatexCommand \index{unités}
\end_inset
\layout Standard
Les unités utilisées pour les distances le long des axes X, Y et Z peuvent
être les pouces ou les millimètres.
La vitesse de rotation de la broche est en tours par minute.
Les positions des axes rotatifs sont exprimées en degrés.
Les vitesses d'avance sont exprimées en unités machine par minute ou en
degrés par minute ou en unités de longueur par tour de broche, comme décrit
dans la section
\begin_inset LatexCommand \ref{sub:-Vitesse-d'avance}
\end_inset
.
\layout Subsection
Position courante
\layout Standard
Le point contrôlé est toujours à un emplacement appelé la "position courante,''
et le contrôleur sait toujours où est cette position.
Les valeurs représentant la position courante doivent être ajustées en
l'absence de tout mouvement des axes si un de ces événements a lieu:
\layout Enumerate
Les unités de longueur ont changé.
\layout Enumerate
La compensation de longueur d'outil a changé.
\layout Enumerate
Le décalage d'origine a changé.
\layout Subsection
Choix du plan de travail
\begin_inset LatexCommand \label{sub:-Choix-du-plan-de-travail}
\end_inset
\layout Standard
Il y a toujours un plan sélectionné, qui doit être le plan XY, le plan YZ,
ou le plan XZ de la machine.
L'axe Z est, bien sûr, perpendiculaire au plan XY, l'axe X perpendiculaire
au plan YZ et l'axe Y perpendiculaire au plan XZ.
\layout Subsection
carrousel d'outils
\layout Standard
Aucun ou un outil est assigné à chaque emplacement dans le carrousel.
\layout Subsection
Changeur d'outil
\layout Standard
Un centre d'usinage peut commander un changeur d'outils.
\layout Subsection
Chargeur de pièce
\layout Standard
Les deux porte-pièces peuvent être intervertis par commande.
\layout Subsection
Boutons des correcteurs de vitesses
\layout Standard
Les boutons des correcteurs de vitesses peuvent être activés (ils fonctionnent
normalement) ou rendus inopérents (Ils n'ont plus aucun effet).
Le langage RS274/NGC dispose d'une commande qui active tous les boutons
et une autre qui les désactive (voir la section
\begin_inset LatexCommand \ref{sub:M48,-M49:-Correcteurs}
\end_inset
).
Voir la section
\begin_inset LatexCommand \ref{sub:-Interaction-vitesses}
\end_inset
pour d'autres détails.
\layout Subsection
Modes de contrôle de trajectoire
\begin_inset LatexCommand \label{sub:Modes-de-contrôle-trajectoires}
\end_inset
\layout Standard
La machine peut être placée dans un de ces trois modes de contrôle de trajectoir
e: (1) mode arrêt exact, (2) mode trajectoire exacte ou (3) mode trajectoire
continue avec tolérance optionnelle.
En mode arrêt exact, le mobile s'arrête brièvement à la fin de chaque mouvement
programmé.
En mode trajectoire exacte, le mobile suit la trajectoire programmée aussi
précisément que possible, ralentissant ou s'arrêtant si nécessaire aux
angles vifs du parcours.
En mode trajectoire continue, les angles vifs du parcours peuvent être
légèrement arrondis pour que la vitesse soit maintenue (sans dépasser la
tolérance, si elle est spécifiée).
Voir la section
\begin_inset LatexCommand \ref{sub:G61,-G61.1,-G64:-Types-contrôle-trajectoire}
\end_inset
.
\layout Section
Interaction de l'interpréteur avec les boutons
\layout Standard
L'interpréteur interagit avec plusieurs boutons de commande.
Cette section décrit ces interactions plus en détail.
En aucun cas l'interpréteur ne connait ce que sont les réglages de ces
boutons.
\layout Subsection
Boutons de correction de vitesses
\begin_inset LatexCommand \label{sub:-Interaction-vitesses}
\end_inset
\layout Standard
L'interpréteur de commande RS274/NGC autorise (M48) ou interdit (M49) l'action
des boutons d'ajustement des vitesses.
Pour certains mouvements, tels que la sortie de filet à la fin d'un cycle
de filetage, les boutons sont neutralisés automatiquement.
\layout Standard
EMC2 réagit aux réglages de ces boutons seulement quand ils sont autorisés.
\layout Subsection
Bouton d'effacement de block Switch
\begin_inset LatexCommand \label{sub:-Interaction-effacement-de-block}
\end_inset
\begin_inset LatexCommand \index{effacement de block}
\end_inset
\layout Standard
Si le bouton
\begin_inset Quotes eld
\end_inset
Effacement de block
\begin_inset Quotes erd
\end_inset
est actif, les lignes de code RS274/NGC commençant par le caractère barre
de fraction (caractère d'effacement de block) ne sont pas interprétées.
Si le bouton est désactivé, ces mêmes lignes sont interprétées.
Normalement le bouton d'effacement de block doit être positionné avant
de lancer le programme NGC.
\layout Subsection
\family typewriter
Bouton d'arrêt optionnel du programme
\begin_inset LatexCommand \label{sub:-Interaction-arrêts-optionnels}
\end_inset
\begin_inset LatexCommand \index{Arrêts optionnels}
\end_inset
\layout Standard
Si ce bouton est actif et qu'un code M1 est rencontré, le programme est
mis en pause.
\layout Section
Fichier d'outils
\begin_inset LatexCommand \label{sub:-Fichier-d'outils}
\end_inset
\layout Standard
Un fichier d'outils est requis par l'interpréteur.
Le fichier indique dans quels emplacements du carrousel sont placés les
outils, la longueur et le diamètre de chacun des outils.
\layout Standard
Le fichier est composé d'un certain nombre de lignes d'en-tête, suivies
par une ligne vide, suivie d'un nombre quelconque de lignes de données.
Les lignes d'en-tête sont ignorées par l'interpréteur.
Il est important qu'il y ait une ligne vide (sans espace ni tabulation),
avant les données.
La ligne d'en-tête montrée dans ce tableau
\begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse}
\end_inset
, décrit les colonnes de données, il est donc proposé (mais pas obligatoire)
que cette ligne soit toujours présente.
\layout Standard
Chaque ligne de données du fichier contient les données d'un outil.
La ligne peut contenir 4 ou 5 éléments (
\begin_inset Quotes eld
\end_inset
format fraiseuse
\begin_inset Quotes erd
\end_inset
) ou 8 ou 9 éléments (
\begin_inset Quotes eld
\end_inset
format tour
\begin_inset Quotes erd
\end_inset
).
\layout Standard
Les unités utilisées pour la longueur et le diamètre sont en unités machine.
\layout Standard
Les lignes n'ont pas à être dans un ordre particulier.
Permuter l'ordre des lignes est sans effet, sauf si le même numéro d'emplacemen
t est utilisé sur deux ou plusieurs lignes, ce qui ne devrait normalement
pas être fait, dans ce cas, seules les données de la dernière de ces lignes
seront utilisées.
\layout Standard
Dans emc2, l'emplacement du fichier d'outil est spécifié dans le fichier
ini.
Voir la section
\begin_inset LatexCommand \ref{sub:Section-[EMCIO]}
\end_inset
pour d'autres détails.
\layout Standard
Un fichier d'outils peut être un mélange de lignes au
\begin_inset Quotes eld
\end_inset
format fraiseuse
\begin_inset Quotes erd
\end_inset
et au
\begin_inset Quotes eld
\end_inset
format tour
\begin_inset Quotes erd
\end_inset
, bien que généralement les lignes du style
\begin_inset Quotes eld
\end_inset
format tour
\begin_inset Quotes erd
\end_inset
soient seulement requises pour les outils de tour.
\layout Subsection
Fichier d'outils au format fraiseuse
\layout Standard
Le
\begin_inset Quotes eld
\end_inset
format fraiseuse
\begin_inset Quotes erd
\end_inset
d'un fichier d'outils est visible dans le tableau
\begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse}
\end_inset
.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Exemple de fichier d'outils (format fraiseuse)
\begin_inset LatexCommand \label{cap:Fichier-d'outils-fraiseuse}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Slot
\end_inset
|
\begin_inset Text
\layout Standard
FMS
\end_inset
|
\begin_inset Text
\layout Standard
TLO
\end_inset
|
\begin_inset Text
\layout Standard
Diamètre
\end_inset
|
\begin_inset Text
\layout Standard
Commentaire
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
1
\end_inset
|
\begin_inset Text
\layout Standard
1
\end_inset
|
\begin_inset Text
\layout Standard
2.0
\end_inset
|
\begin_inset Text
\layout Standard
1.0
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
2
\end_inset
|
\begin_inset Text
\layout Standard
2
\end_inset
|
\begin_inset Text
\layout Standard
1.0
\end_inset
|
\begin_inset Text
\layout Standard
0.2
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
5
\end_inset
|
\begin_inset Text
\layout Standard
5
\end_inset
|
\begin_inset Text
\layout Standard
1.5
\end_inset
|
\begin_inset Text
\layout Standard
0.25
\end_inset
|
\begin_inset Text
\layout Standard
coupe en bout
\end_inset
|
\begin_inset Text
\layout Standard
10
\end_inset
|
\begin_inset Text
\layout Standard
10
\end_inset
|
\begin_inset Text
\layout Standard
2.4
\end_inset
|
\begin_inset Text
\layout Standard
-0.3
\end_inset
|
\begin_inset Text
\layout Standard
à tester
\end_inset
|
\end_inset
\end_inset
\layout Standard
Chaque ligne comporte 5 éléments.
Les quatre premiers éléments sont obligatoires.
Le commentaire, placé en cinquième est facultatif.
La lecture est rendue plus facile si les éléments sont disposés en colonnes,
comme dans le tableau ci-dessus, mais la seule exigence de forme, c'est
qu'il y ait au moins un espace ou une tabulation après chacun des trois
premiers éléments d'une ligne, et une tabulation ou un saut de ligne à
la fin des cinq éléments.
La signification des colonnes et le type de données à mettre dans chacune
sont les suivants:
\layout Standard
La colonne
\begin_inset Quotes eld
\end_inset
Slot
\begin_inset Quotes erd
\end_inset
contient un entier non signé représentant le numéro d'emplacement dans
le carrousel d'outils (numéro de slot) dans lequel cet outil est placé.
Les éléments de cette colonne doivent être tous différents.
\layout Standard
La colonne
\begin_inset Quotes eld
\end_inset
FMS
\begin_inset Quotes erd
\end_inset
contient un entier non signé représentant le numéro de code de l'outil.
L'utilisateur peut y placer n'importe quel code pour tous les outils, tant
que les codes sont des entiers non signés.
C'est en général le même que celui de l'emplacement.
\layout Standard
La colonne
\begin_inset Quotes eld
\end_inset
TLO
\begin_inset Quotes erd
\end_inset
contient un nombre réel représentant l'offset de longueur d'outil.
Cette valeur sera utilisée si la compensation de longueur d'outil est activée
et que ce numéro d'emplacement est choisi.
C'est normalement un nombre réel positif, mais il peut être mis à zéro
ou tout autre valeur si il n'a pas à être utilisé.
\layout Standard
La colonne
\begin_inset Quotes eld
\end_inset
Diamètre
\begin_inset Quotes erd
\end_inset
contient un nombre réel.
Cette valeur est utilisée seulement si la compensation de rayon d'outil
est activée et que ce numéro d'emplacement est choisi.
Si la trajectoire programmée avec la compensation est le bord du matériau
à usiner, ce devrait être un nombre réel positif représentant le diamètre
mesuré de l'outil.
Si la trajectoire programmée pendant la compensation est la trajectoire
d'un outil dont le diamètre est nominal, ce nombre devrait être petit (positif,
négatif ou nul) et représenter la différence entre le diamètre mesuré de
l'outil et le diamètre nominal.
Si la compensation de rayon d'outil n'est pas utilisée avec un outil, le
contenu de cette colonne est sans effet.
\layout Standard
La colonne
\begin_inset Quotes eld
\end_inset
Commentaire
\begin_inset Quotes erd
\end_inset
est optionnelle, elle peut être utilisée pour décrire l'outil.
Tout type de description convient.
Cette colonne améliore la lisibilité du fichier.
\layout Subsection
Fichier d'outils au format tour
\layout Standard
Le
\begin_inset Quotes eld
\end_inset
format tour
\begin_inset Quotes erd
\end_inset
d'un fichier d'outil est visible dans le tableau
\begin_inset LatexCommand \ref{cap:Fichier-d'outils-tour}
\end_inset
.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Exemple de fichier d'outils (format tour)
\begin_inset LatexCommand \label{cap:Fichier-d'outils-tour}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Slot
\end_inset
|
\begin_inset Text
\layout Standard
FMS
\end_inset
|
\begin_inset Text
\layout Standard
ZOFFSET
\end_inset
|
\begin_inset Text
\layout Standard
XOFFSET
\end_inset
|
\begin_inset Text
\layout Standard
DIA
\end_inset
|
\begin_inset Text
\layout Standard
FRONTANGLE
\end_inset
|
\begin_inset Text
\layout Standard
BACKANGLE
\end_inset
|
\begin_inset Text
\layout Standard
ORIENTATION
\end_inset
|
\begin_inset Text
\layout Standard
Commentaire
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
1
\end_inset
|
\begin_inset Text
\layout Standard
1
\end_inset
|
\begin_inset Text
\layout Standard
0.0
\end_inset
|
\begin_inset Text
\layout Standard
0.0
\end_inset
|
\begin_inset Text
\layout Standard
0.1
\end_inset
|
\begin_inset Text
\layout Standard
95.0
\end_inset
|
\begin_inset Text
\layout Standard
155.0
\end_inset
|
\begin_inset Text
\layout Standard
1
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
2
\end_inset
|
\begin_inset Text
\layout Standard
2
\end_inset
|
\begin_inset Text
\layout Standard
0.5
\end_inset
|
\begin_inset Text
\layout Standard
0.5
\end_inset
|
\begin_inset Text
\layout Standard
0.1
\end_inset
|
\begin_inset Text
\layout Standard
120
\end_inset
|
\begin_inset Text
\layout Standard
60
\end_inset
|
\begin_inset Text
\layout Standard
6
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\end_inset
\end_inset
\layout Standard
Les champs Slot, FMS, DIA et Commentaire sont les mêmes que dans un fichier
d'outils de fraiseuse.
La colonne ZOFFSET est la même que la colonne TLO d'un fichier d'outil
de fraiseuse; offset de longueur d'outil.
\layout Standard
La colonne XOFFSET fournit l'offset pour la coordonnée X quand la compensation
de longueur d'outil est active.
\layout Standard
La colonne ORIENTATION donne l'orientation de l'outil de tour, comme illustré
sur
\begin_inset LatexCommand \ref{cap:Orientations-des-outils-de-tour}
\end_inset
.
La croix rouge correspond au point contrôlé.
Voir
\begin_inset LatexCommand \ref{sub:-Point-contrôlé}
\end_inset
.
\layout Standard
Les colonnes FRONTANGLE et BACKANGLE sont utilisées par certaines interfaces
utilisateur pour afficher une représentation de l'outil de tour.
\layout Standard
\begin_inset Float figure
placement H
wide false
collapsed false
\layout Caption
Orientations des outils de tour
\begin_inset LatexCommand \label{cap:Orientations-des-outils-de-tour}
\end_inset
\layout Standard
\begin_inset Graphics
filename cutting_orientation2.png
scale 60
BoundingBox 20bp 20bp 738bp 594bp
\end_inset
\end_inset
\layout Section
Paramètres
\begin_inset LatexCommand \index{paramètres}
\end_inset
\begin_inset LatexCommand \label{sub:-Paramètres}
\end_inset
\layout Standard
Dans le language RS274/NGC, le centre d'usinage maintient un tableau de
5400 paramètres numériques.
La plupart d'entre eux ont un usage spécifique.
Le tableau de paramètres est persistant, même quand la machine est mise
hors tension.
EMC2 utilise un fichier de paramètres et assure sa persistance, il donne
à l'interpréteur la responsabilité d'actualiser le fichier.
L'interpréteur lit le fichier quand il démarre et l'écrit juste avant de
s'arrêter.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Paramètres utilisés par l'interpréteur RS274NGC
\begin_inset LatexCommand \label{cap:Paramètres-interpréteur}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Numéros de paramètre
\end_inset
|
\begin_inset Text
\layout Standard
Signification
\end_inset
|
\begin_inset Text
\layout Standard
5061-5070
\end_inset
|
\begin_inset Text
\layout Standard
Résultats des mesures
\begin_inset Quotes eld
\end_inset
G38.2
\begin_inset Quotes erd
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
5161-5169
\end_inset
|
\begin_inset Text
\layout Standard
\begin_inset Quotes eld
\end_inset
G28
\begin_inset Quotes erd
\end_inset
Origines machine
\end_inset
|
\begin_inset Text
\layout Standard
5181-5189
\end_inset
|
\begin_inset Text
\layout Standard
\begin_inset Quotes eld
\end_inset
G30
\begin_inset Quotes erd
\end_inset
Origines pièce
\end_inset
|
\begin_inset Text
\layout Standard
5211-5219
\end_inset
|
\begin_inset Text
\layout Standard
\begin_inset Quotes eld
\end_inset
G92
\begin_inset Quotes erd
\end_inset
Décalages d'origines
\end_inset
|
\begin_inset Text
\layout Standard
5220
\end_inset
|
\begin_inset Text
\layout Standard
Numéro du système de coordonnées
\end_inset
|
\begin_inset Text
\layout Standard
5221-5229
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 1
\end_inset
|
\begin_inset Text
\layout Standard
5241-5249
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 2
\end_inset
|
\begin_inset Text
\layout Standard
5261-5269
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 3
\end_inset
|
\begin_inset Text
\layout Standard
5281-5289
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 4
\end_inset
|
\begin_inset Text
\layout Standard
5301-5309
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 5
\end_inset
|
\begin_inset Text
\layout Standard
5321-5329
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 6
\end_inset
|
\begin_inset Text
\layout Standard
5341-5349
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 7
\end_inset
|
\begin_inset Text
\layout Standard
5361-5369
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 8
\end_inset
|
\begin_inset Text
\layout Standard
5381-5389
\end_inset
|
\begin_inset Text
\layout Standard
Système de coordonnées 9
\end_inset
|
\begin_inset Text
\layout Standard
5399
\end_inset
|
\begin_inset Text
\layout Standard
Résultat de M66 - Surveillance d'entrée
\end_inset
|
\end_inset
\end_inset
\layout Standard
Le format d'un fichier de paramètres est visible dans la table
\begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres}
\end_inset
.
Le fichier est composé d'un certain nombre de lignes d'en-tête, suivie
par une ligne vide, suivie d'un nombre quelconque de lignes de données.
Les lignes d'en-tête sont ignorées par l'interpréteur.
Il est important qu'il y ait une ligne vide (sans espace ni tabulation),
avant les données.
La ligne d'en-tête montrée dans ce tableau
\begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres}
\end_inset
, décrit les colonnes de données, il est donc proposé (mais pas obligatoire)
que cette ligne soit toujours présente.
\layout Standard
L'interpréteur lit seulement les deux premières colonnes du tableau.
Il ignore la troisième colonne, Commentaire.
\layout Standard
Chaque ligne du fichier contient le numéro d'index d'un paramètre dans la
première colonne et la valeur attribuée à ce paramètre, dans la deuxième
colonne.
La valeur est représentée par une nombre flottant en double précision à
l'intérieur de l'interpréteur, mais le point décimal n'est pas exigé dans
le fichier.
Le format des paramètres visible dans le tableau
\begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres}
\end_inset
est obligatoire et doit être utilisé pour tous les fichiers de paramètres,
à l'exception des paramètres représentant une valeur sur un axe rotatif
inutilisé, qui peuvent être omis.
Une erreur sera signalée si un paramètre requis est absent.
Un fichier de paramètres peut inclure tout autre paramètre, tant que son
numéro est compris dans une fourchette de 1 à 5400.
Les numéros de paramètre doivent être disposés dans l'ordre croîssant.
Sinon, une erreur sera signalée.
Le fichier original est copié comme fichier de sauvegarde lorsque le nouveau
fichier est écrit.
Les commentaires ne sont pas conservés lorsque le fichier est écrit.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Format d'un fichier de paramètres
\begin_inset LatexCommand \label{cap:Format-fichier-de-paramètres}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Numéro de paramètre
\end_inset
|
\begin_inset Text
\layout Standard
Valeur du paramètre
\end_inset
|
\begin_inset Text
\layout Standard
Commentaire
\end_inset
|
\begin_inset Text
\layout Standard
5161
\end_inset
|
\begin_inset Text
\layout Standard
0.0
\end_inset
|
\begin_inset Text
\layout Standard
G28 pom X
\end_inset
|
\begin_inset Text
\layout Standard
5162
\end_inset
|
\begin_inset Text
\layout Standard
0.0
\end_inset
|
\begin_inset Text
\layout Standard
G28 pom Y
\end_inset
|
\end_inset
\end_inset
\layout Section
Systèmes de coordonnées
\begin_inset LatexCommand \index{systèmes de coordonnées}
\end_inset
\begin_inset LatexCommand \label{sub:-Systèmes-de-coordonnées}
\end_inset
\layout Standard
Dans le langage RS274/NGC, un centre d'usinage dispose d'un système de coordonné
es machine (absolues) et de 9 systèmes de coordonnées programme (relatives).
\layout Standard
Vous pouvez définir le décalage d'origine de neuf systèmes de coordonnées
programme en utilisant G10 L2 Pn (n étant le numéro du système de coordonnées),
avec des valeurs pour les axes en coordonnées absolues.
Voir la section
\begin_inset LatexCommand \ref{sub:G10:-Coordonnées-pièce}
\end_inset
.
\layout Standard
Vous pouvez choisir un des neuf systèmes en utilisant
\family typewriter
G54
\family default
,
\family typewriter
G55
\family default
,
\family typewriter
G56
\family default
,
\family typewriter
G57
\family default
,
\family typewriter
G58
\family default
,
\family typewriter
G59
\family default
,
\family typewriter
G59.1
\family default
,
\family typewriter
G59.2
\family default
, ou
\family typewriter
G59.3
\family default
(Voir la section
\begin_inset LatexCommand \ref{sub:G54-à-G59.3:}
\end_inset
).
Il n'est pas possible de choisir directement le système de coordonnées
machine.
\layout Standard
Vous pouvez décaler l'origine du système de coordonnées actuel en utilisant
\family typewriter
G92
\family default
ou
\family typewriter
G92.3
\family default
.
Ce décalage s'appliquera alors à l'ensemble des neuf systèmes de coordonnées
programme.
Ce décalage peut être annulé avec
\family typewriter
G92.1
\family default
ou
\family typewriter
G92.2
\family default
.
Voir la section
\begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,}
\end_inset
.
\layout Standard
Vous pouvez faire des mouvements dans le système de coordonnées machine
absolues en utilisant
\family typewriter
G53
\family default
avec
\family typewriter
G0
\family default
ou
\family typewriter
G1
\family default
.
Voir la section
\begin_inset LatexCommand \ref{sub:G53:-Move-in}
\end_inset
.
\layout Standard
Les données des systèmes de coordonnées sont enregistrées dans les paramètres.
\layout Standard
Lors de l'initialisation, le système de coordonnées choisi est celui spécifié
par le paramètre 5220.
Une valeur de 1 signifie le premier système de coordonnées (celui qu'active
G54), une valeur de 2 signifie le deuxième système de coordonnées (celui
qu'active G55), et ainsi de suite.
Il y a erreur si la valeur du paramètre 5220 n'est pas un nombre entier
compris entre 1 et 9.
\layout Chapter
Vue d'ensemble du langage
\begin_inset LatexCommand \label{cha:Vue-d'ensemble-du-langage}
\end_inset
\layout Standard
Le langage RS274/NGC est basé sur des lignes de code.
Chaque ligne (également appelée un
\begin_inset Quotes eld
\end_inset
block
\begin_inset Quotes erd
\end_inset
) peut inclure des commandes pour faire produire diverses actions au centre
d'usinage.
Plusieurs lignes de code peuvent être regroupées dans un fichier pour créer
un programme.
\layout Standard
Une ligne de code typique commence par un numéro de ligne optionnel suivi
par un ou plusieurs
\begin_inset Quotes eld
\end_inset
mots
\begin_inset Quotes erd
\end_inset
.
Un mot commence par une lettre suivie d'un nombre (ou quelque chose qui
permet d'évaluer un nombre).
Un mot peut, soit donner une commande, soit fournir un argument à une commande.
Par exemple,
\begin_inset Quotes eld
\end_inset
\family typewriter
G1 X3
\family default
\begin_inset Quotes erd
\end_inset
est une ligne de code valide avec deux mots.
\begin_inset Quotes eld
\end_inset
\family typewriter
G1
\family default
\begin_inset Quotes erd
\end_inset
est une commande qui signifie
\begin_inset Quotes eld
\end_inset
déplaces toi en ligne droite à la vitesse programmée
\begin_inset Quotes erd
\end_inset
et
\begin_inset Quotes eld
\end_inset
\family typewriter
X3
\family default
\begin_inset Quotes erd
\end_inset
fournit la valeur d'argument (la valeur de X doit être 3 à la fin du mouvement).
La plupart des commandes RS274/NGC commencent avec G ou M (G pour Général
et M pour Miscellaneous (auxiliaire)).
Les termes pour ces commandes sont
\begin_inset Quotes eld
\end_inset
G codes
\begin_inset Quotes erd
\end_inset
et
\begin_inset Quotes eld
\end_inset
M codes.
\begin_inset Quotes erd
\end_inset
\layout Standard
Le langage RS274/NGC
\begin_inset LatexCommand \index{RS274NGC}
\end_inset
n'a pas d'indicateur de début et de fin de programme.
L'interpréteur cependant traite les fichiers.
Un programme simple peut être en un seul fichier, mais il peut aussi être
partagé sur plusieurs fichiers.
Un fichier peut être délimité par le signe pourcent de la manière suivante.
La première ligne non vide d'un fichier peut contenir un signe
\begin_inset Quotes eld
\end_inset
%
\begin_inset Quotes erd
\end_inset
seul, éventuellement encadré d'espaces blancs, ensuite, à la fin du fichier
on doit trouver une ligne similaire.
Délimiter un fichier avec des % est facultatif si le fichier comporte un
\family typewriter
M2
\family default
ou un
\family typewriter
M30
\family default
, mais est requis sinon.
Une erreur sera signalée si un fichier a une ligne pourcent au début, mais
pas à la fin.
Le contenu utile d'un fichier délimité par pourcent s'arrête après la seconde
ligne pourcent.
Tout le reste est ignoré.
\layout Standard
Le langage RS274/NGC prévoit les deux commandes (
\family typewriter
M2
\family default
ou
\family typewriter
M30
\family default
) pour finir un programme.
Le programme peut se terminer avant la fin du fichier.
Les lignes placées après la fin d'un programme ne seront pas exécutées.
L'interpréteur ne les lit même pas.
\layout Section
Format d'une ligne
\layout Standard
Une ligne de code permise par la norme RS274/NGC est construite de la façon
suivante, dans l'ordre avec la restriction à un maximum de 256 caractères
sur la même ligne.
\layout Enumerate
Un block optionnel contenant le caractère d'effacement de ligne, barre de
fraction
\begin_inset Quotes eld
\end_inset
/
\begin_inset Quotes erd
\end_inset
.
\layout Enumerate
Un numéro de ligne optionnel.
\layout Enumerate
N'importe quel nombre de mots, valeurs de paramètres et commentaires.
\layout Enumerate
Un caractère de fin de ligne (retour chariot ou saut de ligne ou les deux).
\layout Standard
Toute entrée non explicitement permise est illégale, elle provoquera un
message d'erreur de l'interpréteur.
\layout Standard
Les espaces sont permis ainsi que les tabulations dans une ligne de code
dont ils ne changent pas la signification, excepté dans les commentaires.
Ceci peut donner d'étranges lignes, mais elles sont autorisées.
La ligne
\begin_inset Quotes eld
\end_inset
\family typewriter
g0x +0.
12 34y 7
\family default
\begin_inset Quotes erd
\end_inset
est équivalente à
\begin_inset Quotes eld
\end_inset
\family typewriter
g0 x+0.1234 y7
\family default
\begin_inset Quotes erd
\end_inset
, par exemple.
\layout Standard
Les lignes vides sont permises, elles seront ignorées.
\layout Standard
La casse des caractères est ignorée, excepté dans les commentaires.
Toutes les lettres en dehors des commentaires peuvent être, indifféremment
des majuscules ou des minuscules sans changer la signification de la ligne.
\layout Section
Numéro de ligne
\layout Standard
Un numéro de ligne commence par la lettre N suivie d'un nombre entier non
signé compris entre 0 et 99999 écrit avec moins de six caractères (par
exemple: 000009 est interdit).
Les numéros de ligne peuvent se suivre ou être dans le désordre, bien qu'une
pratique normale évite ce genre d'usage.
Les numéros de ligne peuvent être sautés, c'est une pratique normale.
L'utilisation d'un numéro de ligne n'est pas obligatoire, mais si il est
utilisé, il doit être à sa place.
\layout Section
Les mots
\layout Standard
Un mot est une lettre, autre que N, suivie d'un nombre réel.
\layout Standard
Les mots peuvent commencer avec l'une ou l'autre des lettres indiquées dans
le tableau
\begin_inset LatexCommand \ref{cap:Les-mots-et-leur-significations}
\end_inset
.
Le tableau inclus N pour être complet, même si, comme défini précédemment,
les numéros de lignes ne sont pas des mots.
Plusieurs lettres (I, J, K, L, P, R) peuvent avoir différentes significations
dans des contextes différents.
Les lettres qui se réfèrent aux noms d'axes ne sont pas valides sur une
machine n'ayant pas les axes correspondants.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Les mots et leur signification
\begin_inset LatexCommand \label{cap:Les-mots-et-leur-significations}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Lettre
\end_inset
|
\begin_inset Text
\layout Standard
Signification
\end_inset
|
\begin_inset Text
\layout Standard
A
\end_inset
|
\begin_inset Text
\layout Standard
Axe A de la machine
\end_inset
|
\begin_inset Text
\layout Standard
B
\end_inset
|
\begin_inset Text
\layout Standard
Axe B de la machine
\end_inset
|
\begin_inset Text
\layout Standard
C
\end_inset
|
\begin_inset Text
\layout Standard
Axe C de la machine
\end_inset
|
\begin_inset Text
\layout Standard
D
\end_inset
|
\begin_inset Text
\layout Standard
Valeur de la compensation de rayon d'outil
\end_inset
|
\begin_inset Text
\layout Standard
F
\end_inset
|
\begin_inset Text
\layout Standard
Vitesse d'avance travail
\end_inset
|
\begin_inset Text
\layout Standard
G
\end_inset
|
\begin_inset Text
\layout Standard
Fonction Générale (voir la table 5)
\end_inset
|
\begin_inset Text
\layout Standard
H
\end_inset
|
\begin_inset Text
\layout Standard
Index d'offset de longueur d'outil
\end_inset
|
\begin_inset Text
\layout Standard
I
\end_inset
|
\begin_inset Text
\layout Standard
Décalage en X pour les arcs et dans les cycles préprogrammés G87
\end_inset
|
\begin_inset Text
\layout Standard
J
\end_inset
|
\begin_inset Text
\layout Standard
Décalage en Y pour les arcs et dans les cycles préprogrammés G87
\end_inset
|
\begin_inset Text
\layout Standard
K
\end_inset
|
\begin_inset Text
\layout Standard
Décalage en Z pour les arcs et dans les cycles préprogrammés G87
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
Distance de déplacement par tour de broche avec G33
\end_inset
|
\begin_inset Text
\layout Standard
M
\end_inset
|
\begin_inset Text
\layout Standard
Fonction auxiliaire (voir la table 7)
\end_inset
|
\begin_inset Text
\layout Standard
N
\end_inset
|
\begin_inset Text
\layout Standard
Numéro de ligne
\end_inset
|
\begin_inset Text
\layout Standard
P
\end_inset
|
\begin_inset Text
\layout Standard
Temporisation utilisée dans les cycles préprogrammés et avec G4.
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
Mot clé utilisé avec G10.
\end_inset
|
\begin_inset Text
\layout Standard
Q
\end_inset
|
\begin_inset Text
\layout Standard
Incrément Delta en Z dans un cycle préprogrammé G73, G83
\end_inset
|
\begin_inset Text
\layout Standard
R
\end_inset
|
\begin_inset Text
\layout Standard
Rayon d'arc ou plan de retrait dans un cycle préprogrammé
\end_inset
|
\begin_inset Text
\layout Standard
S
\end_inset
|
\begin_inset Text
\layout Standard
Vitesse de rotation de la broche
\end_inset
|
\begin_inset Text
\layout Standard
T
\end_inset
|
\begin_inset Text
\layout Standard
Numéro d'outil
\end_inset
|
\begin_inset Text
\layout Standard
U
\end_inset
|
\begin_inset Text
\layout Standard
Axe U de la machine
\end_inset
|
\begin_inset Text
\layout Standard
V
\end_inset
|
\begin_inset Text
\layout Standard
Axe V de la machine
\end_inset
|
\begin_inset Text
\layout Standard
W
\end_inset
|
\begin_inset Text
\layout Standard
Axe W de la machine
\end_inset
|
\begin_inset Text
\layout Standard
X
\end_inset
|
\begin_inset Text
\layout Standard
Axe X de la machine
\end_inset
|
\begin_inset Text
\layout Standard
Y
\end_inset
|
\begin_inset Text
\layout Standard
Axe Y de la machine
\end_inset
|
\begin_inset Text
\layout Standard
Z
\end_inset
|
\begin_inset Text
\layout Standard
Axe Z de la machine
\end_inset
|
\end_inset
\end_inset
\layout Subsection
Nombres
\begin_inset LatexCommand \label{sub:-Nombres}
\end_inset
\layout Standard
Les règles suivantes sont employées pour des nombres (explicites).
Dans ces règles un chiffre est un caractère simple entre 0 et 9.
\layout Itemize
Un nombre commence par: (1) un signe plus ou un signe moins optionnel, suivi
par (2) de zéro à plusieurs chiffres, peut être suivis par, (3) un point
décimal, suivi par (4) de zéro à plusieurs chiffres, il doit au moins y
avoir un chiffre.
\layout Itemize
Il existe deux types de nombres: les entiers et les décimaux.
Un entier n'a pas de point décimal; un décimal en a un.
\layout Itemize
Les nombres peuvent avoir n'importe quel nombre de chiffres, sous réserve
de la limitation de longueur d'une ligne.
Seulement environ dix-sept chiffres significatifs seront retenus, c'est
toutefois suffisant pour toutes les applications connues.
\layout Itemize
Un nombre non nul sans autre signe que le premier caractère est considéré
positif.
\layout Standard
Les zéros non significatifs, ne sont pas nécessaires.
\layout Standard
Si un nombre utilisé dans le langage RS274/NGC est proche d'une valeur entière
à moins de quatre décimales, il est considéré comme entier, par exemple
0.9999.
\layout Subsection
Paramètres numérotés
\begin_inset LatexCommand \label{sub:-Paramètres-numérotés}
\end_inset
\layout Standard
Un paramètre numéroté commence par le caractère
\family typewriter
#
\family default
suivi par un entier compris entre 1 et 5399.
Le paramètre est référencé par cet entier, sa valeur est la valeur stockée
dans le paramètre.
\layout Standard
Une valeur est stockée dans un paramètre avec l'opérateur = par exemple
"
\family typewriter
#3 = 15
\family default
" signifie que la valeur 15 est stockée dans le paramètre numéro 3.
\layout Standard
Le caractère
\family typewriter
#
\family default
a une précédence supérieure à celle des autres opérations, ainsi par exemple,
\begin_inset Quotes eld
\end_inset
\family typewriter
#1+2
\family default
\begin_inset Quotes erd
\end_inset
signifie la valeur trouvée en ajoutant 2 à la valeur contenue dans le paramètre
1 et non la valeur trouvée dans le paramètre 3.
Bien sûr,
\family typewriter
#[1+2]
\family default
signifie la valeur trouvée dans le paramètre 3.
Le caractère
\family typewriter
#
\family default
peut être répété, par exemple
\family typewriter
##2
\family default
signifie le paramètre dont le numéro est égal à la valeur entière trouvée
dans le paramètre 2.
\layout Subsection
Paramètres nommés
\begin_inset LatexCommand \label{sub:-Paramètres-nommés}
\end_inset
\layout Standard
Les paramètres nommés fonctionnent comme les paramètres numérotés mais sont
plus faciles à lire.
Les paramètres nommés sont convertis en minuscules, les espaces et tabulations
sont supprimés.
Les paramètres nommés doivent être encadrés des signes
\family typewriter
< et >
\family default
.
\layout Standard
\family typewriter
#
\family default
est un paramètre nommé local.
Par défaut, un paramètre nommé est local à l'étendue dans laquelle il est
assigné.
L'accès à un paramètre local, en dehors de son sous-programme est impossible,
de sorte que deux sous-programmes puissent utiliser le même nom de paramètre
sans craindre qu'un des deux n'écrase la valeur de l'autre.
\layout Standard
\family typewriter
#<_un paramètre global>
\family default
est un paramètre nommé global.
Ils sont accessibles depuis des sous-programmes appelés et peuvent placer
des valeurs dans tous les sous-programmes accessibles à l'appelant.
En ce qui concerne la portée, ils agissent comme des paramètres numérotés.
Ils ne sont pas enregistrés dans des fichiers.
\layout Standard
Exemples:
\layout Itemize
Déclaration d'une variable nommée globale
\layout Standard
\family typewriter
#<_troisdents_dia> = 10.00
\family default
\layout Itemize
Référence à la variable globale précédemment déclarée
\layout Standard
\family typewriter
#<_troisdents_rayon> = [#<_troisdents_dia>/2.0]
\family default
\layout Itemize
Mélange de paramètres nommés et de valeurs littérales
\layout Standard
\family typewriter
o100 call [0.0] [0.0] [#<_interieur_decoupe>-#<_troisdents_dia>] [#<_Zprofondeur>]
[#<_vitesse>]
\layout Standard
Notes:
\layout Standard
Les paramètres globaux _a, _b, _c, ...
_z sont réservés pour une utilisation spéciale.
Dans le futur, ils pourront fournir l'accès aux derniers Aword, Bword,
Cword, ...
Zword etc.
\layout Subsection
Expressions
\begin_inset LatexCommand \label{sub:-Expressions}
\end_inset
\layout Standard
Une expression est un groupe de caractères commençant avec le crochet gauche
\family typewriter
[
\family default
et se terminant avec le crocher droit
\family typewriter
]
\family default
.
Entre les crochets, on trouve des nombres, des valeurs de paramètre, des
opérations mathématiques et d'autres expressions.
Une expression est évaluée pour produire un nombre.
Les expressions sur une ligne sont évaluées quand la ligne est lue et avant
que quoi que ce soit ne soit éxécuté sur cette ligne.
Un exemple d'expression:
\family typewriter
[1 + acos[0] - [#3 ** [4.0/2]]]
\family default
.
\layout Subsection
Opérateurs binaires
\begin_inset LatexCommand \label{sub:-Opérateurs-binaires}
\end_inset
\layout Standard
Les opérateurs binaires ne se rencontrent que dans les expressions.
Il y a quatre opérateurs mathématiques de base: addition (
\family typewriter
+
\family default
), soustraction (
\family typewriter
-
\family default
), multiplication (
\family typewriter
*
\family default
) et division (
\family typewriter
/
\family default
).
Il y a trois opérateurs logiques: ou (
\family typewriter
OR
\family default
), ou exclusif (
\family typewriter
XOR
\family default
) et logique (
\family typewriter
AND
\family default
).
Le huitième opérateur est le modulo (
\family typewriter
MOD
\family default
).
Le neuvième opérateur est l'élévation à la puissance (
\family typewriter
**
\family default
) qui éléve le nombre situé à sa gauche à la puissance du nombre situé à
sa droite.
Les opérateurs de relation sont: égalité (
\family typewriter
EQ
\family default
), non égalité (
\family typewriter
NE
\family default
), strictement supérieur (
\family typewriter
GT
\family default
), supérieur ou égal (
\family typewriter
GE
\family default
), strictement inférieur (
\family typewriter
LT
\family default
) et inférieur ou égal (
\family typewriter
LE
\family default
).
\layout Standard
Les opérations binaires sont divisées en plusieurs groupes selon leur précédence.
(voir la table
\begin_inset LatexCommand \ref{cap:Précédence-des-opérateurs}
\end_inset
) Si dans une opération se trouvent différents groupes de précédence (par
exemple dans l'expression
\family typewriter
[2.0 / 3 * 1.5 - 5.5 / 11.0]
\family default
), les opérations du groupe supérieur seront effectuées avant celles des
groupes inférieurs.
Si une expression contient plusieurs opérations du même groupe (comme les
premiers
\family typewriter
/
\family default
et
\family typewriter
*
\family default
dans l'exemple), l'opération de gauche est effectuée en premier.
Notre exemple est équivalent à:
\family typewriter
[[[2.0 / 3] * 1.5] - [5.5 / 11.0]]
\family default
, qui est équivalent à
\family typewriter
[1.0 - 0.5]
\family default
, le résultat est:
\family typewriter
0.5
\family default
.
\layout Standard
Les opérations logiques et le modulo sont exécutés sur des nombres réels
et non pas seulement sur des entiers.
Le zéro est équivalent à un état logique faux (FALSE), tout nombre différent
de zéro est équivalent à un état logique vrai (TRUE).
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Précédence des opérateurs
\begin_inset LatexCommand \label{cap:Précédence-des-opérateurs}
\end_inset
\begin_inset LatexCommand \index{Précédence des opérateurs}
\end_inset
\layout Standard
\align center
\begin_inset Tabular
\begin_inset Text
\layout Standard
Opérateurs
\end_inset
|
\begin_inset Text
\layout Standard
Précédence
\end_inset
|
\begin_inset Text
\layout Standard
**
\end_inset
|
\begin_inset Text
\layout Standard
\emph on
haute
\end_inset
|
\begin_inset Text
\layout Standard
* / MOD
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
+ -
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
EQ NE GT GE LT LE
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
AND OR XOR
\end_inset
|
\begin_inset Text
\layout Standard
\emph on
basse
\end_inset
|
\end_inset
\end_inset
\layout Subsection
Fonctions
\begin_inset LatexCommand \label{sub:-Opérations-unaires}
\end_inset
\layout Standard
Une fonction commence par son nom, ex:
\begin_inset Quotes eld
\end_inset
\family typewriter
ATAN
\family default
\begin_inset Quotes erd
\end_inset
suivi par une expression divisée par une autre expression (par exemple
\begin_inset Quotes eld
\end_inset
\family typewriter
ATAN[2]/[1+3]
\family default
\begin_inset Quotes erd
\end_inset
) ou tout autre nom de fonction suivi par une expression (par exemple
\begin_inset Quotes eld
\end_inset
\family typewriter
SIN[90]
\family default
\begin_inset Quotes erd
\end_inset
).
Les fonctions disponibles sont visibles dans le tableau
\begin_inset LatexCommand \ref{cap:Fonctions}
\end_inset
.
Les arguments pour les opérations unaires sur des angles (
\family typewriter
COS
\family default
,
\family typewriter
SIN
\family default
et
\family typewriter
TAN
\family default
) sont en degrés.
Les valeurs retournées par les opérations sur les angles (
\family typewriter
ACOS
\family default
,
\family typewriter
ASIN
\family default
et
\family typewriter
ATAN
\family default
) sont également en degrés.
\layout Standard
L'opérateur
\family typewriter
FIX
\family default
arrondi vers la gauche (moins positif ou plus négatif), par exemple:
\family typewriter
FIX[2.8] =2
\family default
et
\family typewriter
FIX[-2.8] = -3
\family default
.
L'opérateur
\family typewriter
FUP
\family default
arrondi vers la droite (plus positif ou moins négatif), par exemple:
\family typewriter
FUP[2.8] = 3
\family default
et
\family typewriter
FUP[-2.8] = -2
\family default
.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Fonctions
\begin_inset LatexCommand \label{cap:Fonctions}
\end_inset
\layout Standard
\align center
\begin_inset Tabular
\begin_inset Text
\layout Standard
Nom de fonction
\end_inset
|
\begin_inset Text
\layout Standard
Fonction
\end_inset
|
\begin_inset Text
\layout Standard
ATAN[Y]/[X]
\end_inset
|
\begin_inset Text
\layout Standard
Tangente quatre quadrants
\end_inset
|
\begin_inset Text
\layout Standard
ATAN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arc tangente
\end_inset
|
\begin_inset Text
\layout Standard
ABS[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Valeur absolue
\end_inset
|
\begin_inset Text
\layout Standard
ACOS[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arc cosinus
\end_inset
|
\begin_inset Text
\layout Standard
ASIN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arc sinus
\end_inset
|
\begin_inset Text
\layout Standard
ATAN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arc tangente
\end_inset
|
\begin_inset Text
\layout Standard
COS[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Cosinus
\end_inset
|
\begin_inset Text
\layout Standard
EXP[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Exposant
\end_inset
|
\begin_inset Text
\layout Standard
FIX[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arrondi à l'entier immédiatement inférieur
\end_inset
|
\begin_inset Text
\layout Standard
FUP[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arrondi à l'entier immédiatement supérieur
\end_inset
|
\begin_inset Text
\layout Standard
ROUND[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Arrondi à l'entier le plus proche
\end_inset
|
\begin_inset Text
\layout Standard
LN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Logarithme Néperien
\end_inset
|
\begin_inset Text
\layout Standard
SIN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Sinus
\end_inset
|
\begin_inset Text
\layout Standard
SQRT[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Racine carrée
\end_inset
|
\begin_inset Text
\layout Standard
TAN[arg]
\end_inset
|
\begin_inset Text
\layout Standard
Tangente
\end_inset
|
\end_inset
\end_inset
\layout Standard
\layout Section
Commentaires
\begin_inset LatexCommand \index{commentaires}
\end_inset
\begin_inset LatexCommand \label{sec:-Commentaires}
\end_inset
\layout Standard
Un ensemble de caractères et espaces blancs entre parenthèses est un commentaire.
Une parenthèse ouvrante débute toujours un commentaire.
Le commentaire se termine à la première parenthèse fermante trouvée.
Si une parenthèse ouvrante est trouvée sur une ligne, une parenthèse fermante
doit être également rencontrée avant la fin de la ligne.
Les commentaires ne peuvent pas être imbriqués, une erreur sera signalée
si une parenthèse ouvrante est rencontrée après le début d'un commentaire
et avant la fin d'un commentaire.
Voici un exemple de ligne de commentaire:
\family typewriter
\begin_inset Quotes eld
\end_inset
G80 M5 (arret du mouvement)
\family default
\begin_inset Quotes erd
\end_inset
.
Les commentaires sont seulement informatifs, ils n'ont aucune influence
sur la machine.
\layout Subsection
Messages
\begin_inset LatexCommand \label{sub:-Messages}
\end_inset
\layout Standard
Un commentaire contient un message si `` MSG'' apparaît après la parenthèse
ouvrante, et avant tout autre caractère.
Les variantes de
\begin_inset Quotes eld
\end_inset
\family typewriter
MSG
\family default
\begin_inset Quotes erd
\end_inset
qui incluent un espace blanc et des minuscules sont autorisées.
Le reste du texte avant la parenthèse fermante est considéré comme le message.
Les messages sont affichés sur la visu de l'interface utilisateur.
Les commentaires ne contenant pas de message ne sont pas affichés.
\layout Subsection
Log des mesures
\begin_inset LatexCommand \label{sub:-Log-des-mesures}
\end_inset
\layout Standard
Un commentaire peut aussi être utilisé pour spécifier le fichier de log
des résultats des mesures faites avec G38.x .
Voir la section
\begin_inset LatexCommand \ref{sub:G38.2:-Sonde-de-mesure}
\end_inset
.
\layout Subsection
Log général
\begin_inset LatexCommand \label{sub:-Log-général}
\end_inset
\layout Subsubsection
(LOGOPEN,filename)
\layout Standard
Ouvre le fichier de log
\begin_inset Quotes eld
\end_inset
filename
\begin_inset Quotes erd
\end_inset
.
Si le fichier existe déjà, il sera tronqué.
\layout Subsubsection
(LOGCLOSE)
\layout Standard
Si le fichier est ouvert, il sera fermé.
\layout Subsubsection
(LOG,\SpecialChar \ldots{}
)
\layout Standard
Le message
\begin_inset Quotes eld
\end_inset
\SpecialChar \ldots{}
\begin_inset Quotes erd
\end_inset
est étendu comme décrit plus loin, il est écrit dans le fichier de log
si il est ouvert.
\layout Subsection
Messsages de déboguage
\begin_inset LatexCommand \label{sub:-Messages-déboguage}
\end_inset
\layout Standard
Les commentaires comme:
\family typewriter
(debug, reste du commentaire)
\family default
sont traités de la même façon que ceux avec
\family typewriter
(msg, reste du commentaire)
\family default
avec l'ajout de possibilités spéciales pour les paramètres.
\layout Standard
Les commentaires comme:
\family typewriter
(print, reste du commentaire)
\family default
vont directement sur la sortie stderr avec des possibilités spéciales pour
les paramètres.
\layout Subsection
Paramètres dans les commentaires
\layout Standard
Dans les commentaires avec DEBUG, PRINT et LOG, les valeurs des paramètres
dans le message sont étendues.
\layout Standard
Par exemple: pour afficher une variable nommée globale sur la sortie stderr
(la fenêtre de la console par défaut) ajouter une ligne au g-code comme:
\layout LyX-Code
(print,diamètre fraise 3 dents = #<_troisdents_dia>)
\layout Standard
À l'intérieur de ces types de commentaires, les séquences comme
\family typewriter
#123
\family default
sont remplacées par la valeur du paramètre 123.
Les séquences comme
\family typewriter
#
\family default
sont remplacées par la valeur du paramètre nommé.
Rappelez vous que les espaces dans les noms des paramètres nommés sont
supprimés,
\family typewriter
#
\family default
est équivalent à
\family typewriter
#
\family default
.
\layout Section
Répétitions d'items
\layout Standard
Une ligne peut contenir autant de mots G que voulu, mais seulement deux
mots G du même groupe modal peuvent apparaître sur la même ligne.
(voir la section
\begin_inset LatexCommand \ref{sec:-Groupes-modaux}
\end_inset
)
\layout Standard
Une ligne peut avoir de zéro à quatre mots M.
Mais pas deux mots M du même groupe modal.
\layout Standard
Pour toutes les autres lettres légales, un seul mot commençant par cette
lettre peut se trouver sur la même ligne.
\layout Standard
Si plusieurs valeurs de paramètre se répétent sur la même ligne, par exemple:
\begin_inset Quotes eld
\end_inset
\family typewriter
#3=15 #3=6
\family default
\begin_inset Quotes erd
\end_inset
, seule la dernière valeur prendra effet.
Il est absurde, mais pas illégal, de fixer le même paramètre deux fois
sur la même ligne.
\layout Standard
Si plus d'un commentaire apparaît sur la même ligne, seul le dernier sera
utilisé, chacun des autres sera lu et son format vérifié, mais il sera
ignoré.
Placer plusieurs commentaires sur la même ligne est très rare.
\layout Section
Ordre des items
\layout Standard
Les trois types d'item dont la commande peut varier sur une ligne (comme
indiqué au début de cette section) sont les mots, les paramètres et les
commentaires.
Imaginez que ces trois types d'éléments sont divisés en trois groupes selon
leur type.
\layout Standard
Dans le premier groupe les mots, peuvent être arrangés dans n'importe quel
ordre sans changer la signification de la ligne.
\layout Standard
Dans le second groupe les valeurs de paramètre, quelque soit leur arrangement,
il n'y aura pas de changement dans la signification de la ligne sauf si
le même paramètre est présent plusieurs fois.
Dans ce cas, seule la valeur du dernier paramètre prendra effet.
Par exemple, quand la ligne
\begin_inset Quotes eld
\end_inset
\family typewriter
#3=15 #3=6
\family default
\begin_inset Quotes erd
\end_inset
aura été interprétée, la valeur du paramètre 3 vaudra 6.
Si l'ordre est inversé,
\begin_inset Quotes eld
\end_inset
\family typewriter
#3=6 #3=15
\family default
\begin_inset Quotes erd
\end_inset
après interprétation, la valeur du paramètre 3 vaudra 15.
\layout Standard
Enfin dans le troisième groupe les commentaires, si plusieurs commentaires
sont présents sur une ligne, seul le dernier commentaire sera utilisé.
\layout Standard
Si chaque groupe est laissé, ou réordonné, dans l'ordre recommandé, la significa
tion de la ligne ne changera pas, alors les trois groupes peuvent être entrecroi
sés n'importe comment sans changer la signification de la ligne.
Par exemple, la ligne
\begin_inset Quotes eld
\end_inset
\family typewriter
g40 g1 #3=15 (foo) #4=-7.0
\family default
\begin_inset Quotes erd
\end_inset
à cinq items est signifiera exactement la même chose dans les 120 ordres
d'arrangement possibles des cinq items comme
\begin_inset Quotes eld
\end_inset
\family typewriter
#4=-7.0 g1 #3=15 g40 (foo)
\family default
\begin_inset Quotes erd
\end_inset
.
\layout Section
Commandes et modes machine
\layout Standard
En RS274/NGC, de nombreuses commandes produisent, d'un mode à un autre,
quelque chose de différent au niveau de la machine, le mode reste actif
jusqu'à ce qu'une autre commande ne le révoque, implicitement ou explicitement.
Ces commandes sont appelées
\begin_inset Quotes eld
\end_inset
modales
\begin_inset Quotes erd
\end_inset
.
Par exemple, si l'arrosage est mis en marche, il y reste jusqu'à ce qu'il
soit explicitement arrêté.
Les G-codes pour les mouvements sont également modaux.
Si, par exemple, une commande G1 (déplacement linéaire) se trouve sur une
ligne, elle peut être utilisée sur la ligne suivante avec seulement un
mot d'axe, tant qu'une commande explicite est donnée sur la ligne suivante
en utilisant des axes ou un arrêt de mouvement.
\layout Standard
Les codes
\begin_inset Quotes eld
\end_inset
non modaux
\begin_inset Quotes erd
\end_inset
n'ont d'effet que sur la ligne ou ils se présentent.
Par exemple, G4 (tempo) est non modale.
\layout Section
Groupes modaux
\begin_inset LatexCommand \label{sec:-Groupes-modaux}
\end_inset
\layout Standard
Les commandes modales sont arrangées par lots appelés
\begin_inset Quotes eld
\end_inset
groupes modaux
\begin_inset Quotes erd
\end_inset
, à tout moment, un seul membre d'un groupe modal peut être actif.
En général, un groupe modal contient des commandes pour lesquelles il est
logiquement impossible que deux membres soient actifs simultanément, comme
les unités en pouces et les unités en millimètres.
Un centre d'usinage peut être dans plusieurs modes simultanément, si seulement
un mode pour chaque groupe est actif.
Les groupes modaux sont visibles dans le tableau
\begin_inset LatexCommand \ref{cap:Groupes-modaux}
\end_inset
.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Groupes modaux
\begin_inset LatexCommand \label{cap:Groupes-modaux}
\end_inset
\layout Standard
\begin_inset Tabular
\begin_inset Text
\layout Standard
Signification du groupe modal
\end_inset
|
\begin_inset Text
\layout Standard
Mots des membres
\end_inset
|
\begin_inset Text
\layout Standard
Mouvements (
\begin_inset Quotes eld
\end_inset
Groupe 1
\begin_inset Quotes erd
\end_inset
)
\end_inset
|
\begin_inset Text
\layout Standard
G0
\begin_inset LatexCommand \index{G0}
\end_inset
G1
\begin_inset LatexCommand \index{G1}
\end_inset
G2
\begin_inset LatexCommand \index{G2}
\end_inset
G3
\begin_inset LatexCommand \index{G3}
\end_inset
G33
\begin_inset LatexCommand \index{G33}
\end_inset
G38.x
\begin_inset LatexCommand \index{G38.2}
\end_inset
\begin_inset LatexCommand \index{G38.x}
\end_inset
G73
\begin_inset LatexCommand \index{G73}
\end_inset
G80
\begin_inset LatexCommand \index{G80}
\end_inset
G81
\begin_inset LatexCommand \index{G81}
\end_inset
G82
\begin_inset LatexCommand \index{G82}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
G83
\begin_inset LatexCommand \index{G83}
\end_inset
G84
\begin_inset LatexCommand \index{G84}
\end_inset
G85
\begin_inset LatexCommand \index{G85}
\end_inset
G86
\begin_inset LatexCommand \index{G86}
\end_inset
G87
\begin_inset LatexCommand \index{G87}
\end_inset
G88
\begin_inset LatexCommand \index{G88}
\end_inset
G89
\begin_inset LatexCommand \index{G89}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Choix du plan de travail
\end_inset
|
\begin_inset Text
\layout Standard
G17
\begin_inset LatexCommand \index{G17}
\end_inset
G18
\begin_inset LatexCommand \index{G18}
\end_inset
G19
\begin_inset LatexCommand \index{G19}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Mode de déplacements
\end_inset
|
\begin_inset Text
\layout Standard
G90
\begin_inset LatexCommand \index{G90}
\end_inset
G91
\begin_inset LatexCommand \index{G91}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Mode de vitesses
\end_inset
|
\begin_inset Text
\layout Standard
G93
\begin_inset LatexCommand \index{G93}
\end_inset
, G94
\begin_inset LatexCommand \index{G94}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Unités machine
\end_inset
|
\begin_inset Text
\layout Standard
G20
\begin_inset LatexCommand \index{G20}
\end_inset
, G21
\begin_inset LatexCommand \index{G21}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Correcteurs de rayon d'outil
\end_inset
|
\begin_inset Text
\layout Standard
G40
\begin_inset LatexCommand \index{G40}
\end_inset
, G41
\begin_inset LatexCommand \index{G41}
\end_inset
, G42
\begin_inset LatexCommand \index{G42}
\end_inset
, G41.1
\begin_inset LatexCommand \index{G41.1}
\end_inset
, G42.1
\begin_inset LatexCommand \index{G42.1}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Correcteurs de longueur d'outil
\end_inset
|
\begin_inset Text
\layout Standard
G43
\begin_inset LatexCommand \index{G43}
\end_inset
, G43.1
\begin_inset LatexCommand \index{G43.1}
\end_inset
, G49
\begin_inset LatexCommand \index{G49}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Options de retrait des cycles préprogrammés
\end_inset
|
\begin_inset Text
\layout Standard
G98
\begin_inset LatexCommand \index{G98}
\end_inset
, G99
\begin_inset LatexCommand \index{G99}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Systèmes de coordonnées
\end_inset
|
\begin_inset Text
\layout Standard
G54
\begin_inset LatexCommand \index{G54}
\end_inset
, G55
\begin_inset LatexCommand \index{G55}
\end_inset
, G56
\begin_inset LatexCommand \index{G56}
\end_inset
, G57
\begin_inset LatexCommand \index{G57}
\end_inset
, G58
\begin_inset LatexCommand \index{G58}
\end_inset
,
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
G59
\begin_inset LatexCommand \index{G59}
\end_inset
, G59.1
\begin_inset LatexCommand \index{G59.1}
\end_inset
, G59.2
\begin_inset LatexCommand \index{G59.2}
\end_inset
, G59.3
\begin_inset LatexCommand \index{G59.3}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Types d'arrêt de programme
\end_inset
|
\begin_inset Text
\layout Standard
M0
\begin_inset LatexCommand \index{M0}
\end_inset
, M1
\begin_inset LatexCommand \index{M1}
\end_inset
, M2
\begin_inset LatexCommand \index{M2}
\end_inset
, M30
\begin_inset LatexCommand \index{M30}
\end_inset
, M60
\begin_inset LatexCommand \index{M60}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Appel d'outil
\end_inset
|
\begin_inset Text
\layout Standard
M6
\begin_inset LatexCommand \index{M6}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Types de rotation de la broche
\end_inset
|
\begin_inset Text
\layout Standard
M3
\begin_inset LatexCommand \index{M3}
\end_inset
, M4
\begin_inset LatexCommand \index{M4}
\end_inset
, M5
\begin_inset LatexCommand \index{M5}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Arrosages
\end_inset
|
\begin_inset Text
\layout Standard
M7
\begin_inset LatexCommand \index{M7}
\end_inset
, M8
\begin_inset LatexCommand \index{M8}
\end_inset
, M9
\begin_inset LatexCommand \index{M9}
\end_inset
.
Cas spéciaux:
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
M7 et M8 peuvent être actifs en même temps
\end_inset
|
\begin_inset Text
\layout Standard
Boutons de correction de vitesse
\end_inset
|
\begin_inset Text
\layout Standard
M48
\begin_inset LatexCommand \index{M48}
\end_inset
, M49
\begin_inset LatexCommand \index{M49}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
Contrôle de flux
\end_inset
|
\begin_inset Text
\layout Standard
O-
\end_inset
|
\begin_inset Text
\layout Standard
Codes non modaux (
\begin_inset Quotes eld
\end_inset
Groupe 0
\begin_inset Quotes erd
\end_inset
)
\end_inset
|
\begin_inset Text
\layout Standard
G4
\begin_inset LatexCommand \index{G4}
\end_inset
, G10
\begin_inset LatexCommand \index{G10}
\end_inset
, G28
\begin_inset LatexCommand \index{G28}
\end_inset
, G30
\begin_inset LatexCommand \index{G30}
\end_inset
, G53
\begin_inset LatexCommand \index{G53}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
G92
\begin_inset LatexCommand \index{G92}
\end_inset
, G92.1
\begin_inset LatexCommand \index{G92.1}
\end_inset
, G92.2
\begin_inset LatexCommand \index{G92.2}
\end_inset
, G92.3
\begin_inset LatexCommand \index{G92.3}
\end_inset
\end_inset
|
\begin_inset Text
\layout Standard
\end_inset
|
\begin_inset Text
\layout Standard
M100
\begin_inset LatexCommand \index{M100..199}
\end_inset
à M199
\end_inset
|
\end_inset
\end_inset
\layout Standard
Pour plusieurs groupes modaux, quand la machine est prête à accepter des
commandes, un membre du groupe doit être en vigueur.
Il y a des paramètres par défaut pour ces groupes modaux.
Lorsque la machine est mise en marche ou ré-initialisées, les valeurs par
défaut sont automatiquement actives.
\layout Standard
Groupe 1, le premier groupe du tableau, est un groupe de G-codes pour les
mouvements.
À tout moment, un seul d'entre eux est actif.
Il est appelé le mode de mouvement courant.
\layout Standard
C'est une erreur que de mettre un G-code du groupe 1 et un G-code du groupe
0 sur la même ligne si les deux utilisent les mêmes axes.
Si un mot d'axe utilisant un G-code du groupe 1 est implicitement actif
sur la ligne (en ayant été activé sur une ancienne ligne) et qu'un G-code
du groupe 0 utilisant des mots d'axes apparaît sur la même ligne, l'activité
du G-code du groupe 1 est révoquée pour le reste de la ligne.
Les mots d'axes utilisant des G-codes du groupe 0 sont G10, G28, G30 et
G92.
\layout Standard
C'est une erreur d'inclure des mots sans rapport sur une ligne avec le contrôle
de flux
\family typewriter
O
\family default
.
\layout Chapter
G Codes
\layout Standard
Les G-codes du langage RS274/NGC sont décrits ci-dessous.
\layout Standard
Dans une commande type, le tiret (
\family typewriter
-
\family default
) signifie une valeur réelle.
Comme décrite précédemment, une valeur réelle peut être (1) un nombre explicite
, 4 par exemple, (2) une expression, [2+2] par exemple, (3) une valeur de
paramètre, #88 par exemple, ou (4) une fonction unaire de la valeur acos
[0], par exemple.
\layout Standard
Dans la plupart des cas, si des mots d'axes sont donnés, parmi
\family typewriter
X
\family default
,
\family typewriter
Y
\family default
,
\family typewriter
Z
\family default
,
\family typewriter
A
\family default
,
\family typewriter
B
\family default
,
\family typewriter
C
\family default
,
\family typewriter
U
\family default
,
\family typewriter
V
\family default
,
\family typewriter
W
\family default
, ils spécifient le point de destination.
Les axes sont donnés dans le système de coordonnées courant, à moins qu'explici
tement décrit comme étant dans le système de coordonnées absolues (machine).
Où les axes sont optionnels, tout axe omis gardera sa valeur courante.
Tout item dans une commande non explicitement décrit comme optionnel sera
requis.
Une erreur sera signalée si un item requis est omis.
\layout Standard
Dans les commandes, les valeurs suivant les lettres sont souvent données
comme des nombres explicites.
Sauf indication contraire, les nombres explicites peuvent être des valeurs
réelles.
Par exemple, G10 L2 pourrait aussi bien être écrite G [2 * 5] L [1 +1].
Si la valeur du paramètre 100 étaient 2, G10 L#100 signifierait également
la même chose.
L'utilisation de valeurs réelles qui ne sont pas des nombres explicites,
comme indiqué dans les exemples sont rarement utiles.
\layout Standard
Si
\family typewriter
L-
\family default
est écrit dans une commande le
\begin_inset Quotes eld
\end_inset
\family typewriter
-
\family default
\begin_inset Quotes erd
\end_inset
fera référence à
\begin_inset Quotes eld
\end_inset
L nombre
\begin_inset Quotes erd
\end_inset
.
De la même manière, le
\begin_inset Quotes eld
\end_inset
\family typewriter
-
\family default
\begin_inset Quotes erd
\end_inset
dans
\family typewriter
H-
\family default
peut être appelé le
\begin_inset Quotes eld
\end_inset
H nombre
\begin_inset Quotes erd
\end_inset
et ainsi de suite pour les autres lettres.
\layout Section
G0
\begin_inset LatexCommand \index{G0}
\end_inset
: Interpolation linéaire en vitesse rapide
\begin_inset LatexCommand \label{sec:G0:-Interpolation-linéaire}
\end_inset
\layout Standard
Pour un mouvement linéaire en vitesse rapide, programmer
\family typewriter
G0
\family default
\family typewriter
\emph on
axes
\family default
\emph default
, au moins un mot d'axe doit être présent, les autres sont optionnels.
Le
\family typewriter
G0
\family default
est optionnel si le mode mouvement courant est déjà
\family typewriter
G0
\family default
.
Cela produira un mouvement linéaire vers le point de destination à la vitesse
rapide courante (ou moins vite si la machine n'atteint pas cette vitesse).
Il n'est pas prévu d'usiner la matière quand une commande G0 est exécutée.
\layout Standard
C'est une erreur si:
\layout Itemize
tous les axes sont omis.
\layout Standard
Si la compensation de rayon d'outil est active, le mouvement sera différent
de celui décrit ci-dessus, voir la section
\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil}
\end_inset
.
Si
\family typewriter
G53
\family default
est programmé sur la même ligne, le mouvement sera également différent,
voir la section
\begin_inset LatexCommand \ref{sub:G53:-Move-in}
\end_inset
.
\layout Standard
Si un mouvement
\family typewriter
G0
\family default
déplace seulement des axes rotatifs et que la position de la cible pour
ces axes est dans une échelle de -360 à 360 degrés, le mouvement sera organisé
pour que chaque axe rotatif fasse moins d'un tour complet.
Exemple:
\layout LyX-Code
N1 G0 X1 A[20*360]
\layout LyX-Code
N2 G0 A0
\layout Standard
Après la ligne
\family typewriter
N1
\family default
, la position de l'axe A sera 7200 degrés.
7200 degrés est égal à zéro degré sur un axe rotatif, de sorte que le mouvement
linéaire rapide spécifié en ligne
\family typewriter
N2
\family default
ne produira aucun mouvement.
\layout Section
G1
\begin_inset LatexCommand \index{G1}
\end_inset
: Interpolation linéaire en vitesse travail
\begin_inset LatexCommand \label{sec:G1:-Interpolation-linéaire}
\end_inset
\layout Standard
Pour un mouvement linéaire en vitesse travail, programmer
\family typewriter
G1
\family default
\family typewriter
\emph on
axes
\family default
\emph default
, au moins un mot d'axe doit être présent, les autres sont optionnels.
Le
\family typewriter
G1
\family default
est optionnel si le mode mouvement courant est déjà
\family typewriter
G
\family default
1.
Cela produira un mouvement linéaire vers le point de destination à la vitesse
de travail courante (ou moins vite si la machine n'atteint pas cette vitesse).
\layout Standard
C'est une erreur si:
\layout Itemize
tous les axes sont omis.
\layout Standard
Si la compensation de rayon d'outil est active, le mouvement sera différent
de celui décrit ci-dessus, voir la section
\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil}
\end_inset
.
Si
\family typewriter
G53
\family default
est programmé sur la même ligne, le mouvement sera également différent,
voir la section
\begin_inset LatexCommand \ref{sub:G53:-Move-in}
\end_inset
.
\layout Section
G2
\begin_inset LatexCommand \index{G2}
\end_inset
, G3
\begin_inset LatexCommand \index{G3}
\end_inset
: Interpolation circulaire en vitesse travail
\begin_inset LatexCommand \label{sub:-G2,-G3:-Arc}
\end_inset
\layout Standard
Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire avec
G
\family typewriter
2
\family default
ou en sens anti-horaire avec
\family typewriter
G3
\family default
.
Les axes du cercle ou de l'hélicoïde, doivent être parallèles aux axes
X, Y, ou Z du système de coordonnées machine.
Les axes (ou, leurs équivalents, les plans perpendiculaires aux axes) sont
sélectionnés avec
\family typewriter
G17
\family default
(axe Z, plan XY),
\family typewriter
G18
\family default
(axe Y, plan XZ), ou
\family typewriter
G19
\family default
(axe X, plan YZ).
Si l'arc est circulaire, il se trouve dans un plan parallèle au plan sélectionn
é.
\layout Standard
Si une ligne de code RS274/NGC forme un arc et inclu le mouvement d'un axe
rotatif, l'axe rotatif tournera à vitesse constante, de sorte que le mouvement
de l'axe rotatif commence et se termine en même temps que les autres axes
XYZ.
De telles lignes ne sont pratiquement jamais programmées.
\layout Standard
Si la compensation de rayon d'outil est active, le mouvement sera différent
de celui décrit ci-dessus, voir la section
\begin_inset LatexCommand \ref{sub:G40,-G41,-G42:}
\end_inset
.
\layout Standard
Deux formats sont autorisés pour spécifier un arc: le format centre et le
format rayon.
\layout Subsection
Arc au format centre (format recommandé)
\layout Standard
Dans le format centre, les coordonnées du point final de l'arc, dans le
plan choisi, sont spécifiées par décalage du centre de l'arc depuis le
point courant.
Dans ce format, il est permis d'avoir le point final de l'arc identique
au point courant.
C'est une erreur si:
\layout Itemize
Lorsque l'arc est projeté sur le plan choisi, la distance entre le point
courant et le centre diffèrent de la distance entre le point d'arrivée
et le centre de plus de 0,0002 pouce (si les pouces sont utilisés), soit
0,002 millimètre (si les millimètres sont utilisés).
\layout Standard
Lorsque le plan XY est sélectionné, programmer G2 Axe I- J- (ou utiliser
G3 au lieu de G2).
Les mots d'axes sont tous facultatifs sauf au moins un entre X et Y qui
doit être utilisé.
I et J sont les décalages du centre de l'arc, par rapport au point actuel
(dans le sens X et Y, respectivement).
I et J sont facultatifs, sauf qu'au moins un des deux doit être utilisé.
C'est une erreur si:
\layout Itemize
X et Y sont tous les deux omis.
\layout Itemize
I et J sont tous les deux omis .
\layout Standard
Lorsque le plan XZ est sélectionné, programmer
\family typewriter
G2
\family default
\family typewriter
\emph on
axes
\family default
\emph default
\family typewriter
I- K-
\family default
(ou utiliser
\family typewriter
G3
\family default
au lieu de
\family typewriter
G2
\family default
).
Les mots d'axes sont tous facultatifs sauf au moins un entre X et Z qui
doit être utilisé.
I et K sont les décalages du centre de l'arc, par rapport au point actuel
(dans le sens X et Z , respectivement).
I et K sont facultatifs, sauf qu'au moins un des deux doit être utilisé.
C'est une erreur si:
\layout Itemize
X et Z sont tous les deux omis.
\layout Itemize
I et K sont tous les deux omis .
\layout Standard
Lorsque le plan YZ est sélectionné, programmer
\family typewriter
G2
\family default
\family typewriter
\emph on
axes
\family default
\emph default
\family typewriter
J- K-
\family default
(ou utiliser
\family typewriter
G3
\family default
au lieu de
\family typewriter
G2
\family default
).
Les mots d'axes sont tous facultatifs sauf au moins un entre Y et Z qui
doit être utilisé.
J et K sont les décalages du centre de l'arc, par rapport au point actuel
(dans le sens Y et Z , respectivement).
J et K sont facultatifs, sauf qu'au moins un des deux doit être utilisé.
C'est une erreur si:
\layout Itemize
Y et Z sont tous les deux omis.
\layout Itemize
J et K sont tous les deux omis .
\layout Standard
Voici un exemple de commande pour usiner un arc au format centre:
\family typewriter
G17 G2 x10 y16 i3 j4 z9
\family default
.
\layout Standard
Cela signifie faire un mouvement en arc ou hélicoïdal en sens horaire (vu
du côté positif de l'axe Z), se terminant en X=10, Y=16 et Z=9, avec son
centre décalé du point actuel de 3 unités en X et de 4 unités en Y.
Si la position courante est X=7, Y=7 au final, le centre sera en X=10,
Y=11.
Si la position de départ de l'axe Z est 9, ce sera un arc circulaire, autrement
ce sera un arc hélicoïdal.
Le rayon de l'arc sera de 5.
\layout Standard
Dans le format centre, le rayon de l'arc n'est pas spécifié, mais il peut
facilement être trouvé comme étant la distance entre le centre de l'arc
et soit, son point d'arrivée soit, le point courant.
\layout Subsection
Arcs au format rayon (format non recommandé)
\layout Standard
Dans le format rayon, les coordonnées du point final de l'arc, dans le plan
choisi, sont spécifiées en même temps que le rayon de l'arc.
Programmer G2 axes R- (ou utiliser
\family typewriter
G3
\family default
au lieu de
\family typewriter
G2
\family default
).
R est le rayon.
Les mots d'axes sont facultatifs sauf au moins un des deux du plan choisi,
qui doit être utilisé.
Un rayon positif indique que l'arc fait moins de 180 degrés, alors qu'un
rayon négatif indique un arc supérieur à 180 degrés.
Si l'arc est hélicoïdal, la valeur du point d'arrivée de l'arc dans les
coordonnées de l'axe perpendiculaire au plan choisi sera également spécifiée.
\layout Standard
C'est une erreur si:
\layout Itemize
Les deux mots d'axes pour le plan choisi sont omis.
\layout Itemize
Le point d'arrivée de l'arc est identique au point courant.
\layout Standard
Ce n'est pas une bonne pratique de programmer au format rayon, des arcs
qui sont presque des cercles entiers ou des demi-cercles, car un changement
minime dans l'emplacement du point d'arrivée va produire un changement
beaucoup plus grand dans l'emplacement du centre du cercle (et donc, du
milieu de l'arc).
L'effet de grossissement est tellement important, qu'une erreur d'arrondi
peut facilement produire un usinage hors tolérance.
Par exemple, 1% de déplacement de l'extrémité d'un arc de 180 degrés produit
7% de déplacement du point situé à 90 degrés le long de l'arc.
Les cercles presque complets sont encore pires.
Autrement l'usinage d'arcs dans une gamme de petits à 165 degrés ou de
195 à 345 degrés sera bon.
\layout Standard
Voici un exemple de commande pour usiner un arc au format
\family typewriter
rayon: G17 G2 x 10 y 15 r 20 z 5.
\layout Standard
Cela signifie faire un mouvement en arc ou hélicoïdal en sens horaire (vu
du côté positif de l'axe Z), se terminant en X=10, Y=15 et Z=5, avec un
rayon de 20.
Si la valeur de départ de Z est 5, Ce sera un arc de cercle parallèle au
plan XY sinon, ce sera un arc hélicoïdal.
\layout Section
G33
\begin_inset LatexCommand \index{G33}
\end_inset
, G33.1
\begin_inset LatexCommand \index{G33.1}
\end_inset
: Mouvement avec broche synchronisée
\begin_inset LatexCommand \label{sec:G33,-G33.1:-Broche-synchronisée}
\end_inset
\layout Standard
Pour un mouvement avec broche synchronisée dans une direction, programmer
\family typewriter
G33 X- Y- Z- K-
\family default
où K donne la longueur du mouvement en XYZ pour chaque tour de broche.
Par exemple, il commence à
\family typewriter
Z=0
\family default
,
\family typewriter
G33 Z-1 K.0625
\family default
produira un mouvement d'un pouce de long en Z, et en même temps 16 tours
de broche.
Cette commande pourrait être la base d'un programme pour faire un filetage
de 16 filets par pouce.
Un autre exemple en métrique, G33 Z-15 K1.5 produira un mouvement de 15mm
de long pendant que la broche fera 10 tours soit un pas de 1.5mm.
\layout Standard
Pour un taraudage rigide avec broche synchronisée et mouvement de retour,
programmer
\family typewriter
G33.1 X- Y- Z- K-
\family default
où
\family typewriter
K-
\family default
donne la longueur du mouvement pour chaque tour de broche.
Un mouvement de taraudage rigide suit cette séquence:
\layout Itemize
Un mouvement aux coordonnées spécifiées, synchronisé avec la rotation de
la broche, avec un ratio donné et débutant sur l'impulsion d'index du codeur
de la broche.
\layout Itemize
Quand le point final est atteint, la commande inverse le sens de rotation
de la broche (ex: de 300 tours/mn en sens horaire à 300 tours/mn en sens
anti-horaire)
\layout Itemize
Le mouvement reste synchronisé en continu avec la broche même
\series bold
au delà
\series default
de la coordonnée du point final spécifiée pendant l'arrêt de la broche
et son inversion.
\layout Itemize
Le mouvement synchronisé se poursuit pour revenir aux coordonnées initiales.
\layout Itemize
Quand les coordonnées d'origines sont atteintes, la commande inverse la
broche une seconde fois (ex: de 300tr/mn sens anti-horaire à 300tr/mn sens
horaire)
\layout Itemize
Le mouvement reste synchronisé même
\series bold
au delà
\series default
des coordonnées d'origine pendant que la broche s'arrête et s'inverse.
\layout Itemize
Un mouvement
\series bold
non synchronisé
\series default
ramène le mobile en arrière, aux coordonnées d'origine.
\layout Standard
Tous les mouvements avec broche synchronisée ont besoin d'un index de broche,
pour conserver la trajectoire prévue.
Un mouvement avec
\family typewriter
G33
\family default
se termine au point final programmé, un mouvement avec
\family typewriter
G33.1
\family default
se termine aux coordonnées initiales.
\layout Standard
Les mots d'axes sont facultatifs, sauf au moins un qui doit être utilisé.
\layout Standard
C'est une erreur si:
\layout Itemize
Tous les axes sont omis.
\layout Itemize
La broche ne tourne pas quand cette commande est exécutée.
\layout Itemize
Le mouvement linéaire requis excède les limites de vitesse machine en raison
de la vitesse de broche.
\layout Section
G4
\begin_inset LatexCommand \index{G4}
\end_inset
: Tempo
\begin_inset LatexCommand \label{sec:G4:-Tempo}
\end_inset
\layout Standard
Pour une tempo, programmer G4 P- .
Les axes s'immobiliseront pour une durée de P secondes.
C'est une erreur si:
\layout Itemize
Le nombre P est négatif.
\layout Section
G10
\begin_inset LatexCommand \index{G10}
\end_inset
: Établissement du système de coordonnées pièce
\begin_inset LatexCommand \label{sub:G10:-Coordonnées-pièce}
\end_inset
\layout Standard
Le langage RS274/NGC utilise les systèmes de coordonnées décrits à la section
\begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées}
\end_inset
.
\layout Standard
Pour définir les coordonnées de l'origine d'un système de coordonnées pièce,
programmer
\family typewriter
G10 L2 P-
\family default
\family typewriter
\emph on
axes
\family default
\emph default
, où l'entier P, compris entre 1 et 9 (correspondance de
\family typewriter
G54
\family default
à
\family typewriter
G59.3
\family default
) et tous les mots d'axes, sont optionnels.
Les coordonnées de l'origine du système de coordonnées, spécifié par le
nombre P, sont remplacées par les coordonnées des valeurs indiquées (en
termes de coordonnées absolues).
Seules, les coordonnées pour lesquelles un mot d'axe est inclu sur la ligne,
seront remplacées.
\layout Standard
C'est une erreur si:
\layout Itemize
Le nombre P n'est pas un entier compris entre 1 et 9.
\layout Standard
Si des décalages d'origine (créés avec
\family typewriter
G92
\family default
ou
\family typewriter
G92.3
\family default
) sont actifs avant l'utilisation de
\family typewriter
G10
\family default
, ils restent actifs après.
\layout Standard
Le système de coordonnées dont l'origine est définie par la commande G10
peut être actif ou non au moment de l'exécution de
\family typewriter
G10
\family default
.
\layout Standard
Exemple:
\family typewriter
G10 L2 P1 x 3.5 y 17.2
\family default
place l'origine du premier système de coordonnées (celui selectionné par
G54) au point où X vaut 3.5 et Y vaut 17.2 (en coordonnées absolues).
La coordonnée Z de l'origine, ainsi que les coordonnées de tous les axes
rotatifs, restent celles qu'elles étaient avant l'exécution de la ligne.
\layout Section
G17
\begin_inset LatexCommand \index{G17}
\end_inset
, G18
\begin_inset LatexCommand \index{G18}
\end_inset
, G19
\begin_inset LatexCommand \index{G19}
\end_inset
: Choix du plan de travail
\begin_inset LatexCommand \label{sub:G17,-G18,-G19:}
\end_inset
\layout Standard
Programmer G17 pour choisir le plan de travail XY, G18 pour choisir le plan
de travail XZ, ou G19 pour choisir le plan de travail YZ.
Les effets provoqués par un changement de plan de travail sont expliqués
dans les sections
\begin_inset LatexCommand \ref{sub:-G2,-G3:-Arc}
\end_inset
et
\begin_inset LatexCommand \ref{sub:G81-à-G89:}
\end_inset
\layout Section
G20
\begin_inset LatexCommand \index{G20}
\end_inset
, G21
\begin_inset LatexCommand \index{G21}
\end_inset
: Choix des unités machine
\begin_inset LatexCommand \label{sec:G20,-G21:-Longueur}
\end_inset
\layout Standard
Programmer G20 pour utiliser le pouce comme unité de longueur.
Programmer G21 pour utiliser le millimètre.
\layout Standard
C'est toujours une bonne pratique de programmer soit G20, soit G21, au début
d'un programme, avant tout mouvement et de ne plus en changer ailleurs
dans le programme.
C'est la responsabilité de l'opérateur d'être sûr que toutes les longueurs
sont appropriées pour l'utilisation des unités actuelles.
\layout Section
G28
\begin_inset LatexCommand \index{G28}
\end_inset
, G30
\begin_inset LatexCommand \index{G30}
\end_inset
: Retour à une position absolue prédéfinie
\begin_inset LatexCommand \label{sub:G28,-G30:-Retour}
\end_inset
\layout Standard
Deux positions sont définies, une par les paramètres 5161-5166 pour
\family typewriter
G28
\family default
et une par les paramètres 5181-5186 pour
\family typewriter
G30
\family default
.
Les valeurs de ces paramètres sont en coordonnées absolues et en coordonnées
machine.
\layout Standard
Les commandes G28 et G30 n'utilisent pas de contact d'origine machine pour
trouver la position prédéfinie, elles se bornent à effectuer un mouvement
en vitesse rapide à la position définie dans les paramètres, ce qui suppose
que la prise d'origine machine a déjà été réalisée.
\layout Standard
Pour le retour d'un ou plusieurs axes sur une position prédéfinie par le
biais de la position programmée, programmer
\family typewriter
G28
\family default
\family typewriter
\emph on
axes
\family default
\emph default
(ou utiliser
\family typewriter
G30
\family default
).
La trajectoire est faite par un mouvement rapide depuis la position courante
jusqu'à la position programmée, suivi d'un mouvement rapide des axes nommés
à la position prédéfinie.
\layout Standard
Pour le retour de tous les axes à la position prédéfinie sans la position
intermédiaire, programmer
\family typewriter
G28
\family default
ou
\family typewriter
G30
\family default
sans mot d'axe.
\layout Standard
C'est une erreur si:
\layout Itemize
La compensation de rayon d'outil est active.
\layout Section
G38.x
\begin_inset LatexCommand \index{G38.2}
\end_inset
\begin_inset LatexCommand \index{G38.x}
\end_inset
: Sonde de mesure
\begin_inset LatexCommand \label{sub:G38.2:-Sonde-de-mesure}
\end_inset
\layout Standard
Programmer
\family typewriter
G38.2
\family default
\family typewriter
\emph on
axes
\family default
,
\emph default
\family typewriter
G38.3
\family default
\family typewriter
\emph on
axes
\family default
,
\emph default
\family typewriter
G38.4
\family default
\family typewriter
\emph on
axes
\family default
,
\emph default
ou
\family typewriter
G38.5
\family default
\family typewriter
\emph on
axes
\family default
\emph default
pour effectuer une mesure à la sonde.
Au moins un mot d'axe est obligatoire, les autres sont optionnels.
L'outil dans la broche doit être une sonde.
\layout Standard
C'est une erreur si:
\layout Itemize
Le point programmé est le même que le point courant.
\layout Itemize
Aucun mot d'axe n'est utilisé.
\layout Itemize
La compensation de rayon d'outil est active.
\layout Itemize
La vitesse travail est à zéro.
\layout Itemize
La sonde est déjà au contact de la cible.
\layout Standard
En réponse à cette commande, la machine déplace le point contrôlé (qui est
la pointe de la sonde), en ligne droite, à la vitesse actuelle, vers le
point programmé, en mode vitesse inverse du temps; la vitesse est telle,
que le mouvement depuis le point courant jusqu'au point programmé, prendra
le temps spécifié.
Le mouvement s'arrête lorsque le point programmé est atteint, ou quand
l'entrée de la sonde bascule dans l'état attendu
\begin_inset Foot
collapsed true
\layout Standard
En réalité, le mouvement continue légérement après que l'état de la sonde
ait basculé, à cause des contraintes d'accélération/décélération de la
machine.
\end_inset
.
Le tableau
\begin_inset LatexCommand \ref{cap:Codes-de-mesure}
\end_inset
montre la signification des différents codes de mesure.
\layout Standard
\begin_inset Float table
wide false
collapsed false
\layout Caption
Codes de mesure
\begin_inset LatexCommand \label{cap:Codes-de-mesure}
\end_inset
\layout Standard
\align center
\begin_inset Tabular
\begin_inset Text
\layout Standard
Code
\end_inset
|
\begin_inset Text
\layout Standard
Etat ciblé
\end_inset
|
\begin_inset Text
\layout Standard
Direction
\end_inset
|
\begin_inset Text
\layout Standard
Signal d'erreur
\end_inset
|
\begin_inset Text
\layout Standard
G38.2
\end_inset
|
\begin_inset Text
\layout Standard
Contact
\end_inset
|
\begin_inset Text
\layout Standard
Vers la pièce
\end_inset
|
\begin_inset Text
\layout Standard
Oui
\end_inset
|
\begin_inset Text
\layout Standard
G38.3
\end_inset
|
\begin_inset Text
\layout Standard
Contact
\end_inset
|
\begin_inset Text
\layout Standard
Vers la pièce
\end_inset
|
\begin_inset Text
\layout Standard
Non
\end_inset
|
\begin_inset Text
\layout Standard
G38.4
\end_inset
|
\begin_inset Text
\layout Standard
Pas de contact
\end_inset
|
\begin_inset Text
\layout Standard
Depuis la pièce
\end_inset
|
\begin_inset Text
\layout Standard
Oui
\end_inset
|
\begin_inset Text
\layout Standard
G38.5
\end_inset
|
\begin_inset Text
\layout Standard
Pas de contact
\end_inset
|
\begin_inset Text
\layout Standard
Depuis la pièce
\end_inset
|
\begin_inset Text
\layout Standard
Non
\end_inset
|
\end_inset
\end_inset
\layout Standard
Après une mesure réussie, les paramètres 5061 à 5069 contiendront les coordonnée
s de l'emplacement du point contrôlé lors du changement d'état de la sonde.
Après une mesure manquée, ils contiendront les coordonnées du point programmé.
Le paramètre 5070 est mis à 1 si la mesure est réussie et à 0 si elle est
manquée.
Si la mesure n'a pas réussi, G38.2 et G38.4 signaleront une erreur.
\layout Standard
Un commentaire de la forme
\family typewriter
(PROBEOPEN
\family default
\family typewriter
\emph on
filename.txt
\emph default
)
\family default
ouvrira le ficher
\emph on
filename.txt
\emph default
et y enregistrera les 9 coordonnées de chaque mesure réussie.
Le fichier doit être fermé avec le commentaire
\family typewriter
(PROBECLOSE)
\family default
.
\layout Section
G40
\begin_inset LatexCommand \index{G40}
\end_inset
, G41
\begin_inset LatexCommand \index{G41}
\end_inset
, G42
\begin_inset LatexCommand \index{G42}
\end_inset
, G41.1
\begin_inset LatexCommand \index{G41.1}
\end_inset
, G42.1
\begin_inset LatexCommand \index{G42.1}
\end_inset
: Compensation de rayon d'outil
\begin_inset LatexCommand \label{sub:G40,-G41,-G42:}
\end_inset
\layout Standard
Pour désactiver la compensation de rayon d'outil, programmer
\family typewriter
G40
\family default
.
Ce n'est pas une erreur de désactiver la compensation quand elle est déjà
inactive.
\layout Standard
La compensation de rayon d'outil ne peut être activée que si le plan de
travail courant est le plan XY.
\layout Standard
Le comportement du centre d'usinage quand la compensation de rayon d'outil
est active est décrit dans la section
\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil}
\end_inset
\layout Subsection
Compensation de rayon d'outil depuis une table d'outils
\layout Standard
Pour activer la compensation de rayon d'outil à gauche du profil, c'est
à dire, la fraise reste à gauche de la trajectoire programmée quand le
rayon d'outil est positif, programmer
\family typewriter
G41 D-
\family default
.
Pour activer la compensation de rayon d'outil à droite du profil, c'est
à dire, la fraise reste à droite de la trajectoire programmée quand le
rayon d'outil est positif, programmer
\family typewriter
G42 D-
\family default
.
Le mot D est optionnel, si il n'y a pas de mot D, le rayon de l'outil monté
actuellement dans la broche est utilisé.
Si D est utilisé, sa valeur devrait être le numéro de l'outil monté dans
la broche, cependant, ce n'est pas obligatoire.
Ce n'est pas une erreur d'avoir D à zéro, le rayon utilisé sera de zéro.
\layout Standard
C'est une erreur si:
\layout Itemize
La valeur de D n'est pas un entier, il est négatif ou supérieur au nombre
d'emplacements dans le carrousel.
\layout Itemize
Le plan de travail n'est pas YZ.
\layout Itemize
La compensation de rayon d'outil est activée alors qu'elle est déjà active.
\layout Subsection
Compensation dynamique de rayon d'outil
\layout Standard
Pour activer la compensation dynamique de rayon d'outil à gauche du profil,
programmer
\family typewriter
G41.1 D- L-
\family default
.
Pour activer la compensation dynamique de rayon d'outil à droite du profil,
programmer
\family typewriter
G42.1 D- L-
\family default
.
Le mot D spécifie le diamètre de l'outil.
Le mot L spécifie l'orientation des arêtes de l'outil, et par défaut 0
si non spécifié.
\layout Standard
C'est une erreur si:
\layout Itemize
Le plan yz est le plan de travail actif.
\layout Itemize
La valeur de L n'est pas comprise entre 0 et 9 inclus.
\layout Itemize
La compensation de rayon d'outil est activée alors qu'elle est déjà active.
\layout Section
G43
\begin_inset LatexCommand \index{G43}
\end_inset
, G43.1
\begin_inset LatexCommand \index{G43.1}
\end_inset
, G49
\begin_inset LatexCommand \index{G49}
\end_inset
: Compensation de longueur d'outil
\begin_inset LatexCommand \label{sub:G43,-G49:-Outils}
\end_inset
\layout Subsection
G43
\begin_inset LatexCommand \label{sub:G43}
\end_inset
, G43.1: Activation de la compensation de longueur d'outil
\layout Standard
G43 et G43.1 modifient les mouvements ultérieurs en décalant, de la longueur
de l'outil, les coordonnées de Z et/ou de X.
G43 et G43.1 ne provoquent aucun mouvement.
L'effet de la compensation ne se produira qu'au prochain mouvement de l'axe
compensé.
\layout Subsubsection
G43: Compensation de longueur d'outil depuis une table d'outils
\layout Standard
Pour utiliser la compensation de longueur d'outil depuis une table d'outils,
programmer
\family typewriter
G43 H-
\family default
, où la valeur de H est l'index souhaîté dans la table d'outils.
La valeur de H n'est pas obligatoirement la même que celle du numéro d'outil
monté dans la broche.
Ce n'est pas une erreur d'avoir la valeur de H à zéro, une compensation
de zéro sera utilisée.
\layout Standard
C'est une erreur si:
\layout Itemize
La valeur de H n'est pas un entier, il est négatif, ou il est supérieur
au nombre d'outils dans le carrousel.
\layout Subsubsection
G43.1: Compensation dynamique de longueur d'outil
\layout Standard
Pour utiliser la compensation dynamique de longueur d'outil depuis un programme,
utiliser
\family typewriter
G43.1 I- K-
\family default
, où
\family typewriter
I-
\family default
donne la compensation de longueur d'outil en X (pour les tours) et
\family typewriter
K-
\family default
donne la compensation de longueur en Z (pour les tours et les fraiseuses).
\layout Standard
C'est une erreur si:
\layout Itemize
Une commande de mouvement est sur la même ligne que
\family typewriter
G43.1
\layout Subsection
G49
\begin_inset LatexCommand \label{sub:G49}
\end_inset
: Annulation de la compensation de longueur d'outil
\layout Standard
Pour annuler la compensation de longueur d'outil, programmer G49.
\layout Standard
Ce n'est pas une erreur de programmer une compensation qui est déjà utilisée.
Ce n'est pas non plus une erreur d'annuler la compensation de longueur
d'outil alors qu'aucune n'est couramment utilisée.
\layout Section
G53
\begin_inset LatexCommand \index{G53}
\end_inset
: Mouvement en coordonnées absolues
\begin_inset LatexCommand \label{sub:G53:-Move-in}
\end_inset
\layout Standard
Pour un déplacement à un point exprimé en coordonnées absolues, programmer
\family typewriter
G1 G53 X- Y- Z- A- B- C-
\family default
(ou utiliser
\family typewriter
G0
\family default
à la place de
\family typewriter
G1
\family default
), au moins un mot d'axe est obligatoire, les autres sont optionnels.
Le
\family typewriter
G0
\family default
ou le
\family typewriter
G1
\family default
est optionnel si il est déjà le mode de mouvement courant.
\family typewriter
G53
\family default
n'est pas modal, il doit être programmé sur chaque ligne où il doit être
actif.
Il produit un mouvement linéaire coordonné au point programmé.
Si
\family typewriter
G1
\family default
est actif, la vitesse travail courante est utilisée si la machine est assez
rapide.
Si
\family typewriter
G0
\family default
est actif, la vitesse rapide courante sera utilisée si la machine est assez
rapide.
\layout Standard
C'est une erreur si:
\layout Itemize
G53 est utilisé sans que G0 ou G1 ne soit actif.
\layout Itemize
G53 est utilisé alors que la compensation de rayon d'outil est active.
\layout Standard
Voir la section
\begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées}
\end_inset
pour une vue complète des systèmes de coordonnées.
\layout Section
G54
\begin_inset LatexCommand \index{G54}
\end_inset
\begin_inset LatexCommand \index{G55}
\end_inset
\begin_inset LatexCommand \index{G56}
\end_inset
\begin_inset LatexCommand \index{G57}
\end_inset
\begin_inset LatexCommand \index{G58}
\end_inset
\begin_inset LatexCommand \index{G59}
\end_inset
\begin_inset LatexCommand \index{G59.1}
\end_inset
\begin_inset LatexCommand \index{G59.2}
\end_inset
à G59.3
\begin_inset LatexCommand \index{G59.3}
\end_inset
: Choix du système de coordonnées
\begin_inset LatexCommand \label{sub:G54-à-G59.3:}
\end_inset
\layout Standard
Le code G54 est apparié avec le système de coordonnées pièce N°1, pour le
choisir programmer G54 et ainsi de suite pour les autres systèmes.
Les systèmes de coordonnées appariés à un G-code sont les suivants: (1
avec
\family typewriter
G54
\family default
), (2 avec
\family typewriter
G55
\family default
), (3
\family typewriter
avec G56
\family default
), (4 avec
\family typewriter
G57
\family default
), (5 avec
\family typewriter
G58
\family default
), (6 avec
\family typewriter
G59
\family default
), (7 avec
\family typewriter
G59.1
\family default
), (8 avec
\family typewriter
G59.2
\family default
) et (9 avec
\family typewriter
G59.3
\family default
).
\layout Standard
C'est une erreur si:
\layout Itemize
Un de ces G-codes est utilisé alors que la compensation de rayon d'outil
est active.
\layout Standard
Voir la section
\begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées}
\end_inset
pour une vue complète des systèmes de coordonnées.
\layout Section
G61
\begin_inset LatexCommand \index{G61}
\end_inset
, G61.1
\begin_inset LatexCommand \index{G61.1}
\end_inset
, G64
\begin_inset LatexCommand \index{G64}
\end_inset
: Types de contrôle de trajectoire
\begin_inset LatexCommand \label{sub:G61,-G61.1,-G64:-Types-contrôle-trajectoire}
\end_inset
\layout Standard
Programmer
\family typewriter
G61
\family default
pour passer la machine en mode de trajectoire exacte,
\family typewriter
G61.1
\family default
pour la passer en mode arrêt exact, ou
\family typewriter
G64 P-
\family default
pour le mode trajectoire continue avec tolérance optionnelle.
Ce n'est pas une erreur de programmer un mode déjà actif.
Voir la section
\begin_inset LatexCommand \ref{sub:Modes-de-contrôle-trajectoires}
\end_inset
pour une discussion de ces modes.
\layout Section
G80
\begin_inset LatexCommand \index{G80}
\end_inset
: Révocation des codes modaux
\begin_inset LatexCommand \label{sec:G80:-Cancel-Modal}
\end_inset
\layout Standard
Programmer
\family typewriter
G80
\family default
pour s'assurer qu'aucun mouvement d'axe ne surviendra sans G-code modal.
C'est une erreur si:
\layout Itemize
Des mots d'axes sont programmés quand G80 est actif, sans qu'un G-code modal
du groupe 0 ne soit programmé avec les mots d'axes.
\layout Section
G76
\begin_inset LatexCommand \index{G76}
\end_inset
: Cycle de filetage préprogrammé
\begin_inset LatexCommand \label{sec:G76:-Filetage-préprogrammé}
\end_inset
\layout Standard
Programmer
\family typewriter
G76 P- Z- I- J- R- K- Q- H- E- L-
\family default
pour produire un cycle de filetage multi-passes.
C'est une erreur si:
\layout Itemize
Le plan de travail actif n'est pas ZX.
\layout Itemize
D'autres mots d'axes comme X- ou Y-, sont spécifiés.
\layout Itemize
La dégressivité
\family typewriter
R-
\family default
est inférieure à 1.0.
\layout Itemize
Certains mots requis ne sont pas spécifiés.
\layout Itemize
\family typewriter
P-
\family default
,
\family typewriter
J-
\family default
,
\family typewriter
K-
\family default
ou
\family typewriter
H-
\family default
est négatif.
\layout Itemize
\family typewriter
E-
\family default
est supérieure à la moitié de la longueur de la ligne pilote.
\layout Standard
La ligne pilote (drive line) est une ligne imaginaire, parallèle à l'axe
de la broche, située en sécurité à l'extérieur du matériau à fileter.
La ligne pilote va du point initial en Z jusqu'à la fin du filetage donnée
par la valeur de
\family typewriter
Z-
\family default
dans la commande.
\layout Standard
Le pas du filet, ou la longueur du déplacement par tour est donné par la
valeur de
\family typewriter
P-
\family default
.
\layout Standard
La crête du filet est donnée par la valeur de
\family typewriter
I-
\family default
, c'est une cote entre la ligne pilote et la surface de la pièce.
Une valeur négative de
\family typewriter
I-,
\family default
indique un filetage externe et une valeur positive, indique un filetage
interne.
C'est généralement à ce diamètre nominal que le matériau est cylindré avant
de commencer le cycle
\family typewriter
G76
\family default
.
\layout Standard
La profondeur de la passe initiale est donnée par la valeur de
\family typewriter
J-
\family default
.
La première passe sera à
\family typewriter
J-
\family default
au delà de la crête du filet.
\family typewriter
J-
\family default
est positif, même quand
\family typewriter
I-
\family default
est négatif.
\layout Standard
La profondeur du filet est donnée par la valeur de
\family typewriter
K-
\family default
.
La dernière passe du filetage sera à
\family typewriter
K- au delà
\family default
de la crête du filet.
\family typewriter
K-
\family default
est positif, même quand I
\family typewriter
-
\family default
est négatif.
\layout Standard
La dégressivité de la profondeur de passe est donnée par la valeur de
\family typewriter
R-
\family default
.
\family typewriter
R1.0
\family default
sélectionne une profondeur de passe constante pour les passes successives
du filetage.
\family typewriter
R2.0
\family default
sélectionne une surface constante.
Les valeurs comprises entre 1.0 et 2.0 sélectionnent une profondeur décroîssante
mais une surface croîssante.
Enfin, les valeurs supérieures à 2.0 sélectionnent une surface décroîssante.
Attention: les valeurs inutilement hautes de dégression, demanderont un
nombre inutilement important de passes.
\layout Standard
L'angle de pénétration oblique est donné par la valeur de
\family typewriter
Q-
\family default
c'est l'angle (en degrés) décrivant de combien les passes successives doivent
être décalées le long de l'axe.
C'est utilisé pour faire enlever plus de matériau d'un côté de l'outil
que de l'autre.
Une valeur positive de
\family typewriter
Q
\family default
fait couper d'avantage le bord principal de l'outil.
Typiquement, les valeurs sont 29, 29.5 ou 30 degrés.
\layout Standard
Le nombre de passes de finition est donné par la valeur de
\family typewriter
H-
\family default
.
Les passes de finition sont des passes additionnelles en fond de filet.
Pour ne pas faire de passe de finition, programmer
\family typewriter
H0
\family default
.
\layout Standard
Les entrées et sorties de filetage peuvent être programmées côniques avec
les valeurs de
\family typewriter
E-
\family default
et
\family typewriter
L-
\family default
.
\family typewriter
E-
\family default
donne la longueur de la partie cônique le long de l'axe.
\family typewriter
E0.2
\family default
donnera un cône pour le premier et le dernier filet, de 0.2 unités dans
le sens du filetage.
\family typewriter
L-
\family default
est utilisé pour spécifier quelles extrémités du filetage doivent être
côniques.
Programmer
\family typewriter
L0
\family default
pour aucune (par défaut),
\family typewriter
L1
\family default
pour une entrée cônique,
\family typewriter
L2
\family default
pour une sortie cônique, ou
\family typewriter
L3
\family default
pour l'entrée et la sortie côniques.
\layout Standard
L'outil fera une brève pause pour la synchronisation avant chaque passe
de filetage, ainsi une gorge de dégagement sera requise à l'entrée, à moins
que le début du filetage ne soit après l'extrémité de la pièce ou qu'un
cône d'entrée soit utilisé.
\layout Standard
À moins d'utiliser un cône de sortie, le mouvement de sortie (retour rapide
sur X d'origine) n'est pas synchronisé sur la vitesse de broche.
Avec une broche lente, la sortie pourrait se faire sur une petite fraction
de tour.
Si la vitesse de broche est augmentée après qu'un certain nombre de passes
ne soient déjà faites, la sortie va prendre une plus grande fraction de
tour, il en résultera un usinage très brutal pendant ce nouveau mouvement
de sortie.
Ceci peut être évité en prévoyant une gorge de sortie, ou en ne changeant
pas la vitesse de broche pendant le filetage.
\layout Standard
Un exemple de programme,
\family typewriter
g76.ngc
\family default
montre l'utilisation d'un cycle de filetage G76, il peut être visualisé
et exécuté sur n'importe quelle machine utilisant la configuration
\family typewriter
sim/lathe.ini
\family default
.
\layout Standard
\begin_inset Float figure
wide false
collapsed false
\layout Caption
\begin_inset LatexCommand \label{fig:G76-cycle-de-filetage}
\end_inset
G76 cycle de filetage
\layout Standard
\align center
\begin_inset Graphics
filename g76.epsi
scale 75
\end_inset
\end_inset
\layout Section
G73, G81
\begin_inset LatexCommand \index{G73,G81}
\end_inset
à G89
\begin_inset LatexCommand \index{G89}
\end_inset
: Cycles préprogrammés
\begin_inset LatexCommand \label{sub:G81-à-G89:}
\end_inset
\layout Standard
Les cycles préprogrammés
\family typewriter
G73, G81
\family default
à
\family typewriter
G89
\family default
sont implémentés comme décrit dans cette section.
Deux exemples sont donnés avec la description de
\family typewriter
G81.
\layout Standard
Tous les cycles préprogrammés sont effectués dans le respect du plan de
travail courant.
N'importe lequel des trois plans de travail XY, YZ, ZX peut être choisi.
Dans cette section, la plupart des descriptions supposeront que le plan
de travail XY est le plan courant.
Le comportement reste analogue pour les plans de travail YZ ou XZ.
\layout Standard
Les mots d'axes rotatifs sont autorisés dans les cycles préprogrammés, mais
il est préférable de les omettre.
Si les mots d'axes rotatifs sont utilisés, leurs valeurs doivent rester
les mêmes que celles de la position courante, de sorte qu'ils ne tournent
pas.
\layout Standard
Tous les cycles préprogrammés utilisent X-, Y-, R-, et Z- dans le code NC.
Ces valeurs sont utilisées pour déterminer les positions de X, Y, R, et
Z.
La position de R- (signifiant rétraction) est perpendiculaire au plan de
travail courant (axe Z pour le plan XY, axe X pour le plan YZ, axe Y pour
le plan XZ).
Quelques cycles préprogrammés utilisent des arguments supplémentaires.
\layout Standard
Dans les cycles préprogrammés, un nombre est appelé
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
(collant) si, quand le même cycle est répété sur plusieurs lignes de code
en colonne, le nombre doit être indiqué la première fois, mais qu'il devient
optionnel pour le reste des lignes suivantes.
Les nombres
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
conservent leur valeur tant qu'ils ne sont pas explicitement programmés
avec une nouvelle valeur.
La valeur de R- est toujours
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
.
\layout Standard
En mode de déplacements incrémentaux (G91): quand le plan courant est XY,
les valeurs X-, Y-, est R- sont traitées comme incrémentales à partir de
la position courante et Z- comme un incrément depuis la position précédent
le mouvement impliquant l'axe Z.
Quand le plan YZ ou XZ est le plan courant, le traitement des mots d'axes
est analogue.
En mode de déplacements absolus, les valeurs de X-, Y-, R-, et Z- sont
des positions absolues dans le système de coordonnées courant.
\layout Standard
La valeur L- est optionnelle, elle représente le nombre de répétitions.
\begin_inset Formula $L=0$
\end_inset
n'est pas permis.
Si les répétitions sont utilisées, elles le sont normalement en mode de
déplacements incrémentaux, de sorte que la même séquence de mouvements
puisse être répétée à plusieurs endroits, égalements espacés, le long d'un
ligne droite.
En mode de déplacements absolus,
\begin_inset Formula $L>1$
\end_inset
signifie
\begin_inset Quotes eld
\end_inset
faire le même cycle au même endroit, plusieurs fois
\begin_inset Quotes erd
\end_inset
.
L'omission du mot L revient à spécifier
\begin_inset Formula $L=1$
\end_inset
.
La valeur de L- n'est pas
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
.
\layout Standard
Avec
\begin_inset Formula $L>1$
\end_inset
en mode incrémental et XY comme plan courant, les positions X et Y sont
déterminées en ajoutant les valeurs X- et Y- de la commande à celles de
la position courante, pour le premier trajet ou, ensuite, à celles de la
position finale du précédent trajet, pour les répétitions.
Les valeurs de R- et de Z- ne changent pas durant toutes les répétitions.
\layout Standard
La hauteur du mouvement de retrait à la fin de chaque répétition (appellée
\begin_inset Quotes eld
\end_inset
plan de retrait
\begin_inset Quotes erd
\end_inset
dans les descriptions suivantes) est déterminée par le passage en mode:
retrait sur la position initiale de Z, si elle est au dessus de la valeur
de R- et que le mode de retrait est
\family typewriter
G99
\family default
, OLD_Z, sinon, à la position de R-.
Voir la section
\begin_inset LatexCommand \ref{sub:G98,-G99:-Set}
\end_inset
\layout Standard
C'est une erreur si:
\layout Itemize
Tous les mots X, Y et Z sont manquants durant un cycle préprogrammé.
\layout Itemize
Un nombre P est requis mais un nombre P négatif est utilisé.
\layout Itemize
Un nombre L est utilisé mais n'est pas un entier positif.
\layout Itemize
Un mouvement d'axe rotatif est utilisé durant un cycle préprogrammé.
\layout Itemize
Une vitesse inverse du temps est activée durant un cycle préprogrammé.
\layout Itemize
La correction de rayon d'outil est activée durant un cycle préprogrammé.
\layout Standard
Quand le plan XY est actif, la valeur de Z est
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
, et c'est une erreur si:
\layout Itemize
La valeur de Z est manquante alors qu'un même cycle préprogrammé n'a pas
encore été activé.
\layout Itemize
La valeur de R est inférieure à celle de Z.
\layout Standard
Quand le plan XZ est actif, la valeur de Y est
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
, et c'est une erreur si:
\layout Itemize
La valeur de Y est manquante alors qu'un même cycle préprogrammé n'a pas
encore été activé.
\layout Itemize
La valeur de R est inférieure à celle de Y.
\layout Standard
Quand le plan YZ est actif, la valeur de X est
\begin_inset Quotes eld
\end_inset
sticky
\begin_inset Quotes erd
\end_inset
, et c'est une erreur si:
\layout Itemize
La valeur de X est manquante alors qu'un même cycle préprogrammé n'a pas
encore été activé.
\layout Itemize
La valeur de R est inférieure à celle de X.
\layout Subsection
Mouvement préliminaire et Intermédiaire
\layout Standard
Tout au début de l'exécution d'un cycle préprogrammé, avec le plan courant
XY, si la position actuelle de Z est en dessous de la position de retrait
R, l'axe Z va à la position R.
Ceci n'arrive qu'une fois, sans tenir compte de la valeur de L.
\layout Standard
En plus, au début du premier cycle et à chaque répétition, un ou deux des
mouvements suivants sont faits:
\layout Enumerate
Un déplacement en ligne droite, parallèle au plan XY, vers le position programmé
e.
\layout Enumerate
Un déplacement en ligne droite, de l'axe Z seul vers la position de retrait
R, si il n'est pas déjà à cette position R.
\layout Standard
Si un des plans XZ ou YZ est actif, le mouvement préliminaire et intermédiaire
est analogue.
\layout Subsection
G81
\begin_inset LatexCommand \index{G81}
\end_inset
: Cycle de perçage
\begin_inset LatexCommand \label{sub:G81:-Cycle-de-perçage}
\end_inset
\layout Standard
Le cycle
\family typewriter
G81
\family default
est destiné au perçage.
Programmer
\family typewriter
G81 X- Y- Z- A- B- C- R- L-
\family default
donnera:
\layout Enumerate
Un mouvement préliminaire, comme il a été traité ci-dessus.
\layout Enumerate
Un déplacement de l'axe Z seul à la vitesse programmée, vers la position
Z programmée.
\layout Enumerate
Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R.
\layout Standard
\series bold
Exemple 1.
\series default
Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la
ligne de codes suivante est interprétée:
\layout LyX-Code
G90 G81 G98 X4 Y5 Z1.5 R2.8
\layout Standard
Le mode de déplacements absolus est appelé (
\family typewriter
G90
\family default
), le plan de retrait est positionné sur OLD_Z (
\family typewriter
G98
\family default
), l'appel du cycle de perçage
\family typewriter
G81
\family default
va lancer ce cycle une fois.
La position X deviendra celle demandée, X4.
La position de Y deviendra celle demandée, Y5.
La position de Z deviendra celle demandée, Z1.5.
La valeur de R fixe le plan de retrait de Z à 2.8.
La valeur de OLD_Z est 3.
Les mouvements suivants vont se produire.
\layout Enumerate
Un mouvement en vitesse rapide, parallèle au plan XY vers X4, Y5, Z3
\layout Enumerate
Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z2.8
\layout Enumerate
Un mouvement en vitesse travail, parallèle à l'axe Z vers X4, Y5, Z1.5
\layout Enumerate
Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z3
\layout Standard
\series bold
Exemple 2.
\series default
Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la
ligne de codes suivante est interprétée:
\layout LyX-Code
G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3
\layout Standard
Le mode de déplacements incrémentaux est appelé (
\family typewriter
G91
\family default
), le plan de retrait est positionné sur OLD_Z (
\family typewriter
G98
\family default
), l'appel du cycle de perçage
\family typewriter
G81
\family default
demande 3 répétitions du cycle.
La valeur demandée de X est 4, la valeur demandée de Y est 5, la valeur
demandée de Z est -0.6 et le retrait R est à 1.8.
La position initiale de X sera 5 (1+4), la position initiale de Y sera
7 (2+5), le plan de retrait sera positionné sur 4.8 (1.8+3) et Z positionné
sur 4.2 (4.8-0.6).
OLD_Z est à 3.
\layout Standard
Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2, Z4.8),
puisque OLD_Z est inférieur au plan de retrait.
\layout Standard
La première répétition produira 3 mouvements.
\layout Enumerate
Un déplacement en vitesse rapide, parallèle au plan XY vers X5, Y7, Z4.8
\layout Enumerate
Un déplacement en vitesse travail, parallèle à l'axe Z vers X5, Y7, Z4.2
\layout Enumerate
Un déplacement en vitesse rapide, parallèle à l'axe Z vers X5, Y7, Z4.8
\layout Standard
La deuxième répétition produira 3 mouvements.
La position de X est augmentée de 4 et passe à 9, la position de Y est
augmentée de 5 et passe à 12.
\layout Enumerate
Un déplacement en vitesse rapide, parallèle au plan XY vers X9, Y12, Z4.8
\layout Enumerate
Un déplacement en vitesse travail, parallèle à l'axe Z vers X9, Y12, Z4.2
\layout Enumerate
Un déplacement en vitesse rapide, parallèle à l'axe Z vers X9, Y12, Z4.8
\layout Standard
La troisième répétition produira 3 mouvements.
La position de X est augmentée de 4 et passe à 13, la position de Y est
augmentée de 5 et passe à 17.
\layout Enumerate
Un déplacement en vitesse rapide, parallèle au plan XY vers X13, Y17, Z4.8
\layout Enumerate
Un déplacement en vitesse travail, parallèle à l'axe Z vers X13, Y17, Z4.2
\layout Enumerate
Un déplacement en vitesse rapide, parallèle à l'axe Z vers X13, Y17, Z4.8
\layout Subsection
G82
\begin_inset LatexCommand \index{G82}
\end_inset
: Cycle de perçage avec temporisation
\begin_inset LatexCommand \label{sub:G82:-Cycle-de-perçage}
\end_inset
\layout Standard
Le cycle
\family typewriter
G82
\family default
est destiné au perçage.
Programmer
\family typewriter
G82 X- Y- Z- A- B- C- R- L- P-
\layout Standard
donnera:
\layout Enumerate
Un mouvement préliminaire, comme il a été traité ci-dessus.
\layout Enumerate
Un déplacement de l'axe Z seul en vitesse programmée, vers la position Z
programmée.
\layout Enumerate
Une temporisation de P secondes.
\layout Enumerate
Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R.
\layout Subsection
G83
\begin_inset LatexCommand \index{G83}
\end_inset
: Cycle de perçage avec débourrage
\begin_inset LatexCommand \label{sub:G83:-Perçage-avec-débourrage}
\end_inset
\layout Standard
Le cycle
\family typewriter
G83
\family default
est destiné au perçage profond ou au fraisage avec brise-copeaux.
Les retraits, au cours de ce cycle, dégagent les copeaux du trou et fragmentent
les copeaux longs (qui sont fréquents lors du perçage dans l'aluminum).
Ce cycle utilise la valeur Q qui représente un incrément
\begin_inset Quotes eld
\end_inset
delta
\begin_inset Quotes erd
\end_inset
le long de l'axe Z.
Programmer
\family typewriter
G83 X- Y- Z- A- B- C- R- L- Q-
\layout Standard
donnera:
\layout Enumerate
Un mouvement préliminaire, comme décrit précédemment.
\layout Enumerate
Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins
profonde entre, un incrément delta, ou la position de Z programmée.
\layout Enumerate
Un mouvement en vitesse rapide au plan de retrait.
\layout Enumerate
Une plongée en vitesse rapide dans le même trou, presque jusqu'au fond.
\layout Enumerate
Répétition des étapes 2, 3 et 4 jusqu'à ce que la position programmée de
Z soit atteinte à l'étape 2.
\layout Enumerate
Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait.
\layout Standard
C'est une erreur si:
\layout Itemize
La valeur de Q est négative ou égale à zéro.
\layout Subsection
G73
\begin_inset LatexCommand \index{G73}
\end_inset
: Cycle de perçage avec brise copeaux
\begin_inset LatexCommand \label{sub:G73:-Perçage-avec-brise-copeaux}
\end_inset
\layout Standard
Le cycle
\family typewriter
G73
\family default
est destiné au perçage profond ou au fraisage avec brise-copeaux.
Les retraits, au cours de ce cycle, fragmentent les copeaux longs (qui
sont fréquents lors du perçage dans l'aluminum).
Ce cycle utilise la valeur Q qui représente un incrément
\begin_inset Quotes eld
\end_inset
delta
\begin_inset Quotes erd
\end_inset
le long de l'axe Z.
Programmer
\family typewriter
G73 X- Y- Z- A- B- C- R- L- Q-
\layout Standard
donnera:
\layout Enumerate
Un mouvement préliminaire, comme décrit précédemment.
\layout Enumerate
Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins
profonde entre, un incrément delta, ou la position de Z programmée.
\layout Enumerate
Une petite remontée en vitesse rapide.
\layout Enumerate
Répétition des étapes 2 et 3 jusqu'à ce que la position programmée de Z
soit atteinte à l'étape 2.
\layout Enumerate
Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait.
\layout Standard
C'est une erreur si:
\layout Itemize
La valeur de Q est négative ou égale à zéro.
\layout Subsection
G84
\begin_inset LatexCommand \index{G84}
\end_inset
: Cycle de taraudage à droite
\begin_inset LatexCommand \label{sub:G84:-Taraudage-à-droite}
\end_inset
\layout Standard
Ce code n'est pas encore implémenté dans EMC2.
Il est accepté mais son comportement n'est pas défini.
Voir
\family typewriter
G33.1
\layout Subsection
G85
\begin_inset LatexCommand \index{G85}
\end_inset
: Cycle d'alésage, sans temporisation, retrait en vitesse travail
\begin_inset LatexCommand \label{sub:G85:-Alésage-retrait-travail}
\end_inset
\layout Standard
Le cycle
\family typewriter
G85
\family default
est destiné à l'alésage, mais peut être utilisé pour le perçage ou le fraisage.
Programmer
\family typewriter
G85 X- Y- Z- A- B- C- R- L- donnera:
\layout Enumerate
Un mouvement préliminaire, comme décrit précédemment.
\layout Enumerate
Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
\layout Enumerate
Retrait de l'axe Z en vitesse travail vers le plan de retrait.
\layout Subsection
G86
\begin_inset LatexCommand \index{G86}
\end_inset
: Cycle d'alésage, arrêt de broche, retrait en vitesse rapide
\begin_inset LatexCommand \label{sub:G86:-Alésage-retrait-rapide}
\end_inset
\layout Standard
Le cycle
\family typewriter
G86
\family default
est destiné à l'alésage.
Ce cycle utilise la valeur P pour une temporisation en secondes.
Programmer
\family typewriter
G86 X- Y- Z- A- B- C- R- L- P-
\layout Standard
donnera:
\layout Enumerate
Un mouvement préliminaire, comme décrit précédemment.
\layout Enumerate
Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
\layout Enumerate
Une temporisation de P secondes.
\layout Enumerate
L'arrêt de rotation de la broche.
\layout Enumerate
Retrait de l'axe Z en vitesse rapide vers le plan de retrait.
\layout Enumerate
Reprise de la rotation de la broche dans la même direction que précédemment.
\layout Standard
La broche doit tourner avant le lancement de ce cycle.
C'est une erreur si:
\layout Itemize
La broche ne tourne pas avant que ce cycle ne soit éxécuté.
\layout Subsection
G87
\begin_inset LatexCommand \index{G87}
\end_inset
: Back Boring
\begin_inset LatexCommand \label{sub:G87:-Back-Boring}
\end_inset
\layout Standard
Ce code n'est pas encore implémenté dans EMC2.
Il est accepté mais son comportement n'est pas défini.
\layout Subsection
G88
\begin_inset LatexCommand \index{G88}
\end_inset
: Alésage, arrêt de broche, retrait en manuel
\begin_inset LatexCommand \label{sub:G88:-Boring,-Spindle}
\end_inset
\layout Standard
Ce code n'est pas encore implémenté dans EMC2.
Il est accepté mais son comportement n'est pas défini.
\layout Subsection
G89
\begin_inset LatexCommand \index{G89}
\end_inset
: Cycle d'alésage, temporisation, retrait en vitesse travail
\begin_inset LatexCommand \label{sub:G89:-Alésage-temporisation}
\end_inset
\layout Standard
Le cycle
\family typewriter
G89
\family default
est destiné à l'alésage.
Il utilise la valeur de P pour une temporisation en secondes.
Programmer
\family typewriter
G89 X- Y- Z- A- B- C- R- L- P-
\layout Standard
donnera:
\layout Enumerate
Un mouvement préliminaire, comme décrit précédemment.
\layout Enumerate
Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
\layout Enumerate
Temporisation de P secondes.
\layout Enumerate
Retrait de l'axe Z en vitesse travail vers le plan de retrait.
\layout Subsection
G90
\begin_inset LatexCommand \index{G90}
\end_inset
, G91
\begin_inset LatexCommand \index{G91}
\end_inset
: Modes de déplacement
\begin_inset LatexCommand \label{sub:G90,-G91:-Set}
\end_inset
\layout Standard
L'interprétation du code RS274/NGC peut se faire dans deux modes de déplacements
: absolu ou incrémental.
\layout Standard
Pour se déplacer en mode absolu, programmer
\family typewriter
G90
\family default
.
En mode absolu, les valeurs d'axes X, Y, Z, A, B, C représentent les positions
dans le système de coordonnées courant.
Les exceptions à cette règle sont décrites dans la section
\begin_inset LatexCommand \ref{sub:G81-à-G89:}
\end_inset
.
\layout Standard
Pour se déplacer en mode incrémental, programmer
\family typewriter
G91
\family default
.
En mode incrémental, les valeurs d'axes X, Y, Z, A, B, C représentent une
valeur à ajouter à la position courante.
\layout Standard
Les valeurs I et J représentent toujours des incréments, quel que soit le
mode de déplacement actif.
La valeur de K représente un incrément à ajouter dans tous les cas sauf
un (voir la section
\begin_inset LatexCommand \ref{sub:G87:-Back-Boring}
\end_inset
), dans lequel la signification du mode de déplacement change.
\layout Section
G92
\begin_inset LatexCommand \index{G92}
\end_inset
, G92.1
\begin_inset LatexCommand \index{G92.1}
\end_inset
, G92.2
\begin_inset LatexCommand \index{G92.2}
\end_inset
, G92.3
\begin_inset LatexCommand \index{G92.3}
\end_inset
: Décalage d'origine du système de coordonnées
\begin_inset LatexCommand \label{sub:G92,-G92.1,-G92.2,}
\end_inset
\layout Standard
Voir la section
\begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées}
\end_inset
pour une vue générale des systèmes de coordonnées.
\layout Standard
Pour donner au point actuel de nouvelles valeurs de coordonnées (sans faire
de mouvement), programmer
\family typewriter
G92 X- Y- Z- A- B- C-
\family default
, où les mots d'axes contiennent les valeurs souhaîtées.
Au moins un mot d'axe est obligatoire, les autres sont optionnels.
Si il n'y a pas de mot d'axe pour un axe donné, les coordonnées de cet
axe resteront inchangées.
C'est une erreur si:
\layout Enumerate
Tous les mots d'axes sont omis.
\layout Standard
Quand
\family typewriter
G92
\family default
est exécuté, l'origine du système de coordonnées courant est déplacée.
Pour ce faire, les décalages d'origine sont calculés de sorte que les coordonné
es du point courant concordent avec l'origine déplacée comme spécifié dans
la ligne du G92.
En plus, les paramètres 5211 à 5216 sont positionnés sur le décalage des
axes X, Y, Z, A, B et C.
Le décalage d'un axe correspond à la distance dont l'origine doit être
déplacée afin que la coordonnée du point contrôlé, sur cet axe, ait la
valeur spécifiée.
\layout Standard
Voici un exemple: Supposons que le point courant soit X=4 dans le système
de coordonnées courant et que le décalage actuel de l'axe X soit à zéro,
alors
\family typewriter
G92 x7
\family default
passe le décalage de l'axe X à -3, positionne le paramètre 5211 à -3 et
positionne la coordonnée en X du point courant à 7.
\layout Standard
Les décalages d'axes sont toujours utilisés quand un mouvement est spécifié
en mode de déplacement absolu, en utilisant un des neuf systèmes de coordonnées
(ceux désignés par
\family typewriter
G54
\family default
-
\family typewriter
G59.3
\family default
).
Ainsi, les neuf systèmes de coordonnées sont affectés par
\family typewriter
G92
\family default
.
\layout Standard
Le fait d'être en mode de déplacement incrémental est sans effet sur l'action
de
\family typewriter
G92
\family default
.
\layout Standard
Des décalages non nuls peuvent déjà être actifs quand
\family typewriter
G92
\family default
est appelé.
Si c'est le cas, la nouvelle valeur de chaque décalage devient A+B, où
A est le décalage voulu si l'ancien avait été nul, et B est l'ancien décalage.
Par exemple, après le précédent exemple, la valeur de X au point courant
est 7.
Si
\family typewriter
G92 x9
\family default
est alors programmé, le nouveau décalage de l'axe X devient -5, qui est
calculé par
\family typewriter
[[7-9] + -3]
\family default
.
\layout Standard
Pour repasser un décalage d'axe à zéro, programmer
\family typewriter
G92.1
\family default
ou
\family typewriter
G92.2
\family default
.
\family typewriter
G92.1
\family default
positionne les paramètres 5211 à 5216 à zéro, tandis que
\family typewriter
G92.2
\family default
conserve leurs valeurs courantes inchangées.
\layout Standard
Pour positionner des valeurs de décalage d'axes aux valeurs données dans
les paramètres 5211 à 5216, programmer
\family typewriter
G92.3
\family default
.
\layout Standard
Vous pouvez positionner les décalages d'axes dans un programme et ré-utiliser
les mêmes dans un autre programme.
Programmer
\family typewriter
G92
\family default
dans le premier programme, ce qui positionnera les paramètres 5211 à 5216.
Ne pas utiliser G92.1 dans la suite du premier programme.
Les valeurs des paramètres seront enregistrées lors de la sortie du premier
programme et rétablies au chargement du second programme.
Utiliser
\family typewriter
G92.3
\family default
vers le début du deuxième programme, ce qui restaurera les décalages d'axes
enregistrés dans le premier.
Si d'autres programmes sont lancés entre le programme qui enregistre les
décalages et celui qui les restaure, faire une copie du fichier de paramètres
écrit par le premier programme et l'utiliser comme fichier de paramètres
pour le deuxième programme.
\layout Section
G93
\begin_inset LatexCommand \index{G93}
\end_inset
, G94
\begin_inset LatexCommand \index{G94}
\end_inset
, G95
\begin_inset LatexCommand \index{G95}
\end_inset
: Choix des modes de vitesse
\begin_inset LatexCommand \label{sub:G93,-G94:-Set}
\end_inset
\layout Standard
Trois modes de vitesse sont reconnus: unités par minute, inverse du temps
et unités par tour.
Programmer G94 pour passer en mode unités par minute.
Programmer G93 pour passer en mode inverse du temps.
Programmer G95 pour passer en mode unités par tour.
\layout Standard
Dans le mode vitesse en unités par minute, le mot F est interprété pour
indiquer que le point contrôlé doit se déplacer à un certain nombre de
pouces par minute, de millimètres par minute, ou de degrés par minute,
selon l'unité de longueur choisie pour les axes et quels types d'axes doivent
se déplacer.
\layout Standard
Dans le mode vitesse en unités par tour, le mot F est interprété pour indiquer
que le point contrôlé doit se déplacer à un certain nombre de pouces par
tour de broche, de millimètres par tour, selon l'unité de longueur utilisée
et quels axes doivent être déplacés.
\layout Standard
Dans le mode vitesse inverse du temps, le mot F signifie que le mouvement
doit être terminé en [1 divisé par la valeur de F] minutes.
Par exemple, si la valeur de F est 2.0, les mouvements doivent être terminés
en 1/2 minute.
\layout Standard
Quand le mode vitesse inverse du temps est actif, le mot F doit apparaître
sur chaque ligne contenant un mouvement G1, G2, ou G3.
Les mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignorés.
Être en mode vitesse inverse du temps est sans effet sur les mouvements
G0 (vitesse rapide).
C'est une erreur si:
\layout Itemize
Le mode vitesse inverse du temps est actif et qu'une ligne avec G1, G2,
ou G3 (explicitement ou implicitement) n'a pas de mot F.
\layout Itemize
Une nouvelle vitesse n'a pas été spécifiée après un passage en G94 ou G95.
\layout Section
G96
\begin_inset LatexCommand \index{G96}
\end_inset
, G97
\begin_inset LatexCommand \index{G97}
\end_inset
: Modes de contrôle de la broche
\begin_inset LatexCommand \index{mode}
\end_inset
\begin_inset LatexCommand \label{sec:G96,-G97:-Broche}
\end_inset
\layout Standard
Deux modes de contrôle de la broche sont reconnus: tours par minute, et
vitesse de coupe constante.
Programmer G96 D- S- pour valider une vitesse de coupe constante de S pieds
par minute si G20 est actif, ou mètres par minute si G21 est actif.
La vitesse de rotation maximale est indiquée par la valeur de D- en tours
par minute.
\layout Standard
Programmer G97 pour activer le mode vitesse en tours par minute.
\layout Standard
C'est une erreur si:
\layout Itemize
S n'est pas spécifié avec G96.
\layout Itemize
Une vitesse est spécifiée en mode G96 et la broche ne tourne pas.
\layout Section
G98
\begin_inset LatexCommand \index{G98}
\end_inset
, G99
\begin_inset LatexCommand \index{G99}
\end_inset
: Options du plan de retrait
\begin_inset LatexCommand \label{sub:G98,-G99:-Set}
\end_inset
\layout Standard
Quand la broche se rétracte pendant les cycles préprogrammés, il existe
deux options pour indiquer comment elle se rétracte: (1) Retrait perpendiculair
e au plan de travail courant jusqu'à la position indiquée par le mot R,
ou (2) Retrait perpendiculaire au plan de travail courant jusqu'à la position
qui était celle de cet axe juste avant le début du cycle préprogrammé (à
moins que cette position ne soit inférieure à celle indiquée par le mot
R, auquel cas, c'est cette dernière qui serait utilisée.
\layout Standard
Pour utiliser l'option (1), programmer
\family typewriter
G99
\family default
.
Pour utiliser l'option (2), programmer
\family typewriter
G98
\family default
.
Ne pas oublier que le mot R a différentes significations en mode de déplacement
absolu et en mode de déplacement incrémental.
\layout Chapter
M Codes
\layout Section
M0
\begin_inset LatexCommand \index{M0}
\end_inset
, M1
\begin_inset LatexCommand \index{M1}
\end_inset
, M2
\begin_inset LatexCommand \index{M2}
\end_inset
, M30
\begin_inset LatexCommand \index{M30}
\end_inset
, M60
\begin_inset LatexCommand \index{M60}
\end_inset
: Arrêts de programme
\begin_inset LatexCommand \label{sub:M0,-M1,-M2,}
\end_inset
\layout Standard
Pour stopper temporairement un programme en cours (quelle que soit la position
du bouton d'arrêt facultatif), programmer M0.
\layout Standard
Pour stopper temporairement un programme en cours (mais seulement si le
bouton d'arrêt optionnel est activé), programmer M1.
\layout Standard
Il est permis de programmer
\family typewriter
M0
\family default
et
\family typewriter
M1
\family default
en mode données manuelles (MDI), mais l'effet ne sera probablement pas
perceptible, puisque le comportement normal en mode MDI est de s'arrêter,
de toute façon, à la fin de chaque ligne.
\layout Standard
Pour procéder à l'échange de porte-pièce avec le chargeur de pièces et stopper
temporairement un programme en cours (quel que soit le réglage du bouton
d'arrêt facultatif), programmer M60.
\layout Standard
Si un programme est stoppé par M0, M1, ou M60, en appuyant sur le bouton
de départ cycle, le programme reprend à la ligne suivante.
\layout Standard
Pour finir un programme, programmer
\family typewriter
M2
\family default
.
Pour changer le porte-pièce du chargeur et finir un programme, programmer
\family typewriter
M30
\family default
.
Ces deux commandes produisent les effets suivants:
\layout Enumerate
Les décalages d'axes sont mis à zéro (comme avec
\family typewriter
G92.2
\family default
) et les décalages d'origine sont mis aux valeurs par défaut (comme avec
\family typewriter
G54
\family default
).
\layout Enumerate
Le plan de travail actif devient XY (comme avec
\family typewriter
G17
\family default
).
\layout Enumerate
Le mode de déplacement devient absolu (comme avec
\family typewriter
G90
\family default
).
\layout Enumerate
La vitesse travail passe en unités par minute (comme avec
\family typewriter
G94
\family default
).
\layout Enumerate
Les correcteurs de vitesse sont activés (comme avec
\family typewriter
M48
\family default
).
\layout Enumerate
Les compensations d'outil sont désactivées (comme avec
\family typewriter
G40
\family default
).
\layout Enumerate
La broche est arrêtée (comme avec
\family typewriter
M5
\family default
).
\layout Enumerate
Le mode mouvement courant devient G1 (comme avec
\family typewriter
G1
\family default
).
\layout Enumerate
L'arrosage est arrêté (comme avec
\family typewriter
M9
\family default
).
\layout Standard
Plus aucune ligne de code RS274/NGC ne sera exécutée après exécution de
la commande M2 ou M30.
Presser le départ cycle relance le programme au début du fichier.
\layout Section
M3
\begin_inset LatexCommand \index{M3}
\end_inset
, M4
\begin_inset LatexCommand \index{M4}
\end_inset
, M5
\begin_inset LatexCommand \index{M5}
\end_inset
: Contrôle de broche
\begin_inset LatexCommand \label{sub:M3,-M4,-M5:}
\end_inset
\layout Standard
Pour démarrer la rotation de la broche en sens horaire à la vitesse programmée
courante, programmer
\family typewriter
M3
\family default
.
\layout Standard
Pour démarrer la rotation de la broche en sens anti-horaire à la vitesse
programmée courante, programmer M4.
\layout Standard
Pour arrêter la rotation de la broche, programmer
\family typewriter
M5
\family default
.
\layout Standard
Il est permis d'utiliser
\family typewriter
M3
\family default
ou
\family typewriter
M4
\family default
si la vitesse de broche est à zéro.
Si cela est fait (ou si le bouton de correction de vitesse est activé mais
mis à zéro), la broche ne tournera pas, si, plus tard la vitesse de broche
est augmentée (ou que le correcteur de vitesse est augmenté), la broche
va se mettre en rotation.
Il est permis d'utiliser
\family typewriter
M3
\family default
ou
\family typewriter
M4
\family default
quand la broche est déjà en rotation ou d'utiliser
\family typewriter
M5
\family default
quand la broche est déjà arrêtée.
\layout Section
M6
\begin_inset LatexCommand \index{M6}
\end_inset
: Appel d'outil
\begin_inset LatexCommand \label{sub:M6:-Appel-d'outil}
\end_inset
\layout Standard
Pour changer l'outil actuellement dans la broche par un autre, nouvellement
sélectionné en utilisant le mot T, voir la section
\begin_inset LatexCommand \ref{sub:T:-Choix-outil}
\end_inset
), programmer
\family typewriter
M6
\family default
.
Un changement d'outil complet donnera:
\layout Itemize
La rotation de la broche est arrêtée.
\layout Itemize
L'outil qui a été sélectionné (par le mot T sur la même ligne ou sur n'importe
quelle ligne après le changement d'outil précédent), sera placé dans la
broche.
Le mot T est un nombre entier indiquant le numéro du slot d'outil dans
le carrousel (non son index).
\layout Itemize
Si l'outil sélectionné n'est pas déjà dans la broche avant le changement
d'outil, l'outil qui était dans la broche (s'il y en avait un) va être
replacé dans son emplacement dans le chargeur.
\layout Itemize
Les coordonnées des axes seront arrêtées dans les mêmes positions absolues
qu'elles avaient avant le changement d'outil (mais la broche devra peut-être
être réorientée).
\layout Itemize
Aucune autre modification ne sera apportée.
Par exemple, l'arrosage continue à couler durant le changement d'outil
à moins qu'il ne soit arrêté par
\family typewriter
M9
\family default
.
\layout Standard
Le changement d'outil peut inclure des mouvements d'axes pendant son exécution.
Il est permis, mais pas utile, de programmer un changement d'outil avec
le même outil que celui qui est déjà dans la broche.
Il est permis également, si il n'y a pas d'outil dans le slot sélectionné,
dans ce cas, la broche sera vide après le changement d'outil.
Si le slot zéro a été le dernier sélectionné, il n'y aura pas d'outil dans
la broche après le changement.
\layout Section
M7
\begin_inset LatexCommand \index{M7}
\end_inset
, M8
\begin_inset LatexCommand \index{M8}
\end_inset
, M9
\begin_inset LatexCommand \index{M9}
\end_inset
: Contrôle d'arrosage
\begin_inset LatexCommand \label{sub:M7,-M8,-M9:}
\end_inset
\layout Standard
Pour activer l'arrosage par brouillard (gouttelettes), programmer
\family typewriter
M7
\family default
.
\layout Standard
Pour activer l'arrosage fluide, programmer
\family typewriter
M8
\family default
.
\layout Standard
Pour arrêter tous les arrosages, programmer
\family typewriter
M9
\family default
.
\layout Standard
Il est toujours permis d'utiliser une de ces commandes, que les arrosages
soient arrêtés ou non.
\layout Section
M48
\begin_inset LatexCommand \index{M48}
\end_inset
, M49
\begin_inset LatexCommand \index{M49}
\end_inset
: Contrôle des correcteurs de vitesse
\begin_inset LatexCommand \label{sub:M48,-M49:-Correcteurs}
\end_inset
\begin_inset LatexCommand \index{M48}
\end_inset
\begin_inset LatexCommand \index{M49}
\end_inset
\layout Standard
Pour autoriser les potentiomètres de corrections de vitesses de broche et
celui de vitesse travail, programmer
\family typewriter
M48
\family default
.
Pour les inhiber tous les deux, programmer
\family typewriter
M49
\family default
.
Voir la section
\begin_inset LatexCommand \ref{sub:-Interaction-vitesses}
\end_inset
pour plus de détails.
Il est permis d'autoriser ou d'inhiber ces potentiomètres quand ils sont
déjà autorisés ou inhibés.
Ces potentiomètres peuvent aussi être activés individuellement en utilisant
les commandes M50 et M51 comme décrit dans les sections
\begin_inset LatexCommand \ref{sec:M50:-Correcteur-vitesse-travail}
\end_inset
et
\begin_inset LatexCommand \ref{sec:M51:-Correcteur-vitesse-broche}
\end_inset
.
\layout Section
M50
\begin_inset LatexCommand \index{M50}
\end_inset
: Contrôle du correcteur de vitesse travail
\begin_inset LatexCommand \label{sec:M50:-Correcteur-vitesse-travail}
\end_inset
\begin_inset LatexCommand \index{M50}
\end_inset
\layout Standard
Pour autoriser le potentiomètre de correction de vitesse travail, programmer
\family typewriter
M50
\family default
ou
\family typewriter
M50 P1
\family default
.
Pour inhiber ce potentiomètre, programmer
\family typewriter
M50 P0
\family default
.
Quand il est inhibé, le potentiomètre de correction de vitesse n'a plus
aucune influence et les mouvements seront exécutés à la vitesse de travail
programmée.
(à moins que ne soit actif un correcteur de vitesse adaptative).
\layout Section
M51
\begin_inset LatexCommand \index{M51}
\end_inset
: Contrôle du correcteur de vitesse broche
\begin_inset LatexCommand \label{sec:M51:-Correcteur-vitesse-broche}
\end_inset
\begin_inset LatexCommand \index{M51}
\end_inset
\layout Standard
Pour autoriser le potentiomètre de correction de vitesse de la broche, programme
r
\family typewriter
M51
\family default
ou
\family typewriter
M51 P1
\family default
.
Pour inhiber ce potentiomètre programmer
\family typewriter
M51 P0
\family default
.
Quand il est inhibé, le potentiomètre de correction de vitesse de broche
n'a plus aucune influence et la broche tournera à la vitesse programmée,
en utilisant le mot S comme décrit dans la section
\begin_inset LatexCommand \ref{sub:S:-Réglage-broche}
\end_inset
.
\layout Section
M52
\begin_inset LatexCommand \index{M52}
\end_inset
: Contrôle de vitesse adaptative
\begin_inset LatexCommand \label{sec:M52:-Contrôle-vitesse-adaptative}
\end_inset
\begin_inset LatexCommand \index{M52}
\end_inset
\layout Standard
Pour utiliser une vitesse adaptative, programmer
\family typewriter
M52
\family default
ou
\family typewriter
M52 P1
\family default
.
Pour stopper l'utilisation d'une vitesse adaptative, programmer
\family typewriter
M52 P0
\family default
.
Quand la vitesse adaptative est utilisée, certaines valeurs externes sont
utilisées avec les correcteurs de vitesse de l'interface utilisateur et
les vitesses programmées pour obtenir la vitesse travail.
Dans EMC2, la HAL pin
\family typewriter
motion.adaptive-feed
\family default
est utilisée dans ce but.
Les valeurs de
\family typewriter
motion.adaptive-feed
\family default
doivent être dans une échelle comprise entre 0 (pas de vitesse) et 1 (pleine
vitesse).
\layout Section
M53
\begin_inset LatexCommand \index{M53}
\end_inset
: Contrôle de coupure de vitesse
\begin_inset LatexCommand \label{sec:M53:-Contrôle-coupure-vitesse}
\end_inset
\begin_inset LatexCommand \index{M53}
\end_inset
\layout Standard
Pour autoriser le bouton de coupure de vitesse, programmer
\family typewriter
M53
\family default
ou
\family typewriter
M53 P1
\family default
.
Pour inhiber ce bouton programmer
\family typewriter
M53 P0
\family default
.
Autoriser la coupure de vitesse permet d'interrompre les mouvements par
le biais d'une coupure de vitesse.
Dans EMC2, la HAL pin
\family typewriter
motion.feed-hold
\family default
est utilisée pour cette fonctionnalité.
Une valeur de 1 provoque un arrêt des mouvements (si
\family typewriter
M53
\family default
est actif).
\layout Section
M62 à M65: Contrôle de sortie digitale
\begin_inset LatexCommand \label{sec:M62-à-M65:}
\end_inset
\begin_inset LatexCommand \index{M62}
\end_inset
\begin_inset LatexCommand \index{M63}
\end_inset
\begin_inset LatexCommand \index{M64}
\end_inset
\begin_inset LatexCommand \index{M65}
\end_inset
\layout Standard
Pour contrôler un bit de sortie digitale, programmer
\family typewriter
M- P-
\family default
, où le mot M doit être compris entre 62 et 65, et le mot P compris entre
0 et un maximum défini selon l'implémentation.
\layout Description
M62
\begin_inset LatexCommand \index{M62}
\end_inset
Activer la sortie digitale synchronisée avec un mouvement.
\layout Description
M63
\begin_inset LatexCommand \index{M63}
\end_inset
Désactiver la sortie digitale synchronisée avec un mouvement.
\layout Description
M64
\begin_inset LatexCommand \index{M64}
\end_inset
Activer immédiatement la sortie digitale.
\layout Description
M65
\begin_inset LatexCommand \index{M65}
\end_inset
Désactiver immédiatement la sortie digitale.
\layout Section
M66: Contrôle d'entrée digitale
\begin_inset LatexCommand \label{sec:M66:}
\end_inset
\begin_inset LatexCommand \index{M66}
\end_inset
\layout Standard
Pour contrôler un bit d'entrée digitale, programmer
\family typewriter
M66 P- E- L- Q-
\family default
, où le mot P et le mot E doivent être compris entre 0 et un maximum défini
selon l'implémentation.
Un seul des mots P ou E doit être présent.
C'est une erreur si ils sont présents tous les deux.
\layout Description
M66
\begin_inset LatexCommand \index{M66}
\end_inset
Attente d'une entrée
\layout Itemize
Le mot P spécifie le numéro d'une entrée digitale.
\layout Itemize
Le mot E spécifie le numéro d'une entrée analogique.
\layout Itemize
Le mot L spécifie le type d'attente:
\layout List
\labelwidthstring 00.00.0000
0 - WAIT_MODE_IMMEDIATE - pas d'attente, retour immédiat.
La valeur courante de l'entrée est stockée dans le paramètre #5399
\layout List
\labelwidthstring 00.00.0000
1 - WAIT_MODE_RISE - attente d'un front montant sur l'entrée.
\layout List
\labelwidthstring 00.00.0000
2 - WAIT_MODE_FALL - attente d'un front descendant sur l'entrée.
\layout List
\labelwidthstring 00.00.0000
3 - WAIT_MODE_HIGH - attente d'un état logique HIGH sur l'entrée.
\layout List
\labelwidthstring 00.00.0000
4 - WAIT_MODE_LOW - attente d'un état logique LOW sur l'entrée.
\layout Standard
\begin_inset Note
collapsed true
\layout Standard
Le type 0 est le seul autorisé pour une entrée analogique.
\end_inset
\layout Itemize
Le mot Q spécifie le timeout pour l'attente.
Si le timeout est dépassé, l'attente est interrompue et la variable #5399
positionnée à -1.
\layout Standard
M66 attends un nouvel événement sur l'entrée ou l'arrêt de l'exécution du
programme, jusqu'à ce que l'événement sélectionné (ou le timeout programmé)
ne survienne.
C'est une erreur de programmer une valeur de timeout à 0 dans tous les
types, sauf le type 0.
\layout Standard
C'est également une erreur de programmer M66 avec les deux mots, un mot
P et un mot E (ce qui reviendrait à sélectionner à la fois une entrée analogiqu
e et une digitale).
\layout Section
M100 à M199
\begin_inset LatexCommand \index{M100..199}
\end_inset
: Commandes définies par l'utilisateur
\begin_inset LatexCommand \label{sec:M100-à-M199:}
\end_inset
\layout Standard
Pour invoquer une commande définie par l'utilisateur, programmer M- P- Q-
où P et Q sont facultatifs.
Le programme externe `` Mnnn'' dans le répertoire [DISPLAY] PROGRAM_PREFIX
est exécuté avec les valeurs P et Q comme étant ses deux arguments.
L'exécution du fichier RS274NGC passe en pause jusqu'à ce que le programme
invoqué ne se termine.
\layout Standard
C'est une erreur si:
\layout Itemize
La commande spécifiée n'existe pas.
\layout Chapter
O Codes
\begin_inset LatexCommand \index{O Codes}
\end_inset
\begin_inset LatexCommand \label{cha:O-Codes}
\end_inset
\layout Standard
Les O-codes permettent le contrôle de flux dans les programmes NC.
Chaque block est associé à une adresse, qui est la valeur utilisée après
le O.
Il faut prendre soin de bien faire correspondre les adresses des codes
O.
\layout Standard
Le comportement est indéfini si:
\layout Itemize
D'autres mots sont utilisés sur une ligne contenant un mot O.
\layout Itemize
Un commentaire est utilisé sur une ligne contenant un code O.
\layout Section
Sous-programmes:
\begin_inset Quotes eld
\end_inset
sub
\begin_inset LatexCommand \index{sub}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
endsub
\begin_inset LatexCommand \index{endsub}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
return
\begin_inset LatexCommand \index{return}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
call
\begin_inset LatexCommand \index{call}
\end_inset
\begin_inset Quotes erd
\end_inset
\layout Standard
Les sous-programmes s'étendent d'un
\family typewriter
\series bold
O- sub
\family default
\series default
à un
\family typewriter
\series bold
O- endsub
\family default
\series default
.
Les lignes, à l'intérieur du sous-programme (le corps du sous-programme),
ne sont pas exécutées dans l'ordre, mais elles sont exécutées à chaque
fois que le sous-programme est appelé avec un
\family typewriter
\series bold
O- call
\series default
.
\layout LyX-Code
O100 sub (sous-programme pour aller à l'origine programme)
\newline
G0 X0 Y0 Z0
\newline
O100 endsub
\newline
(plusieurs lignes)
\newline
O100 call
\layout Standard
À l'intérieur d'un sous-programme,
\family typewriter
\series bold
O- return
\family default
\series default
peut être exécuté, pour retourner immédiatement au code appelant, comme
si
\family typewriter
\series bold
O- endsub
\family default
\series default
avait été rencontré.
\layout Standard
\family typewriter
\series bold
O- call
\family default
\series default
peut prendre jusqu'à 30 arguments optionnels, qui sont passés au sous-programme
comme
\family typewriter
#1
\family default
,
\family typewriter
#2
\family default
, ..., #N.
Les paramètres de #N+1 à #30 ont la même valeur dans le contexte de l'appel.
Au retour du sous-programme, les valeurs des paramètres #1 jusqu'à #30
(quel que soit le nombre d'arguments) sont restaurés aux valeurs qu'ils
avaient avant l'appel.
\layout Standard
Parce que `` 1 2 3'' est analysé comme le nombre 123, les paramètres doivent
être placés entre crochets.
L'appel de sous-programme suivant, s'effectue avec 3 arguments:
\layout LyX-Code
O200 call [1] [2] [3]
\layout Standard
Les corps de sous-programme ne peuvent pas être imbriqués.
Ils ne peuvent être appelés qu'après avoit été définis.
Ils peuvent être appelés depuis d'autres fonctions et peuvent s'appeler
eux même récursivement, s'il est judicieux de le faire.
Le niveau maximum d'imbrication des sous-programmes est de 10.
\layout Standard
Les sous-programmes n'ont pas de
\begin_inset Quotes eld
\end_inset
valeur de retour
\begin_inset Quotes erd
\end_inset
, mais ils peuvent changer la valeur des paramètres au dessus de #30 et
ces changements sont visibles depuis le code appelant.
Les sous-programmes peuvent aussi changer la valeur des paramètres nommés
globaux.
\layout Section
Boucles:
\begin_inset Quotes eld
\end_inset
do
\begin_inset LatexCommand \index{do}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
while
\begin_inset LatexCommand \index{while}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
endwhile
\begin_inset LatexCommand \index{endwhile}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
break
\begin_inset LatexCommand \index{break}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
continue
\begin_inset LatexCommand \index{continue}
\end_inset
\begin_inset Quotes erd
\end_inset
\layout Standard
La boucle
\family typewriter
\series bold
while
\family default
\series default
a deux structures possibles: while/endwhile et do/while.
Dans chaque cas, la boucle est quittée quand la condition du
\begin_inset Quotes eld
\end_inset
while
\begin_inset Quotes erd
\end_inset
devient fausse.
\layout LyX-Code
(dessine la forme d'une dent de scie)
\newline
F100
\newline
#1 = 0
\newline
O101 while [#1 lt 10]
\newline
G1 X0
\newline
G1 Y[#1/10] X1
\newline
#1 = [#1+1]
\newline
O101 endwhile
\layout Standard
À l'intérieur d'une boucle while,
\family typewriter
\series bold
O- break
\series default
,
\family default
quitte immédiatement la boucle et
\family typewriter
\series bold
O- continue
\series default
,
\family default
saute immédiatement à la prochaine évaluation de la condition du
\family typewriter
while
\family default
.
Si elle est vraie, la boucle recommence au début.
Si elle est fausse, la boucle est quittée.
\layout Section
Conditionnel:
\begin_inset Quotes eld
\end_inset
if
\begin_inset LatexCommand \index{if}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
else
\begin_inset LatexCommand \index{else}
\end_inset
\begin_inset Quotes erd
\end_inset
,
\begin_inset Quotes eld
\end_inset
endif
\begin_inset LatexCommand \index{endif}
\end_inset
\begin_inset Quotes erd
\end_inset
\layout Standard
Le
\family typewriter
\series bold
if
\family default
\series default
conditionnel exécute un groupe d'instructions si sa condition est vraie
et un autre groupe si elle est fausse.
\layout LyX-Code
(Ajuste la vitesse travail en fonction d'une variable)
\newline
O102 if [#2 GT 5]
\newline
F100
\newline
O102 else
\newline
F200
\newline
O102 endif
\layout Section
Indirection
\layout Standard
L'adresse de O- peut être donnée par un paramètre ou un calcul.
\layout LyX-Code
O[#101+2] call
\layout Section
Calcul des valeurs dans les mots O
\layout Standard
Dans les mots O-, les paramètres (section
\begin_inset LatexCommand \ref{sub:-Paramètres-numérotés}
\end_inset
), les expressions (section
\begin_inset LatexCommand \ref{sub:-Expressions}
\end_inset
), les opérateurs binaires (section
\begin_inset LatexCommand \ref{sub:-Opérateurs-binaires}
\end_inset
) et les fonctions (tableau
\begin_inset LatexCommand \ref{cap:Fonctions}
\end_inset
), sont particulièrement intéressants.
\layout Chapter
Autres Codes
\layout Section
F: Réglage de la vitesse travail
\begin_inset LatexCommand \label{sub:F:-Réglage-vitesse}
\end_inset
\layout Standard
Pour régler la vitesse d'avance, programmer
\family typewriter
F-
\family default
.
L'application de la vitesse est telle que décrite dans la section
\begin_inset LatexCommand \ref{sub:-Vitesse-d'avance}
\end_inset
, à moins que le mode vitesse inverse du temps ne soit actif, dans ce cas,
la vitesse est telle que décrite dans la section
\begin_inset LatexCommand \ref{sub:G93,-G94:-Set}
\end_inset
.
\layout Section
S: Réglage de la vitesse de rotation de la broche
\begin_inset LatexCommand \label{sub:S:-Réglage-broche}
\end_inset
\layout Standard
Pour régler la vitesse en tours par minute (tr/mn) de la broche, programmer
\family typewriter
S-
\family default
.
La broche va tourner à cette vitesse quand elle sera programmée pour tourner.
Il est permis de programmer un mot S que la broche tourne ou non.
Si le potentiomètre de correction de vitesse broche est autorisé et n'est
pas positionné sur 100%, la vitesse de broche sera différente de celle
programmée.
Il est permis de programmer S0, la broche ne tournera pas.
C'est une erreur si:
\layout Itemize
La valeur de S est négative.
\layout Standard
Comme décrit dans la section
\begin_inset LatexCommand \ref{sub:G84:-Taraudage-à-droite}
\end_inset
, si un
\family typewriter
cycle préprogrammé G84
\family default
(taraudage) est actif et que les potentiomètres de vitesse et d'avance
sont autorisés, celui qui a le réglage le plus bas sera utilisé.
La vitesse de rotation et d'avance resterons synchronisées.
Dans ce cas, la vitesse peut différer de celle programmée, même si le potentiom
ètre de correction de vitesse travail est sur 100%.
\layout Section
T: Choix de l'outil
\begin_inset LatexCommand \label{sub:T:-Choix-outil}
\end_inset
\layout Standard
Pour sélectionner un outil, programmer
\family typewriter
T-
\family default
, où la valeur de T correspond au numéro du slot d'outil dans le carrousel.
L'outil ne sera appelé et changé que quand un
\family typewriter
M6
\family default
sera programmé (voir la section
\begin_inset LatexCommand \ref{sub:M6:-Appel-d'outil}
\end_inset
).
Le mot T peut apparaitre sur la même ligne que le
\family typewriter
M6
\family default
ou sur une ligne précédente.
Il est permis, mais normalement inutile, qu'un mot T apparaisse à plus
de deux lignes avant, sans changement d'outil.
Le carrousel peut bouger, seulement le plus récent mot T ne prendra effet
qu'au prochain changement d'outil.
Il est permis de programmer
\family typewriter
T0
\family default
, aucun outil ne sera sélectionné.
C'est utile pour avoir la broche vide.
C'est une erreur si:
\layout Itemize
Un valeur négative de T est utilisée.
\layout Itemize
Une valeur de T supérieure au nombre de slot d'outils dans le carrousel
est utilisée.
\layout Standard
Sur certaines machines, le carrousel se déplace lorsque le mot T est programmé,
avec l'usinage en cours.
Sur ces machines, programmer T plusieurs lignes de texte avant le changement
d'outil permet de gagner du temps.
Une pratique de programmation courante pour ces types de machines, consiste
à placer le mot T pour le prochain outil sur la ligne suivant le changement
d'outil.
Cela laisse au carrousel tout le temps pour se positionner.
\layout Chapter
Ordre d'exécution
\begin_inset LatexCommand \label{sec:Ordre-d'exécution}
\end_inset
\layout Standard
L'ordre d'exécution des éléments d'une ligne est essentielle à la sécurité
et l'efficacité d'une machine.
Les éléments sont exécutés dans l'ordre indiqué ci-dessous, si ils se trouvent
sur la même ligne.
\layout Enumerate
Commentaire (message inclu)
\layout Enumerate
Positionnement du mode de vitesses (G93, G94).
\layout Enumerate
Réglage de la vitesse travail (F).
\layout Enumerate
Réglage de la vitesse de rotation de la broche (S).
\layout Enumerate
Sélection de l'outil (T).
\layout Enumerate
Appel d'outil (M6).
\layout Enumerate
Marche/Arrêt broche (M3, M4, M5).
\layout Enumerate
Marche/Arrêt arrosages (M7, M8, M9).
\layout Enumerate
Activation/Inhibition correcteurs de vitesse (M48, M49).
\layout Enumerate
Temporisation (G4).
\layout Enumerate
Choix du plan de travail (G17, G18, G19).
\layout Enumerate
Choix de l'unité de longueur (G20, G21).
\layout Enumerate
Activation/Désactivation de la compensation de rayon d'outil (G40, G41,
G42)
\layout Enumerate
Activation/Désactivation de la compensation de longueur d'outil (G43, G49)
\layout Enumerate
Sélection du système de coordonnées (G54, G55, G56, G57, G58, G59, G59.1,
G59.2, G59.3).
\layout Enumerate
Réglage du mode de trajectoire (G61, G61.1, G64)
\layout Enumerate
Réglage du mode de déplacement (G90, G91).
\layout Enumerate
Réglage du type de retrait (G98, G99).
\layout Enumerate
Prise d'origine machine (G28, G30) ou établissement du système de coordonnées
(G10) ou encore, réglage des décalages d'axes (G92, G92.1, G92.2, G94).
\layout Enumerate
Effectuer les mouvements (G0 à G3, G33, G80 à G89), tels que modifiés (éventuell
ement) par G53.
\layout Enumerate
Arrêt (M0, M1, M2, M30, M60).
\layout Chapter
G-Code: Bonnes pratiques
\layout Section
Utiliser un nombre de décimales approprié
\layout Standard
Utilisez au plus 3 chiffres après la virgule pour l'usinage en millimètres
et au plus 4 chiffres après la virgule pour l'usinage en pouces.
En particulier, les contrôles de tolérance des arcs sont faits pour .001
et .0001 selon les unités actives.
\layout Section
Utiliser les espaces de façon cohérente
\layout Standard
Le G-code est plus lisible quand au moins un espace apparaît avant les mots.
S'il est permis d' insérer des espaces blancs au milieu des chiffres, il
faut éviter de le faire.
\layout Section
Préférer le
\begin_inset Quotes eld
\end_inset
format centre
\begin_inset Quotes erd
\end_inset
pour les arcs
\layout Standard
Les arcs en format centre (qui utilisent
\family typewriter
I- J- K-
\family default
au lieu de
\family typewriter
R-
\family default
) se comportent de façon plus précise que ceux en format rayon, particulièrement
pour des angles proche de 180 et 360 degrés.
\layout Section
Placer les codes modaux importants au début des programmes
\layout Standard
Lorsque l'exécution correcte de votre programme dépend de paramètres modaux,
n'oubliez pas de les mettre au début du programme.
Des modes incorrects peuvent provenir d'un programme précédent ou depuis
des entrées manuelles.
\layout Standard
Une bonne mesure préventive consiste à placer la ligne suivante au début
de tous les programmes:
\layout LyX-Code
G17 G21 G40 G49 G54 G80 G90 G94
\layout Standard
(plan XY, mode mm, annulation de la compensation de rayon, et de longueur,
sytème de coordonnées numéro 1, arrêt des mouvements, déplacements absolus,
mode vitesse/minute)
\layout Standard
Peut-être que le code modal le plus important est le réglage des unités
machine.
Si les codes G20 ou G21, ne sont pas inclus, selon les machines l'échelle
d'usinage sera différente.
D'autres valeurs comme le plan de retrait des cycles préprogrammés peuvent
être importantes.
\layout Section
Ne pas mettre trop de choses sur une ligne
\layout Standard
Ignorer le contenu de la section
\begin_inset LatexCommand \ref{sec:Ordre-d'exécution}
\end_inset
et ne pas écrire de ligne de code qui laisse la moindre ambiguïté.
De même, ne pas régler un paramètre et l'utiliser sur la même ligne, même
si la sémantique est bien définie.
(Exception: Mise à jour d'une variable à une nouvelle valeur, comme
\family typewriter
#1=[#1+#2
\family default
])
\layout Section
Ne pas utiliser les numéros de ligne
\layout Standard
Les numéros de ligne n'apportent rien.
Quand des numéros de ligne sont rapportés dans les messages d'erreur, ces
numéros font référence aux numéros de lignes à l'intérieur du programme,
pas aux valeurs des mots N.
\layout Section
Lorsque plusieurs systèmes de coordonnées sont déplacés, envisager le mode
vitesse inverse du temps
\layout Standard
Parce que la signification d'un mot F en mètres par minute varie selon les
axes à déplacer et parce que la quantité de matière enlevée ne dépend pas
que de la vitesse travail, il peut être plus simple d'utiliser G93, vitesse
inverse du temps pour atteindre l'enlévement de matière souhaîté.
\layout Standard
\begin_inset Include \input{tool_compensation_fr.lyx}
preview false
\end_inset
\layout Chapter
Différences entre le g-code d'EMC2 et le RS274NGC
\layout Section
Différences changeant la signification d'un programme correctement écrit
en RS274NGC
\layout Subsection
Position après un changement d'outil
\layout Standard
Dans EMC2, la machine ne revient pas à sa position initiale après un changement
d'outil.
Ce choix a été fait parce que le nouvel outil pourrait être plus long que
l'ancien, rendant le retour de la machine à sa position initiale, impossible
sans heurter la pièce.
\layout Subsection
Les décalages sont dans les unités du fichier ini
\layout Standard
Dans EMC2, les valeurs stockées dans les paramètres des points d'origine
G28 et G30, des systèmes de coordonnées P1\SpecialChar \ldots{}
P9 et du décalage G92 sont dans
les unités définies dans le fichier ini.
Cette différence existe parce que, sinon, la signification d'un emplacement
changeait selon que G20 ou G21 était actif lorsque G28, G30, G10, L2, ou
G92.3 était programmé.
\layout Subsection
Les longueurs/diamètres de la table d'outils sont dans les unités du fichier
ini
\layout Standard
Dans EMC2, les longueurs (compensation) et diamètres de la table d'outils
sont seulement dans les unités du fichier ini.
Cette différence existe parce que autrement, la longueur d'un outil et
son diamètre aurait changé selon que G20 ou G21 aurait été actif dans les
modes G43, G41, G42.
Ce qui aurait rendu impossible, sans modification de la table d'outils,
l'exécution de g-code avec la machine en unités non natives, même pour
un g-code bien écrit (ligne en début avec G20 ou G21 et mêmes unités tout
au long du programme).
\layout Subsection
G84, G87 non implémentés
\layout Standard
G84 et G87 ne sont pas actuellement implémentés, mais serons peut être ajoutés
à de futures versions d'emc2.
\layout Subsection
G28, G30 avec des mots d'axes
\layout Standard
Quand
\family typewriter
G28
\family default
ou
\family typewriter
G30
\family default
est programmé avec un mot d'axe présent, EMC2 déplace cet axe seul.
Il est commun sur les autres contrôles machine.
Pour déplacer certains axes vers un point intermédiaire puis les déplacer
tous vers un point pré-défini, écrire deux lignes de gcode:
\layout LyX-Code
G0 X- Y- (Les axes se déplacent vers le point intermédiaire)
\newline
G28 (Les axes se déplacent vers leurs origines)
\layout Subsection
M62, M63 non implémentés
\layout Standard
M62 et M63 ne sont pas encore implémentés, mais serons peut être ajoutés
à de futures versions d'emc2..
\layout Subsection
G0 réduit les longs mouvements angulaires pour les rendre inférieurs à un
tour
\layout Standard
Comme décrit précédemment, G0 réduit les mouvements angulaires à moins d'un
tour.
Ce qui peut produire des trajectoires différentes de celles produites avec
RS274NGC.
\layout Section
Différences ne changeant pas la signification des programmes bien écrits
en RS274NGC
\layout Subsection
G33, G76 codes de taraudage
\layout Standard
Ces codes ne sont pas définis dans RS274NGC.
\layout Subsection
G38.2
\layout Standard
La pointe de la sonde n'est pas rétractée après un mouvement G38.2.
Ce mouvement de retrait sera peut être ajouté dans de futures versions
d'emc2.
\layout Subsection
G38.3\SpecialChar \ldots{}
G38.5
\layout Standard
Ces codes ne sont pas définis dans RS274NGC
\layout Subsection
O-codes
\layout Standard
Ces codes ne sont pas définis dans RS274NGC
\layout Subsection
M50\SpecialChar \ldots{}
M53 survitesses
\layout Standard
Ces codes ne sont pas définis dans RS274NGC
\layout Subsection
G43, G43.1
\layout Subsubsection
Longueurs d'outil négatives
\layout Standard
Les spécifications du RS274NGC disent
\begin_inset Quotes eld
\end_inset
il est prévu que
\begin_inset Quotes erd
\end_inset
toutes les longueurs d'outils soient positives.
Toutefois, G43 fonctionne aussi avec des longueurs d'outils négatives.
\layout Subsubsection
Outils de tour
\layout Standard
La compensation de longueur d'outil G43 peut décaler l'outil dans les deux
dimensions X et Z.
Cette fonctionnalité est très utile sur les tours.
\layout Subsubsection
Longueurs d'outil dynamiques
\layout Standard
EMC2 permet la spécification d'une longueur d'outil calculée par
\family typewriter
G43.1 I K.
\layout Subsection
G41.1, G42.1
\layout Standard
EMC2 permet la spécification dans le gcode d'un diamètre d'outil et sur
un tour, de son orientation.
Le format est
\family typewriter
G41.1/G42.1 D- L
\family default
-, où
\family typewriter
D
\family default
est le diamètre et
\family typewriter
L
\family default
(si spécifié) est l'orientation de l'outil de tour.
\layout Subsection
G43 sans mot H
\layout Standard
Dans ngc, cela n'est pas permis.
Dans EMC2, il règle la cote de longueur du décalage pour l'outil courant.
Si aucun outil n'est chargé actuellement, c'est une erreur.
Cette différence a été apportée pour que l'utilisateur n'ait pas à spécifier
le numéro d'outil à deux endroits pour chaque changement d'outil et parce
que c'est plus cohérent avec la manière de travailler de G
\family typewriter
41/G42
\family default
quand le mot D n'est pas spécifié.
\layout Subsection
Axes U, V et W
\layout Standard
EMC2 gère des machines avec un maximum de 9 axes en définissant un jeu supplémen
taire de 3 axes linéaires nommés U, V et W.
\the_end