summaryrefslogtreecommitdiff
path: root/docs/src/config/ini_config_fr.txt
blob: b66c573233047e029a90b100f5ccae73cdfc7bf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
:lang: fr
:toc:

= Configuration de LinuxCNC

[[cha:ini-configuration]] (((INI Configuration)))

== Script de lancement

LinuxCNC est lancé par le fichier de script _linuxcnc_.

----
linuxcnc [options] [<ini-file>]
----

Avec les options suivantes:
* _-v_ = verbose - informations de fonctionnement
* _-d_ = commande d'écho à l'écran pour le débogage

Le fichier de script _linuxcnc_ lit le fichier ini puis lance LinuxCNC.
La section [HAL] du fichier ini, spécifie l'ordre de chargement des fichiers
de HAL, si plusieurs sont utilisés. Après que les fichiers HAL soient chargés,
l'interface graphique est chargée à son tour puis le fichier HAL POSTGUI.
Si des objets pyvcp ont été créés avec des pins de HAL, le fichier _postgui.hal_
doit effectuer les raccordements à ces pins, se reporter à la section
<<sub:Section-HAL,HAL>> pour plus de détails.

Si aucun fichier ini n'est passé en argument au script _linuxcnc_, le sélecteur
de configuration est lancé pour permettre à l'utilisateur de choisir parmi les
exemples de configuration existants.

[[fig:selecteur-de-configuration]]

.Sélecteur de configuration

image::../common/images/configuration-selector1_fr.png[align="center"]

== Fichiers utilisés pour la configuration

LinuxCNC est entièrement configuré avec des fichiers textes classiques.
Tous ces fichiers peuvent être lus et modifiés dans n'importe quel
éditeur de texte disponible dans toute distribution Linux.footnote:[Ne
pas confondre un éditeur de texte et un traitement de texte. Un
éditeur de texte comme gedit ou kwrite produisent des fichiers
uniquement en texte. Les lignes de textes sont séparées les unes des
autres. Un traitement de texte comme Open Office produit des fichiers
avec des paragraphes, des mises en formes des mots. Ils ajoutent des
codes de contrôles, des polices de formes et de tailles variées etc. Un
éditeur de texte n'a rien de tout cela.]
Soyez prudent lorsque vous modifierez ces fichiers, certaines
erreurs pourraient empêcher le démarrage de LinuxCNC. Ces fichiers sont lus à
chaque fois que le logiciel démarre. Certains d'entre eux sont lus de
nombreuses fois pendant l'exécution de LinuxCNC.

Les fichiers de configuration inclus:

* _INI_ (((INI))) Le fichier ini écrase les valeurs par défaut compilées dans
    le code de LinuxCNC. Il contient également des sections qui sont lues
    directement par HAL (Hardware Abstraction Layer, couche
    d'abstraction matérielle).

* _HAL_ (((HAL))) Les fichiers hal installent les modules de process, ils
    créent les liens entre les signaux de LinuxCNC et les broches spécifiques du
    matériel.

* _VAR_ (((VAR))) Ce fichier contient une suite de numéros de variables. Ces
    variables contiennent les paramètres qui seront utilisés par
    l'interpréteur. Ces valeurs sont enregistrées et réutilisées d'une
    exécution à l'autre.

* _TBL_ (((TBL))) Ce fichier contient les informations relatives aux outils.
    Voir la section 'Fichier d'outils' du Manuel de l'utilisateur pour plus
    d'infos.

* _NML_ (((NML))) Ce fichier configure les voies de communication utilisées
    par LinuxCNC. Il est normalement réglé pour lancer toutes les communications
    avec un seul ordinateur, peut être modifié pour communiquer entre
    plusieurs ordinateurs.

* _.linuxcncrc_ (((.linuxcncrc))) Ce fichier enregistre des informations
    spécifiques à l'utilisateur, il a été créé pour enregistrer le nom du
    répertoire lorsque l'utilisateur choisit sa première configuration
    de LinuxCNC.footnote:[Habituellement, ce fichier est dans le répertoire home
    de l'utilisateur (ex: _/home/robert/_ )]

Les éléments avec le repère _(hal)_ sont utilisés seulement pour les
fichiers de HAL en exemples. C'est
une bonne convention. D'autres éléments sont utilisés directement par
LinuxCNC et doivent toujours avoir la section et le nom donné à l'item.

== Double passe (TWOPASS) 

LinuxCNC 2.5 supporte le processus dit TWOPASS des fichiers de configuration hal,
ce qui aide à la modularité des fichiers hal et améliore leur lisibilité.
(les fichiers Hal sont spécifiés dans le fichier ini de LinuxCNC, dans
l'instance HAL sous la forme _[HAL]HALFILE=nomdufichier_.

Normalement, un jeu de un ou plusieurs fichiers de configuration HAL doivent
utiliser une seule et unique ligne loadrt pour charger le module du kernel qui
pourra gérer de multiples instances d'un même composant. Par exemple: si vous
utilisez une portes AND à deux entrées, composant (and2), à trois endroits
différents de votre configuration, vous ne devez avoir que cette seule ligne
quelque part pour le spécifier:
----
loadrt and2 count=3
----

Ce qui fournira finalement les composants and2.0, and2.1, and2.2.

Les configurations seront plus lisibles si vous spécifiez les composants sous
la forme names=option quand c'est supporté, par exemple:
----
loadrt and2 names=aa,ab,ac
----

Ce qui nommera les composants aa, ab, ac.

Il pourrait apparaitre un problème de maintenance pour garder la trace des
composants et de leur noms après avoir ajouté (ou enlevé) un composant,
vous devrez trouver et mettre à jour, la ligne de directives de loadrt,
applicable à ce composant.

Le processus TWOPASS est activé par inclusion d'un paramètre dans le fichier ini:
----
[HAL]TWOPASS=anything
----

Avec ce réglage, vous pouvez avoir de multiples spécifications comme:
----
loadrt and2 names=aa
...
loadrt and2 names=ab,ac
...
loadrt and2 names=ad
----

Ces commandes peuvent être placées dans différents fichiers HALFILES. Les
HALFILES sont traités dans leur ordre d'apparition dans le fichier ini.

Avec le processus double passe, tous les [HAL]HALFILES sont lus une première
fois et les multiples apparitions de la directive loadrt sont cumulées pour
chaque module. Aucune commande hal n'est exécutée lors de cette passe initiale.

Après la passe initiale, les modules sont automatiquement chargés 
en nombre égal au nombre total lors de l'utilisation de count=option ou
de tous les noms spécifiés individuellement lors de l'utilisation de
names=option.

Une seconde passe est alors faite pour exécuter toutes les autres instructions
de hal spécifiées dans les HALFILES.  Les commandes addf qui associent les
fonctions de composants avec l'exécution du thread sont exécutées selon leur
ordre d'apparition avec les autres commandes dans cette seconde passe.

Bien que vous puissiez utiliser indifféremment les options avec count= ou names=,
elles sont toutefois exclusives. Un seul type peut être utilisé pour un même
module.

Le processus TWOPASS n'est pas effectif lors de l'usage de names=option.
Cette option permet d'avoir un nom unique qui soit mnémonique ou plus pertinent
avec la configuration. Par exemple: si vous utilisez un composant _dérivé_ pour
estimer la vitesse et l'accélération de chacun des coordonnées (x,y,z), utiliser
la méthode count= donnera un composant au nom ésotérique comme ddt.0, ddt.1,
ddt.2, etc.

Alternativement, l'utilisation de names=option comme:
----
loadrt ddt names=xvit,yvit,zvit
...
loadrt ddt names=xaccel,yaccel,zaccel
----

donnera des composants plus parlants, nommés xvit,yvit,zvit, xaccel,yaccel,
zaccel.

Beaucoup de composants fournis avec la distribution ont été créés avec
_comp utility_ et supportent la méthode names=option. Il s'agit notamment de
composants logiques qui sont les briques de beaucoup de configurations HAL.

Exemples d'inclusions:
----
and2,ddt,deadzone,flipflop,or2,or4,mux2,mux4,scale,sum2,timedelay,lowpass
----

et beaucoup d'autres.

Les composants utilisateur créés avec _comp utility_ supportent également
automatiquement la méthode names=option.  En plus des composants générés
avec _comp utility_, quelques autres composants comme _encoder_ et
_pid_ supportent aussi names=option.

== Organisation du fichier ini

Organisation du fichier ini:: (((Fichier ini)))
Un fichier ini typique suit une organisation simple;

* les commentaires.
* les sections.
* les variables.

Chacun de ces éléments est séparé, sur une seule ligne. Chaque fin de
ligne ou retour chariot crée un nouvel élément.

=== Les commentaires (((commentaires)))

Une ligne de commentaires débute avec un *;* ou un *#*. Si le logiciel qui
analyse le fichier ini rencontre l'un ou l'autre de ces caractères, le
reste de la ligne est ignoré. Les commentaires peuvent être utilisés
pour décrire ce que font les éléments du fichier ini.
----
; Ceci est le fichier de configuration de ma petite fraiseuse.
----

Des commentaires peuvent également être utilisés pour choisir entre
plusieurs valeurs d'une seule variable.
----
DISPLAY = axis
# DISPLAY = touchy
----

Dans cette liste, la variable DISPLAY est positionnée sur
axis puisque l'autre est commentée. Si quelqu'un édite une
liste comme celle-ci et par erreur, dé-commente deux lignes, c'est la
première rencontrée qui sera utilisée.

Noter que dans une ligne de variables, les caractères *#* et *;*
n'indiquent pas un commentaire.
----
INCORRECT = valeur     # et un commentaire

# Commentaire correct
CORRECT = valeur
----

=== Les sections (((Sections)))
Les différentes parties d'un fichier .ini sont regroupées en sections.
Une section commence par son nom en majuscules entre crochets [UNE_SECTION].
L'ordre des sections est sans importance.

Les sections suivantes sont utilisées par LinuxCNC:

* _[<<sub:Section-EMC,EMC>>]_ informations générales.
* _[<<sub:Section-DISPLAY,DISPLAY>>]_ sélection du type d'interface graphique.
* _[<<sub:Section-FILTER,FILTER>>]_ sélection d'un programme de filtrage.
* _[<<sub:Section-RS274NGC,RS274NGC>>]_ ajustements utilisés par l'interpréteur
de g-code.
* _[<<sub:Section-EMCMOT,EMCMOT>>]_ réglages utilisés par le contrôleur
de mouvements temps réel.
* _[<<sub:Section-TASK,TASK>>]_ réglages utilisés par le contrôleur de tâche.
* _[<<sub:Section-HAL,HAL>>]_ spécifications des fichiers .hal.
* _[<<sub:Section-HALUI,HALUI>>]_ commandes MDI utilisées par HALUI.
* _[<<sub:Section-TRAJ,TRAJ>>]_ réglages additionnels utilisés par le contrôleur
de mouvements temps réel.
* _[<<sub:Sections-AXIS,AXIS_n>>]_ groupes de variables relatives à chaque axe.
* _[<<sub:Section-EMCIO,EMCIO>>]_ réglages utilisés par le contrôleur
d'entrées/sorties.

=== Les variables (((Variables)))
Une ligne de variables est composée d'un nom de variable, du signe
égal (=) et d'une valeur. Tout, du premier caractère non blanc qui suit
le signe = jusqu'à la fin de la ligne, est passé comme valeur à la
variable. Vous pouvez donc intercaler des espaces entre les symboles si
besoin. Un nom de variable est souvent appelé un mot clé.

Les paragraphes suivants détaillent chaque section du fichier de
configuration, en utilisant des exemples de variables dans les lignes
de configuration.

Certaines de ces variables sont utilisées par LinuxCNC. Elles doivent
toujours utiliser le nom de section et le nom de variable dans leur
appellation. D'autres variables ne sont utilisées que par HAL. Les noms
des sections et les noms des variables indiquées, sont ceux qui sont
utilisés dans les exemples de fichiers de configuration.

Les variables personnalisées peuvent être utilisées dans vos fichiers
HAL avec la syntaxe suivante:

----
MACHINE = MaVariable
----

=== Sections et variables utilisateur[[sub:variables-utilisateur]]

Certaines configurations utilisent des sections utilisateur et des variables
personnalisées pour regrouper les paramètres en un seul emplacement pour
améliorer la lisibilité du fichier ini.

Pour utiliser une section de variable utilisateur dans un fichier HAL, ajouter
la section et la variable dans le fichier INI.

.Exemple de section utilisateur
----
[OFFSETS]
OFFSET_1 = 0.1234
----

Pour ajouter une variable utilisateur à une section LinuxCNC, inclure simplement
cette variable dans la section souhaitée.

.Exemple de variable utilisateur
----
[AXIS_0]
TYPE = LINEAR
...
SCALE = 16000
----

Pour utiliser une variable utilisateur dans un fichier HAL, utiliser les noms
de section et de variable en lieu et place de leurs valeurs.

.Exemple d'utilisation dans un fichier HAL
----
setp offset.1.offset [OFFSETS]OFFSET_1
setp stepgen.0.position-scale [AXIS_0]SCALE
----

[NOTE]
La valeur stockée dans la variable doit correspondre au type spécifié pour la
pin du composant.

[[sec:Details-fichier-INI]]
== Détails des sections du fichier ini


[[sub:Section-EMC]]
=== Section [EMC](((Section [EMC] du fichier ini)))


* _VERSION_ = $Revision: 1.5 $_ - Le numéro de version du fichier INI.
La valeur indiquée ici semble étrange, car elle est automatiquement mise
à jour lors de l'utilisation du système de contrôle de révision.
C'est une bonne idée de changer ce numéro à chaque fois que vous modifiez
votre fichier. Si vous voulez le modifier manuellement, il suffit de
changer le numéro sans toucher au reste.

* _MACHINE = ma machine_ - C'est le nom du contrôleur, qui est imprimé dans
le haut de la plupart des fenêtres. Vous pouvez insérer ce que vous voulez ici
tant que ça reste sur une seule ligne.

* _DEBUG = 0_ - Niveau de débogage 0 signifie qu'aucun message ne sera affiché
dans le terminal pendant le fonctionnement de LinuxCNC. Les drapeaux de débogage
ne sont généralement utiles que pour les développeurs.

[[sub:Section-DISPLAY]]
=== Section [DISPLAY](((Section [DISPLAY] du fichier ini)))

Les différentes interfaces graphiques utilisent différentes options
qui ne sont pas supportées par toutes les interfaces utilisateur.
Les deux principales interfaces pour LinuxCNC sont _AXIS_ et _Touchy_.
Axis est une interface pour une utilisation avec un ordinateur classique et
son moniteur, Touchy est à utiliser avec les ordinateurs à écran tactile.
Pour plus d'informations, voire la section Interfaces du Manuel de l'utilisateur.

* _DISPLAY = axis_ - Le nom de l'interface graphique à utiliser. Les options
disponibles sont les suivantes: _axis_,(((axis))) _touchy_,(((touchy)))
_keystick_, (((keystick))) _mini_,(((mini))) _tklinuxcnc_,(((tklinuxcnc)))
_xlinuxcnc_, (((xlinuxcnc)))

* _POSITION_OFFSET = RELATIVE_ - Le système de coordonnées (RELATIVE ou MACHINE)
à utiliser au démarrage de l'interface utilisateur. Le système de coordonnées
RELATIVE reflète le G92 et le décalage d'origine G5x actuellement actifs.

* _POSITION_FEEDBACK = ACTUAL_ - Valeur de la position (COMMANDED ou ACTUAL) à
afficher au démarrage de l'interface utilisateur. La position COMMANDED est la
position exacte requise par LinuxCNC. La position ACTUAL est la position
retournée par l'électronique des moteurs.

* _MAX_FEED_OVERRIDE = 1.2_ - La correction de vitesse maximum que l'opérateur
peut utiliser. 1.2 signifie 120% de la vitesse programmée.

* _MIN_SPINDLE_OVERRIDE = 0.5_ - Correction de vitesse minimum de broche que
l'opérateur pourra utiliser. 0.5 signifie 50% de la vitesse de broche
programmée. (utile si il est dangereux de démarrer un programme avec une
vitesse de broche trop basse).

* _MAX_SPINDLE_OVERRIDE = 1.0_ - Correction de vitesse maximum de broche que
l'opérateur pourra utiliser. 1.0 signifie 100% de la vitesse de broche programmée.

* _PROGRAM_PREFIX = ~/linuxcnc/nc_files_ - Répertoire par défaut des fichiers
de g-codes et emplacement des M-codes définis par l'utilisateur.
Les recherches de fichiers s'effectueront d'abords dans cet emplacement,
avant les chemins des sous-programmes et des fichiers M utilisateur, si
il est spécifié dans la section [RS274NGC].

* _INTRO_GRAPHIC = linuxcnc.gif_ - L'image affichée sur l'écran d'accueil.

* _INTRO_TIME = 5_ - Durée d'affichage de l'écran d'accueil.

* _CYCLE_TIME = 0.05_ - Cycle time in seconds that display will sleep between
polls.

Les éléments suivants sont utilisés uniquement si AXIS est sélectionné comme
programme d'interface utilisateur.

* _DEFAULT_LINEAR_VELOCITY = .25_ - Vitesse minimum par défaut pour les jogs
linéaires, en unités machine par seconde. Seulement utilisé dans l'interface
AXIS.

* _MIN_VELOCITY = .01_ - Valeur approximative minimale du curseur de vitesse de
jog.

* _MAX_LINEAR_VELOCITY = 1.0_ - Vitesse maximum par défaut pour les jogs
linéaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS.

* _MIN_LINEAR_VELOCITY = .01_ - Approximativement la valeur minimale du curseur
de vitesse de jog.

* _DEFAULT_ANGULAR_VELOCITY = .25_ - Vitesse minimum par défaut pour les jogs
angulaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS.

* _MIN_ANGULAR_VELOCITY = .01_ - Valeur approximative minimale du curseur de
vitesse angulaire de jog.

* _MAX_ANGULAR_VELOCITY = 1.0_ - Vitesse maximum par défaut pour les jogs
angulaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS.

* _INCREMENTS = 1 mm, .5 mm, ..._ - Définit les incréments disponibles pour
le jog incrémental. Les incréments peuvent être utilisés pour remplacer la
valeur par défaut. Ces valeurs doivent contenir des nombres décimaux
(ex. 0.1000) ou des nombres fractionnaires (ex. 1/16), éventuellement suivis
par une unité parmi _cm_, _mm_, _um_, _inch_, _in_ ou _mil_. Si aucune unité
n'est spécifiée, les unités natives de la machine seront utilisées.

* Distances métriques et impériales peuvent être mélangées +
_INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um_ sont des entrées valides.

* _OPEN_FILE = /chemin/complet/du/fichier.ngc_
Le fichier ngc à utiliser au démarrage d'AXIS. Utilisez une chaîne vide ""
et aucun fichier ne sera chargé au démarrage.

* _EDITOR = gedit_ - L'éditeur à utiliser lors du choix _Éditer fichier_ du
menu d'AXIS, pour éditer le G-code. Ceci doit être configuré pour que cet item
de menu s'active. Une autre possibilité valide est: _gnome-terminal -e nano_.

* _TOOL_EDITOR = tooledit_ - L'éditeur de texte à utiliser pour éditer les
tables d'outils. (par exemple en sélectionnant "Fichiers > Éditer la table.
d'outils" dans le menu d'Axis). D'autres entrées comme _gedit_,
_gnome-terminal -e vim_, _gvim_ ou _nano_ sont valides.

* _PYVCP = /filename.xml_ - Le fichier de description du panneau PyVCP. Voir
la section PyVCP.

* _LATHE = 1_ - Passe l'affichage en mode tour, avec vue de dessus et la visu
soit en rayon, soit en diamètre.

* _GEOMETRY = XYZABCUVW_ - Contrôle de prévisualisation du parcours d'outil
d'un mouvement rotatif. Cet item consiste en une suite de lettre d'axe,
optionnellement précédé d'un signe *-*. Seuls, les axes définis par
*[TRAJ]AXES* peuvent être utilisés. Cette séquence spécifie l'ordre dans lequel
l'effet de chaque axe est appliqué. Un signe *-* inverse le sens de la rotation.
La chaine GEOMETRY correcte dépend de la configuration de la machine et
de la cinématique utilisée pour la contrôler. La chaine exemple GEOMETRY=XYZBCUVW
est pour une machine à 5 axes pour laquelle la cinématique déplace UVW
en coordonnées système de l'outil et XYZ déplace la pièce en coordonnées
système. L'ordre des lettres est important, parce qu'il donne expressément
l'ordre dans lequel les différentes transformations seront appliquées.
Par exemple: tourner autour de C puis de B est différent de tourner
autour de B puis de C. La géométrie n'a pas d'effet sans rotation d'axes.

* _ARCDIVISION = 64_ - Ajuste la valeur de prévisualisation des arcs. Les arcs
sont visualisés en les divisant par un nombre de lignes droites; un semi-cercle
est divisé en _ARCDIVISION_ de tronçons. Les valeurs élevées donnent une
meilleure précision à la pré-visualisation, mais sont plus lentes et donne un
écran plus saccadé. Les petites valeurs sont moins précises mais plus rapides,
l'affichage résultant est plus rapide. La valeur par défaut de 64
signifie qu'un cercle de 3 pouces maximum sera affiché dans moins de 3
centièmes de mm, (.03%).footnote:[ Dans LinuxCNC 2.4 et précédents,
la valeur par défaut était de 128.]

* _MDI_HISTORY_FILE =_ - Le nom du fichier d'historique des commandes MDI.
Si rien n'est spécifié, Axis enregistrera cet historique dans
_.axis_mdi_history_ dans le répertoire home de l'utilisateur. C'est très
pratique dans le cas de multiples configurations sur la même machine.

* _HELP_FILE = tklinucnc.txt_ - Chemin du fichier d'aide (non utilisé avec AXIS).

[[sub:Section-FILTER]]
=== Section [FILTER](((Section [FILTER] du fichier ini))) 

AXIS a la possibilité d'envoyer les fichiers chargés au travers d'un programme de
filtrage. Ce filtrage peut réaliser toutes sortes de tâches. Parfois aussi simple
que s'assurer que le programme se termine bien par M2, ou parfois aussi compliqué
que détecter si le fichier d'entrée est une image et en générer le G-code pour
graver la forme qu'il à ainsi défini.
La section _[FILTER]_ du fichier ini, contrôle comment les filtres fonctionnent.
Premièrement, pour chaque type de fichier, écrire une ligne _PROGRAM_EXTENSION_.
Puis, spécifier le programme à exécuter pour chaque type de filtre. Ce
programme reçoit le nom du fichier d'entrée dans son premier argument, il
doit écrire le code RS274/NGC sur la sortie standard. C'est cette sortie qui
sera affichée dans la zone de texte, pré-visualisée dans la zone du parcours
d'outil et enfin, exécutée par LinuxCNC quand il sera mis en marche.
----
PROGRAM_EXTENSION = .extension Description
----

Si votre fichier de sortie est tout en majuscules, vous devez ajouter
la ligne suivante:
----
PROGRAM_EXTENSION = .NGC XYZ Post Processor
----

Les lignes suivantes ajoutent le support pour le convertisseur _image-to-gcode_
fourni avec LinuxCNC:
----
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
    png = image-to-gcode
    gif = image-to-gcode
    jpg = image-to-gcode
----

Il est également possible de spécifier un interpréteur:
----
PROGRAM_EXTENSION = .py Python Script
    py = python
----

De cette façon, n'importe quel script Python pourra être ouvert et ses sorties
seront traitées comme du g-code. Un exemple de script de ce genre est disponible:
nc_files/holecircle.py.
Ce script crée le G-code pour percer une série de trous séquents à la
périphérie d'un cercle.
De nombreux générateurs de G-code sont par ailleurs disponibles sur le wiki:
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators[à la
page des générateurs de G-code].

Si la variable d'environnement AXIS_PROGRESS_BAR est activée, alors les lignes
écrites sur stderr de la forme
----
FILTER_PROGRESS=%d
----

activeront la barre de progression d'AXIS qui donnera le pourcentage. Cette
fonctionnalité devrait être utilisée par tous les filtres susceptibles de
fonctionner pendant un long moment.

Les filtres Python doivent utiliser la fonction _print_ pour sortir le résultat
dans Axis.

Cet exemple de programme filtre un fichier et ajoute un axe W correspondant à 
l'axe Z. Il marchera selon la présence d'un espace entre chaque mot d'axe.

----
#! /usr/bin/env python

import sys

def main(argv):

  openfile = open(argv[0], 'r')
  file_in = openfile.readlines()
  openfile.close()

  file_out = []
  for line in file_in:
    # print line
    if line.find('Z') != -1:
      words = line.rstrip('\n')
      words = words.split(' ')
      newword = ''
      for i in words:
        if i[0] == 'Z':
          newword = 'W'+ i[1:]
      if len(newword) > 0:
        words.append(newword)
        newline = ' '.join(words)
        file_out.append(newline)
    else:
      file_out.append(line)
  for item in file_out:
    print "%s" % item

if __name__ == "__main__":
   main(sys.argv[1:])
----


[[sub:Section-RS274NGC]]
=== Section [RS274NGC]
(((Section [RS274NGC] du fichier ini)))

* _PARAMETER_FILE = monfichier.var_ - (((PARAMETER FILE))) Le fichier situé
dans le même répertoire que le fichier ini qui contiendra les paramètres
utilisés par l'interpréteur (enregistré entre chaque lancement). 

* 'ORIENT_OFFSET = 0' -
     (((ORIENT OFFSET ))) Une valeur flottante ajoutée au paramètre R d'une
    opération <<sec:M19,d'orientation de la broche par M19>>. Utilisée pour
    définir une position zéro quelconque quelle que soit l'orientation de
    montage du codeur de broche.

* _RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98_ -
 (((RS274NGC STARTUP CODE))) Une chaine de codes NGC qui sera utilisée
pour initialiser l'interpréteur. Elle ne se substitue pas à la
spécification des G-codes modaux du début de chaque fichier ngc. Les
codes modaux des machines diffèrent, ils pourraient être modifiés par
les G-codes interprétés plutôt dans la session. 

* _SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs_ -
 (((SUBROUTINE PATH))) Spécifie une liste, séparée par (:) d'au maximum 10
répertoires dans lesquels seront cherchés les fichier de sous-programme
spécifiés dans le g-code. Ces répertoires sont inspectés après que ne le
soit [DISPLAY]PROGRAM_PREFIX (si il est spécifié) et avant que ne le soit
[WIZARD]WIZARD_ROOT (si il est spécifié). les recherches s'effectuent dans 
l'ordre dans lequel les chemins sont listés. La première occurrence avec le
sous-programme recherché est utilisée. Les répertoires sont spécifiés
relativement au répertoire courant du fichier ini ou par des chemins
absolus. La liste ne doit contenir aucun espace blanc.

* _USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes_ -
 (((USER M PATH))) Spécifie une liste de répertoires, séparés par (:) (sans
aucun espace blanc) pour les fonctions définies par l'utilisateur. Les
répertoires sont spécifiés par rapport au répertoire courant pour les 
fichiers ini ou en chemins absolus. La liste ne doit contenir aucun 
espace blanc.

* _USER_DEFINED_FUNCTION_MAX_DIRS=5_ - Défini le nombre maximum de répertoires
au moment de la compilation. Une recherche est faite pour chaque fonction
utilisateur définie possible, typiquement _M100_ à _M199_. +
L'ordre de recherche est le suivant: +
. [DISPLAY]PROGRAM_PREFIX (si il est spécifié)
. Si [DISPLAY]PROGRAM_PREFIX n'est pas spécifié, cherche dans le répertoire
par défaut: nc_files
. Recherche ensuite dans chaque répertoire de la liste [RS274NGC]USER_M_PATH
Le premier M1xx trouvé au cours de la recherche est utilisé pour chaque M1xx.

[NOTE]
[WIZARD]WIZARD_ROOT est un chemin de recherche valide mais l'assistant n'est
pas encore complétement implémenté et les résultats, découlant de son
utilisation, sont imprévisibles.

[[sub:Section-EMCMOT]]
=== Section [EMCMOT]
(((Section [EMCMOT] du fichier ini)))

D'autres entrées peuvent être rencontrées dans cette section, elles ne doivent
pas être modifiées.

* _BASE_PERIOD = 50000_ - (((BASE PERIOD))) (HAL) Période de base des tâches,
exprimée en ns.C'est la plus rapide des horloges de la machine.
Avec un système à servomoteurs, il n'y a généralement pas de raison
pour que _BASE_PERIOD_ soit plus petite que _SERVO_PERIOD_.
Sur une machine de type _step&direction_ avec génération logicielle
des impulsions de pas, c'est _BASE_PERIOD_  qui détermine le nombre
maximum de pas par seconde. Si de longues
impulsions de pas ou de longs espaces entre les impulsions ne sont pas
requis par l'électronique, la fréquence maximum absolue est de un pas
par _BASE_PERIOD_. Ainsi, la _BASE_PERIOD_  utilisée ici donnera une
fréquence de pas maximum absolue de 20000
pas par seconde. 50000ns est une valeur assez large. La plus petite
valeur utilisable est liée au résultat <<cha:test-de-latence, du test de
latence>>, à la longueur des impulsions de pas nécessaire et à la vitesse du µP.
Choisir une BASE_PERIOD trop basse peut amener à des messages
_Unexpected realtime delay_, des blocages ou des reboots spontanés.

* _SERVO_PERIOD = 1000000_ - (((SERVO PERIOD))) (hal) Période de la tâche
_Servo_, exprimée également en nanosecondes.
Cette valeur sera arrondie à un multiple entier de _BASE_PERIOD_.
Elle est utilisée aussi sur des systèmes basés sur des moteurs pas à pas.
C'est la vitesse avec laquelle la nouvelle position des moteurs est
traitée, les erreurs de suivi vérifiées, les valeurs des sorties PID
sont rafraichies etc.
Sur la plupart des systèmes cette valeur n'est pas à modifier. Il
s'agit du taux de mise à jour du planificateur de mouvement de bas niveau.

* _TRAJ_PERIOD = 1000000_ - (((TRAJ PERIOD))) (hal) Période du planificateur
de trajectoire, exprimée en nanosecondes.
Cette valeur sera arrondie à un multiple entier de _SERVO_PERIOD_.
Excepté pour les machines avec une cinématique particulière
(ex: hexapodes) Il n'y a aucune raison de rendre cette valeur supérieure à
_SERVO_PERIOD_.

[[sub:Section-TASK]]
=== Section [TASK]
(((Section [TASK] du fichier ini)))

* _TASK = milltask_ - Indique le nom de la _tâche_ exécutable. La tâche réalise
différentes actions, telles que communiquer avec les interfaces utilisateur au
dessus de NML, communiquer avec le planificateur de mouvements temps réel dans
la mémoire partagée non-HAL, et interpréter le g-code.
Actuellement il n'y a qu'une seule tâche exécutable qui fait sens pour
99,9% des utilisateurs, milltask.

* _CYCLE_TIME = 0.010_ - Période exprimée en secondes, à laquelle TASK
va tourner. Ce paramètre affecte l'intervalle de polling lors de l'attente de
la fin d'un mouvement, lors de l'exécution d'une pause d'instruction et quand
une commande provenant d'une interface utilisateur est acceptée. Il
n'est généralement pas nécessaire de modifier cette valeur.

[[sub:Section-HAL]]
=== Section [HAL]
(((Section [HAL] du fichier ini )))

* _TWOPASS=ON_ - Utilise le processus _twopass_ (double passe) pour charger
les composants HAL. Avec le processus TWOPASS, tous les fichiers [HAL]HALFILES
sont premièrement lus et les occurrences multiples des directives à loadrt
pour chaque module sont cumulées. Aucune commande HAL n'est exécutée à
la première passe.

* _HALFILE = example.hal_ - Exécute le fichier _example.hal_ au démarrage.
Si _HALFILE_  est spécifié plusieurs fois, les fichiers sont exécutés dans
l'ordre de leur apparition dans le fichier ini. Presque toutes les
configurations auront au moins un _HALFILE_ . Les systèmes à moteurs
pas à pas ont généralement deux de ces fichiers, un qui spécifie la
configuration générale des moteurs _core_stepper.hal_ et un qui spécifie le
brochage des sorties _xxx_pinout.hal_.

* _HAL = command_ - Exécute _command_ comme étant une simple commande hal.
Si _HAL_ est spécifié plusieurs fois, les commandes sont exécutées dans
l'ordre où elles apparaissent dans le fichier ini. Les lignes _HAL_
sont exécutées après toutes les lignes _HALFILE_.

* _SHUTDOWN = shutdown.hal_ - Exécute le fichier _shutdown.hal_ quand LinuxCNC
s'arrête. Selon les pilotes de matériel utilisés, il est ainsi possible de
positionner les sorties sur des valeurs définies quand LinuxCNC s'arrête
normalement. Cependant, parce qu'il n'y a aucune garantie que ce fichier sera
exécuté (par exemple, dans le cas d'une panne de l'ordinateur), il ne
remplace pas une véritable chaîne physique d'arrêt d'urgence ou
d'autres dispositifs logiciels de protection des défauts de fonctionnement comme
la pompe de charge ou le watchdog.

* _POSTGUI_HALFILE = example2.hal_ - (Seulement avec les interfaces TOUCHY et
AXIS) Exécute _example2.hal_ après que l'interface graphique ait créé ses HAL
pins.

[[sub:Section-HALUI]]
=== Section [HALUI]
(((Section [HALUI] du fichier ini )))

* _MDI_COMMAND = G53 G0 X0 Y0 Z0_ - Une commande MDI peut être exécuté en
utilisant _halui.mdi-command-00_. Incrémente le nombre pour chaque commande
énumérée dans la section [HALUI].

[[sub:Section-TRAJ]]
=== Section [TRAJ]
(((Section [TRAJ] du fichier ini )))

La section [TRAJ] contient les paramètres généraux du module
planificateur de trajectoires de EMCMOT. Vous n'aurez pas à modifier
ces valeurs si vous utilisez LinuxCNC avec une machine à trois axes en
provenance des USA. Si vous êtes dans une zone métrique, utilisant des
éléments matériels métriques, vous pourrez utiliser le fichier
_stepper_mm.ini_ dans lequel les valeurs sont déjà configurées dans cette
unité.

* _COORDINATES = X Y Z_ - Les noms des axes à contrôler. X, Y, Z, A, B, C, U, V
et W sont valides. Seuls les axes nommés dans _COORDINATES_ seront acceptés dans
le G-code. Cela n'a aucun effet sur l'ordonnancement des noms d'axes depuis
le G-code (X- Y- Z-) jusqu'aux numéros d'articulations. Pour une _cinématique
triviale_, X est toujours l'articulation 0, A est toujours l'articulation 3,
U est toujours l'articulation 6 et ainsi de suite. Il est permis d'écrire les
noms d'axe par paire (ex: X Y Y Z pour une machine à portique) mais
cela n'a aucun effet.

* _AXES = 3_ - Une unité de plus que le plus grand numéro d'articulation du
système. Pour une machine XYZ, les articulations sont numérotées 0, 1 et 2. Dans
ce cas, les AXES sont 3. Pour un système XYUV utilisant une
_cinématique triviale_, l'articulation V est numérotée 7 et donc les
AXES devraient être 8. Pour une machine à cinématique non triviale (ex:
scarakins) ce sera généralement le nombre d'articulations contrôlées.

* _JOINTS = 3_ - (Cette variable de configuration est utilisée seulement par
Axis et non par le planificateur de trajectoire du contrôleur de
mouvement.) Elle spécifie le nombre d'articulations (moteurs) que
comporte le système. Par exemple, une machine XYZ avec un seul moteur
pour chacun des 3 axes, comporte 3 articulations (joints). Une machine
à portique avec un seul moteur sur deux de ses axes et deux moteurs
sur le troisième axe, comporte 4 articulations (joints).

* _HOME = 0 0 0_ - Coordonnées de l'origine machine de chaque axe. De nouveau,
pour une machine 4 axes, vous devrez avoir 0 0 0 0. Cette valeur est utilisée
uniquement pour les machines à cinématique non triviale. Sur les
machines avec cinématique triviale, cette valeur est ignorée.

* _LINEAR_UNITS=<units>_ - (((LINEAR UNITS)))Le nom des unités utilisées dans
le fichier INI. Les choix possibles sont _in_, _inch_, _imperial_, _metric_,
_mm_. Cela n'affecte pas les unités linéaires du code NC (pour cela il y a
les mots G20 et G21).

* _ANGULAR_UNITS=<units>_ - (((ANGULAR UNITS)))Le nom des unités utilisées
dans le fichier INI. Les choix possibles sont _deg_, _degree_ (360 pour un
cercle), _rad_, _radian_ (2pi pour un cercle), _grad_, ou _gon_ (400 pour un
cercle). Cela n'affecte pas les unités angulaires du code NC. Dans le code
RS274NGC, les mots A-, B- et C- sont toujours exprimés en degrés.

* _DEFAULT_VELOCITY = 0.0167_ - La vitesse initiale de jog des axes linéaires,
en unités par seconde. La valeur indiquée ici correspond à une unité par minute.

* _DEFAULT_ACCELERATION = 2.0_ - Dans les machines à cinématique non triviale,
l'accélération utilisée pour _teleop_ jog (espace cartésien), en unités machine
par seconde par seconde.

* _MAX_VELOCITY = 5.0_ - (((MAX VELOCITY))) Vitesse maximale de déplacement
pour les axes, exprimée en unités machine par seconde. La valeur indiquée est
égale à 300 unités par minute.

* _MAX_ACCELERATION = 20.0_ - (((MAX ACCELERATION))) Accélération maximale pour
les axes, exprimée en unités machine par seconde par seconde.

* _POSITION_FILE = position.txt_ - Si réglée à une valeur non vide, les
positions des axes (joins) sont enregistrées dans ce fichier. Cela permet donc
de redémarrer avec les mêmes coordonnées que lors de l'arrêt, ce qui suppose,
que hors puissance, la machine ne fera aucun mouvement pendant tout son arrêt.
C'est utile pour les petites machines sans contact d'origine machine.
Si vide, les positions ne seront pas enregistrées et commenceront à 0 à
chaque fois que LinuxCNC démarrera.

* _NO_FORCE_HOMING = 1_ - LinuxCNC oblige implicitement l'utilisateur à
référencer la machine par une prise d'origine machine avant de pouvoir lancer
un programme ou exécuter une commande dans le MDI, seuls les mouvements de Jog
sont autorisés avant les prises d'origines. Mettre NO_FORCE_HOMING = 1
permet à l'opérateur averti de s'affranchir de cette restriction de
sécurité lors de la phase de mise au point de la machine.

[WARNING]
_NO_FORCE_HOMING_ mise à 1 permettra à la machine de franchir les
limites logicielles pendant les mouvements ce qui n'est pas souhaitable
pour un fonctionnement normal!

[[sub:Sections-AXIS]]
=== Sections [AXIS_n]
(((Sections [AXIS_n] du fichier ini)))

Les sections [AXIS_0], [AXIS_1], etc. contiennent les paramètres
généraux des composants individuels du module de contrôle. La
numérotation des sections axis commence à 0 et augmente jusqu'au nombre
d'axes spécifiés dans la variable [TRAJ] AXES, moins 1.

Généralement (mais pas toujours):

 - AXIS_0 = X
 - AXIS_1 = Y
 - AXIS_2 = Z
 - AXIS_3 = A
 - AXIS_4 = B
 - AXIS_5 = C
 - AXIS_6 = U
 - AXIS_7 = V
 - AXIS_8 = W

* _TYPE = LINEAR_ - Type des axes, soit LINEAR, soit ANGULAR.

* _WRAPPED_ROTARY = 1_ - Lorsque ce paramètre est réglé à 1 pour un axe angulaire
l'axe se déplace de 0 à 359.999 degrés. Les nombres positifs déplacent
l'axe dans le sens positif et les nombres négatifs dans le sens négatif.

* _LOCKING_INDEXER = 1_ - Quand ce paramètre est mis à 1, un mouvement en G0
sur cet axe va produire un signal de déblocage sur la pin _axis.N.unlock_, puis
attendre le signal _axis.N.is-unlocked_ de cet axe pour déplacer l'axe à la 
vitesse rapide prévue pour cet axe. Après ce mouvement, le signal
_axis.N.unlock_ retombera à false et les mouvements attendront que
_axis.N.is-unlocked_ redevienne false. Le mouvement des autres axes n'est pas
autorisé lors du mouvement d'un axe rotatif à verrou.

* _UNITS = inch_ - (((UNITS))) Ce réglage écrase celui des variables
[TRAJ] UNITS si il est spécifié. (ex: [TRAJ]LINEAR_UNITS si le TYPE de cet axe
est LINEAR, [TRAJ]ANGULAR_UNITS si le TYPE de cet axe est ANGULAR)

* _MAX_VELOCITY = 1.2_ - Vitesse maximum pour cet axe en unités machine par
seconde.

* _MAX_ACCELERATION = 20.0_ - Accélération maximum pour cet axe en unités
machine par seconde au carré.

* _BACKLASH = 0.000_ - Valeur de compensation du jeu en unités machine.
Peut être utilisée pour atténuer de petites déficiences du matériel utilisé
pour piloter cet axe. Si un backlash est ajouté à un axe et que des moteurs
pas à pas sont utilisés, la valeur de STEPGEN_MAXACCEL doit être 1.5 à 2
fois plus grande que celle de MAX_ACCELERATION pour cet axe.

* _COMP_FILE = file.extension_ - Fichier dans lequel est enregistrée une
structure de compensation spécifique à cet axe. Le fichier peut être nommé
_xscrew.comp_, par exemple, pour l'axe X. Les noms de fichiers sont sensibles
à la casse et peuvent contenir des lettres et/ou des chiffres. Les valeurs
sont des triplets par ligne séparés par un espace. La première valeur
est nominale (où elle devrait l'être). Les deuxième et troisième valeurs
dépendront du réglage de  COMP_FILE_TYPE. Actuellement la
limite de LinuxCNC est de 256 triplets par axe. Si COMP_FILE est spécifié,
BACKLASH est ignoré. Les valeurs sont en unités machine.

* _COMP_FILE_TYPE = 0 ou 1_ -
** _Si 0:_ Les deuxième et troisième valeurs spécifient la position en avant
(de combien l'axe est en avance) et la position en arrière (de combien l'axe
est en retard), positions qui correspondent à la position nominale.
** _Si 1:_ Les deuxième et troisième valeurs spécifient l'ajustement avant
(à quelle distance de la valeur nominale lors d'un déplacement vers l'avant)
et l'ajustement arrière (à quelle distance de la valeur nominale lors d'un
déplacement vers l'arrière), positions qui correspondent à la position
nominale.

Exemple de triplet avec COMP_FILE_TYPE = 0: 1.00 1.01 0.99 +
Exemple de triplet avec COMP_FILE_TYPE = 1: 1.00 0.01 -0.01

* _MIN_LIMIT = -1000_ - (((MIN LIMIT))) Limite minimale des mouvements de cet
axe (limite logicielle), en unités machine. Quand cette limite tend à être
dépassée, le contrôleur arrête le mouvement.

* _MAX_LIMIT = 1000_ - (((MAX LIMIT))) Limite maximale des mouvements de cet
axe (limite logicielle), en unités machine. Quand cette limite tend à être
dépassée, le contrôleur arrête le mouvement.

* _MIN_FERROR = 0.010_ - (((MIN FERROR))) Valeur indiquant, en unités machine,
de combien le mobile peut dévier à très petite vitesse de la position commandée.
Si MIN_FERROR est plus petit que FERROR, les deux produisent une rampe de
points de dérive. Vous pouvez imaginer un graphe sur lequel une
dimension représente la vitesse et l'autre, l'erreur tolérée. Quand la
vitesse augmente, la quantité d'erreurs de suivi augmente également et
tend vers la valeur FERROR. 

* _FERROR = 1.0_ - (((FERROR))) FERROR est le maximum d'erreur de suivi
tolérable, en unités machine. Si la différence entre la position commandée et la
position retournée excède cette valeur, le contrôleur désactive les
calculs des servomoteurs, positionne toutes les sorties à 0.0 et coupe
les amplis des moteurs. Si MIN_FERROR est présent dans le fichier .ini,
une vitesse proportionnelle aux erreurs de suivi est utilisée. Ici, le
maximum d'erreur de suivi est proportionnel à la vitesse, quand FERROR
est appliqué à la vitesse rapide définie dans [TRAJ]MAX_VELOCITY et
proportionnel aux erreurs de suivi pour les petites vitesses. L'erreur
maximale admissible sera toujours supérieure à MIN_FERROR. Cela permet
d'éviter que de petites erreurs de suivi sur les axes stationnaires
arrêtent les mouvements de manière impromptue. Des petites erreurs de
suivi seront toujours présentes à cause des vibrations, etc. La
polarité des valeurs de suivi détermine comment les entrées sont
interprétées et comment les résultats sont appliqués aux sorties. Elles
peuvent généralement être réglées par tâtonnement car il n'y a que deux
possibilités. L'utilitaire de calibration peut être utilisé pour les
ajuster interactivement et vérifier les résultats, de sorte que les
valeurs puissent être mises dans le fichier INI avec un minimum de
difficultés. Cet utilitaire est accessible dans Axis depuis le menu
_Machine_ puis _Calibration_ et dans TkLinuxCNC depuis le menu _Réglages_
puis _Calibration_.

[[sub:Section-HOMING]]
=== Section [HOMING]

Les paramètres suivants sont relatifs aux prises d'origine, pour plus
d'informations, lire <<sec:Prises-d-origine, le chapitre sur la POM>>.

* _HOME = 0.0_ - La position à laquelle le mobile ira à la fin de la séquence
de prise d'origine.

* _HOME_OFFSET = 0.0_ - Position du contact d'origine machine de l'axe ou
de l'impulsion d'index, en <<sub:Section-TRAJ,unités machine>>. Lorsque le point
d'origine est détecté pendant le processus de prise d'origine, c'est cette
position qui est assignée à ce point. Dans le cas du partage de capteur entre
l'origine et les limites d'axe et de l'utilisation d'une séquence de prise
d'origine qui laisse le capteur dans l'état activé, la valeur de HOME_OFFSET
peut être utilisée pour définir une position du capteur différente du 0 utilisé
alors pour l'origine.

* _HOME_SEARCH_VEL = 0.0_ - (((HOME SEARCH VEL))) Vitesse du mouvement initial
de prise d'origine, en unités machine par seconde. Une valeur de zéro suppose
que la position courante est l'origine machine. Si la machine n'a pas de
contact d'origine, laisser cette valeur à zéro.

* _HOME_LATCH_VEL = 0.0_ - Vitesse du mouvement de dégagement du contact
d'origine, en unités machine par seconde.

* _HOME_FINAL_VEL = 0.0_ - Vitesse du mouvement final entre le contact d'origine
et la position d'origine, en unités machine par seconde. Si cette variable est
laissée à 0 ou absente, la vitesse de déplacement rapide est utilisée. Doit
avoir une valeur positive.

* _HOME_USE_INDEX = NO_ - Si l'encodeur utilisé pour cet axe fournit une
impulsion d'index et qu'elle est gérée par la carte contrôleur, il est possible
de mettre sur Yes. Quand il est sur yes, il aura une incidence sur le type de
séquence de prise d'origine utilisée.

* _HOME_IGNORE_LIMITS = NO_ - Si la machine utilise un seul et même
contact comme limite d'axe et origine machine de l'axe. Cette variable devra
alors être positionnée sur yes. Dans ce cas le contact de limite de cet axe est
ignoré pendant la séquence de prise d'origines. Il est nécessaire de configurer
la séquence pour qu'à la fin du mouvement le capteur ne reste pas dans l'état
activé qui aboutirait finalement à un message d'erreur du capteur de limite.

* _HOME_IS_SHARED = <n>_ - Si l'entrée du contact d'origine est partagée par
plusieurs axes, mettre <n> à 0 pour permettre la POM même si un des contacts
partagés est déjà attaqué. Le mettre à 1 pour interdire la prise d'origine dans
ce cas.

* _HOME_SEQUENCE = <n>_ - Utilisé pour définir l'ordre dans lequel les axes se
succéderont lors d'une séquence de _POM générale_. *<n>* commence à 0, aucun
numéro ne peut être sauté. Si cette variable est absente ou à -1, la POM de l'axe
ne pourra pas être exécutée par la commande _POM générale_. La POM de
plusieurs axes peut se dérouler simultanément.

* _VOLATILE_HOME = 0_ - Lorsqu'il est activé (mis à 1), l'origine machine de
cette articulation sera effacée si la machine est en marche et que l'arrêt
d'urgence est activé. Ceci est utile si la machine possède des contacts
d'origine mais n'a pas de retour de position comme une machine à moteur pas à
pas de type pas/direction.

[[sub:Variables-relatives-aux-servomoteurs]]
=== Variables relatives aux servomoteurs

Les éléments suivants sont pour les systèmes à servomoteurs et à pseudos
servomoteurs. Cette description suppose que les unités en sortie du
composant PID sont des Volts.

* _DEADBAND = 0.000015_ - (dans HAL) Quelle distance est assez proche de la
consigne pour considérer le moteur en position, en unités machine. Cette
variable est fréquemment réglée pour une distance équivalente à 1, 1.5, 2, ou
3 impulsions de comptage du codeur, mais cela n'a rien d'une règle stricte. Un
réglage lâche (large) permet de moins solliciter le servo au détriment de la
précision. Un réglage serré (petit) permettra d'atteindre une grande précision
mais le servo sera plus sollicité.
Est-ce vraiment plus précis si c'est plus incertain ? En règle générale, il est
préférable d'éviter le plus possible de solliciter le servo,  si c'est possible.

Ayez la prudence de ne pas chercher à aller en dessous d'une impulsion de codeur,
sinon vous enverrez votre servo quelque part où il ne sera pas heureux ! Cela
peut arriver entre réglage lent et réglage nerveux et même un réglage impropre
peut provoquer des couinements, des grincements dus aux oscillations provoquées
par ce mauvais réglage. Il est préférable de perdre une ou deux impulsions au
début des réglages, au moins jusqu'à avoir bien dégrossi les réglages.

Exemple de calcul en unités machine par top de codeur à utiliser pour décider de
la valeur de DEADBAND (bande morte):

*+X pouces / top de codeur =+*
*+1 tour / 1000 top de codeur * 1 top de codeur / 4 top en quadrature * 0.2
pouce / tour =+*
*+0.200 pouce / 4000 top de codeur = 0.000050 pouce / top de codeur.+*

* _BIAS = 0.000_ - (dans HAL) (Parfois appelé _offset_) il est utilisé par
hm2-servo et quelques autres.
Le Bias est une valeur constante qui est ajoutée sur la sortie.
Dans la plupart des cas, elle peut rester à zéro.
Toutefois, il peut être intéressant pour compenser un décalage de l'ampli
du servo, ou équilibrer le poids d'un objet se déplaçant verticalement.
Le bias est mis à zéro quand la boucle PID est désactivée, comme
tous les autres composants de la sortie.

* _P = 50_ - (hal) La composante Proportionnelle du gain de l'ampli moteur de
cet axe. Cette valeur multiplie l'erreur entre la position commandée et la
position actuelle en unités machine, elle entre dans le calcul de la tension
appliquée à l'ampli moteur. Les unités du gain *P*  sont des Volts sur des unités
machine, par exemple: *+Volt/mm+* si l'unité machine est le millimètre.

* _I = 0_ - (hal) La composante Intégrale du gain de l'ampli moteur de cet
axe. Cette valeur multiplie l'erreur cumulative entre la position commandée et
la position actuelle en unités machine, elle entre dans le calcul de la tension
appliquée à l'ampli moteur. Les unités du gain *I* sont des Volts sur des unités
machine par seconde, exemple: *+Volt/mm*s+* si l'unité machine est le
millimètre.

* _D = 0_ - (hal) La composante Dérivée du gain de l'ampli moteur de cet axe.
Cette valeur multiplie la différence entre l'erreur courante et les précédentes,
elle entre dans le calcul de la tension appliquée à l'ampli moteur. Les unités
du gain *D* sont des Volts sur des unités machine sur des secondes, exemple:
*+Volt/(mm/s)+* si l'unité machine est le millimètre.

* _FF0 = 0_ - (hal) Gain à priori (retour vitesse) d'ordre 0. Cette valeur est
multipliée par la position commandée, elle entre dans le calcul de la tension
appliquée à l'ampli moteur. Les unités du gain FF0 sont des Volts sur des unités
machine, exemple: *+Volt/mm+* si l'unité machine est le millimètre.

* _FF1 = 0_ - (hal) Gain à priori (retour vitesse) de premier ordre. Cette
valeur est multipliée par l'écart de la position commandée par seconde, elle entre
dans le calcul de la tension appliquée à l'ampli moteur. Les unités du
gain FF1 sont des Volts sur des unités machine par seconde, exemple:
*+Volt/(mm/s)+* si l'unité machine est le millimètre.

* _FF2 = 0_ - (hal)  Gain à priori (retour vitesse) de second ordre. Cette
valeur est multipliée par l'écart de la position commandée par seconde au carré,
elle entre dans le calcul de la tension appliquée à l'ampli moteur. Les
unités du gain FF2 sont des Volts sur des unités machine par des
secondes au carré, exemple: *+Volt/mm/s^2^+* si l'unité machine est le
millimètre.

* _OUTPUT_SCALE = 1.000_ -
+
* _OUTPUT_OFFSET = 0.000_ - (hal)  Ces deux valeurs sont les facteurs d'échelle
et offset pour la sortie de l'axe à l'amplificateurs moteur.
La seconde valeur (offset) est soustraite de la
valeur de sortie calculée (en Volts) puis divisée par la première
valeur (facteur d'échelle), avant d'être écrite dans le convertisseur
D/A. Les unités du facteur d'échelle sont des Volts réels par Volts en
sortie de DAC. Les unités de la valeur d'offset sont en Volts. Ces
valeurs peuvent être utilisées pour linéariser un DAC.
Plus précisément, quand les sorties sont écrites, LinuxCNC converti d'abord
les unités quasi-SI des sorties concernées en valeurs brutes, exemple:
Volts pour un amplificateur DAC. Cette mise à l'échelle ressemble à cela: +
*+raw = output-offset/scale+* la valeur d'échelle peut être obtenue par analyse
des unités, exemple: les unités sont [unités SI en sortie]/[unités de
l'actuateur]. Par exemple, sur une machine sur laquelle une tension de consigne
de l'ampli de 1 Volt donne une vitesse de 250 mm/s : +
*+amplifier [volts] = (output[mm/s] - offset[mm/s]) / 250mm/(s/Volt)+*
+
Notez que les unités d'offset sont en unités machine, exemple:
mm/s et qu'elles sont déjà soustraites depuis la sonde de lecture. La
valeur de cet offset est obtenue en prenant la valeur de votre sortie
qui donne 0,0 sur la sortie de l'actuateur. Si le DAC est linéarisé,
cet offset est normalement de 0.0.

L'échelle et l'offset peuvent être utilisés pour linéariser les DAC,
d'où des valeurs qui reflètent les effets combinés du gain de l'ampli,
de la non linéarité du DAC, des unités du DAC, etc. Pour ce faire,
suivez cette procédure:

- Construire un tableau de calibrage pour la sortie, piloter le DAC
   avec la tension souhaitée et mesurer le résultat. Voir le tableau
   ci-dessous pour un exemple de mesures de tension.
- Par la méthode des moindres carrés, obtenir les coefficients *a*,*b*
   tels que: *+mesure = a*raw+b+*
- Noter que nous voulons des sorties brutes de sorte que nos résultats
   mesurés soient identiques à la sortie commandée. Ce qui signifie:
- *+cmd = a*raw+b+*
- *+raw = (cmd-b)/a+*
-  En conséquence, les coefficients *a* et *b* d'ajustement linéaire
   peuvent être directement utilisés comme valeurs d'échelle et 
   d'offset pour le contrôleur. 
//
// [[cap:Mesure des tensions de sortie]]
//
.Mesure des tensions de sortie

[width="50%", cols="2*^", options="header"]
|========================
|Brutes (Raw) | Mesurées
|-10 | -9.93
|-9 | -8.83
|0 | -0.03
|1 | 0.96
|9 | 9.87
|10 | 10.87
|========================

* _MAX_OUTPUT = 10_ - (hal) La valeur maximale pour la sortie de la
compensation PID pouvant être envoyée sur l'ampli moteur, en Volts. La valeur
calculée de la sortie sera fixée à cette valeur limite. La limite est appliquée
avant la mise à l'échelle de la sortie en unités brutes. La valeur est appliquée
de manière symétrique aux deux côtés, le positif et le négatif.

* _INPUT_SCALE = 20000_ - (((INPUT SCALE))) (hal) Spécifie le nombre
d'impulsions qui correspond à un mouvement de une unité machine telle que fixée
dans la section TRAJ.
Pour un axe linéaire, une unité machine sera égale à la valeur de LINEAR_UNITS.
Pour un axe angulaire, une unité machine sera égale à la valeur de ANGULAR_UNITS.
Un second chiffre, si spécifié, sera ignoré.
Par exemple, sur un codeur de 2000 impulsions par tour(((codeur))), un
réducteur de 10 tours/pouce et des unités demandées en pouces, nous avons: +
*+INPUT_SCALE = 2000 top/tour * 10 tour/pouce = 20000 top/pouce+*

[[sub:Variables-relatives-aux-moteurs-pas-a-pas]]
=== Variables relatives aux moteurs pas à pas

* _SCALE = 4000_ - (((INPUT SCALE))) (hal) Spécifie le nombre d'impulsions qui
correspond à un mouvement d'une unité machine comme indiqué dans la section [TRAJ].
Pour les systèmes à moteurs pas à pas, c'est le nombre d'impulsions de pas
nécessaires pour avancer d'une unité machine. Pour un axe linéaire, une unité
machine sera égale à la valeur de LINEAR_UNITS.
Pour un axe angulaire, une unité machine sera égale à la valeur de ANGULAR_UNITS.
Pour les systèmes à servomoteurs, c'est le nombre d'impulsions
de retour signifiant que le mobile a avancé d'une unité machine.
Un second nombre, si spécifié, sera ignoré.
Par exemple, un pas moteur de 1.8 degré, en mode demi-pas, avec une
réduction de 10 tours/pouce et des unités souhaitées en pouces, nous avons: +
*+scale = 2 pas/1.8 degrés * 360 degrés/tour * 10 tour/pouce = 4000 pas/pouce+*

(D'anciens fichiers .ini et .hal utilisaient INPUT_SCALE pour cette valeur.)

* _STEPGEN_MAXACCEL = 21.0_ - (hal) Limite d'accélération pour le générateur
de pas. Elle doit être 1% à 10% supérieure à celle de l'axe MAX_ACCELERATION.
Cette valeur améliore les réglages de la _boucle de position_ de stepgen. Si
une correction de jeu a été appliquée sur un axe, alors STEPGEN_MAXACCEL doit
être 1,5 à 2 fois plus grande que MAX_ACCELERATION.

* _STEPGEN_MAXVEL = 1.4_ - (hal) Les anciens fichiers de configuration avaient
également une limite de vitesse du générateur de pas. Si spécifiée, elle doit
aussi être 1% à 10% supérieure à celle de l'axe MAX_VELOCITY. Des tests
ultérieurs ont montré que l'utilisation de STEPGEN_MAXVEL n'améliore pas le
réglage de la boucle de position de stepgen.

[[sub:Section-EMCIO]]
=== Section [EMCIO]
(((Section [EMCIO] du fichier ini)))

* _CYCLE_TIME = 0.100_ - La période en secondes, à laquelle EMCIO va tourner.
La mettre à 0.0 ou à une valeur négative fera que EMCIO tournera en permanence.
Il est préférable de ne pas modifier cette valeur.

* _TOOL_TABLE = tool.tbl_ - Ce fichier contient les informations des outils,
décrites dans le Manuel de l'utilisateur.

* _TOOL_CHANGE_POSITION = 0 0 2_ - Quand trois digits sont utilisés, spécifie
la position XYZ ou le mobile sera déplacé pour le changement d'outil.
Si six digits sont utilisés, spécifie l'emplacement ou sera envoyé
le mobile pour réaliser le changement d'outil sur une machine de type XYZABC et
de même, sur une machine de type XYZABCUVW lorsque 9 digits sont utilisés.
Les variables relatives à la position du changement d'outil peuvent être
combinées, par exemple; en combinant TOOL_CHANGE_POSITION avec
TOOL_CHANGE_QUILL_UP il est possible de déplacer d'abord Z puis X et Y.

* _TOOL_CHANGE_WITH_SPINDLE_ON = 1_ - Avec cette valeur à 1, la broche reste en
marche pendant le changement d'outil. Particulièrement utile sur les tours.

* _TOOL_CHANGE_QUILL_UP = 1_ - Avec cette valeur à 1, l'axe Z sera déplacé sur
son origine machine avant le changement d'outil. C'est l'équivalent d'un G0 G53 Z0.

* _TOOL_CHANGE_AT_G30 = 1_ - Avec cette valeur à 1, le mobile sera envoyé sur
un point de référence prédéfini par G30 dans les paramètres 5181-5186. Pour
plus de détails sur les paramètres de G30, voir le chapitre relatif au G-code
dans le Manuel de l'utilisateur.

* _RANDOM_TOOLCHANGER = 1_ - C'est pour des machines qui ne peuvent pas placer
l'outil dans la poche il vient. Par exemple, les machines qui change l'outil
dans la poche active avec l'outil dans la broche.