Sie sind auf Seite 1von 836

Notions complmentaires

___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________

SINUMERIK
SINUMERIK 840D sl/828D
Notions complmentaires
Manuel de programmation
Valable pour

Commande
SINUMERIK 840D sl / 840DE sl
SINUMERIK 828D

Logiciel Version
Logiciel systme NCU 2.6 SP1

03/2010
6FC5398-2BP20-1DA0
Avant-propos
Programmation CN flexible

1
Gestion des fichiers et
programmes

2
Zones de protection

3
Instructions de dplacement
spciales

4
Transformations de
coordonnes (FRAMES)

5
Transformations

6
Corrections d'outils

7
Modes de dplacement

8
couplages d'axes

9
Actions synchrones au
dplacement

10
Oscillation

11
Poinonnage et grignotage

12
Rectification

13
Autres fonctions

14
Programmes de chariotage
personnaliss

15
Tableaux

16
Annexes

A


Mentions lgales

Mentions lgales
Signaltique d'avertissement
Ce manuel donne des consignes que vous devez respecter pour votre propre scurit et pour viter des
dommages matriels. Les avertissements servant votre scurit personnelle sont accompagns d'un triangle de
danger, les avertissements concernant uniquement des dommages matriels sont dpourvus de ce triangle. Les
avertissements sont reprsents ci-aprs par ordre dcroissant de niveau de risque.
DANGER
signifie que la non-application des mesures de scurit appropries entrane la mort ou des blessures graves.

ATTENTION
signifie que la non-application des mesures de scurit appropries peut entraner la mort ou des blessures
graves.

PRUDENCE
accompagn dun triangle de danger, signifie que la non-application des mesures de scurit appropries peut
entraner des blessures lgres.

PRUDENCE
non accompagn dun triangle de danger, signifie que la non-application des mesures de scurit appropries
peut entraner un dommage matriel.

IMPORTANT
signifie que le non-respect de l'avertissement correspondant peut entraner l'apparition d'un vnement ou d'un
tat indsirable.
En prsence de plusieurs niveaux de risque, c'est toujours l'avertissement correspondant au niveau le plus lev
qui est reproduit. Si un avertissement avec triangle de danger prvient des risques de dommages corporels, le
mme avertissement peut aussi contenir un avis de mise en garde contre des dommages matriels.
Personnes qualifies
Lappareil/le systme dcrit dans cette documentation ne doit tre manipul que par du personnel qualifi pour
chaque tche spcifique. La documentation relative cette tche doit tre observe, en particulier les consignes
de scurit et avertissements. Les personnes qualifies sont, en raison de leur formation et de leur exprience,
en mesure de reconnatre les risques lis au maniement de ce produit / systme et de les viter.
Utilisation des produits Siemens conforme leur destination
Tenez compte des points suivants:
ATTENTION
Les produits Siemens ne doivent tre utiliss que pour les cas d'application prvus dans le catalogue et dans la
documentation technique correspondante. S'ils sont utiliss en liaison avec des produits et composants d'autres
marques, ceux-ci doivent tre recommands ou agrs par Siemens. Le fonctionnement correct et sr des
produits suppose un transport, un entreposage, une mise en place, un montage, une mise en service, une
utilisation et une maintenance dans les rgles de l'art. Il faut respecter les conditions d'environnement
admissibles ainsi que les indications dans les documentations affrentes.
Marques de fabrique
Toutes les dsignations repres par sont des marques dposes de Siemens AG. Les autres dsignations
dans ce document peuvent tre des marques dont l'utilisation par des tiers leurs propres fins peut enfreindre les
droits de leurs propritaires respectifs.
Exclusion de responsabilit
Nous avons vrifi la conformit du contenu du prsent document avec le matriel et le logiciel qui y sont dcrits.
Ne pouvant toutefois exclure toute divergence, nous ne pouvons pas nous porter garants de la conformit
intgrale. Si l'usage de ce manuel devait rvler des erreurs, nous en tiendrons compte et apporterons les
corrections ncessaires ds la prochaine dition.

Siemens AG
Industry Sector
Postfach 48 48
90026 NRNBERG
ALLEMAGNE
Numro de rfrence du document: 6FC5398-2BP20-1DA0

Copyright Siemens AG 2010.
Sous rserve de modifications techniques

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 3
Avant-propos
Documentation SINUMERIK
La documentation SINUMERIK comporte 3 catgories :
Documentation gnrale
Documentation utilisateur
Documentation constructeur / S.A.V.
Le lien http://www.siemens.com/motioncontrol/docu fournit des informations sur les thmes
suivants :
Ordering documentation
Vous trouverez ici un aperu actuel de la documentation disponible.
Download documentation
Liens permettant de tlcharger des fichiers partir de Service & Support
(Online) research in the documentation
Informations sur DOConCD et accs direct aux documents dans DOConWEB.
Pour tablir de la documentation individuellement sur la base des contenus Siemens
l'aide de My Documentation Manager (MDM) (Compiling documentation individually), voir
http://www.siemens.com/mdm.
My Documentation Manager propose des fonctionnalits permettant de crer votre
propre documentation machine.
Formation (Training) et foire aux questions (FAQ)
Des informations sur les offres de formation et les FAQ (foires aux questions) sont
accessibles partir du menu de navigation.
Groupe cible
Le prsent manuel s'adresse aux :
programmeurs
ingnieurs de projet
Utilit
Le Manuel de programmation permet au groupe cible de crer, d'crire, de tester des
programmes et des interfaces logicielles et de supprimer des erreurs.
Avant-propos

Notions complmentaires
4 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Version standard
Le prsent manuel de programmation dcrit les fonctionnalits de la version standard. Les
options complmentaires ou modifications apportes par le constructeur de la machine-outil
sont documentes par celui-ci.
La commande numrique peut possder des fonctions qui dpassent le cadre de la prsente
description. Le client ne peut toutefois pas faire valoir de droit en liaison avec ces fonctions,
que ce soit dans le cas de matriels neufs ou dans le cadre d'interventions du service aprs-
vente.
Pour des raisons de clart, la prsente documentation ne contient pas toutes les
informations de dtail relatives toutes les variantes du produit ; elle ne peut pas non plus
tenir compte de tous les cas d'installation, d'exploitation et de maintenance.
Assistance technique
Pour toutes vos questions techniques, adressez-vous au service d'assistance tlphonique :

Europe / Afrique
Tlphone +49 180 5050 - 222
Tlcopie +49 180 5050 - 223
0,14 /minute depuis le rseau tlphonique fixe allemand, les tarifs de tlphonie mobile peuvent
tre diffrents.
Internet http://www.siemens.com/automation/support-request


Amrique
Tlphone +1 423 262 2522
Tlcopie +1 423 262 2200
Courrier lectronique mailto:techsupport.sea@siemens.com


Asie / Pacifique
Tlphone +86 1064 757575
Tlcopie +86 1064 747474
Courrier lectronique mailto:support.asia.automation@siemens.com


Remarque
Vous trouverez les numros de tlphone pour une assistance technique dans les diffrents
pays sur le site Internet :
http://www.automation.siemens.com/partner

Avant-propos

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 5
Questions concernant la documentation
Pour toute autre demande (suggestion, correction) concernant la documentation, envoyez
une tlcopie ou un courriel aux adresses suivantes :

Fax : +49 9131- 98 2176
Courriel : Courriel : docu.motioncontrol@siemens.com
Vous trouverez en annexe un formulaire de rponse par tlcopie.
Adresse Internet pour SINUMERIK
http://www.siemens.com/sinumerik
Manuels de programmation "Notions de base" et "Notions complmentaires"
Les descriptions relatives la programmation CN sont rparties sur deux manuels :
1. Notions de base
Le manuel de programmation "Notions de base" s'adresse aux techniciens utilisant la
machine-outil et suppose d'avoir la connaissance pralable des oprations de perage,
de fraisage et de tournage. Les instructions et commandes, conformes la norme DIN
66025, sont illustres par des exemples de programmation simples.
2. Notions complmentaires
Le manuel de programmation "Notions complmentaires" s'adresse aux technologues
connaissant toutes les possibilits de programmation. Grce un langage de
programmation spcifique, la commande SINUMERIK permet d'laborer un programme
pice complexe (par exemple : surfaces gauches, coordination entre canaux...) et
dispense le technologue d'une programmation fastidieuse.
Disponibilit des lments de langage
Tous les lments de langage CN dcrits dans le prsent manuel sont disponibles pour
SINUMERIK 840D sl. La disponibilit pour SINUMERIK 828D est indique dans la colonne
"828D" de "Liste des instructions (Page 719)".
Avant-propos

Notions complmentaires
6 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 7
Table des matires

Avant-propos ............................................................................................................................................. 3
1 Programmation CN flexible...................................................................................................................... 15
1.1 Variables ......................................................................................................................................15
1.1.1 Informations gnrales sur les variables .....................................................................................15
1.1.2 Variables systme........................................................................................................................16
1.1.3 Variables utilisateur prdfinies : Paramtre de calcul (R)..........................................................18
1.1.4 Variables utilisateur prdfinies : variables Link..........................................................................20
1.1.5 Dfinition de variables utilisateur (DEF) ......................................................................................22
1.1.6 Redfinition de variables systme, variables utilisateur et instruction de langage CN
(REDEF).......................................................................................................................................28
1.1.7 Attribut : Valeur d'initialisation......................................................................................................31
1.1.8 Attribut : valeurs limites (LLI, ULI)................................................................................................34
1.1.9 Attribut : unit physique (PHU) ....................................................................................................35
1.1.10 Attribut : droits d'accs (APR, APW, APRP, APWP, APRB, APWB) ..........................................38
1.1.11 Vue d'ensemble des attributs dfinissables et redfinissables....................................................43
1.1.12 Dfinition et initialisation de variables de tableau (DEF, SET, REP)...........................................44
1.1.13 Dfinition et initialisation de variables de tableau (DEF, SET, REP) : Informations
complmentaires..........................................................................................................................49
1.1.14 Types de donnes .......................................................................................................................52
1.2 Programmation indirecte..............................................................................................................53
1.2.1 Programmation indirecte d'adresses ...........................................................................................53
1.2.2 Programmation indirecte de codes G..........................................................................................56
1.2.3 Programmation indirecte d'attributs de position (PB) ..................................................................57
1.2.4 Programmation indirecte de lignes de programme pice (EXECSTRING) .................................60
1.3 Fonctions de calcul ......................................................................................................................61
1.4 Oprations relationnelles et oprations logiques.........................................................................64
1.5 Correction de la prcision pour les erreurs relationnelles (TRUNC) ...........................................66
1.6 Minimum, maximum et plage de variables (MINVAL, MAXVAL, BOUND)..................................68
1.7 Priorit des oprations.................................................................................................................70
1.8 Conversions de types possibles ..................................................................................................71
1.9 Oprations sur les chanes de caractres ...................................................................................72
1.9.1 Conversion de type en type STRING (AXSTRING) ....................................................................73
1.9.2 Conversion de type partir de STRING (NUMBER, ISNUMBER, AXNAME) ...........................74
1.9.3 Concatnation de chanes de caractres (<<) ............................................................................75
1.9.4 Conversion en minuscules/majuscules (TOLOWER, TOUPPER) .............................................77
1.9.5 Dterminer la longueur d'une chane de caractres (STRLEN) .................................................78
1.9.6 Recherche de caractres/chanes de caractres dans une chane (INDEX, RINDEX,
MINDEX, MATCH) ......................................................................................................................78
1.9.7 Slection d'une chane de caractres partielle (SUBSTR) .........................................................80
1.9.8 Slection d'un caractre individuel (STRINGVAR, STRINGFELD) ............................................80
1.10 Sauts de programme ...................................................................................................................82
1.10.1 Retour au dbut du programme (GOTOS) ..................................................................................82
1.10.2 Sauts de programme sur repres de saut (IF, GOTOB, GOTOF, GOTO, GOTOC)...................83
1.10.3 Saut de programme (CASE ... OF ... DEFAULT ...) ....................................................................86
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)...........................88
Table des matires

Notions complmentaires
8 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.12 Structures de contrle................................................................................................................. 95
1.12.1 Boucle de programme avec alternative (IF, ELSE, ENDIF)........................................................ 96
1.12.2 Boucle de programme sans fin (LOOP, ENDLOOP) .................................................................. 98
1.12.3 Boucle de comptage (FOR ... TO ..., ENDFOR) ......................................................................... 99
1.12.4 Boucle de programme avec condition en dbut de boucle (WHILE, ENDWHILE)................... 100
1.12.5 Boucle de programme avec condition en fin de boucle (REPEAT, UNTIL).............................. 101
1.12.6 Exemple de programme avec des structures de contrle imbriques...................................... 102
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM,
CLEARM) .................................................................................................................................. 103
1.14 Routine d'interruption (ASUP)................................................................................................... 109
1.14.1 Fonction d'une routine d'interruption......................................................................................... 109
1.14.2 Cration d'une routine d'interruption......................................................................................... 110
1.14.3 Affectation et dmarrage d'une routine d'interruption (SETINT, PRIO, BLSYNC) ................... 111
1.14.4 Dsactivation/activation de l'affectation d'une routine d'interruption (DISABLE, ENABLE) ..... 113
1.14.5 Suppression d'une affectation de routine d'interruption (CLRINT) ........................................... 114
1.14.6 Retrait rapide du contour (SETINT LIFTFAST, ALF) ................................................................ 115
1.14.7 Sens de retrait rapide du contour.............................................................................................. 117
1.14.8 Squence de dplacement avec des routines d'interruption.................................................... 120
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD) ..................................... 121
1.16 Transmettre un axe un autre canal (AXTOCHAN) ................................................................ 126
1.17 Activation des paramtres machine (NEWCONF).................................................................... 128
1.18 Ecriture d'un fichier (WRITE) .................................................................................................... 129
1.19 Suppression d'un fichier (DELETE) .......................................................................................... 132
1.20 Lecture des lignes d'un fichier (READ) ..................................................................................... 134
1.21 Vrification de l'existence d'un fichier (ISFILE)......................................................................... 137
1.22 Lecture des informations fichier (FILEDATE, FILETIME, FILESIZE, FILESTAT,
FILEINFO) ................................................................................................................................. 139
1.23 Calcul du total de contrle d'un tableau (CHECKSUM)............................................................ 142
1.24 Arrondissement (ROUNDUP) ................................................................................................... 144
1.25 Technique des sous-programmes ............................................................................................ 145
1.25.1 Gnralits................................................................................................................................ 145
1.25.1.1 Sous-programme ...................................................................................................................... 145
1.25.1.2 Nom de sous-programme ......................................................................................................... 146
1.25.1.3 Imbrication de sous-programmes ............................................................................................. 147
1.25.1.4 Chemin de recherche................................................................................................................ 148
1.25.1.5 Paramtres formels et paramtres effectifs.............................................................................. 149
1.25.1.6 Transfert de paramtres............................................................................................................ 150
1.25.2 Dfinition d'un sous-programme ............................................................................................... 152
1.25.2.1 Sous-programme sans transfert de paramtres ....................................................................... 152
1.25.2.2 Sous-programme avec transfert de paramtres Call-by-Value (PROC) .................................. 153
1.25.2.3 Sous-programme avec transfert de paramtres Call-by-Reference (PROC, VAR).................. 155
1.25.2.4 Sauvegarde des fonctions G modales (SAVE) ......................................................................... 157
1.25.2.5 Inhibition de l'excution bloc par bloc (SBLOF, SBLON).......................................................... 158
1.25.2.6 Inhibition de l'affichage du bloc courant (DISPLOF, DISPLON, ACTBLOCNO)....................... 164
1.25.2.7 Identifier les sous-programmes avec prtraitement (PREPRO) ............................................... 168
1.25.2.8 Retour de sous-programme M17.............................................................................................. 169
1.25.2.9 Retour de sous-programme RET.............................................................................................. 170
1.25.2.10 Retour paramtrable dans les sous-programmes (RET ...)................................................. 171
1.25.3 Appel d'un sous-programme..................................................................................................... 178
1.25.3.1 Appel de sous-programme sans transfert de paramtres ........................................................ 178
1.25.3.2 Appel d'un sous-programme avec transfert de paramtres (EXTERN).................................... 180
1.25.3.3 Nombre de rptitions de programme (P) ................................................................................ 183
Table des matires

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 9
1.25.3.4 Appel modal d'un sous-programme (MCALL) ...........................................................................185
1.25.3.5 Appel indirect de sous-programme (CALL) ...............................................................................187
1.25.3.6 Appel indirect d'un sous-programme avec indication de la section de programme
excuter (CALL BLOCK ... TO ...)..............................................................................................188
1.25.3.7 Appel indirect d'un programme programm en langage ISO (ISOCALL)..................................190
1.25.3.8 Appel de sous-programme avec indication de chemin et paramtres (PCALL)........................191
1.25.3.9 Extension du chemin de recherche pour l'appel de sous-programmes (CALLPATH) ..............192
1.25.3.10 Excution de sous-programme externe (EXTCALL) ............................................................193
1.25.4 Cycles ........................................................................................................................................197
1.25.4.1 Cycles : paramtrage de cycles utilisateur ................................................................................197
1.26 Macroprogrammation (DEFINE ... AS) ......................................................................................201
2 Gestion des fichiers et programmes ...................................................................................................... 205
2.1 Mmoire de programmes...........................................................................................................205
2.2 Mmoire de travail (CHANDATA, COMPLETE, INITIAL)..........................................................210
2.3 Instruction structurelle dans l'diteur Step (SEFORM) ..............................................................213
3 Zones de protection............................................................................................................................... 215
3.1 Dfinition des zones de protection (CPROTDEF, NPROTDEF) ...............................................215
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT) .......................................219
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des
fins de course logiciels (CALCPOSI) .........................................................................................223
4 Instructions de dplacement spciales .................................................................................................. 231
4.1 Accostage de positions codes (CAC, CIC, CDC, CACP, CACN)............................................231
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN,
EAUTO, ENAT, ETAN, PW, SD, PL) .........................................................................................233
4.3 Groupe spline (SPLINEPATH)...................................................................................................245
4.4 Compactage de bloc CN (COMPON, COMPCURV, COMPCAD, COMPOF)...........................247
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)...........................................................250
4.6 Rfrence rglable de trajectoire (SPATH, UPATH) .................................................................256
4.7 Mesure avec palpeur dclenchement (MEAS, MEAW)..........................................................259
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)............................................262
4.9 Fonctions spciales pour l'utilisateur OEM (OEMIPO1, OEMIPO2, G810 G829)..................272
4.10 Rduction de l'avance avec dclration aux angles (FENDNORM, G62, G621)....................273
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA, IPOENDA, IPOBRKA,
ADISPOSA)................................................................................................................................274
4.12 Jeu de paramtres servo programmable (SCPARA).................................................................278
5 Transformations de coordonnes (FRAMES) ........................................................................................ 279
5.1 Transformation de coordonnes par variables frames ..............................................................279
5.1.1 Variables frames prdfinies ($P_BFRAME, $P_IFRAME, $P_PFRAME,
$P_ACTFRAME) ........................................................................................................................281
5.2 Affectation de valeurs des variables frames / frames.............................................................286
5.2.1 Affectation de valeurs directes (valeur d'axe, angle, chelle)....................................................286
5.2.2 Lecture et modification de composantes de frames (TR, FI, RT, SC, MI).................................289
5.2.3 Combinaison de frames complets..............................................................................................290
5.2.4 Dfinition de nouveaux frames (DEF FRAME) ..........................................................................292
5.3 Dcalage grossier et dcalage fin (CFINE, CTRANS) ..............................................................293
5.4 Dcalage d'origine externe ........................................................................................................295
5.5 Dcalage Preset (PRESETON) .................................................................................................296
Table des matires

Notions complmentaires
10 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace (MEAFRAME) ......................... 298
5.7 Frames dfinition globale pour NCU...................................................................................... 302
5.7.1 Frames spcifiques un canal ($P_CHBFR, $P_UBFR) ......................................................... 303
5.7.2 Frames actifs dans un canal ..................................................................................................... 304
6 Transformations..................................................................................................................................... 309
6.1 Programmation gnrale des types de transformation............................................................. 309
6.1.1 Mouvements d'orientation lors des transformations ................................................................. 312
6.1.2 Aperu de la transformation d'orientation TRAORI................................................................... 315
6.2 Transformation trois, quatre et cinq axes (TRAORI) ................................................................ 317
6.2.1 Corrlations gnrales de tte de fraisage de type cardan...................................................... 317
6.2.2 Transformation trois, quatre et cinq axes (TRAORI) ................................................................ 320
6.2.3 Variantes de programmation d'orientation et position initiale (ORIRESET) ............................. 321
6.2.4 Programmation de l'orientation de l'outil (A..., B..., C..., LEAD, TILT) ...................................... 323
6.2.5 Fraisage en bout (fraisage 3D A4, B4, C4, A5, B5, C5) ........................................................... 329
6.2.6 Rfrence des axes d'orientation (ORIWKS, ORIMKS) ........................................................... 331
6.2.7 Programmation des axes d'orientation (ORIAXES, ORIVECT, ORIEULER, ORIRPY,
ORIRPY2, ORIVIRT1, ORIVIRT2)............................................................................................ 333
6.2.8 Programmation de l'orientation le long d'une enveloppe de cne (ORIPLANE,
ORICONCW, ORICONCCW, ORICONTO, ORICONIO).......................................................... 335
6.2.9 Dfinition de l'orientation de deux points de contact (ORICURVE, PO[XH]=, PO[YH]=,
PO[ZH]=) ................................................................................................................................... 339
6.3 Polynmes d'orientation (PO[angles], PO[coordonne]) .......................................................... 341
6.4 Rotations de l'orientation de l'outil (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) ... 343
6.5 Orientations par rapport la trajectoire .................................................................................... 346
6.5.1 Types d'orientation par rapport la trajectoire ......................................................................... 346
6.5.2 Rotation de l'orientation de l'outil relative la trajectoire (ORIPATH, ORIPATHS, angle de
rotation) ..................................................................................................................................... 348
6.5.3 Interpolation relative la trajectoire de la rotation de l'outil (ORIROTC, THETA).................... 349
6.5.4 Lissage du trac d'orientation (ORIPATHS A8=, B8=, C8=) .................................................... 352
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD) ...................................... 353
6.7 Lissage du trac d'orientation (ORISON, ORISOF).................................................................. 357
6.8 Transformation cinmatique...................................................................................................... 359
6.8.1 Oprations de fraisage sur des pices de tournage (TRANSMIT) ........................................... 359
6.8.2 Transformation de surface latrale de cylindre (TRACYL) ....................................................... 362
6.8.3 Axe oblique (TRAANG) ............................................................................................................. 371
6.8.4 Programmation d'un axe oblique (G05, G07) ........................................................................... 374
6.9 Dplacement PTP cartsien ..................................................................................................... 376
6.9.1 PTP avec TRANSMIT ............................................................................................................... 381
6.10 Conditions marginales pour l'activation d'une transformation................................................... 385
6.11 Dsactivation d'une transformation (TRAFOOF) ...................................................................... 386
6.12 Transformations concatnes (TRACON, TRAFOOF)............................................................. 387
7 Corrections d'outils ................................................................................................................................ 389
7.1 Mmoire de correcteurs ............................................................................................................ 389
7.2 Corrections additives................................................................................................................. 392
7.2.1 Slection des corrections additives (DL)................................................................................... 392
7.2.2 Dfinition des valeurs d'usure et de rglage ($TC_SCPxy[t,d], $TC_ECPxy[t,d]).................... 394
7.2.3 Effacer les corrections additives (DELDL) ................................................................................ 395
7.3 Correcteur d'outil : Interventions spciales ............................................................................... 396
7.3.1 Application de la fonction miroir aux longueurs d'outil .............................................................. 398
7.3.2 Exploitation du signe de l'usure ................................................................................................ 399
Table des matires

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 11
7.3.3 Systme de coordonnes de l'usinage actif (TOWSTD, TOWMCS, TOWWCS, TOWBCS,
TOWTCS, TOWKCS) ................................................................................................................400
7.3.4 Longueurs d'outil et changement de plan..................................................................................403
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) ..............404
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)..................................................409
7.5.1 Activation des corrections d'outil 3D (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF, ISD) ..........409
7.5.2 Correction d'outil 3D : fraisage priphrique, fraisage en bout .................................................411
7.5.3 Correction d'outil 3D : formes et donnes d'outil pour le fraisage en bout ................................413
7.5.4 Correction d'outil 3D : Correction sur la trajectoire, courbure de la trajectoire, profondeur
de pntration (CUT3DC, ISD) ..................................................................................................415
7.5.5 Correction d'outil 3D : angles rentrants/angles saillants et mthode du point d'intersection
(G450/G451) ..............................................................................................................................417
7.5.6 Correction d'outil 3D : fraisage priphrique 3D avec surfaces de dlimitation........................419
7.5.7 Correction d'outil 3D : prise en compte d'une surface de dlimitation (CUT3DCC,
CUT3DCCD) ..............................................................................................................................419
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)..................423
7.7 Numros D libres, numro de tranchant....................................................................................429
7.7.1 Numros D libres, numro de tranchant (adresse CE) .............................................................429
7.7.2 Libre affectation des numros D : contrle des numros D (CHKDNO) ...................................430
7.7.3 Libre affectation des numros D : modification des numros D (GETDNO, SETDNO) ............431
7.7.4 Libre affectation des numros D : dtermination du numro T correspondant au numro
D prescrit (GETACTTD).............................................................................................................432
7.7.5 Libre affectation des numros D : numros D dclars non valides (DZERO) .........................433
7.8 Cinmatique d'un organe porte-outil ..........................................................................................434
7.9 Correction de longueur d'outil pour organes porte-outils orientables (TCARR, TCOABS,
TCOFR, TCOFRX, TCOFRY, TCOFRZ) ...................................................................................439
7.10 Correction de longueur d'outil en ligne (TOFFON, TOFFOF)....................................................443
7.11 Modification des donnes de tranchant des outils orientables (CUTMOD)...............................446
8 Modes de dplacement ......................................................................................................................... 453
8.1 Positionnement tangentiel (TANG, TANGON, TANGOF, TLIFT, TANGDEL)...........................453
8.2 Variation de l'avance (FNORM, FLIN, FCUB, FPO)..................................................................460
8.3 Excution du programme avec une mmoire tampon (STOPFIFO, STARTFIFO,
FIFOCTRL, STOPRE) ...............................................................................................................465
8.4 Sections de programme interruptibles sous conditions (DELAYFSTON, DELAYFSTOF)........468
8.5 Interdire des positions de programme pour SERUPRO (IPTRLOCK, IPTRUNLOCK) .............473
8.6 Raccostage du contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH,
REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)..................................................................476
8.7 Correction du pilotage des dplacements .................................................................................486
8.7.1 Correction de l'-coup en pourcentage (JERKLIM) ...................................................................486
8.7.2 Correction de la vitesse en pourcentage (VELOLIM) ................................................................487
8.7.3 Exemple de programme pour JERKLIM et VELOLIM...............................................................490
8.8 Tolrance de contour/orientation programmable (CTOL, OTOL, ATOL) ..................................491
8.9 Tolrance pour dplacements G0 (STOLF) ..............................................................................495
9 couplages d'axes................................................................................................................................... 497
9.1 Dplacements conjugus (TRAILON, TRAILOF) ......................................................................497
9.2 Tables de courbes (CTAB) ........................................................................................................501
9.2.1 Dfinition de tables de courbes (CTABDEF, CATBEND)..........................................................502
9.2.2 Vrification de l'existence d'une table de courbes (CTABEXISTS) ...........................................508
9.2.3 Suppression d'une table de courbes (CTABDEL) .....................................................................508
Table des matires

Notions complmentaires
12 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
9.2.4 Verrouillage de tables de courbes contre la suppression et l'crasement (CTABLOCK,
CTABUNLOCK) ........................................................................................................................ 510
9.2.5 Tables de courbes : dtermination des proprits de la table (CTABID, CTABISLOCK,
CTABMEMTYP, CTABPERIOD) .............................................................................................. 511
9.2.6 Lecture des valeurs de la table de courbes (CTABTSV, CTABTEV, CTABTSP,
CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) ................... 513
9.2.7 Tables de courbes : Vrification de l'utilisation des ressources (CTABNO, CTABNOMEM,
CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID,
CTABPOL, CTABFPOL, CTABMPOL) ..................................................................................... 518
9.3 Couplage de deux axes par valeur pilote (LEADON, LEADOF)............................................... 520
9.4 Rducteur lectronique (EG) .................................................................................................... 526
9.4.1 Dfinition d'un rducteur lectronique (EGDEF)....................................................................... 526
9.4.2 Activation du rducteur lectronique (EGON, EGONSYN, EGONSYNE)................................ 528
9.4.3 Dsactivation du rducteur lectronique (EGOFS, EGOFC).................................................... 531
9.4.4 Suppression de la dfinition d'un rducteur lectronique (EGDEL) ......................................... 532
9.4.5 Avance par tour (G95) / rducteur lectronique (FPR)............................................................. 533
9.5 Broche synchrone ..................................................................................................................... 534
9.5.1 Broche synchrone : Programmation (COUPDEF, COUPDEL, COUPON, COUPONC,
COUPOF, COUPOFS, COUPRES, WAITC) ............................................................................ 535
9.6 Couplage matre/esclave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) ............. 546
10 Actions synchrones au dplacement ..................................................................................................... 551
10.1 Notions de base ........................................................................................................................ 551
10.1.1 Domaine de validit et ordre d'excution (ID, IDS)................................................................... 553
10.1.2 Contrle cyclique de la condition (WHEN, WHENEVER, FROM, EVERY).............................. 555
10.1.3 Actions (DO).............................................................................................................................. 557
10.2 Oprateurs pour les conditions et actions................................................................................. 558
10.3 Variables d'excution pour actions synchrones........................................................................ 560
10.3.1 Variables systme..................................................................................................................... 560
10.3.2 Conversion de type implicite..................................................................................................... 562
10.3.3 Variables GUD.......................................................................................................................... 563
10.3.4 Descripteur d'axe par dfaut (NO_AXIS) .................................................................................. 565
10.3.5 Marque d'action synchrone ($AC_MARKER[n]) ....................................................................... 566
10.3.6 Paramtre d'action synchrone ($AC_PARAM[n]) ..................................................................... 566
10.3.7 Paramtre de calcul ($R[n]) ...................................................................................................... 567
10.3.8 Lecture et criture des paramtres machine CN et des donnes de rglage CN.................... 568
10.3.9 Variables de temporisation ($AC_Timer[n]) .............................................................................. 570
10.3.10 Variables FIFO ($AC_FIFO1[n] ... $AC_FIFO10[n]) ................................................................. 571
10.3.11 Renseignement sur les types de bloc dans l'interpolateur ($AC_BLOCKTYPE,
$AC_BLOCKTYPEINFO, $AC_SPLITBLOCK)......................................................................... 573
10.4 Actions dans des actions synchrones....................................................................................... 576
10.4.1 Actions possibles dans les actions synchrones........................................................................ 576
10.4.2 Sortie de fonctions auxiliaires ................................................................................................... 579
10.4.3 Activation du blocage de la lecture (RDISABLE) ...................................................................... 580
10.4.4 Annulation de l'arrt du prtraitement des blocs (STOPREOF) ............................................... 581
10.4.5 Effacement de la distance restant parcourir (DELDTG) ........................................................ 582
10.4.6 Dfinition d'un polynme (FCTDEF) ......................................................................................... 584
10.4.7 Fonction synchrone (SYNFCT) ................................................................................................. 586
10.4.8 Rgulation d'cartement avec correction limite ($AA_OFF_MODE) ...................................... 590
10.4.9 Correction d'outil en ligne (FTOC) ............................................................................................ 593
10.4.10 Correction en ligne de la longueur d'outil ($AA_TOFF) ............................................................ 596
10.4.11 Dplacements de positionnement............................................................................................. 598
10.4.12 Positionnement d'un axe (POS)................................................................................................ 599
10.4.13 Position dans la zone de rfrence prescrite (POSRANGE).................................................... 601
Table des matires

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 13
10.4.14 Dmarrer/arrter un axe (MOV).................................................................................................602
10.4.15 Permutation d'axe (RELEASE, GET).........................................................................................603
10.4.16 Avance axiale (FA).....................................................................................................................607
10.4.17 Fins de course logiciels..............................................................................................................607
10.4.18 Coordination d'axe .....................................................................................................................608
10.4.19 Prrglage des mmoires de valeurs relles (PRESETON) .....................................................609
10.4.20 Dplacement de broches...........................................................................................................610
10.4.21 Dplacements conjugus (TRAILON, TRAILOF) ......................................................................611
10.4.22 Couplage par valeur pilote (LEADON, LEADOF) ......................................................................613
10.4.23 Mesure (MEAWA, MEAC)..........................................................................................................616
10.4.24 Initialisation de variables de tableau (SET, REP) ......................................................................617
10.4.25 Activer/effacer des marques d'attente (SETM, CLEARM).........................................................618
10.4.26 Raction aux erreurs (SETAL)...................................................................................................619
10.4.27 Accostage d'une bute (FXS, FXST, FXSW, FOCON, FOCOF)...............................................620
10.4.28 Dtermination de l'angle de la tangente la trajectoire dans les actions synchrones..............623
10.4.29 Dtermination de la correction de vitesse courante ..................................................................623
10.4.30 Traitement de l'utilisation par rapport la dure des actions synchrones.................................624
10.5 Cycles technologiques...............................................................................................................626
10.5.1 Variable de contexte ($P_TECCYCLE) .....................................................................................629
10.5.2 Paramtres Call-by-Value..........................................................................................................630
10.5.3 Initialisation de paramtres par dfaut.......................................................................................630
10.5.4 Pilotage du traitement de cycles technologiques (ICYCOF, ICYCON) .....................................631
10.5.5 Cascadages de cycles technologiques......................................................................................632
10.5.6 Cycles technologiques en actions synchrones non modales ....................................................632
10.5.7 Structures de contrle (IF) .........................................................................................................632
10.5.8 Instructions de saut (GOTO, GOTOF, GOTOB)........................................................................633
10.5.9 Bloquer, dbloquer, remettre zro (LOCK, UNLOCK, RESET)..............................................634
10.6 Effacer une action synchrone (CANCEL) ..................................................................................636
10.7 Comportement de la commande dans des tats de fonctionnement donns ...........................637
11 Oscillation.............................................................................................................................................. 641
11.1 Oscillation asynchrone (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) .....641
11.2 Oscillation commande par des actions synchrones (OSCILL) ................................................647
12 Poinonnage et grignotage.................................................................................................................... 655
12.1 Activation, dsactivation ............................................................................................................655
12.1.1 Activation ou dsactivation du poinonnage et du grignotage (SPOF, SON, PON, SONS,
PONS, PDELAYON, PDELAYOF, PUNCHACC) ......................................................................655
12.2 Prparation automatique du dplacement.................................................................................660
12.2.1 Segmentation du dplacement dans le cas d'axes interpolation............................................663
12.2.2 Segmentation du dplacement dans le cas d'axes individuels..................................................665
13 Rectification........................................................................................................................................... 667
13.1 Surveillance d'outil spcifique la rectification dans le programme pice (TMON, TMOF) .....667
14 Autres fonctions..................................................................................................................................... 669
14.1 Fonctions d'axe (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) ..............669
14.2 Axes gomtriques permutables (GEOAX) ...............................................................................672
14.3 Conteneur d'axes (AXCTSWE, AXCTSWED) ...........................................................................677
14.4 Attente de la position d'axe dfinitive (WAITENC) ....................................................................681
14.5 Contrler le langage CN existant (STRINGIS) ..........................................................................683
14.6 Lecture de l'appel de la fonction ISVAR et des paramtres machine d'indice de tableau ........687
14.7 Apprentissage de compensations (QECLRNON, QECLRNOF)................................................689
Table des matires

Notions complmentaires
14 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
14.8 Appel interactif des fentres depuis le programme pice (MMC)............................................. 691
14.9 Temps d'excution du programme / Compteur de pices ........................................................ 692
14.9.1 Temps d'excution du programme / Compteur de pices (vue d'ensemble) ........................... 692
14.9.2 Temps d'excution de programme............................................................................................ 692
14.9.3 Compteurs de pices ................................................................................................................ 697
14.10 Alarmes (SETAL) ...................................................................................................................... 699
15 Programmes de chariotage personnaliss............................................................................................. 701
15.1 Fonctions additionnelles pour le chariotage.............................................................................. 701
15.2 Cration d'une table de contour (CONTPRON)........................................................................ 702
15.3 Cration d'une table de contour code (CONTDCON)............................................................. 708
15.4 Dtermination de l'intersection entre deux lments de contour (INTERSEC) ........................ 712
15.5 Excution des lments de contour d'une table bloc par bloc (EXECTAB) ............................. 714
15.6 Calcul de donnes de cercles (CALCDAT)............................................................................... 715
15.7 Dsactivation de la prparation du contour (EXECUTE).......................................................... 717
16 Tableaux................................................................................................................................................ 719
16.1 Liste des instructions................................................................................................................. 719
A Annexes................................................................................................................................................. 791
A.1 Liste des abrviations ............................................................................................................... 791
A.2 Remarques sur la documentation............................................................................................. 797
A.3 Vue d'ensemble de la documentation....................................................................................... 799
Glossaire ............................................................................................................................................... 801
Indice..................................................................................................................................................... 823

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 15
Programmation CN flexible
1
1.1 Variables
1.1.1 Informations gnrales sur les variables
L'utilisation de variables, en particulier en association avec des fonctions de calcul et des
structures de contrle, permet de raliser des programmes pice et des cycles de faon
extrmement flexible. A cet effet, le systme met disposition trois diffrents types de
variables :
Variables systme
Il s'agit de variables dfinies dans le systme et mises disposition de l'utilisateur avec
une signification prcise prdfinie. Elles peuvent galement tre lues et crites par le
logiciel systme. Exemple : Paramtres machine
La signification d'une variable systme est prdfinie dans une large mesure de manire
prcise par le systme, dans les proprits. L'utilisateur a cependant la possibilit, dans
une faible mesure, d'adapter les proprits en les redfinissant. Voir ""
Variables utilisateur
Il s'agit de variables sont la signification n'est pas connue par le systme et qui ne sont
pas non plus exploites par ce dernier. Leur signification est exclusivement dfinie par
l'utilisateur.
Les variables utilisateur sont rparties en :
Variables utilisateur prdfinies
Il s'agit de variables dj dfinies dans le systme, dont l'utilisateur n'a plus qu'
dfinir le nombre aux moyen de paramtres machine spcifiques. L'utilisateur a la
possibilit d'adapter dans une large mesure les proprits de ces variables. Voir "".
Variables dfinies par l'utilisateur
Il s'agit de variables dfinies exclusivement par l'utilisateur et que le systme ne cre
que lors de l'excution. Leur nombre, type de donnes, visibilit ainsi que toutes les
autres proprits sont dfinies exclusivement par l'utilisateur.
Voir ""
Programmation CN flexible
1.1 Variables
Notions complmentaires
16 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.1.2 Variables systme
Il s'agit de variables prdfinies dans le systme, qui permettent d'accder, dans les
programmes pice et les cycles, aux paramtrages actuel de la commande, tel qu'tats de la
machine, de la commande et du processus.
Variables de prtraitement
Il s'agit de variables systme qui sont lues et crites dans le contexte du prtraitement,
autrement dit au moment de l'interprtation du bloc de programme pice dans lequel la
variable systme est programme. Les variables de prtraitement ne dclenchent pas d'arrt
de prtraitement.
Variables d'excution
Il s'agit de variables systme qui sont lues ou crites dans le contexte de l'excution,
autrement dit au moment de l'excution du bloc de programme pice dans lequel la variable
systme est programme. Les variables d'excution sont des :
variables systme pouvant tre programmes dans des actions de synchronisation
(lecture/criture),
variables systme pouvant tre programmes dans le programme pice et capables de
dclencher un arrt de prtraitement (lecture/criture),
variables systme pouvant tre programmes dans le programme pice, et dont la valeur
est dtermine durant le prtraitement, mais n'est crite que lors de l'excution
(synchrones l'excution : criture seule)
Systmatique de prfixe
Pour l'identification spcifique de variables systme, leur nom est normalement prcd d'un
prfixe form par le caractre $, suivi d'une ou de deux lettres et d'un trait de soulignement :

$ + 1. Lettre Signification : Type de paramtre
Variables systme qui sont lues et crites durant le prtraitement des blocs
$M Paramtres machine
1)

$S Donnes de rglage, zones de protection
1)

$T Paramtres de gestion des outils
$P Valeurs programmes
$C Variables des cycles enveloppes ISO
$O Donnes optionnelles
R Paramtres R (paramtres de calcul)
2)

Variables systme qui sont lues / crites durant l'excution des blocs
$$M Paramtres machine
1)

$$S Donnes de rglage
1)

$A Donnes d'excution courantes
$V Donnes servo
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 17
$ + 1. Lettre Signification : Type de paramtre
$R Paramtres R (paramtres de calcul)
2)

1) En cas d'utilisation de paramtres machine et de donne de rglage comme variables d'excution
dans le programme pice / cycle, le prfixe est form d'un caractre $. En cas d'utilisation comme
variable d'excution dans les actions synchrones, le prfixe est form de deux caractres $.
2) En cas d'utilisation d'un paramtre R comme variable d'excution dans le programme pice /
cycle, aucun prfixe n'est spcifi, p. ex. R10. En cas d'utilisation comme variable d'excution dans
une action synchrone, le prfixe est form d'un caractre $, p. ex. $R10.


2. Lettre Signification : Visibilit
N Variable globale NCK (NCK)
C Variable spcifique au canal (Channel)
A Variable spcifique l'axe (Axis)
Conditions marginales
Exception dans la systmatique des prfixes
Les variables systme suivantes divergent de la systmatique des prfixes indiqus ci-
dessus :
$TC_... : Le deuxime caractre C ne dsigne pas une variable spcifique au canal, mais
une variable systme spcifique au porte-outils (TC = Tool Carrier)
$P_ ... : Variables systme spcifiques un canal
Utilisation de paramtres machine et de donnes de rglage dans des actions synchrones
En cas d'utilisation des paramtres machine et des donnes de rglage dans des actions
synchrones, le prfixe permet de dterminer si la lecture/criture du paramtre machine ou
de la donne de rglage s'effectue de faon synchrone au prtraitement ou l'excution.
Si le paramtre reste inchang pendant l'excution, la lecture peut tre effectue de faon
synchrone au prtraitement. Le prfixe du paramtre machine ou de la donne de rglage
s'crit de ce fait avec un caractre $ :

Code de programme
ID=1 WHENEVER G710 $AA_IM[z] < $SA_OSCILL_REVERSE_POS2[Z]6 DO $AA_OVR[X]=0

Si le paramtre est modifi pendant l'excution, la lecture /criture doit tre effectue de
faon synchrone l'excution. Le prfixe du paramtre machine ou de la donne de rglage
s'crit de ce fait avec deux caractres $ :

Code de programme
ID=1 WHENEVER $AA_IM[z] < $$SA_OSCILL_REVERSE_POS2[Z]6 DO $AA_OVR[X]=0
Programmation CN flexible
1.1 Variables
Notions complmentaires
18 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0


Remarque
Ecriture de paramtres machine
Lors de l'criture d'un paramtre machine ou d'une donne de rglage, il faut s'assurer que
le niveau d'accs actif pour l'excution du programme pice / cycle autorise la protection en
criture et que la prise d'effet du paramtre soit "IMMEDIATE".

Bibliographie
Pour obtenir la liste des proprits de toutes les variables systme, rfrez-vous aux :
/PGA1/ Tables de paramtres Variables systme
1.1.3 Variables utilisateur prdfinies : Paramtre de calcul (R)
Fonction
Les paramtres de calcul ou paramtres R correspondent une variable utilisateur
prdfinie dsign par R et dfinie comme champ de type de donnes REAL. Pour des
raisons historiques, outre la notation des paramtres R avec un indice de tableau, p. ex.
R[10], la notation sans indice de tableau, p. ex. R10 est galement autorise.
En cas d'utilisation dans des actions synchrones, la lettre $ doit figurer en tte, p. ex. $R10.
Syntaxe
En cas d'utilisation comme variable de prtraitement :
R<n>
R[<expression>]
En cas d'utilisation comme variable d'excution :
$R<n>
$R[<expression>]
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 19
Signification

R : Descripteur en cas d'utilisation comme variable de prtraitement, p. ex.
dans le programme pice
$R : Descripteur en cas d'utilisation comme variable d'excution, p. ex. dans
des actions synchrones
Type : REAL
Plage de
valeurs :
En notation non exponentielle :
(0.000 0001 ... 9999 9999)
Nota :
Le nombre maximum de dcimales autorises est de 8
En notation exponentielle :
(1*10
-300
... 1*10
+300
)
Nota :
Notation : <mantisse>EX<exposant>, p. ex. 8.2EX-3
Le nombre maximum de caractres autoriss, y
compris le signe et le point dcimal, est de 10.
Numro du paramtre R
Type : INT
<n> :
Plage de
valeurs :
0 - MAX_INDEX
Nota
MAX_INDEX rsulte du nombre de paramtres R
paramtrs :
MAX_INDEX = (MD28050 $MN_MM_NUM_R_PARAM) - 1
<expression> : Indice de tableau
L'indice de tableau peut tre une expression quelconque, condition
que le rsultat de cette expression puisse tre converti dans le type de
donnes INT (INT, REAL, BOOL, CHAR)
Exemple
Affectations de paramtres R et utilisation de paramtres R dans des fonctions
mathmatiques :

Code de programme Commentaire
R0=3.5678 ; Affectation dans le prtraitement
R[1]=-37.3 ; Affectation dans le prtraitement
R3=-7 ; Affectation dans le prtraitement
$R4=-0.1EX-5 ; Affectation dans l'excution : R4 = -0.1 * 10^-5
$R[6]=1.874EX8 ; Affectation dans l'excution : R6 = 1.874 * 10^8
R7=SIN(25.3) ; Affectation dans le prtraitement

R[R2]=R10 ; Adressage indirect au moyen d'un paramtre R
R[(R1+R2)*R3]=5 ; Adressage indirect au moyen d'une expression
mathmatique
Programmation CN flexible
1.1 Variables
Notions complmentaires
20 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Code de programme Commentaire

X=(R1+R2) ; Dplacer l'axe X la position rsultant de la
somme de R1 et de R2
Z=SQRT(R1*R1+R2*R2) ; Dplacer l'axe Z la position racine carre (R1^2
+ R2^2)
1.1.4 Variables utilisateur prdfinies : variables Link
Fonction
Dans le cadre de la fonction "Link NCU", les variables Link permettent de raliser l'change
cyclique de donnes entre des NCU mises en rseau. Elle autorisent un accs spcifique au
format de donnes la mmoire de variables Link. La taille et la structure de donnes de la
mmoire de variables Link sont dfinies de manire spcifique l'installation par l'utilisateur
/ le constructeur de la machine-outil.
Les variables Link sont des variables utilisateur globales du systme, dont l'criture et la
lecture peuvent tre effectues dans des programmes pice et des cycles partir de toutes
les NCU du groupe Link, condition que la communication Link soit configure.
Contrairement aux variables utilisateur globales (GUD), l'utilisation des variables Link est
galement possible dans des actions synchrones.
Dans le cas d'installations ne disposant pas de Link NCU actif , les variables Link peuvent
tre utilises localement dans la commande en plus des variables utilisateur globales
(GUD), comme variables utilisateur globales supplmentaires.
Syntaxe
$A_DLB[<indice>]
$A_DLW[<indice>]
$A_DLD[<indice>]
$A_DLR[<indice>]
Signification
Variable Link pour le format de donnes BYTE (1 octet)
Type de donnes : UINT
$A_DLB :
Plage de valeurs : 0 ... 255
Variable Link pour le format de donnes WORD (2 octets)
Type de donnes : INT
$A_DLW :
Plage de valeurs : -32768 ... 32767
Variable Link pour le format de donnes DWORD (4 octets)
Type de donnes : INT
$A_DLD :
Plage de valeurs : -2147483648 ... 2147483647
Variable Link pour le format de donnes REAL (8 octets)
Type de donnes : REAL
$A_DLR :
Plage de valeurs : (2,2*10
-308
1,8*10
+308
)
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 21
Indice d'adresse en octets, calcul partir du dbut de la mmoire de
variables Link
Type de donnes : INT
<indice> :
Plage de valeurs : 0 - MAX_INDEX
Nota
MAX_INDEX rsulte de la taille paramtre pour
la mmoire de variables Link : MAX_INDEX =
(MD18700 $MN_MM_SIZEOF_LINKVAR_DATA)
- 1
Seule est autorise la programmation d'indices
pour lesquels les octets adresss dans la
mmoire de variables Link correspondent une
limite de format de donnes
Indice = n * octets, avec n = 0, 1, 2, ...
$A_DLB[i] : i = 0, 1, 2, ...
$A_DLW[i] : i = 0, 2, 4, ...
$A_DLD[i] : i = 0, 4, 8, ...
$A_DLR[i] : i = 0, 8, 16, ...
Exemple
L'installation d'automatisation ne contient que 2 NCU (NCU1 et NCU2). L'axe machine AX2
dplac comme axe Link par NCU2 est raccord NCU1.
NCU1 inscrit de faon cyclique la valeur relle du courant ($VA_CURR) de l'axe AX2 dans la
mmoire de variables Link. NCU2 lit de faon cyclique la valeur relle du courant transmise
par la communication Link et affiche l'alarme 61000 en cas de dpassement de la valeur
limite.
La structure de donnes dans la mmoire des variables Link est reprsente dans la figure
suivante. La valeur relle du courant est transmise au moyen de la valeur REAL.
Mmoire de variables Link
lndice 0
16
8
MD18700 $MN_MM_SlZEOF_LlNKVAR_DATA = 24
BYTE(1) BYTE(2) WORD DWORD(1)
DWORD(2) DWORD(3)
REAL


Programmation CN flexible
1.1 Variables
Notions complmentaires
22 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
NCU1
Durant la priode d'appel de l'interpolateur pendant une action synchrone statique, NCU1
crit de faon cyclique la valeur relle du courant de l'axe AX2 dans la mmoire des
variables Link, au moyen de la variable Link $A_DLR[ 16 ].

Code de programme
N111 IDS=1 WHENEVER TRUE DO $A_DLR[16]=$VA_CURR[AX2]

NCU2
Durant la priode d'appel de l'interpolateur pendant une action synchrone statique, NCU2 lit
de faon cyclique la valeur relle du courant de l'axe AX2 dans la mmoire des variables
Link, au moyen de la variable Link $A_DLR[ 16 ]. Si la valeur relle du courant est
suprieure 23.0 A, l'alarme 61000 s'affiche.

Code de programme
N222 IDS=1 WHEN $A_DLR[16] > 23.0 DO SETAL(61000)
1.1.5 Dfinition de variables utilisateur (DEF)
Fonction
L'instruction DEF permet l'utilisateur de dfinir ses propres variables et leur affecter des
valeurs. Pour les diffrencier des variables systme, celles-ci sont dsignes comme
variables dfinies par l'utilisateur ou variables utilisateur (User Data).
Les catgories suivantes de variables utilisateurs sont disponibles en fonction du domaine
de validit, autrement dit du domaine dans lequel la variable est visible :
Variables utilisateur locales (LUD)
Les variables utilisateur locales (LUD) sont des variables dfinies dans un programme
pice qui n'est pas le programme principal au moment de l'excution. Elles sont
dclares l'appel du programme pice et supprimes la fin du programme pice ou
du Reset CN. L'accs aux variables LUD peut uniquement tre ralis dans le
programme pice dans lequel ces variables sont dfinies.
Variables utilisateur globales d'un programme (PUD)
Les variables utilisateur globales d'un programme (PUD) sont des variables dfinies dans
un programme pice utilis comme programme principal. Elles sont dclares au
lancement du programme pice et supprimes la fin du programme pice ou du Reset
CN. L'accs aux variables PUD peut tre ralis dans le programme principal et dans
tous ses sous-programmes.
Variables utilisateur globales (GUD)
Les variables utilisateur globales (GUD) sont des variables globales d'une CN ou d'un
canal, dfinies dans un bloc de donnes (SGUD, MGUD, UGUD, GUD4 ... GUD9) et
conserves mme aprs un Power On. L'accs aux variables GUD peut tre ralis dans
tous les programmes pice.
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 23
Les variables utilisateur doivent avoir t dfinies avant leur utilisation (lecture / criture). Il
convient de respecter les rgles suivantes :
Les variables GUD doivent tre dfinies dans un fichier de dfinition, par ex.
_N_DEF_DIR/_M_SGUD_DEF.
Les variables PUD et LUD doivent tre dfinies dans la section de dfinition d'un
programme pice.
La dfinition des donnes doit tre effectue dans un bloc spcifique.
Un seul type de donnes peut tre utilis par dfinition de donnes.
Plusieurs variables du mme type de donnes peuvent tre dfinies par dfinition de
donnes.
Syntaxe
DEF <domaine> <type> <arrt prtraitement blocs> <instant
d'initialisation> <unit physique> <valeurs limites> <droits
d'accs> <nom>[<valeur_1>,<valeur_2>,<valeur_3>]=<valeur
d'initialisation>
Signification
DEF : Instruction de dfinition de variables utilisateur GUD, PUD, LUD
Domaine de validit, uniquement significatif pour GUD :
NCK : Variable utilisateur globale dans la CN
<domaine> :
CHAN : Variable utilisateur globale dans le canal
Type de donnes :
INT : valeur entire avec signe
REAL : Nombre rel (LONG REAL selon IEEE)
BOOL : Valeur boolenne TRUE (1) / FALSE (0)
CHAR : Caractre ASCII
STRING[<Longueur
maximale>] :
Chane de caractres de longueur dfinie
AXIS : Descripteur d'axe/de broche
FRAME : Indications gomtriques pour une
transformation statique de coordonnes
<type> :
voir ""
Arrt de prtraitement des blocs, uniquement significatif pour
GUD (facultatif)
SYNR : Arrt du prtraitement la lecture
SYNW : Arrt du prtraitement l'criture
<arrt prtraitement
blocs> :
SYNRW : Arrt du prtraitement la lecture/criture
Instant auquel la variable est rinitialise (facultatif)
INIPO : Power On
<instant
d'initialisation> :
INIRE : Fin du programme principal, Reset CN ou
Power On
Programmation CN flexible
1.1 Variables
Notions complmentaires
24 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
INICF : NewConfig ou fin du programme principal, Reset
CN ou Power On
PRLOC : Fin du programme principal, Reset CN aprs une
modification locale ou Power On
voir ""
Unit physique (facultative)
PHU <unit> :
<unit physique> :
voir ""
Valeur limite infrieure et suprieure (facultative)
LLI <valeur limite> : Valeur limite infrieure (lower limit)
ULI <valeur limite> : Valeur limite suprieure (upper limit)
<valeurs limites> :
voir ""
Droits d'accs en lecture / criture aux variables GUD au moyen
du programme pice ou de BTSS (facultatif)
APRP <niveau de
protection> :
Lecture : Programme pice
APWP <niveau de
protection> :
Ecriture : programme pice
APRB <niveau de
protection> :
Lecture : OPI
APWB <niveau de
protection> :
Ecriture : OPI
Niveau de
protection
Plage de valeurs : 0 ...
7
<droits d'accs> :
voir ""
<Nom> : Nom de la variable
Nota
31 caractres au maximum
Les deux premiers caractres doivent tre une lettre et/ou un
caractre de soulignement.
Le caractre "$" est rserv aux variables systme et ne doit
pas tre utilis.
[<valeur_1>,
<valeur_2>,
<valeur_3>] :
Indication de la dimension des tableaux pour des variables de
tableaux comportant 1 3 dimensions au maximum (facultative)
<valeur
d'initialisation> :
Valeur d'initialisation (facultative)
voir ""
Pour l'initialisation de variables de tableaux :
voir ""
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 25
Exemples
Exemple 1 : dfinitions de variables utilisateur dans le bloc de donnes pour constructeur de
la machine-outil
Code de programme
%_N_MGUD_DEF ; Bloc GUD : constructeur de la machine-outil
$PATH=/_N_DEF_DIR
DEF CHAN REAL PHU 24 LLI 0 ULI 10 STROM_1, STROM_2
; Description
; Dfinition de deux variables GUD : STROM_1, STROM_2
; Domaine de validit : pour l'ensemble du canal
; Type de donnes : REAL
; Arrt prtraitement blocs : non programm => valeur par dfaut = pas d'arrt prtraitement blocs
; Unit physique : 24 = [A]
; Valeurs limites : infrieure = 0.0, suprieure = 10.0
; Droits d'accs : non programms => valeur par dfaut = 7 = position 0 du commutateur cl
; Valeur d'initialisation : non programme => valeur par dfaut = 0.0

DEF NCK REAL PHU 13 LLI 10 APWP 3 APRP 3 APWB 0 APRB 2 ZEIT_1=12, ZEIT_2=45
; Description
; Dfinition de deux variables GUD : ZEIT_1, ZEIT_2
; Domaine de validit : pour l'ensemble du NCK
; Type de donnes : REAL
; Arrt prtraitement blocs : non programm => valeur par dfaut = pas d'arrt prtraitement blocs
; Unit physique : 13 = [s]
; Valeurs limites : infrieure = 10.0, suprieure = non programme => limite de la plage de
dfinition
; Droits d'accs :
; Programme pice : criture/lecture = 3 = utilisateur final
; OPI : criture = 0 = Siemens, lecture = 3 = utilisateur final
; Valeur d'initialisation : ZEIT_1 = 12.0, ZEIT_2 = 45.0

DEF NCK APWP 3 APRP 3 APWB 0 APRB 3 STRING[5] GUD5_NAME = "COUNTER"
; Description
; Dfinition d'une variable GUD : GUD5_NAME
; Domaine de validit : pour l'ensemble du NCK
; Type de donnes : STRING, 5 caractres au maximum
; Arrt prtraitement blocs : non programm => valeur par dfaut = pas d'arrt prtraitement blocs
; Unit physique : non programme => valeur par dfaut = 0 = pas d'unit physique
; Valeurs limites : non programmes => limites de la plage de dfinition : infrieure = 0, suprieure
= 255
; Droits d'accs :
; Programme pice : criture/lecture = 3 = utilisateur final
; OPI : criture = 0 = Siemens, lecture = 3 = utilisateur final
; Valeur d'initialisation : "COUNTER"
M30
Programmation CN flexible
1.1 Variables
Notions complmentaires
26 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Exemple 2 : variables utilisateur globales et locales du programme (PUD / LUD)
Code de programme Commentaire
PROC MAIN ; Programme principal
DEF INT VAR1 ; Dfinition PUD
...
SUB2 ; appel de sous-programme
...
M30

Code de programme Commentaire
PROC SUB2 ; Sous-programme SUB2
DEF INT VAR2 ; Dfinition LUD
...
IF (VAR1==1) ; Lecture PUD
VAR1=VAR1+1 ; Lecture et criture PUD
VAR2=1 ; Ecriture LUD
ENDIF
SUB3 ; Appel de sous-programme
...
M17

Code de programme Commentaire
PROC SUB3 ; Sous-programme SUB3
...
IF (VAR1==1) ; Lecture PUD
VAR1=VAR1+1 ; Lecture et criture PUD
VAR2=1 ; Erreur : LUD de SUB2 non connu
ENDIF
...
M17
Exemple 3 : dfinition et utilisation de variables utilisateur du type de donnes AXIS
Code de programme Commentaire
DEF AXIS ABSCISSE ; 1. Axe gomtrique
DEF AXIS BROCHE ; Broche
...
IF ISAXIS(1) == FALSE GOTOF SUITE
ABSCISSE = $P_AXN1
SUITE :
...
BROCHE=(S1) 1. Broche
OVRA[BROCHE]=80 ; Correction de vitesse de rotation de
broche = 80 %
BROCHE=(S3) 3. Broche
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 27
Contraintes
Variables utilisateur globales (GUD)
Les paramtres machines suivants doivent tre pris en compte dans le cadre de la dfinition
de variables utilisateur globales (GUD) :

N Descripteur : $MN_ Signification
11140 GUD_AREA_ SAVE_TAB Sauvegarde supplmentaire pour blocs GUD
18118
1)
MM_NUM_GUD_MODULES Nombre de fichiers GUD dans le systme de
fichiers actif
18120
1)
MM_NUM_GUD_NAMES_NCK Nombre de noms GUD globaux
18130
1)
MM_NUM_GUD_NAMES_CHAN Nombre de noms GUD spcifiques un axe
18140
1)
MM_NUM_GUD_NAMES_AXIS Nombre de noms GUD spcifiques un axe
18150
1)
MM_GUD_VALUES_MEM Espace mmoire pour valeurs GUD globales
18660
1)
MM_NUM_SYNACT_GUD_REAL Nombre de variables GUD configurables du type de
donnes REAL
18661
1)
MM_NUM_SYNACT_GUD_INT Nombre de variables GUD configurables du type de
donnes INT
18662
1)
MM_NUM_SYNACT_GUD_BOOL Nombre de variables GUD configurables du type de
donnes BOOL
18663
1)
MM_NUM_SYNACT_GUD_AXIS Nombre de variables GUD configurables du type de
donnes AXIS
18664
1)
MM_NUM_SYNACT_GUD_CHAR Nombre de variables GUD configurables du type de
donnes CHAR
18665
1)
MM_NUM_SYNACT_GUD_STRING Nombre de variables GUD configurables du type de
donnes STRING
1)
Non disponible pour SINUMERIK 828D.
Variables utilisateur globales d'un programme (PUD)

IMPORTANT
Visibilit de variables utilisateur locales d'un programme (PUD)
Les variables utilisateur locales dfinies dans le programme principal (PUD) sont
uniquement galement visibles dans les sous-programmes, si le paramtre machine
suivant est mis 1 :
MD11120 $MN_LUD_EXTENDED_SCOPE = 1
Avec MD11120 = 0, les variables utilisateur locales dfinies dans le programme principal
sont uniquement visibles dans le programme principal.


Utilisation dans tous les canaux d'une variable utilisateur globale NCK du type de donnes
AXIS
Une variable utilisateur globale NCK du type de donnes AXIS, initialise au moyen d'un
descripteur lors de la dfinition dans le bloc de donnes, peut uniquement tre utilise dans
diffrents canaux de la CN, si l'axe possde le mme numro de canal dans l'ensemble des
canaux.
Programmation CN flexible
1.1 Variables
Notions complmentaires
28 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Si cela n'est pas le cas, la variable doit tre charge au dbut du programme pice, ou la
fonction AXNAME(...) (voir "") doit tre utilise, comme dans l'exemple suivant.

Code de programme Commentaire
DEF NCK STRING[5] ACHSE="X" ; Dfinition dans le bloc de
donnes

N100 AX[AXNAME(ACHSE)]=111 G00 ; Utilisation dans le programme
pice
1.1.6 Redfinition de variables systme, variables utilisateur et instruction de langage
CN (REDEF)
Fonction
L'instruction REDEF permet de modifier les attributs de variables systme, variables utilisateur
et instructions de langage CN. La condition de base ncessaire pour une redfinition est
qu'elle soit excute aprs la dfinition correspondante.
Lors d'une redfinition, il n'est pas possible de modifier simultanment plusieurs attributs.
Une instruction REDEF spcifique doit tre programme pour chaque attribut modifier.
Dans le cas o plusieurs modifications d'attributs concurrentes sont programmes, la
modification active est toujours la dernire.
Attributs redfinissables
Voir "Vue d'ensemble des attributs dfinissables et redfinissables (Page 43)"
Variables utilisateur locales (PUD / LUD)
Aucune redfinition n'est autorise pour des variables utilisateur locales (PUD / LUD).
Syntaxe
REDEF <nom> <arrt prtraitement blocs>
REDEF <nom> <unit physique>
REDEF <nom> <valeurs limites>
REDEF <nom> <droits d'accs>
REDEF <nom> <instant d'initialisation>
REDEF <nom> <instant d'initialisation> <valeur d'initialisation>
Signification

REDEF : Instruction de redfinition d'un attribut spcifique de variables
systme, variables utilisateur et instruction de langage CN
<Nom> : Nom d'une variable dj dfinie ou d'une instruction de langage CN
Arrt du prtraitement des blocs
<arrt
prtraitement
blocs> :
SYNR : Arrt du prtraitement la lecture
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 29
SYNW : Arrt du prtraitement l'criture
SYNRW : Arrt du prtraitement la lecture/criture
Unit physique
PHU <unit> :
<unit physique> :
voir "Attribut : unit physique (PHU) (Page 35)"
Nota
Non redfinissable pour :
Variables systme
Donnes utilisateur globales (GUD)
Types de donnes : BOOL, AXIS, STRING, FRAME
Valeur limite infrieure et/ou suprieure
LLI <valeur limite> : Valeur limite infrieure (lower limit)
ULI <valeur limite> : Valeur limite suprieure (upper limit)
<valeurs limites> :
voir "Attribut : valeurs limites (LLI, ULI) (Page 34)"
Nota
Non redfinissable pour :
Variables systme
Donnes utilisateur globales (GUD)
Types de donnes : BOOL, AXIS, STRING, FRAME
Droits d'accs en lecture / criture au moyen du programme pice
ou de BTSS
APX <niveau de
protection> :
Excuter : Elment de langage CN
APRP <niveau de
protection> :
Lecture : Programme pice
APWP <niveau de
protection> :
Ecriture : Programme pice
APRB <niveau de
protection> :
Lecture : BTSS
APWB <niveau de
protection> :
Ecriture : BTSS
Niveau de
protection
Plage de valeurs : 0 ... 7
<droits d'accs> :
voir "Attribut : droits d'accs (APR, APW, APRP, APWP, APRB,
APWB) (Page 38)"
Instant de rinitialisation de la variable
INIPO : PowerOn
INIRE : Fin du programme principal, Reset CN ou PowerOn
INICF : NewConfig ou fin du programme principal, Reset
CN ou PowerOn
PRLOC : Fin du programme principal, Reset CN aprs une
modification locale ou un PowerOn
<instant
d'initialisation> :
voir "Attribut : Valeur d'initialisation (Page 31)"
Programmation CN flexible
1.1 Variables
Notions complmentaires
30 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
<valeur
d'initialisation> :
Valeur d'initialisation
Pour redfinir la valeur d'initialisation, il faut galement toujours
spcifier un instant d'initialisation (voir <instant d'initialisation>).
voir "Attribut : Valeur d'initialisation (Page 31)"
Pour l'initialisation de variables de tableaux :
voir ""
Nota
Non redfinissable pour :
variables systme, l'exception des donnes de rglage
Exemple
Redfinitions de la variable systme $TC_DPC1 dans le bloc de donnes pour le
constructeur de la machine-outil

Code de programme
%_N_MGUD_DEF ; Bloc GUD : constructeur de la machine-outil
$PATH=/_N_DEF_DIR
REDEF $TC_DPC1 APWB 2 APWP 3
REDEF $TC_DPC1 PHU 21
REDEF $TC_DPC1 LLI 0 ULI 200
REDEF $TC_DPC1 INIPO (100, 101, 102, 103)
; Description
;
;
;
;
Droit d'accs en criture : BTSS = niveau de protection 2, programme pice = niveau de protection 3
Nota
En cas d'utilisation de fichiers ACCESS, la redfinition des droits d'accs doit tre transpose de
_N_MGUD_DEF en _N_MACCESS_DEF
; Unit physique = [ % ]
; Valeurs limites : infrieure = 0, suprieure = 200
; La variable de tableau est initialise avec les quatre valeurs lors d'un PowerOn
M30
Conditions
Granularit
Une redfinition concerne toujours la variable complte, caractrise de faon univoque par
son nom. Il n'est pas possible, p. ex. pour des variables de tableau, d'attribuer diffrentes
valeurs d'attribut des lments individuels de tableau.
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 31
1.1.7 Attribut : Valeur d'initialisation
Dfinition (DEF) de variables utilisateur
Lors de la dfinition, une valeur d'initialisation peut tre prdfinie pour les variables
utilisateur suivantes :
Variables utilisateur globales (GUD)
Variables utilisateur globales d'un programme (PUD)
Variables utilisateur locales (LUD)
Redfinition (REDEF) de variables systme et de variables utilisateur
Lors de la redfinition, une valeur d'initialisation peut tre prdfinie pour les variables
suivantes :
Donnes systme
Donnes de rglage
Donnes utilisateur
Paramtre R
Variable action synchrone ($AC_MARKER, $AC_PARAM, $AC_TIMER)
Variable GUD action synchrone (SYG_xy[ ], avec x=R, I, B, A, C, S et y=S, M, U, 4,
..., 9)
Paramtre EPS
Donnes outil OEM
Donnes magasin OEM
Variables utilisateur globales (GUD)
Instant de rinitialisation
Lors de la redfinition, il est possible de spcifier l'instant auquel la variable est rinitialise,
c'est--dire doit reprendre sa valeur d'initialisation :
INIPO (Power On)
La variable est rinitialise lors d'un PowerOn.
INIRE (Reset)
La variable est rinitialise lors d'un Reset CN, d'un Reset GMF, la fin du programme
pice (M02 / M30) ou lors d'un PowerOn.
INICF (NewConfig)
La variable est rinitialise lors de la requte NewConf via IHM, via une instruction du
programme pice NEWCONFIG ou via un Reset CN, un Reset GMF, ou la fin du
programme pice (M02 / M30) ou lors d'un PowerOn.
PRLOC (modification locale du programme)
La variable est uniquement rinitialise en cas de Reset CN, Reset GMF, la fin du
programme pice (M02 / M30) si elle a t modifie dans le cadre du programme pice
actuel.
Programmation CN flexible
1.1 Variables
Notions complmentaires
32 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
L'attribut PRLOC ne doit tre utilis que dans le contexte de donnes de rglage
programmables (voir le tableau suivant).
Tableau 1- 1 Donnes de rglage programmables
Numro Descripteur Fonction G
1)

42000 $SC_THREAD_START_ANGLE
SF
42010 $SC_THREAD_RAMP_DISP DITS / DITE
42400 $SA_PUNCH_DWELLTIME
PDELAYON
42800 $SA_SPIND_ASSIGN_TAB
SETMS
43210 $SA_SPIND_MIN_VELO_G25
G25
43220 $SA_SPIND_MAX_VELO_G26
G26
43230 $SA_SPIND_MAX_VELO_LIMS
LIMS
43300 $SA_ASSIGN_FEED_PER_REV_SOURCE
FPRAON
43420 $SA_WORKAREA_LIMIT_PLUS
G26
43430 $SA_WORKAREA_LIMIT_MINUS
G25
43510 $SA_FIXED_STOP_TORQUE
FXST
43520 $SA_FIXED_STOP_WINDOW
FXSW
43700 $SA_OSCILL_REVERSE_POS1
OSP1
43710 $SA_OSCILL_REVERSE_POS2
OSP2
43720 $SA_OSCILL_DWELL_TIME1
OST1
43730 $SA_OSCILL_DWELL_TIME2
OST2
43740 $SA_OSCILL_VELO
FA
43750 $SA_OSCILL_NUM_SPARK_CYCLES
OSNSC
43760 $SA_OSCILL_END_POS
OSE
43770 $SA_OSCILL_CTRL_MASK
OSCTRL
43780 $SA_OSCILL_IS_ACTIVE
OS
43790 $SA_OSCILL_START_POS
OSB
1) Cette fonction G sollicite la donne de rglage
Contraintes
Valeur d'initialisation : variables utilisateur globales (GUD)
Dans le cas de la variable utilisateur globale (GUD) avec le domaine de validit NCK, seul
l'instant d'initialisation INIPO (Power On) peut tre prdfini.
Dans le cas de variables utilisateur globales (GUD) avec le domaine de validit CHAN, il
est possible de prdfinir comme instant d'initialisation, outre INIPO (Power On),
galement INIRE (Reset) ou INICF (NewConfig).
Dans le cas de variables utilisateur globales (GUD) avec le domaine de validit CHAN et
l'instant d'initialisation INIRE (Reset) ou INICF (NewConfig), les variables sont seulement
rinitialises pour Reset CN, Reset GMF et NewConfig dans les canaux dans lesquels
les vnements spcifis ont t dclenchs.
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 33
Valeur d'initialisation : type de donnes FRAME
Pour les variables du type de donnes FRAME, la spcification d'une valeur d'initialisation n'est
pas autorise. Les variables du type de donnes FRAME sont implicitement toujours
initialises avec le frame par dfaut.
Valeur d'initialisation : type de donnes CHAR
Pour les variables du type de donnes CHAR, il est possible de programmer la place du
code ASCII (0...255), le caractre ASCII correspondant reprsent entre guillemets, p. ex.
"A"
Valeur d'initialisation : type de donnes STRING
Pour les variables du type de donnes STRING, la chane de caractres doit figurer entre
guillemets, p. ex. : ...= "MACHINE_1"
Valeur d'initialisation : type de donnes AXIS
Pour les variables du type de donnes AXIS, le descripteur d'axe doit figurer entre guillemets
pour la notation tendue d'adresse, p. ex. : ...=(X3)
Valeur d'initialisation : variable systme
Pour les variables systme, il n'est pas possible de prdfinir par redfinition des valeurs
d'initialisation spcifiques l'utilisateur. Les valeurs d'initialisation des variables systme
sont prdfinies par le systme. Il est par contre possible de modifier par redfinition l'instant
(INIRE, INICF) auquel la variable systme est rinitialise.
Valeur d'initialisation implicite : type de donnes AXIS
Pour les variables du type de donnes AXIS, la valeur d'initialisation implicite suivante est
utilise :
Donnes systme : "premier axe gomtrique"
GUD d'action synchrone (dsignation : SYG_A*), PUD, LUD :
descripteur d'axe partir du paramtre machine : MD20082
$MC_AXCONF_CHANAX_DEFAULT_NAME
Valeur d'initialisation implicite : donnes d'outil et de magasin
Pour les donnes d'outil et de magasin, il est possible de prdfinir des valeurs
d'initialisation partir du paramtre machine suivant : MD17520
$MN_TOOL_DEFAULT_DATA_MASK


IMPORTANT
Synchronisme
La synchronisation d'vnements dclenchant la rinitialisation d'une variable globale avec
lecture de cette variable un autre endroit relve totalement de la responsabilit de
l'utilisateur / du constructeur de la machine-outil.

Programmation CN flexible
1.1 Variables
Notions complmentaires
34 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.1.8 Attribut : valeurs limites (LLI, ULI)
Une valeur limite suprieure et infrieure de la plage de dfinition peut uniquement tre
prdfinie pour les types de donnes suivants :
INT
REAL
CHAR
Dfinition (DEF) de variables utilisateur : valeurs limites et valeurs d'initialisation implicites
Si aucune valeur d'initialisation explicite n'est dfinie lors de la dclaration d'une variable
utilisateur de l'un des types de donnes prcits, la valeur d'initialisation implicite du type de
donnes est affecte la variable :
INT : 0
REAL : 0.0
CHAR : 0
Si la valeur d'initialisation implicite se situe en dehors de la plage de dfinition dtermine
par les valeurs limites programmes, la variable est initialise avec la valeur limite la plus
proche de la valeur d'initialisation implicite :
Valeur d'initialisation implicite < valeur limite infrieure (LLI)
valeur d'initialisation = valeur limite infrieure
Valeur d'initialisation implicite > valeur limite suprieure (ULI)
valeur d'initialisation = valeur limite suprieure
Exemples :

Code de programme Commentaire
DEF REAL GUD1 ;
;
;
;
Valeur limite infrieure = limite de la plage de
dfinition
Valeur limite suprieure = limite de la plage de
dfinition
Aucune valeur d'initialisation programme
=> valeur d'initialisation implicite = 0.0
DEF REAL LLI 5.0 GUD2 ;
;
;
Valeur limite infrieure = 5.0
Valeur limite suprieure = limite de la plage de
dfinition
=> Valeur d'initialisation = 5.0
DEF REAL ULI 5 GUD3 ;
;
;
Valeur limite infrieure = limite de la plage de
dfinition
Valeur limite suprieure = -5.0
=> Valeur d'initialisation = -5.0
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 35
Redfinition (REDEF) de variables utilisateur : valeurs limites et valeurs relles actuelles
Si lors de la redfinition des valeurs limites d'une variable utilisateur, celles-ci sont modifies
de sorte ce que la valeur relle actuelle se situe en dehors de la nouvelle plage de
dfinition, une alarme est mise et les valeurs limites ne sont pas appliques.

Remarque
Redfinition (REDEF) de variables utilisateur
Lors de la redfinition des valeurs limites d'une variable utilisateur, il faut veiller la
modification cohrente des valeurs suivantes :
Valeurs limites
Valeur relle
Valeur d'initialisation lors de la redfinition et de la rinitialisation automatique sur la base
de INIPO, INIRE ou INICF

1.1.9 Attribut : unit physique (PHU)
Une unit physique peut uniquement tre prdfinie pour des variables possdant l'un des
types de donnes suivants :
INT
REAL
Units physiques programmables (PHU)
L'unit physique est spcifie en tant que nombre virgule fixe : PHU <unit>
Les units physiques suivantes peuvent tre programmes :

<Unit> Signification Unit physique
0 Pas d'unit physique -
1 Position linaire ou angulaire
1)2)
[ mm ], [ pouce ], [ degr ]
2 Position linaire
2)
[ mm ], [ pouce ]
3 Position angulaire [ degr ]
4 Vitesse linaire ou angulaire
1)2)
[ mm/min ], [ pouce/min ], [ tr/min ]
5 Vitesse linaire
2)
[mm/min]
6 Vitesse angulaire [tr/min]
7 Acclration linaire ou angulaire
1)2)
[ m/s
2
], [ pouce/s
2
], [ tr/s
2
]
8 Acclration linaire
2)
[ m/s
2
], [ pouce/s
2
]
9 Acclration angulaire [ tr/s
2
]
10 A-coup linaire ou angulaire
1)2)
[ m/s
3
], [ pouce/s
3
], [ tr/s
3
]
11 -coup linaire
2)
[ m/s
3
], [ pouce/s
3
]
12 -coup angulaire [ tr/s
3
]
13 Temporisation [ s ]
14 Gain du rgulateur de position [ 16.667/s ]
Programmation CN flexible
1.1 Variables
Notions complmentaires
36 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
<Unit> Signification Unit physique
15 Avance par tour
2)
[ mm/tr ], [ pouce/tr ]
16 Compensation de temprature
1)2)
[ mm ], [ pouce ]
18 Force [ N ]
19 Masse [ kg ]
20 Moment d'inertie
3)
[ kgm
2
]
21 Pour cent [ % ]
22 Frquence [Hz]
23 Tension [V]
24 Courant [A]
25 Temprature [ C ]
26 Angle [ degr ]
27 Gain [ 1000/min ]
28 Position linaire ou angulaire
3)
[ mm ], [ pouce ], [ degr ]
29 Vitesse de coupe
2)
[ m/min ], [ pied/min ]
30 Vitesse priphrique
2)
[ m/s], [ pied/s ]
31 Rsistance [ Ohm ]
32 Inductance [ mH ]
33 Couple
3)
[Nm]
34 Constante du couple
3)
[ Nm/A ]
35 Gain du rgulateur de courant [ V/A ]
36 Gain de vitesse de rotation
3)
[ Nm/(rad*s) ]
37 Vitesse de rotation [tr/min]
42 Puissance [kW]
43 Courant faible [ A ]
46 Couple faible
3)
[ Nm ]
48 Pour mille -
49 - [ Hz/s ]
65 Dbit [ l/min ]
66 pression [ bar ]
67 Volumes
3)
[ cm
3
]
68 Gain du systme
3)
[ mm/(V*min) ]
69 Gain du systme pour rgulateur de couple [ N/V ]
155 Pas de vis
3)
[ mm/tr ], [ pouce/tr ]
156 Modification du pas de vis
3)
[ mm/tr / tr ], [ pouce/tr / tr]
1) L'unit physique dpend du type d'axe : axe linaire ou rotatif
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 37
<Unit> Signification Unit physique
2) Commutation du systme de coordonnes
G70/G71(inch/mtrique)
Aprs une commutation du systme de base (MD10240 $MN_SCALING_SYSTEM_IS_METRIC)
avec G70/G71, aucune conversion des valeurs (valeur relle, valeur par dfaut et valeurs limites)
n'est effectue lors d'accs d'criture/de lecture des variables systme et utilisateur relatives des
longueurs
G700/G710(inch/mtrique)
Aprs une commutation du systme de base (MD10240 $MN_SCALING_SYSTEM_IS_METRIC)
avec G700/G710, une conversion des valeurs (valeur relle, valeur par dfaut et valeurs limites) est
effectue lors d'accs d'criture/de lecture des variables systme et utilisateur relatives des
longueurs
3) La variable n'est pas convertie automatiquement dans le systme de coordonnes actuel de la CN
(en pouce/mtrique). La conversion relve de l'entire responsabilit de l'utilisateur / constructeur de
la machine.


Remarque
Dpassement de niveaux d aux conversions de format
Le format de stockage interne de l'ensemble des variables utilisateur (GUD / PUD / LUD)
exprimes en units physiques de longueur est mtrique. Une utilisation excessive de telles
variables lors de l'excution de la NCK, p. ex. durant des actions synchrones, risquerait de
provoquer un dpassement de la dure de calcul du niveau de l'interpolateur en cas de
changement de systme de coordonnes, ce qui conduirait l'mission de l'alarme 4240.



IMPORTANT
Compatibilit d'units
La compatibilit des units concernes n'est pas vrifie lors de l'utilisation de variables
(affectation, comparaison, calcul, etc.). Une ventuelle conversion requise relve
exclusivement de la responsabilit de l'utilisateur / constructeur de la machine.

Programmation CN flexible
1.1 Variables
Notions complmentaires
38 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.1.10 Attribut : droits d'accs (APR, APW, APRP, APWP, APRB, APWB)
Les niveaux de protection suivants, indiquer lors de la programmation, correspondent aux
diffrents droits d'accs :

Droit d'accs Niveau de protection
Mot de passe systme 0
Mot de passe constructeur 1
Mot de passe maintenance 2
Mot de passe utilisateur final 3
Commutateur cl, position 3 4
Commutateur cl, position 2 5
Commutateur cl, position 1 6
Commutateur cl, position 0 7
Dfinition (DEF) de variables utilisateur
Il est possible de dfinir des droits d'accs (APR... / APW...) pour les variables suivantes :
Donnes utilisateur globales (GUD)
Redfinition (REDEF) de variables systme et de variables utilisateur
Il est possible de redfinir des droits d'accs (APR... / APW...) pour les variables suivantes :
Donnes systme
Paramtres machine
Donnes de rglage
FRAME
Donnes process
Compensation d'erreur de pas de vis de transmission (EEC)
Compensation de la flexion (CEC)
Compensation des dfauts aux transitions entre quadrants (QEC)
Donnes de magasin
Donnes d'outil
Zones de protection
Organes porte-outil orientables
Chanes cinmatiques
Zones de protection 3D
Limitation de la zone de travail
Donnes outil ISO
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 39
Donnes utilisateur
Paramtre R
Variable action synchrone ($AC_MARKER, $AC_PARAM, $AC_TIMER)
Variable GUD action synchrone (SYG_xy[ ], avec x=R, I, B, A, C, S et y=S, M, U, 4,
..., 9)
Paramtre EPS
Donnes outil OEM
Donnes magasin OEM
Variables utilisateur globales (GUD)



Remarque
Lors de la redfinition, vous pouvez attribuer le droit d'accs une variable
quelconque comprise entre le niveau de protection le plus faible, savoir 7, et son
propre niveau de protection, p. ex. 1 (constructeur de la machine).

Redfinition (REDEF) d'instructions en language de programmation CN
Il est possible de redfinir le droit d'accs ou d'excution (APX) pour les instructions en
language de programmation CN suivantes :
Fonctions G / fonctions prparatoires
Bibliographie :
/PG/ Manuel de programmation Notions de base ; chapitre : Fonctions G / fonctions
prparatoires
Fonctions prdfinies
Bibliographie :
/PG/ Manuel de programmation Notions de base ; chapitre : Fonctions prdfinies
Appels de sous-programmes prdfinis
Bibliographie :
/PG/ Manuel de programmation Notions de base ; chapitre : Appels de sous-programmes
prdfinis
Instruction DO pour les actions synchrones
Descripteurs de cycles dans un programme
Le cycle doit tre enregistr dans un rpertoire de cycles et contenir une instruction
PROC.
Programmation CN flexible
1.1 Variables
Notions complmentaires
40 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Droits d'accs concernant les programmes pice et les cycles (APRP, APWP)
Les diffrents droits d'accs dans un programme pice ou dans un cycle sont les suivants :
APRP 0 / APWP 0
L'excution du programme pice requiert le mot de passe systme.
Le cycle doit tre enregistr dans le rpertoire _N_CST_DIR (systme)
Pour le rpertoire _N_CST_DIR, le droit d'excution doit tre dfini sur Systme dans
le paramtre machine MD11160 $MN_ACCESS_EXEC_CST
APRP 1 / APWP 1 ou APRP 2 / APWP 2
Lors de l'excution du programme pice, le mot de passe du constructeur de la
machine ou du service de maintenance doit tre dfini.
Le cycle doit tre enregistr dans le rpertoire _N_CMA_DIR (constructeur de la
machine) ou _N_CST_DIR.
Pour les rpertoires _N_CMA_DIR ou _N_CST_DIR, les droits d'excution doivent tre
dfinis au moins pour le constructeur de la machine dans les paramtres machine
MD11161 $MN_ACCESS_EXEC_CMA ou MD11160 $MN_ACCESS_EXEC_CST.
APRP 3 / APWP 3
Lors de l'excution du programme pice, le mot de passe de l'utilisateur final doit tre
dfini
Le cycle doit tre enregistr dans le rpertoire _N_CUS_DIR (utilisateur),
_N_CMA_DIR ou _N_CST_DIR
Pour les rpertoires _N_CUS_DIR, _N_CMA_DIR ou _N_CST_DIR, les droits
d'excution doivent tre dfinis au moins pour l'utilisateur final dans les paramtres
machine MD11162 $MN_ACCESS_EXEC_CUS, MD11161
$MN_ACCESS_EXEC_CMA ou MD11160 $MN_ACCESS_EXEC_CST.
APRP 4...7 / APWP 4...7
L'excution du programme pice requiert la position 3 ... 0 du commutateur cl
Le cycle doit tre enregistr dans le rpertoire _N_CUS_DIR, _N_CMA_DIR ou
_N_CST_DIR
Pour les rpertoires _N_CUS_DIR, _N_CMA_DIR ou _N_CST_DIR, les droits
d'excution doivent tre dfinis au moins pour la position correspondante du
commutateur cl dans les paramtres machine MD11162
$MN_ACCESS_EXEC_CUS, MD11161 $MN_ACCESS_EXEC_CMA ou MD11160
$MN_ACCESS_EXEC_CST.
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 41
Droits d'accs concernant BTSS (APRB, APWB)
Les droits d'accs (APRB, APWB) restreignent l'accs via BTSS aux variables systme et
variables utilisateur de la mme manire pour tous les composants systme (IHM, AP,
ordinateurs externes, services EPS, etc.).

Remarque
Droits d'accs IHM locaux
Lors de la modification des droits d'accs de donnes systme, vous devez veillez ce
qu'elle s'effectue de faon cohrente avec les droits d'accs dfinis par les mcanismes
IHM.

Attributs d'accs APR / APW
Pour des raisons de compatibilit, les attributs APR et APW sont reprsents de manire
implicite sur les attributs APRP / APRB et APWP / APWB :
APR x APRP x APRB x
APW y APWP y APWB y
Paramtrage des droits d'accs au moyen de fichiers ACCESS
Lorsque vous utilisez des fichiers ACCES pour l'attribution de droits d'accs, la
programmation d'une redfinition de ces droits pour les donnes systme, donnes
utilisateur et instructions en language de programmation CN est seulement encore possible
dans ces fichiers ACCESS. Les donnes utilisateur globales (GUD) constituent une
exception. Si une redfinition des droits d'accs s'avre ncessaire pour celles-ci, elle doit
toujours tre programme dans les fichiers de dfinition correspondants.
Pour une protection d'accs continue, les paramtres machine doivent tre adapts de faon
cohrente pour les droits d'excution et le droit d'accs des rpertoires correspondants.
Il en rsulte la marche suivre de principe suivante :
Cration des fichiers de dfinition requis :
_N_DEF_DIR/_N_SACCESS_DEF
_N_DEF_DIR/_N_MACCESS_DEF
_N_DEF_DIR/_N_UACCESS_DEF
Paramtrage du droit d'accs pour les fichiers de dfinition la valeur requise pour la
redfinition :
MD11170 $MN_ACCESS_WRITE_SACCESS
MD11171 $MN_ACCESS_WRITE_MACCESS
MD11172 $MN_ACCESS_WRITE_UACCESS
Programmation CN flexible
1.1 Variables
Notions complmentaires
42 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
L'accs depuis des cycles des lments protgs ncessite l'adaptation des droits
d'excution et des droits d'criture aux rpertoires _N_CST_DIR, _N_CMA_DIR et
_N_CST_DIR de ces cycles :
Droits d'excution
MD11160 $MN_ACCESS_EXEC_CST
MD11161 $MN_ACCESS_EXEC_CMA
MD11162 $MN_ACCESS_EXEC_CUS
Droits d'criture
MD11165 $MN_ACCESS_WRITE_CST
MD11166 $MN_ACCESS_WRITE_CMA
MD11167 MN_ACCESS_WRITE_CUS
Le droit d'excution doit tre dfini au moins au mme niveau de protection que le niveau
de protection le plus lev de l'lment utilis.
Le droit d'criture doit tre dfini au moins au mme niveau de protection que le droit
d'excution.
Les droits d'criture des rpertoires des cycles pour l'IHM locale doivent tre dfinis au
mme niveau de protection que les rpertoires des cycles de la CN locale.
Bibliographie
/BAD/ Manuel d'utilisation HMI-Advanced,
Chapitre : Groupe fonctionnel Services > Gestion des donnes > Modification des
proprits
Appels de sous-programmes dans des fichiers ACCESS
Pour une meilleure structuration de la protection d'accs, il est possible d'appeler galement
des sous-programmes (extension SPF ou MPF) dans les fichiers ACCESS. Les droits
d'accs du fichier ACCESS appelant sont alors attribus ces sous-programmes.

Remarque
Seuls les droits d'accs peuvent tre redfinis dans les fichiers ACCESS. La programmation
ou la redfinition de tous les autres attributs doit toujours encore s'effectuer dans les fichiers
de dfinition correspondants.

Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 43
1.1.11 Vue d'ensemble des attributs dfinissables et redfinissables
Les tableaux suivants indiquent pour quels types de donnes il est possible de dfinir (DEF)
et/ou redfinir (REDEF) les diffrents attributs.
Donnes systme

Type de paramtre Valeur initiale Valeurs limites Unit physique Droits d'accs
Paramtres machine --- --- ---
REDEF
Donnes de rglage
REDEF
--- ---
REDEF
Donnes FRAME --- --- ---
REDEF
Donnes process --- --- ---
REDEF
Compensation d'erreur de pas de vis de
transmission (EEC)
--- --- ---
REDEF
Compensation de la flexion (CEC) --- --- ---
REDEF
Compensation des dfauts aux transitions
entre quadrants (QEC)
--- --- ---
REDEF
Donnes de magasin --- --- ---
REDEF
Donnes d'outil --- --- ---
REDEF
Zones de protection --- --- ---
REDEF
Organes porte-outil orientables --- --- ---
REDEF
Chanes cinmatiques --- --- ---
REDEF
Zones de protection 3D --- --- ---
REDEF
Limitation de la zone de travail --- --- ---
REDEF
Donnes outil ISO --- --- ---
REDEF
Donnes utilisateur

Type de paramtre Valeur initiale Valeurs limites Unit physique Droits d'accs
Paramtre R
REDEF REDEF REDEF REDEF
Variable action synchrone ($AC_...)
REDEF REDEF REDEF REDEF
GUD d'action synchrone (SYG_...)
REDEF REDEF REDEF REDEF
Paramtre EPS
REDEF REDEF REDEF REDEF
Donnes outil OEM
REDEF REDEF REDEF REDEF
Donnes magasin OEM
REDEF REDEF REDEF REDEF
Variables utilisateur globales (GUD)
DEF / REDEF DEF DEF DEF / REDEF
Variables utilisateur locales (PUD / LUD)
DEF DEF DEF
---
Programmation CN flexible
1.1 Variables
Notions complmentaires
44 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.1.12 Dfinition et initialisation de variables de tableau (DEF, SET, REP)
Fonction
Une variable utilisateur peut tre dfinie comme tableau (Array) de 1 3 dimensions au
maximum :
1 dimension : DEF <type de donnes> <nom de variable>[<n>]
2 dimensions : DEF <type de donnes> <nom de variable>[<n>,<m>]
3 dimensions : DEF <type de donnes> <nom de variable>[<n>,<m>,<o>]



Remarque
Les variables utilisateur du type de donnes STRING peuvent tre dfinies comme
tableau 2 dimensions au maximum.

Types de donnes
Les variables utilisateur peuvent tre dfinie comme tableaux pour les types de donnes
suivants : BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME
Affectation de valeur des lments de tableau
Les affectations de valeurs des lments de tableau peuvent tre ralises aux instants
suivants :
Lors de la dfinition du tableau (valeurs d'initialisation)
Pendant l'excution du programme
Les affectations de valeurs peuvent tre ralises par :
Indication explicite d'un lment de tableau
Indication explicite d'un lment de tableau comme lment de dpart et indication d'une
liste de valeurs (SET)
Indication explicite d'un lment de tableau comme lment de dpart et indication d'une
valeur ainsi que de sa frquence d'itration (REP)



Remarque
Il n'est pas possible d'affecter des valeurs d'initialisation des variables utilisateur du
type de donnes FRAME.

Syntaxe (DEF)
DEF <type de donnes> <nom de variable>[<n>,<m>,<o>]
DEF STRING[<longueur de chane>] <nom de variable>[<n>,<m>]
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 45
Syntaxe (DEF...=SET...)
Utilisation d'une liste de valeurs :
Lors de la dfinition :
DEF <type de donnes> <nom de variable>[<n>,<m>,<o>] =
SET(<valeur1>,<valeur2>,...)
Equivaut :
DEF <type de donnes> <nom de variable>[<n>,<m>,<o>]= (<valeur1>,<valeur2>,...)


Remarque
Lors de l'initialisation au moyen d'une liste de valeurs, l'indication de SET est facultative.

Lors d'une affectation de valeur :
<Nom de variable>[<n>,<m>,<o>]=SET(<VALEUR1>,<valeur2>,...)
Syntaxe (DEF...=REP...)
Utilisation d'une valeur avec itration
Lors de la dfinition :
DEF <type de donnes> <nom de variable>[<n>,<m>,<o>]=REP(<Valeur>)

DEF <type de donnes> <nom de variable>[<n>,<m>,<o>] = REP(<valeur>,<nombre
d'lments de tableau>)

Lors d'une affectation de valeur :
<Nom de variable>[<n>,<m>,<o>]=REP(<Valeur>)
<Nom de variable>[<n>,<m>,<o>] = REP(<valeur>,<nombre d'lments de tableau>)
Signification
DEF : Instruction de dfinition des variables
Type de donnes de la variable <type de donnes> :
Plage de valeurs :
Pour les variables systme :
BOOL, CHAR, INT, REAL, STRING, AXIS
Pour les variables GUD et LUD :
BOOL, CHAR, INT, REAL, STRING, AXIS,
FRAME
<longueur de chane> : Nombre maximal de caractres du type de donnes
STRING
<nom de variable> : Nom de variable
[<n>,<m>,<o>] : Dimensions de tableaux ou indices de tableaux
Dimension ou indice pour un tableau 1 dimension <n> :
Type : INT (galement AXIS pour les variables
systme)
Programmation CN flexible
1.1 Variables
Notions complmentaires
46 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Plage de
valeurs :
Dimension de tableau max. :
65535
Indice de tableau : 0 n 65534
Dimension ou indice pour un tableau 2 dimension
Type : INT (galement AXIS pour les variables
systme)
<m> :
Plage de
valeurs :
Dimension de tableau max. :
65535
Indice de tableau : 0 m 65534
Dimension ou indice pour un tableau 3 dimension
Type : INT (galement AXIS pour les variables
systme)
<o> :
Plage de
valeurs :
Dimension de tableau max. :
65535
Indice de tableau : 0 o 65534
SET : Affectation de valeur au moyen de la liste de valeurs
indique
(<valeur1>,<valeur2>,...) : Liste de valeurs
REP : Affectation de valeur au moyen de la <valeur>
indique
<valeur> : Valeur crire dans les lments de tableau lors de
l'initialisation avec REP
<nombre d'lments de tableau> : Nombre d'lments de tableau dcrire avec la
<valeur> indique. Pour les autres lments de
tableau, s'applique selon l'instant :
Initialisation lors d la dfinition du tableau :
Les lments de tableau restant sont dcrits
avec des zros
Affectation pendant l'excution du programme :
Les valeurs courantes des lments de tableau
demeurent inchanges.
Si le paramtre n'est pas programm, tous les
lments de tableau sont dcrits avec <valeur>.
Si le paramtre est gal zro, s'applique selon
l'instant :
Initialisation lors d la dfinition du tableau :
Tous les lments sont mis zro par le
systme.
Affectation pendant l'excution du programme :
Les valeurs courantes des lments de tableau
demeurent inchanges.
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 47
Indice de tableau
L'ordre implicite des lments de tableau, p. ex. lors d'une affectation de valeur via SET ou
REP est dtermin par itration de l'indice de tableau de droite gauche.
Exemple : Initialisation d'un tableau 3 dimensions comportant 24 lments de tableau :

DEF INT FELD[2,3,4] = REP(1,24)

FELD[0,0,0] = 1
1. Elment de champ

FELD[0,0,1] = 1
2. Elment de champ

FELD[0,0,2] = 1
3. Elment de champ

FELD[0,0,3] = 1
4. Elment de champ

...


FELD[0,1,0] = 1
5. Elment de champ

FELD[0,1,1] = 1
6. Elment de champ

...


FELD[0,2,3] = 1
12. Elment de champ

FELD[1,0,0] = 1
13. Elment de champ

FELD[1,0,1] = 1
14. Elment de champ

...


FELD[1,2,3] = 1
24. Elment de champ
Correspond :

FOR n=0 TO 1

FOR m=0 TO 2

FOR o=0 TO 3

FELD[n,m,o] = 1

ENDFOR

ENDFOR
ENDFOR
Programmation CN flexible
1.1 Variables
Notions complmentaires
48 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple : Initialisation de tableaux de variables complets
Pour l'affectation courante, voir la figure.

Code de programme
N10 DEF REAL TABLEAU1[10,3]=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,)
N20 TABLEAU1[0,0]=REP(100)
N30 TABLEAU1[5,0]=REP(-100)
N40 TABLEAU1[0,0]=SET(0,1,2,-10,-11,-12,-20,-20,-20,-30, , , ,-40,-40,-50,-60,-70)
N50 TABLEAU1[8,1]=SET(8.1,8.2,9.0,9.1,9.2)
2
1
N10 :
9.2
8.2
-100
-100
-70
-40
0
-20
-12
2
2
9.1
8.1
-100
-100
-60
-40
0
-20
-11
1
1
9.0
-100
-100
-100
-50
0
-30
-20
-10
0
0
-100
-100
-100
-100
-100
100
100
100
100
100
2
-100
-100
-100
-100
-100
100
100
100
100
100
1
-100
-100
-100
-100
-100
100
100
100
100
100
0
0
0
0
0
0
40
30
20
12
0
2
0
0
0
0
0
40
30
20
11
0
1
0
0
0
0
0
40
30
20
10
0
0
9
8
7
6
5
4
3
2
1
0
N20/N30 : N40/N50 :
lndice de tableau
Les lments de tableau [3,1]
[4,0] ont t initialiss par la
valeur par dfaut (0.0). Les
lments de tableau [6,0]
[8,0] n'ont pas t modifis.
Les lments de tableau
[5,0] [9,2] ont t initialiss
par la valeur par dfaut (0.0).
lnitialisation avec
des valeurs diffrentes
lnitialisation lors de la
dfinition
1,2
lnitialisation avec
des valeurs identiques

Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 49
1.1.13 Dfinition et initialisation de variables de tableau (DEF, SET, REP) :
Informations complmentaires
Informations complmentaires (SET)
Initialisation lors de la dfinition
Le nombre d'lments de tableau correspondant aux lments programms dans la liste
de valeurs sont initialiss avec les valeurs de la liste, commencer par le 1er lment de
tableau.
La valeur 0 est affecte aux lments de tableau sans valeur explicite indique dans la
liste de valeurs (lacunes dans la liste de valeurs).
Des lacunes dans la liste de valeurs ne sont pas admises pour les variables du type de
donnes AXIS.
Si la liste contient davantage de valeurs que d'lments de tableau ne sont dfinis, une
alarme est mise.
Affectation de valeur pendant l'excution du programme
Les rgles dcrites ci-dessus dans le cadre de la dfinition s'appliquent l'affectation de
valeur pendant l'excution du programme. Il existe en outre les possibilits suivantes :
Il est galement possible d'utiliser des expressions comme lments dans la liste de
valeurs.
L'affectation de valeur dbute par l'indice de tableau programm. De cette faon, on peut
affecter des valeurs des tableaux partiels.
Exemple :

Code de programme Commentaire
DEF INT TABLEAU[5,5] ; Dfinition de tableaux
TABLEAU[0,0]=SET(1,2,3,4,5) ; Affectation de valeur aux 5 premiers
lments de tableau [0,0] - [0,4]
FELD[0,0]=SET(1,2, , ,5) ; Affectation de valeur avec lacune aux 5
premiers lments de tableau [0,0] - [0,4],
lments de tableau [0,2] et [0,3] = 0
TABLEAU[2,3]=SET(VARIABLE,4*5.6) ; Affectation de valeur avec une variable et
une expression comme indice de tableau
[2,3] :
[2,3] = VARIABLE
[2,4] = 4 * 5.6 = 22.4
Programmation CN flexible
1.1 Variables
Notions complmentaires
50 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Informations complmentaires (REP)
Initialisation lors de la dfinition
L'ensemble des lments de tableau ou le nombre d'entre eux spcifi de manire
facultative sont initialiss avec la valeur indique (constante).
Les variables du type de donnes FRAME ne peuvent pas tre initialises.
Exemple :

Code de programme Commentaire
DEF REAL varName[10]=REP(3.5,4) ; Initialiser la dfinition de tableau et les
lments de tableau [0] [3] avec la
valeur 3,5

Affectation de valeur pendant l'excution du programme
Les rgles dcrites ci-dessus dans le cadre de la dfinition s'appliquent l'affectation de
valeur pendant l'excution du programme. Il existe en outre les possibilits suivantes :
Il est galement possible d'utiliser des expressions comme lments dans la liste de
valeurs.
L'affectation de valeur dbute par l'indice de tableau programm. De cette faon, on peut
affecter des valeurs des tableaux partiels.
Exemples :

Code de programme Commentaire
DEF REAL varName[10] ; Dfinition de tableaux
varName[5]=REP(4.5,3) ; Elments de tableau [5] [7] = 4,5

R10=REP(2.4,3) ; Paramtre R, R10 R12 = 2,4

DEF FRAME FRM[10] ; Dfinition de tableaux
FRM[5] = REP(CTRANS (X,5)) ; Elments de tableau [5] [9] = CTRANS(X,5)
Programmation CN flexible
1.1 Variables
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 51
Informations complmentaires (gnralits)
Affectations de valeurs des paramtres machine axiaux
Les paramtres machine axiaux possdent par principe un indice de tableau du type de
donnes AXIS. Lors d'affectations de valeurs un paramtre machine axial avec SET ou REP,
cet indice de tableau est ignor ou pas excut.
Exemple : Affectation de valeur au paramtre machine MD36200 $MA_AX_VELO_LIMIT

$MA_AX_VELO_LIMIT[1,AX1]=SET(1.1, 2.2, 3.3)
Correspond :

$MA_AX_VELO_LIMIT[1,AX1]=1.1

$MA_AX_VELO_LIMIT[2,AX1]=2.2

$MA_AX_VELO_LIMIT[3,AX1]=3.3


IMPORTANT
Affectations de valeurs des paramtres machine axiaux
Lors d'affectations de valeurs un paramtre machine axial avecSET ou REP, l'indice de
tableau du type de donnes AXIS est ignor ou pas excut.

Capacit mmoire requise

type de donnes Capacit de mmoire requise par lment
BOOL
1 octet
CHAR
1 octet
INT
4 octets
REAL
8 octets
STRING
(longueur de chane de caractres + 1) octets
FRAME
400 octets, en fonction du nombre d'axes
AXIS
4 octets
Programmation CN flexible
1.1 Variables
Notions complmentaires
52 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.1.14 Types de donnes
Les types de donnes suivants sont disponibles dans la CN :

type de
donnes
Signification Plage de valeurs
INT Valeur entire avec signe -2147483648 ... +2147483647
REAL Nombre rel (LONG REAL selon IEEE) (2,2*10
-308
1,8*10
+308
)
BOOL Valeur boolenne TRUE (1) et FALSE (0) 1, 0
CHAR Caractre ASCII Code ASCII 0 ... 255
STRING Chane de caractres de longueur dfinie au maximum 200 caractres (caractres spciaux
exclus)
AXIS Descripteur d'axe/de broche Descripteur d'axe de canal
FRAME Indications gomtriques pour une transformation
statique de coordonnes (dcalage, rotation, mise
l'chelle, fonction miroir)
---
Conversion implicite du type de donnes
Les conversions suivantes de types de donnes sont possibles et ralises de faon
implicite pour les affectations et transmissions de paramtres :

de / vers REAL INT BOOL
REAL x o &
INT x x &
BOOL x x x
x : Ralisable sans restrictions
o : Risque de perte de donnes par crasement de la plage de valeurs alarme ;
arrondissement : valeur aprs la virgule 0,5 arrondissement la valeur suprieure, valeur aprs
la virgule < 0,5 arrondissement la valeur infrieure
&: valeur 0 TRUE, valeur == 0 FALSE
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 53
1.2 Programmation indirecte
1.2.1 Programmation indirecte d'adresses
Fonction
Dans le cas de la programmation indirecte d'adresses, l'indice d'adresse est remplac par
une variable de type appropri.

Remarque
La programmation indirecte d'adresses est impossible pour :
N (numro de bloc)
L (sous-programme)
Adresses rglables
(par exemple, X[1] au lieu de X1 n'est pas autoris)

Syntaxe
<ADRESSE>[<indice>]
Signification

<ADRESSE>[...] : Adresse fixe avec extension (indice)
<indice> : Variable telle que n de broche, axe, etc.
Exemples
Exemple 1 : Programmation indirecte d'un numro de broche
Programmation directe :

Code de programme Commentaire
S1=300 ; Vitesse de rotation de 300 tr/min pour la broche avec le
numro 1

Programmation indirecte :

Code de programme Commentaire
DEF INT NUMBRO=1 ; Dfinition des variables de type INT et affectation de
valeur
S[SPINU]=300 ; Vitesse de rotation de 300 tr/min pour la broche dont le
numro est consign dans la variable SPINU (dans cet
exemple, la broche avec le numro 1)
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
54 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 2 : Programmation indirecte d'un axe
Programmation directe :

Code de programme Commentaire
FA[U]=300 ; Avance de 300 pour l'axe "U"

Programmation indirecte :

Code de programme Commentaire
DEF AXIS AXVAR2=U ; Dfinition d'une variable de type AXIS et affectation de
valeur
FA[AXVAR2]=300 ; Avance de 300 pour l'axe dont le nom d'adresse est consign
dans la variable AXVAR2

Exemple 3 : Programmation indirecte d'un axe
Programmation directe :

Programmation Commentaire
$AA_MM[X] ; Lecture de la valeur de mesure du palpeur (SCM) de l'axe "X"

Programmation indirecte :

Code de programme Commentaire
DEF AXIS AXVAR3=X ; Dfinition d'une variable de type AXIS et affectation de
valeur
$AA_MM[AXVAR3] ; Lecture de la valeur de mesure du palpeur (SCM) de l'axe
dont le nom est consign dans la variable AXVAR3

Exemple 4 : Programmation indirecte d'un axe
Programmation directe :

Code de programme
X1=100 X2=200

Programmation indirecte :

Code de programme Commentaire
DEF AXIS AXVAR1 AXVAR2 ; Dfinition de deux variables de type AXIS
AXVAR1=(X1) AXVAR2=(X2) ; Affectation des noms d'axe
AX[AXVAR1]=100 AX[AXVAR2]=200 ; Dplacement des axes dont les noms d'adresse
sont consigns dans les variables AXVAR1 et
AXVAR2
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 55
Exemple 5 : Programmation indirecte d'un axe
Programmation directe :

Code de programme
G2 X100 I20

Programmation indirecte :

Code de programme Commentaire
DEF AXIS AXVAR1=X ; Dfinition d'une variable de type AXIS et
affectation de valeur
G2 X100 IP[AXVAR1]=20 ; Programmation indirecte du centre de l'axe dont
le nom d'adresse est consign dans la variable
AXVAR1

Exemple 6 : Programmation indirecte d'lments de tableau
Programmation directe :

Code de programme Commentaire
DEF INT TABLEAU1[4,5] ; Dfinition du tableau 1

Programmation indirecte :

Code de programme Commentaire
DEFINE DIM1 AS 4 ; Les dimensions de tableau sont indiquer comme
valeurs fixes.
DEFINE DIM2 AS 5
DEF INT TABLEAU[DIM1,DIM2]
TABLEAU[DIM1-1,DIM2-1]=5

Exemple 7 : Appel indirect de sous-programme

Code de programme Commentaire
CALL "L" << R10 ; Appel du programme dont le numro figure dans R10
(concatnation de chanes de caractres)
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
56 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.2.2 Programmation indirecte de codes G
Fonction
La programmation indirecte des codes G permet une programmation efficace des cycles.
Syntaxe
G[<groupe>]=<numro>
Signification

G[...] : Instruction G avec extension (indice)
Paramtre d'indice : groupe de fonctions G <groupe> :
Type : INT
Variable du numro de code G <numro> :
Type : INT ou REAL


Remarque
En rgle gnrale, seuls des codes G non dterminants pour la syntaxe peuvent tre
programms indirectement.
Parmi les codes G dterminants pour la syntaxe, seuls ceux du groupe de fonctions G 1 sont
possibles.
Les codes G dterminants pour la syntaxe des groupes de fonction 2, 3 et 4 ne sont pas
possibles.

Remarque
La programmation indirecte des codes G n'admet pas les fonctions arithmtiques. Le calcul
du numro de code G doit s'effectuer dans une ligne distincte du programme pice, avant sa
programmation indirecte.

Exemples
Exemple 1 : Dcalage d'origine rglable (groupe de fonctions G "8")

Code de programme Commentaire
N1010 DEF INT INT_VAR
N1020 INT_VAR=2
...
N1090 G[8]=INT_VAR G1 X0 Y0 ; G54
N1100 INT_VAR=INT_VAR+1 ; Calcul du code G
N1110 G[8]=INT_VAR G1 X0 Y0 ; G55

Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 57
Exemple 2 : Slection du plan (groupe de fonctions G "6")

Code de programme Commentaire
N2010 R10=$P_GG[6] ; Lecture de la fonction G active du groupe
de fonctions G "6"
...
N2090 G[6]=R10
Bibliographie
Pour des informations sur les groupes de fonctions G, voir :
Manuel de programmation Notions de base, chapitre "Groupes de fonctions G"
1.2.3 Programmation indirecte d'attributs de position (PB)
Fonction
Les attributs de position tels que la programmation relative ou absolue de la position d'axe
peuvent tre programms indirectement en tant que variables, en liaison avec le mot cl GP.
Application
La programmation indirecte d'attributs de position s'utilise dans les cycles de substitution,
car elle prsente alors les avantages suivants par rapport la programmation des attributs
de position comme mot cl (IC, AC, etc.)
Avec la programmation indirecte comme variables, aucune instruction CASE n'est ncessaire
pour accder tous les attributs de position possibles.
Syntaxe
<INSTRUCTION DE POSITIONNEMENT>[<axe/broche>]=
GP(<position>,<attribut de position>)
<Axe/broche>=GP(<position>,<attribut de position>)
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
58 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

<INSTRUCTION DE
POSITIONNEMENT>[] :
Les instructions de positionnement suivantes peuvent
tre programmes avec le mot cl GP :
POS, POSA,SPOS, SPOSA
Autres possibilits :
Tous les descripteurs d'axe/broche prsents dans le
canal :
<Axe/broche>
Descripteur d'axe/broche variable AX
<axe/broche> : Axe/broche positionner
GP() : Mot cl pour le positionnement
<position> : Paramtre 1
Position d'axe/broche comme constante ou variable
<attribut de position> : Paramtre 2
Attribut de position (par exemple le mode d'accostage
de la position) comme variable (par exemple
$P_SUB_SPOSMODE) ou comme mot cl (IC, AC,
etc.)

Les valeurs fournies par les variables ont la signification suivante :

Valeur Signification Admis pour :
0 Aucune modification de l'attribut de
position

1 AC POS, POSA,SPOS, SPOSA,AX, adresse d'axe
2 IC POS, POSA,SPOS, SPOSA,AX, adresse d'axe
3 DC POS, POSA,SPOS, SPOSA,AX, adresse d'axe
4 ACP POS, POSA,SPOS, SPOSA,AX, adresse d'axe
5 ACN POS, POSA,SPOS, SPOSA,AX, adresse d'axe
6 OC -
7 PC -
8 DAC POS, POSA,AX, adresse d'axe
9 DIC POS, POSA,AX, adresse d'axe
10 RAC POS, POSA,AX, adresse d'axe
11 RIC POS, POSA,AX, adresse d'axe
12 CAC POS, POSA
13 CIC POS, POSA
14 CDC POS, POSA
15 CACP POS, POSA
16 CACN POS, POSA
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 59
Exemple
En cas de couplage actif de broches synchrones entre la broche pilote S1 et la broche
asservie S2, l'instruction SPOS appelle le cycle de substitution suivant pour le positionnement
des broches dans le programme principal.
Le positionnement est effectu par l'instruction de N2230 :
SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
La position accoster est lue dans la variable systme $P_SUB_SPOSIT et le mode
d'accostage de la position dans la variable systme $P_SUB_SPOSMODE.

Code de programme Commentaire
N1000 PROC LANG_SUB DISPLOF SBLOF
...
N2100 IF($P_SUB_AXFCT==2)
N2110 ; Substitution de l'instruction SPOS / SPOSA / M19
en cas de couplage actif de broches synchrones
N2185 DELAYFSTON ; Dbut de la plage d'arrt temporis
N2190 COUPOF(S2,S1) ; Dsactivation du couplage de broches synchrones
N2200 ; Positionnement de la broche pilote et de la
broche asservie
N2210 IF($P_SUB_SPOS==TRUE) OR
($P_SUB_SPOSA==TRUE)

N2220 ; Positionnement de broche avec SPOS :
N2230 SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
N2250 ELSE
N2260 ; Positionnement de broche avec M19 :
N2270 M1=19 M2=19 ; Positionnement de la broche pilote et de la
broche asservie
N2280 ENDIF
N2285 DELAYFSTOF ; Fin de la plage d'arrt temporis
N2290 COUPON(S2,S1) ; Activation du couplage de broches synchrones
N2410 ELSE
N2420 ; Interrogation de l'existence d'autres
substitutions
...
N3300 ENDIF
...
N9999 RET
Conditions marginales
Dans les synchronisations, la programmation indirecte des attributs de position est
impossible.
Programmation CN flexible
1.2 Programmation indirecte
Notions complmentaires
60 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Bibliographie
Description fonctionnelle Fonctions de base ; GMF, Canal, Mode de programme,
Comportement au reset (K1),
chapitre : Substitution de fonctions CN par des sous-programmes
1.2.4 Programmation indirecte de lignes de programme pice (EXECSTRING)
Fonction
Une variable chane de caractres cre au pralable peut tre excute en tant que ligne
de programme pice au moyen de l'instruction EXECSTRING.
Syntaxe
EXECSTRING est programme dans une ligne spcifique du programme pice :
EXECSTRING (<variable de type STRING>)
Signification
EXECSTRING : Instruction pour l'excution d'une variable chane de caractres
en tant que ligne de programme pice
<variable de type
STRING> :
Variable du type STRING dans laquelle figure la ligne de
programme pice excuter proprement dite

Remarque
Tous les lments susceptibles d'tre programms dans une section d'un programme pice
peuvent tre transmis avec EXECSTRING. Les instructions PROC et DEF et, d'une manire
gnrale, l'utilisation dans des fichiers INI et DEF en sont exclues.

Exemple
Code de programme Commentaire
N100 DEF STRING[100] BLOCK ; Dfinition des variables chanes de caractres
pour la prise en compte des lignes de programme
pice excuter.
N110 DEF STRING[10] MFCT1="M7"
...
N200 EXECSTRING(MFCT1 << "M4711") ; Excution de la ligne "M7 M4711" du programme
pice.
...
N300 R10=1
N310 BLOC="M3"
N320 IF(R10)
N330 BLOCK = BLOCK << MFCT1
N340 ENDIF
N350 EXECSTRING(BLOCK) ; Excution de la ligne "M3 M7" du programme
pice.
Programmation CN flexible
1.3 Fonctions de calcul
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 61
1.3 Fonctions de calcul
Fonction
Les fonctions de calcul sont applicables en priorit aux paramtres R et aux variables (ou
constantes et fonctions) de type REAL. Les types INT et CHAR sont galement admis.

Oprateur arithmtique /
fonction de calcul
Signification
+
Addition
-
Soustraction
*
Multiplication
/
Division
Attention :
(type INT)/(type INT)=(type REAL) ; Exemple : 3/4 = 0.75
DIV
Division, pour types de variable INT et REAL
Attention :
(type INT)DIV(type INT)=(type INT) ; Exemple : 3 DIV 4 = 0
MOD
La division modulo (uniquement pour le type INT) fournit le
reste d'une division INT.
Exemple : 3 MOD 4 = 3
:
Oprateur de concatnation (pour variables de type
FRAME)
Sin()
Sinus
COS()
Cosinus
TAN()
Tangente
ASIN()
Arc sinus
ACOS()
Arc cosinus
ATAN2( , )
Arc tangente 2
SQRT( )
Racine carre
ABS( )
Valeur absolue
POT( )
2. Puissance (carr)
TRUNC( )
Partie entire
Prcision rglable avec TRUNC( ) dans les instructions
relationnelles (voir "Correction de la prcision pour les
erreurs relationnelles (TRUNC) (Page 66)")
ROUND()
arrondir un nombre entier
LN( )
Logarithme naturel
EXP( )
Fonction exponentielle
MINVAL()
valeur la plus petite de deux variables
(voir "Minimum, maximum et plage de variables (MINVAL,
MAXVAL, BOUND) (Page 68)")
Programmation CN flexible
1.3 Fonctions de calcul
Notions complmentaires
62 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
MAXVAL()
valeur la plus grande de deux variables
(voir "Minimum, maximum et plage de variables (MINVAL,
MAXVAL, BOUND) (Page 68)")
BOUND()
valeur de variable se trouvant dans la plage de valeurs
dfinie
(voir "Minimum, maximum et plage de variables (MINVAL,
MAXVAL, BOUND) (Page 68)")
CTRANS()
Dcalage
CROT ()
Rotation
CSCALE ()
Changement d'chelle
CMIRROR ()
Fonction miroir
Programmation
La notation mathmatique usuelle est valable pour les fonctions de calcul. Les priorits de
traitement sont fixes par des parenthses. Les fonctions trigonomtriques et leurs inverses
emploient la notation en degrs (angle droit = 90).
Exemples
Exemple 1 : ATAN2

2me vecteur
2me vecteur
angle = 20.8455
angle = 159.444
R3=ATAN2(30,-80)
R3=ATAN2(30.5,80.1)
30
-80
30.5
80.1
1
e
r

v
e
c
t
e
u
r
1
e
r

v
e
c
t
e
u
r
A partir de deux vecteurs orthogonaux, la
fonction de calcul ATAN2 dtermine l'angle
du vecteur somme.
Le rsultat s'inscrit dans la plage des quatre
quadrants (-180 < 0 < +180).
La base de la rfrence angulaire est
toujours reprsente par la 2me valeur
dans le sens positif.

Programmation CN flexible
1.3 Fonctions de calcul
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 63
Exemple 2 : Initialisation de tableaux de variables complets

Code de programme Commentaire
R1=R1+1 ; Nouveau R1 = ancien R1 +1
R1=R2+R3 R4=R5-R6 R7=R8*R9
R10=R11/R12 R13=SIN(25.3)
R14=R1*R2+R3 ; La multiplication est prioritaire.
R14=(R1+R2)*R3 ; Les parenthses sont traites en priorit.
R15=SQRT(POT(R1)+POT(R2)) ; Les parenthses internes sont leves d'abord.
R15 = racine carre de (R1+R2)
RESFRAME=FRAME1:FRAME2
FRAME3=CTRANS():CROT()
; L'oprateur de concatnation combine des frames
en
un frame rsultant ou
assigne des valeurs aux composantes de frame.
Programmation CN flexible
1.4 Oprations relationnelles et oprations logiques
Notions complmentaires
64 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.4 Oprations relationnelles et oprations logiques
Fonction
Les oprations relationnelles peuvent servir par exemple formuler une condition de saut
dans le programme. Elles s'appliquent galement aux expressions complexes.
Les oprations relationnelles sont applicables aux variables de type CHAR, INT, REAL et BOOL.
Avec le type CHAR, la valeur de code est compare.
Pour les types STRING, AXIS et FRAME, sont possibles : == et <> qui peuvent aussi tre
employs pour les oprations de type STRING, y compris dans des actions synchrones.
Le rsultat d'oprations relationnelles est toujours du type BOOL.
Les oprateurs logiques servent la combinaison de valeurs boolennes.
Les oprations logiques s'appliquent exclusivement aux variables du type BOOL. Avec la
conversion de type interne, ils sont galement applicables aux types de donnes CHAR, INT
et REAL.
Avec les oprations logiques (boolennes) sont valables, pour les types de donnes BOOL,
CHAR, INT et REAL :
0 correspond : FALSE
valeur diffrente de 0 correspond : TRUE
Oprateurs logiques sur bits
Les variables des types CHAR et INT permettent galement d'effectuer des oprations
logiques sur bits. Le cas chant, il est procd une conversion automatique de type.
Programmation

Oprateur de comparaison Signification
==
gal
<>
diffrent de
>
suprieur
<
infrieur
>=
suprieur ou gal
<=
infrieur ou gal


Oprateur logique Signification
AND
ET
OR
OU
NOT
Ngation
XOR
OU exclusif


Programmation CN flexible
1.4 Oprations relationnelles et oprations logiques
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 65
Oprateur logique sur bits Signification
B_AND
ET sur bits
B_OR
OU sur bits
B_NOT
Ngation sur bits
B_XOR
OU exclusif sur bits


Remarque
Des parenthses places dans les expressions arithmtiques permettent de fixer un ordre
des oprations diffrent des rgles normales de priorit.

Remarque
Entre les oprandes boolens et les oprateurs doivent figurer des espacements.

Remarque
L'oprateur B_NOT ne se rapporte qu' un seul oprande qui suit l'oprateur.

Exemples
Exemple 1 : oprateurs relationnels
IF R10>=100 GOTOF DESTINATION
ou
R11=R10>=100
IF R11 GOTOF DESTINATION
Le rsultat de la comparaison R10>=100 est d'abord mmoris dans R11.

Exemple 2 : Oprateurs logiques
IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF DESTINATION
ou
IF NOT R10 GOTOB DEPART
L'oprateur NOT ne se rapporte qu' un seul oprande.

Exemple 3 : Oprateurs logiques sur bits
IF $MC_RESET_MODE_MASK B_AND 'B10000' GOTOF ACT_PLANE
Programmation CN flexible
1.5 Correction de la prcision pour les erreurs relationnelles (TRUNC)
Notions complmentaires
66 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.5 Correction de la prcision pour les erreurs relationnelles (TRUNC)
Fonction
L'instruction TRUNC ampute l'oprande de la multiplication par un facteur de prcision.
Prcision rglable dans les instructions relationnelles
En interne, les donnes de type REAL du programme pice sont reprsentes par 64 bits en
format IEEE. De ce fait, les nombres dcimaux ne peuvent pas tre reprsents de manire
prcise et leur comparaison avec des valeurs calcules de faon idale peut conduire des
rsultats inattendus.
Egalit relative
Afin que les imprcisions causes par le format de reprsentation ne faussent pas le flux du
programme, les instructions relationnelles ne vrifient pas l'galit absolue, mais l'galit
relative.
Syntaxe
Correction de la prcision pour les erreurs relationnelles
TRUNC (R1*1000)
Signification

TRUNC : troncature des dcimales
Prise en compte d'une galit relative de 10
-12
pour
Egalit : (==)
Diffrence : (<>)
Suprieur ou gal : (>=)
Infrieur ou gal : (<=)
Suprieur/infrieur : (><) avec galit absolue
Suprieur : (>)
Infrieur : (<)
Compatibilit
Pour des raisons de compatibilit, le contrle d'galit relative de (>) et (<) peut tre
dsactiv par dfinition du paramtre machine MD10280 $MN_ PROG_FUNCTION_MASK
Bit0 = 1.

Remarque
Pour les raisons qui ont t cites, les comparaisons avec des donnes du type REAL
connaissent d'une manire gnrale une certaine imprcision. Lorsque les carts ne sont
pas acceptables, vous devez effectuer des calculs de type INTEGER en multipliant les
oprandes par un facteur de prcision, puis en les amputant avec TRUNC.

Programmation CN flexible
1.5 Correction de la prcision pour les erreurs relationnelles (TRUNC)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 67
Actions synchrones
Ce qui a t dcrit pour les instructions relationnelles est aussi valable pour les actions
synchrones.
Exemples
Exemple 1 : considrations relatives la prcision

Code de programme Commentaire
N40 R1=61.01 R2=61.02 R3=0.01 ; Affectation des valeurs initiales
N41 IF ABS(R2-R1) > R3 GOTOF ERREUR ; Le saut serait excut jusqu'ici.
N42 M30 ; Fin du programme
N43 ERREUR : SETAL(66000) ;
R1=61.01 R2=61.02 R3=0.01 ; Affectation des valeurs initiales
R11=TRUNC(R1*1000) R12=TRUNC(R2*1000)
R13=TRUNC(R3*1000)
; Correction de la prcision
IF ABS(R12-R11) > R13 GOTOF ERREUR ; Le saut n'est plus excut.
M30 ; Fin du programme
ERREUR : SETAL(66000) ;

Exemple 2 : formation et analyse du quotient de deux oprandes

Code de programme Commentaire
R1=61.01 R2=61.02 R3=0.01 ; Affectation des valeurs initiales
IF ABS((R2-R1)/R3)-1) > 10EX-5 GOTOF ERREUR ; Le saut n'est pas excut.
M30 ; Fin du programme
ERREUR : SETAL(66000) ;
Programmation CN flexible
1.6 Minimum, maximum et plage de variables (MINVAL, MAXVAL, BOUND)
Notions complmentaires
68 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.6 Minimum, maximum et plage de variables (MINVAL, MAXVAL,
BOUND)
Fonction
Les instructions MINVAL et MAXVAL permettent de comparer entre elles les valeurs de deux
variables. Le rsultat fourni en retour la valeur la plus petite (pour MINVAL) ou la valeur la plus
grande (pour MAXVAL).
L'instruction BOUND permet de vrifier si la valeur d'une variable tester se trouve dans une
plage de valeurs dfinie.
Syntaxe
<valeur la plus petite>=MINVAL(<variable1>,<variable2>)
<valeur la plus grande>=MAXVAL(<variable1>,<variable2>)
<valeur en retour>=<BOUND>(<minimum>,<maximum>,<variable tester>)
Signification

MINVAL : Dtermine la plus petite parmi deux variables (<variable1>,
<variable2>)
<valeur la plus
petite> :
Variable rsultante pour l'instruction MINVAL
Est rgle la valeur la plus petite de la variable.
MAXVAL : Dtermine la plus grande parmi deux variables (<variable1>,
<variable2>)
<valeur la plus
grande> :
Variable rsultante pour l'instruction MAXVAL
Est rgle la valeur la plus grande de la variable.
BOUND : Vrifie si une variable (<variable tester>) se trouve dans la
plage de valeurs dfinie.
<minimum> : Variable dfinissant la valeur minimale de la plage de valeurs
<maximum> : Variable dfinissant la valeur maximale de la plage de valeurs
<valeur en retour> : Variable rsultante pour l'instruction BOUND
Si la valeur de la variable tester se trouve dans la plage de
valeurs dfinie, la variable rsultante est rgle la valeur de la
variable tester.
Si la valeur de la variable tester est suprieure la valeur
maximale, la variable rsultante est rgle la valeur maximale
de la plage de dfinition.
Si la valeur de la variable tester est infrieure la valeur
minimale, la variable rsultante est rgle la valeur minimale
de la plage de dfinition.

Programmation CN flexible
1.6 Minimum, maximum et plage de variables (MINVAL, MAXVAL, BOUND)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 69

Remarque
MINVAL, MAXVAL et BOUND peuvent galement tre programmes dans actions synchrones.

Remarque
Comportement en cas d'galit
En cas d'galit de MINVAL/MAXVAL, cette valeur identique est fournie. Avec BOUND, la valeur
de la variable tester est de nouveau fournie.

Exemple

Code de programme Commentaire
DEF REAL rVar1=10.5, rVar2=33.7, rVar3, rVar4, rVar5, rValMin, rValMax, rRetVar
rValMin=MINVAL(rVar1,rVar2) ; rValMin est rgle la valeur 10.5.
rValMax=MAXVAL(rVar1,rVar2) ; rValMax est rgle la valeur 33.7.
rVar3=19.7
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 se trouve dans les limites, rRetVar est rgle
19.7.
rVar3=1.8
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 se situe en-de de la limite minimale, rRetVar
est rgle 10.5.

rVar3=45.2
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 se situe au-dessus de la limite maximale,
rRetVar est rgle 33.7.
Programmation CN flexible
1.7 Priorit des oprations
Notions complmentaires
70 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.7 Priorit des oprations
Fonction
A chaque oprateur est affecte une priorit. Lors du traitement d'une expression, les
oprateurs au degr de priorit le plus lev sont appliqus en premier lieu. En cas
d'oprateurs d'gale priorit, le traitement s'opre de gauche droite.
Des parenthses places dans les expressions arithmtiques permettent de fixer un ordre
des oprations diffrent des rgles normales de priorit.
Ordre des oprateurs
De la priorit la plus leve la moins leve

1. NOT, B_NOT Ngation, ngation sur bits
2. *, /, DIV, MOD Multiplication, division
3. +, Addition, soustraction
4. B_AND ET sur bits
5. B_XOR OU exclusif sur bits
6. B_OR OU sur bits
7. AND ET
8. XOR OU exclusif
9. OR OU
10. << Concatnation de chanes de caractres, type de rsultat STRING
11. ==, <>, >, <, >=, <= Oprateurs relationnels


Remarque
L'oprateur de concatnation ":" pour frames ne doit pas figurer avec d'autres oprateurs
dans une mme expression. Cet oprateur ne ncessite donc pas d'ordre de priorit.

Exemple d'instruction If
If (otto==10) and (anna==20) gotof end
Programmation CN flexible
1.8 Conversions de types possibles
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 71
1.8 Conversions de types possibles
Fonction
Conversion de type lors d'une affectation
La valeur numrique constante, la variable ou l'expression assigne une variable doit tre
compatible avec le type de cette variable. Si cette condition n'est pas remplie, le type est
automatiquement converti au moment de l'affectation.
Conversions de type possibles

en REAL INT BOOL CHAR STRING AXIS FRAME
de
REAL oui oui* oui
1
) oui*
INT oui oui oui
1
) oui
2)

BOOL oui oui oui oui oui
CHAR oui oui oui
1)
oui oui
STRING oui
4)
oui
3)
oui
AXIS oui
FRAME oui
Observations

* En cas de conversion du type REAL en type INT, une partie dcimale >= 0,5 est
arrondie par excs ; dans le cas contraire, elle est arrondie par dfaut (voir fonction
ROUND)
1)
La valeur <> 0 quivaut TRUE, la valeur == 0 quivaut FALSE
2)
Si la valeur se situe dans la plage numrique admise
3)
Dans le cas d'un seul caractre
4)
Longueur de chane de caractres 0 = >FALSE, sinon TRUE


Remarque
Un message d'erreur est mis lorsqu'une valeur de conversion est suprieure la plage
cible.
Lorsque des types diffrents figurent dans une mme expression, leur adaptation s'effectue
automatiquement. Des conversions de type sont aussi possibles dans des actions
synchrones, voir le chapitre Actions synchrones au dplacement, conversion de type
implicite".

Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
72 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.9 Oprations sur les chanes de caractres
Oprations sur les chanes de caractres
Outre les oprations classiques "Affectation" et "Comparaison", les oprations suivantes
sont possibles sur les chanes de caractres :
Conversion de type en type STRING (AXSTRING)
Conversion de type partir du type STRING (NUMBER, ISNUMBER, AXNAME)
Concatnation de chanes de caractres (<<)
Conversion en minuscules/majuscules (TOLOWER, TOUPPER)
Dterminer la longueur d'une chane de caractres (STRLEN)
Recherche de caractres/chanes de caractres dans une chane (INDEX, RINDEX,
MINDEX, MATCH)
Slection d'une chane de caractres partielle (SUBSTR)
Slection d'un caractre individuel (STRINGVAR, STRINGFELD)
Signification particulire du caractre 0
En interne, le caractre 0 est interprt comme identification de fin d'une chane de
caractres. Le remplacement d'un caractre par 0 raccourcit donc la chane de caractres.
Exemple :

Code de programme Commentaire
DEF STRING[20] STRG="axe . l'arrt"
STRG[6]="X"
MSG(STRG) ; Fournit le message "Axe X
l'arrt".
STRG[6]=0
MSG(STRG) ; Fournit le message "Axe".
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 73
1.9.1 Conversion de type en type STRING (AXSTRING)
Fonction
La fonction "Conversion de type en type STRING" permet d'utiliser des variables de types
diffrents comme lments d'un message (MSG).
Lors de l'utilisation de l'oprateur <<, la fonction est excute implicitement pour les
donnes de type INT, REAL, CHAR et BOOL (voir "Concatnation de chanes de caractres
(<<) (Page 75)").
Une valeur INT est convertie sous la forme normale lisible. Les valeurs REAL sont donnes
avec un nombre de dcimales pouvant aller jusqu' 10.
L'instruction AXSTRING convertit des variables de type AXIS en type STRING.
Syntaxe
<STRING_ERG> = << <type_quelconque>
<STRING_ERG> = AXSTRING(<descripteur d'axe>)
Signification

Variable du rsultat de la conversion de type <STRING_ERG> :
Type : STRING
<Type_quelconque> : Types de variables INT, REAL, CHAR, STRING et BOOL
AXSTRING : L'instruction AXSTRING fournit le descripteur d'axe indiqu
comme chane de caractres.
Variable du descripteur d'axe <descripteur d'axe> :
Type : AXIS


Remarque
Les variables FRAME ne peuvent pas tre converties.

Exemples
Exemple 1 :
MSG("Position:"<<$AA_IM[X])

Exemple 2 : AXSTRING

Code de programme Commentaire
DEF STRING[32] RES_STRING
RES_STRING=AXSTRING(X) ; RES_STRING == "X"
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
74 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.9.2 Conversion de type partir de STRING (NUMBER, ISNUMBER, AXNAME)
Fonction
Avec l'instruction NUMBER, la conversion se fait du type STRING en type REAL. L'instruction
ISNUMBER s'utilise pour vrifier si la conversion est possible.
L'instruction AXNAME convertit une chane de caractres de type STRING en type AXIS.
Syntaxe
<RES_REAL>=NUMBER("<chane de caractres>")
<RES_BOOL>=ISNUMBER("<chane de caractres>")
<RES_AXIS>=AXNAME("<chane de caractres>")
Signification

NUMBER : L'instruction NUMBER donne en retour le nombre reprsent par la <chane
de caractres> comme valeur REAL.
<chane> : Variable de type STRING convertir
Variable du rsultat de la conversion de type avec NUMBER <REAL_ERG> :
Type : REAL
ISNUMBER : L'instruction ISNUMBER permet de contrler si la <chane de caractres>
est convertible en un nombre valable.
Variable du rsultat de l'interrogation avec ISNUMBER
Type : BOOL
TRUE ISNUMBER fournit la valeur TRUE quand la
<chane de caractres> reprsente un nombre
REAL valide selon les rgles du langage.
<BOOL_ERG> :
Valeur :
FALSE Si ISNUMBER indique la valeur FALSE, une
alarme est mise lors de l'appel de NUMBER avec
la mme <chane de caractres>.
AXNAME : L'instruction AXNAME transforme la <chane de caractres> indique en un
descripteur d'axe.
Remarque :
Une alarme est mise si la <chane de caractres> ne peut pas tre
affecte un descripteur d'axe existant.
Variable du rsultat de la conversion de type avec AXNAME <AXIS_ERG> :
Type : AXIS
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 75
Exemple

Code de programme Commentaire
DEF BOOL BOOL_ERG
DEF REAL REAL_ERG
DEF AXIS AXIS_ERG
RES_BOOL=ISNUMBER("1234.9876Ex-7") ; BOOL_ERG == TRUE
RES_BOOL=ISNUMBER("1234XYZ") ; BOOL_ERG == FALSE
RES_REAL=NUMBER("1234.9876Ex-7") ; REAL_ERG == 1234.9876Ex-7
RES_AXIS=AXNAME("X") ; AXIS_ERG == X
1.9.3 Concatnation de chanes de caractres (<<)
Fonction
La fonction "Concatnation de chanes de caractres" permet de composer une chane de
caractres partir d'lments individuels.
La concatnation s'effectue avec l'oprateur "<<". Cet oprateur possde, pour toutes les
combinaisons des types de base, CHAR, BOOL, INT, REAL et STRING, comme type de
destination STRING. Une conversion ventuellement indispensable est entreprise selon les
rgles tablies.
Syntaxe
<Type_quelconque> << <type_quelconque>
Signification

<Type_quelcon
que> :
Variable de type CHAR, BOOL, INT, REAL ou STRING
<< : Oprateur pour la concatnation de variables (<type_quelconque>) en
chane de caractres compose (type STRING).
Cet oprateur est galement disponible seul en variante dite "unaire".
permettant d'effectuer une conversion de type explicite en type STRING (
l'exception des types FRAME et AXIS) :
<< <type_quelconque>
Il est ainsi possible, par exemple, de composer un message ou une commande partir de
listes de textes et d'insrer des paramtres (nom de bloc, etc.) :
MSG(STRG_TAB[LOAD_IDX]<<NOM_BLOC)

PRUDENCE
Les rsultats intermdiaires de la concatnation de la chane de caractres ne doivent pas
dpasser la longueur de chane maximale.

Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
76 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Remarque
L'utilisation des types FRAME et AXIS est impossible avec l'oprateur "<<".

Exemples
Exemple 1 : Concatnation de chanes de caractres

Code de programme Commentaire
DEF INT IDX=2
DEF REAL VALUE=9.654
DEF STRING[20] STRG="INDEX:2"
IF STRG=="Index:"<<IDX GOTOF NO_MSG
MSG("Index:"<<IDX<<"/valeur:"<<VALUE) ; Affichage :
"Index:2/valeur:9.654"
NO_MSG:

Exemple 2 : Conversion explicite de type avec <<

Code de programme Commentaire
DEF REAL VALUE=3.5
<<VALUE ; La variable indique de type REAL est convertie en type
STRING.
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 77
1.9.4 Conversion en minuscules/majuscules (TOLOWER, TOUPPER)
Fonction
La fonction "Conversion en minuscules/majuscules" permet d'harmoniser l'criture au sein
d'une chane de caractres.
Syntaxe
<RES_STRING>=TOUPPER("<chane de caractres>")
<RES_STRING>=TOLOWER("<chane de caractres>")
Signification

TOUPPER : L'instruction TOUPPER convertit toutes les lettres d'une chane de
caractres en majuscules.
TOLOWER : L'instruction TOLOWER convertit toutes les lettres d'une chane de
caractres en minuscules.
Chane de caractres convertir <chane> :
Type : STRING
Variable du rsultat de la conversion <STRING_ERG> :
Type : STRING
Exemple
Etant donn qu'il est possible de rattacher l'interface utilisateur des indications introduites
par l'utilisateur, cette fonctionnalit permet d'obtenir une prsentation uniformise en lettres
minuscules ou majuscules:

Code de programme
DEF STRING [29] STRG
...
IF "LEARN.CNC"==TOUPPER(STRG) GOTOF LOAD_LEARN
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
78 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.9.5 Dterminer la longueur d'une chane de caractres (STRLEN)
Fonction
L'instruction STRLEN permet de dterminer la longueur d'une chane de caractres.
Syntaxe
<RES_INT>=STRLEN("<chane de caractres>")
Signification

STRLEN : L'instruction STRLEN dtermine la longueur de la chane de caractres
indique.
Le rsultat est le nombre de caractres compts partir du dbut de la
chane et qui ne sont pas des caractres 0.
Chane de caractres dont la longueur doit tre dtermine <chane> :
Type : STRING
Variable du rsultat de la dtermination <INT_ERG> :
Type : INT
Exemple
En liaison avec l'accs des caractres individuels, la fonction permet de dterminer la fin
d'une chane de caractres :
Code de programme
IF (STRLEN(NOM_BLOC)>10) GOTOF ERREUR
1.9.6 Recherche de caractres/chanes de caractres dans une chane (INDEX,
RINDEX, MINDEX, MATCH)
Fonction
Cette fonctionnalit permet de rechercher des caractres isols ou une suite de caractres
dans une chane de caractres. Les rsultats signalent quel endroit de la chane de
caractres se trouve le caractre / la suite de caractres qui fait l'objet de la recherche.
Syntaxe
INT_ERG=INDEX(STRING,CHAR) ; Type de rsultat : INT
INT_ERG=RINDEX(STRING,CHAR) ; Type de rsultat : INT
INT_ERG=MINDEX(STRING,STRING) ; Type de rsultat : INT
INT_ERG=MATCH(STRING,STRING) ; Type de rsultat : INT
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 79
Smantique
Fonctions de recherche : elles fournissent la position trouve dans la chane de caractres
(premier paramtre). Si le caractre ou la chane de caractres est introuvable, le rsultat
est -1, la position du premier caractre tant 0.
Signification

INDEX : Recherche du caractre (depuis le dbut) indiqu comme deuxime
paramtre dans le premier paramtre.
RINDEX : Recherche du caractre (depuis la fin) indiqu comme deuxime paramtre
dans le premier paramtre.
MINDEX : Correspond la fonction INDEX, sauf qu'elle fournit une liste de caractres
(sous forme de chane) avec l'indice du premier caractre trouv.
MATCH : Recherche d'une chane de caractres dans une chane de caractres.
Il est ainsi possible de dcomposer les chanes de caractres suivant des critres dfinis
tels que les espaces et les caractres de sparation des chemins ("/").
Exemple
Dcomposition d'une entre en noms de chemin et de bloc

Code de programme Commentaire
DEF INT CHEMIDX, PROGIDX
DEF STRING[26] ENTREE
DEF INT LISTIDX
ENTREE = "/_N_MPF_DIR/_N_EXECUTE_MPF"
LISTIDX = MINDEX (ENTREE, "M,N,O,P") + 1 ; Le rsultat de LISTIDX est la valeur
3, "N" tant le premier caractre du
paramtre ENTREE dans la liste,
depuis le dbut.
CHEMIDX = INDEX (ENTREE, "/") +1 ; On a donc : CHEMIDX = 1
PROGIDX = RINDEX (ENTREE, "/") +1 ; On a donc : PROGIDX = 12
Avec la fonction SUBSTR prsente au
chapitre suivant, il est possible de
dcomposer la variable ENTREE en
"chemin" et en "bloc" :
VARIABLE = SUBSTR (ENTREE, CHEMIDX, PROGIDX-CHEMIDX-1) ; Fournit alors "_N_MPF_DIR".
VARIABLE = SUBSTR (ENTREE, PROGIDX) ; Fournit alors "_N_EXECUTE_MPF".
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
80 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.9.7 Slection d'une chane de caractres partielle (SUBSTR)
Fonction
Cette fonctionnalit permet d'extraire une chane partielle de caractres d'une chane de
caractres. Pour ce faire, on prcise l'indice du premier caractre et, le cas chant, la
longueur dsire. Si l'information de longueur n'est pas prcise, c'est toute la chane de
caractres restante qui est prise en compte.
Syntaxe
STRING_ERG = SUBSTR (STRING,INT) ; Type de rsultat : INT
STRING_ERG = SUBSTR(STRING,INT, INT) ; Type de rsultat : INT
Smantique
Dans le premier cas, le rsultat correspond la chane de caractres partielle allant de la
position dfinie par le deuxime paramtre jusqu' la fin de la chane.
Dans le deuxime cas, le rsultat est limit la longueur maximale dfinie par le troisime
paramtre.
Si la position de dbut se situe aprs la fin de la chane de caractres, le rsultat est une
chane vide (" ").
Si la position de dbut ou la longueur sont ngatives, une alarme est dclenche.
Exemple
Code de programme Commentaire
DEF STRING[29] RES
RES = SUBSTR ("ACQUITTEMENT:10 99", 10, 2) ; On a donc : RES == "10"
1.9.8 Slection d'un caractre individuel (STRINGVAR, STRINGFELD)
Fonction
Cette fonctionnalit permet de slectionner des caractres individuels dans une chane. Cela
est valable pour l'accs en lecture aussi bien que pour l'accs en criture.
Syntaxe
CHAR_ERG = STRINGVAR [IDX] ; Type de rsultat : CHAR
CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] ; Type de rsultat : CHAR
Smantique
Le caractre situ l'emplacement spcifi dans la chane de caractres est lu/crit. Si
l'indication de position est ngative ou plus grande que la chane de caractres, une alarme
est dclenche.
Programmation CN flexible
1.9 Oprations sur les chanes de caractres
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 81
Exemple de messages :
Installation d'un descripteur d'axe dans une chane de caractres prtablie.

Code de programme Commentaire
DEF STRING [50] MESSAGE = "Axe n a atteint sa position"
MESSAGE [6] = "X"
MSG (MESSAGE) ; Fournit le message "Axe X a
atteint sa position".
Paramtres
L'accs un caractre individuel est possible uniquement dans les variables dfinies par
l'utilisateur (donnes LUD, GUD et PUD).
De plus, dans le cas de l'appel d'un sous-programme, ce mode d'accs n'est possible que
pour des paramtres de type "Call-By-Value".
Exemples
Exemple 1 : accs d'un caractre individuel un paramtre systme, paramtre machine,

Code de programme Commentaire
DEF STRING [50] STRG
DEF CHAR ACQUITTEMENT

STRG = $P_MMCA
ACQUITTEMENT = STRG [0] ; Exploitation des composantes de
l'acquittement

Exemple 2 : accs d'un caractre individuel dans un paramtre de type "Call-By-Reference"

Code de programme Commentaire
DEF STRING [50] STRG
DEF CHAR CHR1
EXTERN UP_CALL (VAR CHAR1) ; Paramtre de type "Call-By-
Reference" !

CHR1 = STRG [5]
UP_CALL (CHR1) ; Call-By-Reference
STRG [5] = CHR1
Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
82 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.10 Sauts de programme
1.10.1 Retour au dbut du programme (GOTOS)
Fonction
Pour une rptition de programme, l'instruction GOTOS permet de retourner au dbut d'un
programme principal ou d'un sous-programme.
Pour le retour au dbut du programme, les paramtres machine permettent de rgler :
la mise "0" du temps d'excution du programme,
l'incrmentation du comptage de pices de la valeur "1".
Syntaxe
GOTOS
Signification

Instruction de saut avec destination au dbut du programme.
L'excution est commande par le signal d'interface CN/AP :
DB21, ... DBX384.0 (commander un saut de programme)
Valeur : Signification :
0 Sans retour au dbut du programme. Aprs GOTOS, l'excution du
programme reprend au bloc suivant du programme pice.
GOTOS :
1 Retour au dbut du programme et rptition du programme pice.
Conditions marginales
GOTOS dclenche un STOPRE interne (arrt du prtraitement).
Dans le cas d'un programme pice avec des dfinitions de donnes (variables LUD),
GOTOS excute un retour au premier bloc de programme qui suit la section de dfinition,
autrement dit l'excution des dfinitions de donnes n'est pas rpte. Les variables
dfinies gardent donc la valeur atteinte dans le bloc GOTOS et ne sont pas remises aux
valeurs par dfaut programmes dans la section de dfinition.
L'instruction GOTOS n'est pas disponible dans les actions synchrones et les cycles
technologiques.
Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 83
Exemple
Code de programme Commentaire
N10 ... ; Dbut du programme.
...
N90 GOTOS ; Saut au dbut du programme.
...
1.10.2 Sauts de programme sur repres de saut (IF, GOTOB, GOTOF, GOTO,
GOTOC)
Fonction
Des repres de saut (tiquettes) rejoindre au sein d'un programme avec les instructions
GOTOF, GOTOB, GOTO et GOTOC peuvent tre dfinis dans ce programme. L'excution du
programme reprend alors l'instruction qui suit immdiatement le repre de saut. Il est donc
possible de raliser des sauts l'intrieur du programme.
Outre les repres de saut, les destinations de saut peuvent tre galement des numros de
bloc principal ou auxiliaire.
Si une condition de saut (IF ...) est formule avant l'instruction de saut, le saut de
programme n'est excut que si cette condition est remplie.
Syntaxe
GOTOB <destination de saut>
IF <condition de saut> = TRUE GOTOB <destination de saut>
GOTOF <destination de saut>
IF <condition de saut> = TRUE GOTOF <destination de saut>
GOTO <destination de saut>
IF <condition de saut> = TRUE GOTO <destination de saut>
GOTOC <destination de saut>
IF <condition de saut> = TRUE GOTOC <destination de saut>
Signification
GOTOB : Instruction de saut avec destination de saut en direction du dbut du
programme.
GOTOF : Instruction de saut avec destination de saut en direction de la fin du
programme.
GOTO : Instruction de saut avec recherche de destination de saut. La
destination est d'abord recherche en direction de la fin du
programme, puis en direction du dbut du programme.
GOTOC : Mme effet que GOTO, sauf que l'alarme 14080 "Destination de saut
pas trouve" est inhibe.
Cela signifie que l'excution du programme n'est pas annule en cas
de recherche de destination de saut sans rsultat, mais qu'elle reprend
la ligne de programme qui suit l'instruction GOTOC.
Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
84 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Paramtre de la destination de saut
Les indications possibles sont :
<repre de saut> : La destination de saut correspond au repre de
saut dfini dans le programme avec un nom
dfini par l'utilisateur : <repre de saut> :
<numro de bloc> : La destination de saut est un numro de bloc
principal ou auxiliaire (par exemple : 200, N300)
<destination de
saut> :
Variable de type
STRING :
Destination de saut variable. La variable
correspond un repre de saut ou un
numro de bloc.
IF : Mot cl pour formuler la condition de saut.
Pour la condition de saut, vous pouvez utiliser toutes les oprations
relationnelles et logiques (rsultat : TRUE ou FALSE). Le saut est
excut si le rsultat de l'opration est TRUE.


Remarque
Repres de saut (tiquettes)
Les repres de saut figurent toujours au dbut d'un bloc. S'il existe un numro de
programme, le repre de saut figure immdiatement aprs le numro de bloc.
Les rgles suivantes s'appliquent la dfinition des repres de saut :
Nombre de caractres :
Minimum 2
Maximum 32
Caractres autoriss :
Caractres alphabtiques
Chiffres
Traits de soulignement
Les deux premiers caractres doivent tre obligatoirement des lettres ou des traits de
soulignement.
Le nom d'un repre de saut est suivi de deux points (":").

Conditions marginales
La destination du saut doit tre un bloc avec un repre de saut ou un numro de bloc
figurant dans le programme.
Une instruction de saut sans condition de saut doit tre programme dans un bloc
spcifique. Cette restriction ne s'applique pas aux instructions de saut avec des
conditions de saut. Dans ce cas, plusieurs instructions de saut peuvent tre formules
dans un bloc.
Dans le cas de programmes comportant des instructions de saut sans condition de saut,
l'instruction de fin de programme M2/M30 peut figurer avant la fin du programme.
Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 85
Exemples
Exemple 1 : Sauts sur repres de saut

Code de programme Commentaire
N10
N20 GOTOF Label_1 ; Saut en direction de la fin du programme sur le
repre de saut "Label_1".
N30
N40 Label_0: R1=R2+R3 ; Dfinition du repre de saut "Label_0".
N50
N60 Label_1: ; Dfinition du repre de saut "Label_1".
N70
N80 GOTOB Label_0 ; Saut en direction du dbut du programme sur le
repre de saut "Label_0".
N90

Exemple 2 : Saut indirect sur numro de bloc

Code de programme Commentaire
N5 R10=100
N10 GOTOF "N"<<R10 ; Saut sur le bloc dont le numro de bloc est
indiqu dans R10.
...
N90 ...
N100 ... ; Destination de saut
N110 ...
...

Exemple 3 : Saut sur destination de saut variable

Code de programme Commentaire
DEF STRING[20] DESTINATION
DESTINATION = "repre2"
GOTOF DESTINATION ; Saut en direction de la fin du programme sur la
destination de saut variable DESTINATION.
Repre1: T="foret1"
...
Repre2: T="foret2" ; Destination de saut
...

Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
86 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 4 : Saut avec condition de saut

Code de programme Commentaire
N40 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 ; Affectation des valeurs
initiales.
N41 LA1: G0 X=R2*COS(R1)+R5 Y=R2*SIN(R1)+R6 ; Dfinition du repre de saut LA1.
N42 R1=R1+R3 R4=R4-1
N43 IF R4>0 GOTOB LA1 ; Si la condition de saut est
remplie, saut en direction du
dbut du programme sur le repre
de saut LA1.
N44 M30 ; Fin du programme
1.10.3 Saut de programme (CASE ... OF ... DEFAULT ...)
Fonction
La fonction CASE permet de vrifier la valeur actuelle (type : INT) d'une variable ou d'une
fonction de calcul et de sauter diffrents endroits dans le programme en fonction du
rsultat obtenu.
Syntaxe
CASE(<expression>) OF <constante_1> GOTOF <destination de saut_1>
<constante_2> GOTOF <destination de saut_2> ... DEFAULT GOTOF
<destination de saut_n>
Signification

CASE : Instruction de saut
<expression> : Variable ou fonction de calcul
OF : Mot cl pour formuler les sauts de programme conditionnels.
Premire valeur constante indique pour la variable ou la fonction
de calcul
<constante_1> :
Type : INT
Deuxime valeur constante indique pour la variable ou la
fonction de calcul
<constante_2> :
Type : INT
DEFAULT : Au cas o la variable ou la fonction de calcul ne prend aucune des
valeurs constantes indiques, la destination du saut peut tre
dfinie par l'instruction DEFAULT.
Remarque :
Au cas o l'instruction DEFAULT n'est pas programme, le bloc
qui suit l'instruction CASE devient destination du saut.
Programmation CN flexible
1.10 Sauts de programme
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 87
GOTOF : Instruction de saut avec destination de saut en direction de la fin
du programme.
Au lieu de GOTOF, il est galement possible de programmer toutes
les autres instructions GOTO (voir chapitre "Sauts de programme
sur repres de saut").
Destination de saut si la valeur de la variable ou de la fonction de
calcul correspond la premire constante indique.
La destination de saut peut tre indique de la manire suivante :
<repre de saut> : La destination de saut correspond au repre
de saut dfini dans le programme avec un
nom dfini par l'utilisateur : <repre de saut>
:
<numro de
bloc> :
La destination de saut est un numro de bloc
principal ou auxiliaire (par exemple : 200,
N300)
<destination de
saut_1> :
Variable de type
STRING :
Destination de saut variable. La variable
correspond un repre de saut ou un
numro de bloc.
<destination de
saut_2> :
Destination de saut si la valeur de la variable ou de la fonction de
calcul correspond la deuxime constante indique.
<destination de
saut_n> :
Destination de saut si la valeur de la variable ou de la fonction de
calcul ne correspond aucune des valeurs constantes indiques.
Exemple

Code de programme
...
N20 DEF INT VAR1 VAR2 VAR3
N30 CASE(VAR1+VAR2-VAR3) OF 7 GOTOF Label_1 9 GOTOF Label_2 DEFAULT GOTOF Label_3
N40 Label_1: G0 X1 Y1
N50 Label_2: G0 X2 Y2
N60 Label_3: G0 X3 Y3
...
L'instruction CASE de N30 dfinit les possibilits de saut de programme suivantes :
1. Si la valeur de la fonction de calcul VAR1+VAR2-VAR3 = 7, la destination de saut
correspond au bloc avec la dfinition du repre de saut "Label_1" ( N40).
2. Si la valeur de la fonction de calcul VAR1+VAR2-VAR3 = 9, la destination de saut
correspond au bloc avec la dfinition du repre de saut "Label_2" ( N50).
3. Si la valeur de la fonction de calcul VAR1+VAR2-VAR3 n'est ni gale 7 ni 9, la
destination de saut correspond au bloc avec la dfinition du repre de saut "Label_3" (
N60).
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
88 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.11 Rptition de sections de programme (REPEAT, REPEATB,
ENDLABEL, P)
Fonction
Cette fonction permet la rptition de sections de programme dans un ordre quelconque.
Les lignes ou sections de programme rpter sont repres par des repres de saut
(tiquettes).

Remarque
Repres de saut (tiquettes)
Les repres de saut figurent toujours au dbut d'un bloc. S'il existe un numro de
programme, le repre de saut figure immdiatement aprs le numro de bloc.
Les rgles suivantes s'appliquent la dfinition des repres de saut :
Nombre de caractres :
Minimum 2
Maximum 32
Caractres autoriss :
Caractres alphabtiques
Chiffres
Traits de soulignement
Les deux premiers caractres doivent tre obligatoirement des lettres ou des traits de
soulignement.
Le nom d'un repre de saut est suivi de deux points (":").

Syntaxe
1. Rptition d'une ligne de programme individuelle :

<repre de saut> : ...
...
REPEATB <repre de saut> P=<n>
...
2. Rptition d'une section de programme entre le repre de saut et l'instruction REPEAT :

<repre de saut> : ...
...
REPEAT <repre de saut> P=<n>
...
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 89
3. Rptition d'une section entre deux repres de saut :

<repre de saut de dbut> : ...
...
<repre de saut de fin> : ...
...
REPEAT <repre de saut de dbut> <repre de saut de fin> P=<n>
...


Remarque
Il n'est pas possible de placer l'instruction REPEAT entre les deux repres de saut. Si le
<repre de saut de dbut> est plac devant l'instruction REPEAT et si le <repre de saut de
fin> n'est pas atteint avant l'instruction REPEAT, la rptition a lieu entre le <repre de saut
de dbut> et l'instruction REPEAT.

4. Rptition d'une section entre le repre de saut et ENDLABEL :

<repre de saut> : ...
...
ETIQUETTE_FIN: ...
...
REPEAT <repre de saut> P=<n>
...


Remarque
Il n'est pas possible de placer l'instruction REPEAT entre le <repre de saut> et ENDLABEL. Si le
<repre de saut> est plac devant l'instruction REPEAT et si le ENDLABEL n'est pas atteint avant
l'instruction REPEAT, la rptition a lieu entre le <repre de saut> et l'instruction REPEAT.

Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
90 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

REPEATB : Instruction de rptition d'une ligne de programme
REPEAT : Instruction de rptition d'une section de programme
Le <repre de saut> repre :
la ligne de programme rpter (avec REPEATB)
ou
le dbut de la section de programme rpter (avec REPEAT)
<repre de saut> :
La ligne de programme repre par le <repre de saut> peut se
trouver avant ou aprs l'instruction REPEAT/REPEATB. La recherche
commence en direction du dbut du programme. Si le repre de
saut n'est pas trouve dans cette direction, la recherche est
s'effectue en direction de la fin du programme.
Exception :
si la section de programme doit tre rpte entre le repre de saut
et l'instruction REPEAT (voir le point 2 sous Syntaxe), la ligne de
programme repre par le <repre de saut> doit se trouver devant
l'instruction REPEAT, car dans ce cas, la rechercher s'effectue
uniquement en direction du dbut du programme.
Si la ligne contenant le <repre de saut> contient d'autres
instructions, celles-ci sont excutes une nouvelle fois chaque
rptition.
ENDLABEL : Mot-cl qui repre la fin d'une section de programme rpter
Si la ligne contenant ENDLABEL contient d'autres instructions, celles-ci
sont excutes une nouvelle fois chaque rptition.
ENDLABEL peut tre utilise plusieurs fois dans le programme.
P : Adresse pour l'indication du nombre de rptitions
Nombre de rptitions de la section de programme
Type : INT
<n> :
La section de programme rpter est rpte <n> fois. Aprs la
dernire rptition, l'excution du programme reprend la ligne
suivant celle qui contient REPEAT/REPEATB.
Nota :
si P=<n> n'est pas indiqu, la section de programme a rpter est
rpte exactement une fois.
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 91
Exemples
Exemple 1 : rpter des lignes de programme individuelles

Code de programme Commentaire
N10 POSITION1: X10 Y20
N20 POSITION2: CYCLE(0,,9,8) ; Cycle de positions
N30 ...
N40 REPEATB POSITION1 P=5 ; Excuter le bloc N10 cinq fois.
N50 REPEATB POSITION2 ; Excuter le bloc N20 une fois.
N60 ...
N70 M30

Exemple 2 : rpter la section de programme entre le repre de saut et l'instruction REPEAT

Code de programme Commentaire
N5 R10=15
N10 DEBUT : R10=R10+1 ; Largeur
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10
N50 X=-R10
N60 Y=-R10
N70 Z=10+R10
N80 REPEAT DEBUT P=4 ; Excuter la section N10 N70 quatre fois.
N90 Z10
N100 M30

Exemple 3 : rpter la section entre deux repres de saut

Code de programme Commentaire
N5 R10=15
N10 DEBUT : R10=R10+1 ; Largeur
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10
N50 X=-R10
N60 Y=-R10
N70 FIN : Z=10
N80 Z10
N90 CYCLE(10,20,30)
N100 REPEAT DEBUT FIN P=3 ; Excuter la section N10 N70 trois fois.
N110 Z10
N120 M30
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
92 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Exemple 4 : rpter la section entre le repre de saut et ENDLABEL

Code de programme Commentaire
N10 G1 F300 Z-10
N20 DEBUT1:
N30 X10
N40 Y10
N50 DEBUT2:
N60 X20
N70 Y30
N80 ETIQUETTE_FIN: Z10
N90 X0 Y0 Z0
N100 Z-10
N110 DEBUT3: X20
N120 Y30
N130 REPEAT DEBUT3 P=3 ; Excuter la section N110 N120 trois fois.
N140 REPEAT DEBUT2 P=2 ; Excuter la section N50 N80 deux fois.
N150 M100
N160 REPEAT DEBUT1 P=2 ; Excuter la section N20 N80 deux fois.
N170 Z10
N180 X0 Y0
N190 M30

Exemple 5 : raliser un fraisage, des trous tarauds avec diffrentes technologies

Code de programme Commentaire
N10 FORET_CENTRER() ; Mettre en place le foret centrer.
N20 POS_1: ; Rseau de positions 1
N30 X1 Y1
N40 X2
N50 Y2
N60 X3 Y3
N70 ENDLABEL :
N80 POS_2 : ; Rseau de positions 2
N90 X10 Y5
N100 X9 Y-5
N110 X3 Y3
N120 ENDLABEL :
N130 FORET() ; Mettre en place le foret et le cycle de perage.
N140 TARAUD(6) ; Mettre en place le taraud M6 et le cycle de taraudage.
N150 REPEAT POS_1 ; Rpter la section de programme une fois partir de
POS_1 jusqu' ENDLABEL.
N160 FORET() ; Mettre en place le foret et le cycle de perage.
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 93
Code de programme Commentaire
N170 TARAUD(8) ; Mettre en place le taraud M8 et le cycle de taraudage.
N180 REPEAT POS_2 ; Rpter la section de programme une fois partir de
POS_2 jusqu' ENDLABEL.
N190 M30
Informations complmentaires
Des imbrications sont autorises dans une section de programme rpter. Chaque
appel correspond un niveau de sous-programme.
Si M17 ou RET sont programms pendant l'excution de la rptition d'une section de
programme, celle-ci est annule. L'excution du programme reprend au bloc suivant la
ligne REPEAT.
Dans l'affichage du programme en cours, la rptition de la section de programme est
visualise en tant que niveau spcifique de sous-programme.
Si un abandon est dclench pendant l'excution de la section de programme,
l'excution du programme reprend aprs le bloc comportant l'instruction REPEAT.
Exemple :

Code de programme Commentaire
N5 R10=15
N10 DEBUT : R10=R10+1 ; Largeur
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10 ; Abandon
N50 X=-R10
N60 Y=-R10
N70 FIN : Z10
N80 Z10
N90 CYCLE(10,20,30)
N100 REPEAT DEBUT FIN P=3
N120 Z10 ; Poursuivre l'excution du programme.
N130 M30
Structures de contrle et rptition de sections de programme peuvent tre combines. Il
y a cependant lieu d'viter les chevauchements. Il est recommand que la rptition
d'une section de programme se trouve l'intrieur d'une branche de structure de contrle
ou d'une structure de contrle se trouvant l'intrieur d'une rptition de section de
programme.
En cas de programmation mixte de sauts et d'une rptition de section de programme,
les blocs sont excuts de faon purement squentielle. En cas de saut partir d'une
boucle de rptition de section de programme par exemple, l'excution se poursuit
jusqu' ce que la fin de la section de programme rpter soit trouve.
Programmation CN flexible
1.11 Rptition de sections de programme (REPEAT, REPEATB, ENDLABEL, P)
Notions complmentaires
94 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple :

Code de programme
N10 G1 F300 Z-10
N20 DEBUT1:
N30 X=10
N40 Y=10
N50 GOTOF DEBUT2
N60 ENDLABEL:
N70 DEBUT2:
N80 X20
N90 Y30
N100 ENDLABEL: Z10
N110 X0 Y0 Z0
N120 Z-10
N130 REPEAT DEBUT1 P=2
N140 Z10
N150 X0 Y0
N160 M30


Remarque
Il est recommand que l'instruction REPEAT se trouve aprs les blocs de dplacement.

Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 95
1.12 Structures de contrle
Fonction
En version standard, la commande traite les blocs CN dans l'ordre de leur programmation.
Il est possible de varier cet ordre en programmant des blocs de programme et des boucles
de programme alternatifs. La programmation de ces structures de contrle s'effectue avec
les lments de structures de contrle (mots cls) IF...ELSE, LOOP, FOR, WHILE et REPEAT.

PRUDENCE
Les structures de contrle ne sont possibles qu' l'intrieur de la partie instructions d'un
programme. Les dfinitions dans l'en-tte de programme ne peuvent pas tre excutes de
faon conditionnelle ou rptitive.
Les mots-cls pour les structures de contrle, tout comme les destinations de sauts, ne
doivent pas tre utiliss dans des macros. Ceci ne fait pas l'objet d'une vrification lors de
la dfinition des macros.

Prise d'effet
Les structures de contrle sont valables localement dans le programme.
Niveaux d'imbrication
Une imbrication de 16 structures de contrle au maximum est possible l'intrieur de
chaque niveau de sous-programme.
Sous-programme Programme principal
LOOP
ENDLOOP
ENDWHlLE
WHlLE
REPEAT
PROC SUBPROG
UNTlL
ENDFOR
FOR
WHlLE
ENDWHlLE
lF
ENDlF
WHlLE
ENDWHlLE
WHlLE
ENDWHlLE
SUBPROG
FOR
ENDFOR

Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
96 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Dure d'excution des programmes
En mode interprteur standard, l'utilisation de sauts permet d'obtenir une excution du
programme plus rapide qu'avec les structures de contrle.
Dans des cycles prcompils, il n'y a pas de diffrence entre les sauts dans le programme et
les structures de contrle.
Conditions marginales
Les blocs comportant des lments de structures de contrle ne peuvent pas tre
dclars optionnels.
Les repres de saut (tiquettes) ne sont pas autoriss dans les blocs contenant des
lments de structures de contrle.
Les structures de contrle sont excutes de faon interprtative. En cas d'identification
d'une fin de boucle, le dbut de la boucle est recherch compte tenu des structures de
contrle ainsi trouves. Par consquent, en mode interprteur, la structure d'un
programme n'est pas compltement teste.
En principe, il est recommand de ne pas utiliser en commun des structures de contrle
et des sauts dans le programme.
Si des cycles subissent un prtraitement, l'imbrication correcte des structures de contrle
est vrifie.
1.12.1 Boucle de programme avec alternative (IF, ELSE, ENDIF)
Fonction
Une construction avec IF et ELSE s'utilise lorsque la boucle de programme doit contenir un
bloc de programme alternatif. Si la condition IF est remplie, le bloc de programme qui suit IF
est excut. Si la condition IF n'est pas remplie, le bloc de programme alternatif qui suit ELSE
est excut.

Remarque
Si une alternative n'est pas ncessaire, il est galement possible de programmer une boucle
IF sans instruction ELSE ni bloc de programme plac aprs ELSE.

Syntaxe

IF <condition>
...
ELSE
...
ENDIF
Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 97
Signification

IF : Dbut de la boucle IF.
ELSE : Dbut du bloc de programme alternatif.
ENDIF : Fin de la boucle IF provoquant un retour au dbut de la boucle.
<condition > : Condition qui dtermine le bloc de programme excuter.
Exemple
Sous-programme de changement d'outil

Code de programme Commentaire
PROC L6 ; Routine de changement d'outil
N500 DEF INT TNR_COURANT ; Variable du numro T actif
N510 DEF INT TNR_PRESELECTION ; Variable du numro T
prslectionn
; Dtermination de l'outil
courant
N520 STOPRE
N530 IF $P_ISTEST ; En mode de test de programme
...
N540 TNR_COURANT = $P_TOOLNO ; ... lecture de l'outil
"courant" du contexte du
programme.
N550 ELSE ; Sinon ...
N560 TNR_COURANT = $TC_MPP6[9998,1] ; ... lecture de l'outil de la
broche.
N570 ENDIF
N580 GETSELT(TNR_PRESELECTION) ; Lecture du numro T de l'outil
prslectionn sur la broche.
N590 IF TNR_COURANT <> TNR_PRESELECTION ; Si l'outil prslectionn
n'est pas encore l'outil
courant, ...
N600 G0 G40 G60 G90 SUPA X450 Y300 Z300 D0 ; ... accostage de la position
de changement d'outil ...
N610 M206 ; ... et excution du changement
d'outil.
N620 ENDIF
N630 M17
Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
98 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.12.2 Boucle de programme sans fin (LOOP, ENDLOOP)
Fonction
La boucle infinie trouve son application dans des programmes infinis. Un retour au dbut de
boucle a toujours lieu en fin de boucle.
Syntaxe

LOOP
...
ENDLOOP
Signification

LOOP : Dbut de la boucle sans fin.
ENDLOOP : Fin de la boucle provoquant un retour au dbut de la boucle.
Exemple

Code de programme
...
LOOP
MSG ("Pas de changement d'outil actif")
M0
STOPRE
ENDLOOP
...
Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 99
1.12.3 Boucle de comptage (FOR ... TO ..., ENDFOR)
Fonction
La boucle de comptage est utilise lorsqu'une section de programme doit tre rpte un
certain nombre de fois.
Syntaxe

FOR <variable> = <valeur initiale> TO <valeur finale>
...
ENDFOR
Signification

FOR : Dbut de la boucle de comptage.
ENDFOR : Fin de la boucle provoquant un retour au dbut de la boucle tant que
la valeur finale du comptage n'est pas atteinte.
Variable de comptage incrmente de la valeur "1" chaque
excution, de la valeur initiale la valeur finale.
<variable> :
type INT ou REAL
Remarque :
Le type REAL est pris en compte par exemple lorsque le
paramtre R est programm pour une boucle de comptage. Si
la variable de comptage est de type REAL, sa valeur est
arrondie un nombre entier.
<valeur
initiale> :
Valeur initiale du comptage
Condition : La valeur initiale doit tre infrieure la valeur finale.
<valeur finale> : Valeur finale du comptage
Exemples
Exemple 1 : Variable INT ou paramtre R en tant que variable de comptage
Variable INT en tant que variable de comptage :

Code de programme Commentaire
DEF INT iVARIABLE1
R10=R12-R20*R1 R11=6
FOR iVARIABLE1 = R10 TO R11 ; Variable de comptage = variable INT
R20=R21*R22+R33
ENDFOR
M30

Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
100 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Paramtre R en tant que variable de comptage :

Code de programme Commentaire
R11=6
FOR R10=R12-R20*R1 TO R11 ; Variable comptage = paramtre R (variable REAL)
R20=R21*R22+R33
ENDFOR
M30

Exemple 2 : Fabrication d'un nombre de pices dfini

Code de programme Commentaire
DEF INT SERIE ; Dfinition de la variable INT avec le nom
"SERIE".
FOR SERIE = 0 TO 100 ; Dbut de la boucle de comptage. La variable
"SERIE" est incrmente de la valeur initiale
"0" la valeur finale "100".
G01
ENDFOR ; Fin de la boucle de comptage.
M30
1.12.4 Boucle de programme avec condition en dbut de boucle (WHILE, ENDWHILE)
Fonction
Dans une boucle WHILE, la condition figure au dbut de la boucle. La boucle WHILE est
excute tant que la condition est remplie.
Syntaxe

WHILE <condition>
...
ENDWHILE
Signification

WHILE : Dbut de la boucle de programme.
ENDWHILE : Fin de la boucle provoquant un retour au dbut de la boucle.
<condition > : Condition remplir pour l'excution de la boucle WHILE.
Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 101
Exemple

Code de programme Commentaire
...
WHILE $AA_IW[AXE DE PERAGE] > -10 ; Appel de la boucle WHILE sous la condition
suivante : la consigne SCP courante de
l'axe de perage doit tre suprieure -
10.
G1 G91 F250 AX[AXE DE PERAGE] = -1
ENDWHILE
...
1.12.5 Boucle de programme avec condition en fin de boucle (REPEAT, UNTIL)
Fonction
Dans une boucle REPEAT, la condition figure la fin de la boucle. La boucle REPEAT est
excute une fois, puis rpte jusqu' ce que la condition soit remplie.
Syntaxe

REPEAT
...
UNTIL <condition>
Signification

REPEAT : Dbut de la boucle de programme.
UNTIL : Fin de la boucle provoquant un retour au dbut de la boucle.
<condition > : Condition remplir pour que la boucle REPEAT ne soit plus excute.
Exemple

Code de programme Commentaire
...
REPEAT ; Appel de la boucle REPEAT.
...
UNTIL ... ; Vrifie si la condition est remplie.
...
Programmation CN flexible
1.12 Structures de contrle
Notions complmentaires
102 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.12.6 Exemple de programme avec des structures de contrle imbriques

Code de programme Commentaire
LOOP
IF NOT $P_SEARCH ; Pas de recherche de bloc
G01 G90 X0 Z10 F1000
WHILE $AA_IM[X] <= 100
G1 G91 X10 F500 ; Rseau de trous
ZF100
Z5
ENDWHILE
Z10
ELSE
MSG("pas de perage pendant la recherche de
bloc")

ENDIF
$A_OUT[1]=1 ; Plaque percer suivante
G4 F2
ENDLOOP
M30
Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 103
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC,
WAITE, SETM, CLEARM)
Fonction
Canaux
Un canal est susceptible d'excuter son propre programme, indpendamment des autres
canaux. C'est par ce moyen que les axes et broches qui lui sont affects temporairement,
sont contrlables par programme.
A la mise en service, on peut crer deux canaux ou plus pour la commande.
Coordination de programmes
Si plusieurs canaux sont partie prenante dans la ralisation d'une pice, une synchronisation
du droulement des programmes peut alors devenir ncessaire.
Pour raliser cette synchronisation de programmes, il existe des instructions spciales
(ordres) qui doivent figurer dans un bloc spcifique.

Remarque
La coordination de programme est galement possible dans un canal spar.

instructions de coordination de programmes
Indication du chemin absolu

Le chemin absolu est form selon les rgles
suivantes :
INIT (n,"/_HUGO_DIR/_N_name_MPF" )
ou
- rpertoire courant/_N_nom_MPF
"rpertoire courant" est le rpertoire pice
slectionn ou le rpertoire standard
/_N_MPF_DIR.
INIT (n,"/_N_MPF_DIR/_N_nom_MPF" ) -
-
Slection d'un programme pour excution
dans un canal dtermin :
n : numro du canal, valeur selon la
configuration de la commande
Nom complet du programme
Exemple : Jusqu' la version 3 du logiciel :
INIT(2,"/_N_WKS_DIR/_DRESSAGE_MP
F")
G01F0.1
START
Entre une instruction init (sans synchronisation)
et un Dpart programme doit figurer au moins
un bloc excutable.
En cas d'appel de sous-programme, "_SPF"
doit figurer dans l'indication de chemin.
INIT
(2,"/_N_WKS_DIR/_N_SOUS_1_SPF")

Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
104 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Indication du chemin relatif


Exemple :
Pour l'indication du chemin relatif, les rgles
suivre sont les mmes que pour les appels de
sous-programmes.
INIT(2,"DRESSAGE")
INIT(3,"SOUS_1_SPF") En cas d'appel de sous-programme, "_SPF"
doit figurer dans le nom du sous-programme.
Paramtres
Les variables la disposition commune des canaux (variables globales spcifiques NCK)
peuvent tre utilises pour l'change de donnes entre programmes. Sinon l'laboration des
programmes sera entreprise sparment pour chaque canal.

INIT(n, indication du chemin, mode
d'acquittement)
Instruction sur le traitement dans un
canal. Slection d'un programme donn avec
indication du chemin absolue ou relative.
START (n, n) Dmarrage des programmes slectionns dans
les autres canaux.
n,n : Enumration des numros de canal :
valeur selon la configuration de la
commande
WAITM (N_marque, n, n, ...) Dfinition de la marque "N_marque" dans le
propre canal. Fin du bloc prcdent avec
arrt prcis. Attente des marques avec le
mme "N_marque" dans les canaux indiqus
"n" { (il n'est pas ncessaire que le
propre canal soit indiqu). La marque est
efface aprs la synchronisation.
Jusqu' 10 marques maxi peuvent tre
dfinies dans un mme canal.
WAITMC (N_marque, n, n, Dfinition de la marque "N_marque" dans le
propre canal. L'arrt prcis est enclench
uniquement si les autres canaux n'ont pas
encore atteint la marque. Attente de la
marque avec le mme "N_marque" dans les
canaux indiqus "n" (il n'est pas
ncessaire que le propre canal soit
indiqu). Ds que la marque "N_marque" est
atteinte dans les canaux indiqus,
poursuite de l'usinage sans mettre fin
l'arrt prcis.
WAITE (n, n, ...) Attente de la fin de programme dans les
canaux indiqus (ne pas indiquer le propre
canal). Exemple : programmation d'un arrt
temporis aprs l'instruction START.
N30 START(2)
N31 G4 F0.01
N40 WAITE(2)
SETM (N_marque, N_marque, Dfinition des marques "N_marque" dans le
Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 105
propre canal, sans effet sur l'usinage en
cours. SETM() conserve sa validit au-del
de RESET et de Dpart programme.
CLEARM (N_marque, N_marque, Effacement des marques "N_marque" dans le
propre canal, sans effet sur l'usinage en
cours. Toutes les marques dans le canal
peuvent tre effaces avec CLEARM(). CLEARM
(0) efface la marque "0". CLEARM() conserve
sa validit au-del de RESET et de Dpart
programme.
n Numro ou nom de canal correspondant


Remarque
Toutes les instructions ci-dessus doivent figurer dans des blocs qui leur sont propres.
Le nombre de marques dpend de l'UC en place.

Numros de canaux
Pour les canaux coordonner, jusqu' 10 canaux peuvent tre indiqus par leur numro
(valeur entire).
Noms des canaux
Les noms de canaux doivent tre convertis en numros par des variables (voir le chapitre
"Variables et paramtres de calcul") ou, la place de numros de canaux, les noms de
canaux (descripteur ou mot cl) dfinis par $MC_CHAN_NAME peuvent galement tre
programms. Les noms dfinis doivent tre conformes aux conventions linguistiques CN
(autrement dit, les deux premiers caractres sont des lettres ou des caractres de
soulignement).

PRUDENCE
Protger l'affectation des numros pour viter toute modification accidentelle.
Ces noms ne doivent pas pralablement exister avec une autre signification dans la CN,
par exemple comme mot-cl, comme commande CN, comme nom d'axe, etc.

SETM() et CLEARM()
SETM()et CLEARM() peuvent galement tre programms partir d'une action synchrone. Voir
chapitre "Activer/effacer la marque d'attente : SETM CLEARM"
Exemple
Au canal avec le nom "MACHINE", on affecte le numro de canal 1,
au canal avec le nom "CHARGEUR", on affecte le numro de canal 2 :
DEF INT MACHINE=1, CHARGEUR=2
Les variables reoivent les mmes noms que les canaux.
L'instruction START s'appelle donc :
START(MACHINE)
Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
106 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple de coordination de programmes
Canal 1 :
_N_MPF100_MPF

Code de programme Commentaire
N10 INIT(2,"MPF200")
N11 START (2) ; Excution dans le canal 2
...
N80 WAITM(1,1,2) ; Attente de la marque WAIT 1 dans le canal 1 et
dans le canal 2 et poursuite de l'excution dans le
canal 1
...
N180 WAITM(2,1,2) ; Attente de la marque WAIT 2 dans le canal 1 et
dans le canal 2 et poursuite de l'excution dans le
canal 1
...
N200 WAITE(2) ; Attente de la fin de programme dans le canal 2
N201 M30 ; Fin de programme dans le canal 1, fin globale
...

Canal 2 :
_N_MPF200_MPF

Code de programme Commentaire
;$PATH=/_N_MPF_DIR
; Excution dans le canal 2
N70 WAITM(1,1,2) ; Attente de la marque WAIT 1 dans le canal 1 et dans le
canal 2 et poursuite de l'excution dans le canal 1
...
N270 WAITM(2,1,2) ; Attente de la marque WAIT 2 dans le canal 1 et dans le
canal 2 et poursuite de l'excution dans le canal 2
...
N400 M30 ; Fin de programme dans le canal 2

Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 107
MPF 200
% 100
... ... ... ... ... ... ...
M30
N400
M30
N400
WAlTE(2)
N200
WAlTM(2,1,2)
N270
WAlTM(1,1,2)
N70
WAlTM(2,1,2)
N180
WAlTM(1,1,2)
N80
M2 M1
START(2)
START(2)
... ... ... ... ... ... ... ... N11 N10
N10
attente
fin temps
dbut
attente
attente
canal 2
canal 1

Exemple : Programme partir d'une pice

Code de programme
N10 INIT(2,"/_N_WKS_DIR/_N_ARBRE1_WPD/_N_CHARIOTAGE1_MPF")
Exemple : Commande INIT avec indication de chemin relative
Dans le canal 1, le programme /_N_MPF_DIR/_N_MAIN_MPF est slectionn

Code de programme Commentaire
N10 INIT(2,"MYPROG") ; Slectionner le programme /_N_MPF_DIR/_N_MYPROG_MPF
dans le canal 2
Programmation CN flexible
1.13 Coordination de programmes (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Notions complmentaires
108 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple : Nom et de numro de canal avec une variable entire
$MC_CHAN_NAME[0]= "CHAN_X" ; nom du 1er canal
$MC_CHAN_NAME[1]= "CHAN_Y" ; nom du 2e canal

Code de programme Commentaire
START(1, 2) ; Excuter le dmarrage dans le 1er et le 2e canal
De faon analogue, programmation avec les descripteurs de canaux :

Code de programme Commentaire
START(CHAN_X, CHAN_Y) ; Excuter le dmarrage dans le 1er et le 2e canal
; Du fait du paramtre machine $MC_CHAN_NAME, les
descripteurs canal_X et canal_Y reprsentent les
numros de canaux 1 et 2 en interne. Par consquent,
ils excutent galement un dmarrage dans le 1er et le
2e canal.
Programmation avec une variable entire :

Code de programme Commentaire
DEF INT chanNo1, chanNo2) ; Dfinir le numro de canal
chanNo1=CHAN_X chanNo2=CHAN_Y
START(chanNo1, chanNo2)
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 109
1.14 Routine d'interruption (ASUP)
1.14.1 Fonction d'une routine d'interruption

Remarque
Les termes "sous-programme asynchrone (ASUP)" et "routine d'interruption" utiliss en
alternance dans la description suivante dsignent la mme fonctionnalit.

Fonction
La fonction d'une routine d'interruption est explicite l'aide d'un exemple typique :
Programme
principal
Routines d'interruption
Retrait de l'outil
Changement d'outil
Nouvelles valeurs de
correction
Raccostage

L'outil se brise pendant l'usinage. Ceci dclenche un signal qui arrte la phase d'usinage en
cours et lance simultanment un sous-programme appel "routine d'interruption". Ce sous-
programme contient toutes les instructions qui doivent tre excutes dans ce cas.
Lorsque l'excution du sous-programme est termine (et la machine nouveau prte), la
commande retourne dans le programme principal et poursuit l'usinage, selon l'instruction
REPOS, l'endroit o il avait t interrompu (voir "Raccostage du contour (Page 476)").

PRUDENCE
Si vous ne programmez pas d'instruction REPOS dans le sous-programme, il y a
positionnement au point final du bloc qui suit le bloc interrompu.

Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
110 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Bibliographie
Description fonctionnelle Fonctions de base ; GMF, Canal, Mode de programme,
Comportement au reset (K1), chapitre : "Sous-programmes asynchrones (ASUP), routines
d'interruption"
1.14.2 Cration d'une routine d'interruption
Crer une routine d'interruption en tant que sous-programme
La routine d'interruption est dfinie comme un sous-programme.
Exemple :
Code de programme Commentaire
PROC RETR_Z ; Nom de programme "RETR_Z"
N10 ... ; Puis suivent les blocs CN.
...
N50 M17 ; Pour terminer, fin du programme et retour au programme
principal.
Sauvegarde des fonctions G modales (SAVE)
Lors de la dfinition, la routine d'interruption peut tre accompagne de l'attribut SAVE.
L'attribut SAVE entrane la sauvegarde des fonctions G modales qui sont actives avant l'appel
de la routine d'interruption, et leur ractivation la fin de la routine d'interruption (voir "Sous-
programmes avec mcanisme de sauvegarde (SAVE) (Page 157)").
Il est ainsi possible de reprendre l'usinage au point d'interruption aprs l'excution de la
routine d'interruption.
Exemple :
Code de programme
PROC RETR_Z SAVE
N10 ...
...
N50 M17
Affectation d'autres routines d'interruption (SETINT)
A l'intrieur de la routine d'interruption, il est possible de programmer des instructions SETINT
(voir "Affectation et dmarrage d'une routine d'interruption (SETINT) (Page 111)") pour
activer d'autres routines d'interruption. Le dmarrage de ces dernires n'a lieu que lorsque
l'entre correspondante commute.
Bibliographie
Pour plus d'informations sur la cration de sous-programmes, consultez le chapitre "Sous-
programmes, macro-instructions".
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 111
1.14.3 Affectation et dmarrage d'une routine d'interruption (SETINT, PRIO, BLSYNC)
Fonction
La commande dispose de signaux (entres 18) qui dclenchent l'interruption du
programme courant et qui peuvent dmarrer la routine d'interruption correspondante.
Dans le programme pice, l'affectation d'une entre au dmarrage d'un programme
s'effectue avec l'instruction SETINT.
Si le programme pice contient plusieurs instructions SETINT et que, par consquent,
plusieurs signaux peuvent se prsenter simultanment, les routines d'interruption
correspondantes doivent avoir des valeurs de priorit dfinissant l'ordre d'excution :
PRIO=<valeur>
Si de nouveaux signaux arrivent pendant l'excution d'une routine d'interruption, cette
routine est interrompue par les routines prioritaires.
Syntaxe
SETINT(<n>) PRIO=<valeur> <NOM>
SETINT(<n>) PRIO=<valeur> <NAME> BLSYNC
SETINT(<n>) PRIO=<valeur> <NAME> LIFTFAST
Signification

SETINT(<n>) : Instruction : affectation de l'entre <n> une routine d'interruption. La
routine d'interruption affecte dmarre lorsque l'entre <n> commute.
Remarque :
L'affectation d'une nouvelle routine une entre dj affecte dsactive
automatiquement l'ancienne affectation.
Paramtre : Numro de l'entre
Type : INT
<n> :
Plage de
valeurs :
1 ... 8
PRIO= : Instruction : Dfinition de la priorit
Valeur de priorit
Type : INT
<valeur> :
Plage de
valeurs :
1 ... 128
La priorit 1 correspond la priorit maximale.
<nom> : Nom du sous-programme (routine d'interruption) qui doit tre excut.
BLSYNC : Si l'instruction SETINT est programme en mme temps que l'instruction
BLSYNC, le traitement du bloc de programme en cours continue lorsque le
signal d'interruption survient, la routine d'interruption n'tant dmarre
qu'ensuite.
LIFTFAST : Si l'instruction SETINT est programme en mme temps que LIFTFAST, un
"retrait rapide de l'outil du contour" est ralis si le signal d'interruption
survient avant le dbut de la routine d'interruption (voir "Retrait rapide du
contour (SETINT LIFTFAST, ALF) (Page 115)").
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
112 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemples
Exemple 1 : Affectation des routines d'interruption et dfinition de priorit

Code de programme Commentaire
...
N20 SETINT(3) PRIO=1 RETR_Z ; La routine d'interruption "RETR_Z" doit
dmarrer lorsque l'entre 3 commute.
N30 SETINT(2) PRIO=2 RETR_X ; La routine d'interruption "RETR_X" doit
dmarrer lorsque l'entre 2 commute.
...
Si les entres commutent simultanment, les routines d'interruption sont excutes
successivement, dans l'ordre des valeurs de priorit : d'abord "RETR_Z", puis "RETR_X".

Exemple 2 : Nouvelle affectation d'une routine d'interruption

Code de programme Commentaire
...
N20 SETINT(3) PRIO=2 RETR_Z ; La routine d'interruption "RETR_Z" doit
dmarrer lorsque l'entre 3 commute.

N120 SETINT(3) PRIO=1 RETR_X ; Affectation d'une nouvelle routine
d'interruption l'entre 3 : "RETR_X" doit
dmarrer au lieu de "RETR_Z" lorsque
l'entre 3 commute.
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 113
1.14.4 Dsactivation/activation de l'affectation d'une routine d'interruption (DISABLE,
ENABLE)
Fonction
Une instruction SETINT se dsactive avec DISABLE et se ractive avec ENABLE sans perdre
l'affectation entre routine d'interruption.
Syntaxe
DISABLE(<n>)
ENABLE(<n>)
Signification

DISABLE(<n>) : Instruction : Dsactivation de l'affectation de la routine d'interruption
l'entre <n>
ENABLE(<n>) : Instruction : Ractivation de l'affectation de la routine d'interruption
l'entre <n>
Paramtre : Numro de l'entre
Type : INT
<n> :
Plage de
valeurs :
1 ... 8
Exemple

Code de programme Commentaire
...
N20 SETINT(3) PRIO=1 RETR_Z ; La routine d'interruption "RETR_Z" doit
dmarrer lorsque l'entre 3 commute.
...
N90 DISABLE(3) ; Dsactivation de l'instruction SETINT de
N20.
...
N130 ENABLE(3) ; Ractivation de l'instruction SETINT de N20.
...
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
114 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.14.5 Suppression d'une affectation de routine d'interruption (CLRINT)
Fonction
Une affectation entre routine d'interruption dfinie avec SETINT peut tre supprime avec
CLRINT.
Syntaxe
CLRINT(<n>)
Signification

CLRINT(<n>) : Instruction : Suppression de l'affectation de la routine d'interruption
l'entre <n>
Paramtre : Numro de l'entre
Type : INT
<n> :
Plage de
valeurs :
1 ... 8
Exemple

Code de programme Commentaire
...
N20 SETINT(3) PRIO=2 RETR_Z ;
...
N50 CLRINT(3) ; L'affectation de la routine d'interruption
"RETR_Z" l'entre "3" est supprime.
...
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 115
1.14.6 Retrait rapide du contour (SETINT LIFTFAST, ALF)
Fonction
Dans le cas d'une instruction SETINT avec LIFTFAST, un retrait rapide loigne l'outil du contour
de pice lorsque l'entre commute.

La suite dpend de l'instruction SETINT, c'est--dire si celle-ci contient ou non une routine
d'interruption en plus de LIFTFAST :

Avec une routine
d'interruption :
La routine d'interruption est excute aprs le retrait rapide.
Sans routine
d'interruption :
Aprs le retrait rapide, l'usinage s'arrte avec une alarme.
Syntaxe
SETINT(<n>) PRIO=1 LIFTFAST
SETINT(<n>) PRIO=1 <NOM> LIFTFAST
Signification

SETINT(<n>) : Instruction : affectation de l'entre <n> une routine d'interruption. La
routine d'interruption affecte dmarre lorsque l'entre <n> commute.
Paramtre : Numro de l'entre
Type : INT
<n> :
Plage de
valeurs :
1 ... 8
PRIO= : Dfinition de la priorit
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
116 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Valeur de priorit
Plage de
valeurs :
1 ... 128
<valeur> :
La priorit 1 correspond la priorit maximale.
<nom> : Nom du sous-programme (routine d'interruption) qui doit tre excut.
LIFTFAST : Instruction : Retrait rapide du contour
ALF= : Instruction : Sens de dplacement programmable (figure dans le bloc de
dplacement)
Pour les possibilits de programmation avec ALF, voir chapitre "Sens de
retrait rapide du contour (Page 117)".
Conditions marginales
Comportement en cas de frame actif avec fonction miroir
Lors de la dtermination du sens de retrait, il est vrifi si un frame avec fonction miroir est
actif. Dans ce cas, la gauche et la droite sont inverses pour le sens de retrait par rapport
la direction tangentielle. Les parts directionnelles dans le sens de l'outil ne seront pas prises
en compte par la fonction miroir. Ce comportement est activ par le rglage du paramtre
machine :
MD21202 $MC_LIFTFAST_WITH_MIRROR = TRUE
Exemple
Un outil bris doit tre remplac automatiquement par un outil de rechange. L'usinage se
poursuit alors avec le nouvel outil.
Programme principal :

Programme principal Commentaire
N10 SETINT(1) PRIO=1 CHANG_O LIFTFAST ; Si l'entre 1 commute, un retrait
rapide loigne immdiatement
l'outil du contour (code n 7 pour
la correction de rayon d'outil
G41). Il est suivi de l'excution
de la routine d'interruption
"CHANG_O".
N20 G0 Z100 G17 T1 ALF=7 D1
N30 G0 X-5 Y-22 Z2 M3 S300
N40 Z-7
N50 G41 G1 X16 Y16 F200
N60 Y35
N70 X53 Y65
N90 X71.5 Y16
N100 X16
N110 G40 G0 Z100 M30

Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 117
Sous-programme :
Sous-programme Commentaire
PROC CHANG_O SAVE ; Sous-programme avec mise en mmoire
de l'tat courant
N10 G0 Z100 M5 ; Position de changement de l'outil,
arrt de la broche
N20 T11 M6 D1 G41 ; Changement d'outil
N30 REPOSL RMB M3 ; Raccostage du contour et retour au
programme principal (programmation
dans un bloc)
1.14.7 Sens de retrait rapide du contour
Dplacement de retrait
Le plan du dplacement de retrait est dtermin par les codes G suivants :
LFTXT
Le plan du dplacement de retrait est dtermin par la tangente de la trajectoire et la
direction de l'outil (prrglage).
LFWP
Le plan du dplacement de retrait est le plan de travail actif slectionn avec les
fonctions G17, G18 et G19 du code G. Le sens du dplacement de retrait est indpendant
de la tangente la trajectoire. Ceci permet de programmer un retrait rapide paraxial.
LFPOS
Retrait de l'axe introduit avec POLFMASK / POLFMLIN la position d'axe absolue programme
avec POLF.
ALF n'a aucune influence sur la direction du retrait pour plusieurs axes ainsi que pour
plusieurs axes dans un contexte linaire.
Bibliographie :
Manuel de programmation Notions de base ; chapitre : "Retrait rapide en cours de
filetage l'outil"
sens de dplacement programmable (ALF=)
Dans le plan du mouvement de retrait, la direction est programme avec ALF par pas discrets
de 45 degrs.
Les sens de dplacement possibles sont enregistrs dans la commande sous des n de
code spciaux et peuvent tre appels par le biais de ces numros.
Exemple :

Code de programme
N10 SETINT(2) PRIO=1 RETR_Z LIFTFAST
ALF=7
Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
118 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Lorsque G41 est activ (sens d'usinage gauche du contour), le retrait de l'outil est
perpendiculaire au contour.
ALF = 7
G41


Plan de rfrence pour la description du sens de dplacement avec LFTXT
Un plan est dfini au point de contact de l'outil avec le contour programm ; ce plan sert de
rfrence pour prciser le mouvement de retrait avec le numro de code correspondant.
Le plan de rfrence est dfini partir de l'axe longitudinal de l'outil (direction de
pntration) et d'un vecteur perpendiculaire ce dernier et la tangente au point de contact
de l'outil avec le contour.
Point de
contact
Point de
contact
Tangente
Tangente
Tangente
Tangente


Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 119
Numros de code pour le sens de dplacement avec LFTXT
La figure ci-dessous contient les numros de code avec les sens de dplacement en partant
du plan de rfrence.
A
x
e

d
e

p

t
r
a
t
i
o
n
Vue dans le sens de
dplacement
Sens de dplacement
Vue de dessus
45
45
5
1
8
2
8
4
G41
G42
2
6
3
4
7
1
3
5
6 7

Avec ALF=1, le retrait a lieu dans la direction de l'outil.
Avec ALF=0, la fonction de retrait rapide est dsactive.

PRUDENCE
Lorsque la correction de rayon d'outil est active, il est recommand de ne pas utiliser :
les codes 2, 3, 4 pour G41
les codes 6, 7, 8 pour G42
car, dans ces cas, l'outil se dplace vers le contour et entre en collision avec la pice.


Programmation CN flexible
1.14 Routine d'interruption (ASUP)
Notions complmentaires
120 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Numros de code pour le sens de dplacement avec LFWP
Avec LFWP, la direction dans le plan de travail est tributaire des configurations suivantes :
G17 : Plan X/Y (X/Y plane)
ALF=1: retrait en direction X
ALF=3 : retrait en direction Y
G18 : Plan Z / X
ALF=1: retrait en direction Z
ALF=3 : retrait en direction X
G19 : Plan Y/Z (Y/Z plane)
ALF=1: retrait en direction Y
ALF=3 : retrait en direction Z
1.14.8 Squence de dplacement avec des routines d'interruption
Routine d'interruption sans LIFTFAST
Les dplacements d'axe sont freins sur la trajectoire jusqu' l'arrt. Puis la routine
d'interruption dmarre.
La position d'arrt est enregistre comme position d'interruption et est accoste la fin de la
routine d'interruption dans le cas de REPOS avec RMI.
Routine d'interruption avec LIFTFAST
Les dplacements d'axe sont freins sur la trajectoire. Simultanment, le dplacement
LIFTFAST est excut comme dplacement superpos. Lorsque le dplacement le long de la
trajectoire et le dplacement LIFTFAST se sont immobiliss, la routine d'interruption dmarre.
La position o le dplacement LIFTFAST a dmarr sur le contour et o l'outil a quitt la
trajectoire est enregistre comme position d'interruption.
Avec LIFTFAST et ALF=0, le comportement de la routine d'interruption est identique celui de
la routine sans LIFTFAST.

Remarque
La distance de retrait rapide des axes gomtriques par rapport au contour est rglable dans
un paramtre machine.

Programmation CN flexible
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 121
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Fonction
Un ou plusieurs axes ou broches ne peuvent tre interpols que dans un canal. Si l'on
prvoit d'utiliser un axe alternativement dans deux canaux diffrents (par exemple dans le
cas d'un changeur de palettes), il faut d'abord le librer dans le canal actuel, puis le prendre
en charge dans l'autre canal. L'axe est permut entre les canaux.
Extensions de permutation d'axe
Un axe/broche peut tre remplac avec un arrt du prtraitement et une synchronisation
entre le prtraitement et l'excution des blocs ou encore sans arrt du prtraitement. Par
ailleurs, une permutation d'axe est galement possible via
une rotation conteneur d'axes AXCTSWE ou AXCTWED via un GET/GETD implicite.
Frame avec rotation lorsque cet axe est combin avec d'autres axes.
Actions synchrones, voir Actions synchrones au dplacement, "Permutation d'axe
RELEASE, GET".
Constructeur de la machine-outil
Tenez compte des indications du constructeur de la machine. Des paramtres machines
configurables doivent dfinir de manire univoque un axe pour la permutation d'axe dans
tous les canaux et des paramtres machines peuvent aussi modifier le comportement de la
permutation d'axe.
Syntaxe
RELEASE (nom d'axe, nom d'axe, ...) ou RELEASE (S1)
GET (nom d'axe, nom d'axe, ...) ou GET (S2)
GETD (nom d'axe, nom d'axe, ...) ou GETD (S3)
Avec GETD (GET Directly), un axe est extrait directement d'un autre canal. Cela signifie
que, pour ce GETD, il n'est pas ncessaire de programmer un RELEASE appropri dans un
autre canal. Cela signifie aussi que dsormais, une autre communication de canal doit tre
mise en place (par exemple marques wait).
Signification

RELEASE (nom d'axe, nom d'axe, ) : Dblocage de/des axe(s)
GET (nom d'axe, nom d'axe, ) : Prise en charge de/des axe(s)
GETD (nom d'axe, nom d'axe, ) : Prise en charge directe de/des axe(s)
nom d'axe : Affectation des axes dans le systme :
AX1, AX2, ou indication du nom des
axes de la machine
RELEASE(S1) : Libration des broches S1, S2,
GET(S2) : Prise en charge des broches S1, S2,
GETD(S3) : Prise en charge directe des broches S1,
S2,
Programmation CN flexible
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Notions complmentaires
122 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Demande GET sans arrt du prtraitement
Lorsque, aprs une demande GET sans arrt du prtraitement, l'axe est de nouveau
dbloqu avec RELEASE(Axe) ou WAITP(Axe), le GET qui suit entrane un GET avec arrt du
prtraitement.

PRUDENCE
Un axe ou une broche pris(e) en charge avec GET reste assign ce canal, mme aprs
un RESET de touche ou de programme.
En cas de redmarrage du programme, l'affectation des axes permuts ou des broches
permutes doit tre programme si les axes ou les broches doivent tre utiliss dans leurs
canaux d'origine.
A la mise sous tension de la CN, les axes et les broches sont affects aux canaux spcifis
dans les paramtres machine.

Exemples
Exemple 1 : permuter des axes entre deux canaux
Sur 6 axes sont utiliss pour le traitement dans le canal 1 : 1., 2., 3. et le 4e axe.
les axes 5 et 6 sont employs dans le canal 2 pour le changement de pice.
L'axe 2 doit pouvoir tre permut entre les deux canaux et, lors de la mise sous tension de la
CN, affect au canal 1.
Programme "MAIN" dans le canal 1 :
Code de programme Commentaire
INIT (2,"PERMUT2") ; Slection du programme PERMUT2 dans le canal 2.
N START (2) ; Dmarrage du programme dans le canal 2.
N GET (AX2) ; Prise en charge de l'axe AX2.
...
N RELEASE (AX2) ; Libration de l'axe AX2.
N WAITM (1,1,2) ; Attendre la marque WAIT dans les canaux 1 et 2 pour
la synchronisation dans les deux canaux.
... ; Poursuite de l'excution aprs la permutation
d'axe.
N M30

Programme "PERMUT2" dans le canal 2 :
Programmation Commentaire
N RELEASE (AX2)
N160 WAITM (1,1,2) ; Attendre la marque WAIT dans les canaux 1 et 2 pour
la synchronisation dans les deux canaux.
N150 GET (AX2) ; Prise en charge de l'axe AX2.
... ; Poursuite de l'excution aprs la permutation
d'axe.
N M30

Programmation CN flexible
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 123
Exemple 2 : permuter des axes sans synchronisation
Lorsque l'axe ne doit pas tre synchronis, GET ne gnre pas d'arrt du prtraitement.

Programmation Commentaire
N01 G0 X0
N02 RELEASE(AX5)
N03 G64 X10
N04 X20
N05 GET(AX5) ; Si aucune synchronisation n'est requise, ce bloc
sera non excutable.
N06 G01 F5000 ; Bloc non excutable.
N07 X20 ; Bloc non excutable, car position X comme dans N04.
N08 X30 ; Premier bloc excutable aprs N05.
...

Exemple 3 : activer une permutation d'axes sans arrt du prtraitement des blocs
Prrequis : La permutation d'axe sans arrt du prtraitement doit tre configure via un
paramtre machine.

Programmation Commentaire
N010 M4 S100
N011 G4 F2
N020 M5
N021 SPOS=0
N022 POS[B]=1
N023 WAITP[B) ; L'axe B devient un axe banalis.
N030 X1 F10
N031 X100 F500
N032 X200
N040 M3 S500 ; L'axe ne dclenche pas d'arrt du
prtraitement/REORG.
N041 G4 F2
N050 M5
N099 M30
Lorsque la broche ou l'axe B sont dplacs directement aprs le bloc N023 comme axe AP
par exemple sur 180 degrs puis nouveau sur 1 degr, alors cet axe redevient un axe
banalis et ne dclenche pas d'arrt du prtraitement dans le bloc N40.
Programmation CN flexible
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Notions complmentaires
124 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Condition pralable
Conditions ncessaires la permutation d'axe
L'axe doit tre dfini par le biais des paramtres machine dans tous les canaux qui
veulent utiliser cet axe.
Le canal auquel l'axe est affect lors de la mise sous tension doit tre dfini via le
paramtre machine spcifique un axe.
Description
Libration de l'axe : RELEASE
Lors de la libration de l'axe, veillez aux points suivants :
1. L'axe ne doit participer aucune transformation.
2. En cas de couplage d'axes (commande tangentielle), tous les axes du groupe doivent
tre librs.
3. Il est impossible de permuter un axe de positionnement concurrent dans cet tat.
4. Dans le cas d'un axe matre Gantry (axe de portique), tous les axes asservis sont aussi
permuts.
5. Dans le cas d'un couplage d'axes (dplacement conjugus , couplage pilote , rducteur
lectronique), seul l'axe pilote du groupe peut tre libr.
Prise en charge de l'axe : GET
La permutation d'axe devient effective avec cette instruction. Le canal dans lequel
l'instruction a t programme prend entirement en charge l'axe.
Effets de GET :
Permutation d'axe avec synchronisation :
Un axe doit toujours tre synchronis s'il a t affect entre temps un canal diffrent ou
l'AP, et qu'il n'y a pas eu synchronisation avant GET par "WAITP", G74 ou effacement de la
distance restant parcourir.
Un arrt du prtraitement a lieu (comme pour STOPRE).
L'excution du programme est interrompue jusqu' ce que la permutation d'axe soit
termine.
"GET" automatique
Si un axe est disponible par principe dans le canal, mais rendu momentanment indisponible
comme axe de canal, alors un GET est automatiquement excut. Si le ou les axes sont
dj synchroniss, aucun arrt du prtraitement n'a lieu.
Programmation CN flexible
1.15 Permutation d'axe, permutation de broche (RELEASE, GET, GETD)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 125
Paramtrer de faon modifiable le comportement de permutation d'axe
Un paramtre machine dtermine le moment des axes de la faon suivante :
La permutation d'axe entre deux canaux s'effectue automatiquement mme si l'axe a t
banalis avec WAITP (comportement tel que jusqu' prsent)
Lors de la demande d'une rotation conteneur d'axes, tous les axes assignables au canal
traiter du conteneur d'axes sont prlevs dans le canal l'aide de GET ou de GETD
implicites. Une permutation d'axe n'est ensuite nouveau autorise qu'une fois la rotation
conteneur d'axe termine.
Lorsqu'un bloc intermdiaire a t intercal, il est vrifi l'excution du bloc si une
rorganisation est ncessaire ou non. Une rorganisation est ncessaire uniquement si
les tats de l'axe figurant dans ce bloc ne correspondent pas aux tats actuels de l'axe.
A la place d'un bloc GET avec arrt du prtraitement et synchronisation entre le
prtraitement et l'excution des blocs, une permutation d'axe peut aussi avoir lieu sans
arrt du prtraitement. Il n'est alors gnr qu'un seul bloc intermdiaire avec la
demande GET. Pendant l'excution de ce bloc durant l'excution du programme, ce
dernier vrifie si les tats de l'axe dans le bloc correspondent bien aux tats d'axe
actuels.
Pour de plus amples informations sur la fonction d'une permutation d'axe ou de broche, voir
/FB2/ Manuel de fonctions d'extension; GMF, canaux, permutation d'axe (K5).
Programmation CN flexible
1.16 Transmettre un axe un autre canal (AXTOCHAN)
Notions complmentaires
126 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.16 Transmettre un axe un autre canal (AXTOCHAN)
Fonction
Avec la commande CN AXTOCHAN, un axe peut tre demand pour transmettre cet axe un
autre canal. L'axe peut aussi bien tre amen au canal correspondant par le programme
pice CN que par une action synchrone.
Syntaxe
AXTOCHAN(nom d'axe,numro de canal[,nom d'axe,numro de
canal[,...]])
Signification

AXTOCHAN : Demande d'axe pour un canal donn
nom d'axe : Affectation des axes dans le systme : X, Y, ou indication des noms
d'axe machine concerns. Le canal excuter ne doit pas tre son
canal propre et ce ne doit pas tre non plus le canal qui possde
actuellement le droit d'interpolation pour l'axe
numro de canal : Numro du canal devant tre assign l'axe


Remarque
Axe de positionnement concurrent et axe exclusivement contrl par l'AP
Un axe AP ne peut pas changer de canal en tant qu'axe de positionnement concurrent. Un
axe exclusivement contrl par l'AP ne peut pas tre assign au programme CN.
Bibliographie
Description fonctionnelle Fonctions d'extension ; axes de positionnement (P2)

Programmation CN flexible
1.16 Transmettre un axe un autre canal (AXTOCHAN)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 127
Exemple
AXTOCHAN dans le programme CN
Les axes X et Y sont connus dans le 1er et dans le 2me canal. Actuellement, c'est le canal
1 qui dtient le droit d'interpolation et le programme suivant dmarre dans le canal 1:

Code de programme Commentaire
N110 AXTOCHAN(Y,2) ; Translater l'axe Y dans le 2me canal.
N111 M0
N120 AXTOCHAN(Y,1) ; Aller reprendre l'axe Y (banalis).
N121 M0
N130 AXTOCHAN(Y,2,X,2) ; Translater l'axe Y et l'axe X dans le 2me canal
(axes banaliss).
N131 M0
N140 AXTOCHAN(Y,2) ; Translater l'axe Y dans le 2me canal (programme
CN).
N141 M0
Informations complmentaires
AXTOCHAN dans le programme CN
Un GET est alors excut uniquement en cas de demande de l'axe pour le programme CN
dans un canal spar et la modification d'tat relle est attendue. Lorsque l'axe est demand
pour un autre canal ou s'il doit devenir un axe banalis dans un canal spar, alors
seulement la demande est gnre.
AXTOCHAN partir d'une action synchrone
Lorsqu'un axe est demand pour un canal spar alors AXTOCHAN est reprsent sur un GET
partir d'une action synchrone. Dans ce cas, l'axe devient axe banalis la premire
demande pour le canal propre. la deuxime demande, l'axe est affect au programme CN
d'une manire analogue la demande GET dans le programme CN. En ce qui concerne la
demande GET partir d'une action synchrone, se reporter au chapitre "Actions synchrones
au dplacement".
Programmation CN flexible
1.17 Activation des paramtres machine (NEWCONF)
Notions complmentaires
128 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.17 Activation des paramtres machine (NEWCONF)
Fonction
L'instruction NEWCONF permet d'activer tous les paramtres machine du niveau de prise d'effet
"NEW_CONFIG". La fonction peut galement tre active dans l'interface utilisateur IHM en
actionnant la touche logicielle "Activer PM".
Lors de l'excution de la fonction "NEWCONF", un arrt implicite du prtraitement des blocs
a lieu, c'est--dire que le dplacement avec interpolation est interrompu.
Syntaxe
NEWCONF
Signification

NEWCONF : Instruction de prise d'effet de l'ensemble des paramtres machine du niveau
de prise d'effet "NEW_CONFIG"
Excution de NEWCONF pour tous les canaux depuis le programme pice
Si des paramtres machine axiaux du programme pice sont modifis puis activs avec
NEWCONF, alors l'instruction NEWCONF active uniquement les paramtres machine entranant des
modifications du canal du programme pice.

Remarque
Afin d'activer toutes les modifications de faon sre, l'instruction NEWCONF doit tre excute
dans chaque canal dans lequel doivent tre calculs les axes ou fonctions concerns par les
modifications des paramtres machine.
Avec NEWCONF, aucun paramtre machine axial n'est activ.
Un RESET axial doit tre excut pour les axes contrls par l'AP.

Exemple
Rseau de trous : raliser des trous tarauds en diffrentes positions

Code de programme Commentaire
N10 $MA_CONTOUR_TOL[AX]=1.0 ; Modifier un paramtre machine.
N20 NEWCONF ; Activer des paramtres machine.
...
Programmation CN flexible
1.18 Ecriture d'un fichier (WRITE)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 129
1.18 Ecriture d'un fichier (WRITE)
Fonction
L'instruction WRITE permet d'crire des blocs/donnes d'un programme pice la fin d'un
fichier (fichier de journal) spcifi ou la fin du programme pice en cours d'excution. Les
blocs/donnes sont ajouts la fin du fichier, c'est--dire aprs M30.

Remarque
Si le fichier dcrire avec l'instruction WRITE n'existe pas dans la CN, il est cr.
Son lieu de stockage est la mmoire statique de la CN. Pour SINUMERIK 840D sl, il s'agit
de la carte CompactFlash Card. Par rapport SINUMERIK 840D, le temps d'excution de
l'instruction WRITE augmente alors d'environ 75 ms.
S'il existe un fichier de mme nom sur le disque dur, ce fichier est cras aprs sa fermeture
(dans la CN). Aide : Modifier le nom dans la CN en utilisant la touche logicielle "Proprits"
du groupe fonctionnel "Services".

Condition
Le niveau de protection rgl doit tre suprieur ou gal au droit WRITE du fichier. Si ce
n'est pas le cas, l'accs est refus avec mission du message d'erreur (valeur en retour de
la variable d'erreur = 13).
Syntaxe
DEF INT <erreur>
WRITE(<erreur>,"<nom de fichier>","<bloc/donnes>")
Signification

WRITE : Instruction d'insertion d'un bloc ou de donnes la fin du fichier
spcifi
Variable pour la valeur d'erreur en retour
type. INT
0 Pas d'erreur
1 chemin d'accs non autoris
2 chemin d'accs introuvable
3 fichier introuvable
4 type de fichier erron
10 fichier plein
11 fichier en cours d'utilisation
12 pas de ressources disponibles
13 pas de droits d'accs
<erreur> :
Valeur :
20 autre erreur
Programmation CN flexible
1.18 Ecriture d'un fichier (WRITE)
Notions complmentaires
130 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Nom du fichier dans lequel le bloc ou les donnes indiqus doivent
tre ajouts
Type : STRING
<nom de fichier> :
Lors de la spcification du nom de fichier, les points suivants doivent
tre respects :
Le nom de fichier spcifi ne doit pas contenir de caractres
d'espacement ou de caractres de commande (caractres avec un
code ASCII 32), car sinon l'instruction WRITE est interrompue avec
le code d'erreur 1 "chemin d'accs non autoris".
Le nom du fichier peut tre spcifi avec l'indication du chemin
d'accs et l'extension de fichier :
Chemins d'accs
L'indication du chemin doit tre absolue, c'est--dire commencer
par "/".
En l'absence d'indication du chemin, le fichier enregistr dans le
rpertoire actuel (=rpertoire du programme slectionn).
Extension de fichier
Si le nom du fichier ne comporte pas de nom de domaine (_N_),
celui-ci est ajout automatiquement.
Si, dans le nom du fichier, le quatrime caractre avant la fin est
un trait de soulignement "_", les trois caractres suivants sont
interprts comme extension du fichier. Afin de pouvoir utiliser
le mme nom de fichier pour toutes les instructions de fichier,
p. ex. au moyen d'une variable de type STRING, seules les
extensions de fichier _SPF et _MPF doivent tre utilises.
Si aucune extension "_MPF" ou "_SPF" n'est spcifie, _MPF
est ajout automatiquement.
La longueur du nom du fichier ne doit pas dpasser 32 octets, la
longueur du nom du chemin 128 octets.
Exemple :
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
Bloc ou donnes ajouter dans le fichier spcifi.
Type : STRING
<bloc/donnes> :
Nota :
LF est ajout en interne, c'est--dire que la chane de texte est
rallonge d'1 caractre.
Programmation CN flexible
1.18 Ecriture d'un fichier (WRITE)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 131
Conditions marginales
Taille maximale du fichier ( constructeur de la machine !)
La taille maximale possible des fichiers de journal est rgle avec le paramtre machine :
MD11420 $MN_LEN_PROTOCOL_FILE
La taille maximale s'applique tous les fichiers crs avec l'instruction WRITE. En cas de
dpassement, un message d'erreur est mis et l'enregistrement du bloc ou des donnes
ne s'effectue pas. Si la capacit mmoire est suffisante, un nouveau fichier peut tre
cr.
Exemples
Exemple 1 : instruction WRITE sans indication absolue du chemin

Code de programme Commentaire
N10 DEF INT ERROR ; Dfinition de la
variable d'erreur.
N20 WRITE(ERROR,"TEST1","JOURNAL DU 7.2.97") ; Ecrire le texte "JOURNAL
DU 7.2.97" dans le
fichier _N_TEST1_MPF.
N30 IF ERROR ; Exploitation des
erreurs.
N40 MSG ("Erreur lors instruction WRITE :" <<ERROR)
N50 M0
N60 ENDIF
...

Exemple 2 : instruction WRITE avec indication absolue du chemin

Code de programme
...
WRITE(ERROR,"/_N_WKS_DIR/_N_PROT_WPD/_N_PROT_MPF","JOURNAL DU 7.2.97")
...
Programmation CN flexible
1.19 Suppression d'un fichier (DELETE)
Notions complmentaires
132 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.19 Suppression d'un fichier (DELETE)
Fonction
L'instruction DELETE permet de supprimer tous les fichiers, qu'ils aient t crs avec
l'instruction WRITE ou non. DELETE permet galement de supprimer les fichiers ayant t crs
avec des niveaux d'accs suprieurs.
Syntaxe
DEF INT <erreur>
DELETE(<erreur>,"<nom de fichier>")
Signification

DELETE : Instruction de suppression du fichier spcifi
Variable pour la valeur d'erreur en retour
type. INT
0 Pas d'erreur
1 chemin d'accs non autoris
2 chemin d'accs introuvable
3 fichier introuvable
4 type de fichier erron
11 fichier en cours d'utilisation
12 pas de ressources disponibles
<erreur> :
Valeur :
20 autre erreur
Programmation CN flexible
1.19 Suppression d'un fichier (DELETE)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 133
Nom du fichier supprimer
Type : STRING
<nom de fichier> :
Lors de la spcification du nom de fichier, les points suivants doivent
tre respects :
Le nom de fichier spcifi ne doit contenir ni caractres
d'espacement, ni caractres de commande (caractres avec un
code ASCII 32), car sinon l'instruction DELETE est interrompue
avec le code d'erreur 1 "chemin d'accs non autoris".
Le nom du fichier peut tre spcifi avec l'indication du chemin
d'accs et l'extension de fichier :
Chemins d'accs
L'indication du chemin doit tre absolue, c'est--dire commencer
par "/".
En l'absence d'indication du chemin, le fichier est recherch
dans le rpertoire actuel (= rpertoire du programme
slectionn).
Extension de fichier
Si le nom du fichier ne comporte pas de nom de domaine (_N_),
celui-ci est ajout automatiquement.
Si, dans le nom du fichier, le quatrime caractre avant la fin est
un trait de soulignement "_", les trois caractres suivants sont
interprts comme extension du fichier. Afin de pouvoir utiliser
le mme nom de fichier pour toutes les instructions de fichier,
p. ex. au moyen d'une variable de type STRING, seules les
extensions de fichier _SPF et _MPF doivent tre utilises.
Si aucune extension "_MPF" ou "_SPF" n'est spcifie, _MPF
est ajout automatiquement.
La longueur du nom du fichier ne doit pas dpasser 32 octets, la
longueur du nom du chemin 128 octets.
Exemple :
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
Exemple
Code de programme Commentaire
N10 DEF INT ERROR ; Dfinition de la variable d'erreur.
N15 STOPRE ; Arrt du prtraitement des blocs.
N20
DELETE(ERROR,"/_N_SPF_DIR/_N_TEST1_SPF")
; Supprimer le fichier TEST1 dans le
rpertoire du sous-programme.
N30 IF ERROR ; Exploitation des erreurs.
N40 MSG ("Erreur lors instruction DELETE :
" <<ERROR)

N50 M0
N60 ENDIF
Programmation CN flexible
1.20 Lecture des lignes d'un fichier (READ)
Notions complmentaires
134 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.20 Lecture des lignes d'un fichier (READ)
Fonction
L'instruction READ permet de lire une ou plusieurs lignes dans le fichier spcifi et
d'enregistrer les informations lues dans un tableau de type STRING. Chaque ligne lue
occupe un lment de ce tableau.

Remarque
Ce fichier doit se trouver dans la mmoire utilisateur statique du NCK (systme passif de
fichiers).

Condition
Le niveau de protection rgl doit tre suprieur ou gal au droit READ du fichier. Si ce n'est
pas le cas, l'accs est refus avec mission du message d'erreur (valeur en retour de la
variable d'erreur = 13).
Syntaxe
DEF INT <erreur>
DEF STRING[<longueur de chane>] <rsultat>[<n>,<m>]
READ(<erreur>,"<nom de fichier>",<ligne de dbut>,<nombre de
lignes>,<rsultat>)
Signification
READ : Instruction de lecture des lignes du fichier spcifi et
d'enregistrement de ces lignes dans un tableau de variables.
Variable pour la valeur d'erreur en retour (paramtre Call-By-
Reference)
type. INT
0 Pas d'erreur
1 chemin d'accs non autoris
2 chemin d'accs introuvable
3 fichier introuvable
4 type de fichier erron
13 droits d'accs insuffisants
21 Ligne inexistante (paramtres <ligne de dbut>
ou <nombre de lignes> suprieurs au nombre de
lignes du fichier spcifi).
22 Longueur de tableau de la variable de rsultat
(<rsultat>) trop petite.
<erreur> :
Valeur :
23 Zone de lignes trop grande (paramtre <nombre
de lignes> trop grand, si bien que la lecture se
poursuit au-del de la fin du fichier).
Programmation CN flexible
1.20 Lecture des lignes d'un fichier (READ)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 135
Nom du fichier lire (paramtre Call-By-Value)
Type : STRING
<nom de fichier> :
Lors de la spcification du nom de fichier, les points suivants doivent
tre respects :
Le nom de fichier spcifi ne doit contenir ni caractres
d'espacement, ni caractres de commande (caractres avec un
code ASCII 32), car sinon l'instruction READ est interrompue
avec le code d'erreur 1 "chemin d'accs non autoris".
Le nom du fichier peut tre spcifi avec l'indication du chemin
d'accs et l'extension de fichier :
Chemins d'accs
L'indication du chemin doit tre absolue, c'est--dire
commencer par "/".
En l'absence d'indication du chemin, le fichier est recherch
dans le rpertoire actuel (= rpertoire du programme
slectionn).
Extension de fichier
Si le nom du fichier ne comporte pas de nom de domaine
("_N_"), celui-ci est ajout automatiquement.
Si, dans le nom du fichier, le quatrime caractre avant la fin
est un trait de soulignement "_", les trois caractres suivants
sont interprts comme extension du fichier. Afin de pouvoir
utiliser le mme nom de fichier pour toutes les instructions de
fichier, p. ex. au moyen d'une variable de type STRING,
seules les extensions de fichier _SPF et _MPF doivent tre
utilises.
Si aucune extension "_MPF" ou "_SPF" n'est spcifie, _MPF
est ajout automatiquement.
La longueur du nom du fichier ne doit pas dpasser 32 octets, la
longueur du nom du chemin 128 octets.
Exemple :
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
Ligne de dbut de la zone de fichier lire (paramtre Call-By-Value)
Type : INT
0 Le nombre de lignes, avant la fin du fichier,
indiqu par le paramtre <nombre de lignes>
est lu.
<ligne de dbut> :
Valeur :
1 n Numro de la premire ligne lire.
Nombre de lignes lire (paramtre Call-By-Value) <nombre de lignes> :
Type : INT
Programmation CN flexible
1.20 Lecture des lignes d'un fichier (READ)
Notions complmentaires
136 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Variable de rsultat (paramtre Call-By-Reference)
Tableau de variables dans lequel le texte lu est enregistr.
Type : STRING (longueur max. : 255)
<rsultat> :
Si le nombre de lignes indiqu dans le paramtre <nombre de
lignes> est infrieur la dimension du tableau [<n>,<m>] de la
variable de rsultat, les autres lments du tableau ne sont pas
modifis.
Les caractres de commande de fin de ligne "LF" (Line Feed) ou
"CR LF" (Carrige Return Line Feed) ne sont pas enregistrs dans la
variable de rsultat.
Si la longueur de la ligne est suprieure la longueur de chane
dfinie, les lignes lues sont tronques. Il n'y a pas de signalisation
d'erreur.


Remarque
La lecture dans un fichier binaire est impossible. L'erreur "Type de fichier erron" (valeur en
retour de la variable d'erreur = 4) est signale. Les types de fichiers suivants ne sont pas
lisibles : _BIN, _EXE, _OBJ, _LIB, _BOT, _TRC, _ACC, _CYC, _NCK.

Exemple

Code de programme Commentaire
N10 DEF INT ERROR ; Dfinition de la variable
d'erreur.
N20 DEF STRING[255] RESULT[5] ; Dfinition de la variable de
rsultat.
N30 READ(ERROR,"/_N_CST_DIR/_N_TESTFILE_MPF",1,5,RESULT) ; Nom du fichier avec
identificateur de domaine,
extension de fichier et chemin.
N40 IF ERROR <>0 ; Exploitation des erreurs.
N50 MSG("ERREUR"<<ERROR<<"POUR INSTRUCTION READ")
N60 M0
N70 ENDIF
...
Programmation CN flexible
1.21 Vrification de l'existence d'un fichier (ISFILE)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 137
1.21 Vrification de l'existence d'un fichier (ISFILE)
Fonction
L'instruction ISFILE permet de vrifier si un fichier existe dans la mmoire utilisateur statique
du NCK (systme passif de fichiers).
Syntaxe
<rsultat>=ISFILE("<nom de fichier>")
Signification
ISFILE : Instruction permettant de vrifier que le fichier spcifi existe dans la
systme passif de fichiers.
Nom du fichier dont l'existence doit tre vrifie dans le systme passif
de fichiers.
Type : STRING
<nom de fichier> :
Lors de la spcification du nom de fichier, les points suivants doivent
tre respects :
Le nom de fichier spcifi ne doit contenir ni caractres
d'espacement, ni caractres de commande (caractres avec un
code ASCII 32).
Le nom du fichier peut tre spcifi avec l'indication du chemin
d'accs et l'extension de fichier :
Chemins d'accs
L'indication du chemin doit tre absolue, c'est--dire commencer
par "/".
En l'absence d'indication du chemin, le fichier est recherch
dans le rpertoire actuel (= rpertoire du programme
slectionn).
Extension de fichier
Si le nom du fichier ne comporte pas de nom de domaine (_N_),
celui-ci est ajout automatiquement.
Si, dans le nom du fichier, le quatrime caractre avant la fin est
un trait de soulignement "_", les trois caractres suivants sont
interprts comme extension du fichier. Afin de pouvoir utiliser
le mme nom de fichier pour toutes les instructions de fichier,
p. ex. au moyen d'une variable de type STRING, seules les
extensions de fichier _SPF et _MPF doivent tre utilises.
Si aucune extension "_MPF" ou "_SPF" n'est spcifie, _MPF
est ajout automatiquement.
La longueur du nom du fichier ne doit pas dpasser 32 octets, la
longueur du nom du chemin 128 octets.
Exemple :
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
Programmation CN flexible
1.21 Vrification de l'existence d'un fichier (ISFILE)
Notions complmentaires
138 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Variable de rsultat pour l'acquisition du rsultat de la vrification
type. BOOL
TRUE Fichier existant
<rsultat> :
Valeur :
FALSE Fichier inexistant
Exemple

Code de programme Commentaire
N10 DEF BOOL RESULT ; Dfinition de la variable de rsultat.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(RESULT==FALSE)
N40 MSG("FICHIER INEXISTANT")
N50 M0
N60 ENDIF
...

ou :

Code de programme Commentaire
N10 DEF BOOL RESULT ; Dfinition de la variable de rsultat.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(NOT ISFILE("TESTFILE"))
N40 MSG("FICHIER INEXISTANT")
N50 M0
N60 ENDIF
...
Programmation CN flexible
1.22 Lecture des informations fichier (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 139
1.22 Lecture des informations fichier (FILEDATE, FILETIME, FILESIZE,
FILESTAT, FILEINFO)
Fonction
Les instructions FILEDATE, FILETIME, FILESIZE, FILESTAT et FILEINFO permettent de lire des
informations fichier telles que date / heure du dernier accs en criture, taille actuelle du
fichier, tat du fichier ou l'ensemble de ces informations.

Remarque
Ce fichier doit se trouver dans la mmoire utilisateur statique du NCK (systme passif de
fichiers).

Condition
Le niveau de protection actuellement paramtr doit tre gal ou suprieur au droit show du
rpertoire principal. Si ce n'est pas le cas, l'accs est refus avec mission du message
d'erreur (valeur en retour de la variable d'erreur = 13).
Syntaxe
DEF INT <erreur>
DEF STRING[<longueur de chane>] <rsultat>
FILE....(<erreur>,"<nom de fichier>",<rsultat>)
Signification

FILEDATE : L'instruction FILEDATE fournit la date du dernier accs en criture au
fichier spcifi.
FILETIME : L'instruction FILETIME fournit l'heure du dernier accs en criture au
fichier spcifi.
FILESIZE : L'instruction FILESIZE fournit la taille actuelle du fichier spcifi.
FILESTAT : L'instruction FILESTAT fournit l'tat des droits de lecture, d'criture et
d'excution pour le fichier spcifi.
FILEINFO : L'instruction FILEINFO fournit l'ensemble des informations fichier
mises disposition par FILEDATE, FILETIME, FILESIZE et FILESTAT pour
le fichier spcifi.
Programmation CN flexible
1.22 Lecture des informations fichier (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)
Notions complmentaires
140 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Variable pour la valeur d'erreur en retour (paramtre Call-By-
Reference)
type. INT
0 Pas d'erreur
1 chemin d'accs non autoris
2 chemin d'accs introuvable
3 fichier introuvable
4 type de fichier erron
13 droits d'accs insuffisants
<erreur> :
Valeur :
22 Longueur de chane de la variable de rsultat
(<rsultat>) trop petite.
Nom du fichier partir duquel les informations du fichier doivent tre
lues.
Type : STRING
<nom de fichier> :
Lors de la spcification du nom de fichier, les points suivants doivent
tre respects :
Le nom de fichier spcifi ne doit contenir ni caractres
d'espacement, ni caractres de commande (caractres avec un
code ASCII 32), car sinon l'instruction FILE... est interrompue
avec le code d'erreur 1 "chemin d'accs non autoris".
Le nom du fichier peut tre spcifi avec l'indication du chemin
d'accs et l'extension de fichier :
Chemins d'accs
L'indication du chemin doit tre absolue, c'est--dire
commencer par "/".
En l'absence d'indication du chemin, le fichier est recherch
dans le rpertoire actuel (= rpertoire du programme
slectionn).
Extension de fichier
Si le nom du fichier ne comporte pas de nom de domaine
(_N_), celui-ci est ajout automatiquement.
Si, dans le nom du fichier, le quatrime caractre avant la fin
est un trait de soulignement "_", les trois caractres suivants
sont interprts comme extension du fichier. Afin de pouvoir
utiliser le mme nom de fichier pour toutes les instructions de
fichier, p. ex. au moyen d'une variable de type STRING, seules
les extensions de fichier _SPF et _MPF doivent tre utilises.
Si aucune extension "_MPF" ou "_SPF" n'est spcifie, _MPF
est ajout automatiquement.
La longueur du nom du fichier ne doit pas dpasser 32 octets, la
longueur du nom du chemin 128 octets.
Exemple :
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
Programmation CN flexible
1.22 Lecture des informations fichier (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 141
Variable de rsultat (paramtre Call-By-Reference)
Variable dans laquelle l'information de fichier interroge est
enregistre.
FILEDATE
Format : "jj.mm.aa"
la longueur de chane doit tre
gale 8.
FILETIME
Format : " hh:mm.ss "
la longueur de chane doit tre
gale 8.
FILESTAT
Format : "rwxsd"
(r: read, w: write, x: execute,
s: show, d: delete)
la longueur de chane doit tre
gale 5.
STRING pour :
FILEINFO
Format : "rwxsd nnnnnnnn jj.mm.aa
hh:mm:ss"
la longueur de chane doit tre
gale 32.
<rsultat> :
Type :
INT pour :
FILESIZE
La taille du fichier est indique en
octets.
Exemple

Code de programme Commentaire
N10 DEF INT ERROR ; Dfinition de la variable
d'erreur.
N20 STRING[32] RESULT ; Dfinition de la variable de
rsultat.
N30 FILEINFO(ERROR,"/_N_MPF_DIR/_N_TESTFILE_MPF",RESULT) ; Nom du fichier avec
identificateur de domaine,
extension de fichier et chemin.
N40 IF ERROR <>0 ; Exploitation des erreurs
N50 MSG("ERREUR"<<ERROR<<"POUR INSTRUCTION FILEINFO")
N60 M0
N70 ENDIF
...
L'exemple pourrait p. ex. fournir le rsultat suivant dans la variable de rsultat RESULT :
"77777 12345678 26.05.00 13:51:30"
Programmation CN flexible
1.23 Calcul du total de contrle d'un tableau (CHECKSUM)
Notions complmentaires
142 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.23 Calcul du total de contrle d'un tableau (CHECKSUM)
Fonction
L'instruction CHECKSUM permet de calculer le total de contrle d'un tableau. La comparaison
entre ce total de contrle et le rsultat d'un calcul prcdent du total de contrle permet de
dterminer une ventuelle modification de donnes du tableau.
Application
vrification si le contour d'entre a t modifi lors du chariotage.
Syntaxe
DEF INT <erreur>
DEF STRING[<longueur de chane>] <total de contrle>
DEF ... <tableau>[<n>,<m>,<o>]
<erreur>=CHECKSUM(<total de contrle>,"<tableau>"[,<colonne de
dbut>,<colonne de fin>])
Signification

CHECKSUM : Instruction de calcul du total de contrle d'un tableau
Variable pour la valeur d'erreur en retour
type. INT
0 Pas d'erreur
1 symbole introuvable
2 pas de tableau
3 l'index 1 est trop grand
4 l'index 2 est trop grand
5 type de donnes non valide
<erreur> :
Valeur :
10 dpassement de la somme de contrle
Variable pour le rsultat du calcul du total de contrle (paramtre
Call-By-Reference)
Type : STRING
<total de contrle> :
Longueur de chane
requise :
16
La somme de contrle est
reprsente sous forme de chane de
16 chiffres hexadcimaux. Aucun
caractre de formatage n'est indiqu.
Exemple : "A6FC3404E534047C"
Programmation CN flexible
1.23 Calcul du total de contrle d'un tableau (CHECKSUM)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 143
Nom du tableau dont la somme de contrle doit tre forme
(paramtre (Call-By-Value)
Type : STRING
Longueur de chane
max. :
32
<tableau> :
Les tableaux autoriss sont des tableaux de 1 3 dimensions des
types de donnes :
BOOL, CHAR, INT, REAL, STRING
Nota :
Les tableaux de paramtres machine ne sont pas admis.
<colonne de dbut> : Numro de la colonne de dbut du tableau pour le calcul du total
de contrle (paramtre facultatif)
<colonne de fin> : Numro de la colonne de fin du tableau pour le calcul du total de
contrle (paramtre facultatif)


Remarque
Les paramtres <colonne de dbut> et <colonne de fin>sont facultatifs. Lorsque aucun
indice de colonne n'est donn, la somme de contrle est forme sur tout le tableau.
Le rsultat d'une somme de contrle est toujours univoque. En cas de modification d'un
lment du tableau, la chane de caractres rsultat change galement.

Exemple

Code de programme Commentaire
N10 DEF INT ERROR ; Dfinition de la variable
d'erreur.
N20 DEF STRING[16] MY_CHECKSUM ; Dfinition de la variable de
rsultat.
N30 DEF INT MY_VAR[4,4] ; Dfinition de tableau.
N40 MY_VAR=- ...
N50 ERROR=CHECKSUM(MY_CHECKSUM,"MY_VAR",0,2)
...
L'exemple pourrait p. ex. fournir le rsultat suivant dans la variable de rsultat
MY_CHECKSUM :
"A6FC3404E534047C"
Programmation CN flexible
1.24 Arrondissement (ROUNDUP)
Notions complmentaires
144 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.24 Arrondissement (ROUNDUP)
Fonction
La fonction "ROUNDUP" arrondit les valeurs d'entre de type REAL (nombres rationnels
avec point dcimal) l'entier suprieur le plus proche.
Syntaxe
ROUNDUP(<valeur>)
Signification

ROUNDUP : Instruction d'arrondissement d'une valeur d'entre
<valeur> : Valeur d'entre du type REAL


Remarque
Les valeurs d'entre de type INT (nombres entiers) restent inchanges.

Exemples
Exemple 1 : Arrondis de diffrentes valeurs d'entre

Exemple Arrondi
ROUNDUP(3.1)
4.0
ROUNDUP(3.6)
4.0
ROUNDUP(-3.1)
-3.0
ROUNDUP(-3.6)
-3.0
ROUNDUP(3.0)
3.0
ROUNDUP(3)
3.0

Exemple 2 : ROUNDUP dans le programme CN

Code de programme
N10 X=ROUNDUP(3.5) Y=ROUNDUP(R2+2)
N15 R2=ROUNDUP($AA_IM[Y])
N20 WHEN X=100 DO Y=ROUNDUP($AA_IM[X])
...
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 145
1.25 Technique des sous-programmes
1.25.1 Gnralits
1.25.1.1 Sous-programme
Fonction
La dsignation "Sous-programme" date encore de l'poque o les programmes pice taient
rpartis de faon dtermine en programmes principaux et sous-programmes. Les
programmes principaux correspondaient aux programmes pice qui, en vue de leur
excution, taient slectionns, puis dmarrs sur la commande. Les sous-programmes
correspondaient aux programmes pice qui taient appels par le programme principal.
Cette rpartition dtermine n'a plus lieu d'tre avec la langage CN SINUMERIK actuel.
Chaque sous-programme peut par principe tre slectionn et dmarr comme programme
principal ou tre appel comme sous-programme par un autre programme pice.
Ainsi, nous dsignerons par la suite par sous-programme, un programme pice appel par
un autre programme pice.
Programme principal
Sous-
programme

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
146 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Application
Comme dans tous les langages de programmation volus, les sous-programmes dans le
langage CN servent galement transfrer des sections de programme, qui sont excutes
plusieurs fois, en tant que programmes complets, autonomes.
Les sous-programmes offrent les avantages suivants :
Augmentation de la clart et de la lisibilit des programmes
Augmentation de la qualit grce la rutilisation de sections de programme testes
Possibilit de crer des bibliothques d'usinage spcifiques
Economie de capacit mmoire
1.25.1.2 Nom de sous-programme
Rgles respecter pour les noms
Lors de l'attribution d'un nom de sous-programme, les rgles suivantes doivent tre
respectes :
Les deux premiers caractres doivent tre des lettres (A - Z, a - z).
Quant aux caractres qui suivent, il peut s'agit d'une combinaison quelconque de lettres,
chiffres (0 - 9) et trait de soulignement ("_").
Il est possible d'utiliser au maximum 31 caractres.



Remarque
Dans le langage CN SINUMERIK, aucune distinction n'est faite entre majuscules et
minuscules.

Extensions du nom de programme
De faon interne la commande, un prfixe et un postfixe sont ajouts comme extension au
nom de programme attribu lors la cration du programme :
Prfixe : _N_
Postfixe :
Programmes principaux : _MPF
Sous-programmes : _SPF
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 147
Utilisation du nom de programme
Pour l'utilisation du nom de programme, p. ex. lors d'un appel de sous-programme, toutes
les combinaisons entre prfixe, nom de programme et postfixe sont possibles.
Exemple :
Le sous-programme avec le nom "SUB_PROG" peut tre dmarr par les appels suivants :
1. SUB_PROG
2. _N_SUB_PROG
3. SUB_PROG_SPF
4. _N_SUB_PROG_SPF

Remarque
Noms identiques pour programmes principaux et sous-programmes
Si des programmes principaux (.MPF) et des sous-programmes (.SPF) portent le mme nom
de programme, il faut indiquer le postfixe respectif lors de l'utilisation du nom de programme
dans le programme pice, afin d'identifier de manire univoque le programme.

1.25.1.3 Imbrication de sous-programmes
Un programme principal peut appeler des sous-programmes qui, leur tour, appellent des
sous-programmes. L'excution des programmes est ainsi imbrique. Chaque programme
s'excute dans un niveau de programme spcifique.
Niveaux d'imbrication
Le langage CN met actuellement disposition 16 niveaux de programme. Le programme
principal s'excute toujours dans le niveau de programme suprieur, le niveau 0. Un sous-
programme s'excute toujours dans le niveau de programme directement infrieur conscutif
l'appel. Le niveau de programme 1 correspond ainsi au premier niveau de sous-
programme.
Cloisonnement des niveaux de programme :
Niveau de programme 0 : Niveau de programme principal
Niveau de programme 1 - 15 : Niveau de sous-programme 1 - 15
...
...
Progr.
princ.
Sous-
progr.
Sous-
progr.
Sous-
progr.
Niveaux de programme max. 15

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
148 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Routines d'interruption (ASUP)
Si un sous-programme est appel dans le cadre d'une routine d'interruption, il n'est pas trait
dans le niveau de programme actuel (n) dans le canal actif, mais galement dans le niveau
de programme immdiatement conscutif (n+1). Afin que ceci soit galement possible dans
le niveau de programme le plus bas, 2 niveaux de programme supplmentaires (16 et 17)
sont disponibles en ce qui concerne les routines d'interruption.
Si plus de 2 niveaux de programme sont requis, il faut en prendre compte de manire
explicite dans la structuration du programme pice excut dans le canal. Autrement dit, le
nombre maximum de niveaux de programme utilis doit ne doit pas faire en sorte qu'il n'en
existe pas suffisamment pour l'excution de l'interruption.
Si l'excution de l'interruption requiert p. ex. 4 niveaux de programme, le programme pice
doit tre structur de sorte ce qu'il occupe au maximum le niveau de programme 13. Si
une interruption a ensuite lieu, les 4 niveaux de programme (14 17) qu'elle requiert sont
disponibles.
Cycles Siemens
Les cycles Siemens requirent 3 niveaux de programme. L'appel d'un cycle Siemens doit
donc tre ralis au plus tard lors de :
l'excution du programme pice : niveau de programme 12
la routine d'interruption : niveau de programme 14
1.25.1.4 Chemin de recherche
A l'appel d'un sous-programme sans indication de chemin, la commande effectue une
recherche dans les rpertoires suivants, selon l'ordre spcifi :

Ordre Rpertoire Description
1. Rpertoire actuel Rpertoire du programme appelant
2. /_N_SPF_DIR / Rpertoire global du sous-programme
3. /_N_CUS_DIR / Cycles utilisateur
4. /_N_CMA_DIR / Cycles constructeur
5. /_N_CST_DIR / Cycles standard
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 149
1.25.1.5 Paramtres formels et paramtres effectifs
On parle de paramtres formels et de paramtres effectifs dans le contexte de la dfinition et
de l'appel de sous-programmes avec transfert de paramtres.
Paramtres formels
Lors de la dfinition d'un sous-programme, les paramtres transfrer au sous programme,
appels paramtres formels, doivent tre dfinis avec leur type et nom de paramtre.
Les paramtres formels dfinissent ainsi l'interface du sous-programme.
Exemple :

Code de programme Commentaire
PROC CONTOUR (REAL X, REAL Y) ; Paramtres formels : X et Y, tous deux du
type REAL
N20 X1=X Y1=Y ; Dplacement de l'axe X1 la position X et de
l'axe Y1 la position Y
...
N100 RET
Paramtres effectifs
A l'appel d'un sous-programme, des valeurs absolues ou variables, appels paramtres
formels, doivent tre transfres au sous-programme.
Les paramtres effectifs fournissent ainsi des valeurs effectives l'interface du sous-
programme.
Exemple :

Code de programme Commentaire
N10 DEF REAL LARGEUR ; Dfinition de variable
N20 LARGEUR=20.0 ; Affectation de variables
N30 CONTOUR (5.5, LARGEUR) ; Appel de sous-programme avec paramtres
effectifs : 5.5 et LARGEUR
...
N100 M30
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
150 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.1.6 Transfert de paramtres
Dfinition d'un sous-programme avec transfert de paramtres
La dfinition d'un sous-programme avec transfert de paramtres s'effectue avec le mot-cl
PROC et une liste complte de tous les paramtres attendus par le sous-programme.
Transfert incomplet de paramtres
A l'appel du sous-programme, il n'est pas toujours ncessaire de transfrer de manire
explicite l'ensemble des paramtres dfinis dans l'interface du sous-programme. Si un
paramtre est omis, la valeur par dfaut "0" est transfre pour ce paramtre.
Pour une identification univoque de l'ordre des paramtres, les virgules doivent cependant
toujours tre indiques comme caractres de sparation des paramtres. Le dernier
paramtre constitue une exception. Si celui-ci est omis l'appel, la dernire virgule peut
galement l'tre.
Exemple :
Sous-programme :

Code de programme Commentaire
PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Paramtres formels : X, Y et Z.
...
N100 RET

Programme principal :

Code de programme Commentaire
PROC MAIN_PROG
...
N30 SUB_PROG(1.0,2.0,3.0) ; Appel de sous-programme avec transfert complet de
paramtres :
X=1.0, Y=2.0, Z=3.0

N100 M30
Exemples d'appel de sous-programme dans N30, avec indication complte des paramtres :

N30 SUB_PROG( ,2.0,3.0) ; X=0.0, Y=2.0, Z=3.0
N30 SUB_PROG(1.0, ,3.0) ; X=1.0, Y=0.0, Z=3.0
N30 SUB_PROG(1.0,2.0) ; X=1.0, Y=2.0, Z=0.0
N30 SUB_PROG( , ,3.0) ; X=0.0, Y=0.0, Z=3.0
N30 SUB_PROG( , , ) ; X=0.0, Y=0.0, Z=0.0

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 151

PRUDENCE
Transfert de paramtres de type Call-by-Reference
Les paramtres transfrs via Call-by-Reference ne doivent pas tre omis l'appel du
sous-programme.

PRUDENCE
Type de donnes AXIS
Les paramtres du type de donnes AXIS ne doivent pas tre omis l'appel du sous-
programme.

Vrification des paramtres de transfert :
La variable systme $P_SUBPAR [ n ] avec n = 1, 2, ... permet de vrifier dans le sous-
programme, si un paramtre a t transfr de manire explicite ou omis. L'indice n se
rapporte l'ordre des paramtres formels. L'indice n = 1 se rapporte au 1er paramtre
formel, l'indice n = 2 au 2me paramtre formel, etc.
L'extrait de programme suivant illustre titre d'exemple comment raliser une vrification
pour le 1er paramtre formel :

Programmation Commentaire
PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Paramtres formels : X, Y et Z.
N20 IF $P_SUBPAR[1]==TRUE ; Vrification du 1er paramtre formel
X.
... ; Ces actions sont ralises si le
paramtre formel X a t transfr de
manire explicite.
N40 ELSE
... ; Ces actions sont ralises si le
paramtre formel X n'a pas t
transfr.
N60 ENDIF
... ; Actions gnrales
N100 RET
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
152 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.2 Dfinition d'un sous-programme
1.25.2.1 Sous-programme sans transfert de paramtres
Fonction
Dans le cas de la dfinition de sous-programmes sans transfert de paramtres, la ligne de
dfinition au dbut du programme n'est pas ncessaire.
Syntaxe

[PROC <nom de programme>]
...
Signification

PROC : Instruction de dfinition au dbut d'un programme
<nom du programme> : Nom du programme
Exemple
Exemple 1 : Sous-programme avec l'instruction PROC

Code de programme Commentaire
PROC SUB_PROG ; Ligne de dfinition
N10 G01 G90 G64 F1000
N20 X10 Y20
...
N100 RET ; Retour dans les sous-programmes

Exemple 2 : Sous-programme sans instruction PROC

Code de programme Commentaire
N10 G01 G90 G64 F1000
N20 X10 Y20
...
N100 RET ; Retour dans les sous-programmes
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 153
1.25.2.2 Sous-programme avec transfert de paramtres Call-by-Value (PROC)
Fonction
La dfinition d'un sous-programme avec transfert de paramtres Call-by-Value s'effectue
avec le mot-cl PROC, suivi du nom de programme et d'une liste complte de tous les
paramtres attendus par le sous-programme, y compris le type et le nom. L'instruction de
dfinition doit figurer dans la premire ligne du programme.
Le transfert de paramtres Call-by-Value n'a pas d'effets sur le programme appelant. Le
programme appelant transfre simplement les valeurs des paramtres effectifs au sous-
programme.
toutes les
valeurs
valides
nouvelles
valeurs
nouvelle affectation
de valeur
LONGUEUR=20
LARGEUR=15
Sous-programme
affectation d'une valeur
LONG=12
LARG=10
Programme principal
LONG, LARG


Remarque
Il est possible de transfrer au maximum 127 paramtres.

Syntaxe
PROC <nom de programme> (<type de paramtre> <nom de paramtre>,
...)
Signification

PROC : Instruction de dfinition au dbut d'un programme
<nom du programme> : Nom du programme
<type de paramtre> : Type de donnes du paramtre (p. ex. REAL, INT, BOOL)
<nom de paramtre> : Nom du paramtre

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
154 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

IMPORTANT
Le nom de programme indiqu aprs le mot-cl PROC doit correspondre avec le nom de
programme attribu dans l'interface utilisateur.

Exemple
Dfinition d'un sous-programme avec 2 paramtres de type REAL :

Code de programme Commentaire
PROC SUB_PROG (REAL LONGUEUR, REAL LARGEUR) ; Paramtre 1 : Type : REAL,
nom : LONGUEUR
Paramtre 2 : Type : REAL,
nom : LARGEUR
...
N100 RET ; Retour dans les sous-
programmes
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 155
1.25.2.3 Sous-programme avec transfert de paramtres Call-by-Reference (PROC, VAR)
Fonction
La dfinition d'un sous-programme avec transfert de paramtres Call-by-Reference
s'effectue avec le mot-cl PROC, suivi du nom de programme et d'une liste complte de tous
les paramtres de type VAR attendus par le sous-programme, y compris le type et le nom.
L'instruction de dfinition doit figurer dans la premire ligne du programme.
Le transfert de paramtres Call-by-Reference permet galement de transfrer des
rfrences des tableaux.
Le transfert de paramtres Call-by-Reference a des d'effets sur le programme appelant. Le
programme appelant transfre au sous-programme une rfrence au paramtre effectif et lui
permet ainsi d'accder directement la variable correspondante.
nouvelles
valeurs
valides
nouvelles
valeurs
valides
nouvelle affectation
de valeur
LONGUEUR=20
LARGEUR=15
Sous-programme
Programme principal
affectation de
valeur
LONGUEUR=20
LARGEUR=10
LONGUEUR, LARGEUR
LONGUEUR, LARGEUR


Remarque
Il est possible de transfrer au maximum 127 paramtres.

Remarque
Un transfert de paramtres Call-by-Reference est uniquement ncessaire si la variable
transmise a t dfinie dans le programme appelant (LUD). Il n'est pas ncessaire de
transfrer les variables globales du canal ou la CN, car il est possible d'y accder
directement partir du sous-programme.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
156 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
PROC <nom de programme> (VAR <type de paramtre> <nom de paramtre>,
...)
PROC <nom de programme> (VAR <type de tableau> <nom de tableau>
[<m>,<n>,<o>], ...)
Signification

PROC : Instruction de dfinition au dbut d'un programme
VAR : Mot-cl pour le transfert de paramtres par rfrence
<nom du programme> : Nom du programme
<type de paramtre> : Type de donnes du paramtre (p. ex. REAL, INT, BOOL)
<nom de paramtre> : Nom du paramtre
<type de tableau> : Type de donnes des lments de tableau (p. ex. REAL, INT,
BOOL)
<nom de tableau> : Nom du tableau
Dimension du tableau
A l'heure actuelle, l'utilisation de tableaux 3 dimensions est
possible
<m> : Taille du tableau dans la 1re dimension
<n> : Taille du tableau dans la 2me dimension
[<m>,<n>,<o>] :
<o> : Taille du tableau dans la 3me dimension


IMPORTANT
Le nom de programme indiqu aprs le mot-cl PROC doit correspondre avec le nom de
programme attribu dans l'interface utilisateur.

Remarque
L'utilisation de tableaux de longueur indtermine en tant que paramtres formels permet
aux sous-programmes de traiter des tableaux de longueur variable. A cet effet, la longueur
de la premire dimension n'est p. ex. pas indique dans la dfinition d'un tableau
bidimensionnel utilis en tant que paramtre formel. Par contre, la virgule doit y figurer.
Exemple : PROC <nom de programme> (VAR REAL FELD[ ,5])

Exemple
Dfinition d'un sous-programme avec 2 paramtres comme rfrence au type REAL :
Code de programme Commentaire
PROC SUB_PROG(VAR REAL LONGUEUR, VAR REAL
LARGEUR)
; Paramtre 1 : Rfrence au type : REAL, nom : LONGUEUR
Paramtre 2 : Rfrence au type : REAL, nom : LARGEUR
...
N100 RET
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 157
1.25.2.4 Sauvegarde des fonctions G modales (SAVE)
Fonction
Avec l'attribut SAVE, les fonctions G modales actives avant l'appel du sous-programme sont
sauvegardes, puis ractives la fin du sous-programme.

PRUDENCE
Interruption du contournage
Si un sous-programme avec l'attribut SAVE est appel alors que le contournage est actif, le
contournage est interrompu la fin du sous-programme (saut de retour).

Syntaxe
PROC <non de sous-programme> SAVE
Signification

SAVE : Sauvegarde des fonctions G modales avant l'appel du sous-programme et
restauration la fin du sous-programme
Exemple
La fonction G modale G91 (cote relative) est active dans le sous-programme CONTOUR. La
fonction G modale G90 (cote absolue) est active dans le programme principal. En raison de
la dfinition de SAVE dans le sous-programme, G90 agit de nouveau dans la programme
principal aprs la fin du sous-programme.
Dfinition de sous-programme :

Code de programme Commentaire
PROC CONTOUR (VALEUR 1 REELLE) SAVE ; Dfinition de sous-programme avec paramtre
SAVE
N10 G91 ... ; Fonction G modale G91 : Cote relative
N100 M17 ; Fin de sous-programme

Programme principal :

Code de programme Commentaire
N10 G0 X... Y... G90 ; Fonction G modale G90 : Cote absolue
N20 ...
...
N50 CONTOUR (12.4) ; Appel de sous-programme
N60 X... Y... ; Fonction G modale G90 ractive par SAVE
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
158 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Contraintes
Frames
Dans le cas de sous-programmes avec l'attribut SAVE, le comportement des frames dpend
du type de frame et se rgle dans les paramtres machine.
Bibliographie
Description fonctionnelle Fonctions de base ; Axes, Systmes de coordonnes, Frames (K2)
Chapitre : "Retour de sous-programme avec SAVE"
1.25.2.5 Inhibition de l'excution bloc par bloc (SBLOF, SBLON)
Fonction
Inhibition du bloc par bloc pour l'ensemble du programme
Les programmes identifis par SBLOF sont excuts en entier comme un bloc lorsque
l'excution bloc par bloc est active, autrement dit l'excution bloc par bloc est inhibe pour
l'ensemble du programme.
SBLOF figure dans la ligne PROC et est actif jusqu' la fin ou l'abandon du sous-programme.
Linstruction de retour permet de dterminer si lexcution doit ou non tre interrompue la
fin du sous-programme :

Retour avec M17 : Arrt en fin de sous-programme
Retour avec RET : Pas d'arrt en fin de sous-programme
Inhibition du bloc par bloc l'intrieur du programme
SBLOF doit tre le seul lment du bloc. A partir de ce bloc, le mode bloc par bloc est
dsactiv :
jusqu'au prochain SBLON
ou
jusqu' la fin du niveau de sous-programme actif.
Syntaxe
Inhibition du bloc par bloc pour l'ensemble du programme :
PROC ... SBLOF
Inhibition du bloc par bloc l'intrieur du programme :

SBLOF
...
SBLON
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 159
Signification

PROC : Premire instruction d'un programme
SBLOF : Instruction de dsactivation de l'excution bloc par bloc
SBLOF peut figurer dans un bloc PROC ou dans un bloc spcifique.
SBLON : Instruction d'activation de l'excution bloc par bloc
SBLON doit figurer dans un bloc spcifique.
Conditions marginales
Inhibition du bloc par bloc et affichage de bloc
DISPLOF permet d'inhiber l'affichage du bloc courant dans les cycles/sous-programmes. Si
DISPLOF est programm en liaison avec SBLOF, l'appel de cycle/sous-programme est
encore affich en cas d'arrts bloc par bloc dans le cycle/sous-programme.
Inhibition du bloc par bloc dans l'ASUP systme ou l'ASUP utilisateur
Si l'arrt bloc par bloc est inhib dans l'ASUP systme ou utilisateur par les rglages du
paramtre machine MD10702 $MN_IGNORE_SINGLEBLOCK_MASK (bit0 = 1 et bit1 =
1), la programmation de SBLON permet de ractiver l'arrt bloc par bloc dans l'ASUP.
Si l'arrt bloc par bloc est inhib dans l'ASUP utilisateur par le rglage du paramtre
machine MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP, il n'est pas possible de
ractiver l'arrt bloc par bloc dans l'ASUP en programmant SBLON.
Particularits de l'inhibition du bloc par bloc pour les diffrents types d'excution bloc par
bloc
Lorsque l'excution bloc par bloc SBL2 (arrt aprs chaque bloc du programme pice)
est active, il n'y a pas d'arrt dans le bloc SBLON si le bit 12 est mis "1" dans le
paramtre machine MD10702 $MN_IGNORE_SINGLEBLOCK_MASK (inhibition de l'arrt
bloc par bloc).
Lorsque l'excution bloc par bloc SBL3 (arrt aprs chaque bloc du programme pice
mme dans un cycle), l'instruction SBLOF est inhibe.
Exemples
Exemple 1 : Inhibition du bloc par bloc l'intrieur d'un programme

Code de programme Commentaire
N10 G1 X100 F1000
N20 SBLOF ; Dsactivation du bloc par bloc
N30 Y20
N40 M100
N50 R10=90
N60 SBLON ; Ractivation du bloc par bloc
N70 M110
N80 ...
En mode bloc par bloc, la section de programme entre N20 et N60 est excute comme un
pas.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
160 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 2 : Cycle devant apparatre comme une instruction pour l'utilisateur
Programme principal :

Code de programme
N10 G1 X10 G90 F200
N20 X-4 Y6
N30 CYCLE1
N40 G1 X0
N50 M30

CYCLE1 :

Code de programme Commentaire
N100 PROC CYCLE1 DISPLOF SBLOF ; Inhibition du bloc par bloc
N110 R10=3*SIN(R20)+5
N120 IF (R11 <= 0)
N130 SETAL(61000)
N140 ENDIF
N150 G1 G91 Z=R10 F=R11
N160 M17
Le CYCLE1 est excut lorsque l'excution bloc par bloc est active, cest--dire que la
touche Start doit tre active une fois pour le traitement du CYCLE1.

Exemple 3 :
Un ASUP lanc par l'AP pour l'activation de dcalages d'origine et de corrections d'outil
modifis ne doit pas tre visible.

Code de programme
N100 PROC NV SBLOF DISPLOF
N110 CASE $P_UIFRNUM OF 0 GOTOF _G500
1 GOTOF _G54
2 GOTOF _G55
3 GOTOF _G56
4 GOTOF _G57
DEFAULT GOTOF END
N120 _G54: G54 D=$P_TOOL T=$P_TOOLNO
N130 RET
N140 _G54: G55 D=$P_TOOL T=$P_TOOLNO
N150 RET
N160 _G56: G56 D=$P_TOOL T=$P_TOOLNO
N170 RET
N180 _G57: G57 D=$P_TOOL T=$P_TOOLNO
N190 RET
N200 END: D=$P_TOOL T=$P_TOOLNO
N210 RET
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 161
Exemple 4 : Lorsque le bit 12 = 1 dans le paramtre machine MD10702, il n'y a pas d'arrt.
Situation de dpart :
L'excution bloc par bloc est active.
MD10702 $MN_IGNORE_SINGLEBLOCK_MASK Bit12 = 1
Programme principal :

Code de programme Commentaire
N10 G0 X0 ; Arrt dans cette ligne du programme pice
N20 X10 ; Arrt dans cette ligne du programme pice
N30 CYCLE ; Bloc de dplacement gnr par le cycle.
N50 G90 X20 ; Arrt dans cette ligne du programme pice
M30

CYCLE :

Code de programme Commentaire
PROC CYCLE SBLOF ; Inhibition de l'arrt bloc par bloc
N100 R0 = 1
N110 SBLON ; Comme le bit 12 = 1 dans le paramtre machine MD10702,
il n'y a pas d'arrt dans cette ligne du programme
pice.
N120 X1 ; Dans cette ligne du programme pice, il y a arrt.
N140 SBLOF
N150 R0 = 2
RET

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
162 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 5 : Inhibition du bloc par bloc dans le cas d'un programme imbriqu
Situation de dpart :
L'excution bloc par bloc est active.
Imbrication de programmes :

Code de programme Commentaire
N10 X0 F1000 ; Dans ce bloc, il y a arrt.
N20 UP1(0)
PROC UP1(INT _NR) SBLOF ; Inhibition de l'arrt du bloc par bloc.
N100 X10
N110 UP2(0)
PROC UP2(INT _NR)
N200 X20
N210 SBLON ; Activation de l'arrt bloc par bloc.
N220 X22 ; Dans ce bloc, il y a arrt.
N230 UP3(0)
PROC UP3(INT _NR)
N300 SBLOF ; Inhibition de l'arrt du bloc par bloc.
N305 X30
N310 SBLON ; Activation de l'arrt bloc par bloc.
N320 X32 ; Dans ce bloc, il y a arrt.
N330 SBLOF ; Inhibition de l'arrt du bloc par bloc.
N340 X34
N350 M17 ; SBLOF est actif.
N240 X24 ; Dans ce bloc, il y a arrt. SBLON est
actif.
N250 M17 ; Dans ce bloc, il y a arrt. SBLON est
actif.
N120 X12
N130 M17 ; Dans ce bloc de retour, il y a arrt.
SBLOF de l'instruction PROC est actif.
N30 X0 ; Dans ce bloc, il y a arrt.
N40 M30 ; Dans ce bloc, il y a arrt.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 163
Autres informations
Blocage du bloc par bloc pour des sous-programmes asynchrones
Pour excuter un sous-programme asynchrone bloc par bloc en une seule tape, il est
ncessaire de programmer une instruction PROC avec SBLOF dans ce sous-programme
asynchrone. Ceci est galement valable pour la fonction "ASUP systme modifiable"
(MD11610 $MN_ASUP_EDITABLE).
Exemple d'ASUP systme modifiable :

Code de programme Commentaire
N10 PROC ASUP1 SBLOF DISPLOF
N20 IF $AC_ASUP==H200
N30 RET ; Pas de REPOS si changement de mode de
fonctionnement.
N40 ELSE
N50 REPOSA ; REPOS dans tous les autres cas.
N60 ENDIF
Influence sur le programme dans le bloc par bloc
En excution bloc par bloc, l'utilisateur peut excuter le programme pice bloc aprs bloc. Il
existe les types de rglage suivants :
SBL1 : Bloc par bloc IPO avec arrt aprs chaque bloc de fonction machine.
SBL2 : Bloc par bloc avec arrt aprs chaque bloc.
SBL3 : Interruption du cycle (linstruction SBLOF est inhibe par la slection de SBL3).
Inhibition du bloc par bloc dans le cas d'un programme imbriqu
Si, dans un sous-programme, SBLOF a t programm lintrieur de linstruction PROC, larrt
intervient lors du retour au sous-programme avec M17. L'excution du bloc suivant dans le
programme appelant est ainsi inhibe. Si une inhibition du bloc par bloc a t active avec
SBLOF, sans SBLOF dans un sous-programme dans l'instruction PROC, le programme s'arrte
aprs l'excution du bloc machine suivant dans le programme appelant. Si vous ne le
dsirez pas, vous devez reprogrammer SBLON dans le sous-programme juste avant le retour
(M17). Dans le cas d'un retour dans un programme de niveau suprieur avec RET l'excution
du programme n'est pas arrte.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
164 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.2.6 Inhibition de l'affichage du bloc courant (DISPLOF, DISPLON, ACTBLOCNO)
Fonction
Le bloc courant du programme s'affiche par dfaut. Dans les cycles ou sous-programmes,
l'affichage du bloc courant peut tre inhib par l'instruction DISPLOF. C'est l'appel du cycle ou
du sous-programme qui s'affiche alors la place du bloc courant. L'instruction DISPLON
permet d'annuler l'inhibition de l'affichage du bloc courant.
DISPLOF ou DISPLON sont programmes dans la ligne de programme avec l'instruction PROC et
s'appliquent l'ensemble du sous-programme et, implicitement, tous les sous-programmes
appels par celui-ci et ne contenant pas d'instruction DISPLON ou DISPLOF. Ce comportement
s'applique galement aux ASUP.
Syntaxe
PROC DISPLOF
PROC DISPLOF ACTBLOCNO
PROC DISPLON
Signification
Instruction d'inhibition de l'affichage du bloc courant.
Positionnem
ent :
A la fin de la ligne de programme avec l'instruction PROC
Prise
d'effet :
Jusqu'au retour depuis le sous-programme ou la fin du
programme.
DISPLOF :
Nota :
si, avec l'instruction DISPLOF, vous appelez d'autres sous-programmes
depuis le sous-programme, l'affichage du bloc courant y sera galement
inhib, condition que DISPLON n'y soit pas programme de manire
explicite.
Instruction d'annulation de l'inhibition de l'affichage du bloc courant
Positionnem
ent :
A la fin de la ligne de programme avec l'instruction PROC
Prise
d'effet :
Jusqu'au retour depuis le sous-programme ou la fin du
programme.
DISPLON :
Nota :
si, avec l'instruction DISPLON, vous appelez d'autres sous-programmes
depuis le sous-programme, le bloc de programme courant s'y affiche
galement, condition que DISPLOF n'y soit pas programme de manire
explicite.
ACTBLOCNO : Utilis avec l'attribut ACTBLOCNO, DISPLOF a pour effet d'afficher le numro
du bloc courant dans lequel une ventuelle alarme est survenue. Ceci
est galement valable lorsque DISPLOF est programm seul dans un
niveau de programme infrieur.
Lorsque DISPLOF est programm sans ACTBLOCNO, c'est par contre le
numro de bloc de l'appel de cycle ou de sous-programme du dernier
niveau de programme sans DISPLOF qui s'affiche.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 165
Exemples
Exemple 1 : Inhibition de l'affichage du bloc courant dans le cycle
Code de programme Commentaire
PROC CYCLE (AXIS TOMOV, REAL
POSITION) SAVE DISPLOF
; Inhibition de l'affichage du bloc courant. L'appel de cycle doit
s'afficher sa place, p. ex. : CYCLE(X,100.0)
DEF REAL DIFF ; Contenu du cycle
G01 ...
...
RET ; Retour de sous-programme. Le bloc qui suit l'appel du cycle s'affiche.

Exemple 2 : Affichage de bloc en cas d'mission d'une alarme
Sous-programme SUBPROG1 (avec ACTBLOCNO) :

Code de programme Commentaire
PROC SUBPROG1 DISPLOF ACTBLOCNO
N8000 R10 = R33 + R44
...
N9040 R10 = 66 X100 ; Dclenchement de l'alarme 12080
...
N10000 M17

Sous-programme SUBPROG2 (sans ACTBLOCNO) :

Code de programme Commentaire
PROC SUBPROG2 DISPLOF
N5000 R10 = R33 + R44
...
N6040 R10 = 66 X100 ; Dclenchement de l'alarme 12080
...
N7000 M17

Programme principal :

Code de programme Commentaire
N1000 G0 X0 Y0 Z0
N1010 ...
...
N2050 SUBPROG1 ; Message d'alarme = "12080 canal K1 bloc N9040
erreur de syntaxe dans texte R10="
N2060 ...
N2350 SUBPROG2 ; Message d'alarme = "12080 canal K1 bloc N2350
erreur de syntaxe dans texte R10="
...
N3000 M30
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
166 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 3 : annulation de l'inhibition d'affichage du bloc courant
Sous-programme SUB1 avec inhibition :

Code de programme Commentaire
PROC SUB1 DISPLOF ; Inhiber l'affichage du bloc courant dans le sous-
programme SUB1. Afficher la place le bloc avec
l'appel SUB1.
...
N300 SUB2 ; Appeler le sous-programme SUB2.
...
N500 M17

Sous-programme SUB2 sans inhibition :

Code de programme Commentaire
PROC SUB2 DISPLON ; Annuler l'inhibition d'affichage du bloc courant
dans le sous-programme SUB2.
...
N200 M17 ; Retour au sous-programme SUB1. L'affichage du bloc
courant est de nouveau inhib dans SUB1.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 167
Exemple 4 : comportement d'affichage pour diverses combinaisons DISPLON/DISPLOF
1
2
3
4
HP
sans
PROC
UP1
PROC
DlSPLOF
UP3
PROC
DlSPLON
UP4
PROC
DlSPLOF
UP6
PROC
DlSPLOF
UP7
PROC
DlSPLON
UP9
PROC
DlSPLOF
ASUP
PROC
DlSPLOF
UP2
sans
PROC
UP8
sans
PROC
Niveau de programme:
HP: Programme principal
UP: Sous-programme
ASUP: Sous-programme asynchrone (routine d'interruption)
0 1 2 3 4 5 6 7 8 9

L'affichage du bloc courant affiche les lignes du programme pice du niveau 0.
L'affichage du bloc courant affiche les lignes du programme pice du niveau 3.
L'affichage du bloc courant affiche les lignes du programme pice du niveau 3.
L'affichage du bloc courant affiche les lignes du programme pice du niveau 7/8.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
168 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.2.7 Identifier les sous-programmes avec prtraitement (PREPRO)
Fonction
Le mot-cl PREPRO permet d'identifier tous les fichiers pendant le dmarrage ralis la fin de
la ligne d'instruction PROC.

Remarque
Ce prtraitement de programme dpend des paramtres machine configurs. Veuillez tenir
compte des indications du constructeur de la machine.
Bibliographie :
Description fonctionnelle Fonctions spciales ; Conditionnement (V2)

Syntaxe
PROC PREPRO
Signification

PREPRO : Mot cl pour l'identification de tous les fichiers prtraits pendant le
dmarrage relatifs aux programmes se trouvant dans les rpertoires
cycliques
Lecture de sous-programmes avec prparation et appel de sous-programme
Les rpertoires de cycle sont traits dans le mme ordre, aussi bien la mise en route de
sous-programmes prpars avec des paramtres, qu' l'appel du sous-programme :
1. _N_CUS_DIR cycles utilisateurs
2. _N_CMA_DIR cycles constructeurs
3. _N_CST_DIR cycles standard
S'il existe des programmes CN de mme nom avec un ciblage diffrent, l'instruction PROC
trouve en premier est active et l'autre instruction PROC est ignore sans qu'il y ait de
message d'alarme.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 169
1.25.2.8 Retour de sous-programme M17
Fonction
A la fin d'un sous-programme, on trouve l'instruction de retour M17 (ou l'instruction de fin du
programme pice M30). Elle entrane le retour dans le programme appelant sur le bloc du
programme pice suivant l'appel du sous-programme.

Remarque
M17 et M30 sont traits de la mme manire dans le langage CN.

Syntaxe

PROC <nom de programme>
...
M17/M30
Conditions marginales
effet du retour du sous-programme sur le mode contournage
Si M17 (ou M30) figure seul dans le bloc du programme pice, un contournage actif dans le
canal est interrompu.
Pour viter l'interruption du contournage, M17 (ou M30) doit galement tre inscrit dans le
dernier bloc de dplacement. De plus, le paramtre machine suivant doit tre mis sur "0" :
MD20800 $MC_SPF_END_TO_VDI = 0 (pas de sortie M30/M17 dans l'interface CN/AP)
Exemple
1. Sous-programme avec M17 dans un bloc spcifique

Code de programme Commentaire
N10 G64 F2000 G91 X10 Y10
N20 X10 Z10
N30 M17 ; Retour avec interruption du contournage.

2. Sous-programme avec M17 dans le dernier bloc

Code de programme Commentaire
N10 G64 F2000 G91 X10 Y10
N20 X10 Z10 M17 ; Retour sans interruption du contournage.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
170 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.2.9 Retour de sous-programme RET
Fonction
A la place de l'instruction de M17, il est galement possible d'utiliser l'instruction RET dans le
sous-programme. RET doit tre programme dans un bloc spcifique du programme pice.
Comme M17, RET entrane le retour dans le programme appelant sur le bloc du programme
pice suivant l'appel du sous-programme.

Remarque
La programmation de paramtres permet de modifier le comportement de retour de RET (voir
"Retour paramtrable dans les sous-programmes (RET ...) (Page 171)").

Application
L'instruction RET doit tre utilise lorsqu'un contournage G64 (G641 ... G645) ne doit pas tre
interrompu par le saut de retour.
Condition
L'instruction RET peut uniquement tre utilise dans des sous-programmes n'ayant pas t
dfinis avec l'attribut SAVE.
Syntaxe

PROC <nom de programme>
...
RET
Exemple
Programme principal :

Code de programme Commentaire
PROC MAIN_PROGRAM ; Dbut du programme
...
N50 SUB_PROG ; Appel de sous-programme : SUB_PROG
N60 ...
...
N100 M30 ; Fin du programme

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 171
Sous-programme :

Code de programme Commentaire
PROC SUB_PROG
...
N100 RET ; Le retour s'effectue sur le bloc N60 dans le programme
principal.
1.25.2.10 Retour paramtrable dans les sous-programmes (RET ...)
Fonction
Depuis un sous-programme, le retour dans le programme depuis lequel le sous-programme
a t appel s'effectue gnralement avec une fin de sous-programme RET ou M17,
l'excution reprenant la ligne de programme qui suit l'appel du sous-programme.
Il existe cependant des cas o l'excution du programme doit reprendre un autre endroit.
Par exemple :
Poursuite de l'excution du programme aprs l'appel des cycles de chariotage en dialecte
ISO (aprs la description du contour).
Retour dans le programme principal partir d'un niveau de sous-programmes
quelconque (aprs un sous-programme asynchrone ASUP aussi) pour traiter une erreur.
Retour sur plusieurs niveaux de programme pour des applications spciales dans des
cycles de compilation, en dialecte ISO.
Dans ces cas, l'instruction RET est programme avec des "paramtres de retour".
Syntaxe
RET("<bloc de destination>")
RET("<bloc de destination>",<bloc suivant le bloc de destination>)
RET("<bloc de destination>",<bloc suivant le bloc de destination>,
<nombre de niveaux de retour>)
RET("<bloc de destination>", ,<nombre de niveaux de retour>)
RET("<bloc de destination>",<bloc suivant le bloc de destination>,
<nombre de niveaux de retour>,
<retour au dbut du programme>)
RET (, ,<nombre de niveaux de retour>,<retour au dbut du
programme>)
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
172 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

RET : Fin du sous-programme ( utiliser la place de M17)
Paramtre de retour 1
Indication du bloc o l'excution du programme doit
reprendre, comme destination de saut.
Si le paramtre de retour 3 n'est pas programm, la
destination de saut se trouve dans le programme depuis
lequel le sous-programme courant a t appel.
Les indications possibles sont :
"<Numro de
bloc>"
Numro du bloc de destination
"<Repre de
saut>"
Repre de saut dfinir dans le bloc
de destination.
<bloc de destination> :
"<Chane de
caractres>"
Chane de caractres devant tre
connue dans le programme (par
exemple nom de programme ou de
variable).
Les rgles suivantes sont valables
pour la programmation de la chane
de caractres dans le bloc de
destination :
Espace la fin (contrairement au
repre de saut, identifi par un ":"
la fin).
Seuls un numro de bloc et/ou un
repre de saut peuvent prcder
la chane de caractres (pas
d'instructions de programme).
Paramtre de retour 2
Se rapporte au paramtre de retour 1.
Type : INT
0 Retour au bloc indiqu dans le
paramtre de retour 1.
<bloc suivant le bloc de
destination> :
Valeur :
> 0 Retour au bloc qui suit le bloc indiqu
dans le paramtre de retour 1.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 173
Paramtre de retour 3
Nombre de niveaux qu'il faut retourner pour parvenir au
niveau de programme o l'excution du programme doit
reprendre.
Type : INT
1 L'excution du programme se poursuit
au "niveau de programme courant - 1"
(comme RET sans paramtre).
2 L'excution du programme se poursuit
au "niveau de programme courant - 2",
un niveau tant saut.
3 L'excution du programme se poursuit
au "niveau de programme courant - 3",
deux niveaux tant sauts.
Valeur :
...
<Nombre de
niveaux de retour> :
Plage de
valeurs :

1 ... 15
Paramtre de retour 4
Type : BOOL
<Retour au
dbut du programme> :
Valeur : 1 Si le retour se fait dans le programme
principal et si le dialecte ISO y est activ,
le saut se fera au dbut du programme.


Remarque
Lorsqu'une chane de caractres est indique pour la recherche du bloc de destination d'un
saut de retour de sous-programme, le systme recherche toujours d'abord un repre de saut
dans le programme appelant.
Pour qu'une chane de caractres dfinisse une destination de saut univoque, la chane de
caractres ne doit pas tre identique un nom de repre de saut, le saut de retour de sous-
programme tant sinon toujours effectu sur le repre de saut et non pas sur la chane de
caractres (voir l'exemple 2).

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
174 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Conditions marginales
Lors d'un retour sur plusieurs niveaux de programme, les instructions SAVE des diffrents
niveaux sont values.
Si un sous-programme modal est actif lors d'un retour sur plusieurs niveaux de programme
et que l'instruction de dslection MCALL est programme pour le sous-programme modal
dans l'un des sous-programmes sauts, le sous-programme modal reste actif.

PRUDENCE
Le programmeur doit veiller ce que l'excution reprenne avec les rglages modaux
corrects lors d'un retour sur plusieurs niveaux de programme. Ceci s'obtient, par exemple,
par la programmation d'un bloc principal adquat.

Exemples
Exemple 1 : Retour dans le programme principal aprs lexcution dun sous-programme
asynchrone ASUP

Programmation Commentaire
N10010 CALL "UP1" ; Niveau de programme 0 (programme
principal)
N11000 PROC UP1 ; Niveau de programme 1
N11010 CALL "UP2"
N12000 PROC UP2 ; Niveau de programme 2
...
N19000 PROC ASUP ; Niveau de programme 3 (excution d'un
sous-programme asynchrone ASUP)
...
N19100 RET("N10900", ,$P_STACK) ; Retour dans les sous-programmes
N10900 ; Retour dans le programme principal.
N10910 MCALL ; Dsactivation du sous-programme modal
N10920 G0 G60 G40 M5 ; Correction d'autres rglages modaux.

Exemple 2 : Chane de caractres (<chane de caractres>) en tant qu'indication pour la
recherche du bloc de destination
Programme principal :

Code de programme Commentaire
PROC MAIN_PROGRAM
N1000 DEF INT iVar1=1, iVar2=4
N1010 ...
N1200 subProg1 ; Appel du sous-programme "subProg1"
N1210 M2 S1000 X10 F1000
N1220 ......
N1400 subProg2 ; Appel du sous-programme "subProg2"
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 175
Code de programme Commentaire
N1410 M3 S500 Y20
N1420 ..
N1500 lab1: iVar1=R10*44
N1510 F500 X5
N1520 ...
N1550 subprog1: G1 X30 ; "subProg1" est dfini ici comme repre de
saut.
N1560 ...
N1600 subProg3 Appel du sous-programme "subProg3"
N1610 ...
N1900 M30

Sous-programme subProg1 :

Code de programme Commentaire
PROC subProg1
N2000 R10=R20+100
N2010 ...
N2200 RET("subProg2") ; Retour au bloc N1400 du programme principal

Sous-programme subProg2 :

Code de programme Commentaire
PROC subProg2
N2000 R10=R20+100
N2010 ...
N2200 RET("iVar1") ; Retour au bloc N1500 du programme principal

Sous-programme subProg3 :

Code de programme Commentaire
PROC subProg3
N2000 R10=R20+100
N2010 ...
N2200 RET("subProg1") ; Retour au bloc N1550 du programme principal
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
176 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Informations complmentaires
Les graphiques suivants mettent en vidence les diffrents effets des paramtres de retour 1
3.

1. Paramtre de retour 1 = "N200", paramtre de retour 2 = 0








...
N200 ...
...



PROC SUB1
N10 ...
...
...
...
N50 RET(N200,0)
Programme principal
Sous-programme
...
N100 SUB1
N110 G0 ...
...

Aprs l'instruction RET, l'excution du programme reprend au bloc N200 du programme
principal.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 177
2. Paramtre de retour 1 = "N200", paramtre de retour 2 = 1










PROC SUB2
N10 ...
...
...
...
N50 RET(200,1)
...
N200 ...
N210 ...
N220 ...
...
...
N100 SUB2
N110 G0 ...
...
Programme principal
Sous-programme

Aprs l'instruction RET, l'excution du programme reprend au bloc (N210) qui suit le bloc N200
dans programme principal.

3. Paramtre de retour 1 = "N220", paramtre de retour 3 = 2
...
N220 ...
...
RET("N220", ,2)
16 niveaux de programme max.
Sous-
progr.
Sous-
progr.
Sous-
progr.
Progr.
princ.
Retour
Retour

Aprs l'instruction RET, l'excution du programme retourne de deux niveaux de programme et
reprend au bloc N220.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
178 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.3 Appel d'un sous-programme
1.25.3.1 Appel de sous-programme sans transfert de paramtres
Fonction
L'appel d'un sous-programme s'effectue soit avec l'adresse L et le numro de sous-
programme, soit par indication du nom du programme.
Un programme principal peut tre appel aussi en tant que sous-programme. Dans ce cas,
la fin du programme M2 ou M30 spcifie dans le programme principal est traite comme M17
(fin du programme avec retour au programme appelant).

Remarque
Inversement, un sous-programme peut galement tre lanc comme programme principal.
Stratgie de recherche de la commande :
*_MPF existe-t-il ?
*_SPF existe-t-il ?
Il en rsulte : si le nom du sous-programme appelant est identique au nom du programme
principal, c'est le programme principal qui sera rappel. Pour viter cet effet qu'on ne dsire
gnralement pas, il convient de nommer sans aucune ambigut les programmes
principaux et les sous-programmes.

Remarque
Des sous-programmes ne ncessitant pas de transfert de paramtres peuvent galement
tre appels partir d'un fichier d'initialisation.

Syntaxe
L<numro>/<nom de programme>

Remarque
L'appel d'un sous-programme doit toujours tre programm dans le bloc CN spcifique.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 179
Signification

L : Adresse pour l'appel du sous-programme
Numro du sous-programme
Type : INT
<numro> :
Valeur : Maximum 7 chiffres en notation dcimale
Attention :
Les zros en dbut de nom ont une signification (
L123, L0123 et L00123 sont trois sous-programmes
diffrents).
<nom du programme> : Nom du sous-programme (ou programme principal)
Exemples
Exemple 1 : appel d'un sous-programme sans transfert de paramtres
N10
N10 L47
Sous-programme
ou
Programme principal
tourillon_2


Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
180 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 2 : appel d'un programme principal comme sous-programme
N50 M30
.
.
.
N10...
N10ARBRE3
N10 MPF739
suite
programme principal ou
Programme principal

1.25.3.2 Appel d'un sous-programme avec transfert de paramtres (EXTERN)
Fonction
A l'appel d'un sous-programme avec transfert de paramtres, des variables ou valeurs
peuvent tre transfres directement (sauf pour les paramtres VAR).
Les sous-programmes avec transfert de paramtres doivent tre dclars dans le
programme principal avec l'instruction EXTERN avant leur appel (par exemple en dbut de
programme). Il faut alors indiquer le nom du sous-programme et les types de variables dans
l'ordre du transfert.

PRUDENCE
Les types de variables de mme que l'ordre de transfert doivent correspondre aux
dfinitions dclares sous PROC dans le sous-programme. Les noms des paramtres
peuvent tre diffrents dans le programme principal et le sous-programme.

Syntaxe

EXTERN <nom de programme>(<type_Par1>,<type_Par2>,<type_Par3>)
...
<Nom de programme>(<valeur_Par1>,<valeur_Par2>,<valeur_Par3>)

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 181

PRUDENCE
Un appel de sous-programme doit toujours tre programm dans un bloc CN spcifique.

Signification

<nom du programme> : Nom du sous-programme
EXTERN : Mot cl pour la dclaration d'un sous-
programme avec transfert de
paramtres
Remarque :
L'instruction EXTERN ne doit tre
indique que si le sous-programme se
trouve dans le rpertoire pice ou dans
le rpertoire des sous-programmes
globaux. Il n'est pas ncessaire de
dclarer les cycles avec l'instruction
EXTERN .
<type_par1>,<type_par2>,<type_par3> : Types de variable des paramtres
transfrer, dans l'ordre du transfert
<valeur_par1>,<valeur_par2>,<valeur_par3> : Valeurs de variable des paramtres
transfrer
Exemples
Exemple 1 : appel d'un sous-programme avec dclaration pralable

Code de programme Commentaire
N10 EXTERN CADRE(REAL,REAL,REAL) ; Indication du sous-programme.
...
N40 CADRE(15.3,20.2,5) ; Appel du sous-programme avec
transfert de paramtres.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
182 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
N40 CHASSlS(15.3,20.2,5)
.
.
CHASSlS(REAL,REAL,REAL)
N10 EXTERN
Programme principal


Exemple 2 : appel d'un sous-programme sans dclaration pralable

Code de programme Commentaire
N10 DEF REAL LONGUEUR, LARGEUR, PROFONDEUR
N20
N30 LONGUEUR=15.3 LARGEUR=20.2 PROFONDEUR=5
N40 CADRE(LONGUEUR,LARGEUR,PROFONDEUR) ; ou : N40 CADRE(15.3,20.2,5)
N40 CHASSlS(15.3,20.2,5)
N40 CHASSlS
(LONGUEUR,LARGEUR,PROFONDEUR)
N30 LONGUEUR=15.3 LARGEUR=20.2
PROFONDEUR=5
ou
Programme principal

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 183
1.25.3.3 Nombre de rptitions de programme (P)
Fonction
Si un sous-programme doit tre excut plusieurs fois d'affile, le nombre souhait de
rptitions peut tre programm sous l'adresse P, dans le bloc qui contient l'appel du sous-
programme.

PRUDENCE
Appel de sous-programme avec rptition et transfert de paramtres
Les paramtres sont transfrs uniquement l'appel du sous-programme, c'est--dire lors
de la premire excution. Ils restent inchangs lors des rptitions. Si vous dsirez que les
paramtres soient modifis lors de rptitions, vous devez dfinir des conventions
correspondantes dans le sous-programme.

Syntaxe
<nom du programme> P<valeur>
Signification

<nom du programme> : appel de sous-programme
P : Adresse pour la programmation des rptitions de programme
Nombre de rptitions de programme
Type : INT
<valeur> :
Plage de valeurs
:
1 9999
(sans signe)
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
184 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple

Code de programme Commentaire
...
N40 CADRE P3 ; Le sous-programme CADRE doit tre excut trois fois
d'affile.
...
3 2 1
N40 CADRE P3
Sous-programme
Programme principal

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 185
1.25.3.4 Appel modal d'un sous-programme (MCALL)
Fonction
L'appel modal d'un sous-programme avec MCALL excute automatiquement le sous-
programme aprs chaque bloc comportant un dplacement de positionnement. Ceci permet
d'automatiser l'appel de sous-programmes qui doivent tre excuts diffrentes positions
de la pice (par exemple pour la ralisation de rseaux de trous).
La fonction se dsactive avec MCALL sans appel de sous-programme, ou par programmation
d'un nouvel appel modal pour un autre sous-programme.

PRUDENCE
Un seul appel MCALL peut tre actif un instant donne dans l'excution d'un programme.
Les paramtres sont transfrs une seule fois lors de l'appel MCALL.
Dans les conditions suivantes, le sous-programme modal appelle un dplacement mme
sans programmation :
Programmation des adresses S et F lorsque G0 ou G1 est actif.
G0/G1 programm seul dans le bloc ou avec d'autres codes G.

Syntaxe
MCALL <nom de programme>
Signification

MCALL : Instruction pour l'appel modal d'un sous-programme
<nom du programme> : Nom du sous-programme
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
186 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemples
Exemple 1 :

Code de programme Commentaire
N10 G0 X0 Y0
N20 MCALL L70 ; Appel modal d'un sous-programme.
N30 X10 Y10 ; La position programme est accoste, puis le sous-
programme L70 est excut.
N40 X50 Y50 ; La position programme est accoste, puis le sous-
programme L70 est excut.
Sous-programme
Programme principal
N40 X50 Y50
N30 X10 Y10
N20 MCALL L70
N10 G0 X0 Y0
L70


Exemple 2 :

Code de programme
N10 G0 X0 Y0
N20 MCALL L70
N30 L80
Dans cet exemple, les blocs CN ci-aprs figurent avec des axes interpolation programms
dans le sous-programme L80. L70 est appel par L80.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 187
1.25.3.5 Appel indirect de sous-programme (CALL)
Fonction
Dans certaines conditions, il peut tre ncessaire de faire appel diffrents sous-
programmes un endroit donn du programme. Pour ce faire, indiquer le nom du sous-
programme dans une variable du type STRING. L'appel du sous-programme s'effectue avec
CALL et le nom de la variable.

PRUDENCE
L'appel indirect de sous-programme ne s'adresse qu' des sous-programmes sans
transfert de paramtres. Pour l'appel direct d'un sous-programme, rangez le nom de ce
dernier dans une constante de type STRING.

Syntaxe
CALL <nom_de_programme>
Signification

CALL : Instruction pour l'appel indirect d'un sous-programme
<nom du programme> : Nom du sous-programme (variable ou constante)
Type : STRING
Exemple
Appel direct avec constante de type STRING :

Code de programme Commentaire

CALL "/_N_WKS_DIR/_N_SUBPROG_WPD/_N_PIECE1_SPF" ; Appeler directement le
sous-programme PIECE1 avec
CALL.


Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
188 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Appel indirect par le biais d'une variable :

Code de programme Commentaire

DEF STRING[100] NOM_PROG ; Dfinir une variable.
NOM_PROG="/_N_SCP_DIR/_N_SUBPROG_WPD
/_N_PIECE1_SPF"
; Affecter le sous-programme PIECE1 la
variable NOM_PROG.
CALL NOM_PROG ; Appeler indirectement le sous-programme
PIECE1 par le biais de CALL et de la
variable NOM_PROG.

1.25.3.6 Appel indirect d'un sous-programme avec indication de la section de programme
excuter (CALL BLOCK ... TO ...)
Fonction
Avec CALL et la combinaison de mots-cls BLOCK ... TO, un sous-programme est appel
indirectement et la section de programme repre par repres de dbut et de fin est
excute.
Syntaxe
CALL <nom de programme> BLOCK <repre de dbut> TO <repre de fin>
CALL BLOCK <repre de dbut> TO <repre de fin>
Signification

CALL : Instruction pour l'appel indirect d'un sous-programme
Nom du sous-programme (variable ou constante) contenant la
section de programme excuter (indication optionnelle).
<nom du programme> :
Type : STRING
Nota :
Si aucun <nom de programme> n'est programm, le systme
recherche et excute la section de programme repre par le
<repre de dbut> et le <repre de fin> dans le programme
actuel.
BLOCK ... TO ... : Combinaison de mots-cls pour l'excution indirecte d'une
section de programme
Variable indiquant le dbut de la section de programme
excuter.
<repre de dbut> :
Type : STRING
Variable indiquant la fin de la section de programme
excuter.
<repre de fin> :
Type : STRING
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 189
Exemple
Programme principal :

Code de programme Commentaire
...
DEF STRING[20] ETIQUETTE_DEBUT, ETIQUETTE_FIN ; Dfinition des variables
pour le repre de dbut et
le repre de fin.
ETIQUETTE_DEBUT="ETIQUETTE_1"
ETIQUETTE_FIN="ETIQUETTE_2"
...
CALL "CONTUR_1" BLOCK STARTLABEL TO ENDLABEL ; Appel indirect d'un sous-
programme et identification
de la section de programme
excuter.
...
Sous-programme :

Code de programme Commentaire
PROC CONTOUR_1 ...
ETIQUETTE_1 ; Repre de dbut : dbut de l'excution de la section de
programme
N1000 G1 ...
...
ETIQUETTE_2 ; Repre de fin : fin de l'excution de la section de
programme
...
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
190 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.3.7 Appel indirect d'un programme programm en langage ISO (ISOCALL)
Fonction
ISOCALL permet d'appeler de faon indirecte un programme programm en langage ISO.
L'appel active le mode ISO rgl dans les paramtres machine. Le mode d'usinage initial est
rtabli la fin du programme. En l'absence du mode ISO dans les paramtres machine,
l'appel du sous-programme s'effectuera en mode Siemens.
Pour de plus amples informations sur le mode ISO, voir :
Bibliographie :
Description fonctionnelle Dialectes ISO
Syntaxe
ISOCALL <nom_programme>
Signification

ISOCALL : Mot cl pour l'appel indirect du sous-programme activant le
mode ISO rgl dans les paramtres machine
<nom du programme> : Nom du programme programm dans un langage ISO (variable
ou constante de type STRING)
Exemple : Appel d'un contour avec programmation de cycles depuis le mode ISO

Code de programme Commentaire
0122_SPF ; Description d'un contour en mode
ISO
N1010 G1 X10 Z20
N1020 X30 R5
N1030 Z50 C10
N1040 X50
N1050 M99
N0010 DEF STRING[5] NOM_PROG = 0122 ; (Cycle de) programme pice
Siemens

...
N2000 R11 = $AA_IW[X]
N2010 ISOCALL NOM_PROG
N2020 R10 = R10+1 ; Excution du programme 0122.spf
en mode ISO
...
N2400 M30
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 191
1.25.3.8 Appel de sous-programme avec indication de chemin et paramtres (PCALL)
Fonction
PCALL permet d'appeler des sous-programmes avec indication de chemin absolu et transfert
de paramtres.
Syntaxe
PCALL <chemin/nom de programme>(<paramtre 1>, ,<paramtre n>)
Signification

PCALL : Mot-cl pour l'appel d'un sous-programme avec indication
de chemin absolu.
<chemin/nom du programme> : Indication du chemin absolu dbutant par "/", y compris
nom du sous-programme.
Si aucune indication de chemin absolu n'est faite, PCALL
se comporte comme un appel standard de sous-
programme avec descripteur de programme.
Le descripteur de programme est indiqu sans texte
prliminaire _N_ et sans extension.
Si le nom du programme doit tre programm avec texte
prliminaire et extension, il convient de le dclarer de
manire explicite avec texte prliminaire et extension
comme instruction EXTERN.
<paramtre 1>, ... : Paramtres courants selon l'instruction PROC du sous-
programme.
Exemple

Code de programme
PCALL/_N_WKS_DIR/_N_ARBRE_WPD/ARBRE(paramtre1,paramtre2, )
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
192 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
1.25.3.9 Extension du chemin de recherche pour l'appel de sous-programmes (CALLPATH)
Fonction
L'instruction CALLPATH permet d'tendre le chemin de recherche pour l'appel de sous-
programmes.
Ainsi il est galement possible d'appeler des sous-programmes d'un rpertoire pice qui
n'est pas slectionn, sans indication complte du chemin absolu du sous-programme.
L'extension du chemin de recherche s'effectue avant l'entre des cycles utilisateur
(_N_CUS_DIR).
Les vnements suivants annulent de nouveau l'extension du chemin de recherche :
CALLPATH avec espace
CALLPATH sans paramtre
Fin de programme pice
Reset
Syntaxe
CALLPATH("<chemin>")
Signification

CALLPATH : Mot cl pour l'extension programmable du chemin de recherche.
Programmation dans une ligne spcifique du programme pice.
<chemin> : Constante ou variable de type STRING contenant le chemin absolu d'un
rpertoire pour l'extension du chemin de recherche. Le chemin
commence par "/". L'entre du chemin doit tre complte, avec les
prfixes et les suffixes. La longueur maximale du chemin est de 128
octets.
Un <nom de chemin> contenant un espace ou un appel de CALLPATH
sans paramtre annule de nouveau l'instruction du chemin de recherche.
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 193
Exemple

Code de programme
CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD")
Le rglage du chemin de recherche est alors le suivant (le point 5 est nouveau) :
1. Rpertoire courant/descripteur du sous-programme
2. Rpertoire courant/descripteur du sous-programme_SPF
3. Rpertoire courant/descripteur du sous-programme_MPF
4. /_N_SPF_DIR/descripteur du sous-programme_SPF
5. /_N_WKS_DIR/_N_MYWPD/descripteur du sous-programme_SPF
6. /N_CUS_DIR/_N_MYWPD/descripteur du sous-programme_SPF
7. /_N_CMA_DIR/descripteur du sous-programme_SPF
8. /_N_CST_DIR/descripteur du sous-programme_SPF
Conditions marginales
CALLPATH vrifie l'existence relle du chemin programm. En cas d'erreur, l'excution du
programme pice est annule avec l'alarme de correcteur 14009.
CALLPATH peut galement tre programm dans les fichiers INI. L'instruction est alors
active pendant la dure d'excution du fichier INI (fichier WPD-INI ou programme
d'initialisation de donnes actives CN, par exemple frames dans le 1er canal
_N_CH1_UFR_INI). Puis le chemin de recherche est de nouveau annul.
1.25.3.10 Excution de sous-programme externe (EXTCALL)
Fonction
L'instruction EXTCALL permet de recharger et d'excuter un sous-programme partir d'une
mmoire programme externe (lecteur local, lecteur rseau, lecteur USB).
Le chemin vers le rpertoire de sous-programmes externes peut tre prrgl par la donne
de rglage :
SD42700 $SC_EXT_PROG_PATH
Avec le chemin vers le sous-programme ou le descripteur spcifi lors de l'appel EXTCALL on
obtient le chemin global du programme a appeler.

Remarque
Les sous-programmes externes ne doivent pas contenir d'instructions de saut telles que
GOTOF, GOTOB, CASE, FOR, LOOP, WHILE ou REPEAT.
Les structures IF-ELSE-ENDIF sont possibles.
Les appels de sous-programme et des appels EXTCALL imbriqus sont possibles.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
194 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
EXTCALL("<chemin/><nom de programme>")
Signification

EXTCALL : Instruction d'appel d'un sous-programme externe
Constante/variable de type STRING
<chemin/> : Indication absolue ou relative du
chemin (facultatif)
''<chemin/><nom du
programme>'' :
<nom du programme> : le nom du programme est
spcifi sans le prfixe "_N_".
L'extension de fichier ("MPF",
"SPF") peut tre ajoute au nom
du programme avec le caractre
"_" ou "." (facultatif).
Exemple :
"ARBRE"
ou
"ARBRE_SPF" ou "ARBRE.SPF"


Remarque
Spcification du chemin : dsignations abrges
Les dsignations abrges suivantes peuvent tre utilises lors de la spcification du
chemin :
LOCAL_DRIVE : pour lecteur local
CF_CARD : pour carte CompactFlash
USB : pour connexion USB en face avant
CF_CARD : et LOCAL_DRIVE : peuvent tre utiliss de faon alternative.

Remarque
Excution d'un programe externe via lecteur USB
Le transfert de programmes externes partir d'un lecteur USB externe via une interface
USB ne doit tre effectu que par le biais de l'interface X203 avec le nom "TCU_1".

IMPORTANT
Excution d'un programe externe via cl USB (sur connexion USB en face avant)
L'excution directe depuis une cl USB est dconseille.
Il n'existe aucune protection contre les problmes de contact, la dconnexion ou le retrait
accidentel de la cl USB pendant le fonctionnement.
Une dconnexion pendant lusinage dune pice provoque un arrt immdiat de l'usinage,
la pice tant par consquent endommage.

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 195
Exemple
Excution depuis le lecteur local
Programme principal :

Code de programme
N010 PROC MAIN
N020 ...
N030 EXTCALL ("EBAUCHE")
N040 ...
N050 M30

Sous-programme externe :

Code de programme
N010 PROC EBAUCHE
N020 G1 F1000
N030 X= ... Y= ... Z= ...
N040 ...
...
...
N999999 M17

Le programme principal "MAIN.MPF" se trouve dans la mmoire CN et est slectionn pour
tre excut.
Le sous-programme recharger "EBAUCHE.SPF" ou "EBAUCHE.MPF" se trouve sur le
lecteur local dans le rpertoire "/user/sinumerik/data/prog/WKS.DIR/WST1.WPD".
Le chemin vers le sous-programme est prrgl dans le SD42700 :
SD42700 $SC_EXT_PROG_PATH = "LOCAL_DRIVE:WKS.DIR/WST1.WPD"

Remarque
Sans spcification du chemin dans le SD42700, l'instruction EXTCALL pour cet exemple
devrait tre programme comme suit :
EXTCALL("LOCAL_DRIVE:WKS.DIR/WST1.WPD/EBAUCHE")

Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
196 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Informations complmentaires
Appel EXTCALL avec chemin absolu
Si le sous-programme existe sous le chemin spcifi, il est excut par l'appel EXTCALL. S'il
n'existe pas, l'excution du programme est abandonne.
Appel EXTCALL avec chemin relatif / sans chemin
Lors d'un appel EXTCALL avec chemin relatif ou sans chemin, les mmoires de programme
prsentes sont parcourues selon le modle suivant :
Lorsqu'un chemin par dfaut est spcifi dans SD42700 $SC_EXT_PROG_PATH, la
recherche s'effectue, dans un premier temps, partir de cet endroit l'aide de l'indication
fournie dans l'appel EXTCALL (nom du programme avec chemin relatif, le cas chant). Le
chemin absolu est dtermin alors par concatnation de chanes :
le chemin prrgl dans le SD42700
le caractre "/" comme caractre de sparation
et du chemin du sous-programme ou du descripteur du sous-programme, indiqu
dans EXTCALL.
Si le sous-programme appel n'est pas trouv sous le chemin prrgl, la recherche
s'effectue dans les rpertoires du disque de l'utilisateur selon les indications de l'appel
EXTCALL.
La recherche est termine lorsque le sous-programme est trouv. Si la recherche ne
donne aucun rsultat, le programme est abandonn.
Mmoire de chargement rglable (tampon FIFO)
Pour l'excution d'un programme en mode "Excution du programme externe" (programme
principal ou sous-programme), une mmoire de chargement est ncessaire dans le NCK. La
taille de la mmoire de chargement est prrgle sur 30 Ko et peut tre modifie, comme
d'autres paramtres machine concernant la mmoire, que par le constructeur de machine-
outil en cas de besoin.
Un tampon de rechargement doit tre rgl pour chacun des programmes (programmes
principaux ou sous-programmes) excuts simultanment en mode "Excution d'un
programme externe".
RESET, POWER ON
Avec RESET et POWER ON, les appels de sous-programme externes sont interrompus et
les mmoires de chargement correspondantes supprimes.
Un sous-programme slectionn pour "Excution d'un sous-programme externe" reste
slectionn aprs un RESET / une fin du programme pice. La slection est perdue aprs
POWER ON.
Bibliographie
Pour plus d'informations sur l'"Excution d'un programme externe", se rfrer la :
Description fonctionnelle Fonctions de base ; GMFC, Canal, Mode de programme,
Comportement au reset (K1)
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 197
1.25.4 Cycles
1.25.4.1 Cycles : paramtrage de cycles utilisateur
Fonction
Des cycles utilisateur peuvent tre paramtrs l'aide des fichiers cov.com et uc.com.
Le fichier cov.com est livr avec des cycles standard et peut tre tendu. Le fichier uc.com
doit tre cr par l'utilisateur.
Ces deux fichiers doivent tre chargs dans le systme passif de fichiers, dans le rpertoire
"Cycles utilisateur" ou pourvus de l'indication correspondante de chemin :
;$PATH=/_N_CUS_DIR
dans le programme.
Fichiers et chemins d'accs

cov.com_COM
Liste des cycles
uc.com
Description des appels de cycle

Adaptation de cov.com liste des cycles
Le fichier cov.com fourni avec les cycles standard a la structure suivante :
%_N_COV_COM
Nom du fichier
;$PATH=/_N_CST_DIR
Indication du chemin
;Vxxx 11.12.95 Sca Liste des cycles
Ligne de commentaires
C1(CYCLE81) Perage, centrage
Appel du 1er cycle
C2(CYCLE82) Perage, lamage
Appel du 2me cycle
...

C24(CYCLE98) Concatnation de
filetages
Appel du dernier cycle
M17
Fin de fichier
Syntaxe
Pour tout nouveau cycle ajouter, il y a lieu d'insrer une ligne dont la syntaxe est la
suivante :
C<Numro> (<Nom du cycle>) Texte de commentaire
Numro : un nombre entier quelconque qui n'a pas encore t utilis dans le fichier ;
Nom du cycle : le nom du cycle insrer
Texte de commentaire : un commentaire au choix, relatif au cycle
Exemple :
C25 (MON_CYCLE_1) Cycle_utilisateur_1
C26 (CYCLE_SPECIAL)
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
198 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple de fichier uc.com - Description des cycles utilisateur
L'explication qui suit est le dveloppement de l'exemple prcdent :
Pour les deux cycles suivants, un nouveau paramtrage doit tre cr :

Programmation Commentaire
PROC MON_CYCLE_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4)
Le cycle contient les paramtres suivants :
PAR1 : ; Rel compris dans la plage -1000.001 <= PAR2 <= 123.456,
prrglage 100
PAR2 : ; Nombre entier positif compris dans la plage 0 <= PAR3 <=
999999, prrglage 0
PAR3 : ; 1 caractre ASCII
PAR4 : ; Chane de caractres de longueur 10 pour un nom de sous-
programme
...
M17 ;


Programmation Commentaire
PROC CYCLE_SPECIAL (REAL VALEUR1, INT VALEUR2)
Le cycle contient les paramtres suivants :
VALEUR1 : ; rel sans limitation de plage de valeurs ni prrglage
VALEUR2 : ; Nombre entier sans limitation de plage de valeurs ni
prrglage
...
M17 ;

Fichier uc.com correspondant :

Programmation
%_N_UC_COM
;$PATH=/_N_CUS_DIR
//C25(MON_CYCLE_1) Cycle_utilisateur_1
(R/-1000.001 123.456 / 100 /paramtre_2 du cycle)
(I/0 999999 / 1 / nombre entier)
(C//"A" / caractre)
(S///nom du sous-programme)
//C26(CYCLE_SPECIAL)
(R///longueur totale)
(I/*123456/3/type d'usinage)
M17
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 199
Exemple de deux cycles
Masque d'affichage pour le cycle MON_CYCLE_1
1
100
Paramtre 2 du cycle
nombre entier
caractre
sous-programmes

Masque d'affichage pour le cycle CYCLE_SPECIAL
Type dusinage
Longueur totale 100
1

Description de la syntaxe pour le fichier uc.com - Description des cycles utilisateur
Ligne d'en-tte propre chaque cycle :
identique au fichier cov.com, prcde de "//"
//C <Numro> (<Nom du cycle>) Texte de commentaire
Exemple :
//C25 (MON_CYCLE_1) Cycle_utilisateur_1
Ligne de description pour chaque paramtre :
(<Identificateur pour type de donne> / <Valeur minimale> <Valeur maximale>
/ <Prrglage> /<Commentaire>)
Programmation CN flexible
1.25 Technique des sous-programmes
Notions complmentaires
200 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Identificateur pour type de donne :

R pour Real
I pour Integer
C pour un caractre
S pour une chane de caractres

valeur minimale, maximale (facultatif)
Valeurs limites de la valeur introduire contrles lors de l'introduction ; les valeurs en
dehors de cette plage ne peuvent pas tre introduites. On peut aussi indiquer des valeurs de
slection auxquelles on pourra accder avec la touch de basculement ; celles-ci seront
scrutes en commenant par "*", d'autres valeurs ne sont alors pas autorises.
Exemple :
(I/*123456/1/type d'usinage)
Pour les types Chane de caractres et Caractre, il n'y a pas de limite.
Prrglage (facultatif)
C'est la valeur qui est prrgle dans le masque correspondant lors de l'appel du cycle ; elle
peut tre modifie par l'oprateur.
Commentaire
C'est un texte comportant 50 caractres au maximum qui est affich dans le masque d'appel
du cycle, devant le champ d'introduction du paramtre.
Programmation CN flexible
1.26 Macroprogrammation (DEFINE ... AS)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 201
1.26 Macroprogrammation (DEFINE ... AS)

PRUDENCE
Les macro-instructions peuvent entraner une forte modification du langage de
programmation de la CN ! Par consquent, utiliser les macro-instructions avec prcaution !

Fonction
Une macro-instruction runit diffrentes instructions en une nouvelle instruction globale qui a
son propre nom. Des fonctions G, M et H et des sous-programmes L peuvent galement
tre dfinis sous forme de macro-instructions. En appelant la macro-instruction pendant
l'excution du programme, les instructions programmes dans la macro-instruction sont
excutes l'une aprs l'autre.
Application
Les suites d'instructions qui reviennent souvent sont programmes en une seule fois sous la
forme d'une macro-instruction dans un bloc spcifique (fichier de macro-instructions) ou bien
une seule fois en dbut de programme. La macro-instruction peut alors tre appele et
excute dans tout programme principal ou sous-programme.
Activation
Pour pouvoir utiliser les macro-instructions d'un fichier de macro-instructions dans le
programme CN, il faut charger ce fichier dans la CN.
Syntaxe
Dfinition d'une macro-instruction :
DEFINE <non de macro> AS <instruction 1> <instruction 2> ...
Appel dans le programme CN :
<Nom de macro>
Signification

DEFINE ... AS : Combinaison de mots cls pour la dfinition d'une macro-
instruction
<nom de macro> : Nom de la macro-instruction
Seuls des descripteurs sont autoriss comme noms de macro-
instructions.
Le nom de la macro-instruction permet de l'appeler depuis le
programme CN.
<instruction> : Instruction de programmation devant figurer dans la macro-
instruction.
Programmation CN flexible
1.26 Macroprogrammation (DEFINE ... AS)
Notions complmentaires
202 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Rgles de dfinition des macro-instructions
Dans une macro-instruction, vous pouvez dfinir des descripteurs, des fonctions G, M, H
et des noms de programme L quelconques.
Les macro-instructions peuvent galement tre dfinies dans le programme CN.
Des macro-instructions de fonctions G ne peuvent tre dfinies qu'au niveau de la CN,
dans le bloc de macro-instructions.
Les fonctions H et L sont programmables deux chiffres.
Les fonctions M et G sont programmables trois chiffres.

PRUDENCE

Les mots-cls et les noms rservs ne doivent pas tre dfinis en surnombre avec des
macro-instructions.

Conditions marginales
L'imbrication de macro-instructions n'est pas possible.
Exemples
Exemple 1 : Macro-instruction dfinie en dbut de programme

Code de programme Commentaire
DEFINE LIGNE AS G1 G94 F300 ; Dfinition de la macro-instruction
...
...
N70 LINIE X10 Y20 ; Appel de la macro-instruction
...

Exemple 2 : Dfinitions de macro-instruction dans un fichier de macro-instructions

Code de programme Commentaire
DEFINE M6 AS L6 ; Lors du changement d'outil, un sous-programme qui
se charge du transfert de donnes ncessaire est
appel. La fonction M de changement d'outil (par
exemple M106) proprement dite est sortie dans le
sous-programme.
DEFINE G81 AS DRILL(81) ; Redfinition de la fonction G-DIN.
DEFINE G33 AS M333 G333 ; La synchronisation avec l'AP est requise pour le
filetage. La fonction G33 initiale a t renomme
en G333 par un PM, si bien que la programmation
ne change pas pour l'utilisateur.

Programmation CN flexible
1.26 Macroprogrammation (DEFINE ... AS)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 203
Exemple 3 : Fichier externe de macro-instructions
Aprs le chargement du fichier externe de macro-instructions dans la commande, il est
ncessaire de charger ce fichier dans la CN. Les macro-instructions ne peuvent tre
utilises dans le programme CN qu'ensuite.

Code de programme Commentaire
%_N_UMAC_DEF
;$PATH=/_N_DEF_DIR ; Macro-instructions personnalises
DEFINE PI AS 3.14
DEFINE TC1 AS M3 S1000
DEFINE M13 AS M3 M7 ; Broche sens horaire, arrosage en marche
DEFINE M14 AS M4 M7 ; Broche sens antihoraire, arrosage en marche
DEFINE M15 AS M5 M9 ; Arrt broche, arrt arrosage
DEFINE M6 AS L6 ; Appel du programme de changement d'outil
DEFINE G80 AS MCALL ; Dsactivation du cycle de perage
M30
Programmation CN flexible
1.26 Macroprogrammation (DEFINE ... AS)
Notions complmentaires
204 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 205
Gestion des fichiers et programmes
2
2.1 Mmoire de programmes
Fonction
Les fichiers et programmes (p. ex. programmes principaux et sous-programmes, dfinitions
de macros) sont stocks de manire permanente dans la mmoire de programme (
systme de fichiers passif).
Bibliographie :
Description fonctionnelle Fonctions d'extension ; configuration de la mmoire (S7)
A cot de ceux-ci, il y a un certain nombre de types de fichiers qui peuvent y tre stocks de
faon provisoire pour tre transfrs, sur demande (par exemple lors de la ralisation d'une
pice dtermine) dans la mmoire de travail (par exemple pour des raisons d'initialisation).
_N_COM_DlR _N_WKS_DlR _N_MPF_DlR _N_SPF_DlR _N_DEF_DlR _N_CST_DlR _N_CMA_DlR _N_CUS_DlR
_N_..._...
_N_L1_SPF
_N_MPF123_MPF
_N_WELLE
_N_PART2_COM
_N_PART2_UFR
_N_PART2_lNl
_N_WELLE_SEA
_N_WELLE_lNl
_N_PART2_SPF
_N_PART1_SPF
_N_PART2_MPF
_N_WELLE_MPF
_N_MPF123_WPD _N_WELLE_WPD
_N_...
_N_..._MPF
_N_MOV_MPF
_N_MPF1_MPF
_N_..._SPF
_N_GLOB_SPF
_N_..._SPF
_N_L199_SPF
_N_..._SPF
_N_POCKET1_SPF
_N_GUD9_DEF
...
_N_GUD4_DEF
_N_UGUD_DEF
_N_MGUD_DEF
_N_SGUD_DEF
_N_UMAC_DEF
_N_MMAC_DEF
_N_SMAC_DEF
...
Noms gris : attribus par l'utilisateur
Noms noirs : existants et fixes
Mmoire de programmes

Gestion des fichiers et programmes
2.1 Mmoire de programmes
Notions complmentaires
206 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Rpertoires standard
Les rpertoires suivants sont crs en version standard :

Rpertoire Contenu
_N_DEF_DIR Blocs de donnes et blocs de macros
_N_CST_DIR Cycles standard
_N_CMA_DIR Cycles constructeur
_N_CUS_DIR Cycles utilisateur
_N_WKS_DIR Pices
_N_SPF_DIR Sous-programmes globaux
_N_MPF_DIR Programmes principaux
_N_COM_DIR Commentaires
Types de fichiers
Les types de fichiers suivants peuvent tre introduits dans la mmoire de programmes :

Type de fichier Description
nom_MPF Programme principal
nom_SPF Sous-programme
Nom_TEA Paramtres machine
Nom_SEA Donnes de rglage
Nom_TOA Corrections d'outils
Nom_UFR Dcalages d'origine / frames
Nom_INI Fichier d'initialisation
Nom_GUD Donnes utilisateur globales
Nom_RPA Paramtres R
Nom_COM Commentaire
Nom_DEF Dfinitions pour donnes utilisateur globales et macro-
instructions
Catalogue des pices (_N_WKS_DIR)
Le catalogue des pices existe en version standard dans la mmoire de programmes sous
la dsignation _N_WKS_DIR. Il contient les rpertoires pice pour toutes les pices que vous
avez programmes.
Gestion des fichiers et programmes
2.1 Mmoire de programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 207
Catalogues des pices ( ..._WPD)
Pour une gestion plus aise des donnes et des programmes, il est possible de regrouper
certaines donnes et certains programmes ou de les ranger dans des rpertoires pice
distincts.
Un rpertoire pice contient tous les fichiers ncessaires pour l'usinage d'une pice. Ceux-ci
peuvent tre des programmes principaux, des sous-programmes, tous programmes
d'initialisation et fichiers de commentaires.
Les programmes d'initialisation sont excuts une seule fois aprs la slection du
programme avec le premier lancement du programme pice (selon le paramtre machine
PM11280 $MN_WPD_INI_MODE).
Exemple :
Le rpertoire pice _N_ARBRE_WPD, qui a t cr pour la pice ARBRE, contient les
fichiers suivants :

Fichier Description
_N_ARBRE_MPF Programme principal
_N_PART2_MPF Programme principal
_N_PART1_SPF Sous-programme
_N_PART2_SPF Sous-programme
_N_ARBRE_INI Programme gnral d'initialisation des donnes pour la pice
_N_ARBRE_SEA Programme d'initialisation des donnes de rglage
_N_PART2_INI Programme gnral d'initialisation des donnes pour le programme partie 2
_N_PART2_UFR Programme d'initialisation des donnes frame pour le programme { partie 2
_N_ARBRE_COM Fichier de commentaires
Cration de rpertoires pice sur un PC externe
La procdure dcrite ci-dessous est excute un ordinateur personnel externe. Vous
trouverez toutes les informations utiles pour grer les fichiers et les programmes (du PC la
commande) partir de la commande, dans votre manuel d'utilisation.

Cration de catalogue de pices avec le chemin ($PATH=)
Dans la deuxime ligne du fichier, vous spcifiez le chemin de destination sous $PATH=. Le
fichier est ensuite rang sous le chemin indiqu.
Exemple :

Code de programme
%_N_ARBRE_MPF
; $PATH=/_N_WKS_DIR/_N_ARBRE_WPD
N10 G0 X Z
...
M2
Le fichier _N_ARBRE_MPF est cre dans le rpertoire /_N_WKS_DIR/_N_ARBRE_WPD.

Gestion des fichiers et programmes
2.1 Mmoire de programmes
Notions complmentaires
208 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Cration de catalogue de pices sans chemin
Sans indication de chemin, les fichiers avec l'extension _SPF sont crs dans le rpertoire
/_N_SPF_DIR, les fichiers avec l'extension _INI dans le rpertoire de travail et tous les
autres fichiers dans le rpertoire /_N_MPF_DIR.
Exemple :

Code de programme
%_N_ARBRE_SPF
...
M17
Le fichier _N_ARBRE_SPF est cr dans le rpertoire /_N_SPF_DIR.
Slection d'une pice pour excution
Un rpertoire pice peut tre slectionn dans un canal en vue de son excution. S'il existe
dans ce rpertoire un programme principal de mme nom ou un seul programme principal
(_MPF), il sera slectionn automatiquement pour l'excution.
Bibliographie :
/BAD/ Manuel d'utilisation HMI Advanced ; Chapitres "Liste de tches" et "Slectionner un
programme pour tre excut"
Chemin de recherche pour l'appel de sous-programmes
Si le chemin d'accs n'est pas indiqu de faon explicite dans le programme pice lors de
l'appel d'un sous-programme (ou d'un fichier d'initialisation), la recherche a lieu selon un
chemin prdfini.

Appel du sous-programme avec chemin absolu
Exemple :

Code de programme
...
CALL"/_N_CST_DIR/_N_CYCLE1_SPF"
...

Appel du sous-programme sans chemin absolu
En rgle gnrale, les programmes sont appels sans indication de chemin.
Exemple :

Code de programme
...
CYCLE1
...
Gestion des fichiers et programmes
2.1 Mmoire de programmes
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 209

Selon le programme appel, les rpertoires sont parcourus dans l'ordre suivant :

N Rpertoire Description
1 rpertoire courant / nom Rpertoire pice ou rpertoire standard _N_MPF_DIR
2 rpertoire courant / nom_SPF
3 rpertoire courant / nom_MPF
4 /_N_SPF_DIR / nom_SPF Sous-programmes globaux
5 /_N_CUS_DIR / nom_SPF Cycles utilisateur
6 /_N_CMA_DIR / nom_SPF Cycles constructeur
7 /_N_CST_DIR / nom_SPF Cycles standard
Programmation des chemins de recherche pour l'appel de sous-programmes (CALLPATH)
L'extension du chemin de recherche pour l'appel de sous-programmes se fait avec
l'instruction CALLPATH.
Exemple :

Code de programme
CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD")
...
Le chemin de recherche est consign avant la position 5 (cycle utilisateur) conformment
la programmation indique.
Pour de plus amples informations sur le chemin de recherche programmable pour l'appel de
sous-programmes avec CALLPATH, voir chapitre "Extension du chemin de recherche pour
l'appel de sous-programmes avec CALLPATH".
Gestion des fichiers et programmes
2.2 Mmoire de travail (CHANDATA, COMPLETE, INITIAL)
Notions complmentaires
210 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
2.2 Mmoire de travail (CHANDATA, COMPLETE, INITIAL)
Fonction
La mmoire de travail contient les donnes systme et les donnes utilisateur courantes qui
permettent la commande de fonctionner (systme actif de fichiers). Par exemple :
Paramtres machine actifs
Donnes de correction d'outil
Dcalages d'origine
...
programmes d'initialisation
Les programmes d'initialisation servent l'initialisation des donnes de la mmoire de
travail. Les types de fichier suivants peuvent tre utiliss :

Type de fichier Description
Nom_TEA Paramtres machine
Nom_SEA Donnes de rglage
Nom_TOA Corrections d'outils
Nom_UFR Dcalages d'origine / frames
Nom_INI Fichier d'initialisation
Nom_GUD Donnes utilisateur globales
Nom_RPA Paramtres R
Le manuel d'utilisation de l'interface utilisateur contient des informations sur tous les types
de fichier.
Zones de donnes
Vous pouvez intgrer les donnes dans diffrentes zones au sein desquelles elles doivent
tre valides. Ainsi, une commande peut disposer de plusieurs canaux ou, d'une manire
gnrale, galement de plusieurs axes.
La rpartition est la suivante :

identificateur Zones de donnes
NCK Donnes spcifiques NCK
CH<n> Donnes spcifiques un canal (<n> indique le numro de canal)
AX<n> Donnes spcifiques un axe (<n> indique le numro de l'axe machine)
TO Donnes d'outil
COMPLETE Toutes les donnes
Gestion des fichiers et programmes
2.2 Mmoire de travail (CHANDATA, COMPLETE, INITIAL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 211
Cration d'un programme d'initialisation sur PC externe
A l'aide des identificateurs des zones de donnes et des types de donnes, vous pouvez
dterminer les zones considrer comme un ensemble lors de la sauvegarde des donnes :

_N_AX5_TEA_INI Paramtres machine pour l'axe 5
_N_CH2_UFR_INI Frames du canal 2
_N_COMPLETE_TEA_INI Tous les paramtres machine
Aprs la mise en service de la commande, un enregistrement garantissant un
fonctionnement correct de cette dernire est prsent dans la mmoire de travail.
Procdure dans le cas des commandes multicanaux (CHANDATA)
CHANDATA(<numro de canal>) pour plusieurs canaux est uniquement autoris dans le fichier
_N_INITIAL_INI. C'est le fichier de mise en service avec lequel toutes les donnes de la
commande sont initialises.

Code de programme Commentaire
%_N_INITIAL_INI
CHANDATA(1)
; Affectation des axes machine au canal 1 :
$MC_AXCONF_MACHAX_USED(0) = 1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
CHANDATA(2)
; Affectation des axes machine au canal 2 :
$MC_AXCONF_MACHAX_USED[0]=4
$MC_AXCONF_MACHAX_USED[1]=5
CHANDATA(1)
; Paramtres machine axiaux :
; Fentre d'arrt prcis grossier :
$MA_STOP_LIMIT_COARSE[AX1]=0.2 ; Axe 1
$MA_STOP_LIMIT_COARSE[AX2]=0.2 ; Axe 2
; ; Fentre d'arrt prcis fin :
$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Axe 1
$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Axe 2


PRUDENCE
Instruction CHANDATA
Dans le programme pice, l'instruction CHANDATA ne peut tre utilise que pour le canal dans
lequel le programme est excut ; c'est--dire que l'instruction peut tre utilise pour
protger le programme CN contre l'excution dans un canal non prvu cet effet.
En cas d'erreur, l'excution du programme est abandonne.

Gestion des fichiers et programmes
2.2 Mmoire de travail (CHANDATA, COMPLETE, INITIAL)
Notions complmentaires
212 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Remarque
Les fichiers INI dans des listes de tches ne contiennent pas d'instruction CHANDATA.

Sauvegarde des programmes d'initialisation (COMPLETE, INITIAL)
Les fichiers de la mmoire de travail peuvent tre sauvegards sur un PC externe, puis tre
rechargs depuis celui-ci.
La sauvegarde des fichiers s'effectue avec COMPLETE.
INITIAL gnre un fichier INI (_N_INITIAL_INI) pour toutes les zones.
Chargement de programmes d'initialisation
IMPORTANT
Aprs le chargement du fichier "INITIAL_INI", tous les paramtres qui ne sont pas dfinis
dans le fichier sont initialiss avec des paramtres par dfaut, except les paramtres
machine. Les donnes de rglage, donnes d'outil, dcalages d'origine, valeurs GUD, ...
sont donc rgls des valeurs par dfaut (normalement "ZERO").

Le fichier COMPLETE_TEA_INI convient par exemple au chargement de paramtres
machine individuels. Dans ce fichier, la commande n'attend que des paramtres machine.
Les autres zones de donnes restent donc inchanges dans ce cas.
Chargement de programmes d'initialisation
Les programmes INI peuvent galement tre slectionns et appels comme programme
pice s'ils utilisent uniquement des donnes d'un canal. Il est ainsi galement possible
d'initialiser des donnes commandes par programme.
Gestion des fichiers et programmes
2.3 Instruction structurelle dans l'diteur Step (SEFORM)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 213
2.3 Instruction structurelle dans l'diteur Step (SEFORM)
Fonction
L'instruction structurelle SEFORM est traite dans l'diteur Step (aide la programmation avec
l'diteur) pour gnrer la vue squentielle dans le logiciel HMI Advanced. La vue
squentielle amliore la lisibilit du sous-programme CN.
Syntaxe
SEFORM(<nom de section>,<niveau>,<icne>)
Signification

SEFORM()
Appel de l'instruction structurelle avec les paramtres <nom de
section>, <niveau> et <icne>
Descripteur de l'opration d'usinage
<Nom de section>
Type : STRING
Indice du niveau principal ou du niveau infrieur
Type : INT
Valeur : 0 Niveau principal
<Niveau>
1, ..., <n> Niveau infrieur 1, ... , niveau infrieur
<n>
Nom de l'icne qui doit tre affiche pour cette section.
<Icne>
Type : STRING


Remarque
Les instructions SEFORM sont gnres dans l'diteur Step.
La chane de caractres transfre avec le paramtre <nom de section> est range dans la
variable OPI en synchronisation avec l'excution des blocs, de manire analogue
l'instruction MSG. L'information persiste jusqu' son crasement par l'instruction SEFROM
suivante. Le contenu est effac par un reset et par une fin de programme pice.
Les paramtres <niveau> et <icne> sont vrifis lors de l'excution du programme pice,
mais ils ne sont pas utiliss.

Bibliographie
Pour d'autres informations sur l'aide la programmation avec l'diteur, voir :
Manuel d'utilisation HMI Advanced
Gestion des fichiers et programmes
2.3 Instruction structurelle dans l'diteur Step (SEFORM)
Notions complmentaires
214 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 215
Zones de protection
3
3.1 Dfinition des zones de protection (CPROTDEF, NPROTDEF)
Fonction
Grce aux zones de protection, il est possible de protger diffrents lments de la machine,
l'outillage et la pice contre les dplacements errons.
Zones de protection orientes outil :
Pour les lments qui font partie de l'outil (outil, porte-outil, etc.).
Zones de protection orientes pice :
Pour les lments qui font partie de la pice (parties de la pice, table porte-pice, pinces,
mandrins, contre-poupes, etc.)

Zone de protection
oriente outil
Zone de protection
oriente outil
Zone de protection
oriente pice
-B
+X
+Y
+Z

Syntaxe

DEF INT NOT_USED
G17/G18/G19
CPROTDEF/NPROTDEF(<n>,<t>,<applim>,<applus>,<appminus>)
G0/G1/... X/Y/Z...
...
EXECUTE (NOT_USED)
Zones de protection
3.1 Dfinition des zones de protection (CPROTDEF, NPROTDEF)
Notions complmentaires
216 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

DEF INT NOT_USED : Variable locale, dfinition du type de donnes INTEGER (entier)
(cf. chapitre "Actions synchrones au dplacement (Page 551)")
G17/G18/G19 : Le plan souhait est slectionn avant CPROTDEF ou NPROTDEF au
moyen de G17/G18/G19 et ne doit pas tre modifi avant EXECUTE. La
programmation d'une cote (3me dimension) entre CPROTDEF ou
NPROTDEF et EXECUTE n'est pas autorise.
CPROTDEF : Dfinition des zones de protection spcifiques au canal (pour NCU
572/573 uniquement)
NPROTDEF : Dfinition des zones de protection spcifiques la machine
G0/G1/... X/Y/Z...
... :
On peut dcrire le contour d'une zone de protection avec 11
dplacements au maximum dans le plan slectionn. Le premier
dplacement est constitu par l'accostage du contour. La zone de
protection est le domaine se trouvant gauche du contour.
Remarque :
Les dplacements figurant entre CPROTDEF ou NPROTDEF et EXECUTE ne
sont pas excuts mais ils dfinissent la zone de protection.
EXECUTE : Fin de la dfinition
<n> : Numro de la zone de protection dfinie
Type de la zone de protection
TRUE : zone de protection oriente outil
<t> :
FALSE : zone de protection oriente pice
Type de limitation dans la 3me dimension
0: aucune limitation
1: limitation en sens plus
2: limitation en sens moins
<applim> :
3: limitation dans le sens positif et ngatif
<applus> : Valeur de la limitation dans le sens positif de la 3me dimension
<appminus> : Valeur de la limitation dans le sens ngatif de la 3me dimension
NOT_USED : En prsence de zones de protection, la variable d'erreur est sans
effet avec EXECUTE
Contraintes
Aucune des fonctions suivantes ne doit tre active lors de la dfinition des zones de
protection :
correction du rayon de la fraise ou du tranchant,
transformation,
frame.
Aucun accostage du point de rfrence (G74), aucun accostage de point fixe (G75), aucun
arrt de recherche de blocs, ni aucune fin de programme ne doit tre programm.
Zones de protection
3.1 Dfinition des zones de protection (CPROTDEF, NPROTDEF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 217
Informations complmentaires
Dfinition des zones de protection
Font partie de la dfinition des zones de protection :
CPROTDEF pour les zones de protection spcifiques au canal
NPROTDEF pour les zones de protection spcifiques la machine
la description du contour de la zone de protection
la clture de la dfinition avec EXECUTE
Lors de l'activation de la zone de protection dans le programme pice CN, on peut dplacer,
de faon relative, le point de rfrence de la zone de protection.
Point de rfrence de la description du contour
Les zones de protection orientes pice sont dfinies dans le systme de coordonnes de
base.
Les zones de protection orientes outil sont dfinies par rapport au point de rfrence F de
l'organe porte-outil.
Elments de contour admissibles
Sont autoriss pour la description du contour de la zone de protection :
G0 et G1 pour les parties rectilignes du contour
G2 pour les arcs de cercle dans le sens horaire (seulement pour les zones de protection
orientes pice)
G3 pour les arcs de cercle dans le sens antihoraire



Remarque
Si la zone de protection doit tre dfinie par un cercle complet, il faut subdiviser ce
dernier en deux cercles partiels. Les squences G2, G3 et G3, G2 ne sont pas autorises. Il
faut, dans ce cas, insrer un bloc court avec G1.
Le dernier point et le premier point de la description du contour doivent concider.

Zones de protection extrieures
Les zones de protection extrieures (seulement les zones de protection orientes pice)
doivent tre dcrites dans le sens horaire.
Zones de protection symtrie de rvolution
Dans le cas de zones de protection symtrie de rvolution (par ex. pour un mandrin),
l'ensemble du contour doit tre dcrit (et pas seulement jusqu'au centre de rotation !).
Zones de protection
3.1 Dfinition des zones de protection (CPROTDEF, NPROTDEF)
Notions complmentaires
218 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Zones de protection orientes outil
Les zones de protection orientes outil doivent toujours tre convexes. S'il faut une zone de
protection concave, il faut la fractionner en plusieurs zones de protection convexes.
F
Zones de protection concave (non autorises)
Zones de protection convexes

Zones de protection
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 219
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT)
Fonction
Practiver ou activer les zones de protection dfinies prcdemment pour assurer une
surveillance anticollision ou dsactiver les zones de protection actives.
Le nombre maximal de zones de protection qui peuvent tre actives simultanment dans
un mme canal est fix par un paramtre machine.
Si aucune zone de protection oriente outil n'est active, la trajectoire de l'outil fera l'objet
d'une surveillance rapporte aux zones de protection orientes pice.

Remarque
Si aucune zone de protection oriente pice n'est active, il n'y aura aucune surveillance de
la trajectoire de l'outil.

Syntaxe
CPROT(<n>,<state>,<xMov>,<yMov>,<zMov>)
NPROT(<n>,<state>,<xMov>,<yMov>,<zMov>)
Signification

CPROT : Appel de la zone de protection spcifique au canal
(pour NCU 572/573 uniquement)
NPROT : Appel de la zone de protection spcifique la machine
<n> : Numro de la zone de protection
Indication de l'tat
0: Dsactivation de la zone de protection
1: Practivation de la zone de protection
2: Activation de la zone de protection
<state> :
3: Practivation de la zone de protection avec arrt
conditionnel
<xMov>,<yMov>,<zMov> : Dcaler dans les axes gomtriques la zone de
protection qui a t dfinie
Contraintes
Surveillance de zone de protection avec correction de rayon d'outil active
Lorsque la correction de rayon d'outil est active, une surveillance de zone de protection
oprationnelle n'est possible que si le plan de la correction de rayon d'outil est identique au
plan des dfinitions de zone de protection.
Zones de protection
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT)
Notions complmentaires
220 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple
Sur une fraiseuse, il convient d'viter une collision entre la fraise et le palpeur de mesure. La
position du palpeur doit tre indique par un dcalage lors de l'activation. A cet effet, on
dfinit les zones de protection suivantes :
Une zone de protection spcifique la machine et oriente pice pour le support du
palpeur (n-SB1) et pour le palpeur lui-mme (n-SB2).
Une zone de protection spcifique au canal et oriente outil pour l'organe porte-fraise (c-
SB1), la queue de la fraise (c-SB2) et la fraise elle-mme (c-SB3).
Toutes les zones de protection sont orientes en Z.
Le point de rfrence du palpeur de mesure doit se trouver en X = -120, Y = 60 et Z = 80
lors de l'activation.
Point de rfrence pour
la zone de protection
du palpeur de mesure
30
40
C-SB3
C-SB2
C-SB1
55
40
20
X
Z
Y
n-SB1
n-SB2
2
0
1
0
5
5
1
0
0
2
0


Code de programme Commentaire
DEF INT ZONEPROT ; Dfinition d'une variable auxiliaire
Dfinition des zones de protection G17 ; Rglage de l'orientation
NPROTDEF(1,FALSE,3,10,10)G01 X0 Y10
X40
Y10
X0
Y10
EXECUTE(ZONEPROT)
; Zone de protection nSB1
NPROTDEF(2,FALSE,3,5,5)
G01 X40 Y5
X70
Y5
X40
Y5
; Zone de protection nSB2
Zones de protection
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 221
Code de programme Commentaire
EXECUTE(ZONEPROT)
CPROTDEF(1,TRUE,3,0,100)
G01 X20 Y20
X20
Y20
X20
Y20
EXECUTE(ZONEPROT)
; Zone de protection cSB1
CPROTDEF(2,TRUE,3,100,150)
G01 X0 Y10
G03 X0 Y10 J10
X0 Y10 J10
EXECUTE(ZONEPROT)
; Zone de protection cSB2
CPROTDEF(3,TRUE,3,150,170)
G01 X0 Y27,5
G03 X0 Y27,5 J27,5
X0 Y27,5 J27,5
EXECUTE(ZONEPROT)
; Zone de protection cSB3
Activation des zones de protection :
NPROT(1,2,120,60,80) ; Activer zone de protection nSB1 avec
dcalage
NPROT(2,2,120,60,80) ; Activer zone de protection nSB2 avec
dcalage
CPROT(1,2,0,0,0) ; Activer zone de protection cSB1 avec
dcalage
CPROT(2,2,0,0,0) ; Activer zone de protection cSB2 avec
dcalage
CPROT(3,2,0,0,0) ; Activer zone de protection cSB3 avec
dcalage
Zones de protection
3.2 Activation/dsactivation des zones de protection (CPROT, NPROT)
Notions complmentaires
222 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Informations complmentaires
Etat d'activation (<state>)
<state>=2
Une zone de protection est active en gnral dans un programme pice avec
<state> = 2.
L'tat est toujours spcifique au canal, mme pour des zones de protection spcifiques
la machine.
<state>=1
Si la possibilit d'activation d'une zone de protection est prvue dans le programme AP,
la practivation ncessaire cet effet se fait avec <state> = 1.
<state>=3
Lors de la practivation avec arrt conditionnel, aucun arrt n'est en principe effectu
avant une zone de protection dpasse, practive. L'arrt se produit uniquement,
lorsque la zone de protection a t active. Ceci permet un usinage sans interruption
lorsque les zones de protection ne sont actives que dans certains cas. Il faut toutefois
tenir compte du fait que la rampe de freinage provoque, le cas chant, un dplacement
dans une zone de protection, si la zone de protection n'a t active qu'immdiatement
avant le dplacement.
La practivation avec arrt conditionnel s'effectue avec <state> = 3.
<state>=0
La dsactivation des zones de protection s'effectue avec <state> = 0. Aucun dcalage
n'est ncessaire cet effet.
Dcalage de zones de protection en cas de practivation/activation
Le dcalage peut tre ralis dans 1, 2 ou 3 dimensions. L'indication du dcalage se
rapporte :
l'origine machine dans le cas de zones de protection orientes pice.
au point de rfrence F de l'organe porte-outil dans le cas de zones de protection
orientes outil.
tat aprs le lancement
Les zones de protection peuvent tre actives ds le lancement, aprs l'accostage du point
de rfrence. Dans ce but, il convient de rgler la variable systme
$SN_PA_ACTIV_IMMED[<n>] ou $SC_PA_ACTIV_IMMED[<n>] sur TRUE. Dans ce cas, les
zones de protection sont actives avec <state> = 2 et ne sont pas dcales.
Activation multiple des zones de protection
Une zone de protection peut tre active dans plusieurs canaux la fois (par ex. : un
fourreau de contre-poupe quand deux chariots se font face). La surveillance des zones de
protection se fait uniquement si la prise de rfrence a t effectue dans tous les axes
gomtriques.
Tenez compte des remarques suivantes :
Une zone de protection ne peut pas tre active simultanment avec diffrents
dcalages dans un mme canal.
Les zones de protection spcifiques la machine doivent prsenter la mme orientation
dans les deux canaux.
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course logiciels (CALC
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 223
3.3 Contrle des violations de zone de protection, des limitations de la
zone de travail et des fins de course logiciels (CALCPOSI)
Fonction
La fonction CALCPOSI permet de vrifier si, partir d'un point de dpart donn, les axes
gomtriques peuvent parcourir un trajet prdfini sans violer les limites d'axe (limites
logicielles), les limitations de la zone de travail, ni les zones de protection.
Pour le cas o le trajet spcifi ne peut pas tre parcouru, la valeur maximale autorise est
retourne.
La fonction CALCPOSI est un sous-programme prdfini. Elle doit tre isole dans un bloc.
Syntaxe
Etat=CALCPOSI(_STARTPOS, _MOVDIST, _DLIMIT, _MAXDIST, _BASE_SYS, _TESTLIM)
Signification

Etat
0: Fonction en ordre,
le dplacement spcifi peut tre entirement excut.
: dans _DLIMIT, au moins une composante est ngative.
: une erreur s'est produite dans un calcul de transformation.
Si le dplacement spcifi ne peut pas tre entirement
excut, la valeur de retour est une valeur dcimale positive
et code :
Position des units (type de limite viole) :
1: dplacement limit par des fins de course logiciels.
2: dplacement limit par une limitation de la zone de travail.
3: dplacement limit par des zones de protection.
En cas de violation simultane de plusieurs limites (fins de
course logiciels et zones de protection par exemple), la
position des units signale la limite qui rduit le plus le
dplacement spcifi.

Position des dizaines
10:
limite viole par la valeur initiale.
20:
limite viole par la droite spcifie. La valeur de retour
correspond galement cette valeur lorsque le point final en
soi ne dpasse aucune limite, mais que le dplacement du
point de dpart au point final provoquerait la violation d'une
limite (par exemple la traverse d'une zone de protection ou
des fins de course logiciels courbs dans le SCP dans le cas
de transformations non linaires telles que Transmit).
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course
logiciels (CALCPOSI)
Notions complmentaires
224 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Position des centaines
100:
violation de la valeur limite positive (uniquement lorsque la
position des units est gale 1 ou 2, autrement dit dans le
cas de fins de course logiciels ou d'une limitation de la zone
de travail).
100:
Violation d'une zone de protection du NCK (uniquement si la
position des units est gale 3).
200:
violation de la valeur limite ngative (uniquement lorsque la
position des units est gale 1 ou 2, autrement dit dans le
cas de fins de course logiciels ou d'une limitation de la zone
de travail).
200:
Violation d'une zone de protection spcifique au canal
(uniquement si la position des units est gale 3).

Position des milliers
1000:
Facteur multipliant le numro de l'axe qui viole la limite
(uniquement lorsque la position des units est gale 1 ou
2, autrement dit dans le cas de fins de course logiciels ou
d'une limitation de la zone de travail).
Le comptage des axes commence 1 et se rapporte aux
axes machines dans le cas d'une violation des fins de course
logiciels (position des units = 1), et aux axes gomtriques
dans le cas d'une violation de la limitation de la zone de
travail (position des units = 2).
1000:
Facteur multipliant le numro de la zone de protection viole
(uniquement si la position des units est gale 3).
En cas de violation de plusieurs zones de protection, la
position des centaines et la position des milliers signalent la
zone de protection qui rduit le plus le dplacement spcifi.
_STARTPOS
Valeur initiale pour abscisse [0], ordonne [1] et cote [2] dans
le (SCP)
_MOVEDIST
Consigne de dplacement relative pour abscisse [0],
ordonne [1] et cote [2]
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course logiciels (CALC
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 225
_DLIMIT
[0] - [2]: distances minimales affectes aux axes
gomtriques.
[3]: distance minimale affecte un axe machine linaire
pour une transformation non linaire lorsque l'affectation d'un
axe gomtrique univoque est impossible.
[4]: distance minimale affecte un axe machine rotatif pour
une transformation non linaire lorsque l'affectation d'un axe
gomtrique univoque est impossible. Uniquement pour les
transformations spciales avec une surveillance des fins de
course logiciels.
_MAXDIST
Tableau [0] - [2] pour valeur de retour. Dplacement relatif
suivant les trois axes gomtriques, sans dpassement de la
consigne de distance minimale d'une limite d'axe dans l'un
des axes machine concerns.
Si le dplacement n'est pas limit, le contenu de ce
paramtre de retour est identique celui de _MOVDIST.
_BASE_SYS
FALSE ou absence d'indication du paramtre :
Lors de l'exploitation des indications de position et de
longueur, c'est le code G du groupe 13 (G70, G71, G700,
G710, pouces/mtrique) qui est exploit. Lorsque G70 est
actif et que le systme de base est mtrique (ou lorsque G70
est actif et que le systme de base est en pouces), les
variables systme SCP $AA_IW[X] et $AA_MW[X]) sont
fournies dans le systme de base et doivent tre converties
le cas chant pour pouvoir tre utilises par la fonction
CALCPOSI.
TRUE :
Le systme de base de la commande est toujours utilis pour
l'exploitation des indications de position et de longueur,
indpendamment de la valeur du code G actif du groupe 13.
_TESTLIM
Limitations surveiller (codage binaire) :
1: surveillance des fins de course logiciels
2: surveillance des limitations de la zone de travail
3: surveillance des zones de protection actives
4: surveillance des zones de protection practives
Combinaisons par addition des valeurs. Valeur par dfaut :
15 = tout surveiller.
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course
logiciels (CALCPOSI)
Notions complmentaires
226 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple
Dans l'exemple (voir figure), des fins de course logiciels et des limitations de la zone de
travail sont inscrits sur l'axe X. En plus, trois zones de protection sont dfinies : les deux
zones de protection C2 et C4 spcifiques au canal ainsi que la zone de protection N3 du
NCK. C2 est une zone de protection active circulaire de 2 mm de rayon, oriente outil. C4
est une zone de protection carre de 10 mm de ct, practive et oriente pice, et N3 est
une zone de protection active rectangulaire de 10 et 15 mm de ct. Dans le programme CN
suivant, les zones de protection et les limitations de la zone de travail sont d'abord dfinies
comme sur la figure, puis la fonction CALCPOSI est appele avec diffrents paramtrages.
Les rsultats des diffrents appels de la fonction CALCPOSI sont rsums dans le tableau
qui figure la fin de l'exemple.
Y
X
N420 - N440
N620
N710
N3
C4
C4
30
20
10
30
20
10
Limites logicielles
Limitation de la zone de travail
(practive)



Code de programme Commentaire
N10 def real _STARTPOS[3]
N20 def real _MOVDIST[3]
N30 def real _DLIMIT[5]
N40 def real _MAXDIST[3]
N50 def int _SB
N60 def int _ETAT

Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course logiciels (CALC
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 227
Code de programme Commentaire
N70 cprotdef(2, true, 0)
N80 g17 g1 xy0
N90 g3 i2 x2
N100 ix
N110 execute(_SB)
; Zone de protection oriente outil
N120 cprotdef(4, false, 0)
N130 g17 g1 x0 y15
N140 x10
N150 y25
N160 x0
N170 y15
N180 execute(_SB)
; Zone de protection oriente pice
N190 nprotdef(3, false, 0)
N200 g17 g1 x10 y5
N210 x25
N220 y15
N230 x10
N240 y5
N250 execute(_SB)
; Zone de protection oriente
machine
N260 cprot(2,2,0, 0, 0)
N270 cprot(4,1,0, 0, 0)
N280 nprot(3,2,0, 0, 0)
; Activation ou
practivation des zones de
protection
N290 g25 XX=YY=
N300 g26 xx= 20 yy= 21
N310 _STARTPOS[0] = 0.
N320 _STARTPOS[1] = 0.
N330 _STARTPOS[2] = 0.
; Dfinition des limitations de la
zone de travail
N340 _MOVDIST[0] = 35.
N350 _MOVDIST[1] = 20.
N360 _MOVDIST[2] = 0.

N370 _DLIMIT[0] = 0.
N380 _DLIMIT[1] = 0.
N390 _DLIMIT[2] = 0.
N400 _DLIMIT[3] = 0.
N410 _DLIMIT[4] = 0.

; Diffrents appels de fonctions
N420 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST)
N430 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,,3)
N440 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,,1)
; Autre point de dpart
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course
logiciels (CALCPOSI)
Notions complmentaires
228 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Code de programme Commentaire
N450 _STARTPOS[0] = 5.
N460 _STARTPOS[1] = 17.
N470 _STARTPOS[2] = 0.
; Autre destination
N480 _MOVDIST[0] = 0.
N490 _MOVDIST[1] =.
N500 _MOVDIST[2] = 0.

; Diffrents appels de fonctions
N510 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,,14)
N520 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,, 6)

N530 _DLIMIT[1] = 2.
N540 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,, 6)
N550 _STARTPOS[0] = 27.
N560 _STARTPOS[1] = 17.1
N570 _STARTPOS[2] = 0.

N580 _MOVDIST[0] =.
N590 _MOVDIST[1] = 0.
N600 _MOVDIST[2] = 0.

N610 _DLIMIT[3] = 2.
N620 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,, 12)

N630 _STARTPOS[0] = 0.
N640 _STARTPOS[1] = 0.
N650 _STARTPOS[2] = 0.
N660 _MOVDIST[0] = 0.
N670 _MOVDIST[1] = 30.
N680 _MOVDIST[2] = 0.
N690 trans x10
N700 arot z45
N710 _ETAT = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST)
N720 M30


Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course logiciels (CALC
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 229
Rsultats des surveillances de l'exemple :

N de
bloc N...
_ETAT _MAXDIST
[0] (= X)
_MAXDIST
[1] (= Y)
Observations
420 3123 8.040 4.594 Violation de la zone de protection N3
430 1122 20.000 11.429 Aucune violation d'une zone de
protection/limitation de la zone de
travail.
440 1121 30.000 17.143 Seule la surveillance des fins de course
logiciels est encore active.
510 4213 0.000 0.000 Violation de la zone de protection C4 au
point de dpart
520 0000 0.000 .000 La zone de protection practive C4
nest pas surveille. Le dplacement
spcifi peut tre entirement excut.
540 2222 0.000 .000 Comme _DLIMIT[1]=2, le dplacement
est rduit par la limitation de la zone de
travail.
620 4223 .000 0.000 A cause de C2 et de _DLIMIT[3], la
distance de C4 est de 4 mm au total. La
distance C2 N3 de 0.1 mm ne limite par
le dplacement.
710 1221 0.000 21.213 Frame actif avec translation et rotation.
Le dplacement admis dans _MOVDIST
est valable dans le systme de
coordonnes dcal et tourn (SCP).
Zones de protection
3.3 Contrle des violations de zone de protection, des limitations de la zone de travail et des fins de course
logiciels (CALCPOSI)
Notions complmentaires
230 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Cas particuliers et autres dtails
Toutes les instructions de dplacement prliminaires sont toujours au rayon, mme dans le
cas d'un axe transversal, avec le code G DIAMON activ. Lorsque le chemin d'un des axes
concerns ne peut tre entirement parcouru, les chemins des autres axes sont galement
rduits dans la valeur de retour _MAXDIST, de telle manire que le produit final rsultant se
trouve sur la trajectoire prescrite.
Une absence de dfinition de limite logicielle, de limitation de zone de travail et de zone de
protection est admise pour un ou plusieurs des axes concerns. L'ensemble des limites n'est
surveill que lorsque les axes concerns on t rfrencs. Les axes rotatifs ventuellement
concerns ne sont surveills que s'il ne s'agit pas d'axes valeur modulo.
La surveillance des limites logicielles et des limitations de la zone de travail dpend, comme
dans le mode de dplacement normal, des rglages actifs (signaux d'interface pour la
slection des limites logicielles 1 ou limites logicielles 2, GWALIMON/WALIMOF, donnes
de rglage pour l'activation individuelle des limites de la zone de travail et pour dterminer si
le rayon de l'outil actif doit tre ou non pris en compte lors de la surveillance des limitations
de la zone de travail).
Avec certaines transformations cinmatiques (par ex. TRANSMIT), la position des axes
machine ne peut pas tre dtermine de faon univoque dans le systme de coordonnes
pice (SCP) (ambigut). Dans le mode de dplacement normal, l'univocit provient, en rgle
gnrale, de l'historique et de la condition selon laquelle un dplacement continu dans le
SCP doit correspondre un dplacement continu des axes machine. Lors de la surveillance
des limites logicielles l'aide de la fonction CALCPOSI, la position machine actuelle est
utilise dans ces cas pour lever l'ambigut. Le cas chant, il faudra programmer un
STOPRE avant CALCPOSI pour que la machine dispose de positions d'axe valables.
Il n'est pas assur que, pour les zones de protection lors d'un mouvement sur la course
prescrite, la distance spcifie sous _DLIMIT[3] soit respecte partout. En cas de
modification du point final retourn dans _MOVDIST, il n'est donc pas possible de violer la
zone de protection de cette distance. La droite peut, dans sa variation, mais avec une
paisseur quelconque, passer devant une zone de protection.

Remarque
Pour plus de dtails sur les limitations de la zone de travail, voir le
/PG/ Manuel de programmation Notions de base,
sur les limites logicielles, voir
/FB1/ Manuel de fonctions de base ; surveillance d'axes, zones de protection (A3).


Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 231
Instructions de dplacement spciales
4
4.1 Accostage de positions codes (CAC, CIC, CDC, CACP, CACN)
Fonction
Les instructions suivantes permettent, au moyen de numros de position, de dplacer des
axes linaires et rotatifs jusqu' des positions d'axe fixes dfinies dans des tableaux de
paramtres machine. Ce type de programmation est appel "accostage de positions
codes".
Syntaxe
CAC(<n>)
CIC(<n>)
CACP(<n>)
CACN(<n>)
Signification

CAC(<n>)
Accostage de la position code du numro de position n
CIC(<n>)
Accostage de la position code n positions en avant (+n) ou en arrire
(n), partir du numro de position courant
CDC(<n>)
Accostage de la position code sur le chemin le plus court depuis le
numro de position n
(uniquement pour les axes rotatifs)
CACP(<n>)
Accostage de la position code dans le sens positif depuis le numro
de position n
(uniquement pour les axes rotatifs)
CACN(<n>)
Accostage de la position code dans le sens ngatif depuis le numro
de position n
(uniquement pour les axes rotatifs)
<n>
Numro de position dans le tableau de paramtres machine
Plage de valeurs : 0, 1, (nombre maximal de positions dans le
tableau - 1)
Instructions de dplacement spciales
4.1 Accostage de positions codes (CAC, CIC, CDC, CACP, CACN)
Notions complmentaires
232 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple : Accostage des positions codes d'un axe de positionnement

Code de programme Commentaire
N10 FA[B]=300 ; Avance de l'axe de positionnement B
N20 POS[B]=CAC(10) ; Accostage de la position code du numro de
position 10
N30 POS[B]=CIC(-4) ; Accostage de la position code du "numro de
position courant" - 4
Bibliographie
Description fonctionnelle Fonctions d'extension ; Axes indexs (T1)
Description fonctionnelle Actions synchrones
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 233
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE,
BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Fonction
Pour les contours de pice de forme courbe quelconque, une description analytique exacte
est impossible. C'est pourquoi de tels contours sont dcrits approximativement par un
nombre limit de points intermdiaires, notamment lors de la numrisation des surfaces.
Pour gnrer une surface de pice numrise, il est ncessaire de relier les points
intermdiaires et d'en faire une description du contour. C'est ce que permet l'interpolation de
type spline.
Un spline dfinit une courbe compose de polynmes du 2e ou 3e degr. Les proprits des
points intermdiaires d'un spline peuvent tre dfinis selon le type de spline utilis.
P6
P5
P4
P3
P2
P1
P1 P6 : coordonnes prdfinies

SINUMERIK solution line met disposition des types de spline suivants :
Spline A
Spline B
Spline C
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
234 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
Gnralits :
ASPLINE X... Y... Z... A... B... C...
BSPLINE X... Y... Z... A... B... C...
CSPLINE X... Y... Z... A... B... C...
Le spline B permet en outre de programmer :
PW=<n>
SD=2
PL=<valeur>
Les splines A et C permettent en outre de programmer :
BAUTO / BNAT / BTAN
EAUTO / ENAT / ETAN
Signification

Type d'interpolation spline :
ASPLINE
Instruction d'activation de l'interpolation de type spline A
BSPLINE
Instruction d'activation de l'interpolation de type spline B
CSPLINE
Instruction d'activation de l'interpolation de type spline C
Les instructions ASPLINE, BSPLINE et CSPLINE ont un effet modal et
font partie du groupe des instructions de dplacement.

Points intermdiaires et points de contrle :
X... Y... Z...
A... B... C...
Positions en coordonnes cartsiennes

Poids de point (uniquement spline B) :
PW
L'instruction PW permet de programmer un "poids de point" pour
chaque point intermdiaire.
"Poids de point"
Plage de valeurs
:
0 n 3
Pas : 0.0001
n > 1 La courbe tend plus fortement.
<n>
Effet :
n < 1 La courbe tend moins fortement.

Degr spline (uniquement spline B) :
SD

Un polygone du troisime degr est appliqu de faon standard.
Mais la programmation de SD=2 permet galement d'utiliser un
polygone du deuxime degr.
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 235

Distance entre les ples (uniquement spline B) :
PL
Les distances entre les ples sont calcules par le systme, Mais
la commande peut galement traiter les distances prescrites en
tant que "Paramtre - Intervalle - Longueur" avec l'instruction PL.
Paramtre-Intervalle-Longueur
<Valeur>
Plage de valeurs
:
comme pour le positionnement non index

Comportement de transition au dbut de la courbe spline (splines A et C uniquement) :
BAUTO
Aucune prescription pour le comportement de transition. Le dbut
rsulte de la position du premier point.
BNAT
Courbure nulle
BTAN
Raccordement tangentiel avec bloc prcdent (fonction initialise)

Comportement de transition la fin de la courbe spline (splines A et C uniquement) :
EAUTO
Aucune prescription pour le comportement de transition. La fin
rsulte de la position du dernier point.
ENAT
Courbure nulle
ETAN
Raccordement tangentiel avec bloc prcdent (fonction initialise)

ENAT
ETAN BTAN
BNAT
EAUTO
BAUTO
aucune spcification
Courbure nulle
Raccordement
tangentiel




Remarque
Le comportement de transition programmable n'influence pas le spline B. Au point de dpart
et au point final, le spline B est toujours tangent au polygone de contrle.

Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
236 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Conditions marginales
La correction de rayon d'outil est utilisable.
La surveillance anticollision s'effectue par projection dans le plan.
Exemples
Exemple 1 : Spline B

Code de programme 1 (tous les poids 1)
N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0


Code de programme 2 (diffrents poids)
N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20 PW=2
N40 X20 Y40
N50 X30 Y30 PW=0.5
N60 X40 Y45
N70 X50 Y0


Code de programme 3 (polygone de contrle) Commentaire
N10 G1 X0 Y0 F300 G64
N20 ; ne s'applique pas
N30 X10 Y20
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 237
poids diffrents
tous les poids 1
Polygone de contrle
50
40
30
20
10
60 50 40 30 20 10
Y
X


Exemple 2 : Spline C, courbure nulle au dbut et la fin

Code de programme
N10 G1 X0 Y0 F300
N15 X10
N20 BNAT ENAT
N30 CSPLINE X20 Y10
N40 X30
N50 X40 Y5
N60 X50 Y15
N70 X55 Y7
N80 X60 Y20
N90 X65 Y20
N100 X70 Y0
N110 X80 Y10
N120 X90 Y0
N130 M30
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
238 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
50
40
30
20
10
Y
X
90 80 70 60 50 40 30 20 10


Exemple 3 : Interpolation spline (spline A) et transformation de coordonnes (ROT)
Programme principal :

Code de programme Commentaire
N10 G00 X20 Y18 F300 G64 ; Accostage du point de dpart.
N20 ASPLINE ; Activation de l'interpolation de type spline
A.
N30 CONTOUR ; Premier appel du sous-programme.
N40 ROT Z-45 ; Transformation de coordonnes : rotation du
SCP de -45 autour de l'axe Z.
N50 G00 X20 Y18 ; Accostage du point de dpart du contour.
N60 CONTOUR ; Deuxime appel du sous-programme.
N70 M30 ; Fin du programme

Sous-programme "Contour" (contenant les coordonnes des points intermdiaires) :

Code de programme
N10 X20 Y18
N20 X10 Y21
N30 X6 Y31
N40 X18 Y31
N50 X13 Y43
N60 X22 Y42
N70 X16 Y58
N80 X33 Y51
N90 M1
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 239
La figure suivante contient la courbe spline rsultante de l'exemple de programme
(ASPLINE), ainsi que les courbes splines qui auraient rsult d'une interpolation de type
spline B ou C (BSPLINE, CSPLINE) :
50
50 60
40
40
30
30
20
20
10
10
ASPLlNE
BSPLlNE
CSPLlNE
N60 -
Y
X
N30 - Premier appel de sous-programme
Deuxime appel
de sous-programme

Autres informations
Avantages de l'interpolation de type spline
Contrairement l'utilisation de blocs linaires G01, l'interpolation de type spline prsente les
avantages suivants :
Rduction de nombre de blocs requis dans le programme pice pour la description du
contour
Courbes douces mnageant la mcanique lors des transitions entre les blocs du
programme pice

Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
240 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Proprits et applications des diffrents types de spline

Type spline Proprits et applications

Spline A

P5
P7
P6
P4
P3
P2
P1
P1 P7b: coordonnes prdfinies
Spline A (spline Akima)


Proprits :
Courbe passant exactement par les points intermdiaires indiqus.
La courbe est caractrise par la continuit de la tangente, mais pas du
rayon de courbure.
Elle ne cre presque pas de vibrations indsirables.
La modification d'un point intermdiaire a un effet local, ce qui signifie qu'elle
n'influence pas plus de 6 points intermdiaires voisins.

Application :
Le spline A convient avant tout l'interpolation de courbes avec de grandes
variations de pente (par exemple les courbes en forme d'escalier).
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 241
Type spline Proprits et applications

Spline B

P5
P7
P6
P4
P3
P2
P1
P1 P7b: coordonnes prdfinies
Spline B
Polygone de contrle


Proprits :
Courbe ne passant pas par les points intermdiaires indiqus, mais
proximit de ceux-ci. La courbe tend vers les points intermdiaires.
L'utilisation d'un facteur de pondration des points intermdiaires permet en
outre d'influencer le trac de la courbe.
La courbe est caractrise par la continuit de la tangente et du rayon de
courbure.
Elle ne cre aucune vibration indsirable.
La modification d'un point intermdiaire a un effet local, ce qui signifie qu'elle
n'influence pas plus de 6 points intermdiaires voisins.

Application :
Le spline B est destin en premier lieu servir d'interface avec les systmes de
CAO.
Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
242 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Type spline Proprits et applications

Spline C

P1 P7b: coordonnes prdfinies
spline C (spline cubique)
P5
P7
P6 P4
P3
P2
P1


Proprits :
Courbe passant exactement par les points intermdiaires indiqus.
La courbe est caractrise par la continuit de la tangente et du rayon de
courbure.
Elle cre frquemment des vibrations indsirables, en particulier aux
endroits avec de grandes variations de pente.
La modification d'un point intermdiaire a un effet global, ce qui signifie
qu'elle influence l'ensemble du trac de la courbe.

Application :
Le spline C convient particulirement bien lorsque les points se situent sur une
courbe analytique connue (cercle, parabole, hyperbole).

Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,
ENAT, ETAN, PW, SD, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 243
Comparaison des trois types de splines avec des points intermdiaires identiques
Spline C
Spline B
Spline A
P1
P5
P7
P6
P4
P3
P2


Nombre minimum de blocs spline
Les instructions ASPLINE, BSPLINE et CSPLINE relient les points finaux de blocs par des
courbes de type spline. Pour ce faire, la commande doit effectuer le dcodage simultan
d'une srie de blocs (points finaux) pendant le prtraitement. En version standard, la taille du
tampon pour le dcodage vaut 10 blocs. Toutes les informations de bloc ne sont pas
forcment des fins de bloc spline. La commande ncessite nanmoins un nombre prcis de
fins de bloc spline provenant de 10 blocs :

Type spline Nombre minimum de blocs spline
spline A : Sur 10 blocs, 4 au moins doivent tre des blocs spline.
Les blocs de commentaire et les calculs de paramtres ne sont pas pris en compte.
spline B : Sur 10 blocs, 6 au moins doivent tre des blocs spline.
Les blocs de commentaire et les calculs de paramtres ne sont pas pris en compte.
spline C : Le nombre minimum de blocs spline ncessaire se calcule de la manire suivante :
valeur de PM20160 $MC_CUBIC_SPLINE_BLOCKS + 1
Le nombre de points l'aide desquels la section de spline est calcule est renseign
dans PM20160. Le rglage par dfaut est 8. Dans le cas standard, il faut donc au
moins que 9 blocs sur 10 soient des blocs spline.


Remarque
Si la valeur est infrieure la valeur tolre, une alarme est mise, de mme que si un axe
participant l'interpolation de type spline est programm comme axe de positionnement.


Instructions de dplacement spciales
4.2 Interpolation de type spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN,
PW, SD, PL)
Notions complmentaires
244 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Groupement de blocs spline courts
Lors de l'interpolation de type spline des blocs spline courts peuvent tre crs, qui
contribue inutilement la rduction de la vitesse tangentielle. La fonction "groupement de
blocs spline courts" permet de grouper ces blocs de manire ce que la longueur de bloc en
rsultant soit assez longue et ne pas rduire la vitesse tangentielle.
La fonction est active via le paramtre machine spcifique au canal :
PM20488 $MC_SPLINE_MODE (rglage pour interpolation de type spline)
Bibliographie :
Description fonctionnelle Fonctions de base ; contournage, arrt prcis, look-ahead (B1),
chapitre : Groupement de blocs spline courts
Instructions de dplacement spciales
4.3 Groupe spline (SPLINEPATH)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 245
4.3 Groupe spline (SPLINEPATH)
Fonction
Les axes interpoler dans le groupe spline sont slectionns avec l'instruction SPLINEPATH.
L'interpolation de type spline admet jusqu' 8 axes interpolation.

Remarque
Si l'instruction SPLINEPATH n'est pas programme de faon explicite, ce sont les trois premiers
axes du canal qui seront dplacs en tant que groupe spline.

Syntaxe
La dfinition du groupe spline se fait dans un bloc spar :
SPLINEPATH(n,X,Y,Z,)
Signification

SPLINEPATH
Instruction de dfinition du groupe spline
n
=1 (valeur fixe)
X,Y,Z,
Descripteurs des axes interpoler dans le groupe spline
Instructions de dplacement spciales
4.3 Groupe spline (SPLINEPATH)
Notions complmentaires
246 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple : Groupe spline avec trois axes interpolation

Code de programme Commentaire
N10 G1 X10 Y20 Z30 A40 B50 F350
N11 SPLINEPATH(1,X,Y,Z) ; Groupe spline
N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 ; Spline C
N14 X30 Y40 Z50 A60 B70 ; Points intermdiaires

N100 G1 X Y ; Dsactivation de
l'interpolation de type
spline
X
Y
SPLlNEPATH (1,X,Y,Z)
Z

Instructions de dplacement spciales
4.4 Compactage de bloc CN (COMPON, COMPCURV, COMPCAD, COMPOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 247
4.4 Compactage de bloc CN (COMPON, COMPCURV, COMPCAD,
COMPOF)
Fonction
Les systmes de CAO/FAO fournissent gnralement des blocs linaires qui respectent la
prcision paramtre. Ceci conduit, dans le cas des contours complexes, une quantit
considrable de donnes et, ventuellement, des segments de trajectoire courts. Ceux-ci
limitent la vitesse d'usinage.
Grce l'utilisation de blocs de polynme, une fonction compacteur entrane un
rapprochement du contour dfini par blocs linaires. Il en rsulte les avantages suivants :
Rduction de nombre de blocs requis dans le programme pice pour la description du
contour de la pice
Transitions progressives entre les blocs
Augmentation des vitesses tangentielles maximales
Les fonctions compacteur suivantes sont disponibles :
COMPON
Seule la vitesse est continue aux transitions entre blocs, l'acclration des axes
concerns pouvant prsenter des chelons.
COMPCURV
L'acclration est continue aux transitions entre les blocs. La vitesse aussi bien que
l'acclration de tous les axes ne varient donc pas brusquement aux transitions entre
blocs.
COMPCAD
Compactage caractris par une optimisation de l'tat de surface et de la vitesse, et qui
exige beaucoup de temps de calcul et de capacit mmoire. COMPCAD ne devrait tre
utilis que lorsque les mesures, permettant une amlioration de l'tat de surface, ne
peuvent pas tre assures en amont par le programme CAO/FAO.
La fonction compacteur se termine avec COMPOF.
Syntaxe
COMPON
COMPCURV
COMPCAD
COMPOF
Instructions de dplacement spciales
4.4 Compactage de bloc CN (COMPON, COMPCURV, COMPCAD, COMPOF)
Notions complmentaires
248 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

Instruction d'activation de la fonction compacteur COMPON. COMPON :
Prise d'effet : modale
Instruction d'activation de la fonction compacteur COMPCURV. COMPCURV :
Prise d'effet : modale
Instruction d'activation de la fonction compacteur COMPCAD. COMPCAD :
Prise d'effet : modale
COMPOF : Instruction de dsactivation de la fonction compacteur active l'instant.


Remarque
Pour une amlioration supplmentaire de l'tat de surface, il est possible d'utiliser la fonction
d'arrondissement G642 et la limitation des -coups SOFT. Ces instructions doivent figurer en
dbut de programme.

Contraintes
La compression de bloc CN est en rgle gnrale effectu pour des blocs linaires (G1).
Seuls les blocs qui satisfont une syntaxe simple sont compacts :
N... G1X... Y... Z... F... ; commentaire
Tous les autres blocs sont excuts tels quels (sans compactage).
Les blocs de dplacement adresses tendues tels que C=100 ou A=AC(100) sont
galement compacts.
Il n'est pas ncessaire de programmer directement les valeurs de position qui peuvent
galement tre indiques indirectement par des affectations de paramtres telles que
X=R1*(R2+R3).
Lorsque l'option "Transformation d'orientation" est disponible, il est galement possible
de compacter des blocs CN dans lesquels l'orientation de l'outil (et la rotation de l'outil le
cas chant) est programme au moyen de vecteurs de direction (voir "Compactage de
l'orientation (Page 353)"
Le compactage est interrompu par toute autre instruction CN telle qu'une sortie de
fonction auxiliaire.
Instructions de dplacement spciales
4.4 Compactage de bloc CN (COMPON, COMPCURV, COMPCAD, COMPOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 249
Exemples
Exemple 1 : COMPON

Code de programme Commentaire
N10 COMPON ; Fonction compacteur COMPON active.
N11 G1 X0.37 Y2.9 F600 ; G1 avant point final et avance.
N12 X16.87 Y.698
N13 X16.865 Y.72
N14 X16.91 Y.799

N1037 COMPOF ; Fonction compacteur dsactive.


Exemple 2 : COMPCAD

Code de programme Commentaire
G00 X30 Y6 Z40
G1 F10000 G642 ; Fonction d'arrondissement G642 active.
SOFT ; Limitation des -coups SOFT active.
COMPCAD ; Fonction compacteur COMPCAD active.
STOPFIFO
N24050 Z32.499
N24051 X41.365 Z32.500
N24052 X43.115 Z32.497
N24053 X43.365 Z32.477
N24054 X43.556 Z32.449
N24055 X43.818 Z32.387
N24056 X44.076 Z32.300

COMPOF ; Fonction compacteur dsactive.
G00 Z50
M30

Bibliographie
Description fonctionnelle Fonctions de base ; contournage, arrt prcis, look-ahead (B1),
chapitre : "Compactage de bloc CN"
Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
250 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Fonction
Linterpolation polynomiale (POLY) nest en fait pas une interpolation de type spline. Elle est
destine avant tout servir d'interface pour la programmation de courbes spline gnres
de manire externe. Les sections spline peuvent tre programmes directement.
Ce mode d'interpolation vite la CN de calculer les coefficients de polynme. Elle peut tre
utilise de manire optimale lorsque les coefficients sont issus directement d'un systme de
CAO ou d'un postprocesseur.
Syntaxe
Polynme du 3e degr :
POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n
Polynme du 5me degr et nouvelle syntaxe polynomiale :
POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5)
PL=n
POLYPATH("AXES","VECT")

Remarque
La somme des coefficients de polynme et des axes programms dans un bloc CN ne doit
pas dpasser le nombre maximal d'axes autoriss par bloc.

Signification
POLY : Activation de l'interpolation polynomiale par un bloc avec POLY.
POLYPATH : Interpolation polynomiale slectionnable pour les deux groupes d'axes
AXIS ou VECT
PO[descripteur
d'axe/variable] :
Points finaux et coefficients de polynme
X, Y, Z : Descripteur d'axe
xe, ye, ze : Indication de la position finale de l'axe correspondant ; plage de valeurs
comme pour le positionnement non index
a2, a3, a4, a5 : Les coefficients a2, a3, a4, et a5 sont crits avec leur valeur ; plage de
valeurs comme pour le positionnement non index. Le dernier
coefficient peut tre omis si sa valeur est gale zro.
PL : Longueur de l'intervalle de paramtre sur lequel le polynme est dfini
(domaine de dfinition de la fonction f(p)).
L'intervalle commence toujours 0 et la valeur de p peut aller de 0
PL.
Plage de valeurs thorique de PL :
0,0001 99 999,9999
Remarque :
La valeur de PL est valable pour le bloc dans lequel elle figure. Si PL
n'est pas programm, PL=1.
Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 251
Activation/dsactivation de l'interpolation polynomiale
L'interpolation polynomiale est active dans le programme pice au moyen de l'instruction G
POLY.
L'instruction G POLY ainsi que G0, G1, G2, G3, ASPLINE, BSPLINE et CSPLINE font partie du 1er
groupe G.
Etant uniquement programms avec un nom et un point final (par ex. X10) les axes sont
dplacs linairement. Aprs avoir programm tous les axes d'un bloc CN de la sorte, la
commande se comporte comme pour G1.
L'interpolation polynomiale est de nouveau dsactive de manire implicite en programmant
une autre instruction du 1er groupe G (par ex. G0, G1).
Coefficient du polynme
La valeur (PO[]=) ou ...=PO(...) indique tous les coefficients de polynme d'un axe.
Selon le degr du polynme, plusieurs valeurs spares par des virgules sont spcifies.
Dans un bloc, diffrents degrs de polynme de diffrents axes sont possibles.
Sous-programme POLYPATH
POLYPATH(...) permet de dbloquer l'interpolation polynomiale de manire slective pour
certains groupes d'axes :

Uniquement axes interpolation et axes
supplmentaires :
POLYPATH("AXES")
Uniquement axes d'orientation :
(lors du dplacement avec transformation
d'orientation)
POLYPATH("VECT")
Les axes respectifs non dbloqus sont dplacs linairement.
Par dfaut, l'interpolation polynomiale est dbloque pour les deux groupes d'axes.
Une programmation sans paramtre POLYPATH( ) permet de dsactiver l'interpolation
polynomiale pour tous les axes.
Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
252 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple

Code de programme Commentaire
N10 G1 X Y Z F600
N11 POLY PO[X]=(1,2.5,0.7) PO[Y]=(0.3,1,3.2) PL=1.5 ; Interpolation polynomiale active
N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3
...
N20 M8 H126
N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ; Indications mixtes pour les axes
N27 PO[X]=(10,2.5) PO[Y]=(2.3) ; PL n'est pas programm ; donc PL=1.
N30 G1 X Y Z. ; Interpolation polynomiale dsactive

Exemple : Nouvelle syntaxe polynomiale

Syntaxe polynomiale encore valable Nouvelle syntaxe polynomiale
PO[descripteur d'axe]=(.. , ..) Descripteur d'axe=PO(.. , ..)
PO[PHI]=(.. , ..) PHI=PO(.. , ..)
PO[PSI]=(.. , ..) PSI=PO(.. , ..)
PO[THT]=(.. , ..) THT=PO(.. , ..)
PO[]=(.. , ..) PO(.. , ..)
PO[variable]=IC(.. , ..) Variable=PO IC(.. , ..)
Exemple : Cercle dans le plan X/Y
Programmation

Code de programme
N9 X0 Y0 G90 F100
N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4

Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 253
Evolution des courbes X(p) et Y(p)
Exemple :
Point final 4
Point final 2
(4,0.25) PL=4
(2) PO[X]
N10 POLY PO[Y]=
N9 X0 Y0 G90
4
4
3
2
(PL) 3 2 1 0
1
X
p
2
1
Y
p


Evolution de la courbe dans le plan XY
4
4
3
2
1
(PL)
4
3
3
2
2
1
1
0
Y
X
Rsultat dans le plan XY

Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
254 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
La forme gnrale de la fonction polynomiale est la suivante :

f(p)= a0 + a1p + a2p
2
+. . . + anp
n

o : an : coefficients constants
p : Paramtres
Le nombre maximum de polynmes du 5me degr pouvant tre programms dans la
commande est le suivant :

f(p)= a0 + a1p + a2p
2
+ a3p
3
+ a4p
4
+ a5p
5

En affectant des valeurs concrtes aux coefficients, il est possible de gnrer diffrentes
courbes : droites, paraboles et fonctions puissance.
Une courbe droite est cre par a2 = a3 = a4 = a5 = 0 :

f(p)= a0 + a1p

En outre :

a0 : position de l'axe la fin du bloc prcdent
p = PL
a1 = (xE - a0 - a2*p
2
- a3*p
3
) / p
Des polynmes peuvent tre programms sans avoir que l'interpolation polynomiale n'ait t
active au moyen de l'instruction G POLY. Dans ce cas, les polynmes programms ne seront
pas interpols, mais les points finaux programms pour les axes seront accosts
linairement (G1). Les polynmes programms ne sont dplacs en tant que tels qu'aprs
avoir explicitement activ l'interpolation polynomiale dans le programme pice (POLY).
Particularit : polynme dnominateur
Pour les axes gomtriques, PO[]=() permet aussi de programmer un polynme
dnominateur commun sans indiquer le nom d'un axe, c'est--dire que le dplacement des
axes gomtriques sera interpol en tant que quotient de deux polynmes.
Ceci permet, par exemple, de reprsenter avec exactitude des coniques (cercle, ellipse,
parabole, hyperbole).
Exemple :

Code de programme Commentaire
POLY G90 X10 Y0 F100 ; Dplacement linaire des axes
gomtriques la position X10 Y0.
PO[X]=(0,10) PO[Y]=(10) PO[]=(2,1) ; Dplacement des axes gomtriques en
quart de cercle sur position X0 Y10.
Le coefficient constant (a0) du polynme dnominateur est toujours considr comme tant
gal 1. Le point final programm est indpendant de G90 / G91.
Instructions de dplacement spciales
4.5 Interpolation polynomiale (POLY, POLYPATH, PO, PL)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 255
X(p) et Y(p) sont calculs comme suit partir des valeurs programmes :

X(p) = (10 - 10 * p
2
) / (1 + p
2
)
Y(p) = 20 * p / (1 + p
2
)
avec 0 p 1
Compte tenu de la programmation des points de dpart, des points finaux, du coefficient a2
et de PL=1, les rsultats intermdiaires suivants sont obtenus :

Numrateur
(X) =
10 + 0 * p - 10 * p
2

Numrateur
(Y) =
0 + 20 * p + 0 * p
2

Dnominateur
=
1 + p
2


Y
10
X

Lorsque l'interpolation polynomiale est active, la programmation d'un polynme
dnominateur possdant des racines l'intrieur de l'intervalle [0,PL] est rejete avec une
alarme. Le polynme dnominateur n'a aucune influence sur les dplacements des axes
supplmentaires.

Remarque
Dans le cas de l'interpolation polynomiale, on peut activer une correction de rayon d'outil
avec G41, G42 et l'utiliser comme pour l'interpolation linaire ou circulaire.

Instructions de dplacement spciales
4.6 Rfrence rglable de trajectoire (SPATH, UPATH)
Notions complmentaires
256 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.6 Rfrence rglable de trajectoire (SPATH, UPATH)
Fonction
Pendant l'interpolation polynomiale, l'utilisateur peut souhaiter deux relations diffrentes
entre les axes FGROUP dterminant la vitesse et les autres axes interpolation : le
dplacement de ces derniers doit tre synchronis soit avec la trajectoire S ou avec le
paramtre de courbe U des axes FGROUP.
Ces deux modes d'interpolation sont ncessaires dans diverses applications et peuvent tre
slectionns l'aide des deux instructions de langage modales SPATH et UPATH contenues
dans le 45me groupe de codes G.
Syntaxe
SPATH
UPATH
Signification

SPATH : La rfrence trajectoire pour axes FGROUP est la longueur d'arc
UPATH : La rfrence trajectoire pour axes FGROUP est paramtre de courbe


Remarque
UPATH et SPATH dterminent galement la relation entre le polynme dcrivant le mot F (FPOLY,
FCUB, FLIN) et le dplacement le long de la trajectoire.

Contraintes
La rfrence de trajectoire paramtre est sans aucune signification :
pour l'interpolation linaire et circulaire
dans des blocs de filetage
lorsque tous les axes interpolation sont compris dans FGROUP.
Instructions de dplacement spciales
4.6 Rfrence rglable de trajectoire (SPATH, UPATH)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 257
Exemples
Exemple 1 :
Dans l'exemple suivant, un carr avec une longueur d'arte de 20 mm est arrondi avec
G643. Dans ce contexte, les carts maximaux du contour exact sont dfinis pour chaque
axe avec le paramtre machine MD33100 $MA_COMPRESS_POS_TOL[<n>] spcifique
l'axe.

Code de programme Commentaire
N10 G1 X Y Z F500
N20 G643 ; Arrondissement interne un bloc avec G643
N30 XO Y0
N40 X20 Y0 ; Longueur d'art (mm) pour les axes
N50 X20 Y20
N60 X0 Y20
N70 X0 Y0
N100 M30

Exemple 2 :
L'exemple suivant illustre la diffrence entre les deux modes de pilotage du dplacement.
Dans les deux cas, on considre que le prrglage FGROUP(X,Y,Z) est actif.
Diffretes relations gomtriques entre les axes
pour SPATH et UPATH
A(X)=SQRT(X)
UPATH:
10
A
10
X
A(X)=X
SPATH:
10
A
10
X


Instructions de dplacement spciales
4.6 Rfrence rglable de trajectoire (SPATH, UPATH)
Notions complmentaires
258 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Code de programme

N10 G1 X0 A0 F1000 SPATH
N20 POLY PO[X]=(10,10) A10
ou

Code de programme
N10 G1 X0 F1000 UPATH
N20 POLY PO[X]=(10,10) A10

Dans le bloc N20, le trajet S des axes FGROUP dpend du carr du paramtre de courbe U.
Il en rsulte donc des positions diffrentes de l'axe synchrone A le long de la trajectoire de
X, selon que SPATH ou UPATH est actif.
Informations complmentaires
Pendant l'interpolation polynomiale - ceci sous-entendant toujours l'interpolation polynomiale
au sens strict du terme (POLY), toutes les interpolations de type spline (ASPLINE,
BSPLINE, CSPLINE) et une interpolation linaire avec fonction compresseur (COMPON,
COMPCURV) - les positions de tous les axes interpolation i sont spcifies par des
polynmes pi(U). Dans un bloc CN, le paramtre de courbe U varie de 0 1, c'est--dire
qu'il est norm.
L'instruction FGROUP permet de slectionner, parmi les axes interpolation, ceux auxquels
doit se rapporter l'avance tangentielle programme. Une interpolation polynomiale vitesse
constante sur le trajet S de ces axes ne signifie cependant pas en gnral une variation
constante du paramtre de courbe U.
Comportement de la commande en cas de Reset et paramtres machine/d'option
Aprs un Reset, le code G dtermin par MD20150 $MC_GCODE_RESET_VALUES[44] est
actif (45me groupe de codes G). Pour rester compatible avec des installations existantes,
la valeur SPATH est prrgle.
La valeur de position initiale pour le type d'arrondissement est dfinie par
MD20150 $MC_GCODE_RESET_VALUES[9] (10me groupe de codes G).
Le paramtre machine spcifique l'axe MD33100 $MA_COMPRESS_POS_TOL[<n>] a
une signification tendue : il contient les tolrances pour la fonction compresseur et
larrondissement avec G642.
Instructions de dplacement spciales
4.7 Mesure avec palpeur dclenchement (MEAS, MEAW)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 259
4.7 Mesure avec palpeur dclenchement (MEAS, MEAW)
Fonction
La fonction "Mesure avec palpeur dclenchement" permet d'accoster des positions relles
sur la pice, de mesurer les positions de chaque axe programm dans le bloc de mesure
lors du front de dclenchement du palpeur et de les crire dans la cellule mmoire
correspondante.
X
Z

Programmation de blocs de mesure
Les deux instructions suivantes sont disponibles pour la programmation de la fonction :
MEAS
L'instruction MEAS permet d'effacer la distance restant parcourir entre la position relle et
la position de consigne.
MEAW
L'instruction MEAW s'utilise pour les tches de mesure o la position programme doit
imprativement tre accoste.
MEAS et MEAW sont effet non modal et peuvent tre programmes avec des instructions de
dplacement. Les avances et modes d'interpolation (G0, G1, ...), de mme que le nombre
d'axe, doivent tre adapts au problme de mesure concern.
Instructions de dplacement spciales
4.7 Mesure avec palpeur dclenchement (MEAS, MEAW)
Notions complmentaires
260 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Lecture des rsultats de mesure
Les rsultats de mesure pour les axes saisis avec le palpeur de mesure sont disponibles
dans les variables suivantes :
$AA_MM[<axe>]
Rsultats de mesure dans le systme de coordonnes machine
$AA_MW[<axe>]
Rsultats de mesure dans le systme de coordonnes pice
A la lecture de ces variables, aucun arrt du prtraitement n'est cr.

Remarque
Avec STOPRE, un arrt du prtraitement doit tre programm dans le programme CN un
emplacement adapt. faute de quoi il y aura lecture de valeurs errones.

Syntaxe
MEAS=<TE> G... X... Y... Z...
MEAW=<TE> G... X... Y... Z...
Signification
Instruction : Mesure avec effacement de la distance restant parcourir
MEAS
Prise d'effet : bloc par bloc (non modale)
Instruction : Mesure sans effacement de la distance restant parcourir
MEAW
Prise d'effet : bloc par bloc (non modale)
Evnement dclencheur de la mesure
Type : INT
Plage de valeurs : -2, -1, 1, 2
Nota :
il existe au maximum 2 palpeurs de mesure (selon le
niveau d'extension).
Signification :
(+)1 Front montant du palpeur de mesure 1 ( l'entre de
mesure 1)
-1 Front descendant du palpeur de mesure 1 ( l'entre de
mesure 1)
(+)2 Front montant du palpeur de mesure 2 ( l'entre de
mesure 2)
-2 Front descendant du palpeur de mesure 2 ( l'entre de
mesure 2)
<TE>
Nota :
il existe au maximum 2 palpeurs de mesure (selon le niveau d'extension).
G...
Mode d'interpolation, p. ex. G0, G1, G2 ou G3
X... Y... Z...
Point final en coordonnes cartsiennes
Instructions de dplacement spciales
4.7 Mesure avec palpeur dclenchement (MEAS, MEAW)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 261
Exemple

Code de programme Commentaire
N10 MEAS=1 G1 F1000 X100 Y730 Z40 ; Bloc de mesure avec palpeur de mesure
de la premire entre de mesure et
interpolation linaire. Un arrt du
prtraitement est automatiquement cr.
...
Informations complmentaires
tat du contrat de mesure
S'il est ncessaire de savoir, dans le programme, si le dclenchement du palpeur a eu lieu
ou non, il est possible d'interroger la variable d'tat $AC_MEA[n] (n = numro du palpeur) :

Valeur Signification
0 Tche de mesure non excute
1 Tche de mesure excute correctement (le dclenchement du palpeur a eu lieu)


Remarque
Si le palpeur est dvi dans le programme, la variable est mise 1. Au dbut d'un bloc de
mesure, la variable est mise automatiquement l'tat initial du palpeur.

Enregistrement des valeurs de mesure
Les positions sont mesures pour tous les axes interpolation et axes de positionnement
d'un bloc, qui sont dplacs (le nombre maximal d'axes dpend de la configuration de la
commande). Avec MEAS, le dclenchement du palpeur entrane un freinage dfini du
dplacement.

Remarque
Si un axe gomtrique est programm dans un bloc de mesure, les valeurs de mesure sont
enregistres pour tous les axes gomtriques courants.
Si un axe concern par une transformation est programm dans un bloc de mesure, les
valeurs de mesure sont enregistres pour tous les axes concerns par cette transformation.

Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
262 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Fonction
Plusieurs types de palpeurs et plusieurs systmes de mesure peuvent tre utiliss pour la
mesure axiale.
Les instructions MEASA et MEAWA permettent de saisir chaque mesure jusqu' quatre valeurs
de mesure pour l'axe programm et de les ranger dans des variables systme en fonction de
l'vnement dclencheur.
L'instruction MEAC permet d'effectuer des mesures en continu. Les rsultats des mesures sont
rangs dans des variables FIFO. Pour MEAC, il est galement possible de saisir jusqu'
quatre valeurs par mesure.

Lecture des rsultats de mesure
Les rsultats de mesure sont disponibles dans variables suivantes :
$AA_MM1...4[<axe>]
Rsultats de mesure dans le systme de coordonnes machine
$AA_MW1...4[<axe>]
Rsultats de mesure dans le systme de coordonnes pice
Syntaxe
MEASA[<axe>]=(<mode>,<TE1>,...,<TE4>)
MEAWA[<axe>]=(<mode>,<TE1>,...,<TE4>)
MEAC[<axe>]=(<mode>,<mmoire de mesure>,<TE1>,...,<TE4>)
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 263

Remarque
MEASA et MEAWA ont un effet non modal et peuvent tre programmes dans un bloc. Par
contre, si vous programmez MEASA/MEAWA avec MEAS/MEAW dans un mme bloc, un message
d'erreur sera mis.
Signification
Instruction : Mesure axiale avec effacement de la distance restant
parcourir
MEASA
Prise d'effet : bloc par bloc (non modale)
Instruction : Mesure axiale sans effacement de la distance restant
parcourir
MEAWA
Prise d'effet : bloc par bloc (non modale)
Instruction : Mesure axiale continue sans effacement de la distance restant
parcourir
MEAC
Prise d'effet : bloc par bloc (non modale)
<Axe>
Nom de laxe de canal utilis pour la mesure
Nombre deux chiffres pour l'indication du mode de fonctionnement (mode
de mesure et systme de mesure)
Mode de mesure (unit) :
0 annulation du contrat de mesure.
1 Jusqu' 4 vnements dclencheurs diffrents, activables
simultanment.
2 Jusqu' 4 vnements dclencheurs activables successivement.
3 Jusqu' 4 vnements dclencheurs activables successivement,
cependant sans surveillance de l'vnement dclencheur 1 au
dmarrage (inhibition des alarmes 21700/21703).
Nota :
ce mode n'est pas possible avec MEAC.
Systme de mesure (dizaine) :
0 (ou aucune indication) systme de mesure actif
1 systme de mesure 1
2 systme de mesure 2
<Mode>
3 les deux systmes de mesure
Evnement dclencheur de la mesure
Type : INT
Plage de valeurs : -2, -1, 1, 2
Signification :
(+)1 Front montant du palpeur 1
-1 Front descendant du palpeur 1
(+)2 Front montant du palpeur 2
<TE>
-2 Front descendant du palpeur 2
<mmoire de
mesure>
Numro de la FIFO (mmoire file d'attente)
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
264 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemples
Exemple 1 : mesure axiale avec effacement de la distance restant parcourir en mode 1
(valuation dans l'ordre chronologique)
a) avec 1 systme de mesure

Code de programme Commentaire
...
N100 MEASA[X] = (1,1,-1) G01 X100 F100 ; Mesure en mode 1 avec systme de mesure
actif. Attente du signal de mesure avec
front montant/descendant du palpeur 1 sur
le trajet vers X=100.
N110 STOPRE ; l'arrt du prtraitement des blocs,
N120 IF $AC_MEA[1]==FALSE GOTOF ENDE ; Vrification du succs de la mesure.
N130 R10=$AA_MM1[X] ; Mmorisation de la valeur de mesure
correspondant au premier vnement
dclencheur programm (front montant).
N140 R11=$AA_MM2[X] ; Mmorisation de la valeur de mesure
correspondant au deuxime vnement
dclencheur programm (front descendant).
N150 FIN :

b) avec 2 systmes de mesure

Code de programme Commentaire
...
N200 MEASA[X]=(31,1,-1) G01 X100 F100 ; Mesure en mode 1 avec les deux systmes de
mesure. Attente du signal de mesure avec
front montant/descendant du palpeur 1 sur
le trajet vers X=100.
N210 STOPRE ; l'arrt du prtraitement des blocs,
N220 IF $AC_MEA[1]==FALSE GOTOF ENDE ; Vrification du succs de la mesure.
N230 R10=$AA_MM1[X] ; Mmorisation de la valeur de mesure du
systme de mesure 1 en cas de front
montant.
N240 R11=$AA_MM2[X] ; Mmorisation de la valeur de mesure du
systme de mesure 2 en cas de front
montant.
N250 R12=$AA_MM3[X] ; Mmorisation de la valeur de mesure du
systme de mesure 1 en cas de front
descendant.
N260 R13=$AA_MM4[X] ; Mmorisation de la valeur de mesure du
systme de mesure 2 en cas de front
descendant.
N270 FIN:

Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 265
Exemple 2 : mesure axiale avec effacement de la distance restant parcourir en mode 2
(valuation dans l'ordre de programmation)

Code de programme Commentaire
...
N100 MEASA[X] = (2,1,-1,2,-2) G01 X100 F100 ; Mesure en mode 2 avec systme de mesure actif.
Attente du signal de mesure dans l'ordre
suivant : front montant du palpeur 1, front
descendant du palpeur 1, front montant du
palpeur 2, front descendant du palpeur 2 sur le
trajet vers X=100.
N110 STOPRE ; l'arrt du prtraitement des blocs,
N120 IF $AC_MEA[1]==FALSE GOTOF PALPEUR2 ; Vrification du succs de la mesure avec
palpeur 1.
N130 R10=$AA_MM1[X] ; Mmorisation de la valeur de mesure
correspondant au premier vnement dclencheur
programm (front montant du palpeur 1).
N140 R11=$AA_MM2[X] ; Mmorisation de la valeur de mesure
correspondant au deuxime vnement dclencheur
programm (front montant du palpeur 1).
N150 PALPEUR2:
N160 IF $AC_MEA[2]==FALSE GOTOF ENDE ; Vrification du succs de la mesure avec
palpeur 2.
N170 R12=$AA_MM3[X] ; Mmorisation de la valeur de mesure
correspondant au troisime vnement
dclencheur programm (front montant du palpeur
2).
N180 R13=$AA_MM4[X] ; Mmorisation de la valeur de mesure
correspondant au quatrime vnement
dclencheur programm (front montant du palpeur
2).
N190 FIN:

Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
266 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 3 : mesure axiale continue en mode 1 (valuation dans l'ordre chronologique)
a) Mesure de 100 valeurs ou moins

Code de programme Commentaire
...
N110 DEF REAL VAL_MESURE[100]
N120 DEF INT boucle=0
N130 MEAC [X] = (1,1,-1) G01 X1000 F100 ; Mesure en mode 1 avec systme de mesure actif,
mmorisation des valeurs de mesure dans $AC_FIFO1,
attente du signal de mesure avec front descendant du
palpeur 1 sur le trajet vers X=1000.
N135 STOPRE
N140 MEAC[X]=(0) ; Abandon de la mesure ds l'accostage de la position
d'axe.
N150 R1=$AC_FIFO1[4] ; Mmorisation du nombre de valeurs de mesure
accumules dans le paramtre R1.
N160 FOR boucle=0 TO R1-1
N170 VAL_MESURE[boucle] = $AC_FIFO1[0] ; Lecture et mmorisation des valeurs de mesure
ranges dans $AC_FIFO1.
N180 ENDFOR

b) Mesure avec effacement de la distance restant parcourir aprs 10 valeurs de mesure

Code de programme Commentaire
...
N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ; Effacer la distance
restant parcourir.
N20 MEAC[x]=(1,1,1,-1) G01 X100 F500
N30 MEAC [X]=(0)
N40 R1=$AC_FIFO1[4] ; Nombre de valeurs de
mesure.
...
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 267
Informations complmentaires
Contrat de mesure
La programmation d'une tche de mesure peut avoir lieu dans le programme pice ou
partir d'une action synchrone (voir chapitre "Action synchrone au dplacement"). On ne peut
activer quun seul contrat de mesure par axe un moment donn.

Remarque
Lavance est adapter au problme de mesure pos.
Dans le cas de MEASA et MEAWA , des rsultats corrects sont garantis uniquement avec des
avances pour lesquelles il ne survient pas plus d'un mme vnement dclencheur et pas
plus de quatre vnements dclencheurs diffrents par priode d'chantillonnage de
l'asservissement de position.
Dans le cas de la mesure continue avec MEAC , le rapport entre la priode d'interpolation et
la priode d'chantillonnage de l'asservissement de position ne doit pas tre suprieur 8:1.

Evnement dclencheur
Un vnement dclencheur se compose du numro du palpeur de mesure et du critre de
dclenchement du signal de mesure (front montant ou descendant).
Pour chaque mesure, le programme peut traiter respectivement jusqu' 4 vnements
dclencheurs des palpeurs, autrement dit jusqu' deux palpeurs avec deux fronts de mesure
chacun. L'ordre du traitement et le nombre maximal de facteurs de dclenchement
dpendent du mode slectionn.

Remarque
Rgle valable pour le mode de mesure 1 : un mme vnement de dclenchement ne doit
tre programm qu'une seule fois dans chaque tche de mesure !

Mode de fonctionnement
Le premier chiffre (dizaines) du mode de fonctionnement permet de slectionner le systme
de mesure souhait. Sil nexiste quun seul systme de mesure, alors que le second a t
programm, cest automatiquement le systme de mesure existant qui sera pris en compte.
Le second chiffre (units) permet de slectionner le mode de mesure souhait. La procd
de mesure s'adapte ainsi aux possibilits de la commande respective :
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
268 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Mode 1
Les vnements dclencheurs sont traits dans l'ordre chronologique de leur apparition.
Dans ce mode, quand on met en uvre des cartes 6 axes, on ne peut programmer quun
seul vnement dclencheur ou alors, si on en programme plusieurs, il y a commutation
automatique dans le mode 2 (sans avertissement pralable).
Mode 2
Les vnements dclencheurs sont traits dans l'ordre de leur programmation.
Mode 3
Les vnements dclencheurs sont traits dans l'ordre de leur programmation,
cependant aucune surveillance de l'vnement dclencheur 1 au dmarrage n'est
ralise.



Remarque
Si vous travaillez avec 2 systmes de mesure, seulement deux vnements
dclencheurs sont programmables.

Mesure avec et sans effacement de la distance restant parcourir
Quand vous programmez MEASA, l'effacement de la distance restant parcourir est effectu
seulement aprs la saisie de toutes les valeurs de mesure requises.
Pour des tches de mesure spciales o la position programme doit tre accoste
imprativement, utilisez la fonction MEAWA.
Distance
restant
parcourir
Distance programme
TE4 TE3 TE2 TE1
V
t

Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 269

Remarque
MEASA n'est pas programmable dans des actions synchrones. Si on le souhaite, on peut
programmer MEAWA plus effacement de la distance restant parcourir en tant qu'action
synchrone.
Quand le contrat de mesure est lanc avec MEAWA partir dune action synchrone, les
valeurs mesures sont disponibles uniquement dans le systme de coordonnes machine.

Rsultats de mesure pour MEASA, MEAWA
Les rsultats de mesure sont disponibles sous les variables suivantes :
dans le systme de coordonnes machine :

$AA_MM1[<axe>]
Valeur de mesure du systme de mesure programm pour
l'vnement dclencheur 1
...
...
$AA_MM4[<axe>]
Valeur de mesure du systme de mesure programm pour
l'vnement dclencheur 4
dans le systme de coordonnes pice :

$AA_WM1[<axe>]
Valeur de mesure du systme de mesure programm pour
l'vnement dclencheur 1
...
...
$AA_WM4[<axe>]
Valeur de mesure du systme de mesure programm pour
l'vnement dclencheur 4


Remarque
A la lecture de ces variables, aucun arrt du prtraitement n'est cr. Avec STOPRE, un arrt
du prtraitement doit tre programm un emplacement adapt. faute de quoi il y aura
lecture de valeurs errones.

Axes gomtriques / transformations
Si la mesure axiale doit tre lance pour un axe gomtrique, il convient de programmer de
faon explicite le mme contrat de mesure pour tous les autres axes gomtriques. Il en va
de mme pour les axes qui participent une transformation.
Exemple :
N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1) MEASA[X]=(1,1) G0 Z100
ou
N10 MEASA[Z]=(1,1) POS[Z]=100
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
270 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Contrat de mesure avec 2 systmes de mesure
Lorsquun contrat de mesure est excut avec deux systmes de mesure, chacun des deux
vnements dclencheurs possibles est saisi par les deux systmes de mesure de laxe en
question. Les variables rserves sont ainsi affectes :

$AA_MM1[<axe>]
ou
$AA_MW1[<axe>]
Valeur de mesure du systme
de mesure 1 pour l'vnement
dclencheur 1
$AA_MM2[<axe>]
ou
$AA_MW2[<axe>]
Valeur de mesure du systme
de mesure 2 pour l'vnement
dclencheur 1
$AA_MM3[<axe>]
ou
$AA_MW3[<axe>]
Valeur de mesure du systme
de mesure 1 pour l'vnement
dclencheur 2
$AA_MM4[<axe>]
ou
$AA_MW4[<axe>]
Valeur de mesure du systme
de mesure 2 pour l'vnement
dclencheur 2
Etat du palpeur de mesure
L'tat du palpeur est disponible dans la variable systme suivante :
$A_PROBE[<n>]
<n>=palpeur

Valeur Signification
1 Palpeur actionn
0 Palpeur non actionn
Etat du contrat de mesure MEASA, MEAWA
S'il est ncessaire de connatre, dans le programme, l'tat de la tche de mesure, il peut tre
interrog avec $AC_MEA[n], <n> = numro du palpeur de mesure. Aussitt que tous les
vnements dclencheurs du palpeur "n" programms dans un bloc ont eu lieu, cette
variable fournit la valeur 1. Sinon, elle fournit la valeur 0.

Remarque
Si la mesure est lance partir d'actions synchrones, $AC_MEA n'est plus actualis. Dans
ce cas, il convient d'interroger les nouveaux signaux d'tat de l'AP, DB31, DBX62.3, ou la
variable quivalente $AA_MEAACT[<axe>].
Signification :
$AA_MEAACT==1 : mesure active
$AA_MEAACT==0 : mesure non active

Mesure continue (MEAC)
Avec MEAC , les valeurs de mesure sont fournies dans le systme de coordonnes machine
et ranges dans la mmoire FIFO[n] indique (mmoire file d'attente). Quand deux
palpeurs ont t configurs pour la mesure, les valeurs de mesure du second palpeur seront
ranges sparment dans la mmoire FIFO[n+1] configure cet effet (par le biais des PM).
Instructions de dplacement spciales
4.8 Fonction de mesure tendue (MEASA, MEAWA, MEAC) (option)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 271
La mmoire FIFO est une mmoire file d'attente dans laquelle on enregistre les valeurs de
mesure dans des variables $AC_FIFO suivant le principe "premier entr, premier sorti" (voir
chapitre "Actions synchrones au dplacement").

Remarque
Le contenu de la mmoire FIFO ne peut tre lu qu'une seule fois. Si vous souhaitez pouvoir
rutiliser les valeurs mesures, mmorisez-les temporairement dans les donnes utilisateur.
Ds que le nombre de mesures destines la mmoire FIFO dpasse le nombre maximum
prvu dans les paramtres machine, il est mis fin automatiquement la mesure.
Pour raliser une mesure sans fin, programmez la lecture cyclique des valeurs de mesure.
La lecture doit tre effectue au moins la mme frquence que l'entre de nouvelles
valeurs de mesure.

Erreurs de programmation dtectes
Les erreurs de programmation suivantes sont dtectes et signales par un message
d'erreur :
MEASA/MEAWA programmes avec MEAS/MEAW dans un mme bloc
Exemple :
N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100
MEASA/MEAWA avec un nombre de paramtres <2 ou >5
Exemple :
N01 MEAWA[X]=(1) G01 F100 POS[X]=100
MEASA/MEAWA avec vnement dclencheur diffrent de 1/ -1/ 2/ -2
Exemple :
N01 MEASA[B]=(1,1,3) B100
MEASA/MEAWA avec mode incorrect
Exemple :
N01 MEAWA[B]=(4,1) B100
MEASA/MEAWA avec vnement dclencheur programm deux fois
Exemple :
N01 MEASA[B]=(1,1,-1,2,-1) B100
MEASA/MEAWA et axe GEO manquant
Exemple :
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) G01 X50 Y50 Z50 F100 ;axe GEOX/Y/Z
Contrat de mesure htrogne pour axes gomtriques
Exemple :
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2) G01 X50 Y50 Z50 F100
Instructions de dplacement spciales
4.9 Fonctions spciales pour l'utilisateur OEM (OEMIPO1, OEMIPO2, G810 G829)
Notions complmentaires
272 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.9 Fonctions spciales pour l'utilisateur OEM (OEMIPO1, OEMIPO2,
G810 G829)
Fonction
Adresses OEM
L'utilisateur OEM dfinit la signification des adresses OEM. La fonctionnalit est entre par
le biais de cycles de compilation. Cinq adresses OEM sont rserves. Les descripteurs
d'adresse peuvent tre spcifis. Les adresses OEM sont admises dans chaque bloc.
Paramtres
Groupes de fonctions G rservs
Groupe 1 avec OEMIPO1, OEMIPO2
L'utilisateur OEM peut dfinir deux noms supplmentaires des fonctions G OEMIPO1, OEMIPO2
. La fonctionnalit est entre par le biais de cycles de compilation et elle est rserve
l'utilisateur OEM.
Groupe 31 avec G810 G819
Groupe 32 avec G820 G829
Deux groupes de fonctions G comptant chacun dix fonctions G OEM sont rservs
l'utilisateur OEM. Ceci permet de sortir, pour une utilisation externe, les fonctions introduites
par l'utilisateur OEM.
Fonctions et sous-programmes
En outre, l'utilisateur OEM peut crer des fonctions et des sous-programmes prdfinis avec
transfert de paramtres.
Instructions de dplacement spciales
4.10 Rduction de l'avance avec dclration aux angles (FENDNORM, G62, G621)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 273
4.10 Rduction de l'avance avec dclration aux angles (FENDNORM,
G62, G621)
Fonction
Lors de la dclration automatique aux angles, l'avance est rduite juste avant l'angle
concern selon une courbe en forme de cloche. En outre, l'tendue du comportement d'outil
pertinent pour l'usinage peut tre paramtre au moyen des donnes de rglage. Ce sont :
Dbut et fin de la rduction de l'avance
Correction de vitesse avec laquelle l'avance est rduite
Identification de l'angle pertinent
En tant qu'angles pertinents, on prend en considration les angles dont l'angle interne est
infrieur l'angle paramtr par l'intermdiaire de la donne de rglage .
La valeur par dfaut FENDNORM dsactive la fonction de correction automatique aux angles.
Bibliographie :
/FBA/ Description fonctionnelle Dialectes ISO
Syntaxe
FENDNORM
G62 G41
G621
Signification

FENDNORM
Dclration automatique aux angles dsactive
G62
Dclration aux angles intrieurs avec correction du rayon d'outil active
G621
Dclration tous les angles avec correction du rayon d'outil active

G62 intervient seulement au niveau des angles internes avec
correction active du rayon d'outil G41, G42 et
contournage actif G64, G641
L'angle correspondant est accost avec l'avance rduite qui rsulte de :
F * (correction de vitesse pour la rduction de l'avance) * correction de vitesse de l'avance
La rduction maximale de l'avance peut tre atteinte lorsque l'outil doit assurer, par rapport
la trajectoire du centre de l'outil, le changement de direction vers l'angle concern.
G621 intervient comme G62 au niveau de chaque angle form par les axes dfinis avec
FGROUP.
Instructions de dplacement spciales
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Notions complmentaires
274 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA,
IPOENDA, IPOBRKA, ADISPOSA)
Fonction
De faon analogue aux critres de changement de bloc en interpolation de trajectoire (G601,
G602 et G603), vous pouvez programmer un critre de fin de dplacement en interpolation
d'axes individuels dans un programme pice ou une action synchrone pour axes de
commande/AP.
Selon le rglage du critre de fin de dplacement, les blocs de programme pice ou de cycle
technologique comportant des dplacements d'axes individuels se terminent plus ou moins
rapidement. Cela vaut galement pour l'AP via FC15/16/18.
Syntaxe
FINEA[<axe>]
COARSEA[<axe>]
IPOENDA[<axe>]
IPOBRKA(<axe>[,<instant>])
ADISPOSA(<axe>[,<mode>,<taille de fentre>])
Signification

FINEA : Fin du dplacement lorsque "Arrt prcis fin" est atteint
COARSEA : Fin du dplacement lorsque "Arrt prcis grossier" est atteint
IPOENDA : Fin de dplacement lorsque "Arrt d'interpolateur" est atteint
IPOBRKA : Changement de bloc possible dans la rampe de freinage
ADISPOSA : Taille de la fentre de tolrance du critre de fin de
dplacement
<axe> : Nom d'axe de canal (X, Y, ....)
<instant> : Instant du changement de bloc en % de la rampe de freinage
Mode
Type : INT
0 Fentre de tolrance pas active
1 Fentre de tolrance rapporte la
consigne de position
<mode> :
Plage de valeurs :
2 Fentre de tolrance rapporte la
position relle
Taille de la fentre de tolrance
Cette valeur est range dans la donne de rglage
SD43610 $SA_ADISPOSA_VALUE en synchronisation avec
l'excution des blocs.
<taille de fentre> :
Type : REAL
Instructions de dplacement spciales
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 275
Exemples
Exemple 1 : fin de dplacement lorsque l'arrt d'interpolateur est atteint

Code de programme Commentaire
...
N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X] Dplacement sur la
position X100 avec
une vitesse
tangentielle de 1000
tr/min avec une
valeur
d'acclration de
90% et une fin de
dplacement lorsque
l'arrt
d'interpolateur est
atteint.
...
N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=2000 ACC[X]=140 IPOENDA[X] ; Dplacement sur la
position X50,
lorsque l'entre 1
est active, avec une
vitesse tangentielle
de 2000 tr/min avec
une valeur
d'acclration de
140% et une fin de
dplacement lorsque
l'arrt
d'interpolateur est
atteint.
...

Exemple 2 : critre de changement de bloc dans la rampe de freinage dans le programme
pice

Code de programme Commentaire
; Prise d'effet des paramtres par dfaut
N40 POS[X]=100 ; Le changement de bloc s'effectue ds que l'axe X a atteint la position
100 avec arrt prcis fin.
N20 IPOBRKA(X,100) ; Activation du critre de changement de bloc "Rampe de freinage".
N30 POS[X]=200 ; Le changement de bloc a lieu ds que l'axe X commence freiner.
N40 POS[X]=250 ; L'axe X ne freine pas la position 200, mais poursuit jusqu' la
position 250 et le changement de bloc s'amorce ds que l'axe X commence
freiner.
N50 POS[X]=0 ; L'axe X freine et revient la position 0, le changement de bloc
s'effectue la position 0 avec arrt prcis fin.
N60 X10 F100
N70 M30
...
Instructions de dplacement spciales
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Notions complmentaires
276 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Exemple 3 : critre de changement de bloc dans la rampe de freinage dans les actions
synchrones

Code de
programme
Commentaire
; Dans le cycle technologique :
FINEA ; Critre de fin de dplacement "Arrt prcis fin".
POS[X]=100 ; Le changement de bloc de cycle technologique s'effectue ds que l'axe X a atteint la
position 100 avec arrt prcis fin.
IPOBRKA(X,100) ; Activation du critre de changement de bloc "Rampe de freinage".
POS[X]=100 ; POS[X]=100 ; le changement de bloc de cycle technologique a lieu ds que l'axe X
commence freiner.
POS[X]=250 ; L'axe X ne freine pas la position 200, mais poursuit jusqu' la position 250 et le
changement de bloc a lieu dans le cycle technologique ds que l'axe X commence
freiner.
POS[X]=250 ; L'axe X freine et revient la position 0, le changement de bloc s'effectue la
position 0 avec arrt prcis fin.
M17
Informations complmentaires
Lecture du critre de fin de dplacement
Le critre de fin de dplacement rgl peut tre interrog avec la variable
systme$AA_MOTEND[<axe>] :
Valeur Signification
1 Fin du dplacement avec "Arrt prcis fin"
2 Fin du dplacement avec "Arrt prcis grossier"
3 Fin du dplacement avec "Arrt IPO"
4 Critre de changement de bloc dans la rampe de freinage de l'axe en mouvement
5 Changement de bloc dans la rampe de freinage avec fentre de tolrance rapporte la
"consigne de position
6 Changement de bloc dans la rampe de freinage avec fentre de tolrance rapporte la
"position relle


Remarque
Aprs RESET, la dernire valeur programme est conserve.

Critre de changement de bloc dans la rampe de freinage
La valeur en pourcentage est inscrite dans la donne de rglage de faon synchrone
l'excution :
SD43600 $SA_IPOBRAKE_BLOCK_EXCHANGE
Quand aucune valeur n'est transfre, c'est la valeur courante de la donne de rglage qui
est active.
La valeur est rglable dans une plage de 0 % 100 %.
Instructions de dplacement spciales
4.11 Critre programmable de fin de dplacement (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 277
Fentre de tolrance additionnelle pour IPOBRKA
Au critre de changement de bloc dans la rampe de freinage, peut venir s'ajouter une
"fentre de tolrance" additionnelle pour le critre de changement de bloc. Le dblocage
s'effectue uniquement si l'axe :
a atteint, comme jusqu'ici, la valeur en % de la rampe de freinage qui a t prescrite
et
si sa valeur relle courante ou sa consigne de position n'est pas loigne de la position
finale dans le bloc d'une valeur suprieure la tolrance prescrite ici.
Bibliographie
Pour plus d'informations sur le critre de changement de bloc des axes de positionnement,
rfrez-vous la :
Description fonctionnelle Fonctions d'extension ; axes de positionnement (P2)
Manuel de programmation Notions de base, chapitre "Rgulation par avance"
Instructions de dplacement spciales
4.12 Jeu de paramtres servo programmable (SCPARA)
Notions complmentaires
278 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
4.12 Jeu de paramtres servo programmable (SCPARA)
Fonction
Avec SCPARA, vous pouvez dfinir le jeu de paramtres constitu de PM dans un programme
pice et des actions synchrones (jusqu' prsent, uniquement possible par le biais de l'AP).
DB3n DBB9 Bit3
Pour viter tout conflit entre demande AP et CN, un bit supplmentaire a t dfini dans
l'interface AP NCK.
DB3n DBB9 Bit3 Dfinition jeu de paramtres avec SCPARA bloque".
Dans le cas o la dfinition du jeu de paramtres avec SCPARA est bloque, il n'y a pas de
message d'erreur si la fonction est malgr tout programme.
Syntaxe
SCPARA[<axe>]=<valeur>
Signification

SCPARA
Dfinition du jeu de paramtres
<Axe>
Nom d'axe de canal (X, Y, ....)
<Valeur>
Jeu de paramtres dsir (1<= valeur <=6)


Remarque
Le jeu de paramtres actuel peut tre interrog avec la variable systme $AA_SCPAR[<axe>].
Pour les fonctions G33, G331 ou G332, la commande slectionne le jeu de paramtres le plus
appropri.
Si le changement du jeu de paramtres servo doit avoir lieur aussi bien dans un programme
pice ou une action synchrone que dans l'AP, le programme AP utilisateur doit tre tendu.

Bibliographie :
/FB1/ Manuel de fonctions de base ; Avances (V1),
Chapitre "Influence sur l'avance".
Exemple

Code de programme Commentaire
...
N110 SCPARA[X]= 3 ; Le 3me jeu de paramtres est slectionn pour l'axe X.
...

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 279
Transformations de coordonnes (FRAMES)
5
5.1 Transformation de coordonnes par variables frames
Fonction
En plus des possibilits prcdemment dcrites dans le manuel de programmation "Notions
de base", il est possible de dterminer des systmes de coordonnes galement avec des
variables frames prdfinies.

Les systmes de coordonnes suivants sont dfinis :
SCM : systme de coordonnes machine
SCB : systme de coordonnes de base
SBR : systme de coordonnes de base rglable
SPR : systme de coordonnes pice rglable
SCP : systme de coordonnes pice
Qu'est-ce qu'une variable frame prdfinie ?
Les variables frames prdfinies sont des mots-cls dont l'effet est dj dfini dans le
langage de la commande et qui peuvent tre traites dans le programme CN.
Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
280 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Variables frames possibles :
Frame de base (dcalage de base)
frames rglables
frame programmable
Lecture des affectations de valeurs et des valeurs relles
Corrlation entre variables frames et frames
Vous pouvez activer une transformation de coordonnes en affectant un frame une
variable frame.
Exemple : $P_PFRAME=CTRANS(X,10)
Variable frame :
$P_PFRAME signifie : frame programmable courant.
Frame :
CTRANS(X,10) signifie : dcalage d'origine programmable de l'axe X de 10 mm.
Y
X
Y
X
Y
X
Y
X
$P_BFRAME, $P_UBFR
$P_lFRAME, $P_UlFR[..]
$P_PFRAME
SCB
SCB
SCP
SCP
SCD
SCD
SCR
SCR

Lecture des valeurs relles
Les valeurs relles courantes dans les diffrents systmes de coordonnes peuvent tre
lues dans le programme pice l'aide de variables prdfinies :
$AA_IM[axe] : Lecture valeur relle dans SCM
$AA_IB[axe] : Lecture valeur relle dans SCB
$AA_IBN[axe] : Lecture valeur relle dans SCR
$AA_IEN[axe] : Lecture valeur relle dans SPR
$AA_IW[axe] : Lecture valeur relle dans SCP
Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 281
5.1.1 Variables frames prdfinies ($P_BFRAME, $P_IFRAME, $P_PFRAME,
$P_ACTFRAME)
$P_BFRAME
Variable frame de base courant qui tablit la corrlation entre le systme de coordonnes de
base (SCB) et le systme de coordonnes de base rglable (SBR).
Si le frame de base dfini par $P_UBFR doit tre immdiatement actif dans le programme, il
faut
soit programmer G500,G54...G599
soit craser $P_BFRAME avec $ $P_UBFR .
Z
X
Z
X
$P_BFRAME, $P_UBFR
SCB
SCB
SCD
SCD

Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
282 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
$P_IFRAME
Variable frame rglable courant qui tablit la corrlation entre le systme de coordonnes de
base rglable (SBR) et le systme de coordonnes pice rglable (SPR).
$P_IFRAME correspond $P_UIFR[$P_IFRNUM]
$P_IFRAME contient, aprs la programmation de G54 par exemple, la translation, la
rotation, l'homothtie et la fonction miroir dfinies par G54 .
Z
Y
X
Z
X
Y
SCD
SCD
SCD
SCR
SCR
SCR

Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 283
$P_PFRAME
Variable de frame programmable courante qui tablit la relation entre le systme de
coordonns-pice rglable (SPR) et le systme de coordonnes-pice (SCP).
$P_PFRAME contient le frame rsultant, obtenu
partir de la programmation de TRANS/ATRANS, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR
ou
partir de l'affectation de CTRANS, CROT, CMIRROR, CSCALE au frame programmable.
Z
BNS
Y
X
BNS
Z
X
Z
ENS
ENS
X
ENS
BNS
Y
Y
SCP
SCP
SCP

$P_ACTFRAME
Frame rsultant courant, obtenu par concatnation
de la variable frame de base courante $P_BFRAME,
de la variable frame rglable courante $P_IFRAME avec frames systme et
de la variable frame programmable courante $P_PFRAME avec frames systme.
Pour de plus amples informations sur les frames systme, voir le chapitre "Frames actifs
dans un canal".
$P_ACTFRAME dcrit l'origine pice momentanment valide.
Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
284 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Z
BNS
Y
X
BNS
Z
Z
Y
X
Y
X
ENS
ENS
ENS
BNS
X
Z
SCP
SCP
SCP
SCB
SCB

Si $P_BFRAME, $P_IFRAME ou $P_PFRAME sont modifis, $P_ACTFRAME est recalcul.
$P_ACTFRAME correspond $P_BFRAME:$P_IFRAME:$P_PFRAME
lntroduction via programme, par ex.
$P_PFRAME=CTRANS(X,10)
ou TRANS X10
lntroduction via programme, par
ex. $P_lFRAME=CTRANS(X,10)
lntroduction via programme, par
ex. $P_BFRAME=CTRANS(X,10)
lntroduction via programme, par
ex. $P_UlFR[n]=CTRANS(X,10)
lntroduction via
HMl/MMC
lntroduction via programme,
par ex. _UBFR=CTRANS(X,10)
lntroduction via
HMl/MMC
activ via
G500, G54...G599
= $P_PFRAME
$P_UlFR[n] $P_UBFR
$P_ACTFRAME $P_BFRAME : $P_lFRAMEb:

Transformations de coordonnes (FRAMES)
5.1 Transformation de coordonnes par variables frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 285
L'activation du frame de base ou du frame rglable aprs reset dpend du rglage du PM
20110 RESET_MODE_MASK :
bit0=1, bit14=1 --> $P_UBFR (frame de base) activ
bit0=1, bit5=1 --> $P_UIFR[$P_UIFRNUM] (frame rglable) activ
Frames de base prdfinis $P_UBFR
Avec $P_UBFR, vous programmez le frame de base ; celui-ci n'est cependant pas
immdiatement actif dans le programme pice. Le frame de base dfini avec $P_UBFR est
pris en considration lorsque :
reset a t effectu, les bits 0 et 14 du PM RESET_MODE_MASK tant 1,
les instructions G500, G54...G599 ont t excutes.
Frames rglables prdfinis $P_UIFR[n]
Les variables frames prdfinies $P_UIFR[n] permettent de lire ou d'crire dans le
programme pice les dcalages d'origine rglables G54 G599 .
Ces variables constituent un tableau unidimensionnel de type FRAME nomm $P_UIFR[n].
Mise en correspondance avec les instructions G
La version standard comprend 5 frames rglables $P_UIFR[0]... $P_UIFR[4] , c'est--dire 5
instructions G quivalentes G500 et G54 G57 , sous les adresses desquels des valeurs
peuvent tre enregistres.
$P_IFRAME=$P_UIFR[0] correspond G500
$P_IFRAME=$P_UIFR[1] correspond G54
$P_IFRAME=$P_UIFR[2] correspond G55
$P_IFRAME=$P_UIFR[3] correspond G56
$P_IFRAME=$P_UIFR[4] correspond G57
Le nombre de frames est modifiable par le biais d'un paramtre machine :
$P_IFRAME=$P_UIFR[5] correspond G505
... ... ...
$P_IFRAME=$P_UIFR[99] correspond G599

Remarque
Ceci permet de crer 100 systmes de coordonnes en tout, qui peuvent tre appels par
tous les programmes, par exemple comme origines pour diffrents montages d'usinage.

PRUDENCE
La programmation de variables frames et { de frames se fait dans un bloc CN spcifique.
Exception :Programmation d'un frame rglable avec G54, G55 , ...

Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
286 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.2 Affectation de valeurs des variables frames / frames
5.2.1 Affectation de valeurs directes (valeur d'axe, angle, chelle)
Fonction
Vous pouvez affecter directement des valeurs des frames ou des variables frames dans
le programme CN.
Syntaxe
$P_PFRAME=CTRANS (X, valeur d'axe, Y, valeur d'axe, Z, valeur d'axe, )
$P_PFRAME=CROT (X, angle, Y, angle, Z, angle, )
$P_UIFR[..]=CROT (X, angle, Y, angle, Z, angle, )
$P_PFRAME=CSCALE (X, chelle, Y, chelle, Z, chelle, )
$P_PFRAME=CMIRROR (X, Y, Z)
La programmation de $P_BFRAME est analogue celle de $P_PFRAME.
Signification

CTRANS
Dcalage (translation) dans les axes indiqus
CROT
Rotation autour des axes indiqus
CSCALE
Changement d'chelle dans les axes indiqus
CMIRROR
Inversion du sens de l'axe indiqu
X Y Z
Valeur du dcalage en direction de l'axe gomtrique indiqu
Valeur d'axe
Affectation d'une valeur d'axe au dcalage
Angle
Affectation d'un angle de rotation autour des axes indiqus
Echelle
Changement d'chelle
Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 287
Exemple
L'affectation des valeurs au frame programmable courant active la translation, la rotation et
la fonction miroir.
Z
Z
X
X
Y
X
Y
Y
Y
1
1
CTRANS
2 CROT
3
3
CMlRROR
2


N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)
Prrgler des composants de rotation frame avec d'autres valeurs
Avec CROT, prrgler les trois composants UIFR

Code de programme Commentaire
$P_UIFR[5] = CROT(X, 0, Y, 0, Z, 0)
N100 $P_UIFR[5, y, rt]=0


N100 $P_UIFR[5, x, rt]=0


N100 $P_UIFR[5, z, rt]=0


Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
288 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
Vous pouvez programmer successivement plusieurs rgles opratoires.
Exemple :
$P_PFRAME=CTRANS(...):CROT(...):CSCALE...
Attention : les instructions doivent tre lies entre elles par l'oprateur de concatnation
deux-points ():(). Les instructions sont ainsi, d'une part, combines l'une l'autre et,
d'autre part, excutes de manire additive dans l'ordre programm.
C
T
R
A
N
S
C
S
C
A
L
E
CROT



Remarque
Les valeurs programmes avec les instructions indiques sont affectes aux frames et
mises en mmoire.
Les valeurs ne deviennent actives que lorsqu'elles sont affectes au frame d'une variable
frame active $P_BFRAME ou $P_PFRAME .


Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 289
5.2.2 Lecture et modification de composantes de frames (TR, FI, RT, SC, MI)
Fonction
Vous avez la possibilit d'accder des donnes individuelles d'un frame, par exemple
une valeur de dcalage ou un angle de rotation bien dfini. Vous pouvez modifier ces
valeurs ou les affecter une autre variable.
Syntaxe

R10=$P_UIFR[$P_UIFNUM,X,RT]
L'angle de rotation RT autour de l'axe X issu du dcalage
d'origine rglable actuellement valide $P_UIFRNUM doit
tre affect la variable R10.
R12=$P_UIFR[25,Z,TR]
La valeur de dcalage TR dans Z, issue du bloc de
donnes du frame n 25 rgl, doit tre affecte la
variable R12.
R15=$P_PFRAME[Y,TR]
La valeur de dcalage TR en Y du frame programmable
courant doit tre affecte la variable R15.
$P_PFRAME[X,TR] = 25
La valeur de dcalage TR en X du frame programmable
courant doit tre modifie. X25 s'applique ds prsent.
Signification

$P_UIFRNUM Cette variable tablit automatiquement le lien avec le
dcalage d'origine rglable actuellement valide.
P_UIFR[n,,] En indiquant le n de frame n, vous accdez au frame
rglable n n
Indication de la composante qui doit tre lue ou modifie :
TR TR Translation
FI FI Translation Fine
RT RT Rotation
SC SC Scale Changement d'chelle
MI MI Fonction miroir
X Y Z Est indiqu en outre (voir exemples) l'axe X, Y, Z
correspondant.

Plage de valeurs pour la rotation RT :

Rotation autour du 1er axe gomtrique : -180 +180
Rotation autour du 2me axe gomtrique : -90 +90
Rotation autour du 3me axe gomtrique : -180 +180
Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
290 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
Appeler le frame
En indiquant la variable systme $P_UIFRNUM, vous pouvez accder directement au
dcalage d'origine courant, rgl avec $P_UIFR ou G54, G55,
($P_UIFRNUM contient le n du frame courant rgl).
Vous appelez tous les autres frames rglables mmoriss $P_UIFR en indiquant le n {
correspondant $P_UIFR[n].
Pour les variables frames prdfinies et les frames que vous avez dfinis vous-mme,
indiquez le nom, par exemple $P_IFRAME.
Appeler les donnes
Le nom de l'axe et la composante de frame laquelle vous voulez accder ou que vous
voulez modifier figurent entre crochets droits, par ex. [X, RT] ou [Z, MI].
5.2.3 Combinaison de frames complets
Fonction
Dans le programme CN, un frame complet peut tre affect un autre frame ou bien des
frames peuvent tre concatns.
On utilise la concatnation de frames pour dcrire par exemple plusieurs pices disposes
sur une palette et qui doivent tre usines en un seul cycle.
G54
Z
X
Y

Pour la description des tches d'usinage sur palette, les composantes de frame pourraient,
par exemple, ne contenir que certaines valeurs partielles dont la concatnation pourraient
gnrer diffrentes origines pice.
Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 291
Syntaxe
Affectation de frames

DEF FRAME REGLAGE1
REGLAGE1=CTRANS(X,10)
$P_PFRAME=REGLAGE1
DEF FRAME REGLAGE4
REGLAGE4=$P_PFRAME
$P_PFRAME=REGLAGE4
Les valeurs du frame REGLAGE1, que
vous avez dfini vous-mme, sont
affectes au frame programmable
courant.
Le frame programmable courant est
charg en mmoire intermdiaire et
renvoy en mmoire principale, si
ncessaire.
Concatnation de frames
Les frames sont concatns dans l'ordre programm, les composantes de frame (dcalages,
rotations, etc.) tant excutes successivement et de manire additive.

$P_IFRAME=$P_UIFR[15]:$P_UIFR[16]



$P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5]
$P_UIFR[15] contient par exemple des
donnes pour des dcalages d'origine.
Les donnes de $P_UIFR[16], par
exemple des donnes pour des
rotations, sont traites ensuite sur cette
base.
Le frame rglable 3 est cr par
concatnation des frames rglables 4
et 5.


Remarque
N'oubliez pas que les frames doivent tre relis entre eux par l'oprateur de concatnation :
(deux-points)

Transformations de coordonnes (FRAMES)
5.2 Affectation de valeurs des variables frames / frames
Notions complmentaires
292 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.2.4 Dfinition de nouveaux frames (DEF FRAME)
Fonction
Outre les frames rglables prdfinis dcrits jusqu'ici, vous pouvez galement crer de
nouveaux frames. Il s'agit de variables du type frame auxquelles vous attribuez un nom de
votre choix.
Les fonctions CTRANS, CROT, CSCALE et CMIRROR vous permettent d'affecter des
valeurs vos frames dans le programme CN.
Syntaxe
DEF FRAME PALETTE1
PALETTE1=CTRANS():CROT()
Signification

DEF FRAME
Cration de nouveaux frames.
PALETTE1
Nom du nouveau frame
=CTRANS(...):
CROT(...)...
Affectation de valeurs aux fonctions possibles
Transformations de coordonnes (FRAMES)
5.3 Dcalage grossier et dcalage fin (CFINE, CTRANS)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 293
5.3 Dcalage grossier et dcalage fin (CFINE, CTRANS)
Fonction
Dcalage fin
L'instruction CFINE(X, ...,Y ...) permet de programmer un dcalage fin du frame de
base et de tous les frames rglables.
Un dcalage fin n'est possible que si le paramtre machine MD18600
$MN_MM_FRAME_FINE_TRANS=1.
Dcalage grossier
CTRANS(...) permet de dfinir le dcalage grossier.
Dcalage grossier
Dcalage fin
Rotation
Homothtie
Fonction miroir
Structure de frame avec dcalage fin

De la somme du dcalage grossier et du dcalage fin rsulte le dcalage total.
Syntaxe

$P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) :
CROT(x, 45)
; Concatnation de dcalage,
; dcalage fin et rotation
$P_UIFR[1]=CFINE(x, 0.5 y, 1.0, z, 0.1)
; L'intgralit du frame est crase
avec CFINE
; y compris le dcalage
grossier.
Transformations de coordonnes (FRAMES)
5.3 Dcalage grossier et dcalage fin (CFINE, CTRANS)
Notions complmentaires
294 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
L'accs aux composantes dcalage fin d'un frame a lieu l'aide de FI (Translation Fine).

DEF REAL FINEX
; Dfinition de la variable FINEX
FINEX=$P_UIFR[$P_UIFNUM, x, FI]
; Lecture du dcalage fin
; via la variable FINEX
FINEX=$P_UIFR[3, x, FI]$P
; Lecture du dcalage fin
; de l'axe X dans le 3me frame
; via la variable FINEX
Signification

CFINE(x, valeur, y,
valeur, z, valeur)
Dcalage fin pour plusieurs axes. Dcalage additif
(translation).
CTRANS(x, valeur, y,
valeur, z, valeur)
Dcalage grossier pour plusieurs axes. Dcalage absolu
(translation).
x y z
Dcalage d'origine des axes (8 max.)
Valeur
Composante de translation

Constructeur de la machine-outil
Avec le paramtre machine MD18600 $MN_ MM_FRAME_FINE_TRANS, vous pouvez
configurer le dcalage fin de deux manires :
0:
le dcalage fin ne peut tre ni introduit ni programm. G58 et G59 sont impossibles.
1:
le dcalage fin peut tre introduit ou programm pour les frames rglables, les frames de
base, les frames programmables, G58 et G59.
Description
Un dcalage fin modifi via le tableau de commande HMI n'est actif qu'aprs activation du
frame correspondant, c'est--dire aprs activation par G500, G54...G599. Le dcalage fin
d'un frame reste actif aussi longtemps que le frame l'est.
Le frame programmable ne possde pas de composante dcalage fin. Si un frame avec
dcalage fin est affect au frame programmable, le dcalage total de ce dernier rsulte de la
somme du dcalage grossier et du dcalage fin. Lors de la lecture du frame programmable,
le dcalage fin est toujours nul.
Transformations de coordonnes (FRAMES)
5.4 Dcalage d'origine externe
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 295
5.4 Dcalage d'origine externe
Fonction
Il s'agit d'une autre possibilit pour dcaler l'origine entre le systme de coordonnes de
base et le systme de coordonnes pice.
Dans le cas du dcalage d'origine externe, vous ne pouvez programmer que des dcalages
linaires.
Frame de base
Dcalage d'origine externe
Dcalage DRF
Transformation cinmatique
Dcalage Preset
Y
SCM
Y
SCM
X
SCM
Y
SCB
X
SCB
Y
SBR
X
SBR
Y
SPR
X
SPR
G54...G599

Programmation
La programmation des valeurs de dcalage, $AA_ETRANS s'effectue en affectant des
valeurs aux variables systme spcifiques aux axes.
Affecter une valeur de dcalage
$AA_ETRANS[axe]=RI
RI est la variable de calcul du type REAL qui contient la nouvelle valeur.
Le dcalage externe n'est en gnral pas indiqu dans le programme pice, mais est
spcifi par l'AP.

Remarque
La valeur crite dans le programme pice ne prend effet que lorsque le signal correspondant
est activ au niveau de l'interface VDI (interface NCU-AP).


Transformations de coordonnes (FRAMES)
5.5 Dcalage Preset (PRESETON)
Notions complmentaires
296 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.5 Dcalage Preset (PRESETON)
Fonction
Pour certaines applications spcifiques, il peut tre ncessaire d'affecter une nouvelle valeur
relle programme la position courante d'un ou de plusieurs axes ( l'arrt).

PRUDENCE
Avec la fonction PRESETON, le point de rfrence perd sa validit. Par consquent,
utilisez cette fonction uniquement pour les axes sans point de rfrence obligatoire. Pour
rtablir le systme initial, il est ncessaire d'accoster les points de rfrence avec G74
voir chapitre "Gestion des fichiers et programmes".


Transformation cinmatique
Dcalage Preset
SCM
X
SCM
Y
SCM
Y

Syntaxe
PRESETON(axe, valeur, ...)
Signification

PRESETON
Prrglage des mmoires de valeurs relles
Axe
Indication de l'axe machine
Valeur
nouvelle valeur relle qui doit s'appliquer l'axe indiqu


Remarque
Le forage de la valeur relle avec des actions synchrones ne devrait s'effectuer qu'avec les
mots-cl "WHEN" ou "EVERY".

Transformations de coordonnes (FRAMES)
5.5 Dcalage Preset (PRESETON)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 297
Exemple
L'affectation des valeurs relles se fait dans le systme de coordonnes machine - les
valeurs se rapportent aux axes machine.
N10 G0 A760
N20 PRESETON(A1,60)
L'axe A accoste la position 760. A la position 760, l'axe machine A1 reoit la nouvelle valeur
relle 60. { Ds lors, le positionnement s'effectue dans le nouveau systme de coordonnes.
Transformations de coordonnes (FRAMES)
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace (MEAFRAME)
Notions complmentaires
298 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace
(MEAFRAME)
Fonction
MEAFRAME est une extension du langage 840D pour l'assistance des cycles de mesure.
La fonction MEAFRAME calcule le frame partir de trois points idaux et des points
mesurs correspondants.
Lorsqu'une pice est positionne pour l'usinage, sa position dans le systme de
coordonnes cartsiennes machine est en gnral dcale et pivote par rapport sa
position idale. Pour un usinage ou une mesure prcise, un rglage physique onreux ou
une modification des dplacements dans le programme pice est ncessaire.
Un frame peut tre dtermin par palpage de trois points dans l'espace, dont les positions
idales sont connues. Le palpage s'effectue avec un capteur optique ou contact qui
accoste des trous ou des billes de mesure qui ont t positionns avec une grande prcision
sur la plaque support.
Syntaxe
MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY)
Signification

MEAFRAME
Calcul d'un frame partir de 3 points mesurs dans l'espace
IDEAL_POINT
Tableau Real 2 dim. qui contient les 3 coordonnes des
points idaux
MEAS_POINT
Tableau Real 2 dim. qui contient les 3 coordonnes des
points idaux
FIT_QUALITY
Variable
Real
-1:


-2:


-4:

Valeur
positive :
qui fournit les informations suivantes :
Les points idaux se trouvent
approximativement sur une droite : le frame n'a
pas pu tre calcul. La variable frame en retour
comprend un frame neutre.
Les points mesurs se trouvent
approximativement sur une droite : le frame n'a
pas pu tre calcul. La variable frame en retour
comprend un frame neutre.
Le calcul de la matrice de rotation est impossible
pour une autre raison.
Somme des distorsions (carts entre les points)
ncessaire pour transfrer passer le triangle
mesur dans un triangle congruent au triangle
idal.
Transformations de coordonnes (FRAMES)
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace (MEAFRAME)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 299


Remarque
Qualit de la mesure
Pour que les coordonnes mesures puissent tre mises en relation avec les coordonnes
idales par une rotation/translation combines, il doit y avoir congruence entre le triangle
form par les points mesurs et le triangle idal. Ceci est obtenu par un algorithme de
compensation qui minimise la somme des carrs des carts qui permettent de passer du
triangle mesur au triangle idal.
La distorsion effectivement ncessaire des points mesurs tant le reflet de la qualit de la
mesure, elle est fournie par MEAFRAME en tant que variable supplmentaire.

Remarque
Le frame cr par MEAFRAME peut, l'aide de la fonction ADDFRAME, tre transform en un autre
frame de la chane de frames.
Voir exemple : Concatnation de frames "Concatnation avec ADDFRAME".
Pour de plus amples informations pour les paramtres de ADDFRAME(FRAME,STRING), voir
/FB1/ Manuel de fonctions de base; axes, systmes de coordonnes, frames (K2), chapitre
"Concatnation de frames".

Exemple

Code de programme Commentaire
; Programme pice 1
DEF FRAME CORR_FRAME

Dfinition de points de mesure

Programmation Commentaire
DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0,
0.0,0.0,10.0)

DEF REAL MEAS_POINT[3,3] = SET
(10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8)
; Pour le test

DEF REAL FIT_QUALITY = 0
DEF REAL ROT_FRAME_LIMIT = 5 ; Permet au maximum une rotation de
la position de la pice de 5
degrs.
DEF REAL FIT_QUALITY_LIMIT = 3 ; Permet au maximum un dcalage de 3
mm
entre le triangle idal et le
triangle mesur.
DEF REAL SHOW_MCS_POS1[3]
DEF REAL SHOW_MCS_POS2[3]
DEF REAL SHOW_MCS_POS3[3]
Transformations de coordonnes (FRAMES)
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace (MEAFRAME)
Notions complmentaires
300 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0


Code de programme Commentaire
N100 G01 G90 F5000
N110 X0 Y0 Z0
N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS
_POINT,FIT_QUALITY)


N230 IF FIT_QUALITY < 0
SETAL(65000)
GOTOF NO_FRAME
ENDIF

N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT
SETAL(65010)
GOTOF NO_FRAME
ENDIF

N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT ; Limitation du 1e angle RPY
SETAL(65020)
GOTOF NO_FRAME
ENDIF

N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT ; Limitation du 2e angle RPY
SETAL(65021)
GOTOF NO_FRAME
ENDIF

N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT ; Limitation du 3e angle RPY
SETAL(65022)
GOTOF NO_FRAME
ENDIF

N300 $P_IFRAME=CORR_FRAME ; Activation du frame de balayage
par un frame rglable
; Vrifier le frame en positionnant
les axes gomtriques sur les
points idaux
N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1]
Z=IDEAL_POINT[0,2]

N410 SHOW_MCS_POS1[0]=$AA_IM[X]
N420 SHOW_MCS_POS1[1]=$AA_IM[Y]
N430 SHOW_MCS_POS1[2]=$AA_IM[Z]
N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1]
Z=IDEAL_POINT[1,2]

N510 SHOW_MCS_POS2[0]=$AA_IM[X]
N520 SHOW_MCS_POS2[1]=$AA_IM[Y]
N530 SHOW_MCS_POS2[2]=$AA_IM[Z]
N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1]
Z=IDEAL_POINT[2,2]

N610 SHOW_MCS_POS3[0]=$AA_IM[X]
Transformations de coordonnes (FRAMES)
5.6 Calcul d'un frame partir de 3 points mesurs dans l'espace (MEAFRAME)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 301
Code de programme Commentaire
N620 SHOW_MCS_POS3[1]=$AA_IM[Y]
N630 SHOW_MCS_POS3[2]=$AA_IM[Z]
N700 G500 ; Dsactiver le frame rglable, car
prrglage avec le frame nul
(sans indication de valeur).
No_FRAME ; Dsactiver le frame rglable, car
prrglage avec le frame nul
(sans indication de valeur)
M0
M30
Exemple de concatnation de frames
Concatnation de MEAFRAME des fins de correction
La fonction MEAFRAME( ) fournit un frame de correction. Si ce frame de correction est
concatn au frame rglable $P_UIFR[1] qui tait actif l'appel de la fonction, par exemple
G54, on obtient un frame rglable pour d'autres calculs de dplacement ou d'usinage.
Concatnation avec ADDFRAME
Si ce frame de correction est actif un autre endroit de la chane de frames ou si d'autres
frames sont actifs avant le frame rglable, la fonction ADDFRAME( ) peut tre utilise pour la
concatnation l'un des frames de base spcifiques un canal ou un frame systme.
Ne doivent pas tre actifs dans les frames :
la fonction miroir avec MIRROR
l'homothtie avec SCALE
Les paramtres d'entre pour les valeurs relles et les valeurs de consigne sont les
coordonnes de la pice. Dans le systme de base de la commande, ces coordonnes
doivent tre indiqus en
mm ou en pouces (G71/G70) et en tant que
mesure portant sur le rayon
(DIAMOF).
Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
302 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.7 Frames dfinition globale pour NCU
Fonction
Les frames dfinition globale pour NCU sont disponibles une seule fois par NCU, pour tous
les canaux. Ils peuvent tre crass et lus par tous les canaux. L'activation des frames
dfinition globale pour NCU a lieu dans le canal correspondant.
Les frames dfinition globale permettent d'appliquer des dcalages, des changements
d'chelle et des fonctions miroir des axes de canal ou des axes machine.
Liens gomtriques et concatnations de frames
Dans le cas de ces frames, il n'existe pas de lien gomtrique entre les axes. C'est pourquoi
les rotations et la programmation de descripteurs d'axes gomtriques sont impossibles.
Les frames dfinition globale ne peuvent contenir aucune composante de rotation. La
programmation d'une rotation est refuse avec mission de l'alarme : "18310 Canal %1
Bloc %2 Frame : rotation non autorise".
La concatnation de frames dfinition globale et de frames spcifiques un canal est
possible. Le frame rsultant contient toutes les composantes des frames, y compris les
rotations pour tous les axes. L'affectation d'un frame comportant des composantes de
rotation un frame dfinition globale est refuse avec mission de l'alarme "Frame :
rotation non autorise".
Frames dfinition globale pour NCU
Frames de base dfinition globale pour NCU $P_NCBFR[n]
jusqu' 8 frames de base NCU globaux peuvent tre configurs :
Des frames de base spcifiques un canal peuvent tre actifs simultanment.
Les frames dfinition globale peuvent tre crass et lus par tous les canaux d'une NCU.
Lors de l'crasement d'un frame dfinition globale, l'utilisateur doit assurer la coordination
entre les canaux. Cela est par exemple ralisable avec des marques wait (WAITMC).
Constructeur de la machine-outil
Le nombre de frames de base globaux est configur par des paramtres machine, voir
/FB1/ Machine de fonctions de base ; axes, systmes de coordonnes, frames (K2).
Frames rglables dfinition globale pour NCU $P_UIFR[n]
Tous les frames rglables G500, G54...G599 peuvent tre configurs comme tant soit
dfinition globale pour NCU, soit spcifiques un canal.
Constructeur de la machine-outil
Tous les frames paramtrables peuvent tre reconfigurs en frames globaux l'aide d'un
paramtre machine $MN_MM_NUM_GLOBAL_USER_FRAMES.
En tant que descripteurs d'axes pour les instructions Frame, vous pouvez utiliser des
descripteurs d'axes de canaux et des descripteurs d'axes machine. La programmation de
descripteurs d'axes gomtriques est refuse avec mission d'une alarme.
Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 303
5.7.1 Frames spcifiques un canal ($P_CHBFR, $P_UBFR)
Fonction
Les frames rglables ou les frames de base peuvent tre crass et lus par l'oprateur (ex.
HMI Advanced) et par l'AP
par l'intermdiaire du programme pice et
par l'intermdiaire de l'OPi.

Le dcalage fin est galement possible pour les frames dfinition globale. L'inhibition de
frames dfinition globale a lieu comme pour les frames spcifiques un canal, avec G53,
G153, SUPA et G500.
Constructeur de la machine-outil
Le PM 28081 MM_NUM_BASE_FRAMES permet de dfinir le nombre de frames de base
dans un canal. En configuration standard, il existe au moins un frame de base par canal. 8
frames de base sont possibles au maximum par canal. En plus de ces 8 frames de base, 8
frames de base dfinition globale pour NCU peuvent galement exister dans le canal.
Frames spcifiques un canal
$P_CHBFR[n]
La variable systme $P_CHBFR[n] permet de lire et d'craser les frames de base. Lors de
l'crasement d'un frame de base, le frame de base concatn rsultant n'est pas activ
immdiatement, mais uniquement lors de l'excution d'une instruction G500, G54...G599.
Cette variable sert principalement enregistrer les oprations d'criture dans le frame de
base effectues par lIHM ou l'AP. Ces variables frames sont sauvegardes.
Premier frame de base du canal
Un crasement de la variable prdfinie $P_UBFR n'active pas simultanment le frame de
base d'indice 0 ; l'activation n'a lieu que lors de l'excution d'une instruction G500,
G54...G599. Cette variable peut galement tre lue et crase dans le programme.
$P_UBFR
$P_UBFR est identique $P_CHBFR[0]. En version standard, il y a toujours un frame de base
dans le canal, de sorte que la variable systme est compatible avec les versions de logiciel
prcdentes. S'il n'y a pas de frame de base spcifique au canal, l'alarme "Frame :
instruction non autorise" est mise lors de l'criture ou de la lecture.
Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
304 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
5.7.2 Frames actifs dans un canal
Fonction
Les frames actifs dans un canal sont introduits par le programme pice via les variables
systme respectives de ces frames. Les frames systme en font galement partie. Ces
variables systme permettent de lire et d'craser le frame systme courant dans le
programme pice.
Frames actifs courants dans un canal
Vue densemble

Frames systme courants pour :
$P_PARTFRAME TCARR et PAROT
$P_SETFRAME Prrglage des mmoires de valeurs relles et
effleurement
$P_EXTFRAME Dcalage d'origine externe
$P_NCBFRAME[n] Frames de base courants dfinition globale pour NCU
$P_CHBFRAME[n] Frames de base courants spcifiques un canal
$P_BFRAME 1er frame de base courant du canal
$P_ACTBFRAME Frame de base rsultant
$P_CHBFRMASK et
$P_NCBFRMASK
Frame de base rsultant
$P_IFRAME Frame rglable courant
Frames systme courants pour :
$P_TOOLFRAME TOROT et TOFRAME
$P_WPFRAME Points de rfrence de la pice
$P_TRAFRAME Transformations
$P_PFRAME Frame programmable courant
Frame systme courant pour :
$P_CYCFRAME Cycles
P_ACTFRAME Frame rsultant courant
Concatnation de frames Le frame courant contient le frame de base rsultant.

$P_NCBFRAME[n] Frames de base courants dfinition globale pour NCU
La variable systme $P_NCBFRAME[n] permet de lire et d'craser les lments de tableau des
frames de base courants dfinition globale. Le frame de base rsultant est pris en
considration dans le canal lors de l'opration d'criture.
Le frame modifi n'est actif que dans le canal dans lequel le frame a t programm. Si le
frame doit tre modifi pour tous les canaux d'une NCU, vous devez craser simultanment
$P_NCBFR[n] et $P_NCBFRAME[n]. Ensuite, le frame doit encore tre activ dans les
autres canaux l'aide de G54, par ex. En cas d'crasement d'un frame de base, le frame de
base rsultant est recalcul.
Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 305
$P_CHBFRAME[n] Frames de base courants spcifiques un canal
La variable systme $P_CHBFRAME[n] permet de lire et d'craser les lments de tableau des
frames de base courants spcifiques un canal. Le frame de base rsultant est pris en
considration dans le canal lors de l'opration d'criture. En cas d'crasement d'un frame de
base, le frame de base rsultant est recalcul.
$P_BFRAME 1er frame de base courant du canal
La variable frame prdfinie $P_BFRAME permet de lire et d'craser, dans le programme
pice, le frame de base courant d'indice 0, qui est valide dans le canal. Ce frame est pris
immdiatement en considration.
$P_BFRAME est identique $P_CHBFRAME[0]. Par dfaut, la variable systme a toujours une
valeur valide. S'il n'y a pas de frame de base spcifique au canal, l'alarme "Frame :
instruction non autorise" est mise lors de l'criture ou de la lecture.
$P_ACTBFRAME Frame de base rsultant
La variable $P_ACTFRAME dtermine le frame de base rsultant concatn. Elle n'est
accessible qu'en lecture.
$P_ACTFRAME correspond
$P_NCBFRAME[0] : ... : $P_NCBFRAME[n] : $P_CHBFRAME[0] : ... : $P_CHBFRAME[n].
Y
SCB
Y
SCB
X
X
SCB
SBR
Y
SBR
X
SBR
$P_NCBFRAME[0]
$P_NCBFRAME[n], n $MN_MM_NUM_GLOBAL_BASE_FRAMES
$P_CHBFRAME[0] = $P_BFRAME
$P_CHBFRAME[n], n $MC_MM_NUM_BASE_FRAMES
$P_ACTBFRAME
$P-ACTBFRAME = $P_NCBFRAME[0] : $P_NCBFRAME[n] : $P_CHBFRAME[0] : $P_CHBFRAME[n]
SCB = Systme de coordonnes de base
SBR = Systme de coordonnes de base rglable
configurable via
configurable via


Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
306 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
$P_CHBFRMASK et $P_NCBFRMASK Frame de base rsultant
Avec les variables systme $P_CHBFRMASK et $P_NCBFRMASK , l'utilisateur peut slectionner les
frames de base pour le calcul du frame de base "rsultant". Ces variables ne peuvent tre
programmes que dans le programme et lues via l'OPI. Les valeurs de ces variables sont
interprtes en tant que masques binaires et indiquent les lments de $P_ACTFRAME
prendre en considration.
$P_CHBFRMASK permet d'indiquer les frames de base spcifiques au canal prendre en
considration et $P_NCBFRMASK , les frames de base dfinition globale pour NCU prendre
en considration.
La programmation de ces variables entrane un nouveau calcul du frame de base rsultant
et du frame rsultant. Les valeurs aprs Reset et les prrglages sont les suivantes :
$P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK et
$P_NCBFRMASK = $MC_CHBFRAME_RESET_MASK.
par ex.
$P_NCBFRMASK = 'H81' ;$P_NCBFRAME[0] : $P_NCBFRAME[7]
$P_CHBFRMASK = 'H11' ;$P_CHBFRAME[0] : $P_CHBFRAME[4]
$P_IFRAME Frame rglable courant
La variable frame prdfinie $P_IFRAME permet de lire et d'craser, dans le programme
pice, le frame rglable courant qui est valide dans le canal. Le frame rglable cras est
pris immdiatement en considration.
Dans le cas des frames rglables dfinition globale pour NCU, le frame modifi n'est actif
que dans le canal dans lequel le frame a t programm. Si le frame doit tre modifi pour
tous les canaux d'une NCU, il faut craser simultanment $P_UIFR[n] et $P_IFRAME. Ensuite,
le frame correspondant doit encore tre activ dans les autres canaux l'aide de G54, par
ex.
$P_PFRAME Frame programmable courant
$P_PFRAME est le frame programmable obtenu partir de la programmation de TRANS/ATRANS,
G58/G59, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR ou de l'affectation de CTRANS, CROT,
CMIRROR, CSCALE au FRAME programmable.
Variable frame programmable courante qui cre la relation entre le
systme de coordonnes rglable (SCR) et le
Systme de coordonnes pice (SCP)

Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 307
P_ACTFRAME Frame rsultant courant
Le frame rsultant courant $P_ACTFRAME rsulte de la concatnation de tous les frames
de base, du frame rglable courant et du frame programmable. Le frame courant est
toujours actualis si une composante de frame subit une modification.
$P_ACTFRAME correspond
$P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME :
$P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME
: : $P_TRAFRAME
$P_TOOLFR
$P_PARTFR
$P_CYCFR
$P_WPFR
$P_SETFR
$P_EXTFR
$P_TRAFR
: $P_WPFRAME $P_CYCFRAME : $P_PFRAME
G500, G54...G599
: $P_EXTFRAME $SETFRAME :
$P_TOOLFRAME :
: $P_ACTBFRAME : $P_lFRAME
$P_NCBFR=CTRANS(X,10)
:
$P_NCBFR[n] $P_CHBFR[n]
TRANS X10
$P_PFRAME=CTRANS(X,10) $P_lFRAME=CTRANS(X,10)
$P_NCBFRAME[1]=CTRANS(X,10)
$P_UlFR[n]=CTRANS(X,10) $P_CHBFR=CTRANS(Z,10)
G500, G54...G599
=
$P_UlFR[n]
$P_ACTFRAME : $P_PARTFRAME
Frame rsultant
Frame rsultant actif
Frame de gestion de donnes
Frames systme
spcifiques un canal
Frames de base NCU
spcifiques un
canal
Frames
dfinition globale
pour NCU
lntroduction via programme, par ex.
lntroduction
via HMl
activ via
lntroduction via programme, par ex.
activ via
lntroduction via programme, par ex.
lntroduction via programme, par ex. lntroduction via programme, par ex.
ou
lntroduction
via HMl

Transformations de coordonnes (FRAMES)
5.7 Frames dfinition globale pour NCU
Notions complmentaires
308 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Concatnation de frames
Le frame courant rsulte de la concatnation du frame de base rsultant, du frame rglable,
du frame systme et du frame programmable (voir frame rsultant courant, ci-dessus).
Transformation cinmatique
Dcalage avec la manivelle (DRF), dplacement forc,
[dcalage d'origine externe]
G54 ... G599 frame rglable, spcif. au
canal ou validit glob. pour la NCU
Tableau concaten de frames de base,
spcif. au canal et / ou validit glob. pour la NCU
SCM = Systme de coordonnes machine SCB = Systme de coordonnes SCP = Systme de coordonnes pice
BNS = Systme de coordonnes de base SCR = Systme de coordonnes rglable
Chane de frames
Dcalage du point de rfrence
Frames systme concatens pour PAROT, prrglage des valeurs
relles, effleurement. dcalage d'origine externe ext.
Frame pour cycles, frame programmable,
transformations

Frame systme pour TOROT
(TOFRAME), pices
SCM
SCP
SPR
SBR
SCB


Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 309
Transformations
6
6.1 Programmation gnrale des types de transformation
Fonctionnement gnral
Pour adapter la commande diffrentes cinmatiques de machine, il est possible de
programmer une slection de types de transformation avec des paramtres appropris. Par
le biais de ces paramtres, il est possible, pour la transformation choisie, de convenir de
l'orientation approprie de l'outil dans l'espace, mais aussi des mouvements d'orientation
des axes rotatifs.
Avec les transformations trois, quatre ou cinq axes, les indications de position programmes
se rfrent toujours la pointe de l'outil qui est poursuivie perpendiculairement la surface
d'usinage dans l'espace. Les coordonnes cartsiennes sont converties du systme de
coordonnes de base au systme de coordonnes machine et se rapportent aux axes
gomtriques. Ceux-ci dcrivent le point de fonctionnement. Les axes rotatifs virtuels
dcrivent les orientations de l'outil dans l'espace et se programment avec TRAORI.
Lors de la transformation cinmatique, il est possible de programmer des positions dans le
systme de coordonnes cartsiennes. La commande transforme les dplacements du
systme de coordonnes cartsiennes programms avec TRANSMIT, TRACYL et TRAANG
en dplacements des axes machine rels.
Programmation
Transformations trois, quatre et cinq axes TRAORI
La transformation d'orientation convenue est active avec l'instruction TRAORI et les trois
paramtres possibles pour numro transfo, vecteur d'orientation et dcalages d'axes rotatifs.
TRAORI(numro transfo, vecteur d'orientation, dcalages d'axes rotatifs)
Transformations cinmatiques
Parmi les transformations cinmatique, on compte les transformations convenues
TRANSMIT(numro transfo)
TRACYL(diamtre d'usinage, numro transfo)
TRAANG(angle de l'axe en oblique, numro transfo)
Dsactiver la transformation active
TRAFOOF permet de dsactiver la transformation active ce moment.
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
310 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Transformation d'orientation
Transformations trois, quatre et cinq axes TRAORI
Pour usiner de manire optimale des surfaces relief irrgulier dans la zone de travail de la
machine, les machines-outils ont besoin d'axes supplmentaires en plus des trois axes
linaires X, Y et Z. Les axes supplmentaires dcrivent l'orientation dans l'espace et sont
nomms ci-aprs "axes d'orientation". On en dispose sous forme d'axes de rotation sur
quatre types de machines dotes d'une cinmatique diffrente.
1. Tte pivotante sur deux axes, par exemple tte d'outil Cardan avec un axe rotatif
parallle un axe linaire, le plateau porte-outil tant fixe.
2. Plateau tournant sur deux axes, par exemple tte pivotante fixe avec plateau porte-outil
pivotant sur deux axes.
3. Tte pivotante sur un axe et plateau tournant sur un axe, par exemple tte pivotante
tournante avec outil orientable et plateau porte-outil pivotant sur un axe.
4. Tte pivotante sur deux axes et plateau tournant sur un axe, par exemple plateau porte-
outil pivotant sur un axe et tte pivotante tournante avec outil tournant autour de son
propre axe.
Les transformations 3 et 4 axes sont des formes particulires des transformations 5 axes et
se programment de manire analogue aux transformations 5 axes.
La "transformation gnrique 3, 4, 5, 6 axes" couvre grce l'tendue de ses fonctions pour
les axes rotatifs disposs angle droit ainsi que les transformations pour la tte de fraisage
Cardan et peut tre active avec TRAORI comme toute autre transformation d'orientation
pour ces quatre types de machine. En cas de transformation gnrique 5/6 axes,
l'orientation de l'outil dispose d'un troisime degr de libert pour lequel l'outil peut tourner
sur son axe propre dans l'espace pour la direction de l'outil.
Bibliographie : /FB3/ Manuel de fonctions spciales ; Transformation 3 5 axes (F2).
Position initiale d'orientation de l'outil indpendante de la cinmatique
ORIRESET
Lorsque une transformation d'orientation est active avec TRAORI, alors ORIRESET peut
indiquer les trois positions initiales de trois axes d'orientation maxi avec des paramtres A,
B, C en option. L'affectation de l'ordre des paramtres programms aux axes rotatifs
s'effectue dans l'ordre des axes d'orientation dfini par la transformation. Avec la
programmation de ORIRESET(A, B, C), les axes d'orientation sont parcourus de faon
linaire et synchronise de leur position momentane la position initiale indique.
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 311
Transformations cinmatiques
TRANSMIT et TRACYL
Pour les fraisages effectuer sur des tours, on peut, pour la transformation convenue,
programmer soit
1. un usinage frontal avec TRANSMIT dans le dispositif de serrage du tour ou
2. un usinage de rainures quelconques sur des corps cylindriques avec TRACYL.
TRAANG
Si l'axe de pntration doit aussi pouvoir pntrer en oblique (pour une utilisation en
rectification par exemple), on peut, avec TRAANG, programmer un angle paramtrable pour
la transformation convenue.
Dplacement PTP cartsien
Ce que l'on appelle le "dplacement PTP cartsien", dans lequel on peut programmer
jusqu' 8 positions d'articulations STAT= diffrentes, fait galement partie de la
transformation cinmatique. Les positions sont programmes dans le systme de
coordonnes cartsiennes, le dplacement de la machine s'effectuant en coordonnes
machine.
Bibliographie :
/FB2/ Manuel de fonctions d'extension ; transformation cinmatique (M1)
Transformations concatnes
Il est possible d'effectuer deux transformations successives. Pour la deuxime
transformation ainsi concatne, les trajets des axes sont repris partir de la premire
transformation.
La premire transformation peut tre :
la transformation de l'orientation TRAORI
Transformation polaire TRANSMIT
Transformation de cylindre TRACYL
Transformation d'axe oblique TRAANG
La deuxime transformation doit tre de type "axe oblique TRAANG"
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
312 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.1.1 Mouvements d'orientation lors des transformations
Dplacements d'outils et dplacements d'orientation
Les dplacements des orientations programmables dpendent en premier lieu du type de
machine. pour une transformation trois, quatre ou cinq axes avec TRAORI, les axes de
rotation ou les axes linaires orientables dcrivent les dplacements d'orientation de l'outil.
Toute modification de position des axes rotatifs participant la transformation d'orientation
entrane des dplacements compensateurs des autres axes machine. Ce faisant, la position
de la pointe de l'outil reste inchange.
Les mouvements d'orientation de l'outil peuvent tre programms via les descripteurs d'axe
rotatif A, B, C des axes virtuels par l'indication d'angles d'Euler ou d'angles RPY, de
vecteurs normaux la direction ou la surface, de vecteurs norms pour l'axe de rotation
d'un cne ou pour l'orientation intermdiaire sur l'enveloppe d'un cne, selon l'application.
Lors de la transformation cinmatique avec TRANSMIT, TRACYL et TRAANG, la
commande transforme les dplacements programms du systme de coordonnes
cartsiennes en dplacements des axes machine rels.
Cinmatique de machine avec transformation trois, quatre et cinq axes TRAORI
Soit l'outil soit le plateau tournant est orientable avec deux axes rotatifs au plus. La
combinaison d'une tte pivotante sur un axe et d'un plateau tournant lui aussi sur un axe est
galement possible.
Pice tourne
Type de machine 2 avec
la succession d'axes AC
Outil tourn Pice
tourne
Type de machine 3 avec
la succession d'axes BC
Outil tourn
Type de machine 1 avec
la succession d'axes CA
A
C C
B
A
C
Y
X
Plateau porte-outil fixe
Plateau
porte-outil
pivotant autour
de l'axe Z
Plateau
porte-outil
pivotant autour
de l'axe X et
de l'axe Z
Tte
pivotante fixe
Tte pivotante
pivotant autour
de l'axe Y
Tte pivotante
pivotant autour
de l'axe X et
de l'axe Z
Z Z
Y
X
Z

Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 313

Type de machine Programmation de l'orientation
Transformation trois axes
Types de machines 1 et 2
Programmation de l'orientation de l'outil uniquement dans le
plan perpendiculaire l'axe rotatif. Il existe
deux axes de translation (axes linaires) et
un axe de rotation (axe rotatif).
Transformation quatre
axes Types de machines 1
et 2
Programmation de l'orientation de l'outil uniquement dans le
plan perpendiculaire l'axe rotatif. Il existe
trois axes de translation (axes linaires) et
un axe de rotation (axe rotatif).
Transformation cinq axes
Types de machine 3
Tte pivotante sur un axe
et plateau tournant sur un
axe
Programmation de la transformation d'orientation.
Cinmatique avec
trois axes linaires et deux axes rotatifs orthogonaux.
Les axes rotatifs sont parallles deux des trois axes
linaires. Le premier axe rotatif est dplac par deux axes
linaires cartsiens. Il fait tourner le troisime axe linaire
avec l'outil. Le second axe rotatif fait pivoter la pice.
Transformations 5/6 axes gnriques

Type de machine Programmation de la transformation d'orientation
Transformation cinq/six
axes gnrique Types de
machine 4
tte orientable 2 axes
avec outil indexable sur
lui-mme et plateau
tournant un axe
Programmation de la transformation d'orientation.
Cinmatique avec
trois axes linaires ettrois axes rotatifs orthogonaux.
Les axes rotatifs sont parallles deux des trois axes
linaires. Le premier axe rotatif est dplac par deux axes
linaires cartsiens. Il fait tourner le troisime axe linaire
avec l'outil. Le second axe rotatif fait pivoter la pice.
L'orientation de base de l'outil peut tre programme par une
rotation supplmentaire sur lui-mme avec l'angle de rotation
THETA.
A l'appel de la "transformation gnrique trois, quatre et cinq/six axes", l'orientation de base
de l'outil peut de plus tre transmise. Les restrictions concernant les directions des axes
rotatifs ne s'appliquent plus. Lorsque les axes rotatifs ne sont pas exactement
perpendiculaires entre eux ou que les axes rotatifs existants ne sont pas parfaitement
parallles aux axes linaires, la "transformation gnrique cinq/six axes" peut fournir de
meilleurs rsultats pour l'orientation de l'outil.
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
314 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Transformations cinmatiques TRANSMIT, TRACYL et TRAANG
Pour les fraisages effectuer sur des tours ou sur un axe pntration oblique en
rectification, ce sont les dispositions d'axes suivantes qui sont valables en standard, en
fonction de la transformation:

TRANSMIT Activation de la transformation polaire
usinage frontal sans
dmontage de la pice
un axe rotatif
un axe de pntration dans le plan perpendiculaire l'axe
rotatif
un axe longitudinal parallle l'axe rotatif


TRACYL Activation de la transformation de surface latrale de cylindre
Usinage de rainures de
forme quelconque sur des
corps cylindriques
un axe rotatif
un axe de pntration dans le plan perpendiculaire l'axe
rotatif
un axe longitudinal parallle l'axe rotatif


TRAANG Activation de la transformation axe oblique
Usinage avec axe de
pntration oblique
un axe rotatif
un axe de pntration avec angle paramtrable
un axe longitudinal parallle l'axe rotatif
Dplacement PTP cartsien
Le dplacement de la machine s'effectue en coordonnes machine et se programme avec:

TRAORI Activation de la transformation
Dplacement point point
PTP
Dplacement une position dans le systme de coordonnes
cartsiennes (SCM)
CP Dplacement avec interpolation des axes cartsiens dans
(SCB)
STAT La position des articulations dpend de la transformation
TU Selon quel angle faut-il dplacer les axes au plus court?

Dplacement PTP avec une transformation gnrique cinq/six axes
Le dplacement de la machine s'effectue dans les coordonnes machine et l'orientation de
l'outil peut aussi bien tre programm avec des positions d'axes rotatifs qu'avec des
vecteurs Euler ou des angles RPY indpendants de la cinmatique ou encore des vecteurs
de direction.
Une interpolation d'axe rotatif, une interpolation vectorielle avec une interpolation circulaire
de grand rayon ou une interpolation du vecteur d'orientation sur une enveloppe de cne sont
possibles.
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 315
Exemple Transformation trois cinq axes pour une tte de fraisage Cardan
La machine-outil comporte au moins 5 axes, dont
Trois par translation pour des mouvements rectilignes dplaant le point de
fonctionnement n'importe quelle position dans l'espace de travail.
Deux axes de pivotement rotatifs disposs selon un angle configurable (gnralement 45
degrs) permettant l'outil d'adopter des orientations dans l'espace qui se limitent une
demi-sphre pour une disposition 45 degrs.
6.1.2 Aperu de la transformation d'orientation TRAORI
Types de programmation possibles en relation avec TRAORI

Type de machine Programmation en cas de transformation TRAORI active
Types de machine 1, 2 ou 3
tte orientable deux axes
ou plateau tournant deux
axes ou une combinaison
d'une tte orientable et d'un
plateau tournant sur axe
chacun.
La succession d'axes des axes d'orientation et la direction
d'orientation de l'outil est configurable soit
par rapport la machine par le biais des paramtres machine
en fonction de la cinmatique de machine soit
par rapport la pice avec orientation programmable
indpendamment de la cinmatique de machine.
Les sens de rotation des axes d'orientation dans le systme de
rfrence se programment avec:
- Systme de rfrence ORIMKS = Systme de coordonnes
machine
- Systme de rfrence ORIWKS = Systme de coordonnes pice
La configuration de base est ORIWKS
Programmation des axes d'orientation avec:
A, B, C positions d'axe machine directes
A2, B2, C2 programmation d'angles d'axes virtuels avec
- ORIEULER par angle d'Euler (par dfaut)
- ORIRPY par angle RPY
- ORIVIRT1 par axes virtuels d'orientation 1e dfinition
- ORIVIRT2 par axes virtuels d'orientation 2e dfinition
Avec distinction du type d'interpolation :
Interpolation linaire
- ORIAXES d'axes d'orientation ou d'axes machine
Interpolation circulaire de grand rayon (interpolation du vecteur
d'orientation)
- ORIVECT d'axes d'orientation
Programmation des axes d'orientation par indication
A3, B3, C3 des composantes de vecteur (normale la
direction/surface)
Programmation de l'orientation rsultante de l'outil
A4, B4, C4 du vecteur de la normale la surface au dbut du bloc
A5, B5, C5 du vecteur de la normale la surface la fin du bloc
LEAD angle d'avance pour l'orientation de l'outil
TILT angle latral pour l'orientation de l'outil
Transformations
6.1 Programmation gnrale des types de transformation
Notions complmentaires
316 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Type de machine Programmation en cas de transformation TRAORI active
Interpolation du vecteur d'orientation sur une enveloppe de cne
Changements d'orientation sur une enveloppe de cne place
librement dans l'espace
Enveloppe de cne par interpolation :
- ORIPLANE dans le plan (interpolation circulaire de grand rayon)
- ORICONCW sur une enveloppe de cne dans le sens horaire
- ORICONCCW sur une enveloppe de cne dans le sens antihoraire
A6, B6, C6 vecteur de direction (axe de rotation du cne)
-OICONIO interpolation sur une enveloppe de cne avec :
A7, B7, C7 Vecteurs intermdiaires (orientation de dpart et
orientation finale) ou
- ORICONTO sur une enveloppe de cne transition tangentielle
Changements d'orientation par rapport une trajectoire avec
- ORICURVE Indication du dplacement de deux points de contact
par le biais de
PO[XH]=(xe, x2, x3, x4, x5) Polynmes d'orientation jusqu'au 5e
degr
PO[YH]=(ye, y2, y3, y4, y5) Polynmes d'orientation jusqu'au 5e
degr
PO[ZH]=(ze, z2, z3, z4, z5) Polynmes d'orientation jusqu'au 5e
degr
- ORIPATHS lissage du trac d'orientation avec
A8, B8, C8 La phase de rorientation de l'outil correspond: la
direction et la longueur de parcours de l'outil lors du mouvement de
retrait
Types de machine 1 et 3




D'autres types de machine
avec rotation supplmentaire
de l'outil sur lui-mme exigent
un troisime axe rotatif


Transformation d'orientation,
par exemple une
transformation gnrique six
axes. Rotations du vecteur
d'orientation.
Programmation des rotations de l'orientation de l'outil avec
LEAD Angle d'avance Angles par rapport au vecteur normal la
surface
PO[PHI]=(.. , ..)] Programmation d'un polynme jusqu'au 5e degr
TILT Angle latral Rotation par rapport la tangente la trajectoire
(direction Z)
PO[PSI] Programmation d'un polynme jusqu'au 5e degr
THETA Angle de rotation (rotation par rapport la direction en Z de
l'outil)
THETA= Valeur atteinte en fin de bloc
THETA=AC(...) Passage bloc par bloc l'introduction des cotes en
valeurs absolues
THETA=IC(...) Passage bloc par bloc l'introduction des cotes
relatives
THETA= e Interpoler l'angle programm G90/G91
PO[THT]=(..) Programmation d'un polynme jusqu'au 5e degr
Programmation du vecteur de rotation
- ORIROTA Rotation absolue
- ORIROTR Vecteur de rotation relatif
- ORIROTT Vecteur de rotation tangentiel
Orientation relative la
trajectoire pour des
modifications d'orientation par
rapport la trajectoire ou
rotation du vecteur de rotation
tangentiellement la
trajectoire
Changements d'orientation par rapport la trajectoire avec
- ORIPATH Orientation de l'outil par rapport la trajectoire
- ORIPATHS additionnellement en cas de coude dans le trac
d'orientation
Programmation du vecteur de rotation
- ORIROTC Vecteur de rotation tangentiel, Rotation par rapport la
tangente la trajectoire
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 317
6.2 Transformation trois, quatre et cinq axes (TRAORI)
6.2.1 Corrlations gnrales de tte de fraisage de type cardan
Fonction
Pour runir des conditions de coupe optimales lors de l'usinage de surfaces courbes, il est
ncessaire de pouvoir modifier l'angle d'inclinaison de l'outil.
Axe de l'outil

La configuration correspondante de la machine est range dans les paramtres machine
relatifs aux axes.
Transformation 5 axes
Tte de fraisage de type cardan
Trois axes linaires (X, Y, Z) et deux axes d'orientation (C, A) dterminent l'angle
d'inclinaison et le point d'attaque de l'outil. L'un des deux axes d'orientation - dans l'exemple
A' - est inclin, souvent 45.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
318 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
C
X
Y
Z

,
A
Tte de fraisage de type cardan - variante 1

Dans les exemples montrs ici, vous voyez les dispositions illustres avec la tte d'outil
Cardan de la cinmatique de machine CA!
Constructeur de la machine-outil
La succession d'axes des axes d'orientation et la direction d'orientation de l'outil peuvent se
rgler en fonction de la cinmatique de machine par le biais de paramtres machine.

Tte de fraisage de type cardan - variante 2

C
A
,

Sur cet exemple, A' se trouve sous l'angle par rapport l'axe X
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 319
D'une manire gnrale, les corrlations possibles sont les suivantes:

A' se trouve sous l'angle par rapport l'axe X
B' se trouve sous l'angle par rapport l'axe Y
C' se trouve sous l'angle par rapport l'axe Z
L'angle peut tre configur dans la plage 0 +89 par le biais des paramtres machine.
Avec axe linaire pivotant
Il s'agit d'une configuration avec une pice mobile et un outil mobile. La cinmatique se
compose de trois axes linaires { (X, Y, Z) et de deux axes rotatifs orthogonaux. Le premier
axe rotatif se dplace sur un chariot deux axes linaires croiss. L'outil est parallle au
troisime axe linaire. Le second axe rotatif fait pivoter la pice. Le troisime axe linaire
(axe de pivotement) se situe dans le plan du chariot crois.
B
A
Z
Y
X

La succession d'axes des axes rotatifs et la direction d'orientation de l'outil sont peuvent se
rgler en fonction de la cinmatique de machine par le biais de paramtres machine.
Les corrlations possibles sont les suivantes :

Axes : Configuration axiale :
1. Axe rotatif A A B B C C
2. Axe rotatif B C A C A B
Axe linaire pivot Z Y Z X Y X
Pour plus d'explications en ce qui concerne les successions d'axes pour la direction
d'orientation de l'outil, se reporter
Bibliographie : /FB3/ Manuel de fonctions spciales ; Transformation 3 5 axes (F2),
chapitre tte de fraisage de type cardan, "Paramtrage".
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
320 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.2.2 Transformation trois, quatre et cinq axes (TRAORI)
Fonction
L'utilisateur peut configurer deux ou trois axes linaires et un axe rotatif. On suppose que
l'axe rotatif est perpendiculaire au plan d'orientation.
L'orientation de l'outil est possible uniquement dans le plan perpendiculaire l'axe rotatif.
Les transformations sont plus particulirement destines aux machines avec outil et pice
mobiles.
La configuration et la programmation des transformations 3 axes et 4 axes sont analogues
aux transformations 5 axes.
Bibliographie :
Description fonctionnelle Fonctions spciales ; Transformations multi-axes (F2)
Syntaxe
TRAORI(<n>)
TRAORI(<n>,<X>,<Y>,<Z>,<A>,<B>)
TRAFOOF
Signification

TRAORI : Activation de la premire transformation d'orientation convenue
TRAORI(<n>) : Activation de la n-ime transformation d'orientation convenue
numro de la transformation
Valeur : 1 ou 2
<n> :
Exemple :
TRAORI(1) active la transformation d'orientation 1
<X>,<Y>,<Z> : Composante du vecteur d'orientation dans laquelle est dirig l'outil.
<A>,<B> : Dcalage programmable pour les axes rotatifs
TRAFOOF : Dsactiver la transformation
Orientation de l'outil
En fonction de l'orientation de l'outil slectionne, il convient de rgler le plan de travail actif
(G17, G18, G19) dfini dans le programme CN, de faon ce que la correction de longueur
d'outil agisse dans la direction de l'orientation de l'outil.

Remarque
Ds que la transformation est active, les indications de position (X, Y, Z) se rfrent
toujours la pointe de l'outil. Toute modification des positions des axes rotatifs impliqus
dans la transformation entrane des dplacements compensatoires des autres axes
machine, ce qui permet que la position de la pointe de l'outil reste inchange.

La transformation d'orientation est toujours dirige de la pointe de l'outil vers le porte-outil.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 321
Dcalage pour les axes d'orientation
L'activation de la transformation d'orientation permet de programmer directement un
dcalage supplmentaire pour les axes d'orientation.
Les paramtres peuvent tre omis si l'ordre correct est respect lors de la programmation.
Exemple :
TRAORI(, , , ,A,B) ; lorsqu'un seul offset doit tre renseign
Comme alternative la programmation directe, l'offset supplmentaire pour les axes
d'orientation peut aussi tre repris automatiquement partir du dcalage d'origine
prsentement actif. La prise en charge est dfinie par le biais des paramtres machine.
Exemples

TRAORI(1,0,0,1) ; L'orientation de base de l'outil pointe dans la direction
Z

TRAORI(1,0,1,0) ; L'orientation de base de l'outil pointe dans la direction
Z

TRAORI(1,0,1,1) ; L'orientation de base de l'outil pointe dans le direction
Y/Z (correspond la position -45)
6.2.3 Variantes de programmation d'orientation et position initiale (ORIRESET)
Programmation d'orientation de l'outil avec TRAORI
En corrlation avec une transformation d'orientation programmable TRAORI, des positions
d'axe ou des axes virtuels avec angles ou composants vectoriels peuvent tre galement
programms par des descripteurs d'axes rotatifs A.., B..., C... en plus des axes linaires X,
Y, Z. Pour les axes d'orientation et les axes machine, diffrents types d'interpolations sont
possibles. Indpendamment des polynmes d'orientation PO[angle] et des polynmes d'axe
PO[axe] activs actuellement, on peut programmer plusieurs types de polynmes diffrents
tels que G1, G2, G3, CIP ou POLY.
La modification d'orientation de l'outil peut se programmer galement par le biais de
vecteurs d'orientation. Ce faisant, l'orientation finale de chaque bloc peut s'effectuer soit par
programmation directe du vecteur, soir par programmation des positions des axes rotatifs.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
322 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Remarque
Variantes de programmation d'orientation pour transformations trois cinq axes
Dans le cas de la transformation trois cinq axes, les variantes
1. A, B, C indication directe des positions des axes machine
2. A2, B2, C2 programmation des angles des axes virtuels par le biais d'angles d'Euler ou
d'angles RPY
3. A3 ,B3, C3 indication des composantes vectorielles
4. LEAD, TILT indication des angles d'avance et des angles latraux par rapport la
trajectoire et la surface
5. A4, B4, C4 et A5, B5, C5 vecteur normal la surface en dbut et en fin de bloc
6. A6, B6, C6 et A7, B7, C7 interpolation du vecteur d'orientation sur une enveloppe de cne
7. A8, B8, C8 rorientation de l'outil, direction et longueur de parcours du mouvement de
retrait
s'excluent mutuellement.
Des messages d'alarme empchent une programmation mixte de valeurs.

Position initiale de l'orientation d'outil ORIRESET
Avec la programmation de ORIRESET(A, B, C), les axes d'orientation sont parcourus de
faon linaire et synchronise de leur position momentane la position initiale indique.
Si, pour un axe, aucune position initiale n'est programme, alors une position dfinie du
paramtre machine correspondant $MC_TRAFO5_ROT_AX_OFFSET_1/2 est employe.
Des frames des axes rotatifs ventuellement actifs ne sont pas pris en compte.

Remarque
Uniquement lorsque une transformation d'orientation est active avec TRAORI(...), une
position initiale de l'orientation de l'outil peut tre programme indpendamment de la
cinmatique avec ORIRESET(...) sans alarme 14101.

Exemples

1. Exemple de cinmatique de machine CA (nom d'axe de canal C, A)
ORIRESET(90, 45) ;C sur 90 degrs, A sur 45 degrs
ORIRESET(, 30) ;C sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A sur 30 degrs
ORIRESET( ) ;C sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],
2. Exemple de cinmatique de machine CAC (nom d'axe de canal C, A, B)
ORIRESET(90, 45, 90) ;C sur 90 degrs, A sur 45 degrs, B sur 90 degrs
ORIRESET( ) ;C sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],
;B sur $MC_TRAFO5_ROT_AX_OFFSET_1/2[2],
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 323
Programmation des rotations LEAD, TILT und THETA
Dans le cas de la transformation trois cinq axes, les rotations de l'orientation de l'outil se
programment avec l'angle d'avance LEAD et l'angle latral TILT.
Pour une transformation avec un troisime axe rotatif, des programmations supplmentaires
de C2 (rotations du vecteur d'orientation) sont autorises aussi bien pour l'orientation avec
des composantes de vecteur qu'avec l'indication de l'angle LEAD, TILT.
Avec un troisime axe rotatif supplmentaire, la rotation de l'outil sur lui-mme peut tre
programme avec l'angle de rotation THETA.
6.2.4 Programmation de l'orientation de l'outil (A..., B..., C..., LEAD, TILT)
Fonction
On dispose des possibilits suivantes pour programmer l'orientation de l'outil:
1. Programmation directe du dplacement des axes rotatifs. Le changement d'orientation
s'effectue toujours dans le systme de coordonnes de base ou dans le systme de
coordonnes machine. Les axes d'orientation sont dplacs sous forme d'axes
synchrones.
2. Programmation dans les angles Euler ou RPY selon la dfinition d'angle via A2, B2, C2.
3. Programmation du vecteur de direction par le biais de A3, B3, C3. Le vecteur de direction
est dirig de la pointe de l'outil vers le porte-outil.
4. Programmation du vecteur normal la surface en dbut de bloc avec A4, B4, C4 et en fin
de bloc avec A5, B5, C5 (fraisage avant).
5. Programmation par le biais de l'angle d'avance LEAD et de l'angle latral TILT
6. Programmation de l'axe rotatif du cne comme vecteur norm par le biais de A6, B6, C6
ou de l'orientation intermdiaire sur l'enveloppe du cne par le biais de A7, B7, C7,
voir chapitre "Programmation de l'orientation le long d'une enveloppe de cne
(ORIPLANE, ORICONxx)".
7. Programmation de rorientation, de direction et longueur de parcours de l'outil pendant le
mouvement de retrait via A8, B8, C8,
voir chapitre "Lissage du trac d'orientation (ORIPATHS A8=, B8=, C8=)"



Remarque
Dans tous les cas, la programmation de l'orientation est autorise uniquement si une
transformation d'orientation est active.
Avantage : ces programmes sont transposables sur n'importe quelle cinmatique de
machine.

Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
324 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Dfinition de l'orientation de l'outil via un code G
Remarque
Constructeur de la machine-outil
Le paramtre machine permet de commuter entre angle Euler ou RPY. Avec des
paramtres machine adapts, une commutation aussi bien dpendante qu'indpendante du
code G actif du groupe 50 est possible. Les paramtrages suivants sont possibles :
1. Lorsque les deux paramtres machine pour la dfinition des axes d'orientation et la
dfinition de l'angle d'orientation sont remis zro par le code G :
Les angles programms avec A2, B2, C2 sont interprts en fonction du paramtre
machine Dfinition de l'angle de la programmation d'orientation soit comme des angles
Euler soit comme des angles RPY.
2. Lorsque le paramtre machine pour la dfinition des axes d'orientation est mis un par le
code G, la commutation a lieu
en fonction du code G actif du groupe 50 :
Les angles programms avec A2, B2, C2 sont interprts selon l'un des codes G actifs
ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2, ORIAXPOS et ORIPY2. Les valeurs programmes
avec les axes d'orientation sont galement interprtes comme angles d'orientation selon
le code G actif du groupe 50.
3. Lorsque le paramtre machine pour la dfinition des angles d'orientation au moyen du
code G est mis un et le paramtre machine pour la dfinition des axes d'orientation au
moyen du code G est mis zro, la commutation s'effectue
indpendamment du code G actif dans le groupe 50 :
les angles programms avec A2, B2, C2 sont interprts en fonction de l'un des codes G
ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2 ORIAXPOS et ORIPY2 actifs. Les valeurs
programmes avec les axes d'orientation sont toujours interprtes comme positions
d'axe rotatif, indpendamment code G actif du groupe 50.


Programmation

G1 X Y Z A B C
Programmation du dplacement des axes rotatifs
G1 X Y Z A2= B2= C2=
Programmation en angles d'Euler
G1 X Y Z A3== B3== C3==
Programmation du vecteur de direction
G1 X Y Z A4== B4== C4==
Programmation du vecteur normal la surface en
dbut de bloc
G1 X Y Z A5== B5== C5==
Programmation du vecteur normal la surface en
fin de bloc
LEAD=
Angle d'avance pour la programmation de
l'orientation de l'outil
TILT=
Angle latral pour la programmation de
l'orientation de l'outil
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 325
Paramtres

G.... Indication du type de dplacement des axes
rotatifs
X Y Z Indication des axes linaires
A B C Indication des positions des axes machine des
axes rotatifs
A2 B2 C2 Programmation des angles (Euler ou RPY) des
axes virtuels ou axes d'orientation
A3 B3 C3 Indication des composantes du vecteur de
direction
A4 B4 C4 Indication, par ex. dans le cas du fraisage de
bout en bout, des composantes du vecteur
normal la surface en dbut de bloc
A5 B5 C5 Indication, par ex. dans le cas du fraisage de
bout en bout, des composantes du vecteur
normal la surface en fin de bloc
LEAD Angle par rapport au vecteur normal la
surface, dans le plan dfini par la tangente
la trajectoire et le vecteur normal la
surface
TILT Angle par rapport au vecteur normal la
surface, dans le plan perpendiculaire la
tangente la trajectoire
Exemple Comparaison: avec et sans transformation 5 axes
avec transformation 5 axes
sans transformation 5 axes

Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
326 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
En rgle gnrale, les programmes 5 axes sont gnrs par des systmes de CAO/FAO et
ne sont pas entrs au pied de la machine. C'est pourquoi les explications suivantes
s'adressent principalement aux programmeurs de postprocesseurs.
Le type de programmation d'orientation est dtermine dans le code G du groupe 50 :
ORIEULER par angle d'Euler
ORIRPY par angle RPY (ordre de rotation ZYX)
ORIVIRT1 par les axes d'orientation virtuels (dfinition 1)
ORIVIRT2 par les axes d'orientation virtuels (dfinition 2)
ORIAXPOS par les axes d'orientation virtuels avec positions d'axe rotatif
ORIPY2 par angle RPY (ordre de rotation XYZ)
Constructeur de la machine-outil
Le constructeur de la machine-outil peut dfinir diffrentes variantes via des paramtres
machine. Tenez compte des indications du constructeur de la machine.
Programmation en angles d'Euler ORIEULER
Les valeurs programmes avec A2, B2, C2 lors de la programmation de l'orientation sont
interprtes comme angles d'Euler (en degrs).
Le vecteur d'orientation est obtenu en faisant pivoter { un vecteur en direction Z tout d'abord
avec A2 autour de l'axe Z, puis avec B2 autour du nouvel axe X et enfin avec C2 autour du
nouvel axe Z.
avec rotation de
A2 = 90autour
de l'axe Z
avec rotation de
B2 = 45
autour de l'axe X
(X suit la rotation)
lnitialisation
Y
B2
Z
Z
X
Y
Y
Y
Y
X
X
Z
Z
Z
Y X
Z
X
X
Y

Dans ce cas, la valeur de C2 (rotation autour du nouvel axe Z) est sans signification et n'est
pas programmer.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 327
Programmation en angles RPY ORIRPY
Les valeurs programmes avec A2, B2, C2 lors de la programmation de l'orientation sont
interprtes comme angles RPY (en degrs).

Remarque
Contrairement la programmation en angles d'Euler { , les trois valeurs agissent ici sur le
vecteur d'orientation

Constructeur de la machine-outil
En cas de dfinition d'angle d'orientation par l'angle RPY, on a, pour les axes d'orientation,
$MC_ORI_DEF_WITH_G_CODE = 0
Le vecteur d'orientation est obtenu en faisant pivoter un vecteur en direction Z d'abord avec
C2 autour de l'axe Z, puis avec B2 autour du nouvel axe Y et enfin avec A2 autour du nouvel
axe X.
X
Z
Y
2 A
Z
Y
X
Z
Z
Z
Y
C2
B2
X
Z
Y
Y
Y
X
X
X
lnitialisation
avec rotation de
A2 = 30
autour de l'axe X
(X suit la
rotation)
avec rotation de
C2 = 90
autour de l'axe Z
avec rotation de
B2 = +45
autour de l'axe Y
(Y suit la rotation)

Lorsque le paramtre machine pour la dfinition des axes d'orientation via le code G
$MC_ORI_DEF_WITH_G_CODE = 1, alors :
Le vecteur d'orientation rsulte de la rotation d'un vecteur dans la direction Z autour de l'axe
Z avec A2, puis autour de l'axe Y avec B2 et enfin autour du nouvel axe X avec C2.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
328 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Programmation du vecteur de direction
Les composantes du vecteur de direction sont programmes avec A3, B3, C3 . Le vecteur
est dirig vers le porte-outil ; la longueur du vecteur est sans importance.
La commande attribue la valeur zro aux composantes non programmes du vecteur.
B3 =...
A3 =...
X
Y
C3 =...
Z
vecteur de direction

Programmation de l'orientation de l'outil avec LEAD= et TILT=
L'orientation rsultante de l'outil est dtermine partir :
de la tangente la trajectoire
du vecteur normal la surface
en dbut de bloc A4, B4, C4 et en fin de bloc A5, B6, C5
de l'angle d'avance LEAD
dans le plan dfini par la tangente la trajectoire et le vecteur normal la surface
de l'angle latral TILT en fin de bloc
perpendiculaire la tangente la trajectoire et par rapport au vecteur normal la surface
Comportement aux angles rentrants (pour CO 3D)
L'orientation rsultante est toujours atteinte en fin de bloc, mme si le bloc est tronqu au
niveau d'un angle rentrant.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 329
Dfinition de l'orientation de l'outil avec LEAD= et TILT=
X
Y
Z
TlLT
LEAD

6.2.5 Fraisage en bout (fraisage 3D A4, B4, C4, A5, B5, C5)
Fonction
Le fraisage en bout sert l'usinage des surfaces courbure quelconque.
A4
B4
C4
A5
B5
C5

Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
330 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Pour ce type de fraisage 3D, vous avez besoin de la description des diffrentes trajectoires
3D qui balayent la surface de la pice, ligne aprs ligne.
Les calculs sont gnralement raliss l'aide d'un systme de FAO, en tenant compte de
la forme et des dimensions de l'outil. Les blocs CN gnrs sont ensuite lus dans la
commande par l'intermdiaire de postprocesseurs.
Programmation de la courbure de la trajectoire
Description des surfaces
La description de la courbure de la trajectoire s'effectue par le biais de vecteurs normaux
la surface ayant les composantes suivantes :
A4, B4, C4 : vecteur de dbut en dbut de bloc
A5, B5, C5 : vecteur de fin en fin de bloc
Si un bloc ne contient que le vecteur de dbut, le vecteur normal la surface restera
constant pendant tout le bloc. Si un bloc ne contient que le vecteur de fin, une interpolation
sur le grand cercle est effectue de la valeur de fin du bloc prcdent jusqu' la valeur de fin
programme.
Si le vecteur de dbut et le vecteur de fin sont programms, une interpolation sur le grand
cercle est galement effectue entre les deux directions. Ceci permet d'obtenir des
trajectoires lisses.
Dans la configuration de base, les vecteurs normaux la surface sont orients dans la
direction Z, indpendamment du plan G17 G19 activ.
La longueur des vecteurs est sans importance.
La valeur zro est attribue par dfaut aux composantes de vecteur non programmes.
Dans le cas o ORIWKS - voir chapitre "Rfrence des axes d'orientation" (ORIWKS,
ORIMKS) - est active, les vecteurs normaux la surface se rfrent au frame actif et
subissent galement une rotation en cas de rotation du frame.
Constructeur de la machine-outil
Le vecteur normal la surface doit tre perpendiculaire la tangente la trajectoire avec
une zone de tolrance qui est rglable par le biais d'un paramtre machine, sinon une
alarme est mise.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 331
6.2.6 Rfrence des axes d'orientation (ORIWKS, ORIMKS)
Fonction
Lors de la programmation de l'orientation dans le systme de coordonnes pices par le
biais
des angles d'Euler ou RPY ou
du vecteur d'orientation,
ORIMKS/ORIWKS permettent de rgler la trajectoire du mouvement de rotation.

Remarque
Constructeur de la machine-outil
Le mode d'interpolation pour l'orientation est dfini par le paramtre machine :
MD21104 $MC_ORI_IPO_WITH_G_CODE
= FALSE : Les fonctions G, ORIWKS et ORIMKS, servent de rfrence
= TRUE : Les fonctions G du groupe 51 (ORIAXES, ORIVECT, ORIPLANE, ...) servent de
rfrence

Syntaxe
ORIMKS=...
ORIWKS=...
Signification

ORIMKS
Rotation dans le systme de coordonnes machine
ORIWKS
Rotation dans le systme de coordonnes pice


Remarque
ORIWKS correspond au rglage de base. Si on ne connat pas d'avance la machine sur
laquelle doit fonctionner un programme 5 axes, il faut par principe choisir ORIWKS. Les
dplacements effectivement excuts par la machine dpendent de sa cinmatique.

ORIMKS permet de programmer les mouvements rels de la machine, p. ex. pour viter des
collisions avec des quipements, etc.
Description
Avec ORIMKS, le dplacement effectu par l'outil dpend de la cinmatique de la machine.
Ds qu'il y a un changement d'orientation avec pointe de l'outil fixe, il y a excution d'une
interpolation linaire entre les positions des axes rotatifs.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
332 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Avec ORIWKS, le dplacement de l'outil est indpendant de la cinmatique de la machine. Ds
qu'il y a un changement d'orientation avec pointe de l'outil fixe, l'outil se dplace dans le plan
dfini par le vecteur de dbut et le vecteur de fin.
Plan entre les deux
vecteurs
Vecteur la fin du bloc
Vecteur au dbut
du bloc

Positions singulires
Remarque
ORIWKS
Les mouvements d'orientation au voisinage de la position singulire d'une machine 5 axes
ncessitent des dplacements importants de la part des axes machine. (C'est le cas par
exemple sur une tte pivotante et tournante, avec C comme axe de rotation et A comme axe
de pivotement, toutes les positions avec A = 0 tant des positions singulires.)

Constructeur de la machine-outil
Pour ne pas surcharger les axes machine, le pilotage de la vitesse rduit fortement la
vitesse tangentielle au voisinage des points singuliers.
Les paramtres machine
$MC_TRAFO5_NON_POLE_LIMIT
$MC_TRAFO5_POLE_LIMIT
permettent de paramtrer la transformation de faon ce que les dplacements d'orientation
au voisinage du ple passent effectivement par le ple, ce qui permet un usinage plus
rapide.
Les positions singulires sont traites uniquement avec le PM $MC_TRAFO5_POLE_LIMIT .
Bibliographie :
/FB3/ Manuel de fonctions spciales ; Transformation 3 5 axes (F2),
chapitre "Positions singulires et leur traitement".
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 333
6.2.7 Programmation des axes d'orientation (ORIAXES, ORIVECT, ORIEULER,
ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2)
Fonction
La fonction "Axes d'orientation" dcrit l'orientation de l'outil dans l'espace et s'obtient en
programmant les dcalages pour les axes rotatifs. On peut obtenir un troisime degr de
libert par une rotation supplmentaire de l'outil autour de son propre axe. Cette orientation
de l'outil s'effectue au choix dans l'espace par le biais d'un troisime axe rotatif et requiert la
transformation six axes. La rotation de l'outil autour de son propre axe se fixe en fonction du
type d'interpolation des vecteurs de rotation avec l'angle de rotation THETA, voir chapitre
"Rotations de l'orientation de l'outil (ORIROTA/TR/TT, ORIROTC, THETA)".
Programmation
Les axes d'orientation se programment par le biais des descripteurs d'axes A2, B2, C2.

N... ORIAXES ou ORIVECT
N... G1 X Y Z A B C
ou
N... ORIPLANE
ou
N... ORIEULER ou ORIRPY voire ORIRPY2
N... G1 X Y Z A2= B2= C2=
ou
N... ORIVIRT1 ou ORIVIRT2
N... G1 X Y Z A3= B3= C3=
Interpolation linaire ou circulaire de
grand rayon

ou
Interpolation d'orientation du plan
ou
Angle d'orientation d'Euler / RPY
Programmation des angles des axes
virtuels
ou
Axes d'orientation virtuels Dfinition 1
ou 2 Programmation de vecteurs de
direction

Pour les modifications d'orientation le long d'une enveloppe de cne situe dans l'espace, on
peut programmer d'autres dcalages d'axes rotatifs des axes d'orientation, voir chapitre
"Programmation de l'orientation le long d'une enveloppe de cne (ORIPLANE, ORICONxx).
Paramtres

ORIAXES Interpolation linaire des axes machine ou d'orientation
ORIVECT Interpolation circulaire de grand rayon (identique avec
ORIPLANE)
ORIMKS
ORIWKS
Rotation dans le systme de coordonnes machine
Rotation dans le systme de coordonnes pice
Pour une description, voir le chapitre "Rotations de
l'orientation de l'outil"
A= B= C= Programmation de la position des axes machine
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
334 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
ORIEULER Programmation d'orientation dfinie par angles d'Euler
ORIRPY Programmation d'orientation par l'angle RPY. L'ordre de
rotation est XYZ, avec :
A2 est l'angle de rotation autour de X
B2 est l'angle de rotation autour de Y
C2 est l'angle de rotation autour de Z
ORIRPY2 Programmation d'orientation par l'angle RPY. L'ordre de
rotation est ZYX, avec :
A2 est l'angle de rotation autour de Z
B2 est l'angle de rotation autour de Y
C2 est l'angle de rotation autour de X
A2= B2= C2= Programmation des angles des axes virtuels
ORIVIRT1
ORIVIRT2
Programmation de l'orientation avec axes virtuels
d'orientation
(dfinition 1), selon PM $MC_ORIAX_TURN_TAB_1
(dfinition 2), selon PM $MC_ORIAX_TURN_TAB_2
A3= B3= C3= Programmation du vecteur de direction de l'axe
d'orientation
Description
Constructeur de la machine-outil
Le paramtre machine $MC_ORI_DEF_WITH_G_CODE rgle le mode de dfinition des
angles A2, B2, C2 programms :
La dfinition s'effectue d'aprs le paramtre machine $MC_ORIENTATION_IS_EULER (par
dfaut) ou d'aprs le groupe de codes G 50 (ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2).
Le paramtre machine $MC_ORI_IPO_WITH_G_CODE permet de dterminer le type
d'interpolation : ORIWKS/ORIMKS ou ORIAXES/ORIVECT.
Mode de fonctionnement Jog
Dans ce mode de fonctionnement, les angles d'orientation sont toujours interpols de faon
linaire. En cas de positionnement incrmental et continu l'aide des touches de
dplacement, un seul axe d'orientation peut tre dplac. Avec les manivelles, le
dplacement simultan des axes d'orientation est possible.
En dplacement manuel d'axes d'orientation, le commutateur de correction de l'avance ou le
commutateur de correction du rapide en dplacement en rapide spcifique au canal est actif.
Les paramtres machine suivants permettent de dfinir sparment les vitesses :
$MC_JOG_VELO_RAPID_GEO
$MC_JOG_VELO_GEO
$MC_JOG_VELO_RAPID_ORI
$MC_JOG_VELO_ORI
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 335

Remarque
SINUMERIK 840D avec "Paquet de transformation pour manipulateurs"
En mode JOG, la fonction "Dplacement manuel cartsien" permet de rgler la translation
d'axes gomtriques dans les systmes de rfrence SCM, SCP et TKS, sparment les
uns des autres.
Bibliographie :
/FB2/ Description fonctionnelle Fonctions d'extension ; transformation cinmatique (M1)

6.2.8 Programmation de l'orientation le long d'une enveloppe de cne (ORIPLANE,
ORICONCW, ORICONCCW, ORICONTO, ORICONIO)
Fonction
L'orientation tendue permet d'effectuer des changements d'orientation le long d'une
enveloppe de cne situe dans l'espace. L'interpolation du vecteur d'orientation sur une
enveloppe de cne s'effectue avec les instructions modales ORICONxx. Pour l'interpolation
dans un plan, on peut programmer l'orientation finale avec ORIPLANE. D'une manire
gnrale, l'orientation de dpart est dtermine par les blocs prcdents.
Surface de
la pice
Angle d'ouverture PSl
du cne
ORlCONCW
dans le sens
horaire
Angle de
rotation PHl
Axe d'orientation
Orientation de dpart
fixe par le bloc
prcdent
ORlCONCWW
dans le sens antihoraire
Orientation finale
Orientation intermdiaire

Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
336 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Programmation
L'orientation finale se dtermine soit par l'indication de la programmation d'angles en angles
d'Euler ou RPY avec A2, B2, C2 ou par la programmation des positions des axes rotatifs
avec a, B, C. Pour les axes d'orientation le long de l'enveloppe de cne, d'autres indications
de programmation sont ncessaires:
Axe rotatif du cne sous forme de vecteur avec A6, B6, C6
Angle au centre PSI avec les descripteurs NUT
Orientation intermdiaire dans l'enveloppe de cne avec A7, B7, C7



Remarque
Programmation du vecteur de direction A6, B6, C6 pour l'axe rotatif du cne
La programmation d'une orientation finale n'est pas absolument ncessaire. Si aucune
orientation finale n'est indique, une enveloppe de cne complte est interpole avec 360
degrs.
Programmation de l'angle d'ouverture du cne avec NUT=angle
L'indication d'une orientation finale est imprativement ncessaire.
De cette manire, on ne peut pas interpoler une enveloppe de cne complte avec 360
degrs.
Programmation de l'orientation intermdiaire A7, B7, C7 dans l'enveloppe de cne
L'indication d'une orientation finale est imprativement ncessaire. Le changement
d'orientation et le sens de rotation sont dtermins de manire univoque par les trois
vecteurs Orientation de dpart, Orientation finale et Orientation intermdiaire. Ce faisant,
les trois vecteurs doivent tre diffrents. Si l'orientation intermdiaire programme est
parallle l'orientation de dpart ou l'orientation finale, une interpolation circulaire de
grand rayon de l'orientation est effectue dans le plan dfini entre le vecteur de dpart et
le vecteur final.


Interpolation d'orientation tendue sur une enveloppe de cne
N... ORICONCW ou ORICONCCW
N... A6= B6= C6= A3= B3= C3=
ou
N... ORICONTO
N... G1 X Y Z A6= B6= C6=
ou
N... ORICONIO
N... G1 X Y Z A7= B7= C7=
N... PO[PHI]=(a2, a3, A4, A5)
N... PO[PSI]=(b2, b3, b4, b5)
Interpolation sur une enveloppe de cne
avec
vecteur de direction dans le sens
horaire/antihoraire du cne et orientation
finale ou
transition tangentielle et
indication de l'orientation finale
ou
indication de l'orientation finale et d'une
orientation intermdiaire dans
l'enveloppe de cne avec
polynmes pourl'angle de rotation et
polynmes pour l'angle d'ouverture
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 337
Paramtres

ORIPLANE Interpolation dans le plan (interpolation circulaire de grand
rayon)
ORICONCW Interpolation sur une enveloppe de cne dans le sens horaire
ORICONCCW Interpolation sur une enveloppe de cne dans le sens anti-
horaire
ORICONTO Interpolation sur une enveloppe de cne avec transition
tangentielle
A6= B6= C6= Programmation de l'axe rotatif du cne (vecteur norm)
NUT=angle Angle au centre du cne en degrs
NUT=+179 Angle de dplacement infrieur ou gal 180 degrs
NUT=-181 Angle de dplacement suprieur ou gal 180 degrs
ORICONIO Interpolation sur une enveloppe de cne
A7= B7= C7= Orientation intermdiaire (programmation comme vecteur
norm)
PHI Angle de rotation de l'orientation autour de l'axe d'orientation
du cne
PSI Angle d'ouverture du cne
Polynmes possibles
PO[PHI]=(a2, a3, A4, A5)
PO[PSI]=(b2, b3, b4, b5)
En dehors des diffrents angles, on peut aussi programmer
des polynmes au maximum du
5e degr
Exemple de diffrents changements d'orientation


N10 G1 X0 Y0 F5000
N20 TRAORI(1) ; Transformation d'orientation active.
N30 ORIVECT ; Interpoler l'orientation de l'outil comme vecteur.
; Orientation de l'outil dans le plan.
N40 ORIPLANE ; Slectionner l'interpolation circulaire de grand rayon.
N50 A3=0 B3=0 C3=1
N60 A3=0 B3=1 C3=1 ; Orientation dans le plan Y/Z tourne de 45 degrs,
l'orientation (0,1/2,1/2) est atteinte en fin de bloc.

N70 ORICONCW ; Programmation de l'orientation sur l'enveloppe de cne :
N80 A6=0 B6=0 C6=1 A3=0
B3=0 C3=1
; Le vecteur d'orientation est interpol dans le sens
horaire sur une enveloppe de cne avec la direction
(0,0,1) jusqu' l'orientation (1/2,0,1/2), l'angle de
rotation tant de 270 degrs.
N90 A6=0 B6=0 C6=1 ; L'orientation de l'outil effectue un tour complet sur la
mme enveloppe de cne.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
338 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
Si l'on veut dcrire des changements d'orientation sur une enveloppe de cne situe un
endroit quelconque dans l'espace, il faut que le vecteur autour duquel la rotation de
l'orientation de l'outil doit s'effectuer, soit connu. Il faut en outre que l'orientation de dpart et
l'orientation finale soient prdfinies. L'orientation de dpart dcoule du bloc prcdent et
l'orientation finale doit tre soit programme, soit dtermine par d'autres conditions.
La programmation dans le plan ORIPLANE correspond ORIVECT
La programmation de l'interpolation circulaire de grand rayon conjuge aux polynmes
trigonomtriques correspond l'interpolation linaire et polynmiale de contours.
L'orientation de l'outil est interpole dans un plan dfini par l'orientation de dpart et
l'orientation finale. Si l'on programme aussi des polynmes, il se peut que le vecteur
d'orientation bascule galement hors du plan.
Programmation de cercles dans un plan G2/G3, CIP et CT
L'orientation tendue correspond l'interpolation de cercles dans un plan. En ce qui
concerne les possibilits de programmation de cercles avec indication du centre ou du rayon
comme G2/G3, cercle via point intermdiaire CIP et cercles tangentiels CT, voir
Bibliographie: Manuel de programmation Bases, "Programmation des instructions de
dplacement".
Programmation de l'orientation
Interpolation du vecteur d'orientation sur une enveloppe de cne ORICONxx
Pour l'interpolation d'orientations sur une enveloppe de cne, on peut slectionner quatre
types d'interpolations diffrents dans le groupe 51 des codes G:
1. Interpolation sur une enveloppe de cne dans le sens horaire ORICONCW avec indication de
l'orientation finale et de la direction du cne ou de son angle d'ouverture. Le vecteur de
direction se programme avec les descripteurs A6, B6, C6 et l'angle d'ouverture du cne
avec le descripteur NUT= plage de valeurs dans l'intervalle 0 180 degrs.
2. Interpolation sur une enveloppe de cne dans le sens antihoraire ORICONCWW avec
indication de l'orientation finale et de la direction du cne ou de son angle d'ouverture. Le
vecteur de direction se programme avec les descripteurs A6, B6, C6 et l'angle
d'ouverture du cne avec le descripteur NUT= plage de valeurs dans l'intervalle 0 180
degrs.
3. Interpolation sur une enveloppe de cne ORICONIO avec indication de l'orientation finale et
d'une orientation intermdiaire, programme avec les descripteurs A7, B7, C7.
4. Interpolation sur une enveloppe de cne ORICONTO avec transition tangentielle et
indication de l'orientation finale. Le vecteur de direction se programme avec les
descripteurs A6, B6, C6.
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 339
6.2.9 Dfinition de l'orientation de deux points de contact (ORICURVE, PO[XH]=,
PO[YH]=, PO[ZH]=)
Fonction
Programmation du changement d'orientation par la deuxime courbe spatiale ORICURVE
Une autre possibilit pour programmer les changements d'orientation est de programmer
avec ORICURVE, outre la pointe de l'outil le long d'une courbe spatiale, galement le
mouvement d'un deuxime point de contact de l'outil. On peut ainsi, comme lors de la
programmation du vecteur de l'outil lui-mme, dfinir de manire univoque les changements
d'orientation de l'outil.
Constructeur de la machine-outil
Veuillez respecter les indications du constructeur de la machine-outil en ce qui concerne les
descripteurs d'axes rglables par le biais de paramtres machine pour la programmation de
la deuxime trajectoire d'orientation de l'outil.
Programmation
Dans le cas de ce type d'interpolation, on peut, pour les deux courbes spatiales, programmer
des points avec G1 ou des polynmes avec POLY. Les cercles et les dveloppantes ne sont
pas admis. De plus, une interpolation de type spline peut tre active avec BSPLINE et avec
une fonction "groupement de blocs spline courts".
Bibliographie :
/FB1/ Description fonctionnelle Fonctions de base ; contournage, arrt prcis, look-ahead
(B1), chapitre : Groupement de blocs spline courts
Les autres types de spline ASPLINE et CSPLINE tout comme l'activation d'un compacteur avec
COMPON, COMPCURV ou COMPCAD ne sont pas admissibles.
Le dplacement des deux points de contact de l'outil peut tre prdfini lors de la
programmation des polynmes d'orientation pour des coordonnes du 5e degr maximum.

Interpolation d'orientation tendue avec courbe spatiale supplmentaire et polynmes pour
coordonnes
N... ORICURVE
N... PO[XH]=(xe, x2, x3, x4, x5)
N... PO[YH]=(ye, y2, y3, y4, y5)
N... PO[ZH]=(ze, z2, z3, z4, z5)
Indication du dplacement du deuxime
point de contact de l'outil et polynmes
supplmentaires des coordonnes
correspondantes
Transformations
6.2 Transformation trois, quatre et cinq axes (TRAORI)
Notions complmentaires
340 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Paramtres

ORICURVE Interpolation de l'orientation avec indication du
dplacement de deux points de contact de l'outil.
XH YH ZH Descripteur des coordonnes du deuxime point de contact
de l'outil du contour supplmentaire en tant que courbe
spatiale
Polynmes possibles
PO[XH]=(xe, x2, x3, x4,
x5) PO[YH]=(ye, y2, y3,
y4, y5) PO[ZH]=(ze, z2,
z3, z4, z5)
Les courbes spatiales peuvent se programmer avec les
points de fin correspondants, mais en plus aussi avec
des polynmes.
xe, ye, ze Points de fin de la courbe spatiale
xi, yi, zi Coefficients des polynmes du 5e degr maximum


Remarque
Descripteurs XH YH ZH pour la programmation d'une 2e trajectoire d'orientation
On doit choisir les descripteurs de manire ce qu'il ne se produise pas de conflits avec les
autres descripteurs des axes linaires
, les axes X Y Z
et les axes rotatifs tels que
A2 B2 C2, les angles d'Euler ou les angles RPY
A3 B3 C3, les vecteurs de direction
A4 B4 C4 ou A5 B5 C5, les vecteurs normaux la surface
A6 B6 C6, les vecteurs de rotation ou les coordonnes de points intermdiaires A7 B7 C7
ou d'autres paramtres d'interpolation.


Transformations
6.3 Polynmes d'orientation (PO[angles], PO[coordonne])
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 341
6.3 Polynmes d'orientation (PO[angles], PO[coordonne])
Fonction
Indpendamment de l'interpolation polynomiale du groupe 1 des codes G actuellement
active, on peut programmer deux types de polynmes d'orientation jusqu'au 5e degr
maximum dans le cas d'une transformation trois cinq axes.
1. Polynmes pour angles: Angle d'avance LEAD, angle latral TILT
par rapport au plan dfini par l'orientation de dpart et l'orientation finale.
2. Polynmes pour coordonnes: XH, YH, ZH de la deuxime courbe spatiale pour
l'orientation de l'outil d'un point de rfrence sur l'outil.
Dans le cas d'une transformation six axes, on peut, en plus de l'orientation de l'outil,
programmer la rotation du vecteur de rotation THT avec des polynmes du 5e degr
maximum pour les rotations de l'outil lui-mme.
Syntaxe
Polynmes d'orientation du type 1 pour angles

N... PO[PHI]=(a2, a3, A4, A5)
N... PO[PSI]=(b2, b3, b4, b5)
Transformation trois cinq axes

Transformation trois cinq axes

Polynmes d'orientation du type 2 pour coordonnes

N PO[XH]=(xe, x2, x3, x4, x5)
N PO[YH]=(ye, y2, y3, y4, y5)
N PO[ZH]=(ze, z2, z3, z4, z5)
Descripteur pour les coordonnes de la
deuxime trajectoire d'orientation pour
l'orientation de l'outil

On peut en outre, dans les deux cas, programmer un polynme pour la rotation dans le cas
d'une transformation six axes avec

N PO[THT]=(c2, c3, c4, c5)
ou
N PO[THT]=(d2, d3, d4, d5)
Interpolation par rapport la trajectoire de
la rotation

Interpolation absolue, relative et
tangentielle du vecteur d'orientation par
rapport au changement d'orientation
Ceci est possible si la transformation supporte un vecteur de rotation avec un dcalage
interpolable et programmable par le biais de l'angle de rotation THETA.
Transformations
6.3 Polynmes d'orientation (PO[angles], PO[coordonne])
Notions complmentaires
342 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

PO[PHI]
Angle dans le plan entre l'orientation de dpart et l'orientation finale
PO[PSI]
Angle dcrivant le basculement de l'orientation depuis le plan entre l'orientation
de dpart et l'orientation finale.
PO[THT]
Angle de rotation dcrit par la rotation du vecteur de rotation d'un des codes G
du groupe 54 programms avec THETA
PHI
Angle d'avance LEAD
PSI
Angle latral TILT
THETA
Rotation par rapport la direction de l'outil en Z
PO[XH]
Coordonne X du point de rfrence sur l'outil
PO[YH]
Coordonne Y du point de rfrence sur l'outil
PO[ZH]
Coordonne Z du point de rfrence sur l'outil
Description
On ne peut pas programmer les polynmes d'orientation
si les interpolations spline ASPLINE, BSPLINE, CSPLINE sont actives.
Les polynmes du type 1 pour les angles d'orientation sont possibles pour chaque type
d'interpolation sauf Spline c.--d. pour l'interpolation linaire avec vitesse rapide G00 ou
avec avance G01
pour l'interpolation polynmiale avec POLY et
pour l'interpolation circulaire ou dveloppante avec G02, G03, CIP, CT, INVCW et
INCCCW

Les polynmes du type 2 pour les coordonnes d'orientation ne sont en revanche
possibles que si
l'interpolation linaire avec vitesse rapide G00 ou avec avance G01 ou
l'interpolation polynmiale avec POLY est active.
si l'orientation est interpole au moyen de l'interpolation d'axes ORIAXES. Dans ce cas,
on peut programmer directement des polynmes avec PO[A] et PO[B] pour les axes
d'orientation A et B.
Polynmes d'orientation du type 1 avec ORIVECT, ORIPLANE et ORICONxx
En cas d'interpolation circulaire de grand rayon et d'interpolation sur enveloppe de cne
avec ORIVECT, ORIPLANE et ORICONxx, seuls les polynmes d'orientation du type 1 sont
possibles.
Polynmes d'orientation du type 2 avec ORICURVE
Si l'interpolation est active avec la courbe spatiale supplmentaire ORICURVE, les
composantes cartsiennes du vecteur d'orientation sont interpoles et seuls les polynmes
d'orientation du type 2 sont possibles.
Transformations
6.4 Rotations de l'orientation de l'outil (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 343
6.4 Rotations de l'orientation de l'outil (ORIROTA, ORIROTR,
ORIROTT, ORIROTC, THETA)
Fonction
Si l'orientation de l'outil doit pouvoir tre modifie sur les machines avec outil mobile, chaque
bloc doit tre programm avec une orientation finale. En fonction de la cinmatique de la
machine, le sens d'orientation des axes d'orientation ou le sens de rotation du vecteur
d'orientation THETA peuvent tre programms. Diffrents types d'interpolation sont
programmables pour ces vecteurs de rotation :
ORIROTA : Angle de rotation rapport un sens de rotation en indication absolue.
ORIROTR : Angle de rotation relatif par rapport au plan entre orientation de dpart et
orientation finale.
ORIROTT : Angle de rotation relatif par rapport la modification du vecteur d'orientation.
ORIROTC: Angle de rotation tangentiel la tangente la trajectoire.
Syntaxe
A la condition expresse que le type d'interpolation ORIROTA soit actif, l'angle de rotation ou le
vecteur de rotation peut tre programm selon l'un des quatre modes suivants :
1. Directement dans les positions d'axes rotatifs A, B, C
2. En angles d'Euler (en degrs) par le biais de A2, B2, C2
3. En angles RPY (en degrs) par le biais de A2, B2, C2
4. En vecteur de direction par le biais de A3, B3, C3 { (angle de rotation l'aide de
THETA=valeur ).
Si ORIOTR ou ORIOTT est actif, l'angle de rotation ne peut tre programm que directement
l'aide de THETA .
Une rotation peut galement tre programme seule dans un bloc, sans qu'un changement
d'orientation ne se produise. ORIROTR et ORIROTT n'ont alors aucune signification. Dans
ce cas, l'angle de rotation est toujours interprt par rapport la direction absolue (ORIROTA).

N... ORIROTA
N... ORIROTR
N... ORIROTT
N... ORIROTC
Dfinition de l'interpolation du vecteur de rotation
N... A3= B3= C3= THETA=valeur
Dfinir la rotation du vecteur d'orientation
N... PO[THT]=(d2, d3, d4, d5) Interpolation de l'angle de rotation l'aide d'un
polynme du cinquime degr
Transformations
6.4 Rotations de l'orientation de l'outil (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)
Notions complmentaires
344 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

ORIROTA
Angle de rotation rapport un sens de rotation en indication absolue
ORIROTR
Angle de rotation relatif par rapport au plan entre orientation de dpart
et orientation finale
ORIROTT
Angle de rotation comme vecteur de rotation tangentiel au changement
d'orientation
ORIROTC
Angle de rotation comme vecteur de rotation tangentiel la tangente
la trajectoire
THETA
Rotation du vecteur d'orientation
THETA=valeur
Angle de rotation en degrs atteint en fin de bloc
THETA=e
Angle de rotation avec angle final e du vecteur de rotation
THETA=AC()
Passage bloc par bloc l'introduction des cotes en valeurs absolues
THETA=AC()
Passage bloc par bloc l'introduction des cotes relatives
e
L'angle final du vecteur de rotation est actif aussi bien en valeurs
absolues avec G90 qu'en valeurs relatives avec G91 (introduction de
cotes relatives).
PO[THT]=(....)
Polynme pour l'angle de rotation
Exemple de rotations des orientations

Code de programme Commentaire
N10 TRAORI ; Activer la transformation d'orientation
N20 G1 X0 Y0 Z0 F5000 ; Orientation de l'outil
N30 A3=0 B3=0 C3=1 THETA=0 ; En direction Z avec angle de rotation 0
N40 A3=1 B3=0 C3=0 THETA=90 ; En direction X et rotation de 90 degrs
N50 A3=0 B3=1 C3=0 PO[THT]=(180,90) ; Aperu
N60 A3=0 B3=1 C3=0 THETA=IC(-90) ; En direction Y et rotation sur 180 degrs
N70 ORIROTT ; Demeure constant et rotation sur 90 degrs
N80 A3=1 B3=0 C3=0 THETA=30 ; Angle de rotation par rapport au changement
d'orientation
; Vecteur de rotation formant un angle de 30
degrs par rapport au plan X-Y

Lors de l'interpolation du bloc
N40, l'angle de rotation est interpol de manire linaire de la valeur de dpart 0 degr la
valeur finale 90 degrs. Dans le bloc N50, l'angle de rotation passe de 90 180 degrs
conformment la
parabole (u) = +90u
2
. En N60, une rotation peut galement tre effectue sans qu'il se
produise de changement d'orientation.
En N80, l'orientation de l'outil tourne, passant de la direction Y la direction X. Ce faisant, le
changement d'orientation s'opre dans le plan X-Y et le vecteur de rotation forme un angle
de 30 degrs par rapport ce plan.
Transformations
6.4 Rotations de l'orientation de l'outil (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 345
Description
ORIROTA
L'angle de rotation THETA est interpol dans l'espace par rapport une direction dtermine
de manire absolue. Le sens de rotation par dfaut est fonction des paramtres machine.
ORIROTR
L'angle de rotation THETA est interprt de manire relative par rapport au plan dfini par
l'orientation initiale et l'orientation finale.
ORIROTT
L'angle de rotation THETA est interprt de manire relative par rapport au changement
d'orientation. PourTHETA=0, le vecteur de rotation est interpol de manire tangentielle par
rapport au changement d'orientation et ne se distingue d'ORIROTR que si au moins un
polynme pour l'"angle de basculement PSI" a t programm pour l'orientation. Il en rsulte
un changement d'orientation qui ne se produit pas dans le plan. La programmation d'un
angle de rotation THETA supplmentaire permet d'interpoler par exemple le vecteur de
rotation de manire ce qu'il forme toujours une valeur dfinie par rapport au changement
d'orientation.
ORIROTC
Le vecteur de rotation est interpol par rapport la tangente la trajectoire avec un
dcalage programmable par le biais de l'angle THETA . Pour l'angle de dcalage, on peut
aussi programmer un polynme PO[THT]=(c2, c3, c4, c5) du 5e degr maximum.
Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
346 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.5 Orientations par rapport la trajectoire
6.5.1 Types d'orientation par rapport la trajectoire
Fonction
Cette fonction tendue permet d'atteindre l'orientation relative non seulement en fin de bloc,
mais aussi sur tout le trac de la trajectoire. L'orientation atteinte au cours du bloc prcdent
est transfre au moyen de l'interpolation circulaire de grand rayon dans l'orientation finale
programme. Par principe, il existe deux possibilits pour programmer l'orientation souhaite
par rapport la trajectoire:
1. L'orientation de l'outil et la rotation de l'outil sont interpoles avec ORIPATH, ORPATHTS
par rapport la trajectoire.
2. Le vecteur d'orientation est programm et interpol de la manire habituelle. La rotation
du vecteur d'orientation par rapport la tangente la trajectoire s'opre avec ORIROTC.
Syntaxe
Le type d'interpolation de l'orientation et de la rotation de l'outil se programme avec:

N... ORIPATH
Orientation par rapport la trajectoire
N... ORIPATHS
Orientation par rapport la trajectoire avec
lissage du trac d'orientation
N... ORIROTC
Interpolation par rapport la trajectoire du
vecteur de rotation

Avec ORIPATHS, on peut lisser un coude de l'orientation provoqu par un angle dans le trac
de la trajectoire. La direction et la longueur de parcours du mouvement de retrait se
programme par le biais du vecteur avec les composants A8=X, B8=Y C8=Z .
Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 347
Avec ORIPATH/ORIPATHS , on peut programmer diffrentes rfrences par rapport la
tangente la trajectoire par le biais des trois angles
LEAD= indication de l'angle d'avance par rapport la trajectoire et la surface
TILT= indication de l'angle latral par rapport la trajectoire et la surface
THETA= angle de rotation
pour l'ensemble du trac de la trajectoire. En plus de l'angle de rotation THETA, on peut aussi
programmer des polynmes du 5e degr maximum avec PO[THT]=(...).

Remarque
Constructeur de la machine-outil
Veuillez tenir compte des indications du constructeur de la machine. Par le biais de
paramtres machine et de donnes de rglage configurables, on peut procder d'autres
rglages en plus du type d'orientation par rapport la trajectoire. Pour plus d'explications, se
reporter
Bibliographie :
/FB3/ Description fonctionnelle Fonctions spciales ; Transformation 3 5 axes (F2),
Chapitre "Orientation"

Signification
L'interpolation des angles LEAD et TILT peut se rgler diffremment par le biais de
paramtres machine:
La rfrence de l'orientation de l'outil programme avec LEAD et TILT est respecte
pendant toute la dure du bloc.
Angle d'avance LEAD: Rotation par rapport la direction perpendiculaire la tangente et
vecteur normal TILT: Rotation de l'orientation par rapport au vecteur normal.
Angle d'avance LEAD: Rotation par rapport la direction perpendiculaire la tangente et
vecteur normal Angle latral TILT: Rotation de l'orientation par rapport la direction de
la tangente la trajectoire.
Angle de rotation THETA: Rotation de l'outil autour de son propre axe avec un troisime
axe rotatif supplmentaire en tant qu'axe d'orientation dans le cas de transformation six
axes.



Remarque
Orientation relative la trajectoire non autorise avec OSC, OSS, OSSE, OSD, OST
L'interpolation d'orientation par rapport la trajectoire ORIPATH ou ORIPATHS et ORIOTC ne
peut pas tre programme avec le lissage du trac d'orientation avec l'un des codes G du
groupe 34. Pour ce faire, il faut qu'OSOF soit activ.

Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
348 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.5.2 Rotation de l'orientation de l'outil relative la trajectoire (ORIPATH,
ORIPATHS, angle de rotation)
Fonction
Dans le cas d'une transformation six axes, en plus de l'orientation de l'outil d'une manire
quelconque dans l'espace, ce dernier peut galement tourner autour de son propre axe avec
un troisime axe supplmentaire. Dans le cas d'une rotation de l'orientation de l'outil par
rapport la trajectoire avec ORIPATH ou ORIPATHS, la rotation supplmentaire peut se
programmer par le biais de l'angle de rotation THETA. En guise d'alternative, les angles
LEAD et TILT peuvent tre programms par le biais d'un vecteur perpendiculaire la
direction de l'outil dans le plan.
Constructeur de la machine-outil
Tenez compte des indications du constructeur de la machine. L'interpolation des angles
LEAD et TILT peut se rgler diffremment par le biais de paramtres machine.
Syntaxe
Rotation de l'orientation de l'outil et de l'outil
On active le type d'orientation de l'outil par rapport la trajectoire avec ORIPATH ou
ORIPATHS.

N... ORIPATH
Activer le type d'orientation par rapport la
trajectoire
N... ORIPATHS
Activer le type d'orientation par rapport la
trajectoire avec lissage du trac d'orientation
Activation des trois angles possibles avec effet de rotation:
N... LEAD=
Angle pour l'orientation programme par rapport
au vecteur normal la surface
N... TILT=
Angle pour l'orientation programme dans le plan
perpendiculaire la tangente la trajectoire par
rapport au vecteur normal la surface
N... THETA=
;Angle de rotation par rapport au changement
d'orientation par rapport la direction d'outil du
troisime axe rotatif

Les valeurs des angles en fin de bloc se programment avec LEAD=valeur, TILT=valeur ou
THETA=valeur. En plus des angles constants, on peut programmer des polynmes du 5e
degr maximum pour les trois angles.

N... PO[PHI]=(a2, a3, A4, A5)
N... PO[PSI]=(b2, b3, b4, b5)
N... PO[THT]=(d2, d3, d4, d5)
Polynme de l'angle d'avance LEAD
Polynme de l'angle latral TILT
Polynme de l'angle de rotation THETA
Pendant la programmation, on peut laisser de ct les coefficients de polynme plus levs,
gaux zro. Exemple PO[PHI]]=a2 donne une parabole pour l'angle d'avance LEAD.
Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 349
Signification
Orientation de l'outil par rapport la trajectoire

ORIPATH
Orientation de l'outil par rapport la trajectoire
ORIPATHS
Orientation de l'outil par rapport la trajectoire, lissage de coude dans le trac
d'orientation
LEAD
Angle par rapport au vecteur normal la surface, dans le plan dfini par la
tangente la trajectoire et le vecteur normal la surface
TILT
Rotation de l'orientation par rapport la direction Z ou rotation par rapport la
tangente la trajectoire
THETA
Rotation par rapport la direction de l'outil vers Z
PO[PHI]
Polynme d'orientation pour l'angle d'avance LEAD
PO[PSI]
Polynme d'orientation pour l'angle latral TILT
PO[THT]
Polynme d'orientation pour l'angle de rotation THETA


Remarque
Angle de rotation THETA
Pour la rotation de l'outil avec un troisime axe rotatif en tant qu'axe d'orientation par rapport
lui-mme, une transformation six axes est ncessaire.

6.5.3 Interpolation relative la trajectoire de la rotation de l'outil (ORIROTC, THETA)
Fonction
Type d'interpolation avec vecteurs de rotation
En plus de la rotation de l'outil (programme avec ORIROTC) par rapport la tangente la
trajectoire, on peut aussi interpoler le vecteur de rotation avec un dcalage programmable
par le biais de l'angle de rotation THETA. cette occasion, on peut, avec PO[THT],
programmer un polynme du 5e degr maximum pour l'angle de dcalage.
Syntaxe
N... ORIROTC
Appliquer la rotation de l'outil par
rapport la tangente la trajectoire
N... A3= B3= C3= THETA=valeur
Dfinir la rotation du vecteur
d'orientation
N... A3= B3= C3= PO[THT]=(c2, c3, c4, c5)
Interpolation de l'angle de dcalage
avec polynme du 5e degr au
maximum
Une rotation peut galement tre programme seule dans un bloc, sans qu'un changement
d'orientation ne se produise.
Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
350 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification
Interpolation (par rapport la trajectoire) de la rotation de l'outil dans le cas d'une
transformation six axes

ORIROTC
Appliquer le vecteur de rotation tangentiel la tangente la
trajectoire
THETA=valeur
Angle de rotation en degrs atteint en fin de bloc
THETA=e
Angle de rotation avec angle final e du vecteur de rotation
THETA=AC()
Passage bloc par bloc l'introduction des cotes en valeurs
absolues
THETA=IC()
Passage bloc par bloc l'introduction des cotes relatives
PO[THT]=(c2, c3, c4, c5)
Interpolation de l'angle de dcalage l'aide d'un polynme
du 5e degr


Remarque
Interpolation du vecteur de rotation ORIROTC
Si l'on veut appliquer galement la rotation de l'outil par rapport la tangente la trajectoire
dans le sens oppos la direction d'orientation de l'outil, ce n'est possible que dans le cas
d'une transformation six axes.
Dans le cas o ORIROTC est activ
Le vecteur de rotation ORIROTA ne peut pas tre programm. Dans le cas d'une
programmation, le message d'alarme 14128 "Programmation absolue de la rotation de l'outil
dans le cas o ORIROTC est activ" est mis.

Direction d'orientation de l'outil dans le cas d'une transformation trois cinq axes
La direction d'orientation de l'outil peut se programmer comme on en a l'habitude avec une
transformation trois cinq axes par le biais d'angles d'Euler ou d'angles RPY ou de vecteurs
de direction. galement possibles: changements d'orientation de l'outil dans l'espace par
programmation de l'interpolation circulaire de grand rayon ORIVECT, de l'interpolation
linaire des axes d'orientation ORIAXES, de toutes les interpolations sur une enveloppe de
cne ORICONxx ainsi que de l'interpolation en plus de la courbe spatiale avec deux points
de contact de l'outil ORICURVE.

G....
Indication du type de dplacement des axes rotatifs
X Y Z
Indication des axes linaires
ORIAXES
Interpolation linaire des axes machine ou d'orientation
ORIVECT
Interpolation circulaire de grand rayon (identique avec
ORIPLANE)
ORIMKS
ORIWKS
Rotation dans le systme de coordonnes machine
Rotation dans le systme de coordonnes pice
Pour une description, voir le chapitre "Rotations de l'orientation
de l'outil"
A= B= C=
Programmation de la position des axes machine
Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 351
ORIEULER
Programmation d'orientation par le biais d'angles d'Euler
ORIRPY
Programmation de l'orientation par le biais d'angles RPY
A2= B2= C2=
Programmation des angles des axes virtuels
ORIVIRT1
ORIVIRT2
Programmation de l'orientation par le biais d'axes d'orientation
virtuels
(dfinition 1), selon PM $MC_ORIAX_TURN_TAB_1
(dfinition 2), selon PM $MC_ORIAX_TURN_TAB_2
A3= B3= C3=
Programmation du vecteur de direction de l'axe d'orientation
ORIPLANE
Interpolation dans le plan (interpolation circulaire de grand
rayon)
ORICONCW
Interpolation sur une enveloppe de cne dans le sens horaire
ORICONCCW
Interpolation sur une enveloppe de cne dans le sens
antihoraire
ORICONTO
Interpolation sur une enveloppe de cne avec transition
tangentielle
A6= B6= C6=
Programmation de l'axe rotatif du cne (vecteur norm)
NUT=angle
Angle au centre du cne en degrs
NUT=+179
Angle de dplacement infrieur ou gal 180 degrs
NUT=-181
Angle de dplacement suprieur ou gal 180 degrs
ORICONIO
Interpolation sur une enveloppe de cne
A7= B7= C7=
Orientation intermdiaire (programmation comme vecteur
norm)
ORICURVE
XH YH ZH par exemple
avec polynme
PO[XH]=(xe, x2, x3,
x4, x5)
Interpolation de l'orientation avec indication du dplacement de
deux points de contact de l'outil. Outre le(s) point(s) final(aux)
en question, des courbes spatiales supplmentaires sont
programmables sous forme de polynmes.


Remarque
Si l'orientation de l'outil est interpole par le biais des axes d'orientation alors qu'ORIAXES
est activ, l'application de l'angle de rotation par rapport la trajectoire n'est ralise qu'en
fin de bloc.

Transformations
6.5 Orientations par rapport la trajectoire
Notions complmentaires
352 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.5.4 Lissage du trac d'orientation (ORIPATHS A8=, B8=, C8=)
Fonction
Dans le cas de changements d'orientation acclration continue sur le contour, toute
interruption des dplacements avec interpolation, pouvant notamment survenir un angle du
contour, est inopportune. Le coude qui en rsulte dans le trac d'orientation peut tre liss
en ajoutant un bloc intermdiaire qui lui est propre. Le changement d'orientation s'effectue
alors acclration continue mme si ORIPATHS est actif pendant la rorientation. Pendant
cette phase, un mouvement de retrait de l'outil peut tre excut.
Constructeur de la machine-outil
Veuillez respecter les indications du constructeur de la machine-outil en ce qui concerne les
paramtres machine et les donnes de rglage prdfinis le cas chant et avec lesquels
cette fonction est active.
Par le biais des paramtres machine, on peut dfinir comment interprter le vecteur de
retrait.
1. Dans le systme de coordonnes de l'outil, on dfinit la coordonne Z par la direction de
l'outil.
2. Dans le systme de coordonnes pice, on dfinit la coordonne Z par le plan actif.
Pour plus d'explications sur la fonction "Orientation par rapport la trajectoire", se reporter
Bibliographie: /FB3/ Manuel de fonctions spciales ; Transformation 3 5 axes (F2).
Syntaxe
Pour des orientations d'outil continues par rapport l'ensemble de la trajectoire, d'autres
indications de programmation sont ncessaires un angle du contour. La direction et la
longueur de parcours de ce mouvement se programme par le biais du vecteur avec les
composants A8=X, B8=Y C8=Z:
N... ORIPATHS A8=X B8=Y C8=Z
Signification
ORIPATHS
Orientation de l'outil par rapport la trajectoire, lissage de coude dans le
trac d'orientation.
A8= B8= C8=
Composants de vecteur pour la direction et la longueur de parcours
X, Y, Z
Mouvement de retrait dans la direction de l'outil


Remarque
Programmation du vecteur de direction A8, B8, C8
Si la longueur de ce vecteur est gale zro, il ne se produit pas de mouvement de retrait.
ORIPATHS
L'orientation de l'outil par rapport la trajectoire est active avec ORIPATHS. Dans le cas
contraire, l'orientation est transfre par le biais d'une interpolation circulaire de grand rayon
de l'orientation de dpart vers l'orientation finale.

Transformations
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 353
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD)
Fonction
Les programmes CN dans lesquels une transformation d'orientation (TRAORI) est active et
dans lesquels l'orientation est programme par le biais de vecteurs de direction peuvent tre
compacts en respectant des tolrances prdfinies.

Remarque
Le mouvement d'orientation n'est compact que si l'interpolation circulaire de grand rayon
est active et dpend donc du code G pour l'interpolation d'orientation. Celui-ci se rgle, tout
comme la longueur de parcours maximale et une tolrance admise pour chaque axe ou pour
l'avance tangentielle pour la fonction compacteur, par le biais de paramtres machine.
Veuillez tenir compte des indications du constructeur de la machine.

Programmation
Orientation de l'outil
Si une transformation d'orientation (TRAORI) est active, l'orientation de l'outil peut tre
programme de la manire suivante (indpendante de la cinmatique) sur les machines 5
axes :
Programmation du vecteur de direction avec :
A3=<...> B3=<...> C3=<...>
Programmation des angles d'Euler ou des angles RPY avec :
A2=<...> B2=<...> C2=<...>

Rotation de l'outil
Sur les machines 6 axes, on peut programmer la rotation de l'outil en plus de son
orientation.
La programmation de l'angle de rotation s'effectue avec :
THETA=<...>
Voir "Rotations de l'orientation de l'outil (Page 343)".

Remarque
Les blocs CN dans lesquels la rotation est programme en plus ne sont compactables que si
l'angle de rotation varie linairement. Donc il ne doit pas y avoir de polynme programm
avec PO[THT]=(...) pour l'angle de rotation.


Transformations
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD)
Notions complmentaires
354 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Forme gnrale d'un bloc CN compactable
La forme gnrale d'un bloc CN compactable peut donc tre la suivante :
N... X=<...> Y=<...> Z=<...> A3=<...> B3=<...> C3=<...> THETA=<...> F=<...>
ou
N... X=<...> Y=<...> Z=<...> A2=<...> B2=<...> C2=<...> THETA=<...> F=<...>

Remarque
Les valeurs de position peuvent tre indiques directement (par exemple X90) ou
indirectement par le biais d'affectations de paramtres (par exemple X=R1*(R2+R3)).


Programmation de l'orientation de l'outil par des positions d'axes rotatifs
L'orientation de l'outil peut galement tre indique par des positions d'axes rotatifs, par
exemple sous la forme suivante :
N... X=<...> Y=<...> Z=<...> A=<...> B=<...> C=<...> THETA=<...> F=<...>
Dans ce cas, le compactage est effectu de deux manires diffrentes selon qu'une
interpolation circulaire de grand rayon est excute ou non. Si une interpolation circulaire de
grand rayon a lieu, le changement d'orientation compact est reprsent de manire
habituelle par des polynmes axiaux pour les axes rotatifs.

Prcision du contour
Selon le mode de compactage rgl (MD20482 $MC_COMPRESSOR_MODE), les
tolrances qui prennent effet pour les axes gomtriques et les axes d'orientation lors du
compactage sont soit les tolrances spcifiques aux axes (configures dans le paramtre
machine MD33100 $MA_COMPRESS_POS_TOL) ou les tolrances spcifiques aux canaux
(rglables dans les donnes de rglage) suivantes :
SD42475 $SC_COMPRESS_CONTUR_TOL (cart maximal par rapport au contour)
SD42476 $SC_COMPRESS_ORI_TOL (cart maximal par rapport l'angle d'orientation de
l'outil)
SD42477 $SC_COMPRESS_ORI_ROT_TOL (cart maximal par rapport l'angle de rotation
de l'outil) (disponible uniquement pour les machines 6 axes)
Bibliographie :
Description fonctionnelle Fonctions de base ; Transformation 3 5 axes (F2),
chapitre : "Compactage de l'orientation"

Transformations
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 355
Activation/dsactivation
Les codes G effet modal COMPON, COMPCURV et COMPCAD activent les fonctions compacteur.
La fonction compacteur se termine avec COMPOF.
Voir "Compactage de bloc CN (COMPON, COMPCURV, COMPCAD) (Page 247)".

Remarque
Le dplacement d'orientation est uniquement compact lorsque l'interpolation circulaire de
grand diamtre est active (l'orientation de l'outil se modifie dans le plan dfini par
l'orientation initiale et l'orientation finale).
Une interpolation circulaire de grand diamtre est excute dans les conditions suivantes :
MD21104 $MC_ORI_IPO_WITH_G_CODE = 0,
ORIWKS est actif et
l'orientation est programme au moyen de vecteurs (avec A3, B3, C3 et A2, B2, C2).
MD21104 $MC_ORI_IPO_WITH_G_CODE = 1 et
ORIVECT ou ORIPLANE est actif.
L'orientation de l'outil peut tre programme sous forme de vecteur de direction ou de
positions d'axes rotatifs. Si l'un des codes G ORICONxx et ORICURVE est actif ou si des
polynmes sont programms pour les angles d'orientation (PO[PHI] et PO[PSI]), il n'y a
pas d'interpolation circulaire de grand rayon.

Transformations
6.6 Compactage de l'orientation (COMPON, COMPCURV, COMPCAD)
Notions complmentaires
356 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple
Dans cet exemple de programmation, un cercle, qui est obtenu par une approximation
polygonale, est compact. L'orientation de l'outil se dplace de faon synchrone sur une
surface latrale de cne. Bien que les changements successifs dorientation programms
soient discontinus, la fonction compacteur gnre un trac lisse de lorientation.

Programmation Commentaire
DEF INT NOMBRE=60
DEF REAL RAYON=20
DEF INT COMPTEUR
DEF REAL ANGLE
N10 G1 X0 Y0 F5000 G64

$SC_COMPRESS_CONTUR_TOL=0.05 ; Ecart maximal par rapport au contour = 0.05 mm
$SC_COMPRESS_ORI_TOL=5 ; Ecart maximal par rapport l'orientation
= 5 degrs

TRAORI
COMPCURV
; Le dplacement a lieu sur un cercle obtenu par une
approximation polygonale. L'orientation se dplace
sur un cne autour de l'axe Z avec un angle au
centre de 45 degrs.
N100 X0 Y0 A3=0 B3=-1 C3=1
N110 FOR COUNTER=0 TO NOMBRE
N120 ANGLE=360*COUNTER/NOMBRE
N130 X=RAYON*cos(ANGLE) Y=RAYON*sin(ANGLE)
A3=sin(ANGLE) B3=-cos(ANGLE) C3=1
N140 ENDFOR
Transformations
6.7 Lissage du trac d'orientation (ORISON, ORISOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 357
6.7 Lissage du trac d'orientation (ORISON, ORISOF)
Fonction
La fonction "Lissage du trac d'orientation (ORISON)" permet de lisser des fluctuations
d'orientation sur plusieurs blocs. On obtient ainsi un trac lisse aussi bien de l'orientation
que du contour.
Condition
La fonction "Lissage du trac d'orientation (ORISON)" est uniquement disponible dans les
systmes de transformation 5/6 axes.
Syntaxe

ORISON
...
ORISOF
Signification

Lissage du trac d'orientation activ ORISON :
Prise d'effet : modale
Lissage du trac d'orientation dsactiv ORISOF :
Prise d'effet : modale
Donnes de rglage
Le lissage du trac d'orientation ncessite la prise en compte :
d'une tolrance maximale prdfinie (cart maximum en degr par rapport l'angle
d'orientation de l'outil)
et
d'un trajet maximum prdfini.
Ces prslections sont dfinies au moyen de donnes de rglage :
SD42678 $SC_ORISON_TOL (tolrance pour le lissage du trac d'orientation)
SD42680 O$SC_ORISON_DIST (trajet pour le lissage du trac d'orientation)
Transformations
6.7 Lissage du trac d'orientation (ORISON, ORISOF)
Notions complmentaires
358 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple

Code de programme Commentaire
...
TRAORI() ; Activation de la transformation d'orientation.
ORISON ; Activation du lissage d'orientation.
$SC_ORISON_TOL=1.0 ; Tolrance du lissage d'orientation= 1,0 degr.
G91
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
X10 A3=1 B3=0 C3=1
...
ORISOF ; Dsactivation du lissage d'orientation.
...
Un pivotement de l'orientation de 90 degrs est ralis dans le plan XZ, de -45 +45
degrs. En raison du lissage de son trac, l'orientation n'atteint plus les valeurs angulaires
maximales de -45 ou +45 degrs.
Informations complmentaires
Nombre de blocs
Le lissage du trac d'orientation s'effectue sur un nombre configur de blocs figurant dans le
paramtre machine MD28590 $MC_MM_ORISON_BLOCKS.

Remarque
Si le lissage du trac d'orientation est activ avec ORISON, alors que la mmoire configure
pour des blocs est insuffisante (MD28590 < 4), un message d'alarme est mis et la fonction
ne peut plus tre excute.

Trajet maximum pour le bloc
Le lissage du trac d'orientation est uniquement ralis dans des blocs dont le trajet est
infrieur la longueur de bloc maximale configure
(MD20178 $MC_ORISON_BLOCK_PATH_LIMIT). Les blocs possdant des trajets plus
longs interrompent le lissage et leur excution s'effectue selon leur programmation.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 359
6.8 Transformation cinmatique
6.8.1 Oprations de fraisage sur des pices de tournage (TRANSMIT)
Fonction
La fonction TRANSMIT offre les possibilits suivantes :
Usinage frontal de pices de tournage sans dmontage de la pice (trous, contours).
Pour la programmation de ces oprations, vous pouvez utiliser un systme de
coordonnes cartsiennes.
La commande transforme les dplacements programms dans le systme de
coordonnes cartsiennes en dplacements des axes machine rels (cas standard) :
Axe rotatif
Axe de pntration perpendiculaire l'axe { de rotation
Axe longitudinal parallle l'axe rotatif
Les axes linaires sont perpendiculaires les uns par rapport aux autres.
Un dcalage du centre de l'outil par rapport l'axe de rotation est permis.
Le pilotage de la vitesse tient compte des limitations dfinies pour les rotations.

Transformations
6.8 Transformation cinmatique
Notions complmentaires
360 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Types de transformation TRANSMIT
Il existe deux types d'usinage TRANSMIT rglables :
TRANSMIT en version standard avec (TRAFO_TYPE_n = 256)
TRANSMIT avec axe linaire Y supplmentaire (TRAFO_TYPE_n = 257)
Le type de transformation tendu 257 peut tre utilis pour compenser par exemple les
corrections de serrage d'un outil avec axe Y rel.
Syntaxe
TRANSMIT ou TRANSMIT(n)
TRAFOOF
Axe rotatif
L'axe rotatif ne peut pas tre programm, tant donn qu'il est affect comme axe
gomtrique et qu'il n'est donc pas programmable directement comme axe de canal.
Signification

TRANSMIT : Activation de la premire fonction TRANSMIT convenue. Cette
fonction est galement appele "transformation polaire".
TRANSMIT(n) : Activation de la nime fonction TRANSMIT convenue, n tant limit
2 (TRANSMIT(1) correspond TRANSMIT).
TRAFOOF : Dsactivation d'une transformation active
OFFN : Dcalage normal au contour : distance sparant l'usinage frontal du
contour de rfrence programm


Remarque
Une transformation active TRANSMIT est galement dsactive quand, dans le canal
concern, il y a activation de l'une des autres transformations (par exemple TRACYL, TRAANG,
TRAORI).

Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 361
Exemple
X
Z
Y


Code de programme Commentaire
N10 T1 D1 G54 G17 G90 F5000 G94 ; Slection de l'outil
N20 G0 X20 Z10 SPOS=45 ; Accostage de la position de dpart
N30 TRANSMIT ; Activation de la fonction TRANSMIT
N40 ROT RPL=45
N50 ATRANS X2 Y10
; Rglage du frame
N60 G1 X10 Y10 G41 OFFN=1OFFN
N70 X10
N80 Y10
N90 X10
N100 Y10
; Tournage d'bauche carr ; surpaisseur
d'usinage 1 mm
N110 G0 Z20 G40 OFFN=0
N120 T2 D1 X15 Y15
N130 Z10 G41
; Changement d'outil
N140 G1 X10 Y10
N150 X10
N160 Y10
N170 X10
N180 Y10
; Finition du carr
N190 Z20 G40
N200 TRANS
N210 TRAFOOF
; Dsactiver un frame
N220 G0 X20 Z10 SPOS=45 ; Accostage de la position de dpart
N230 M30
Transformations
6.8 Transformation cinmatique
Notions complmentaires
362 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
Ple
Il est existe deux possibilits de passer par le ple :
Dplacement de l'axe linaire seul
Dplacement vers le ple avec rotation de l'axe rotatif au ple et sortie du ple.
La slection s'effectue l'aide des PM 24911 et 24951.
TRANSMIT avec axe linaire Y supplmentaire (type de transformation 257) :
Cette variante de transformation de la transformation polaire utilise la redondance sur une
machine avec un autre axe linaire afin d'excuter une correction d'outil amliore. Pour le
deuxime axe linaire, s'applique alors :
une zone de travail plus rduite et
l'interdiction d'utiliser le deuxime axe linaire pour l'excution du programme pice.
Le programme pice et l'affectation des axes correspondants dans le SCB ou le SCM
prsuppose certains rglages des paramtres machine, voir
Bibliographie
/FB2/ Manuel de fonctions d'extension ; transformations cinmatiques (M1)
6.8.2 Transformation de surface latrale de cylindre (TRACYL)
Fonction
La transformation de surface latrale de cylindre TRACYL offre les possibilits suivantes :
Ralisation de :
rainures longitudinales sur des corps cylindriques,
rainures transversales sur des corps cylindriques,
rainures de forme quelconque sur des corps cylindriques.
La forme des rainures est programme sur la surface dveloppe du cylindre.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 363
X
Z
Y

Types de transformation TRACYL
Il existe trois types de transformation de surface latrale de cylindre :
TRACYL sans correction des flancs de la rainure : (TRAFO_TYPE_n=512)
TRACYL avec correction des flancs de la rainure : (TRAFO_TYPE_n=513)
TRACYL avec axe linaire supplmentaire et correction des flancs de la rainure :
(TRAFO_TYPE_n=514)
La correction des flancs de la rainure est paramtre avec TRACYL par le biais du
troisime paramtre.
En cas de transformation de surface latrale de cylindre avec correction des flancs de la
rainure, l'axe utilis pour la correction doit se trouver sur zro (y=0) pour que la rainure
puisse tre fraise de faon centre par rapport son axe de symtrie, tel qu'il a t
programm.
Utilisation des axes
Les axes suivants ne peuvent pas tre utiliss comme axes de positionnement ou
d'oscillation :
l'axe gomtrique dans le sens de la circonfrence de l'enveloppe du cylindre (axe Y)
l'axe linaire supplmentaire en cas de correction des flancs de rainure (axe Z)
Syntaxe
TRACYL(d) ou TRACYL(d, n) ou
pour le type de transformation 514
TRACYL(d, n, correction des flancs de la rainure)
TRAFOOF
Axe rotatif
L'axe rotatif ne peut pas tre programm, tant donn qu'il est affect comme axe
gomtrique et qu'il n'est donc pas programmable directement comme axe de canal.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
364 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification
TRACYL (d)
Activation de la premire fonction TRACYL convenue dans les
paramtres machine spcifiques aux canaux. Paramtre d pour le
diamtre d'usinage.
TRACYL (d, n)
Activation de la nime fonction TRACYL convenue dans les
paramtres machine spcifiques aux canaux, n tant limit 2,
TRACYL(d,1) correspond TRACYL(d).
D
Valeur pour le diamtre d'usinage. Le diamtre d'usinage correspond
deux fois la distance entre la pointe de l'outil et le centre de l'axe de
rotation. Ce diamtre doit toujours tre indiqu et sa valeur doit tre
suprieure 1.
n
Deuxime paramtre optionnel pour le jeu de donnes TRACYL 1
(prslectionn) ou 2.
Correction des
flancs de la
rainure
Troisime paramtre optionnel dont la valeur pour TRACYL est
prslectionne partir du mode des paramtres machine.
Plage de valeurs :
0 : Type de transformation 514 traditionnelle sans correction des
flancs de rainure
1 : Type de transformation 514 avec correction des flancs de la
rainure
TRAFOOF
Dsactivation de la transformation (SCB et SCM sont nouveau
identiques).
OFFN
Dcalage normal au contour : Distance sparant le flanc de rainure du
contour de rfrence programm.


Remarque
Une transformation active TRACYL est galement dsactive quand, dans le canal concern,
il y a activation de l'une des autres transformations (par exemple TRANSMIT, TRAANG, TRAORI).

Exemple : Dfinition de l'outil
L'exemple suivant permet de tester le paramtrage de la transformation de cylindre TRACYL :

Code de programme Commentaire
Paramtres d'outil
Numro de paramtre (DP)
Signification Remarque
$TC_DP1[1,1]=120 Type d'outil Fraise
$TC_DP2[1,1] = 0 Position du tranchant Uniquement outils de tournage

Code de programme Commentaire
Gomtrie Correction de longueur
$TC_DP3[1,1]=8. Vecteur de correction de
longueur
Prise en compte selon type
$TC_DP4[1,1]=9. et plan
$TC_DP5[1,1]=7.

Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 365

Code de programme Commentaire
Gomtrie Rayon
$TC_DP6[1,1]=6. Rayon Rayon de l'outil
$TC_DP7[1,1]=0 Largeur de rainure b (scie
rainurer), rayon
d'arrondi (outils de
fraisage)

$TC_DP8[1,1]=0 Dpassement k Uniquement scie rainurer
$TC_DP9[1,1]=0
$TC_DP10[1,1]=0
$TC_DP11[1,1]=0 Angle pour outils de
fraisage coniques



Code de programme Commentaire
Usure Correction de longueur et
de rayon

$TC_DP12[1,1]=0 Les paramtres restants
jusqu' $TC_DP24=0
Cote de base/adaptateur
Exemple : Fraisage d'une rainure angle droit
Z
Y
X

Transformations
6.8 Transformation cinmatique
Notions complmentaires
366 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Activation de la fonction de transformation de surfaces cylindriques :

Code de programme Commentaire
N10 T1 D1 G54 G90 F5000 G94 ; Slection de l'outil, compensation de
serrage
N20 SPOS=0
N30 G0 X25 Y0 Z105 CC=200
; Accostage de la position de dpart
N40 TRACYL (40) ; Activation de la transformation de surface
latrale de cylindre
N50 G19 ; Slection du plan

Usinage d'une rainure en forme de crochet :

Code de programme Commentaire
N60 G1 X20 ; Pntration de l'outil suivant la profondeur de
la rainure
N70 OFFN=12 ; Dfinition d'une distance de 12 mm entre le
flanc de rainure et l'axe de rainure
N80 G1 Z100 G42 ; Accostage du flanc droit de la rainure
N90 G1 Z50 ; Section de rainure parallle l'axe du
cylindre
N100 G1 Y10 ; Section de rainure parallle la circonfrence
du cylindre
N110 OFFN=4 G42 ; Accostage du flanc gauche de la rainure ;
dfinition d'une distance de 4 mm entre le
flanc et l'axe de rainure
N120 G1 Y70 ; Section de rainure parallle la circonfrence
du cylindre
N130 G1 Z100 ; Section de rainure parallle l'axe du
cylindre
N140 G1 Z105 G40 ; Retrait du flanc de rainure
N150 G1 X25 ; Dgagement
N160 TRAFOOF
N170 G0 X25 Y0 Z105 CC=200 ; Accostage de la position de dpart
N180 M30
Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 367
Description
Sans correction du flanc de rainure (type de transformation 512) :
La commande transforme les dplacements programms dans le systme de coordonnes
cylindre en dplacements des axes machine rels :
Axe rotatif
Axe de pntration perpendiculaire l'axe { de rotation
Axe longitudinal parallle l'axe rotatif
Les axes linaires sont perpendiculaires les uns par rapport aux autres. L'axe de pntration
coupe l'axe rotatif.
XM
ASM
Y
Z
ou CM
ou ZM

Avec correction du flanc de rainure (type de transformation 513) :
Mme cinmatique que ci-dessus, mais en plus axe longitudinal parallle au sens de la
circonfrence
Les axes linaires sont perpendiculaires les uns par rapport aux autres.
Le pilotage de la vitesse tient compte des limitations dfinies pour les rotations.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
368 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
ou CM
ou ZM
YM
ASM
XM
Z
Y

Section de la rainure
Sur la configuration d'axe 1, les rainures le long de l'axe rotatif ne sont parallles que
lorsque la largeur de la rainure correspond exactement au rayon de l'outil.
Les rainures parallles la circonfrence (rainures transversales) ne sont pas parallles au
dbut et la fin.
TRAFO_TYPE_n = 513 TRAFO_TYPE_n = 512
Rainure longitudinale
flancs parallles
avec correction du
flanc de rainure
sans correction du flanc
Rainure transversale Rainure longitudinale

Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 369
Avec axe linaire supplmentaire et avec correction du flanc de rainure (type de
transformation 514) :
Cette variante de transformation utilise la redondance sur une machine avec un autre axe
linaire afin d'excuter une correction d'outil amliore. Pour le deuxime axe linaire,
s'applique alors :
une zone de travail plus petite et
l'interdiction d'utiliser le deuxime axe linaire pour l'excution du programme pice.
Pour le programme pice et l'affectation des axes correspondants dans le SCB ou le SCM,
certains paramtres machine sont remis zro. Voir
Bibliographie
/FB2/ Manuel de fonctions d'extension ; transformations cinmatiques (M1)
Dcalage normal au contour OFFN (type de transformation 513)
Pour le fraisage d'une rainure avec TRACYL , il faut,
programmer la ligne mdiane de la rainure
et la demi-largeur de rainure par le biais de OFFN dans le programme pice.
OFFN n'est activ que lorsque la correction de rayon d'outil a t slectionne, afin d'viter
toute dtrioration du flanc de rainure). En outre, OFFN doit tre suprieur ou gal au rayon
d'outil afin d'empcher toute dtrioration du flanc de rainure oppos.
OFFN
contour
programm

Transformations
6.8 Transformation cinmatique
Notions complmentaires
370 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Un programme pice pour le fraisage d'une rainure comprend gnralement les tapes
suivantes :
1. Slection de l'outil
2. Slection de TRACYL
3. Slection du dcalage du systme de coordonnes appropri (FRAME)
4. Positionnement
5. Programmation d'OFFN
6. Slection de la CRO (correction de rayon d'outil)
7. Bloc d'accostage (CRO et accostage du flanc de la rainure)
8. Contour correspondant l'axe de symtrie de la rainure
9. Dsactivation de la CRO
10. Bloc de retrait (retrait de la CRO et loignement du flanc de rainure)
11. Positionnement
12. TRAFOOF
13. Reprise du dcalage de coordonnes initial (FRAME)
Particularits
Slection de la CRO :
La programmation de la CRO ne s'effectue pas par rapport au flanc de rainure, mais par
rapport l'axe de symtrie de rainure programm. Pour que l'outil se dplace gauche
du flanc de rainure, il convient d'introduire G42 (au lieu de G41). Vous vitez cela en
indiquant une largeur de rainure ngative avec OFFN.
OFFN avec TRACYL a un comportement diffrent de OFFN sans TRACY . Comme OFFN
sans TRACYL est galement pris en considration si la CRO est active, il est
recommand d'annuler nouveau OFFN aprs TRAFOOF.
Il est possible de modifier OFFN l'intrieur du programme pice. L'axe de symtrie d'une
rainure peut donc tre dsax (voir figure).
Rainures de guidage :
TRACYL ne permet pas de crer la mme rainure de guidage que celle fabrique avec un
outil dont le diamtre prsente la largeur de rainure. En principe, il n'est pas possible de
gnrer la mme gomtrie de flanc de rainure avec un outil cylindrique de petite taille et
avec un outil plus grand. TRACYL minimise l'erreur. Pour viter des problmes de
prcision, il est recommand d'utiliser un outil dont le rayon n'est que lgrement infrieur
la moiti de la largeur de la rainure.



Remarque
OFFN et CRO
Si TRAFO_TYPE_n = 512, la valeur sous OFFN agit en addition la CRO.
Si TRAFO_TYPE_n = 513, la valeur sous OFFN correspond la demi-largeur de la
rainure. Le contour est parcouru avec OFFN-CRO.

Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 371
6.8.3 Axe oblique (TRAANG)
Fonction
La fonction axe oblique est destine l'utilisation en rectification et offre les possibilits
suivantes :
Usinage avec axe de pntration oblique
Un systme de coordonnes cartsiennes peut tre utilis pour la programmation.
La commande transforme les dplacements programms dans le systme de
coordonnes cartsiennes en dplacements des axes machine rels (cas standard) : axe
de pntration oblique.

X
Z C MZ
AS
MU
Meule de
rectification
Pice

Syntaxe
TRAANG() ou TRAANG(, n)
TRAFOOF
Signification
TRAANG( ) ou
TRAANG( ,n)
Activer la transformation avec le paramtrage de la slection prcdente.
TRAANG()
Activation de la premire transformation convenue d'axe oblique
TRAANG(,n)
Activation de la nime transformation convenue de l'axe oblique, n tant
limit 2. TRAANG(,1) correspond TRAANG().
A
Angle de l'axe oblique
Les valeurs autorises pour sont les suivantes :
-90 degrs < < + 90 degrs
TRAFOOF
Dsactivation de la transformation
n
Nombre de transformations convenues
Transformations
6.8 Transformation cinmatique
Notions complmentaires
372 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Laisser de ct l'angle ou zro
Si l'angle est laiss de ct (par exemple TRAANG(), TRAANG(, n)), la transformation est
active avec le paramtrage de la slection prcdente. Lors de la premire slection, la
valeur prdfinie applicable est celle des paramtres machine.
Un angle = 0 (par exemple TRAANG(0), TRAANG(0,n)) constitue un paramtrage dfinitif et
ne correspond plus la suppression du paramtre dans les versions antrieures.
Exemple

X
Z C MZ
AS
MU
Meule de
rectification
Pice


Code de programme Commentaire
N10 G0 G90 Z0 MU=10 G54 F5000 ->
-> G18 G64 T1 D1
; Slection de l'outil, compensation de
serrage,
Slection du plan
N20 TRAANG(45) ; Activation de la transformation axe
oblique
N30 G0 Z10 X5 ; Accostage de la position de dpart
N40 WAITP(Z) ; Libration des axes pour l'oscillation
N50 OSP[Z]=10 OSP2[Z]=5 OST1[Z]=2 ->
-> OST2[Z]=2 FA[Z]=5000
N60 OS[Z]=1
N70 POS[X]=4.5 FA[X]=50
N80 OS[Z]=0
; Oscillation jusqu' la cote finale
(Oscillation : voir chapitre
"Oscillation")
N90 WAITP(Z) ; Libration des axes d'oscillation en tant
qu'axes de positionnement
N100 TRAFOOF ; Dsactiver la transformation
N110 G0 Z10 MU=10 ; Dgagement
N120 M30 ;
-> doit tre programm dans un bloc
Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 373
Description
Les usinages suivants sont possibles :
1. Cylindrage
2. Dressage
3. Profilage d'un contour donn
4. Rectification en plonge oblique
4
2
3
1

Constructeur de la machine-outil
Les rglages suivants sont dfinis par les paramtres machine :
l'angle entre un axe machine et l'axe oblique,
la position de l'origine pice par rapport l'origine du systme de coordonnes convenu
par la fonction "axe oblique",
la rserve de vitesse disposition sur l'axe parallle pour le dplacement compensateur,
la rserve d'acclration disposition sur l'axe parallle pour le dplacement
compensateur.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
374 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Configuration d'axes
Pour pouvoir programmer dans un systme de coordonnes cartsiennes, le rapport entre
ce systme de coordonnes et les axes machine effectifs (MU, MZ) doit tre communiqu
la commande :
Dnomination des axes gomtriques
Affectation des axes gomtriques aux axes de canal
cas gnral (axe oblique inactif)
axe oblique actif
Affectation des axes de canal aux numros d'axe machine
Identification des broches
Attribution de noms aux axes machine
A l'exception de "axe oblique actif", la manire de procder est identique celle utilise pour
la configuration d'axes normale.
6.8.4 Programmation d'un axe oblique (G05, G07)
Fonction
En mode manuel, la meule peut tre dplac au choix dans le sens cartsien ou dans le
sens des axes obliques (l'affichage reste cartsien). Seul l'axe U {rel se dplace, l'affichage
de l'axe Z{est actualis.
Les dcalages REPOS doivent retourner en mode manuel dans le sens cartsien.
En "Dplacement PTP", le dpassement de la limitation cartsienne de la zone de travail
est surveill en mode manuel, l'axe correspondant est frein auparavant. Si le "dplacement
PTP" n'est pas actif, l'axe peut tre dplac avec prcision jusqu' la limitation de la zone de
travail.
Bibliographie
/FB2/ Manuel de fonctions d'extension ; transformation cinmatique (M1)
Syntaxe
G07
G05
Les instructions G07/G05 servent faciliter la programmation des axes obliques. Des
positions peuvent tre programmes et affiches dans un systme de coordonnes
cartsiennes. La correction d'outil et le dcalage d'origine seront calculs dans le systme
cartsien. Aprs la programmation de l'angle pour l'axe oblique dans le programme CN, la
position de dpart peut tre accoste (G07) puis la plonge oblique (G05) peut tre engage.
Transformations
6.8 Transformation cinmatique
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 375
Signification

G07 Accostage de la position de dpart
G05 Activation plonge oblique
Exemple
N50
N60
X
Z C
AS
a
U
Meule de
rectification
Pice


Programmation Commentaire
N.. G18 ; Programmation de l'angle pour l'axe oblique
N50 G07 X70 Z40 F4000 ; Accostage de la position de dpart
N60 G05 X70 F100 ; Plonge oblique
N70 ... ;
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
376 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.9 Dplacement PTP cartsien
Fonction
Avec cette fonction, vous pouvez programmer une position dans un systme de
coordonnes cartsiennes, bien que le dplacement des axes machine s'effectue dans le
systme de coordonnes machine. La fonction peut tre utilise, par exemple, pour modifier
la position d'articulations, si cela entrane le passage par un point singulier.

Remarque
Cette fonction n'a d'intrt que si une transformation est active. En outre, le "dplacement
PTP" n'est admissible qu'en liaison avec G0 et G1.

Syntaxe
N... TRAORI
N... STAT='B10' TU='B100' PTP
N... CP
Dplacement PTP avec une transformation gnrique cinq/six axes
Lorsque, lors d'une transformation gnrique 5 / 6 axes avec PTP, un dplacement point--
point est activ dans le systme de coordonnes machine (ORIMKS), alors l'orientation de
l'outil peut aussi bien tre programme avec des positions d'axes rotatifs
N... G1 X Y Z A B C
qu'avec des vecteurs d'Euler ou des angles RPY indpendants de la cinmatique
N... ORIEULER ou ORIRPY
N... G1 X Y Z A2 B2 C2
ou des vecteurs de direction
N... G1 X Y Z A3 B3 C3
. Une interpolation d'axe rotatif tout comme une interpolation vectorielle avec une
interpolation circulaire de grand rayon ORIVECT ou une interpolation du vecteur d'orientation
sur une enveloppe de cne ORICONxx peuvent tre paralllement actives.
Ambiguts de l'orientation avec des vecteurs
Lors de la programmation de l'orientation avec des vecteurs, il existe une ambigut dans les
positions possibles de l'axe rotatif. Les positions d'axe rotatif accoster peuvent tre
slectionnes avec la programmation de STAT = <...>. Lorsque
STAT = 0 est programm (cela correspond au paramtrage par dfaut),
les positions qui ont la distance la plus faible aux positions de dpart sont accostes.
Lorsque
STAT = 1 est programm,
les positions qui ont la distance la plus importante aux positions de dpart sont accostes.
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 377
Signification
Les commandes PTP et CP sont des fonctions modales. CP est le paramtrage par dfaut.
Alors que la programmation de la valeur STAT est effet modal, la programmation de TU =
<...> agit bloc par bloc.
Une autre diffrence est que la programmation d'une valeur STAT n'a d'effet qu'avec une
interpolation vectorielle tandis que la programmation de TU est galement value en cas
d'interpolation active d'axe rotatif.

PTP
point to point (dplacement point point)
Le dplacement est effectu en tant que dplacement d'axe synchrone ; l'axe le
plus lent parmi les axes participant au dplacement dtermine la vitesse.
CP
continuous path (dplacement avec interpolation)
Le dplacement est effectu sous forme de dplacement cartsien avec
interpolation.
STAT=
Position des articulations ; valeur en fonction de la transformation.
TU=
L'information TURN a un effet non modal. Permet d'accoster de faon univoque
des angles d'axe compris entre -360 degrs et +360 degrs.
Exemple
X1
Y1
A1
Z1
articulation en bas
articulation en haut


N10 G0 X0 Y-30 Z60 A-30 F10000
Position de dpart
articulation en haut
N20 TRAORI(1)
Activation de la transformation
N30 X1000 Y0 Z400 A0

N40 X1000 Z500 A0 STAT='B10'
TU='B100' PTP
Changement d'orientation sans transformation
articulation en bas
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
378 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
N50 X1200 Z400 CP
Ractivation de la transformation
N60 X1000 Z500 A20

N70 M30

Exemple de dplacement PTP avec une transformation gnrique cinq axes
Hypothse : Une cinmatique orthogonale CA sert de base.

Code de programme Commentaire
TRAORI ; Transformation de cinmatique CA active
PTP ; Activer le dplacement PTP
N10 A3 = 0 B3 = 0 C3 = 1 ; Positions d'axe rotatifs C = 0 A = 0
N20 A3 = 1 B3 = 0 C3 = 1 ; Positions d'axe rotatifs C = 90 A = 45
N30 A3 = 1 B3 = 0 C3 = 0 ; Positions d'axe rotatifs C = 90 A = 90
N40 A3 = 1 B3 = 0 C3 = 1 STAT =
1
; Positions d'axe rotatifs C = 270 A = 45

Slectionner la position d'accostage univoque de l'axe rotatif :
Dans le bloc N40, les axes rotatifs parcourent, du fait de la programmation STAT = 1, la
trajectoire la plus longue de leur point de dpart (C=90, A=90) leur point final (C=270, A=
45) au lieu de suivre la trajectoire la plus courte jusqu'au point final (C=90, A=45) comme ce
serait le cas avec STAT = 0.
Description
La commutation du dplacement cartsien au dplacement des axes machine a lieu l'aide
des instructions PTP et CP.
Dplacement PTP avec une transformation gnrique cinq/six axes
Lors du dplacement PTP, le TCP ne reste gnralement pas stationnaire, contrairement
la transformation 5/6 axes, au cas o seule l'orientation est modifie. Les positions finales
transformes de tous les axes de transformation (axes linaires et jusqu' 3 axes rotatifs)
sont accostes linairement sans la transformation soit encore active au sens propre.
Le dplacement PTP est dsactiv par la programmation du code G modal CP.
Les diffrentes transformations sont dcrites dans l'imprim :
/FB3/ Manuel de fonctions spciales ; Pack de transformation Manipulation (TE4).
Programmation de la position des articulations (STAT=)
L'indication de la position en coordonnes cartsiennes et de l'orientation de l'outil ne suffit
pas pour dterminer de faon univoque une position de la machine. Selon le type de
cinmatique, 8 positions distinctes d'articulation sont possibles. Ces positions sont donc
spcifiques une transformation. Afin de pouvoir convertir de faon univoque une position
cartsienne en angles d'axe, la position des articulations doit tre indique avec l'instruction
STAT= . L'instruction "STAT" comporte un bit pour chacune des positions possibles.
Pour plus d'informations sur les bits de position programmer pour "STAT", voir :
/FB2/ Manuel de fonctions d'extension ; transformation cinmatique (M1), chapitre
"Dplacement PTP cartsien".
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 379
Programmation des angles d'axe (TU=)
Pour accoster de faon univoque des angles d'axe < 360 degrs, l'instruction "TU=" doit tre
ajoute l'information d'angle.
Les axes effectuent le dplacement minimal :
si TU n'est pas programme pour une position,
si l'axe possde une plage de dplacement > 360 degrs.
Exemple :
La position de destination reprsente sur la figure ci-contre peut tre accoste en sens
ngatif ou positif. Le sens est programm sous l'adresse A1.
A1=225, TU=bit 0, sens positif
A1=135, TU=bit 1, sens ngatif
Position de dpart
Position de destination
sens ngatif
sens positif

Exemple d'valuation de TU pour transformation gnrique 5/6 axes et positions de
destination
La variable TU contient, pour chaque axe qui entre dans la transformation, un bit indiquant la
direction du dplacement. L'affectation des bits TU correspond la vue de l'axe des canaux
rotatifs. L'information TU est uniquement value pour les 3 axes rotatifs maximum qui
entrent dans la transformation :
Bit0 : Axe 1, bit TU = 0 : 0 degr <= angle d'axe rotatif < 360 degrs
Bit1: Axe 2, bit TU = 1 : 360 degrs < angle d'axe rotatif < 0 degr
La position de dpart d'un axe rotatif est C = 0, avec la programmation de C = 270, l'axe
rotatif se dplace sur les positions de destination suivantes :
C = 270: bit TU 0, sens de rotation positif
C = 90: bit TU 1, sens de rotation ngatif
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
380 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Autre comportement
Changement de mode de fonctionnement
La fonction "Dplacement PTP cartsien" n'a d'intrt que dans les modes de
fonctionnement AUTO et MDA. En cas de passage au mode JOG, le rglage courant est
conserv.
Si le code G PTP est rgl, les axes sont dplacs dans le SCM. Si le code G CP est rgl,
les axes sont dplacs dans le SCP.
Power On/RESET
Aprs Power On ou aprs RESET, le paramtrage dpend du paramtre machine
$MC_GCODE_REST_VALUES[48]. Le mode de dplacement "CP" est prrgl.
REPOS
Si la fonction "Dplacement PTP cartsien" tait rgle pendant le bloc interrompu, le
repositionnement s'effectue galement avec PTP .
Corrections de dplacement
Le dcalage DRF ou le dcalage d'origine externe ne sont possibles qu'avec des restrictions
en dplacement PTP cartsien. Aucune correction ne doit tre active dans le SCB lors du
passage du dplacement PTP au dplacement CP.
Arrondissement entre des dplacements CP et PTP
Vous pouvez programmer un arrondissement de la transition entre des blocs CP et PTP
avec G641 .
La taille de la zone arrondie est le trajet en mm ou inch parcouru sur la trajectoire entre le
dbut et la fin de l'arrondissement. Cette taille doit tre indique de la manire suivante :
pour les blocs G0, avec ADISPOS
pour toutes les autres instructions de dplacement, avec ADIS
Le calcul du trajet tient compte des adresses F dans le cas des blocs qui ne comportent pas
G0. L'avance est celle des axes indiqus dans l'instruction FGROUP(...) .
Calcul de l'avance
Dans le cas des blocs CP, les axes cartsiens du systme de coordonnes de base sont
utiliss pour le calcul.
Dans le cas des blocs PTP, les axes correspondants du systme de coordonnes machine
sont utiliss pour le calcul.
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 381
6.9.1 PTP avec TRANSMIT
Fonction
PTP avec TRANSMIT permet l'accostage l'aide des blocs G0 et G1 avec optimisation du
temps. Au lieu de dplacer les axes du systme de coordonnes de base de manire
linaire (CP), ce sont les axes machine qui sont dplacs de manire linaire (PTP). Ainsi,
le comportement du dplacement des axes machine au voisinage du ple permet d'atteindre
le point final de bloc beaucoup plus rapidement.
Le programme pice continue tre crit dans le systme de coordonnes cartsiennes et
tous les dcalages de coordonnes, toutes les rotations et programmations de frames
restent valables. La simulation sur IHM est galement affiche dans le systme de
coordonnes cartsiennes de la pice.
Syntaxe
N... TRANSMIT
N... PTPG0
N... G0 ...
...
N... G1 ...
Signification

TRANSMIT
Activation de la premire fonction TRANSMIT convenue
(voir chapitre "Oprations de fraisage sur des pices de tournage :
TRANSMIT")
PTPG0
Point to Point G0 (activer automatiquement le dplacement point point sur
chaque bloc G0 puis rebasculer en mode CP)
Etant donn que STAT et TU sont effet modal, la valeur programme en
dernier est toujours valide.
PTP
point to point (dplacement point point)
Pour TRANSMIT, PTP signifie que dans le systme de coordonnes
cartsiennes, le dplacement s'effectue sur des spirales d'Archimde soit
autour du ple, soit partir de celui-ci. Les dplacements d'outil rsultants
varient sensiblement de ceux en mode CP et sont reprsents dans les
exemples de programmation concerns.
STAT=
Rsolution de l'ambigut en ce qui concerne le ple.
TU=
TU n'est pas pertinent dans le cas de PTP avec TRANSMIT
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
382 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple de contournement du ple avec PTP et TRANSMIT
PTP
CP
N030 X-30 Y-20
N020 G0 X30 Y20
Y
X
-30
-20
-10
30 20 10
10
20
30
-10 -20 -30


Code de programme Commentaire
N001 G0 X30 Z0 F10000 T1 D1 G90 ; Position de dpart Cote absolue
N002 SPOS=0
N003 TRANSMIT ; Transformation TRANSMIT
N010 PTPG0 ; PTP automatiquement pour chaque bloc G0
puis nouveau CP
N020 G0 X30 Y20
N030 X-30 Y-20
N120 G1 X30 Y20
N110 X30 Y0
M30
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 383
Exemple de dgagement du ple avec PTP et TRANSMIT
N070 X20 Y2
10
10
20
20 -10 -20 -30
-10
-20
-30
N060 X0 Y0
N050 X10 Y0
PTP
CP
30
30


Programmation Commentaire
N001 G0 X90 Z0 F10000 T1 D1 G90 ; Position de dpart
N002 SPOS=0
N003 TRANSMIT ; Transformation TRANSMIT
N010 PTPG0 ; PTP automatiquement pour chaque
bloc G0
puis nouveau CP
N020 G0 X90 Y60
N030 X-90 Y-60
N040 X-30 Y-20
N050 X10 Y0
N060 X0 Y0
N070 X-20 Y2
N170 G1 X0 Y0
N160 X10 Y0
N150 X-30 Y-20
M30
Transformations
6.9 Dplacement PTP cartsien
Notions complmentaires
384 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Description
PTP et PTPG0
PTPG0 est pris en compte pour toutes les transformations qui peuvent excuter PTP. Dans
tous les autres cas, PTPG0 n'est pas pertinent.
Les blocs G0 sont excuts en mode CP.
La slection de PTP ou PTPG0 s'effectue dans le programme pice ou en dslectionnant CP
dans le paramtre machine $MC_GCODE_RESET_VALUES[48].

PRUDENCE
Conditions marginales
En ce qui concerne les dplacements d'outil et les collisions, plusieurs conditions
marginales et certaines exclusions de fonctions s'appliquent:
Avec PTP , aucune correction de rayon d'outil (CRO) ne doit tre active.
Avec PTPG0, en cas de correction de rayon d'outil (CRO) active, l'accostage se fait par CP.
Avec PTP, l'accostage et retrait en douceur (WAB) n'est pas possible.
Avec PTPG0, en cas d'accostage et retrait en douceur (WAB), l'accostage se fait par CP.
Avec PTP, les cycles de chariotage (CONTPRON, CONTDCON) ne sont pas possibles.
Avec PTPG0, l'accostage dans les cycles de chariotage (CONTPRON, CONTDCON) se fait par CP.
Le chanfreinage (CHF, CHR) et l'arrondissage (RND, RNDM) sont ignors.
Le compacteur n'est pas compatible avecPTP et il est automatiquement dslectionn
dans les blocs PTP.
Une correction d'axe dans l'interpolation ne doit pas tre modifie au cours de l'tape PTP.
Avec G643, le basculement s'effectue automatiquement vers les transitions entre blocs
selon prcision axiale G642 .
Lorsque PTP est actif, les axes de la transformation ne peuvent pas tre simultanment
des axes de positionnement.
Bibliographie :
/FB2/ Manuel de fonctions d'extension ; transformation cinmatique (M1),
chapitre "Dplacement PTP cartsien".

PTP avec TRACON :
PTP peut galement tre utilis avec TRACON si la premire transformation concatne prend
en charge PTP.
Signification de STAT= et TU= avec TRANSMIT
Si l'axe rotatif pivote de 180 degrs ou si le contour franchit le ple avec CP, les axes rotatifs
peuvent pivoter en fonction du paramtre machine $MC_TRANSMIT_POLE_SIDE_FIX_1/2 [48] de
-/+ 180 degrs et tre dplacs dans le sens horaire ou antihoraire. Il est possible de dfinir
en outre si l'accostage doit s'effectuer par le ple ou si la rotation doit s'effectuer autour du
ple.
Transformations
6.10 Conditions marginales pour l'activation d'une transformation
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 385
6.10 Conditions marginales pour l'activation d'une transformation
Fonction
La slection de transformations est possible par le biais du programme pice ou en mode
MDA. Attention :
Aucun bloc intermdiaire de dplacement n'est insr (chanfreins/rayons).
Une squence de blocs de type spline doit tre termine, sinon un message s'affiche.
La correction fine d'outil doit tre dsactive (FTOCOF), sinon un message s'affiche.
La correction de rayon d'outil doit tre dsactive (G40), sinon un message s'affiche.
Une correction de longueur d'outil active est reprise dans la transformation par la
commande.
Le frame courant activ avant la transformation est dsactiv par la commande.
Une limitation active de la zone de travail est dsactive par la commande pour les axes
impliqus dans la transformation (correspond WALIMOF).
La surveillance de la zone de protection est dsactive.
Le contournage et l'arrondissement sont interrompus.
Tous les axes indiqus dans les paramtres machine doivent tre synchroniss au
niveau des blocs.
Les axes permuts sont rtablis, sinon un message apparat.
Un message apparat en prsence d'axes dpendants.
Changement d'outil
Un changement d'outil n'est autoris que si la correction de rayon d'outil est dsactive.
Un changement de la correction de longueur d'outil et une activation/ dsactivation de la
correction de rayon d'outil ne doivent pas tre programms dans le mme bloc.
Changement de frame
Toutes les instructions qui se rapportent uniquement au systme de coordonnes de base
sont autorises (FRAME, correction de rayon d'outil). Un changement de frame avec G91
(cotes relatives) ne sera cependant pas trait part, contrairement ce qui se passe
lorsque la transformation est inactive. L'incrment parcourir est trait dans le systme de
coordonnes pice du nouveau frame, quel que soit le frame qui tait actif dans le bloc
prcdent.
Exclusions
Les axes impliqus dans une transformation ne peuvent pas tre utiliss :
comme axes Preset (alarme),
pour l'accostage de point fixe (alarme),
pour la prise de rfrence (alarme).
Transformations
6.11 Dsactivation d'une transformation (TRAFOOF)
Notions complmentaires
386 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
6.11 Dsactivation d'une transformation (TRAFOOF)
Fonction
L'instruction TRAFOOF permet de dsactiver l'ensemble des transformations et frames actifs.

Remarque
Les frames ncessaires doivent ensuite tre activs par une nouvelle programmation.
Attention :
Les conditions marginales pour l'activation d'une transformation (voir chapitre "Conditions
marginales pour l'activation d'une transformation") s'appliquent galement la dsactivation
d'une transformation.

Syntaxe
TRAFOOF
Signification

TRAFOOF
Instruction de dsactivation de l'ensemble des transformations/frames
actifs
Transformations
6.12 Transformations concatnes (TRACON, TRAFOOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 387
6.12 Transformations concatnes (TRACON, TRAFOOF)
Fonction
Deux transformations peuvent tre actives en srie (concatnes) chaque fois, de sorte
que les trajets des axes de la premire transformation constituent les donnes d'entre pour
la deuxime transformation concatne. Les axes machine effectuent les dplacements
rsultant de la deuxime transformation.
Deux transformations peuvent tre concatnes.

Remarque
Un outil est toujours affect la premire transformation d'une transformation rsultante. La
deuxime transformation se comporte alors comme si la longueur active de l'outil valait zro.
Seules les longueurs de base rgles par paramtres machine pour l'outil (_BASE_TOOL_)
sont actives pour la premire transformation.

Constructeur de la machine-outil
Veuillez observer les indications du constructeur de machines concernant des
transformations ventuellement prdfinies par paramtres machine.
Les transformations et les transformations concatnes sont des options. Le catalogue le
plus rcent indique les transformations qu'il est possible de concatner en fonction du type
de commande.
Applications
Rectification de contours programms en tant que lignes d'une surface dveloppe de
cylindre (TRACYL) avec une meule oblique, par exemple l'afftage d'outil.
Finition d'un contour non circulaire gnr avec TRANSMIT l'aide d'une meule oblique.
Syntaxe

TRACON(trf,par)
Activation d'une transformation rsultant d'une
concatnation.
TRAFOOF

Transformations
6.12 Transformations concatnes (TRACON, TRAFOOF)
Notions complmentaires
388 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

TRACON
Une transformation rsultant d'une concatnation est active. TRACON()
dsactive implicitement toute transformation active auparavant.
TRAFOOF
La transformation active (concatne) en dernier est dsactive.
trf
Numro de la transformation rsultante :
0 ou 1 pour la premire/l'unique transformation concatne.
Si ce paramtre n'est pas programm, est interprt comme valant 0 ou 1,
c'est--dire que la premire/l'unique transformation est active.
2 reprsente la deuxime transformation. (Les valeurs diffrentes de 0, 1,
2 gnrent une alarme).
par
Un ou plusieurs paramtres spars par des virgules pour les
transformations concatnes qui requirent des paramtres, par exemple
l'angle pour un axe oblique. Si des paramtres ne sont pas programms,
les prrglages ou les valeurs utilises en derniers lieu sont actifs. Les
virgules sont ncessaires pour que les paramtres soient traits dans
l'ordre dans lequel ils sont escompts, si des prrglages doivent tre pris
en considration pour certains paramtres antposs. En particulier, si un
seul paramtre est indiqu, il faut placer une virgule devant celui-ci, mme
si la programmation de trf est inutile, par exemple TRACON( , 3.7).
Condition pralable
La deuxime transformation doit tre de type "Axe oblique" (TRAANG). La premire
transformation peut tre :
Transformations d'orientation (TRAORI), tte de fraisage de type cardan comprise
TRANSMIT
TRACYL
TRAANG
L'instruction d'activation d'une transformation rsultant d'une concatnation ne peut tre
utilise que si les transformations concatner et la transformation rsultante sont dfinies
par paramtres machine.
Les conditions marginales indiques dans les descriptions spares pour les
transformations et les cas particuliers doivent galement tre respects lors de l'utilisation
l'intrieur d'une concatnation.
Des informations sur la configuration des paramtres machine des transformations se
trouvent dans :
/FB2/ Manuel de fonctions d'extension ; transformations cinmatiques (M1) et
/FB3/ Manuel de fonctions spciales ; Transformations 3 5 axes (F2)

Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 389
Corrections d'outils
7
7.1 Mmoire de correcteurs
Fonction
Structure de la mmoire de correcteurs
Chaque champ de donnes peut tre appel l'aide d'un numro T et d'un numro D (sauf
"Numros D absolus") et contient, outre les donnes gomtriques de l'outil, d'autres
indications telles que le type d'outil.
Structure des numros D absolus
La "structure horizontale des numros D" est utilise lorsque la gestion d'outils a lieu en
dehors de NCK. Dans ce cas, les numros D, c'est--dire les correcteurs d'outil, sont crs
sans relation avec les outils.
Dans le programme pice, vous pouvez continuer programmer T. Ce numro T est
cependant indpendant du numro D programm.
Donnes de tranchant utilisateur
Des donnes utilisateur de tranchant peuvent tre configures l'aide de PM. Veuillez tenir
compte des indications du constructeur de la machine.
Paramtres d'outil
Remarque
Les diffrentes valeurs de la mmoire de correction
Les diffrentes valeurs de la mmoires de correction P1 P25 peuvent tre lues et crites
par le programme grce des variables systme. Tous les autres paramtres sont rservs.
Les paramtres d'outil $TC_DP6 $TC_DP8, $TC_DP10 et $TC_DP11 ainsi que $TC_DP15
$TC_DP17, $TC_DP19 et $TC_DP20 possdent, en fonction du type d'outil, une autre
signification.
1
Est galement valable pour les fraises pour le fraisage avant 3D
2
En cas de scie rainurer type d'outil
3
rserv : N'est pas utilis par la SINUMERIK 840D.


Corrections d'outils
7.1 Mmoire de correcteurs
Notions complmentaires
390 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Paramtre d'outil
numro (DP)
Signification des variables systme Remarque
$TC_DP1 Type d'outil Voir liste ci-dessous
$TC_DP2 Position du tranchant Uniquement outils de tournage
Gomtrie Correction de longueur
$TC_DP3 Longueur 1 Prise en compte selon
$TC_DP4 Longueur 2 Type et niveau
$TC_DP5 Longueur 3
Gomtrie Rayon
$TC_DP6
1

$TC_DP6
2

Rayon 1 / Longueur 1
Diamtre d
Fraise/outil indexable/meule
Scie rainurer
$TC_DP7
1

$TC_DP7
2

Longueur 2 / Rayon de cong de fraise conique
Largeur de rainure b rayon de cong
Fraises
Scie rainurer
$TC_DP8
1

$TC_DP8
2

Rayon de courbure 1 pour fraises
Projection k
Fraises
Scie rainurer
$TC_DP9
1,3
Rayon de courbure 2 rserv
$TC_DP10
1
Angle 1 surface d'attaque de l'outil Fraises coniques
$TC_DP11
1
Angle 2 axe longitudinal de l'outil Fraises coniques
Usure Correction de longueur et de rayon
$TC_DP12 Longueur 1
$TC_DP13 Longueur 2
$TC_DP14 Longueur 3
$TC_DP15
1

$TC_DP15
2

Rayon 1 / Longueur 1
Diamtre d
Fraise/outil indexable/meule
Scie rainurer
$TC_DP16
1

$TC_DP16
3

Longueur 2 / Rayon de cong de fraise conique
Largeur de rainure b rayon de cong
Fraises
Scie rainurer
$TC_DP17
1
$TC_DP17
2

Rayon de courbure 1 pour fraises
Projection k
Fraises / fraises avant 3D
Scie rainurer
$TC_DP18
1,3
Rayon de courbure 2 rserv
$TC_DP19
1
Angle 1 surface d'attaque de l'outil Fraises coniques
$TC_DP20
1
Angle 2 axe longitudinal de l'outil Fraises coniques
Cote de
base/adaptateur
Corrections de longueur
$TC_DP21 Longueur 1
$TC_DP22 Longueur 2
$TC_DP23 Longueur 3
Technologie
$TC_DP24 Angle de dpouille Uniquement outils de tournage
$TC_DP25 rserv
Commentaires
Les grandeurs gomtriques (par exemple longueur 1 ou rayon) sont constitues de
plusieurs composantes. Ces dernires sont additionnes pour donner une grandeur
rsultante (par exemple la longueur totale 1, le rayon total) qui est alors prise en compte
pour la correction.
La valeur zro est affecte aux corrections inutiles.
Corrections d'outils
7.1 Mmoire de correcteurs
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 391
Paramtres d'outil $TC-DP1 $TC-DP23 avec outils de contour
Remarque
Les paramtres d'outils qui ne figurent pas dans le tableau, comme par exemple $TC_DP7,
ne sont pas valus autrement dit leur contenu n'a pas d'importance.



Paramtre d'outil numro
(DP)
Signification Dcouper Dn Remarque
$TC_DP1 Type d'outil 400 599
$TC_DP2 Position du tranchant
Gomtrie Correction de longueur
$TC_DP3 Longueur 1
$TC_DP4 Longueur 2
$TC_DP5 Longueur 3
Gomtrie Rayon
$TC_DP6 Rayon
Gomtrie Angle limite
$TC_DP10 Angle limite minimal
$TC_DP11 Angle limite maximal
Usure Correction de longueur et de rayon
$TC_DP12 Usure Longueur 1
$TC_DP13 Usure Longueur 2
$TC_DP14 Usure Longueur 3
$TC_DP15 Usure rayon
Usure Angle limite
$TC_DP19 Usure de l'angle limite min.
$TC_DP20 Usure de l'angle limite max.
Cote de base/adaptateur Corrections de longueur
$TC_DP21 Longueur 1
$TC_DP22 Longueur 2
$TC_DP23 Longueur 3

Valeur de base et valeur d'usure
Les grandeurs rsultantes sont la somme de la valeur de base et de la valeur d'usure (par
exemple $TC_DP6 + $TC_DP15 pour le rayon). Pour la longueur d'outil du premier
tranchant, la cote de base ($TC_DP21 $TC_DP23) est par ailleurs galement additionne.
De plus, toutes les autres grandeurs pouvant influencer la longueur d'outil mme pour un
outil conventionnel agissent sur cette longueur d'outil (adaptateur, porte-outil orientable,
donnes de rglage).
Angle limite 1 et 2
Les angles limites 1 ou 2 se rapportent chacun au vecteur du centre du bec de l'outil au
point de rfrence du tranchant et sont compts en sens anti-horaire.
Corrections d'outils
7.2 Corrections additives
Notions complmentaires
392 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.2 Corrections additives
7.2.1 Slection des corrections additives (DL)
Fonction
Les corrections additives permettent de programmer des compensations qui dpendent du
processus d'usinage. Elles se rapportent aux donnes gomtriques d'un tranchant et font
donc partie des donnes de tranchant d'outil.
L'accs aux corrections additives a lieu avec un numro DL (DL : location dependent ;
corrections en fonction du lieu d'utilisation) et leur saisie s'effectue sur l'interface utilisateur.
Application
Les corrections additives permettent de compenser les erreurs de cotes dues au lieu
d'utilisation.
Syntaxe
DL=<numro>
Signification

DL
Instruction d'activation d'une correction additive
<Numro>
Le bloc de donnes de correction additive activer est indiqu dans le
paramtre <numro>.


Remarque
La dtermination du nombre de corrections additives et leur activation ont lieu par le biais de
paramtres machine ( voir les indications du constructeur de la machine).

Corrections d'outils
7.2 Corrections additives
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 393
Exemple
Le mme tranchant est utilis pour usiner 2 portes de roulement :
Lieu d'exploitation 1 Lieu d'exploitation 2
-20 -15 -5
10
X
Z
D7 DL=2 D7


Code de programme Commentaire
N110 T7 D7 ; La tourelle revolver est positionne l'emplacement 7.
D7 et DL=1 sont activs et les corrections
correspondantes sont excutes dans le bloc suivant.
N120 G0 X10 Z1
N130 G1 Z-6
N140 G0 DL=2 Z-14 ; DL=2 est activ en supplment de D7 et la correction
correspondante est excute dans le bloc suivant.
N150 G1 Z-21
N160 G0 X200 Z200 ; Accostage de la position de changement d'outil.
...
Corrections d'outils
7.2 Corrections additives
Notions complmentaires
394 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.2.2 Dfinition des valeurs d'usure et de rglage ($TC_SCPxy[t,d], $TC_ECPxy[t,d])
Fonction
La lecture et l'criture des valeurs d'usure et de rglage s'effectuent l'aide de variables
systme. La structure des nouveaux paramtres systme est analogue celle des variables
systme correspondants pour les outils et les tranchants.
Variables systme

Variable systme Signification
$TC_SCPxy[<t>,<d>] Valeur d'usure associe au paramtre gomtrique correspondant
par le biais de xy, x tant le numro de la valeur d'usure et y le
numro du paramtre gomtrique.
$TC_ECPxy[<t>,<d>] Valeur de rglage associe au paramtre gomtrique
correspondant par le biais de xy, x tant le numro de la valeur de
rglage et y le numro du paramtre gomtrique.
<t> : numro T de l'outil
<d> : numro D du tranchant de l'outil


Remarque
Les valeurs d'usure et de rglage sont ajoutes aux valeurs des paramtres gomtriques et
des autres paramtres de correction (numro D).

Exemple
La valeur d'usure associe la longueur 1 est fixe 1.0 pour le tranchant <d> de l'outil <t>.
Paramtre : $TC_DP3 (longueur 1, pour outils de tournage)
Valeurs d'usure : $TC_SCP13 $TC_SCP63
Valeurs de rglage : $TC_ECP13 $TC_ECP63
$TC_SCP43 [<t>,<d>] = 1.0
Corrections d'outils
7.2 Corrections additives
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 395
7.2.3 Effacer les corrections additives (DELDL)
Fonction
L'instruction DELDL permet d'effacer les corrections additives associes des tranchants
d'outil (libration d'espace mmoire). L'effacement concerne les valeurs d'usure aussi bien
que les valeurs de rglage.
Syntaxe
DELDL[<t>,<d>]
DELDL[<t>]
DELDL
<Etat>=DELDL[<t>,<d>]
Signification

DELDL
Instruction de suppression des corrections additives
<t>
Numro T de l'outil
<d>
Numro D du tranchant de l'outil
DELDL[<t>,<d>]
Suppression toutes les corrections additives du tranchant <d> de
l'outil <t>.
DELDL[<t>]
Suppression de toutes les corrections additives de tous les
tranchants de l'outil <t>.
DELDL
Suppression de toutes les corrections additives de tous les
tranchants de tous les outils de l'unit TO (pour le canal dans lequel
l'instruction est programme).
Etat de suppression
Valeur : Signification :
0 Effacement excut correctement.
<Etat>
- L'effacement n'a pas eu lieu (lorsque le paramtrage
dsigne un tranchant prcis) ou l'effacement n'a pas t
entirement effectu (lorsque le paramtrage dsigne
plusieurs tranchants).


Remarque
Les valeurs d'usure et de rglage d'outils actifs ne peuvent pas tre effaces (par analogie
avec l'effacement de correcteurs D et de donnes d'outil).

Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
396 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.3 Correcteur d'outil : Interventions spciales
Fonction
Les donnes de rglage SD42900 SD42960 permettent de grer l'exploitation du signe
pour la longueur d'outil et l'usure.
Ceci concerne galement le comportement des composantes d'usure lors de l'application de
la fonction miroir des axes gomtriques ou en cas de changement de plan de travail,
mais aussi pour la compensation de temprature dans la direction d'outil.
Valeurs d'usure
Lorsque nous faisons rfrence des valeurs d'usure dans ce qui suit, il s'agit de la somme
des valeurs d'usure proprement dites ($TC_DP12 $TC_DP20) et des corrections totales
qui comprennent les valeurs d'usure ($SCPX3 $SCPX11) et les valeurs de rglage
($ECPX3 $ECPX11).
Pour de plus amples informations sur les corrections totales, voir :
Bibliographie :
Description fonctionnelle Gestion des outils
Donnes de rglage

Donnes de rglage Signification
SD42900 $SC_MIRROR_TOOL_LENGTH Fonction miroir applique aux composantes de
longueur d'outil et de cote de base.
SD42910 $SC_MIRROR_TOOL_WEAR Fonction miroir applique aux valeurs d'usure
pour les composantes de longueur d'outil.
SD42920 $SC_WEAR_SIGN_CUTPOS Exploitation du signe des composantes d'usure
en fonction de la position du tranchant.
SD42930 $SC_WEAR_SIGN Inverse le signe des cotes d'usure.
SD42935 $SC_WEAR_TRANSFORM Transformation des valeurs d'usure.
SD42940 $SC_TOOL_LENGTH_CONST Affectation des composantes de longueur d'outil
aux axes gomtriques.
SD42950 $SC_TOOL_LENGTH_TYPE Affectation des composantes de longueur d'outil
indpendamment du type d'outil-
SD42960 $SC_TOOL_TEMP_COMP Valeur de compensation de la temprature dans
la direction de l'outil. Est galement active pour
l'orientation de l'outil actuelle.
Bibliographie
Description fonctionnelle Fonctions de base, Correction d'outil (W1)
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 397
Autres informations
Prise d'effet des donnes de rglage modifies
En cas de modification des donnes de rglage dcrites, les composantes du correcteur
d'outil ne sont actualises que lors de la prochaine slection du tranchant d'outil. Dans le cas
o un outil est dj actif et o les donnes de correction modifies de cet outil doivent
prendre effet, il faut appeler nouveau cet outil.
Ceci est galement valable si la longueur rsultante de l'outil est modifie du fait de
l'application de la fonction miroir un axe. L'outil doit faire l'objet d'une nouvelle slection
aprs la fonction miroir afin que les composantes modifies de longueur d'outil prennent
effet.
Organes porte-outil orientables et nouvelles donnes de rglage
Les donnes de rglage SD42900 SD42940 n'ont pas d'effet sur les composantes d'un
organe porte-outil orientable ventuellement actif. En prsence d'un organe porte-outil
orientable, l'outil est toujours pris en considration avec sa longueur totale rsultante
(longueur d'outil + usure + cote de base). Lors du calcul de cette longueur totale rsultante,
la commande tient compte de toutes les modifications provoques par des donnes de
rglage c'est--dire les vecteurs d'un organe porte-outil orientable sont donc indpendants
du plan d'usinage.

Remarque
En cas de mise en oeuvre d'organes porte-outil orientables, il sera souvent prfrable de
dfinir tous les outils pour un systme de base non invers par fonction miroir, mme ceux
utiliss uniquement pour un usinage symtrique. Pour l'usinage avec des axes inverss,
l'organe porte-outil sera pivot de telle sorte que la position effective de l'outil soit dcrite
correctement. Toutes les composantes de longueur d'outil agissent alors automatiquement
dans le sens correct, de sorte que l'interprtation de certaines composantes par les donnes
de rglage en fonction de l'tat d'inversion d'axes est superflue.

Autres possibilits d'applications
L'utilisation de la fonctionnalit "organe porte-outil orientable" peut aussi s'avrer
intressante si la machine ne permet pas d'orienter physiquement des outils, mais dispose
d'outils ayant des orientations diverses et installs demeure. La cotation des outils peut
alors tre effectue uniformment avec une orientation de base, les cotes valables pour
l'usinage s'obtenant par rotation d'un organe porte-outil virtuel.
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
398 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.3.1 Application de la fonction miroir aux longueurs d'outil
Fonction
Avec des donnes de rglage SD42900 $SC_MIRROR_TOOL_LENGTH et
SD42910 $SC_MIRROR_TOOL_WEAR diffrentes de zro, il est possible d'appliquer la
fonction miroir aux composantes de longueur d'outil et de cote de base avec les valeurs
d'usure par rapport leurs axes respectifs.
Z
W
Z
M W
1 1
X
M
WKS 1
D13 avec SL3
X
WKS 2
D13 avec SL4
D13

SD42900 $SC_MIRROR_TOOL_LENGTH
Donne de rglage diffrente de zro :
Les composantes de longueur d'outil ($TC_DP3, $TC_DP4 et $TC_DP5) et les composantes
de cote de base ($TC_DP21, $TC_DP22 et $TC_DP23), dont les axes associs font l'objet
de la fonction miroir, sont aussi soumises la fonction miroir - par inversion de leur signe.
La fonction miroir n'est pas applique aux valeurs d'usure. Si cela doit tre le cas, vous
devez rgler de faon adquate la donne de rglage
SD42910 $SC_MIRROR_TOOL_WEAR.

SD42910 $SC_MIRROR_TOOL_WEAR
Donne de rglage diffrente de zro :
Les valeurs d'usure pour les composantes de longueur d'outil, dont les axes associs font
l'objet de la fonction miroir, sont aussi soumises la fonction miroir - par inversion de leur
signe.
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 399
7.3.2 Exploitation du signe de l'usure
Fonction
Avec les donnes de rglage SD42920 $SC_WEAR_SIGN_CUTPOS et
SD42930 $SC_WEAR_SIGN diffrentes de zro, il est possible d'inverser l'exploitation du
signe des composantes d'usure.
SD42920 $SC_WEAR_SIGN_CUTPOS
Donne de rglage diffrente de zro :
Dans le cas des outils position de tranchant dfinie (outils de tournage et de rectification
type d'outil 400), l'exploitation du signe des composantes d'usure dans le plan de travail
dpend de la position du tranchant. Dans le cas des outils sans position de tranchant dfinie,
cette donne de rglage n'est pas prise en considration.
Dans le tableau suivant, les cotes dont le signe est invers par le SD42920 (diffrent de 0)
sont repres par X :

Position de tranchant Longueur 1 Longueur 2
1
2 X
3 X X
4 X
5
6
7 X
8 X
9


Remarque
Les modifications de signe en fonction des SD42920 et SD42910 sont indpendantes. Si le
signe d'une cote est modifi par les deux donnes de rglage par exemple, il restera
inchang.

SD42930 $SC_WEAR_SIGN
Donne de rglage diffrente de zro :
Le signe de toutes les cotes d'usure est invers. Cette donne agit aussi bien sur la
longueur d'outil que sur les autres dimensions, par exemple le rayon de l'outil, le rayon
d'arrondi, etc.
S une cote d'usure positive est entre, l'outil devient "plus court" et "plus fin". A ce sujet, voir
chapitre "Correcteur d'outil : Interventions spciales, Prise d'effet des donnes de rglage
modifies".
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
400 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.3.3 Systme de coordonnes de l'usinage actif (TOWSTD, TOWMCS, TOWWCS,
TOWBCS, TOWTCS, TOWKCS)
Fonction
En fonction de la cinmatique de la machine ou de la prsence d'un organe porte-outil
orientable, les valeurs d'usure mesures dans l'un de ces systmes de coordonnes sont
transposes voire transformes dans un systme de coordonnes adapt.
Systmes de coordonnes de l'usinage actif
Des offsets de longueur d'outil peuvent rsulter des systmes de coordonnes suivants et
prendre en compte en compte les composantes d'usure de longueur d'outil avec le code G
correspondant du groupe 56 dans un outil actif.
Systme de coordonnes machine (SCM)
Systme de coordonnes de base (SCB)
Systme de coordonnes pice (SCP)
Systme de coordonnes de l'outil (SCO)
Systme de coordonnes de l'outil de transformation cinmatique (SCT)
Syntaxe
TOWSTD
TOWMCS
TOWWCS
TOWBCS
TOWTCS
TOWKCS
Signification

TOWSTD
Valeur de position de base pour corrections sur la longueur d'outil de la
valeur d'usure
TOWMCS
Corrections dans la longueur d'outil dans SCM
TOWWCS
Corrections dans la longueur d'outil dans SCP
TOWBCS
Corrections dans la longueur d'outil dans SCB
TOWTCS
Corrections de la longueur d'outil sur le point de rfrence de l'organe
porte-outil (organe porte-outil orientable)
TOWKCS
Corrections de la longueur d'outil de la tte d'outil (transformation
cintique)
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 401
Autres informations
Diffrences
Le tableau suivant reprsente les principales diffrences :

Code G Valeur d'usure Organe porte-outil orientable actif
TOWSTD
Valeur de position initiale, longueur
d'outil
Les valeurs d'usure sont assujetties
la rotation.
TOWMCS
Valeur d'usure dans SCM. TOWMCS
est identique TOWSTD lorsque
aucun organe porte-outil orientable
n'est actif.
Seul le vecteur de la longueur
d'outil rsultante tourne, sans prise
en compte de l'usure.
TOWWCS
La valeur d'usure est convertie du
SCP au SCM.
Le vecteur d'outil est calcul sans
prise en compte de l'usure comme
pour TOWMCS.
TOWBCS
La valeur d'usure est convertie dans
SCB au SCM.
Le vecteur d'outil est calcul sans
prise en compte de l'usure comme
pour TOWMCS.
TOWTCS
La valeur d'usure est convertie dans
le systme de coordonnes de l'outil
au SCM.
Le vecteur d'outil est calcul sans
prise en compte de l'usure comme
pour TOWMCS.
TOWWCS , TOWBCS, TOWTCS: Le vecteur d'usure est additionn au vecteur d'outil.
Transformation linaire
La longueur d'outil est uniquement judicieusement dfinissable dans SCM lorsque le SCM
est issu de SCB par une transformation linaire.
Transformation non linaire
Si par exemple une transformation non linaire est active avec TRANSMIT, alors le SCB est
automatiquement utilis lorsque le SCM est indiqu comme systme de coordonnes
souhait.
Pas de transformation cinmatique et pas d'organe porte-outil orientable
Lorsque ni une transformation cinmatique ni un organe porte-outil orientable n'est actif,
alors, mis part le SCP, les quatre autres systmes de coordonnes concident. Le SCP se
diffrencie alors de tous les autres. Du fait que seules les longueurs d'outil doivent tre
interprtes, les translations entre les systmes de coordonnes n'ont plus de signification.
Bibliographie :
Pour d'autres informations sur la correction d'outil, voir :
Description fonctionnelle Fonctions de base, Correction d'outil (W1)
Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
402 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Prise en compte des valeurs d'usure
La donne de rglage SD42935 $SC_WEAR_TRANSFORMdtermine quelle composante
d'usure parmi les trois composantes :
Usure
Corrections totales fines
Corrections totales grossires
d'une rotation doit tre assujettie par une transformation d'adaptateur ou par un organe
porte-outil orientable lorsque l'un des codes G suivants est actif :
TOWSTD Position d'initialisation
pour corrections sur la longueur d'outil
TOWMCS Valeurs d'usure
dans le systme de coordonnes machine (SCM)
TOWWCS Valeurs d'usure
dans le systme de coordonnes pice (SCP)
TOWBCS Valeurs d'usure (SCB)
dans le systme de coordonnes de base
TOWTCS Valeurs d'usure dans le systme de coordonnes d'outil sur le mandrin du porte-
outil (rfrence de l'organe porte-outil T)
TOWKCS Valeurs d'usure dans le systme de coordonnes de la tte d'outil avec
transformation cintique



Remarque
L'valuation de chaque composante d'usure (affectation aux axes gomtriques,
exploitation du signe) est influence par :
le plan actif,
la transformation d'adaptateur,
les donnes de rglage suivantes :
SD42910 $SC_MIRROW_TOOL_WEAR
SD42920 $SC_WEAR_SIGN_CUTPOS
SD42930 $SC_WEAR_SIGN
SD42940 $SC_TOOL_LENGTH_CONST
SD42950 $SC_TOOL_LENGTH_TYPE

Corrections d'outils
7.3 Correcteur d'outil : Interventions spciales
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 403
7.3.4 Longueurs d'outil et changement de plan
Fonction
Avec les donnes de rglage SD42940 $SC_TOOL_LENGTH_CONST diffrentes de zro, il
est possible d'affecter les composantes de longueur d'outil telles que la longueur, l'usure et
la cote de base aux axes gomtriques pour les outils de tournage et de rectification lors
d'un changement de plan.
SD42940 $SC_TOOL_LENGTH_CONST
Donne de rglage diffrente de zro :
L'affectation des composantes de longueur d'outil (longueur, usure et cote de base) aux
axes gomtriques n'est pas modifie en cas de changement de plan de travail (G17 G19).
Le tableau suivant indique l'affectation des composantes de longueur d'outil aux axes
gomtriques pour des outils de tournage et de rectification (types 400 599) :

Sommaire Longueur 1 Longueur 2 Longueur 3
17 Y X Z
*) X Z Y
19 Z Y X
-17 X Y Z
-18 Z X Y
-19 Y Z X
*)
Toute valeur diffrente de 0, qui n'est pas gale une des six valeurs mentionnes, est
interprte comme la valeur 18.
Le tableau suivant indique l'affectation des composantes de longueur d'outil aux axes
gomtriques pour tous les autres outils (types < 400 ou > 599) :

Plan de travail Longueur 1 Longueur 2 Longueur 3
*) Z Y X
18 Y X Z
19 X Z Y
-17 Z X Y
-18 Y Z X
-19 X Y Z
*)
Toute valeur diffrente de 0, qui n'est pas gale une des six valeurs mentionnes, est
interprte comme la valeur 17.


Remarque
Dans ces tableaux, on suppose que les axes gomtriques 1 3 sont dsigns par X, Y, Z.
Pour l'affectation d'une correction un axe, ce n'est pas le descripteur d'axe mais l'ordre des
axes qui est dterminant.

Corrections d'outils
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)
Notions complmentaires
404 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC,
FTOCON, FTOCOF)
Fonction
Lorsque la fonction "Correction d'outil en ligne" est active, une correction de longueur d'outil
de rectification rsultant de l'usinage peut tre prise en compte immdiatement.
Le dressage CD, dans lequel la meule est dresse paralllement l'usinage constitue un
exemple d'application :
Rle de dressage
Valeur de
dressage
Pice
Meule
Longueur
corriger

La correction de longueur d'outil peut tre modifie partir du canal d'usinage ou d'un canal
parallle (canal de dressage).
En fonction de l'instant souhait pour l'opration de dressage, on utilise diffrentes fonction
pour l'criture de la correction d'outil en ligne :
Ecriture en continu bloc par bloc (PUTFTOCF)
Avec PUTFTOCF, le processus de dressage s'effectue en mme temps que l'usinage.
La correction d'outil est modifie en continu dans le canal d'usinage suivant une fonction
polynmiale du premier, second ou troisime degr qui doit tre dfinie pralablement
avec FCTDEF.
PUTFTOCF agit toujours bloc par bloc, autrement dit dans le bloc de dplacement qui suit.
Ecriture en continu effet modal : ID=1 DO FTOC (voir "Correction d'outil en ligne (FTOC)
(Page 593)")
Ecriture discrte (PUTFTOC)
Avec PUTFTOC, le processus de dressage ne s'effectue pas en mme temps que l'usinage
partir d'un canal parallle. La valeur de correction indique par PUTFTOC est
immdiatement active dans le canal de destination.

Remarque
La correction d'outil en ligne s'applique uniquement aux outils de rectification.
Corrections d'outils
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 405
Syntaxe
Activation/dsactivation d'outil en ligne dans le canal de destination :

FTOCON
...
FTOCOF
Ecriture de la correction d'outil en ligne :
Continue, bloc par bloc :

FCTDEF(<fonction>,<LLimit>,<ULimit>,<a0>,<a1>,<a2>,<a3>)
PUTFTOCF(<fonction>,<valeur de rfrence>,<paramtre d'outil>,<canal>,<broche>)
...
Discrte :

PUTFTOC(<valeur de correction>,<paramtre d'outil>,<canal>,<broche>)
...
Signification

FTOCON : Activation de la correction d'outil en ligne
FTOCON doit tre programme dans un canal dans lequel la correction d'outil
doit tre active.
FTOCOF : Annulation de la correction d'outil en ligne
Avec FTOCOF, la correction n'est pas plus dgage cependant, dans les
donnes de correction spcifiques au tranchant, le montant complet crit
avec PUTFTOC/PUTFTOCF est corrig.
Nota :
pour la dsactivation dfinitive de la correction d'outil en ligne, FTOCOF doit
tre suivie d'une slection/dslection de l'outil (T...).
FCTDEF dfinit la fonction polynmiale pour PUTFTOCF.
Paramtre :
Numro de la fonction polynmiale <fonction> :
Type : INT
valeur limite infrieure <LLimit> :
Type : REAL
valeur limite suprieure <ULimit> :
Type : REAL
Coefficients de la fonction polynmiale
FCTDEF :
<a0> ... <a3> :
Type : REAL
Corrections d'outils
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)
Notions complmentaires
406 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Appel de la fonction "Ecriture continue modale de la correction d'outil en
ligne"
Paramtre :
Numro de la fonction polynmiale
Type : INT
<fonction> :
Nota :
doit correspondre avec l'indication dans FCTDEF.
Valeur de rfrence variable partir de laquelle
la correction doit tre dduite (p. ex. valeur relle
changeante).
<valeur de
rfrence> :
Type : VAR REAL
Numro du paramtre d'usure (longueur 1, 2 ou
3) dans lequel additionner la valeur de correction.
<paramtre d'outil> :
Type : INT
Numro du canal dans lequel la correction d'outil
en ligne doit tre active.
Type : INT
<canal> :
Nota :
une indication est uniquement requise lorsque la
correction ne doit pas tre effective dans le canal
actif.
Numro de la broche dans laquelle la correction
d'outil en ligne doit tre active.
Type : INT
PUTFTOCF :
<broche> :
Nota :
une indication est uniquement requise lorsqu'il
s'agit de corriger une meule non active la place
de l'outil actif mis en oeuvre.
Appel de la fonction "Ecriture discrte de la correction d'outil en ligne"
Paramtre :
Valeur de correction additionner au paramtre
d'usure.
<valeur de
correction> :
Type : REAL
<paramtre d'outil> : voir PUTFTOCF
Numro du canal dans lequel la correction d'outil
en ligne doit tre active.
<canal> :
Type : INT
PUTFTOC :
<broche> : voir PUTFTOCF
Corrections d'outils
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 407
Exemple
Rectifieuse plane avec :
Y : axe de pntration pour la meule
V : axe de pntration pour la molette de dressage
Canal d'usinage : canal 1 avec les axes X, Z, Y
Canal de dressage : canal 2 avec l'axe V
Aprs le dbut du dplacement de la meule, on souhaite obtenir une profondeur de passe
de dressage de la meule de 0,05 X100. La profondeur de passe de dressage doit entrer en
action avec "Ecriture continue de la correction d'outil en ligne".
Rle de dressage
Valeur de
dressage:
Pice
Meule
Longueur
corriger
X
Y
0.05
100

Programme d'usinage dans le canal 1 :

Code de programme Commentaire

N110 G1 G18 F10 G90 ; Position d'initialisation :
N120 T1 D1 ; Slection de l'outil courant.
N130 S100 M3 X100 ; Mise en marche de la broche, accostage de la
position initiale.
N140 INIT(2,"DRESSAGE","S") ; Slection du programme de dressage dans le
canal 2.
N150 START (2) ; Lancement du programme de dressage dans le
canal 2.
N160 X200 ; Accostage de la position de destination.
N170 FTOCON ; Activation de la correction en ligne.
N G1 X100 ; Suite de l'usinage.
N M30

Corrections d'outils
7.4 Correction d'outil en ligne (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)
Notions complmentaires
408 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Programme de dressage dans le canal 2 :

Code de programme Commentaire

N40 FCTDEF(1,1000,1000,$AA_IW[V],1) ; Dfinition de la fonction : droite
avec pente=1.
N50 PUTFTOCF(1,$AA_IW[V],3,1) ; Ecriture continue de la correction
d'outil en ligne : la longueur 3 de
la meule courante est corrige dans
le canal 1 en fonction du
dplacement de l'axe V.
N60 V0.05 G1 F0.01 G91 ; Mouvement de pntration pour
dressage, PUTFTOCF agit uniquement
dans ce bloc.

N M30
Informations complmentaires
Gnralits sur la correction d'outil en ligne
Dans le cas de l'criture en continu ( la priode d'appel de l'interpolateur), aprs l'activation
de la fonction de traitement, chaque modification est additionne dans la mmoire des
usures (pour viter des sauts de valeurs de consigne).
Dans tous les cas : La correction d'outil en ligne peut agir dans chaque canal, pour chaque
broche, pour la longueur 1, 2 ou 3 des paramtres d'usure.
L'affectation des longueurs aux axes gomtriques s'effectue l'aide du plan de travail
courant.
L'affectation des broches l'outil s'effectue l'aide des donnes d'outil pour GWPSON ou TMON,
condition qu'il ne s'agisse pas de la meule courante.
La correction agit toujours sur le paramtre d'usure pour le ct courant de la meule ou le
ct gauche quand les outils ne sont pas actifs.

Remarque
Si la correction est identique pour plusieurs cts de la meule, on applique une rgle de
concatnation pour que les valeurs soient reprises automatiquement pour le ct suivant de
la meule.
Si des corrections en ligne sont prescrites pour un canal d'usinage, les valeurs d'usure pour
l'outil courant dans ce canal ne doivent pas tre modifies partir du programme d'usinage
ou au tableau de commande.
La correction d'outil en ligne est galement prise en compte pour la vitesse priphrique
constante de meule (VPM), ainsi que pour la surveillance d'outil (TMON).

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 409
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
7.5.1 Activation des corrections d'outil 3D (CUT3DC, CUT3DF, CUT3DFS,
CUT3DFF, ISD)
Fonction
L'orientation variable de l'outil est prise en compte dans la correction du rayon des outils
cylindriques.
Les instructions pour la slection de la correction de rayon d'outil 3D sont les mmes que
pour la correction de rayon d'outil 2D. La correction gauche/droite dans le sens de
dplacement est indique avec G41/G42. L'accostage se fait toujours suivant NORM. La
correction de rayon d'outil 3D agit uniquement si la transformation 5 axes est active.
La correction de rayon d'outil 3D est galement appele correction 5D, vu que, dans ce cas,
on dispose de cinq degrs de libert pour la position de l'outil dans l'espace.
Contour de
pice
Trajectoire du centre de
l'outil gale distance du
contour (quidistante)
R
L lSD

Diffrence entre corrections de rayon d'outil 2D 1/2 et 3D
Dans le cas de la correction de rayon d'outil 3D, l'orientation de l'outil est variable. Dans le
cas de la correction de rayon d'outil 2D 1/2, on considre que l'outil a une orientation
constante.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
410 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
CUT3DC
CUT3DFS
CUT3DFF
CUT3DF
ISD=<valeur>
Signification

CUT3DC
Activation de la correction de rayon 3D pour le fraisage
priphrique
CUT3DFS
Correction d'outil 3D pour le fraisage en bout avec
orientation d'outil constante. L'orientation de l'outil est
dfinie par G17 - G19 et n'est pas influence par les
frames.
CUT3DFF
Correction d'outil 3D pour le fraisage en bout avec
orientation d'outil constante. L'orientation de l'outil est
dfinie par G17 - G19 et, le cas chant, par la composante
rotationnelle d'un frame.
CUT3DF
Correction d'outil 3D pour le fraisage en bout avec
modification de l'orientation d'outil (uniquement si la
transformation 5 axes est active).
G40 X... Y... Z...
Pour la dsactivation : bloc linaire G0/G1 avec axes
gomtriques
ISD
Profondeur de pntration


Remarque
Les instructions sont effet modal et figurent dans le mme groupe que CUT2D et CUT2DF. La
dsactivation n'a lieu que lors du prochain dplacement dans le plan courant. Ceci est
toujours valable pour G40 et est indpendant de l'instruction CUT.
Des blocs intermdiaires sont permis lorsque la correction du rayon d'outil 3D est active. Les
caractristiques de la correction de rayon d'outil 2D 1/2 sont applicables.

Conditions marginales
G450/G451 et DISC
Un bloc interpolation circulaire est toujours insr aux angles saillants. G450/G451 sont
sans signification.
L'instruction DISC n'est pas prise en compte.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 411
Exemple

Code de programme Commentaire
N10 A0 B0 X0 Y0 Z0 F5000
N20 T1 D1 ; Appel de l'outil, appel des valeurs de correction
d'outil.
N30 TRAORI(1) ; Activation de la transformation
N40 CUT3DC ; Activation de la correction du rayon d'outil 3D
N50 G42 X10 Y10 ; Activation de la correction du rayon d'outil
N60 X60
N70
7.5.2 Correction d'outil 3D : fraisage priphrique, fraisage en bout
Fraisage priphrique
La variante de fraisage priphrique utilise ici est ralise par spcification d'un contour
(ligne directrice) et de l'orientation correspondante. Dans ce type d'usinage, la forme de
l'outil n'a aucune importance pour la trajectoire. Seul le rayon est dterminant au point
d'attaque de l'outil.
X
Y
Z
B
A
Fraisage priphrique


Remarque
La fonction de correction de rayon d'outil 3D est limite aux outils cylindriques.

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
412 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Fraisage en bout
Pour ce type de fraisage 3D, vous avez besoin de la description des diffrentes trajectoires
3D qui balayent la surface de la pice, ligne aprs ligne. Les calculs sont gnralement
raliss l'aide d'un systme de FAO, en tenant compte de la forme et des dimensions de
l'outil. Dans le programme pice, le postprocesseur crit non seulement les blocs CN, mais
galement les orientations d'outil (lorsque la transformation 5 axes est active) et le code G
de la correction d'outil 3D souhaite. Ainsi l'oprateur de la machine a la possibilit d'utiliser
des outils lgrement plus petits par rapport l'outil utilis pour le calcul des trajectoires CN.

Exemple :
Calcul des blocs CN avec une fraise de 10 mm. L'usinage serait galement possible avec un
diamtre de fraise de 9,9 mm, le profil des asprits pouvant cependant varier dans ce cas.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 413
7.5.3 Correction d'outil 3D : formes et donnes d'outil pour le fraisage en bout
Forme des fraises, donnes d'outil
Les diffrentes formes d'outil utilisables pour le fraisage en bout et les valeurs limites des
donnes d'outil sont rsumes ci-aprs. La forme de la tige d'outil n'est pas prise en compte.
L'effet des types d'outils 120 et 156 est identique.
Fraise matrices
cylindrique
(type 110)
Fraise
bout rond
(type 111)
Fraise
cylindrique
(type 120, 130)
Fraise queue
avec arrondi
(type 121, 131)
Fraise conique type
cne direct
(type 155)
Fraise conique inverse
avec arrondi
(type 156)
Fraise conique
matrices
(type 157)
a
R
r
a
R
a
R
r
R R
r
R R

Si un numro de type d'outil qui ne figure pas sur la figure est indiqu dans le programme
CN, la commande utilise automatiquement le type d'outil 110 (fraise bout hmisphrique).
Une alarme est mise si les valeurs limites des donnes d'outil ne sont pas respectes.

Type de fraise N de type R r a
Fraise matrice cylindrique 110 > 0 - -
Fraise bout rond 111 > 0 >R -
Fraise cylindrique deux tailles queue,
fraise pour tte renvoi d'angle
120, 130 > 0 - -
Fraise cylindrique deux tailles queue,
fraise pour tte renvoi d'angle avec
arrondi
121, 131 >r > 0 -
Fraise conique type cne direct 155 > 0 - > 0
Fraise conique type cne direct avec
arrondi
156 > 0 > 0 > 0
Fraise conique matrices 157 > 0 - > 0

R = rayon de tige (rayon d'outil)
r = rayon d'arrondi
a = angle entre l'axe longitudinal de l'outil { et l'extrmit suprieure de la surface du tore
- = n'est pas analys

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
414 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0

Donnes d'outil Paramtres d'outil
Cotes de l'outil Gomtrie Usure
R $TC_DP6 $TC_DP15
r $TC_DP7 $TC_DP16
a $TC_DP11 $TC_DP20

Correction de longueur d'outil
La correction de longueur se rfre la pointe de l'outil (point d'intersection axe
longitudinal/surface frontale).
Correction d'outil 3D, changement d'outil
Un nouvel outil de dimensions modifies (R, r, a) ou de forme diffrente ne peut tre indiqu
qu'avec la programmation de G41 ou G42 (passage de G40 G41 ou G42, reprogrammation
de G41 ou G42). Aucune autre donne d'outil (par exemple la longueur) n'est concerne par
cette rgle, ce qui signifie que ces outils peuvent tre mis en place mme sans
reprogrammation de G41 ou G42.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 415
7.5.4 Correction d'outil 3D : Correction sur la trajectoire, courbure de la trajectoire,
profondeur de pntration (CUT3DC, ISD)
Fonction
Correction sur la trajectoire
Dans le cas du fraisage en bout, il faut considrer le cas o le point de contact change
brusquement au niveau de la surface de l'outil, comme dans le cas de l'usinage d'une
surface convexe avec un outil vertical (exemple ci-contre). L'exemple reprsent sur la figure
ci-contre peut tre considr comme un cas limite.
Point singulier

Ce cas limite est surveill par la commande qui dtecte immdiatement toute modification
brutale du point de contact en s'appuyant sur les angles forms par l'outil et les vecteurs
normaux la surface. A ces emplacements, la commande insre des blocs interpolation
linaire, de sorte que le dplacement peut tre effectu.
Pour le calcul de ces blocs interpolation linaire, des plages angulaires admissibles pour
l'angle latral figurent dans des paramtres machine. Une alarme est mise si les plages
angulaires admissibles figurant dans des paramtres machines sont dpasses.
Courbure de la trajectoire
La courbure de la trajectoire ne fait pas l'objet d'une surveillance. C'est pourquoi il est
galement recommand de n'utiliser que des outils avec lesquels un usinage sans violation
du contour est garanti.
Profondeur de pntration (ISD)
La profondeur de pntration ISD est prise en compte uniquement si la correction de rayon
d'outil 3D est active.
Avec l'instruction ISD (Insertion Depth), vous programmez la profondeur de pntration de
l'outil lors du fraisage priphrique. Cela permet de modifier la position du point d'usinage
sur la surface latrale de l'outil.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
416 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
Correction d'outil 3D pour fraisage priphrique
CUT3DC
ISD=<valeur>
Signification

CUT3DC
Activer la correction d'outil 3D pour fraisage priphrique, par exemple le
fraisage de poche avec faces latrales obliques.
ISD
L'instruction ISD indique la distance (<valeur>) entre la pointe de la fraise
(FS) et le point auxiliaire de la fraise (FH).
Point auxiliaire de la fraise
Le point auxiliaire de la fraise (FH) est obtenu par projection du point d'usinage programm
sur l'axe de l'outil.
FS
FH
l
S
D

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 417
Autres informations
Fraisage de poche avec faces latrales obliques pour fraisage priphrique avec CUT3DC
Dans le cas de cette correction de rayon d'outil 3D, un cart du rayon de fraise est
compens par un dplacement perpendiculaire la surface usiner. Le plan dans lequel se
trouve la surface d'attaque de la fraise reste inchang lorsque la profondeur de pntration
ISD reste inchange. Une fraise dote par exemple d'un rayon plus petit par rapport un
outil standard n'atteindrait pas le fond de la poche, qui reprsente galement la surface de
dlimitation. Pour permettre un dplacement perpendiculaire automatique de l'outil, la
commande doit connatre cette surface de dlimitation (voir chapitre "Fraisage priphrique
3D avec surfaces de dlimitation").
Pour d'autres informations sur la surveillance anticollision, voir :
Bibliographie :
Manuel de programmation Notions de base, chapitre "Corrections d'outil".
7.5.5 Correction d'outil 3D : angles rentrants/angles saillants et mthode du point
d'intersection (G450/G451)
Fonction
Angles rentrants/angles saillants
Les angles saillants et les angles rentrants sont traits sparment. L'appellation angle
rentrant ou angle saillant dpend de l'orientation de l'outil.
En cas de changement d'orientation un angle, il peut arriver que le type d'angle change
pendant l'usinage. Dans ce cas, l'usinage est arrt et un message d'erreur est mis.
Sens d'usinage

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
418 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Syntaxe
G450
G451
Signification

G450
Arc de raccordement (l'outil contourne les angles de la pice sur une
trajectoire circulaire)
G451
Point d'intersection des quidistantes (l'outil s'arrte aux angles de la pice)
Autres informations
Mthode du point d'intersection pour la correction 3D
Dans le cas du fraisage priphrique 3D, les codes G G450/G451 sont maintenant traits aux
angles saillants, c.--d. que le point d'intersection des trajectoires dcales peut tre
accost. Jusqu' la version 4 du logiciel, un cercle tait toujours insr aux angles saillants.
La mthode du point d'intersection disponible est particulirement intressante pour des
programmes 3D gnrs par des systmes de CAO. En effet, ces programmes sont souvent
constitus de blocs linaires courts (approximation de courbes lisses), les transitions entre
blocs voisins tant pratiquement tangentielles.
En cas d'activation de la correction de rayon d'outil, des cercles taient jusqu' prsent
insrs pour contourner les angles saillants. Comme ces blocs deviennent trs courts si les
transitions sont pratiquement tangentielles, des baisses de vitesse indsirables se
produisent.
Dans ces cas, les deux parties de trajectoires adjacentes sont prolonges de faon
analogue la correction de rayon 2D , et le point d'intersection des parties de trajectoires
prolonges est accost.
Le point d'intersection est dtermin en prolongeant les trajectoires dcales des deux blocs
concerns dans le plan perpendiculaire la direction de l'outil au niveau de l'angle. S'il
n'existe pas de point d'intersection, l'angle est trait comme prcdemment, c.--d. qu'un
cercle est insr.
Pour d'autres informations sur la mthode du point d'intersection, voir :
Bibliographie :
Description fonctionnelle Fonctions de base, Correction de rayon d'outil 3D (W5)
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 419
7.5.6 Correction d'outil 3D : fraisage priphrique 3D avec surfaces de dlimitation
Adaptation du fraisage priphrique 3D aux particularits des programmes CAO
Les programmes CN gnrs par les systmes CAO approchent gnralement la trajectoire
du centre d'un outil standard par une multitude de blocs linaires courts. Pour que les blocs
ainsi gnrs pour de nombreux contours de pice reproduisent le plus exactement possible
le contour original, il est ncessaire de procder certaines adaptations dans le programme
pice.
D'importantes informations qui seraient ncessaires pour une correction optimale, mais qui
ne sont plus disponibles dans le programme pice, doivent tre remplaces par des
mesures adquates. Les mthodes typiques utilises pour la compensation des transitions
critiques, soit directement dans le programme pice ou lors de la dtermination du contour
rel (par exemple par dplacement de l'outil), sont prsentes ci-aprs.
Applications
En plus des applications typiques dans lesquelles un outil rel dcrit la trajectoire du centre
au lieu de l'outil standard, les outils cylindriques avec une correction d'outil 3D sont
galement prsents. Dans ce cas, la trajectoire programme se rapporte au contour de la
surface d'usinage. La surface de dlimitation correspondante dpend de l'outil. Comme pour
la correction de rayon d'outil conventionnelle, on tient compte du rayon total pour le calcul du
dcalage vertical par rapport la surface de dlimitation.
7.5.7 Correction d'outil 3D : prise en compte d'une surface de dlimitation
(CUT3DCC, CUT3DCCD)
Fonction
fraisage priphrique 3D avec outils rels
Dans le cas du fraisage priphrique 3D avec modification continue ou constante de
l'orientation de l'outil, la trajectoire du centre de l'outil est souvent programme pour un outil
standard dfini. Compte tenu que dans bien des cas rels, on ne dispose pas des outils
standard adquats, on peut utiliser un outil ne diffrant pas trop sensiblement d'un outil
standard.
Avec CUT3DCCD, une surface de dlimitation, qui dcrirait l'outil standard programm, est prise
en compte pour un outil diffrentiel rel. Le programme CN dcrit la trajectoire du centre d'un
outil standard.
Avec CUT3DCC, une surface de dlimitation, qui aurait atteint l'outil standard programm, est
prise en compte dans le cas de l'utilisation d'outils cylindriques. Le programme CN dcrit le
contour de la surface d'usinage.
Syntaxe
CUT3DCCD
CUT3DCC
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
420 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

CUT3DCCD
Activation de la correction d'outil 3D pour fraisage priphrique avec
outil diffrentiel sur la trajectoire du centre de l'outil : dplacement
perpendiculaire jusqu' la surface de dlimitation.
CUT3DCC
Activation de la correction d'outil 3D pour fraisage priphrique avec
surfaces de dlimitation et correction de rayon 3D : contour de la surface
d'usinage


Remarque
Correction de rayon d'outil avec G41, G42
Pour la correction de rayon d'outil avec G41, G42 dans le cas o CUT3DCCD ou CUT3DCC sont
actifs, l'option "Transformation d'orientation" doit tre active.

Outils standard avec arrondi
L'arrondi de l'outil standard est dfini par le paramtre d'outil $TC_DP7. L'cart de l'arrondi de
l'outil rel par rapport l'outil standard est dfini par le paramtre d'outil $TC_DP16.
Exemple
Dimensions d'outil pour une fraise convexe demi-cercle avec un rayon plus petit par rapport
l'outil standard.

Type d'outil R = rayon de tige r = rayon de cong

Outil standard avec arrondi R = $TC_DP6 r = $TC_DP7

Outil rel avec arrondi :
types d'outil 121 et 131 fraises convexes
demi-cercle (fraise cylindrique)
R' = $TC_DP6 + $TC_DP15 + OFFN r' = $TC_DP7 + $TC_DP16
Dans cet exemple, $TC_DP15 + OFFN ainsi que $TC_DP16 sont ngatifs.
le type d'outil ($TC_DP1) est exploit.

Sont uniquement autoriss les types de
fraise avec un corps cylindrique (fraise
cylindrique) ainsi que des fraises convexes
demi-cercle (types 121 et 131) et, dans un
cas limite, la fraise bout hmisphrique
(type 110).
Pour ces types de fraise autoriss, le rayon de cong r est gal au rayon
de tige R. Tous les autres types d'outil autoriss sont interprts comme
tant des fraises cylindriques et la cote ventuellement indique pour
l'arrondi n'est pas prise en compte.

Sont autoriss tous les types d'outil portant
les numros 1 399 l'exception des
numros 111 et 155 157.

Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 421
Autres informations
Trajectoire du centre de l'outil avec dplacement jusqu' la surface de dlimitation
CUT3DCCD
En cas d'utilisation d'un outil avec un rayon plus petit que celui de l'outil standard
correspondant, une fraise pntrant dans le sens longitudinal avance jusqu' ce qu'elle
touche de nouveau le fond de la poche. Ainsi l'angle form par la surface d'usinage et la
surface de dlimitation est vid autant que l'outil le permet. Il s'agit d'un mode d'usinage
mixte par fraisage priphrique et par fraisage en bout. De manire analogue l'outil avec
un rayon rduit, le dplacement s'effectue dans la direction inverse dans le cas d'un outil
avec un rayon plus grand.
Surface de dlimitation
Outil rayon plus petit
dplac jusqu' la surface
de dlimitation
Outil standard
f
a
c
e

d
'
u
s
i
n
a
g
e

Par rapport toutes les autres corrections d'outil du groupe de codes G 22, un paramtre
d'outil $TC_DP6 spcifi pour CUT3DCCD est sans signification pour le rayon d'outil et n'influence
pas la correction rsultante.
Le dcalage de la correction rsulte de la somme des valeurs suivantes :
Valeur d'usure du rayon d'outil (paramtre d'outil $TC_DP15)
Dcalage d'outil OFFN programm pour le calcul du dcalage perpendiculaire la surface
de dlimitation.
Le programme pice gnr ne permet pas de savoir si la surface usine se situe gauche
ou droite de la trajectoire. On part donc d'un rayon positif et d'une valeur d'usure ngative
de l'outil original. Une valeur d'usure ngative dcrit toujours un outil de diamtre rduit.
Utilisation d'outils cylindriques
En cas d'utilisation d'outils cylindriques, un dplacement est uniquement ncessaire si la
surface d'usinage et la surface de dlimitation forment un angle aigu (moins de 90 degrs).
L'utilisation de fraises convexes demi-cercle exige un dplacement de l'outil dans le sens
longitudinal aussi bien en prsence d'un angle aigu que d'un angle obtus.
Corrections d'outils
7.5 Activation des corrections d'outil 3D (CUT3DC..., CUT3DF...)
Notions complmentaires
422 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Correction de rayon 3D avec CUT3DCC, contour de la surface d'usinage
Si CUT3DCC est actif avec une fraise convexe demi-cercle, la trajectoire programme se
rapporte une fraise cylindrique fictive de diamtre identique. La rfrence de trajectoire qui
en rsulte est reprsente sur la figure suivante pour l'utilisation d'une fraise convexe demi-
cercle.
Rfrence de trajectoire
Surface de dlimitation
F
a
c
e

d
'
u
s
i
n
a
g
e
R

L'angle form par la surface d'usinage et la surface de dlimitation peut galement passer
d'un angle aigu un angle obtus, et vice versa, l'intrieur d'un bloc.
L'outil utilis rellement peut tre aussi bien plus grand que plus petit que l'outil standard.
Cependant le rayon d'arrondi rsultant ne doit pas devenir ngatif et le signe du rayon d'outil
rsultant doit rester inchang.
Avec CUT3DCC, le programme pice CN se rapporte au contour de la surface d'usinage.
Comme pour la correction de rayon d'outil conventionnelle, on tient compte du rayon total qui
correspond la somme des valeurs suivantes :
Rayon d'outil (paramtre d'outil $TC_DP6)
Valeur d'usure (paramtre d'outil $TC_DP15)
Dcalage d'outil OFFN programm pour le calcul du dcalage perpendiculaire la surface
de dlimitation.
La position de la surface de dlimitation est dtermine par la diffrence des deux valeurs
suivantes :
Dimensions de l'outil standard
Rayon d'outil (paramtre d'outil $TC_DP6)
Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 423
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE,
ORIS, OSD, OST)
Fonction
On entend par orientation de l'outil l'orientation gomtrique de l'outil dans l'espace. Sur une
machine-outil cinq axes, l'orientation de l'outil peut tre spcifie par des instructions du
programme.
Vecteur de
direction
X
Y
Z

Des dplacements d'arrondissement de l'orientation activs par OSD et OST sont forms
diffremment selon le type d'interpolation pour l'orientation d'outil.
En cas d'interpolation vectorielle active, le trac liss de l'orientation est galement interpol
par l'interpolation vectorielle. Par contre, en cas d'interpolation d'axe rotatif active,
l'orientation est directement lisse par des dplacements d'axe rotatif.
Programmation
Programmation du changement d'orientation :
On peut programmer un changement d'orientation de l'outil par :
programmation directe des axes rotatifs A, B, C (interpolation d'axe rotatif)
Angles d'Euler ou RPY
Vecteur de direction (interpolation vectorielle par indication de A3 ou de B3 ou de C3)
LEAD/TILT (fraisage en bout)
Le systme de coordonnes de rfrence est soit le { systme de coordonnes machine
(ORIMKS), soit le systme de coordonnes pice courant (ORIWKS ).
Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
424 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Modification
de l'orientation


Programmation de l'orientation de l'outil :

Instruction Signification
ORIC : orientation et dplacement le long de la trajectoire en parallle
ORID : orientation et dplacement le long de la trajectoire successifs
OSOF : aucun lissage de l'orientation
OSC : orientation constante
OSS : lissage de l'orientation seulement en dbut du bloc
OSSE : lissage de l'orientation en dbut et en fin de bloc
ORIS : Vitesse, en degrs par mm, du changement d'orientation lors de l'activation
du lissage de l'orientation (s'applique OSS et OSSE)
OSD : Arrondissement de l'orientation par prescription de la longueur
d'arrondissement avec la donne de rglage :
SD42674 $SC_ORI_SMOOTH_DIST
OST : Arrondissement de l'orientation par prescription de la tolrance d'angle en
degrs en cas d'interpolation vectorielle avec la donne de rglage :
SD42676 $SC_ORI_SMOOTH_TOL
En cas d'interpolation d'axe rotatif, la tolrance prescrite est prise comme
tant l'cart maximal des axes d'orientation.


Remarque
Toutes les instructions ralisant un arrondissement de l'orientation de l'outil (OSOF, OSC, OSS,
OSSE, OSD et OST) sont regroupes dans le groupe de fonctions G34. Elles sont effet modal,
autrement dit, une seule de ces instructions peut tre excute la fois.

Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 425
Exemples
Exemple 1 : ORIC
Si, entre les blocs de dplacement N10 et N20, deux ou plusieurs blocs sont programms
avec des changements d'orientation (p. ex. A2=... B2=... C2=...) et si ORIC est actif, le bloc
interpolation circulaire insr est rparti sur ces deux blocs intermdiaires conformment
la valeur des changements d'angle.
N20
N14
N12
N10


Code de programme Commentaire
ORIC
N8 A2= B2= C2=
N10 X Y Z
N12 C2= B2=
N14 C2= B2=
; Le bloc interpolation circulaire qui est insr
l'angle saillant est rparti sur N12 et N14 en
fonction du changement d'orientation. Le mouvement
circulaire et le changement d'orientation sont
excuts en parallle.
N20 X =Y= Z= G1 F200

Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
426 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemple 2 : ORID
Si ORID est active, tous les blocs situs entre les deux blocs de dplacement sont excuts
la fin du premier bloc de dplacement. Le bloc interpolation circulaire avec orientation
constante est excut directement avant le deuxime bloc de dplacement.
Excuter N12 et N14
N20
N10


Code de programme Commentaire
ORID
N8 A2= B2= C2=
N10 X Y Z
N12 A2= B2= C2= ; Le bloc N12 et N14 est excut la fin de N10. Puis le
bloc interpolation circulaire se retire avec
l'orientation courante.
N14 M20 ; Fonctions auxiliaires, etc.
N20 X Y Z


Remarque
L'instruction de programme qui est active dans le premier bloc de dplacement d'un angle
saillant est dterminante pour le type de changement d'orientation cet angle saillant.
Sans changement d'orientation : Si l'orientation n'est pas modifie la fin du bloc, la section
de l'outil est un cercle en contact avec les deux contours.


Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 427
Exemple 3 : Changement d'orientation un angle rentrant
N15
N12
N10
WRK


Code de programme
ORIC
N10 X Y Z G1 F500
N12 X Y Z A2= B2= C2=
N15 X Y Z A2= B2= C2=
Informations complmentaires
Comportement aux angles saillants
Un bloc interpolation circulaire avec un rayon gal celui de la fraise est toujours insr
aux angles saillants.
Les instructions de programme ORIC et ORID permettent de dfinir si les changements
d'orientation qui ont t programms entre le bloc N1 et le bloc N2 seront effectus avant le
dbut du bloc interpolation circulaire insr ou en mme temps que celui-ci.
Corrections d'outils
7.6 Orientation de l'outil (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)
Notions complmentaires
428 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Un bloc interpolation circulaire est
insr entre le bloc N1 et le bloc N2
N2
R
N1

Si un changement d'orientation est ncessaire aux angles saillants, celui-ci peut s'effectuer
paralllement l'interpolation ou bien sparment, en mme temps que le dplacement le
long de la trajectoire.
Avec ORID, les blocs insrs sont excuts d'abord sans dplacement le long de la
trajectoire. Le bloc de raccordement par interpolation circulaire est insr directement avant
le second des deux blocs de dplacement qui forment l'angle.
Si plusieurs blocs d'orientation sont insrs un angle saillant et si ORIC est actif, le
mouvement circulaire est rparti sur les diffrents blocs insrs, conformment aux valeurs
des changements d'orientation de ces blocs.
Arrondissement de l'orientation avec OSD ou OST
Lors de l'arrondissement avec G642, l'cart maximal pour les axes de contour et les axes
d'orientation ne peut pas varier beaucoup. La tolrance, la plus petite des deux, dtermine la
forme du dplacement d'arrondissement et de la tolrance d'angle et permet de lisser assez
fortement le trac de l'orientation sans carts de contour importants.
L'activation de OSD ou OST permet, avec une longueur d'arrondissement ou une tolrance
d'angle prescrites, de lisser "gnreusement" de trs faibles carts du trac de l'orientation
sans carts de contour importants.

Remarque
A la diffrence de l'arrondissement du contour (et du trac de l'orientation) avec G642, aucun
bloc spar n'est form lors de l'arrondissement de l'orientation avec OSD ou OST, mais le
dplacement d'arrondissement est directement introduit dans les blocs d'origine
programms.
Avec OSD ou OST, aucune transition entre blocs ne peut tre arrondie pour lesquels un
changement du type d'interpolation pour l'orientation de l'outil (vecteur axe rotatif, axe
rotatif vecteur) a lieu. Ces transitions entre blocs peuvent ventuellement tre arrondies
avec les fonctions d'arrondissement conventionnelles G641, G642 ou G643.

Corrections d'outils
7.7 Numros D libres, numro de tranchant
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 429
7.7 Numros D libres, numro de tranchant
7.7.1 Numros D libres, numro de tranchant (adresse CE)
Numro D
Les numros D peuvent tre utiliss en tant que numros de correcteur. En outre, CE
permet l'adressage du numro de tranchant. L'criture du numro de tranchant est possible
l'aide de la variable systme $TC_DPCE.
Prrglage : n correction == n tranchant
Le nombre maximal de numros D (numros de tranchant) et le nombre maximal de
tranchants par outil sont dfinis dans les paramtres machine ( constructeur de la
machine-outil). Les instructions suivantes sont recommandes uniquement lorsque le
nombre maximal de numros de tranchant (paramtre machine MD18105) est plus grand
que le nombre de tranchants par outil (MD18106). Veuillez observer les indications du
constructeur de machines.

Remarque
Outre les numros D relatifs, vous pouvez galement attribuer des numros D "absolus" (1-
32000) sans rfrence un numro T (avec la fonction "structure horizontale des numros
D").

Bibliographie
Description fonctionnelle Fonctions de base, Correction d'outil (W1)
Corrections d'outils
7.7 Numros D libres, numro de tranchant
Notions complmentaires
430 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.7.2 Libre affectation des numros D : contrle des numros D (CHKDNO)
Fonction
L'instruction CKKDNO permet un contrle d'univocit de l'attribution des numros D. Les
numros D de tous les outils dfinis dans une unit TO ne peuvent tre attribus qu'une fois.
La vrification ne porte pas sur les outils de rechange.
Syntaxe
state=CHKDNO(Tno1,Tno2,Dno)
Signification

state
= TRUE : Les numros D ont t attribus de faon
univoque dans le domaine contrl.
= FALSE : Une collision entre des numros D a t
constate ou le paramtrage est incorrect.
Tno1, Tno2 et Dno sont les paramtres ayant
conduit la collision. Ces donnes peuvent
tre exploites dans le programme pice.
CHKDNO (Tno1,Tno2)
Tous les numros D des outils indiqus sont compars.
CHKDNO(Tno1)
Tous les numros D de l'outil Tno1 sont compars tous les
numros D des autres outils.
CHKDNO
Tous les numros D de tous les outils sont compars tous
les numros D de tous les autres outils.
Corrections d'outils
7.7 Numros D libres, numro de tranchant
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 431
7.7.3 Libre affectation des numros D : modification des numros D (GETDNO,
SETDNO)
Fonction
L'attribution des numros D doit tre univoque. Deux tranchants distincts d'un outil ne
peuvent pas possder le mme numro D.
GETDNO
Cette instruction fournit le numro D d'un certain tranchant (ce) d'un outil avec le numro T t.
S'il n'existe pas de numro D correspondant aux paramtres indiqus, la valeur d=0 est
attribue. Si le numro D n'est pas valable, d contient une valeur suprieure 32000.
SETDNO
Avec cette instruction, vous attribuez la valeur d au numro D du tranchant ce de l'outil t. Le
paramtre state fournit le rsultat de l'instruction (TRUE ou FALSE). S'il n'existe pas
d'enregistrement correspondant aux paramtres indiqus, le rsultat de l'instruction est
FALSE. Les erreurs de syntaxe gnrent une alarme. La valeur 0 ne peut pas tre attribue
explicitement un numro D.
Syntaxe
d = GETDNO (t,ce)
state = SETDNO (t,ce,d)
Signification

d
Numro D du tranchant de l'outil
t
Numro T de l'outil
ce
Numro du tranchant (numro CE) de l'outil
state
Indique si l'instruction a pu tre excute sans erreur (TRUE ou FALSE).
Exemple de changement de nom d'un numro D

Programmation Commentaire
$TC_DP2[1,2] = 120 ;
$TC_DP3[1,2] = 5.5 ;
$TC_DPCE[1,2] = 3 ; Numro de tranchant CE
... ;
N10 def int NDAncien, NDNouveau = 17 ;
N20 NDAncien = GETDNO(1,3) ;
N30 SETDNO(1,3,NDNouveau) ;

Le nouveau correcteur D17 est affect au tranchant CE=3. L'accs aux donnes de ce
tranchant a dornavant lieu avec le numro D17 ; ceci concerne les paramtres systme
aussi bien que la programmation avec l'adresse CN.
Corrections d'outils
7.7 Numros D libres, numro de tranchant
Notions complmentaires
432 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.7.4 Libre affectation des numros D : dtermination du numro T correspondant au
numro D prescrit (GETACTTD)
Fonction
Avec l'instruction GETACTTD, vous dterminez le numro T correspondant un numro D
absolu. Il n'y a pas de contrle d'univocit. En prsence de plusieurs numros D identiques
dans une unit TO, l'instruction fournit le numro T du premier outil trouv. En cas
d'utilisation de la "structure horizontale des numros D", l'instruction ne prsente pas
d'intrt, car son rsultat est toujours "1" (pas de numro T dans la gestion des donnes).
Syntaxe
Etat=GETACTTD(Tnr,Dnr)
Signification

nD
Numro D pour lequel le numro T doit tre recherch.
Tnr
Numro T trouv
Valeur : Signification :
0 Le numro T a t trouv. Le paramtre n T contient sa valeur.
-1 Il n'existe pas de numro T pour le numro D indiqu ; n T=0.
-2 Le numro D n'est pas univoque. Le paramtre n T contient la
valeur du premier outil trouv comportant le numro D dont la
valeur est n D.
tat
-5 La fonction n'a pas pu tre excute pour une autre raison.
Corrections d'outils
7.7 Numros D libres, numro de tranchant
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 433
7.7.5 Libre affectation des numros D : numros D dclars non valides (DZERO)
Fonction
L'instruction DZERO sert faciliter le routillage. Les correcteurs dclars non valides ne font
plus l'objet d'un contrle par l'instruction CHKDNO. Pour avoir de nouveau accs aux
correcteurs, il faut procder une nouvelle affectation des numros D avec SETDNO.
Syntaxe
DZERO
Signification

DZERO
Dclare tous les numros D de l'unit TO non valides.
Corrections d'outils
7.8 Cinmatique d'un organe porte-outil
Notions complmentaires
434 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
7.8 Cinmatique d'un organe porte-outil
Conditions
Un organe porte-outil ne peut orienter un outil dans toutes les directions de l'espace que
si deux axes rotatifs V1 et V2 sont prsents.
si les axes rotatifs sont perpendiculaires les uns par rapport aux autres.
si l'axe longitudinal de l'outil est perpendiculaire au deuxime axe rotatif V2.
En outre, la condition ci-dessous doit tre satisfaite dans le cas des machines sur lesquelles
il doit tre possible de rgler toutes les orientations :
- l'orientation de l'outil doit tre perpendiculaire au premier axe rotatif V1.
Fonction
La cinmatique d'un organe porte-outil ayant deux axes rotatifs au maximum v1 ou v2 est
dcrite l'aide des 17 variables systme allant de $TC_CARR1[m] $TC_CARR17[m]. Cette
description comprend :
le vecteur distance entre le premier axe rotatif et le point de rfrence de l'organe porte-
outil I1, le vecteur distance entre le premier et le second axe rotatif I2, le vecteur
distance entre le second axe rotatif et le point de rfrence de l'outil I3.
le vecteur de direction des deux axes rotatifs V1, V2.
les angles rotatifs 1, 2autour des deux axes. Les angles rotatifs sont positifs s'ils
provoquent une rotation en sens horaire pour un observateur regardant dans la direction
des axes rotatifs.
3
l
2
l
1
l
2

2
V
1
V

Pour les machines cinmatique dcompose (l'outil et la pice sont orientables), les
variables systme supplmentaires
$TC_CARR18[m] bis $TC_CARR23[m] ont t dfinies.
Corrections d'outils
7.8 Cinmatique d'un organe porte-outil
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 435
Paramtres

Fonction des variables systme pour organes porte-outil orientables
Dsignation Composante x Composante y Composante z
Vecteur offset l1 $TC_CARR1[m] $TC_CARR2[m] $TC_CARR3[m]
Vecteur offset l2 $TC_CARR4[m] $TC_CARR5[m] $TC_CARR6[m]
Axe rotatif v1 $TC_CARR7[m] $TC_CARR8[m] $TC_CARR9[m]
Axe rotatif v2 $TC_CARR10[m] $TC_CARR11[m] $TC_CARR12[m]
Angle rotatif 1
Angle rotatif 2
$TC_CARR13[m]
$TC_CARR14[m]
Vecteur offset l3 $TC_CARR15[m] $TC_CARR16[m] $TC_CARR17[m]


Extension des variables systme pour organes porte-outil orientables
Dsignation Composante x Composante y Composante z
Vecteur offset l4 $TC_CARR18[m] $TC_CARR19[m] $TC_CARR20[m]
Descripteur d'axe
Axe rotatif v1
Axe rotatif v2
Descripteur d'axe pour les axes rotatifs v1et v2 (prrglage avec zro)
$TC_CARR21[m]
$TC_CARR22[m]
$TC_CARR23[m]
Type de cinmatique T -> Type de cinmatique P -> Type de cinmatique M
Type de
cinmatique
Tool
Part
Mixed mode
seul l'outil est orientable
(prrglage).
seule la pice est
orientable.
pice et outil sont
orientables.
Dcalage des
axes rotatifs v1
et v2
Angle en degrs des axes rotatifs v1et v2 en position initiale
$TC_CARR24[m]
$TC_CARR25[m]
Dcalage
angulaire des
axes rotatifs v1
et v2
Dcalage en degrs de la denture Hirth des axes rotatifs v1et v2
$TC_CARR26[m]
$TC_CARR27[m]
Incrment
angulaire
v1 Axe rotatif
v2 Axe rotatif
Incrment en degrs de la denture Hirth des axes rotatifs v1et v2
$TC_CARR28[m]
$TC_CARR29[m]
Position min. Axe
rotatif v1
Axe de rotatif v2
Limite logicielle pour position minimale des axes rotatifs v1et v2
$TC_CARR30[m]
$TC_CARR31[m]
Position max.
Axe rotatif v1
Axe rotatif v2
Limite logicielle pour position maximale des axes rotatifs v1et v2
$TC_CARR32[m]
$TC_CARR33[m]
Nom de l'organe
porte-outil
la place d'un nombre, un organe porte-outil peut se voir affecter un nom.
$TC_CARR34[m]
Utilisation prvue par l'utilisateur l'intrieur des cycles de mesure.
$TC_CARR35[m]
$TC_CARR36[m]
$TC_CARR37[m]
Utilisateur :
Nom d'axe 1
Nom d'axe 2
Identificateur
Position $TC_CARR38[m] $TC_CARR39[m] $TC_CARR40[m]
Corrections d'outils
7.8 Cinmatique d'un organe porte-outil
Notions complmentaires
436 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Extension des variables systme pour organes porte-outil orientables
Dcalage
fin
Paramtres pouvant tre ajouts aux valeurs
contenues dans les paramtres de base.
Vecteur offset l1 $TC_CARR41[m] $TC_CARR42[m] $TC_CARR43[m]
Vecteur offset l2 $TC_CARR44[m] $TC_CARR45[m] $TC_CARR46[m]
Vecteur offset l3 $TC_CARR55[m] $TC_CARR56[m] $TC_CARR57[m]
Vecteur offset l4 $TC_CARR58[m] $TC_CARR59[m] $TC_CARR60[m]
Axe rotatif v1 $TC_CARR64[m]
Axe rotatif v2 $TC_CARR65[m]

Remarque
Explication des paramtres
"m" est le numro de l'organe porte-outil dcrire.
Les paramtres $TC_CARR47 jusqu' $TC_CARR54 ainsi que $TC_CARR61 jusqu' $TC_CARR63 ne
sont pas dfinis et gnrent une alarme en cas de tentative d'accs en lecture ou en
criture.
Vous pouvez choisir librement les points initiaux et finaux des vecteurs distances sur les
axes. Les angles rotatifs 1, 2autour des deux axes sont gaux 0 lorsque l'organe porte-
outil est en position initiale. Il existe donc un grand nombre de possibilits pour dcrire la
cinmatique d'un organe porte-outil.
Vous pouvez dcrire des organes porte-outil n'ayant qu'un axe rotatif ou aucun axe rotatif en
annulant les composantes du vecteur de direction d'un ou des deux axes rotatifs.
Dans le cas d'un organe porte-outil sans axe rotatif, les vecteurs distances ont le mme effet
que des corrections d'outil supplmentaires, dont les composantes ne sont pas influences
par le basculement entre les plans d'usinage (G17 G19).
Extension des paramtres
Paramtres des axes rotatifs
Les variables systme $TC_CARR24[m] $TC_CARR33[m], dont les significations sont
indiques ci-dessous, sont introduites :

Dcalage des axes
rotatifs v11 et v2
Changement de position de l'axe rotatif v1 ou v2 lorsque l'organe porte-outil
orientable est en position initiale.
Dcalage
angulaire/incrment
angulaire des axes
rotatifs v1et v2
Dcalage ou incrment angulaire de la denture Hirth des axes rotatifs v1 et v2.
L'angle programm ou calcul est arrondi la valeur la plus proche qui
s'obtient l'aide de la formule phi = s + n * d, n tant un nombre entier.
Position minimale et
maximale Axes
rotatifs v1, v2
Position minimale/maximale des axes rotatifs Angles limites (limite logicielle)
des axes rotatifs v1 et v2.

Paramtres pour l'utilisateur
$TC_CARR34 $TC_CARR40 contiennent des paramtres qui sont mis la libre
disposition de l'utilisateur et qui, jusqu' la version de logiciel 6.4, ne sont pas exploits en
standard l'intrieur du NCK ou qui sont sans signification.
Corrections d'outils
7.8 Cinmatique d'un organe porte-outil
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 437
Paramtres de dcalage fin
$TC_CARR41 $TC_CARR65 contiennent des paramtres de dcalage fin pouvant tre
ajouts aux valeurs contenues dans les paramtres de base. On obtient une valeur de
dcalage fin affecte un paramtre de base lorsque la valeur 40 est ajoute au numro de
paramtre.
Exemple
L'organe porte-outil utilis dans l'exemple suivant peut tre dcrit entirement par une
rotation autour de l'axe Y.
Z
X
X
Y
z
Z
X
X
Y
Y
z


Code de programme Commentaire
N10 $TC_CARR8[1]=1 ; Dfinition de la composante Y du
premier axe rotatif de l'organe
porte-outil 1.
N20 $TC_DP1[1,1]=120 ; Dfinition d'une fraise
cylindrique.
N30 $TC_DP3[1,1]=20 ; Dfinition d'une fraise
cylindrique d'une longueur de 20
mm.
N40 $TC_DP6[1,1]=5 ; Dfinition d'une fraise
cylindrique d'un rayon de 5 mm.
N50 ROT Y37 ; Dfinition d'un frame avec
rotation de 37 autour de l'axe Y.
N60 X0 Y0 Z0 F10000 ; Accostage de la position de
dpart.
N70 G42 CUT2DF TCOFR TCARR=1 T1 D1 X10 ; Rglage correction de rayon,
correction de longueur d'outil
dans le frame pivot, slection
organe porte-outil 1, outil 1.
Corrections d'outils
7.8 Cinmatique d'un organe porte-outil
Notions complmentaires
438 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Code de programme Commentaire
N80 X40 ; Effectuer l'usinage sous un angle
rotatif de 37.
N90 Y40
N100 X0
N110 Y0
N120 M30
Autres informations
Cinmatique dcompose
Pour les machines cinmatique dcompose (l'outil et la pice sont orientables), les
variables systme supplmentaires $TC_CARR18[m] $TC_CARR23[m] permettent de dfinir :
l'organe porte-pice orientable l'aide :
du vecteur distance entre le second axe rotatif V2 et le point de rfrence d'une table
porte-pice pivotante I4 du troisime axe rotatif.
les axes rotatifs l'aide :
des deux descripteurs d'axes de canal associs aux axes rotatifs V1et V2, et dont les
positions peuvent tre interroges pour la dtermination de l'orientation.
le type de cinmatique l'aide d'une des valeurs T, P ou M :
type de cinmatique T : seul l'outil est orientable.
type de cinmatique P : seule la pice est orientable.
type de cinmatique M : l'outil et la pice sont orientables.
Effacement des donnes d'organe porte-outil
Avec $TC_CARR1[0] = 0, vous pouvez effacer les donnes de tous les organes porte-outil.
La valeur du paramtre pour le type de cinmatique $TC_CARR23[T] = T doit tre une des
trois lettres majuscules ou minuscules (T, P, M) ; ce paramtre ne doit donc pas tre effac.
Modification des donnes d'organe porte-outil
Vous pouvez modifier chacune des valeurs en lui affectant une nouvelle valeur dans le
programme pice. Tout autre caractre que T, P ou M conduit une alarme lors de la
tentative d'activer l'organe porte-outil orientable.
Lecture des donnes d'organe porte-outil
Vous pouvez lire chacune des valeurs en l'affectant une variable dans le programme
pice.
Dcalage fin
Une valeur de dcalage fin non autorise n'est dtecte que lorsqu'un organe porte-outil
orientable contenant une telle valeur est activ et que, dans le mme temps, la donne de
rglageSD42974 $SC_TOCARR_FINE_CORRECTION = TRUE.
La valeur absolue du dcalage fin autorise est limite par les paramtres machine une
valeur maximale admissible.
Corrections d'outils
7.9 Correction de longueur d'outil pour organes porte-outils orientables (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY,
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 439
7.9 Correction de longueur d'outil pour organes porte-outils orientables
(TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)
Fonction
Les composantes de longueur d'outil varient lorsque l'orientation dans l'espace de l'outil en
question change.
X
X<<
Z
Z<<
l
l
l

Par consquent, aprs un changement, par rglage manuel ou remplacement de l'organe
porte-outil orientation spatiale fixe par exemple, les composantes de longueur d'outil sont
redfinir. Ceci se fait avec les instructions TCOABS et TCOFR.
Avec un organe porte-outil orientable d'un frame actif, il est possible de dterminer, lors de la
slection de l'outil avec TCOFRZ, TCOFRY et TCOFRX, la direction vers laquelle l'outil doit pointer.
Syntaxe
TCARR=[<m>]
TCOABS
TCOFR
TCOFRZ
avec TCOFRY
avec TCOFRX
Corrections d'outils
7.9 Correction de longueur d'outil pour organes porte-outils orientables (TCARR, TCOABS, TCOFR, TCOFRX,
TCOFRY, TCOFRZ)
Notions complmentaires
440 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Signification

TCARR=[<m>] : Appel de l'organe porte-outil ayant le numro "m"
TCOABS : Calculer les composantes de longueur d'outil partir de l'orientation
de l'organe porte-outil.
TCOFR : Dtermination des composantes de longueur d'outil partir de
l'orientation du frame actif.
TCOFRZ : Organe porte-outil orientable du frame actif dont l'outil est point en
direction Z
TCOFRY : Organe porte-outil orientable du frame actif dont l'outil est point en
direction Y
TCOFRX : Organe porte-outil orientable du frame actif dont l'outil est point en
direction X
Autres informations
Correction de longueur d'outil partir de l'organe porte-outil (TCOABS)
TCOABS calcule la correction de longueur d'outil sur la base des angles d'orientation de
l'organe porte-outil, qui sont rangs dans les variables systme $TC_CARR13 et
$TC_CARR14.
Pour la dfinition de la cinmatique de l'organe porte-outil avec des variables systme, voir
"Cinmatique de l'organe porte-outil (Page 434)".
Pour que la correction de longueur d'outil soit recalcule en cas de changement de frame, il
convient de rappeler l'outil.
direction d'outil du frame actif
L'organe porte-outil orientable peut tre rgl de telle faon que l'outil soit orient dans les
directions suivantes :
dans la direction Z avec TCOFR ou TCOFRZ
dans la direction Y avec TCOFRY
dans la direction X avec TCOFRX
Toute commutation entre TCOFR et TCOABS provoque un recalcul de la correction de longueur
d'outil.
Appel de l'organe porte-outil (TCARR)
Avec TCARR, vous appelez les donnes gomtriques de l'organe porte-outil de numro m
(mmoire de correcteurs).
Avec m=0, vous dsactivez l'organe porte-outil actif.
Les donnes gomtriques de l'organe porte-outil ne deviennent oprantes qu'aprs l'appel
de l'outil. L'outil slectionn reste activ mme aprs un changement d'organe porte-outil.
Les donnes gomtriques de l'organe porte-outil peuvent aussi tre dfinies dans le
programme pice, par le biais des variables systme correspondantes.
Corrections d'outils
7.9 Correction de longueur d'outil pour organes porte-outils orientables (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY,
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 441
Nouveau calcul de la correction de longueur d'outil (TCOABS) en cas de changement de
frame
Pour que la correction de longueur d'outil soit recalcule en cas de changement de frame, il
convient de rappeler l'outil.

Remarque
L'orientation de l'outil doit tre adapte manuellement au frame actif.

Lors du calcul de la correction de longueur d'outil, les angles de rotation de l'organe porte-
outil font galement l'objet d'un calcul. Etant donn que les organes porte-outil deux axes
de rotation ont gnralement deux paires d'angles de rotation, avec lesquels on peut
adapter l'orientation d'outil au frame actif, les valeurs des angles de rotation ranges dans
les variables systme doivent correspondre au moins approximativement aux angles de
rotation rgls mcaniquement.

Remarque
Orientation de l'outil
La commande n'est pas en mesure de contrler la possibilit de rglage sur la machine des
angles de rotation calculs sur la base de l'orientation du frame.
Si les axes de rotation de l'organe porte-outil sont situs de telle faon qu'il soit impossible
l'outil de rallier l'orientation calcule sur la base de l'orientation du frame, une alarme est
mise.
Combiner la correction fine d'outil et les fonctionnalits de la correction de longueur d'outil
n'est pas autoris pour les organes porte-outils orientables. Si vous tentez d'appeler les
deux fonctions en mme temps, un message d'erreur vous sera donn.
Avec TOFRAME il est possible de dfinir un frame en fonction de la direction dans laquelle est
orient l'organe porte-outil. Pour de plus amples informations, se reporter au chapitre
"Frames".
Quand une transformation d'orientation est active (transformation 3, 4, 5 axes), vous pouvez
appeler un organe porte-outil ayant une orientation s'cartant de la position zro, sans
dclencher une alarme.

Corrections d'outils
7.9 Correction de longueur d'outil pour organes porte-outils orientables (TCARR, TCOABS, TCOFR, TCOFRX,
TCOFRY, TCOFRZ)
Notions complmentaires
442 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Paramtres de transfert des cycles standard et cycles de mesure
Pour les paramtres de transfert des cycles standard et cycles de mesure, on applique les
plages de valeurs bien dfinies.
Dans le cas des valeurs angulaires, la plage de valeurs est dfinie ainsi :
Rotation autour du 1er axe gomtrique : -180 degrs jusqu' +180 degrs
Rotation autour du 2me axe gomtrique : -90 degrs jusqu' +90 degrs
Rotation autour du 3me axe gomtrique : -180 degrs jusqu' +180 degrs
Voir chapitre Frames, "Rotation programmable (ROT, AROT, RPL)".

Remarque
Lors du transfert de valeurs angulaires un cycle standard ou de mesure, il convient
d'arrondir zro toute valeur infrieure l'unit de calcul de la CN !
L'unit de calcul de la CN pour les positions angulaires est dfinie dans le paramtre
machine :
PM10210 $MN_INT_INCR_PER_DEG

Corrections d'outils
7.10 Correction de longueur d'outil en ligne (TOFFON, TOFFOF)
Notions complmentaires
Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0 443
7.10 Correction de longueur d'outil en ligne (TOFFON, TOFFOF)
Fonction
La variable systme $AA_TOFF[<n> ] permet de corriger en temps rel et en trois
dimensions les longueurs d'outil effectives en fonction des trois directions de l'outil.
Les trois descripteurs d'axes gomtriques servent d'indices <n>. De cette faon, le nombre
des directions de correction actives est dtermin par les axes gomtriques qui sont actifs
au mme moment.
Toutes les corrections peuvent tre actives simultanment.
La fonction de correction des longueurs d'outil en ligne est applicable dans :
la transformation de l'orientation TRAORI
l'organe porte-outil orientable TCARR



Remarque
La correction en ligne de longueur d'outil est une option qui doit tre valide auparavant.
Cette fonction n'a de sens qu'en liaison avec la transformation active de l'orientation ou
avec un organe porte-outil orientable l'tat activ.

Syntaxe
TRAORI
TOFFON(<direction de correction>[,<valeur de
l'offset>])

WHEN TRUE DO $AA_TOFF[<sens de correction>] ; Dans des actions synchrones.
...
TOFFOF(<sens de correction>)

Pour plus d'explications sur la programmation de la correction en ligne de la longueur d'outil
dans des actions synchrones au dplacement, voir "Correction en ligne de la longueur d'outil
($AA_TOFF) (Page 596)".
Signification
Activation de la correction en ligne de la longueur d'outil
<sens de correction> : Direction de l'outil (X, Y, Z) dans laquelle la correction en
ligne de la longueur d'outil doit prendre effet.
TOFFON :
<valeur de l'offset> : Ds que la fonction est active, une valeur offset peut
tre indique pour la direction dans laquelle doit
s'effectuer la correction et cette valeur fait
immdiatement l'objet d'un mouvement de correction.
TOFFOF : Remise zro de la correction en ligne de la longueur d'outil
Les valeurs de correction dans le sens de correction spcifi sont remises zro
et un arrt du prtraitement des blocs est dclench.
Corrections d'outils
7.10 Correction de longueur d'outil en ligne (TOFFON, TOFFOF)
Notions complmentaires
444 Manuel de programmation, 03/2010, 6FC5398-2BP20-1DA0
Exemples
Exemple 1 : activation de la correction de longueur d'outil

Code de programme Commentaire
MD21190 $MC_TOFF_MODE =1
MD21194 $MC_TOFF_VELO[0] =1000
MD21196 $MC_TOFF_VELO[1] =1000
MD21194 $MC_TOFF_VELO[2] =1000
MD21196 $MC_TOFF_ACCEL[0] =1
MD21196 $MC_TOFF_ACCEL[1] =1
MD21196 $MC_TOFF_ACCEL[2] =1
; Accostage des valeurs absolues.
N5 DEF REAL XOFFSET
N10 TRAORI(1) ; Activation de la transformation.
N20 TOFFON(Z) ; Activation de la correction en ligne
de la longueur d'outil pour la
direction Z de l'outil.
N30 WHEN TRUE DO $AA_TOFF[Z]=10 G4 F5 ; Interpolation d'une valeur de
correction de longueur d'outil gale
10 pour la direction Z de l'outil.
...
N100 XOFFSET=$AA_TOFF_VAL[X] ; Affectation de la correction
actuelle dans la direction X.
N120 TOFFON(X,-XOFFSET) G4 F5 ; Remise 0 de la correction de
longueur d'outil dans la direction X
de l'outil.

Exemple 2 : dsactivation de la correction de longueur d'outil

Code de programme Commentaire
N10 TRAORI(1) ; Activation de la transformation.
N20 TOFFON(X) ; Activation de la correction en ligne
de la longueur d'outil pour la
direction X de l'outil.
N30 WHEN TRUE DO $AA_TOFF[X]=10 G4 F5 ; Interpolation d'une valeur de
correction de longueur d'outil gale
10 pour la direction X de l'outil.
...
N80 TOFFOF(X) ; L'offset de position de la directio