summaryrefslogtreecommitdiff
path: root/docs/src/config/stepper_fr.txt
blob: 53d99066654fba0294ad4321dba18946b1a7471e (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
:lang: fr
:toc:

= Configuration d'un système pas/direction (dir/step)

[[cha:config-steppers]] (((Configuration pas/direction)))


[[sec:Introduction]]
== Introduction

Ce chapitre décrit quelques uns des réglages les plus fréquents, sur
lesquels l'utilisateur aura à agir lors de la mise au point de LinuxCNC. En
raison de l'adaptabilité de LinuxCNC, il serait très difficile de les
documenter tous en gardant ce document relativement concis.

Le système rencontré le plus fréquemment chez les utilisateurs de LinuxCNC
est un système à moteurs pas à pas. Les interfaces de pilotage de ces
moteurs recoivent de LinuxCNC des signaux de pas et de direction.

C'est le système le plus simple à mettre en oeuvre parce que les
moteurs fonctionnent en boucle ouverte (pas d'information de retour des
moteurs), le système nécessite donc d'être configuré correctement pour
que les moteurs ne perdent pas de pas et ne calent pas.

Ce chapitre s'appuie sur la configuration fournie d'origine avec LinuxCNC
appelée _stepper_(((stepper))) et qui se trouve habituellement dans
_/etc/linuxcnc/sample-configs/stepper_.

[[sec:Maximum-step-rate]]
== Fréquence de pas maximale(((Frequence de pas maximale)))

Avec la génération logicielle des pas la fréquence maximale en sortie,
pour les impulsions de pas et de direction, est de une impulsion pour
deux BASE_PERIOD. La fréquence de pas maximale accessible pour un axe
est le produit de MAX_VELOCITY et de INPUT_SCALE. Si la fréquence
demandée est excessive, une erreur de suivi se produira (following
error), particulièrement pendant les jog rapides et les mouvements en
G0.

Si votre interface de pilotage des moteurs accepte des signaux
d'entrée en quadrature, utilisez ce mode. Avec un signal en quadrature,
un pas est possible pour chaque BASE_PERIOD, ce qui double la fréquence
maximum admissible.

Les autres remèdes consistent à diminuer une ou plusieurs variables:
BASE_PERIOD (une valeur trop faible peux causer un bloquage du PC),
INPUT_SCALE (s'il est possible sur l'interface de pilotage de
sélectionner une taille de pas différente, de changer le rapport des
poulies ou le pas de la vis mère), ou enfin MAX_VELOCITY et
STEPGEN_MAXVEL.

Si aucune combinaison entre BASE_PERIOD, INPUT_SCALE et MAX_VELOCITY
n'est fonctionnelle, il faut alors envisager un générateur de pas
externe (parmis les contrôleurs de moteurs pas à pas universels
supportés par LinuxCNC)

[[sec:Brochage]]
== Brochage
(((brochage)))

LinuxCNC est très flexible et grâce à la couche d'abstraction de HAL
(Hardware Abstraction Layer) il est facile de spécifier que tel signal
ira sur telle broche. 

Voir le tutoriel de HAL pour plus d'informations(((HAL)))).

Comme décrit dans l'introduction et la manuel de HAL, il comporte des
composants dont il fourni les signaux, les pins et les paramètres.

Les premiers signaux et pins relatifs au brochage sont:footnote:[Note:
pour rester concis, nous ne présenterons qu'un seul axe, tous
les autres sont similaires.]
----
signaux: Xstep, Xdir et Xen
pins: parport.0.pin-XX-out & parport.0.pin-XX-in
----

Pour configurer le fichier ini, il est possible de choisir entre les
deux brochages les plus fréquents, devenus des standards de fait, le
brochage standard_pinout.hal ou le brochage xylotex_pinout.hal. Ces
deux fichiers indiquent à HAL comment raccorder les différents signaux
aux différentes pins. Dans la suite, nous nous concentrerons sur le
brochage _standard_pinout.hal_.


== Le fichier standard_pinout.hal[[sec:standard-pinout.hal]]

(((standard pinout))) 

Ce fichier contient certaines commandes de HAL et habituellement
ressemble à celà:

----
# standard pinout config file for 3-axis steppers
# using a parport for I/O
#

# first load the parport driver
loadrt hal_parport cfg="0x0378"

#
# next connect the parport functions to threads
# read inputs first
addf parport.0.read base-thread 1

# write outputs last
addf parport.0.write base-thread -1

#
# finally connect physical pins to the signals
net Xstep => parport.0.pin-03-out
net Xdir  => parport.0.pin-02-out
net Ystep => parport.0.pin-05-out
net Ydir  => parport.0.pin-04-out
net Zstep => parport.0.pin-07-out
net Zdir  => parport.0.pin-06-out

# create a signal for the estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in

# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed

# connect "spindle on" motion controller pin to a physical pin
net spindle-on motion.spindle-on => parport.0.pin-09-out

###
### You might use something like this to enable chopper drives when machine ON
### the Xen signal is defined in core_stepper.hal
###
# net Xen => parport.0.pin-01-out

###
### If you want active low for this pin, invert it like this:
###
# setp parport.0.pin-01-out-invert 1

###
### A sample home switch on the X axis (axis 0).  make a signal,
### link the incoming parport pin to the signal, then link the signal
### to LinuxCNC's axis 0 home switch input pin
###
# net Xhome parport.0.pin-10-in => axis.0.home-sw-in

###
### Shared home switches all on one parallel port pin?
### that's ok, hook the same signal to all the axes, but be sure to 
### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file.  See the
### user manual!
###
# net homeswitches <= parport.0.pin-10-in
# net homeswitches => axis.0.home-sw-in
# net homeswitches => axis.1.home-sw-in
# net homeswitches => axis.2.home-sw-in

###
### Sample separate limit switches on the X axis (axis 0)
###
# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in
# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in

###
### Just like the shared home switches example, you can wire together
### limit switches.  Beware if you hit one, LinuxCNC will stop but can't tell
### you which switch/axis has faulted.  Use caution when recovering from this.
###
# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in

----

Les lignes commençant par *#* sont des commentaires, aident à la
lecture du fichier.

[[sec:Vue-d-ensemble-standard-pinout-hal]]
== Vue d'ensemble du fichier standard_pinout.hal

Voici les opérations qui sont exécutées quand le fichier
standard_pinout.hal est lu par l'interpréteur:

 . Le pilote du port parallèle est chargé (voir le Parport section de 
   le Manuel de HAL pour plus de détails)
 . Les fonctions de lecture/écriture du pilote sont assignée au thread
   «Base thread» footnote:[Le thread le plus rapide parmis les réglages
   de LinuxCNC, habituellement il
   n'y a que quelques microsecondes entre les exécutions de ce code.]
 . Les signaux du générateur de pas et de direction des axes X,Y,Z...
   sont raccordés aux broches du port parallèle
 . D'autres signaux d'entrées/sorties sont connectés (boucle d'arrêt
   d'urgence, boucle du changeur d'outil...)
 . Un signal de marche broche est défini et raccordé à une broche du port
   parallèle

[[sec:Modifier-standard-pinout-hal]]
== Modifier le fichier standard_pinout.hal

Pour modifier le fichier standard_pinout.hal, il suffit de l'ouvrir
dans un éditeur de texte puis d'y localiser les parties à modifier.

Si vous voulez par exemple, modifier les broches de pas et de
direction de l'axe X, il vous suffit de modifier le numéro de la
variable nommée _parport.0.pin-XX-out_:
----
net Xstep parport.0.pin-03-out 
net Xdir  parport.0.pin-02-out
----

peut être modifiée pour devenir:
----
net Xstep parport.0.pin-02-out 
net Xdir  parport.0.pin-03-out
----

ou de manière générale n'importe quel numéro que vous souhaiteriez.

Attention: il faut être certain de n'avoir qu'un seul signal connecté
à une broche.

[[sec:Modifier-la-polarite]]
== Modifier la polarité d'un signal
(((signal polarite)))

Si une interface attends un signal _actif bas_, ajouter une ligne avec
le paramètre d'inversion de la sortie, _-invert_. Par exemple, pour
inverser le signal de rotation de la broche:
----
setp parport.0.pin-09-invert TRUE
----

[[sec:PWM-Vitesse-broche]]
== Ajouter le contrôle de vitesse broche en PWM
(((Vitesse broche PWM)))

Si votre vitesse de broche peut être contrôlée par un signal de PWM,
utilisez le composant _pwmgen_ pour créer ce signal:
----
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value
net spindle-on motion.spindle-on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out
setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM
----

Ce qui donnera le fonctionnement suivant, pour un signal PWM à: 0%
donnera une vitesse de 0tr/mn, 10% une vitesse de 180tr/mn, etc. Si un
signal PWM supérieur à 0% est requis pour que la broche commence à
tourner, suivez l'exemple du fichier de configuration _nist-lathe_ qui
utilise un composant d'échelle (_scale_).

[[sec:Ajouter-signal-enable]]
== Ajouter un signal de validation *enable*
(((signal enable)))

Certains pilotes de moteurs requiert un signal de validation _enable_
avant d'autoriser tout mouvement du moteur. Pour celà des signaux sont
déjà définis et appelés _Xen_, _Yen_, _Zen_.

Pour les connecter vous pouvez utilisez l'exemple suivant:
----
net Xen parport.0.pin-08-out
----

Il est possible d'avoir une seule pin de validation pour l'ensemble
des pilotes, ou plusieurs selon la configuration que vous voulez. Notez
toutefois qu'habituellement quand un axe est en défaut, tous les autres
sont invalidés aussi de sorte que, n'avoir qu'un seul signal/pin de
validation pour l'ensemble est parfaitement sécurisé.

== Ajouter un bouton d'Arrêt d'Urgence externe
(((A/U)))

Comme vous pouvez <<sec:standard-pinout.hal,le voir ici>>,
par défaut la configuration standard n'utilise pas de bouton d'Arrêt
d'Urgence externe. footnote:[Une explication complète sur la manière de
gérer les circuiteries d'Arrêt d'Urgence se trouve sur le 
http://wiki.linuxcnc.org/[ wiki(en)] et dans le Manuel de l'intégrateur.

Pour ajouter un simple bouton d'AU externe (ou plusieurs en série) vous
devez remplacer la ligne suivante:

----
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
----

par

----
net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in
----


Ce qui implique qu'un bouton d'Arrêt d'Urgence soit connecté sur la
broche 01 du port parallèle. Tant que le bouton est enfoncé (le contact
ouvert)footnote:[Utiliser exclusivement des contacts normalement fermés
pour les A/U.], 
LinuxCNC restera dans l'état _Arrêt d'Urgence_ (ESTOP). Quand le bouton
externe sera relâché, LinuxCNC passera immédiatement dans l'état 
_Arrêt d'Urgence Relâché_ (ESTOP-RESET) vous pourrez ensuite mettre 
la machine en marche en pressant le bouton _Marche machine_ (((marche machine)))
et vous êtes alors prêt à continuer votre travail avec LinuxCNC.