summaryrefslogtreecommitdiff
path: root/docs/src/install/Latency_Test_fr.txt
blob: b4bc53e4c724fdc3a33635990cf61934f51f7b9e (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
:lang: fr
:toc:

= Test des capacités temps réel

[[cha:test-de-latence]] (((Test de latence)))

== Test de latence

Ce test est le premier test qui doit être effectué sur un PC
pour savoir si celui-ci est capable de piloter une machine CNC.

La latence correspond au temps pris par le PC pour stopper ce qui est
en cours et répondre à une requête externe. Dans notre cas, la requête
est l'horloge qui sert au cadencement des impulsions de pas. Plus basse
est la latence, plus rapide pourra être l'horloge, plus rapides et plus
douces seront les impulsions de pas.

La latence est de loin plus importante que la vitesse du CPU.
Un vieux Pentium III qui répond aux interruptions avec 10 microsecondes
entre chacune, peut donner de meilleurs résultats que le dernier modèle
de µP ultra rapide.

Le CPU n'est pas le seul facteur déterminant le temps de latence.
Les cartes mères, les cartes vidéo, les ports USB et
de nombreuses autres choses peuvent détériorer le temps de latence.
La meilleure façon de savoir si le matériel envisagé est apte, c'est
d'exécuter _un test de latence_.

La seule façon de découvrir ce qu'il en est sur un PC est d'exécuter le test
de latence de HAL.
Pour exécuter ce test, ouvrir une fenêtre de terminal à partir de _Applications
→ Accessoires → Terminal_ et exécuter la commande suivante:

----
latency-test
----

Une fenêtre comme ci-dessous devrait s'ouvrir:

.Test de latence de HAL

image::../config/images/latency.png[]

Alors que le test est en cours d'exécution, il faut charger l'ordinateur au
maximum. Déplacer les fenêtres sur l'écran. Surfer sur le Web. Écouter de la
musique. Exécuter un programme OpenGL comme glxgears. L'idée est de charger le
PC au maximum pour que le temps de latence soit mesuré dans le cas le plus
défavorable et donc, connaitre la latence maximale.

[NOTE]
Ne pas exécuter LinuxCNC ou Stepconf pendant que latency-test est
en cours d'exécution.

La colonne _max jitter_ et la ligne _Base Thread_ de l'exemple ci-dessus
donne _9075_. Ce qui représente 9075 nanosecondes, soit 9.075 microsecondes.
Noter ce nombre et l'entrer dans Stepconf quand il sera demandé.

Dans cet exemple de test de latence il n'a fallu que quelques
secondes pour afficher cette valeur. Il est toutefois préférable de le laisser
tourner pendant plusieurs minutes. Parfois même, dans le pire des
cas, rien ne provoque de latence ou seulement des actions particulières.
Par exemple, une carte mère Intel marchait très bien
la plupart du temps, mais toutes les 64 secondes elle avait une
très mauvaise latence de 300µs. Heureusement, il existe un
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues[correctif].

Alors, comment interpréter les résultats? Si le résultat de Max Jitter est en
dessous d'environ 15-20 µs (15000-20000
nanosecondes), l'ordinateur pourra donner d'excellents résultats
pour la génération logicielle des pas. Si le temps de latence est à
plus de 30-50 microsecondes, de bons résultats seront obtenus, mais la
vitesse maximum sera un peu faible, spécialement si des micropas sont
utilisés ou si le pas de la vis est fin. Si les résultats sont de 100µS
ou plus (100,000 nanosecondes), alors le PC
n'est pas un bon candidat à la génération des pas. Les résultats
supérieurs à 1 milliseconde (1,000,000 nanosecondes) éliminent,
dans tous les cas, ce PC pour faire tourner LinuxCNC, en utilisant des
micropas ou pas.

[NOTE]
Si une latence élevée est obtenue, il peut être possible de l'améliorer.
Un PC avait une très mauvaise latence (plusieurs millisecondes) en utilisant
la carte graphique interne. Un carte graphique d'occasion à $5US a résolu le
problème. LinuxCNC n'exige pas de matériel de pointe.

== Adresses des ports

Pour ceux qui construisent leur matériel, il est facile et
économique d'augmenter le nombre d'entrées sorties d'un PC en lui
ajoutant une carte PCI fournissant un ou deux ports parallèles
supplémentaires. Faire suivre ces ports d'une couche
d'opto-isolation est utile pour éviter les courts circuits pouvant
détruire la carte, voir même toute la carte mère. LinuxCNC supporte un
maximum de 8 ports parallèles.

Certaines parmi les bonnes cartes parallèles sont à base de
chipset Netmos. Elles fournissent un signal +5V bien propre, elles
fournissent un ou deux ports parallèles.

Pour trouver les adresses d'entrées/sorties de ces cartes, ouvrir
une console et utiliser la commande en ligne:

----
lspci -v
----

Rechercher ensuite dans la liste de matériel fourni, le nom du
chipset de la nouvelle carte, dans cette exemple c'est l'entrée
NetMos Technology pour une carte à deux ports:

----
0000:01:0a.0 Communication controller: \
      Netmos Technology PCI 9815 Multi-I/O Controller (rev 01)
      Subsystem: LSI Losgic / Symbios Logic 2POS (2 port parallel adapter)
      Flags: medium devsel, IRQ 5
      I/O ports at b800 [size=8]
      I/O ports at bc00 [size=8]
      I/O ports at c000 [size=8]
      I/O ports at c400 [size=8]
      I/O ports at c800 [size=8]
      I/O ports at cc00 [size=16]
----

Après expérimentation, il se trouve que le premier port (incorporé
à la carte) utilise la troisième adresse de la liste (c000) et le
deuxième port (raccordé par une nappe) utilise la première adresse
(b800).

Il est alors possible d'ouvrir dans l'éditeur le fichier .hal de la
machine et d'insérer l'adresse trouvée à l'endroit approprié.

----
loadrt hal\_parport cfg="0x378 0xc000"
----

Noter la présence des guillemets "" encadrant les deux adresses,
ils sont obligatoires dès qu'il y a plus d'une carte.

Il est nécessaire également d'ajouter les fonctions de lecture
(read) et d'écriture (write) pour la nouvelle carte. Par exemple:

----
addf parport.1.read base-thread 1
addf parport.1.write base-thread -1
----

Noter que les valeurs peuvent être différentes de celles de cet
exemple. Les cartes Netmos sont Plug-N-Play, elles peuvent donc
changer leur adressage selon le connecteur PCI dans lequel elles
sont placées. Si l'installation des cartes PCI de
la machine est modifiée, ne pas oublier de vérifier leurs adresses avant de
lancer LinuxCNC.


// vim: set syntax=asciidoc: