emc2 integrator manual fr

Upload: sanae-larbi

Post on 18-Jul-2015

749 views

Category:

Documents


1 download

TRANSCRIPT

Manuel de lintgrateur V2.5 16/01/2012

i

Manuel de lintgrateur V2.5 16/01/2012

Manuel de lintgrateur V2.5 16/01/2012

ii

Table des matires

1

Concepts importants pour lintgrateur 1.1 Systme de pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.1.2 1.2 Priode de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timing des pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 1 2 2 2 3 3 4 4 4 4 4

Systmes servomoteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 Opration de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terme proportionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terme intgral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terme driv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rglage de la boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rglage manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

RTAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I2

Conguration dEMC2Test des capacits temps rel 2.1 2.2 Test de latence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adresses des ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56 6 7 9 9 9

3

Dmarrage dEMC2 3.1 3.2 3.3 3.4 Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers utiliss pour la conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Double passe (TWOPASS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Organisation du chier INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.4.1 3.4.2 3.4.3 3.4.4 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Dnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.5

Dtails des sections du chier ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Manuel de lintgrateur V2.5 16/01/2012

iii

3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9

Section EMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Section DISPLAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Section FILTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Section RS274NGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Section EMCMOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Section TASK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Section HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Section HALUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Section TRAJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.5.10 Section AXIS_n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5.10.1 Variables relatives aux prises dorigines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5.10.2 Variables relatives aux servomoteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5.10.3 Variables relatives aux moteurs pas pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5.11 Section EMCIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Prise dorigine 4.1 24

La prise dorigine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.1.1 Squence de prise dorigine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.1.1.1 4.1.1.2 4.1.1.3 4.1.1.4 4.1.1.5 4.1.1.6 4.1.1.7 4.1.1.8 4.1.1.9 Vitesse de recherche (HOME_SEARCH_VEL = 0) . . . . . . . . . . . . . . . . . . . . . . . 26 Vitesse de dtection (HOME_LATCH_VEL = 0) HOME_IGNORE_LIMITS = YES/NO HOME_USE_INDEX = YES/NO . . . . . . . . . . . . . . . . . . . . . . . . 26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

HOME_OFFSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Position de lorigine (HOME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

HOME_IS_SHARED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 HOME_SEQUENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 VOLATILE_HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.1.10 LOCKING_INDEXER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.1.11 Les variables de la POM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Tours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2.1 4.2.2 5 Plan par dfaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Rglages INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 29

EMC2 et HAL 5.1

motion (realtime) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.1 5.1.2 5.1.3 5.1.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Paramtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Manuel de lintgrateur V2.5 16/01/2012

iv

5.2

axis.N (temps rel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.1 5.2.2 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Paramtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.3

iocontrol (espace utilisateur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.3.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 35

6

Conguration dun systme pas/direction (dir/step) 6.1 6.2 6.3

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Frquence de pas maximale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Brochage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 Le chier standard_pinout.hal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Vue densemble du chier standard_pinout.hal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Modier le chier standard_pinout.hal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Modier la polarit dun signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Ajouter le contrle de vitesse broche en PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Ajouter un signal de validation enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Ajouter un bouton dArrt dUrgence externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 40

7

PyVCP 7.1 7.2 7.3 7.4 7.5

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 pyVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Scurit avec pyVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Utiliser pyVCP avec AXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Documentation des widgets de pyVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.5.1 7.5.2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Notes gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.5.2.1 7.5.2.2 7.5.2.3 7.5.3 7.5.4 7.5.5 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Editer un chier XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

LED ronde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 LED rectangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Bouton (button) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.5.5.1 7.5.5.2 7.5.5.3 Bouton avec texte (Text Button) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Case cocher (checkbutton) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Bouton radio (radiobutton) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.5.6

Afchage dun nombre (number) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.5.6.1 7.5.6.2 7.5.6.3 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Flottant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Nombre s32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Manuel de lintgrateur V2.5 16/01/2012

v

7.5.6.4 7.5.7

Nombre u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Afchage dimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.5.7.1 7.5.7.2 Image Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Image u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.5.8 7.5.9

Barre de progression (bar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Galvanomtre (meter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.5.10 Roue codeuse (spinbox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.5.11 Curseur (scale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.5.12 Bouton tournant (dial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.5.13 Bouton tournant (jogwheel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.6 Documentation des containers de pyVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.6.1 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 8 Bordures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Hbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Vbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Labelframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Onglets (Tabs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 57

Exemples dutilisation de PyVCP 8.1 8.2 8.3

Panneau PyVCP dans AXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Panneaux ottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Boutons de Jog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.3.1 8.3.2 Crer les Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Effectuer les connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

8.4 8.5

Testeur de port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Compte tours pour GS2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.5.1 8.5.2 Le panneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Les connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 67

9

Cration dinterfaces graphiques avec GladeVCP 9.1

Quest-ce que GladeVCP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 9.1.1 PyVCP par rapport GladeVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

9.2

Description du fonctionnement, avec un exemple de panneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 9.2.1 9.2.2 9.2.3 Description de lexemple de panneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Description de lditeur de Glade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Explorer la fonction de rappel de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.3

Crer et intgrer une interface utilisateur Glade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.3.1 Pr-requis: Installation de Glade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Manuel de lintgrateur V2.5 16/01/2012

vi

9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.3.7 9.4 9.5

Lancer Glade pour crer une nouvelle interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . 72 Tester un panneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Prparer le chier de commande HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Intgration dans Axis, comme pour PyVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Intgration dans un nouvel onglet dAxis, la suite des autres . . . . . . . . . . . . . . . . . . . . . . . 74 Intgration dans Touchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Options de GladeVCP en ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Rfrences des Widgets HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.5.6 9.5.7 9.5.8 9.5.9 Nommage des Widgets HAL et de leurs pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Donner des valeurs aux Widgets HAL et leurs pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Le signal hal-pin-changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Les boutons (HAL Button) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Les chelles (Scales) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 La bote dincrment (SpinButton) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Les labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Les conteneurs: HAL_HBox et HAL_Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Les Leds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

9.5.10 La barre de progression (ProgressBar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.5.11 La bote combine (ComboBox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.5.12 Les barres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.5.13 Lindicateur (HAL Meter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.5.14 Gremlin, visualiseur de parcours doutil pour chiers .ngc . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.5.15 Fonction de diagrammes anims: Widgets HAL dans un bitmap . . . . . . . . . . . . . . . . . . . . . . 82 9.6 Rfrences des Widgets EMC Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 9.6.6 9.6.7 9.6.8 9.7 Les widgets EMC Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Les widgets EMC bascule action (ToggleAction) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 La bascule Action_MDI et les widgets Action_MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Un exemple simple: Excuter une commande MDI lors de lappui sur un bouton. . . . . . . . . . . . . . 84 Paramtres passs avec les widgets Action_MDI et ToggleAction_MDI . . . . . . . . . . . . . . . . . . 85 Un exemple plus avanc: Passer des paramtres un sous-programme O-word . . . . . . . . . . . . . . 85 Prparation dune Action_MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Utiliser lobjet EMC Stat pour traiter les changements de statut . . . . . . . . . . . . . . . . . . . . . . . 86

Programmation de GladeVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.7.1 9.7.2 9.7.3 9.7.4 Actions dnies par lutilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Un exemple: ajouter une fonction de rappel en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Lvnement valeur de HAL modie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Modle de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.7.4.1 9.7.4.2 Modle du gestionnaire simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Modle de gestionnaire bas sur les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Manuel de lintgrateur V2.5 16/01/2012

vii

9.7.4.3 9.7.5 9.7.6 9.7.7 9.7.8 9.7.9

Le protocole get_handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Squence dinitialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Multiple fonctions de rappel avec le mme nom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Le drapeau GladeVCP -U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Variables persistantes dans GladeVCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.7.8.1 Examen de la persistance, de la version et de la signature du programme . . . . . . . . . . . . 90 Utilisation des variables persistantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

9.7.10 dition manuelle des chiers .ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.7.11 Ajouter des pins de HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.7.12 Ajout de timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.7.13 Exemples, et lancez votre propre application GladeVCP . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.8 9.9 Q & R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

9.10 Notes dimplmentation: la gestion des touches dans Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10 Notions avances 11 La cinmatique dans EMC2 95 96

11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11.1.1 Les articulations par rapport aux axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11.2 Cinmatiques triviales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11.3 Cinmatiques non triviales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.3.1 Transformation avant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 11.3.2 Transformation inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 11.4 Dtails dimplmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 12 Rglages des pas pas 100

12.1 Obtenir le meilleur pilotage logiciel possible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 12.1.1 Effectuer un test de latence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 12.1.2 Connatre ce dont vos cartes de pilotage ont besoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 12.1.3 Choisir la valeur de BASE_PERIOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 12.1.4 Utiliser steplen, stepspace, dirsetup, et/ou dirhold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 12.1.5 Pas de secret! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 13 Rglages dune boucle PID 104

13.1 Rgulation PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 13.1.1 Les bases du contrle en boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 13.1.2 Thorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.1.2.1 Action Proportionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.1.2.2 Action Intgrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.1.2.3 Action Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.1.3 Rglage dune boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.1.3.1 Mthode simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 13.1.3.2 Mthode de Ziegler-Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Manuel de lintgrateur V2.5 16/01/2012

viii

II

La logique Ladder

107108

14 La programmation en Ladder

14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 14.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 15 Classic Ladder 110

15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 15.2 Ladder Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 15.3 Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 15.4 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 15.4.1 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 15.4.2 Realtime Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 15.4.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 15.5 Loading the Classic Ladder user module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 15.6 Classic Ladder GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 15.6.1 Sections Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 15.6.2 Section Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 15.6.3 The Variable Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 15.6.4 Symbol Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 15.6.5 The Editor window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 15.6.6 Cong Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 15.7 Ladder objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 15.7.1 CONTACTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 15.7.2 IEC TIMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 15.7.3 TIMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 15.7.4 MONOSTABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 15.7.5 COUNTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 15.7.6 COMPARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 15.7.7 VARIABLE ASSIGNMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 15.7.8 COILS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 15.7.8.1 JUMP COIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 15.7.8.2 CALL COIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 15.8 Classic Ladder Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 15.9 GRAFCET Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 15.10Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 15.10.1 MODBUS Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 15.10.2 MODBUS Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 15.10.3 Communication Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Manuel de lintgrateur V2.5 16/01/2012

ix

15.10.4 MODBUS Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 15.11Setting up Classic Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 15.11.1 Add the Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 15.11.2 Adding Ladder Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 15.12Ladder Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 15.12.1 Wrapping Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 15.12.2 Reject Extra Pulses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 15.12.3 External E-Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 15.12.4 Timer/Operate Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 15.12.5 Tool Turret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 15.12.6 Sequential Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

III

Exemples dutilisation

145146 147

16 Deuxime port parallle sur port PCI 17 Contrle de la broche

17.1 Vitesse broche en 0-10V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 17.2 Vitesse de broche en PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 17.3 Marche broche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 17.4 Sens de rotation de la broche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 17.5 Dmarrage en rampe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 17.6 Vitesse de broche avec signal de retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 17.7 Vitesse broche atteinte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 18 Utilisation dune manivelle (MPG) 19 Broche avec variateur GS2 151 153

19.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

IV

Diagnostics & FAQ

154155

20 Moteurs pas pas

20.1 Problmes communs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.1.1 Le moteur navance que dun pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.1.2 Le moteur ne bouge pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.1.3 Distance incorrecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.2 Messages derreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.2.1 Erreur de suivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 20.2.2 Erreur de RTAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 20.3 Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 20.3.1 Tester le timing des pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Manuel de lintgrateur V2.5 16/01/2012

x

21 Petite FAQ Linux

158

21.1 Login automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 21.2 Les Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 21.3 Lister les modules du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 21.4 diter un chier en root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.4.1 A la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.4.2 En mode graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.5 Commandes du terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.5.1 Rpertoire de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.5.2 Changer de rpertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.5.3 Lister les chiers du rpertoire courant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.5.4 Trouver un chier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 21.5.5 Rechercher un texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 21.5.6 Messages du boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 21.6 Problmes matriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 21.6.1 Informations sur le matriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 21.6.2 Rsolution du moniteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 22 Glossary 23 Legal Section 162 167

23.1 Copyright Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 23.2 GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 24 Index 171

Manuel de lintgrateur V2.5 16/01/2012

xi

The EMC2 Team Ce manuel est en volution permanente. Si vous voulez nous aider son criture, sa rdaction, sa traduction ou la prparation des graphiques, merci de contactez nimporte quel membre de lquipe de traduction ou envoyez un courrier lectronique [email protected]. Copyright (c) 2000-2012 LinuxCNC.org Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".. If you

Manuel de lintgrateur V2.5 16/01/2012

xii

do not nd the license you may order a copy from Free Software Foundation, Inc. 59 Temple Place, Suite 330 Boston, MA 02111-1307 Permission est donne de copier, distribuer et/ou modier ce document selon les termes de la GNU Free Documentation License , Version 1.3 ou toute version ultrieure publie par la Free Software Foundation ; sans sections inaltrables, sans texte de couverture ni quatrime de couverture. Une copie de la licence est incluse dans la section intitule GNU Free Documentation License . Si vous ne trouvez pas la licence vous pouvez en commander un exemplaire chez Free Software Foundation, Inc. 59 Temple Place, Suite 330 Boston, MA 02111-1307 (la version de langue anglaise fait foi)AVIS La version Franaise de la documentation EMC2 est toujours en retard sur loriginale faute de disponibilit des traducteurs. Il est recommand dutiliser la documentation en Anglais chaque fois que possible. Si vous souhaitez tre un traducteur bnvole pour la documentation franaise dEMC2, merci de nous contactez.

NOTICE The French version of the EMC2 documentation is always behind the original fault availability of translators. Its recommended to use the English documentation whenever possible. If you would like to be a volunteer editor for the French translation of EMC2, please contact us.

Manuel de lintgrateur V2.5 16/01/2012

1 / 172

Chapitre 1

Concepts importants pour lintgrateur1.11.1.1

Systme de pasPriode de base

Priode de base (BASE_PERIOD) est le mtronome de lordinateur dEMC2. 1 A chaque priode le logiciel de gnration de pas calcule si cest le moment pour une autre impulsion de pas. Une priode de base plus courte permet de produire plus dimpulsions de pas par seconde, mais si elle est trop courte lordinateur passera tout son temps gnrer les impulsions et les autres services seront ralentis voir bloqus. La latence et les besoins des pilotes des moteurs pas pas dterminent la dure minimum de la priode que nous pouvons utiliser. La latence la plus dfavorable peut ne se prsenter que quelquefois par minute ou mme moins. La probabilit que cela se produise au mme moment quun changement de direction du moteur et faible. Donc on peut obtenir des erreurs trs rares et intermittentes qui ruinent une production de temps en temps et il est impossible dintervenir pour rgler le problme. La faon la plus simple dviter ce problme est de choisir un BASE_PERIOD qui est la somme des plus longues exigences de temps de votre priphrique et le pire cas de latence de votre ordinateur. Ceci nest pas toujours le meilleur choix. Par exemple si le pilote moteur a besoin dun maintien du signal de direction dune dure de 20 s est que la latence maximum est de 11 s, la priode de base sera de 11+20=31 s ce qui donne une frquence de gnration de pas de 32258 pas par seconde dans un mode et de 16129 pas par seconde dans un autre mode. Le problme est quavec les exigences de 20us pour le maintien du signal et les 11 s de latence cela nous force utiliser une priode dfavorable de 31 s. Mais le gnrateur de pas du logiciel EMC2 a quelques paramtres qui nous laissent rgler les divers temps dune priode de diffrentes manires. Par exemple, si steplen 2 est chang de 1 2, alors il y aura deux priodes entre le commencement et la n de limpulsion de pas. De mme, si dirhold 3 est chang de 1 3, il y aura au moins trois priodes entre limpulsion de pas et un changement dtat de la commande de direction. Si nous pouvons utilisez dirhold pour rpondre aux exigences des 20us de maintiens du signal de direction, le prochain dlai respecter est la dure de 4.5 s du signal de pas haut, additionnons les 11 s de latence au 4.5 s de signal haut et nous obtenons une priode minimum de 15.5 s. Lorsque nous essayons la valeur de 15.5, nous trouvons que lordinateur est lent, donc nous rglons sur 16 s. Si nous laissons dirhold 1 (par dfaut) alors temps minimum entre un pas et le changement de direction est de 16 s moins les 11 s de latence ce qui nous donne 5us. Ce qui nest pas sufsant il nous manque 15 s. Puisque la priode est 16 s, nous avons besoin dencore une priode. Dans ce cas nous changeons dirhold de 1 2. Maintenant le temps minimal entre la n de limpulsion de pas et le changement du signal de direction et de 5+16=21 s. Nous navons plus nous inquiter dune erreur de direction cause de la latence. Pour plus dinformations sur stepgen voir la section stepgen du manuel de HAL.1. Cette section fait rfrence lutilisation de stepgen le gnrateur de pas intgr EMC2. Certains dispositifs matriels ont leur propre gnrateur de pas et nutilisent pas celui incorpor EMC. Dans ce cas se rfrer au manuel du matriel concern. 2. Steplen se rfre un paramtre qui ajuste la performance du gnrateur de pas incorpor EMC2, stepgen, qui est un composant de HAL. Ce paramtre ajuste la longueur de limpulsion de pas. Continuez lire, on expliquera tous nalement. 3. dirhold se rfre un paramtre qui adapte la longueur du maintien du signal de commande de direction.

Manuel de lintgrateur V2.5 16/01/2012

2 / 172

1.1.2

Timing des pas

Sur certain pilote moteur le rapport entre la dure des espaces et la dure des impulsions nest pas gal, dans ce cas le point (le moment) du pas est important. Si le pas se dclenche sur le front descendant alors, la broche de sortie doit tre inverse.

1.21.2.1

Systmes servomoteursOpration de base

Les systmes servomoteurs sont capables de vitesses plus leves pour une prcision quivalente au moteur pas--pas, mais ils sont plus coteux et complexes. Contrairement aux systmes pas pas, les servo-systmes ncessitent un dispositif de rtroaction pour se positionner. Ils ne fonctionnent pas immdiatement sorti de la boite et ils doivent tre calibrs pour fonctionner contrairement aux moteurs pas pas. Cette diffrence sexplique par le mode de rgulation diffrent des deux systmes. Les servosystmes sont rguls en boucle ferme et le moteur pas pas en boucle ouverte. Que signie boucle ferme ? Regardons un schma simpli et la faon dont un systme de servomoteur fonctionne.

F IGURE 1.1 Boucle ferme Ce diagramme montre que le signal de consigne (de commande) et le signal de retour pilotent lamplicateur sommateur, ensuite celui-ci pilote lamplicateur de puissance, qui pilote le moteur, qui actionne la charge et le dispositif de retour dinformation qui fournis le signal de retour. Cela se peroit comme une boucle ferme o A contrle B, B contrle C, C contrle D et D contrle A. Si vous navez pas travaill avec des systmes servomoteurs auparavant, cela sera sans aucun doute trange au premier abord, surtout par rapport aux plus normal des circuits lectroniques, o le bon droulement des entres vers les sorties est de ne jamais revenir en arrire. 44. Si cela peut aider, lquivalent le plus proche dans le monde numrique ce sont les machines dtat, machines squentielles o ltat des sorties ce moment dpend de ltat que les entres et sorties avaient avant. Si cela naide pas, alors passons.

Manuel de lintgrateur V2.5 16/01/2012

3 / 172

Si tout contrle tout le reste comment cela peut-il fonctionner, qui en a la charge ? La rponse est que EMC2 peut contrler ce systme, mais il doit le faire en choisissant une des diffrentes mthodes de contrle. La mthode de contrle quutilise EMC2, est lune des plus simples et la meilleure appele PID. PID est lacronyme de *P*roportionnelle, *I*ntgrale et *D*rive. La valeur proportionnelle dtermine la raction lerreur actuelle, la valeur intgrale dtermine la raction base sur la somme derreurs rcentes et la valeur drive dtermine la raction base sur la vitesse de variation de lerreur. Ce sont trois techniques communes de mathmatique qui sont appliques pour fournir un processus de suivi dune consigne. Dans le cas dEMC2 le processus que nous voulons contrler est lactuelle position de laxe et le point de consigne qui est la position commande laxe.

F IGURE 1.2 Boucle PID En ajustant trois composantes (proportionnelle, intgrale et drive) dans lalgorithme du contrleur PID, nous pouvons concevoir une rgulation qui sadapte aux exigences de processus spciques. La rponse du contrleur peut tre dcrite en trois termes de ractivit : une erreur, de tolrance, au dpassement du point de consigne et au taux doscillation du systme.

1.2.2

Terme proportionnel

Le terme proportionnel appel plus souvent gain proportionnel applique un changement la sortie qui est proportionnelle a la valeur derreur courante. Un gain lev provoque un grand changement la sortie pour un petit changement de lerreur. Si le gain est trop haut, le systme peut devenir instable. Au contraire, un gain trop faible aboutit une faible rponse de la sortie en raction une grande erreur dentre. Si le gain proportionnel est trop bas, il peut tre trop faible pour rpondre aux perturbations du systme. En labsence de perturbation, un contrle proportionnel pur ne se positionnera pas sa valeur cible, mais conservera un tat derreur statique qui est une fonction du gain proportionnel et du gain du processus. Malgr la compensation de ltat stationnaire, tant la thorie des systmes asservis que la pratique industrielle indiquent que cest le terme proportionnel qui devrait contribuer la plus grande partie du changement de la sortie.

1.2.3

Terme intgral

La contribution du terme intgral est proportionnelle lamplitude de lerreur et sa dure. La somme des erreurs instantanes au l du temps (intgration) donne la compensation accumule qui devrait avoir t corrige prcdemment. Lintgration de lerreur est alors multiplie par le gain dintgral et ajoute la sortie du contrleur. Le terme intgral lorsquil est ajout augmente le mouvement du processus vers la consigne, il limine lerreur de statisme qui se produit avec un rgulateur proportionnel seul. Cependant, puisque le terme intgral doit rpondre aux erreurs accumules par le pass, il peut causer un dpassement de la valeur de consigne actuelle (dpasser le point de consigne et puis crer un cart dans lautre sens).

Manuel de lintgrateur V2.5 16/01/2012

4 / 172

1.2.4

Terme driv

Le taux de variation de lerreur du processus est calcul en dterminant la pente de lerreur au cours du temps (cest--dire sa drive premire en relation avec le temps) et en multipliant ce taux de changement par le gain de driv. Le terme driv ralentit le taux de variation de la sortie du rgulateur, cet effet est plus visible proximit du point de consigne du contrleur. Par consquent, le contrle driv est utilis pour rduire lampleur du dpassement que produit la composante intgrale et pour amliorer la stabilit de la combinaison contrleur processus.

1.2.5

Rglage de la boucle

Si les paramtres du contrleur PID (les gains des termes proportionnel, intgral et driv) sont mal choisis, lentre du processus contrl peut tre instable, cest--dire sa sortie diverge, avec ou sans oscillation et, est limite seulement par la saturation ou la rupture mcanique. Le rglage n dune boucle de contrle consiste en lajustement de ses paramtres de contrle (gain proportionnel, gain intgral, gain driv) aux valeurs optimums pour la rponse dsire.

1.2.6

Rglage manuel

Une mthode de rglage simple consiste rgler les valeurs I et D zro. Augmentons la valeur de P jusqu ce que la sortie oscille, P devrait tre paramtr approximativement la moiti de cette valeur pour diminuer dun quart lamplitude de ce type de rponse. Augmentons sa valeur pour que nimporte quelle compensation soit correcte dans un temps raisonnable pour le processus. Cependant, une valeur trop leve apporte de linstabilit. Ensuite, augmentons la valeur de D pour que la rponse soit sufsamment rapide pour atteindre sa rfrence aprs une perturbation de charge. Cependant, une valeur trop grande de D provoquera une rponse excessive et un dpassement. Un rglage de boucle PID rapide a un dpassement lger pour atteindre le point de consigne plus rapidement, cependant, certains systmes ne peuvent accepter de dpassement, dans ce cas, une boucle ferme sur-amortie est ncessaire, cela require une valeur P signicativement plus basse que celle provoquant loscillation.

1.3

RTAI

Le Real Time Application Interface (RTAI) Interface dapplication temps rel est utilis pour fournir la meilleure performance temps rel. Le noyau patch RTAI permet dcrire des applications avec des contraintes temporelles strictes. RTAI donne la possibilit davoir des logiciels comme ceux de gnration de pas qui ont besoin dun timing prcis.

1.3.1

ACPI

LAdvanced Conguration and Power Interface (ACPI) a de nombreuses et diffrentes fonctions, dont la plupart interfrent avec les performances du systme temps rel. (Pour par exemple: la gestion de lnergie, la rduction de puissance du processeur, la variation de frquence du CPU, etc.) Le noyau EMC2 (et probablement tous les noyaux RTAI-patch) ont les fonctions ACPI dsactives. ACPI prend galement soin de mettre hors tension le systme aprs quun arrt systme a t command, et cest pourquoi vous pourriez avoir besoin de presser sur le bouton dalimentation pour teindre compltement votre ordinateur. Le groupe RTAI a amlior cela dans les versions rcentes, de sorte que votre systme EMC2 peut teindre le systme par lui-mme.

Manuel de lintgrateur V2.5 16/01/2012

5 / 172

Premire partie

Conguration dEMC2

Manuel de lintgrateur V2.5 16/01/2012

6 / 172

Chapitre 2

Test des capacits temps rel2.1 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. Le temps de latence est le temps ncessaire au PC, pour arrter ce quil est en train de faire pour rpondre une requte externe. Dans notre cas, la requte est lhorloge qui sert de rfrence pour les impulsions de pas. Plus la latence est faible, plus lhorloge pourra tre rapide et donc, plus rapides seront les impulsions et plus doux seront les pas des moteurs. Le temps de latence est beaucoup plus important que la vitesse du processeur. Un vieux Pentium III qui rpond aux interruptions avec 10 microsecondes entre chacune, peut donner de meilleurs rsultats que le dernier modle de P ultra rapide. Le CPU nest pas le seul facteur dterminant le temps de latence. Les cartes mres, les cartes vido, les ports USB et de nombreuses autres choses peuvent dtriorer le temps de latence. La meilleure faon de savoir si le matriel envisag est apte, cest dexcuter un test de latence. Faire gnrer les impulsions de pas au logiciel prsente un grand avantage, cest gratuit. Quasiment chaque PC dispose dun port parallle capable de sortir sur ses broches les signaux de pas gnrs par le logiciel. Cependant, les gnrateurs dimpulsions logiciels ont aussi quelques inconvnients: Leur frquence maximum est limite Les trains dimpulsions gnrs sont irrguliers Ils chargent le processeur La seule faon de dcouvrir ce quil en est sur un PC est dexcuter le test de latence de HAL. Pour excuter ce test, ouvrir une fentre de terminal partir de Applications -> Accessoires -> Terminal et excuter la commande suivante:latency-test

Une fentre comme ci-dessous devrait souvrir:

Manuel de lintgrateur V2.5 16/01/2012

7 / 172

Alors que le test est en cours dexcution, il faut charger lordinateur au maximum. Dplacer les fentres sur lcran. Surfer sur le Web. couter de la musique. Excuter un programme OpenGL comme glxgears. Lide est de charger le PC au maximum pour que le temps de latence soit mesur dans le cas le plus dfavorable et donc, connaitre la latence maximale.Note Ne pas excuter EMC2 ou Stepconf pendant que latency-test est en cours dexcution.

La colonne max jitter et la ligne Base Thread de lexemple ci-dessus donne 9075. Ce qui reprsente 9075 nanosecondes, soit 9.075 microsecondes. Noter ce nombre et lentrer dans Stepconf quand il sera demand. Dans cet exemple de test de latence il na fallu que quelques secondes pour afcher cette valeur. Il est toutefois prfrable de le laisser tourner pendant plusieurs minutes. Parfois mme, dans le pire des cas, rien ne provoque de latence ou seulement des actions particulires. Par exemple, une carte mre Intel marchait trs bien la plupart du temps, mais toutes les 64 secondes elle avait une trs mauvaise latence de 300s. Heureusement, il existe un correctif. Alors, comment interprter les rsultats? Si le rsultat de Max Jitter est en dessous denviron 15-20 microsecondes (15000-20000 nanosecondes), lordinateur pourra donner dexcellents rsultats pour la gnration logicielle des pas. Si le temps de latence est plus de 30-50 microsecondes, de bons rsultats seront obtenus, mais la vitesse maximum sera un peu faible, spcialement si des micropas sont utiliss ou si le pas de la vis est n. Si les rsultats sont de 100S ou plus (100,000 nanosecondes), alors le PC nest pas un bon candidat la gnration des pas. Les rsultats suprieurs 1 milliseconde (1,000,000 nanosecondes) liminent, dans tous les cas, ce PC pour faire tourner EMC, en utilisant des micropas ou pas. Noter que si une latence leve est obtenue, il peut tre possible de lamliorer. Un PC avait une trs mauvaise latence (plusieurs millisecondes) en utilisant la carte graphique interne. Un carte graphique Matrox doccasion $5US a rsolu le problme. EMC nexige pas de matriel de pointe.

2.2

Adresses des ports

Pour ceux qui construisent leur matriel, il est facile et conomique daugmenter le nombre dentres sorties dun PC en lui ajoutant une carte PCI fournissant un ou deux ports parallles supplmentaires. Faire suivre ces ports dune couche doptoisolation est utile pour viter les courts circuits pouvant dtruire la carte, voir mme toute la carte mre. EMC2 supporte un maximum de 8 ports parallles. Certaines parmi les bonnes cartes parallles sont base de chipset Netmos. Elles fournissent un signal +5V bien propre, elles fournissent un ou deux ports parallles. Pour trouver les adresses dentres/sorties de ces cartes, ouvrir une console et utiliser la commande en ligne:

Manuel de lintgrateur V2.5 16/01/2012

8 / 172

lspci -v

Rechercher ensuite dans la liste de matriel fourni, le nom du chipset de la nouvelle carte, dans cette exemple cest lentre 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]

Aprs exprimentation, il se trouve que le premier port (incorpor la carte) utilise la troisime adresse de la liste (c000) et le deuxime port (raccord par une nappe) utilise la premire adresse (b800). Il est alors possible douvrir dans lditeur le chier .hal de la machine et dinsrer ladresse trouve lendroit appropri.loadrt hal\_parport cfg="0x378 0xc000"

Noter la prsence des guillemets "" encadrant les deux adresses, ils sont obligatoires ds quil y a plus dune carte. Il est ncessaire galement dajouter les fonctions de lecture (read) et dcriture (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 diffrentes 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 places. Si linstallation des cartes PCI de la machine est modie, ne pas oublier de vrier leurs adresses avant de lancer EMC2.

Manuel de lintgrateur V2.5 16/01/2012

9 / 172

Chapitre 3

Dmarrage dEMC23.1 Fichiers

EMC2 est lanc avec le chier de script EMC. utilisation: EMC [options] [] options: -v = verbose - informations de fonctionnement -d = commandes dchos lcran pour le dbogage Le chier de script emc lit le chier ini et lance EMC. La section [HAL] du chier .ini spcie lordre de chargement des chiers de HAL, si plusieurs sont utiliss. Aprs que les chiers HAL soient chargs, linterface graphique est charge son tour puis le chier HAL POSTGUI. Si des objets pyvcp ont t crs avec des pins de HAL, le chier postgui HAL doit tre pour effectuer les raccordements ces pins. Si aucun chier ini nest pass en argument au script emc le slecteur de conguration est lanc pour permettre lutilisateur de choisir parmis les exemples de conguration.

3.2

Fichiers utiliss pour la conguration

EMC est entirement congur avec des chiers textes classiques. Tous ces chiers peuvent tre lus et modis dans nimporte quel diteur de texte disponible dans toute distribution Linux. 1 Soyez prudent lorsque vous modierez ces chiers, certaines erreurs pourraient empcher le dmarrage dEMC. Ces chiers sont lus chaque fois que le logiciel dmarre. Certains dentre eux sont lus de nombreuses fois pendant lexcution dEMC2. Les chiers de conguration inclus: INI Le chier ini crase les valeurs par dfaut compiles dans le code dEMC. Il contient galement des sections qui sont lues directement par HAL (Hardware Abstraction Layer, couche dabstraction matrielle). HAL Les chiers hal installent les modules de process, ils crent les liens entre les signaux dEMC et les broches spciques du matriel. VAR Ce chier contient une suite de numros de variables. Ces variables contiennent les paramtres qui seront utiliss par linterprteur. Ces valeurs sont enregistres et rutilises dune excution lautre.1. Ne pas confondre un diteur de texte et un traitement de texte. Un diteur de texte comme gedit ou kwrite produisent des chiers uniquement en texte. Les lignes de textes sont spares les unes des autres. Un traitement de texte comme Open Ofce produit des chiers avec des paragraphes, des mises en formes des mots. Ils ajoutent des codes de contrles, des polices de formes et de tailles varies etc. Un diteur de texte na rien de tout cela.

Manuel de lintgrateur V2.5 16/01/2012

10 / 172

TBL Ce chier contient les informations relatives aux outils. Voir la section Fichier doutils du Manuel de lutilisateur pour plus dinfos. NML Ce chier congure les voies de communication utilises par EMC. Il est normalement rgl pour lancer toutes les communications avec un seul ordinateur, peut tre modi pour communiquer entre plusieurs ordinateurs. .emcrc Ce chier enregistre des informations spciques lutilisateur, il a t cr pour enregistrer le nom du rpertoire lorsque lutilisateur choisit sa premire conguration dEMC. 2 Les lments avec le repre (hal) sont utiliss seulement pour les chiers de HAL en exemples. Cest une bonne convention. Dautres lments sont utiliss directement par EMC et doivent toujours avoir la section et le nom donn litem.

3.3

Double passe (TWOPASS)

EMC2.5 supporte le processus dit TWOPASS des chiers de conguration hal, ce qui aide la modularit des chiers hal et amliore leur lisibilit. (les chiers Hal sont spcis dans le chier ini dEMC, dans linstance HAL sous la forme [HAL]HALFILE=nomfi Normalement, un jeu de un ou plusieurs chiers de conguration HAL doivent utiliser une seule et unique ligne loadrt pour charger le module du kernel qui pourra grer de multiples instances dun mme composant. Par exemple: si vous utilisez une portes AND deux entres, composant (and2), trois endroits diffrents de votre conguration, vous ne devez avoir que cette seule ligne quelque part pour le spcier:loadrt and2 count=3

Ce qui fournira nalement les composants and2.0, and2.1, and2.2. Les congurations seront plus lisibles si vous spciez les composants sous la forme names=option quand cest support, par exemple:loadrt and2 names=aa,ab,ac

Ce qui nommera les composants aa, ab, ac. Il pourrait apparaitre un problme de maintenance pour garder la trace des composants et de leur noms aprs 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 dun paramtre dans le chier ini:[HAL]TWOPASS=anything

Avec ce rglage, vous pouvez avoir de multiples spcications comme:loadrt and2 names=aa ... loadrt and2 names=ab,ac ... loadrt and2 names=ad

Ces commandes peuvent tre places dans diffrents chiers HALFILES. Les HALFILES sont traits dans leur ordre dapparition dans le chier ini. Avec le processus double passe, tous les [HAL]HALFILES sont lus une premire fois et les multiples apparitions de la directive loadrt sont cumules pour chaque module. Aucune commande hal nest excute lors de cette passe initiale. Aprs la passe initiale, les modules sont automatiquement chargs en nombre gal au nombre total lors de lutilisation de count=option ou de tous les noms spcis individuellement lors de lutilisation de names=option.2. Habituellement, ce chier est dans le rpertoire home de lutilisateur (ex: /home/user/ )

Manuel de lintgrateur V2.5 16/01/2012

11 / 172

Une seconde passe est alors faite pour excuter toutes les autres instructions de hal spcies dans les HALFILES. Les commandes addf qui associent les fonctions de composants avec lexcution du thread sont excutes selon leur ordre dapparition avec les autres commandes dans cette seconde passe. Bien que vous puissiez utiliser indiffremment les options avec count= ou names=, elles sont toutefois exclusives. Un seul type peut tre utilis pour un mme module. Le processus TWOPASS nest pas effectif lors de lusage de names=option. Cette option permet davoir un nom unique qui soit mnmonique ou plus pertinent avec la conguration. Par exemple: si vous utilisez un composant driv pour estimer la vitesse et lacclration de chacun des coordonnes (x,y,z), utiliser la mthode count= donnera un composant au nom sotrique comme ddt.0, ddt.1, ddt.2, etc. Alternativement, lutilisation de names=option comme:loadrt ddt names=xvit,yvit,zvit ... loadrt ddt names=xaccel,yaccel,zaccel

donnera des composants plus parlants, nomms xvit,yvit,zvit, xaccel,yaccel,zaccel. Beaucoup de composants fournis avec la distribution ont t crs avec comp utility et supportent la mthode names=option. Il sagit notamment de composants logiques qui sont les briques de beaucoup de congurations HAL. Exemples dinclusions:and2,ddt,deadzone,flipflop,or2,or4,mux2,mux4,scale,sum2,timedelay,lowpass

et beaucoup dautres. Les composants utilisateur crs avec comp utility supportent galement automatiquement la mthode names=option. En plus des composants gnrs avec comp utility, quelques autres composants comme encoder et pid supportent aussi names=option.

3.4

Organisation du chier INI

Organisation du chier INI Un chier INI typique suit une organisation simple; commentaires. sections. variables. Chacun de ces lments est spar, sur une seule ligne. Chaque n de ligne ou retour chariot cre un nouvel lment.

3.4.1

Commentaires

Une ligne de commentaires dbute avec un ; ou un #. Si le logiciel qui analyse le chier ini rencontre lun ou lautre de ces caractres, le reste de la ligne est ignore. Les commentaires peuvent tre utiliss pour dcrire ce que font les lments du chier INI.; Ceci est le fichier de configuration de ma petite fraiseuse.

Des commentaires peuvent galement tre utiliss pour choisir entre plusieurs valeurs dune seule variable.DISPLAY = axis # DISPLAY = touchy

Dans cette liste, la variable DISPLAY est positionne sur axis puisque toutes les autres sont commentes. Si quelquun dite une liste comme celle-ci et, par erreur, d-commente deux lignes, cest la premire rencontre qui sera utilise. Notez que dans une ligne de variables, les caractres # et ; nindiquent pas un commentaire.INCORRECT = value # Correct Comment CORRECT = value # and a comment

Manuel de lintgrateur V2.5 16/01/2012

12 / 172

3.4.2

Sections

Les diffrentes parties dun chier .ini sont regroupes en sections. Une section commence par son nom en majuscules entre crochets [UNE_SECTION]. Lordre des sections est sans importance. Les sections suivantes sont utilises par EMC: [EMC] informations gnrales. [DISPLAY] slection du type dinterface graphique. [FILTER] slection dun programme de ltrage. [RS274NGC] ajustements utiliss par linterprteur de g-code. [EMCMOT] rglages utiliss par le contrleur de mouvements temps rel. [TASK] rglages utiliss par le contrleur de tche. [HAL] spcications des chiers .hal. [HALUI] commandes MDI utilises par HALUI. [TRAJ] rglages additionnels utiliss par le contrleur de mouvements temps rel. [AXIS_0] . . . [AXIS_n] groupes de variables relatives aux axes [EMCIO] rglages utiliss par le contrleur dentres/sorties

3.4.3

Variables

Une ligne de variables est compose dun nom de variable, du signe gal (=) et dune valeur. Tout, du premier caractre non blanc qui suit le signe = jusqu la n 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 dtaillent chaque section du chier de conguration, en utilisant des exemples de variables dans les lignes de conguration. Certaines de ces variables sont utilises par EMC. Elles doivent toujours utiliser le nom de section et le nom de variable dans leur appellation. Dautres variables ne sont utilises que par HAL. Les noms des sections et les noms des variables indiques, sont ceux qui sont utiliss dans les exemples de chiers de conguration. Les variables personnalises peuvent tre utilises dans vos chiers HAL avec la syntaxe suivante:[SECTION]VARIABLE

3.4.4

Dnitions

Machine Unit #(unit de la machine) Lunit de mesure pour un axe est dtermine par les paramtres de la section [TRAJ]. Une unit machine est gale une unit telle que spcie par LINEAR_UNITS ou ANGULAR_UNITS.

3.53.5.1

Dtails des sections du chier iniSection EMC

VERSION = $Revision: 1.5 $ Le numro de version du chier INI. La valeur indique ici semble trange, car elle est automatiquement mise jour lors de lutilisation du systme de contrle de rvision. Cest une bonne ide de changer ce numro chaque fois que vous modiez votre chier. Si vous voulez le modier manuellement, il suft de changer le numro sans toucher au reste. MACHINE = ma machine Cest le nom du contrleur, qui est imprim dans le haut de la plupart des fentres. Vous pouvez insrer ce que vous voulez ici tant que a reste sur une seule ligne. DEBUG = 0 Niveau de dbogage 0 signie quaucun message ne sera afch dans le terminal pendant le fonctionnement dEMC2. Les drapeaux de dbogage ne sont gnralement utiles pour les dveloppeurs. Voir ../src/emc/nml_intf/emcglb.h pour les autres paramtres.

Manuel de lintgrateur V2.5 16/01/2012

13 / 172

3.5.2

Section DISPLAY

Les diffrentes interfaces graphiques utilisent diffrentes options qui ne sont pas supportes par toutes les interfaces utilisateur. Les deux principales interfaces pour EMC 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 dinformations, voire la section Interfaces du Manuel de lutilisateur. DISPLAY = axis Le nom de linterface graphique utiliser. Les options disponibles sont les suivantes: axis, touchy, keystick, mini, tkemc, xemc, POSITION_OFFSET = RELATIVE Le systme de coordonnes (RELATIVE ou MACHINE) utiliser au dmarrage de linterface utilisateur. Le systme de coordonnes RELATIVE rete le G92 et le dcalage dorigine G5x actuellement actifs. POSITION_FEEDBACK = ACTUAL Valeur de la position (COMMANDED ou ACTUAL) afcher au dmarrage de linterface utilisateur. La position COMMANDED est la position exacte requise par emc. La position ACTUAL est la position retourne par llectronique des moteurs. MAX_FEED_OVERRIDE = 1.2 La correction de vitesse maximum que loprateur peut utiliser. 1.2 signie 120% de la vitesse programme. MIN_SPINDLE_OVERRIDE = 0.5 Correction de vitesse minimum de broche que loprateur pourra utiliser. 0.5 signie 50% de la vitesse de broche programme. (utile si il est dangereux de dmarrer un programme avec une vitesse de broche trop basse). MAX_SPINDLE_OVERRIDE = 1.0 Correction de vitesse maximum de broche que loprateur pourra utiliser. 1.0 signie 100% de la vitesse de broche programme. PROGRAM_PREFIX = ~/emc2/nc_les Rpertoire par dfaut des chiers de g-codes et emplacement des M-codes dnis par lutilisateur. INTRO_GRAPHIC = emc2.gif Limage afche sur lcran daccueil. INTRO_TIME = 5 Dure dafchage de lcran daccueil. CYCLE_TIME = 0.05 Cycle time in seconds that display will sleep between polls. Les lments suivants sont utiliss uniquement si vous slectionnez AXIS comme programme dinterface utilisateur. DEFAULT_LINEAR_VELOCITY = .25 Vitesse minimum par dfaut pour les jogs linaires, en units machine par seconde. Seulement utilis dans linterface AXIS. MIN_VELOCITY = .01 Valeur approximative minimale du curseur de vitesse de jog. MAX_LINEAR_VELOCITY = 1.0 Vitesse maximum par dfaut pour les jogs linaires, en units machine par seconde. Seulement utilis dans linterface AXIS. MIN_LINEAR_VELOCITY = .01 The approximate lowest value the jog slider. DEFAULT_ANGULAR_VELOCITY = .25 Vitesse minimum par dfaut pour les jogs angulaires, en units machine par seconde. Seulement utilis dans linterface AXIS. MIN_ANGULAR_VELOCITY = .01 Valeur approximative minimale du curseur de vitesse angulaire de jog. MAX_ANGULAR_VELOCITY = 1.0 Vitesse maximum par dfaut pour les jogs angulaires, en units machine par seconde. Seulement utilis dans linterface AXIS.

Manuel de lintgrateur V2.5 16/01/2012

14 / 172

INCREMENTS = 1 mm, .5 mm, . . . Dnit les incrments disponibles pour le jog incremental. Les incrments peuvent tre utilises pour remplacer la valeur par dfaut. Ces valeurs doivent contenir des nombres dcimaux (ex. 0.1000) ou des nombres fractionnaires (ex. 1/16), ventuellement suivis par une unit (une parmi cm, mm, um, inch, in, ou mil). Si aucune unit nest spcie, les units natives de la machine seront utilises. Distances mtriques et impriales peuvent tre mlanges INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um sont des entres valides. OPEN_FILE = /full/path/to/le.ngc Le chier NC utiliser au dmarrage dAXIS. Utilisez une chane vide "" et aucun chier sera charg au dmarrage. EDITOR = gedit Lditeur utiliser lors du choix diter chier du menu dAXIS, pour diter le G-code. Ceci doit tre congur pour que cet item de menu fonctionne. Une autre possibilit valide est: gnome-terminal -e vim. PYVCP = /lename.xml Le chier de description du panneau PyVCP. Voir la section PyVCP. LATHE = 1 Passe lafchage en mode tour, avec vue de dessus et la visu soit en rayon, soit en diamtre. GEOMETRY = XYZABCUVW Contrle de prvisualisation du parcours doutil dun mouvement rotatif. Cet item consiste en une suite de lettre daxe, optionnellement prcd dun signe -. Seuls, les axes dnis par [TRAJ]AXES peuvent tre utiliss. Cette squence spcie lordre dans lequel leffet de chaque axe est appliqu. Un signe - inverse le sens de la rotation. La chaine GEOMETRY correcte dpend de la conguration de la machine et de la cinmatique utilise pour la contrler. La chaine exemple GEOMETRY=XYZBCUVW est pour une machine 5 axes pour laquelle la cinmatique dplace UVW en coordonnes systme de loutil et XYZ dplace la pice en coordonnes systme. Lordre des lettres est important, parce quil donne expressment lordre dans lequel les diffrentes transformations seront appliques. Par exemple: tourner autour de C puis de B est diffrent de tourner autour de B puis de C. La gomtrie na pas deffet sans rotation daxes. ARCDIVISION = 64 Ajuste la valeur de prvisualisation des arcs. Les arcs sont visualiss en les divisant par un nombre de lignes droites; un semi-cercle est divis en ARCDIVISION de tronons. Les valeurs leves donnent une meilleure prcision la prvisualisation, mais sont plus lentes et donne un cran plus saccad. Les petites valeurs sont moins prcises mais plus rapides, lafchage rsultant est plus rapide. La valeur par dfaut de 64 signie quun cercle de 3 pouces maximum sera afch dans moins de 3 centimes de mm, (.03%). 3

MDI_HISTORY_FILE = Le nom du chier dhistorique des commandes MDI. Si rien nest spci, Axis enregistrera cet historique dans .axis_mdi_history dans le rpertoire home de lutilisateur. Cest trs pratique dans le cas de multiples congurations sur la mme machine. HELP_FILE = tkemc.txt Chemin du chier daide (non utilis avec AXIS).

3.5.3

Section FILTER

AXIS a la possibilit denvoyer les chiers chargs au travers dun programme de ltrage. Ce ltrage peut raliser toutes sortes de tches. Parfois aussi simple que sassurer que le programme se termine bien par M2, ou parfois aussi compliqu que dtecter si le chier dentre est une image et en gnrer le G-code pour graver la forme quil ainsi dni. La section [FILTER] du chier ini, contrle comment les ltres fonctionnent. Premirement, pour chaque type de chier, crire une ligne PROGRAM_EXTENSION. Puis, spcier le programme excuter pour chaque type de ltre. Ce programme reoit le nom du chier dentre dans son premier argument, il doit crire le code RS274NGC sur la sortie standard. Cest cette sortie qui sera afche dans la zone de texte, pr-visualise dans la zone du parcours doutil et enn, excute par EMC2 quand il sera mis en marche. PROGRAM_EXTENSION = .extension Description Si votre chier de sortie est tout en majuscules, vous devez ajouter la ligne suivante:PROGRAM_EXTENSION = .NGC XYZ Post Processor3. Dans EMC 2.4 et prcdents, la valeur par dfaut tait de 128.

Manuel de lintgrateur V2.5 16/01/2012

15 / 172

Les lignes suivantes ajoutent le support pour le convertisseur image-to-gcode fourni avec EMC2: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 spcier un interprteur:PROGRAM_EXTENSION = .py Python Script *py = python*

De cette faon, nimporte quel script Python pourra tre ouvert et ses sorties seront traites comme du g-code. Un exemple de script de ce genre est disponible: nc_les/holecircle.py. Ce script cre le g-code pour percer une srie de trous squents la priphrie dun cercle. De nombreux gnrateur de G-code sont par ailleurs disponibles sur le wiki: la rubrique des gnrateurs de G-code. Si la variable denvironnement AXIS_PROGRESS_BAR est active, alors les lignes crites sur stderr de la formeFILTER_PROGRESS=%d

activeront la barre de progression dAXIS qui donnera le pourcentage. Cette fonctionnalit devrait tre utilise par tous les ltres susceptibles de fonctionner pendant un long moment.

3.5.4

Section RS274NGC

PARAMETER_FILE = monchier.var Le chier situ dans le mme rpertoire que le chier ini qui contiendra les paramtres utiliss par linterprteur (enregistr entre chaque lancement). RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98 Une chaine de codes NC qui sera utilise pour initialiser linterprteur. Elle ne se substitue pas la spcication des g-codes modaux du dbut de chaque chier ngc. Les codes modaux des machines diffrent, ils pourraient tre modis par les g-codes interprts plutt dans la session. SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs Spcie une liste, spare par (:) dau maximum 10 rpertoires dans lesquels seront cherchs les chier de sous-programme spcis dans le g-code. Ces rpertoires sont inspects aprs que ne le soit [DISPLAY]PROGRAM_PREFIX (si il est spci) et avant que ne le soit [WIZARD]WIZARD_ROOT (si il est spci). La premire occurrence avec le sousprogramme recherch est utilise. Les rpertoires sont spcis relativement au rpertoire courant du chier ini ou par des chemins absolus. La liste ne doit contenir aucun espace blanc. USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes Spcie une liste de rpertoires, spars par (:) (sans aucun espace blanc) pour les fonctions dnies par lutilisateur. Le nombre maximum de rpertoires est dni au moment de la compilation par: USER_DEFINED_FUNCTION_MAX_DIRS=5. Les rpertoires sont spcis relativement au rpertoire courant du chier ini ou par des chemins absolus. La liste ne doit contenir aucun espace blanc. Une recherche est faite pour chaque fonction utilisateur dnie possible, typiquement M100 M199. Lordre de recherche est le suivant: 1. [DISPLAY]PROGRAM_PREFIX (si il est spci) 2. Si [DISPLAY]PROGRAM_PREFIX nest pas spci, cherche dans le rpertoire par dfaut: nc_les 3. Recherche ensuite dans chaque rpertoire de la liste [RS274NGC]USER_M_PATH Le premier M1xx trouv au cours de la recherche est utilis pour chaque M1xx.

Manuel de lintgrateur V2.5 16/01/2012

16 / 172

3.5.5

Section EMCMOT

Vous pouvez trouver dautres entres dans cette section, elles ne doivent pas tre changes. BASE_PERIOD = 50000 (HAL) Priode de base des tches, exprime en nanosecondes. Cest la plus rapide des horloges de la machine. Avec un systme servomoteurs, il ny a gnralement pas de raison pour que BASE_PERIOD soit plus petite que SERVO_PERIOD. Sur une machine de type step&direction avec gnration logicielle des impulsions de pas, cest BASE_PERIOD qui dtermine 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 llectronique, la frquence maximum absolue est de un pas par BASE_PERIOD. Ainsi, la BASE_PERIOD utilise ici donnera une frquence de pas maximum absolue de 20000 pas par seconde. 50000ns est une valeur assez large. La plus petite valeur utilisable est lie au rsultat du test de latence, la longueur des impulsions de pas ncessaire et la vitesse du P. Choisir une BASE_PERIOD trop basse peut amener des messages Unexpected realtime delay, des blocages ou des reboots spontans. SERVO_PERIOD = 1000000 (hal) Priode de la tche Servo, exprime galement en nanosecondes. Cette valeur sera arrondie un multiple entier de BASE_PERIOD. Elle est utilise aussi sur des systmes bass sur des moteurs pas pas. Cest la vitesse avec laquelle la nouvelle position des moteurs est traite, les erreurs de suivi vries, les valeurs des sorties PID sont rafraichies etc. Sur la plupart des systmes cette valeur nest pas modier. Il sagit du taux de mise jour du planicateur de mouvement de bas niveau. TRAJ_PERIOD = 1000000 (hal) Priode du planicateur de trajectoire, exprime en nanosecondes. Cette valeur sera arrondie un multiple entier de SERVO_PERIOD. Except pour les machines avec une cinmatique particulire (ex: hexapodes) Il ny a aucune raison de rendre cette valeur suprieure SERVO_PERIOD.

3.5.6

Section TASK

TASK = milltask Indique le nom de la "tche" excutable. La "tche" ralise diffrentes actions, telles que communiquer avec les interfaces utilisateur au dessus de NML, communiquer avec le planicateur de mouvements temps rel dans la mmoire partage nonHAL, et interprter le g-code. Actuellement il ny a quune seule tche excutable qui fait sens pour 99,9% des utilisateurs, milltask. CYCLE_TIME = 0.010 Priode exprime en secondes, laquelle EMCTASK va tourner. Ce paramtre affecte lintervalle de polling lors de lattente de la n dun mouvement, lors de lexcution dune pause dinstruction et quand une commande provenant dune interface utilisateur est accepte. Il nest gnralement pas ncessaire de modier cette valeur.

3.5.7

Section HAL

TWOPASS=ON Utilise le processus twopass (double passe) pour charger les composants HAL. Avec le processus TWOPASS, tous les chiers [HAL]HALFILES sont premirement lus et les occurrences multiples des directives loadrt pour chaque module sont cumules. Aucune commande HAL nest excute la premire passe. HALFILE = example.hal Excute le chier example.hal au dmarrage. Si HALFILE est spci plusieurs fois, les chiers sont excuts dans lordre de leur apparition dans le chier ini. Presque toutes les congurations auront au moins un HALFILE . Les systmes moteurs pas pas ont gnralement deux de ces chiers, un qui spcie la conguration gnrale des moteurs core_stepper.hal et un qui spcie le brochage des sorties xxx_pinout.hal. HAL = command Excute command comme tant une simple commande hal. Si HAL est spci plusieurs fois, les commandes sont excutes dans lordre o elles apparaissent dans le chier ini. Les lignes HAL sont excutes aprs toutes les lignes HALFILE. SHUTDOWN = shutdown.hal Excute le chier shutdown.hal quand emc sarrte. Selon les pilotes de matriel utiliss, il est ainsi possible de positionner

Manuel de lintgrateur V2.5 16/01/2012

17 / 172

les sorties sur des valeurs dnies quand emc sarrte normalement. Cependant, parce quil ny a aucune garantie que ce chier sera excut (par exemple, dans le cas dune panne de lordinateur), il ne remplace pas une vritable chane physique darrt durgence ou dautres logiciels de protection des dfauts de fonctionnement. POSTGUI_HALFILE = example2.hal (Seulement avec les interfaces TOUCHY et AXIS) Excute example2.hal aprs que linterface graphique ait cr ses HAL pins.

3.5.8

Section HALUI

MDI_COMMAND = G53 G0 X0 Y0 Z0 Une commande MDI peut tre excut en utilisant halui.mdi-command-00. Incrmente le nombre pour chaque commande numre dans la section [HALUI].

3.5.9

Section TRAJ

La section [TRAJ] contient les paramtres gnraux du module planicateur de trajectoires d EMCMOT. Vous naurez pas modier ces valeurs si vous utilisez EMC avec une machine trois axes en provenance des USA. Si vous tes dans une zone mtrique, utilisant des lments matriels mtriques, vous pourrez utiliser le chier stepper_mm.ini dans lequel les valeurs sont dj congures dans cette unit. COORDINATES = X Y Z Les noms des axes contrler. X, Y, Z, A, B, C, U, V, et W sont valides. Seuls les axes nomms dans COORDINATES seront accepts dans le G-code. Cela na aucun effet sur lordonnancement des noms daxes depuis le G-code (X- Y- Z-) jusquaux numros darticulations. Pour une cinmatique triviale, X est toujours larticulation 0, A est toujours larticulation 4, U est toujours larticulation 7 et ainsi de suite. Il est permis dcrire les noms daxe par paire (ex: X Y Y Z pour une machine portique) mais cela na aucun effet. AXES = 3 Une unit de plus que le plus grand numro darticulation du systme. Pour une machine XYZ, les articulations sont numrotes 0, 1 et 2. Dans ce cas, les AXES sont 3. Pour un systme XYUV utilisant une cinmatique triviale, larticulation V est numrote 7 et donc les AXES devraient tre 8. Pour une machine cinmatique non triviale (ex: scarakins) ce sera gnralement le nombre darticulations contrles. HOME = 0 0 0 Coordonnes de lorigine machine de chaque axe. De nouveau, pour une machine 4 axes, vous devrez avoir 0 0 0 0. Cette valeur est utilise uniquement pour les machines cinmatique non triviale. Sur les machines avec cinmatique triviale, cette valeur est ignore. LINEAR_UNITS= Le nom des units utilises dans le chier INI. Les choix possibles sont in, inch, imperial, metric, mm. Cela naffecte pas les units linaires du code NC (pour cela il y a les mots G20 et G21). ANGULAR_UNITS= Le nom des units utilises dans le chier 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 naffecte pas les units angulaires du code NC. Dans le code RS274NGC, les mots A-, B- et C- sont toujours exprims en degrs. DEFAULT_VELOCITY = 0.0167 La vitesse initiale de jog des axes linaires, en units par seconde. La valeur indique ici correspond une unit par minute. DEFAULT_ACCELERATION = 2.0 Dans les machines cinmatique non triviale, lacclration utilise pour teleop jog (espace cartsien), en units machine par seconde par seconde. MAX_VELOCITY = 5.0 Vitesse maximale de dplacement pour les axes, exprime en units machine par seconde. La valeur indique est gale 300 units par minute. MAX_ACCELERATION = 20.0 Acclration maximale pour les axes, exprime en units machine par seconde par seconde.

Manuel de lintgrateur V2.5 16/01/2012

18 / 172

POSITION_FILE = position.txt Si rgle une valeur non vide, les positions des axes (joins) sont enregistres dans ce chier. Cela permet donc de redmarrer avec les mmes coordonnes que lors de larrt, ce qui suppose, que hors puissance, la machine ne fera aucun mouvement pendant tout son arrt. Cest utile pour les petites machines sans contact dorigine machine. Si vide, les positions ne seront pas enregistres et commenceront 0 chaque fois quEMC dmarrera. NO_FORCE_HOMING = 1 EMC oblige implicitement lutilisateur rfrencer la machine par une prise dorigine machine avant de pouvoir lancer un programme ou excuter une commande dans le MDI, seuls les mouvements de Jog sont autoriss avant les prises dorigines. Mettre NO_FORCE_HOMING = 1 permet lutilisateur averti de saffranchir de cette restriction de scurit lors de la phase de mise au point de la machine.

AVERTISSEMENT NO_FORCE_HOMING mise 1 permettra la machine de franchir les limites logicielles pendant les mouvements ce qui nest pas souhaitable pour un fonctionnement normal!

3.5.10

Section AXIS_n

Les sections [AXIS_0], [AXIS_1], etc. contiennent les paramtres gnraux des composants individuels du module de contrle. La numrotation des sections axis commencent 0 et vont jusquau nombre daxes spci dans la variable [TRAJ] AXES, moins 1. Gnralement (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 paramtre est rgl 1 pour un axe angulaire laxe se dplace de 0 359.999 degrs. Les nombres positifs dplacent laxe dans le sens positif et les nombres ngatifs dans le sens ngatif. UNITS = inch Ce rglage crase celui des variables [TRAJ] UNITS si il est spci. (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 units machine par seconde. MAX_ACCELERATION = 20.0 Acclration maximum pour cet axe en units machine par seconde au carr. BACKLASH = 0.000 Valeur de compensation du jeu en units machine. Peut tre utilise pour attnuer de petites dciences du matriel utilis pour piloter cet axe. Si un backlash est ajout un axe et que des moteurs pas pas sont utiliss, la valeur de STEPGEN_MAXACCEL doit tre 1.5 2 fois plus grande que celle de MAX_ACCELERATION pour cet axe. COMP_FILE = le.extension Fichier dans lequel est enregistre une structure de compensation spcique cet axe. Le chier peut tre nomm xscrew.comp, par exemple, pour laxe X. Les noms de chiers sont sensibles la casse et peuvent contenir des lettres et/ou des chiffres. Les valeurs sont des triplets par ligne spars par un espace. La premire valeur est nominale (o elle devrait ltre). Les deuxime et troisime valeurs dpendront du rglage de COMP_FILE_TYPE. Actuellement la limite

Manuel de lintgrateur V2.5 16/01/2012

19 / 172

dEMC2 est de 256 triplets par axe. Si COMP_FILE est spci, BACKLASH est ignor. Les valeurs sont en units machine. COMP_FILE_TYPE = 0 ou 1 Si 0: Les deuxime et troisime valeurs spcient la position en avant (de combien laxe est en avance) et la position en arrire (de combien laxe est en retard), positions qui correspondent la position nominale. Si 1: Les deuxime et troisime valeurs spcient lajustement avant ( quelle distance de la valeur nominale lors dun dplacement vers lavant) et lajustement arrire ( quelle distance de la valeur nominale lors dun dplacement vers larrire), 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 Limite minimale des mouvements de cet axe (limite logicielle), en units machine. Quand cette limite tend tre dpasse, le contrleur arrte le mouvement. MAX_LIMIT = 1000 Limite maximale des mouvements de cet axe (limite logicielle), en units machine. Quand cette limite tend tre dpasse, le contrleur arrte le mouvement. MIN_FERROR = 0.010 Valeur indiquant, en units machine, de combien le mobile peut dvier trs petite vitesse de la position commande. Si MIN_FERROR est plus petit que FERROR, les deux produisent une rampe de points de drive. Vous pouvez imaginer un graphe sur lequel une dimension reprsente la vitesse et lautre, lerreur tolre. Quand la vitesse augmente, la quantit derreurs de suivi augmente galement et tend vers la valeur FERROR. FERROR = 1.0 FERROR est le maximum derreurs de suivi tolrable, en units machine. Si la diffrence entre la position commande et la position retourne excde cette valeur, le contrleur dsactive les calculs des servomoteurs, positionne toutes les sorties 0.0 et coupe les amplis des moteurs. Si MIN_FERROR est prsent dans le chier .ini, une vitesse proportionnelle aux erreurs de suivi est utilise. Ici, le maximum derreur de suivi est proportionnel la vitesse, quand FERROR est appliqu la vitesse rapide dnie dans [TRAJ]MAX_VELOCITY et proportionnel aux erreurs de suivi pour les petites vitesses. Lerreur maximale admissible sera toujours suprieure MIN_FERROR. Cela permet dviter que de petites erreurs de suivi sur les axes stationnaires arrtent les mouvements de manire impromptue. Des petites erreurs de suivi seront toujours prsentes cause des vibrations, etc. La polarit des valeurs de