From e517b06590dab3a9d027ea500a0b1aa3fae32198 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 00:33:26 -0500 Subject: [PATCH 0001/1024] Docs: Minor fixes to Glossary (4-lang) Spaces on links can cause problems for Asciidoc. Getting rid of them just in case. Signed-off-by: Kim Kirwan --- docs/src/common/Glossary.txt | 4 ++-- docs/src/common/Glossary_de.txt | 4 ++-- docs/src/common/Glossary_es.txt | 4 ++-- docs/src/common/Glossary_fr.txt | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/src/common/Glossary.txt b/docs/src/common/Glossary.txt index 5730bc262..cc0af7f50 100644 --- a/docs/src/common/Glossary.txt +++ b/docs/src/common/Glossary.txt @@ -268,13 +268,13 @@ Rapid:: or the fixturing during a rapid, it is probably a bad thing! Rapid rate:: - (((rapid rate))) [[glo:RapidRate]]The speed at which a rapid motion occurs. + (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. In auto or mdi mode, rapid rate is usually the maximum speed of the machine. It is often desirable to limit the rapid rate when testing a g-code program for the first time. Real-time:: - (((real-time))) [[glo:real-time]] Software that is intended to meet very + (((real-time)))[[glo:real-time]] Software that is intended to meet very strict timing deadlines. Under Linux, in order to meet these requirements it is necessary to install RTAI or RTLINUX and build the software to run in those special environments. For this reason diff --git a/docs/src/common/Glossary_de.txt b/docs/src/common/Glossary_de.txt index 5730bc262..cc0af7f50 100644 --- a/docs/src/common/Glossary_de.txt +++ b/docs/src/common/Glossary_de.txt @@ -268,13 +268,13 @@ Rapid:: or the fixturing during a rapid, it is probably a bad thing! Rapid rate:: - (((rapid rate))) [[glo:RapidRate]]The speed at which a rapid motion occurs. + (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. In auto or mdi mode, rapid rate is usually the maximum speed of the machine. It is often desirable to limit the rapid rate when testing a g-code program for the first time. Real-time:: - (((real-time))) [[glo:real-time]] Software that is intended to meet very + (((real-time)))[[glo:real-time]] Software that is intended to meet very strict timing deadlines. Under Linux, in order to meet these requirements it is necessary to install RTAI or RTLINUX and build the software to run in those special environments. For this reason diff --git a/docs/src/common/Glossary_es.txt b/docs/src/common/Glossary_es.txt index 5730bc262..cc0af7f50 100644 --- a/docs/src/common/Glossary_es.txt +++ b/docs/src/common/Glossary_es.txt @@ -268,13 +268,13 @@ Rapid:: or the fixturing during a rapid, it is probably a bad thing! Rapid rate:: - (((rapid rate))) [[glo:RapidRate]]The speed at which a rapid motion occurs. + (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. In auto or mdi mode, rapid rate is usually the maximum speed of the machine. It is often desirable to limit the rapid rate when testing a g-code program for the first time. Real-time:: - (((real-time))) [[glo:real-time]] Software that is intended to meet very + (((real-time)))[[glo:real-time]] Software that is intended to meet very strict timing deadlines. Under Linux, in order to meet these requirements it is necessary to install RTAI or RTLINUX and build the software to run in those special environments. For this reason diff --git a/docs/src/common/Glossary_fr.txt b/docs/src/common/Glossary_fr.txt index 5730bc262..cc0af7f50 100644 --- a/docs/src/common/Glossary_fr.txt +++ b/docs/src/common/Glossary_fr.txt @@ -268,13 +268,13 @@ Rapid:: or the fixturing during a rapid, it is probably a bad thing! Rapid rate:: - (((rapid rate))) [[glo:RapidRate]]The speed at which a rapid motion occurs. + (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. In auto or mdi mode, rapid rate is usually the maximum speed of the machine. It is often desirable to limit the rapid rate when testing a g-code program for the first time. Real-time:: - (((real-time))) [[glo:real-time]] Software that is intended to meet very + (((real-time)))[[glo:real-time]] Software that is intended to meet very strict timing deadlines. Under Linux, in order to meet these requirements it is necessary to install RTAI or RTLINUX and build the software to run in those special environments. For this reason From 5f8ec71255efceccebfe8e035fff638ef14e280d Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 00:33:52 -0500 Subject: [PATCH 0002/1024] Docs: Minor fixes to Glossary (4-lang) Spaces on links can cause problems for Asciidoc. Getting rid of them just in case. Signed-off-by: Kim Kirwan --- docs/src/common/machining_center.txt | 10 +++++----- docs/src/common/machining_center_de.txt | 10 +++++----- docs/src/common/machining_center_es.txt | 10 +++++----- docs/src/common/machining_center_fr.txt | 14 +++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/src/common/machining_center.txt b/docs/src/common/machining_center.txt index 8c48fc045..45cf82e01 100644 --- a/docs/src/common/machining_center.txt +++ b/docs/src/common/machining_center.txt @@ -104,7 +104,7 @@ of view of someone standing next to the machine. footnote:[If the parallelism requirement is violated, the system builder will have to say how to distinguish clockwise from counterclockwise.] -=== Controlled Point [[sub:Controlled-Point]](((controlled point))) +=== Controlled Point[[sub:Controlled-Point]](((controlled point))) The controlled point is the point whose position and rate of motion are controlled. When the tool length offset is zero (the default @@ -120,7 +120,7 @@ controlled point is either at the tool tip or slightly outside it (where the perpendicular, axis-aligned lines touched by the “front” and “side” of the tool intersect). -=== Coordinated Linear Motion [[sub:Coordinate-Linear-Motion]] +=== Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often coordinate the motion of several axes. We use the term “coordinated @@ -195,7 +195,7 @@ any axis motion if any of several events take place: . Tool length offset is changed. . Coordinate system offsets are changed. -=== Selected Plane [[sub:Selected-Plane]] +=== Selected Plane[[sub:Selected-Plane]] There is always a “selected plane”, which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of @@ -241,7 +241,7 @@ The Interpreter interacts with several switches. This section describes the interactions in more detail. In no case does the Interpreter know what the setting of any of these switches is. -=== Feed and Speed Override Switches [[sub:Feed-Interaction]] +=== Feed and Speed Override Switches[[sub:Feed-Interaction]] The Interpreter will interpret RS274/NGC commands which enable (`M48`) or disable (`M49`) the feed and speed override switches. For certain @@ -264,7 +264,7 @@ switch should be set before starting the NGC program. If this switch is on and an M1 code is encountered, program execution is paused. -== Tool Table [[sub:Tool-Table]] +== Tool Table[[sub:Tool-Table]] A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of diff --git a/docs/src/common/machining_center_de.txt b/docs/src/common/machining_center_de.txt index 8c48fc045..45cf82e01 100644 --- a/docs/src/common/machining_center_de.txt +++ b/docs/src/common/machining_center_de.txt @@ -104,7 +104,7 @@ of view of someone standing next to the machine. footnote:[If the parallelism requirement is violated, the system builder will have to say how to distinguish clockwise from counterclockwise.] -=== Controlled Point [[sub:Controlled-Point]](((controlled point))) +=== Controlled Point[[sub:Controlled-Point]](((controlled point))) The controlled point is the point whose position and rate of motion are controlled. When the tool length offset is zero (the default @@ -120,7 +120,7 @@ controlled point is either at the tool tip or slightly outside it (where the perpendicular, axis-aligned lines touched by the “front” and “side” of the tool intersect). -=== Coordinated Linear Motion [[sub:Coordinate-Linear-Motion]] +=== Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often coordinate the motion of several axes. We use the term “coordinated @@ -195,7 +195,7 @@ any axis motion if any of several events take place: . Tool length offset is changed. . Coordinate system offsets are changed. -=== Selected Plane [[sub:Selected-Plane]] +=== Selected Plane[[sub:Selected-Plane]] There is always a “selected plane”, which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of @@ -241,7 +241,7 @@ The Interpreter interacts with several switches. This section describes the interactions in more detail. In no case does the Interpreter know what the setting of any of these switches is. -=== Feed and Speed Override Switches [[sub:Feed-Interaction]] +=== Feed and Speed Override Switches[[sub:Feed-Interaction]] The Interpreter will interpret RS274/NGC commands which enable (`M48`) or disable (`M49`) the feed and speed override switches. For certain @@ -264,7 +264,7 @@ switch should be set before starting the NGC program. If this switch is on and an M1 code is encountered, program execution is paused. -== Tool Table [[sub:Tool-Table]] +== Tool Table[[sub:Tool-Table]] A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of diff --git a/docs/src/common/machining_center_es.txt b/docs/src/common/machining_center_es.txt index 8c48fc045..45cf82e01 100644 --- a/docs/src/common/machining_center_es.txt +++ b/docs/src/common/machining_center_es.txt @@ -104,7 +104,7 @@ of view of someone standing next to the machine. footnote:[If the parallelism requirement is violated, the system builder will have to say how to distinguish clockwise from counterclockwise.] -=== Controlled Point [[sub:Controlled-Point]](((controlled point))) +=== Controlled Point[[sub:Controlled-Point]](((controlled point))) The controlled point is the point whose position and rate of motion are controlled. When the tool length offset is zero (the default @@ -120,7 +120,7 @@ controlled point is either at the tool tip or slightly outside it (where the perpendicular, axis-aligned lines touched by the “front” and “side” of the tool intersect). -=== Coordinated Linear Motion [[sub:Coordinate-Linear-Motion]] +=== Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often coordinate the motion of several axes. We use the term “coordinated @@ -195,7 +195,7 @@ any axis motion if any of several events take place: . Tool length offset is changed. . Coordinate system offsets are changed. -=== Selected Plane [[sub:Selected-Plane]] +=== Selected Plane[[sub:Selected-Plane]] There is always a “selected plane”, which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of @@ -241,7 +241,7 @@ The Interpreter interacts with several switches. This section describes the interactions in more detail. In no case does the Interpreter know what the setting of any of these switches is. -=== Feed and Speed Override Switches [[sub:Feed-Interaction]] +=== Feed and Speed Override Switches[[sub:Feed-Interaction]] The Interpreter will interpret RS274/NGC commands which enable (`M48`) or disable (`M49`) the feed and speed override switches. For certain @@ -264,7 +264,7 @@ switch should be set before starting the NGC program. If this switch is on and an M1 code is encountered, program execution is paused. -== Tool Table [[sub:Tool-Table]] +== Tool Table[[sub:Tool-Table]] A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of diff --git a/docs/src/common/machining_center_fr.txt b/docs/src/common/machining_center_fr.txt index 1225279e2..ac8070679 100644 --- a/docs/src/common/machining_center_fr.txt +++ b/docs/src/common/machining_center_fr.txt @@ -112,7 +112,7 @@ of view of someone standing next to the machine. footnote:[If the parallelism requirement is violated, the system builder will have to say how to distinguish clockwise from counterclockwise.] -=== Point contrôlé [[sub:Point-controle]](((point contrôlé))) +=== Point contrôlé[[sub:Point-controle]](((point contrôlé))) Le point contrôlé est le point dont la position et la vitesse de déplacement sont contrôlés. Quand la compensation de longueur d'outil @@ -127,7 +127,7 @@ l'outil ou (correction du rayon de bec) légèrement en retrait du point d'intersection des droites perpendiculaires formées par l'axe des points de tangence à la pièce, de face et sur le côté de l'outil. -=== Mouvement linéaire coordonné [[sub:Mouvement-lineaire-coordonne]] +=== Mouvement linéaire coordonné[[sub:Mouvement-lineaire-coordonne]] Pour mener un outil sur une trajectoire spécifiée, un centre d'usinage doit coordonner les mouvements de plusieurs axes. Nous utilisons le @@ -203,7 +203,7 @@ l'absence de tout mouvement des axes si un de ces événements a lieu: . La compensation de longueur d'outil a changé. . Le décalage d'origine a changé. -=== Choix du plan de travail [[sub:Choix-du-plan-de-travail]] +=== Choix du plan de travail[[sub:Choix-du-plan-de-travail]] Il y a toujours un plan sélectionné, qui doit être le plan XY, le plan YZ, ou le plan XZ de la machine. L'axe Z est, bien sûr, perpendiculaire @@ -238,7 +238,7 @@ boutons et une autre qui les désactive. Voir la sections <> et <>. Voir la section <> pour d'autres détails. -=== Modes de contrôle de trajectoire [[sub:Modes-de-controle-trajectoires]] +=== Modes de contrôle de trajectoire[[sub:Modes-de-controle-trajectoires]] La machine peut être placée dans un de ces trois modes de contrôle de trajectoire: (1) mode arrêt exact, (2) mode trajectoire exacte ou (3) @@ -257,7 +257,7 @@ L'interpréteur interagit avec plusieurs boutons de commande. Cette section décrit ces interactions plus en détail. En aucun cas l'interpréteur ne connait ce que sont les réglages de ces boutons. -=== Boutons de correction de vitesses [[sub:Interaction-vitesses]] +=== Boutons de correction de vitesses[[sub:Interaction-vitesses]] L'interpréteur de commande RS274/NGC autorise (M48) ou interdit (M49) l'action des boutons d'ajustement des vitesses. Pour certains @@ -267,7 +267,7 @@ filetage, les boutons sont neutralisés automatiquement. EMC2 réagit aux réglages de ces boutons seulement quand ils sont autorisés. -=== Bouton d'effacement de block Switch [[sub:Interaction-effacement-de-block]](((effacement de block))) +=== Bouton d'effacement de block Switch[[sub:Interaction-effacement-de-block]](((effacement de block))) Si le bouton “Effacement de block” est actif, les lignes de code RS274/NGC commençant par le caractère barre de fraction (caractère @@ -281,7 +281,7 @@ NGC. Si ce bouton est actif et qu'un code M1 est rencontré, le programme est mis en pause. -== Fichier d'outils [[sub:Fichier-d-outils]] +== Fichier d'outils[[sub:Fichier-d-outils]] Un fichier d'outils est requis par l'interpréteur. Le fichier indique dans quels emplacements du carrousel sont placés les outils, la From c8ec8a13ce5fcf3a96baa9f8bf8a08f09285ea30 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 00:44:42 -0500 Subject: [PATCH 0003/1024] Docs: Minor fixes to Glossary (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/examples/gs2_example.txt | 3 ++- docs/src/examples/gs2_example_de.txt | 3 ++- docs/src/examples/gs2_example_es.txt | 3 ++- docs/src/examples/gs2_example_fr.txt | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/src/examples/gs2_example.txt b/docs/src/examples/gs2_example.txt index 6fafaf370..dcecba765 100644 --- a/docs/src/examples/gs2_example.txt +++ b/docs/src/examples/gs2_example.txt @@ -1,4 +1,5 @@ -= GS2 Spindle [[cha:GS2-Spindle]] +[[cha:GS2-Spindle]] += GS2 Spindle This example shows the connections needed to use an Automation Direct GS2 VFD to drive a spindle. The spindle speed and direction is diff --git a/docs/src/examples/gs2_example_de.txt b/docs/src/examples/gs2_example_de.txt index 6fafaf370..dcecba765 100644 --- a/docs/src/examples/gs2_example_de.txt +++ b/docs/src/examples/gs2_example_de.txt @@ -1,4 +1,5 @@ -= GS2 Spindle [[cha:GS2-Spindle]] +[[cha:GS2-Spindle]] += GS2 Spindle This example shows the connections needed to use an Automation Direct GS2 VFD to drive a spindle. The spindle speed and direction is diff --git a/docs/src/examples/gs2_example_es.txt b/docs/src/examples/gs2_example_es.txt index 6fafaf370..dcecba765 100644 --- a/docs/src/examples/gs2_example_es.txt +++ b/docs/src/examples/gs2_example_es.txt @@ -1,4 +1,5 @@ -= GS2 Spindle [[cha:GS2-Spindle]] +[[cha:GS2-Spindle]] += GS2 Spindle This example shows the connections needed to use an Automation Direct GS2 VFD to drive a spindle. The spindle speed and direction is diff --git a/docs/src/examples/gs2_example_fr.txt b/docs/src/examples/gs2_example_fr.txt index 6fafaf370..dcecba765 100644 --- a/docs/src/examples/gs2_example_fr.txt +++ b/docs/src/examples/gs2_example_fr.txt @@ -1,4 +1,5 @@ -= GS2 Spindle [[cha:GS2-Spindle]] +[[cha:GS2-Spindle]] += GS2 Spindle This example shows the connections needed to use an Automation Direct GS2 VFD to drive a spindle. The spindle speed and direction is From 0dd5c141bfad68001c523469e5d5975e7dd52956 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 01:01:04 -0500 Subject: [PATCH 0004/1024] Docs: Minor fixes to Glossary (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/config/ini_config_fr.txt | 48 ++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/docs/src/config/ini_config_fr.txt b/docs/src/config/ini_config_fr.txt index 19c4194df..faf4e74e6 100644 --- a/docs/src/config/ini_config_fr.txt +++ b/docs/src/config/ini_config_fr.txt @@ -171,7 +171,9 @@ Unité de la machine:: == Définition des variables du fichier INI[[sub:Details fichier INI]] -=== Section [EMC][[sub:Section-[EMC]]](((Sections du fichier INI))) +[[sub:Section-[EMC]]] +=== Section [EMC] +(((Sections du fichier INI))) VERSION = $Revision: 1.3 $:: Le numéro de version du fichier INI. La valeur indiquée ici semble @@ -192,7 +194,9 @@ DEBUG = 0:: généralement utiles pour les développeurs. Voir ../src/emc/nml_intf/emcglb.h pour les autres paramètres. -=== Section [DISPLAY][[sub:Section-[DISPLAY]]](((Fichier INI-DISPLAY))) +[[sub:Section-[DISPLAY]]] +=== Section [DISPLAY] +(((Fichier INI-DISPLAY))) Différents programmes d'interface utilisateur utiliser des options différentes, et ne sont pas tous option est soutenue par toutes les interfaces utilisateur. @@ -340,7 +344,9 @@ user interface program. HELP_FILE = tkemc.txt:: Path to help file (not used in AXIS). -=== [FILTER] Section (((ini [FILTER] Section)))[[sub:[FILTER]-Section]] +[[sub:[FILTER]-Section]] +=== [FILTER] Section +(((ini [FILTER] Section))) AXIS has the ability to send loaded files through a filter program. This filter can do any desired task: Something as simple as making sure @@ -389,7 +395,9 @@ written to stderr of the form sets the AXIS progress bar to the given percentage. This feature should be used by any filter that runs for a long time. -=== [RS274NGC] Section[[sub:[RS274NGC]-section]](((RS274NGC (inifile section)))) +[[sub:[RS274NGC]-section]] +=== [RS274NGC] Section +(((RS274NGC (inifile section)))) PARAMETER_FILE = myfile.var:: (((PARAMETER FILE))) The file located in the same directory as the ini @@ -430,7 +438,8 @@ A search is made for each possible user defined function, typically The first executable M1xx found in the search is used for each M1xx. -=== Section [EMCMOT][[sub:Section-[EMCMOT]]] +[[sub:Section-[EMCMOT]]] +=== Section [EMCMOT] (((Fichier INI-EMCMOT))) You may find other entries in this section and they should not be @@ -475,7 +484,8 @@ TRAJ_PERIOD = 1000000:: (ex: hexapodes) Il n'y a aucune raison de rendre cette valeur supérieure à *SERVO_PERIOD*. -=== Section [TASK] [[sub:Section-[TASK]]] +[[sub:Section-[TASK]]] +=== Section [TASK] (((Fichier INI-TASK ))) TASK = milltask:: @@ -495,7 +505,8 @@ CYCLE_TIME = 0.010:: une commande provenant d'une interface utilisateur est acceptée. Il n'est généralement pas nécessaire de modifier cette valeur. -=== Section [HAL] [[sub:Section-[HAL]]] +[[sub:Section-[HAL]]] +=== Section [HAL] (((Fichier INI-HAL ))) HALFILE = example.hal:: @@ -530,14 +541,16 @@ d'autres logiciels de protection des défauts de fonctionnement. '(Seulement avec l'interface AXIS)' Exécute 'example2.hal' après que l'interface graphique ait créé ses HAL pins. -=== [HALUI] section[[sub:[HALUI]-section]] +[[sub:[HALUI]-section]] +=== [HALUI] section (((HALUI (inifile section)))) MDI_COMMAND = G53 G0 X0 Y0 Z0:: Une commande MDI peut être exécuté en utilisant halui.mdi-command-00. Incrément le nombre pour chaque commande énumérés dans la section [HALUI]. -=== Section [TRAJ][[sub:Section-[TRAJ]]] +[[sub:Section-[TRAJ]]] +=== Section [TRAJ] (((Fichier INI-TRAJ ))) La section [TRAJ] contient les paramètres généraux du module @@ -625,7 +638,9 @@ NO_FORCE_HOMING mise à 1 permettra à la machine de franchir les limites logicielles pendant les mouvements ce qui n'est pas souhaîtable pour un fonctionnement normal! -=== Section [AXIS_][[sub:Section-[AXIS]]](((Fichier INI-AXIS))) +[[sub:Section-[AXIS]]] +=== Section [AXIS_] +(((Fichier INI-AXIS))) Les sections [AXIS_0], [AXIS_1], etc. contiennent les paramètres généraux des composants individuels du module de contrôle. La @@ -736,7 +751,8 @@ FERROR = 1.0:: «Machine» puis «Calibration» et dans TkEMC depuis le menu «Réglages» puis «Calibration». -==== Variables relatives aux prises d'origines[[sub:Variables relatives aux origines]] +[[sub:Variables relatives aux origines]] +==== Variables relatives aux prises d'origines Les paramètres suivants sont relatifs aux prises d'origine, pour plus d'informations, lire le chapitre sur la POM. <> @@ -794,7 +810,8 @@ VOLATILE_HOME = 0:: Accueil des commutateurs et n'a pas de retour de position comme une étape et direction conduit la machine. -==== Variables relatives aux servomoteurs[[sub:Variables relatives aux servomoteurs]] +[[sub:Variables relatives aux servomoteurs]] +==== Variables relatives aux servomoteurs Les éléments suivants sont des servo-systèmes et des servo-like systèmes. Cette description suppose que les unités en sortie du composant PID sont des Volts. @@ -964,7 +981,8 @@ latexmath:[ INPUT\_SCALE = \frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = \frac{20000\, counts}{inch} ] -==== Variables relatives aux moteurs pas à pas [[sub:Variables relatives aux moteurs pas a pas]] +[[sub:Variables relatives aux moteurs pas a pas]] +==== Variables relatives aux moteurs pas à pas SCALE = 4000:: (((INPUT SCALE))) (hal) Spécifie le nombre d'impulsions qui correspond à un @@ -1000,7 +1018,9 @@ STEPGEN_MAXVEL = 1.4:: montré que l'utilisation de STEPGEN_MAXVEL n'améliore pas le réglage de la boucle de position de stepgen. -=== Section [EMCIO][[sub:Section-[EMCIO]]](((Fichier INI-EMCIO))) +[[sub:Section-[EMCIO]]] +=== Section [EMCIO] +(((Fichier INI-EMCIO))) CYCLE_TIME = 0.100:: La période en secondes, à laquelle EMCIO va tourner. La mettre à 0.0 From 1407f25b33bbff48373bbf288c97ca1a7f5cc571 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 01:04:28 -0500 Subject: [PATCH 0005/1024] Docs: Minor fixes to Glossary (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/config/pncconf.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/config/pncconf.txt b/docs/src/config/pncconf.txt index a640b2242..23e861230 100644 --- a/docs/src/config/pncconf.txt +++ b/docs/src/config/pncconf.txt @@ -1,4 +1,5 @@ -= Point n Click Configuration Wizard (PNCconf) [[cha:PNCconf-Wizard]] +[[cha:PNCconf-Wizard]] += Point n Click Configuration Wizard (PNCconf) (((PNCconf Wizard))) PNCconf is made to help build configurations that utilize specific Mesa From f468db12f3e5c3ef34df9c04413636cd8e985ce2 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 17:11:18 -0500 Subject: [PATCH 0006/1024] Docs: Minor fixes to Glossary (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gcode/main.txt | 354 ++++++++++++++++++++++++++---------- docs/src/gcode/main_de.txt | 353 ++++++++++++++++++++++++++---------- docs/src/gcode/main_es.txt | 359 +++++++++++++++++++++++++++---------- docs/src/gcode/main_fr.txt | 350 ++++++++++++++++++++++++++---------- 4 files changed, 1043 insertions(+), 373 deletions(-) diff --git a/docs/src/gcode/main.txt b/docs/src/gcode/main.txt index 081f8d6bc..e7f47f5b6 100644 --- a/docs/src/gcode/main.txt +++ b/docs/src/gcode/main.txt @@ -1,4 +1,5 @@ -= G Code Reference(((G Codes))) += G Code Reference +(((G Codes))) Conventions used in this section @@ -31,7 +32,8 @@ value of parameter 100 were 2, `G10 L#100` would also mean the same. If `L-` is written in a prototype the `-` will often be referred to as the "L number", and so on for any other letter. -== Polar Coordinates (((Polar Coordinates))) +== Polar Coordinates +(((Polar Coordinates))) Polar Coordinates can be used to specify the XY coordinate of a move. The @n is the distance and ^n is the angle. The advantage of this is @@ -89,7 +91,9 @@ It is an error if: - An incremental move is started at the origin - A mix of Polar and and X or Y words are used -== Quick Reference Table[[sec:Quick-Reference-Table]](((G Code Table))) +[[sec:Quick-Reference-Table]] +== Quick Reference Table +(((G Code Table))) [width="100%", options="header"] |==================================================================== @@ -174,7 +178,10 @@ It is an error if: |T | Tool Select | <> |======================================== -== G0 Rapid Motion[[sec:G0-Rapid]](((G0 Rapid))) +[[sec:G0-Rapid]] +== G0 Rapid Motion +(((G0 Rapid))) +(((Rapid))) G0 axes @@ -195,7 +202,9 @@ It is an error if: - An axis letter is without a real value. -== G1 Linear Motion[[sec:G1-Linear-Motion]](((G1 Linear Motion))) +[[sec:G1-Linear-Motion]] +== G1 Linear Motion +(((G1 Linear Motion))) G1 axes @@ -216,7 +225,9 @@ It is an error if: - No feed rate has been set. -== G2, G3 Arc[[sec:G2-G3-Arc]](((G2, G3 Arc))) +[[sec:G2-G3-Arc]] +== G2, G3 Arc +(((G2, G3 Arc))) A circular or helical arc is specified using either `G2` (clockwise arc) or `G3` (counterclockwise arc). The direction (CW, CCW) is as @@ -431,7 +442,9 @@ where X=10, Y=15, and Z=5, with a radius of 20. If the starting value of Z is 5, this is an arc of a circle parallel to the XY-plane; otherwise it is a helical arc. -== G4 Dwell[[sec:G4-Dwell]](((G4 Dwell))) +[[sec:G4-Dwell]] +== G4 Dwell +(((G4 Dwell))) G4 P[seconds] @@ -442,7 +455,9 @@ It is an error if: - the P number is negative. -== G5.1 Quadratic B-spline[[sec:G5.1-B-spline]](((G5.1 Quadratic B-spline))) +[[sec:G5.1-B-spline]] +== G5.1 Quadratic B-spline +(((G5.1 Quadratic B-spline))) G5.1 Xn Yn I[X offset] J[Y offset] @@ -454,7 +469,9 @@ It is an error if: - An axis other than X or Y is specified - The active plane is not G17 -== G5.2 G5.3 NURBs Block[[sec:G5.2-G5.3-NURBs]](((G5.2 G5.3 NURBs Block))) +[[sec:G5.2-G5.3-NURBs]] +== G5.2 G5.3 NURBs Block +(((G5.2 G5.3 NURBs Block))) Warning: G5.2, G5.3 is experimental and not fully tested. @@ -496,21 +513,26 @@ More information on NURBs can be found here: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] -== G7 Diameter Mode[[sec:G7-Diameter-Mode]](((G7 Diameter Mode))) +[[sec:G7-Diameter-Mode]] +== G7 Diameter Mode +(((G7 Diameter Mode))) Program G7 to enter the diameter mode for axis X on a lathe. When in the Diameter mode the X axis moves on a lathe will be 1/2 the distance to the center of the lathe. For example X1 would move the cutter to 0.500” from the center of the lathe thus giving a 1” diameter part. -== G8 Radius Mode[[sec:G8-Radius-Mode]](((G8 Radius Mode))) +[[sec:G8-Radius-Mode]] +== G8 Radius Mode +(((G8 Radius Mode))) Program G8 to enter the radius mode for axis X on a lathe. When in Radius mode the X axis moves on a lathe will be the distance from the center. Thus a cut at X1 would result in a part that is 2" in diameter. G8 is default at power up. -== G10 L1 Set Tool Table[[sec:G10-L1_]] +[[sec:G10-L1_]] +== G10 L1 Set Tool Table (((G10 L1 Tool Table))) G10 L1 P[tool number] R[radius] @@ -531,7 +553,9 @@ It is an error if: For more information on cutter orientation, see the <> diagram. -== G10 L2 Set Coordinate System[[sec:G10-L2_]](((G10 L2 Coordinate System))) +[[sec:G10-L2_]] +== G10 L2 Set Coordinate System +(((G10 L2 Coordinate System))) G10 L2 P[coordinate system] R[XY rotation about Z] X[offset] Y[offset] Z[offset] @@ -599,7 +623,9 @@ G10 L2 P1 X0 Y0 Z0:: |9 | 9 | 59.3 |======================================== -== G10 L10 Set Tool Table[[sec:G10-L10]](((G10 L10 Set Tool Table))) +[[sec:G10-L10]] +== G10 L10 Set Tool Table +(((G10 L10 Set Tool Table))) G10 L10 P[tool number] R[radius] X[set_curr_sys_to] Y[set_curr_sys_to] Z[set_curr_sys_to] @@ -617,7 +643,9 @@ It is an error if: - Cutter Compensation is on -== G10 L11 Set Tool Table[[sec:G10-L11]](((G10 L11 Set Tool Table))) +[[sec:G10-L11]] +== G10 L11 Set Tool Table +(((G10 L11 Set Tool Table))) G10 L11 P[tool number] R[radius] X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] @@ -639,7 +667,9 @@ It is an error if: - Cutter Compensation is on -== G10 L20 Set Coordinate System[[sec:G10-L20]](((G10 L20 Set Coordinate System))) +[[sec:G10-L20]] +== G10 L20 Set Coordinate System +(((G10 L20 Set Coordinate System))) G10 L20 P[coordinate system] R[rotation about Z] X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] @@ -655,7 +685,11 @@ It is an error if: - The P number does not evaluate to an integer in the range 0 to 9. - An axis is programmed that is not defined in the configuration. -== G17, G18, G19, G17.1, G18.1, G19.1 Plane Selection[[sec:G17-G18-G19]] +[[sec:G17-G18-G19]] +== G17, G18, G19, G17.1, G18.1, G19.1 Plane Selection +(((G17 XY Plane))) +(((G18 XZ Plane))) +(((G19 YZ Plane))) These codes set the current plane as follows: @@ -672,7 +706,9 @@ These codes set the current plane as follows: The effects of having a plane selected are discussed in Section <> and Section <> -== G20, G21 Length Units[[sec:G20-G21-Units]](((G20, G21 Length Units))) +[[sec:G20-G21-Units]] +== G20, G21 Length Units +(((G20, G21 Length Units))) Program G20 to use inches for length units. + Program G21 to use millimeters for length units. @@ -681,7 +717,10 @@ It is usually a good idea to program either G20 or G21 near the beginning of a program before any motion occurs, and not to use either one anywhere else in the program. -== G28, G28.1 Go to Predefined Position[[sec:G28-G28.1]](((G28, G28.1))) +[[sec:G28-G28.1]] +== G28, G28.1 Go to Predefined Position +(((G28))) +(((G28.1))) G28 uses the values in parameters 5161-5166 as the absolute values to make a rapid traverse move to from the current position. The parameter @@ -699,7 +738,10 @@ It is an error if : - Radius compensation is turned on -== G30, G30.1 Go to Predefined Position[[sec:G30-G30.1]](((G30, G30.1))) +[[sec:G30-G30.1]] +== G30, G30.1 Go to Predefined Position +(((G30))) +(((G30.1))) G30 uses the values in parameters 5181-5186 as the absolute values to make a rapid traverse move to from the current position. @@ -719,7 +761,9 @@ It is an error if : - Radius compensation is turned on -== G33 Spindle-Synchronized Motion[[sec:G33-Spindle-Sync]](((G33, G33.1 Spindle-Synchronized Motion))) +[[sec:G33-Spindle-Sync]] +== G33 Spindle-Synchronized Motion +(((G33 Spindle-Synchronized Motion))) G33 X- Y- Z- K- @@ -745,7 +789,9 @@ It is an error if: - The requested linear motion exceeds machine velocity limits due to the spindle speed -== G33.1 Rigid Tapping[[sec:G33.1-Rigid-Tapping]](((G33.1 Rigid Tapping))) +[[sec:G33.1-Rigid-Tapping]] +== G33.1 Rigid Tapping +(((G33.1 Rigid Tapping))) G33.1 X- Y- Z- K- @@ -788,7 +834,8 @@ Example: ;rigid tapping a 20 TPI thread G33.1 Z-0.750 K0.05 -== G38.x Straight Probe[[sec:G38.x-Straight-Probe]] +[[sec:G38.x-Straight-Probe]] +== G38.x Straight Probe (((G38.2 Probe)))(((G38.3 Probe)))(((G38.4 Probe)))(((G38.5 Probe))) IMPORTANT: You will not be able to successfully use this command until your @@ -851,7 +898,8 @@ A comment of the form `(PROBEOPEN filename.txt)` will open XYZABCUVW of each successful straight probe in it. The file must be closed with `(PROBECLOSE)`. -== G40 Compensation Off[[sec:G40]] +[[sec:G40]] +== G40 Compensation Off (((G40 Radius Compensation Off))) Program G40 to turn cutter radius compensation off. @@ -862,8 +910,10 @@ It is an error if: - A G2/G3 arc move is programmed next after a G40. -== G41, G42 Tool Radius Compensation[[sec:G41-G42]] -(((G41 Radius Compensation)))(((G42 Radius Compensation))) +[[sec:G41-G42]] +== G41, G42 Tool Radius Compensation +(((G41 Radius Compensation))) +(((G42 Radius Compensation))) G41 or G42 D[tool] @@ -906,8 +956,10 @@ It is an error if: - The YZ plane is active, - Cutter radius compensation is commanded to turn on when it is already on. -== G41.1, G42.1 Dynamic Cutter Radius Compensation[[sec:G41.1-G42.1]] -(((G41.1 Dynamic Radius Compensation)))(((G41.1 Dynamic Radius Compensation))) +[[sec:G41.1-G42.1]] +== G41.1, G42.1 Dynamic Cutter Radius Compensation +(((G41.1 Dynamic Radius Compensation))) +(((G42.1 Dynamic Radius Compensation))) G41.1 or G42.1 D[diameter] @@ -928,10 +980,11 @@ It is an error if: For more information on cutter orientation see the <> and <> and <> diagrams. -== G43, G43.1, G49 Tool Length Offsets[[sec:G43-G43.1-Tool]] +[[sec:G43-G43.1-Tool]] +== G43, G43.1, G49 Tool Length Offsets (((G43, G43.1, G49 Tool Length Offsets))) -=== G43, G43.1: Activate Tool length compensation(((G43)))(((G43.1))) +=== G43, G43.1: Activate Tool length compensation G43 and G43.1 change subsequent motions by offsetting the Z and/or X coordinates by the length of the tool. G43 and G43.1 do not cause any @@ -964,7 +1017,9 @@ It is an error if: - motion is commanded on the same line as `G43.1` -=== G49 : Cancel tool length compensation[[sub:G49-Tool]] +[[sub:G49-Tool]] +=== G49 : Cancel tool length compensation +(((G49))) To use no tool length offset, program G49. @@ -972,7 +1027,8 @@ It is OK to program using the same offset already in use. It is also OK to program using no tool length offset if none is currently being used. -== G53 Move in Absolute Coordinates[[sub:G53-Move-in]] +[[sub:G53-Move-in]] +== G53 Move in Absolute Coordinates (((G53 Absolute Coordinates))) To move in absolute coordinates from the machine origin, program `G53` @@ -988,8 +1044,17 @@ It is an error if: - G53 is used without G0 or G1 being active, - or G53 is used while cutter radius compensation is on. -== G54-G59.3 Select Coordinate System[[sec:G54-G59.3]] -(((G54-G59.3 Select Coordinate System))) +[[sec:G54-G59.3]] +== G54-G59.3 Select Coordinate System +(((G54 Select Coordinate System 1))) +(((G55 Select Coordinate System 2))) +(((G56 Select Coordinate System 3))) +(((G57 Select Coordinate System 4))) +(((G58 Select Coordinate System 5))) +(((G59 Select Coordinate System 6))) +(((G59.1 Select Coordinate System 7))) +(((G59.2 Select Coordinate System 8))) +(((G59.3 Select Coordinate System 9))) To select coordinate system 1, program G54, @@ -1025,9 +1090,13 @@ It is an error if: See Section <> for an overview of coordinate systems. -== G61, G61.1, G64 Set Path Control Mode[[sec:G61-G61.1-G64]] -(((G61 Exact Trajectory)))(((G61.1 Exact Stop)))(((G64 Trajectory Control))) -(((Path Control)))(((Trajectory Control))) +[[sec:G61-G61.1-G64]] +== G61, G61.1, G64 Set Path Control Mode +(((G61 Exact Trajectory))) +(((G61.1 Exact Stop))) +(((G64 Trajectory Control))) +(((Path Control))) +(((Trajectory Control))) G61 Exact Path Mode G61.1 Exact Stop Mode @@ -1059,7 +1128,9 @@ Section <> for a discussion of these modes. If Q is not specified then it will have the same behavior as before and use the value of P-. -== G73 Drilling Cycle with Chip Breaking[[sec:G73-Drilling-Cycle]](((G73 Drilling Cycle Chip Break))) +[[sec:G73-Drilling-Cycle]] +== G73 Drilling Cycle with Chip Breaking +(((G73 Drilling Cycle Chip Break))) G73 X- Y- Z- A- B- C- R- L- Q- @@ -1079,7 +1150,9 @@ It is an error if: - the Q number is negative or zero. -== G76 Threading Cycle[[sec:G76-Threading-Canned]](((G76 Threading))) +[[sec:G76-Threading-Canned]] +== G76 Threading Cycle +(((G76 Threading))) G76 P- Z- I- J- R- K- Q- H- E- L- @@ -1200,14 +1273,19 @@ moves. image::images/g76-01.png[] -== G80 Cancel Modal Motion[[sec:G80-Cancel-Modal]] +[[sec:G80-Cancel-Modal]] +== G80 Cancel Modal Motion +(((G80 Cancel Modal Motion))) Program `G80` to ensure no axis motion will occur. It is an error if: - Axis words are programmed when G80 is active, unless a modal group 0 Gcode is programmed which uses axis words. -== Canned Cycles[[sec:G81-G89]](((Canned Cycles))) +[[sec:G81-G89]] +== Canned Cycles +(((Canned Cycles G81-G89))) +(((G81-G89 Canned Cycles))) The canned cycles `G81` through `G89` are described in this section. Two examples are given with the description of `G81` below. @@ -1312,7 +1390,9 @@ following one or two moves are made If another plane is active, the preliminary and in-between motions are analogous. -== G81 Drilling Cycle[[sec:G81-Drilling-Cycle]](((G81 Drilling Cycle))) +[[sec:G81-Drilling-Cycle]] +== G81 Drilling Cycle +(((G81 Drilling Cycle))) G81 (X- Y- Z-) or (U- V- W-) R- L- @@ -1377,7 +1457,9 @@ The third repeat consists of 3 moves. The X position is reset to 13 . a feed parallel to the Z-axis to (13,17, 4.2) . a traverse parallel to the Z-axis to (13,17,4.8) -== G82 Drilling Cycle with Dwell[[sec:G82-Drilling-Dwell]](((G82 Drilling Cycle Dwell))) +[[sec:G82-Drilling-Dwell]] +== G82 Drilling Cycle with Dwell +(((G82 Drilling Cycle Dwell))) G82 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1389,7 +1471,9 @@ the hole. . Dwell for the P number of seconds. . Retract the Z-axis at traverse rate to clear Z. -== G83 Peck Drilling[[sec:G83-Drilling-Peck]](((G83 Peck Drilling))) +[[sec:G83-Drilling-Peck]] +== G83 Peck Drilling +(((G83 Peck Drilling))) G83 (X- Y- Z-) or (U- V- W-) R- L- Q- @@ -1414,13 +1498,17 @@ It is an error if: - the Q number is negative or zero. -== G84 Right-Hand Tapping[[sec:G84-Right-Hand-Tapping]](((G84 Right-Hand Tapping))) +[[sec:G84-Right-Hand-Tapping]] +== G84 Right-Hand Tapping +(((G84 Right-Hand Tapping))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. See sections <> and <> -== G85 Boring, No Dwell, Feed Out[[sec:G85-Boring-Feed-Out]](((G85 Boring, No Dwell, Feed Out))) +[[sec:G85-Boring-Feed-Out]] +== G85 Boring, No Dwell, Feed Out +(((G85 Boring, No Dwell, Feed Out))) G85 (X- Y- Z-) or (U- V- W-) R- L- @@ -1431,7 +1519,9 @@ for drilling or milling. . Move the Z-axis only at the current feed rate to the Z position. . Retract the Z-axis at the current feed rate to clear Z. -== G86 Boring, Spindle Stop, Rapid Out[[sec:G86-Boring-Rapid-Out]](((G86 Boring, Spindle Stop, Rapid Out))) +[[sec:G86-Boring-Rapid-Out]] +== G86 Boring, Spindle Stop, Rapid Out +(((G86 Boring, Spindle Stop, Rapid Out))) G86 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1450,17 +1540,23 @@ if: - the spindle is not turning before this cycle is executed. -== G87 Back Boring[[sec:G87-Back-Boring]] (((G87 Back Boring))) +[[sec:G87-Back-Boring]] +== G87 Back Boring +(((G87 Back Boring))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. -== G88 Boring, Spindle Stop, Manual Out[[sec:G88-Boring-Manual-Out]](((G88 Boring, Spindle Stop, Manual Out))) +[[sec:G88-Boring-Manual-Out]] +== G88 Boring, Spindle Stop, Manual Out +(((G88 Boring, Spindle Stop, Manual Out))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. -== G89 Boring, Dwell, Feed Out[[sec:G89-Boring-Dwell,]](((G89 Boring, Dwell, Feed Out))) +[[sec:G89-Boring-Dwell,]] +== G89 Boring, Dwell, Feed Out +(((G89 Boring, Dwell, Feed Out))) G89 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1472,7 +1568,9 @@ where P specifies the number of seconds to dwell. . Dwell for the P number of seconds. . Retract the Z-axis at the current feed rate to clear Z. -== G90, G91 Set Distance Mode[[sec:G90-G91-Set]](((G90, G91 Set Distance Mode))) +[[sec:G90-G91-Set]] +== G90, G91 Set Distance Mode +(((G90, G91 Set Distance Mode))) G90 is Absolute Distance Mode + G91 is Incremental Distance Mode @@ -1490,7 +1588,9 @@ To go into incremental distance mode, program `G91`. In incremental distance mode, axis numbers usually represent increments from the current coordinate. -== G90.1, G91.1 Arc Distance Mode[[sec:G90.1-G91.1]](((Arc Distance Mode))) +[[sec:G90.1-G91.1]] +== G90.1, G91.1 Arc Distance Mode +(((Arc Distance Mode))) G90.1 Absolute Distance Mode for I, J & K offsets. @@ -1500,7 +1600,9 @@ G91.1 Incremental Distance Mode for I, J & K offsets. - Returns I, J & K to their normal behavior. -== G92, G92.1, G92.2, G92.3 Coordinate System Offsets[[sec:G92-G92.1-G92.2-G92.3]](((G92, G92.1, G92.2, G92.3 Offsets))) +[[sec:G92-G92.1-G92.2-G92.3]] +== G92, G92.1, G92.2, G92.3 Coordinate System Offsets +(((G92, G92.1, G92.2, G92.3 Offsets))) G92 X- Y- Z- A- B- C- U- V- W- @@ -1556,7 +1658,9 @@ EMC2 stores the G92 offsets and reuses them on the next run of a program. To prevent this, one can program a G92.1 (to erase them), or program a G92.2 (to remove them - they are still stored). -== G93, G94, G95: Set Feed Rate Mode[[sec:G93-G94-G95-Mode]](((G93, G94, G95: Feed Rate Mode))) +[[sec:G93-G94-G95-Mode]] +== G93, G94, G95: Set Feed Rate Mode +(((G93, G94, G95: Feed Rate Mode))) G93 is Inverse Time Mode G94 is Units per Minute Mode @@ -1593,7 +1697,9 @@ It is an error if: (explicitly or implicitly) does not have an F word. - A new feed rate is not specified after switching to G94 or G95 -== G96, G97 Spindle Control Mode[[sec:G96-G97-Spindle]](((G96, G97 Spindle Control Mode))) +[[sec:G96-G97-Spindle]] +== G96, G97 Spindle Control Mode +(((G96, G97 Spindle Control Mode))) G96 D[max spindle speed] S[units per minute] is Constant Surface Speed Mode + G97 is RPM Mode @@ -1616,7 +1722,9 @@ It is an error if: - S is not specified with G96 - A feed move is specified in G96 mode while the spindle is not turning -== G98, G99 Set Canned Cycle Return Level[[sec:G98-G99-Set]](((G98, G99 Canned Cycle Return))) +[[sec:G98-G99-Set]] +== G98, G99 Set Canned Cycle Return Level +(((G98, G99 Canned Cycle Return))) G98 Retract to the position that axis was in just before this series of one or more contiguous canned cycles was started. + @@ -1643,9 +1751,13 @@ between G98 and G99 during a series of cycles. = M Codes -== M0, M1, M2, M30, M60 Program Stopping and Ending[[sec:M0-M1-M2]] -(((M0 Program Stop)))(((M1 Program Optional Stop))) -(((M2 Program End)))(((M30 Program End)))(((M60 Program End))) +[[sec:M0-M1-M2]] +== M0, M1, M2, M30, M60 Program Stopping and Ending +(((M0 Program Stop))) +(((M1 Program Optional Stop))) +(((M2 Program End))) +(((M30 Program End))) +(((M60 Program End))) To pause a running program temporarily (regardless of the setting of the optional stop switch), @@ -1691,8 +1803,11 @@ after the M2 or M30 command is executed. Pressing cycle start will start the program at the beginning of the file. -== M3, M4, M5 Spindle Control[[sec:M3-M4-M5]] -(((M3 Spindle CW)))(((M4 Spindle CCW)))(((M5 Spindle Stop))) +[[sec:M3-M4-M5]] +== M3, M4, M5 Spindle Control +(((M3 Spindle CW))) +(((M4 Spindle CCW))) +(((M5 Spindle Stop))) To start the spindle clockwise at the "S" speed, program `M3`. + To start the spindle counterclockwise at the "S" speed, program `M4`. + @@ -1708,7 +1823,9 @@ the spindle will start turning. It is OK to use `M3` or `M4` when the spindle is already turning or to use `M5` when the spindle is already stopped. -== M6 Tool Change[[sec:M6-Tool-Change]](((M6-Tool-Change))) +[[sec:M6-Tool-Change]] +== M6 Tool Change +(((M6-Tool-Change))) === Manual Tool Change @@ -1748,8 +1865,11 @@ in that case, the spindle will be empty after the tool change. If slot zero was last selected, there will definitely be no tool in the spindle after a tool change. -== M7, M8, M9 Coolant Control[[sec:M7-M8-M9]] -(((M7 Mist Coolant)))(((M8 Flood Coolant)))(((M9 Coolant Off))) +[[sec:M7-M8-M9]] +== M7, M8, M9 Coolant Control +(((M7 Mist Coolant))) +(((M8 Flood Coolant))) +(((M9 Coolant Off))) To turn mist coolant on, program `M7`. + To turn flood coolant on, program `M8`. + @@ -1758,9 +1878,13 @@ To turn all coolant off, program `M9`. It is always OK to use any of these commands, regardless of what coolant is on or off. -== Overrides [[sec:Overrides]] +[[sec:Overrides]] +== Overrides -=== M48, M49 Override Control[[sub:M48-Both-Override]][[sub:M49-Neither-Override]](((M48, M49 Override Control))) +[[sub:M48-Both-Override]] +[[sub:M49-Neither-Override]] +=== M48, M49 Override Control +(((M48, M49 Override Control))) To enable the spindle speed and feed rate override controls, program `M48`. To disable both controls, program `M49`. @@ -1771,7 +1895,9 @@ These controls can also be toggled individually using M50 and M51 as described in the sections <> and <>. -=== M50 Feed Override Control[[sub:M50-Feed-Override]](((M50 Feed Override Control))) +[[sub:M50-Feed-Override]] +=== M50 Feed Override Control +(((M50 Feed Override Control))) To enable the feed rate override control, program `M50` or `M50 P1`. @@ -1780,7 +1906,9 @@ While disabled the feed override will have no influence, and the motion will be executed at programmed feed rate. (unless there is an adaptive feed rate override active). -=== M51 Spindle Speed Override Control[[sub:M51-Spindle-Override]](((M51 Spindle Speed Override))) +[[sub:M51-Spindle-Override]] +=== M51 Spindle Speed Override Control +(((M51 Spindle Speed Override))) To enable the spindle speed override control, program `M51` or `M51 P1`. @@ -1790,7 +1918,9 @@ will have no influence, and the spindle speed will have the exact program specified value (using the S-word as described in <>). -=== M52 Adaptive Feed Control[[sub:M52-Adaptive-Feed-Control]](((M52 Adaptive Feed Control))) +[[sub:M52-Adaptive-Feed-Control]] +=== M52 Adaptive Feed Control +(((M52 Adaptive Feed Control))) To use an adaptive feed, program `M52` or `M52 P1`. To stop using adaptive feed, program `M52 P0`. @@ -1802,7 +1932,9 @@ In EMC2, the HAL pin `motion.adaptive-feed` is used for this purpose. Values on `motion.adaptive-feed` should range from 0 (feed hold) to 1 (full speed). -=== M53 Feed Stop Control[[sub:M53-Feed-Stop-Control]](((M53 Feed Stop Control))) +[[sub:M53-Feed-Stop-Control]] +=== M53 Feed Stop Control +(((M53 Feed Stop Control))) To enable the feed stop switch, program `M53` or `M53 P1`. To disable the switch program `M53 P0` . Enabling the feed stop switch will allow @@ -1810,7 +1942,9 @@ motion to be interrupted by means of the feed stop control. In EMC2, the HAL pin `motion.feed-hold` is used for this purpose. Values of 1 will cause the motion to stop (if `M53` is active). -== M61 Set Current Tool Number[[sec:M61-Set-Current-Tool-Number]](((M61 Set Current Tool Number))) +[[sec:M61-Set-Current-Tool-Number]] +== M61 Set Current Tool Number +(((M61 Set Current Tool Number))) To change the current tool number while in MDI or Manual mode program a M61 Qxx in the MDI window. One use is when you power up EMC with a @@ -1821,7 +1955,9 @@ doing a tool change. - Q- is not 0 or greater -== M62 to M65 Output Control[[sec:M62-to-M65]](((M62 to M65 Output Control))) +[[sec:M62-to-M65]] +== M62 to M65 Output Control +(((M62 to M65 Output Control))) To control a digital output bit, program `M- P-`, where the M-word ranges from 62 to 65, and the P-word ranges from 0 @@ -1858,7 +1994,9 @@ M64 & M65 happen immediately as they are received by the motion controller. They are not synchronized with movement, and they will break blending. -== M66 Input Control[[sec:M66-Input-Control]](((M66 Input Control))) +[[sec:M66-Input-Control]] +== M66 Input Control +(((M66 Input Control))) To read the value of an analog or digital input pin, program `M66 P- E- L- Q-`, where the P-word and the E-word ranges @@ -1898,7 +2036,9 @@ selecting both an analog and a digital input).In EMC2 these inputs are not monitored in real time and thus should not be used for timing-critical applications. -== M67 Analog Output[[sec:M67-Analog-Output]](((M67 Analog Motion Output Control))) +[[sec:M67-Analog-Output]] +== M67 Analog Output +(((M67 Analog Motion Output Control))) To control an analog output synchronized with motion, program `M67 E- Q-`, where the E word ranges from 0 to the default maximum @@ -1909,7 +2049,9 @@ Manual for more information on the Motion Controller. M67 functions the same as M62-63. See the M62-65 section for information about queuing output commands synchronized with motion. -== M68 Analog Output[[sec:M68-Analog-Output]](((M68 Analog Aux Output Control))) +[[sec:M68-Analog-Output]] +== M68 Analog Output +(((M68 Analog Aux Output Control))) To control an analog output immediately, program `M68 E- Q-, ` where the E word ranges from 0 to the default maximum of 3 and Q is @@ -1920,7 +2062,10 @@ more information on the Motion Controller. M68 functions the same as M64-65. See the M62-65 section for information about immediate output commands. -== M100 to M199 User Defined Commands[[sec:M100-to-M199]](((M100 to M199 User Defined Commands))) +[[sec:M100-to-M199]] +== M100 to M199 User Defined Commands +(((M100 to M199 User Defined Commands))) +(((User Defined Commands M100-M199))) To invoke a user-defined command, program `M1nn P- Q-` where `P-` and `Q-` are both optional and must be a number. The external program "M1nn" @@ -1967,7 +2112,9 @@ In your M100 file it might look like this: halcmd setp thc.feedrate $feedrate exit 0 -= O Codes[[cha:O-Codes]](((O Codes))) +[[cha:O-Codes]] += O Codes +(((O Codes))) O-codes provide for flow control in NC programs. Each block has an associated number, which is the number used after O. Care must be taken @@ -1979,7 +2126,8 @@ The behavior is undefined if: - Other words are used on a line with an O- word - Comments are used on a line with an O-word -== Subroutines: sub, endsub, return, call (((Subroutines: sub, endsub, return, call))) +== Subroutines: sub, endsub, return, call +(((Subroutines: sub, endsub, return, call))) Subroutines extend from a `O- sub` to an `O- endsub` . The lines inside the subroutine (the "body") are not executed in @@ -2021,7 +2169,8 @@ of parameters above #30 and those changes will be visible to the calling code. Subroutines may also change the value of global named parameters. -== Looping: do, while, endwhile, break, continue (((Looping: do, while, endwhile, break, continue))) +== Looping: do, while, endwhile, break, continue +(((Looping: do, while, endwhile, break, continue))) The "while loop" has two structures: while/endwhile, and do/while. In each case, the loop is exited when the "while" condition evaluates to @@ -2041,7 +2190,8 @@ continue` immediately skips to the next evaluation of the `while` condition. If it is still true, the loop begins again at the top. If it is false, it exits the loop. -== Conditional: if, else, endif (((Conditional: if, else, endif))) +== Conditional: if, else, endif +(((Conditional: if, else, endif))) The "if" conditional executes one group of statements if a condition is true and another if it is false. @@ -2053,7 +2203,8 @@ is true and another if it is false. F200 O102 endif -== Repeat (((Repeat))) +== Repeat +(((Repeat))) The "repeat" will execute the statements inside of the repeat/endrepeat the specified number of times. The example shows how @@ -2068,7 +2219,8 @@ position. O103 endrepeat G90 (Absolute mode) -== Indirection (((Indirection))) +== Indirection +(((Indirection))) The O-number may be given by a parameter or calculation. @@ -2081,7 +2233,8 @@ Expressions (section <>), Binary Operators (section <>), and Functions (table <>) are particularly useful. -== Calling Files (((Calling Files))) +== Calling Files +(((Calling Files))) To call a separate file with a subroutine name the file the same as your call and include a sub and endsub in the file. The file must be in @@ -2103,7 +2256,9 @@ file must be a valid file. = Other Codes -== F: Set Feed Rate[[sub:F-Set-Feed]](((F: Set Feed Rate))) +[[sub:F-Set-Feed]] +== F: Set Feed Rate +(((F: Set Feed Rate))) To set the feed rate, program `F` where "n" is a number. The application of the feed rate is as described in Section @@ -2111,7 +2266,9 @@ The application of the feed rate is as described in Section in which case the feed rate is as described in Section <>. -== S: Set Spindle Speed[[sub:S-Set-Spindle]](((S: Set Spindle Speed))) +[[sub:S-Set-Spindle]] +== S: Set Spindle Speed +(((S: Set Spindle Speed))) To set the speed in revolutions per minute (RPM) of the spindle, program `S-`. The spindle will turn at that speed when it has been programmed to start turning. @@ -2132,7 +2289,9 @@ effect. The speed and feed rates will still be synchronized. In this case, the speed may differ from what is programmed, even if the speed override switch is set at 100%. -== T: Select Tool[[sub:T-Select-Tool]](((T: Select Tool))) +[[sub:T-Select-Tool]] +== T: Select Tool +(((T: Select Tool))) To select a tool, program `T`, where the number is the carousel slot for the tool. The tool is @@ -2163,7 +2322,9 @@ the tool like a lathe. This can be very confusing at first. To turn this feature off for the current tool change program a G1 without any move after the T. -== Comments[[sec:Comments]](((G Code Comments))) +[[sec:Comments]] +== Comments +(((Comments))) Printable characters and white space inside parentheses is a comment. A left parenthesis always starts a comment. The comment ends at the @@ -2177,7 +2338,9 @@ the comment. Here is an example of a line containing a comment: Comments are only informative, they do not cause a machine to do anything. -== Messages[[sec:Messages]](((G Code Messages))) +[[sec:Messages]] +== Messages +(((Messages))) A comment contains a message if `MSG` appears after the left parenthesis and before any other printing characters. Variants of @@ -2186,7 +2349,9 @@ The rest of the characters before the right parenthesis are considered to be a message. Messages should be displayed on the message display device. Comments not containing messages need not be displayed there. -== Probe Logging[[sub:Probe-Logging]](((Probe Logging))) +[[sub:Probe-Logging]] +== Probe Logging +(((Probe Logging))) A comment can also be used to specify a file for the results of G38.x probing. See section <>. @@ -2194,7 +2359,9 @@ probing. See section <>. Often, general logging is more useful than probe logging. Using general logging, the format of the output data can be controlled. -=== General Logging[[sub:General-logging]](((General Logging))) +[[sub:General-logging]] +=== General Logging +(((General Logging))) ==== (LOGOPEN,filename) @@ -2214,7 +2381,9 @@ If the log file is open, it is closed. The message “…” is expanded as described below and then written to the log file if it is open. -=== Debugging Messages[[sub:Debugging-messages]](((G Code Debugging Messages))) +[[sub:Debugging-messages]] +=== Debugging Messages +(((G Code Debugging Messages))) Comments that look like: `(debug, rest of comment)` are the same as comments like `(msg, rest of comment)` with the addition of special @@ -2240,3 +2409,6 @@ are replaced by the value of the named parameter. Remember that named So, `#` is the same as `#`. +// vim: set syntax=asciidoc: + + diff --git a/docs/src/gcode/main_de.txt b/docs/src/gcode/main_de.txt index 081f8d6bc..aa38b53eb 100644 --- a/docs/src/gcode/main_de.txt +++ b/docs/src/gcode/main_de.txt @@ -1,4 +1,5 @@ -= G Code Reference(((G Codes))) += G Code Reference +(((G Codes))) Conventions used in this section @@ -31,7 +32,8 @@ value of parameter 100 were 2, `G10 L#100` would also mean the same. If `L-` is written in a prototype the `-` will often be referred to as the "L number", and so on for any other letter. -== Polar Coordinates (((Polar Coordinates))) +== Polar Coordinates +(((Polar Coordinates))) Polar Coordinates can be used to specify the XY coordinate of a move. The @n is the distance and ^n is the angle. The advantage of this is @@ -89,7 +91,9 @@ It is an error if: - An incremental move is started at the origin - A mix of Polar and and X or Y words are used -== Quick Reference Table[[sec:Quick-Reference-Table]](((G Code Table))) +[[sec:Quick-Reference-Table]] +== Quick Reference Table +(((G Code Table))) [width="100%", options="header"] |==================================================================== @@ -174,7 +178,10 @@ It is an error if: |T | Tool Select | <> |======================================== -== G0 Rapid Motion[[sec:G0-Rapid]](((G0 Rapid))) +[[sec:G0-Rapid]] +== G0 Rapid Motion +(((G0 Rapid))) +(((Rapid))) G0 axes @@ -195,7 +202,9 @@ It is an error if: - An axis letter is without a real value. -== G1 Linear Motion[[sec:G1-Linear-Motion]](((G1 Linear Motion))) +[[sec:G1-Linear-Motion]] +== G1 Linear Motion +(((G1 Linear Motion))) G1 axes @@ -216,7 +225,9 @@ It is an error if: - No feed rate has been set. -== G2, G3 Arc[[sec:G2-G3-Arc]](((G2, G3 Arc))) +[[sec:G2-G3-Arc]] +== G2, G3 Arc +(((G2, G3 Arc))) A circular or helical arc is specified using either `G2` (clockwise arc) or `G3` (counterclockwise arc). The direction (CW, CCW) is as @@ -431,7 +442,9 @@ where X=10, Y=15, and Z=5, with a radius of 20. If the starting value of Z is 5, this is an arc of a circle parallel to the XY-plane; otherwise it is a helical arc. -== G4 Dwell[[sec:G4-Dwell]](((G4 Dwell))) +[[sec:G4-Dwell]] +== G4 Dwell +(((G4 Dwell))) G4 P[seconds] @@ -442,7 +455,9 @@ It is an error if: - the P number is negative. -== G5.1 Quadratic B-spline[[sec:G5.1-B-spline]](((G5.1 Quadratic B-spline))) +[[sec:G5.1-B-spline]] +== G5.1 Quadratic B-spline +(((G5.1 Quadratic B-spline))) G5.1 Xn Yn I[X offset] J[Y offset] @@ -454,7 +469,9 @@ It is an error if: - An axis other than X or Y is specified - The active plane is not G17 -== G5.2 G5.3 NURBs Block[[sec:G5.2-G5.3-NURBs]](((G5.2 G5.3 NURBs Block))) +[[sec:G5.2-G5.3-NURBs]] +== G5.2 G5.3 NURBs Block +(((G5.2 G5.3 NURBs Block))) Warning: G5.2, G5.3 is experimental and not fully tested. @@ -496,21 +513,26 @@ More information on NURBs can be found here: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] -== G7 Diameter Mode[[sec:G7-Diameter-Mode]](((G7 Diameter Mode))) +[[sec:G7-Diameter-Mode]] +== G7 Diameter Mode +(((G7 Diameter Mode))) Program G7 to enter the diameter mode for axis X on a lathe. When in the Diameter mode the X axis moves on a lathe will be 1/2 the distance to the center of the lathe. For example X1 would move the cutter to 0.500” from the center of the lathe thus giving a 1” diameter part. -== G8 Radius Mode[[sec:G8-Radius-Mode]](((G8 Radius Mode))) +[[sec:G8-Radius-Mode]] +== G8 Radius Mode +(((G8 Radius Mode))) Program G8 to enter the radius mode for axis X on a lathe. When in Radius mode the X axis moves on a lathe will be the distance from the center. Thus a cut at X1 would result in a part that is 2" in diameter. G8 is default at power up. -== G10 L1 Set Tool Table[[sec:G10-L1_]] +[[sec:G10-L1_]] +== G10 L1 Set Tool Table (((G10 L1 Tool Table))) G10 L1 P[tool number] R[radius] @@ -531,7 +553,9 @@ It is an error if: For more information on cutter orientation, see the <> diagram. -== G10 L2 Set Coordinate System[[sec:G10-L2_]](((G10 L2 Coordinate System))) +[[sec:G10-L2_]] +== G10 L2 Set Coordinate System +(((G10 L2 Coordinate System))) G10 L2 P[coordinate system] R[XY rotation about Z] X[offset] Y[offset] Z[offset] @@ -599,7 +623,9 @@ G10 L2 P1 X0 Y0 Z0:: |9 | 9 | 59.3 |======================================== -== G10 L10 Set Tool Table[[sec:G10-L10]](((G10 L10 Set Tool Table))) +[[sec:G10-L10]] +== G10 L10 Set Tool Table +(((G10 L10 Set Tool Table))) G10 L10 P[tool number] R[radius] X[set_curr_sys_to] Y[set_curr_sys_to] Z[set_curr_sys_to] @@ -617,7 +643,9 @@ It is an error if: - Cutter Compensation is on -== G10 L11 Set Tool Table[[sec:G10-L11]](((G10 L11 Set Tool Table))) +[[sec:G10-L11]] +== G10 L11 Set Tool Table +(((G10 L11 Set Tool Table))) G10 L11 P[tool number] R[radius] X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] @@ -639,7 +667,9 @@ It is an error if: - Cutter Compensation is on -== G10 L20 Set Coordinate System[[sec:G10-L20]](((G10 L20 Set Coordinate System))) +[[sec:G10-L20]] +== G10 L20 Set Coordinate System +(((G10 L20 Set Coordinate System))) G10 L20 P[coordinate system] R[rotation about Z] X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] @@ -655,7 +685,11 @@ It is an error if: - The P number does not evaluate to an integer in the range 0 to 9. - An axis is programmed that is not defined in the configuration. -== G17, G18, G19, G17.1, G18.1, G19.1 Plane Selection[[sec:G17-G18-G19]] +[[sec:G17-G18-G19]] +== G17, G18, G19, G17.1, G18.1, G19.1 Plane Selection +(((G17 XY Plane))) +(((G18 XZ Plane))) +(((G19 YZ Plane))) These codes set the current plane as follows: @@ -672,7 +706,9 @@ These codes set the current plane as follows: The effects of having a plane selected are discussed in Section <> and Section <> -== G20, G21 Length Units[[sec:G20-G21-Units]](((G20, G21 Length Units))) +[[sec:G20-G21-Units]] +== G20, G21 Length Units +(((G20, G21 Length Units))) Program G20 to use inches for length units. + Program G21 to use millimeters for length units. @@ -681,7 +717,10 @@ It is usually a good idea to program either G20 or G21 near the beginning of a program before any motion occurs, and not to use either one anywhere else in the program. -== G28, G28.1 Go to Predefined Position[[sec:G28-G28.1]](((G28, G28.1))) +[[sec:G28-G28.1]] +== G28, G28.1 Go to Predefined Position +(((G28))) +(((G28.1))) G28 uses the values in parameters 5161-5166 as the absolute values to make a rapid traverse move to from the current position. The parameter @@ -699,7 +738,9 @@ It is an error if : - Radius compensation is turned on -== G30, G30.1 Go to Predefined Position[[sec:G30-G30.1]](((G30, G30.1))) +[[sec:G30-G30.1]] +== G30, G30.1 Go to Predefined Position +(((G30, G30.1))) G30 uses the values in parameters 5181-5186 as the absolute values to make a rapid traverse move to from the current position. @@ -719,7 +760,9 @@ It is an error if : - Radius compensation is turned on -== G33 Spindle-Synchronized Motion[[sec:G33-Spindle-Sync]](((G33, G33.1 Spindle-Synchronized Motion))) +[[sec:G33-Spindle-Sync]] +== G33 Spindle-Synchronized Motion +(((G33 Spindle-Synchronized Motion))) G33 X- Y- Z- K- @@ -745,7 +788,9 @@ It is an error if: - The requested linear motion exceeds machine velocity limits due to the spindle speed -== G33.1 Rigid Tapping[[sec:G33.1-Rigid-Tapping]](((G33.1 Rigid Tapping))) +[[sec:G33.1-Rigid-Tapping]] +== G33.1 Rigid Tapping +(((G33.1 Rigid Tapping))) G33.1 X- Y- Z- K- @@ -788,7 +833,8 @@ Example: ;rigid tapping a 20 TPI thread G33.1 Z-0.750 K0.05 -== G38.x Straight Probe[[sec:G38.x-Straight-Probe]] +[[sec:G38.x-Straight-Probe]] +== G38.x Straight Probe (((G38.2 Probe)))(((G38.3 Probe)))(((G38.4 Probe)))(((G38.5 Probe))) IMPORTANT: You will not be able to successfully use this command until your @@ -851,7 +897,8 @@ A comment of the form `(PROBEOPEN filename.txt)` will open XYZABCUVW of each successful straight probe in it. The file must be closed with `(PROBECLOSE)`. -== G40 Compensation Off[[sec:G40]] +[[sec:G40]] +== G40 Compensation Off (((G40 Radius Compensation Off))) Program G40 to turn cutter radius compensation off. @@ -862,8 +909,10 @@ It is an error if: - A G2/G3 arc move is programmed next after a G40. -== G41, G42 Tool Radius Compensation[[sec:G41-G42]] -(((G41 Radius Compensation)))(((G42 Radius Compensation))) +[[sec:G41-G42]] +== G41, G42 Tool Radius Compensation +(((G41 Radius Compensation))) +(((G42 Radius Compensation))) G41 or G42 D[tool] @@ -906,8 +955,10 @@ It is an error if: - The YZ plane is active, - Cutter radius compensation is commanded to turn on when it is already on. -== G41.1, G42.1 Dynamic Cutter Radius Compensation[[sec:G41.1-G42.1]] -(((G41.1 Dynamic Radius Compensation)))(((G41.1 Dynamic Radius Compensation))) +[[sec:G41.1-G42.1]] +== G41.1, G42.1 Dynamic Cutter Radius Compensation +(((G41.1 Dynamic Radius Compensation))) +(((G42.1 Dynamic Radius Compensation))) G41.1 or G42.1 D[diameter] @@ -928,10 +979,11 @@ It is an error if: For more information on cutter orientation see the <> and <> and <> diagrams. -== G43, G43.1, G49 Tool Length Offsets[[sec:G43-G43.1-Tool]] +[[sec:G43-G43.1-Tool]] +== G43, G43.1, G49 Tool Length Offsets (((G43, G43.1, G49 Tool Length Offsets))) -=== G43, G43.1: Activate Tool length compensation(((G43)))(((G43.1))) +=== G43, G43.1: Activate Tool length compensation G43 and G43.1 change subsequent motions by offsetting the Z and/or X coordinates by the length of the tool. G43 and G43.1 do not cause any @@ -964,7 +1016,9 @@ It is an error if: - motion is commanded on the same line as `G43.1` -=== G49 : Cancel tool length compensation[[sub:G49-Tool]] +[[sub:G49-Tool]] +=== G49 : Cancel tool length compensation +(((G49))) To use no tool length offset, program G49. @@ -972,7 +1026,8 @@ It is OK to program using the same offset already in use. It is also OK to program using no tool length offset if none is currently being used. -== G53 Move in Absolute Coordinates[[sub:G53-Move-in]] +[[sub:G53-Move-in]] +== G53 Move in Absolute Coordinates (((G53 Absolute Coordinates))) To move in absolute coordinates from the machine origin, program `G53` @@ -988,8 +1043,17 @@ It is an error if: - G53 is used without G0 or G1 being active, - or G53 is used while cutter radius compensation is on. -== G54-G59.3 Select Coordinate System[[sec:G54-G59.3]] -(((G54-G59.3 Select Coordinate System))) +[[sec:G54-G59.3]] +== G54-G59.3 Select Coordinate System +(((G54 Select Coordinate System 1))) +(((G55 Select Coordinate System 2))) +(((G56 Select Coordinate System 3))) +(((G57 Select Coordinate System 4))) +(((G58 Select Coordinate System 5))) +(((G59 Select Coordinate System 6))) +(((G59.1 Select Coordinate System 7))) +(((G59.2 Select Coordinate System 8))) +(((G59.3 Select Coordinate System 9))) To select coordinate system 1, program G54, @@ -1025,9 +1089,13 @@ It is an error if: See Section <> for an overview of coordinate systems. -== G61, G61.1, G64 Set Path Control Mode[[sec:G61-G61.1-G64]] -(((G61 Exact Trajectory)))(((G61.1 Exact Stop)))(((G64 Trajectory Control))) -(((Path Control)))(((Trajectory Control))) +[[sec:G61-G61.1-G64]] +== G61, G61.1, G64 Set Path Control Mode +(((G61 Exact Trajectory))) +(((G61.1 Exact Stop))) +(((G64 Trajectory Control))) +(((Path Control))) +(((Trajectory Control))) G61 Exact Path Mode G61.1 Exact Stop Mode @@ -1059,7 +1127,9 @@ Section <> for a discussion of these modes. If Q is not specified then it will have the same behavior as before and use the value of P-. -== G73 Drilling Cycle with Chip Breaking[[sec:G73-Drilling-Cycle]](((G73 Drilling Cycle Chip Break))) +[[sec:G73-Drilling-Cycle]] +== G73 Drilling Cycle with Chip Breaking +(((G73 Drilling Cycle Chip Break))) G73 X- Y- Z- A- B- C- R- L- Q- @@ -1079,7 +1149,9 @@ It is an error if: - the Q number is negative or zero. -== G76 Threading Cycle[[sec:G76-Threading-Canned]](((G76 Threading))) +[[sec:G76-Threading-Canned]] +== G76 Threading Cycle +(((G76 Threading))) G76 P- Z- I- J- R- K- Q- H- E- L- @@ -1200,14 +1272,19 @@ moves. image::images/g76-01.png[] -== G80 Cancel Modal Motion[[sec:G80-Cancel-Modal]] +[[sec:G80-Cancel-Modal]] +== G80 Cancel Modal Motion +(((G80 Cancel Modal Motion))) Program `G80` to ensure no axis motion will occur. It is an error if: - Axis words are programmed when G80 is active, unless a modal group 0 Gcode is programmed which uses axis words. -== Canned Cycles[[sec:G81-G89]](((Canned Cycles))) +[[sec:G81-G89]] +== Canned Cycles G81-G89 +(((Canned Cycles G81-G89))) +(((G81-G89 Canned Cycles))) The canned cycles `G81` through `G89` are described in this section. Two examples are given with the description of `G81` below. @@ -1312,7 +1389,9 @@ following one or two moves are made If another plane is active, the preliminary and in-between motions are analogous. -== G81 Drilling Cycle[[sec:G81-Drilling-Cycle]](((G81 Drilling Cycle))) +[[sec:G81-Drilling-Cycle]] +== G81 Drilling Cycle +(((G81 Drilling Cycle))) G81 (X- Y- Z-) or (U- V- W-) R- L- @@ -1377,7 +1456,9 @@ The third repeat consists of 3 moves. The X position is reset to 13 . a feed parallel to the Z-axis to (13,17, 4.2) . a traverse parallel to the Z-axis to (13,17,4.8) -== G82 Drilling Cycle with Dwell[[sec:G82-Drilling-Dwell]](((G82 Drilling Cycle Dwell))) +[[sec:G82-Drilling-Dwell]] +== G82 Drilling Cycle with Dwell +(((G82 Drilling Cycle Dwell))) G82 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1389,7 +1470,9 @@ the hole. . Dwell for the P number of seconds. . Retract the Z-axis at traverse rate to clear Z. -== G83 Peck Drilling[[sec:G83-Drilling-Peck]](((G83 Peck Drilling))) +[[sec:G83-Drilling-Peck]] +== G83 Peck Drilling +(((G83 Peck Drilling))) G83 (X- Y- Z-) or (U- V- W-) R- L- Q- @@ -1414,13 +1497,17 @@ It is an error if: - the Q number is negative or zero. -== G84 Right-Hand Tapping[[sec:G84-Right-Hand-Tapping]](((G84 Right-Hand Tapping))) +[[sec:G84-Right-Hand-Tapping]] +== G84 Right-Hand Tapping +(((G84 Right-Hand Tapping))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. See sections <> and <> -== G85 Boring, No Dwell, Feed Out[[sec:G85-Boring-Feed-Out]](((G85 Boring, No Dwell, Feed Out))) +[[sec:G85-Boring-Feed-Out]] +== G85 Boring, No Dwell, Feed Out +(((G85 Boring, No Dwell, Feed Out))) G85 (X- Y- Z-) or (U- V- W-) R- L- @@ -1431,7 +1518,9 @@ for drilling or milling. . Move the Z-axis only at the current feed rate to the Z position. . Retract the Z-axis at the current feed rate to clear Z. -== G86 Boring, Spindle Stop, Rapid Out[[sec:G86-Boring-Rapid-Out]](((G86 Boring, Spindle Stop, Rapid Out))) +[[sec:G86-Boring-Rapid-Out]] +== G86 Boring, Spindle Stop, Rapid Out +(((G86 Boring, Spindle Stop, Rapid Out))) G86 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1450,17 +1539,23 @@ if: - the spindle is not turning before this cycle is executed. -== G87 Back Boring[[sec:G87-Back-Boring]] (((G87 Back Boring))) +[[sec:G87-Back-Boring]] +== G87 Back Boring +(((G87 Back Boring))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. -== G88 Boring, Spindle Stop, Manual Out[[sec:G88-Boring-Manual-Out]](((G88 Boring, Spindle Stop, Manual Out))) +[[sec:G88-Boring-Manual-Out]] +== G88 Boring, Spindle Stop, Manual Out +(((G88 Boring, Spindle Stop, Manual Out))) This code is currently unimplemented in EMC2. It is accepted, but the behavior is undefined. -== G89 Boring, Dwell, Feed Out[[sec:G89-Boring-Dwell,]](((G89 Boring, Dwell, Feed Out))) +[[sec:G89-Boring-Dwell,]] +== G89 Boring, Dwell, Feed Out +(((G89 Boring, Dwell, Feed Out))) G89 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1472,7 +1567,9 @@ where P specifies the number of seconds to dwell. . Dwell for the P number of seconds. . Retract the Z-axis at the current feed rate to clear Z. -== G90, G91 Set Distance Mode[[sec:G90-G91-Set]](((G90, G91 Set Distance Mode))) +[[sec:G90-G91-Set]] +== G90, G91 Set Distance Mode +(((G90, G91 Set Distance Mode))) G90 is Absolute Distance Mode + G91 is Incremental Distance Mode @@ -1490,7 +1587,9 @@ To go into incremental distance mode, program `G91`. In incremental distance mode, axis numbers usually represent increments from the current coordinate. -== G90.1, G91.1 Arc Distance Mode[[sec:G90.1-G91.1]](((Arc Distance Mode))) +[[sec:G90.1-G91.1]] +== G90.1, G91.1 Arc Distance Mode +(((Arc Distance Mode))) G90.1 Absolute Distance Mode for I, J & K offsets. @@ -1500,7 +1599,9 @@ G91.1 Incremental Distance Mode for I, J & K offsets. - Returns I, J & K to their normal behavior. -== G92, G92.1, G92.2, G92.3 Coordinate System Offsets[[sec:G92-G92.1-G92.2-G92.3]](((G92, G92.1, G92.2, G92.3 Offsets))) +[[sec:G92-G92.1-G92.2-G92.3]] +== G92, G92.1, G92.2, G92.3 Coordinate System Offsets +(((G92, G92.1, G92.2, G92.3 Offsets))) G92 X- Y- Z- A- B- C- U- V- W- @@ -1556,7 +1657,9 @@ EMC2 stores the G92 offsets and reuses them on the next run of a program. To prevent this, one can program a G92.1 (to erase them), or program a G92.2 (to remove them - they are still stored). -== G93, G94, G95: Set Feed Rate Mode[[sec:G93-G94-G95-Mode]](((G93, G94, G95: Feed Rate Mode))) +[[sec:G93-G94-G95-Mode]] +== G93, G94, G95: Set Feed Rate Mode +(((G93, G94, G95: Feed Rate Mode))) G93 is Inverse Time Mode G94 is Units per Minute Mode @@ -1593,7 +1696,9 @@ It is an error if: (explicitly or implicitly) does not have an F word. - A new feed rate is not specified after switching to G94 or G95 -== G96, G97 Spindle Control Mode[[sec:G96-G97-Spindle]](((G96, G97 Spindle Control Mode))) +[[sec:G96-G97-Spindle]] +== G96, G97 Spindle Control Mode +(((G96, G97 Spindle Control Mode))) G96 D[max spindle speed] S[units per minute] is Constant Surface Speed Mode + G97 is RPM Mode @@ -1616,7 +1721,9 @@ It is an error if: - S is not specified with G96 - A feed move is specified in G96 mode while the spindle is not turning -== G98, G99 Set Canned Cycle Return Level[[sec:G98-G99-Set]](((G98, G99 Canned Cycle Return))) +[[sec:G98-G99-Set]] +== G98, G99 Set Canned Cycle Return Level +(((G98, G99 Canned Cycle Return))) G98 Retract to the position that axis was in just before this series of one or more contiguous canned cycles was started. + @@ -1643,9 +1750,13 @@ between G98 and G99 during a series of cycles. = M Codes -== M0, M1, M2, M30, M60 Program Stopping and Ending[[sec:M0-M1-M2]] -(((M0 Program Stop)))(((M1 Program Optional Stop))) -(((M2 Program End)))(((M30 Program End)))(((M60 Program End))) +[[sec:M0-M1-M2]] +== M0, M1, M2, M30, M60 Program Stopping and Ending +(((M0 Program Stop))) +(((M1 Program Optional Stop))) +(((M2 Program End))) +(((M30 Program End))) +(((M60 Program End))) To pause a running program temporarily (regardless of the setting of the optional stop switch), @@ -1691,8 +1802,11 @@ after the M2 or M30 command is executed. Pressing cycle start will start the program at the beginning of the file. -== M3, M4, M5 Spindle Control[[sec:M3-M4-M5]] -(((M3 Spindle CW)))(((M4 Spindle CCW)))(((M5 Spindle Stop))) +[[sec:M3-M4-M5]] +== M3, M4, M5 Spindle Control +(((M3 Spindle CW))) +(((M4 Spindle CCW))) +(((M5 Spindle Stop))) To start the spindle clockwise at the "S" speed, program `M3`. + To start the spindle counterclockwise at the "S" speed, program `M4`. + @@ -1708,7 +1822,9 @@ the spindle will start turning. It is OK to use `M3` or `M4` when the spindle is already turning or to use `M5` when the spindle is already stopped. -== M6 Tool Change[[sec:M6-Tool-Change]](((M6-Tool-Change))) +[[sec:M6-Tool-Change]] +== M6 Tool Change +(((M6-Tool-Change))) === Manual Tool Change @@ -1748,8 +1864,11 @@ in that case, the spindle will be empty after the tool change. If slot zero was last selected, there will definitely be no tool in the spindle after a tool change. -== M7, M8, M9 Coolant Control[[sec:M7-M8-M9]] -(((M7 Mist Coolant)))(((M8 Flood Coolant)))(((M9 Coolant Off))) +[[sec:M7-M8-M9]] +== M7, M8, M9 Coolant Control +(((M7 Mist Coolant))) +(((M8 Flood Coolant))) +(((M9 Coolant Off))) To turn mist coolant on, program `M7`. + To turn flood coolant on, program `M8`. + @@ -1758,9 +1877,13 @@ To turn all coolant off, program `M9`. It is always OK to use any of these commands, regardless of what coolant is on or off. -== Overrides [[sec:Overrides]] +[[sec:Overrides]] +== Overrides -=== M48, M49 Override Control[[sub:M48-Both-Override]][[sub:M49-Neither-Override]](((M48, M49 Override Control))) +[[sub:M48-Both-Override]] +[[sub:M49-Neither-Override]] +=== M48, M49 Override Control +(((M48, M49 Override Control))) To enable the spindle speed and feed rate override controls, program `M48`. To disable both controls, program `M49`. @@ -1771,7 +1894,9 @@ These controls can also be toggled individually using M50 and M51 as described in the sections <> and <>. -=== M50 Feed Override Control[[sub:M50-Feed-Override]](((M50 Feed Override Control))) +[[sub:M50-Feed-Override]] +=== M50 Feed Override Control +(((M50 Feed Override Control))) To enable the feed rate override control, program `M50` or `M50 P1`. @@ -1780,7 +1905,9 @@ While disabled the feed override will have no influence, and the motion will be executed at programmed feed rate. (unless there is an adaptive feed rate override active). -=== M51 Spindle Speed Override Control[[sub:M51-Spindle-Override]](((M51 Spindle Speed Override))) +[[sub:M51-Spindle-Override]] +=== M51 Spindle Speed Override Control +(((M51 Spindle Speed Override))) To enable the spindle speed override control, program `M51` or `M51 P1`. @@ -1790,7 +1917,9 @@ will have no influence, and the spindle speed will have the exact program specified value (using the S-word as described in <>). -=== M52 Adaptive Feed Control[[sub:M52-Adaptive-Feed-Control]](((M52 Adaptive Feed Control))) +[[sub:M52-Adaptive-Feed-Control]] +=== M52 Adaptive Feed Control +(((M52 Adaptive Feed Control))) To use an adaptive feed, program `M52` or `M52 P1`. To stop using adaptive feed, program `M52 P0`. @@ -1802,7 +1931,9 @@ In EMC2, the HAL pin `motion.adaptive-feed` is used for this purpose. Values on `motion.adaptive-feed` should range from 0 (feed hold) to 1 (full speed). -=== M53 Feed Stop Control[[sub:M53-Feed-Stop-Control]](((M53 Feed Stop Control))) +[[sub:M53-Feed-Stop-Control]] +=== M53 Feed Stop Control +(((M53 Feed Stop Control))) To enable the feed stop switch, program `M53` or `M53 P1`. To disable the switch program `M53 P0` . Enabling the feed stop switch will allow @@ -1810,7 +1941,9 @@ motion to be interrupted by means of the feed stop control. In EMC2, the HAL pin `motion.feed-hold` is used for this purpose. Values of 1 will cause the motion to stop (if `M53` is active). -== M61 Set Current Tool Number[[sec:M61-Set-Current-Tool-Number]](((M61 Set Current Tool Number))) +[[sec:M61-Set-Current-Tool-Number]] +== M61 Set Current Tool Number +(((M61 Set Current Tool Number))) To change the current tool number while in MDI or Manual mode program a M61 Qxx in the MDI window. One use is when you power up EMC with a @@ -1821,7 +1954,9 @@ doing a tool change. - Q- is not 0 or greater -== M62 to M65 Output Control[[sec:M62-to-M65]](((M62 to M65 Output Control))) +[[sec:M62-to-M65]] +== M62 to M65 Output Control +(((M62 to M65 Output Control))) To control a digital output bit, program `M- P-`, where the M-word ranges from 62 to 65, and the P-word ranges from 0 @@ -1858,7 +1993,9 @@ M64 & M65 happen immediately as they are received by the motion controller. They are not synchronized with movement, and they will break blending. -== M66 Input Control[[sec:M66-Input-Control]](((M66 Input Control))) +[[sec:M66-Input-Control]] +== M66 Input Control +(((M66 Input Control))) To read the value of an analog or digital input pin, program `M66 P- E- L- Q-`, where the P-word and the E-word ranges @@ -1898,7 +2035,9 @@ selecting both an analog and a digital input).In EMC2 these inputs are not monitored in real time and thus should not be used for timing-critical applications. -== M67 Analog Output[[sec:M67-Analog-Output]](((M67 Analog Motion Output Control))) +[[sec:M67-Analog-Output]] +== M67 Analog Output +(((M67 Analog Motion Output Control))) To control an analog output synchronized with motion, program `M67 E- Q-`, where the E word ranges from 0 to the default maximum @@ -1909,7 +2048,9 @@ Manual for more information on the Motion Controller. M67 functions the same as M62-63. See the M62-65 section for information about queuing output commands synchronized with motion. -== M68 Analog Output[[sec:M68-Analog-Output]](((M68 Analog Aux Output Control))) +[[sec:M68-Analog-Output]] +== M68 Analog Output +(((M68 Analog Aux Output Control))) To control an analog output immediately, program `M68 E- Q-, ` where the E word ranges from 0 to the default maximum of 3 and Q is @@ -1920,7 +2061,10 @@ more information on the Motion Controller. M68 functions the same as M64-65. See the M62-65 section for information about immediate output commands. -== M100 to M199 User Defined Commands[[sec:M100-to-M199]](((M100 to M199 User Defined Commands))) +[[sec:M100-to-M199]] +== M100 to M199 User Defined Commands +(((M100 to M199 User Defined Commands))) +(((User Defined Commands M100-M199))) To invoke a user-defined command, program `M1nn P- Q-` where `P-` and `Q-` are both optional and must be a number. The external program "M1nn" @@ -1967,7 +2111,9 @@ In your M100 file it might look like this: halcmd setp thc.feedrate $feedrate exit 0 -= O Codes[[cha:O-Codes]](((O Codes))) +[[cha:O-Codes]] += O Codes +(((O Codes))) O-codes provide for flow control in NC programs. Each block has an associated number, which is the number used after O. Care must be taken @@ -1979,7 +2125,8 @@ The behavior is undefined if: - Other words are used on a line with an O- word - Comments are used on a line with an O-word -== Subroutines: sub, endsub, return, call (((Subroutines: sub, endsub, return, call))) +== Subroutines: sub, endsub, return, call +(((Subroutines: sub, endsub, return, call))) Subroutines extend from a `O- sub` to an `O- endsub` . The lines inside the subroutine (the "body") are not executed in @@ -2021,7 +2168,8 @@ of parameters above #30 and those changes will be visible to the calling code. Subroutines may also change the value of global named parameters. -== Looping: do, while, endwhile, break, continue (((Looping: do, while, endwhile, break, continue))) +== Looping: do, while, endwhile, break, continue +(((Looping: do, while, endwhile, break, continue))) The "while loop" has two structures: while/endwhile, and do/while. In each case, the loop is exited when the "while" condition evaluates to @@ -2041,7 +2189,8 @@ continue` immediately skips to the next evaluation of the `while` condition. If it is still true, the loop begins again at the top. If it is false, it exits the loop. -== Conditional: if, else, endif (((Conditional: if, else, endif))) +== Conditional: if, else, endif +(((Conditional: if, else, endif))) The "if" conditional executes one group of statements if a condition is true and another if it is false. @@ -2053,7 +2202,8 @@ is true and another if it is false. F200 O102 endif -== Repeat (((Repeat))) +== Repeat +(((Repeat))) The "repeat" will execute the statements inside of the repeat/endrepeat the specified number of times. The example shows how @@ -2068,7 +2218,8 @@ position. O103 endrepeat G90 (Absolute mode) -== Indirection (((Indirection))) +== Indirection +(((Indirection))) The O-number may be given by a parameter or calculation. @@ -2081,7 +2232,8 @@ Expressions (section <>), Binary Operators (section <>), and Functions (table <>) are particularly useful. -== Calling Files (((Calling Files))) +== Calling Files +(((Calling Files))) To call a separate file with a subroutine name the file the same as your call and include a sub and endsub in the file. The file must be in @@ -2103,7 +2255,9 @@ file must be a valid file. = Other Codes -== F: Set Feed Rate[[sub:F-Set-Feed]](((F: Set Feed Rate))) +[[sub:F-Set-Feed]] +== F: Set Feed Rate +(((F: Set Feed Rate))) To set the feed rate, program `F` where "n" is a number. The application of the feed rate is as described in Section @@ -2111,7 +2265,9 @@ The application of the feed rate is as described in Section in which case the feed rate is as described in Section <>. -== S: Set Spindle Speed[[sub:S-Set-Spindle]](((S: Set Spindle Speed))) +[[sub:S-Set-Spindle]] +== S: Set Spindle Speed +(((S: Set Spindle Speed))) To set the speed in revolutions per minute (RPM) of the spindle, program `S-`. The spindle will turn at that speed when it has been programmed to start turning. @@ -2132,7 +2288,9 @@ effect. The speed and feed rates will still be synchronized. In this case, the speed may differ from what is programmed, even if the speed override switch is set at 100%. -== T: Select Tool[[sub:T-Select-Tool]](((T: Select Tool))) +[[sub:T-Select-Tool]] +== T: Select Tool +(((T: Select Tool))) To select a tool, program `T`, where the number is the carousel slot for the tool. The tool is @@ -2163,7 +2321,9 @@ the tool like a lathe. This can be very confusing at first. To turn this feature off for the current tool change program a G1 without any move after the T. -== Comments[[sec:Comments]](((G Code Comments))) +[[sec:Comments]] +== Comments +(((Comments))) Printable characters and white space inside parentheses is a comment. A left parenthesis always starts a comment. The comment ends at the @@ -2177,7 +2337,9 @@ the comment. Here is an example of a line containing a comment: Comments are only informative, they do not cause a machine to do anything. -== Messages[[sec:Messages]](((G Code Messages))) +[[sec:Messages]] +== Messages +(((Messages))) A comment contains a message if `MSG` appears after the left parenthesis and before any other printing characters. Variants of @@ -2186,7 +2348,9 @@ The rest of the characters before the right parenthesis are considered to be a message. Messages should be displayed on the message display device. Comments not containing messages need not be displayed there. -== Probe Logging[[sub:Probe-Logging]](((Probe Logging))) +[[sub:Probe-Logging]] +== Probe Logging +(((Probe Logging))) A comment can also be used to specify a file for the results of G38.x probing. See section <>. @@ -2194,7 +2358,9 @@ probing. See section <>. Often, general logging is more useful than probe logging. Using general logging, the format of the output data can be controlled. -=== General Logging[[sub:General-logging]](((General Logging))) +[[sub:General-logging]] +=== General Logging +(((General Logging))) ==== (LOGOPEN,filename) @@ -2214,7 +2380,9 @@ If the log file is open, it is closed. The message “…” is expanded as described below and then written to the log file if it is open. -=== Debugging Messages[[sub:Debugging-messages]](((G Code Debugging Messages))) +[[sub:Debugging-messages]] +=== Debugging Messages +(((G Code Debugging Messages))) Comments that look like: `(debug, rest of comment)` are the same as comments like `(msg, rest of comment)` with the addition of special @@ -2240,3 +2408,6 @@ are replaced by the value of the named parameter. Remember that named So, `#` is the same as `#`. +// vim: set syntax=asciidoc: + + diff --git a/docs/src/gcode/main_es.txt b/docs/src/gcode/main_es.txt index 7eb207bb1..6a63b43e6 100644 --- a/docs/src/gcode/main_es.txt +++ b/docs/src/gcode/main_es.txt @@ -1,4 +1,5 @@ -= G Código de Referencia(((G Codes))) += G Código de Referencia +(((G Codes))) Convenciones utilizadas en esta sección @@ -31,7 +32,8 @@ valor del parámetro 100 a los 2, `G10 L#100` también significan lo mismo. Si la opción `-L` está escrito en un prototipo del `-` a menudo se hace referencia como el "número L", y así sucesivamente para cualquier otra letra. -== Coordenadas polares(((coordenadas polares))) +== Coordenadas polares +(((coordenadas polares))) Las coordenadas polares se puede utilizar para especificar las coordenadas XY de un movimiento. El n @ es la distancia y ^n es el ángulo. La ventaja de esto es @@ -89,7 +91,9 @@ Es un error si: - Un movimiento incremental que se inicia en el origen - Una mezcla de Polar y X y Y o palabras se utilizan -== Tabla de Referencia Rápida[[sec:Tabla-de-Referencia-Rapida]](((Tabla de códigos G))) +[[sec:Tabla-de-Referencia-Rapida]] +== Tabla de Referencia Rápida +(((Tabla de códigos G))) [Width="100%", options="header"] |==================================================================== @@ -174,7 +178,10 @@ Es un error si: | T | Herramienta de selección | <> |======================================== -== G0 movimiento rápido[[sec:G0-Rapido]](((Rápido))) +[[sec:G0-Rapido]] +== G0 movimiento rápido +(((G0 Rápido))) +(((Rápido))) G0 ejes @@ -195,7 +202,9 @@ Es un error si: - Una carta de eje sin un valor real. -== G1 Linear Motion [[sec:G1-lineal-de-movimiento]](((G1 Linear Motion))) +[[sec:G1-lineal-de-movimiento]] +== G1 Linear Motion +(((G1 Linear Motion))) G1 ejes @@ -216,7 +225,9 @@ Es un error si: - No hay velocidad de avance se ha establecido. -== G2, G3 Arco [[sec:G2-G3-Arco]](((G2, G3 Arco))) +[[sec:G2-G3-Arco]] +== G2, G3 Arco +(((G2, G3 Arco))) Un arco circular o helicoidal se especifica utilizando `G2` (a la derecha arco) o `G3` (a la izquierda del arco). La dirección (CW, CCW) es tan @@ -382,7 +393,7 @@ ya sea el punto actual o el punto final del arco. G2 o G3 I- J- K- -Para hacer un círculo completo de 360 ​​desde la ubicación actual único programa de la I, +Para hacer un círculo completo de 360 desde la ubicación actual único programa de la I, J o K desplazamiento de la ubicación actual del G2/G3. Para programar una 360 hélice de grado en el plano XY basta con incluir la palabra Z. @@ -431,7 +442,9 @@ donde X = 10, Y = 15, y Z = 5, con un radio de 20. Si el valor inicial de Z es de 5, esto es un arco de círculo paralelo al plano XY; de lo contrario, es un arco helicoidal. -== G4 Dwell[[sec:G4-Mora]](((G4 Mora))) +[[sec:G4-Mora]] +== G4 Dwell +(((G4 Mora))) G4 P[segundos] @@ -454,7 +467,9 @@ Es un error si: - El otro eje de X o Y se especifica - El avión no está activo G17 -== G5.2 G5.3 NURBS bloque [[sec:G5.2-G5.3-NURBs]](((G5.2 G5.3 Bloque NURBs))) +[[sec:G5.2-G5.3-NURBs]] +== G5.2 G5.3 NURBS bloque +(((G5.2 G5.3 Bloque NURBs))) Advertencia: G5.2, G5.3 es experimental y no han sido evaluados completamente. @@ -496,21 +511,26 @@ Más información sobre NURBS se pueden encontrar aquí: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS [http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] -== Modo Diámetro del G7 [[sec:G7-Diametro-Modo]](((Diámetro del G7))) +[[sec:G7-Diametro-Modo]] +== Modo Diámetro del G7 +(((Diámetro del G7))) Programa del G7 para entrar en el modo de diámetro para el eje X en un torno. Cuando en el modo de diámetro en el eje X se mueve en un torno, se media la distancia en el centro del torno. Por ejemplo X1 se trasladaría a la cortadora 0.500 "desde el centro del torno dando así un una" parte de diámetro. -== G8 modo Radio[[sec:G8-Radio-Mode]](((modo Radio del G8))) +[[sec:G8-Radio-Mode]] +== G8 modo Radio +(((modo Radio del G8))) Programa del G8 para entrar en el modo de radio para el eje X en un torno. Cuando en El modo de radio en el eje X se mueve en un torno, será la distancia de la centro. Así, un corte en el X1 se traduciría en una parte que es de 2" de diámetro. G8 es por defecto al encender el equipo. -== G10 L1 Set de herramientas Tabla[[sec:G10-L1_]] +[[sec:G10-L1_]] +== G10 L1 Set de herramientas Tabla (((G10 Tabla de herramientas L1))) G10 L1 P [número de herramientas] R [radio] @@ -531,7 +551,9 @@ Es un error si: Para más información sobre la orientación de corte, ver el <> diagrama. -== G10 L2 conjunto de coordenadas del sistema[[sec:G10-G10 L2_]](((L2 del sistema de coordenadas))) +[[sec:G10-L2_]] +== G10 L2 conjunto de coordenadas del sistema +(((L2 del sistema de coordenadas))) G10 L2 P [sistema de coordenadas] R [rotación XY sobre Z] X [desplazamiento] Y [desplazamiento] Z [desplazamiento] @@ -599,7 +621,9 @@ G10 L2 P1 X0 Y0 Z0: | 9 | 9 | 59.3 |======================================== -== G10 L10 Set Tabla de herramientas[[sec:G10-L10]](((Tabla de herramientas Set))) +[[sec:G10-L10]] +== G10 L10 Set Tabla de herramientas +(((Tabla de herramientas Set))) G10 L10 P [número de herramientas] R [radio] X [set_curr_sys_to] Y [set_curr_sys_to] Z [set_curr_sys_to] @@ -617,7 +641,9 @@ Es un error si: - Compensación de corte está en -== G10 L11 Set Tabla de herramientas[[sec:G10-L11]](((Tabla de herramientas Set))) +[[sec:G10-L11]] +== G10 L11 Set Tabla de herramientas +(((Tabla de herramientas Set))) G10 L11 P [número de herramientas] R [radio] X [set_curr_loc_to] Y [set_curr_loc_to] Z [set_curr_loc_to] @@ -639,7 +665,9 @@ Es un error si: - Compensación de corte está en -== G10 L20 conjunto de coordenadas del sistema[[sec:G10-G10 L20 L20]](((Establecer sistema de coordenadas))) +[[sec:G10-L20]] +== G10 L20 conjunto de coordenadas del sistema +(((Establecer sistema de coordenadas))) G10 L20 P [sistema de coordenadas] R [la rotación alrededor de Z] X [set_curr_loc_to] Y [set_curr_loc_to] Z [set_curr_loc_to] @@ -655,7 +683,11 @@ Es un error si: - El número P no se evalúa como un número entero en el rango de 0 a 9. - Un eje se programa que no está definido en la configuración. -== G17, G18, G19, G17.1, G18.1, G19.1 Selección de Plano[[sec:G17-G18-G19]] +[[sec:G17-G18-G19]] +== G17, G18, G19, G17.1, G18.1, G19.1 Selección de Plano +(((G17 Plano XY))) +(((G18 Plano XZ))) +(((G19 Plano YZ))) Estos códigos de establecer el plano actual de la siguiente manera: @@ -672,7 +704,9 @@ Estos códigos de establecer el plano actual de la siguiente manera: Los efectos de contar con un plano seleccionado se discuten en la Sección <> Y en la sección <> -== G20, G21 Unidades de longitud [[sec:G20-G21-Unidades]](((G20, G21 Unidades de longitud))) +[[sec:G20-G21-Unidades]] +== G20, G21 Unidades de longitud +(((G20, G21 Unidades de longitud))) Programa del G-20 para uso pulgadas para unidades de longitud. + Programa G21 utilizar milímetros para las unidades de longitud. @@ -681,7 +715,10 @@ Por lo general es una buena idea del programa ya sea del G-20 o G-21, cerca de l inicio de un programa antes de que cualquier movimiento se produce, y no utilizar uno en el resto del programa. -== G28, G28.1 Ir a las posiciones predefinidas [[sec:G28-G28-G28.1]](((G28, G28.1))) +[[sec:G28-G28-G28.1]] +== G28, G28.1 Ir a las posiciones predefinidas +(((G28))) +(((G28.1))) G28 utiliza los valores de los parámetros de 5161-5166, como los valores absolutos hacer un rápido movimiento transversal a partir de la posición actual. El parámetro @@ -719,7 +756,9 @@ Es un error si: - La compensación de radio se enciende -== G33 husillo sincronizado movimiento [[sec:G33-eje-Sync]](((G33, G33.1 husillo sincronizado movimiento))) +[[sec:G33-eje-Sync]] +== G33 husillo sincronizado movimiento +(((G33 husillo sincronizado movimiento))) G33 X- Y- Z- K- @@ -745,7 +784,9 @@ Es un error si: - El movimiento lineal solicitado excede los límites de velocidad de la máquina debido a la velocidad del husillo -== G33.1 roscado rígido[[sec:G33.1-rigido-Tapping]](((G33.1 roscado rígido))) +[[sec:G33.1-rigido-Tapping]] +== G33.1 roscado rígido +(((G33.1 roscado rígido))) G33.1 X- Y- Z- K- @@ -788,7 +829,8 @@ Ejemplo: ; Rígida aprovechar un hilo 20 TPI G33.1 Z-0.750 K0.05 -== G38.x recto de la sonda [[sec:G38.x-Straight-Probe]] +[[sec:G38.x-Straight-Probe]] +== G38.x recto de la sonda (((G38.2 sonda)))(((G38.3 sonda)))(((G38.4 sonda)))(((G38.5 sonda))) IMPORTANTE: Usted no será capaz de utilizar correctamente este comando hasta que su @@ -826,7 +868,7 @@ lo que ocurra primero. La tabla <> muestra la importancia de diferentes códigos de sondeo. -.Códigos de sondeo [[cap:El-sondeo-de-codigos]] +.Códigos de sondeo[[cap:El-sondeo-de-codigos]] [Width="90%", options="header"] |================================================ @@ -851,7 +893,8 @@ Un comentario de la forma `(filename.txt PROBEOPEN)` se abrirá XYZABCUVW de cada sonda recta éxito en ella. El archivo debe estar cerrado con `(PROBECLOSE)`. -== G40 Compensación Off [[sec:G40]] +[[sec:G40]] +== G40 Compensación Off (((Off G40 Compensación de radio))) Programa G40 para activar la compensación de radio de la fresa apagado. @@ -862,8 +905,10 @@ Es un error si: - Un movimiento de arco G2/G3 está programada siguiente después de un G40. -== Compensación G41, G42 radio de la herramienta[[sec:G41-G42]] -(((G41 Compensación de radio )))((( G42 Compensación de radio))) +[[sec:G41-G42]] +== Compensación G41, G42 radio de la herramienta +(((G41 Compensación de radio ))) +(((G42 Compensación de radio))) G41 o G42 D[herramienta] @@ -906,8 +951,10 @@ Es un error si: - El plano YZ es activo, - Compensación de radio de la fresa se le ordena a su vez en cuando ya está encendida. -== G41.1, G42.1 Compensación dinámica de radio de corte [[sec:G41.1-G42.1]] -(((G41.1 Compensación Dinámica Radio )))((( G41.1 compensación de radio dinámico))) +[[sec:G41.1-G42.1]] +== G41.1, G42.1 Compensación dinámica de radio de corte +(((G41.1 Compensación Dinámica Radio ))) +(((G42.1 compensación de radio dinámico))) G41.1 G42.1 o D [diámetro] @@ -928,10 +975,11 @@ Es un error si: Para más información sobre la orientación de corte ver el <> y <> Y <> diagramas. -== G43, G43.1, G49 Compensación Longitud de la herramienta[[sec:G43-G43.1-Tool]] +[[sec:G43-G43.1-Tool]] +== G43, G43.1, G49 Compensación Longitud de la herramienta (((G43, G43.1, G49 Compensación longitud de herramienta))) -=== G43, G43.1: Activar compensación de longitud(((G43)))(((G43.1))) +=== G43, G43.1: Activar compensación de longitud G43 y G43.1 movimientos cambio posterior al compensar la Z y / o X coordenadas de la longitud de la herramienta. G43 G43.1 y no causan ningún @@ -964,7 +1012,9 @@ Es un error si: - El movimiento es ordenado en la misma línea que `G43.1` -=== G49: Cancelar herramienta de corrección de longitud de [[sub:G49-herramientas]] +[[sub:G49-herramientas]] +=== G49: Cancelar herramienta de corrección de longitud de +(((G49))) No utilizar la longitud de herramienta, el programa G49. @@ -972,7 +1022,8 @@ Está bien el programa con el mismo desplazamiento ya está en uso. También es OK para programar sin usar la longitud de herramienta si no se está utilizados. -== Movimiento G53 en coordenadas absolutas[[sub:G53-Move-in]] +[[sub:G53-Move-in]] +== Movimiento G53 en coordenadas absolutas (((G53 coordenadas absolutas))) Para moverse en coordenadas absolutas desde el origen de la máquina, el programa `G53` @@ -988,8 +1039,17 @@ Es un error si: - G53 se utiliza sin G0 o G1 ser activo, - O G53 se utiliza mientras que la remuneración es el radio de la fresa. -== G54-G59.3 Seleccione Sistema de coordenadas[[sec:G54-G59.3]] -(((G54-G59.3 Seleccionar sistema de coordenadas))) +[[sec:G54-G59.3]] +== G54-G59.3 Seleccione Sistema de coordenadas +(((G54 Seleccionar sistema de coordenadas 1))) +(((G55 Seleccionar sistema de coordenadas 2))) +(((G56 Seleccionar sistema de coordenadas 3))) +(((G57 Seleccionar sistema de coordenadas 4))) +(((G58 Seleccionar sistema de coordenadas 5))) +(((G59 Seleccionar sistema de coordenadas 6))) +(((G59.1 Seleccionar sistema de coordenadas 7))) +(((G59.2 Seleccionar sistema de coordenadas 8))) +(((G59.3 Seleccionar sistema de coordenadas 9))) Para seleccionar un sistema de coordenadas, programa G54, @@ -1002,7 +1062,7 @@ Los sistemas de coordenadas almacenar los valores para cada sistema en el variables que se muestran en la siguiente tabla. -.Sistemas de coordenadas [[cap:Coordinar-Systems]] +.Sistemas de coordenadas[[cap:Coordinar-Systems]] [Width="100%", options="header"] |==================================================================== @@ -1025,9 +1085,13 @@ Es un error si: Vea la sección <> para una descripción de coordinar sistemas. -== G61, G61.1, G64 Ruta del Menú de control [[sec:G61-G64-G61.1]] -(((G61 trayectoria exacta)))(((G61.1 parada precisa)))(((G64 control de trayectoria))) -(((Control de desplazamiento )))((( control de trayectoria))) +[[sec:G61-G61.1-G64]] +== G61, G61.1, G64 Ruta del Menú de control +(((G61 trayectoria exacta))) +(((G61.1 parada precisa))) +(((G64 control de trayectoria))) +(((Control de desplazamiento))) +(((Control de trayectoria))) G61 Modo ruta exacta G61.1 modo de parada precisa @@ -1059,7 +1123,9 @@ Sección <> para una discusión de estos modos. Si Q no se especifica a continuación, tendrá el mismo comportamiento que antes y utilizar el valor de P-. -== G73 Ciclo de taladrado con rotura de la viruta [[sec:G73-Perforacion-del-ciclo]](((G73 Ciclo de taladrado Quiebre Chip))) +[[sec:G73-Perforacion-del-ciclo]] +== G73 Ciclo de taladrado con rotura de la viruta +(((G73 Ciclo de taladrado Quiebre Chip))) G73 X- Y- Z- A- B- C- R- L- Q- @@ -1079,7 +1145,9 @@ Es un error si: - El número Q es negativo o cero. -== G76 Roscado ciclo[[sec:G76-Threading-Conservas]](((G76 Threading))) +[[sec:G76-Threading-Conservas]] +== G76 Roscado ciclo +(((G76 Threading))) G76 P- Z- I- J- R- K- Q- H- E- L- @@ -1200,14 +1268,19 @@ se mueve. images::images/g76-01.png [] -== G80 Cancelar modal de movimiento[[sec:G80-Cancelar-Modal]] +[[sec:G80-Cancelar-Modal]] +== G80 Cancelar modal de movimiento +(((G80 Cancelar modal de movimiento))) Programa `G80` para asegurar que no se producirá el movimiento del eje. Es un error si: - Las palabras del Eje se programan cuando G80 está activo, a menos que un referente el grupo 0 Gcode está programado que usa palabras eje. -== Ciclos[[sec:G81-G89]](((Ciclos))) +[[sec:G81-G89]] +== Los ciclos preprogramados G81-G89 +(((ciclos preprogramados G81-G89))) +(((G81-G89, Los ciclos preprogramados))) Los ciclos fijos `G81` a través `G89` se describen en esta sección. Dos ejemplos se dan con la descripción de `G81` de abajo. @@ -1312,7 +1385,9 @@ se mueve siguiendo una o dos se hacen Si otro avión está activa, los movimientos preliminares y en el medio, se análoga. -== G81 Ciclo de taladrado[[sec:G81-Perforacion-del-ciclo]](((G81 Ciclo de taladrado))) +[[sec:G81-Perforacion-del-ciclo]] +== G81 Ciclo de taladrado +(((G81 Ciclo de taladrado))) G81 (X-Y-Z) o (U-V-W-) R-L- @@ -1377,7 +1452,9 @@ La tercera repetición consta de tres movimientos. La posición X se pone a 13 . un paralelo de alimentación a la Z-eje (13,17, 4,2) . un paralelo transversal al eje Z de (13,17,4.8) -== G82 Ciclo de taladrado con temporización [[sec:G82-Perforacion-Dwell]](((G82 Ciclo de taladrado Dwell))) +[[sec:G82-Perforacion-Dwell]] +== G82 Ciclo de taladrado con temporización +(((G82 Ciclo de taladrado Dwell))) G82 (X-Y-Z) o (U-V-W-) R-L-P- @@ -1389,7 +1466,9 @@ el agujero. . Morar por el número P de segundos. . Retraer el eje Z en la velocidad de desplazamiento para borrar Z. -== G83 taladrado [[sec:G83-Perforacion-Peck]](((G83 taladrado))) +[[sec:G83-Perforacion-Peck]] +== G83 taladrado +(((G83 taladrado))) G83 (X- Y- Z-) o (U- V- W-) R- L- Q- @@ -1414,13 +1493,17 @@ Es un error si: - El número Q es negativo o cero. -== G84 de la Mano Derecha tocar[[sec:G84-de-la-mano-derecha-Tapping]](((G84 de la Mano Derecha Tapping))) +[[sec:G84-de-la-mano-derecha-Tapping]] +== G84 de la Mano Derecha tocar +(((G84 de la Mano Derecha Tapping))) Este código no está implementada en EMC2. Se acepta, pero el comportamiento no está definido. Vea las secciones <> Y <> -== G85 aburrido, no de permanencia, salida de alimentación[[sec:G85-aburrido-Feed-Out]](((G85 aburrido, no de permanencia, salida de alimentación))) +[[sec:G85-aburrido-Feed-Out]] +== G85 aburrido, no de permanencia, salida de alimentación +(((G85 aburrido, no de permanencia, salida de alimentación))) G85 (X-Y-Z) o (U-V-W-) R-L- @@ -1431,7 +1514,9 @@ para la perforación o fresado. . Mover el eje Z sólo en la velocidad de avance actual en la posición Z. . Retraer el eje Z en la velocidad de alimentación de corriente para limpiar Z. -== G86 aburrido, parada del cabezal, salida rápida[[sec:G86-aburrido-Rapid-Out]](((G86 parada aburrido, eje, salida rápida))) +[[sec:G86-aburrido-Rapid-Out]] +== G86 aburrido, parada del cabezal, salida rápida +(((G86 parada aburrido, eje, salida rápida))) G86 (X- Y- Z) o (U- V- W-) R- L- P- @@ -1450,17 +1535,23 @@ si: - El eje no está girando antes de que este ciclo se ejecuta. -== G87 Volver aburrido [[sec:G87-Back-Aburrido]](((G87 Volver aburrido))) +[[sec:G87-Back-Aburrido]] +== G87 Volver aburrido +(((G87 Volver aburrido))) Este código no está implementada en EMC2. Se acepta, pero el comportamiento no está definido. -== G88 aburrido, parada del cabezal, Manual de salida [[sec:G88-aburrido-Manual-Out]](((G88 aburrido, eje Stop, Manual de salida))) +[[sec:G88-aburrido-Manual-Out]] +== G88 aburrido, parada del cabezal, Manual de salida +(((G88 aburrido, eje Stop, Manual de salida))) Este código no está implementada en EMC2. Se acepta, pero el comportamiento no está definido. -== G89 aburrido, permanencia, salida de alimentación[[sec:G89-aburrido-Dwell]](((G89 aburrido, permanencia, salida de alimentación))) +[[sec:G89-aburrido-Dwell]] +== G89 aburrido, permanencia, salida de alimentación +(((G89 aburrido, permanencia, salida de alimentación))) G89 (X-Y-Z) o (U-V-W-) R-L-P- @@ -1472,7 +1563,9 @@ donde P especifica el número de segundos que habitan. . Morar por el número P de segundos. . Retraer el eje Z en la velocidad de alimentación de corriente para limpiar Z. -== G90, G91 Set modalidad a distancia [[sec:G90-G91-Set]](((G90, G91 modalidad a distancia Set))) +[[sec:G90-G91-Set]] +== G90, G91 Set modalidad a distancia +(((G90, G91 modalidad a distancia Set))) G90 es el modo Absolute Distance + G91 es el modo de distancia incremental @@ -1490,7 +1583,9 @@ Para entrar en modo incremental la distancia, el programa de `G91`. En increment números de modalidad a distancia, por lo general representan el eje incrementos de las coordenadas actual. -== G90.1, G91.1 Arco modalidad a distancia [[sec:G90.1-G91.1]](((Arco modalidad a distancia))) +[[sec:G90.1-G91.1]] +== G90.1, G91.1 Arco modalidad a distancia +(((Arco modalidad a distancia))) G90.1 modalidad a distancia absoluta de que, las compensaciones de I, J & K. @@ -1500,7 +1595,9 @@ G91.1 modo de distancia incremental para I, J & K compensaciones. - Returns I, J & K a su comportamiento normal. -== G92, G92.1, G92.2, G92.3 compensaciones sistema de coordenadas [[sec:G92-G92.1-G92.2-G92.3]](((G92, G92.1, G92.2, G92.3 compensaciones))) +[[sec:G92-G92.1-G92.2-G92.3]] +== G92, G92.1, G92.2, G92.3 compensaciones sistema de coordenadas +(((G92, G92.1, G92.2, G92.3 compensaciones))) G92 X-Y-Z-A-B-C-U-V-W- @@ -1556,7 +1653,9 @@ EMC2 almacena el G92 compensaciones y los reutiliza en la próxima ejecución de del programa. Para evitar esto, se puede programar un G92.1 (para eliminar), o un programa de G92.2 (para eliminarlos - que se conserva aún). -== G93, G94, G95: Feed Rate Set Mode[[sec:G93-G94-G95-modo]](((G93, G94, G95: Modo de velocidad de alimentación))) +[[sec:G93-G94-G95-modo]] +== G93, G94, G95: Feed Rate Set Mode +(((G93, G94, G95: Modo de velocidad de alimentación))) G93 es el modo de Tiempo Inverso G94 es el modo de unidades por minuto @@ -1593,7 +1692,9 @@ Es un error si: (Explícita o implícitamente) no tiene una palabra F. - Un nuevo avance no se especifica después de cambiar a G94 o G95 -== G96, G97 del eje del modo de control[[sec:G96-G97-eje]](((G96, G97 modo de control del eje))) +[[sec:G96-G97-eje]] +== G96, G97 del eje del modo de control +(((G96, G97 modo de control del eje))) G96 D [la velocidad del husillo max] S [unidades por minuto] es el modo de velocidad de corte constante + G97 es el modo RPM @@ -1616,7 +1717,9 @@ Es un error si: - S no se especifica con el G96 - Un movimiento de alimentación se especifica en el modo G96, mientras que el eje no está girando -== G98, G99 Ajustar los ciclos enlatados nivel de retorno[[sec:G98-G99-Set]](((G98, G99 Volver ciclo fijo))) +[[sec:G98-G99-Set]] +== G98, G99 Ajustar los ciclos enlatados nivel de retorno +(((G98, G99 Volver ciclo fijo))) G98 retracción en la posición de ese eje se encontraba justo antes de esta serie de uno o más ciclos fijos contiguos se inició. + @@ -1643,9 +1746,13 @@ G98 y G99 entre en una serie de ciclos. = M Códigos -== M0, M1, M2, M30, M60 Programa de Detención y final [[sec:M0-M1-M2]] -(((M0 detener el programa )))((( M1 detener el programa opcional))) -(((Fin de programa M2)))(((M30 Fin del programa)))(((M60 Fin del programa))) +[[sec:M0-M1-M2]] +== M0, M1, M2, M30, M60 Programa de Detención y final +(((M0 detener el programa))) +(((M1 detener el programa opcional))) +(((M2 Fin de programa))) +(((M30 Fin del programa))) +(((M60 Fin del programa))) Para poner en pausa un programa en ejecución temporalmente (Independientemente de la configuración del interruptor de parada opcional), @@ -1691,8 +1798,10 @@ después del comando M2 o M30 se ejecuta. Al pulsar inicio del ciclo se iniciará el programa en el principio del archivo. -== M3, M4, M5 de control del eje [[sec:M3-M4-M5]] -(((M3 eje CW CCW )))((( eje M4 M5 )))((( Parada del cabezal))) +== M3, M4, M5 de control del eje +(((M3 eje CW))) +(((M4 eje CCW))) +(((M5 Parada del cabezal))) Para iniciar el huso horario en la "S" de velocidad, el programa `M3`. + Para iniciar el cabezal a izquierdas en la "S" de velocidad, el programa `M4`. + @@ -1708,7 +1817,9 @@ el eje comenzará a girar. No hay problema en usar `M3` o `M4` cuando el cabezal ya está giro o el uso de `M5` cuando el cabezal se ha detenido. -== M6 Cambio de herramienta [[sec:M6-Tool-Cambio]](((M6-Tool-Change))) +[[sec:M6-Tool-Cambio]] +== M6 Cambio de herramienta +(((M6-Tool-Change))) === Cambio de herramienta manual @@ -1748,8 +1859,11 @@ en ese caso, el eje estará vacío después de que el cambio de herramienta. Si es cero slot seleccionado en último lugar, definitivamente habrá ninguna herramienta en el cabezal tras un cambio de herramienta. -== M7, M8, M9 refrigerante de control [[sec:M7-M8-M9]] -(((M7 niebla refrigerante )))(((M8 inundación de refrigerante líquido refrigerante)))(((M9 Off))) +[[sec:M7-M8-M9]] +== M7, M8, M9 refrigerante de control +(((M7 niebla refrigerante ))) +(((M8 inundación de refrigerante líquido refrigerante))) +(((M9 alto de refrigerantes))) Para activar el refrigerante en la niebla, el programa `` M7. + Para activar el refrigerante de inundación en, el programa 'M8'. + @@ -1760,7 +1874,10 @@ independientemente de lo que el refrigerante está encendido o apagado. == Invalida[[s:Anula]] -=== M48, M49 anulación de control[[sub:M48-Ambos-Override]][[sub:M49-Ni-Anular]](((M48, M49 control de anulación))) +[[sub:M48-Ambos-Override]] +[[sub:M49-Ni-Anular]] +=== M48, M49 anulación de control +(((M48, M49 control de anulación))) Para permitir que la velocidad de giro y los controles de velocidad de avance de invalidación, el programa `M48. Para desactivar los controles, el programa 'M49'. @@ -1771,7 +1888,9 @@ Estos controles también se puede activar de forma individual con M50 y M51 como se describe en el secciones <> y <>. -=== M50 Alimentación anulación de control[[sub:M50-Feed-Anular]](((M50 Alimentación anulación de control))) +[[sub:M50-Feed-Anular]] +=== M50 Alimentación anulación de control +(((M50 Alimentación anulación de control))) Para permitir que la velocidad de avance control de anulación, programa `M50` o `M50 P1`. @@ -1780,7 +1899,9 @@ Mientras que las personas con discapacidad anular alimentación no tendrá ningu y el movimiento se ejecutará al avance programado. (A menos que haya una adaptación velocidad de alimentación anular activo). -=== Husillo M51 de la velocidad de control[[sub:M51-eje-Anular]](((husillo M51 anulación de velocidad))) +[[sub:M51-eje-Anular]] +=== Husillo M51 de la velocidad de control +(((husillo M51 anulación de velocidad))) Para habilitar el control de la velocidad de giro de invalidación, programa `` o `M51 M51 'P1. @@ -1790,7 +1911,9 @@ no tendrá ninguna influencia, y la velocidad del husillo tendrá el valor exacto del programa especificado (Con el S-palabra como se describe en <>). -=== M52 control adaptativo de la alimentación [[sub:M52-adaptativa-Feed-Control]](((M52 Feed Control Adaptativo))) +[[sub:M52-adaptativa-Feed-Control]] +=== M52 control adaptativo de la alimentación +(((M52 Feed Control Adaptativo))) Para utilizar una fuente de adaptación, el programa `` o `M52 M52 P1 '. Para dejar de utilizar alimento de adaptación, el programa 'M52' P0. @@ -1802,7 +1925,9 @@ En EMC2, el HAL pin `motion.adaptive de alimentación 'se utiliza para este prop Los valores en `motion.adaptive de alimentación` debe oscilar de 0 (mantener alimentar) a 1 (máxima velocidad). -=== M53 Feed Control Stop [[sub:M53-Feed-Stop-Control]](((M53 tope de control de alimentación))) +[[sub:M53-Feed-Stop-Control]] +=== M53 Feed Control Stop +(((M53 tope de control de alimentación))) Para habilitar la parada de alimentar a cambiar, el programa `` o `M53 M53 P1 '. Para desactivar el el programa `switch M53 P0 '. Permitiendo el interruptor de parada de alimentación le permitirá @@ -1810,7 +1935,9 @@ moción para ser interrumpido por medio del control de parada de alimentación. En EMC2, el pasador de HAL `motion.feed-hold 'se utiliza para este propósito. Los valores de 1, hará que el movimiento se detenga (si 'M53' se activa). -== M61 Fijación del Número de la herramienta actual [[sec:M61-Set-actual-Tool-Numero]](((M61 Número Juego de herramientas actual))) +[[sec:M61-Set-actual-Tool-Numero]] +== M61 Fijación del Número de la herramienta actual +(((M61 Número Juego de herramientas actual))) Para cambiar el número actual de la herramienta, mientras que en inhaladores de dosis medidas o el programa de modo manual Qxx un M61 en la ventana MDI. Un uso es cuando se enciende con una EMC @@ -1821,7 +1948,9 @@ hacer un cambio de herramienta. - Q-no es 0 o mayor -== M62 para controlar la salida M65 [[sec:M62-a-M65]](((para controlar la salida M65))) +[[sec:M62-a-M65]] +== M62 para controlar la salida M65 +(((para controlar la salida M65))) Para controlar un poco la salida digital, el programa `M- P-`, donde el M-palabra oscila entre 62 a 65, y los rangos de P-palabra de 0 @@ -1858,7 +1987,9 @@ M64 y M65 ocurrir de inmediato, ya que son recibidos por el movimiento controlador. Ellos no están sincronizados con el movimiento, y que romper la mezcla. -== M66 de entrada de control[[sec:M66-Input-Control]]((( M66 de control de entrada))) +[[sec:M66-Input-Control]] +== M66 de entrada de control +((( M66 de control de entrada))) Para leer el valor de un pin de entrada analógica o digital, programa de `M66 P-E-L-Q-', donde la palabra-P y los intervalos de la palabra E- @@ -1898,7 +2029,9 @@ seleccionar tanto una analógica y una entrada digital). EMC2 en estas entradas no se controla en tiempo real y por lo tanto no debe utilizarse para momento las aplicaciones críticas. -== M67 salida analógica [[sec:M67-analogico-de-salida]](((M67 Control de la salida analógica de movimiento))) +[[sec:M67-analogico-de-salida]] +== M67 salida analógica +(((M67 Control de la salida analógica de movimiento))) Para el control de una salida analógica sincronizado con el movimiento, el programa de 'M67-Q-E', donde los rangos de palabra E desde 0 hasta el máximo predeterminado @@ -1909,7 +2042,9 @@ Manual para obtener más información sobre el controlador de movimiento. Las fu igual que M62-63. Vea la sección M62-65 para obtener información sobre colas comandos de salida sincronizada con el movimiento. -== M68 salida analógica[[sec:M68-analogico de salida]](((M68 con mando analógico de salida Aux))) +[[sec:M68-analogico de salida]] +== M68 salida analógica +(((M68 con mando analógico de salida Aux))) Para el control de una salida analógica de inmediato, el programa 'E-M68-Q, donde` la palabra E va de 0 al máximo por defecto de 3 y Q @@ -1920,7 +2055,10 @@ más información sobre el controlador de movimiento. M68 funciona igual que M64-65. Vea la sección M62-65 para obtener información sobre la salida inmediata comandos. -== M100 a M199 comandos definidos por el usuario [[sec:M100-a-M199]](((comandos definidos por el usuario))) +[[sec:M100-a-M199]] +== M100 a M199 comandos definidos por el usuario +(((M100-M199 comandos definidos por el usuario))) +(((comandos definidos por el usuario M100-M199))) Para invocar un comando definido por el usuario, el programa `M1nn P-Q-`, donde `P` y `-Q-` son opcionales y debe ser un número. El programa externo "M1nn" @@ -1967,7 +2105,9 @@ En el archivo de M100 que podría tener este aspecto: halcmd setp thc.feedrate $feedrate exit 0 -= O códigos[[cha:O-codigos]](((O Códigos))) +[[cha:O-codigos]] += O códigos +(((O Códigos))) O-códigos de proporcionar control de flujo en los programas NC. Cada bloque tiene una número de asociados, que es el número que se usa después de la O. Se debe tener cuidado @@ -1979,7 +2119,8 @@ El comportamiento no está definido si: - Otras palabras se usan en una línea con una junta palabra - Los comentarios se utilizan en una línea con una junta palabra -== Subrutinas: sub, endsub, regreso, llame al (((Subrutinas: sub, endsub, regreso, llame))) +== Subrutinas: sub, endsub, regreso, llame al +(((Subrutinas: sub, endsub, regreso, llame))) Subrutinas se extienden desde un `O-sub` a una 'O-endsub `. Las líneas dentro de la subrutina (el "cuerpo") no se ejecutan en @@ -2021,7 +2162,8 @@ de los parámetros por encima de # 30 y esos cambios serán visibles para el código de llamada. Subrutinas también puede cambiar el valor de nombre global parámetros. -== Looping: hacer, mientras que, endwhile, break, continue (((bucle: hacer, mientras que, endwhile, break, continue))) +== Looping: hacer, mientras que, endwhile, break, continue +(((bucle: hacer, mientras que, endwhile, break, continue))) El "while" tiene dos estructuras: mientras que / endwhile, y do / while. En cada caso, se sale del bucle cuando el "mientras" condición se evalúa como @@ -2041,7 +2183,8 @@ Dentro de un bucle while, 'O-break' de inmediato sale del bucle, y `-O condición. Si es cierto, el bucle comienza de nuevo en la parte superior. Si es falso, que sale del bucle. -== Condicionales: if, else, endif (((condicional: if, else, endif))) +== Condicionales: if, else, endif +(((condicional: if, else, endif))) El "si" condicional se ejecuta un grupo de instrucciones si una condición es verdadera y otra si es falsa. @@ -2053,7 +2196,8 @@ es verdadera y otra si es falsa. F200 O102 endif -== Repita/Repeat(((Repite))) +== Repita/Repeat +(((Repite))) La "repetición" se ejecutará las instrucciones dentro de la repetición / endrepeat el número específico de veces. El ejemplo muestra cómo @@ -2068,7 +2212,8 @@ posición. O103 endrepeat G90 (modo absoluto) -== Indirección (((direccionamiento indirecto))) +== Indirección +(((direccionamiento indirecto))) El O-número puede ser dada por un parámetro o el cálculo. @@ -2081,7 +2226,8 @@ Expresiones (sección <>), Los operadores binarios (sección <>), y funciones (tabla <>) son particularmente útiles. -== Archivos de Llamadas (((llamadas archivos))) +== Archivos de Llamadas +(((llamadas archivos))) Para llamar a un archivo separado con un nombre de subrutina el archivo de la misma su llamada e incluyen un sub y endsub en el archivo. El archivo debe estar en @@ -2103,7 +2249,9 @@ archivo debe ser un archivo válido. = Otros Códigos -== F: Fijar la alimentación [[sub:F-Set-Feed]](((F: Establecer Velocidad de alimentación))) +[[sub:F-Set-Feed]] +== F: Fijar la alimentación +(((F: Establecer Velocidad de alimentación))) Para configurar la velocidad de avance, el programa `F` donde "n" es un número. La aplicación de la tasa de alimentación es como se describe en la Sección @@ -2111,7 +2259,9 @@ La aplicación de la tasa de alimentación es como se describe en la Sección en cuyo caso la tasa de alimentación es como se describe en Sección <>. -== S: Velocidad conjunto de ejes [[sub:S-Set-eje]](((S: Velocidad conjunto de ejes))) +[[sub:S-Set-eje]] +== S: Velocidad conjunto de ejes +(((S: Velocidad conjunto de ejes))) Para establecer la velocidad en revoluciones por minuto (RPM) del cabezal, el programa `S`. El eje gira a esa velocidad cuando se ha programado para comenzar a dar vuelta. @@ -2132,7 +2282,9 @@ efecto. La velocidad y la velocidad de avance aún se sincronizarán. En este caso, la velocidad puede variar de lo que está programado, aunque la velocidad interruptor de corrección se establece en 100%. -== T: Herramienta de selección [[sub:T-Seleccionar-Herramienta]](((T:herramienta de selección))) +[[sub:T-Seleccionar-Herramienta]] +== T: Herramienta de selección +(((T:herramienta de selección))) Para seleccionar una herramienta, el programa `T` , donde el número es el carrusel de ranura de la herramienta. La herramienta está @@ -2163,7 +2315,9 @@ la herramienta como un torno. Esto puede ser muy confuso al principio. A su vez esta función para el programa de cambio de la herramienta actual de un G1 sin ningún tipo de movimiento después de la T. -== Comentarios [[sec:Comentarios]](((G))) +[[sec:Comentarios]] +== Comentarios +(((Comentarios))) Caracteres imprimibles y espacios en blanco entre paréntesis es un comentario. Un paréntesis a la izquierda siempre se inicia un comentario. El comentario termina en el @@ -2177,7 +2331,9 @@ el comentario. He aquí un ejemplo de una línea que contiene un comentario: Comentarios son sólo informativos, no son la causa de una máquina de hacer nada. -== Mensajes[[sec:Mensajes]](((Mensajes G Código))) +[[sec:Mensajes]] +== Mensajes +(((Mensajes))) Un comentario contiene un mensaje si `glutamato monosódico 'aparece después de la izquierda paréntesis y antes de los caracteres de impresión. Las variantes de @@ -2186,7 +2342,9 @@ El resto de los personajes antes del paréntesis de la derecha se consideran ser un mensaje. Los mensajes deben ser mostrados en la pantalla de mensajes dispositivo. Mensajes que no contienen comentarios no tienen que ser exhibidos allí. -== Sonda de Registro [[sub: Sonda de Registro de ]]((( la sonda de registro))) +[[sub: Sonda de Registro de]] +== Sonda de Registro +(((la sonda de registro))) Un comentario también se puede utilizar para especificar un archivo de los resultados de G38.x el sondeo. Vea la sección <>. @@ -2194,7 +2352,9 @@ el sondeo. Vea la sección <>. A menudo, en general el registro es más útil que el registro de la sonda. Uso generales de registro, el formato de los datos de salida se puede controlar. -=== Registro General de [[sub: General de registro de ]]((( General de Registro))) +[[sub: General de registro de ]] +=== Registro General de +(((General de Registro))) ==== (LOGOPEN, nombre de archivo) @@ -2209,18 +2369,20 @@ añade. Si el archivo de registro está abierto, se cierra. -==== (LOG, ...) +==== (LOG,…) -El mensaje "..." se expande como se describe a continuación y por escrito a la +El mensaje "…" se expande como se describe a continuación y por escrito a la archivo de registro, si está abierta. -=== Mensajes de depuración [[sub:mensajes-de-depuracion]](((G mensajes de depuración de código))) +[[sub:mensajes-de-depuracion]] +=== Mensajes de depuración +(((G mensajes de depuración de código))) -Comentarios que se parecen: `(depuración, el resto del comentario)` son los mismos que +Comentarios que se parecen: `(debug, el resto del comentario)` son los mismos que comentarios como `(msg, el resto del comentario)` con la adición de especial el manejo de los parámetros. -Comentarios que se parecen: '(impresión, el resto del comentario) `se emiten a +Comentarios que se parecen: `(print, el resto del comentario)` se emiten a stderr con un tratamiento especial para los parámetros. === Parámetros de comentarios especiales @@ -2231,13 +2393,14 @@ mensaje se expanden. Por ejemplo: para imprimir una variable llamada mundial a stderr (el valor predeterminado ventana de la consola) añadir una línea a su Gcode como ... - (Impresión, fresa dia = # <_endmill_dia>) + (print,fresa dia = #<_endmill_dia>) -Dentro de estos tipos de comentarios, secuencias como '# 123' se sustituyen +Dentro de estos tipos de comentarios, secuencias como `#123` se sustituyen por el valor del parámetro 123. Secuencias como `#` se sustituyen por el valor del parámetro con nombre. Recuerde que el nombre parámetros se han eliminado los espacios en blanco de ellos. -Parámetro así, `#` es lo mismo que `#`. +Parámetro así, `#` es lo mismo que `#`. + // vim: set syntax=asciidoc: diff --git a/docs/src/gcode/main_fr.txt b/docs/src/gcode/main_fr.txt index fc9a3ac31..c8343bf57 100644 --- a/docs/src/gcode/main_fr.txt +++ b/docs/src/gcode/main_fr.txt @@ -1,4 +1,5 @@ -= Code de référence G(((Code G))) += Code de référence G +(((Code G))) Conventions utilisées dans cette section @@ -95,7 +96,9 @@ C'est une erreur si: - Un mouvement incrémental est lancé à l'origine - Un mélange de Polar et X et Y sont ou les mots utilisés -== Table résumée du G-code (((Table du G Code))) +[[sec:Table-resumee-du-G-code]] +== Table résumée du G-code +(((Table du G Code))) [width="100%", options="header"] |============================================================================== @@ -180,8 +183,10 @@ C'est une erreur si: |T | Sélectionnez-Tool | | <> |============================================================================== -== G0 Interpolation linéaire en vitesse rapide[[sec:G0-Interpolation-rapide]] +[[sec:G0-Interpolation-rapide]] +== G0 Interpolation linéaire en vitesse rapide (((G0 Interpolation lineaire rapide))) +(((rapide))) G0 axes @@ -217,7 +222,8 @@ degrés est égal à zéro degré sur un axe rotatif, de sorte que le mouvement linéaire rapide spécifié en ligne `N2` ne produira aucun mouvement. -== G1 Interpolation linéaire en vitesse travail[[sec:G1-Interpolation-travail]] +[[sec:G1-Interpolation-travail]] +== G1 Interpolation linéaire en vitesse travail (((G1 Interpolation lineaire travail))) G1 axes @@ -239,8 +245,10 @@ différent de celui décrit ci-dessus, voir la section ligne, le mouvement sera également différent, voir la section <>. -== G2, G3 Interpolation circulaire en vitesse travail[[sec:G2-G3-Arc]] -(((G2 Interpolation circulaire sens horaire)))(((G3 Interpolation circulaire anti-horaire))) +[[sec:G2-G3-Arc]] +== G2, G3 Interpolation circulaire en vitesse travail +(((G2 Interpolation circulaire sens horaire))) +(((G3 Interpolation circulaire anti-horaire))) Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire avec `G2` ou en sens anti-horaire avec `G3`. @@ -453,7 +461,9 @@ Cela signifie faire un mouvement en arc ou hélicoïdal en sens horaire avec un rayon de 20. Si la valeur de départ de Z est 5, Ce sera un arc de cercle parallèle au plan XY sinon, ce sera un arc hélicoïdal. -== G4 Tempo[[sec:G4-Tempo]](((G4 Temporisation))) +[[sec:G4-Tempo]] +== G4 Tempo +(((G4 Temporisation))) G4 P[secondes] @@ -464,7 +474,9 @@ C'est une erreur si: - Le nombre P est négatif. -== G5.1 Quadratic B-spline[[sec:G5.1-B-spline]](((G5.1 Quadratic B-spline))) +[[sec:G5.1-B-spline]] +== G5.1 Quadratic B-spline +(((G5.1 Quadratic B-spline))) G5.1 Xn Yn I[X offset] J[Y offset] @@ -518,14 +530,18 @@ More information on NURBs can be found here: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] -== G7 Mode diamètre[[sec:G7-Mode-diametre]](((G7 Mode diametre))) +[[sec:G7-Mode-diametre]] +== G7 Mode diamètre +(((G7 Mode diametre))) Sur un tour, programmer G7 pour passer l'axe X en mode diamètre. En mode diamètre, les mouvements de l'axe X font la moitié de la cote programmée. Par exemple, X10 placera l'outil à 5 unités du centre, ce qui produira bien une pièce d'un diamètre de 10 unités. -== G8 Mode rayon[[sec:G8-Mode-rayon]](((G8 Mode rayon))) +[[sec:G8-Mode-rayon]] +== G8 Mode rayon +(((G8 Mode rayon))) Sur un tour, programmer G8 pour passer l'axe X en mode rayon. En mode rayon, les mouvements de l'axe X sont égaux à la cote programmée. Ce @@ -533,7 +549,8 @@ qui signifie que X10 placera l'outil à 10 unités du centre et aura pour résultat une pièce d'un diamètre de 20 unités. G8 est le mode par défaut à la mise sous tension. -== G10 L1 Entrée dans la table d'outils[[sec:G10-L1_]] +[[sec:G10-L1_]] +== G10 L1 Entrée dans la table d'outils (((G10 L1 Entree dans la table d'outils))) G10 L1 P[numéro d'outil] R[rayon] @@ -554,7 +571,8 @@ C'est une erreur si: Pour connaître l'orientation des outils, se référer à la figure <> -== G10 L2 Établissement du système de coordonnées pièce[[sec:G10-L2_]] +[[sec:G10-L2_]] +== G10 L2 Établissement du système de coordonnées pièce (((G10 L1 Etablissement coordonnees piece))) G10 L1 P[système de coordonnées] R[XY rotation autour de Z] @@ -624,7 +642,8 @@ G10 L2 P1 X0 Y0 Z0:: |9 | 9 | 59.3 |======================================== -== G10 L10 Set Tool Table[[sec:G10-L10]] +[[sec:G10-L10]] +== G10 L10 Set Tool Table (((G10 L10 Set Tool Table))) G10 L10 P[tool number] R[radius] @@ -643,7 +662,8 @@ It is an error if: - Cutter Compensation is on -== G10 L11 Set Tool Table[[sec:G10-L11]] +[[sec:G10-L11]] +== G10 L11 Set Tool Table (((G10 L11 Set Tool Table))) G10 L11 P[tool number] R[radius] @@ -666,7 +686,8 @@ It is an error if: - Cutter Compensation is on -== G10 L20 Set Coordinate System[[sec:G10-L20]] +[[sec:G10-L20]] +== G10 L20 Set Coordinate System (((G10 L20 Set Coordinate System))) G10 L20 P[coordinate system] R[rotation about Z] @@ -683,8 +704,11 @@ It is an error if: - The P number does not evaluate to an integer in the range 0 to 9. - An axis is programmed that is not defined in the configuration. -== G17, G18, G19, G17.1, G18.1, G19.1 Choix du plan de travail[[sec:G17-G18-G19]] -(((G17 Plan XY)))(((G18 Plan XZ)))(((G19 Plan YZ))) +[[sec:G17-G18-G19]] +== G17, G18, G19, G17.1, G18.1, G19.1 Choix du plan de travail +(((G17 Plan XY))) +(((G18 Plan XZ))) +(((G19 Plan YZ))) Ces codes sélectionnent le plan courant comme ci-dessous: @@ -702,7 +726,8 @@ Les différents effets provoqués selon la sélection du plan de travail, sont expliqués dans les sections <> et <> -== G20, G21 Choix des unités machine[[sec:G20-G21-Unites]] +[[sec:G20-G21-Unites]] +== G20, G21 Choix des unités machine (((G20 Pouce)))(((G21 Millimetre))) Programmer G20 pour utiliser le pouce comme unité de longueur. + @@ -714,7 +739,10 @@ ailleurs dans le programme. C'est la responsabilité de l'opérateur d'être sûr que toutes les longueurs sont appropriées pour l'utilisation des unités actuelles. -== G28, G28.1 Aller à une position prédéfinie[[sec:G28-G28.1]](((G28)))(((G28.1))) +[[sec:G28-G28.1]] +== G28, G28.1 Aller à une position prédéfinie +(((G28))) +(((G28.1))) La commande G28 utilise les valeurs stockées dans les paramètres 5161 à 5166 comme valeurs absolues pour effectuer un mouvement en vitesse @@ -733,7 +761,10 @@ C'est une erreur si: - La compensation de rayon d'outil est active. -== G30, G30.1 Aller à une position prédéfinie[[sec:G30-G30.1]](((G30)))(((G30.1))) +[[sec:G30-G30.1]] +== G30, G30.1 Aller à une position prédéfinie +(((G30))) +(((G30.1))) La commande G30 utilise les valeurs stockées dans les paramètres 5181 à 5186 comme valeurs absolues pour effectuer un mouvement en vitesse rapide @@ -754,8 +785,9 @@ C'est une erreur si: - La compensation de rayon d'outil est active. -== G33 Mouvement avec broche synchronisée[[sec:G33-Broche-sync]] -(((G33 MVT avec broche synchronisee))) +[[sec:G33-Broche-sync]] +== G33 Mouvement avec broche synchronisée +(((G33 Mouvement avec broche synchronisee))) G33 X- Y- Z- K- @@ -781,7 +813,8 @@ C'est une erreur si: - Le mouvement linéaire requis excède les limites de vitesse machine en raison de la vitesse de broche. -== G33.1 Taraudage Rigide[[sec:G33.1-Taraudage-rigide]] +[[sec:G33.1-Taraudage-rigide]] +== G33.1 Taraudage Rigide (((G33.1 Taraudage rigide))) G33.1 X- Y- Z- K- @@ -825,7 +858,8 @@ Example: ;rigides tapant un fil 20 TPI G33.1 Z-0.750 K0.05 -== G38.x Mesure au palpeur[[sec:G38.x-Palpeur]] +[[sec:G38.x-Palpeur]] +== G38.x Mesure au palpeur (((G38.2 Palpeur)))(((G38.3 Palpeur)))(((G38.4 Palpeur)))(((G38.5 Palpeur))) IMPORTANT: Vous ne serez pas réussi à utiliser cette commande jusqu'à ce que votre @@ -888,7 +922,8 @@ ficher 'filename.txt' et y enregistrera les 9 coordonnées de XYZABCUVW de chaque mesure réussie. Le fichier doit être fermé avec le commentaire `(PROBECLOSE)`. -== G40 Compensation de rayon d'outil[[sec:G40]] +[[sec:G40]] +== G40 Compensation de rayon d'outil (((G40 Revocation compensation rayon))) Pour désactiver la compensation de rayon d'outil, programmer `G40`. @@ -899,8 +934,10 @@ C'est une erreur si: - Un mouvement en arc avec G2 ou G3 derrière un G40. -== G41, G42 Compensation de rayon d'outil[[sec:G41-G42]] -(((G41 Compensation de rayon)))(((G42 Compensation de rayon))) +[[sec:G41-G42]] +== G41, G42 Compensation de rayon d'outil +(((G41 Compensation de rayon))) +(((G42 Compensation de rayon))) G41 ou G42 D[outil] @@ -943,8 +980,10 @@ C'est une erreur si: - Le plan de travail n'est pas YZ. - La compensation de rayon d'outil est activée alors qu'elle est déjà active. -== G41.1, G42.1 Compensation dynamique de rayon d'outil[[sec:G41.1-G42.1]] -(((G41.1 Compensation dynamique de rayon)))(((G42.1 Compensation dynamique de rayon))) +[[sec:G41.1-G42.1]] +== G41.1, G42.1 Compensation dynamique de rayon d'outil +(((G41.1 Compensation dynamique de rayon))) +(((G42.1 Compensation dynamique de rayon))) G41.1 or G42.1 D[diamètre] @@ -965,8 +1004,11 @@ C'est une erreur si: Pour plus d'informations sur l'orientation cutter voir le <> et <> et <> diagrammes. -== G43, G43.1, G49 Compensation de longueur d'outil[[sec:G43-G43.1-Outils]] -(((G43 Compensation de longueur)))(((G43.1 Compensation dynamique de longueur)))(((G49 Revocation compensation longueur))) +[[sec:G43-G43.1-Outils]] +== G43, G43.1, G49 Compensation de longueur d'outil +(((G43 Compensation de longueur))) +(((G43.1 Compensation dynamique de longueur))) +(((G49 Revocation compensation longueur))) === G43 , G43.1 Activation de la compensation de longueur d'outil @@ -1001,7 +1043,9 @@ C'est une erreur si: - Une commande de mouvement est sur la même ligne que `G43.1` -=== G49 Annulation de la compensation de longueur d'outil[[sub:G49-Outils]](((G49 Revocation compensation longueur))) +[[sub:G49-Outils]] +=== G49 Annulation de la compensation de longueur d'outil +(((G49 Revocation compensation longueur))) Pour annuler la compensation de longueur d'outil, programmer G49. @@ -1009,7 +1053,8 @@ Ce n'est pas une erreur de programmer une compensation qui est déjà utilisée. Ce n'est pas non plus une erreur d'annuler la compensation de longueur d'outil alors qu'aucune n'est couramment utilisée. -== G53 Mouvement en coordonnées absolues[[sec:G53-Move-in]] +[[sec:G53-Move-in]] +== G53 Mouvement en coordonnées absolues (((G53 Mouvements en absolu))) Pour un déplacement à un point exprimé en coordonnées absolues, @@ -1032,10 +1077,17 @@ C'est une erreur si: Voir la section <> pour une vue complète des systèmes de coordonnées. -== G54-G59.3 Choix du système de coordonnées[[sec:G54-a-G59.3]] -(((G54 Origine piece 1)))(((G55 Origine piece 2)))(((G56 Origine piece 3))) -(((G57 Origine piece 4)))(((G58 Origine piece 5)))(((G59 Origine piece 6))) -(((G59.1 Origine piece 7)))(((G59.2 Origine piece 8)))(((G59.3 Origine piece 9))) +[[sec:G54-a-G59.3]] +== G54-G59.3 Choix du système de coordonnées +(((G54 Origine piece 1))) +(((G55 Origine piece 2))) +(((G56 Origine piece 3))) +(((G57 Origine piece 4))) +(((G58 Origine piece 5))) +(((G59 Origine piece 6))) +(((G59.1 Origine piece 7))) +(((G59.2 Origine piece 8))) +(((G59.3 Origine piece 9))) Le code G54 est apparié avec le système de coordonnées pièce N°1, pour le choisir programmer G54 @@ -1073,9 +1125,13 @@ C'est une erreur si: Voir la section <> pour une vue complète des systèmes de coordonnées. -== G61, G61.1, G64 Types de contrôle de trajectoire[[sec:G61-G61.1-G64]] -(((G61 Trajectoire exacte)))(((G61.1 Arret exact)))(((G64 Trajectoire continue))) -(((Path Control)))(((Controle-trajectoire))) +[[sec:G61-G61.1-G64]] +== G61, G61.1, G64 Types de contrôle de trajectoire +(((G61 Trajectoire exacte))) +(((G61.1 Arret exact))) +(((G64 Trajectoire continue))) +(((Path Control))) +(((Controle-trajectoire))) Programmer `G61` pour passer la machine en mode de trajectoire exacte, `G61.1` pour la passer en mode arrêt exact, ou `G64 P-` pour le mode @@ -1114,7 +1170,9 @@ Section <> pour une discussion de ces modes. Si Q n'est pas spécifié alors il aura le même comportement comme avant et utiliser la valeur de P-. -== G73 Cycle de perçage avec brise copeaux[[sec:G73-Percage-avec-brise-copeaux]](((G73 Cycle percage brise copeaux))) +[[sec:G73-Percage-avec-brise-copeaux]] +== G73 Cycle de perçage avec brise copeaux +(((G73 Cycle percage brise copeaux))) G73 X- Y- Z- A- B- C- R- L- Q- @@ -1136,7 +1194,9 @@ C'est une erreur si: - La valeur de Q est négative ou égale à zéro. -== G76 Cycle de filetage préprogrammé[[sec:G76-Filetage]](((G76 Cycle filetage multipasses))) +[[sec:G76-Filetage]] +== G76 Cycle de filetage préprogrammé +(((G76 Cycle filetage multipasses))) G76 P- Z- I- J- R- K- Q- H- E- L- @@ -1228,7 +1288,9 @@ configuration `sim/lathe.ini`. image::images/g76-01.png[] -== G80 Révocation des codes modaux[[sec:G80-Revocation-modaux]](((G80 Revocation codes modaux))) +[[sec:G80-Revocation-modaux]] +== G80 Révocation des codes modaux +(((G80 Revocation codes modaux))) Programmer `G80` pour s'assurer qu'aucun mouvement d'axe ne surviendra sans G-code @@ -1237,7 +1299,10 @@ modal. C'est une erreur si: - Des mots d'axes sont programmés quand G80 est actif, sans qu'un G-code modal du groupe 0 ne soit programmé avec les mots d'axes. -== Les cycles préprogrammés[[sub:G81-a-G89]](((Cycles preprogrammes))) +[[sub:G81-a-G89]] +== Les cycles préprogrammés +(((Cycles preprogrammes G81-G89))) +(((G81-G89, Cycles preprogrammes))) Les cycles préprogrammés `de G81` à `G89` sont décrit dans cette section. Deux exemples sont donnés plus bas @@ -1331,7 +1396,7 @@ erreur si: Si un autre plan est actif, les conditions d'erreur sont analogues à celles du plan XY décrites ci-dessus. -=== Mouvement préliminaire et Intermédiaire [[sub:Mouvement-preliminaire]] +=== Mouvement préliminaire et Intermédiaire[[sub:Mouvement-preliminaire]] Tout au début de l'exécution d'un cycle préprogrammé, avec le plan courant XY, si la position actuelle de Z est en dessous de la position @@ -1349,7 +1414,9 @@ des mouvements suivants sont faits: Si un autre plan est actif, le mouvement préliminaire et intermédiaire est analogue. -=== G81 Cycle de perçage[[sub:G81-Cycle-de-percage]](((G81 Cycle de percage))) +[[sub:G81-Cycle-de-percage]] +=== G81 Cycle de perçage +(((G81 Cycle de percage))) G81 (X- Y- Z- ) or (U- V- W- ) R- L- @@ -1418,7 +1485,9 @@ passe à 17. . Un déplacement en vitesse travail, parallèle à l'axe Z vers X13, Y17, Z4.2 . Un déplacement en vitesse rapide, parallèle à l'axe Z vers X13, Y17, Z4.8 -=== G82 Cycle de perçage avec temporisation[[sub:G82-Cycle-de-percage]](((G82 Cycle de percage avec tempo))) +[[sub:G82-Cycle-de-percage]] +=== G82 Cycle de perçage avec temporisation +(((G82 Cycle de percage avec tempo))) G82 (X- Y- Z- ) or (U- V- W- ) R- L- P- @@ -1429,7 +1498,9 @@ Le cycle `G82` est destiné au perçage. . Une temporisation de P secondes. . Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. -=== G83 Cycle de perçage avec débourrage[[sub:G83-Percage-avec-debourrage]](((G83 Cycle de percage avec debourrage))) +[[sub:G83-Percage-avec-debourrage]] +=== G83 Cycle de perçage avec débourrage +(((G83 Cycle de percage avec debourrage))) G83 (X- Y- Z-) or (U- V- W-) R- L- Q- @@ -1455,12 +1526,16 @@ C'est une erreur si: - La valeur de Q est négative ou égale à zéro. -=== G84 Cycle de taraudage à droite[[sub:G84-Taraudage-a-droite]](((G84 Cycle de taraudage))) +[[sub:G84-Taraudage-a-droite]] +=== G84 Cycle de taraudage à droite +(((G84 Cycle de taraudage))) Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. Voir `G33.1` -=== G85 Cycle d'alésage, sans temporisation, retrait en vitesse travail[[sub:G85-Alesage-retrait-travail]](((G85 Cycle d'alesage))) +[[sub:G85-Alesage-retrait-travail]] +=== G85 Cycle d'alésage, sans temporisation, retrait en vitesse travail +(((G85 Cycle d'alesage))) G85 (X- Y- Z-) or (U- V- W-) R- L- @@ -1472,7 +1547,9 @@ fraisage. . Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. . Retrait de l'axe Z en vitesse travail vers le plan de retrait. -=== G86 Cycle d'alésage, arrêt de broche, retrait en vitesse rapide[[sub:G86-Alesage-retrait-rapide]](((G86 Cycle d'alesage))) +[[sub:G86-Alesage-retrait-rapide]] +=== G86 Cycle d'alésage, arrêt de broche, retrait en vitesse rapide +(((G86 Cycle d'alesage))) G86 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1492,17 +1569,23 @@ erreur si: - La broche ne tourne pas avant que ce cycle ne soit éxécuté. -=== G87 Alésage inverse[[sub:G87-Back-Boring]](((G87 Alesage inverse))) +[[sub:G87-Back-Boring]] +=== G87 Alésage inverse +(((G87 Alesage inverse))) Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. -=== G88 Alésage, arrêt de broche, retrait en manuel[[sub:G88-Boring-retrait-manuel]](((G88 Cycle d'alesage))) +[[sub:G88-Boring-retrait-manuel]] +=== G88 Alésage, arrêt de broche, retrait en manuel +(((G88 Cycle d'alesage))) Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. -=== G89 Cycle d'alésage, temporisation, retrait en vitesse travail[[sub:G89-Alesage-temporisation]](((G89 Cycle d'alesage))) +[[sub:G89-Alesage-temporisation]] +=== G89 Cycle d'alésage, temporisation, retrait en vitesse travail +(((G89 Cycle d'alesage))) G89 (X- Y- Z-) or (U- V- W-) R- L- P- @@ -1514,7 +1597,10 @@ pour une temporisation en secondes. . Temporisation de P secondes. . Retrait de l'axe Z en vitesse travail vers le plan de retrait. -== G90, G91: Modes de déplacement[[sec:G90-G91-Set]](((G90 Mode deplacements absolus)))(((G91 Mode deplacements incrementaux))) +[[sec:G90-G91-Set]] +== G90, G91: Modes de déplacement +(((G90 Mode deplacements absolus))) +(((G91 Mode deplacements incrementaux))) G90 est le mode Distance Absolu + G91 est le mode Distance Incrémentale @@ -1532,7 +1618,8 @@ Pour se déplacer en mode incrémental, programmer `G91` . En mode incrémental, les valeurs d'axes représentent un incrément depuis la position courante. -== G90.1, G91.1: Mode distance (I, J et K)[[sec:G90.1-G91.1]] +[[sec:G90.1-G91.1]] +== G90.1, G91.1: Mode distance (I, J et K) Note: Cette fonctionnalité est en cours de développement, elle n'est peut être pas totalement implémentée. @@ -1545,7 +1632,12 @@ G91.1 Mode distance incrémentale pour les offsets I, J et K. - Renvoie I, J et K à leur fonctionnement normal. -== G92, G92.1, G92.2, G92.3: Décalage d'origine des systèmes de coordonnées[[sec:G92-G92.1-G92.2-G92.3]](((G92)))(((G92.1)))(((G92.2)))(((G92.3))) +[[sec:G92-G92.1-G92.2-G92.3]] +== G92, G92.1, G92.2, G92.3: Décalage d'origine des systèmes de coordonnées +(((G92))) +(((G92.1))) +(((G92.2))) +(((G92.3))) G92 X- Y- Z- A- B- C- U- V- W- @@ -1603,7 +1695,11 @@ possible de programmer G92.1 pour effacer les décalages, ou de programmer G92.2 pour que les décalages enregistrés ne soient pas appliqués. -== G93, G94, G95: Choix des modes de vitesse[[sec:G93-G94-G95-Set]](((G93 Mode de vitesse)))(((G94 Mode de vitesse)))(((G95 Mode de vitesse))) +[[sec:G93-G94-G95-Set]] +== G93, G94, G95: Choix des modes de vitesse +(((G93 Mode de vitesse))) +(((G94 Mode de vitesse))) +(((G95 Mode de vitesse))) G93 est le mode à Temps Inverse G94 est Unités par Minute en mode @@ -1642,7 +1738,10 @@ C'est une erreur si: G2, ou G3 (explicitement ou implicitement) n'a pas de mot F. - Une nouvelle vitesse n'a pas été spécifiée après un passage en G94 ou G95. -== G96, G97: Modes de contrôle de la broche(((mode)))[[sec:G96-G97-Broche]](((G96 Vitesse de coupe constante)))(((G97 Vitesse de coupe en tr/mn))) +[[sec:G96-G97-Broche]] +== G96, G97: Modes de contrôle de la broche +(((G96 Vitesse de coupe constante))) +(((G97 Vitesse de coupe en tr/mn))) G96 D[vitesse de broche max] S[unités par minute] est constante Speed Mode Surface + G97 est le mode RPM @@ -1665,7 +1764,10 @@ C'est une erreur si: - S n'est pas spécifié avec G96. - Une vitesse est spécifiée en mode G96 et la broche ne tourne pas. -== G98, G99: Options du plan de retrait[[sec:G98-G99-Set]](((G98 Retrait sur R)))(((G99 Retrait position initiale))) +[[sec:G98-G99-Set]] +== G98, G99: Options du plan de retrait +(((G98 Retrait sur R))) +(((G99 Retrait position initiale))) G98 Retract à la position de cet axe se trouvait juste avant cette série d'un ou plusieurs cycles contigus en conserve a été commencé. + @@ -1693,9 +1795,13 @@ entre le G98 et G99 au cours d'une série de cycles. = M Codes -== M0, M1, M2, M30, M60 Arrêts de programme[[sec:M0-M1-M2]] -(((M0 Arret de programme)))(((M1 Arret optionnel de programme))) -(((M2 Fin de programme)))(((M30 Fin de programme)))(((M60 Fin de programme))) +[[sec:M0-M1-M2]] +== M0, M1, M2, M30, M60 Arrêts de programme +(((M0 Arret de programme))) +(((M1 Arret optionnel de programme))) +(((M2 Fin de programme))) +(((M30 Fin de programme))) +(((M60 Fin de programme))) Pour stopper temporairement un programme en cours (quelle que soit la position du bouton d'arrêt facultatif), @@ -1743,8 +1849,11 @@ après exécution de la commande M2 ou M30. Presser le départ cycle relance le programme au début du fichier. -== M3, M4, M5 Contrôle de broche[[sec:M3-M4-M5]] -(((M3 Broche sens horaire)))(((M4 Broche sens anti-horaire)))(((M5 Arret de broche))) +[[sec:M3-M4-M5]] +== M3, M4, M5 Contrôle de broche +(((M3 Broche sens horaire))) +(((M4 Broche sens anti-horaire))) +(((M5 Arret de broche))) Pour démarrer la broche en sens horaire à la vitesse "S", programmer `M3`. + Pour démarrer la broche en sens anti-horaire à la vitesse "S", programmer `M4`. + @@ -1760,7 +1869,9 @@ la broche va se mettre en rotation. Il est permis d'utiliser `M3` ou `M4` quand la broche est déjà en rotation ou d'utiliser `M5` quand la broche est déjà arrêtée. -== M6 Appel d'outil[[sec:M6-Appel-d-outil]](((M6 Appel d'outil))) +[[sec:M6-Appel-d-outil]] +== M6 Appel d'outil +(((M6 Appel d'outil))) === Changement D'Outil Manuel @@ -1803,8 +1914,11 @@ dans ce cas, la broche sera vide après le changement d'outil. Si le slot zéro a été le dernier sélectionné, il n'y aura pas d'outil dans la broche après le changement. -== M7, M8, M9 Contrôle d'arrosage[[sec:M7-M8-M9]] -(((M7 Goutelettes)))(((M8 Arrosage)))(((M9 Arret d'arrosages))) +[[sec:M7-M8-M9]] +== M7, M8, M9 Contrôle d'arrosage +(((M7 Goutelettes))) +(((M8 Arrosage))) +(((M9 Arret d'arrosages))) Pour activer l'arrosage par brouillard (gouttelettes), programmer `M7`. + Pour activer l'arrosage fluide, programmer `M8`. + @@ -1813,7 +1927,9 @@ Pour arrêter tous les arrosages, programmer `M9`. Il est toujours permis d'utiliser une de ces commandes, que les arrosages soient arrêtés ou non. -== M48, M49 Contrôle des correcteurs de vitesse[[sec:M48-Deux-Correcteur]][[sec:M49-Ni-Correcteur]] +[[sec:M48-Deux-Correcteur]] +[[sec:M49-Ni-Correcteur]] +== M48, M49 Contrôle des correcteurs de vitesse (((M48, M49 Controle correcteur de vitesse de deux autoriser/inhiber))) Pour autoriser les potentiomètres de corrections de @@ -1826,7 +1942,9 @@ Ces potentiomètres peuvent aussi être activés individuellement en utilisant les commandes M50 et M51 comme décrit dans les sections <> et <>. -== M50 Contrôle du correcteur de vitesse travail[[sec:M50-Avance-Correcteur]](((M50 Controle correcteur travail))) +[[sec:M50-Avance-Correcteur]] +== M50 Contrôle du correcteur de vitesse travail +(((M50 Controle correcteur travail))) Pour autoriser le potentiomètre de correction de vitesse travail, programmer `M50` ou `M50 P1`. @@ -1836,7 +1954,9 @@ vitesse n'a plus aucune influence et les mouvements seront exécutés à la vitesse de travail programmée. (à moins que ne soit actif un correcteur de vitesse adaptative). -== M51 Contrôle du correcteur de vitesse broche[[sec:M51-Broche-Correcteur]](((M51 Controle correcteur broche))) +[[sec:M51-Broche-Correcteur]] +== M51 Contrôle du correcteur de vitesse broche +(((M51 Controle correcteur broche))) Pour autoriser le potentiomètre de correction de vitesse de la broche, programmer `M51` ou `M51 P1`. @@ -1845,7 +1965,9 @@ Quand il est inhibé, le potentiomètre de correction de vitesse de broche n'a plus aucune influence, et la broche tournera à la vitesse programmée, (en utilisant le mot S comme décrit dans la section <>). -== M52 Contrôle de vitesse adaptative[[sec:M52-Controle-vitesse-adaptative]](((M52 Controle vitesse adaptative))) +[[sec:M52-Controle-vitesse-adaptative]] +== M52 Contrôle de vitesse adaptative +(((M52 Controle vitesse adaptative))) Pour utiliser une vitesse adaptative, programmer `M52` ou `M52 P1`. Pour stopper l'utilisation d'une vitesse adaptative, programmer `M52 P0`. @@ -1857,7 +1979,9 @@ Dans EMC2, la HAL pin `motion.adaptive-feed` est utilisée dans ce but. Les valeurs de `motion.adaptive-feed` doivent être dans une échelle comprise entre 0 (pas de vitesse) et 1 (pleine vitesse). -== M53 Contrôle de coupure de vitesse[[sec:M53-Controle-coupure-vitesse]](((M53 Controle coupure vitesse))) +[[sec:M53-Controle-coupure-vitesse]] +== M53 Contrôle de coupure de vitesse +(((M53 Controle coupure vitesse))) Pour autoriser le bouton de coupure de vitesse, programmer `M53` ou `M53 P1`. Pour inhiber ce bouton programmer `M53 P0` . Autoriser la @@ -1866,7 +1990,9 @@ coupure de vitesse permet d'interrompre les mouvements `motion.feed-hold` est utilisée pour cette fonctionnalité. Une valeur de 1 provoque un arrêt des mouvements (si `M53` est actif). -== M61 Ajuste le numéro de l'outil courant[[sec:M61-Ajuste-numero-outil]](((M61 Ajuste numero outil))) +[[sec:M61-Ajuste-numero-outil]] +== M61 Ajuste le numéro de l'outil courant +(((M61 Ajuste numero outil))) Pour corriger le numéro de l'outil courant, en mode MDI ou après un changement manuel d'outil programmer M61 Qxx dans la fenêtre de données @@ -1878,7 +2004,9 @@ changement d'outil. - Qxx n'est pas égal où supérieur à 0 -== M62 à M65 Contrôle de sorties numériques[[sec:M62-a-M65-Controle-sorties-num]](((M62 Controle sorties num))) +[[sec:M62-a-M65-Controle-sorties-num]] +== M62 à M65 Contrôle de sorties numériques +(((M62 Controle sorties num))) Pour contrôler un bit de sortie digitale, programmer `M- P-` , où le mot M doit être compris entre 62 et 65, et le mot P compris @@ -1917,7 +2045,9 @@ M64 M65 et produire immédiatement, car ils sont reçus par le contrôleur de mouvement. Ils ne sont pas synchronisés avec le mouvement, et ils vont casser le mélange. -== M66 Contrôle d'entrée digitale[[sec:M66-Controle-entrees-num]](((M66 Controle entrees num))) +[[sec:M66-Controle-entrees-num]] +== M66 Contrôle d'entrée digitale +(((M66 Controle entrees num))) Pour contrôler un bit d'entrée digitale, programmer `M66 P- E- L- Q-`, où le P-parole et les gammes E-parole de 0 à 3. @@ -1955,7 +2085,9 @@ C'est également une erreur de programmer M66 avec les deux mots, un mot P et un mot E (ce qui reviendrait à sélectionner à la fois une entrée analogique et une digitale). -== M67 Analog Output[[sec:M67-Analog-Output]](((M67 Analog Motion Output Control))) +[[sec:M67-Analog-Output]] +== M67 Analog Output +(((M67 Analog Motion Output Control))) To control an analog output synchronized with motion, program `M67 E- Q-`, where the E word ranges from 0 to the default maximum @@ -1966,7 +2098,9 @@ Manual for more information on the Motion Controller. M67 functions the same as M62-63. See the M62-65 section for information about queuing output commands synchronized with motion. -== M68 Analog Output[[sec:M68-Analog-Output]](((M68 Analog Aux Output Control))) +[[sec:M68-Analog-Output]] +== M68 Analog Output +(((M68 Analog Aux Output Control))) To control an analog output immediately, program `M68 E- Q-, ` where the E word ranges from 0 to the default maximum of 3 and Q is @@ -1977,7 +2111,10 @@ more information on the Motion Controller. M68 functions the same as M64-65. See the M62-65 section for information about immediate output commands. -== M100 à M199 Commandes définies par l'utilisateur[[sec:M100-a-M199]](((M100..199 Mcodes utilisateur))) +[[sec:M100-a-M199]] +== M100 à M199 Commandes définies par l'utilisateur +(((M100-M199 Mcodes utilisateur))) +(((Mcodes utilisateur M100-M199))) Pour invoquer une commande définie par l'utilisateur, programmer M1xx P- Q- où P et Q sont facultatifs. Le programme externe `` M1nn'', qui @@ -2025,7 +2162,9 @@ In your M100 file it might look like this: halcmd setp thc.feedrate $feedrate exit 0 -= O Codes [[cha:O-Codes]](((O Codes))) +[[cha:O-Codes]] += O Codes +(((O Codes))) Les O-codes permettent le contrôle de flux dans les programmes NC. Chaque block est associé à une adresse, qui est la valeur utilisée @@ -2037,7 +2176,8 @@ Le comportement est indéfini si: - D'autres mots sont utilisés sur une ligne contenant un mot O. - Un commentaire est utilisé sur une ligne contenant un code O. -== Sous-programmes: "sub", "endsub", "return", "call"(((sub)))(((endsub)))(((return)))(((call))) +== Sous-programmes: "sub", "endsub", "return", "call" +(((sub)))(((endsub)))(((return)))(((call))) Les sous-programmes s'étendent d'un `O- sub` à un `O- endsub`. Les lignes, à l'intérieur du sous-programme (le corps du @@ -2080,7 +2220,8 @@ changer la valeur des paramètres au dessus de #30 et ces changements sont visibles depuis le code appelant. Les sous-programmes peuvent aussi changer la valeur des paramètres nommés globaux. -== Boucles: "do", "while", "endwhile", "break", "continue"(((Looping: do, while, endwhile, break, continue))) +== Boucles: "do", "while", "endwhile", "break", "continue" +(((Looping: do, while, endwhile, break, continue))) La boucle «while» a deux structures possibles: while/endwhile et do/while. Dans chaque @@ -2101,7 +2242,8 @@ la boucle et `O- continue`, saute immédiatement à la prochaine évaluation de la condition du `while`. Si elle est vraie, la boucle recommence au début. Si elle est fausse, la boucle est quittée. -== Conditionnel: "if", "else", "endif"(((Conditional: if, else, endif))) +== Conditionnel: "if", "else", "endif" +(((Conditional: if, else, endif))) Le `if` conditionnel exécute un groupe d'instructions si sa condition est vraie et un autre groupe si elle est fausse. @@ -2113,7 +2255,8 @@ est vraie et un autre groupe si elle est fausse. F200 O102 endif -== Répétition: "Repeat"(((Repeat))) +== Répétition: "Repeat" +(((Repeat))) La répétition «repeat», exécutera les blocs contenus entre «repeat» et «endrepeat» le nombre de fois spécifié entre crochets. L'exemple @@ -2129,6 +2272,7 @@ commençant à la position courante. G90 (Absolute mode) == Indirection +(((Indirection))) L'adresse de O- peut être donnée par un paramètre ou un calcul. @@ -2141,7 +2285,8 @@ les expressions (section <>), les opérateurs binaires (section <>), et les fonctions (tableau <>), sont particulièrement intéressants. -== Appel de fichiers (((Appel de fichiers))) +== Appel de fichiers +(((Appel de fichiers))) Pour appeler un fichier par son nom, celui-ci doit contenir un «sub» et un «endsub». Le fichier appelé doit se trouver dans le répertoire @@ -2163,7 +2308,9 @@ Exemple: = Autres Codes -== F: Réglage de la vitesse travail[[sec:F-vitesse]] +[[sec:F-vitesse]] +== F: Réglage de la vitesse travail +(((F: Réglage de la vitesse travail))) Pour régler la vitesse d'avance, programmer `F-`. L'application de la vitesse est telle que décrite dans la section @@ -2171,7 +2318,9 @@ L'application de la vitesse est telle que décrite dans la section dans ce cas, la vitesse est telle que décrite dans la section <>. -== S: Réglage de la vitesse de rotation de la broche[[sec:S-broche]] +[[sec:S-broche]] +== S: Réglage de la vitesse de rotation de la broche +(((S: Réglage de la vitesse de rotation de la broche))) Pour régler la vitesse en tours par minute (tr/mn) de la broche, programmer `S-`. La broche va tourner à cette vitesse quand elle sera programmée pour tourner. @@ -2193,7 +2342,9 @@ utilisé. La vitesse de rotation et d'avance resterons synchronisées. Dans ce cas, la vitesse peut différer de celle programmée, même si le potentiomètre de correction de vitesse travail est sur 100%. -== T: Choix de l'outil[[sec:T-Selectionnez-Tool]] +[[sec:T-Selectionnez-Tool]] +== T: Choix de l'outil +(((T: Choix de l'outil))) Pour sélectionner un outil, programmer `T-`, où la valeur de T correspond au numéro du slot d'outil dans le @@ -2227,7 +2378,9 @@ de longues distances pour le changement l'outil comme un tour. Cela peut être très déroutant au premier abord. Pour activer cette fonction pour le programme de changement d'outil en cours un G1 sans bouger après l'T. -== Commentaires[[sec:Commentaires]](((commentaires))) +[[sec:Commentaires]] +== Commentaires +(((commentaires))) Un ensemble de caractères et espaces blancs entre parenthèses est un commentaire. Une parenthèse ouvrante débute toujours un commentaire. Le @@ -2244,7 +2397,9 @@ commentaire: Les commentaires sont seulement informatifs, ils n'ont aucune influence sur la machine. -=== Messages[[sub:Messages]] +[[sub:Messages]] +=== Messages +(((Messages))) Un commentaire contient un message si `MSG` apparaît après la parenthèse ouvrante, et avant tout autre caractère. Les variantes de @@ -2254,13 +2409,17 @@ message. Les messages sont affichés sur la visu de l'interface utilisateur. Les commentaires ne contenant pas de message ne sont pas affichés. -=== Enregistrement des mesures[[sub:Log-des-mesures]] +[[sub:Log-des-mesures]] +=== Enregistrement des mesures +(((Enregistrement des mesures))) Un commentaire peut aussi être utilisé pour spécifier le fichier de log des résultats des mesures faites au palpeur avec G38.x . Voir la section <>. -=== Log général[[sub:Log-general]] +[[sub:Log-general]] +=== Log général +(((Log général))) ==== (LOGOPEN,filename) @@ -2281,7 +2440,9 @@ Si le fichier est ouvert, il sera fermé. Le message “…” est étendu comme décrit plus loin, il est écrit dans le fichier de log si il est ouvert. -=== Messages de déboguage [[sec:Messages-deboguage]] +[[sec:Messages-deboguage]] +=== Messages de déboguage +(((Messages de déboguage))) Les commentaires comme: `(debug, reste du commentaire)` sont traités de la même façon que ceux avec `(msg, reste du commentaire)` avec @@ -2310,3 +2471,6 @@ Rappelez vous que `#` est équivalent à `#`. +// vim: set syntax=asciidoc: + + From a325051c3c610f61fa5dd0a5ecafa8379f06e7c1 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 17:29:35 -0500 Subject: [PATCH 0007/1024] Docs: Minor fixes to Overview (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gcode/overview.txt | 41 ++++++++++++++++-------- docs/src/gcode/overview_de.txt | 41 ++++++++++++++++-------- docs/src/gcode/overview_es.txt | 41 ++++++++++++++++-------- docs/src/gcode/overview_fr.txt | 57 +++++++++++++++++++++++++--------- 4 files changed, 127 insertions(+), 53 deletions(-) diff --git a/docs/src/gcode/overview.txt b/docs/src/gcode/overview.txt index 6b3ff1c73..0448c2603 100644 --- a/docs/src/gcode/overview.txt +++ b/docs/src/gcode/overview.txt @@ -1,4 +1,5 @@ -= G Code Overview [[cha:Language-Overview]] +[[cha:Language-Overview]] += G Code Overview The EMC2 G Code language is based on the RS274/NGC language. The G Code language is based on lines of code. Each line (also called a @@ -60,7 +61,8 @@ Input is case insensitive, except in comments, i.e., any letter outside a comment may be in upper or lower case without changing the meaning of a line. -== Line Number (((Line Number))) +== Line Number +(((Line Number))) A line number is the letter N followed by an integer (with no sign) between 0 and 99999 written with no more than five digits (000009 is @@ -69,7 +71,8 @@ order, although normal practice is to avoid such usage. Line numbers may also be skipped, and that is normal practice. A line number is not required to be used, but must be in the proper place if used. -== Word (((Word))) +== Word +(((Word))) A word is a letter other than N followed by a real value. @@ -112,7 +115,8 @@ not have the corresponding axis. |Z | Z axis of machine |======================================== -== Number [[sub:Number]] +[[sub:Number]] +== Number The following rules are used for (explicit) numbers. In these rules a digit is a single character between 0 and 9. @@ -143,7 +147,8 @@ example), M codes, and G codes multiplied by ten. A decimal number which is supposed be close to an integer is considered close enough if it is within 0.0001 of an integer. -== Numbered Parameters [[sub:Numbered-Parameters]] +[[sub:Numbered-Parameters]] +== Numbered Parameters A numbered parameter is the pound character `#` followed by an integer between 1 and 5399. The parameter is referred @@ -185,7 +190,8 @@ tool: - #5412 Tool Backangle - #5413 Tool Orientation -== Named Parameters [[sub:Named-Parameters]] +[[sub:Named-Parameters]] +== Named Parameters Named parameters work like numbered parameters but are easier to read. All parameter names are converted to lower case and have spaces and @@ -224,7 +230,8 @@ The global parameters _a, _b, _c, ... _z have been reserved for special use. In the future, they may provide access to the last Aword, Bword, Cword, etc. -=== System Parameters [[sec:System-Parameters]] +[[sec:System-Parameters]] +=== System Parameters Two global read only named parameters are available to check which version is running from G Code. @@ -235,7 +242,8 @@ version is running from G Code. #<_vminor>:: Minor package version. If current version was 2.6.2 would return 0.2. -== Expressions [[sub:Expressions]] +[[sub:Expressions]] +== Expressions An expression is a set of characters starting with a left bracket `[` and ending with a balancing right bracket `]` . In between the brackets @@ -245,7 +253,8 @@ produce a number. The expressions on a line are evaluated when the line is read, before anything on the line is executed. An example of an expression is `[1 + acos[0] - [#3 ** [4.0/2]]]`. -== Binary Operators [[sub:Binary-Operators]] +[[sub:Binary-Operators]] +== Binary Operators Binary operators only appear inside expressions. There are four basic mathematical operations: addition (`+`), subtraction (`-`), @@ -285,7 +294,8 @@ false, and any non-zero number is equivalent to logical true. |AND OR XOR | 'lowest' |======================================== -== Functions [[sub:Unary-Operation-Value]] +[[sub:Unary-Operation-Value]] +== Functions A function is either "`ATAN` " followed by one expression divided by another expression (for @@ -396,7 +406,9 @@ axis words or canceling motion. "Non-modal" codes have effect only on the lines on which they occur. For example, G4 (dwell) is non-modal. -== Modal Groups (((Modal Groups)))[[sec:Modal-Groups]] +[[sec:Modal-Groups]] +== Modal Groups +(((Modal Groups))) Modal commands are arranged in sets called "modal groups", and only one member of a modal group may be in force at any given time. In @@ -479,7 +491,9 @@ size. The preview can be turned off in Axis to speed up loading large part programs. In Axis sections of the preview can be turned off using special comments. -= G Code Order of Execution[[sec:Order-of-Execution]](((G Code Order of Execution))) +[[sec:Order-of-Execution]] += G Code Order of Execution +(((G Code Order of Execution))) The order of execution of items on a line is defined not by the position of each item on the line, but by the following list: @@ -510,7 +524,8 @@ position of each item on the line, but by the following list: . Perform motion (G0 to G3, G33, G73, G76, G80 to G89), as modified (possibly) by G53. . Stop (M0, M1, M2, M30, M60). -= G Code Best Practices (((G Code Best Practices))) += G Code Best Practices +(((G Code Best Practices))) == Use an appropriate decimal precision diff --git a/docs/src/gcode/overview_de.txt b/docs/src/gcode/overview_de.txt index 6b3ff1c73..0448c2603 100644 --- a/docs/src/gcode/overview_de.txt +++ b/docs/src/gcode/overview_de.txt @@ -1,4 +1,5 @@ -= G Code Overview [[cha:Language-Overview]] +[[cha:Language-Overview]] += G Code Overview The EMC2 G Code language is based on the RS274/NGC language. The G Code language is based on lines of code. Each line (also called a @@ -60,7 +61,8 @@ Input is case insensitive, except in comments, i.e., any letter outside a comment may be in upper or lower case without changing the meaning of a line. -== Line Number (((Line Number))) +== Line Number +(((Line Number))) A line number is the letter N followed by an integer (with no sign) between 0 and 99999 written with no more than five digits (000009 is @@ -69,7 +71,8 @@ order, although normal practice is to avoid such usage. Line numbers may also be skipped, and that is normal practice. A line number is not required to be used, but must be in the proper place if used. -== Word (((Word))) +== Word +(((Word))) A word is a letter other than N followed by a real value. @@ -112,7 +115,8 @@ not have the corresponding axis. |Z | Z axis of machine |======================================== -== Number [[sub:Number]] +[[sub:Number]] +== Number The following rules are used for (explicit) numbers. In these rules a digit is a single character between 0 and 9. @@ -143,7 +147,8 @@ example), M codes, and G codes multiplied by ten. A decimal number which is supposed be close to an integer is considered close enough if it is within 0.0001 of an integer. -== Numbered Parameters [[sub:Numbered-Parameters]] +[[sub:Numbered-Parameters]] +== Numbered Parameters A numbered parameter is the pound character `#` followed by an integer between 1 and 5399. The parameter is referred @@ -185,7 +190,8 @@ tool: - #5412 Tool Backangle - #5413 Tool Orientation -== Named Parameters [[sub:Named-Parameters]] +[[sub:Named-Parameters]] +== Named Parameters Named parameters work like numbered parameters but are easier to read. All parameter names are converted to lower case and have spaces and @@ -224,7 +230,8 @@ The global parameters _a, _b, _c, ... _z have been reserved for special use. In the future, they may provide access to the last Aword, Bword, Cword, etc. -=== System Parameters [[sec:System-Parameters]] +[[sec:System-Parameters]] +=== System Parameters Two global read only named parameters are available to check which version is running from G Code. @@ -235,7 +242,8 @@ version is running from G Code. #<_vminor>:: Minor package version. If current version was 2.6.2 would return 0.2. -== Expressions [[sub:Expressions]] +[[sub:Expressions]] +== Expressions An expression is a set of characters starting with a left bracket `[` and ending with a balancing right bracket `]` . In between the brackets @@ -245,7 +253,8 @@ produce a number. The expressions on a line are evaluated when the line is read, before anything on the line is executed. An example of an expression is `[1 + acos[0] - [#3 ** [4.0/2]]]`. -== Binary Operators [[sub:Binary-Operators]] +[[sub:Binary-Operators]] +== Binary Operators Binary operators only appear inside expressions. There are four basic mathematical operations: addition (`+`), subtraction (`-`), @@ -285,7 +294,8 @@ false, and any non-zero number is equivalent to logical true. |AND OR XOR | 'lowest' |======================================== -== Functions [[sub:Unary-Operation-Value]] +[[sub:Unary-Operation-Value]] +== Functions A function is either "`ATAN` " followed by one expression divided by another expression (for @@ -396,7 +406,9 @@ axis words or canceling motion. "Non-modal" codes have effect only on the lines on which they occur. For example, G4 (dwell) is non-modal. -== Modal Groups (((Modal Groups)))[[sec:Modal-Groups]] +[[sec:Modal-Groups]] +== Modal Groups +(((Modal Groups))) Modal commands are arranged in sets called "modal groups", and only one member of a modal group may be in force at any given time. In @@ -479,7 +491,9 @@ size. The preview can be turned off in Axis to speed up loading large part programs. In Axis sections of the preview can be turned off using special comments. -= G Code Order of Execution[[sec:Order-of-Execution]](((G Code Order of Execution))) +[[sec:Order-of-Execution]] += G Code Order of Execution +(((G Code Order of Execution))) The order of execution of items on a line is defined not by the position of each item on the line, but by the following list: @@ -510,7 +524,8 @@ position of each item on the line, but by the following list: . Perform motion (G0 to G3, G33, G73, G76, G80 to G89), as modified (possibly) by G53. . Stop (M0, M1, M2, M30, M60). -= G Code Best Practices (((G Code Best Practices))) += G Code Best Practices +(((G Code Best Practices))) == Use an appropriate decimal precision diff --git a/docs/src/gcode/overview_es.txt b/docs/src/gcode/overview_es.txt index 6b3ff1c73..0448c2603 100644 --- a/docs/src/gcode/overview_es.txt +++ b/docs/src/gcode/overview_es.txt @@ -1,4 +1,5 @@ -= G Code Overview [[cha:Language-Overview]] +[[cha:Language-Overview]] += G Code Overview The EMC2 G Code language is based on the RS274/NGC language. The G Code language is based on lines of code. Each line (also called a @@ -60,7 +61,8 @@ Input is case insensitive, except in comments, i.e., any letter outside a comment may be in upper or lower case without changing the meaning of a line. -== Line Number (((Line Number))) +== Line Number +(((Line Number))) A line number is the letter N followed by an integer (with no sign) between 0 and 99999 written with no more than five digits (000009 is @@ -69,7 +71,8 @@ order, although normal practice is to avoid such usage. Line numbers may also be skipped, and that is normal practice. A line number is not required to be used, but must be in the proper place if used. -== Word (((Word))) +== Word +(((Word))) A word is a letter other than N followed by a real value. @@ -112,7 +115,8 @@ not have the corresponding axis. |Z | Z axis of machine |======================================== -== Number [[sub:Number]] +[[sub:Number]] +== Number The following rules are used for (explicit) numbers. In these rules a digit is a single character between 0 and 9. @@ -143,7 +147,8 @@ example), M codes, and G codes multiplied by ten. A decimal number which is supposed be close to an integer is considered close enough if it is within 0.0001 of an integer. -== Numbered Parameters [[sub:Numbered-Parameters]] +[[sub:Numbered-Parameters]] +== Numbered Parameters A numbered parameter is the pound character `#` followed by an integer between 1 and 5399. The parameter is referred @@ -185,7 +190,8 @@ tool: - #5412 Tool Backangle - #5413 Tool Orientation -== Named Parameters [[sub:Named-Parameters]] +[[sub:Named-Parameters]] +== Named Parameters Named parameters work like numbered parameters but are easier to read. All parameter names are converted to lower case and have spaces and @@ -224,7 +230,8 @@ The global parameters _a, _b, _c, ... _z have been reserved for special use. In the future, they may provide access to the last Aword, Bword, Cword, etc. -=== System Parameters [[sec:System-Parameters]] +[[sec:System-Parameters]] +=== System Parameters Two global read only named parameters are available to check which version is running from G Code. @@ -235,7 +242,8 @@ version is running from G Code. #<_vminor>:: Minor package version. If current version was 2.6.2 would return 0.2. -== Expressions [[sub:Expressions]] +[[sub:Expressions]] +== Expressions An expression is a set of characters starting with a left bracket `[` and ending with a balancing right bracket `]` . In between the brackets @@ -245,7 +253,8 @@ produce a number. The expressions on a line are evaluated when the line is read, before anything on the line is executed. An example of an expression is `[1 + acos[0] - [#3 ** [4.0/2]]]`. -== Binary Operators [[sub:Binary-Operators]] +[[sub:Binary-Operators]] +== Binary Operators Binary operators only appear inside expressions. There are four basic mathematical operations: addition (`+`), subtraction (`-`), @@ -285,7 +294,8 @@ false, and any non-zero number is equivalent to logical true. |AND OR XOR | 'lowest' |======================================== -== Functions [[sub:Unary-Operation-Value]] +[[sub:Unary-Operation-Value]] +== Functions A function is either "`ATAN` " followed by one expression divided by another expression (for @@ -396,7 +406,9 @@ axis words or canceling motion. "Non-modal" codes have effect only on the lines on which they occur. For example, G4 (dwell) is non-modal. -== Modal Groups (((Modal Groups)))[[sec:Modal-Groups]] +[[sec:Modal-Groups]] +== Modal Groups +(((Modal Groups))) Modal commands are arranged in sets called "modal groups", and only one member of a modal group may be in force at any given time. In @@ -479,7 +491,9 @@ size. The preview can be turned off in Axis to speed up loading large part programs. In Axis sections of the preview can be turned off using special comments. -= G Code Order of Execution[[sec:Order-of-Execution]](((G Code Order of Execution))) +[[sec:Order-of-Execution]] += G Code Order of Execution +(((G Code Order of Execution))) The order of execution of items on a line is defined not by the position of each item on the line, but by the following list: @@ -510,7 +524,8 @@ position of each item on the line, but by the following list: . Perform motion (G0 to G3, G33, G73, G76, G80 to G89), as modified (possibly) by G53. . Stop (M0, M1, M2, M30, M60). -= G Code Best Practices (((G Code Best Practices))) += G Code Best Practices +(((G Code Best Practices))) == Use an appropriate decimal precision diff --git a/docs/src/gcode/overview_fr.txt b/docs/src/gcode/overview_fr.txt index 679cf812e..040c08b21 100644 --- a/docs/src/gcode/overview_fr.txt +++ b/docs/src/gcode/overview_fr.txt @@ -1,4 +1,5 @@ -= Vue d'ensemble du langage [[cha:Vue-d-ensemble-du-langage]] +[[cha:Vue-d-ensemble-du-langage]] += Vue d'ensemble du langage Le langage RS274/NGC est basé sur des lignes de code. Chaque ligne (également appelée un “block”) peut inclure des commandes pour faire @@ -67,6 +68,7 @@ indifféremment des majuscules ou des minuscules sans changer la signification de la ligne. == Numéro de ligne +(((Numéro de ligne))) Un numéro de ligne commence par la lettre N suivie d'un nombre entier non signé compris entre 0 et 99999 écrit avec moins de six caractères @@ -77,6 +79,7 @@ pratique normale. L'utilisation d'un numéro de ligne n'est pas obligatoire, mais si il est utilisé, il doit être à sa place. == Les mots +(((mots))) Un mot est une lettre, autre que N, suivie d'un nombre réel. @@ -120,7 +123,8 @@ valides sur une machine n'ayant pas les axes correspondants. |Z | Axe Z de la machine |======================================== -=== Nombres [[sub:Nombres]] +[[sub:Nombres]] +=== Nombres Les règles suivantes sont employées pour des nombres (explicites). Dans ces règles un chiffre est un caractère simple entre 0 et 9. @@ -144,7 +148,8 @@ Si un nombre utilisé dans le langage RS274/NGC est proche d'une valeur entière à moins de quatre décimales, il est considéré comme entier, par exemple 0.9999. -=== Paramètres numérotés [[sub:Parametres-numerotes]] +[[sub:Parametres-numerotes]] +=== Paramètres numérotés Un paramètre numéroté commence par le caractère `#` suivi par un entier compris entre 1 et 5399. Le paramètre est @@ -165,7 +170,26 @@ valeur contenue dans numéro est égal à la valeur entière trouvée dans le paramètre 2. -=== Paramètres nommés [[sub:Parametres-nommes]] +The interpreter maintains a number of read-only parameters for a loaded +tool: + + - #5400 Tool number + - #5401 Tool X offset + - #5402 Tool Y offset + - #5403 Tool Z offset + - #5404 Tool A offset + - #5405 Tool B offset + - #5406 Tool C offset + - #5407 Tool U offset + - #5408 Tool V offset + - #5409 Tool W offset + - #5410 Tool Diameter + - #5411 Tool Frontangle + - #5412 Tool Backangle + - #5413 Tool Orientation + +[[sub:Parametres-nommes]] +=== Paramètres nommés Les paramètres nommés fonctionnent comme les paramètres numérotés mais sont plus faciles à lire. Les paramètres nommés sont convertis en @@ -207,7 +231,8 @@ Les paramètres globaux _a, _b, _c, ... _z sont réservés pour une utilisation spéciale. Dans le futur, ils pourront fournir l'accès aux derniers Aword, Bword, Cword, ... Zword etc. -=== System Parameters [[sec:System-Parameters]] +[[sec:System-Parameters]] +=== System Parameters Two global read only named parameters are available to check which version is running from G Code. @@ -218,7 +243,8 @@ version is running from G Code. #<_vminor>:: Minor package version. If current version was 2.6.2 would return 0.2. -=== Expressions [[sub:Expressions]] +[[sub:Expressions]] +=== Expressions Une expression est un groupe de caractères commençant avec le crochet gauche `[` et se terminant avec le crocher droit `]` . Entre les @@ -229,7 +255,8 @@ est évaluée pour produire un nombre. Les expressions sur une ligne sont éxécuté sur cette ligne. Un exemple d'expression: `[1 + acos[0] - [#3 ** [4.0/2]]]`. -=== Opérateurs binaires [[sub:Operateurs-binaires]] +[[sub:Operateurs-binaires]] +=== Opérateurs binaires Les opérateurs binaires ne se rencontrent que dans les expressions. Il y a quatre opérateurs mathématiques de base: addition (`+`), @@ -270,7 +297,8 @@ réels et non pas seulement sur des entiers. Le zéro est équivalent à un |AND OR XOR | 'basse' |======================================== -=== Fonctions [[sub:Operations-unaires]] +[[sub:Operations-unaires]] +=== Fonctions Une fonction commence par son nom, ex: “`ATAN` ” suivi par une expression divisée par une autre expression (par @@ -390,7 +418,9 @@ mouvement. Les codes “non modaux” n'ont d'effet que sur la ligne ou ils se présentent. Par exemple, G4 (tempo) est non modale. -== Groupes modaux [[sec:Groupes-modaux]] +[[sec:Groupes-modaux]] +== Groupes modaux +(((Groupes modaux))) Les commandes modales sont arrangées par lots appelés “groupes modaux”, à tout moment, un seul membre d'un groupe modal peut être @@ -475,7 +505,9 @@ size. The preview can be turned off in Axis to speed up loading large part programs. In Axis sections of the preview can be turned off using special comments. -= Ordre d'exécution [[sec:Ordre-d-execution]] +[[sec:Ordre-d-execution]] += Ordre d'exécution +(((Ordre d'exécution))) L'ordre d'exécution des éléments d'une ligne est essentiel à la sécurité et l'efficacité d'une machine. Les éléments sont exécutés dans @@ -506,6 +538,7 @@ l'ordre indiqué ci-dessous, si ils se trouvent sur la même ligne. . Arrêt (M0, M1, M2, M30, M60). = G-Code: Bonnes pratiques +(((G-Code bonnes pratiques))) == Utiliser un nombre de décimales approprié @@ -574,8 +607,4 @@ dépend pas que de la vitesse travail, il peut être plus simple d'utiliser G93, vitesse inverse du temps pour atteindre l'enlévement de matière souhaîté. -= Fichier d'outils et compensations - -Voir section <> - From 9bb983a537a46d1f7b9d849b4f0ec5ea1bb659c3 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 17:39:56 -0500 Subject: [PATCH 0008/1024] Docs: Minor fixes to tool_compensation (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gcode/tool_compensation.txt | 10 +++++++--- docs/src/gcode/tool_compensation_de.txt | 10 +++++++--- docs/src/gcode/tool_compensation_es.txt | 10 +++++++--- docs/src/gcode/tool_compensation_fr.txt | 16 +++++++++++----- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/docs/src/gcode/tool_compensation.txt b/docs/src/gcode/tool_compensation.txt index 3cc86f5df..a0bb324e2 100644 --- a/docs/src/gcode/tool_compensation.txt +++ b/docs/src/gcode/tool_compensation.txt @@ -2,7 +2,8 @@ == Tool Length Offsets -=== Touch Off (((Touch Off))) +=== Touch Off +(((Touch Off))) Using the Touch Off Screen in the AXIS interface you can update the tool table automatically. @@ -48,9 +49,11 @@ updated using G10 L1. See the Lathe Specifics Section for lathe tool table example. The maximum number of entries in the tool table is 56. The maximum tool and pocket number is 99999. +[[sec:Tool-Table-Format]] === Tool Table Format +(((Tool-Table-Format))) -.Tool Table Format[[sec:Tool-Table-Format]](((Tool-Table-Format))) +.Tool Table Format [width="100%", options="header"] |======================================== @@ -199,7 +202,8 @@ changed EMC rewrites the pocket number to keep track of where the tools are. T can be any number but P must be a number that makes sense for the machine. -== Cutter Radius Compensation [[sec:Cutter-Radius-Compensation]] +[[sec:Cutter-Radius-Compensation]] +== Cutter Radius Compensation Cutter Radius Compensation allows the programmer to program the tool path without knowing the exact tool diameter. The only caveat is the diff --git a/docs/src/gcode/tool_compensation_de.txt b/docs/src/gcode/tool_compensation_de.txt index 3cc86f5df..a0bb324e2 100644 --- a/docs/src/gcode/tool_compensation_de.txt +++ b/docs/src/gcode/tool_compensation_de.txt @@ -2,7 +2,8 @@ == Tool Length Offsets -=== Touch Off (((Touch Off))) +=== Touch Off +(((Touch Off))) Using the Touch Off Screen in the AXIS interface you can update the tool table automatically. @@ -48,9 +49,11 @@ updated using G10 L1. See the Lathe Specifics Section for lathe tool table example. The maximum number of entries in the tool table is 56. The maximum tool and pocket number is 99999. +[[sec:Tool-Table-Format]] === Tool Table Format +(((Tool-Table-Format))) -.Tool Table Format[[sec:Tool-Table-Format]](((Tool-Table-Format))) +.Tool Table Format [width="100%", options="header"] |======================================== @@ -199,7 +202,8 @@ changed EMC rewrites the pocket number to keep track of where the tools are. T can be any number but P must be a number that makes sense for the machine. -== Cutter Radius Compensation [[sec:Cutter-Radius-Compensation]] +[[sec:Cutter-Radius-Compensation]] +== Cutter Radius Compensation Cutter Radius Compensation allows the programmer to program the tool path without knowing the exact tool diameter. The only caveat is the diff --git a/docs/src/gcode/tool_compensation_es.txt b/docs/src/gcode/tool_compensation_es.txt index 3cc86f5df..a0bb324e2 100644 --- a/docs/src/gcode/tool_compensation_es.txt +++ b/docs/src/gcode/tool_compensation_es.txt @@ -2,7 +2,8 @@ == Tool Length Offsets -=== Touch Off (((Touch Off))) +=== Touch Off +(((Touch Off))) Using the Touch Off Screen in the AXIS interface you can update the tool table automatically. @@ -48,9 +49,11 @@ updated using G10 L1. See the Lathe Specifics Section for lathe tool table example. The maximum number of entries in the tool table is 56. The maximum tool and pocket number is 99999. +[[sec:Tool-Table-Format]] === Tool Table Format +(((Tool-Table-Format))) -.Tool Table Format[[sec:Tool-Table-Format]](((Tool-Table-Format))) +.Tool Table Format [width="100%", options="header"] |======================================== @@ -199,7 +202,8 @@ changed EMC rewrites the pocket number to keep track of where the tools are. T can be any number but P must be a number that makes sense for the machine. -== Cutter Radius Compensation [[sec:Cutter-Radius-Compensation]] +[[sec:Cutter-Radius-Compensation]] +== Cutter Radius Compensation Cutter Radius Compensation allows the programmer to program the tool path without knowing the exact tool diameter. The only caveat is the diff --git a/docs/src/gcode/tool_compensation_fr.txt b/docs/src/gcode/tool_compensation_fr.txt index 46b5e3871..5c5bf9e61 100644 --- a/docs/src/gcode/tool_compensation_fr.txt +++ b/docs/src/gcode/tool_compensation_fr.txt @@ -2,7 +2,8 @@ == Tool Length Offsets -=== Touch Off (((Touch Off))) +=== Touch Off +(((Touch Off))) Using the Touch Off Screen in the AXIS interface you can update the tool table automatically. @@ -48,9 +49,11 @@ updated using G10 L1. See the Lathe Specifics Section for lathe tool table example. The maximum number of entries in the tool table is 56. The maximum tool and pocket number is 99999. +[[sec:Tool-Table-Format]] === Tool Table Format +(((Tool-Table-Format))) -.Tool Table Format[[sec:Tool-Table-Format]](((Tool-Table-Format))) +.Tool Table Format [width="100%", options="header"] |======================================== @@ -165,7 +168,8 @@ The “Comment” column may optionally be used to describe the tool. Any type of description is OK. This column is for the benefit of human readers only. The comment must be preceded by a semicolon. -= Fichier d'outils et compensations[[sec:Outils-et-Compensations]] +[[sec:Outils-et-Compensations]] += Fichier d'outils et compensations == Fichier d'outils @@ -192,7 +196,8 @@ une situation spécifique. Ces références ont pour but de donner au lecteur une idée de la séquences plutôt que d'exiger qu'il comprenne la façon dont les fonctions canoniques elles-mêmes fonctionnent dans EMC. -== Compensation de longueur d'outil [[sec:Compensation-longueur-d-outil]] +[[sec:Compensation-longueur-d-outil]] +== Compensation de longueur d'outil Les compensations de longueur d'outil sont données comme des nombres positifs dans la table d'outils. Une compensation d'outil est @@ -239,7 +244,8 @@ Avec ce programme, dans la plupart des cas, la machine va appliquer le décalage sous forme d'une rampe pendant le mouvement en xyz suivant le mot G43. -== Compensation de rayon d'outil [[sec:Compensation-rayon-d-outil]] +[[sec:Compensation-rayon-d-outil]] +== Compensation de rayon d'outil By Jon Elson From 81ed621054a5d3c70e29d53486de2a524534456c Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:10:36 -0500 Subject: [PATCH 0009/1024] Docs: Minor fixes to Axis (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gui/axis.txt | 48 ++++++++++++++++++++++---------- docs/src/gui/axis_de.txt | 48 ++++++++++++++++++++++---------- docs/src/gui/axis_es.txt | 48 ++++++++++++++++++++++---------- docs/src/gui/axis_fr.txt | 59 ++++++++++++++++++++++++++-------------- 4 files changed, 137 insertions(+), 66 deletions(-) diff --git a/docs/src/gui/axis.txt b/docs/src/gui/axis.txt index 4ca101c37..56ce5ec31 100644 --- a/docs/src/gui/axis.txt +++ b/docs/src/gui/axis.txt @@ -410,7 +410,8 @@ but one step of your stepper motor or one encoder count is 0.00125, then the "Commanded" position might be 0.0033, but the "Actual" position will be 0.0025 (2 steps) or 0.00375 (3 steps). -==== Preview Plot(((preview plot))) +==== Preview Plot +(((preview plot))) When a file is loaded, a preview of it is shown in the display area. @@ -428,7 +429,8 @@ preview until after the first feed move. To turn either of these features off program a G1 without any moves prior to the G0 moves. -==== Program Extents(((program extents))) +==== Program Extents +(((program extents))) The "extents" of the program in each axis are shown. At the ends, the least and greatest coordinate values are indicated. @@ -505,7 +507,8 @@ the text display will automatically scroll to show the current line. image::images/axis-currentandselected.png[] -=== Manual Control(((Manual))) +=== Manual Control +(((Manual))) While the machine is turned on but not running a program, the items in the "Manual Control" tab can be used to @@ -595,7 +598,8 @@ EMC will allow the jog only in the correct direction. _Override Limits will not allow a jog past a soft limit. The only way to disable a soft limit on an axis is to Unhome it._ -==== The "Spindle" group (((spindle))) +==== The "Spindle" group +(((AxisUI, spindle))) The buttons on the first row select the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. Counterclockwise will @@ -607,15 +611,17 @@ engaged or released. Depending on your machine configuration, not all the items in this group may appear. Pressing the spindle start button sets the "S" speed to 1. -==== The "Coolant" group (((coolant))) +==== The "Coolant" group +(((AxisUI, coolant))) The two buttons allow the "Mist" and "Flood" coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. === MDI +(((AxisUI, MDI))) -MDI(((MDI))) allows G-code commands to be entered manually. +MDI allows G-code commands to be entered manually. When the machine is not turned on, or when a program is running, the MDI controls are unavailable. @@ -636,20 +642,23 @@ Active G-Codes::: coordinates that are entered. When in Auto the Active G-Codes represent the codes after any read ahead by the interpreter. -=== Feed Override (((feed override))) +=== Feed Override +(((AxisUI, feed override))) By moving this slider, the programmed feed rate can be modified. For instance, if a program requests `F60` and the slider is set to 120%, then the resulting feed rate will be 72. -=== Spindle Speed Override (((spindle speed override))) +=== Spindle Speed Override +(((AxisUI, spindle speed override))) By moving this slider, the programmed spindle speed can be modified. For instance, if a program requests S8000 and the slider is set to 80%, then the resulting spindle speed will be 6400. This item only appears when the HAL pin `motion.spindle-speed-out` is connected. -=== Jog Speed (((jog speed))) +=== Jog Speed +(((AxisUI, jog speed))) By moving this slider, the speed of jogs can be modified. For instance, if the slider is set to 1 in/min, then a .01 inch jog will @@ -661,13 +670,15 @@ wide range of jog speeds with fine control when it is most important. On machines with a rotary axis, a second jog speed slider is shown. This slider sets the jog rate for the rotary axes (A, B and C). -=== Max Velocity (((Max Velocity))) +=== Max Velocity +(((AxisUI, Max Velocity))) By moving this slider, the maximum velocity can be set. This caps the maximum velocity for all programmed moves except spindle-synchronized moves. == Keyboard Controls +(((AxisUI, keyboard shortcuts))) Almost all actions in AXIS can be accomplished with the keyboard. A full list of keyboard shortcuts can be found in the AXIS Quick @@ -764,7 +775,9 @@ commands to a running AXIS. The available commands are shown by running (`--ping`), loading a file by name, reloading the currently loaded file (`--reload`), and making AXIS exit (`--quit`). -== Manual Tool Change[[sec:Manual-Tool-Change]](((Manual Tool Change))) +[[sec:Manual-Tool-Change]] +== Manual Tool Change +(((Manual Tool Change))) EMC2 includes a userspace HAL component called "hal_manualtoolchange", which shows a window (Figure <>) when a @@ -809,6 +822,7 @@ running "in-place", this can be done by using `scripts/emc-environment`. == Using AXIS in Lathe Mode +(((AXIS in lathe mode))) By including the line @@ -923,7 +937,8 @@ After AXIS has created these HAL pins, it executes the HAL file named in `[HAL]POSTGUI_HALFILE`. Unlike `[HAL]HALFILE`, only one such file may be used. -=== axisrc (((.axisrc))) +=== ~./axisrc +(((.axisrc))) If it exists, the contents of `~/.axisrc` are executed as Python source code just before the AXIS GUI is @@ -935,7 +950,8 @@ The following adds Control-Q as a keyboard shortcut for Quit. root_window.bind("", "destroy .") help2.append(("Control-Q", "Quit")) -=== External Editor (((External Editor))) +=== External Editor +(((External Editor))) The menu options File > Edit... and File > Edit Tool Table... become available after defining the editor in the ini section [DISPLAY]. @@ -943,13 +959,15 @@ Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. For more information, see the DISPLAY section of the INI Configuration Chapter in the Integrator Manual. -=== Virtual Control Panel (((Virtual Control Panel))) +=== Virtual Control Panel +(((Virtual Control Panel))) AXIS can display a custom virtual control panel in the right-hand pane. You can program buttons, indicators, data displays and more. For more information, see the Integrator Manual. -=== Special Comments (((Special Comments))) +=== Special Comments +(((Special Comments))) Special comments can be inserted into the G Code file to control how the preview of AXIS behaves. In the case where you want to limit the diff --git a/docs/src/gui/axis_de.txt b/docs/src/gui/axis_de.txt index 4ca101c37..ecc722c24 100644 --- a/docs/src/gui/axis_de.txt +++ b/docs/src/gui/axis_de.txt @@ -410,7 +410,8 @@ but one step of your stepper motor or one encoder count is 0.00125, then the "Commanded" position might be 0.0033, but the "Actual" position will be 0.0025 (2 steps) or 0.00375 (3 steps). -==== Preview Plot(((preview plot))) +==== Preview Plot +(((preview plot))) When a file is loaded, a preview of it is shown in the display area. @@ -428,7 +429,8 @@ preview until after the first feed move. To turn either of these features off program a G1 without any moves prior to the G0 moves. -==== Program Extents(((program extents))) +==== Program Extents +(((program extents))) The "extents" of the program in each axis are shown. At the ends, the least and greatest coordinate values are indicated. @@ -505,7 +507,8 @@ the text display will automatically scroll to show the current line. image::images/axis-currentandselected.png[] -=== Manual Control(((Manual))) +=== Manual Control +(((Manual))) While the machine is turned on but not running a program, the items in the "Manual Control" tab can be used to @@ -595,7 +598,8 @@ EMC will allow the jog only in the correct direction. _Override Limits will not allow a jog past a soft limit. The only way to disable a soft limit on an axis is to Unhome it._ -==== The "Spindle" group (((spindle))) +==== The "Spindle" group +(((AxisUI, spindle))) The buttons on the first row select the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. Counterclockwise will @@ -607,15 +611,17 @@ engaged or released. Depending on your machine configuration, not all the items in this group may appear. Pressing the spindle start button sets the "S" speed to 1. -==== The "Coolant" group (((coolant))) +==== The "Coolant" group +(((AxisUI, coolant))) The two buttons allow the "Mist" and "Flood" coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. === MDI +(((AxisUI, MDI))) -MDI(((MDI))) allows G-code commands to be entered manually. +MDI allows G-code commands to be entered manually. When the machine is not turned on, or when a program is running, the MDI controls are unavailable. @@ -636,20 +642,23 @@ Active G-Codes::: coordinates that are entered. When in Auto the Active G-Codes represent the codes after any read ahead by the interpreter. -=== Feed Override (((feed override))) +=== Feed Override +(((AxisUI, feed override))) By moving this slider, the programmed feed rate can be modified. For instance, if a program requests `F60` and the slider is set to 120%, then the resulting feed rate will be 72. -=== Spindle Speed Override (((spindle speed override))) +=== Spindle Speed Override +(((AxisUI, spindle speed override))) By moving this slider, the programmed spindle speed can be modified. For instance, if a program requests S8000 and the slider is set to 80%, then the resulting spindle speed will be 6400. This item only appears when the HAL pin `motion.spindle-speed-out` is connected. -=== Jog Speed (((jog speed))) +=== Jog Speed +(((AxisUI, jog speed))) By moving this slider, the speed of jogs can be modified. For instance, if the slider is set to 1 in/min, then a .01 inch jog will @@ -661,13 +670,15 @@ wide range of jog speeds with fine control when it is most important. On machines with a rotary axis, a second jog speed slider is shown. This slider sets the jog rate for the rotary axes (A, B and C). -=== Max Velocity (((Max Velocity))) +=== Max Velocity +(((AxisUI, Max Velocity))) By moving this slider, the maximum velocity can be set. This caps the maximum velocity for all programmed moves except spindle-synchronized moves. == Keyboard Controls +(((AxisUI, keyboard shortcuts))) Almost all actions in AXIS can be accomplished with the keyboard. A full list of keyboard shortcuts can be found in the AXIS Quick @@ -764,7 +775,9 @@ commands to a running AXIS. The available commands are shown by running (`--ping`), loading a file by name, reloading the currently loaded file (`--reload`), and making AXIS exit (`--quit`). -== Manual Tool Change[[sec:Manual-Tool-Change]](((Manual Tool Change))) +[[sec:Manual-Tool-Change]] +== Manual Tool Change +(((Manual Tool Change))) EMC2 includes a userspace HAL component called "hal_manualtoolchange", which shows a window (Figure <>) when a @@ -809,6 +822,7 @@ running "in-place", this can be done by using `scripts/emc-environment`. == Using AXIS in Lathe Mode +(((AXIS in lathe mode))) By including the line @@ -923,7 +937,8 @@ After AXIS has created these HAL pins, it executes the HAL file named in `[HAL]POSTGUI_HALFILE`. Unlike `[HAL]HALFILE`, only one such file may be used. -=== axisrc (((.axisrc))) +=== ~/.axisrc +(((.axisrc))) If it exists, the contents of `~/.axisrc` are executed as Python source code just before the AXIS GUI is @@ -935,7 +950,8 @@ The following adds Control-Q as a keyboard shortcut for Quit. root_window.bind("", "destroy .") help2.append(("Control-Q", "Quit")) -=== External Editor (((External Editor))) +=== External Editor +(((External Editor))) The menu options File > Edit... and File > Edit Tool Table... become available after defining the editor in the ini section [DISPLAY]. @@ -943,13 +959,15 @@ Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. For more information, see the DISPLAY section of the INI Configuration Chapter in the Integrator Manual. -=== Virtual Control Panel (((Virtual Control Panel))) +=== Virtual Control Panel +(((Virtual Control Panel))) AXIS can display a custom virtual control panel in the right-hand pane. You can program buttons, indicators, data displays and more. For more information, see the Integrator Manual. -=== Special Comments (((Special Comments))) +=== Special Comments +(((Special Comments))) Special comments can be inserted into the G Code file to control how the preview of AXIS behaves. In the case where you want to limit the diff --git a/docs/src/gui/axis_es.txt b/docs/src/gui/axis_es.txt index 4ca101c37..ecc722c24 100644 --- a/docs/src/gui/axis_es.txt +++ b/docs/src/gui/axis_es.txt @@ -410,7 +410,8 @@ but one step of your stepper motor or one encoder count is 0.00125, then the "Commanded" position might be 0.0033, but the "Actual" position will be 0.0025 (2 steps) or 0.00375 (3 steps). -==== Preview Plot(((preview plot))) +==== Preview Plot +(((preview plot))) When a file is loaded, a preview of it is shown in the display area. @@ -428,7 +429,8 @@ preview until after the first feed move. To turn either of these features off program a G1 without any moves prior to the G0 moves. -==== Program Extents(((program extents))) +==== Program Extents +(((program extents))) The "extents" of the program in each axis are shown. At the ends, the least and greatest coordinate values are indicated. @@ -505,7 +507,8 @@ the text display will automatically scroll to show the current line. image::images/axis-currentandselected.png[] -=== Manual Control(((Manual))) +=== Manual Control +(((Manual))) While the machine is turned on but not running a program, the items in the "Manual Control" tab can be used to @@ -595,7 +598,8 @@ EMC will allow the jog only in the correct direction. _Override Limits will not allow a jog past a soft limit. The only way to disable a soft limit on an axis is to Unhome it._ -==== The "Spindle" group (((spindle))) +==== The "Spindle" group +(((AxisUI, spindle))) The buttons on the first row select the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. Counterclockwise will @@ -607,15 +611,17 @@ engaged or released. Depending on your machine configuration, not all the items in this group may appear. Pressing the spindle start button sets the "S" speed to 1. -==== The "Coolant" group (((coolant))) +==== The "Coolant" group +(((AxisUI, coolant))) The two buttons allow the "Mist" and "Flood" coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. === MDI +(((AxisUI, MDI))) -MDI(((MDI))) allows G-code commands to be entered manually. +MDI allows G-code commands to be entered manually. When the machine is not turned on, or when a program is running, the MDI controls are unavailable. @@ -636,20 +642,23 @@ Active G-Codes::: coordinates that are entered. When in Auto the Active G-Codes represent the codes after any read ahead by the interpreter. -=== Feed Override (((feed override))) +=== Feed Override +(((AxisUI, feed override))) By moving this slider, the programmed feed rate can be modified. For instance, if a program requests `F60` and the slider is set to 120%, then the resulting feed rate will be 72. -=== Spindle Speed Override (((spindle speed override))) +=== Spindle Speed Override +(((AxisUI, spindle speed override))) By moving this slider, the programmed spindle speed can be modified. For instance, if a program requests S8000 and the slider is set to 80%, then the resulting spindle speed will be 6400. This item only appears when the HAL pin `motion.spindle-speed-out` is connected. -=== Jog Speed (((jog speed))) +=== Jog Speed +(((AxisUI, jog speed))) By moving this slider, the speed of jogs can be modified. For instance, if the slider is set to 1 in/min, then a .01 inch jog will @@ -661,13 +670,15 @@ wide range of jog speeds with fine control when it is most important. On machines with a rotary axis, a second jog speed slider is shown. This slider sets the jog rate for the rotary axes (A, B and C). -=== Max Velocity (((Max Velocity))) +=== Max Velocity +(((AxisUI, Max Velocity))) By moving this slider, the maximum velocity can be set. This caps the maximum velocity for all programmed moves except spindle-synchronized moves. == Keyboard Controls +(((AxisUI, keyboard shortcuts))) Almost all actions in AXIS can be accomplished with the keyboard. A full list of keyboard shortcuts can be found in the AXIS Quick @@ -764,7 +775,9 @@ commands to a running AXIS. The available commands are shown by running (`--ping`), loading a file by name, reloading the currently loaded file (`--reload`), and making AXIS exit (`--quit`). -== Manual Tool Change[[sec:Manual-Tool-Change]](((Manual Tool Change))) +[[sec:Manual-Tool-Change]] +== Manual Tool Change +(((Manual Tool Change))) EMC2 includes a userspace HAL component called "hal_manualtoolchange", which shows a window (Figure <>) when a @@ -809,6 +822,7 @@ running "in-place", this can be done by using `scripts/emc-environment`. == Using AXIS in Lathe Mode +(((AXIS in lathe mode))) By including the line @@ -923,7 +937,8 @@ After AXIS has created these HAL pins, it executes the HAL file named in `[HAL]POSTGUI_HALFILE`. Unlike `[HAL]HALFILE`, only one such file may be used. -=== axisrc (((.axisrc))) +=== ~/.axisrc +(((.axisrc))) If it exists, the contents of `~/.axisrc` are executed as Python source code just before the AXIS GUI is @@ -935,7 +950,8 @@ The following adds Control-Q as a keyboard shortcut for Quit. root_window.bind("", "destroy .") help2.append(("Control-Q", "Quit")) -=== External Editor (((External Editor))) +=== External Editor +(((External Editor))) The menu options File > Edit... and File > Edit Tool Table... become available after defining the editor in the ini section [DISPLAY]. @@ -943,13 +959,15 @@ Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. For more information, see the DISPLAY section of the INI Configuration Chapter in the Integrator Manual. -=== Virtual Control Panel (((Virtual Control Panel))) +=== Virtual Control Panel +(((Virtual Control Panel))) AXIS can display a custom virtual control panel in the right-hand pane. You can program buttons, indicators, data displays and more. For more information, see the Integrator Manual. -=== Special Comments (((Special Comments))) +=== Special Comments +(((Special Comments))) Special comments can be inserted into the G Code file to control how the preview of AXIS behaves. In the case where you want to limit the diff --git a/docs/src/gui/axis_fr.txt b/docs/src/gui/axis_fr.txt index 3d8807687..06731ccd9 100644 --- a/docs/src/gui/axis_fr.txt +++ b/docs/src/gui/axis_fr.txt @@ -156,7 +156,8 @@ mais un pas du moteur fait 0.03, alors la position «Commandée» sera de 0.08, mais la position «Actuelle» sera de 0.06 (2 pas) ou 0.09 (3 pas). -==== Vue du parcours d'outil(((Chemin d'outil))) +==== Vue du parcours d'outil +(((Chemin d'outil))) Quand un fichier est chargé, une vue du parcours d'outil qu'il produira est visible dans la zone graphique. @@ -174,7 +175,8 @@ sur l'aperçu qu'après le déménagement première tétée. Pour deactiver une de ces caractéristiques hors programme un G1 sans aucun déplace avant le G0 déplace. -==== Etendues du programme(((Etendues du programme))) +==== Etendues du programme +(((Etendues du programme))) Les «étendues» du programme dans chaque axe sont présentés. Aux extrémités, les valeurs des coordonnées au plus et sont indiqués. @@ -252,7 +254,8 @@ le texte défile automatiquement pour toujours laisser la ligne courante visible image::images/axis-currentandselected_fr.png[] -=== Contrôle manuel(((Contrôle manuel))) +=== Contrôle manuel +(((Contrôle manuel))) Quand la machine est en marche mais qu'aucun programme n'est exécuté, les éléments graphiques de l'onglet «Contrôle manuel» peuvent être utilisés pour @@ -344,7 +347,8 @@ EMC va permettre au jogging uniquement dans le bon sens. _Limites Override ne permettra pas un jogging passé une limite souple. La seule façon de désactiver une limite souple sur un axe est de Unhome it._ -==== Le groupe «Broche»(((Broche))) +==== Le groupe «Broche» +(((Broche))) Les boutons de la première rangée permettent de sélectionner la direction de rotation de la broche: Sens anti-horaire, Arrêt, Sens @@ -353,7 +357,8 @@ fréquence de rotation. La case à cocher de la troisième rangée permet d'engager ou de relâcher le frein de broche. Selon la configuration de votre machine, ces éléments n'apparaîtront peut être pas tous. -==== Le groupe «Arrosage»(((Arrosage))) +==== Le groupe «Arrosage» +(((Arrosage))) Ces deux boutons permettent d'activer le «Brouillard» et l'«Arrosage» ou de les désactiver. Selon la configuration de votre machine, ces @@ -383,14 +388,16 @@ G-Codes actifs::: l'interpréteur. Par exemple, «G54» indique que le décalage d'origine «G54» sera appliqué à toutes les coordonnées qui seront entrées. -=== Correcteurs de vitesse (((Correcteurs de vitesse))) +=== Correcteurs de vitesse +(((Correcteurs de vitesse))) En déplaçant le curseur, la vitesse de déplacement programmée peut être modifiée. Par exemple, si un programme requiert une vitesse à `F60` et que le curseur est placé sur 120%, alors la vitesse résultante sera de 72. -=== Correcteur de vitesse de broche (((Correcteur de vitesse broche))) +=== Correcteur de vitesse de broche +(((Correcteur de vitesse broche))) En déplaçant ce curseur, la vitesse programmée de la broche peut être modifiée. Par exemple, si un programme requiert une vitesse à F8000 et @@ -398,7 +405,8 @@ que le curseur est placé sur 80%, alors la fréquence de rotation résultante sera de 6400. Cet élément n'apparaît que si la «HAL pin» `motion.spindle-speed-out` est connectée dans .ini. -=== Vitesse de Jog (((Vitesse de jog))) +=== Vitesse de Jog +(((Vitesse de jog))) En déplaçant ce curseur, la vitesse de jog peut être modifiée. Par exemple, si ce curseur est placé sur 100 mm/mn, alors un jog de 1 mm @@ -412,7 +420,8 @@ Sur les machines avec axes rotatifs, un second curseur de vitesse est présent. Il permet d'ajuster la vitesse de rotation des axes rotatifs (A, B et C). -=== Vitesse Maxi (((Vitesse maxi))) +=== Vitesse Maxi +(((Vitesse maxi))) En déplaçant ce curseur, la vitesse maximale peut être réglée. Cette coiffe la vitesse maximale pour tous les mouvements programmés, @@ -517,7 +526,9 @@ Les commandes disponibles sont visibles en faisant: `axis-remote charger un fichier, recharger le fichier courant avec: (`--reload`) et quitter le programme AXIS avec: (`--quit`). -== hal_manualtoolchange: Dialogue de Changement D'Outil Manuel[[sec:Changement-D-Outil-Manuel]](((Changement D'Outil Manuel))) +[[sec:Changement-D-Outil-Manuel]] +== hal_manualtoolchange: Dialogue de Changement D'Outil Manuel +(((Changement D'Outil Manuel))) EMC2 inclut un composant userspace HAL de appelé «hal_manualtoolchange», il ouvre une fenêtre d'appel d'outil (Figure <>) @@ -563,7 +574,8 @@ Python. Avec une version installée d'EMC2, ça se fera automatiquement. Avec une version installée en «in-place», ça peut être fait avec l'aide de: `scripts/emc-environment`. -== Utiliser AXIS en mode tour (((AXIS avec un tour))) +== Utiliser AXIS en mode tour +(((AXIS avec un tour))) En incluant la ligne @@ -676,7 +688,8 @@ ce qui entraînera la construction des options au niveau «widgetDefault», de sorte que les ressources X (qui sont elles, au niveau «userDefault») puissent l'emporter. -=== [[sub:Manivelle de jog]]Manivelle de jog +[[sub:Manivelle de jog]] +=== Manivelle de jog Pour accroître l'interaction d'AXIS avec une manivelle de jog physique, l'axe actif courant sélectionné dans l'interface graphique @@ -688,7 +701,8 @@ Après qu'AXIS ait créé ces «HAL pins», il exécute le fichier hal déclaré avec: `[HAL]POSTGUI_HALFILE`. Ce qui diffère de `[HAL]HALFILE,` qui lui ne s'utilise qu'une seule fois. -=== ~/.axisrc (((.axisrc))) +=== ~/.axisrc +(((.axisrc))) Si il existe, le contenu de: `~/.axisrc` est exécuté comme un code source Python juste avant l'ouverture de @@ -705,34 +719,37 @@ l'option “Distance restante” par défaut. help2.append(("Control-Q", "Quit")) === Editeur externe +(((Editeur externe))) En définissant: `[DISPLAY]EDITOR` , les options de menu: Fichier > Editer ainsi que Fichier > Editer la table d'outils, deviennent accessibles. Deux valeurs qui marchent bien:`EDITOR=gedit` et `EDITOR=gnome-terminal -e vim`. -=== Panneau de contrôle virtuel (((panneau de commande virtuel))) +=== Panneau de contrôle virtuel +(((panneau de commande virtuel))) AXIS peut afficher un panneau de commande virtuel personnalisé dans la droite volet. Vous pouvez boutons de programme, des indicateurs, affiche les données et plus encore. pour plus d'informations, consultez le manuel de l'intégrateur. -=== Commentaires spéciale (((Commentaires spéciale))) +=== Commentaires spéciale +(((Commentaires spéciale))) Commentaires spéciaux peuvent être insérés dans le fichier de code G pour contrôler la façon dont l'aperçu du comportement AXIS. Dans le cas où vous souhaitez limiter la dessin de l'utilisation aperçu de ces observations spéciales. Rien entre les -(AXIS, cacher) et (AXIS, spectacle) ne sera pas établi lors de la prévisualisation. l' -(AXIS, cacher) et (AXIS, spectacle) doivent être utilisées en paires avec le (AXIS, cacher) -être le premier. Tout ce après une (AXIS, arrêt) ne seront pas tirées au cours des +(AXIS,hide) et (AXIS,show) ne sera pas établi lors de la prévisualisation. l' +(AXIS,hide) et (AXIS,show) doivent être utilisées en paires avec le (AXIS, cacher) +être le premier. Tout ce après une (AXIS,stop) ne seront pas tirées au cours des aperçu. Ces commentaires sont utiles pour désencombrer l'affichage d'aperçu (pour les Par exemple pendant le débogage plus un g-code du fichier, on peut désactiver le aperçu sur certaines parties qui travaillent déjà sur OK). - - (AXIS, cacher) Arrête la prévisualisation (il faut en premier) - - (AXIS, spectacle) Reprend l'aperçu (il faut suivre un cache) - - (AXIS, stop) Arrête la preview d'ici à la fin du fichier. + - (AXIS,hide) Arrête la prévisualisation (il faut en premier) + - (AXIS,show) Reprend l'aperçu (il faut suivre un cache) + - (AXIS,stop) Arrête la preview d'ici à la fin du fichier. From 3f2b3e0304248ea37de1c1efc23c8f4abcc9496b Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:17:44 -0500 Subject: [PATCH 0010/1024] Docs: Minor fixes to halui (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gui/halui.txt | 13 +++++++++---- docs/src/gui/halui_de.txt | 13 +++++++++---- docs/src/gui/halui_es.txt | 13 +++++++++---- docs/src/gui/halui_fr.txt | 13 +++++++++---- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/docs/src/gui/halui.txt b/docs/src/gui/halui.txt index 81b6bf5a9..e1dc179f0 100644 --- a/docs/src/gui/halui.txt +++ b/docs/src/gui/halui.txt @@ -1,6 +1,8 @@ -= HAL User Interface [[cha:Hal-User-Interface]] +[[cha:Hal-User-Interface]] += HAL User Interface -== Introduction[[sec:HaluiIntroduction]] +[[sec:HaluiIntroduction]] +== Introduction Halui is a HAL based user interface for EMC, it connects HAL pins to NML commands. Most of the functionality (buttons, indicators etc.) that @@ -20,7 +22,8 @@ file. Make sure you use the actual path to your ini file. in your custom.hal file. -== Halui pin reference[[sec:Halui-pin-reference]] +[[sec:Halui-pin-reference]] +== Halui pin reference === Abort @@ -152,7 +155,9 @@ that is set in the [TRAJ] section of the ini file. - halui.max-velocity.value (float, out) - is the maximum linear velocity in machine units per second. -=== MDI[[MDI]](((MDI))) +[[sub:MDI]] +=== MDI +(((MDI))) Sometimes the user wants to add more complicated tasks to be performed by the activation of a HAL pin. This is possible using the following diff --git a/docs/src/gui/halui_de.txt b/docs/src/gui/halui_de.txt index 81b6bf5a9..e1dc179f0 100644 --- a/docs/src/gui/halui_de.txt +++ b/docs/src/gui/halui_de.txt @@ -1,6 +1,8 @@ -= HAL User Interface [[cha:Hal-User-Interface]] +[[cha:Hal-User-Interface]] += HAL User Interface -== Introduction[[sec:HaluiIntroduction]] +[[sec:HaluiIntroduction]] +== Introduction Halui is a HAL based user interface for EMC, it connects HAL pins to NML commands. Most of the functionality (buttons, indicators etc.) that @@ -20,7 +22,8 @@ file. Make sure you use the actual path to your ini file. in your custom.hal file. -== Halui pin reference[[sec:Halui-pin-reference]] +[[sec:Halui-pin-reference]] +== Halui pin reference === Abort @@ -152,7 +155,9 @@ that is set in the [TRAJ] section of the ini file. - halui.max-velocity.value (float, out) - is the maximum linear velocity in machine units per second. -=== MDI[[MDI]](((MDI))) +[[sub:MDI]] +=== MDI +(((MDI))) Sometimes the user wants to add more complicated tasks to be performed by the activation of a HAL pin. This is possible using the following diff --git a/docs/src/gui/halui_es.txt b/docs/src/gui/halui_es.txt index 81b6bf5a9..e1dc179f0 100644 --- a/docs/src/gui/halui_es.txt +++ b/docs/src/gui/halui_es.txt @@ -1,6 +1,8 @@ -= HAL User Interface [[cha:Hal-User-Interface]] +[[cha:Hal-User-Interface]] += HAL User Interface -== Introduction[[sec:HaluiIntroduction]] +[[sec:HaluiIntroduction]] +== Introduction Halui is a HAL based user interface for EMC, it connects HAL pins to NML commands. Most of the functionality (buttons, indicators etc.) that @@ -20,7 +22,8 @@ file. Make sure you use the actual path to your ini file. in your custom.hal file. -== Halui pin reference[[sec:Halui-pin-reference]] +[[sec:Halui-pin-reference]] +== Halui pin reference === Abort @@ -152,7 +155,9 @@ that is set in the [TRAJ] section of the ini file. - halui.max-velocity.value (float, out) - is the maximum linear velocity in machine units per second. -=== MDI[[MDI]](((MDI))) +[[sub:MDI]] +=== MDI +(((MDI))) Sometimes the user wants to add more complicated tasks to be performed by the activation of a HAL pin. This is possible using the following diff --git a/docs/src/gui/halui_fr.txt b/docs/src/gui/halui_fr.txt index 8a58c5e5e..02f66c046 100644 --- a/docs/src/gui/halui_fr.txt +++ b/docs/src/gui/halui_fr.txt @@ -1,6 +1,8 @@ -= Halui[[cha:Halui]] +[[cha:Halui]] += Halui -== Introduction[[sec:HaluiIntroduction]] +[[sec:HaluiIntroduction]] +== Introduction Halui est une interface utilisateur pour EMC s'appuyant sur HAL, elle connecte les pins de HAL à des commandes NML. La plupart des @@ -22,7 +24,8 @@ config avec stepconf) est d'inclure dans votre fichier custom.hal. -== Nomenclature des pins d'Halui[[sec:Halui-pin-reference]] +[[sec:Halui-pin-reference]] +== Nomenclature des pins d'Halui === Abandon (abort) @@ -147,7 +150,9 @@ la variable MAX_VELOCITY dans la section [TRAJ] du fichier ini. - halui.max-velocity.value (float, out) - Valeur de la vitesse linéaire maximum en unités machine par seconde. -=== Données manuelles (MDI)[[sub:MDI]] +[[sub:MDI]] +=== Données manuelles +(((MDI))) Il arrive que l'utilisateur veuille ajouter des tâches plus complexes devant être effectuées par l'activation d'une pin de HAL. C'est From 8a3b8f7d8d7e0516a8d85fc3f2b4f5563232efa9 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:25:52 -0500 Subject: [PATCH 0011/1024] Docs: Minor fixes to basic_hal (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/basic_hal.txt | 11 ++++++---- docs/src/hal/basic_hal_de.txt | 11 ++++++---- docs/src/hal/basic_hal_es.txt | 11 ++++++---- docs/src/hal/basic_hal_fr.txt | 38 ++++++++++++++++++++++++++++++++++- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/docs/src/hal/basic_hal.txt b/docs/src/hal/basic_hal.txt index e062a1856..e284eb0af 100644 --- a/docs/src/hal/basic_hal.txt +++ b/docs/src/hal/basic_hal.txt @@ -1,6 +1,7 @@ = Getting Started -== HAL Commands [[sec:Hal-Commands]] +[[sec:Hal-Commands]] +== HAL Commands More detailed information can be found in the man page for halcmd "man halcmd" in a terminal window. To see the HAL configuration and check @@ -128,7 +129,9 @@ line. The so called I/O pins like index-enable do not follow this rule. -=== setp (((setp)))[[sub:setp]] +[[sub:setp]] +=== setp +(((setp))) The command "setp" sets the value of a pin or parameter. The valid values will depend on the type of the pin or parameter. It is an error @@ -198,11 +201,11 @@ The syntax and an example: +newsig Xstep bit+ - More information can be found in the HAL manual or the man pages for halrun. -== HAL Data [[sec:Hal-Data]] +[[sec:Hal-Data]] +== HAL Data === Bit (((Bit))) diff --git a/docs/src/hal/basic_hal_de.txt b/docs/src/hal/basic_hal_de.txt index 9c709b8f8..bb970e3f5 100644 --- a/docs/src/hal/basic_hal_de.txt +++ b/docs/src/hal/basic_hal_de.txt @@ -1,6 +1,7 @@ = Getting Started -== HAL Commands [[sec:Hal-Commands]] +[[sec:Hal-Commands]] +== HAL Commands More detailed information can be found in the man page for halcmd "man halcmd" in a terminal window. To see the HAL configuration and check @@ -128,7 +129,9 @@ line. The so called I/O pins like index-enable do not follow this rule. -=== setp (((setp)))[[sub:setp]] +[[sub:setp]] +=== setp +(((setp))) The command "setp" sets the value of a pin or parameter. The valid values will depend on the type of the pin or parameter. It is an error @@ -200,11 +203,11 @@ The syntax and an example: +newsig Xstep bit+ - More information can be found in the HAL manual or the man pages for halrun. -== HAL Data [[sec:Hal-Data]] +[[sec:Hal-Data]] +== HAL Data === Bit (((Bit))) diff --git a/docs/src/hal/basic_hal_es.txt b/docs/src/hal/basic_hal_es.txt index f669cf7dd..1c5064449 100644 --- a/docs/src/hal/basic_hal_es.txt +++ b/docs/src/hal/basic_hal_es.txt @@ -1,6 +1,7 @@ = Getting Started -== HAL Commands [[sec:Hal-Commands]] +[[sec:Hal-Commands]] +== HAL Commands More detailed information can be found in the man page for halcmd "man halcmd" in a terminal window. To see the HAL configuration and check @@ -128,7 +129,9 @@ line. The so called I/O pins like index-enable do not follow this rule. -=== setp (((setp)))[[sub:setp]] +[[sub:setp]] +=== setp +(((setp))) The command "setp" sets the value of a pin or parameter. The valid values will depend on the type of the pin or parameter. It is an error @@ -200,11 +203,11 @@ The syntax and an example: +newsig Xstep bit+ - More information can be found in the HAL manual or the man pages for halrun. -== HAL Data [[sec:Hal-Data]] +[[sec:Hal-Data]] +== HAL Data === Bit (((Bit))) diff --git a/docs/src/hal/basic_hal_fr.txt b/docs/src/hal/basic_hal_fr.txt index c50e597cb..36476d70a 100644 --- a/docs/src/hal/basic_hal_fr.txt +++ b/docs/src/hal/basic_hal_fr.txt @@ -1,5 +1,6 @@ = Les bases de HAL +[[sec:Commandes-de-Hal]] == Commandes de Hal Des informations plus détaillées peuvent être trouvées dans la man @@ -115,7 +116,9 @@ avec les lecteurs des lignes suivantes: Les pins appelées I/O pins comme «index-enable», ne suivent pas cette règle. +[[sub:setp]] === setp +(((setp))) La commande `setp` ajuste la valeur d'une pin ou d'un paramètre. Les valeurs valides dépendront du type de la pin ou du paramètre. @@ -196,10 +199,43 @@ Syntaxe et exemple: +newsig Xstep bit+ - D'autres informations peuvent être trouvées dans le manuel de HAL ou la man page de <>. +[[sec:Hal-Data]] +== HAL Data + +=== Bit (((Bit))) + +A bit value is an on or off. + + - bit values = true or 1 and false or 0 (True, TRUE, true are all valid) + +=== Float (((Float))) + +A "float" is a floating point number. In other words the decimal point +can move as needed. + + - float values = a 32 bit floating point value, with approximately 24 + bits of resolution and over 200 bits of dynamic range. + +For more information on floating point numbers see: + +http://en.wikipedia.org/wiki/Floating_point[http://en.wikipedia.org/wiki/Floating_point] + +=== s32 (((s32))) + +An "s32" number is a whole number that can have a negative or positive +value. + + - s32 values = integer numbers -2147483648 to 2147483647 + +=== u32 (((u32))) + +A "u32" number is a whole number that is positive only. + + - u32 values = integer numbers 0 to 4294967295 + == Fichiers Hal Si l'assistant StepConf a été utilisé pour générer la configuration From 07416766e6acc70f7226020f6136373c8c5c89b8 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:37:47 -0500 Subject: [PATCH 0012/1024] Docs: Minor fixes to comp (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/comp.txt | 4 +++- docs/src/hal/comp_de.txt | 4 +++- docs/src/hal/comp_es.txt | 4 +++- docs/src/hal/comp_fr.txt | 22 ++++++++++++---------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/docs/src/hal/comp.txt b/docs/src/hal/comp.txt index ee80fc226..a123df412 100644 --- a/docs/src/hal/comp.txt +++ b/docs/src/hal/comp.txt @@ -418,7 +418,9 @@ If a `.comp` file is a driver for hardware, it may be placed in `emc2/src/hal/components` and will be built unless EMC2 is configured as a userspace simulator. -== Compiling realtime components outside the source tree[[sec:Compiling-realtime-components]] +[[sec:Compiling-realtime-components]] +== Compiling realtime components outside the source tree +(((Compiling realtime components outside the source tree))) `comp` can process, compile, and install a realtime component in a single step, placing `rtexample.ko` in the EMC2 realtime diff --git a/docs/src/hal/comp_de.txt b/docs/src/hal/comp_de.txt index ee80fc226..a123df412 100644 --- a/docs/src/hal/comp_de.txt +++ b/docs/src/hal/comp_de.txt @@ -418,7 +418,9 @@ If a `.comp` file is a driver for hardware, it may be placed in `emc2/src/hal/components` and will be built unless EMC2 is configured as a userspace simulator. -== Compiling realtime components outside the source tree[[sec:Compiling-realtime-components]] +[[sec:Compiling-realtime-components]] +== Compiling realtime components outside the source tree +(((Compiling realtime components outside the source tree))) `comp` can process, compile, and install a realtime component in a single step, placing `rtexample.ko` in the EMC2 realtime diff --git a/docs/src/hal/comp_es.txt b/docs/src/hal/comp_es.txt index ee80fc226..a123df412 100644 --- a/docs/src/hal/comp_es.txt +++ b/docs/src/hal/comp_es.txt @@ -418,7 +418,9 @@ If a `.comp` file is a driver for hardware, it may be placed in `emc2/src/hal/components` and will be built unless EMC2 is configured as a userspace simulator. -== Compiling realtime components outside the source tree[[sec:Compiling-realtime-components]] +[[sec:Compiling-realtime-components]] +== Compiling realtime components outside the source tree +(((Compiling realtime components outside the source tree))) `comp` can process, compile, and install a realtime component in a single step, placing `rtexample.ko` in the EMC2 realtime diff --git a/docs/src/hal/comp_fr.txt b/docs/src/hal/comp_fr.txt index 7142d47b2..04400d5a4 100644 --- a/docs/src/hal/comp_fr.txt +++ b/docs/src/hal/comp_fr.txt @@ -57,7 +57,7 @@ combien d'instances seront créées. == Syntaxe Un fichier `.comp` commence par un certain nombre de déclarations, -puis par un `«;;»` seul sur sa propre ligne. Il se terminé par le code +puis par un `«;;»` seul sur sa propre ligne. Il se terminé par le code C implémentant les fonctions du module. @@ -119,7 +119,7 @@ exemple: «min»), puissent être utilisés. |======================================== if CONDITION:: - Une expression impliquant la 'personnalité' d'une variable non nulle + Une expression impliquant la 'personnalité' d'une variable non nulle quand la variable ou le paramètre doit être créé. @@ -385,7 +385,7 @@ de broches d'entrée à chaque porte logique et permettre la sélection de n'importe quelle fonction de logique booléenne de base *and*, *or* et *xor*. -== Compiler un fichier `.comp` dans l'arborescence +== Compiler un fichier `.comp` dans l'arborescence Placer le fichier `.comp` dans le répertoire `emc2/src/hal/components` et lancer/relancer `«make`». `Les fichiers Comp` sont automatiquement @@ -396,9 +396,11 @@ placé dans `emc2/src/hal/components` et il y sera construit excepté si emc2 est configuré en mode simulation. -== Compiler un composant temps réel hors de l'arborescence [[sec:Compiler-composants-rt]] +[[sec:Compiler-composants-rt]] +== Compiler un composant temps réel hors de l'arborescence +(((Compiling realtime components outside the source tree))) -`comp` peut traiter, compiler et installer un composant temps réel en +`comp` peut traiter, compiler et installer un composant temps réel en une seule étape, en plaçant `rtexample.ko` dans le répertoire du module temps réel d'emc2: @@ -434,7 +436,7 @@ ou copiée à un emplacement standard pour une page de manuel. == Compiler un composant de l'espace utilisateur hors de l'arborescence -`comp` peut traiter, compiler et installer un document de l'espace +`comp` peut traiter, compiler et installer un document de l'espace utilisateur: comp usrexample.comp @@ -473,7 +475,7 @@ valeur sur 8 bits. Il peut y avoir un nombre quelconque de ces cartes dans le système et elles peuvent avoir des adresses variées. La pin est appelée `out_` parceque `out` est un identifiant utilisé dans ``. Il illustre l'utilisation de `EXTRA_SETUP` et de -`EXTRA_CLEANUP` pour sa requête de région d'entrées/sorties et libère +`EXTRA_CLEANUP` pour sa requête de région d'entrées/sorties et libère cette région en cas d'erreur ou quand le module est déchargé. @@ -533,7 +535,7 @@ FUNCTION(_) { outb(out_, ioaddr); } Ce fragment de composant illustre l'utilisation du préfixe `hal_` dans un nom de composant. `loop` est le nom d'un module standard du kernel -Linux, donc un composant `loop` ne pourrait pas être chargé si le +Linux, donc un composant `loop` ne pourrait pas être chargé si le module loop de Linux est également présent. @@ -620,10 +622,10 @@ Une ligne de chargement typique pourrait être: qui créerait les pins suivantes: - Une porte AND à 2 entrées: logic.0.and, logic.0.in-00, logic.0.in-01 - - des portes AND et OR à 5 entrées: logic.1.and, logic.1.or, + - des portes AND et OR à 5 entrées: logic.1.and, logic.1.or, logic.1.in-00, logic.1.in-01, logic.1.in-02, logic.1.in-03, logic.1.in-04, - - des portes AND et XOR à 3 entrées: logic.2.and, logic.2.xor, + - des portes AND et XOR à 3 entrées: logic.2.and, logic.2.xor, logic.2.in-00, logic.2.in-01, logic.2.in-02 From a4faa411ef5371392230ae0a132cbe6cd1cdb1b1 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:42:55 -0500 Subject: [PATCH 0013/1024] Docs: Minor fixes to parallel_port (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/parallel_port.txt | 7 +++++-- docs/src/hal/parallel_port_de.txt | 7 +++++-- docs/src/hal/parallel_port_es.txt | 7 +++++-- docs/src/hal/parallel_port_fr.txt | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/docs/src/hal/parallel_port.txt b/docs/src/hal/parallel_port.txt index 955490e82..2956415e2 100644 --- a/docs/src/hal/parallel_port.txt +++ b/docs/src/hal/parallel_port.txt @@ -1,6 +1,8 @@ = Parallel Port -== Parport[[sec:Parport]](((parallel port))) +[[sec:Parport]] +== Parport +(((parallel port))) Parport is a driver for the traditional PC parallel port. The port has a total of 17 physical pins. The original parallel port divided those @@ -206,7 +208,8 @@ For example: setp stepgen.0.steplen 1 setp stepgen.0.stepspace 0 -== [[sec:probe_parport]]probe_parport +[[sec:probe_parport]] +== probe_parport In modern PCs, the parallel port may require plug and play (PNP) configuration before it can be used. The `probe_parport` module diff --git a/docs/src/hal/parallel_port_de.txt b/docs/src/hal/parallel_port_de.txt index 61e3ae085..b8841de13 100644 --- a/docs/src/hal/parallel_port_de.txt +++ b/docs/src/hal/parallel_port_de.txt @@ -1,6 +1,8 @@ = Parallel Port -== Parport[[sec:Parport]](((parallel port))) +[[sec:Parport]] +== Parport +(((parallel port))) Parport is a driver for the traditional PC parallel port. The port has a total of 17 physical pins. The original parallel port divided those @@ -206,7 +208,8 @@ For example: setp stepgen.0.steplen 1 setp stepgen.0.stepspace 0 -== [[sec:probe_parport]]probe_parport +[[sec:probe_parport]] +== probe_parport In modern PCs, the parallel port may require plug and play (PNP) configuration before it can be used. The `probe_parport` module diff --git a/docs/src/hal/parallel_port_es.txt b/docs/src/hal/parallel_port_es.txt index 61e3ae085..b8841de13 100644 --- a/docs/src/hal/parallel_port_es.txt +++ b/docs/src/hal/parallel_port_es.txt @@ -1,6 +1,8 @@ = Parallel Port -== Parport[[sec:Parport]](((parallel port))) +[[sec:Parport]] +== Parport +(((parallel port))) Parport is a driver for the traditional PC parallel port. The port has a total of 17 physical pins. The original parallel port divided those @@ -206,7 +208,8 @@ For example: setp stepgen.0.steplen 1 setp stepgen.0.stepspace 0 -== [[sec:probe_parport]]probe_parport +[[sec:probe_parport]] +== probe_parport In modern PCs, the parallel port may require plug and play (PNP) configuration before it can be used. The `probe_parport` module diff --git a/docs/src/hal/parallel_port_fr.txt b/docs/src/hal/parallel_port_fr.txt index 32fb7769a..4dd37f695 100644 --- a/docs/src/hal/parallel_port_fr.txt +++ b/docs/src/hal/parallel_port_fr.txt @@ -1,6 +1,8 @@ = Parallel Port -== Parport[[sec:Parport]](((parallel port))) +[[sec:Parport]] +== Parport +(((parallel port))) Parport is a driver for the traditional PC parallel port. The port has a total of 17 physical pins. The original parallel port divided those @@ -206,7 +208,8 @@ For example: setp stepgen.0.steplen 1 setp stepgen.0.stepspace 0 -== probe_parport[[sec:probe_parport]] +[[sec:probe_parport]] +== probe_parport In modern PCs, the parallel port may require plug and play (PNP) configuration before it can be used. The `probe_parport` module From b339c0c6e8557fdf5b5a53bb10cba674e61352be Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:53:56 -0500 Subject: [PATCH 0014/1024] Docs: Minor fixes to pyvcp (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/pyvcp.txt | 7 +++++-- docs/src/hal/pyvcp_de.txt | 7 +++++-- docs/src/hal/pyvcp_es.txt | 7 +++++-- docs/src/hal/pyvcp_fr.txt | 14 ++++++++------ 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/docs/src/hal/pyvcp.txt b/docs/src/hal/pyvcp.txt index 3bcaf24a7..a4edcf24d 100644 --- a/docs/src/hal/pyvcp.txt +++ b/docs/src/hal/pyvcp.txt @@ -1,4 +1,6 @@ -= PyVCP (((Virtual Control Panel)))[[cha:Virtual-Control-Panel]] +[[cha:Virtual-Control-Panel]] += PyVCP +(((Virtual Control Panel))) Python Virtual Control Panel @@ -69,7 +71,8 @@ Parts of PyVCP files are evaluated as Python code, and can take any action available to Python programs. Only use PyVCP .xml files from a source that you trust. -== AXIS [[sec:pyvcp-with-axis]] +[[sec:pyvcp-with-axis]] +== AXIS Since AXIS uses the same GUI toolkit (Tkinter) as PyVCP, it is possible to include a PyVCP panel on the right side of the normal AXIS diff --git a/docs/src/hal/pyvcp_de.txt b/docs/src/hal/pyvcp_de.txt index 3bcaf24a7..a4edcf24d 100644 --- a/docs/src/hal/pyvcp_de.txt +++ b/docs/src/hal/pyvcp_de.txt @@ -1,4 +1,6 @@ -= PyVCP (((Virtual Control Panel)))[[cha:Virtual-Control-Panel]] +[[cha:Virtual-Control-Panel]] += PyVCP +(((Virtual Control Panel))) Python Virtual Control Panel @@ -69,7 +71,8 @@ Parts of PyVCP files are evaluated as Python code, and can take any action available to Python programs. Only use PyVCP .xml files from a source that you trust. -== AXIS [[sec:pyvcp-with-axis]] +[[sec:pyvcp-with-axis]] +== AXIS Since AXIS uses the same GUI toolkit (Tkinter) as PyVCP, it is possible to include a PyVCP panel on the right side of the normal AXIS diff --git a/docs/src/hal/pyvcp_es.txt b/docs/src/hal/pyvcp_es.txt index 3bcaf24a7..a4edcf24d 100644 --- a/docs/src/hal/pyvcp_es.txt +++ b/docs/src/hal/pyvcp_es.txt @@ -1,4 +1,6 @@ -= PyVCP (((Virtual Control Panel)))[[cha:Virtual-Control-Panel]] +[[cha:Virtual-Control-Panel]] += PyVCP +(((Virtual Control Panel))) Python Virtual Control Panel @@ -69,7 +71,8 @@ Parts of PyVCP files are evaluated as Python code, and can take any action available to Python programs. Only use PyVCP .xml files from a source that you trust. -== AXIS [[sec:pyvcp-with-axis]] +[[sec:pyvcp-with-axis]] +== AXIS Since AXIS uses the same GUI toolkit (Tkinter) as PyVCP, it is possible to include a PyVCP panel on the right side of the normal AXIS diff --git a/docs/src/hal/pyvcp_fr.txt b/docs/src/hal/pyvcp_fr.txt index 3400bbcb8..7c330ec08 100644 --- a/docs/src/hal/pyvcp_fr.txt +++ b/docs/src/hal/pyvcp_fr.txt @@ -1,4 +1,6 @@ +[[cha:Panneau-Virtuel-Control]] = PyVCP +(((Panneau Virtuel de Control))) Panneau virtuel de contrôle en python (*Py*thon *V*irtual *C*ontrol *P*anel) @@ -64,7 +66,8 @@ peuvent donc exécuter n'importe quelle action disponible dans les programmes Python. N'utilisez que des fichiers pyVCP en .xml à partir d'une source de confiance. -== Utiliser pyVCP avec AXIS [[sec:pyvcp-avec-axis]] +[[sec:pyvcp-avec-axis]] +== Utiliser pyVCP avec AXIS Puisque AXIS utilise le même environnement graphique et les même outils (Tkinter) que pyVCP, il est possible d'inclure un panneau pyVCP @@ -113,7 +116,8 @@ Voila à quoi ressemble le panneau pyVCP que nous venons de créer, incorporé à AXIS. La configuration `sim/lathe` fournie en exemple, est configurée de cette manière. -== Documentation des widgets de pyVCP [[sec:Documentation-des-widgets]] +[[sec:Documentation-des-widgets]] +== Documentation des widgets de pyVCP Les signaux de HAL existent en deux variantes, BIT et FLOAT. pyVCP peut afficher la valeur d'un signal avec un widget indicateur, ou @@ -240,11 +244,9 @@ quand le bouton sera relâché. Les boutons peuvent suivre le format suivant: - - n où "n" est le nombre d'espaces horizontaux - supplémentaires + - n où "n" est le nombre d'espaces horizontaux supplémentaires - n où "n" est le nombre d'espaces verticaux supplémentaires - - "color" Couleur au survol du - curseur + - "color" Couleur au survol du curseur - "color" Couleur du bouton ==== Bouton avec texte (Text Button) From dbaaac4300fd052d0678db4a065849562603e777 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 18:57:19 -0500 Subject: [PATCH 0015/1024] Docs: Minor fixes to pyvcp_examples (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/pyvcp_examples.txt | 3 ++- docs/src/hal/pyvcp_examples_de.txt | 3 ++- docs/src/hal/pyvcp_examples_es.txt | 3 ++- docs/src/hal/pyvcp_examples_fr.txt | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/src/hal/pyvcp_examples.txt b/docs/src/hal/pyvcp_examples.txt index 917b0d66b..60bd2ab71 100644 --- a/docs/src/hal/pyvcp_examples.txt +++ b/docs/src/hal/pyvcp_examples.txt @@ -343,7 +343,8 @@ Owner Type Dir Value Name This will show you what pins are IN and what pins are OUT as well as any connections. -== GS2 RPM Meter [[sec:GS2-RPM-Meter]] +[[sec:GS2-RPM-Meter]] +== GS2 RPM Meter The following example uses the Automation Direct GS2 VDF driver and displays the RPM and other info in a PyVCP panel. This example is based diff --git a/docs/src/hal/pyvcp_examples_de.txt b/docs/src/hal/pyvcp_examples_de.txt index 917b0d66b..60bd2ab71 100644 --- a/docs/src/hal/pyvcp_examples_de.txt +++ b/docs/src/hal/pyvcp_examples_de.txt @@ -343,7 +343,8 @@ Owner Type Dir Value Name This will show you what pins are IN and what pins are OUT as well as any connections. -== GS2 RPM Meter [[sec:GS2-RPM-Meter]] +[[sec:GS2-RPM-Meter]] +== GS2 RPM Meter The following example uses the Automation Direct GS2 VDF driver and displays the RPM and other info in a PyVCP panel. This example is based diff --git a/docs/src/hal/pyvcp_examples_es.txt b/docs/src/hal/pyvcp_examples_es.txt index 917b0d66b..60bd2ab71 100644 --- a/docs/src/hal/pyvcp_examples_es.txt +++ b/docs/src/hal/pyvcp_examples_es.txt @@ -343,7 +343,8 @@ Owner Type Dir Value Name This will show you what pins are IN and what pins are OUT as well as any connections. -== GS2 RPM Meter [[sec:GS2-RPM-Meter]] +[[sec:GS2-RPM-Meter]] +== GS2 RPM Meter The following example uses the Automation Direct GS2 VDF driver and displays the RPM and other info in a PyVCP panel. This example is based diff --git a/docs/src/hal/pyvcp_examples_fr.txt b/docs/src/hal/pyvcp_examples_fr.txt index 917b0d66b..60bd2ab71 100644 --- a/docs/src/hal/pyvcp_examples_fr.txt +++ b/docs/src/hal/pyvcp_examples_fr.txt @@ -343,7 +343,8 @@ Owner Type Dir Value Name This will show you what pins are IN and what pins are OUT as well as any connections. -== GS2 RPM Meter [[sec:GS2-RPM-Meter]] +[[sec:GS2-RPM-Meter]] +== GS2 RPM Meter The following example uses the Automation Direct GS2 VDF driver and displays the RPM and other info in a PyVCP panel. This example is based From 0c44fbc2ffaab8bdcdb2e10385de64e35dc962e2 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 19:01:22 -0500 Subject: [PATCH 0016/1024] Docs: Minor fixes to tools (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/hal/tools.txt | 7 +++++-- docs/src/hal/tools_de.txt | 7 +++++-- docs/src/hal/tools_es.txt | 7 +++++-- docs/src/hal/tools_fr.txt | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/docs/src/hal/tools.txt b/docs/src/hal/tools.txt index 9ae232dec..9ca8bc86e 100644 --- a/docs/src/hal/tools.txt +++ b/docs/src/hal/tools.txt @@ -1,6 +1,7 @@ = Tools and Utilities -== [[sec:Halcmd]]Halcmd +[[sec:Halcmd]] +== Halcmd Halcmd is a command line tool for manipulating the HAL. There is a rather complete man page for halcmd, which will be installed if you @@ -13,7 +14,9 @@ is accessible. From the main EMC2 directory, do: Chapter <> has a number of examples of halcmd usage, and is a good tutorial for halcmd. -== Halmeter[[Halmeter]](((Halmeter))) +[[sec:Halmeter]] +== Halmeter +(((Halmeter))) Halmeter is a “voltmeter” for the HAL. It lets you look at a pin, signal, or parameter, and displays the current value of that item. It diff --git a/docs/src/hal/tools_de.txt b/docs/src/hal/tools_de.txt index 2690378a2..62e5a7f5e 100644 --- a/docs/src/hal/tools_de.txt +++ b/docs/src/hal/tools_de.txt @@ -1,6 +1,7 @@ = Tools and Utilities -== [[sec:Halcmd]]Halcmd +[[sec:Halcmd]] +== Halcmd Halcmd is a command line tool for manipulating the HAL. There is a rather complete man page for halcmd, which will be installed if you @@ -13,7 +14,9 @@ is accessible. From the main EMC2 directory, do: Chapter <> has a number of examples of halcmd usage, and is a good tutorial for halcmd. -== Halmeter[[Halmeter]](((Halmeter))) +[[sec:Halmeter]] +== Halmeter +(((Halmeter))) Halmeter is a “voltmeter” for the HAL. It lets you look at a pin, signal, or parameter, and displays the current value of that item. It diff --git a/docs/src/hal/tools_es.txt b/docs/src/hal/tools_es.txt index 2690378a2..62e5a7f5e 100644 --- a/docs/src/hal/tools_es.txt +++ b/docs/src/hal/tools_es.txt @@ -1,6 +1,7 @@ = Tools and Utilities -== [[sec:Halcmd]]Halcmd +[[sec:Halcmd]] +== Halcmd Halcmd is a command line tool for manipulating the HAL. There is a rather complete man page for halcmd, which will be installed if you @@ -13,7 +14,9 @@ is accessible. From the main EMC2 directory, do: Chapter <> has a number of examples of halcmd usage, and is a good tutorial for halcmd. -== Halmeter[[Halmeter]](((Halmeter))) +[[sec:Halmeter]] +== Halmeter +(((Halmeter))) Halmeter is a “voltmeter” for the HAL. It lets you look at a pin, signal, or parameter, and displays the current value of that item. It diff --git a/docs/src/hal/tools_fr.txt b/docs/src/hal/tools_fr.txt index d9bc2b59a..fb56d3c5e 100644 --- a/docs/src/hal/tools_fr.txt +++ b/docs/src/hal/tools_fr.txt @@ -1,6 +1,7 @@ = Outils et utilitaires pour HAL -== Halcmd[[sec:Halcmd]] +[[sec:Halcmd]] +== Halcmd Halcmd est un outil en ligne de commande pour manipuler HAL. Il existe une man page plus complète pour halcmd, elle sera installée en même @@ -13,7 +14,9 @@ est accessible, dans le répertoire principal d'EMC2, taper: Le chapitre <> donne de nombreux exemples d'utilisation de halcmd. -== Halmeter[[sec:Halmeter]](((Halmeter))) +[[sec:Halmeter]] +== Halmeter +(((Halmeter))) Halmeter est un «voltmètre» pour HAL. Il permet de regarder les pins, signaux, ou paramètres en affichant la valeur courante de ces items. Il From d27513c186e4454093776c275de429f77e619940 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 19:05:55 -0500 Subject: [PATCH 0017/1024] Docs: Minor fixes to lathe-user (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/lathe/lathe-user.txt | 8 +++++--- docs/src/lathe/lathe-user_de.txt | 8 +++++--- docs/src/lathe/lathe-user_es.txt | 8 +++++--- docs/src/lathe/lathe-user_fr.txt | 4 +++- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/src/lathe/lathe-user.txt b/docs/src/lathe/lathe-user.txt index b9cfd0722..8f32070f3 100644 --- a/docs/src/lathe/lathe-user.txt +++ b/docs/src/lathe/lathe-user.txt @@ -1,4 +1,6 @@ -= Lathe Specifics[[cha:Lathe-Specifics]](((Lathe-Specifics))) +[[cha:Lathe-Specifics]] += Lathe Specifics +(((Lathe-Specifics))) This chapter attempts to bring together all the lathe specific information and is currently under construction. @@ -63,14 +65,14 @@ image::images/tool_positions.png[] In AXIS the following figures show what the Tool Positions look like, as entered in the tool table. -.Tool Positions 1, 2, 3 & 4 [[fig:Tool-Positions-1-2-3-4]] +.Tool Positions 1, 2, 3 & 4[[fig:Tool-Positions-1-2-3-4]] image::images/tool_pos_1.png[] image::images/tool_pos_2.png[] image::images/tool_pos_3.png[] image::images/tool_pos_4.png[] -.Tool Positions 5, 6, 7 & 8 [[fig:Tool-Positions-5-6-7-8]] +.Tool Positions 5, 6, 7 & 8[[fig:Tool-Positions-5-6-7-8]] image::images/tool_pos_5.png[] image::images/tool_pos_6.png[] diff --git a/docs/src/lathe/lathe-user_de.txt b/docs/src/lathe/lathe-user_de.txt index b9cfd0722..8f32070f3 100644 --- a/docs/src/lathe/lathe-user_de.txt +++ b/docs/src/lathe/lathe-user_de.txt @@ -1,4 +1,6 @@ -= Lathe Specifics[[cha:Lathe-Specifics]](((Lathe-Specifics))) +[[cha:Lathe-Specifics]] += Lathe Specifics +(((Lathe-Specifics))) This chapter attempts to bring together all the lathe specific information and is currently under construction. @@ -63,14 +65,14 @@ image::images/tool_positions.png[] In AXIS the following figures show what the Tool Positions look like, as entered in the tool table. -.Tool Positions 1, 2, 3 & 4 [[fig:Tool-Positions-1-2-3-4]] +.Tool Positions 1, 2, 3 & 4[[fig:Tool-Positions-1-2-3-4]] image::images/tool_pos_1.png[] image::images/tool_pos_2.png[] image::images/tool_pos_3.png[] image::images/tool_pos_4.png[] -.Tool Positions 5, 6, 7 & 8 [[fig:Tool-Positions-5-6-7-8]] +.Tool Positions 5, 6, 7 & 8[[fig:Tool-Positions-5-6-7-8]] image::images/tool_pos_5.png[] image::images/tool_pos_6.png[] diff --git a/docs/src/lathe/lathe-user_es.txt b/docs/src/lathe/lathe-user_es.txt index b9cfd0722..8f32070f3 100644 --- a/docs/src/lathe/lathe-user_es.txt +++ b/docs/src/lathe/lathe-user_es.txt @@ -1,4 +1,6 @@ -= Lathe Specifics[[cha:Lathe-Specifics]](((Lathe-Specifics))) +[[cha:Lathe-Specifics]] += Lathe Specifics +(((Lathe-Specifics))) This chapter attempts to bring together all the lathe specific information and is currently under construction. @@ -63,14 +65,14 @@ image::images/tool_positions.png[] In AXIS the following figures show what the Tool Positions look like, as entered in the tool table. -.Tool Positions 1, 2, 3 & 4 [[fig:Tool-Positions-1-2-3-4]] +.Tool Positions 1, 2, 3 & 4[[fig:Tool-Positions-1-2-3-4]] image::images/tool_pos_1.png[] image::images/tool_pos_2.png[] image::images/tool_pos_3.png[] image::images/tool_pos_4.png[] -.Tool Positions 5, 6, 7 & 8 [[fig:Tool-Positions-5-6-7-8]] +.Tool Positions 5, 6, 7 & 8[[fig:Tool-Positions-5-6-7-8]] image::images/tool_pos_5.png[] image::images/tool_pos_6.png[] diff --git a/docs/src/lathe/lathe-user_fr.txt b/docs/src/lathe/lathe-user_fr.txt index 078f9ad3a..1944eaf11 100644 --- a/docs/src/lathe/lathe-user_fr.txt +++ b/docs/src/lathe/lathe-user_fr.txt @@ -1,4 +1,6 @@ -= Tour spécifiques[[cha:Tour-Specifiques]](((Tour-Specifiques))) +[[cha:Tour-Specifiques]] += Tour spécifiques +(((Tour-Specifiques))) Ce chapitre va regrouper les informations spécifiques aux tours, il est en cours de rédaction. From 509aa8653473245c36bd4b90f68d499aad6588d5 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 19:23:29 -0500 Subject: [PATCH 0018/1024] Docs: Minor fixes to kinematics (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/motion/kinematics.txt | 6 ++++-- docs/src/motion/kinematics_de.txt | 6 ++++-- docs/src/motion/kinematics_es.txt | 6 ++++-- docs/src/motion/kinematics_fr.txt | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/src/motion/kinematics.txt b/docs/src/motion/kinematics.txt index 7d3f8932f..4834f5f5e 100644 --- a/docs/src/motion/kinematics.txt +++ b/docs/src/motion/kinematics.txt @@ -111,7 +111,8 @@ and BD, and by the Cartesian coordinates Dx, Dy. The job of the kinematics is to transform from joint lengths (AD, BD) to Cartesian coordinates (Dx, Dy) and vice-versa. -=== Forward transformation [[sub:Forward-transformation]] +[[sub:Forward-transformation]] +=== Forward transformation To transform from joint space into Cartesian space we will use some trigonometry rules (the right triangles determined by the points (0,0), @@ -150,7 +151,8 @@ Translated to actual code: return 0; -=== Inverse transformation [[sub:Inverse-transformation]] +[[sub:Inverse-transformation]] +=== Inverse transformation The inverse kinematics is lots easier in our example, as we can write it directly: diff --git a/docs/src/motion/kinematics_de.txt b/docs/src/motion/kinematics_de.txt index 7d3f8932f..4834f5f5e 100644 --- a/docs/src/motion/kinematics_de.txt +++ b/docs/src/motion/kinematics_de.txt @@ -111,7 +111,8 @@ and BD, and by the Cartesian coordinates Dx, Dy. The job of the kinematics is to transform from joint lengths (AD, BD) to Cartesian coordinates (Dx, Dy) and vice-versa. -=== Forward transformation [[sub:Forward-transformation]] +[[sub:Forward-transformation]] +=== Forward transformation To transform from joint space into Cartesian space we will use some trigonometry rules (the right triangles determined by the points (0,0), @@ -150,7 +151,8 @@ Translated to actual code: return 0; -=== Inverse transformation [[sub:Inverse-transformation]] +[[sub:Inverse-transformation]] +=== Inverse transformation The inverse kinematics is lots easier in our example, as we can write it directly: diff --git a/docs/src/motion/kinematics_es.txt b/docs/src/motion/kinematics_es.txt index 7d3f8932f..4834f5f5e 100644 --- a/docs/src/motion/kinematics_es.txt +++ b/docs/src/motion/kinematics_es.txt @@ -111,7 +111,8 @@ and BD, and by the Cartesian coordinates Dx, Dy. The job of the kinematics is to transform from joint lengths (AD, BD) to Cartesian coordinates (Dx, Dy) and vice-versa. -=== Forward transformation [[sub:Forward-transformation]] +[[sub:Forward-transformation]] +=== Forward transformation To transform from joint space into Cartesian space we will use some trigonometry rules (the right triangles determined by the points (0,0), @@ -150,7 +151,8 @@ Translated to actual code: return 0; -=== Inverse transformation [[sub:Inverse-transformation]] +[[sub:Inverse-transformation]] +=== Inverse transformation The inverse kinematics is lots easier in our example, as we can write it directly: diff --git a/docs/src/motion/kinematics_fr.txt b/docs/src/motion/kinematics_fr.txt index 169d82425..889053311 100644 --- a/docs/src/motion/kinematics_fr.txt +++ b/docs/src/motion/kinematics_fr.txt @@ -111,7 +111,8 @@ La tâche de la cinématique consistera à transformer les longueurs des jointures en (AD, BD) en coordonnées Cartésiennes (Dx, Dy) et vice-versa. -=== Transformation avant [[sub:Forward-transformation]] +[[sub:Forward-transformation]] +=== Transformation avant Pour effectuer la transformation de l'espace jointure en espace Cartésien nous allons utiliser quelques règles de trigonomètrie (le @@ -143,7 +144,8 @@ Traduction en code: double AD2 = joints[0] * joints[0]; return 0; -=== Transformation inverse [[sub:Inverse-transformation]] +[[sub:Inverse-transformation]] +=== Transformation inverse La cinématique inverse est beaucoup plus simple dans notre exemple, de sorte que nous pouvons l'écrire directement: From 6cf37d1d21952c77ed12dd1546dbd724435f8056 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 19:28:37 -0500 Subject: [PATCH 0019/1024] Docs: Minor fixes to tweaking_steppers (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/motion/tweaking_steppers.txt | 4 +++- docs/src/motion/tweaking_steppers_de.txt | 4 +++- docs/src/motion/tweaking_steppers_es.txt | 4 +++- docs/src/motion/tweaking_steppers_fr.txt | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/src/motion/tweaking_steppers.txt b/docs/src/motion/tweaking_steppers.txt index 807c1d851..844edc23f 100644 --- a/docs/src/motion/tweaking_steppers.txt +++ b/docs/src/motion/tweaking_steppers.txt @@ -1,4 +1,6 @@ -= Stepper Tuning [[cha:Stepper-Tuning]] +[[cha:Stepper-Tuning]] += Stepper Tuning +(((Stepper Tuning))) == Getting the most out of Software Stepping diff --git a/docs/src/motion/tweaking_steppers_de.txt b/docs/src/motion/tweaking_steppers_de.txt index 807c1d851..844edc23f 100644 --- a/docs/src/motion/tweaking_steppers_de.txt +++ b/docs/src/motion/tweaking_steppers_de.txt @@ -1,4 +1,6 @@ -= Stepper Tuning [[cha:Stepper-Tuning]] +[[cha:Stepper-Tuning]] += Stepper Tuning +(((Stepper Tuning))) == Getting the most out of Software Stepping diff --git a/docs/src/motion/tweaking_steppers_es.txt b/docs/src/motion/tweaking_steppers_es.txt index 807c1d851..844edc23f 100644 --- a/docs/src/motion/tweaking_steppers_es.txt +++ b/docs/src/motion/tweaking_steppers_es.txt @@ -1,4 +1,6 @@ -= Stepper Tuning [[cha:Stepper-Tuning]] +[[cha:Stepper-Tuning]] += Stepper Tuning +(((Stepper Tuning))) == Getting the most out of Software Stepping diff --git a/docs/src/motion/tweaking_steppers_fr.txt b/docs/src/motion/tweaking_steppers_fr.txt index 67a8549db..4858b530b 100644 --- a/docs/src/motion/tweaking_steppers_fr.txt +++ b/docs/src/motion/tweaking_steppers_fr.txt @@ -1,4 +1,6 @@ +[[cha:Reglages-de-pas-a-pas]] = Réglages des pas à pas +(((Réglages des pas à pas))) == Obtenir le meilleur pilotage logiciel possible From 9d7bfde606cc380dce41c43fa6a07d1dc0798d76 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 19:32:06 -0500 Subject: [PATCH 0020/1024] Docs: Minor fixes to stepper_quickstart (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/quickstart/stepper_quickstart.txt | 8 ++++++-- docs/src/quickstart/stepper_quickstart_de.txt | 8 ++++++-- docs/src/quickstart/stepper_quickstart_es.txt | 8 ++++++-- docs/src/quickstart/stepper_quickstart_fr.txt | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/docs/src/quickstart/stepper_quickstart.txt b/docs/src/quickstart/stepper_quickstart.txt index 7d049bc29..f460c2e0d 100644 --- a/docs/src/quickstart/stepper_quickstart.txt +++ b/docs/src/quickstart/stepper_quickstart.txt @@ -14,13 +14,17 @@ which could cause missed steps when running a CNC machine. This is the first thing you need to do. Follow the instructions in section (<>) to run the latency test. -== Sherline [[sec:Sherline]](((Sherline))) +[[sec:Sherline]] +== Sherline +(((Sherline))) If you have a Sherline several predefined configurations are provided. This is on the main menu CNC/EMC then pick the Sherline configuration that matches yours and save a copy. -== Xylotex [[sec:Xylotex]](((Xylotex))) +[[sec:Xylotex]] +== Xylotex +(((Xylotex))) If you have a Xylotex you can skip the following sections and go straight to the Stepper Config Wizard in Section(<>). diff --git a/docs/src/quickstart/stepper_quickstart_de.txt b/docs/src/quickstart/stepper_quickstart_de.txt index 7d049bc29..f460c2e0d 100644 --- a/docs/src/quickstart/stepper_quickstart_de.txt +++ b/docs/src/quickstart/stepper_quickstart_de.txt @@ -14,13 +14,17 @@ which could cause missed steps when running a CNC machine. This is the first thing you need to do. Follow the instructions in section (<>) to run the latency test. -== Sherline [[sec:Sherline]](((Sherline))) +[[sec:Sherline]] +== Sherline +(((Sherline))) If you have a Sherline several predefined configurations are provided. This is on the main menu CNC/EMC then pick the Sherline configuration that matches yours and save a copy. -== Xylotex [[sec:Xylotex]](((Xylotex))) +[[sec:Xylotex]] +== Xylotex +(((Xylotex))) If you have a Xylotex you can skip the following sections and go straight to the Stepper Config Wizard in Section(<>). diff --git a/docs/src/quickstart/stepper_quickstart_es.txt b/docs/src/quickstart/stepper_quickstart_es.txt index 7d049bc29..f460c2e0d 100644 --- a/docs/src/quickstart/stepper_quickstart_es.txt +++ b/docs/src/quickstart/stepper_quickstart_es.txt @@ -14,13 +14,17 @@ which could cause missed steps when running a CNC machine. This is the first thing you need to do. Follow the instructions in section (<>) to run the latency test. -== Sherline [[sec:Sherline]](((Sherline))) +[[sec:Sherline]] +== Sherline +(((Sherline))) If you have a Sherline several predefined configurations are provided. This is on the main menu CNC/EMC then pick the Sherline configuration that matches yours and save a copy. -== Xylotex [[sec:Xylotex]](((Xylotex))) +[[sec:Xylotex]] +== Xylotex +(((Xylotex))) If you have a Xylotex you can skip the following sections and go straight to the Stepper Config Wizard in Section(<>). diff --git a/docs/src/quickstart/stepper_quickstart_fr.txt b/docs/src/quickstart/stepper_quickstart_fr.txt index d3a6807a4..084e76dd5 100644 --- a/docs/src/quickstart/stepper_quickstart_fr.txt +++ b/docs/src/quickstart/stepper_quickstart_fr.txt @@ -15,13 +15,17 @@ CNC. Ce test est la toute première chose à faire pour valider un PC. Pour le lancer, suivre les instructions de la section (<>). -== Sherline[[sec:Sherline]](((Sherline))) +[[sec:Sherline]] +== Sherline +(((Sherline))) Si vous avez un Sherline plusieurs configurations prédéfinies sont fournies. Ceci est le menu principal du CNC/EMC puis choisissez la configuration Sherline que le vôtre allumettes et enregistrer une copie. -== Xylotex[[sec:Xylotex]](((Xylotex))) +[[sec:Xylotex]] +== Xylotex +(((Xylotex))) Si vous avez un Xylotex vous pouvez sauter les sections suivantes et aller directement à l'Assistant de configuration pas à pas dans la section (<>). From 7cb1cceefa39a334d3d10775dd2359501fa39283 Mon Sep 17 00:00:00 2001 From: Kim Kirwan Date: Sat, 10 Sep 2011 22:00:22 -0500 Subject: [PATCH 0021/1024] Docs: Minor fixes to gladevcp (4-lang) Applying psha's cure for titles in Asciidoc. Signed-off-by: Kim Kirwan --- docs/src/gui/gladevcp.txt | 58 +- docs/src/gui/gladevcp_de.txt | 1094 ++++++++++++++++++++++------------ docs/src/gui/gladevcp_es.txt | 1094 ++++++++++++++++++++++------------ docs/src/gui/gladevcp_fr.txt | 1094 ++++++++++++++++++++++------------ 4 files changed, 2161 insertions(+), 1179 deletions(-) diff --git a/docs/src/gui/gladevcp.txt b/docs/src/gui/gladevcp.txt index a366d0c5c..4da26da27 100644 --- a/docs/src/gui/gladevcp.txt +++ b/docs/src/gui/gladevcp.txt @@ -163,7 +163,8 @@ GladeVCP Programming>> section. == Creating and Integrating a Glade user interface -=== Prerequisite: Glade installation [[gladevcp:Prerequisites]] +[[gladevcp:Prerequisites]] +=== Prerequisite: Glade installation To view or modify Glade UI files, you need glade installed - it is not needed just to run a GladeVCP panel. If the glade command is ḿissing, install it with the command: @@ -443,7 +444,8 @@ widget, that is, has been created by the +hal_glib.GPin(halcomp.newpin(,,)+ method (see GladeVCP Programming for an example). -=== The hal-pin-changed signal [[gladevcp::hal-pin-changed_signal]] +[[gladevcp::hal-pin-changed_signal]] +=== The hal-pin-changed signal Event-driven programming means that the UI tells your code when "something happens" - through a callback, like when a button was pressed. The @@ -461,7 +463,10 @@ image::images/hal-pin-change-66.png[] The example in +configs/gladevcp/examples/complex+ shows how this is handled in Python. -=== Buttons [[gladevcp:HAL_Button]] [[gladevcp:HAL_RadioButton]] [[gladevcp:HAL_CheckButton]] +[[gladevcp:HAL_Button]] +[[gladevcp:HAL_RadioButton]] +[[gladevcp:HAL_CheckButton]] +=== Buttons This group of widgets are derived from various Gtk buttons and consists of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton @@ -501,7 +506,9 @@ See +configs/gladevcp/by-widget/radiobutton+ for a GladeVCP application and UI file for working with radio buttons. ====================================== -=== Scales [[gladevcp:HAL_HScale]] [[gladevcp:HAL_VScale]] +[[gladevcp:HAL_HScale]] +[[gladevcp:HAL_VScale]] +=== Scales HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectively. They have one output FLOAT pin with name equal to widget @@ -517,7 +524,8 @@ Example HAL_HScale: image:images/hscale.png[] . -=== SpinButton [[gladevcp:HAL_SpinButton]] +[[gladevcp:HAL_SpinButton]] +=== SpinButton HAL SpinButton is derived from GtkSpinButton and holds two pins: @@ -533,7 +541,8 @@ Example SpinButton: image:images/spinbutton.png[] . -=== Label [[gladevcp:HAL_Label]] +[[gladevcp:HAL_Label]] +=== Label HAL_Label is a simple widget based on GtkLabel which represents a HAL pin value in a user-defined format. @@ -551,7 +560,9 @@ text_template:: Example: +Distance: %.03f+ will display the text and the pin value with 3 fractional digits padded with zeros for a FLOAT pin. -=== Containers: HAL_HBox and HAL_Table [[gladevcp:HAL_HBox]] [[gladevcp:HAL_Table]] +[[gladevcp:HAL_HBox]] +[[gladevcp:HAL_Table]] +=== Containers: HAL_HBox and HAL_Table Compared to their Gtk counterparts they have one input BIT pin which controls if their child widgets are sensitive or not. If the pin is low @@ -561,7 +572,8 @@ then child widgets are inactive which is the default. If you find some part of your GladeVCP application is 'grayed out' (insensitive), see whether a container's pin is unset. -=== LED [[gladevcp:HAL_LED]] +[[gladevcp:HAL_LED]] +=== LED The hal_led simulates a real indicator LED. It has a single input BIT pin which controls it's state: ON or OFF. LEDs have several properties @@ -605,7 +617,8 @@ Example LEDs: image:images/leds.png[] . -=== ProgressBar [[gladevcp:HAL_ProgressBar]] +[[gladevcp:HAL_ProgressBar]] +=== ProgressBar [NOTE] This widget might go away. Use the HAL_HBar and HAL_VBar widgets @@ -640,7 +653,8 @@ Example HAL_ProgressBar: image:images/progressbar2.png[] . -=== ComboBox [[gladevcp:HAL_ComboBox]] +[[gladevcp:HAL_ComboBox]] +=== ComboBox HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a value from a dropdown list. @@ -674,7 +688,9 @@ mode to pick a float value from the ListStore. If you're confused like me about how to edit ComboBox ListStores and CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. -=== Bars [[gladevcp:HAL_HBar]] [[gladevcp:HAL_VBar]] +[[gladevcp:HAL_HBar]] +[[gladevcp:HAL_VBar]] +=== Bars HAL Bar and VBar widgets for horizontal and vertical bars representing float values. They have one input FLOAT hal pin. Both bars have the @@ -718,7 +734,8 @@ Vertical bar: image:images/vscale.png[] . -=== Meter [[gladevcp:HAL_Meter]] +[[gladevcp:HAL_Meter]] +=== Meter HAL Meter is a widget similar to PyVCP meter - it represents a float value and has one input FLOAT hal pin. HAL Meter has the following properties: @@ -754,7 +771,8 @@ Example HAL Meters: image:images/hal_meter.png[] . -=== Gremlin tool path preview for .ngc files [[gladevcp:HAL_Gremlin]] +[[gladevcp:HAL_Gremlin]] +=== Gremlin tool path preview for .ngc files Gremlin is a plot preview widget similar to the Axis preview window. It assumes a running EMC environment like Axis or Touchy. To connect to @@ -980,8 +998,8 @@ signals: - -== GladeVCP Programming [[gladevcp:GladeVCP_Programming]] +[[gladevcp:GladeVCP_Programming]] +== GladeVCP Programming === User Defined Actions @@ -1351,7 +1369,8 @@ is detected, a console message will hint about that happened, and the bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini files overwrite earlier .BAD files. -=== Adding HAL pins [[gladevcp:Adding_HAL_pins]] +[[gladevcp:Adding_HAL_pins]] +=== Adding HAL pins If you need HAL pins which are not associated with a specific HAL widget, add them as follows: @@ -1433,10 +1452,13 @@ My GladeVCP program starts, but no window appears where I expect it to be?:: with 'gladevcp ' and its window has reasonable geometry, it should come up in Axis properly as well. -I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is invalid or out of range for property `led-blink-rate' of type `gint'?:: +I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. +It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is +invalid or out of range for property `led-blink-rate' of type `gint'?:: This seems to be a glade bug. Just type over the blink rate field, and save again - this works for me. -My gladevcp panel in Axis doesnt save state when I close Axis,although I defined an on_destroy handler linked to the window destroy signal:: +My gladevcp panel in Axis doesnt save state when I close Axis, although I defined +an on_destroy handler linked to the window destroy signal:: Very likely this handler is linked to window1, which due to reparenting isnt usable for this purpose. Please link the on_destroy handler to the destroy signal of an interior diff --git a/docs/src/gui/gladevcp_de.txt b/docs/src/gui/gladevcp_de.txt index 8413b6c63..9752cfb80 100644 --- a/docs/src/gui/gladevcp_de.txt +++ b/docs/src/gui/gladevcp_de.txt @@ -1,133 +1,338 @@ = GladeVCP -GladeVCP is an EMC2 component which adds the ability to add a virtual -control panel to EMC user interfaces like Axis or Touchy. It is similar -to PyVCP; whereas PyVCP panels are created by editing an XML file -manually, GladeVCP uses the Glade WYSIWYG user interface editor. -Therefore, it's faster and easier to create visually pleasing panels -with GladeVCP. +// TODO: +// - manual-example.ui layout - really bad +// - restructure faq/troubleshooting/notes section +// - check wiki vs docs +// - check other gladevcp docs branch against this -[NOTE] -Until GladeVCP is fully integrated with EMC2 please refer to the EMC -wiki page GladeVcpSetup for instructions on installing and setting up -GladeVCP. -== Creating your first GladeVCP UI component +:ini: {basebackend@docbook:'':ini} +:hal: {basebackend@docbook:'':hal} +:ngc: {basebackend@docbook:'':ngc} +// begin a listing of ini/hal/ngc files like so: +//[source,{ini}] +//[source,{hal}] +//[source,{ngc}] -Either modify an existing UI component, or start a new one by -running Glade. In the left tab, expand the 'HAL Python' components. -Create a window as top level window from the 'Toplevels' section, which -by default will be named window1. Leave that name as is - GladeVCP -assumes the top level window has this name. Add a HAL_Box or a -HAL_Table from 'HAL Python' to the frame, and pick and place some -elements like LED, button, etc., in its box. -This will look like so: +== What is GladeVCP? -.Glade +GladeVCP is an EMC2 component which adds the ability to add a new user +interface panel to EMC user interfaces like Axis or Touchy. Unlike +PyVCP, GladeVCP is not limitied to displaying and setting HAL pins, as +arbitrary actions can be executed in Python code - in fact, a +complete EMC2 user interface could be built with GladeVCP and Python. -image::images/glade-myui.png[] +GladeVCP users the http://glade.gnome.org/[Glade] WYSIWYG user +interface editor, which makes it easy to create visually pleasing +panels. It relies on the http://www.pygtk.org/[PyGTK] bindings to the +rich http://www.gtk.org/[GTK+] widget set, and in fact all of these +may be used in a GladeVCP application - not just the specialized +widgets for interacting with HAL and EMC, which are documented here. -Select File->Save as, give it a name like 'myui.ui' and make sure it's -saved as 'GtkBuilder' file (radio button left bottom corner in Save -dialog). The convention for GtkBuilder file extension is '.ui'. You can -now run it with: - gladevcp myui.ui +=== PyVCP versus GladeVCP at a glance -== Integrating the example UI into Axis +Both support the creation of panels with 'HAL widgets' - user +interface elements like LED's, buttons, sliders etc whose values are +linked to a HAL pin, which in turn interfaces to the rest of EMC2. -While you could run your UI as a separate top level window -side-by-side with Axis, having it within the Axis frame as a tab -side-by-side with the Preview and DRO tabs is more elegant. To do so, -edit your .ini file and add two variables to the DISPLAY section of ini -file: +*PyVCP:* - EMBED_TAB_NAME = GladeVCP + - widget set: uses TkInter widgets + - user interface creation: "edit XML file / run result / evaluate looks" cycle + - no support for embedding user-defined event handling + - no EMC2 interaction beyond HAL pin I/O supported - EMBED_TAB_COMMAND = - gladevcp -c gladevcp-test -w {XID} -H gladevcp-test.hal +*GladeVCP:* -Try it out by running Axis - there should be a new tab called -'GladeVCP' near the DRO tab. Select that tab, you should see the -example panel nicely fit within Axis like so: + - widget set: relies on the http://www.gtk.org/[GTK+] widget set. + - user interface creation: uses the http://glade.gnome.org/[Glade] WYSIWYG user interface editor + - any HAL pin change may be directed to call back into a user-defined Python event handler + - any GTK signal (key/button press, window, I/O, timer, network events) may be associated with user-defined handlers in Python + - direct EMC2 interaction: arbitrary command execution, like initiating MDI +commands to call a G-code subroutine, plus support for status change operations through Action Widgets LINKHERE + - several independent GladeVCP panels may be run in different tabs + - separation of user interface appearance and functionality: change appearance without touching any code -.GladeVCP in Axis +== A Quick Tour with the Example Panel -image::images/axis-gladevcp.png[] +GladeVCP panel windows may be run in three different setups: -== Integrating into Touchy + - always visible integrated into Axis at the right side, exactly like PyVCP panels + - as a tab in Axis and Touchy; in Axis this would create a third tab besides the Preview and DRO tabs which must be raised explicitly + - as a standalone toplevel window, which can be iconifyed/deiconified independent of the main window. -Touchy also understands `EMBED_TAB_NAME` and `EMBED_TAB_COMMAND` variables -from INI file so instructions for it are equal to Axis. +Run the sample GladeVCP panel integrated into Axis like PyVCP as follows: -== Axis: linking HAL pins in the example UI + $ cd configs/sim + $ emc gladevcp_panel.ini -To be useful, the pins in your UI need to be linked to the rest of -your setup. Usually this is done by running one or several HAL files -through the HALFILE and POSTGUI_HALFILE statements in the HAL section -of your .ini file. +image::images/example-panel-small.png[] -For GladeVCP components this not currently possible because all of -these HALFILE statements are run before GladeVCP is started, so linking -to your UI's pins from there would refer to pins which do not yet -exist. You therefore need to prepare a file of all HAL commands which -refer to / link with your UI's pins and pass it to the GladeVCP command -in the `EMBED_TAB_COMMAND` statement like so: +Run the same panel, but as a tab inside Axis: ------------------------------------------------------------------------- -EMBED_TAB_COMMAND = gladevcp -c gladevcp-test -H gladevcp-test.hal \ - -w {XID} gladevcp-test.glade ------------------------------------------------------------------------- + $ cd configs/sim + $ emc gladevcp_tab.ini -There is an example `gladevcp-test.hal` file in the -`emc2-dev/lib/python/gladevcp` directory. Before using it in the -`EMBED_TAB_NAME` statement, make sure the loadusr statements at the top -are commented out. +image::images/example-tabbed-small.png[] -== Adding custom user callbacks in Python +To run this panel as a standalone toplevel window besides Axis, just +start Axis in the background and start gladevcp as follows: -This is just a very minimal example to convey the idea - for a -detailed description on how to program a GladeVCP application, see -GladeVCPprogramming and HalWidgets. + $ cd configs/sim + $ emc axis.ini & + $ gladevcp -c gladevcp -u ../gladevcp/hitcounter.py -H ../gladevcp/manual-example.hal ../gladevcp/manual-example.ui -GladeVCP can not only manipulate or display HAL pins, you can also -write regular event handlers in Python. This could be used, among -others, to execute MDI commands. Here's how you do it: +image::images/example-float-small.png[] -Write a Python module like so and save as e.g. handlers.py: +To run this panel inside 'Touchy': -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----------------------------------- + $ cd configs/sim + $ emc gladevcp_touchy.ini -In Glade, define a button or HAL button, select the 'Signals' tab, and -in the GtkButton properties select the 'pressed' line. Enter -'on_button_press' there, and save the Glade file. +image::images/touchy-tab-33.png[] -Then add the option '-u handlers.py' to the gladevcp command line. If -your event handlers are spread over several files, just add multiple -'-u ' options. -Now, pressing the button should change its label since it's set in the -callback function. +Functionally these setups are identical - they only differ in screen +real estate requirements and visibility. Since it is possible to run +several GladeVCP components in parallel (with different HAL module +names), mixed setups are possible as well - for instance a panel on +the right hand side, and one or more tabs for less-frequently used +parts of the interface. -What the -u flag does is: all Python functions in this file are -collected and setup as potential callback handlers for your Gtk widgets -- they can be referenced from Glade 'Signals' tabs. The callback -handlers are called with the particular object instance as parameter, -like the GtkButton instance above, so you can apply any GtkButton -method from there. +=== Exploring the example panel -Or do some more useful stuff, like calling an MDI command! +While running Axis, explore 'Show HAL Configuration' - you will find +the 'gladevcp' HAL component and may observe their pin values while +interacting with the widgets in the panel. The HAL setup can be +found in 'configs/gladevcp/manual-example.hal'. + +The example panel has two frames at the bottom. The panel is +configured so that resetting ESTOP activates the Settings frame and +turning the machine on enables the Commands frame at the bottom. The HAL +widgets in the Settings frame are linked to LEDs and labels in the +'Status' frame, and to the current and prepared tool number - play +with them to see the effect. Executing the 'T' and 'M6' +commands in the MDI window will change the current and prepared tool +number fields. + +The buttons in the 'Commands' frame are 'MDI Action widgets' - +pressing them will execute an MDI command in the interpreter. The +third button 'Execute Oword subroutine' is an advanced example - it +takes several HAL pin values from the 'Settings' frame, and passes +them as parameters to the Oword subroutine. The actual parameters +received by the routine are displayed by '(DEBUG, )' commands - see +'configs/gladevcp/nc_files/oword.ngc' for the subroutine body. + +To see how the panel is integrated into Axis, see the +'[DISPLAY]GLADEVCP' statements in gladevcp_panel.ui, and the +'[DISPLAY]EMBED*' and '[HAL]POSTGUI_HALFILE' statements in +gladevcp_tab.ini respectively. + +=== Exploring the User Interface description + +The user interface is created with the glade UI editor - to explore +it, you need to have <>. To +edit the user interface, run the command + + $ glade configs/gladevcp/manual-example.ui + +The center window shows the appearance of the UI. All user +interface objects and support objects are found in the right top +window, where you can select a specific widget (or by clicking on it +in the center window). The properties of the selected widget are +displayed, and can be changed, in the right bottom window. + +To see how MDI commands are passed from the MDI Action widgets, +explore the widgets listed under 'Actions' in the top right window, +and in the right bottom window, unter the 'General' tab, the 'MDI +command' property. + +=== Exploring the Python callback +See how a Python callback is integrated into the example: + + - in glade, see the +hits+ label widget (a plain GTK+ widget) + - in the +button1+ widget, look at the 'Signals' tab, and find the signal 'pressed' associated with the handler 'on_button_press' + - in ../gladevcp/hitcounter.py, see the method 'on_button_press' and see how it sets the label property in the 'hits' object + +The is just touching upon the concept - the callback mechanism will be +handled in more detail in the <> section. + +== Creating and Integrating a Glade user interface + +[[gladevcp:Prerequisites]] +=== Prerequisite: Glade installation +To view or modify Glade UI files, you need glade installed - it is not +needed just to run a GladeVCP panel. If the glade command is ḿissing, +install it with the command: + + $ sudo apt-get install glade + +Verify the version number to be greater than 3.6.7: + + $ glade --version + glade3 3.6.7 + +=== Running Glade to create a new user interface +This section just outlines the initial EMC2-specific steps. For more +information and a tutorial on glade, see http://glade.gnome.org. Some +glade tips & tricks may also be found on +http://www.youtube.com[youtube]. + +Either modify an existing UI component by running +glade .ui+ +or start a new one by just running the +glade+ command from the shell. + +- If EMC2 was not installed from a package, the EMC2 shell environment needs to be set up with ++. /scripts/emc-environment+, otherwise glade won't find the EMC2-specific widgets. +- When asked for unsaved Preferences, just accept the defaults and hit 'Close'. +- From 'Toplevel' (left pane), pick 'Window' (first icon) as top level window, which +by default will be named 'window1'. Do not change this name - GladeVCP relies on it. +- In the left tab, scroll down and expand 'HAL Python' and 'EMC Actions'. +- add a container like a HAL_Box or a HAL_Table from 'HAL Python' to the frame +- pick and place some elements like LED, button, etc. within a container + +This will look like so: + +image::images/glade-manual-small.png[] + +Glade tends to write a lot of messages to the shell window, which +mostly can be ignored. Select 'File->Save as', give it a name like +'myui.ui' and make sure it's saved as 'GtkBuilder' file (radio button +left bottom corner in Save dialog). GladeVCP will also process the +older 'libglade' format correctly but there is no point in using it. The +convention for GtkBuilder file extension is '.ui'. + +=== Testing a panel +You're now ready to give it a try (while EMC2, e.g. Axis is running) it with: + + gladevcp myui.ui + +GladeVCP creates a HAL component named like the basename of the UI +file - 'myui' in this case - unless overriden by the +-c + option. If running Axis, just try 'Show HAL configuration' and +inspect its pins. + +You might wonder why widgets contained a 'HAL_Hbox' or 'HAL_Table' appear +greyed out (inactive). HAL containers have an associated HAL pin which +is off by default, which causes all contained widgets to render +inactive. A common use case would be to associate these container HAL +pins with +halui.machine.is-on+ or one of the +halui.mode.+ signals, +to assure some widgets appear active only in a certain state. + +To just activate a container, execute the HAL command +setp gladevcp. 1+. + +=== Preparing the HAL command file +The suggested way of linking HAL pins in a GladeVCP panel is to +collect them in a separate file with extension +.hal+. This file is +passed via the +POSTGUI_HALFILE=+ option in the +HAL+ section of your +ini file. + +CAUTION: Do not add the GladeVCP HAL command file to the Axis +[HAL]HALFILE=+ ini +section, this will not have the desired effect - see the following sections. + +=== Integrating into Axis like PyVCP + +Place the GladeVCP panel in the righthand side panel by specifying the +following in the ini file: + +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel where PyVCP used to live: +GLADEVCP= -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +The HAL component name of a GladeVCP application started with the the GLADEVCP option is fixed: +gladevcp+. +The command line actually run by Axis in the above configuration is as follows: -== Gladevcp command line options + halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -See also 'man gladevcp' . This is the usage message when you run -'gladevcp -h': +This means you may add arbitrary gladevcp options here, as long as +they dont collide with the above command line options. + +[NOTE] +The +[RS274NGC]SUBROUTINE_PATH=+ option is only set so the example +panel will find the Oword subroutine for the MDI Command widget. It +might not be needed in your setup. + +=== Integrating into Axis as a tab next to DRO and Preview + +To do so, edit your .ini file and add to the DISPLAY and HAL sections of ini +file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab next to Preview/DRO: +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the 'halcmd loadusr' way of starting the tab command - this +assures that 'POSTGUI_HALFILE' will only be run after the HAL +component is ready. In rare cases you might run a a command here which +uses a tab but does not have an associated HAL component. Such a +command can be started without 'halcmd loadusr', and this signifies to +Axis that it does not have to wait for a HAL component since there is +none. + +When changing the component name in the above example, note that the +names used in +-Wn + and +-c + must be +identical. + +Try it out by running Axis - there should be a new tab called +'GladeVCP demo' near the DRO tab. Select that tab, you should see the +example panel nicely fit within Axis. + +[NOTE] +Make sure the UI file is the last option passed to GladeVCP in +both the +GLADEVCP=+ and +EMBED_TAB_COMMAND=+ statements. + +=== Integrating into Touchy +To do add a GladeVCP tab to 'Touchy', edit your .ini file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py -H ../gladevcp/gladevcp-touchy.hal ../gladevcp/manual-example.ui + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the following differences to the Axis tab setup: + + - The HAL command file is slightly modified since 'Touchy' does not + use the 'halui' components so its signals are not available and some + shortcuts have been taken. + + - there is no 'POSTGUI_HALFILE=' ini option, but passing the HAL command file on the 'EMBED_TAB_COMMAND=' line is ok + + - the 'halcmd loaduser -Wn ...' incantation is not needed. + +== GladeVCP command line options + +See also 'man gladevcp' . These are the gladevcp command line options: Usage: gladevcp [options] myfile.ui @@ -136,75 +341,41 @@ Options: -h, --help:: show this help message and exit --c NAME:: +-c NAME:: Set component name to NAME. Default is base name of UI file -d:: Enable debug output --g GEOMETRY:: - Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET.Values are in pixel units, - XOFFSET/YOFFSET is referenced from top left of screen use -g - WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just - position -H FILE execute HAL statements from FILE with halcmd after the +-g GEOMETRY:: + Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET. Values are in pixel units, + XOFFSET/YOFFSET is referenced from top left of screen. + Use -g WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just + position + +-H FILE:: + execute hal statements from FILE with halcmd after the component is set up and ready --x XID:: +-m MAXIMUM:: + force panel window to maximize. Together with the -g geometry option + one can move the panel to a second monitor and force it to use all of the screen + +-t THEME:: + set gtk theme. Default is system theme. Different panels can have different themes. + An example theme can be found in the http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?GTK_Themes[EMC Wiki]. + +-x XID:: Re-parent GladeVCP into an existing window XID instead of creating a new top level window --u FILE:: +-u FILE:: Use File's as additional user defined modules with handlers --U USEROPT:: +-U USEROPT:: pass USEROPTs to Python modules -== Troubleshooting - - - make sure your have the development version of EMC2 installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a /usr/lib/python2.6/dist-packages/hal.so - file lying around besides the newer - /usr/lib/python2.6/dist-packages/_hal.so (note underscore); if yes, - remove the hal.so file. It has been superseded by hal.py in the same - directory and thus creates confusion. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -= GladeVCP Programming - -== PyVCP to GladeVCP - -Stock GladeVCP can be used pretty much in the style of PyVCP - the -major difference being that in the case of GladeVCP, the Glade user -interface editor is used to design a screen layout, whereas PyVCP is -driven by manually edited XML files. Also, PyVCP uses the TkInter -widgets, whereas GladeVCP uses the much richer Gtk toolkit. Both -support 'HAL widgets' - widgets with one or more associated HAL pin -which is the interface to the rest of EMC. Stock GladeVCP and PyVCP -panels are really just a bunch of virtual switches, dials, LEDs and so -forth, wired to the outside world through the HAL layer, designed to -set and read ints, bits and floats values. - -Most widget sets, and their associated user interface editors, support -the concept of callbacks - functions in user-written code which are -executed when 'something happens' in the UI - events like mouse clicks, -characters typed, mouse movement, timer events, window hiding and -exposure and so forth. Both PyVCP and stock GladeVCP mainly do two -things: mapping events on HAL widgets to actions like a value change of -the associated HAL pin, and in the other direction - detecting if HAL -pin values changed and updating the associated widget, like a LED, a -meter, a bar, or just some label displaying a value. However, neither -PyVCP nor stock GladeVCP provide support for other actions than -changing HAL values. Doing something more complex, like executing MDI -commands to call a G-code subroutine, is outside scope. - -== HAL Widgets +== HAL Widget reference GladeVcp includes a collection of Gtk widgets with attached HAL pins called HAL Widgets, intended to control, display or otherwise interact @@ -215,11 +386,12 @@ in the Glade 'General' section have an associated mouse-over tool tip. HAL signals come in two variants, bits and numbers. Bits are off/on signals. Numbers can be "float", "s32" or "u32". For more information -on HAL data types see the [->] section. The GladeVcp widgets can either -display the value of the signal with an indicator widget, or modify the -signal value with a control widget. Thus there are four classes of -GladeVcp widgets that you can connect to a HAL signal. Another class of -helper widgets allow you to organize and label your panel. +on HAL data types see the <>. The GladeVcp +widgets can either display the value of the signal with an indicator +widget, or modify the signal value with a control widget. Thus there +are four classes of GladeVcp widgets that you can connect to a HAL +signal. Another class of helper widgets allow you to organize and +label your panel. - Widgets for indicating "bit" signals: <> - Widgets for controlling "bit" signals: <>, @@ -236,24 +408,28 @@ helper widgets allow you to organize and label your panel. - Tool Path preview: <> HAL Widgets inherit methods, properties and signals from the -underlying Gtk widgets, so it is helpful to consult the Gtk and PyGTK +underlying Gtk widgets, so it is helpful to consult the +http://www.gtk.org/[GTK+] and http://www.pygtk.org/[PyGTK bindings] documentation as well. + === Widget and HAL pin naming Most HAL widgets have a single associated HAL pin with the same name -as the widget (glade: General->Name). Exceptions to this rule currently -are the HAL_Spinbutton, which has two pins: a -f (float) -and a -s (s32) pin, and the HAL_ProgressBar, which has a - value input pin, and a .scale input pin. +as the widget (glade: General->Name). + +Exceptions to this rule currently are. + +- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin +- 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. === Setting pin and widget values As a general rule, if you need to set a HAL output widget's value from Python code, do so by calling the underlying Gtk 'setter' (e.g. -`set_active()`, `set_value()`) - do not try to set the associated pin's -value by `halcomp[pinname] = value` directly because the widget 'will not -notice'. ++set_active()+, +set_value()+) - do not try to set the associated pin's +value by +halcomp[pinname] = value+ directly because the widget will not +take notice of the change!. It might be tempting to 'set HAL widget input pins' programmatically. Note this defeats the purpose of an input pin in the first place - it @@ -263,32 +439,34 @@ input pins in HAL Python, this doesn't make sense. You might use setp pinname value in the associated halfile for testing though. It is perfectly OK to set an output HAL pin's value with -halcomp[pinname] = value provided this HAL pin is not associated with a ++halcomp[pinname] = value+ provided this HAL pin is not associated with a widget, that is, has been created by the -hal_glib.GPin(halcomp.newpin(,,) method (see ++hal_glib.GPin(halcomp.newpin(,,)+ method (see GladeVCP Programming for an example). +[[gladevcp::hal-pin-changed_signal]] === The hal-pin-changed signal -Event-driven programming means that the UI tells you when "something +Event-driven programming means that the UI tells your code when "something happens" - through a callback, like when a button was pressed. The output HAL widgets (those which display a HAL pin's value) like LED, -Bar, VBar, Meter etc, support the hal-pin-changed signal which may +Bar, VBar, Meter etc, support the 'hal-pin-changed' signal which may cause a callback into your Python code when - well, a HAL pin changes its value. This means there's no more need for permanent polling of HAL pin changes in your code, the widgets do that in the background and let -you know. The example in configs/gladevcp/examples/complex shows how -this is handled in Python. +you know. -Here is an example how to set a hal-pin-changed signal for a HAL_LED +Here is an example how to set a +hal-pin-changed+ signal for a HAL_LED in the Glade UI editor: +image::images/hal-pin-change-66.png[] +The example in +configs/gladevcp/examples/complex+ shows how +this is handled in Python. -.HAL Pin Change - -image::images/hal-pin-change.png[] - -=== Buttons [[gladevcp:HAL_Button]] [[gladevcp:HAL_RadioButton]] [[gladevcp:HAL_CheckButton]] +[[gladevcp:HAL_Button]] +[[gladevcp:HAL_RadioButton]] +[[gladevcp:HAL_CheckButton]] +=== Buttons This group of widgets are derived from various Gtk buttons and consists of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton @@ -297,19 +475,23 @@ the widget. Buttons have no additional properties compared to their base Gtk classes. - HAL_Button: instantaneous action, does not retain state. Important - signal: pressed + signal: +pressed+ - HAL_ToggleButton, HAL_CheckButton: retains on/off state. Important - signal: toggled - - HAL_RadioButton: a one-of-many group. Important signal: toggled (per + signal: +toggled+ + - HAL_RadioButton: a one-of-many group. Important signal: +toggled+ (per button). - - Important common methods: set_active(), get_active() - - Important properties: label, image - + - Important common methods: +set_active()+, +get_active()+ + - Important properties: +label+, +image+ -.Buttons -image::images/checkbutton.png[] -image::images/radiobutton.png[] +// .Buttons +Check button: +image:images/checkbutton.png[] +Radio buttons: +image:images/radiobutton.png[] +Toggle button: +image:images/button.png[] +. [TIP] ====================================== @@ -317,72 +499,81 @@ Defining radio button groups in Glade: - decide on default active button -- in the other button's General->Group select the default active +- in the other button's 'General->Group' select the default active button's name in the 'Choose a Radio Button in this project' dialog. -See configs/gladevcp/by-widget/radiobutton for a GladeVCP application +See +configs/gladevcp/by-widget/radiobutton+ for a GladeVCP application and UI file for working with radio buttons. ====================================== -=== Scales [[gladevcp:HAL_HScale]] [[gladevcp:HAL_VScale]] +[[gladevcp:HAL_HScale]] +[[gladevcp:HAL_VScale]] +=== Scales HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectively. They have one output FLOAT pin with name equal to widget name. Scales have no additional properties. - -.Scale - -image::images/hscale.png[] - -Hint: To make a scale useful in Glade, add an 'Adjustment' +To make a scale useful in Glade, add an 'Adjustment' (General->Adjustment->New or existing adjustment) and edit the adjustment object. It defines the default/min/max/increment values. Also, set adjustment 'Page size' and 'Page increment' to zero to avoid warnings. -=== SpinButton [[gladevcp:HAL_SpinButton]] - -HAL SpinButton is derived from GtkSpinButton and holds two pins: - - - `{widgetname}-f`: out FLOAT pin - - `{widgetname}-s`: out S32 pin +Example HAL_HScale: +image:images/hscale.png[] +. +[[gladevcp:HAL_SpinButton]] +=== SpinButton -.SpinButton +HAL SpinButton is derived from GtkSpinButton and holds two pins: -image::images/spinbutton.png[] +-f:: + out FLOAT pin +-s:: + out S32 pin -[TIP] To be useful, Spinbuttons need an adjustment value like scales, see above. -=== Label [[gladevcp:HAL_Label]] +Example SpinButton: +image:images/spinbutton.png[] +. -HAL_Label is simple widget based on GtkLabel which represents a HAL -pin value in a user-defined format. The pin's HAL type depends on the -label_pin_type property (0:S32, 1:float, 2:U32), see also the tooltip -on General->HAL pin type (note this is different from PyVCP which has -three label widgets, one for each type). +[[gladevcp:HAL_Label]] +=== Label -The text displayed depends on the text_template property - an Python -format string to represent the pin value. It defaults to "%s" (values -are converted by the str() function) but may contain anything legit in -a as argument to Pythons format() method. +HAL_Label is a simple widget based on GtkLabel which represents a HAL +pin value in a user-defined format. -Example: `Distance: %.03f` will display the text and the pin value with -3 fractional digits padded with zeros for a FLOAT pin. +label_pin_type:: + The pin's HAL type (0:S32, 1:float, 2:U32), see also the tooltip + on 'General->HAL pin type '(note this is different from PyVCP which has + three label widgets, one for each type). + +text_template:: + Determines the text displayed - a Python + format string to convert the pin value to text. Defaults to +%s+ (values + are converted by the str() function) but may contain any legit as an + argument to Pythons format() method. + + Example: +Distance: %.03f+ will display the text and the pin value with + 3 fractional digits padded with zeros for a FLOAT pin. -=== Containers: HAL_HBox and HAL_Table [[gladevcp:HAL_HBox]] [[gladevcp:HAL_Table]] +[[gladevcp:HAL_HBox]] +[[gladevcp:HAL_Table]] +=== Containers: HAL_HBox and HAL_Table Compared to their Gtk counterparts they have one input BIT pin which controls if their child widgets are sensitive or not. If the pin is low then child widgets are inactive which is the default. -Hint: if you find some part of your GladeVCP application is 'grayed +[TIP] +If you find some part of your GladeVCP application is 'grayed out' (insensitive), see whether a container's pin is unset. -=== LED [[gladevcp:HAL_LED]] +[[gladevcp:HAL_LED]] +=== LED The hal_led simulates a real indicator LED. It has a single input BIT pin which controls it's state: ON or OFF. LEDs have several properties @@ -408,10 +599,10 @@ led_blink_rate:: if set and LED is ON then it's blinking. Blink period is equal to "led_blink_rate" specified in milliseconds. -As an input widget, LED also supports the hal-pin-changed signal. If +As an input widget, LED also supports the +hal-pin-changed signal+. If you want to get a notification in your code when the LED's HAL pin was changed, then connect this signal to a handler, for example -on_led_pin_changed and provide the handler as follows: ++on_led_pin_changed+ and provide the handler as follows: [source,python] ---------------------------------- @@ -423,12 +614,11 @@ This will be called at any edge of the signal and also during program start up to report the current value. Example LEDs: +image:images/leds.png[] +. -.LED - -image::images/leds.png[] - -=== ProgressBar [[gladevcp:HAL_ProgressBar]] +[[gladevcp:HAL_ProgressBar]] +=== ProgressBar [NOTE] This widget might go away. Use the HAL_HBar and HAL_VBar widgets @@ -437,40 +627,49 @@ instead. The HAL_ProgressBar is derived from gtk.ProgressBar and has two float HAL input pins: - - - the current value to be displayed - - .scale - the maximum absolute value of input +:: + the current value to be displayed +-scale:: + the maximum absolute value of input It has the following properties: - - scale - value scale. set maximum absolute value of input. Same as - setting the .scale pin. A float, range from - latexmath:[-2^{24}] to latexmath:[+2^{24}]. - - green_limit - green zone limit lower limit - - yellow_limit - yellow zone limit lower limit - - red_limit - red zone limit lower limit - - text_template - Text template to display the current value of the - pin. Python formatting may be used for dict - {"value":value} - - - -.Progressbar +scale:: + value scale. set maximum absolute value of input. Same as + setting the .scale pin. A float, range from + latexmath:[-2^{24}] to latexmath:[+2^{24}]. +green_limit:: + green zone limit lower limit +yellow_limit:: + yellow zone limit lower limit +red_limit:: + red zone limit lower limit +text_template:: + Text template to display the current value of the + ++ pin. Python formatting may be used for dict + +{"value":value}+ -image::images/progressbar2.png[] +Example HAL_ProgressBar: +image:images/progressbar2.png[] +. -=== ComboBox [[gladevcp:HAL_ComboBox]] +[[gladevcp:HAL_ComboBox]] +=== ComboBox HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a value from a dropdown list. It exports two HAL pins: - - -f: the current value, type FLOAT - - -s: the current value, type S32 + -f:: + the current value, type FLOAT + -s:: + the current value, type S32 It has the following property which can be set in Glade: - column: the column index, type S32, defaults to -1, range from -1..100 . +column:: + the column index, type S32, defaults to -1, range from -1..100 . In default mode this widgets sets the pins to the index of the chosen list entry. So if your widget has three labels, it may only assume @@ -483,13 +682,15 @@ displayed in the dropdown, and an int or float value to use for that choice. There's an example in -configs/gladevcp/by-widget/combobox/combobox.{py,ui} which uses column ++configs/gladevcp/by-widget/combobox/combobox.{py,ui}+ which uses column mode to pick a float value from the ListStore. If you're confused like me about how to edit ComboBox ListStores and CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. -=== Bars [[gladevcp:HAL_HBar]] [[gladevcp:HAL_VBar]] +[[gladevcp:HAL_HBar]] +[[gladevcp:HAL_VBar]] +=== Bars HAL Bar and VBar widgets for horizontal and vertical bars representing float values. They have one input FLOAT hal pin. Both bars have the @@ -527,17 +728,16 @@ z0_border, z1_border:: zone 2 -- from last border to 1. Borders are set as fractions, values from 0 to 1. -Examples: - +Horizontal bar: +image:images/hal_hbar.png[] +Vertical bar: +image:images/vscale.png[] +. -.Bars +[[gladevcp:HAL_Meter]] +=== Meter -image::images/hal_hbar.png[] -image::images/vscale.png[] - -=== Meter [[gladevcp:HAL_Meter]] - -HAL Meter is a widget like PyVCP meter representing a float value. It has +HAL Meter is a widget similar to PyVCP meter - it represents a float value and has one input FLOAT hal pin. HAL Meter has the following properties: min, max:: @@ -567,13 +767,12 @@ z0_border, z1_border:: border, zone 1 will fill from first to second border and zone 2 -- from last border to max. Borders are set as values in range min-max. -Examples: - -.HAL Meter - -image::images/hal_meter.png[] +Example HAL Meters: +image:images/hal_meter.png[] +. -=== Gremlin tool path preview for .ngc files [[gladevcp:HAL_Gremlin]] +[[gladevcp:HAL_Gremlin]] +=== Gremlin tool path preview for .ngc files Gremlin is a plot preview widget similar to the Axis preview window. It assumes a running EMC environment like Axis or Touchy. To connect to @@ -594,13 +793,22 @@ enable_dro :: Defaults to `True`. Example: +image:images/gremlin.png[] -.Gremlin +=== Animated function diagrams: HAL widgets in a bitmap -image::images/gremlin.png[] +For some applications it might be desirable to have background image - +like a functional diagram - and position widgets at appropriate places +in that diagram. A good combination is setting a bitmap background +image, like from a .png file, making the gladevcp window fixed-size, +and use the glade Fixed widget to position widgets on this image. -== Action Widgets +The code for the below example can be found in +configs/gladevcp/animated-backdrop+: + +image:images/small-screenshot.png[] + +== Action Widgets reference GladeVcp includes a collection of "canned actions" called EMC Action Widgets for the Glade user interface editor. Other than HAL widgets, @@ -622,20 +830,17 @@ widget in a nutshell: The appearance of EMC Actions in Glade is roughly as follows: -.Actions - image::images/emc-actions.png[] Tooltip hovers provide a description. -=== Action widget types -==== EMC Action widgets +=== EMC Action widgets -These are one-shot type widgets. They implement a single action and +EMC Action widgets are one-shot type widgets. They implement a single action and are for use in simple buttons, menu entries or radio/check groups. -==== EMC ToggleAction widgets +=== EMC ToggleAction widgets These are bi-modal widgets. They implement two actions or use a second (usually pressed) state to indicate that currently an action is @@ -662,66 +867,61 @@ running: - The MDI toggle sends given MDI command and waits for its completion in 'pressed' inactive state. -==== The Action_MDI Toggle and Action_MDI widgets +=== The Action_MDI Toggle and Action_MDI widgets -These widgets provide a means to execute arbitrary MDI commands. +These widgets provide a means to execute arbitrary MDI commands. The +Action_MDI widget does not wait for command completion as the +Action_MDI Toggle does, which remains disabled until command complete. -==== A simple example: Execute MDI command on button press +=== A simple example: Execute MDI command on button press -Here's a Glade UI file which conveys the basics: ++configs/gladevcp/mdi-command-example/whoareyou.ui+ is a Glade UI file which conveys the basics: Open it in Glade and study how it's done. Start Axis, and then start this from a terminal window with `gladevcp whoareyou.ui`. See the -hal_action_mdi1 Action and it's MDI command property - this just -executes (MSG, "Hi, I'm an EMC_Action_MDI") so there should be a ++hal_action_mdi1+ Action and it's +MDI command+ property - this just +executes +(MSG, "Hi, I'm an EMC_Action_MDI")+ so there should be a message popup in Axis like so: -.Who Are You - image::images/whoareyou.png[] You'll notice that the button associated with the Action_MDI action is -grayed out if the machine is off, in E-Stop or the program is running. +grayed out if the machine is off, in E-Stop or the interpreter is running. It will automatically become active when the machine is turned on and out of E-Stop, and the program is idle. -==== Parameter processing in the Action_MDI and ToggleAction_MDI widgets +=== Parameter passing with Action_MDI and ToggleAction_MDI widgets Optionally, 'MDI command' strings may have parameters substituted before they are passed to the interpreter. Parameters currently may be -names of HAL pins in the GladeVCP component (in a later release, this -will be extended to cover HAL pins of other components as well). This -is how it works: +names of HAL pins in the GladeVCP component. This is how it works: - - assume you have a HAL SpinBox named speed, and you want to pass it's + - assume you have a 'HAL SpinBox' named +speed+, and you want to pass it's current value as a parameter in an MDI command. - - The HAL SpinBox? will have a float-type HAL pin named speed-f (see + - The HAL SpinBox will have a float-type HAL pin named speed-f (see HalWidgets description). - To substitute this value in the MDI command, insert the HAL pin name enclosed like so: `${pin-name}` - for the above HAL SpinBox, we could use `(MSG, "The speed is: ${speed-f}")` just to show what's happening. -Here's the example UI file for GladeVCP: , and here's what you get: +The example UI file is +configs/gladevcp/mdi-command-example/speed.ui+. Here's what you get when running it: -.Speed image::images/speed.png[] -==== An advanced example: Feeding parameters to an O-word subroutine +=== An advanced example: Feeding parameters to an O-word subroutine It's perfectly OK to call an O-word subroutine in an MDI command, and -pass HAL pin values as actual parameters. Here's an example UI file -upload:owordsub.ui and O-word sub: +pass HAL pin values as actual parameters. An example UI file +is in +configs/gladevcp/mdi-command-example/owordsub.ui+. -Place oword.ngc so Axis can find it, and run `gladevcp owordsub.ui` from +Place +configs/gladevcp/nc_files/oword.ngc+ so Axis can find it, and run `gladevcp owordsub.ui` from a terminal window. This looks like so: -.O Word - image::images/oword.png[] -==== Preparing for an MDI Action, and cleaning up afterwards +=== Preparing for an MDI Action, and cleaning up afterwards The EMC G-Code interpreter has a single global set of variables, like feed, spindle speed, relative/absolute mode and others. If you use G @@ -736,13 +936,13 @@ O-word subroutine or G-code statement executed with an EMC ToggleAction_MDI, you might associate pre-MDI and post-MDI handlers with a given EMC ToggleAction_MDI. These handlers are optional and provide a way to save any state before executing the MDI Action, and to -restore it to previous values. The signal names are mdi-command-start -and mdi-command-stop; the handler names can be set in Glade like any +restore it to previous values afterwards. The signal names are +mdi-command-start+ +and +mdi-command-stop+; the handler names can be set in Glade like any other handler. Here's an example how a feed value might be saved and restored by such handlers (note that EMC command and status channels are available as -self.emc and self.stat through the _EMC_ActionBase class: ++self.emc+ and +self.stat+ through the EMC_ActionBase class: [source,python] ---------------------------------- @@ -758,7 +958,11 @@ self.emc and self.stat through the _EMC_ActionBase class: Only the Action_MDI Toggle widget supports these signals. -==== Using the EMC Stat object to deal with status changes +[NOTE] +In a later release of EMC2, the new M-codes M70-M72 are available which +make it saving state before a subroutine call, and restoring state on return much easier. + +=== Using the EMC Stat object to deal with status changes Many actions depend on EMC status - is it in manual, MDI or auto mode? is a program running, paused or idle? You cannot start an MDI command @@ -776,62 +980,115 @@ EMC Stat has no visible component - you just add it to your UI with Glade. Once added, you can associate handlers with its following signals: - - state-related: "state-estop", "state-estop-reset", "state-on", - "state-off" - emitted when E-Stop condition occurs, is reset, machine is - turned on, or is turned off - - mode-related: "mode-manual", "mode-mdi", "mode-auto" - emitted when - EMC enters that particular mode - - interpreter-related: "interp-run", "interp-idle", "interp-paused", - "interp-reading", "interp-waiting" - emitted when the G-code - interpreter changes into that mode +* state-related: emitted when E-Stop condition occurs, is reset, machine is turned on, or is turned off + - +state-estop+ + - +state-estop-reset+ + - +state-on+, + - +state-off+ +* mode-related: emitted when EMC enters that particular mode + - +mode-manual+ + - +mode-mdi+ + - +mode-auto+ +* interpreter-related: emitted when the G-code interpreter changes into that mode + - +interp-run+ + - +interp-idle+ + - +interp-paused+ + - +interp-reading+ + - +interp-waiting+ + + + +[[gladevcp:GladeVCP_Programming]] +== GladeVCP Programming + +=== User Defined Actions + +Most widget sets, and their associated user interface editors, support +the concept of callbacks - functions in user-written code which are +executed when 'something happens' in the UI - events like mouse clicks, +characters typed, mouse movement, timer events, window hiding and +exposure and so forth. + +HAL output widgets typically map input-type events like a button press +to a value change of the associated HAL pin by means of such a - +predefined - callback. Within PyVCP, this is really the only type of event +handling supported - doing something more complex, like executing MDI +commands to call a G-code subroutine, is not supported. + +Within GladeVCP, HAL pin changes are just one type of the general +class of events (called signals) in GTK+. Most widgets may originate such +signals, and the Glade editor supports associating such a signal with a +Python method or function name. + +If you decide to use user-defined actions, your job is to write a +Python module whose class methods - or in the simple case, just +functions - can be referred to in Glade as event handlers. GladeVCP +provides a way to import your module(s) at startup and will +automatically link your event handlers with the widget signals as set +in the Glade UI description. + +=== An example: adding custom user callbacks in Python + +This is just a minimal example to convey the idea - details are laid +out in the rest of this section. + +GladeVCP can not only manipulate or display HAL pins, you can also +write regular event handlers in Python. This could be used, among +others, to execute MDI commands. Here's how you do it: + +Write a Python module like so and save as e.g. handlers.py: + +[source,python] +---------------------------------- +nhits = 0 +def on_button_press(gtkobj,data=None): + global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) +---------------------------------- + +In Glade, define a button or HAL button, select the 'Signals' tab, and +in the GtkButton properties select the 'pressed' line. Enter +'on_button_press' there, and save the Glade file. + +Then add the option '-u handlers.py' to the gladevcp command line. If +your event handlers are spread over several files, just add multiple +'-u ' options. + +Now, pressing the button should change its label since it's set in the +callback function. -== User Defined Actions +What the +-u+ flag does: all Python functions in this file are +collected and setup as potential callback handlers for your Gtk widgets +- they can be referenced from Glade 'Signals' tabs. The callback +handlers are called with the particular object instance as parameter, +like the GtkButton instance above, so you can apply any GtkButton +method from there. -As most of the infrastructure to support user-defined actions in Glade -and the Gtk widget set is in place, the new GladeVCP version really -just provides a way for the user to write a Python module whose class -methods - or in the simple case, just functions - can be referred to in -Glade as event handlers, a way to import this module(s) into GladeVCP -at runtime and properly link it with the rest of the HAL layer. +Or do some more useful stuff, like calling an MDI command! === HAL value change events -We also extended the way the HAL input pins interact with the GladeVCP -panel. Beyond HAL widgets displaying pin values, there is now a way to -attach a 'value-changed' callback to a HAL pin, which fits nicely with -the event-driven structure of a typical widget application: every -activity, be it mouse click, key, timer expired, or the change of a HAL -pin's value, generates a callback and is handled by the same orthogonal -mechanism. +HAL input widgets, like a LED, automatically associate their HAL pin state +(on/off) with the optical appearance of the widget (LED lit/dark). -Note that the above refers to explicitly declared HAL pins. HAL -widgets come with a pre-defined signal 'hal-pin-changed', see the -HalWidgets page for details. +Beyond this builtin functionality, one may associate a change +callback with any HAL pin, including those of predefined HAL +widgets. This fits nicely with the event-driven structure of a typical +widget application: every activity, be it mouse click, key, timer +expired, or the change of a HAL pin's value, generates a callback and +is handled by the same orthogonal mechanism. -See the 'Adding HAL pins' section below for details. +For user-defined HAL pins not associated with a particular HAL widget, +the signal name is 'value-changed'. See the +<> section below for +details. -=== Persistent values in GladeVCP +HAL widgets come with a pre-defined signal called 'hal-pin-changed'. See the +<> for details. -A annoying aspect of GladeVCP in its earlier form and pyvcp is the -fact that you may change values through text entry, sliders, spin -boxes, toggle buttons etc, but their settings are not saved and -restored at the next run of EMC - they start at the default value as -set in the panel or widget definition. Therefore I added an easy-to-use -mechanism to save and restore the state of HAL widgets, and program -variables (in fact instance attributes) as well. This mechanism uses -the popular '.ini' file syntax and has safeguards against the .ini file -and the corresponding user interface or program variables getting out -of sync - just imagine renaming, adding or deleting widgets in Glade: -an .ini file lying around from a previous program version, or an -entirely different user interface, would be not be able to restore the -state properly. This situation is detected through a signature which -depends on all object names and types which are saved and to be -restored. In the case of signature mismatch, a new .ini file with -default settings is generated. === Programming model -The overall protocol is as follows: +The overall approach is as follows: - design your UI with Glade, and set signal handlers where you want actions associated with a widget @@ -998,17 +1255,44 @@ through the gladevcp -U option, for example: This should set debug to 2 and confirm that your module actually did it. -=== Persistence +=== Persistent variables in GladeVCP + +A annoying aspect of GladeVCP in its earlier form and pyvcp is the +fact that you may change values and HAL pins through text entry, +sliders, spin boxes, toggle buttons etc, but their settings are not +saved and restored at the next run of EMC - they start at the default +value as set in the panel or widget definition. + +GladeVCP has an easy-to-use mechanism to save and restore the state of +HAL widgets, and program variables (in fact any instance attribute of +type int, float, bool or string). + +This mechanism uses the popular '.ini' file format to save and reload +persistent attributes. + +==== Persistence, program versions and the signature check + +Imagine renaming, adding or deleting widgets in Glade: +an .ini file lying around from a previous program version, or an +entirely different user interface, would be not be able to restore the +state properly since variables and types might have changed. + +GladeVCP detects this situation by a signature which depends on all +object names and types which are saved and to be restored. In the case +of signature mismatch, a new .ini file with default settings is +generated. + +=== Using persistent variables -If you want any of: Gtk widget state, HAL widgets output pin's values +If you want any of Gtk widget state, HAL widgets output pin's values and/or class attributes of your handler class to be retained across invocations, proceed as follows: - - import the gladevcp.persistence module + - import the +gladevcp.persistence+ module - decide which instance attributes, and their default values you want to have retained, if any - decide which widgets should have their state retained - - describe these decisions in your handler class' `__init__()` method + - describe these decisions in your handler class' +__init__()+ method through a nested dictionary as follows: [source,python] @@ -1029,7 +1313,7 @@ def __init__(self, halcomp,builder,useropts): } ---------------------------------- -and associate an .ini file with this descriptor: +Then associate an .ini file with this descriptor: [source,python] ---------------------------------- @@ -1038,7 +1322,7 @@ self.ini = IniFile(self.ini_filename,self.defaults,self.builder) self.ini.restore_state(self) ---------------------------------- -after `restore_state()`, self will have attributes set if as running the +After `restore_state()`, self will have attributes set if as running the following: [source,python] @@ -1055,15 +1339,18 @@ self.defaults. After this incantation, you can use the following IniFil methods: - - `ini.save_state(obj)` - saves objs's attributes as per IniFil.vars - dictionary and the widget state as described in IniFile.widgets in - self.defaults - - `ini.create_default_ini()` - create a .ini file with default values - - `ini.restore_state(obj)` - restore HAL out pins and obj's attributes as - saved/initialized to default as above +ini.save_state(obj):: + saves objs's attributes as per IniFil.vars + dictionary and the widget state as described in IniFile.widgets in + self.defaults +ini.create_default_ini():: + create a .ini file with default values +ini.restore_state(obj):: + restore HAL out pins and obj's attributes as + saved/initialized to default as above To save the widget and/or variable state on exit, connect a signal -handler to the window1 (toplevel) destroy event: +handler to the +window1+ (toplevel) destroy event: [source,python] ---------------------------------- @@ -1082,6 +1369,7 @@ is detected, a console message will hint about that happened, and the bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini files overwrite earlier .BAD files. +[[gladevcp:Adding_HAL_pins]] === Adding HAL pins If you need HAL pins which are not associated with a specific HAL @@ -1096,7 +1384,7 @@ self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_B ---------------------------------- To get a callback when this pin's value changes, associate a -*value-change* callback with this pin, add: ++value-change+ callback with this pin, add: [source,python] ---------------------------------- @@ -1104,7 +1392,7 @@ self.example_trigger.connect('value-changed', self._on_example_trigger_change) ---------------------------------- and define a callback method (or function, in this case leave out the -'self' parameter): ++self+ parameter): [source,python] ---------------------------------- @@ -1115,9 +1403,10 @@ def _on_example_trigger_change(self,pin,userdata=None): === Adding timers -Since GladeVCP uses Gtk widgets which rely on the GObject base class, -the full glib functionally is available. Here is an example for a timer -callback: +Since GladeVCP uses Gtk widgets which rely on the +http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject] +base class, the full glib functionally is available. Here is an +example for a timer callback: [source,python] ---------------------------------- @@ -1131,33 +1420,12 @@ def _on_timer_tick(self,userdata=None): glib.timeout_add_seconds(1, self._on_timer_tick) ---------------------------------- -=== Implementation note: Key handling in Axis - -We believe key handling works OK, but since it is new code, we're -telling about it you so you can watch out for problems; please let us -know of errors or odd behavior. This is the story: - -Axis uses the TkInter widget set. GladeVCP applications use Gtk -widgets and run in a separate process context. They are hooked into -Axis with the Xembed protocol. This allows a child application like -GladeVCP to properly fit in a parent's window, and - in theory - have -integrated event handling. +=== Examples, and rolling your own GladeVCP application -However, this assumes that both parent and child application properly -support the Xembed protocol, which Gtk does, but TkInter doesn't. A -consequence of this is that certain keys would not be forwarded from a -GladeVCP panel to Axis properly under all circumstances. One of these -situations was the case when an Entry, or SpinButton widget had focus: -in this case, for instance an Escape key would not have been forwarded -to Axis and cause an abort as it should, with potentially disastrous -consequences. +Visit +emc2/configs/gladevcp+ for running examples and starters for your own projects. -Therefore, key events in GladeVCP are explicitly handled, and -selectively forwarded to Axis, to assure that such situations cannot -arise. For details, see the `keyboard_forward()` function in -`lib/python/gladevcp/xembed.py`. -=== FAQ +== FAQ [qanda] I get an unexpected unmap event in my handler function right after startup. What's this?:: @@ -1184,8 +1452,60 @@ My GladeVCP program starts, but no window appears where I expect it to be?:: with 'gladevcp ' and its window has reasonable geometry, it should come up in Axis properly as well. -=== Examples, and rolling your own GladeVCP application +I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. +It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is +invalid or out of range for property `led-blink-rate' of type `gint'?:: + This seems to be a glade bug. Just type over the blink rate field, and save again - this works for me. + +My gladevcp panel in Axis doesnt save state when I close Axis,although I defined +an on_destroy handler linked to the window destroy signal:: + Very likely this handler is linked to window1, + which due to reparenting isnt usable for this purpose. Please link + the on_destroy handler to the destroy signal of an interior + window. For instance, I have a notebook inside window1, and linked + on_destroy to the notebooks destroy signal, and that works fine. It + doesnt work for window1. + +// FIXME this is out of date +== Troubleshooting + + - make sure your have the development version of EMC2 installed. You + don't need the axisrc file any more, this was mentioned in the old + GladeVcp wiki page. + - run GladeVCP or Axis from a terminal window. If you get Python errors, + check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ + file lying around besides the newer + +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, + remove the +hal.so+ file. It has been superseded by hal.py in the same + directory and confuses the import mechanism. + - if you're using run-in-place, do a 'make clean' to remove any + accidentally left over hal.so file, then 'make'. + - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have + an HAL pin associated with it which is off by default. This pin + controls whether these container's children are active or not. + +== Implementation note: Key handling in Axis + +We believe key handling works OK, but since it is new code, we're +telling about it you so you can watch out for problems; please let us +know of errors or odd behavior. This is the story: + +Axis uses the TkInter widget set. GladeVCP applications use Gtk +widgets and run in a separate process context. They are hooked into +Axis with the Xembed protocol. This allows a child application like +GladeVCP to properly fit in a parent's window, and - in theory - have +integrated event handling. + +However, this assumes that both parent and child application properly +support the Xembed protocol, which Gtk does, but TkInter doesn't. A +consequence of this is that certain keys would not be forwarded from a +GladeVCP panel to Axis properly under all circumstances. One of these +situations was the case when an Entry, or SpinButton widget had focus: +in this case, for instance an Escape key would not have been forwarded +to Axis and cause an abort as it should, with potentially disastrous +consequences. -Visit emc2/configs/gladevcp for running examples. The templates -subdirectory has starters for your own projects. - +Therefore, key events in GladeVCP are explicitly handled, and +selectively forwarded to Axis, to assure that such situations cannot +arise. For details, see the `keyboard_forward()` function in +`lib/python/gladevcp/xembed.py`. diff --git a/docs/src/gui/gladevcp_es.txt b/docs/src/gui/gladevcp_es.txt index 8413b6c63..9752cfb80 100644 --- a/docs/src/gui/gladevcp_es.txt +++ b/docs/src/gui/gladevcp_es.txt @@ -1,133 +1,338 @@ = GladeVCP -GladeVCP is an EMC2 component which adds the ability to add a virtual -control panel to EMC user interfaces like Axis or Touchy. It is similar -to PyVCP; whereas PyVCP panels are created by editing an XML file -manually, GladeVCP uses the Glade WYSIWYG user interface editor. -Therefore, it's faster and easier to create visually pleasing panels -with GladeVCP. +// TODO: +// - manual-example.ui layout - really bad +// - restructure faq/troubleshooting/notes section +// - check wiki vs docs +// - check other gladevcp docs branch against this -[NOTE] -Until GladeVCP is fully integrated with EMC2 please refer to the EMC -wiki page GladeVcpSetup for instructions on installing and setting up -GladeVCP. -== Creating your first GladeVCP UI component +:ini: {basebackend@docbook:'':ini} +:hal: {basebackend@docbook:'':hal} +:ngc: {basebackend@docbook:'':ngc} +// begin a listing of ini/hal/ngc files like so: +//[source,{ini}] +//[source,{hal}] +//[source,{ngc}] -Either modify an existing UI component, or start a new one by -running Glade. In the left tab, expand the 'HAL Python' components. -Create a window as top level window from the 'Toplevels' section, which -by default will be named window1. Leave that name as is - GladeVCP -assumes the top level window has this name. Add a HAL_Box or a -HAL_Table from 'HAL Python' to the frame, and pick and place some -elements like LED, button, etc., in its box. -This will look like so: +== What is GladeVCP? -.Glade +GladeVCP is an EMC2 component which adds the ability to add a new user +interface panel to EMC user interfaces like Axis or Touchy. Unlike +PyVCP, GladeVCP is not limitied to displaying and setting HAL pins, as +arbitrary actions can be executed in Python code - in fact, a +complete EMC2 user interface could be built with GladeVCP and Python. -image::images/glade-myui.png[] +GladeVCP users the http://glade.gnome.org/[Glade] WYSIWYG user +interface editor, which makes it easy to create visually pleasing +panels. It relies on the http://www.pygtk.org/[PyGTK] bindings to the +rich http://www.gtk.org/[GTK+] widget set, and in fact all of these +may be used in a GladeVCP application - not just the specialized +widgets for interacting with HAL and EMC, which are documented here. -Select File->Save as, give it a name like 'myui.ui' and make sure it's -saved as 'GtkBuilder' file (radio button left bottom corner in Save -dialog). The convention for GtkBuilder file extension is '.ui'. You can -now run it with: - gladevcp myui.ui +=== PyVCP versus GladeVCP at a glance -== Integrating the example UI into Axis +Both support the creation of panels with 'HAL widgets' - user +interface elements like LED's, buttons, sliders etc whose values are +linked to a HAL pin, which in turn interfaces to the rest of EMC2. -While you could run your UI as a separate top level window -side-by-side with Axis, having it within the Axis frame as a tab -side-by-side with the Preview and DRO tabs is more elegant. To do so, -edit your .ini file and add two variables to the DISPLAY section of ini -file: +*PyVCP:* - EMBED_TAB_NAME = GladeVCP + - widget set: uses TkInter widgets + - user interface creation: "edit XML file / run result / evaluate looks" cycle + - no support for embedding user-defined event handling + - no EMC2 interaction beyond HAL pin I/O supported - EMBED_TAB_COMMAND = - gladevcp -c gladevcp-test -w {XID} -H gladevcp-test.hal +*GladeVCP:* -Try it out by running Axis - there should be a new tab called -'GladeVCP' near the DRO tab. Select that tab, you should see the -example panel nicely fit within Axis like so: + - widget set: relies on the http://www.gtk.org/[GTK+] widget set. + - user interface creation: uses the http://glade.gnome.org/[Glade] WYSIWYG user interface editor + - any HAL pin change may be directed to call back into a user-defined Python event handler + - any GTK signal (key/button press, window, I/O, timer, network events) may be associated with user-defined handlers in Python + - direct EMC2 interaction: arbitrary command execution, like initiating MDI +commands to call a G-code subroutine, plus support for status change operations through Action Widgets LINKHERE + - several independent GladeVCP panels may be run in different tabs + - separation of user interface appearance and functionality: change appearance without touching any code -.GladeVCP in Axis +== A Quick Tour with the Example Panel -image::images/axis-gladevcp.png[] +GladeVCP panel windows may be run in three different setups: -== Integrating into Touchy + - always visible integrated into Axis at the right side, exactly like PyVCP panels + - as a tab in Axis and Touchy; in Axis this would create a third tab besides the Preview and DRO tabs which must be raised explicitly + - as a standalone toplevel window, which can be iconifyed/deiconified independent of the main window. -Touchy also understands `EMBED_TAB_NAME` and `EMBED_TAB_COMMAND` variables -from INI file so instructions for it are equal to Axis. +Run the sample GladeVCP panel integrated into Axis like PyVCP as follows: -== Axis: linking HAL pins in the example UI + $ cd configs/sim + $ emc gladevcp_panel.ini -To be useful, the pins in your UI need to be linked to the rest of -your setup. Usually this is done by running one or several HAL files -through the HALFILE and POSTGUI_HALFILE statements in the HAL section -of your .ini file. +image::images/example-panel-small.png[] -For GladeVCP components this not currently possible because all of -these HALFILE statements are run before GladeVCP is started, so linking -to your UI's pins from there would refer to pins which do not yet -exist. You therefore need to prepare a file of all HAL commands which -refer to / link with your UI's pins and pass it to the GladeVCP command -in the `EMBED_TAB_COMMAND` statement like so: +Run the same panel, but as a tab inside Axis: ------------------------------------------------------------------------- -EMBED_TAB_COMMAND = gladevcp -c gladevcp-test -H gladevcp-test.hal \ - -w {XID} gladevcp-test.glade ------------------------------------------------------------------------- + $ cd configs/sim + $ emc gladevcp_tab.ini -There is an example `gladevcp-test.hal` file in the -`emc2-dev/lib/python/gladevcp` directory. Before using it in the -`EMBED_TAB_NAME` statement, make sure the loadusr statements at the top -are commented out. +image::images/example-tabbed-small.png[] -== Adding custom user callbacks in Python +To run this panel as a standalone toplevel window besides Axis, just +start Axis in the background and start gladevcp as follows: -This is just a very minimal example to convey the idea - for a -detailed description on how to program a GladeVCP application, see -GladeVCPprogramming and HalWidgets. + $ cd configs/sim + $ emc axis.ini & + $ gladevcp -c gladevcp -u ../gladevcp/hitcounter.py -H ../gladevcp/manual-example.hal ../gladevcp/manual-example.ui -GladeVCP can not only manipulate or display HAL pins, you can also -write regular event handlers in Python. This could be used, among -others, to execute MDI commands. Here's how you do it: +image::images/example-float-small.png[] -Write a Python module like so and save as e.g. handlers.py: +To run this panel inside 'Touchy': -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----------------------------------- + $ cd configs/sim + $ emc gladevcp_touchy.ini -In Glade, define a button or HAL button, select the 'Signals' tab, and -in the GtkButton properties select the 'pressed' line. Enter -'on_button_press' there, and save the Glade file. +image::images/touchy-tab-33.png[] -Then add the option '-u handlers.py' to the gladevcp command line. If -your event handlers are spread over several files, just add multiple -'-u ' options. -Now, pressing the button should change its label since it's set in the -callback function. +Functionally these setups are identical - they only differ in screen +real estate requirements and visibility. Since it is possible to run +several GladeVCP components in parallel (with different HAL module +names), mixed setups are possible as well - for instance a panel on +the right hand side, and one or more tabs for less-frequently used +parts of the interface. -What the -u flag does is: all Python functions in this file are -collected and setup as potential callback handlers for your Gtk widgets -- they can be referenced from Glade 'Signals' tabs. The callback -handlers are called with the particular object instance as parameter, -like the GtkButton instance above, so you can apply any GtkButton -method from there. +=== Exploring the example panel -Or do some more useful stuff, like calling an MDI command! +While running Axis, explore 'Show HAL Configuration' - you will find +the 'gladevcp' HAL component and may observe their pin values while +interacting with the widgets in the panel. The HAL setup can be +found in 'configs/gladevcp/manual-example.hal'. + +The example panel has two frames at the bottom. The panel is +configured so that resetting ESTOP activates the Settings frame and +turning the machine on enables the Commands frame at the bottom. The HAL +widgets in the Settings frame are linked to LEDs and labels in the +'Status' frame, and to the current and prepared tool number - play +with them to see the effect. Executing the 'T' and 'M6' +commands in the MDI window will change the current and prepared tool +number fields. + +The buttons in the 'Commands' frame are 'MDI Action widgets' - +pressing them will execute an MDI command in the interpreter. The +third button 'Execute Oword subroutine' is an advanced example - it +takes several HAL pin values from the 'Settings' frame, and passes +them as parameters to the Oword subroutine. The actual parameters +received by the routine are displayed by '(DEBUG, )' commands - see +'configs/gladevcp/nc_files/oword.ngc' for the subroutine body. + +To see how the panel is integrated into Axis, see the +'[DISPLAY]GLADEVCP' statements in gladevcp_panel.ui, and the +'[DISPLAY]EMBED*' and '[HAL]POSTGUI_HALFILE' statements in +gladevcp_tab.ini respectively. + +=== Exploring the User Interface description + +The user interface is created with the glade UI editor - to explore +it, you need to have <>. To +edit the user interface, run the command + + $ glade configs/gladevcp/manual-example.ui + +The center window shows the appearance of the UI. All user +interface objects and support objects are found in the right top +window, where you can select a specific widget (or by clicking on it +in the center window). The properties of the selected widget are +displayed, and can be changed, in the right bottom window. + +To see how MDI commands are passed from the MDI Action widgets, +explore the widgets listed under 'Actions' in the top right window, +and in the right bottom window, unter the 'General' tab, the 'MDI +command' property. + +=== Exploring the Python callback +See how a Python callback is integrated into the example: + + - in glade, see the +hits+ label widget (a plain GTK+ widget) + - in the +button1+ widget, look at the 'Signals' tab, and find the signal 'pressed' associated with the handler 'on_button_press' + - in ../gladevcp/hitcounter.py, see the method 'on_button_press' and see how it sets the label property in the 'hits' object + +The is just touching upon the concept - the callback mechanism will be +handled in more detail in the <> section. + +== Creating and Integrating a Glade user interface + +[[gladevcp:Prerequisites]] +=== Prerequisite: Glade installation +To view or modify Glade UI files, you need glade installed - it is not +needed just to run a GladeVCP panel. If the glade command is ḿissing, +install it with the command: + + $ sudo apt-get install glade + +Verify the version number to be greater than 3.6.7: + + $ glade --version + glade3 3.6.7 + +=== Running Glade to create a new user interface +This section just outlines the initial EMC2-specific steps. For more +information and a tutorial on glade, see http://glade.gnome.org. Some +glade tips & tricks may also be found on +http://www.youtube.com[youtube]. + +Either modify an existing UI component by running +glade .ui+ +or start a new one by just running the +glade+ command from the shell. + +- If EMC2 was not installed from a package, the EMC2 shell environment needs to be set up with ++. /scripts/emc-environment+, otherwise glade won't find the EMC2-specific widgets. +- When asked for unsaved Preferences, just accept the defaults and hit 'Close'. +- From 'Toplevel' (left pane), pick 'Window' (first icon) as top level window, which +by default will be named 'window1'. Do not change this name - GladeVCP relies on it. +- In the left tab, scroll down and expand 'HAL Python' and 'EMC Actions'. +- add a container like a HAL_Box or a HAL_Table from 'HAL Python' to the frame +- pick and place some elements like LED, button, etc. within a container + +This will look like so: + +image::images/glade-manual-small.png[] + +Glade tends to write a lot of messages to the shell window, which +mostly can be ignored. Select 'File->Save as', give it a name like +'myui.ui' and make sure it's saved as 'GtkBuilder' file (radio button +left bottom corner in Save dialog). GladeVCP will also process the +older 'libglade' format correctly but there is no point in using it. The +convention for GtkBuilder file extension is '.ui'. + +=== Testing a panel +You're now ready to give it a try (while EMC2, e.g. Axis is running) it with: + + gladevcp myui.ui + +GladeVCP creates a HAL component named like the basename of the UI +file - 'myui' in this case - unless overriden by the +-c + option. If running Axis, just try 'Show HAL configuration' and +inspect its pins. + +You might wonder why widgets contained a 'HAL_Hbox' or 'HAL_Table' appear +greyed out (inactive). HAL containers have an associated HAL pin which +is off by default, which causes all contained widgets to render +inactive. A common use case would be to associate these container HAL +pins with +halui.machine.is-on+ or one of the +halui.mode.+ signals, +to assure some widgets appear active only in a certain state. + +To just activate a container, execute the HAL command +setp gladevcp. 1+. + +=== Preparing the HAL command file +The suggested way of linking HAL pins in a GladeVCP panel is to +collect them in a separate file with extension +.hal+. This file is +passed via the +POSTGUI_HALFILE=+ option in the +HAL+ section of your +ini file. + +CAUTION: Do not add the GladeVCP HAL command file to the Axis +[HAL]HALFILE=+ ini +section, this will not have the desired effect - see the following sections. + +=== Integrating into Axis like PyVCP + +Place the GladeVCP panel in the righthand side panel by specifying the +following in the ini file: + +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel where PyVCP used to live: +GLADEVCP= -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +The HAL component name of a GladeVCP application started with the the GLADEVCP option is fixed: +gladevcp+. +The command line actually run by Axis in the above configuration is as follows: -== Gladevcp command line options + halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -See also 'man gladevcp' . This is the usage message when you run -'gladevcp -h': +This means you may add arbitrary gladevcp options here, as long as +they dont collide with the above command line options. + +[NOTE] +The +[RS274NGC]SUBROUTINE_PATH=+ option is only set so the example +panel will find the Oword subroutine for the MDI Command widget. It +might not be needed in your setup. + +=== Integrating into Axis as a tab next to DRO and Preview + +To do so, edit your .ini file and add to the DISPLAY and HAL sections of ini +file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab next to Preview/DRO: +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the 'halcmd loadusr' way of starting the tab command - this +assures that 'POSTGUI_HALFILE' will only be run after the HAL +component is ready. In rare cases you might run a a command here which +uses a tab but does not have an associated HAL component. Such a +command can be started without 'halcmd loadusr', and this signifies to +Axis that it does not have to wait for a HAL component since there is +none. + +When changing the component name in the above example, note that the +names used in +-Wn + and +-c + must be +identical. + +Try it out by running Axis - there should be a new tab called +'GladeVCP demo' near the DRO tab. Select that tab, you should see the +example panel nicely fit within Axis. + +[NOTE] +Make sure the UI file is the last option passed to GladeVCP in +both the +GLADEVCP=+ and +EMBED_TAB_COMMAND=+ statements. + +=== Integrating into Touchy +To do add a GladeVCP tab to 'Touchy', edit your .ini file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py -H ../gladevcp/gladevcp-touchy.hal ../gladevcp/manual-example.ui + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the following differences to the Axis tab setup: + + - The HAL command file is slightly modified since 'Touchy' does not + use the 'halui' components so its signals are not available and some + shortcuts have been taken. + + - there is no 'POSTGUI_HALFILE=' ini option, but passing the HAL command file on the 'EMBED_TAB_COMMAND=' line is ok + + - the 'halcmd loaduser -Wn ...' incantation is not needed. + +== GladeVCP command line options + +See also 'man gladevcp' . These are the gladevcp command line options: Usage: gladevcp [options] myfile.ui @@ -136,75 +341,41 @@ Options: -h, --help:: show this help message and exit --c NAME:: +-c NAME:: Set component name to NAME. Default is base name of UI file -d:: Enable debug output --g GEOMETRY:: - Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET.Values are in pixel units, - XOFFSET/YOFFSET is referenced from top left of screen use -g - WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just - position -H FILE execute HAL statements from FILE with halcmd after the +-g GEOMETRY:: + Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET. Values are in pixel units, + XOFFSET/YOFFSET is referenced from top left of screen. + Use -g WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just + position + +-H FILE:: + execute hal statements from FILE with halcmd after the component is set up and ready --x XID:: +-m MAXIMUM:: + force panel window to maximize. Together with the -g geometry option + one can move the panel to a second monitor and force it to use all of the screen + +-t THEME:: + set gtk theme. Default is system theme. Different panels can have different themes. + An example theme can be found in the http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?GTK_Themes[EMC Wiki]. + +-x XID:: Re-parent GladeVCP into an existing window XID instead of creating a new top level window --u FILE:: +-u FILE:: Use File's as additional user defined modules with handlers --U USEROPT:: +-U USEROPT:: pass USEROPTs to Python modules -== Troubleshooting - - - make sure your have the development version of EMC2 installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a /usr/lib/python2.6/dist-packages/hal.so - file lying around besides the newer - /usr/lib/python2.6/dist-packages/_hal.so (note underscore); if yes, - remove the hal.so file. It has been superseded by hal.py in the same - directory and thus creates confusion. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -= GladeVCP Programming - -== PyVCP to GladeVCP - -Stock GladeVCP can be used pretty much in the style of PyVCP - the -major difference being that in the case of GladeVCP, the Glade user -interface editor is used to design a screen layout, whereas PyVCP is -driven by manually edited XML files. Also, PyVCP uses the TkInter -widgets, whereas GladeVCP uses the much richer Gtk toolkit. Both -support 'HAL widgets' - widgets with one or more associated HAL pin -which is the interface to the rest of EMC. Stock GladeVCP and PyVCP -panels are really just a bunch of virtual switches, dials, LEDs and so -forth, wired to the outside world through the HAL layer, designed to -set and read ints, bits and floats values. - -Most widget sets, and their associated user interface editors, support -the concept of callbacks - functions in user-written code which are -executed when 'something happens' in the UI - events like mouse clicks, -characters typed, mouse movement, timer events, window hiding and -exposure and so forth. Both PyVCP and stock GladeVCP mainly do two -things: mapping events on HAL widgets to actions like a value change of -the associated HAL pin, and in the other direction - detecting if HAL -pin values changed and updating the associated widget, like a LED, a -meter, a bar, or just some label displaying a value. However, neither -PyVCP nor stock GladeVCP provide support for other actions than -changing HAL values. Doing something more complex, like executing MDI -commands to call a G-code subroutine, is outside scope. - -== HAL Widgets +== HAL Widget reference GladeVcp includes a collection of Gtk widgets with attached HAL pins called HAL Widgets, intended to control, display or otherwise interact @@ -215,11 +386,12 @@ in the Glade 'General' section have an associated mouse-over tool tip. HAL signals come in two variants, bits and numbers. Bits are off/on signals. Numbers can be "float", "s32" or "u32". For more information -on HAL data types see the [->] section. The GladeVcp widgets can either -display the value of the signal with an indicator widget, or modify the -signal value with a control widget. Thus there are four classes of -GladeVcp widgets that you can connect to a HAL signal. Another class of -helper widgets allow you to organize and label your panel. +on HAL data types see the <>. The GladeVcp +widgets can either display the value of the signal with an indicator +widget, or modify the signal value with a control widget. Thus there +are four classes of GladeVcp widgets that you can connect to a HAL +signal. Another class of helper widgets allow you to organize and +label your panel. - Widgets for indicating "bit" signals: <> - Widgets for controlling "bit" signals: <>, @@ -236,24 +408,28 @@ helper widgets allow you to organize and label your panel. - Tool Path preview: <> HAL Widgets inherit methods, properties and signals from the -underlying Gtk widgets, so it is helpful to consult the Gtk and PyGTK +underlying Gtk widgets, so it is helpful to consult the +http://www.gtk.org/[GTK+] and http://www.pygtk.org/[PyGTK bindings] documentation as well. + === Widget and HAL pin naming Most HAL widgets have a single associated HAL pin with the same name -as the widget (glade: General->Name). Exceptions to this rule currently -are the HAL_Spinbutton, which has two pins: a -f (float) -and a -s (s32) pin, and the HAL_ProgressBar, which has a - value input pin, and a .scale input pin. +as the widget (glade: General->Name). + +Exceptions to this rule currently are. + +- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin +- 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. === Setting pin and widget values As a general rule, if you need to set a HAL output widget's value from Python code, do so by calling the underlying Gtk 'setter' (e.g. -`set_active()`, `set_value()`) - do not try to set the associated pin's -value by `halcomp[pinname] = value` directly because the widget 'will not -notice'. ++set_active()+, +set_value()+) - do not try to set the associated pin's +value by +halcomp[pinname] = value+ directly because the widget will not +take notice of the change!. It might be tempting to 'set HAL widget input pins' programmatically. Note this defeats the purpose of an input pin in the first place - it @@ -263,32 +439,34 @@ input pins in HAL Python, this doesn't make sense. You might use setp pinname value in the associated halfile for testing though. It is perfectly OK to set an output HAL pin's value with -halcomp[pinname] = value provided this HAL pin is not associated with a ++halcomp[pinname] = value+ provided this HAL pin is not associated with a widget, that is, has been created by the -hal_glib.GPin(halcomp.newpin(,,) method (see ++hal_glib.GPin(halcomp.newpin(,,)+ method (see GladeVCP Programming for an example). +[[gladevcp::hal-pin-changed_signal]] === The hal-pin-changed signal -Event-driven programming means that the UI tells you when "something +Event-driven programming means that the UI tells your code when "something happens" - through a callback, like when a button was pressed. The output HAL widgets (those which display a HAL pin's value) like LED, -Bar, VBar, Meter etc, support the hal-pin-changed signal which may +Bar, VBar, Meter etc, support the 'hal-pin-changed' signal which may cause a callback into your Python code when - well, a HAL pin changes its value. This means there's no more need for permanent polling of HAL pin changes in your code, the widgets do that in the background and let -you know. The example in configs/gladevcp/examples/complex shows how -this is handled in Python. +you know. -Here is an example how to set a hal-pin-changed signal for a HAL_LED +Here is an example how to set a +hal-pin-changed+ signal for a HAL_LED in the Glade UI editor: +image::images/hal-pin-change-66.png[] +The example in +configs/gladevcp/examples/complex+ shows how +this is handled in Python. -.HAL Pin Change - -image::images/hal-pin-change.png[] - -=== Buttons [[gladevcp:HAL_Button]] [[gladevcp:HAL_RadioButton]] [[gladevcp:HAL_CheckButton]] +[[gladevcp:HAL_Button]] +[[gladevcp:HAL_RadioButton]] +[[gladevcp:HAL_CheckButton]] +=== Buttons This group of widgets are derived from various Gtk buttons and consists of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton @@ -297,19 +475,23 @@ the widget. Buttons have no additional properties compared to their base Gtk classes. - HAL_Button: instantaneous action, does not retain state. Important - signal: pressed + signal: +pressed+ - HAL_ToggleButton, HAL_CheckButton: retains on/off state. Important - signal: toggled - - HAL_RadioButton: a one-of-many group. Important signal: toggled (per + signal: +toggled+ + - HAL_RadioButton: a one-of-many group. Important signal: +toggled+ (per button). - - Important common methods: set_active(), get_active() - - Important properties: label, image - + - Important common methods: +set_active()+, +get_active()+ + - Important properties: +label+, +image+ -.Buttons -image::images/checkbutton.png[] -image::images/radiobutton.png[] +// .Buttons +Check button: +image:images/checkbutton.png[] +Radio buttons: +image:images/radiobutton.png[] +Toggle button: +image:images/button.png[] +. [TIP] ====================================== @@ -317,72 +499,81 @@ Defining radio button groups in Glade: - decide on default active button -- in the other button's General->Group select the default active +- in the other button's 'General->Group' select the default active button's name in the 'Choose a Radio Button in this project' dialog. -See configs/gladevcp/by-widget/radiobutton for a GladeVCP application +See +configs/gladevcp/by-widget/radiobutton+ for a GladeVCP application and UI file for working with radio buttons. ====================================== -=== Scales [[gladevcp:HAL_HScale]] [[gladevcp:HAL_VScale]] +[[gladevcp:HAL_HScale]] +[[gladevcp:HAL_VScale]] +=== Scales HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectively. They have one output FLOAT pin with name equal to widget name. Scales have no additional properties. - -.Scale - -image::images/hscale.png[] - -Hint: To make a scale useful in Glade, add an 'Adjustment' +To make a scale useful in Glade, add an 'Adjustment' (General->Adjustment->New or existing adjustment) and edit the adjustment object. It defines the default/min/max/increment values. Also, set adjustment 'Page size' and 'Page increment' to zero to avoid warnings. -=== SpinButton [[gladevcp:HAL_SpinButton]] - -HAL SpinButton is derived from GtkSpinButton and holds two pins: - - - `{widgetname}-f`: out FLOAT pin - - `{widgetname}-s`: out S32 pin +Example HAL_HScale: +image:images/hscale.png[] +. +[[gladevcp:HAL_SpinButton]] +=== SpinButton -.SpinButton +HAL SpinButton is derived from GtkSpinButton and holds two pins: -image::images/spinbutton.png[] +-f:: + out FLOAT pin +-s:: + out S32 pin -[TIP] To be useful, Spinbuttons need an adjustment value like scales, see above. -=== Label [[gladevcp:HAL_Label]] +Example SpinButton: +image:images/spinbutton.png[] +. -HAL_Label is simple widget based on GtkLabel which represents a HAL -pin value in a user-defined format. The pin's HAL type depends on the -label_pin_type property (0:S32, 1:float, 2:U32), see also the tooltip -on General->HAL pin type (note this is different from PyVCP which has -three label widgets, one for each type). +[[gladevcp:HAL_Label]] +=== Label -The text displayed depends on the text_template property - an Python -format string to represent the pin value. It defaults to "%s" (values -are converted by the str() function) but may contain anything legit in -a as argument to Pythons format() method. +HAL_Label is a simple widget based on GtkLabel which represents a HAL +pin value in a user-defined format. -Example: `Distance: %.03f` will display the text and the pin value with -3 fractional digits padded with zeros for a FLOAT pin. +label_pin_type:: + The pin's HAL type (0:S32, 1:float, 2:U32), see also the tooltip + on 'General->HAL pin type '(note this is different from PyVCP which has + three label widgets, one for each type). + +text_template:: + Determines the text displayed - a Python + format string to convert the pin value to text. Defaults to +%s+ (values + are converted by the str() function) but may contain any legit as an + argument to Pythons format() method. + + Example: +Distance: %.03f+ will display the text and the pin value with + 3 fractional digits padded with zeros for a FLOAT pin. -=== Containers: HAL_HBox and HAL_Table [[gladevcp:HAL_HBox]] [[gladevcp:HAL_Table]] +[[gladevcp:HAL_HBox]] +[[gladevcp:HAL_Table]] +=== Containers: HAL_HBox and HAL_Table Compared to their Gtk counterparts they have one input BIT pin which controls if their child widgets are sensitive or not. If the pin is low then child widgets are inactive which is the default. -Hint: if you find some part of your GladeVCP application is 'grayed +[TIP] +If you find some part of your GladeVCP application is 'grayed out' (insensitive), see whether a container's pin is unset. -=== LED [[gladevcp:HAL_LED]] +[[gladevcp:HAL_LED]] +=== LED The hal_led simulates a real indicator LED. It has a single input BIT pin which controls it's state: ON or OFF. LEDs have several properties @@ -408,10 +599,10 @@ led_blink_rate:: if set and LED is ON then it's blinking. Blink period is equal to "led_blink_rate" specified in milliseconds. -As an input widget, LED also supports the hal-pin-changed signal. If +As an input widget, LED also supports the +hal-pin-changed signal+. If you want to get a notification in your code when the LED's HAL pin was changed, then connect this signal to a handler, for example -on_led_pin_changed and provide the handler as follows: ++on_led_pin_changed+ and provide the handler as follows: [source,python] ---------------------------------- @@ -423,12 +614,11 @@ This will be called at any edge of the signal and also during program start up to report the current value. Example LEDs: +image:images/leds.png[] +. -.LED - -image::images/leds.png[] - -=== ProgressBar [[gladevcp:HAL_ProgressBar]] +[[gladevcp:HAL_ProgressBar]] +=== ProgressBar [NOTE] This widget might go away. Use the HAL_HBar and HAL_VBar widgets @@ -437,40 +627,49 @@ instead. The HAL_ProgressBar is derived from gtk.ProgressBar and has two float HAL input pins: - - - the current value to be displayed - - .scale - the maximum absolute value of input +:: + the current value to be displayed +-scale:: + the maximum absolute value of input It has the following properties: - - scale - value scale. set maximum absolute value of input. Same as - setting the .scale pin. A float, range from - latexmath:[-2^{24}] to latexmath:[+2^{24}]. - - green_limit - green zone limit lower limit - - yellow_limit - yellow zone limit lower limit - - red_limit - red zone limit lower limit - - text_template - Text template to display the current value of the - pin. Python formatting may be used for dict - {"value":value} - - - -.Progressbar +scale:: + value scale. set maximum absolute value of input. Same as + setting the .scale pin. A float, range from + latexmath:[-2^{24}] to latexmath:[+2^{24}]. +green_limit:: + green zone limit lower limit +yellow_limit:: + yellow zone limit lower limit +red_limit:: + red zone limit lower limit +text_template:: + Text template to display the current value of the + ++ pin. Python formatting may be used for dict + +{"value":value}+ -image::images/progressbar2.png[] +Example HAL_ProgressBar: +image:images/progressbar2.png[] +. -=== ComboBox [[gladevcp:HAL_ComboBox]] +[[gladevcp:HAL_ComboBox]] +=== ComboBox HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a value from a dropdown list. It exports two HAL pins: - - -f: the current value, type FLOAT - - -s: the current value, type S32 + -f:: + the current value, type FLOAT + -s:: + the current value, type S32 It has the following property which can be set in Glade: - column: the column index, type S32, defaults to -1, range from -1..100 . +column:: + the column index, type S32, defaults to -1, range from -1..100 . In default mode this widgets sets the pins to the index of the chosen list entry. So if your widget has three labels, it may only assume @@ -483,13 +682,15 @@ displayed in the dropdown, and an int or float value to use for that choice. There's an example in -configs/gladevcp/by-widget/combobox/combobox.{py,ui} which uses column ++configs/gladevcp/by-widget/combobox/combobox.{py,ui}+ which uses column mode to pick a float value from the ListStore. If you're confused like me about how to edit ComboBox ListStores and CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. -=== Bars [[gladevcp:HAL_HBar]] [[gladevcp:HAL_VBar]] +[[gladevcp:HAL_HBar]] +[[gladevcp:HAL_VBar]] +=== Bars HAL Bar and VBar widgets for horizontal and vertical bars representing float values. They have one input FLOAT hal pin. Both bars have the @@ -527,17 +728,16 @@ z0_border, z1_border:: zone 2 -- from last border to 1. Borders are set as fractions, values from 0 to 1. -Examples: - +Horizontal bar: +image:images/hal_hbar.png[] +Vertical bar: +image:images/vscale.png[] +. -.Bars +[[gladevcp:HAL_Meter]] +=== Meter -image::images/hal_hbar.png[] -image::images/vscale.png[] - -=== Meter [[gladevcp:HAL_Meter]] - -HAL Meter is a widget like PyVCP meter representing a float value. It has +HAL Meter is a widget similar to PyVCP meter - it represents a float value and has one input FLOAT hal pin. HAL Meter has the following properties: min, max:: @@ -567,13 +767,12 @@ z0_border, z1_border:: border, zone 1 will fill from first to second border and zone 2 -- from last border to max. Borders are set as values in range min-max. -Examples: - -.HAL Meter - -image::images/hal_meter.png[] +Example HAL Meters: +image:images/hal_meter.png[] +. -=== Gremlin tool path preview for .ngc files [[gladevcp:HAL_Gremlin]] +[[gladevcp:HAL_Gremlin]] +=== Gremlin tool path preview for .ngc files Gremlin is a plot preview widget similar to the Axis preview window. It assumes a running EMC environment like Axis or Touchy. To connect to @@ -594,13 +793,22 @@ enable_dro :: Defaults to `True`. Example: +image:images/gremlin.png[] -.Gremlin +=== Animated function diagrams: HAL widgets in a bitmap -image::images/gremlin.png[] +For some applications it might be desirable to have background image - +like a functional diagram - and position widgets at appropriate places +in that diagram. A good combination is setting a bitmap background +image, like from a .png file, making the gladevcp window fixed-size, +and use the glade Fixed widget to position widgets on this image. -== Action Widgets +The code for the below example can be found in +configs/gladevcp/animated-backdrop+: + +image:images/small-screenshot.png[] + +== Action Widgets reference GladeVcp includes a collection of "canned actions" called EMC Action Widgets for the Glade user interface editor. Other than HAL widgets, @@ -622,20 +830,17 @@ widget in a nutshell: The appearance of EMC Actions in Glade is roughly as follows: -.Actions - image::images/emc-actions.png[] Tooltip hovers provide a description. -=== Action widget types -==== EMC Action widgets +=== EMC Action widgets -These are one-shot type widgets. They implement a single action and +EMC Action widgets are one-shot type widgets. They implement a single action and are for use in simple buttons, menu entries or radio/check groups. -==== EMC ToggleAction widgets +=== EMC ToggleAction widgets These are bi-modal widgets. They implement two actions or use a second (usually pressed) state to indicate that currently an action is @@ -662,66 +867,61 @@ running: - The MDI toggle sends given MDI command and waits for its completion in 'pressed' inactive state. -==== The Action_MDI Toggle and Action_MDI widgets +=== The Action_MDI Toggle and Action_MDI widgets -These widgets provide a means to execute arbitrary MDI commands. +These widgets provide a means to execute arbitrary MDI commands. The +Action_MDI widget does not wait for command completion as the +Action_MDI Toggle does, which remains disabled until command complete. -==== A simple example: Execute MDI command on button press +=== A simple example: Execute MDI command on button press -Here's a Glade UI file which conveys the basics: ++configs/gladevcp/mdi-command-example/whoareyou.ui+ is a Glade UI file which conveys the basics: Open it in Glade and study how it's done. Start Axis, and then start this from a terminal window with `gladevcp whoareyou.ui`. See the -hal_action_mdi1 Action and it's MDI command property - this just -executes (MSG, "Hi, I'm an EMC_Action_MDI") so there should be a ++hal_action_mdi1+ Action and it's +MDI command+ property - this just +executes +(MSG, "Hi, I'm an EMC_Action_MDI")+ so there should be a message popup in Axis like so: -.Who Are You - image::images/whoareyou.png[] You'll notice that the button associated with the Action_MDI action is -grayed out if the machine is off, in E-Stop or the program is running. +grayed out if the machine is off, in E-Stop or the interpreter is running. It will automatically become active when the machine is turned on and out of E-Stop, and the program is idle. -==== Parameter processing in the Action_MDI and ToggleAction_MDI widgets +=== Parameter passing with Action_MDI and ToggleAction_MDI widgets Optionally, 'MDI command' strings may have parameters substituted before they are passed to the interpreter. Parameters currently may be -names of HAL pins in the GladeVCP component (in a later release, this -will be extended to cover HAL pins of other components as well). This -is how it works: +names of HAL pins in the GladeVCP component. This is how it works: - - assume you have a HAL SpinBox named speed, and you want to pass it's + - assume you have a 'HAL SpinBox' named +speed+, and you want to pass it's current value as a parameter in an MDI command. - - The HAL SpinBox? will have a float-type HAL pin named speed-f (see + - The HAL SpinBox will have a float-type HAL pin named speed-f (see HalWidgets description). - To substitute this value in the MDI command, insert the HAL pin name enclosed like so: `${pin-name}` - for the above HAL SpinBox, we could use `(MSG, "The speed is: ${speed-f}")` just to show what's happening. -Here's the example UI file for GladeVCP: , and here's what you get: +The example UI file is +configs/gladevcp/mdi-command-example/speed.ui+. Here's what you get when running it: -.Speed image::images/speed.png[] -==== An advanced example: Feeding parameters to an O-word subroutine +=== An advanced example: Feeding parameters to an O-word subroutine It's perfectly OK to call an O-word subroutine in an MDI command, and -pass HAL pin values as actual parameters. Here's an example UI file -upload:owordsub.ui and O-word sub: +pass HAL pin values as actual parameters. An example UI file +is in +configs/gladevcp/mdi-command-example/owordsub.ui+. -Place oword.ngc so Axis can find it, and run `gladevcp owordsub.ui` from +Place +configs/gladevcp/nc_files/oword.ngc+ so Axis can find it, and run `gladevcp owordsub.ui` from a terminal window. This looks like so: -.O Word - image::images/oword.png[] -==== Preparing for an MDI Action, and cleaning up afterwards +=== Preparing for an MDI Action, and cleaning up afterwards The EMC G-Code interpreter has a single global set of variables, like feed, spindle speed, relative/absolute mode and others. If you use G @@ -736,13 +936,13 @@ O-word subroutine or G-code statement executed with an EMC ToggleAction_MDI, you might associate pre-MDI and post-MDI handlers with a given EMC ToggleAction_MDI. These handlers are optional and provide a way to save any state before executing the MDI Action, and to -restore it to previous values. The signal names are mdi-command-start -and mdi-command-stop; the handler names can be set in Glade like any +restore it to previous values afterwards. The signal names are +mdi-command-start+ +and +mdi-command-stop+; the handler names can be set in Glade like any other handler. Here's an example how a feed value might be saved and restored by such handlers (note that EMC command and status channels are available as -self.emc and self.stat through the _EMC_ActionBase class: ++self.emc+ and +self.stat+ through the EMC_ActionBase class: [source,python] ---------------------------------- @@ -758,7 +958,11 @@ self.emc and self.stat through the _EMC_ActionBase class: Only the Action_MDI Toggle widget supports these signals. -==== Using the EMC Stat object to deal with status changes +[NOTE] +In a later release of EMC2, the new M-codes M70-M72 are available which +make it saving state before a subroutine call, and restoring state on return much easier. + +=== Using the EMC Stat object to deal with status changes Many actions depend on EMC status - is it in manual, MDI or auto mode? is a program running, paused or idle? You cannot start an MDI command @@ -776,62 +980,115 @@ EMC Stat has no visible component - you just add it to your UI with Glade. Once added, you can associate handlers with its following signals: - - state-related: "state-estop", "state-estop-reset", "state-on", - "state-off" - emitted when E-Stop condition occurs, is reset, machine is - turned on, or is turned off - - mode-related: "mode-manual", "mode-mdi", "mode-auto" - emitted when - EMC enters that particular mode - - interpreter-related: "interp-run", "interp-idle", "interp-paused", - "interp-reading", "interp-waiting" - emitted when the G-code - interpreter changes into that mode +* state-related: emitted when E-Stop condition occurs, is reset, machine is turned on, or is turned off + - +state-estop+ + - +state-estop-reset+ + - +state-on+, + - +state-off+ +* mode-related: emitted when EMC enters that particular mode + - +mode-manual+ + - +mode-mdi+ + - +mode-auto+ +* interpreter-related: emitted when the G-code interpreter changes into that mode + - +interp-run+ + - +interp-idle+ + - +interp-paused+ + - +interp-reading+ + - +interp-waiting+ + + + +[[gladevcp:GladeVCP_Programming]] +== GladeVCP Programming + +=== User Defined Actions + +Most widget sets, and their associated user interface editors, support +the concept of callbacks - functions in user-written code which are +executed when 'something happens' in the UI - events like mouse clicks, +characters typed, mouse movement, timer events, window hiding and +exposure and so forth. + +HAL output widgets typically map input-type events like a button press +to a value change of the associated HAL pin by means of such a - +predefined - callback. Within PyVCP, this is really the only type of event +handling supported - doing something more complex, like executing MDI +commands to call a G-code subroutine, is not supported. + +Within GladeVCP, HAL pin changes are just one type of the general +class of events (called signals) in GTK+. Most widgets may originate such +signals, and the Glade editor supports associating such a signal with a +Python method or function name. + +If you decide to use user-defined actions, your job is to write a +Python module whose class methods - or in the simple case, just +functions - can be referred to in Glade as event handlers. GladeVCP +provides a way to import your module(s) at startup and will +automatically link your event handlers with the widget signals as set +in the Glade UI description. + +=== An example: adding custom user callbacks in Python + +This is just a minimal example to convey the idea - details are laid +out in the rest of this section. + +GladeVCP can not only manipulate or display HAL pins, you can also +write regular event handlers in Python. This could be used, among +others, to execute MDI commands. Here's how you do it: + +Write a Python module like so and save as e.g. handlers.py: + +[source,python] +---------------------------------- +nhits = 0 +def on_button_press(gtkobj,data=None): + global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) +---------------------------------- + +In Glade, define a button or HAL button, select the 'Signals' tab, and +in the GtkButton properties select the 'pressed' line. Enter +'on_button_press' there, and save the Glade file. + +Then add the option '-u handlers.py' to the gladevcp command line. If +your event handlers are spread over several files, just add multiple +'-u ' options. + +Now, pressing the button should change its label since it's set in the +callback function. -== User Defined Actions +What the +-u+ flag does: all Python functions in this file are +collected and setup as potential callback handlers for your Gtk widgets +- they can be referenced from Glade 'Signals' tabs. The callback +handlers are called with the particular object instance as parameter, +like the GtkButton instance above, so you can apply any GtkButton +method from there. -As most of the infrastructure to support user-defined actions in Glade -and the Gtk widget set is in place, the new GladeVCP version really -just provides a way for the user to write a Python module whose class -methods - or in the simple case, just functions - can be referred to in -Glade as event handlers, a way to import this module(s) into GladeVCP -at runtime and properly link it with the rest of the HAL layer. +Or do some more useful stuff, like calling an MDI command! === HAL value change events -We also extended the way the HAL input pins interact with the GladeVCP -panel. Beyond HAL widgets displaying pin values, there is now a way to -attach a 'value-changed' callback to a HAL pin, which fits nicely with -the event-driven structure of a typical widget application: every -activity, be it mouse click, key, timer expired, or the change of a HAL -pin's value, generates a callback and is handled by the same orthogonal -mechanism. +HAL input widgets, like a LED, automatically associate their HAL pin state +(on/off) with the optical appearance of the widget (LED lit/dark). -Note that the above refers to explicitly declared HAL pins. HAL -widgets come with a pre-defined signal 'hal-pin-changed', see the -HalWidgets page for details. +Beyond this builtin functionality, one may associate a change +callback with any HAL pin, including those of predefined HAL +widgets. This fits nicely with the event-driven structure of a typical +widget application: every activity, be it mouse click, key, timer +expired, or the change of a HAL pin's value, generates a callback and +is handled by the same orthogonal mechanism. -See the 'Adding HAL pins' section below for details. +For user-defined HAL pins not associated with a particular HAL widget, +the signal name is 'value-changed'. See the +<> section below for +details. -=== Persistent values in GladeVCP +HAL widgets come with a pre-defined signal called 'hal-pin-changed'. See the +<> for details. -A annoying aspect of GladeVCP in its earlier form and pyvcp is the -fact that you may change values through text entry, sliders, spin -boxes, toggle buttons etc, but their settings are not saved and -restored at the next run of EMC - they start at the default value as -set in the panel or widget definition. Therefore I added an easy-to-use -mechanism to save and restore the state of HAL widgets, and program -variables (in fact instance attributes) as well. This mechanism uses -the popular '.ini' file syntax and has safeguards against the .ini file -and the corresponding user interface or program variables getting out -of sync - just imagine renaming, adding or deleting widgets in Glade: -an .ini file lying around from a previous program version, or an -entirely different user interface, would be not be able to restore the -state properly. This situation is detected through a signature which -depends on all object names and types which are saved and to be -restored. In the case of signature mismatch, a new .ini file with -default settings is generated. === Programming model -The overall protocol is as follows: +The overall approach is as follows: - design your UI with Glade, and set signal handlers where you want actions associated with a widget @@ -998,17 +1255,44 @@ through the gladevcp -U option, for example: This should set debug to 2 and confirm that your module actually did it. -=== Persistence +=== Persistent variables in GladeVCP + +A annoying aspect of GladeVCP in its earlier form and pyvcp is the +fact that you may change values and HAL pins through text entry, +sliders, spin boxes, toggle buttons etc, but their settings are not +saved and restored at the next run of EMC - they start at the default +value as set in the panel or widget definition. + +GladeVCP has an easy-to-use mechanism to save and restore the state of +HAL widgets, and program variables (in fact any instance attribute of +type int, float, bool or string). + +This mechanism uses the popular '.ini' file format to save and reload +persistent attributes. + +==== Persistence, program versions and the signature check + +Imagine renaming, adding or deleting widgets in Glade: +an .ini file lying around from a previous program version, or an +entirely different user interface, would be not be able to restore the +state properly since variables and types might have changed. + +GladeVCP detects this situation by a signature which depends on all +object names and types which are saved and to be restored. In the case +of signature mismatch, a new .ini file with default settings is +generated. + +=== Using persistent variables -If you want any of: Gtk widget state, HAL widgets output pin's values +If you want any of Gtk widget state, HAL widgets output pin's values and/or class attributes of your handler class to be retained across invocations, proceed as follows: - - import the gladevcp.persistence module + - import the +gladevcp.persistence+ module - decide which instance attributes, and their default values you want to have retained, if any - decide which widgets should have their state retained - - describe these decisions in your handler class' `__init__()` method + - describe these decisions in your handler class' +__init__()+ method through a nested dictionary as follows: [source,python] @@ -1029,7 +1313,7 @@ def __init__(self, halcomp,builder,useropts): } ---------------------------------- -and associate an .ini file with this descriptor: +Then associate an .ini file with this descriptor: [source,python] ---------------------------------- @@ -1038,7 +1322,7 @@ self.ini = IniFile(self.ini_filename,self.defaults,self.builder) self.ini.restore_state(self) ---------------------------------- -after `restore_state()`, self will have attributes set if as running the +After `restore_state()`, self will have attributes set if as running the following: [source,python] @@ -1055,15 +1339,18 @@ self.defaults. After this incantation, you can use the following IniFil methods: - - `ini.save_state(obj)` - saves objs's attributes as per IniFil.vars - dictionary and the widget state as described in IniFile.widgets in - self.defaults - - `ini.create_default_ini()` - create a .ini file with default values - - `ini.restore_state(obj)` - restore HAL out pins and obj's attributes as - saved/initialized to default as above +ini.save_state(obj):: + saves objs's attributes as per IniFil.vars + dictionary and the widget state as described in IniFile.widgets in + self.defaults +ini.create_default_ini():: + create a .ini file with default values +ini.restore_state(obj):: + restore HAL out pins and obj's attributes as + saved/initialized to default as above To save the widget and/or variable state on exit, connect a signal -handler to the window1 (toplevel) destroy event: +handler to the +window1+ (toplevel) destroy event: [source,python] ---------------------------------- @@ -1082,6 +1369,7 @@ is detected, a console message will hint about that happened, and the bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini files overwrite earlier .BAD files. +[[gladevcp:Adding_HAL_pins]] === Adding HAL pins If you need HAL pins which are not associated with a specific HAL @@ -1096,7 +1384,7 @@ self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_B ---------------------------------- To get a callback when this pin's value changes, associate a -*value-change* callback with this pin, add: ++value-change+ callback with this pin, add: [source,python] ---------------------------------- @@ -1104,7 +1392,7 @@ self.example_trigger.connect('value-changed', self._on_example_trigger_change) ---------------------------------- and define a callback method (or function, in this case leave out the -'self' parameter): ++self+ parameter): [source,python] ---------------------------------- @@ -1115,9 +1403,10 @@ def _on_example_trigger_change(self,pin,userdata=None): === Adding timers -Since GladeVCP uses Gtk widgets which rely on the GObject base class, -the full glib functionally is available. Here is an example for a timer -callback: +Since GladeVCP uses Gtk widgets which rely on the +http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject] +base class, the full glib functionally is available. Here is an +example for a timer callback: [source,python] ---------------------------------- @@ -1131,33 +1420,12 @@ def _on_timer_tick(self,userdata=None): glib.timeout_add_seconds(1, self._on_timer_tick) ---------------------------------- -=== Implementation note: Key handling in Axis - -We believe key handling works OK, but since it is new code, we're -telling about it you so you can watch out for problems; please let us -know of errors or odd behavior. This is the story: - -Axis uses the TkInter widget set. GladeVCP applications use Gtk -widgets and run in a separate process context. They are hooked into -Axis with the Xembed protocol. This allows a child application like -GladeVCP to properly fit in a parent's window, and - in theory - have -integrated event handling. +=== Examples, and rolling your own GladeVCP application -However, this assumes that both parent and child application properly -support the Xembed protocol, which Gtk does, but TkInter doesn't. A -consequence of this is that certain keys would not be forwarded from a -GladeVCP panel to Axis properly under all circumstances. One of these -situations was the case when an Entry, or SpinButton widget had focus: -in this case, for instance an Escape key would not have been forwarded -to Axis and cause an abort as it should, with potentially disastrous -consequences. +Visit +emc2/configs/gladevcp+ for running examples and starters for your own projects. -Therefore, key events in GladeVCP are explicitly handled, and -selectively forwarded to Axis, to assure that such situations cannot -arise. For details, see the `keyboard_forward()` function in -`lib/python/gladevcp/xembed.py`. -=== FAQ +== FAQ [qanda] I get an unexpected unmap event in my handler function right after startup. What's this?:: @@ -1184,8 +1452,60 @@ My GladeVCP program starts, but no window appears where I expect it to be?:: with 'gladevcp ' and its window has reasonable geometry, it should come up in Axis properly as well. -=== Examples, and rolling your own GladeVCP application +I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. +It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is +invalid or out of range for property `led-blink-rate' of type `gint'?:: + This seems to be a glade bug. Just type over the blink rate field, and save again - this works for me. + +My gladevcp panel in Axis doesnt save state when I close Axis,although I defined +an on_destroy handler linked to the window destroy signal:: + Very likely this handler is linked to window1, + which due to reparenting isnt usable for this purpose. Please link + the on_destroy handler to the destroy signal of an interior + window. For instance, I have a notebook inside window1, and linked + on_destroy to the notebooks destroy signal, and that works fine. It + doesnt work for window1. + +// FIXME this is out of date +== Troubleshooting + + - make sure your have the development version of EMC2 installed. You + don't need the axisrc file any more, this was mentioned in the old + GladeVcp wiki page. + - run GladeVCP or Axis from a terminal window. If you get Python errors, + check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ + file lying around besides the newer + +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, + remove the +hal.so+ file. It has been superseded by hal.py in the same + directory and confuses the import mechanism. + - if you're using run-in-place, do a 'make clean' to remove any + accidentally left over hal.so file, then 'make'. + - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have + an HAL pin associated with it which is off by default. This pin + controls whether these container's children are active or not. + +== Implementation note: Key handling in Axis + +We believe key handling works OK, but since it is new code, we're +telling about it you so you can watch out for problems; please let us +know of errors or odd behavior. This is the story: + +Axis uses the TkInter widget set. GladeVCP applications use Gtk +widgets and run in a separate process context. They are hooked into +Axis with the Xembed protocol. This allows a child application like +GladeVCP to properly fit in a parent's window, and - in theory - have +integrated event handling. + +However, this assumes that both parent and child application properly +support the Xembed protocol, which Gtk does, but TkInter doesn't. A +consequence of this is that certain keys would not be forwarded from a +GladeVCP panel to Axis properly under all circumstances. One of these +situations was the case when an Entry, or SpinButton widget had focus: +in this case, for instance an Escape key would not have been forwarded +to Axis and cause an abort as it should, with potentially disastrous +consequences. -Visit emc2/configs/gladevcp for running examples. The templates -subdirectory has starters for your own projects. - +Therefore, key events in GladeVCP are explicitly handled, and +selectively forwarded to Axis, to assure that such situations cannot +arise. For details, see the `keyboard_forward()` function in +`lib/python/gladevcp/xembed.py`. diff --git a/docs/src/gui/gladevcp_fr.txt b/docs/src/gui/gladevcp_fr.txt index 8413b6c63..9752cfb80 100644 --- a/docs/src/gui/gladevcp_fr.txt +++ b/docs/src/gui/gladevcp_fr.txt @@ -1,133 +1,338 @@ = GladeVCP -GladeVCP is an EMC2 component which adds the ability to add a virtual -control panel to EMC user interfaces like Axis or Touchy. It is similar -to PyVCP; whereas PyVCP panels are created by editing an XML file -manually, GladeVCP uses the Glade WYSIWYG user interface editor. -Therefore, it's faster and easier to create visually pleasing panels -with GladeVCP. +// TODO: +// - manual-example.ui layout - really bad +// - restructure faq/troubleshooting/notes section +// - check wiki vs docs +// - check other gladevcp docs branch against this -[NOTE] -Until GladeVCP is fully integrated with EMC2 please refer to the EMC -wiki page GladeVcpSetup for instructions on installing and setting up -GladeVCP. -== Creating your first GladeVCP UI component +:ini: {basebackend@docbook:'':ini} +:hal: {basebackend@docbook:'':hal} +:ngc: {basebackend@docbook:'':ngc} +// begin a listing of ini/hal/ngc files like so: +//[source,{ini}] +//[source,{hal}] +//[source,{ngc}] -Either modify an existing UI component, or start a new one by -running Glade. In the left tab, expand the 'HAL Python' components. -Create a window as top level window from the 'Toplevels' section, which -by default will be named window1. Leave that name as is - GladeVCP -assumes the top level window has this name. Add a HAL_Box or a -HAL_Table from 'HAL Python' to the frame, and pick and place some -elements like LED, button, etc., in its box. -This will look like so: +== What is GladeVCP? -.Glade +GladeVCP is an EMC2 component which adds the ability to add a new user +interface panel to EMC user interfaces like Axis or Touchy. Unlike +PyVCP, GladeVCP is not limitied to displaying and setting HAL pins, as +arbitrary actions can be executed in Python code - in fact, a +complete EMC2 user interface could be built with GladeVCP and Python. -image::images/glade-myui.png[] +GladeVCP users the http://glade.gnome.org/[Glade] WYSIWYG user +interface editor, which makes it easy to create visually pleasing +panels. It relies on the http://www.pygtk.org/[PyGTK] bindings to the +rich http://www.gtk.org/[GTK+] widget set, and in fact all of these +may be used in a GladeVCP application - not just the specialized +widgets for interacting with HAL and EMC, which are documented here. -Select File->Save as, give it a name like 'myui.ui' and make sure it's -saved as 'GtkBuilder' file (radio button left bottom corner in Save -dialog). The convention for GtkBuilder file extension is '.ui'. You can -now run it with: - gladevcp myui.ui +=== PyVCP versus GladeVCP at a glance -== Integrating the example UI into Axis +Both support the creation of panels with 'HAL widgets' - user +interface elements like LED's, buttons, sliders etc whose values are +linked to a HAL pin, which in turn interfaces to the rest of EMC2. -While you could run your UI as a separate top level window -side-by-side with Axis, having it within the Axis frame as a tab -side-by-side with the Preview and DRO tabs is more elegant. To do so, -edit your .ini file and add two variables to the DISPLAY section of ini -file: +*PyVCP:* - EMBED_TAB_NAME = GladeVCP + - widget set: uses TkInter widgets + - user interface creation: "edit XML file / run result / evaluate looks" cycle + - no support for embedding user-defined event handling + - no EMC2 interaction beyond HAL pin I/O supported - EMBED_TAB_COMMAND = - gladevcp -c gladevcp-test -w {XID} -H gladevcp-test.hal +*GladeVCP:* -Try it out by running Axis - there should be a new tab called -'GladeVCP' near the DRO tab. Select that tab, you should see the -example panel nicely fit within Axis like so: + - widget set: relies on the http://www.gtk.org/[GTK+] widget set. + - user interface creation: uses the http://glade.gnome.org/[Glade] WYSIWYG user interface editor + - any HAL pin change may be directed to call back into a user-defined Python event handler + - any GTK signal (key/button press, window, I/O, timer, network events) may be associated with user-defined handlers in Python + - direct EMC2 interaction: arbitrary command execution, like initiating MDI +commands to call a G-code subroutine, plus support for status change operations through Action Widgets LINKHERE + - several independent GladeVCP panels may be run in different tabs + - separation of user interface appearance and functionality: change appearance without touching any code -.GladeVCP in Axis +== A Quick Tour with the Example Panel -image::images/axis-gladevcp.png[] +GladeVCP panel windows may be run in three different setups: -== Integrating into Touchy + - always visible integrated into Axis at the right side, exactly like PyVCP panels + - as a tab in Axis and Touchy; in Axis this would create a third tab besides the Preview and DRO tabs which must be raised explicitly + - as a standalone toplevel window, which can be iconifyed/deiconified independent of the main window. -Touchy also understands `EMBED_TAB_NAME` and `EMBED_TAB_COMMAND` variables -from INI file so instructions for it are equal to Axis. +Run the sample GladeVCP panel integrated into Axis like PyVCP as follows: -== Axis: linking HAL pins in the example UI + $ cd configs/sim + $ emc gladevcp_panel.ini -To be useful, the pins in your UI need to be linked to the rest of -your setup. Usually this is done by running one or several HAL files -through the HALFILE and POSTGUI_HALFILE statements in the HAL section -of your .ini file. +image::images/example-panel-small.png[] -For GladeVCP components this not currently possible because all of -these HALFILE statements are run before GladeVCP is started, so linking -to your UI's pins from there would refer to pins which do not yet -exist. You therefore need to prepare a file of all HAL commands which -refer to / link with your UI's pins and pass it to the GladeVCP command -in the `EMBED_TAB_COMMAND` statement like so: +Run the same panel, but as a tab inside Axis: ------------------------------------------------------------------------- -EMBED_TAB_COMMAND = gladevcp -c gladevcp-test -H gladevcp-test.hal \ - -w {XID} gladevcp-test.glade ------------------------------------------------------------------------- + $ cd configs/sim + $ emc gladevcp_tab.ini -There is an example `gladevcp-test.hal` file in the -`emc2-dev/lib/python/gladevcp` directory. Before using it in the -`EMBED_TAB_NAME` statement, make sure the loadusr statements at the top -are commented out. +image::images/example-tabbed-small.png[] -== Adding custom user callbacks in Python +To run this panel as a standalone toplevel window besides Axis, just +start Axis in the background and start gladevcp as follows: -This is just a very minimal example to convey the idea - for a -detailed description on how to program a GladeVCP application, see -GladeVCPprogramming and HalWidgets. + $ cd configs/sim + $ emc axis.ini & + $ gladevcp -c gladevcp -u ../gladevcp/hitcounter.py -H ../gladevcp/manual-example.hal ../gladevcp/manual-example.ui -GladeVCP can not only manipulate or display HAL pins, you can also -write regular event handlers in Python. This could be used, among -others, to execute MDI commands. Here's how you do it: +image::images/example-float-small.png[] -Write a Python module like so and save as e.g. handlers.py: +To run this panel inside 'Touchy': -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----------------------------------- + $ cd configs/sim + $ emc gladevcp_touchy.ini -In Glade, define a button or HAL button, select the 'Signals' tab, and -in the GtkButton properties select the 'pressed' line. Enter -'on_button_press' there, and save the Glade file. +image::images/touchy-tab-33.png[] -Then add the option '-u handlers.py' to the gladevcp command line. If -your event handlers are spread over several files, just add multiple -'-u ' options. -Now, pressing the button should change its label since it's set in the -callback function. +Functionally these setups are identical - they only differ in screen +real estate requirements and visibility. Since it is possible to run +several GladeVCP components in parallel (with different HAL module +names), mixed setups are possible as well - for instance a panel on +the right hand side, and one or more tabs for less-frequently used +parts of the interface. -What the -u flag does is: all Python functions in this file are -collected and setup as potential callback handlers for your Gtk widgets -- they can be referenced from Glade 'Signals' tabs. The callback -handlers are called with the particular object instance as parameter, -like the GtkButton instance above, so you can apply any GtkButton -method from there. +=== Exploring the example panel -Or do some more useful stuff, like calling an MDI command! +While running Axis, explore 'Show HAL Configuration' - you will find +the 'gladevcp' HAL component and may observe their pin values while +interacting with the widgets in the panel. The HAL setup can be +found in 'configs/gladevcp/manual-example.hal'. + +The example panel has two frames at the bottom. The panel is +configured so that resetting ESTOP activates the Settings frame and +turning the machine on enables the Commands frame at the bottom. The HAL +widgets in the Settings frame are linked to LEDs and labels in the +'Status' frame, and to the current and prepared tool number - play +with them to see the effect. Executing the 'T' and 'M6' +commands in the MDI window will change the current and prepared tool +number fields. + +The buttons in the 'Commands' frame are 'MDI Action widgets' - +pressing them will execute an MDI command in the interpreter. The +third button 'Execute Oword subroutine' is an advanced example - it +takes several HAL pin values from the 'Settings' frame, and passes +them as parameters to the Oword subroutine. The actual parameters +received by the routine are displayed by '(DEBUG, )' commands - see +'configs/gladevcp/nc_files/oword.ngc' for the subroutine body. + +To see how the panel is integrated into Axis, see the +'[DISPLAY]GLADEVCP' statements in gladevcp_panel.ui, and the +'[DISPLAY]EMBED*' and '[HAL]POSTGUI_HALFILE' statements in +gladevcp_tab.ini respectively. + +=== Exploring the User Interface description + +The user interface is created with the glade UI editor - to explore +it, you need to have <>. To +edit the user interface, run the command + + $ glade configs/gladevcp/manual-example.ui + +The center window shows the appearance of the UI. All user +interface objects and support objects are found in the right top +window, where you can select a specific widget (or by clicking on it +in the center window). The properties of the selected widget are +displayed, and can be changed, in the right bottom window. + +To see how MDI commands are passed from the MDI Action widgets, +explore the widgets listed under 'Actions' in the top right window, +and in the right bottom window, unter the 'General' tab, the 'MDI +command' property. + +=== Exploring the Python callback +See how a Python callback is integrated into the example: + + - in glade, see the +hits+ label widget (a plain GTK+ widget) + - in the +button1+ widget, look at the 'Signals' tab, and find the signal 'pressed' associated with the handler 'on_button_press' + - in ../gladevcp/hitcounter.py, see the method 'on_button_press' and see how it sets the label property in the 'hits' object + +The is just touching upon the concept - the callback mechanism will be +handled in more detail in the <> section. + +== Creating and Integrating a Glade user interface + +[[gladevcp:Prerequisites]] +=== Prerequisite: Glade installation +To view or modify Glade UI files, you need glade installed - it is not +needed just to run a GladeVCP panel. If the glade command is ḿissing, +install it with the command: + + $ sudo apt-get install glade + +Verify the version number to be greater than 3.6.7: + + $ glade --version + glade3 3.6.7 + +=== Running Glade to create a new user interface +This section just outlines the initial EMC2-specific steps. For more +information and a tutorial on glade, see http://glade.gnome.org. Some +glade tips & tricks may also be found on +http://www.youtube.com[youtube]. + +Either modify an existing UI component by running +glade .ui+ +or start a new one by just running the +glade+ command from the shell. + +- If EMC2 was not installed from a package, the EMC2 shell environment needs to be set up with ++. /scripts/emc-environment+, otherwise glade won't find the EMC2-specific widgets. +- When asked for unsaved Preferences, just accept the defaults and hit 'Close'. +- From 'Toplevel' (left pane), pick 'Window' (first icon) as top level window, which +by default will be named 'window1'. Do not change this name - GladeVCP relies on it. +- In the left tab, scroll down and expand 'HAL Python' and 'EMC Actions'. +- add a container like a HAL_Box or a HAL_Table from 'HAL Python' to the frame +- pick and place some elements like LED, button, etc. within a container + +This will look like so: + +image::images/glade-manual-small.png[] + +Glade tends to write a lot of messages to the shell window, which +mostly can be ignored. Select 'File->Save as', give it a name like +'myui.ui' and make sure it's saved as 'GtkBuilder' file (radio button +left bottom corner in Save dialog). GladeVCP will also process the +older 'libglade' format correctly but there is no point in using it. The +convention for GtkBuilder file extension is '.ui'. + +=== Testing a panel +You're now ready to give it a try (while EMC2, e.g. Axis is running) it with: + + gladevcp myui.ui + +GladeVCP creates a HAL component named like the basename of the UI +file - 'myui' in this case - unless overriden by the +-c + option. If running Axis, just try 'Show HAL configuration' and +inspect its pins. + +You might wonder why widgets contained a 'HAL_Hbox' or 'HAL_Table' appear +greyed out (inactive). HAL containers have an associated HAL pin which +is off by default, which causes all contained widgets to render +inactive. A common use case would be to associate these container HAL +pins with +halui.machine.is-on+ or one of the +halui.mode.+ signals, +to assure some widgets appear active only in a certain state. + +To just activate a container, execute the HAL command +setp gladevcp. 1+. + +=== Preparing the HAL command file +The suggested way of linking HAL pins in a GladeVCP panel is to +collect them in a separate file with extension +.hal+. This file is +passed via the +POSTGUI_HALFILE=+ option in the +HAL+ section of your +ini file. + +CAUTION: Do not add the GladeVCP HAL command file to the Axis +[HAL]HALFILE=+ ini +section, this will not have the desired effect - see the following sections. + +=== Integrating into Axis like PyVCP + +Place the GladeVCP panel in the righthand side panel by specifying the +following in the ini file: + +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel where PyVCP used to live: +GLADEVCP= -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +The HAL component name of a GladeVCP application started with the the GLADEVCP option is fixed: +gladevcp+. +The command line actually run by Axis in the above configuration is as follows: -== Gladevcp command line options + halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -See also 'man gladevcp' . This is the usage message when you run -'gladevcp -h': +This means you may add arbitrary gladevcp options here, as long as +they dont collide with the above command line options. + +[NOTE] +The +[RS274NGC]SUBROUTINE_PATH=+ option is only set so the example +panel will find the Oword subroutine for the MDI Command widget. It +might not be needed in your setup. + +=== Integrating into Axis as a tab next to DRO and Preview + +To do so, edit your .ini file and add to the DISPLAY and HAL sections of ini +file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab next to Preview/DRO: +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui + +[HAL] +# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE +POSTGUI_HALFILE = ../gladevcp/manual-example.hal + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the 'halcmd loadusr' way of starting the tab command - this +assures that 'POSTGUI_HALFILE' will only be run after the HAL +component is ready. In rare cases you might run a a command here which +uses a tab but does not have an associated HAL component. Such a +command can be started without 'halcmd loadusr', and this signifies to +Axis that it does not have to wait for a HAL component since there is +none. + +When changing the component name in the above example, note that the +names used in +-Wn + and +-c + must be +identical. + +Try it out by running Axis - there should be a new tab called +'GladeVCP demo' near the DRO tab. Select that tab, you should see the +example panel nicely fit within Axis. + +[NOTE] +Make sure the UI file is the last option passed to GladeVCP in +both the +GLADEVCP=+ and +EMBED_TAB_COMMAND=+ statements. + +=== Integrating into Touchy +To do add a GladeVCP tab to 'Touchy', edit your .ini file as follows: +[source,{ini}] +------------------------------------------------------- +[DISPLAY] +# add GladeVCP panel as a tab +EMBED_TAB_NAME=GladeVCP demo +EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py -H ../gladevcp/gladevcp-touchy.hal ../gladevcp/manual-example.ui + +[RS274NGC] +# gladevcp Demo specific Oword subs live here +SUBROUTINE_PATH = ../gladevcp/nc_files/ +------------------------------------------------------- + +Note the following differences to the Axis tab setup: + + - The HAL command file is slightly modified since 'Touchy' does not + use the 'halui' components so its signals are not available and some + shortcuts have been taken. + + - there is no 'POSTGUI_HALFILE=' ini option, but passing the HAL command file on the 'EMBED_TAB_COMMAND=' line is ok + + - the 'halcmd loaduser -Wn ...' incantation is not needed. + +== GladeVCP command line options + +See also 'man gladevcp' . These are the gladevcp command line options: Usage: gladevcp [options] myfile.ui @@ -136,75 +341,41 @@ Options: -h, --help:: show this help message and exit --c NAME:: +-c NAME:: Set component name to NAME. Default is base name of UI file -d:: Enable debug output --g GEOMETRY:: - Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET.Values are in pixel units, - XOFFSET/YOFFSET is referenced from top left of screen use -g - WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just - position -H FILE execute HAL statements from FILE with halcmd after the +-g GEOMETRY:: + Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET. Values are in pixel units, + XOFFSET/YOFFSET is referenced from top left of screen. + Use -g WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just + position + +-H FILE:: + execute hal statements from FILE with halcmd after the component is set up and ready --x XID:: +-m MAXIMUM:: + force panel window to maximize. Together with the -g geometry option + one can move the panel to a second monitor and force it to use all of the screen + +-t THEME:: + set gtk theme. Default is system theme. Different panels can have different themes. + An example theme can be found in the http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?GTK_Themes[EMC Wiki]. + +-x XID:: Re-parent GladeVCP into an existing window XID instead of creating a new top level window --u FILE:: +-u FILE:: Use File's as additional user defined modules with handlers --U USEROPT:: +-U USEROPT:: pass USEROPTs to Python modules -== Troubleshooting - - - make sure your have the development version of EMC2 installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a /usr/lib/python2.6/dist-packages/hal.so - file lying around besides the newer - /usr/lib/python2.6/dist-packages/_hal.so (note underscore); if yes, - remove the hal.so file. It has been superseded by hal.py in the same - directory and thus creates confusion. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -= GladeVCP Programming - -== PyVCP to GladeVCP - -Stock GladeVCP can be used pretty much in the style of PyVCP - the -major difference being that in the case of GladeVCP, the Glade user -interface editor is used to design a screen layout, whereas PyVCP is -driven by manually edited XML files. Also, PyVCP uses the TkInter -widgets, whereas GladeVCP uses the much richer Gtk toolkit. Both -support 'HAL widgets' - widgets with one or more associated HAL pin -which is the interface to the rest of EMC. Stock GladeVCP and PyVCP -panels are really just a bunch of virtual switches, dials, LEDs and so -forth, wired to the outside world through the HAL layer, designed to -set and read ints, bits and floats values. - -Most widget sets, and their associated user interface editors, support -the concept of callbacks - functions in user-written code which are -executed when 'something happens' in the UI - events like mouse clicks, -characters typed, mouse movement, timer events, window hiding and -exposure and so forth. Both PyVCP and stock GladeVCP mainly do two -things: mapping events on HAL widgets to actions like a value change of -the associated HAL pin, and in the other direction - detecting if HAL -pin values changed and updating the associated widget, like a LED, a -meter, a bar, or just some label displaying a value. However, neither -PyVCP nor stock GladeVCP provide support for other actions than -changing HAL values. Doing something more complex, like executing MDI -commands to call a G-code subroutine, is outside scope. - -== HAL Widgets +== HAL Widget reference GladeVcp includes a collection of Gtk widgets with attached HAL pins called HAL Widgets, intended to control, display or otherwise interact @@ -215,11 +386,12 @@ in the Glade 'General' section have an associated mouse-over tool tip. HAL signals come in two variants, bits and numbers. Bits are off/on signals. Numbers can be "float", "s32" or "u32". For more information -on HAL data types see the [->] section. The GladeVcp widgets can either -display the value of the signal with an indicator widget, or modify the -signal value with a control widget. Thus there are four classes of -GladeVcp widgets that you can connect to a HAL signal. Another class of -helper widgets allow you to organize and label your panel. +on HAL data types see the <>. The GladeVcp +widgets can either display the value of the signal with an indicator +widget, or modify the signal value with a control widget. Thus there +are four classes of GladeVcp widgets that you can connect to a HAL +signal. Another class of helper widgets allow you to organize and +label your panel. - Widgets for indicating "bit" signals: <> - Widgets for controlling "bit" signals: <>, @@ -236,24 +408,28 @@ helper widgets allow you to organize and label your panel. - Tool Path preview: <> HAL Widgets inherit methods, properties and signals from the -underlying Gtk widgets, so it is helpful to consult the Gtk and PyGTK +underlying Gtk widgets, so it is helpful to consult the +http://www.gtk.org/[GTK+] and http://www.pygtk.org/[PyGTK bindings] documentation as well. + === Widget and HAL pin naming Most HAL widgets have a single associated HAL pin with the same name -as the widget (glade: General->Name). Exceptions to this rule currently -are the HAL_Spinbutton, which has two pins: a -f (float) -and a -s (s32) pin, and the HAL_ProgressBar, which has a - value input pin, and a .scale input pin. +as the widget (glade: General->Name). + +Exceptions to this rule currently are. + +- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin +- 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. === Setting pin and widget values As a general rule, if you need to set a HAL output widget's value from Python code, do so by calling the underlying Gtk 'setter' (e.g. -`set_active()`, `set_value()`) - do not try to set the associated pin's -value by `halcomp[pinname] = value` directly because the widget 'will not -notice'. ++set_active()+, +set_value()+) - do not try to set the associated pin's +value by +halcomp[pinname] = value+ directly because the widget will not +take notice of the change!. It might be tempting to 'set HAL widget input pins' programmatically. Note this defeats the purpose of an input pin in the first place - it @@ -263,32 +439,34 @@ input pins in HAL Python, this doesn't make sense. You might use setp pinname value in the associated halfile for testing though. It is perfectly OK to set an output HAL pin's value with -halcomp[pinname] = value provided this HAL pin is not associated with a ++halcomp[pinname] = value+ provided this HAL pin is not associated with a widget, that is, has been created by the -hal_glib.GPin(halcomp.newpin(,,) method (see ++hal_glib.GPin(halcomp.newpin(,,)+ method (see GladeVCP Programming for an example). +[[gladevcp::hal-pin-changed_signal]] === The hal-pin-changed signal -Event-driven programming means that the UI tells you when "something +Event-driven programming means that the UI tells your code when "something happens" - through a callback, like when a button was pressed. The output HAL widgets (those which display a HAL pin's value) like LED, -Bar, VBar, Meter etc, support the hal-pin-changed signal which may +Bar, VBar, Meter etc, support the 'hal-pin-changed' signal which may cause a callback into your Python code when - well, a HAL pin changes its value. This means there's no more need for permanent polling of HAL pin changes in your code, the widgets do that in the background and let -you know. The example in configs/gladevcp/examples/complex shows how -this is handled in Python. +you know. -Here is an example how to set a hal-pin-changed signal for a HAL_LED +Here is an example how to set a +hal-pin-changed+ signal for a HAL_LED in the Glade UI editor: +image::images/hal-pin-change-66.png[] +The example in +configs/gladevcp/examples/complex+ shows how +this is handled in Python. -.HAL Pin Change - -image::images/hal-pin-change.png[] - -=== Buttons [[gladevcp:HAL_Button]] [[gladevcp:HAL_RadioButton]] [[gladevcp:HAL_CheckButton]] +[[gladevcp:HAL_Button]] +[[gladevcp:HAL_RadioButton]] +[[gladevcp:HAL_CheckButton]] +=== Buttons This group of widgets are derived from various Gtk buttons and consists of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton @@ -297,19 +475,23 @@ the widget. Buttons have no additional properties compared to their base Gtk classes. - HAL_Button: instantaneous action, does not retain state. Important - signal: pressed + signal: +pressed+ - HAL_ToggleButton, HAL_CheckButton: retains on/off state. Important - signal: toggled - - HAL_RadioButton: a one-of-many group. Important signal: toggled (per + signal: +toggled+ + - HAL_RadioButton: a one-of-many group. Important signal: +toggled+ (per button). - - Important common methods: set_active(), get_active() - - Important properties: label, image - + - Important common methods: +set_active()+, +get_active()+ + - Important properties: +label+, +image+ -.Buttons -image::images/checkbutton.png[] -image::images/radiobutton.png[] +// .Buttons +Check button: +image:images/checkbutton.png[] +Radio buttons: +image:images/radiobutton.png[] +Toggle button: +image:images/button.png[] +. [TIP] ====================================== @@ -317,72 +499,81 @@ Defining radio button groups in Glade: - decide on default active button -- in the other button's General->Group select the default active +- in the other button's 'General->Group' select the default active button's name in the 'Choose a Radio Button in this project' dialog. -See configs/gladevcp/by-widget/radiobutton for a GladeVCP application +See +configs/gladevcp/by-widget/radiobutton+ for a GladeVCP application and UI file for working with radio buttons. ====================================== -=== Scales [[gladevcp:HAL_HScale]] [[gladevcp:HAL_VScale]] +[[gladevcp:HAL_HScale]] +[[gladevcp:HAL_VScale]] +=== Scales HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectively. They have one output FLOAT pin with name equal to widget name. Scales have no additional properties. - -.Scale - -image::images/hscale.png[] - -Hint: To make a scale useful in Glade, add an 'Adjustment' +To make a scale useful in Glade, add an 'Adjustment' (General->Adjustment->New or existing adjustment) and edit the adjustment object. It defines the default/min/max/increment values. Also, set adjustment 'Page size' and 'Page increment' to zero to avoid warnings. -=== SpinButton [[gladevcp:HAL_SpinButton]] - -HAL SpinButton is derived from GtkSpinButton and holds two pins: - - - `{widgetname}-f`: out FLOAT pin - - `{widgetname}-s`: out S32 pin +Example HAL_HScale: +image:images/hscale.png[] +. +[[gladevcp:HAL_SpinButton]] +=== SpinButton -.SpinButton +HAL SpinButton is derived from GtkSpinButton and holds two pins: -image::images/spinbutton.png[] +-f:: + out FLOAT pin +-s:: + out S32 pin -[TIP] To be useful, Spinbuttons need an adjustment value like scales, see above. -=== Label [[gladevcp:HAL_Label]] +Example SpinButton: +image:images/spinbutton.png[] +. -HAL_Label is simple widget based on GtkLabel which represents a HAL -pin value in a user-defined format. The pin's HAL type depends on the -label_pin_type property (0:S32, 1:float, 2:U32), see also the tooltip -on General->HAL pin type (note this is different from PyVCP which has -three label widgets, one for each type). +[[gladevcp:HAL_Label]] +=== Label -The text displayed depends on the text_template property - an Python -format string to represent the pin value. It defaults to "%s" (values -are converted by the str() function) but may contain anything legit in -a as argument to Pythons format() method. +HAL_Label is a simple widget based on GtkLabel which represents a HAL +pin value in a user-defined format. -Example: `Distance: %.03f` will display the text and the pin value with -3 fractional digits padded with zeros for a FLOAT pin. +label_pin_type:: + The pin's HAL type (0:S32, 1:float, 2:U32), see also the tooltip + on 'General->HAL pin type '(note this is different from PyVCP which has + three label widgets, one for each type). + +text_template:: + Determines the text displayed - a Python + format string to convert the pin value to text. Defaults to +%s+ (values + are converted by the str() function) but may contain any legit as an + argument to Pythons format() method. + + Example: +Distance: %.03f+ will display the text and the pin value with + 3 fractional digits padded with zeros for a FLOAT pin. -=== Containers: HAL_HBox and HAL_Table [[gladevcp:HAL_HBox]] [[gladevcp:HAL_Table]] +[[gladevcp:HAL_HBox]] +[[gladevcp:HAL_Table]] +=== Containers: HAL_HBox and HAL_Table Compared to their Gtk counterparts they have one input BIT pin which controls if their child widgets are sensitive or not. If the pin is low then child widgets are inactive which is the default. -Hint: if you find some part of your GladeVCP application is 'grayed +[TIP] +If you find some part of your GladeVCP application is 'grayed out' (insensitive), see whether a container's pin is unset. -=== LED [[gladevcp:HAL_LED]] +[[gladevcp:HAL_LED]] +=== LED The hal_led simulates a real indicator LED. It has a single input BIT pin which controls it's state: ON or OFF. LEDs have several properties @@ -408,10 +599,10 @@ led_blink_rate:: if set and LED is ON then it's blinking. Blink period is equal to "led_blink_rate" specified in milliseconds. -As an input widget, LED also supports the hal-pin-changed signal. If +As an input widget, LED also supports the +hal-pin-changed signal+. If you want to get a notification in your code when the LED's HAL pin was changed, then connect this signal to a handler, for example -on_led_pin_changed and provide the handler as follows: ++on_led_pin_changed+ and provide the handler as follows: [source,python] ---------------------------------- @@ -423,12 +614,11 @@ This will be called at any edge of the signal and also during program start up to report the current value. Example LEDs: +image:images/leds.png[] +. -.LED - -image::images/leds.png[] - -=== ProgressBar [[gladevcp:HAL_ProgressBar]] +[[gladevcp:HAL_ProgressBar]] +=== ProgressBar [NOTE] This widget might go away. Use the HAL_HBar and HAL_VBar widgets @@ -437,40 +627,49 @@ instead. The HAL_ProgressBar is derived from gtk.ProgressBar and has two float HAL input pins: - - - the current value to be displayed - - .scale - the maximum absolute value of input +:: + the current value to be displayed +-scale:: + the maximum absolute value of input It has the following properties: - - scale - value scale. set maximum absolute value of input. Same as - setting the .scale pin. A float, range from - latexmath:[-2^{24}] to latexmath:[+2^{24}]. - - green_limit - green zone limit lower limit - - yellow_limit - yellow zone limit lower limit - - red_limit - red zone limit lower limit - - text_template - Text template to display the current value of the - pin. Python formatting may be used for dict - {"value":value} - - - -.Progressbar +scale:: + value scale. set maximum absolute value of input. Same as + setting the .scale pin. A float, range from + latexmath:[-2^{24}] to latexmath:[+2^{24}]. +green_limit:: + green zone limit lower limit +yellow_limit:: + yellow zone limit lower limit +red_limit:: + red zone limit lower limit +text_template:: + Text template to display the current value of the + ++ pin. Python formatting may be used for dict + +{"value":value}+ -image::images/progressbar2.png[] +Example HAL_ProgressBar: +image:images/progressbar2.png[] +. -=== ComboBox [[gladevcp:HAL_ComboBox]] +[[gladevcp:HAL_ComboBox]] +=== ComboBox HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a value from a dropdown list. It exports two HAL pins: - - -f: the current value, type FLOAT - - -s: the current value, type S32 + -f:: + the current value, type FLOAT + -s:: + the current value, type S32 It has the following property which can be set in Glade: - column: the column index, type S32, defaults to -1, range from -1..100 . +column:: + the column index, type S32, defaults to -1, range from -1..100 . In default mode this widgets sets the pins to the index of the chosen list entry. So if your widget has three labels, it may only assume @@ -483,13 +682,15 @@ displayed in the dropdown, and an int or float value to use for that choice. There's an example in -configs/gladevcp/by-widget/combobox/combobox.{py,ui} which uses column ++configs/gladevcp/by-widget/combobox/combobox.{py,ui}+ which uses column mode to pick a float value from the ListStore. If you're confused like me about how to edit ComboBox ListStores and CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. -=== Bars [[gladevcp:HAL_HBar]] [[gladevcp:HAL_VBar]] +[[gladevcp:HAL_HBar]] +[[gladevcp:HAL_VBar]] +=== Bars HAL Bar and VBar widgets for horizontal and vertical bars representing float values. They have one input FLOAT hal pin. Both bars have the @@ -527,17 +728,16 @@ z0_border, z1_border:: zone 2 -- from last border to 1. Borders are set as fractions, values from 0 to 1. -Examples: - +Horizontal bar: +image:images/hal_hbar.png[] +Vertical bar: +image:images/vscale.png[] +. -.Bars +[[gladevcp:HAL_Meter]] +=== Meter -image::images/hal_hbar.png[] -image::images/vscale.png[] - -=== Meter [[gladevcp:HAL_Meter]] - -HAL Meter is a widget like PyVCP meter representing a float value. It has +HAL Meter is a widget similar to PyVCP meter - it represents a float value and has one input FLOAT hal pin. HAL Meter has the following properties: min, max:: @@ -567,13 +767,12 @@ z0_border, z1_border:: border, zone 1 will fill from first to second border and zone 2 -- from last border to max. Borders are set as values in range min-max. -Examples: - -.HAL Meter - -image::images/hal_meter.png[] +Example HAL Meters: +image:images/hal_meter.png[] +. -=== Gremlin tool path preview for .ngc files [[gladevcp:HAL_Gremlin]] +[[gladevcp:HAL_Gremlin]] +=== Gremlin tool path preview for .ngc files Gremlin is a plot preview widget similar to the Axis preview window. It assumes a running EMC environment like Axis or Touchy. To connect to @@ -594,13 +793,22 @@ enable_dro :: Defaults to `True`. Example: +image:images/gremlin.png[] -.Gremlin +=== Animated function diagrams: HAL widgets in a bitmap -image::images/gremlin.png[] +For some applications it might be desirable to have background image - +like a functional diagram - and position widgets at appropriate places +in that diagram. A good combination is setting a bitmap background +image, like from a .png file, making the gladevcp window fixed-size, +and use the glade Fixed widget to position widgets on this image. -== Action Widgets +The code for the below example can be found in +configs/gladevcp/animated-backdrop+: + +image:images/small-screenshot.png[] + +== Action Widgets reference GladeVcp includes a collection of "canned actions" called EMC Action Widgets for the Glade user interface editor. Other than HAL widgets, @@ -622,20 +830,17 @@ widget in a nutshell: The appearance of EMC Actions in Glade is roughly as follows: -.Actions - image::images/emc-actions.png[] Tooltip hovers provide a description. -=== Action widget types -==== EMC Action widgets +=== EMC Action widgets -These are one-shot type widgets. They implement a single action and +EMC Action widgets are one-shot type widgets. They implement a single action and are for use in simple buttons, menu entries or radio/check groups. -==== EMC ToggleAction widgets +=== EMC ToggleAction widgets These are bi-modal widgets. They implement two actions or use a second (usually pressed) state to indicate that currently an action is @@ -662,66 +867,61 @@ running: - The MDI toggle sends given MDI command and waits for its completion in 'pressed' inactive state. -==== The Action_MDI Toggle and Action_MDI widgets +=== The Action_MDI Toggle and Action_MDI widgets -These widgets provide a means to execute arbitrary MDI commands. +These widgets provide a means to execute arbitrary MDI commands. The +Action_MDI widget does not wait for command completion as the +Action_MDI Toggle does, which remains disabled until command complete. -==== A simple example: Execute MDI command on button press +=== A simple example: Execute MDI command on button press -Here's a Glade UI file which conveys the basics: ++configs/gladevcp/mdi-command-example/whoareyou.ui+ is a Glade UI file which conveys the basics: Open it in Glade and study how it's done. Start Axis, and then start this from a terminal window with `gladevcp whoareyou.ui`. See the -hal_action_mdi1 Action and it's MDI command property - this just -executes (MSG, "Hi, I'm an EMC_Action_MDI") so there should be a ++hal_action_mdi1+ Action and it's +MDI command+ property - this just +executes +(MSG, "Hi, I'm an EMC_Action_MDI")+ so there should be a message popup in Axis like so: -.Who Are You - image::images/whoareyou.png[] You'll notice that the button associated with the Action_MDI action is -grayed out if the machine is off, in E-Stop or the program is running. +grayed out if the machine is off, in E-Stop or the interpreter is running. It will automatically become active when the machine is turned on and out of E-Stop, and the program is idle. -==== Parameter processing in the Action_MDI and ToggleAction_MDI widgets +=== Parameter passing with Action_MDI and ToggleAction_MDI widgets Optionally, 'MDI command' strings may have parameters substituted before they are passed to the interpreter. Parameters currently may be -names of HAL pins in the GladeVCP component (in a later release, this -will be extended to cover HAL pins of other components as well). This -is how it works: +names of HAL pins in the GladeVCP component. This is how it works: - - assume you have a HAL SpinBox named speed, and you want to pass it's + - assume you have a 'HAL SpinBox' named +speed+, and you want to pass it's current value as a parameter in an MDI command. - - The HAL SpinBox? will have a float-type HAL pin named speed-f (see + - The HAL SpinBox will have a float-type HAL pin named speed-f (see HalWidgets description). - To substitute this value in the MDI command, insert the HAL pin name enclosed like so: `${pin-name}` - for the above HAL SpinBox, we could use `(MSG, "The speed is: ${speed-f}")` just to show what's happening. -Here's the example UI file for GladeVCP: , and here's what you get: +The example UI file is +configs/gladevcp/mdi-command-example/speed.ui+. Here's what you get when running it: -.Speed image::images/speed.png[] -==== An advanced example: Feeding parameters to an O-word subroutine +=== An advanced example: Feeding parameters to an O-word subroutine It's perfectly OK to call an O-word subroutine in an MDI command, and -pass HAL pin values as actual parameters. Here's an example UI file -upload:owordsub.ui and O-word sub: +pass HAL pin values as actual parameters. An example UI file +is in +configs/gladevcp/mdi-command-example/owordsub.ui+. -Place oword.ngc so Axis can find it, and run `gladevcp owordsub.ui` from +Place +configs/gladevcp/nc_files/oword.ngc+ so Axis can find it, and run `gladevcp owordsub.ui` from a terminal window. This looks like so: -.O Word - image::images/oword.png[] -==== Preparing for an MDI Action, and cleaning up afterwards +=== Preparing for an MDI Action, and cleaning up afterwards The EMC G-Code interpreter has a single global set of variables, like feed, spindle speed, relative/absolute mode and others. If you use G @@ -736,13 +936,13 @@ O-word subroutine or G-code statement executed with an EMC ToggleAction_MDI, you might associate pre-MDI and post-MDI handlers with a given EMC ToggleAction_MDI. These handlers are optional and provide a way to save any state before executing the MDI Action, and to -restore it to previous values. The signal names are mdi-command-start -and mdi-command-stop; the handler names can be set in Glade like any +restore it to previous values afterwards. The signal names are +mdi-command-start+ +and +mdi-command-stop+; the handler names can be set in Glade like any other handler. Here's an example how a feed value might be saved and restored by such handlers (note that EMC command and status channels are available as -self.emc and self.stat through the _EMC_ActionBase class: ++self.emc+ and +self.stat+ through the EMC_ActionBase class: [source,python] ---------------------------------- @@ -758,7 +958,11 @@ self.emc and self.stat through the _EMC_ActionBase class: Only the Action_MDI Toggle widget supports these signals. -==== Using the EMC Stat object to deal with status changes +[NOTE] +In a later release of EMC2, the new M-codes M70-M72 are available which +make it saving state before a subroutine call, and restoring state on return much easier. + +=== Using the EMC Stat object to deal with status changes Many actions depend on EMC status - is it in manual, MDI or auto mode? is a program running, paused or idle? You cannot start an MDI command @@ -776,62 +980,115 @@ EMC Stat has no visible component - you just add it to your UI with Glade. Once added, you can associate handlers with its following signals: - - state-related: "state-estop", "state-estop-reset", "state-on", - "state-off" - emitted when E-Stop condition occurs, is reset, machine is - turned on, or is turned off - - mode-related: "mode-manual", "mode-mdi", "mode-auto" - emitted when - EMC enters that particular mode - - interpreter-related: "interp-run", "interp-idle", "interp-paused", - "interp-reading", "interp-waiting" - emitted when the G-code - interpreter changes into that mode +* state-related: emitted when E-Stop condition occurs, is reset, machine is turned on, or is turned off + - +state-estop+ + - +state-estop-reset+ + - +state-on+, + - +state-off+ +* mode-related: emitted when EMC enters that particular mode + - +mode-manual+ + - +mode-mdi+ + - +mode-auto+ +* interpreter-related: emitted when the G-code interpreter changes into that mode + - +interp-run+ + - +interp-idle+ + - +interp-paused+ + - +interp-reading+ + - +interp-waiting+ + + + +[[gladevcp:GladeVCP_Programming]] +== GladeVCP Programming + +=== User Defined Actions + +Most widget sets, and their associated user interface editors, support +the concept of callbacks - functions in user-written code which are +executed when 'something happens' in the UI - events like mouse clicks, +characters typed, mouse movement, timer events, window hiding and +exposure and so forth. + +HAL output widgets typically map input-type events like a button press +to a value change of the associated HAL pin by means of such a - +predefined - callback. Within PyVCP, this is really the only type of event +handling supported - doing something more complex, like executing MDI +commands to call a G-code subroutine, is not supported. + +Within GladeVCP, HAL pin changes are just one type of the general +class of events (called signals) in GTK+. Most widgets may originate such +signals, and the Glade editor supports associating such a signal with a +Python method or function name. + +If you decide to use user-defined actions, your job is to write a +Python module whose class methods - or in the simple case, just +functions - can be referred to in Glade as event handlers. GladeVCP +provides a way to import your module(s) at startup and will +automatically link your event handlers with the widget signals as set +in the Glade UI description. + +=== An example: adding custom user callbacks in Python + +This is just a minimal example to convey the idea - details are laid +out in the rest of this section. + +GladeVCP can not only manipulate or display HAL pins, you can also +write regular event handlers in Python. This could be used, among +others, to execute MDI commands. Here's how you do it: + +Write a Python module like so and save as e.g. handlers.py: + +[source,python] +---------------------------------- +nhits = 0 +def on_button_press(gtkobj,data=None): + global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) +---------------------------------- + +In Glade, define a button or HAL button, select the 'Signals' tab, and +in the GtkButton properties select the 'pressed' line. Enter +'on_button_press' there, and save the Glade file. + +Then add the option '-u handlers.py' to the gladevcp command line. If +your event handlers are spread over several files, just add multiple +'-u ' options. + +Now, pressing the button should change its label since it's set in the +callback function. -== User Defined Actions +What the +-u+ flag does: all Python functions in this file are +collected and setup as potential callback handlers for your Gtk widgets +- they can be referenced from Glade 'Signals' tabs. The callback +handlers are called with the particular object instance as parameter, +like the GtkButton instance above, so you can apply any GtkButton +method from there. -As most of the infrastructure to support user-defined actions in Glade -and the Gtk widget set is in place, the new GladeVCP version really -just provides a way for the user to write a Python module whose class -methods - or in the simple case, just functions - can be referred to in -Glade as event handlers, a way to import this module(s) into GladeVCP -at runtime and properly link it with the rest of the HAL layer. +Or do some more useful stuff, like calling an MDI command! === HAL value change events -We also extended the way the HAL input pins interact with the GladeVCP -panel. Beyond HAL widgets displaying pin values, there is now a way to -attach a 'value-changed' callback to a HAL pin, which fits nicely with -the event-driven structure of a typical widget application: every -activity, be it mouse click, key, timer expired, or the change of a HAL -pin's value, generates a callback and is handled by the same orthogonal -mechanism. +HAL input widgets, like a LED, automatically associate their HAL pin state +(on/off) with the optical appearance of the widget (LED lit/dark). -Note that the above refers to explicitly declared HAL pins. HAL -widgets come with a pre-defined signal 'hal-pin-changed', see the -HalWidgets page for details. +Beyond this builtin functionality, one may associate a change +callback with any HAL pin, including those of predefined HAL +widgets. This fits nicely with the event-driven structure of a typical +widget application: every activity, be it mouse click, key, timer +expired, or the change of a HAL pin's value, generates a callback and +is handled by the same orthogonal mechanism. -See the 'Adding HAL pins' section below for details. +For user-defined HAL pins not associated with a particular HAL widget, +the signal name is 'value-changed'. See the +<> section below for +details. -=== Persistent values in GladeVCP +HAL widgets come with a pre-defined signal called 'hal-pin-changed'. See the +<> for details. -A annoying aspect of GladeVCP in its earlier form and pyvcp is the -fact that you may change values through text entry, sliders, spin -boxes, toggle buttons etc, but their settings are not saved and -restored at the next run of EMC - they start at the default value as -set in the panel or widget definition. Therefore I added an easy-to-use -mechanism to save and restore the state of HAL widgets, and program -variables (in fact instance attributes) as well. This mechanism uses -the popular '.ini' file syntax and has safeguards against the .ini file -and the corresponding user interface or program variables getting out -of sync - just imagine renaming, adding or deleting widgets in Glade: -an .ini file lying around from a previous program version, or an -entirely different user interface, would be not be able to restore the -state properly. This situation is detected through a signature which -depends on all object names and types which are saved and to be -restored. In the case of signature mismatch, a new .ini file with -default settings is generated. === Programming model -The overall protocol is as follows: +The overall approach is as follows: - design your UI with Glade, and set signal handlers where you want actions associated with a widget @@ -998,17 +1255,44 @@ through the gladevcp -U option, for example: This should set debug to 2 and confirm that your module actually did it. -=== Persistence +=== Persistent variables in GladeVCP + +A annoying aspect of GladeVCP in its earlier form and pyvcp is the +fact that you may change values and HAL pins through text entry, +sliders, spin boxes, toggle buttons etc, but their settings are not +saved and restored at the next run of EMC - they start at the default +value as set in the panel or widget definition. + +GladeVCP has an easy-to-use mechanism to save and restore the state of +HAL widgets, and program variables (in fact any instance attribute of +type int, float, bool or string). + +This mechanism uses the popular '.ini' file format to save and reload +persistent attributes. + +==== Persistence, program versions and the signature check + +Imagine renaming, adding or deleting widgets in Glade: +an .ini file lying around from a previous program version, or an +entirely different user interface, would be not be able to restore the +state properly since variables and types might have changed. + +GladeVCP detects this situation by a signature which depends on all +object names and types which are saved and to be restored. In the case +of signature mismatch, a new .ini file with default settings is +generated. + +=== Using persistent variables -If you want any of: Gtk widget state, HAL widgets output pin's values +If you want any of Gtk widget state, HAL widgets output pin's values and/or class attributes of your handler class to be retained across invocations, proceed as follows: - - import the gladevcp.persistence module + - import the +gladevcp.persistence+ module - decide which instance attributes, and their default values you want to have retained, if any - decide which widgets should have their state retained - - describe these decisions in your handler class' `__init__()` method + - describe these decisions in your handler class' +__init__()+ method through a nested dictionary as follows: [source,python] @@ -1029,7 +1313,7 @@ def __init__(self, halcomp,builder,useropts): } ---------------------------------- -and associate an .ini file with this descriptor: +Then associate an .ini file with this descriptor: [source,python] ---------------------------------- @@ -1038,7 +1322,7 @@ self.ini = IniFile(self.ini_filename,self.defaults,self.builder) self.ini.restore_state(self) ---------------------------------- -after `restore_state()`, self will have attributes set if as running the +After `restore_state()`, self will have attributes set if as running the following: [source,python] @@ -1055,15 +1339,18 @@ self.defaults. After this incantation, you can use the following IniFil methods: - - `ini.save_state(obj)` - saves objs's attributes as per IniFil.vars - dictionary and the widget state as described in IniFile.widgets in - self.defaults - - `ini.create_default_ini()` - create a .ini file with default values - - `ini.restore_state(obj)` - restore HAL out pins and obj's attributes as - saved/initialized to default as above +ini.save_state(obj):: + saves objs's attributes as per IniFil.vars + dictionary and the widget state as described in IniFile.widgets in + self.defaults +ini.create_default_ini():: + create a .ini file with default values +ini.restore_state(obj):: + restore HAL out pins and obj's attributes as + saved/initialized to default as above To save the widget and/or variable state on exit, connect a signal -handler to the window1 (toplevel) destroy event: +handler to the +window1+ (toplevel) destroy event: [source,python] ---------------------------------- @@ -1082,6 +1369,7 @@ is detected, a console message will hint about that happened, and the bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini files overwrite earlier .BAD files. +[[gladevcp:Adding_HAL_pins]] === Adding HAL pins If you need HAL pins which are not associated with a specific HAL @@ -1096,7 +1384,7 @@ self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_B ---------------------------------- To get a callback when this pin's value changes, associate a -*value-change* callback with this pin, add: ++value-change+ callback with this pin, add: [source,python] ---------------------------------- @@ -1104,7 +1392,7 @@ self.example_trigger.connect('value-changed', self._on_example_trigger_change) ---------------------------------- and define a callback method (or function, in this case leave out the -'self' parameter): ++self+ parameter): [source,python] ---------------------------------- @@ -1115,9 +1403,10 @@ def _on_example_trigger_change(self,pin,userdata=None): === Adding timers -Since GladeVCP uses Gtk widgets which rely on the GObject base class, -the full glib functionally is available. Here is an example for a timer -callback: +Since GladeVCP uses Gtk widgets which rely on the +http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject] +base class, the full glib functionally is available. Here is an +example for a timer callback: [source,python] ---------------------------------- @@ -1131,33 +1420,12 @@ def _on_timer_tick(self,userdata=None): glib.timeout_add_seconds(1, self._on_timer_tick) ---------------------------------- -=== Implementation note: Key handling in Axis - -We believe key handling works OK, but since it is new code, we're -telling about it you so you can watch out for problems; please let us -know of errors or odd behavior. This is the story: - -Axis uses the TkInter widget set. GladeVCP applications use Gtk -widgets and run in a separate process context. They are hooked into -Axis with the Xembed protocol. This allows a child application like -GladeVCP to properly fit in a parent's window, and - in theory - have -integrated event handling. +=== Examples, and rolling your own GladeVCP application -However, this assumes that both parent and child application properly -support the Xembed protocol, which Gtk does, but TkInter doesn't. A -consequence of this is that certain keys would not be forwarded from a -GladeVCP panel to Axis properly under all circumstances. One of these -situations was the case when an Entry, or SpinButton widget had focus: -in this case, for instance an Escape key would not have been forwarded -to Axis and cause an abort as it should, with potentially disastrous -consequences. +Visit +emc2/configs/gladevcp+ for running examples and starters for your own projects. -Therefore, key events in GladeVCP are explicitly handled, and -selectively forwarded to Axis, to assure that such situations cannot -arise. For details, see the `keyboard_forward()` function in -`lib/python/gladevcp/xembed.py`. -=== FAQ +== FAQ [qanda] I get an unexpected unmap event in my handler function right after startup. What's this?:: @@ -1184,8 +1452,60 @@ My GladeVCP program starts, but no window appears where I expect it to be?:: with 'gladevcp ' and its window has reasonable geometry, it should come up in Axis properly as well. -=== Examples, and rolling your own GladeVCP application +I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. +It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is +invalid or out of range for property `led-blink-rate' of type `gint'?:: + This seems to be a glade bug. Just type over the blink rate field, and save again - this works for me. + +My gladevcp panel in Axis doesnt save state when I close Axis,although I defined +an on_destroy handler linked to the window destroy signal:: + Very likely this handler is linked to window1, + which due to reparenting isnt usable for this purpose. Please link + the on_destroy handler to the destroy signal of an interior + window. For instance, I have a notebook inside window1, and linked + on_destroy to the notebooks destroy signal, and that works fine. It + doesnt work for window1. + +// FIXME this is out of date +== Troubleshooting + + - make sure your have the development version of EMC2 installed. You + don't need the axisrc file any more, this was mentioned in the old + GladeVcp wiki page. + - run GladeVCP or Axis from a terminal window. If you get Python errors, + check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ + file lying around besides the newer + +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, + remove the +hal.so+ file. It has been superseded by hal.py in the same + directory and confuses the import mechanism. + - if you're using run-in-place, do a 'make clean' to remove any + accidentally left over hal.so file, then 'make'. + - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have + an HAL pin associated with it which is off by default. This pin + controls whether these container's children are active or not. + +== Implementation note: Key handling in Axis + +We believe key handling works OK, but since it is new code, we're +telling about it you so you can watch out for problems; please let us +know of errors or odd behavior. This is the story: + +Axis uses the TkInter widget set. GladeVCP applications use Gtk +widgets and run in a separate process context. They are hooked into +Axis with the Xembed protocol. This allows a child application like +GladeVCP to properly fit in a parent's window, and - in theory - have +integrated event handling. + +However, this assumes that both parent and child application properly +support the Xembed protocol, which Gtk does, but TkInter doesn't. A +consequence of this is that certain keys would not be forwarded from a +GladeVCP panel to Axis properly under all circumstances. One of these +situations was the case when an Entry, or SpinButton widget had focus: +in this case, for instance an Escape key would not have been forwarded +to Axis and cause an abort as it should, with potentially disastrous +consequences. -Visit emc2/configs/gladevcp for running examples. The templates -subdirectory has starters for your own projects. - +Therefore, key events in GladeVCP are explicitly handled, and +selectively forwarded to Axis, to assure that such situations cannot +arise. For details, see the `keyboard_forward()` function in +`lib/python/gladevcp/xembed.py`. From dfe9e002e48bca9bb6308b2cad9a8b293fe9f841 Mon Sep 17 00:00:00 2001 From: Chris Radek Date: Thu, 22 Sep 2011 10:51:14 -0500 Subject: [PATCH 0022/1024] 2.5.0-pre2 test release --- VERSION | 3 +-- debian/changelog | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index 64f02215b..81275fba7 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1 @@ -2.5.0~pre - +2.5.0-pre2 diff --git a/debian/changelog b/debian/changelog index 639e80c64..703314dc9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -emc2 (1:2.5.0~pre) hardy; urgency=low +emc2 (1:2.5.0-pre2) lucid; urgency=low * AXIS: dynamic tabs can embed other applications, including virtual control panels @@ -122,7 +122,7 @@ emc2 (1:2.5.0~pre) hardy; urgency=low * add a G code language spec for gedit * add latencyplot, a strip-chart type display of latency test results - -- Chris Radek Fri, 14 Jan 2011 10:32:03 -0600 + -- Chris Radek Thu, 22 Sep 2011 10:50:38 -0500 emc2 (1:2.4.6) lucid; urgency=low From c59fe8e607394ea95c0648e75909bdbc050cb4b0 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Thu, 22 Sep 2011 19:01:30 +0100 Subject: [PATCH 0023/1024] Fix pin naming error. Signed-off-by: Andy Pugh --- src/hal/drivers/mesa-hostmot2/mesa_7i64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hal/drivers/mesa-hostmot2/mesa_7i64.c b/src/hal/drivers/mesa-hostmot2/mesa_7i64.c index 6e22ac00b..c69ddcaa6 100644 --- a/src/hal/drivers/mesa-hostmot2/mesa_7i64.c +++ b/src/hal/drivers/mesa-hostmot2/mesa_7i64.c @@ -88,12 +88,12 @@ int hm2_7i64_create(hostmot2_t *hm2, hm2_module_descriptor_t *md) { } r = hal_pin_bit_newf(HAL_IN, &(hal->pin.digital_out[p]), hm2->llio->comp_id, - "%s.7i64.%1d.%1d.digout.%02d", + "%s.7i64.%1d.%1d.digout.%02d.out", hm2->llio->name, inst->module_index, c, p); if (r < 0) { - HM2_ERR("error adding pin %s.7i64.%1d.%1d.digout.%02d, " - "aborting\n", + HM2_ERR("error adding pin %s.7i64.%1d.%1d.digout.%02d." + "out, aborting\n", hm2->llio->name, inst->module_index, c, p); goto fail1; } From f77637bfcb559ed24c218f4ab4cdf6e1ab5b150a Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Fri, 2 Sep 2011 22:13:15 +0100 Subject: [PATCH 0024/1024] Tidy up the handling of non-24-pin-wide Mesa cards. This commit moves the port-pin, port number and bit-within-port calculations into hm2_read_pin_descriptors and stores the result in the hm2_pin_t struct. Signed-off-by: Andy Pugh --- src/hal/drivers/mesa-hostmot2/hostmot2.h | 3 + src/hal/drivers/mesa-hostmot2/pins.c | 154 ++++++++++++----------- 2 files changed, 82 insertions(+), 75 deletions(-) diff --git a/src/hal/drivers/mesa-hostmot2/hostmot2.h b/src/hal/drivers/mesa-hostmot2/hostmot2.h index cd86353bb..d8fc90667 100644 --- a/src/hal/drivers/mesa-hostmot2/hostmot2.h +++ b/src/hal/drivers/mesa-hostmot2/hostmot2.h @@ -186,6 +186,9 @@ typedef struct { u8 sec_tag; u8 sec_unit; u8 primary_tag; + u8 port_num; + u8 port_pin; + u8 bit_num; // diff --git a/src/hal/drivers/mesa-hostmot2/pins.c b/src/hal/drivers/mesa-hostmot2/pins.c index 71f899b89..6fb666120 100644 --- a/src/hal/drivers/mesa-hostmot2/pins.c +++ b/src/hal/drivers/mesa-hostmot2/pins.c @@ -182,6 +182,8 @@ int hm2_read_pin_descriptors(hostmot2_t *hm2) { int i; int addr; + const u8 DB25[] = {1,14,2,15,3,16,4,17,5,6,7,8,9,10,11,12,13}; + hm2->num_pins = hm2->idrom.io_width; hm2->pin = kmalloc(sizeof(hm2_pin_t) * hm2->num_pins, GFP_KERNEL); if (hm2->pin == NULL) { @@ -191,6 +193,7 @@ int hm2_read_pin_descriptors(hostmot2_t *hm2) { addr = hm2->idrom_offset + hm2->idrom.offset_to_pin_desc; for (i = 0; i < hm2->num_pins; i ++) { + hm2_pin_t *pin = &(hm2->pin[i]); u32 d; if (!hm2->llio->read(hm2->llio, addr, &d, sizeof(u32))) { @@ -198,12 +201,12 @@ int hm2_read_pin_descriptors(hostmot2_t *hm2) { return -EIO; } - hm2->pin[i].sec_pin = (d >> 0) & 0x000000FF; - hm2->pin[i].sec_tag = (d >> 8) & 0x000000FF; - hm2->pin[i].sec_unit = (d >> 16) & 0x000000FF; - hm2->pin[i].primary_tag = (d >> 24) & 0x000000FF; + pin->sec_pin = (d >> 0) & 0x000000FF; + pin->sec_tag = (d >> 8) & 0x000000FF; + pin->sec_unit = (d >> 16) & 0x000000FF; + pin->primary_tag = (d >> 24) & 0x000000FF; - if (hm2->pin[i].primary_tag == 0) { + if (pin->primary_tag == 0) { // oops, found the Zero sentinel before the promised number of pins HM2_ERR( "pin %d primary tag is 0 (end-of-list sentinel), expected %d!\n", @@ -213,18 +216,48 @@ int hm2_read_pin_descriptors(hostmot2_t *hm2) { return -EINVAL; } - if (hm2->pin[i].primary_tag != HM2_GTAG_IOPORT) { + if (pin->primary_tag != HM2_GTAG_IOPORT) { HM2_ERR( "pin %d primary tag is %d (%s), not IOPort!\n", i, - hm2->pin[i].primary_tag, - hm2_get_general_function_name(hm2->pin[i].primary_tag) + pin->primary_tag, + hm2_get_general_function_name(pin->primary_tag) ); return -EINVAL; } - hm2->pin[i].gtag = hm2->pin[i].primary_tag; - + pin->gtag = pin->primary_tag; + + pin->port_num = i / hm2->idrom.port_width; + + if ((pin->port_num < 0 ) + || (pin->port_num >= hm2->llio->num_ioport_connectors)){ + HM2_ERR("hm2_read_pin_descriptors: Calculated port number (%d) is " + "invalid\n", pin->port_pin ); + return -EINVAL; + } + + pin->bit_num = i % hm2->idrom.port_width; + + if ((pin->bit_num < 0 ) || (pin->bit_num > 31)){ + HM2_ERR("hm2_read_pin_descriptors: Calculated bit number (%d) is " + "invalid\n", pin->bit_num ); + return -EINVAL; + } + switch (hm2->idrom.port_width) { + case 24: /* standard 50 pin 24 I/O cards, just the odd pins */ + pin->port_pin = ((i % 24) * 2) + 1; + break; + case 17: /* 25 pin 17 I/O parallel port type cards funny DB25 order */ + pin->port_pin = DB25[i % 17]; + break; + case 32: /* 5I21 punt on this for now */ + pin->port_pin = i + 1; + break; + default: + HM2_ERR("hm2_print_pin_usage: invalid port width %d\n", hm2->idrom.port_width); + } + addr += 4; } @@ -239,26 +272,26 @@ int hm2_read_pin_descriptors(hostmot2_t *hm2) { void hm2_set_pin_source(hostmot2_t *hm2, int pin_number, int source) { - int ioport_number; - int bit_number; - - ioport_number = pin_number / 24; - bit_number = pin_number % 24; - - if ((pin_number < 0) || (ioport_number >= hm2->ioport.num_instances)) { + + if ((pin_number < 0) + || (pin_number >= hm2->num_pins) + || (hm2->ioport.num_instances <= 0)) { HM2_ERR("hm2_set_pin_source: invalid pin number %d\n", pin_number); return; } - - if (source == HM2_PIN_SOURCE_IS_PRIMARY) { - hm2->ioport.alt_source_reg[ioport_number] &= ~(1 << bit_number); - hm2->pin[pin_number].gtag = hm2->pin[pin_number].primary_tag; - } else if (source == HM2_PIN_SOURCE_IS_SECONDARY) { - hm2->ioport.alt_source_reg[ioport_number] |= (1 << bit_number); - hm2->pin[pin_number].gtag = hm2->pin[pin_number].sec_tag; - } else { - HM2_ERR("hm2_set_pin_source: invalid pin source 0x%08X\n", source); - return; + { + hm2_pin_t *pin = &(hm2->pin[pin_number]); + if (source == HM2_PIN_SOURCE_IS_PRIMARY) { + hm2->ioport.alt_source_reg[pin->port_num] &= ~(1 << pin->bit_num); + pin->gtag = pin->primary_tag; + } else if (source == HM2_PIN_SOURCE_IS_SECONDARY) { + HM2_ERR("OK to here4\n"); + hm2->ioport.alt_source_reg[pin->port_num] |= (1 << pin->bit_num); + pin->gtag = pin->sec_tag; + } else { + HM2_ERR("hm2_set_pin_source: invalid pin source 0x%08X\n", source); + return; + } } } @@ -266,13 +299,10 @@ void hm2_set_pin_source(hostmot2_t *hm2, int pin_number, int source) { void hm2_set_pin_direction(hostmot2_t *hm2, int pin_number, int direction) { - int ioport_number; - int bit_number; - - ioport_number = pin_number / 24; - bit_number = pin_number % 24; - if ((pin_number < 0) || (ioport_number >= hm2->ioport.num_instances)) { + if ((pin_number < 0) + || (pin_number >= hm2->num_pins) + || (hm2->ioport.num_instances <= 0)) { HM2_ERR("hm2_set_pin_direction: invalid pin number %d\n", pin_number); return; } @@ -290,68 +320,42 @@ void hm2_set_pin_direction(hostmot2_t *hm2, int pin_number, int direction) { void hm2_print_pin_usage(hostmot2_t *hm2) { int i; - int port, port_pin, mio; HM2_PRINT("%d I/O Pins used:\n", hm2->num_pins); for (i = 0; i < hm2->num_pins; i ++) { - port_pin = i + 1; - port = i / hm2->idrom.port_width; - switch (hm2->idrom.port_width) { - case 24: /* standard 50 pin 24 I/O cards, just the odd pins */ - port_pin = ((i % hm2->idrom.port_width) * 2) + 1; - break; - case 17: /* 25 pin 17 I/O parallel port type cards funny DB25 order */ - mio = i % hm2->idrom.port_width; - if (mio > 7){ - port_pin = mio-3; - } - else { - if (mio & 1){ - port_pin = (mio/2)+14; - } - else { - port_pin = (mio/2)+1; - } - } - break; - case 32: /* 5I21 punt on this for now */ - port_pin = i+1; - break; - default: - HM2_ERR("hm2_print_pin_usage: invalid port width %d\n", hm2->idrom.port_width); - } + hm2_pin_t *pin = &(hm2->pin[i]); - if (hm2->pin[i].gtag == hm2->pin[i].sec_tag) { - if(hm2->pin[i].sec_unit & 0x80) + if (pin->gtag == pin->sec_tag) { + if(pin->sec_unit & 0x80) HM2_PRINT( " IO Pin %03d (%s-%02d): %s (all), pin %s (%s)\n", i, - hm2->llio->ioport_connector_name[port], - port_pin, - hm2_get_general_function_name(hm2->pin[i].gtag), + hm2->llio->ioport_connector_name[pin->port_num], + pin->port_pin, + hm2_get_general_function_name(pin->gtag), hm2_get_pin_secondary_name(&hm2->pin[i]), - ((hm2->pin[i].sec_pin & 0x80) ? "Output" : "Input") + ((pin->sec_pin & 0x80) ? "Output" : "Input") ); else HM2_PRINT( " IO Pin %03d (%s-%02d): %s #%d, pin %s (%s)\n", i, - hm2->llio->ioport_connector_name[port], - port_pin, - hm2_get_general_function_name(hm2->pin[i].gtag), - hm2->pin[i].sec_unit, - hm2_get_pin_secondary_name(&hm2->pin[i]), - ((hm2->pin[i].sec_pin & 0x80) ? "Output" : "Input") + hm2->llio->ioport_connector_name[pin->port_num], + pin->port_pin, + hm2_get_general_function_name(pin->gtag), + pin->sec_unit, + hm2_get_pin_secondary_name(pin), + ((pin->sec_pin & 0x80) ? "Output" : "Input") ); } else { HM2_PRINT( " IO Pin %03d (%s-%02d): %s\n", i, - hm2->llio->ioport_connector_name[port], - port_pin, - hm2_get_general_function_name(hm2->pin[i].gtag) + hm2->llio->ioport_connector_name[pin->port_num], + pin->port_pin, + hm2_get_general_function_name(pin->gtag) ); } } From 0a29971d1d1d5c802eb1c79ade0b0ed73e155687 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Thu, 22 Sep 2011 19:12:41 +0100 Subject: [PATCH 0025/1024] Corrections to docs to suit new 7i64 pin names. Signed-off-by: Andy Pugh --- docs/man/man9/hostmot2.9 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/man/man9/hostmot2.9 b/docs/man/man9/hostmot2.9 index 87e735549..94802992e 100644 --- a/docs/man/man9/hostmot2.9 +++ b/docs/man/man9/hostmot2.9 @@ -586,26 +586,26 @@ maximum is requested. also shown on the label on the drive. .TP .SH \fB 7i64\fR -The 7i64 is a 24-input 24-output GPIO card. +The 7i64 is a 24-input 24-output IO card. 7i64 pins and parameters have names like "hm2_..7i64. -..", for example hm2_5i23.0.7i63.1.3.gpio.01.out +..", for example hm2_5i23.0.7i63.1.3.digout.01.out Pins: -(bit, in) .gpio.NN.out: Writing a 1 or TRUE to this pin will enable output +(bit, in) .digout.NN.out: Writing a 1 or TRUE to this pin will enable output driver NN. Note that the outputs are drivers (switches) rather than voltage outputs. The LED adjacent to the connector on the board shows the status. -(bit, out) .gpio.NN.in: The value of input NN. Note that the inputs are -isolated and both pins of each unput must be connected (typically to signal and +(bit, out) .digin.NN.in: The value of input NN. Note that the inputs are +isolated and both pins of each input must be connected (typically to signal and the ground of the signal. This need not be the ground of the board.) -(bit, out) .gpio.NN.in_not: An inverted copy of the corresponding input. +(bit, out) .digin.NN.in-not: An inverted copy of the corresponding input. -(float, out) .analogue.00 & .analogue.01: The two analogue inputs (0 to 3.3V) on +(float, out) .adcin.00.in & .adcin.01.in: The two analogue inputs (0 to 3.3V) on the board. Parameters: -(bit, rw) .gpio.NN.invert_output: Setting this parameter to 1 / TRUE will invert +(bit, rw) .digout.NN.invert: Setting this parameter to 1 / TRUE will invert the output value, such that writing 0 to .gpio.NN.out will enable the output and vice-versa. From f43efd01542d8bb5c03d8ad0b151f3a60d61b160 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Thu, 22 Sep 2011 21:12:48 +0100 Subject: [PATCH 0026/1024] Oops! Remove left-over debug code. Signed-off-by: Andy Pugh --- src/hal/drivers/mesa-hostmot2/pins.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hal/drivers/mesa-hostmot2/pins.c b/src/hal/drivers/mesa-hostmot2/pins.c index 6fb666120..355aaf322 100644 --- a/src/hal/drivers/mesa-hostmot2/pins.c +++ b/src/hal/drivers/mesa-hostmot2/pins.c @@ -285,7 +285,6 @@ void hm2_set_pin_source(hostmot2_t *hm2, int pin_number, int source) { hm2->ioport.alt_source_reg[pin->port_num] &= ~(1 << pin->bit_num); pin->gtag = pin->primary_tag; } else if (source == HM2_PIN_SOURCE_IS_SECONDARY) { - HM2_ERR("OK to here4\n"); hm2->ioport.alt_source_reg[pin->port_num] |= (1 << pin->bit_num); pin->gtag = pin->sec_tag; } else { From 92fc0e659afcf62535445226c14d290882687c13 Mon Sep 17 00:00:00 2001 From: cmorley Date: Thu, 22 Sep 2011 19:43:34 -0700 Subject: [PATCH 0027/1024] docs -add info on pncconf and TOUCHY pncconf uses different names for encoder and stepper scale as pncconf allows steppers with encoders TOUCHy now looks for a post_gui halfile --- docs/src/config/ini_config.txt | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/src/config/ini_config.txt b/docs/src/config/ini_config.txt index 2b5aea1de..e7294e2ae 100644 --- a/docs/src/config/ini_config.txt +++ b/docs/src/config/ini_config.txt @@ -607,7 +607,7 @@ SHUTDOWN = shutdown.hal:: POSTGUI_HALFILE = example2.hal:: -'(Only with the AXIS GUI)' Execute 'example2.hal' after the GUI has +'(Only with the TOUCHY and AXIS GUI)' Execute 'example2.hal' after the GUI has created its HAL pins. See section <> for more information. @@ -1014,6 +1014,7 @@ MAX_OUTPUT = 10:: both the plus and the minus side. INPUT_SCALE = 20000:: +(or ENCODER_SCALE = 20000 Used in PNCconf built configs):: (((INPUT SCALE))) (in HAL) Specifies the number of pulses that corresponds to a move of one machine unit as set in the [TRAJ] section. For a linear axis one machine unit will be equal to @@ -1033,6 +1034,7 @@ latexmath:[ INPUT\_SCALE = The following items are Stepper related items. SCALE = 4000:: +(or STEP_SCALE = 4000 Used in PNCconf built configs):: (((INPUT SCALE))) (in HAL) Specifies the number of pulses that corresponds to a move of one machine unit as set in the [TRAJ] section. For stepper systems, this is @@ -1050,7 +1052,21 @@ latexmath:[ scale = \frac{2\, steps}{1.8\, degree} \times \frac{360\, degree}{rev} \times \frac{10\, rev}{inch} = \frac{4000\, steps}{inch} ] -(Older stepper .ini and .hal used INPUT_SCALE for this value.) +ENCODER_SCALE = 20000 (Optionally used in PNCconf built configs):: +(in HAL) Specifies the number of pulses that +corresponds to a move of one machine unit as set in the [TRAJ] section. +For a linear axis one machine unit will be equal to +the setting of LINEAR_UNITS. +For an angular axis one unit is equal to the setting in ANGULAR_UNITS. +A second number, if specified, is ignored. +For example, on a 2000 counts per rev encoder(((encoder))), and 10 +revs/inch gearing, and desired units of inch, we +have: + +latexmath:[ ENCODER\_SCALE = +\frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = +\frac{20000\, counts}{inch} ] + STEPGEN_MAXACCEL = 21.0:: (in HAL) Acceleration limit for the step generator. This should From 5995b186bba56aa2d1f7977a0e828ab164f8acd0 Mon Sep 17 00:00:00 2001 From: cmorley Date: Thu, 22 Sep 2011 19:46:23 -0700 Subject: [PATCH 0028/1024] pncconf - test if firmware data array is from older version If test fails warn the user and refuse to continue as that firmware data will just cause an error later. --- src/emc/usr_intf/pncconf/pncconf.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 8eea38d11..948a6e9c2 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -3623,6 +3623,17 @@ def on_page_newormodify_next(self, *args): self.data.load(filename, self) self.data._mesa0_configured = False self.data._mesa1_configured = False + try: + # check that the firmware is current enough by checking the length of a sub element and that the other is an integer. + for boardnum in(0,1): + i = len(self.data["mesa%d_currentfirmwaredata"% boardnum][_NUMOFCNCTRS]) + j = self.data["mesa%d_currentfirmwaredata"% boardnum][_HIFREQ]+100 # throws an error if not an integer. + if not i > 1: + print i,j,boardnum + raise UserWarning + except : + self.warning_dialog(_("It seems data in this file is from too old of a version of PNCConf to continue.\n."),True) + return True else: dialog.destroy() return True From 2d809dfd31253031c02e8cb5e35b04b40548c5d2 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Thu, 22 Sep 2011 19:18:32 -0700 Subject: [PATCH 0029/1024] pncconf - change HAL names to match 7i64 pins Andy changed the naming of the 7i64 pins - match them Signed-off-by: cmorley --- src/emc/usr_intf/pncconf/pncconf.py | 31 +++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 948a6e9c2..09bd30894 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -1869,14 +1869,18 @@ def connect_input(self, file): if i: print >>file, "net %s <= parport.0.pin-%02d-in-not" % (p, pin) else: print >>file, "net %s <= parport.0.pin-%02d-in" % (p, pin) print >>file - def write_pins(p,i,t): + def write_pins(pname,p,i,t): # for input pins if t == GPIOI: if not p == "unused-input": pinname = self.make_pinname(self.findsignal( p )) print >>file, "# ---",p.upper(),"---" - if i: print >>file, "net %s <= "% (p)+pinname +".in_not" - else: print >>file, "net %s <= "% (p)+pinname +".in" + if "sserial" in pname: + if i: print >>file, "net %s <= "% (p)+pinname +".in-not" + else: print >>file, "net %s <= "% (p)+pinname +".in" + else: + if i: print >>file, "net %s <= "% (p)+pinname +".in_not" + else: print >>file, "net %s <= "% (p)+pinname +".in" # for encoder pins elif t in (ENCA,MXEA): if not p == "unused-encoder": @@ -1893,19 +1897,21 @@ def write_pins(p,i,t): for boardnum in range(0,int(self.number_mesa)): for concount,connector in enumerate(self["mesa%d_currentfirmwaredata"% (boardnum)][_NUMOFCNCTRS]) : for pin in range(0,24): + pname = 'mesa%dc%dpin%d' % (boardnum,connector, pin) p = self['mesa%dc%dpin%d' % (boardnum,connector, pin)] i = self['mesa%dc%dpin%dinv' % (boardnum,connector, pin)] t = self['mesa%dc%dpin%dtype' % (boardnum,connector, pin)] - write_pins(p,i,t) + write_pins(pname,p,i,t) if self["mesa%d_numof_sserialports"% (boardnum)]: # only check if we have sserialports port = 0 for channel in range (0,self["mesa%d_currentfirmwaredata"% boardnum][_MAXSSERIALCHANNELS]): if channel >3: break # TODO only have 4 channels worth of glade widgets for pin in range (0,48): + pname = 'mesa%dsserial%d_%dpin%d' % (boardnum,port,channel,pin) p = self['mesa%dsserial%d_%dpin%d' % (boardnum,port,channel,pin)] i = self['mesa%dsserial%d_%dpin%dinv' % (boardnum,port,channel,pin)] t = self['mesa%dsserial%d_%dpin%dtype' % (boardnum,port,channel,pin)] - write_pins(p,i,t) + write_pins(pname,p,i,t) def connect_output(self, file): @@ -1924,11 +1930,15 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): if not p == "unused-output": pinname = self.make_pinname(pname) print >>file, "# ---",p.upper(),"---" - if channel == None: # sserial has a channel number and doesn't need this next line + if "sserial" in pname: + print >>file, "net %s => "% (p)+pinname +".out" + if i: print >>file, "setp "+pinname+".invert true" + else: + print >>file, "net %s => "% (p)+pinname +".out" print >>file, "setp "+pinname +".is_output true" - if i: print >>file, "setp "+pinname+".invert_output true" - if t == GPIOD: print >>file, "setp "+pinname+".is_opendrain true" - print >>file, "net %s => "% (p)+pinname +".out" + if i: print >>file, "setp "+pinname+".invert_output true" + if t == GPIOD: print >>file, "setp "+pinname+".is_opendrain true" + # for pwm pins elif t in (PWMP,PDMP,UDMU): if not p == "unused-pwm": @@ -3151,7 +3161,8 @@ def make_pinname(self, pin, gpionumber = False): return None # if gpionumber flag is true - convert to gpio pin name if gpionumber or ptype in(GPIOI,GPIOO,GPIOD): - comptype = "gpio" + if ptype == GPIOI:comptype = "digin" + else:comptype = "digout" if ptype in(GPIOO,GPIOD):pinnum = pinnum-24 # adjustment for 7i64 pin numbering of output pins vrs pnccnonf numbering return "hm2_%s.%d.%s.%d.%d."% (boardname,halboardnum,subname,portnum,channel) + comptype+".%02d"% (pinnum) elif ptype in (ENCA,ENCB,ENCI,ENCM,MXEA,MXEB,MXEI,MXEM,MXES,PWMP,PWMD,PWME,PDMP,PDMD,PDME,STEPA,STEPB,STEPC,STEPD,STEPE,STEPF, From 2e13c3aff03a8b77fc231e29f3a0f1c769564ffa Mon Sep 17 00:00:00 2001 From: cmorley Date: Thu, 22 Sep 2011 22:15:05 -0700 Subject: [PATCH 0030/1024] pncconf -fix gpio bug sserial GPIO cannot be changed by user from input to output as mainboard GPIO can. To designate this the component number is set to 100 for sserial GPIO. previously if the compnum was 0 then it could be changed and anything higher could not. The problem was when other components were deselected to cause them to be GPIO, pncconf got confused because the compnum was still coming from the original component, which often was higher then 0 but could actually be changed from input to ouput by the user. --- src/emc/usr_intf/pncconf/pncconf.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 09bd30894..faa187dc8 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -352,10 +352,10 @@ def iceil(x): ] _SUBBOARDNAME = 0; _SUBSTARTOFDATA = 1 mesadaughterdata = [ ["7i64", - [GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1], - [GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1],[GPIOI,1], - [GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1], - [GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1],[GPIOO,1] ], + [GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100], + [GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100],[GPIOI,100], + [GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100], + [GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100],[GPIOO,100] ], ] custommesafirmwaredata = [] @@ -5108,6 +5108,8 @@ def firmware_to_widgets(self,boardnum,firmptype,p,ptype,pinv,complabel,compnum,c # We cheat a little and tell the rest of the method that the firmware says # it should be GPIO and compnum is changed to signify that the GPIO can be changed # from input to output + # Right now only mainboard GPIO can be changed + # sserial 7i64 I/O can not firmptype = GPIOI compnum = 0 # --- mux encoder --- @@ -5277,7 +5279,7 @@ def firmware_to_widgets(self,boardnum,firmptype,p,ptype,pinv,complabel,compnum,c if not self.widgets[ptype].get_active_text() in (GPIOI,GPIOO,GPIOD) or not self.data["_mesa%d_configured"%boardnum]: self.widgets[p].set_sensitive(1) self.widgets[pinv].set_sensitive(1) - self.widgets[ptype].set_sensitive(not compnum) + self.widgets[ptype].set_sensitive(not compnum == 100) # compnum = 100 means GPIO cannot be changed by user self.widgets[ptype].set_model(self.data._gpioliststore) if firmptype == GPIOI: # set pin treestore to gpioi signals @@ -5335,10 +5337,11 @@ def data_to_widgets(self,boardnum,firmptype,compnum,p,ptype,pinv): #print "data ptype index:",pintype_gpio.index(dataptype) #self.debug_iter(0,p,"data to widget") #self.debug_iter(0,ptype,"data to widget") - # if compnum doesn't = 0 (GPIO only) then it means that the component type can not + # if compnum = 100 then it means that the component type can not # be changed from what the firmware designates it as. # signal names for GPIO INPUT - if not compnum == 0: dataptype = widgetptype + #print "compnum = ",compnum + if compnum == 100: dataptype = widgetptype self.widgets[pinv].set_active(self.data[pinv]) self.widgets[ptype].set_active( pintype_gpio.index(dataptype) ) if dataptype == GPIOI: From a79bc3d2ca47f895eab9139462ebba50d927a38b Mon Sep 17 00:00:00 2001 From: Pavel Shramov Date: Fri, 23 Sep 2011 11:30:08 +0400 Subject: [PATCH 0031/1024] docs: Build .png images for latex equations Post-process HTML files and replace latexmath blocks with images. Build-time processing is not possible due to passtrhough nature of math macros v2: Unescape \[ and \] chars --- docs/src/Submakefile | 3 ++ docs/src/html-latex-images | 91 +++++++++++++++++++++++++++++++++ docs/src/xhtml11-latexmath.conf | 14 +++++ docs/src/xhtml11.conf | 1 + 4 files changed, 109 insertions(+) create mode 100755 docs/src/html-latex-images create mode 100644 docs/src/xhtml11-latexmath.conf diff --git a/docs/src/Submakefile b/docs/src/Submakefile index 312726cc8..bb31f8dc9 100644 --- a/docs/src/Submakefile +++ b/docs/src/Submakefile @@ -644,6 +644,9 @@ $(DOC_TARGETS_HTML): $(DOC_DIR)/html/%.html: $(DOC_SRCDIR)/%.html done mkdir -p $(shell dirname $@) @cp $< $@ + mkdir -p objects/image-cache + HTML_LATEX_CACHE=objects/image-cache $(DOC_SRCDIR)/html-latex-images $@ || \ + (X=$$?; rm $@; exit $$X) #$(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_EN_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_en.links # asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \ diff --git a/docs/src/html-latex-images b/docs/src/html-latex-images new file mode 100755 index 000000000..8294d1d5f --- /dev/null +++ b/docs/src/html-latex-images @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# vim: sts=4 sw=4 et + +import os, shutil, sys, subprocess +import tempfile, hashlib +import lxml.etree as ET + +tmpdir = None + +cachedir = os.environ.get('HTML_LATEX_CACHE', './cache') + +nsmap = {'xhtml':"http://www.w3.org/1999/xhtml"} + +latex_header = r""" +\documentclass{article} +\usepackage[mathletters]{ucs} +\usepackage[utf8x]{inputenc} +%\usepackage[T2A]{fontenc} +%\usepackage[english,russian]{babel} +\usepackage{euscript} +\usepackage{type1cm} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{ulem} +\usepackage{mathrsfs} +\begin{document} +\thispagestyle{empty} +""" + +latex_footer = r""" +\end{document} +""" + +latex_cmd = "latex -interaction nonstopmode ./file.tex".split() +dvipng_cmd = "dvipng -q -D 148 -T tight -pp 1 --noghostscript file.dvi -o file.png".split() + +def build_img(fn, e, block=False): + txt = e.text.strip() + txt = txt.replace('>', '>').replace('<', '<').replace('&', '&') # XML escapes + txt = txt.replace('\\[', '[').replace('\\]', ']') # Asciidoc escapes + md5 = hashlib.md5(txt.encode('utf-8')).hexdigest() + img = md5 + ".png" + fullimg = os.path.join(cachedir, img) + if not os.path.exists(fullimg): + latex(txt, block) + os.rename(os.path.join(tmpdir, 'file.png'), fullimg) + shutil.copy2(fullimg, os.path.join(os.path.dirname(fn), img)) + node = ET.Element('img', attrib={'class':'latexmath'}, id=md5, src=img, title=txt) + e.getparent().replace(e, node) + return 1 + +def latex(txt, block=False): + if block: + if not txt.startswith('$$'): txt = '$$' + txt + if not txt.endswith('$$'): txt = txt + '$$' + else: + if txt[0] != '$': txt = '$' + txt + if txt[-1] != '$': txt = txt + '$' + + fp = open(os.path.join(tmpdir, 'file.tex'), 'w') + fp.write(latex_header) + fp.write(txt.encode('utf-8') + '\n') + fp.write(latex_footer) + fp.close() + r = subprocess.call(latex_cmd, cwd=tmpdir) + if r: raise RuntimeError("Compilation failed") + r = subprocess.call(dvipng_cmd, cwd=tmpdir) + if r: raise RuntimeError("Compilation failed") + +def substitute(f): + xml = ET.parse(open(f)) + images = 0 + for e in xml.xpath('//xhtml:span[@class="latexmath"]', namespaces=nsmap): + images += build_img(f, e, block=False) + for e in xml.xpath('//xhtml:div[@class="latexmath"]', namespaces=nsmap): + images += build_img(f, e, block=True) + if not images: return + print "Added %d images" % images + fp = open(f + ".math", 'w') + fp.write(ET.tostring(xml, method="html", pretty_print=True, xml_declaration=False, encoding="utf-8")) + fp.close() + os.unlink(f) + #os.rename(f, f + ".pre-math") + os.rename(f + ".math", f) + +tmpdir = tempfile.mkdtemp(dir=cachedir) +try: + for f in sys.argv[1:]: + substitute(f) +finally: + shutil.rmtree(tmpdir) diff --git a/docs/src/xhtml11-latexmath.conf b/docs/src/xhtml11-latexmath.conf new file mode 100644 index 000000000..453176b3c --- /dev/null +++ b/docs/src/xhtml11-latexmath.conf @@ -0,0 +1,14 @@ +# Cover latexmath in elements with specific class names +[latexmath-inlinemacro] + + + + +[latexmath-blockmacro] +
+
+
{title}
+
+ +
+
diff --git a/docs/src/xhtml11.conf b/docs/src/xhtml11.conf index f4512c962..b2448cb64 100644 --- a/docs/src/xhtml11.conf +++ b/docs/src/xhtml11.conf @@ -1,2 +1,3 @@ include::xhtml11-links.conf[] include::xhtml11-image.conf[] +include::xhtml11-latexmath.conf[] From 5a0cf8ade9b0c07ee58db8986cebb4626f9235a7 Mon Sep 17 00:00:00 2001 From: cmorley Date: Sat, 24 Sep 2011 00:40:29 -0700 Subject: [PATCH 0032/1024] pncconf - add max velocity override capability gee how did i forget this? --- src/emc/usr_intf/pncconf/pncconf.glade | 48898 ++++++++++++----------- src/emc/usr_intf/pncconf/pncconf.py | 102 +- 2 files changed, 24981 insertions(+), 24019 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.glade b/src/emc/usr_intf/pncconf/pncconf.glade index 1db81d331..e662dd74f 100644 --- a/src/emc/usr_intf/pncconf/pncconf.glade +++ b/src/emc/usr_intf/pncconf/pncconf.glade @@ -46,49 +46,49 @@ 6 2 - + True - True - Create a new configuration - True - 0 - True - True + 12 + 12 + gtk-info - 2 - 1 - 2 + 3 + 4 GTK_FILL - + GTK_FILL - + True True - Modify a configuration already created with this program + Create a desktop launcher to start EMC with this configuration. True 0 True - createconfig 2 - 2 - 3 + 5 + 6 GTK_FILL - + True - 0 - Do you wish to: + True + Create a desktop shortcut (symlink) to configuration files. + True + 0 + True 2 + 4 + 5 GTK_FILL @@ -112,51 +112,51 @@ - + True - True - Create a desktop shortcut (symlink) to configuration files. - True - 0 - True + 0 + Do you wish to: 2 - 4 - 5 GTK_FILL - + True True - Create a desktop launcher to start EMC with this configuration. + Modify a configuration already created with this program True 0 True + createconfig 2 - 5 - 6 + 2 + 3 GTK_FILL - + True - 12 - 12 - gtk-info + True + Create a new configuration + True + 0 + True + True - 3 - 4 + 2 + 1 + 2 GTK_FILL - GTK_FILL + @@ -398,29 +398,6 @@ Millimeter - - - True - 0 - Recommend servo period: 1000000 - - - 2 - 3 - - - - - True - - - 1 - 2 - 1 - 2 - GTK_EXPAND - - True @@ -471,6 +448,29 @@ Millimeter GTK_EXPAND + + + True + + + 1 + 2 + 1 + 2 + GTK_EXPAND + + + + + True + 0 + Recommend servo period: 1000000 + + + 2 + 3 + + @@ -1100,177 +1100,49 @@ Out - - True - True - - - 1 - 2 - 4 - 5 - - - - - True - Jog Speed select A - - - 4 - 5 - - - - - True - True - - - 4 - 5 - 2 - 3 - - - - - True - True - - - 4 - 5 - 1 - 2 - - - - - True - True - - - 4 - 5 - - - - - True - True - - - 1 - 2 - 2 - 3 - - - - - True - True - - - 1 - 2 - 1 - 2 - - - - + True True 1 2 + 3 + 4 - - True - Z - - - - 3 - 4 - 2 - 3 - - - - - True - Y - - - - 3 - 4 - 1 - 2 - - - - - True - X - - - - 3 - 4 - - - - - True - Z + - - - 2 - 3 - - - - + True - Y + + A + - 1 - 2 + 3 + 4 - - True - X + - - - - + True - Jog Speed select A + A - 3 4 - 4 - 5 + 3 + 4 - + True True 4 5 - 4 - 5 + 3 + 4 @@ -1284,72 +1156,65 @@ Out 2 6 - - True - <b>default</b> - True - - - GTK_EXPAND - - - - + True - <b>a)</b> - True + mm/min + 5 + 6 1 2 - GTK_FILL - + True - <b>b)</b> - True + mm/min - 3 - 4 + 5 + 6 - + True - <b>ab)</b> - True + mm/min - 3 - 4 + 2 + 3 1 2 - + True True 2 0 2000 1 10 0 1 - 1 - 2 + 4 + 5 + 1 + 2 GTK_EXPAND - + True - mm/min + True + 2 0 2000 1 10 0 + 1 - 2 - 3 + 4 + 5 + GTK_EXPAND @@ -1368,65 +1233,72 @@ Out - + True - True - 2 0 2000 1 10 0 - 1 + mm/min - 4 - 5 - GTK_EXPAND + 2 + 3 - + True True 2 0 2000 1 10 0 1 - 4 - 5 - 1 - 2 + 1 + 2 GTK_EXPAND - + True - mm/min + <b>ab)</b> + True - 2 - 3 + 3 + 4 1 2 - + True - mm/min + <b>b)</b> + True - 5 - 6 + 3 + 4 - + True - mm/min + <b>a)</b> + True - 5 - 6 1 2 + GTK_FILL + + + + + True + <b>default</b> + True + + + GTK_EXPAND @@ -1439,138 +1311,91 @@ Out - + True True 4 5 - 3 - 4 + 4 + 5 - + True - A - + Jog Speed select A 3 4 - 3 - 4 + 4 + 5 - + True - A + + X + - - 3 - 4 - - + True - True + Y + - 1 - 2 - 3 - 4 + 1 + 2 - - - - - True - Digital Control - - - label_item - - - - - 2 - - - - - True - True - - - True - 4 - 4 - - - - - - - - - - - - - - - - - - - - - - - - - + True - X + Z + + + 2 + 3 + - + True - Y + X - - 1 - 2 + 3 + 4 - + True - Z + Y - - 2 - 3 + 3 + 4 + 1 + 2 - + True - A + Z - - 3 - 4 + 3 + 4 + 2 + 3 - + True True @@ -1580,7 +1405,7 @@ Out - + True True @@ -1592,7 +1417,7 @@ Out - + True True @@ -1604,17 +1429,192 @@ Out - + + True + True + + + 4 + 5 + + + + + True + True + + + 4 + 5 + 1 + 2 + + + + + True + True + + + 4 + 5 + 2 + 3 + + + + + True + Jog Speed select A + + + 4 + 5 + + + + + True + True + + + 1 + 2 + 4 + 5 + + + + + + + True + Digital Control + + + label_item + + + + + 2 + + + + + True + True + + + True + 4 + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + + + 1 + 2 + 3 + 4 + + + + + True + True + + + 1 + 2 + 2 + 3 + + + + + True + True + + + 1 + 2 + 1 + 2 + + + + True True 1 2 + + + + + True + A + + 3 4 + + + True + Z + + + 2 + 3 + + + + + True + Y + + + 1 + 2 + + + + + True + X + + @@ -1927,290 +1927,295 @@ Out - + True - Mux options + <b>d)</b> + True - 7 - 10 + 3 + 4 + GTK_EXPAND - + True + abcd) - 7 - 10 - 1 - 2 + 3 + 4 + 7 + 8 + GTK_EXPAND - + True - Sec + bcd) - 9 - 10 - 2 - 3 + 3 + 4 + 6 + 7 + GTK_EXPAND - + True - True - 0.20000000000000001 0.01 1 0.01 0 0 - 2 + acd) - 8 - 9 - 2 - 3 + 3 + 4 + 5 + 6 + GTK_EXPAND - + True - True - use debounce - 0 - True + cd) - 7 - 8 + 3 + 4 + 4 + 5 + GTK_EXPAND + + + + + True + bd) + + + 3 + 4 2 3 + GTK_EXPAND - + True - True - use gray code - 0 - True + ad) - 7 - 8 - 3 - 4 + 3 + 4 + 1 + 2 + GTK_EXPAND - + True - True - ignore all inputs false - 0 - True + abc) - 7 - 8 - 4 - 5 + 7 + 8 + GTK_EXPAND - + True + <b>c)</b> + True - 6 - 7 - 8 + 4 + 5 + GTK_EXPAND - + True 0 label - 2 - 3 - 3 - 4 + 5 + 6 + 7 + 8 - + True 0 label - 2 - 3 - 2 - 3 + 5 + 6 + 6 + 7 - + True 0 label - 2 - 3 - 1 - 2 + 5 + 6 + 5 + 6 - + True - abc) + 0 + label - 3 - 4 - 3 - 4 - GTK_EXPAND + 5 + 6 + 4 + 5 - + True - ab) + 0 + label + 5 + 6 3 4 - + True - <b>b)</b> - True + 0 + label + 5 + 6 2 3 - + True - <b>a)</b> - True + 0 + label + 5 + 6 1 2 - + True - True - 0 0 100 0.01 10 0 - 4 + 0 + label - 4 - 5 - 3 - 4 - GTK_EXPAND + 5 + 6 - + True - True - 0 0 100 0.01 10 0 - 4 + 0 + label - 4 - 5 - 2 - 3 - GTK_EXPAND + 2 + 3 + 7 + 8 - + True - True - 0 0 100 0.01 10 0 - 4 + 0 + label - 4 - 5 - 1 - 2 - GTK_EXPAND + 2 + 3 + 6 + 7 - + True - True - 0 0 100 0.01 10 0 - 4 + 0 + label - 1 - 2 - 3 - 4 - GTK_EXPAND + 2 + 3 + 5 + 6 - + True - True - 0 0 100 1 10 0 - 4 + 0 + mm - 1 - 2 - 2 - 3 - GTK_EXPAND + 2 + 3 + 4 + 5 - + True - True - 0 0 100 0.01 10 0 - 4 + bc) - 1 - 2 - 1 - 2 - GTK_EXPAND + 6 + 7 - + True - <b>default</b> - True + ac) + + 5 + 6 + GTK_EXPAND + - + True True 0 0 100 0.01 10 0 @@ -2219,50 +2224,58 @@ Out 1 2 + 7 + 8 GTK_EXPAND - + True - 0 - mm + True + 0 0 100 0.01 10 0 + 4 - 2 - 3 + 1 + 2 + 6 + 7 + GTK_EXPAND - + True True 0 0 100 0.01 10 0 4 - 4 - 5 + 1 + 2 + 5 + 6 GTK_EXPAND - + True True 0 0 100 0.01 10 0 4 - 4 - 5 + 1 + 2 4 5 GTK_EXPAND - + True True 0 0 100 0.01 10 0 @@ -2271,8 +2284,8 @@ Out 4 5 - 5 - 6 + 7 + 8 GTK_EXPAND @@ -2292,7 +2305,7 @@ Out - + True True 0 0 100 0.01 10 0 @@ -2301,58 +2314,52 @@ Out 4 5 - 7 - 8 + 5 + 6 GTK_EXPAND - + True True 0 0 100 0.01 10 0 4 - 1 - 2 + 4 + 5 4 5 GTK_EXPAND - + True True 0 0 100 0.01 10 0 4 - 1 - 2 - 5 - 6 + 4 + 5 GTK_EXPAND - + True - True - 0 0 100 0.01 10 0 - 4 + 0 + mm - 1 - 2 - 6 - 7 - GTK_EXPAND + 2 + 3 - + True True 0 0 100 0.01 10 0 @@ -2361,297 +2368,290 @@ Out 1 2 - 7 - 8 GTK_EXPAND - + True - ac) + <b>default</b> + True - - 5 - 6 - GTK_EXPAND - - + True - bc) + True + 0 0 100 0.01 10 0 + 4 - 6 - 7 + 1 + 2 + 1 + 2 + GTK_EXPAND - + True - 0 - mm + True + 0 0 100 1 10 0 + 4 - 2 - 3 - 4 - 5 + 1 + 2 + 2 + 3 + GTK_EXPAND - + True - 0 - label + True + 0 0 100 0.01 10 0 + 4 - 2 - 3 - 5 - 6 + 1 + 2 + 3 + 4 + GTK_EXPAND - + True - 0 - label + True + 0 0 100 0.01 10 0 + 4 - 2 - 3 - 6 - 7 + 4 + 5 + 1 + 2 + GTK_EXPAND - + True - 0 - label + True + 0 0 100 0.01 10 0 + 4 - 2 - 3 - 7 - 8 + 4 + 5 + 2 + 3 + GTK_EXPAND - + True - 0 - label + True + 0 0 100 0.01 10 0 + 4 - 5 - 6 + 4 + 5 + 3 + 4 + GTK_EXPAND - + True - 0 - label + <b>a)</b> + True - 5 - 6 1 2 - + True - 0 - label + <b>b)</b> + True - 5 - 6 2 3 - + True - 0 - label + ab) - 5 - 6 3 4 - + True - 0 - label + abc) - 5 - 6 - 4 - 5 + 3 + 4 + 3 + 4 + GTK_EXPAND - + True 0 label - 5 - 6 - 5 - 6 + 2 + 3 + 1 + 2 - + True 0 label - 5 - 6 - 6 - 7 + 2 + 3 + 2 + 3 - + True 0 label - 5 - 6 - 7 - 8 + 2 + 3 + 3 + 4 - + True - <b>c)</b> - True - 4 - 5 - GTK_EXPAND + 6 + 7 + 8 - + True - abc) + True + ignore all inputs false + 0 + True - 7 - 8 - GTK_EXPAND + 7 + 8 + 4 + 5 - + True - ad) + True + use gray code + 0 + True - 3 - 4 - 1 - 2 - GTK_EXPAND + 7 + 8 + 3 + 4 - + True - bd) + True + use debounce + 0 + True - 3 - 4 + 7 + 8 2 3 - GTK_EXPAND - - - - - True - cd) - - - 3 - 4 - 4 - 5 - GTK_EXPAND - + True - acd) + True + 0.20000000000000001 0.01 1 0.01 0 0 + 2 - 3 - 4 - 5 - 6 - GTK_EXPAND + 8 + 9 + 2 + 3 - + True - bcd) + Sec - 3 - 4 - 6 - 7 - GTK_EXPAND + 9 + 10 + 2 + 3 - + True - abcd) - 3 - 4 - 7 - 8 - GTK_EXPAND + 7 + 10 + 1 + 2 - + True - <b>d)</b> - True + Mux options - 3 - 4 - GTK_EXPAND + 7 + 10 @@ -2820,335 +2820,352 @@ Out - + True - Sec + 0 + % - 9 - 10 - 2 - 3 + 5 + 6 - + + True + 0 + % + + + 2 + 3 + + + + True True - ignore all-inputs false - 0 - True + 23 0 200 1 10 0 - 7 - 9 - 4 - 5 + 1 + 2 + GTK_EXPAND - + + True + <b>default</b> + True + + + + True True - use graycode - 0 - True + 0 0 200 1 10 0 - 7 - 8 - 3 - 4 + 1 + 2 + 1 + 2 + GTK_EXPAND - + True True - use debounce - 0 - True + 0 0 200 1 10 0 - 7 - 8 + 1 + 2 2 3 + GTK_EXPAND - + True True - 0.20000000000000001 0.01 1 0.01 0 0 - 2 + 1 0 200 1 10 0 - 8 - 9 - 2 - 3 + 1 + 2 + 3 + 4 + GTK_EXPAND - + True + <b>a)</b> + True - 7 - 10 1 2 - + True - Mux options + <b>b)</b> + True - 7 - 10 + 2 + 3 - + True + ab) - 6 - 7 - 8 + 3 + 4 - + True - cd) + 0 + % - 3 - 4 - 4 - 5 - GTK_EXPAND + 2 + 3 + 1 + 2 - + True - abd) + 0 + % - 3 - 4 + 2 + 3 + 2 + 3 + + + + + True + 0 + % + + + 2 + 3 3 4 - GTK_EXPAND - + True - bd) + 0 + % - 3 - 4 + 5 + 6 + 1 + 2 + + + + + True + 0 + % + + + 5 + 6 2 3 - GTK_EXPAND - + True - ad) + 0 + % - 3 - 4 - 1 - 2 - GTK_EXPAND + 5 + 6 + 3 + 4 - + True - <b>d)</b> + <b>c)</b> True - 3 - 4 + 4 + 5 GTK_EXPAND - + True - acd) + ac) - 3 - 4 5 6 GTK_EXPAND - + True - bcd) + bc) - 3 - 4 6 7 - GTK_EXPAND - + True - abcd) + abc) - 3 - 4 7 8 GTK_EXPAND - - True - True - 0 0 200 1 10 0 - - - 4 - 5 - 7 - 8 - GTK_EXPAND - - - - + True True 0 0 200 1 10 0 - 4 - 5 - 6 - 7 + 1 + 2 + 4 + 5 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 + 1 + 2 5 6 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 - 4 - 5 + 1 + 2 + 6 + 7 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 - 3 - 4 + 1 + 2 + 7 + 8 GTK_EXPAND - + True - True - 0 0 200 1 10 0 + 0 + % - 4 - 5 - 2 - 3 - GTK_EXPAND + 2 + 3 + 4 + 5 - + True - True - 0 0 200 1 10 0 + 0 + % - 4 - 5 - 1 - 2 - GTK_EXPAND + 2 + 3 + 5 + 6 - + True - True - 0 0 200 1 10 0 + 0 + % - 4 - 5 - GTK_EXPAND + 2 + 3 + 6 + 7 - + True 0 % - 5 - 6 + 2 + 3 7 8 - + True 0 % @@ -3156,8 +3173,8 @@ Out 5 6 - 6 - 7 + 4 + 5 @@ -3174,7 +3191,7 @@ Out - + True 0 % @@ -3182,353 +3199,336 @@ Out 5 6 - 4 - 5 + 6 + 7 - + True 0 % - 2 - 3 + 5 + 6 7 8 - + True - 0 - % + True + 0 0 200 1 10 0 - 2 - 3 - 6 - 7 + 4 + 5 + GTK_EXPAND - + True - 0 - % + True + 0 0 200 1 10 0 - 2 - 3 - 5 - 6 + 4 + 5 + 1 + 2 + GTK_EXPAND - + True - 0 - % + True + 0 0 200 1 10 0 - 2 - 3 - 4 - 5 + 4 + 5 + 2 + 3 + GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 - 7 - 8 + 4 + 5 + 3 + 4 GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 - 6 - 7 + 4 + 5 + 4 + 5 GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 + 4 + 5 5 6 GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 - 4 - 5 + 4 + 5 + 6 + 7 GTK_EXPAND - + True - abc) + True + 0 0 200 1 10 0 + 4 + 5 7 8 GTK_EXPAND - + True - bc) + abcd) + + + 3 + 4 + 7 + 8 + GTK_EXPAND + + + + + True + bcd) + 3 + 4 6 7 + GTK_EXPAND - + True - ac) + acd) + 3 + 4 5 6 GTK_EXPAND - + True - <b>c)</b> + <b>d)</b> True - 4 - 5 + 3 + 4 GTK_EXPAND - + True - 0 - % + ad) - 5 - 6 - 3 - 4 + 3 + 4 + 1 + 2 + GTK_EXPAND - + True - 0 - % + bd) - 5 - 6 + 3 + 4 2 3 + GTK_EXPAND - - True - 0 - % - - - 5 - 6 - 1 - 2 - - - - + True - 0 - % + abd) - 2 - 3 + 3 + 4 3 4 + GTK_EXPAND - - True - 0 - % - - - 2 - 3 - 2 - 3 - - - - + True - 0 - % + cd) - 2 - 3 - 1 - 2 + 3 + 4 + 4 + 5 + GTK_EXPAND - + True - ab) - 3 - 4 + 6 + 7 + 8 - + True - <b>b)</b> - True + Mux options - 2 - 3 + 7 + 10 - + True - <b>a)</b> - True + 7 + 10 1 2 - + True True - 1 0 200 1 10 0 + 0.20000000000000001 0.01 1 0.01 0 0 + 2 - 1 - 2 - 3 - 4 - GTK_EXPAND + 8 + 9 + 2 + 3 - + True True - 0 0 200 1 10 0 + use debounce + 0 + True - 1 - 2 + 7 + 8 2 3 - GTK_EXPAND - + True True - 0 0 200 1 10 0 + use graycode + 0 + True - 1 - 2 - 1 - 2 - GTK_EXPAND + 7 + 8 + 3 + 4 - - True - <b>default</b> - True - - - - + True True - 23 0 200 1 10 0 - - - 1 - 2 - GTK_EXPAND - - - - - True - 0 - % + ignore all-inputs false + 0 + True - 2 - 3 + 7 + 9 + 4 + 5 - + True - 0 - % + Sec - 5 - 6 + 9 + 10 + 2 + 3 @@ -3603,18 +3603,18 @@ Out - + True 0 - + True True - + True - + True True Use MPG @@ -3627,14 +3627,14 @@ Out - + True True use switches 0 True True - so_usempg + mvo_usempg @@ -3643,24 +3643,24 @@ Out - + True True - + True 0 GTK_SHADOW_NONE - + True - + True 0 0.20000000298023224 - + True 8 10 @@ -3701,361 +3701,352 @@ Out - + True - Sec + 0 + % - 9 - 10 - 2 - 3 + 5 + 6 - + True - True - 0.20000000000000001 0.01 1 0.01 0 0 - 2 + 0 + % - 8 - 9 - 2 - 3 + 2 + 3 - + True True - ignore all-inputs false - 0 - True + 24 0 200 1 10 0 - 7 - 9 - 4 - 5 + 1 + 2 + GTK_EXPAND - + + True + <b>default</b> + True + + + + True True - use graycode - 0 - True + 0 0 200 1 10 0 - 7 - 8 - 3 - 4 + 1 + 2 + 1 + 2 + GTK_EXPAND - + True True - use debounce - 0 - True + 0 0 200 1 10 0 - 7 - 8 + 1 + 2 2 3 + GTK_EXPAND - + True + True + 0 0 200 1 10 0 - 7 - 10 - 1 - 2 + 1 + 2 + 3 + 4 + GTK_EXPAND - + True - Mux options + <b>a)</b> + True - 7 - 10 + 1 + 2 - + True - + <b>b)</b> + True + - 6 - 7 - 8 + 2 + 3 - + True - cd) + ab) - 3 - 4 - 4 - 5 - GTK_EXPAND + 3 + 4 - + True - abd) + 0 + % - 3 - 4 - 3 - 4 - GTK_EXPAND + 2 + 3 + 1 + 2 - + True - bd) + 0 + % - 3 - 4 + 2 + 3 2 3 - GTK_EXPAND - + True - ad) + 0 + % - 3 - 4 - 1 - 2 - GTK_EXPAND + 2 + 3 + 3 + 4 - + True - <b>d)</b> - True + 0 + % - 3 - 4 - GTK_EXPAND + 5 + 6 + 1 + 2 - + True - acd) + 0 + % - 3 - 4 - 5 - 6 - GTK_EXPAND + 5 + 6 + 2 + 3 - + True - bcd) + 0 + % - 3 - 4 - 6 - 7 - GTK_EXPAND + 5 + 6 + 3 + 4 - + True - abcd) + <b>c)</b> + True - 3 - 4 - 7 - 8 + 4 + 5 GTK_EXPAND - + True - True - 0 0 200 1 10 0 + ac) - 4 - 5 - 7 - 8 + 5 + 6 GTK_EXPAND - + True - True - 0 0 200 1 10 0 + bc) - 4 - 5 6 7 - GTK_EXPAND - + True - True - 0 0 200 1 10 0 + abc) - 4 - 5 - 5 - 6 + 7 + 8 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 + 1 + 2 4 5 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 - 3 - 4 + 1 + 2 + 5 + 6 GTK_EXPAND - + True True - 0 0 200 1 10 0 + 3 0 200 1 10 0 - 4 - 5 - 2 - 3 + 1 + 2 + 6 + 7 GTK_EXPAND - + True True 0 0 200 1 10 0 - 4 - 5 - 1 - 2 + 1 + 2 + 7 + 8 GTK_EXPAND - + True - True - 0 0 200 1 10 0 + 0 + % - 4 - 5 - GTK_EXPAND + 2 + 3 + 4 + 5 - + True 0 % - 5 - 6 - 7 - 8 + 2 + 3 + 5 + 6 - + True 0 % - 5 - 6 + 2 + 3 6 7 - + True 0 % - 5 - 6 - 5 - 6 + 2 + 3 + 7 + 8 - + True 0 % @@ -4068,348 +4059,357 @@ Out - + True 0 % - 2 - 3 - 7 - 8 + 5 + 6 + 5 + 6 - + True 0 % - 2 - 3 + 5 + 6 6 7 - + True 0 % - 2 - 3 - 5 - 6 + 5 + 6 + 7 + 8 - + True - 0 - % + True + 0 0 200 1 10 0 - 2 - 3 - 4 - 5 + 4 + 5 + GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 - 7 - 8 + 4 + 5 + 1 + 2 GTK_EXPAND - + True True - 3 0 200 1 10 0 + 0 0 200 1 10 0 - 1 - 2 - 6 - 7 + 4 + 5 + 2 + 3 GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 - 5 - 6 + 4 + 5 + 3 + 4 GTK_EXPAND - + True True 0 0 200 1 10 0 - 1 - 2 + 4 + 5 4 5 GTK_EXPAND - + True - abc) + True + 0 0 200 1 10 0 - 7 - 8 + 4 + 5 + 5 + 6 GTK_EXPAND - + True - bc) + True + 0 0 200 1 10 0 + 4 + 5 6 7 + GTK_EXPAND - + True - ac) + True + 0 0 200 1 10 0 - 5 - 6 + 4 + 5 + 7 + 8 GTK_EXPAND - + True - <b>c)</b> - True + abcd) - 4 - 5 + 3 + 4 + 7 + 8 GTK_EXPAND - + True - 0 - % + bcd) - 5 - 6 - 3 - 4 + 3 + 4 + 6 + 7 + GTK_EXPAND - + True - 0 - % + acd) - 5 - 6 - 2 - 3 + 3 + 4 + 5 + 6 + GTK_EXPAND - + True - 0 - % + <b>d)</b> + True - 5 - 6 - 1 - 2 + 3 + 4 + GTK_EXPAND - + True - 0 - % + ad) - 2 - 3 - 3 - 4 + 3 + 4 + 1 + 2 + GTK_EXPAND - + True - 0 - % + bd) - 2 - 3 + 3 + 4 2 3 + GTK_EXPAND - + True - 0 - % + abd) - 2 - 3 - 1 - 2 + 3 + 4 + 3 + 4 + GTK_EXPAND - + True - ab) + cd) - 3 - 4 + 3 + 4 + 4 + 5 + GTK_EXPAND - + True - <b>b)</b> - True - 2 - 3 + 6 + 7 + 8 - + True - <b>a)</b> - True + Mux options - 1 - 2 + 7 + 10 - + True - True - 1 0 200 1 10 0 - 1 - 2 - 3 - 4 - GTK_EXPAND + 7 + 10 + 1 + 2 - + True True - 0 0 200 1 10 0 + use debounce + 0 + True - 1 - 2 + 7 + 8 2 3 - GTK_EXPAND - + True True - 0 0 200 1 10 0 + use graycode + 0 + True - 1 - 2 - 1 - 2 - GTK_EXPAND + 7 + 8 + 3 + 4 - - True - <b>default</b> - True - - - - + True True - 23 0 200 1 10 0 + ignore all-inputs false + 0 + True - 1 - 2 - GTK_EXPAND + 7 + 9 + 4 + 5 - + True - 0 - % + True + 0.20000000000000001 0.01 1 0.01 0 0 + 2 - 2 - 3 + 8 + 9 + 2 + 3 - + True - 0 - % + Sec - 5 - 6 + 9 + 10 + 2 + 3 @@ -4431,7 +4431,7 @@ Out - + True Increments @@ -4447,7 +4447,7 @@ Out - + True Details @@ -4458,16 +4458,16 @@ Out - + True True 0 True - + True - <b>External Spindle Override</b> + <b>Max Velocity Override</b> True @@ -4484,31 +4484,909 @@ Out - - - - - - - - - - - - - - True - GUI configuration - - - - - - - - True - - + + True + 0 + + + True + True + + + True + + + True + True + Use MPG + 0 + True + True + + + False + + + + + True + True + use switches + 0 + True + True + so_usempg + + + + False + 1 + + + + + True + True + + + True + 0 + GTK_SHADOW_NONE + + + True + + + True + 0 + 0.20000000298023224 + + + True + 8 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + 0 + % + + + 5 + 6 + + + + + True + 0 + % + + + 2 + 3 + + + + + True + True + 38 0 200 1 10 0 + + + 1 + 2 + GTK_EXPAND + + + + + True + <b>default</b> + True + + + + + True + True + 0 0 200 1 10 0 + + + 1 + 2 + 1 + 2 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 1 + 2 + 2 + 3 + GTK_EXPAND + + + + + True + True + 1 0 200 1 10 0 + + + 1 + 2 + 3 + 4 + GTK_EXPAND + + + + + True + <b>a)</b> + True + + + 1 + 2 + + + + + True + <b>b)</b> + True + + + 2 + 3 + + + + + True + ab) + + + 3 + 4 + + + + + True + 0 + % + + + 2 + 3 + 1 + 2 + + + + + True + 0 + % + + + 2 + 3 + 2 + 3 + + + + + True + 0 + % + + + 2 + 3 + 3 + 4 + + + + + True + 0 + % + + + 5 + 6 + 1 + 2 + + + + + True + 0 + % + + + 5 + 6 + 2 + 3 + + + + + True + 0 + % + + + 5 + 6 + 3 + 4 + + + + + True + <b>c)</b> + True + + + 4 + 5 + GTK_EXPAND + + + + + True + ac) + + + 5 + 6 + GTK_EXPAND + + + + + True + bc) + + + 6 + 7 + + + + + True + abc) + + + 7 + 8 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 1 + 2 + 4 + 5 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 1 + 2 + 5 + 6 + GTK_EXPAND + + + + + True + True + 3 0 200 1 10 0 + + + 1 + 2 + 6 + 7 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 1 + 2 + 7 + 8 + GTK_EXPAND + + + + + True + 0 + % + + + 2 + 3 + 4 + 5 + + + + + True + 0 + % + + + 2 + 3 + 5 + 6 + + + + + True + 0 + % + + + 2 + 3 + 6 + 7 + + + + + True + 0 + % + + + 2 + 3 + 7 + 8 + + + + + True + 0 + % + + + 5 + 6 + 4 + 5 + + + + + True + 0 + % + + + 5 + 6 + 5 + 6 + + + + + True + 0 + % + + + 5 + 6 + 6 + 7 + + + + + True + 0 + % + + + 5 + 6 + 7 + 8 + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + 1 + 2 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + 2 + 3 + GTK_EXPAND + + + + + True + True + 4 0 200 1 10 0 + + + 4 + 5 + 3 + 4 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + 4 + 5 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + 5 + 6 + GTK_EXPAND + + + + + True + True + 1 0 200 1 10 0 + + + 4 + 5 + 6 + 7 + GTK_EXPAND + + + + + True + True + 0 0 200 1 10 0 + + + 4 + 5 + 7 + 8 + GTK_EXPAND + + + + + True + abcd) + + + 3 + 4 + 7 + 8 + GTK_EXPAND + + + + + True + bcd) + + + 3 + 4 + 6 + 7 + GTK_EXPAND + + + + + True + acd) + + + 3 + 4 + 5 + 6 + GTK_EXPAND + + + + + True + <b>d)</b> + True + + + 3 + 4 + GTK_EXPAND + + + + + True + ad) + + + 3 + 4 + 1 + 2 + GTK_EXPAND + + + + + True + bd) + + + 3 + 4 + 2 + 3 + GTK_EXPAND + + + + + True + abd) + + + 3 + 4 + 3 + 4 + GTK_EXPAND + + + + + True + cd) + + + 3 + 4 + 4 + 5 + GTK_EXPAND + + + + + True + + + 6 + 7 + 8 + + + + + True + Mux options + + + 7 + 10 + + + + + True + + + 7 + 10 + 1 + 2 + + + + + True + True + use debounce + 0 + True + + + 7 + 8 + 2 + 3 + + + + + True + True + use graycode + 0 + True + + + 7 + 8 + 3 + 4 + + + + + True + True + ignore all-inputs false + 0 + True + + + 7 + 9 + 4 + 5 + + + + + True + True + 0.20000000000000001 0.01 1 0.01 0 0 + 2 + + + 8 + 9 + 2 + 3 + + + + + True + Sec + + + 9 + 10 + 2 + 3 + + + + + + + False + False + + + + + + + + label_item + + + + + + + True + Increments + + + label_item + + + + + 2 + + + + + + + True + Details + + + label_item + + + + + + + True + True + 0 + True + + + + True + <b>External Spindle Override</b> + True + + + + + label_item + + + + + False + False + 6 + + + + + + + + + + + + + + True + GUI configuration + + + + + + + + True + + True @@ -4674,44 +5552,36 @@ Out - + True - Commanded -Actual + 0 + Position_offset - - 1 - 2 - 1 - 2 - - + True - Machine -Relative - + 0 + Position_feedback - 1 - 2 + 1 + 2 - + True - % + 0 + Max Spindle Override - 6 - 7 - 2 - 3 + 4 + 5 - + True True 200 100 200 1 10 0 @@ -4719,84 +5589,82 @@ Relative 5 6 - 2 - 3 - + True 0 - Max Feed Override + Min Spindle Override 4 5 - 2 - 3 + 1 + 2 - + True + True + 50 0 100 1 10 0 - 3 - 4 - 3 - 5 + 5 + 6 + 1 + 2 - + True % 6 7 + 1 + 2 - + True % 6 7 - 1 - 2 - + True - True - 50 0 100 1 10 0 - 5 - 6 - 1 - 2 + 3 + 4 + 3 + 5 - + True 0 - Min Spindle Override + Max Feed Override 4 5 - 1 - 2 + 2 + 3 - + True True 200 100 200 1 10 0 @@ -4804,36 +5672,46 @@ Relative 5 6 + 2 + 3 - + True - 0 - Max Spindle Override + % - 4 - 5 + 6 + 7 + 2 + 3 - + True - 0 - Position_feedback + Machine +Relative + - 1 - 2 + 1 + 2 - + True - 0 - Position_offset + Commanded +Actual + + 1 + 2 + 1 + 2 + @@ -4919,261 +5797,169 @@ Relative - + True - 3 - 5 - - - True - True - Force Axis to Maximize - 0 - True - - - 5 - 2 - 3 - - - - - True - True - 0 0 1500 100 250 0 - - - 4 - 5 - - - - - True - H - - - 3 - 4 - - - - - True - True - 0 0 1500 100 250 0 - - - 2 - 3 - - - - - True - True - 0 0 1500 100 500 0 - - - 4 - 5 - 1 - 2 - - - - - True - W - - - 1 - 2 - - - - - True - X - - - 1 - 2 - 1 - 2 - - - - - True - True - 100 0 1500 100 500 0 - - - 2 - 3 - 1 - 2 - - - - - True - Y - - - 3 - 4 - 1 - 2 - - - - - True - True - Position - 0 - True - - - 1 - 2 - - - - - True - True - size - 0 - True - - + 0 + Default linear velocity + + + + + True + 0 + Min linear velocity - 3 - 6 - 9 + 1 + 2 - + True - mm / min + 0 + Max linear velocity - 2 - 3 + 2 + 3 - + True - mm / min + True + 1 0 20000 1 10 0 + 2 - 2 - 3 - 1 - 2 + 1 + 2 - + True + True + 1 0 1000 1 10 0 + 2 - 3 - 4 - 4 - 5 + 1 + 2 + 1 + 2 - + True - Deg / min + True + 1 0 20000 1 10 0 + 2 - 6 - 7 + 1 + 2 + 2 + 3 - + True - Deg / min + mm / min - 6 - 7 + 2 + 3 2 3 - + True - Deg / min + 0 + Default Angular velocity - 6 - 7 - 1 - 2 + 4 + 5 - + True True - xyzabc + 1 0 100000 1 10 0 + 2 + + + 5 + 6 + + + + + True + 0 + Editor + + + 3 + 4 + + + + + True + True + gedit 1 3 - 5 - 6 + 3 + 4 - + True 0 - Axis Geometry + Min Angular velocity - 5 - 6 + 4 + 5 + 1 + 2 - + True True - 1 0 100000 1 10 0 + 1 0 1000 1 10 0 2 5 6 - 2 - 3 + 1 + 2 - + True 0 - Max Angular velocity + Increments - 4 - 5 - 2 - 3 + 4 + 5 @@ -5190,171 +5976,263 @@ Relative - + True 0 - Increments + Max Angular velocity - 4 - 5 + 4 + 5 + 2 + 3 - + True True - 1 0 1000 1 10 0 + 1 0 100000 1 10 0 2 5 6 - 1 - 2 + 2 + 3 - + True 0 - Min Angular velocity + Axis Geometry - 4 - 5 - 1 - 2 + 5 + 6 - + True True - gedit + xyzabc 1 3 - 3 - 4 + 5 + 6 - + True - 0 - Editor + Deg / min - 3 - 4 + 6 + 7 + 1 + 2 - + True - True - 1 0 100000 1 10 0 - 2 + Deg / min - 5 - 6 + 6 + 7 + 2 + 3 - + True - 0 - Default Angular velocity + Deg / min - 4 - 5 + 6 + 7 - + + True + + + 3 + 4 + 4 + 5 + + + + + True + mm / min + + + 2 + 3 + 1 + 2 + + + + True mm / min - 2 + 2 + 3 + + + + + True + 3 + 5 + + + True + True + size + 0 + True + + + + + True + True + Position + 0 + True + + + 1 + 2 + + + + + True + Y + + + 3 + 4 + 1 + 2 + + + + + True + True + 100 0 1500 100 500 0 + + + 2 + 3 + 1 + 2 + + + + + True + X + + + 1 + 2 + 1 + 2 + + + + + True + W + + + 1 + 2 + + + + + True + True + 0 0 1500 100 500 0 + + + 4 + 5 + 1 + 2 + + + + + True + True + 0 0 1500 100 250 0 + + + 2 + 3 + + + + + True + H + + + 3 + 4 + + + + + True + True + 0 0 1500 100 250 0 + + + 4 + 5 + + + + + True + True + Force Axis to Maximize + 0 + True + + + 5 + 2 + 3 + + + + 3 - 2 - 3 - - - - - True - True - 1 0 20000 1 10 0 - 2 - - - 1 - 2 - 2 - 3 - - - - - True - True - 1 0 1000 1 10 0 - 2 - - - 1 - 2 - 1 - 2 - - - - - True - True - 1 0 20000 1 10 0 - 2 - - - 1 - 2 - - - - - True - 0 - Max linear velocity - - - 2 - 3 - - - - - True - 0 - Min linear velocity - - - 1 - 2 + 6 + 9 - - - True - 0 - Default linear velocity - - @@ -5467,219 +6345,66 @@ Relative - - - True - True - Error Textcolor - 0 - True - - - 4 - 5 - - - - - True - True - DTG Textcolor - 0 - True - - - 3 - 4 - - - - - True - True - Relative Textcolor - 0 - True - - - 2 - 3 - - - - - True - True - Absolute Textcolor - 0 - True - - - 1 - 2 - - - - - True - True - True - 0 - #000000000000 - 65534 - - - 1 - 2 - 4 - 5 - - - - - True - True - True - 0 - #000000000000 - 65529 - - - 1 - 2 - 3 - 4 - - - - - True - True - True - 0 - #000000000000 - 65534 - - - 1 - 2 - 2 - 3 - - - - - True - True - True - 0 - Absolute Text Color - #000000000000 - 65534 - - - 1 - 2 - 1 - 2 - - - - - True - - - 2 - 3 - 1 - 5 - - - - - True - GTK Theme - - - 3 - 4 - 1 - 2 - - - - - True - Follow System Theme - - - - 4 - 6 - 1 - 2 - - True 3 5 - + True True - size + Force Touchy to Maximize after positioning 0 True + + 5 + 2 + 3 + - + True True - Position - 0 - True + 0 0 1500 100 250 0 - 1 - 2 + 4 + 5 - + True - Y + H 3 4 - 1 - 2 - + True True - 100 0 1500 100 500 0 + 0 0 1500 100 250 0 2 3 - 1 - 2 - + True - X + True + 0 0 1500 100 500 0 - 1 - 2 + 4 + 5 1 2 @@ -5695,63 +6420,63 @@ Relative - + True - True - 0 0 1500 100 500 0 + X - 4 - 5 + 1 + 2 1 2 - + True True - 0 0 1500 100 250 0 + 100 0 1500 100 500 0 2 3 + 1 + 2 - + True - H + Y 3 4 + 1 + 2 - + True True - 0 0 1500 100 250 0 + Position + 0 + True - 4 - 5 + 1 + 2 - + True True - Force Touchy to Maximize after positioning + size 0 True - - 5 - 2 - 3 - @@ -5762,6 +6487,159 @@ Relative GTK_EXPAND + + + True + Follow System Theme + + + + 4 + 6 + 1 + 2 + + + + + True + GTK Theme + + + 3 + 4 + 1 + 2 + + + + + True + + + 2 + 3 + 1 + 5 + + + + + True + True + True + 0 + Absolute Text Color + #000000000000 + 65534 + + + 1 + 2 + 1 + 2 + + + + + True + True + True + 0 + #000000000000 + 65534 + + + 1 + 2 + 2 + 3 + + + + + True + True + True + 0 + #000000000000 + 65529 + + + 1 + 2 + 3 + 4 + + + + + True + True + True + 0 + #000000000000 + 65534 + + + 1 + 2 + 4 + 5 + + + + + True + True + Absolute Textcolor + 0 + True + + + 1 + 2 + + + + + True + True + Relative Textcolor + 0 + True + + + 2 + 3 + + + + + True + True + DTG Textcolor + 0 + True + + + 3 + 4 + + + + + True + True + Error Textcolor + 0 + True + + + 4 + 5 + + @@ -5947,46 +6825,60 @@ Relative 2 5 - + True True - 0 0 1500 100 250 0 + size + 0 + True + + + + + True + True + Position + 0 + True - 4 - 5 + 1 + 2 - + True - H + Y 3 4 + 1 + 2 - + True True - 0 0 1500 100 250 0 + 0 0 1500 100 500 0 2 3 + 1 + 2 - + True - True - 0 0 1500 100 500 0 + X - 4 - 5 + 1 + 2 1 2 @@ -6002,64 +6894,50 @@ Relative - + True - X + True + 0 0 1500 100 500 0 - 1 - 2 + 4 + 5 1 2 - + True True - 0 0 1500 100 500 0 + 0 0 1500 100 250 0 2 3 - 1 - 2 - + True - Y + H 3 4 - 1 - 2 - + True True - Position - 0 - True + 0 0 1500 100 250 0 - 1 - 2 + 4 + 5 - - - True - True - size - 0 - True - - @@ -6264,111 +7142,81 @@ panel - + True - 0 - GTK Theme + True + 0 0 1500 100 250 0 - 3 - 4 + 4 + 5 - + True - Follow System Theme - + H - 1 - 5 - 3 - 4 + 3 + 4 - + True True - Force Maximize - 0 - True + 0 0 1500 100 250 0 - 2 - 2 - 3 + 2 + 3 - + True True - Center Tab Embeded - 0 - True - True + 0 0 1500 100 500 0 + 4 5 - 4 - 5 + 1 + 2 - + True - True - Rightside Embeded - 0 - True - True - centerembededgvcp + W - 5 - 5 - 6 + 1 + 2 - + True - True - Standalone Panel - 0 - True - True - centerembededgvcp - + X - 5 - 6 - 7 + 1 + 2 + 1 + 2 - - True - True - size - 0 - True - - - - - + True True - Position - 0 - True - + 100 0 1500 100 500 0 + 2 + 3 1 2 @@ -6386,83 +7234,113 @@ panel - + True True - 100 0 1500 100 500 0 + Position + 0 + True + - 2 - 3 1 2 - + True - X + True + size + 0 + True + + + + + + True + True + Standalone Panel + 0 + True + True + centerembededgvcp + - 1 - 2 - 1 - 2 + 5 + 6 + 7 - + True - W + True + Rightside Embeded + 0 + True + True + centerembededgvcp - 1 - 2 + 5 + 5 + 6 - + True True - 0 0 1500 100 500 0 + Center Tab Embeded + 0 + True + True - 4 5 - 1 - 2 + 4 + 5 - + True True - 0 0 1500 100 250 0 + Force Maximize + 0 + True - 2 - 3 + 2 + 2 + 3 - + True - H + Follow System Theme + - 3 - 4 + 1 + 5 + 3 + 4 - + True - True - 0 0 1500 100 250 0 + 0 + GTK Theme - 4 - 5 + 3 + 4 @@ -6784,45 +7662,41 @@ panel - + True True - Restore joint position after shutdown + Force individual manual homing 0 True - 1 - 2 - 1 - 2 + 3 + 4 - + True True - Move spindle up before tool change + Random position toolchanger 0 True 1 2 + 2 + 3 - + True True - Leave spindle on during tool change + Require homing before MDI / Running 0 True - - 2 - 3 - @@ -6839,40 +7713,44 @@ panel - + True True - Require homing before MDI / Running + Leave spindle on during tool change 0 True + + 2 + 3 + - + True True - Random position toolchanger + Move spindle up before tool change 0 True 1 2 - 2 - 3 - + True True - Force individual manual homing + Restore joint position after shutdown 0 True - 3 - 4 + 1 + 2 + 1 + 2 @@ -6948,30 +7826,6 @@ accept the changes. True 15 7 - - - Num of channels: - - - 2 - 3 - 10 - 11 - - - - - True - 1 1 8 1 10 0 - - - - 3 - 4 - 10 - 11 - - @@ -7138,486 +7992,510 @@ accept the changes. - - True - 0 - GTK_SHADOW_ETCHED_OUT - - - True - 12 - - - True - - - True - True - 7i29 daughter board - 0 - True - - - - - True - True - 7i30 daughter board - 0 - True - - - 1 - - - - - True - True - 7i33 daughter board - 0 - True - - - 2 - - - - - True - True - 7i40 daughter board - 0 - True - - - 3 - - - - - - - - - True - <b>Sanity Checks</b> - True - - - label_item - - + + 0 + 3PWM base frequency: - 6 - 7 - 11 - 15 + 5 + 6 - - True + + True + 20000 1000 48000 1000 0 0 - 5 - 6 - 3 - 14 + 1 + 2 + 5 + 6 - - True - 0 0 4 1 10 0 - + + True + 0 + Hz - 1 - 2 - 10 - 11 + 2 + 3 + 3 + 4 - + + True 0 - Num of Smart Serial Ports: + Mesa parport address: - 10 - 11 + 2 + 3 - + True - 0 - Board name + 1.1175870895385742e-08 + Firmware: + + 1 + 2 + - + True - 0 - 0 + True 1 2 - 12 - 13 + 2 + 3 - + True - 0 - Num of GPIO: + SVST8_4 - 12 - 13 + 1 + 2 + 1 + 2 - - True - 0 - Num of step generators: + + True + 7 0 8 1 10 0 + - 11 - 12 + 1 + 2 + 9 + 10 - - True + 0 - Num of pwm generators: + Num of 3 pwm generators: - 8 - 9 + 9 + 10 - + True - 0 - Num of encoders: + label - 7 - 8 + 1 + 2 - + True True - 4 0 4 1 10 0 - + 100000 5 195309 1000 10 0 1 2 - 11 - 12 + 3 + 4 - + True - True - 7 0 8 1 10 0 - + 0 + Total number of pins: - 1 - 2 - 8 - 9 + 13 + 14 - + True - True - 7 0 8 1 10 0 - + 0 + label 1 2 - 7 - 8 + 13 + 14 - + True True - 1007000 1000000 500000000 1000 10 0 + True + Accept components + Changes + 0 1 2 - 6 - 7 + 14 + 15 - + True - True - 6000000 5 10000000 1000 10 0 + 0 + PWM base frequency: + + + 3 + 4 + + + + + True + 0 + PDM base frequency: - 1 - 2 4 5 - + True 0 - ns + Watchdog timeout: - 2 - 3 6 7 - + + True 0 Hz 2 3 - 5 - 6 + 4 + 5 - - True + 0 Hz 2 3 - 4 - 5 + 5 + 6 - + True 0 - Watchdog timeout: + ns + 2 + 3 6 7 - + True - 0 - PDM base frequency: + True + 6000000 5 10000000 1000 10 0 + 1 + 2 4 5 - + True - 0 - PWM base frequency: + True + 1007000 1000000 500000000 1000 10 0 - 3 - 4 + 1 + 2 + 6 + 7 - + True True - True - Accept components - Changes - 0 + 7 0 8 1 10 0 + 1 2 - 14 - 15 + 7 + 8 - + True - 0 - label + True + 7 0 8 1 10 0 + 1 2 - 13 - 14 + 8 + 9 - + True - 0 - Total number of pins: + True + 4 0 4 1 10 0 + - 13 - 14 + 1 + 2 + 11 + 12 - + True - True - 100000 5 195309 1000 10 0 + 0 + Num of encoders: - 1 - 2 - 3 - 4 + 7 + 8 - + True - label + 0 + Num of pwm generators: - 1 - 2 + 8 + 9 - + + True 0 - Num of 3 pwm generators: + Num of step generators: - 9 - 10 + 11 + 12 - - True - 7 0 8 1 10 0 - + + True + 0 + Num of GPIO: - 1 - 2 - 9 - 10 + 12 + 13 - + True - SVST8_4 + 0 + 0 1 2 - 1 - 2 + 12 + 13 - + True - True + 0 + Board name + + + + + 0 + Num of Smart Serial Ports: - 1 - 2 - 2 - 3 + 10 + 11 - - True - 1.1175870895385742e-08 - Firmware: + + True + 0 0 4 1 10 0 + - 1 - 2 + 1 + 2 + 10 + 11 - + True - 0 - Mesa parport address: - 2 - 3 + 5 + 6 + 3 + 14 - + True - 0 - Hz + 0 + GTK_SHADOW_ETCHED_OUT + + + True + 12 + + + True + + + True + True + 7i29 daughter board + 0 + True + + + + + True + True + 7i30 daughter board + 0 + True + + + 1 + + + + + True + True + 7i33 daughter board + 0 + True + + + 2 + + + + + True + True + 7i40 daughter board + 0 + True + + + 3 + + + + + + + + + True + <b>Sanity Checks</b> + True + + + label_item + + - 2 - 3 - 3 - 4 + 6 + 7 + 11 + 15 - + True - 20000 1000 48000 1000 0 0 + 1 1 8 1 10 0 + - 1 - 2 - 5 - 6 + 3 + 4 + 10 + 11 - - 0 - 3PWM base frequency: + + Num of channels: - 5 - 6 + 2 + 3 + 10 + 11 @@ -7826,233 +8704,153 @@ accept the changes. - - True - 0 - Num - True - - - 5 - 6 - GTK_FILL - - - - - - True - 0 - Num - True - - - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 11 - 12 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 10 - 11 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 9 - 10 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 8 - 9 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 7 - 8 - 7 - 8 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 7 - 8 - 6 - 7 + 1 + 2 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Pin Type - 7 - 8 - 5 - 6 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Inv - 7 - 8 - 4 - 5 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 3 - 4 + 3 + 4 + 1 + 2 GTK_FILL - + True GPIO Input GPIO Output @@ -8063,168 +8861,117 @@ StepGen - 7 - 8 - 2 - 3 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 1 - 2 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - - 2 - 3 - 12 - 13 + + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 1: + True - 2 - 3 - 11 - 12 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 3: + True - 2 - 3 - 10 - 11 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 5: + True - 2 - 3 - 9 - 10 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 7: + True - 2 - 3 - 8 - 9 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 9: + True - 2 - 3 - 7 - 8 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 11: + True - 2 - 3 6 7 GTK_FILL @@ -8232,150 +8979,200 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 13: + True - 2 - 3 - 5 - 6 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 15: + True - 2 - 3 - 4 - 5 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 17: + True - 2 - 3 - 3 - 4 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 19: + True - 2 - 3 - 2 - 3 + 10 + 11 GTK_FILL - + True + 0 + 21: + True - 2 - 3 - 13 - 15 + 11 + 12 GTK_FILL - GTK_FILL + - + True - True - True - Launch test panel - 0 - + 0 + 23: + True - 2 - 3 - 15 - 17 + 12 + 13 GTK_FILL + - + True - function + 0 + Pin Type - 1 - 2 + 7 + 8 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 2 + 3 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 + 1 + 2 4 5 GTK_FILL @@ -8383,58 +9180,215 @@ StepGen - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 8 + 9 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -8472,21 +9426,21 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -8524,21 +9478,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -8576,21 +9530,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -8627,47 +9581,48 @@ Both Limit A All limits All home Unused - - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 - 31: + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 - 29: + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -8675,39 +9630,24 @@ Unused - - True - 0 - 27: - True - - - 5 - 6 - 2 - 3 - GTK_FILL - - - - - + True - 0 - 25: + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True True True @@ -8715,8 +9655,8 @@ Unused True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -8724,7 +9664,7 @@ Unused - + True True True @@ -8732,8 +9672,8 @@ Unused True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -8741,7 +9681,7 @@ Unused - + True True True @@ -8749,8 +9689,8 @@ Unused True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -8758,7 +9698,7 @@ Unused - + True True True @@ -8766,8 +9706,8 @@ Unused True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -8775,7 +9715,7 @@ Unused - + True True True @@ -8783,8 +9723,8 @@ Unused True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -8792,7 +9732,7 @@ Unused - + True True True @@ -8800,8 +9740,8 @@ Unused True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -8809,7 +9749,7 @@ Unused - + True True True @@ -8817,8 +9757,8 @@ Unused True - 8 - 9 + 3 + 4 11 12 GTK_FILL @@ -8826,75 +9766,40 @@ Unused - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + True + True + 0 + True - 6 - 7 - 5 - 6 + 3 + 4 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + 47: + True - 6 - 7 - 6 - 7 + 5 + 6 + 12 + 13 GTK_FILL - + True X Step X Direction @@ -8914,115 +9819,62 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + True + True + 0 + True - 6 - 7 - 8 - 9 + 8 + 9 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + 45: + True - 6 - 7 - 9 - 10 + 5 + 6 + 11 + 12 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + 43: + True - 6 - 7 + 5 + 6 10 11 GTK_FILL @@ -9030,67 +9882,33 @@ Charge Pump - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - - - - 6 - 7 - 11 - 12 - GTK_FILL - - - - - + True 0 - 33: + 41: True 5 6 - 5 - 6 + 9 + 10 GTK_FILL - + True 0 - 35: + 39: True 5 6 - 6 - 7 + 8 + 9 GTK_FILL @@ -9112,47 +9930,99 @@ Charge Pump - + True 0 - 39: + 35: True 5 6 - 8 - 9 + 6 + 7 GTK_FILL - + True 0 - 41: + 33: True 5 6 - 9 - 10 + 5 + 6 GTK_FILL - + True - 0 - 43: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 + 6 + 7 + 11 + 12 + GTK_FILL + + + + + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 6 + 7 10 11 GTK_FILL @@ -9160,40 +10030,75 @@ Charge Pump - + True - 0 - 45: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 11 - 12 + 6 + 7 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 8 - 9 - 12 - 13 + 6 + 7 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -9213,54 +10118,89 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 + 7 + 8 GTK_FILL - + True - 0 - 47: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 12 - 13 + 6 + 7 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 3 - 4 - 12 - 13 + 6 + 7 + 5 + 6 GTK_FILL - + True True True @@ -9268,8 +10208,8 @@ Charge Pump True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -9277,7 +10217,7 @@ Charge Pump - + True True True @@ -9285,8 +10225,8 @@ Charge Pump True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -9294,7 +10234,7 @@ Charge Pump - + True True True @@ -9302,8 +10242,8 @@ Charge Pump True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -9311,7 +10251,7 @@ Charge Pump - + True True True @@ -9319,8 +10259,8 @@ Charge Pump True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -9328,7 +10268,7 @@ Charge Pump - + True True True @@ -9336,8 +10276,8 @@ Charge Pump True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -9345,7 +10285,7 @@ Charge Pump - + True True True @@ -9353,8 +10293,8 @@ Charge Pump True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -9362,7 +10302,7 @@ Charge Pump - + True True True @@ -9370,8 +10310,8 @@ Charge Pump True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -9379,33 +10319,47 @@ Charge Pump - + True - True + 0 + 25: True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 3 - 4 + 5 + 6 + 2 + 3 + GTK_FILL + + + + + + True + 0 + 29: + True + + + 5 + 6 3 4 GTK_FILL @@ -9413,24 +10367,23 @@ Charge Pump - + True - True + 0 + 31: True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -9467,22 +10420,23 @@ Both Limit A All limits All home Unused + - + - 1 - 2 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -9520,21 +10474,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -9572,21 +10526,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -9624,394 +10578,295 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 1 + 2 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True + + + 8 + 9 + 3 + 4 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 - 7 - 8 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + Launch test panel + 0 + + + + 2 + 3 + 15 + 17 + GTK_FILL + + + + + True + + + 2 + 3 + 13 + 15 + GTK_FILL + GTK_FILL + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 5 - 6 + 2 + 3 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 4 - 5 + 2 + 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 2 - 3 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - 23: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - 21: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - 19: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - 17: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 9 10 GTK_FILL @@ -10019,83 +10874,119 @@ Unused - + True - 0 - 15: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - 13: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 11 + 12 GTK_FILL - + True - 0 - 11: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - 9: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - 7: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - 5: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 3 4 GTK_FILL @@ -10103,60 +10994,87 @@ Unused - + True - 0 - 3: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 1: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 5 + 6 GTK_FILL - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 6 + 7 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 7 + 8 + GTK_FILL + - + True GPIO Input GPIO Output @@ -10167,156 +11085,116 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 10 + 11 GTK_FILL - + True - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 11 + 12 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 12 + 13 + GTK_FILL + + + + + + True + 0 + Num + True - 1 - 2 - 3 - 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Num + True - 1 - 2 - 1 - 2 + 5 + 6 GTK_FILL @@ -10440,49 +11318,137 @@ Connector 2 - + True - Pin Type + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 + 1 + 2 GTK_FILL - + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 7 + 8 + GTK_FILL + + + + + True 0 - Inv + Num + True - 3 - 4 + 5 + 6 GTK_FILL - + True - True + 0 + Num True - 0 - True - 3 - 4 - 1 - 2 GTK_FILL - + True GPIO Input GPIO Output @@ -10493,103 +11459,148 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 11 + 12 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - + True - 0 - 1: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - 3: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - 5: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - 7: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - 9: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 5 6 GTK_FILL @@ -10597,266 +11608,370 @@ StepGen - + True - 0 - 11: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 4 + 5 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 3 + 4 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 2 + 3 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 1 + 2 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 12 + 13 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 9 + 10 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - 13: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - 15: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - 17: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - 19: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - 21: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 2 + 3 GTK_FILL - + True - 0 - 23: - True - 12 - 13 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - 0 - Pin Type + True + True + Launch test panel + 0 + - 7 - 8 + 2 + 3 + 15 + 17 GTK_FILL - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function 1 2 - 2 - 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 3 - 4 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 4 5 GTK_FILL @@ -10864,163 +11979,58 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 5 - 6 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -11058,21 +12068,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -11110,21 +12120,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -11162,21 +12172,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -11214,47 +12224,45 @@ All limits All home Unused - + - 1 - 2 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True - True + 0 + 31: True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 4 + 5 GTK_FILL - + True - True + 0 + 29: True - 0 - True - 3 - 4 + 5 + 6 3 4 GTK_FILL @@ -11262,24 +12270,39 @@ Unused - + + True + 0 + 27: + True + + + 5 + 6 + 2 + 3 + GTK_FILL + + + + + True - True + 0 + 25: True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 1 + 2 GTK_FILL - + True True True @@ -11287,8 +12310,8 @@ Unused True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -11296,7 +12319,7 @@ Unused - + True True True @@ -11304,8 +12327,8 @@ Unused True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -11313,7 +12336,7 @@ Unused - + True True True @@ -11321,8 +12344,8 @@ Unused True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -11330,7 +12353,7 @@ Unused - + True True True @@ -11338,8 +12361,8 @@ Unused True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -11347,7 +12370,7 @@ Unused - + True True True @@ -11355,8 +12378,8 @@ Unused True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -11364,7 +12387,7 @@ Unused - + True True True @@ -11372,8 +12395,8 @@ Unused True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -11381,7 +12404,7 @@ Unused - + True True True @@ -11389,8 +12412,8 @@ Unused True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -11398,40 +12421,7 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - 0 - 47: - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -11451,142 +12441,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - 45: - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - 0 - 43: - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - 41: - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - 39: - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - 37: - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - 35: - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - 33: - True - - - 5 - 6 5 6 GTK_FILL @@ -11594,7 +12455,7 @@ Charge Pump - + True X Step X Direction @@ -11614,21 +12475,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -11648,21 +12509,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -11682,21 +12543,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -11716,21 +12577,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 8 - 9 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -11750,21 +12611,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -11784,13 +12645,45 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + 33: + True + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + True + 0 + 35: + True + + + 5 + 6 6 7 GTK_FILL @@ -11798,7 +12691,104 @@ Charge Pump - + + True + 0 + 37: + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + 39: + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + 41: + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + 43: + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + 45: + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 12 + 13 + GTK_FILL + + + + + True X Step X Direction @@ -11818,21 +12808,37 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 12 + 13 GTK_FILL - + + True + 0 + 47: + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + True True True @@ -11840,8 +12846,25 @@ Charge Pump True - 8 - 9 + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -11849,7 +12872,7 @@ Charge Pump - + True True True @@ -11857,8 +12880,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -11866,7 +12889,7 @@ Charge Pump - + True True True @@ -11874,8 +12897,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -11883,7 +12906,7 @@ Charge Pump - + True True True @@ -11891,8 +12914,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -11900,7 +12923,7 @@ Charge Pump - + True True True @@ -11908,8 +12931,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -11917,7 +12940,7 @@ Charge Pump - + True True True @@ -11925,8 +12948,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -11934,7 +12957,7 @@ Charge Pump - + True True True @@ -11942,8 +12965,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -11951,47 +12974,33 @@ Charge Pump - - True - 0 - 25: - True - - - 5 - 6 - 1 - 2 - GTK_FILL - - - - - + True - 0 - 27: + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 - 29: + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -11999,23 +13008,24 @@ Charge Pump - + True - 0 - 31: + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -12053,21 +13063,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True ESTOP IN Spindle PPR @@ -12105,21 +13115,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -12157,21 +13167,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -12209,81 +13219,221 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 + 1 + 2 4 5 GTK_FILL @@ -12291,93 +13441,51 @@ Unused - - True - function - - - 6 - 7 - GTK_FILL - - - - - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 - GTK_FILL - - - - - - True - True - True - Launch test panel - 0 - - - - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - - - 2 - 3 - 13 - 15 - GTK_FILL - GTK_FILL - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 2 - 3 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 3 4 GTK_FILL @@ -12385,159 +13493,92 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 5 - 6 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 6 - 7 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 7 - 8 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 9 - 10 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 23: + True - 2 - 3 - 10 - 11 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 21: + True - 2 - 3 11 12 GTK_FILL @@ -12545,119 +13586,83 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 19: + True - 2 - 3 - 12 - 13 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 17: + True - 7 - 8 - 1 - 2 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 15: + True - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 13: + True - 7 - 8 - 3 - 4 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 11: + True - 7 - 8 - 4 - 5 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 9: + True - 7 - 8 5 6 GTK_FILL @@ -12665,127 +13670,88 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 7: + True - 7 - 8 - 6 - 7 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 5: + True - 7 - 8 - 7 - 8 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 3: + True - 7 - 8 - 8 - 9 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 1: + True - 7 - 8 - 9 - 10 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 10 - 11 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 11 - 12 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True GPIO Input GPIO Output @@ -12796,140 +13762,52 @@ StepGen - 7 - 8 - 12 - 13 + 2 + 3 + 1 + 2 GTK_FILL - + True - 0 - Num + True True + 0 + True + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True - - - 5 - 6 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + Inv - 1 - 2 - 7 - 8 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + Pin Type - 1 - 2 - 1 - 2 + 2 + 3 GTK_FILL @@ -13053,49 +13931,153 @@ Unused - + True - Pin Type + 0 + Num + True + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + Num + True + + + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 12 + 13 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 7 + 8 GTK_FILL - + True GPIO Input GPIO Output @@ -13106,60 +14088,88 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 6 + 7 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 5 + 6 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 2 3 GTK_FILL @@ -13167,79 +14177,119 @@ StepGen - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 2 + 3 + 11 + 12 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 8 9 GTK_FILL @@ -13247,488 +14297,249 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - 1 - 2 - 2 - 3 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + Launch test panel + 0 + - 1 - 2 - 3 - 4 + 2 + 3 + 15 + 17 GTK_FILL - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + + True + function 1 2 - 4 - 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 5 - 6 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 7 - 8 + 8 + 9 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 2 + 3 GTK_FILL - + + True + True + True + 0 + True + + + 8 + 9 + 1 + 2 + GTK_FILL + + + + + True ESTOP IN Spindle PPR @@ -13766,21 +14577,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -13818,21 +14629,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -13870,21 +14681,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -13922,64 +14733,28 @@ All limits All home Unused - + - 1 - 2 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 2 - 3 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 3 - 4 + 6 + 7 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 4 5 GTK_FILL @@ -13987,143 +14762,37 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 5 - 6 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 6 - 7 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 7 - 8 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 8 - 9 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 9 - 10 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 10 - 11 - GTK_FILL - - - - - + True - True + 0 True - 0 - True - 3 - 4 - 11 - 12 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 12 - 13 + 5 + 6 + 2 + 3 GTK_FILL - + True 0 True @@ -14131,48 +14800,14 @@ Unused 5 6 - 12 - 13 - GTK_FILL - - - - - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - - - - 6 - 7 - 12 - 13 + 1 + 2 GTK_FILL - + True True True @@ -14182,66 +14817,57 @@ Charge Pump 8 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 + 5 + 6 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 10 - 11 + 8 + 9 + 6 + 7 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 9 - 10 + 8 + 9 + 7 + 8 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 8 + 9 8 9 GTK_FILL @@ -14249,52 +14875,58 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 7 - 8 + 8 + 9 + 9 + 10 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 6 - 7 + 8 + 9 + 10 + 11 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 5 - 6 + 8 + 9 + 11 + 12 GTK_FILL - + True X Step X Direction @@ -14314,21 +14946,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 5 + 6 GTK_FILL - + True X Step X Direction @@ -14348,21 +14980,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -14382,15 +15014,15 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL @@ -14430,7 +15062,7 @@ Charge Pump - + True X Step X Direction @@ -14450,21 +15082,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -14484,21 +15116,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -14518,13 +15150,28 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 5 6 GTK_FILL @@ -14532,7 +15179,97 @@ Charge Pump - + + True + 0 + True + + + 5 + 6 + 6 + 7 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + True True True @@ -14542,6 +15279,89 @@ Charge Pump 8 9 + 12 + 13 + GTK_FILL + + + + + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 6 + 7 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -14549,7 +15369,7 @@ Charge Pump - + True True True @@ -14557,8 +15377,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -14566,7 +15386,7 @@ Charge Pump - + True True True @@ -14574,8 +15394,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -14583,7 +15403,7 @@ Charge Pump - + True True True @@ -14591,8 +15411,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -14600,7 +15420,7 @@ Charge Pump - + True True True @@ -14608,8 +15428,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -14617,7 +15437,7 @@ Charge Pump - + True True True @@ -14625,8 +15445,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -14634,7 +15454,7 @@ Charge Pump - + True True True @@ -14642,8 +15462,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -14651,29 +15471,50 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 + 3 + 4 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 2 3 GTK_FILL @@ -14681,37 +15522,163 @@ Charge Pump - + True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 3 - 4 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 11 + 12 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 4 - 5 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -14749,21 +15716,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -14801,21 +15768,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -14853,21 +15820,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 8 + 9 GTK_FILL - + True ESTOP IN Spindle PPR @@ -14905,81 +15872,117 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 2 - 3 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 + 1 + 2 4 5 GTK_FILL @@ -14987,93 +15990,51 @@ Unused - - True - function - - - 6 - 7 - GTK_FILL - - - - - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 - GTK_FILL - - - - - - True - True - True - Launch test panel - 0 - - - - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - - - 2 - 3 - 13 - 15 - GTK_FILL - GTK_FILL - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 2 - 3 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 3 4 GTK_FILL @@ -15081,159 +16042,142 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 5 - 6 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 6 - 7 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 7 - 8 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 9 - 10 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 10 - 11 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 11 12 GTK_FILL @@ -15241,119 +16185,77 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 4 - 5 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 5 6 GTK_FILL @@ -15361,107 +16263,87 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 7 - 8 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 8 - 9 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 9 - 10 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 10 - 11 + 8 + 9 GTK_FILL - + + True + + + 4 + 5 + 13 + + GTK_FILL + 13 + + + + True GPIO Input GPIO Output @@ -15472,56 +16354,52 @@ StepGen - 7 - 8 - 11 - 12 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 12 - 13 + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True + Inv + 3 + 4 GTK_FILL - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL @@ -15645,49 +16523,277 @@ StepGen - + True - Pin Type + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 6 + 7 + 2 + 3 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 0 + Num + True + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + Num + True + + + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 12 + 13 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 9 + 10 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 6 + 7 GTK_FILL - + True GPIO Input GPIO Output @@ -15698,61 +16804,68 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 5 + 6 GTK_FILL - - True - - - 4 - 5 - 13 - - GTK_FILL - 13 - - - - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 1: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - 3: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 2 3 GTK_FILL @@ -15760,83 +16873,119 @@ StepGen - + True - 0 - 5: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - 7: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - 9: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 2 + 3 + 11 + 12 GTK_FILL - + True - 0 - 11: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - 13: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - 15: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 8 9 GTK_FILL @@ -15844,492 +16993,250 @@ StepGen - + True - 0 - 17: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - 19: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - 21: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - 23: - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - 1 - 2 - 3 - 4 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + False + True + True + Launch test panel + 0 + - 1 - 2 - 4 - 5 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 2 + 3 + 15 + 17 + GTK_FILL + + + + + True + function 1 2 - 5 - 6 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 7 - 8 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 9 - 10 + 8 + 9 + 2 + 3 GTK_FILL - + + True + True + True + 0 + True + + + 8 + 9 + 1 + 2 + GTK_FILL + + + + + True ESTOP IN Spindle PPR @@ -16367,21 +17274,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -16419,21 +17326,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -16471,64 +17378,29 @@ All limits All home Unused - + - 1 - 2 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 2 - 3 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 3 - 4 + 6 + 7 + 1 + 2 GTK_FILL - + True - True + 0 + 31: True - 0 - True - 3 - 4 + 5 + 6 4 5 GTK_FILL @@ -16536,266 +17408,115 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 5 - 6 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 6 - 7 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 7 - 8 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 8 - 9 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 9 - 10 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 10 - 11 - GTK_FILL - - - - - + True - True + 0 + 29: True - 0 - True - 3 - 4 - 11 - 12 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 3 - 4 - 12 - 13 + 5 + 6 + 2 + 3 GTK_FILL - + True 0 - 47: + 25: True 5 6 - 12 - 13 - GTK_FILL - - - - - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - - - - 6 - 7 - 12 - 13 + 1 + 2 GTK_FILL - + True True True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - 45: - True + 0 + True - 5 - 6 - 11 - 12 + 8 + 9 + 5 + 6 GTK_FILL - + True - 0 - 43: + True True + 0 + True - 5 - 6 - 10 - 11 + 8 + 9 + 6 + 7 GTK_FILL - + True - 0 - 41: + True True + 0 + True - 5 - 6 - 9 - 10 + 8 + 9 + 7 + 8 GTK_FILL - + True - 0 - 39: + True True + 0 + True - 5 - 6 + 8 + 9 8 9 GTK_FILL @@ -16803,55 +17524,58 @@ Charge Pump - + True - 0 - 37: + True True + 0 + True - 5 - 6 - 7 - 8 + 8 + 9 + 9 + 10 GTK_FILL - + True - 0 - 35: + True True + 0 + True - 5 - 6 - 6 - 7 + 8 + 9 + 10 + 11 GTK_FILL - + True - 0 - 33: + True True + 0 + True - 5 - 6 - 5 - 6 + 8 + 9 + 11 + 12 GTK_FILL - + True X Step X Direction @@ -16871,21 +17595,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 5 + 6 GTK_FILL - + True X Step X Direction @@ -16905,21 +17629,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -16939,15 +17663,15 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL @@ -16987,7 +17711,7 @@ Charge Pump - + True X Step X Direction @@ -17007,21 +17731,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -17041,21 +17765,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -17075,13 +17799,29 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + 33: + True + + + 5 + 6 5 6 GTK_FILL @@ -17089,7 +17829,103 @@ Charge Pump - + + True + 0 + 35: + True + + + 5 + 6 + 6 + 7 + GTK_FILL + + + + + + True + 0 + 37: + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + 39: + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + 41: + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + 43: + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + 45: + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + True True True @@ -17099,6 +17935,90 @@ Charge Pump 8 9 + 12 + 13 + GTK_FILL + + + + + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 6 + 7 + 12 + 13 + GTK_FILL + + + + + + True + 0 + 47: + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -17106,7 +18026,7 @@ Charge Pump - + True True True @@ -17114,8 +18034,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -17123,7 +18043,7 @@ Charge Pump - + True True True @@ -17131,8 +18051,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -17140,7 +18060,7 @@ Charge Pump - + True True True @@ -17148,8 +18068,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -17157,7 +18077,7 @@ Charge Pump - + True True True @@ -17165,8 +18085,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -17174,7 +18094,7 @@ Charge Pump - + True True True @@ -17182,8 +18102,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -17191,7 +18111,7 @@ Charge Pump - + True True True @@ -17199,8 +18119,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -17208,31 +18128,50 @@ Charge Pump - + True - 0 - 25: + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 - 27: + True True + 0 + True - 5 - 6 + 3 + 4 + 3 + 4 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 2 3 GTK_FILL @@ -17240,39 +18179,111 @@ Charge Pump - + True - 0 - 29: - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 3 - 4 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 - 31: - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 4 - 5 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -17310,21 +18321,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -17362,21 +18373,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -17414,81 +18425,221 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 + 1 + 2 4 5 GTK_FILL @@ -17496,94 +18647,51 @@ Unused - - True - function - - - 6 - 7 - GTK_FILL - - - - - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 - GTK_FILL - - - - - - True - False - True - True - Launch test panel - 0 - - - - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - - - 2 - 3 - 13 - 15 - GTK_FILL - GTK_FILL - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 2 - 3 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 3 4 GTK_FILL @@ -17591,159 +18699,92 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 5 - 6 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 6 - 7 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 7 - 8 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 9 - 10 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 23: + True - 2 - 3 - 10 - 11 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 21: + True - 2 - 3 11 12 GTK_FILL @@ -17751,119 +18792,83 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 19: + True - 2 - 3 - 12 - 13 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 17: + True - 7 - 8 - 1 - 2 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 15: + True - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 13: + True - 7 - 8 - 3 - 4 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 11: + True - 7 - 8 - 4 - 5 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 9: + True - 7 - 8 5 6 GTK_FILL @@ -17871,127 +18876,88 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 7: + True - 7 - 8 - 6 - 7 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 5: + True - 7 - 8 - 7 - 8 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 3: + True - 7 - 8 - 8 - 9 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + 1: + True - 7 - 8 - 9 - 10 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 10 - 11 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 11 - 12 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True GPIO Input GPIO Output @@ -18002,140 +18968,52 @@ StepGen - 7 - 8 - 12 - 13 + 2 + 3 + 1 + 2 GTK_FILL - + True - 0 - Num + True True + 0 + True + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True - - - 5 - 6 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + Inv - 1 - 2 - 2 - 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + Pin Type - 6 - 7 - 2 - 3 + 2 + 3 GTK_FILL @@ -18258,178 +19136,145 @@ Unused - - True - Pin Type - - - 2 - 3 - GTK_FILL - - - - - - True - 0 - Inv - - - 3 - 4 - GTK_FILL - - - - - + True - True - True - 0 - True + + + + + - 3 - 4 - 1 - 2 + 6 + 7 + 2 + 3 GTK_FILL - + True + + + + - 2 - 3 - 1 - 2 + 1 + 2 + 2 + 3 GTK_FILL - - True - - - 4 - 5 - 13 - - GTK_FILL - 13 - - - - + True - Inv + 0 + Num + True - 8 - 9 + 5 + 6 GTK_FILL - + True 0 - 1: + Num True - 1 - 2 GTK_FILL - + True - 0 - 3: - True + - 2 - 3 + 7 + 8 + 12 + 13 GTK_FILL - + True - 0 - 5: - True + - 3 - 4 + 7 + 8 + 11 + 12 GTK_FILL - + True - 0 - 7: - True + - 4 - 5 + 7 + 8 + 10 + 11 GTK_FILL - + True - 0 - 9: - True + - 5 - 6 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - 11: - True + - 6 - 7 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - 13: - True + + 7 + 8 7 8 GTK_FILL @@ -18437,208 +19282,181 @@ Unused - + True - 0 - 15: - True + - 8 - 9 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - 17: - True + - 9 - 10 + 7 + 8 + 5 + 6 GTK_FILL - + True - 0 - 19: - True + - 10 - 11 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 21: - True + - 11 - 12 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - 23: - True + - 12 - 13 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - Pin Type + 7 8 + 1 + 2 GTK_FILL - + True - - - - - 1 - 2 - 1 - 2 + 2 + 3 + 12 + 13 GTK_FILL - + True - - - - - 1 - 2 - 3 - 4 + 2 + 3 + 11 + 12 GTK_FILL - + True - - - - - 1 - 2 - 4 - 5 + 2 + 3 + 10 + 11 GTK_FILL - + True - - - - - 1 - 2 - 5 - 6 + 2 + 3 + 9 + 10 GTK_FILL - + True - - - - - 1 - 2 - 7 - 8 + 2 + 3 + 8 + 9 GTK_FILL - + True - - - - - 1 - 2 - 8 - 9 + 2 + 3 + 7 + 8 GTK_FILL - + True - - - - - 1 - 2 + 2 + 3 6 7 GTK_FILL @@ -18646,147 +19464,117 @@ Unused - + True - - - - - 1 - 2 - 9 - 10 + 2 + 3 + 5 + 6 GTK_FILL - + True - - - - - 1 - 2 - 10 - 11 + 2 + 3 + 4 + 5 GTK_FILL - + True - - - - - 1 - 2 - 11 - 12 + 2 + 3 + 3 + 4 GTK_FILL - + True - - - - - 1 - 2 - 12 - 13 + 2 + 3 + 2 + 3 GTK_FILL - + True - True - True - 0 - True - 3 - 4 - 2 - 3 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True + False True - True + True + Launch test panel 0 - True - 3 - 4 - 3 - 4 + 2 + 3 + 15 + 17 GTK_FILL - - + True - True - True - 0 - True + function - 3 - 4 - 4 - 5 + 1 + 2 GTK_FILL - + True - True - True - 0 - True + function - 3 - 4 - 5 - 6 + 6 + 7 GTK_FILL - + True True True @@ -18794,16 +19582,16 @@ Unused True - 3 - 4 - 6 - 7 + 8 + 9 + 4 + 5 GTK_FILL - + True True True @@ -18811,16 +19599,16 @@ Unused True - 3 - 4 - 7 - 8 + 8 + 9 + 3 + 4 GTK_FILL - + True True True @@ -18828,16 +19616,16 @@ Unused True - 3 - 4 - 8 - 9 + 8 + 9 + 2 + 3 GTK_FILL - + True True True @@ -18845,174 +19633,194 @@ Unused True - 3 - 4 - 9 - 10 + 8 + 9 + 1 + 2 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 10 - 11 + 6 + 7 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 11 - 12 + 6 + 7 + 3 + 4 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True 0 - 47: + 31: True 5 6 - 12 - 13 + 4 + 5 GTK_FILL - + True - - - - - + 0 + 29: + True - 6 - 7 - 12 - 13 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 8 - 9 - 12 - 13 + 5 + 6 + 2 + 3 GTK_FILL - + True 0 - 45: + 25: True 5 6 - 11 - 12 + 1 + 2 GTK_FILL - + True - 0 - 43: + True True + 0 + True - 5 - 6 - 10 - 11 + 8 + 9 + 5 + 6 GTK_FILL - + True - 0 - 41: + True True + 0 + True - 5 - 6 - 9 - 10 + 8 + 9 + 6 + 7 GTK_FILL - + True - 0 - 39: + True True + 0 + True - 5 - 6 + 8 + 9 + 7 + 8 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 8 9 GTK_FILL @@ -19020,103 +19828,106 @@ Unused - + True - 0 - 37: + True True + 0 + True - 5 - 6 - 7 - 8 + 8 + 9 + 9 + 10 GTK_FILL - + True - 0 - 35: + True True + 0 + True - 5 - 6 - 6 - 7 + 8 + 9 + 10 + 11 GTK_FILL - + True - 0 - 33: + True True + 0 + True - 5 - 6 - 5 - 6 + 8 + 9 + 11 + 12 GTK_FILL - + True - + 6 7 - 11 - 12 + 5 + 6 GTK_FILL - + True - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL @@ -19140,121 +19951,117 @@ Unused - + True - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL - + True - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True - + 6 7 - 5 - 6 + 11 + 12 GTK_FILL - + True - True + 0 + 33: True - 0 - True - 8 - 9 - 11 - 12 + 5 + 6 + 5 + 6 GTK_FILL - + True - True + 0 + 35: True - 0 - True - 8 - 9 - 10 - 11 + 5 + 6 + 6 + 7 GTK_FILL - + True - True + 0 + 37: True - 0 - True - 8 - 9 - 9 - 10 + 5 + 6 + 7 + 8 GTK_FILL - + True - True + 0 + 39: True - 0 - True - 8 - 9 + 5 + 6 8 9 GTK_FILL @@ -19262,41 +20069,55 @@ Unused - + True - True + 0 + 41: True - 0 - True - 8 - 9 - 7 - 8 + 5 + 6 + 9 + 10 GTK_FILL - + True - True + 0 + 43: True - 0 - True - 8 - 9 - 6 - 7 + 5 + 6 + 10 + 11 GTK_FILL - + + True + 0 + 45: + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + True True True @@ -19306,132 +20127,133 @@ Unused 8 9 - 5 - 6 + 12 + 13 GTK_FILL - + True - 0 - 25: - True + + + + + - 5 - 6 - 1 - 2 + 6 + 7 + 12 + 13 GTK_FILL - + True 0 - 27: + 47: True 5 6 - 2 - 3 + 12 + 13 GTK_FILL - + True - 0 - 29: + True True + 0 + True - 5 - 6 - 3 - 4 + 3 + 4 + 12 + 13 GTK_FILL - + True - 0 - 31: + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 11 + 12 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 1 - 2 + 3 + 4 + 10 + 11 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 3 - 4 + 3 + 4 + 9 + 10 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 4 - 5 + 3 + 4 + 8 + 9 GTK_FILL - + True True True @@ -19439,16 +20261,16 @@ Unused True - 8 - 9 - 1 - 2 + 3 + 4 + 7 + 8 GTK_FILL - + True True True @@ -19456,16 +20278,16 @@ Unused True - 8 - 9 - 2 - 3 + 3 + 4 + 6 + 7 GTK_FILL - + True True True @@ -19473,16 +20295,16 @@ Unused True - 8 - 9 - 3 - 4 + 3 + 4 + 5 + 6 GTK_FILL - + True True True @@ -19490,8 +20312,8 @@ Unused True - 8 - 9 + 3 + 4 4 5 GTK_FILL @@ -19499,207 +20321,258 @@ Unused - + True - function + True + True + 0 + True - 6 - 7 + 3 + 4 + 3 + 4 GTK_FILL - + True - function + True + True + 0 + True - 1 - 2 + 3 + 4 + 2 + 3 GTK_FILL - + True - False - True - True - Launch test panel - 0 + + + + + - 2 - 3 - 15 - 17 + 1 + 2 + 12 + 13 GTK_FILL + - + True + + + + + - 2 - 3 - 13 - 15 + 1 + 2 + 11 + 12 GTK_FILL - GTK_FILL + - + True + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 10 + 11 GTK_FILL - + True + + + + - 2 - 3 - 3 - 4 + 1 + 2 + 9 + 10 GTK_FILL - + True + + + + - 2 - 3 - 4 - 5 + 1 + 2 + 6 + 7 GTK_FILL - + True + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 8 + 9 GTK_FILL - + True + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 7 + 8 GTK_FILL - + True + + + + - 2 - 3 - 7 - 8 + 1 + 2 + 5 + 6 GTK_FILL - + True + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 4 + 5 GTK_FILL - + True + + + + - 2 - 3 - 9 - 10 + 1 + 2 + 3 + 4 GTK_FILL - + True + + + + - 2 - 3 - 10 - 11 + 1 + 2 + 1 + 2 GTK_FILL - + True - + 0 + Pin Type - 2 - 3 - 11 - 12 + 7 + 8 GTK_FILL - + True - + 0 + 23: + True - 2 - 3 12 13 GTK_FILL @@ -19707,83 +20580,83 @@ Unused - + True - + 0 + 21: + True - 7 - 8 - 1 - 2 + 11 + 12 GTK_FILL - + True - + 0 + 19: + True - 7 - 8 - 2 - 3 + 10 + 11 GTK_FILL - + True - + 0 + 17: + True - 7 - 8 - 3 - 4 + 9 + 10 GTK_FILL - + True - + 0 + 15: + True - 7 - 8 - 4 - 5 + 8 + 9 GTK_FILL - + True - + 0 + 13: + True - 7 - 8 - 5 - 6 + 7 + 8 GTK_FILL - + True - + 0 + 11: + True - 7 - 8 6 7 GTK_FILL @@ -19791,147 +20664,152 @@ Unused - + True - + 0 + 9: + True - 7 - 8 - 7 - 8 + 5 + 6 GTK_FILL - + True - + 0 + 7: + True - 7 - 8 - 8 - 9 + 4 + 5 GTK_FILL - + True - + 0 + 5: + True - 7 - 8 - 9 - 10 + 3 + 4 GTK_FILL - + True - + 0 + 3: + True - 7 - 8 - 10 - 11 + 2 + 3 GTK_FILL - + True - + 0 + 1: + True - 7 - 8 - 11 - 12 + 1 + 2 GTK_FILL - + True - + Inv - 7 - 8 - 12 - 13 + 8 + 9 GTK_FILL - + True - 0 - Num - True + 4 + 5 + 13 + + GTK_FILL + 13 + + + + + True + + + + 2 + 3 + 1 + 2 GTK_FILL - + True - 0 - Num + True True + 0 + True - 5 - 6 + 3 + 4 + 1 + 2 GTK_FILL - + True - - - - - + 0 + Inv - 1 - 2 - 2 - 3 + 3 + 4 GTK_FILL - + True - - - - - + Pin Type - 6 - 7 - 2 - 3 + 2 + 3 GTK_FILL @@ -20054,229 +20932,94 @@ Connector 6 - - True - - - - - - - - 6 - 7 - 2 - 3 - GTK_FILL - - - - - + True - - - - - + Pin Type - 1 - 2 - 2 - 3 + 2 + 3 GTK_FILL - + True 0 - Num - True + Inv - 5 - 6 + 3 + 4 GTK_FILL - + True - 0 - Num + True True + 0 + True + 3 + 4 + 1 + 2 GTK_FILL - - True - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - - - - 7 - 8 - 11 - 12 - GTK_FILL - - - - - - True - - - - 7 - 8 - 10 - 11 - GTK_FILL - - - - - - True - - - - 7 - 8 - 9 - 10 - GTK_FILL - - - - - - True - - - - 7 - 8 - 8 - 9 - GTK_FILL - - - - - - True - - - - 7 - 8 - 7 - 8 - GTK_FILL - - - - - - True - - - - 7 - 8 - 6 - 7 - GTK_FILL - - - - - - True - - - - 7 - 8 - 5 - 6 - GTK_FILL - - - - - + True - 7 - 8 - 4 - 5 + 2 + 3 + 1 + 2 GTK_FILL - + True - - 7 - 8 - 3 - 4 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - + Inv - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - + 0 + 1: + True - 7 - 8 1 2 GTK_FILL @@ -20284,83 +21027,83 @@ Connector 6 - + True - + 0 + 3: + True - 2 - 3 - 12 - 13 + 2 + 3 GTK_FILL - + True - + 0 + 5: + True - 2 - 3 - 11 - 12 + 3 + 4 GTK_FILL - + True - + 0 + 7: + True - 2 - 3 - 10 - 11 + 4 + 5 GTK_FILL - + True - + 0 + 9: + True - 2 - 3 - 9 - 10 + 5 + 6 GTK_FILL - + True - + 0 + 11: + True - 2 - 3 - 8 - 9 + 6 + 7 GTK_FILL - + True - + 0 + 13: + True - 2 - 3 7 8 GTK_FILL @@ -20368,317 +21111,339 @@ Connector 6 - + True - + 0 + 15: + True - 2 - 3 - 6 - 7 + 8 + 9 GTK_FILL - + True - + 0 + 17: + True - 2 - 3 - 5 - 6 + 9 + 10 GTK_FILL - + True - + 0 + 19: + True - 2 - 3 - 4 - 5 + 10 + 11 GTK_FILL - + True - + 0 + 21: + True - 2 - 3 - 3 - 4 + 11 + 12 GTK_FILL - + True - + 0 + 23: + True - 2 - 3 - 2 - 3 + 12 + 13 GTK_FILL - + True + 0 + Pin Type - 2 - 3 - 13 - 15 + 7 + 8 GTK_FILL - GTK_FILL + - + True - False - True - True - Launch test panel - 0 + + + + + - 2 - 3 - 15 - 17 + 1 + 2 + 1 + 2 GTK_FILL + - + True - function + + + + + 1 2 + 3 + 4 GTK_FILL - + True - function + + + + + - 6 - 7 + 1 + 2 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + + + + + - 8 - 9 - 4 - 5 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True - + - 6 - 7 - 1 - 2 + 1 + 2 + 11 + 12 GTK_FILL - + True - 0 - 31: - True + + + + + - 5 - 6 - 4 - 5 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 - 29: + True True + 0 + True - 5 - 6 - 3 - 4 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 - 27: + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 3 + 4 GTK_FILL - + True - 0 - 25: + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True True True @@ -20686,8 +21451,8 @@ Connector 6 True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -20695,7 +21460,7 @@ Connector 6 - + True True True @@ -20703,8 +21468,8 @@ Connector 6 True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -20712,7 +21477,7 @@ Connector 6 - + True True True @@ -20720,8 +21485,8 @@ Connector 6 True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -20729,7 +21494,7 @@ Connector 6 - + True True True @@ -20737,8 +21502,8 @@ Connector 6 True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -20746,7 +21511,7 @@ Connector 6 - + True True True @@ -20754,8 +21519,8 @@ Connector 6 True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -20763,7 +21528,7 @@ Connector 6 - + True True True @@ -20771,8 +21536,8 @@ Connector 6 True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -20780,7 +21545,7 @@ Connector 6 - + True True True @@ -20788,8 +21553,8 @@ Connector 6 True - 8 - 9 + 3 + 4 11 12 GTK_FILL @@ -20797,107 +21562,99 @@ Connector 6 - + True - - - - - + True + True + 0 + True - 6 - 7 - 5 - 6 + 3 + 4 + 12 + 13 GTK_FILL - + True - - - - - + 0 + 47: + True - 6 - 7 - 6 - 7 + 5 + 6 + 12 + 13 GTK_FILL - + True - + 6 7 - 7 - 8 + 12 + 13 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 8 - 9 + 8 + 9 + 12 + 13 GTK_FILL - + True - - - - - + 0 + 45: + True - 6 - 7 - 9 - 10 + 5 + 6 + 11 + 12 GTK_FILL - + True - - - - - + 0 + 43: + True - 6 - 7 + 5 + 6 10 11 GTK_FILL @@ -20905,51 +21662,33 @@ Connector 6 - - True - - - - - - - - 6 - 7 - 11 - 12 - GTK_FILL - - - - - + True 0 - 33: + 41: True 5 6 - 5 - 6 + 9 + 10 GTK_FILL - + True 0 - 35: + 39: True 5 6 - 6 - 7 + 8 + 9 GTK_FILL @@ -20971,47 +21710,67 @@ Connector 6 - + True 0 - 39: + 35: True 5 6 - 8 - 9 + 6 + 7 GTK_FILL - + True 0 - 41: + 33: True 5 6 - 9 - 10 + 5 + 6 + GTK_FILL + + + + + + True + + + + + + + + 6 + 7 + 11 + 12 GTK_FILL - + True - 0 - 43: - True + + + + + - 5 - 6 + 6 + 7 10 11 GTK_FILL @@ -21019,91 +21778,97 @@ Connector 6 - + True - 0 - 45: - True + + + + + - 5 - 6 - 11 - 12 + 6 + 7 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + + + + + - 8 - 9 - 12 - 13 + 6 + 7 + 8 + 9 GTK_FILL - + True - + 6 7 - 12 - 13 + 7 + 8 GTK_FILL - + True - 0 - 47: - True + + + + + - 5 - 6 - 12 - 13 + 6 + 7 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 12 - 13 + 6 + 7 + 5 + 6 GTK_FILL - + True True True @@ -21111,8 +21876,8 @@ Connector 6 True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -21120,7 +21885,7 @@ Connector 6 - + True True True @@ -21128,8 +21893,8 @@ Connector 6 True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -21137,7 +21902,7 @@ Connector 6 - + True True True @@ -21145,8 +21910,8 @@ Connector 6 True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -21154,7 +21919,7 @@ Connector 6 - + True True True @@ -21162,8 +21927,8 @@ Connector 6 True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -21171,7 +21936,7 @@ Connector 6 - + True True True @@ -21179,8 +21944,8 @@ Connector 6 True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -21188,7 +21953,7 @@ Connector 6 - + True True True @@ -21196,8 +21961,8 @@ Connector 6 True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -21205,7 +21970,7 @@ Connector 6 - + True True True @@ -21213,8 +21978,8 @@ Connector 6 True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -21222,33 +21987,47 @@ Connector 6 - + True - True + 0 + 25: True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 3 - 4 + 5 + 6 + 2 + 3 + GTK_FILL + + + + + + True + 0 + 29: + True + + + 5 + 6 3 4 GTK_FILL @@ -21256,160 +22035,247 @@ Connector 6 - + True - True + 0 + 31: True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 4 + 5 GTK_FILL - + True - + - 1 - 2 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True - + - 1 - 2 - 11 - 12 + 6 + 7 + 3 + 4 GTK_FILL - + True - + - 1 - 2 - 10 - 11 + 6 + 7 + 4 + 5 GTK_FILL - + True - - - - - + True + True + 0 + True + + + 8 + 9 + 1 + 2 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 2 + 3 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 3 + 4 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 - 9 - 10 GTK_FILL - + + True + False + True + True + Launch test panel + 0 + + + 2 + 3 + 15 + 17 + GTK_FILL + + + + + True + + + 2 + 3 + 13 + 15 + GTK_FILL + GTK_FILL + + + + True - - - - - 1 - 2 - 6 - 7 + 2 + 3 + 2 + 3 GTK_FILL - + True - - - - - 1 - 2 - 8 - 9 + 2 + 3 + 3 + 4 GTK_FILL - + True - - - - - 1 - 2 - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - - - - - 1 - 2 + 2 + 3 5 6 GTK_FILL @@ -21417,94 +22283,83 @@ Connector 6 - + True - - - - - 1 - 2 - 4 - 5 + 2 + 3 + 6 + 7 GTK_FILL - + True - - - - - 1 - 2 - 3 - 4 + 2 + 3 + 7 + 8 GTK_FILL - + True - - - - - 1 - 2 - 1 - 2 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - Pin Type + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - 23: - True + - 12 - 13 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - 21: - True + + 2 + 3 11 12 GTK_FILL @@ -21512,83 +22367,83 @@ Connector 6 - + True - 0 - 19: - True + - 10 - 11 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - 17: - True + - 9 - 10 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - 15: - True + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - 13: - True + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - 11: - True + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 9: - True + + 7 + 8 5 6 GTK_FILL @@ -21596,138 +22451,161 @@ Connector 6 - + True - 0 - 7: - True + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - 5: - True + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - 3: - True + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - 1: - True + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - + True + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 11 + 12 + GTK_FILL + - + True - 2 - 3 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True - True + 0 + Num True - 0 - True - 3 - 4 - 1 - 2 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 + 5 + 6 GTK_FILL - + True - Pin Type + + + + + - 2 - 3 + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + + + + + + + + 6 + 7 + 2 + 3 GTK_FILL @@ -21850,159 +22728,164 @@ Connector 7 - + True - - - - - + Pin Type - 6 - 7 - 2 - 3 + 2 + 3 GTK_FILL - + True - - - - - + 0 + Inv - 1 - 2 - 2 - 3 + 3 + 4 GTK_FILL - + True - 0 - Num + True True + 0 + True - 5 - 6 + 3 + 4 + 1 + 2 GTK_FILL - + True - 0 - Num - True + + 2 + 3 + 1 + 2 GTK_FILL - + True - - 7 - 8 - 12 + 4 + 5 13 + + GTK_FILL + 13 + + + + + True + Inv + + + 8 + 9 GTK_FILL - + True - + 0 + 1: + True - 7 - 8 - 11 - 12 + 1 + 2 GTK_FILL - + True - + 0 + 3: + True - 7 - 8 - 10 - 11 + 2 + 3 GTK_FILL - + True - + 0 + 5: + True - 7 - 8 - 9 - 10 + 3 + 4 GTK_FILL - + True - + 0 + 7: + True - 7 - 8 - 8 - 9 + 4 + 5 GTK_FILL - + True - + 0 + 9: + True - 7 - 8 - 7 - 8 + 5 + 6 GTK_FILL - + True - + 0 + 11: + True - 7 - 8 6 7 GTK_FILL @@ -22010,83 +22893,83 @@ Connector 7 - + True - + 0 + 13: + True - 7 - 8 - 5 - 6 + 7 + 8 GTK_FILL - + True - + 0 + 15: + True - 7 - 8 - 4 - 5 + 8 + 9 GTK_FILL - + True - + 0 + 17: + True - 7 - 8 - 3 - 4 + 9 + 10 GTK_FILL - + True - + 0 + 19: + True - 7 - 8 - 2 - 3 + 10 + 11 GTK_FILL - + True - + 0 + 21: + True - 7 - 8 - 1 - 2 + 11 + 12 GTK_FILL - + True - + 0 + 23: + True - 2 - 3 12 13 GTK_FILL @@ -22094,69 +22977,102 @@ Connector 7 - + + True + 0 + Pin Type + + + 7 + 8 + GTK_FILL + + + + + True + + + + - 2 - 3 - 11 - 12 + 1 + 2 + 1 + 2 GTK_FILL - + True + + + + - 2 - 3 - 10 - 11 + 1 + 2 + 3 + 4 GTK_FILL - + True + + + + - 2 - 3 - 9 - 10 + 1 + 2 + 4 + 5 GTK_FILL - + True + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 5 + 6 GTK_FILL - + True + + + + - 2 - 3 + 1 + 2 7 8 GTK_FILL @@ -22164,131 +23080,149 @@ Connector 7 - + True + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 8 + 9 GTK_FILL - + True + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 6 + 7 GTK_FILL - + True + + + + - 2 - 3 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True + + + + - 2 - 3 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True + + + + + - 2 - 3 - 13 - 15 + 1 + 2 + 12 + 13 GTK_FILL - GTK_FILL + - + True - False True - True - Launch test panel + True 0 + True - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - function - - - 1 - 2 + 3 + 4 + 2 + 3 GTK_FILL - + True - function + True + True + 0 + True - 6 - 7 + 3 + 4 + 3 + 4 GTK_FILL - + True True True @@ -22296,8 +23230,8 @@ Connector 7 True - 8 - 9 + 3 + 4 4 5 GTK_FILL @@ -22305,7 +23239,7 @@ Connector 7 - + True True True @@ -22313,16 +23247,16 @@ Connector 7 True - 8 - 9 - 3 - 4 + 3 + 4 + 5 + 6 GTK_FILL - + True True True @@ -22330,16 +23264,16 @@ Connector 7 True - 8 - 9 - 2 - 3 + 3 + 4 + 6 + 7 GTK_FILL - + True True True @@ -22347,134 +23281,135 @@ Connector 7 True - 8 - 9 - 1 - 2 + 3 + 4 + 7 + 8 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 4 - 5 + 3 + 4 + 8 + 9 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 3 - 4 + 3 + 4 + 9 + 10 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 1 - 2 + 3 + 4 + 10 + 11 GTK_FILL - + True - 0 - 31: + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 11 + 12 GTK_FILL - + True - 0 - 29: + True True + 0 + True - 5 - 6 - 3 - 4 + 3 + 4 + 12 + 13 GTK_FILL - + True 0 - 27: + 47: True 5 6 - 2 - 3 + 12 + 13 GTK_FILL - + True - 0 - 25: - True + + + + + - 5 - 6 - 1 - 2 + 6 + 7 + 12 + 13 GTK_FILL - + True True True @@ -22484,57 +23419,70 @@ Connector 7 8 9 - 5 - 6 + 12 + 13 GTK_FILL - + True - True + 0 + 45: True - 0 - True - 8 - 9 - 6 - 7 + 5 + 6 + 11 + 12 GTK_FILL - + True - True + 0 + 43: True - 0 - True - 8 - 9 - 7 - 8 + 5 + 6 + 10 + 11 GTK_FILL - + True - True + 0 + 41: True - 0 - True - 8 - 9 + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + 39: + True + + + 5 + 6 8 9 GTK_FILL @@ -22542,106 +23490,103 @@ Connector 7 - + True - True + 0 + 37: True - 0 - True - 8 - 9 - 9 - 10 + 5 + 6 + 7 + 8 GTK_FILL - + True - True + 0 + 35: True - 0 - True - 8 - 9 - 10 - 11 + 5 + 6 + 6 + 7 GTK_FILL - + True - True + 0 + 33: True - 0 - True - 8 - 9 - 11 - 12 + 5 + 6 + 5 + 6 GTK_FILL - + True - + 6 7 - 5 - 6 + 11 + 12 GTK_FILL - + True - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL @@ -22665,69 +23610,53 @@ Connector 7 - + True - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL - + True - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True - + 6 7 - 11 - 12 - GTK_FILL - - - - - - True - 0 - 33: - True - - - 5 - 6 5 6 GTK_FILL @@ -22735,63 +23664,50 @@ Connector 7 - - True - 0 - 35: - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - + True - 0 - 37: + True True + 0 + True - 5 - 6 - 7 - 8 + 8 + 9 + 11 + 12 GTK_FILL - + True - 0 - 39: + True True + 0 + True - 5 - 6 - 8 - 9 + 8 + 9 + 10 + 11 GTK_FILL - + True - 0 - 41: + True True + 0 + True - 5 - 6 + 8 + 9 9 10 GTK_FILL @@ -22799,39 +23715,24 @@ Connector 7 - - True - 0 - 43: - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - + True - 0 - 45: + True True + 0 + True - 5 - 6 - 11 - 12 + 8 + 9 + 8 + 9 GTK_FILL - + True True True @@ -22841,48 +23742,31 @@ Connector 7 8 9 - 12 - 13 - GTK_FILL - - - - - - True - - - - - - - - 6 - 7 - 12 - 13 + 7 + 8 GTK_FILL - + True - 0 - 47: + True True + 0 + True - 5 - 6 - 12 - 13 + 8 + 9 + 6 + 7 GTK_FILL - + True True True @@ -22890,118 +23774,134 @@ Connector 7 True - 3 - 4 - 12 - 13 + 8 + 9 + 5 + 6 GTK_FILL - + True - True + 0 + 25: True - 0 - True - 3 - 4 - 11 - 12 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 3 - 4 - 10 - 11 + 5 + 6 + 2 + 3 GTK_FILL - + True - True + 0 + 29: True - 0 - True - 3 - 4 - 9 - 10 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 + 31: True - 0 - True - 3 - 4 - 8 - 9 + 5 + 6 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 7 - 8 + 6 + 7 + 1 + 2 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 6 - 7 + 6 + 7 + 3 + 4 GTK_FILL - + + True + + + + + + + + 6 + 7 + 4 + 5 + GTK_FILL + + + + + True True True @@ -23009,16 +23909,16 @@ Connector 7 True - 3 - 4 - 5 - 6 + 8 + 9 + 1 + 2 GTK_FILL - + True True True @@ -23026,16 +23926,16 @@ Connector 7 True - 3 - 4 - 4 - 5 + 8 + 9 + 2 + 3 GTK_FILL - + True True True @@ -23043,8 +23943,8 @@ Connector 7 True - 3 - 4 + 8 + 9 3 4 GTK_FILL @@ -23052,7 +23952,7 @@ Connector 7 - + True True True @@ -23060,152 +23960,118 @@ Connector 7 True - 3 - 4 - 2 - 3 + 8 + 9 + 4 + 5 GTK_FILL - + True - - - - - + function - 1 - 2 - 12 - 13 + 6 + 7 GTK_FILL - + True - - - - - + function 1 2 - 11 - 12 GTK_FILL - + True - - - - - + False + True + True + Launch test panel + 0 - 1 - 2 - 10 - 11 + 2 + 3 + 15 + 17 GTK_FILL - - + True - - - - - - 1 - 2 - 9 - 10 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - - - - - 1 - 2 - 6 - 7 + 2 + 3 + 2 + 3 GTK_FILL - + True - - - - - 1 - 2 - 8 - 9 + 2 + 3 + 3 + 4 GTK_FILL - + True - - - - - 1 - 2 - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - - - - - 1 - 2 + 2 + 3 5 6 GTK_FILL @@ -23213,94 +24079,83 @@ Connector 7 - + True - - - - - 1 - 2 - 4 - 5 + 2 + 3 + 6 + 7 GTK_FILL - + True - - - - - 1 - 2 - 3 - 4 + 2 + 3 + 7 + 8 GTK_FILL - + True - - - - - 1 - 2 - 1 - 2 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - Pin Type + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - 23: - True + - 12 - 13 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - 21: - True + + 2 + 3 11 12 GTK_FILL @@ -23308,83 +24163,83 @@ Connector 7 - + True - 0 - 19: - True + - 10 - 11 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - 17: - True + - 9 - 10 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - 15: - True + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - 13: - True + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - 11: - True + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 9: - True + + 7 + 8 5 6 GTK_FILL @@ -23392,138 +24247,161 @@ Connector 7 - + True - 0 - 7: - True + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - 5: - True + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - 3: - True + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - 1: - True + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - + True + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 11 + 12 + GTK_FILL + - + True - 2 - 3 - 1 - 2 + 7 + 8 + 12 + 13 + GTK_FILL + + + + + + True + 0 + Num + True + + GTK_FILL - + True - True + 0 + Num True - 0 - True - 3 - 4 - 1 - 2 + 5 + 6 GTK_FILL - + True - 0 - Inv + + + + + - 3 - 4 + 1 + 2 + 2 + 3 GTK_FILL - + True - Pin Type + + + + + - 2 - 3 + 6 + 7 + 2 + 3 GTK_FILL @@ -23646,145 +24524,178 @@ Connector 8 - + True - - - - - + Pin Type - 6 - 7 - 2 - 3 + 2 + 3 GTK_FILL - + True - - - - - + 0 + Inv - 1 - 2 - 2 - 3 + 3 + 4 GTK_FILL - + True - 0 - Num + True True + 0 + True - 5 - 6 + 3 + 4 + 1 + 2 GTK_FILL - + + True + + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + + + 4 + 5 + 13 + + GTK_FILL + 13 + + + + + True + Inv + + + 8 + 9 + GTK_FILL + + + + + True 0 - Num + 1: True + 1 + 2 GTK_FILL - + True - + 0 + 3: + True - 7 - 8 - 12 - 13 + 2 + 3 GTK_FILL - + True - + 0 + 5: + True - 7 - 8 - 11 - 12 + 3 + 4 GTK_FILL - + True - + 0 + 7: + True - 7 - 8 - 10 - 11 + 4 + 5 GTK_FILL - + True - + 0 + 9: + True - 7 - 8 - 9 - 10 + 5 + 6 GTK_FILL - + True - + 0 + 11: + True - 7 - 8 - 8 - 9 + 6 + 7 GTK_FILL - + True - + 0 + 13: + True - 7 - 8 7 8 GTK_FILL @@ -23792,83 +24703,100 @@ Connector 8 - + True - + 0 + 15: + True - 7 - 8 - 6 - 7 + 8 + 9 GTK_FILL - + True - + 0 + 17: + True - 7 - 8 - 5 - 6 + 9 + 10 GTK_FILL - + True - + 0 + 19: + True - 7 - 8 - 4 - 5 + 10 + 11 GTK_FILL - + True - + 0 + 21: + True - 7 - 8 - 3 - 4 + 11 + 12 GTK_FILL - + True - + 0 + 23: + True + + + 12 + 13 + GTK_FILL + + + + + + True + 0 + Pin Type 7 8 - 2 - 3 GTK_FILL - + True + + + + - 7 - 8 + 1 + 2 1 2 GTK_FILL @@ -23876,69 +24804,89 @@ Connector 8 - + True + + + + - 2 - 3 - 12 - 13 + 1 + 2 + 3 + 4 GTK_FILL - + True + + + + - 2 - 3 - 11 - 12 + 1 + 2 + 4 + 5 GTK_FILL - + True + + + + - 2 - 3 - 10 - 11 + 1 + 2 + 5 + 6 GTK_FILL - + True + + + + - 2 - 3 - 9 - 10 + 1 + 2 + 7 + 8 GTK_FILL - + True + + + + - 2 - 3 + 1 + 2 8 9 GTK_FILL @@ -23946,83 +24894,106 @@ Connector 8 - + True + + + + - 2 - 3 - 7 - 8 + 1 + 2 + 6 + 7 GTK_FILL - + True + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 9 + 10 GTK_FILL - + True + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 10 + 11 GTK_FILL - + True + + + + - 2 - 3 - 4 - 5 + 1 + 2 + 11 + 12 GTK_FILL - + True + + + + - 2 - 3 - 3 - 4 + 1 + 2 + 12 + 13 GTK_FILL - + True - + True + True + 0 + True - 2 - 3 + 3 + 4 2 3 GTK_FILL @@ -24030,61 +25001,92 @@ Connector 8 - + True + True + True + 0 + True - 2 - 3 - 13 - 15 + 3 + 4 + 3 + 4 GTK_FILL - GTK_FILL + - + True - False True - True - Launch test panel + True + 0 + True + + + 3 + 4 + 4 + 5 + GTK_FILL + + + + + + True + True + True 0 + True - 2 - 3 - 15 - 17 + 3 + 4 + 5 + 6 GTK_FILL + - + True - function + True + True + 0 + True - 1 - 2 + 3 + 4 + 6 + 7 GTK_FILL - + True - function + True + True + 0 + True - 6 - 7 + 3 + 4 + 7 + 8 GTK_FILL - + True True True @@ -24092,16 +25094,16 @@ Connector 8 True - 8 - 9 - 4 - 5 + 3 + 4 + 8 + 9 GTK_FILL - + True True True @@ -24109,16 +25111,16 @@ Connector 8 True - 8 - 9 - 3 - 4 + 3 + 4 + 9 + 10 GTK_FILL - + True True True @@ -24126,16 +25128,16 @@ Connector 8 True - 8 - 9 - 2 - 3 + 3 + 4 + 10 + 11 GTK_FILL - + True True True @@ -24143,194 +25145,140 @@ Connector 8 True - 8 - 9 - 1 - 2 + 3 + 4 + 11 + 12 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 4 - 5 + 3 + 4 + 12 + 13 GTK_FILL - + True - - - - - + 0 + 47: + True - 6 - 7 - 3 - 4 + 5 + 6 + 12 + 13 GTK_FILL - + True - + - + 6 7 - 1 - 2 + 12 + 13 GTK_FILL - + True - 0 - 31: + True True + 0 + True - 5 - 6 - 4 - 5 + 8 + 9 + 12 + 13 GTK_FILL - + True 0 - 29: + 45: True 5 6 - 3 - 4 + 11 + 12 GTK_FILL - + True 0 - 27: + 43: True 5 6 - 2 - 3 + 10 + 11 GTK_FILL - + True 0 - 25: + 41: True 5 6 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 5 - 6 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 6 - 7 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 7 - 8 + 9 + 10 GTK_FILL - + True - True + 0 + 39: True - 0 - True - 8 - 9 + 5 + 6 8 9 GTK_FILL @@ -24338,106 +25286,103 @@ Connector 8 - + True - True + 0 + 37: True - 0 - True - 8 - 9 - 9 - 10 + 5 + 6 + 7 + 8 GTK_FILL - + True - True + 0 + 35: True - 0 - True - 8 - 9 - 10 - 11 + 5 + 6 + 6 + 7 GTK_FILL - + True - True + 0 + 33: True - 0 - True - 8 - 9 - 11 - 12 + 5 + 6 + 5 + 6 GTK_FILL - + True - + 6 7 - 5 - 6 + 11 + 12 GTK_FILL - + True - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL @@ -24461,69 +25406,53 @@ Connector 8 - + True - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL - + True - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True - + 6 7 - 11 - 12 - GTK_FILL - - - - - - True - 0 - 33: - True - - - 5 - 6 5 6 GTK_FILL @@ -24531,63 +25460,50 @@ Connector 8 - - True - 0 - 35: - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - + True - 0 - 37: + True True + 0 + True - 5 - 6 - 7 - 8 + 8 + 9 + 11 + 12 GTK_FILL - + True - 0 - 39: + True True + 0 + True - 5 - 6 - 8 - 9 + 8 + 9 + 10 + 11 GTK_FILL - + True - 0 - 41: + True True + 0 + True - 5 - 6 + 8 + 9 9 10 GTK_FILL @@ -24595,39 +25511,41 @@ Connector 8 - + True - 0 - 43: + True True + 0 + True - 5 - 6 - 10 - 11 + 8 + 9 + 8 + 9 GTK_FILL - + True - 0 - 45: + True True + 0 + True - 5 - 6 - 11 - 12 + 8 + 9 + 7 + 8 GTK_FILL - + True True True @@ -24637,167 +25555,149 @@ Connector 8 8 9 - 12 - 13 + 6 + 7 GTK_FILL - + True - - - - - + True + True + 0 + True - 6 - 7 - 12 - 13 + 8 + 9 + 5 + 6 GTK_FILL - + True 0 - 47: + 25: True 5 6 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 + 1 + 2 GTK_FILL - + True - True + 0 + 27: True - 0 - True - 3 - 4 - 11 - 12 + 5 + 6 + 2 + 3 GTK_FILL - + True - True + 0 + 29: True - 0 - True - 3 - 4 - 10 - 11 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 + 31: True - 0 - True - 3 - 4 - 9 - 10 + 5 + 6 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 8 - 9 + 6 + 7 + 1 + 2 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 7 - 8 + 6 + 7 + 3 + 4 GTK_FILL - + True - True - True - 0 - True + + + + + - 3 - 4 - 6 - 7 + 6 + 7 + 4 + 5 GTK_FILL - + True True True @@ -24805,16 +25705,16 @@ Connector 8 True - 3 - 4 - 5 - 6 + 8 + 9 + 1 + 2 GTK_FILL - + True True True @@ -24822,16 +25722,16 @@ Connector 8 True - 3 - 4 - 4 - 5 + 8 + 9 + 2 + 3 GTK_FILL - + True True True @@ -24839,8 +25739,8 @@ Connector 8 True - 3 - 4 + 8 + 9 3 4 GTK_FILL @@ -24848,7 +25748,7 @@ Connector 8 - + True True True @@ -24856,152 +25756,118 @@ Connector 8 True - 3 - 4 - 2 - 3 + 8 + 9 + 4 + 5 GTK_FILL - + True - - - - - + function - 1 - 2 - 12 - 13 + 6 + 7 GTK_FILL - + True - - - - - + function 1 2 - 11 - 12 GTK_FILL - + True - - - - - + False + True + True + Launch test panel + 0 - 1 - 2 - 10 - 11 + 2 + 3 + 15 + 17 GTK_FILL - - + True - - - - - - 1 - 2 - 9 - 10 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - - - - - 1 - 2 - 6 - 7 + 2 + 3 + 2 + 3 GTK_FILL - + True - - - - - 1 - 2 - 8 - 9 + 2 + 3 + 3 + 4 GTK_FILL - + True - - - - - 1 - 2 - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - - - - - 1 - 2 + 2 + 3 5 6 GTK_FILL @@ -25009,94 +25875,83 @@ Connector 8 - + True - - - - - 1 - 2 - 4 - 5 + 2 + 3 + 6 + 7 GTK_FILL - + True - - - - - 1 - 2 - 3 - 4 + 2 + 3 + 7 + 8 GTK_FILL - + True - - - - - 1 - 2 - 1 - 2 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - Pin Type + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - 23: - True + - 12 - 13 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - 21: - True + + 2 + 3 11 12 GTK_FILL @@ -25104,83 +25959,83 @@ Connector 8 - + True - 0 - 19: - True + - 10 - 11 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - 17: - True + - 9 - 10 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - 15: - True + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - 13: - True + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - 11: - True + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - 9: - True + + 7 + 8 5 6 GTK_FILL @@ -25188,138 +26043,161 @@ Connector 8 - + True - 0 - 7: - True + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - 5: - True + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - 3: - True + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - 1: - True + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - + True + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 11 + 12 + GTK_FILL + - + True - 2 - 3 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True - True + 0 + Num True - 0 - True - 3 - 4 - 1 - 2 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 + 5 + 6 GTK_FILL - + True - Pin Type + + + + + - 2 - 3 + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + + + + + + + + 6 + 7 + 2 + 3 GTK_FILL @@ -25458,93 +26336,49 @@ Connector 8 - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL - + True 0 - Num - True - - - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 11 - 12 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 10 - 11 + 3 + 4 + 1 + 2 GTK_FILL - + True GPIO Input GPIO Output @@ -25555,368 +26389,361 @@ StepGen - 7 - 8 - 9 - 10 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 8 - 9 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 7 - 8 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 5 - 6 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 4 - 5 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 3 - 4 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 11 - 12 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 10 - 11 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 7 - 8 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 6 - 7 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 4 - 5 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 3 4 GTK_FILL @@ -25924,119 +26751,267 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 4 + 5 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 5 + 6 GTK_FILL - - True - function - - - 6 - 7 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 4 - 5 - GTK_FILL - - - - - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -26074,21 +27049,21 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -26126,21 +27101,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -26178,21 +27153,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -26230,43 +27205,47 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -26274,37 +27253,41 @@ Unused - + True - 0 + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 5 + 6 GTK_FILL - + True True True @@ -26312,16 +27295,16 @@ Unused True - 8 - 9 - 5 - 6 + 3 + 4 + 6 + 7 GTK_FILL - + True True True @@ -26329,16 +27312,150 @@ Unused True - 8 - 9 - 6 - 7 + 3 + 4 + 7 + 8 GTK_FILL - + + True + True + True + 0 + True + + + 3 + 4 + 8 + 9 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 9 + 10 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 10 + 11 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 6 + 7 + 12 + 13 + GTK_FILL + + + + + True True True @@ -26348,23 +27465,66 @@ Unused 8 9 - 7 - 8 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 GTK_FILL - + True - True + 0 True - 0 - True - 8 - 9 + 5 + 6 8 9 GTK_FILL @@ -26372,58 +27532,52 @@ Unused - + True - True + 0 True - 0 - True - 8 - 9 - 9 - 10 + 5 + 6 + 7 + 8 GTK_FILL - + True - True + 0 True - 0 - True - 8 - 9 - 10 - 11 + 5 + 6 + 6 + 7 GTK_FILL - + True - True + 0 True - 0 - True - 8 - 9 - 11 - 12 + 5 + 6 + 5 + 6 GTK_FILL - + True X Step X Direction @@ -26443,21 +27597,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 11 + 12 GTK_FILL - + True X Step X Direction @@ -26477,21 +27631,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -26511,15 +27665,15 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL @@ -26559,7 +27713,7 @@ Charge Pump - + True X Step X Direction @@ -26579,21 +27733,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -26613,21 +27767,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -26647,28 +27801,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 5 6 GTK_FILL @@ -26676,97 +27815,7 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - + True True True @@ -26776,89 +27825,6 @@ Charge Pump 8 9 - 12 - 13 - GTK_FILL - - - - - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - - - - 6 - 7 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 11 12 GTK_FILL @@ -26866,7 +27832,7 @@ Charge Pump - + True True True @@ -26874,8 +27840,8 @@ Charge Pump True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -26883,7 +27849,7 @@ Charge Pump - + True True True @@ -26891,8 +27857,8 @@ Charge Pump True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -26900,7 +27866,7 @@ Charge Pump - + True True True @@ -26908,8 +27874,8 @@ Charge Pump True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -26917,7 +27883,7 @@ Charge Pump - + True True True @@ -26925,8 +27891,8 @@ Charge Pump True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -26934,7 +27900,7 @@ Charge Pump - + True True True @@ -26942,8 +27908,8 @@ Charge Pump True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -26951,7 +27917,7 @@ Charge Pump - + True True True @@ -26959,8 +27925,8 @@ Charge Pump True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -26968,50 +27934,29 @@ Charge Pump - - True - True - True - 0 - True - - - 3 - 4 - 4 - 5 - GTK_FILL - - - - - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 2 3 GTK_FILL @@ -27019,163 +27964,37 @@ Charge Pump - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 12 - 13 - GTK_FILL - - - - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 11 - 12 + 5 + 6 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 10 - 11 + 5 + 6 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -27213,21 +28032,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -27265,21 +28084,21 @@ All limits All home Unused - + - 1 - 2 - 6 - 7 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -27317,21 +28136,21 @@ All limits All home Unused - + - 1 - 2 - 8 - 9 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -27369,169 +28188,64 @@ All limits All home Unused - + - 1 - 2 - 7 - 8 + 6 + 7 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 5 - 6 + 8 + 9 + 1 + 2 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 4 - 5 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 3 4 GTK_FILL @@ -27539,51 +28253,60 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 2 3 GTK_FILL @@ -27591,90 +28314,179 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 6 + 7 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 7 + 8 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 9 + 10 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 11 12 GTK_FILL @@ -27682,77 +28494,119 @@ Unused - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 5 6 GTK_FILL @@ -27760,87 +28614,107 @@ Unused - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - - True - - - 4 - 5 - 13 - - GTK_FILL - 13 - - - - + True GPIO Input GPIO Output @@ -27851,52 +28725,56 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL @@ -28015,49 +28893,53 @@ StepGen - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True GPIO Input GPIO Output @@ -28068,74 +28950,168 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 10 + 11 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 6 + 7 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 4 + 5 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 3 4 GTK_FILL @@ -28143,52 +29119,159 @@ StepGen - + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 2 + 3 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 1 + 2 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 12 + 13 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 7 8 GTK_FILL @@ -28196,285 +29279,169 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 2 + 3 GTK_FILL - + True - 0 - Pin Type - 7 - 8 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + Launch test panel + 0 - 1 - 2 - 1 - 2 + 2 + 3 + 15 + 17 GTK_FILL - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function 1 2 - 2 - 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 3 - 4 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 4 5 GTK_FILL @@ -28482,215 +29449,58 @@ Unused - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 5 - 6 - GTK_FILL - - - - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 7 - 8 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -28728,21 +29538,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -28780,21 +29590,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -28832,21 +29642,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -28884,47 +29694,43 @@ All limits All home Unused - + - 1 - 2 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 4 + 5 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 3 4 GTK_FILL @@ -28932,24 +29738,37 @@ Unused - + True - True + 0 True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 2 + 3 GTK_FILL - + + True + 0 + True + + + 5 + 6 + 1 + 2 + GTK_FILL + + + + + True True True @@ -28957,8 +29776,8 @@ Unused True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -28966,7 +29785,7 @@ Unused - + True True True @@ -28974,8 +29793,8 @@ Unused True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -28983,7 +29802,7 @@ Unused - + True True True @@ -28991,8 +29810,8 @@ Unused True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -29000,7 +29819,7 @@ Unused - + True True True @@ -29008,8 +29827,8 @@ Unused True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -29017,7 +29836,7 @@ Unused - + True True True @@ -29025,8 +29844,8 @@ Unused True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -29034,7 +29853,7 @@ Unused - + True True True @@ -29042,8 +29861,8 @@ Unused True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -29051,7 +29870,7 @@ Unused - + True True True @@ -29059,8 +29878,8 @@ Unused True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -29068,39 +29887,7 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -29120,105 +29907,81 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 + 5 + 6 GTK_FILL - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 8 - 9 + 6 + 7 + 6 + 7 GTK_FILL - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 + 6 + 7 7 8 GTK_FILL @@ -29226,37 +29989,41 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 5 - 6 + 6 + 7 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -29276,15 +30043,15 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 9 + 10 GTK_FILL @@ -29324,7 +30091,7 @@ Charge Pump - + True X Step X Direction @@ -29344,89 +30111,143 @@ ESTOP Request Amplifier Enable Charge Pump - + - 6 - 7 - 9 - 10 + 6 + 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 6 + 7 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 - 8 - 9 + 5 + 6 + 11 + 12 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + True + True + 0 + True - 6 - 7 - 7 - 8 + 8 + 9 + 12 + 13 GTK_FILL - + True X Step X Direction @@ -29446,55 +30267,36 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 - 5 - 6 + 5 + 6 + 12 + 13 GTK_FILL - + True True True @@ -29502,8 +30304,25 @@ Charge Pump True - 8 - 9 + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -29511,7 +30330,7 @@ Charge Pump - + True True True @@ -29519,8 +30338,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -29528,7 +30347,7 @@ Charge Pump - + True True True @@ -29536,8 +30355,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -29545,7 +30364,7 @@ Charge Pump - + True True True @@ -29553,8 +30372,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -29562,7 +30381,7 @@ Charge Pump - + True True True @@ -29570,8 +30389,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -29579,7 +30398,7 @@ Charge Pump - + True True True @@ -29587,8 +30406,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -29596,7 +30415,7 @@ Charge Pump - + True True True @@ -29604,8 +30423,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -29613,29 +30432,50 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 + 3 + 4 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 2 3 GTK_FILL @@ -29643,37 +30483,319 @@ Charge Pump - + True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 3 - 4 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 11 + 12 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 10 + 11 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 9 + 10 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 6 + 7 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 4 - 5 + 1 + 2 + 8 + 9 GTK_FILL - + True ESTOP IN Spindle PPR @@ -29711,21 +30833,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 7 + 8 GTK_FILL - + True ESTOP IN Spindle PPR @@ -29763,21 +30885,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 5 + 6 GTK_FILL - + True ESTOP IN Spindle PPR @@ -29815,21 +30937,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -29867,64 +30989,13 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 2 - 3 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 + 1 + 2 3 4 GTK_FILL @@ -29932,89 +31003,51 @@ Unused - - True - True - True - 0 - True - - - 8 - 9 - 4 - 5 - GTK_FILL - - - - - - True - function - - - 6 - 7 - GTK_FILL - - - - - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 - GTK_FILL - - - - - - True - True - True - Launch test panel - 0 - - - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - - - 2 - 3 - 13 - 15 - GTK_FILL - GTK_FILL - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 2 3 GTK_FILL @@ -30022,159 +31055,103 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 3 - 4 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 5 - 6 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 7 - 8 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 10 11 GTK_FILL @@ -30182,247 +31159,152 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 11 - 12 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 4 - 5 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 5 - 6 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 7 - 8 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 8 - 9 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 9 - 10 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 10 - 11 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True GPIO Input GPIO Output @@ -30433,56 +31315,52 @@ StepGen - 7 - 8 - 11 - 12 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 12 - 13 + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True + Inv + 3 + 4 GTK_FILL - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL @@ -30636,49 +31514,53 @@ StepGen - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True GPIO Input GPIO Output @@ -30689,88 +31571,148 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 10 + 11 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 4 5 GTK_FILL @@ -30778,77 +31720,119 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 11 + 12 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 10 11 GTK_FILL @@ -30856,246 +31840,200 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 9 + 10 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 7 + 8 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 6 + 7 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function 1 2 - 2 - 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 3 - 4 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 4 5 GTK_FILL @@ -31103,163 +32041,58 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 5 - 6 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 7 - 8 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -31297,21 +32130,21 @@ All limits All home Unused - + - 1 - 2 - 6 - 7 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -31349,21 +32182,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -31401,21 +32234,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -31453,124 +32286,81 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 1 + 2 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 12 - 13 + 5 + 6 + 4 + 5 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 2 + 3 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 1 + 2 GTK_FILL - + True True True @@ -31578,8 +32368,8 @@ Unused True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -31587,7 +32377,7 @@ Unused - + True True True @@ -31595,8 +32385,8 @@ Unused True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -31604,7 +32394,7 @@ Unused - + True True True @@ -31612,8 +32402,8 @@ Unused True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -31621,7 +32411,7 @@ Unused - + True True True @@ -31629,8 +32419,8 @@ Unused True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -31638,7 +32428,7 @@ Unused - + True True True @@ -31646,8 +32436,8 @@ Unused True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -31655,7 +32445,7 @@ Unused - + True True True @@ -31663,8 +32453,8 @@ Unused True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -31672,7 +32462,7 @@ Unused - + True True True @@ -31680,8 +32470,8 @@ Unused True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -31689,39 +32479,7 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -31741,135 +32499,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 5 6 GTK_FILL @@ -31877,7 +32513,7 @@ Charge Pump - + True X Step X Direction @@ -31897,21 +32533,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -31931,21 +32567,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -31965,21 +32601,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -31999,21 +32635,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 8 - 9 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -32033,21 +32669,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -32067,13 +32703,43 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 6 7 GTK_FILL @@ -32081,7 +32747,99 @@ Charge Pump - + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 12 + 13 + GTK_FILL + + + + + True X Step X Direction @@ -32101,21 +32859,36 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 12 + 13 GTK_FILL - + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + True True True @@ -32123,8 +32896,25 @@ Charge Pump True - 8 - 9 + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -32132,7 +32922,7 @@ Charge Pump - + True True True @@ -32140,8 +32930,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -32149,7 +32939,7 @@ Charge Pump - + True True True @@ -32157,8 +32947,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -32166,7 +32956,7 @@ Charge Pump - + True True True @@ -32174,8 +32964,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -32183,7 +32973,7 @@ Charge Pump - + True True True @@ -32191,8 +32981,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -32200,7 +32990,7 @@ Charge Pump - + True True True @@ -32208,8 +32998,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -32217,7 +33007,7 @@ Charge Pump - + True True True @@ -32225,8 +33015,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -32234,44 +33024,33 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 1 - 2 - GTK_FILL - - - - - + True - 0 + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -32279,22 +33058,24 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -32332,21 +33113,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True ESTOP IN Spindle PPR @@ -32384,21 +33165,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -32436,21 +33217,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -32488,165 +33269,273 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 2 - 3 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 3 - 4 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 6 + 7 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 4 5 GTK_FILL @@ -32654,139 +33543,194 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 5 - 6 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 7 - 8 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 8 - 9 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 9 - 10 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 10 - 11 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 11 12 GTK_FILL @@ -32794,119 +33738,77 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 4 - 5 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 5 6 GTK_FILL @@ -32914,107 +33816,87 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 7 - 8 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 8 - 9 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 9 - 10 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 10 - 11 + 8 + 9 GTK_FILL - + + True + + + 4 + 5 + 13 + + GTK_FILL + 13 + + + + True GPIO Input GPIO Output @@ -33025,56 +33907,52 @@ StepGen - 7 - 8 - 11 - 12 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 12 - 13 + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True + Inv + 3 + 4 GTK_FILL - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL @@ -33193,193 +34071,49 @@ StepGen - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL - + True 0 - Num - True - - - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 11 - 12 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 10 - 11 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 9 - 10 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 8 - 9 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 7 - 8 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 6 - 7 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 5 - 6 + 3 + 4 + 1 + 2 GTK_FILL - + True GPIO Input GPIO Output @@ -33390,68 +34124,47 @@ StepGen - 7 - 8 - 4 - 5 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 3 - 4 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 2 - 3 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 1 2 GTK_FILL @@ -33459,119 +34172,79 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 2 - 3 - 11 - 12 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 2 - 3 - 10 - 11 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 7 8 GTK_FILL @@ -33579,228 +34252,501 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 6 - 7 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 5 - 6 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 4 - 5 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 3 - 4 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 2 - 3 + 12 + 13 GTK_FILL - + True + 0 + Pin Type - 2 - 3 - 13 - 15 + 7 + 8 GTK_FILL - GTK_FILL + - + True - True - True - Launch test panel - 0 + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 15 - 17 + 1 + 2 + 1 + 2 GTK_FILL + - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 3 + 4 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 4 - 5 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -33838,21 +34784,21 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -33890,21 +34836,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -33942,21 +34888,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -33994,43 +34940,47 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -34038,37 +34988,24 @@ Unused - - True - 0 - True - - - 5 - 6 - 2 - 3 - GTK_FILL - - - - - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True True True @@ -34076,8 +35013,8 @@ Unused True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -34085,7 +35022,7 @@ Unused - + True True True @@ -34093,8 +35030,8 @@ Unused True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -34102,7 +35039,7 @@ Unused - + True True True @@ -34110,8 +35047,8 @@ Unused True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -34119,7 +35056,7 @@ Unused - + True True True @@ -34127,8 +35064,8 @@ Unused True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -34136,7 +35073,7 @@ Unused - + True True True @@ -34144,8 +35081,8 @@ Unused True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -34153,7 +35090,7 @@ Unused - + True True True @@ -34161,8 +35098,8 @@ Unused True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -34170,7 +35107,7 @@ Unused - + True True True @@ -34178,8 +35115,8 @@ Unused True - 8 - 9 + 3 + 4 11 12 GTK_FILL @@ -34187,7 +35124,39 @@ Unused - + + True + True + True + 0 + True + + + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + True X Step X Direction @@ -34207,13 +35176,135 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 6 + 7 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 5 6 GTK_FILL @@ -34221,7 +35312,7 @@ Charge Pump - + True X Step X Direction @@ -34241,21 +35332,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 11 + 12 GTK_FILL - + True X Step X Direction @@ -34275,21 +35366,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -34309,21 +35400,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 8 - 9 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -34343,21 +35434,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -34377,21 +35468,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -34411,43 +35502,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 5 - 6 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 6 7 GTK_FILL @@ -34455,99 +35516,7 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -34567,53 +35536,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 + 5 + 6 GTK_FILL - + True True True @@ -34621,8 +35558,8 @@ Charge Pump True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -34630,7 +35567,7 @@ Charge Pump - + True True True @@ -34638,8 +35575,8 @@ Charge Pump True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -34647,7 +35584,7 @@ Charge Pump - + True True True @@ -34655,8 +35592,8 @@ Charge Pump True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -34664,7 +35601,7 @@ Charge Pump - + True True True @@ -34672,8 +35609,8 @@ Charge Pump True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -34681,7 +35618,7 @@ Charge Pump - + True True True @@ -34689,8 +35626,8 @@ Charge Pump True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -34698,7 +35635,7 @@ Charge Pump - + True True True @@ -34706,8 +35643,8 @@ Charge Pump True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -34715,7 +35652,7 @@ Charge Pump - + True True True @@ -34723,8 +35660,8 @@ Charge Pump True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -34732,50 +35669,29 @@ Charge Pump - - True - True - True - 0 - True - - - 3 - 4 - 4 - 5 - GTK_FILL - - - - - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 2 3 GTK_FILL @@ -34783,267 +35699,37 @@ Charge Pump - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 12 - 13 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 11 - 12 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 10 - 11 - GTK_FILL - - - - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 9 - 10 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 5 + 6 + 3 + 4 + GTK_FILL + + + + + + True + 0 + True - 1 - 2 - 6 - 7 + 5 + 6 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -35081,21 +35767,21 @@ All limits All home Unused - + - 1 - 2 - 8 - 9 + 6 + 7 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -35133,21 +35819,21 @@ All limits All home Unused - + - 1 - 2 - 7 - 8 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -35185,21 +35871,21 @@ All limits All home Unused - + - 1 - 2 - 5 - 6 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -35237,13 +35923,13 @@ All limits All home Unused - + - 1 - 2 + 6 + 7 4 5 GTK_FILL @@ -35251,51 +35937,50 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 + 1 + 2 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 2 + 3 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 3 4 GTK_FILL @@ -35303,51 +35988,89 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 + GTK_FILL + + + + + + True + True + True + Launch test panel + 0 + + + 2 + 3 + 15 + 17 + GTK_FILL + + + + + True + + + 2 + 3 + 13 + 15 + GTK_FILL + GTK_FILL + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 2 3 GTK_FILL @@ -35355,116 +36078,139 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 9 10 GTK_FILL @@ -35472,51 +36218,159 @@ Unused - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 12 + 13 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 1 + 2 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 5 6 GTK_FILL @@ -35524,87 +36378,107 @@ Unused - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - - True - - - 4 - 5 - 13 - - GTK_FILL - 13 - - - - + True GPIO Input GPIO Output @@ -35615,52 +36489,56 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL @@ -35814,49 +36692,53 @@ StepGen - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True GPIO Input GPIO Output @@ -35867,88 +36749,148 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 10 + 11 + GTK_FILL + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 9 + 10 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 5 + 6 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 4 5 GTK_FILL @@ -35956,220 +36898,279 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 9 + 10 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 2 + 3 + 8 + 9 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 2 + 3 2 3 GTK_FILL @@ -36177,319 +37178,99 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function 1 2 - 3 - 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 4 - 5 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 5 - 6 + 8 + 9 + 4 + 5 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 7 - 8 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 6 - 7 + 8 + 9 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -36527,21 +37308,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -36579,21 +37360,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -36631,21 +37412,21 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -36683,47 +37464,43 @@ All limits All home Unused - + - 1 - 2 - 12 - 13 + 6 + 7 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 2 - 3 + 5 + 6 + 4 + 5 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 3 4 GTK_FILL @@ -36731,24 +37508,37 @@ Unused - + True - True + 0 True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 2 + 3 GTK_FILL - + + True + 0 + True + + + 5 + 6 + 1 + 2 + GTK_FILL + + + + + True True True @@ -36756,8 +37546,8 @@ Unused True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -36765,7 +37555,7 @@ Unused - + True True True @@ -36773,8 +37563,8 @@ Unused True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -36782,7 +37572,7 @@ Unused - + True True True @@ -36790,8 +37580,8 @@ Unused True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -36799,7 +37589,7 @@ Unused - + True True True @@ -36807,8 +37597,8 @@ Unused True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -36816,7 +37606,7 @@ Unused - + True True True @@ -36824,8 +37614,8 @@ Unused True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -36833,7 +37623,7 @@ Unused - + True True True @@ -36841,8 +37631,8 @@ Unused True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -36850,7 +37640,7 @@ Unused - + True True True @@ -36858,8 +37648,8 @@ Unused True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -36867,39 +37657,7 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -36919,135 +37677,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 5 6 GTK_FILL @@ -37055,7 +37691,7 @@ Charge Pump - + True X Step X Direction @@ -37075,21 +37711,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -37109,21 +37745,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -37143,21 +37779,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -37177,21 +37813,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 8 - 9 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -37211,21 +37847,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -37245,13 +37881,43 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 6 7 GTK_FILL @@ -37259,7 +37925,99 @@ Charge Pump - + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 12 + 13 + GTK_FILL + + + + + True X Step X Direction @@ -37279,21 +38037,36 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 12 + 13 GTK_FILL - + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + True True True @@ -37301,8 +38074,25 @@ Charge Pump True - 8 - 9 + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -37310,7 +38100,7 @@ Charge Pump - + True True True @@ -37318,8 +38108,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -37327,7 +38117,7 @@ Charge Pump - + True True True @@ -37335,8 +38125,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -37344,7 +38134,7 @@ Charge Pump - + True True True @@ -37352,8 +38142,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -37361,7 +38151,7 @@ Charge Pump - + True True True @@ -37369,8 +38159,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -37378,7 +38168,7 @@ Charge Pump - + True True True @@ -37386,8 +38176,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -37395,7 +38185,7 @@ Charge Pump - + True True True @@ -37403,8 +38193,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -37412,44 +38202,33 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 1 - 2 - GTK_FILL - - - - - + True - 0 + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -37457,22 +38236,24 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -37510,21 +38291,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True ESTOP IN Spindle PPR @@ -37562,21 +38343,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -37614,21 +38395,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -37666,145 +38447,325 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 2 - 3 + 1 + 2 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 4 - 5 + 1 + 2 + 8 + 9 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 7 + 8 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 3 4 GTK_FILL @@ -37812,139 +38773,155 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 7 - 8 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 10 11 GTK_FILL @@ -37952,119 +38929,78 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 11 - 12 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 4 5 GTK_FILL @@ -38072,127 +39008,73 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 5 - 6 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 7 - 8 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 8 - 9 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 9 - 10 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 10 - 11 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True GPIO Input GPIO Output @@ -38203,56 +39085,52 @@ StepGen - 7 - 8 - 11 - 12 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 12 - 13 + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True + Inv + 3 + 4 GTK_FILL - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL @@ -38371,133 +39249,49 @@ StepGen - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL - + True 0 - Num - True - - - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 11 - 12 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 10 - 11 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 9 - 10 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 8 - 9 + 3 + 4 + 1 + 2 GTK_FILL - + True GPIO Input GPIO Output @@ -38508,348 +39302,309 @@ StepGen - 7 - 8 - 7 - 8 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 6 - 7 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 5 - 6 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 4 - 5 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 2 - 3 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 1 - 2 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 11 - 12 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 10 - 11 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 7 - 8 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 6 - 7 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 5 - 6 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 4 - 5 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 3 - 4 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 2 3 GTK_FILL @@ -38857,128 +39612,319 @@ StepGen - + True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 13 - 15 + 1 + 2 + 3 + 4 GTK_FILL - GTK_FILL + - + True - True - True - Launch test panel - 0 + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 15 - 17 + 1 + 2 + 4 + 5 GTK_FILL + - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 5 + 6 GTK_FILL - - True - function - - - 6 - 7 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 4 - 5 - GTK_FILL - - - - - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 8 + 9 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -39016,21 +39962,21 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -39068,21 +40014,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -39120,21 +40066,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -39172,43 +40118,47 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -39216,37 +40166,41 @@ Unused - + True - 0 + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 5 + 6 GTK_FILL - + True True True @@ -39254,16 +40208,16 @@ Unused True - 8 - 9 - 5 - 6 + 3 + 4 + 6 + 7 GTK_FILL - + True True True @@ -39271,16 +40225,16 @@ Unused True - 8 - 9 - 6 - 7 + 3 + 4 + 7 + 8 GTK_FILL - + True True True @@ -39288,16 +40242,133 @@ Unused True - 8 - 9 - 7 - 8 + 3 + 4 + 8 + 9 GTK_FILL - + + True + True + True + 0 + True + + + 3 + 4 + 9 + 10 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 10 + 11 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 6 + 7 + 12 + 13 + GTK_FILL + + + + + True True True @@ -39307,6 +40378,66 @@ Unused 8 9 + 12 + 13 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 8 9 GTK_FILL @@ -39314,58 +40445,52 @@ Unused - + True - True + 0 True - 0 - True - 8 - 9 - 9 - 10 + 5 + 6 + 7 + 8 GTK_FILL - + True - True + 0 True - 0 - True - 8 - 9 - 10 - 11 + 5 + 6 + 6 + 7 GTK_FILL - + True - True + 0 True - 0 - True - 8 - 9 - 11 - 12 + 5 + 6 + 5 + 6 GTK_FILL - + True X Step X Direction @@ -39385,21 +40510,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 11 + 12 GTK_FILL - + True X Step X Direction @@ -39419,21 +40544,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 6 - 7 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -39453,15 +40578,15 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 9 + 10 GTK_FILL @@ -39501,7 +40626,7 @@ Charge Pump - + True X Step X Direction @@ -39521,21 +40646,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -39555,21 +40680,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -39589,28 +40714,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 5 6 GTK_FILL @@ -39618,97 +40728,7 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - + True True True @@ -39718,89 +40738,6 @@ Charge Pump 8 9 - 12 - 13 - GTK_FILL - - - - - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - - - - 6 - 7 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 3 - 4 11 12 GTK_FILL @@ -39808,7 +40745,7 @@ Charge Pump - + True True True @@ -39816,8 +40753,8 @@ Charge Pump True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -39825,7 +40762,7 @@ Charge Pump - + True True True @@ -39833,8 +40770,8 @@ Charge Pump True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -39842,7 +40779,7 @@ Charge Pump - + True True True @@ -39850,8 +40787,8 @@ Charge Pump True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -39859,7 +40796,7 @@ Charge Pump - + True True True @@ -39867,8 +40804,8 @@ Charge Pump True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -39876,7 +40813,7 @@ Charge Pump - + True True True @@ -39884,8 +40821,8 @@ Charge Pump True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -39893,7 +40830,7 @@ Charge Pump - + True True True @@ -39901,8 +40838,8 @@ Charge Pump True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -39910,318 +40847,67 @@ Charge Pump - - True - True - True - 0 - True - - - 3 - 4 - 4 - 5 - GTK_FILL - - - - - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - - - 3 - 4 - 2 - 3 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 12 - 13 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 11 - 12 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - 1 - 2 - 10 - 11 + 5 + 6 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 9 - 10 + 5 + 6 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 6 - 7 + 5 + 6 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -40259,21 +40945,21 @@ All limits All home Unused - + - 1 - 2 - 8 - 9 + 6 + 7 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -40311,21 +40997,21 @@ All limits All home Unused - + - 1 - 2 - 7 - 8 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -40363,21 +41049,21 @@ All limits All home Unused - + - 1 - 2 - 5 - 6 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -40415,13 +41101,13 @@ All limits All home Unused - + - 1 - 2 + 6 + 7 4 5 GTK_FILL @@ -40429,51 +41115,50 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 + 1 + 2 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 2 + 3 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 3 4 GTK_FILL @@ -40481,51 +41166,89 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 + GTK_FILL + + + + + + True + True + True + Launch test panel + 0 + + + 2 + 3 + 15 + 17 + GTK_FILL + + + + + True + + + 2 + 3 + 13 + 15 + GTK_FILL + GTK_FILL + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 2 3 GTK_FILL @@ -40533,90 +41256,179 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 4 + 5 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 6 + 7 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 7 + 8 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 9 + 10 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 11 12 GTK_FILL @@ -40624,77 +41436,119 @@ Unused - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 9 - 10 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 5 6 GTK_FILL @@ -40702,87 +41556,107 @@ Unused - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 9 + 10 GTK_FILL - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 10 + 11 GTK_FILL - - True - - - 4 - 5 - 13 - - GTK_FILL - 13 - - - - + True GPIO Input GPIO Output @@ -40793,52 +41667,56 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL @@ -40992,153 +41870,49 @@ StepGen - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL - + True 0 - Num - True - - - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 12 - 13 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 11 - 12 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 10 - 11 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 9 - 10 - GTK_FILL - - - - - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 8 - 9 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 7 - 8 + 3 + 4 + 1 + 2 GTK_FILL - + True GPIO Input GPIO Output @@ -41149,88 +41923,60 @@ StepGen - 7 - 8 - 6 - 7 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 5 - 6 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 4 - 5 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 3 - 4 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 2 3 GTK_FILL @@ -41238,119 +41984,79 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 1 - 2 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 2 - 3 - 12 - 13 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 11 - 12 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 10 - 11 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 8 9 GTK_FILL @@ -41358,160 +42064,272 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 7 - 8 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 6 - 7 + 10 + 11 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 5 - 6 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 4 - 5 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 3 - 4 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 1 + 2 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 2 + 3 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 3 + 4 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 + 1 + 2 4 5 GTK_FILL @@ -41519,58 +42337,163 @@ StepGen - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 2 - 3 + 1 + 2 + 7 + 8 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 1 - 2 + 1 + 2 + 8 + 9 GTK_FILL - + True ESTOP IN Spindle PPR @@ -41608,21 +42531,21 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 + 1 + 2 + 6 + 7 GTK_FILL - + True ESTOP IN Spindle PPR @@ -41660,21 +42583,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -41712,21 +42635,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -41764,81 +42687,124 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 11 + 12 GTK_FILL - + True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 5 - 6 - 4 - 5 + 1 + 2 + 12 + 13 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 3 - 4 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 2 - 3 + 3 + 4 + 3 + 4 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True True True @@ -41846,8 +42812,8 @@ Unused True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -41855,7 +42821,7 @@ Unused - + True True True @@ -41863,8 +42829,8 @@ Unused True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -41872,7 +42838,7 @@ Unused - + True True True @@ -41880,8 +42846,8 @@ Unused True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -41889,7 +42855,7 @@ Unused - + True True True @@ -41897,8 +42863,8 @@ Unused True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -41906,7 +42872,7 @@ Unused - + True True True @@ -41914,8 +42880,8 @@ Unused True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -41923,7 +42889,7 @@ Unused - + True True True @@ -41931,8 +42897,8 @@ Unused True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -41940,7 +42906,7 @@ Unused - + True True True @@ -41948,8 +42914,8 @@ Unused True - 8 - 9 + 3 + 4 11 12 GTK_FILL @@ -41957,75 +42923,39 @@ Unused - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + True + True + 0 + True - 6 - 7 - 5 - 6 + 3 + 4 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 - 6 - 7 + 5 + 6 + 12 + 13 GTK_FILL - + True X Step X Direction @@ -42045,115 +42975,60 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + True + True + 0 + True - 6 - 7 - 8 - 9 + 8 + 9 + 12 + 13 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 - 9 - 10 + 5 + 6 + 11 + 12 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 + 5 + 6 10 11 GTK_FILL @@ -42161,41 +43036,22 @@ Charge Pump - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + True - 6 - 7 - 11 - 12 + 5 + 6 + 9 + 10 GTK_FILL - + True 0 True @@ -42203,14 +43059,14 @@ Charge Pump 5 6 - 5 - 6 + 8 + 9 GTK_FILL - + True 0 True @@ -42218,14 +43074,14 @@ Charge Pump 5 6 - 6 - 7 + 7 + 8 GTK_FILL - + True 0 True @@ -42233,14 +43089,14 @@ Charge Pump 5 6 - 7 - 8 + 6 + 7 GTK_FILL - + True 0 True @@ -42248,36 +43104,74 @@ Charge Pump 5 6 - 8 - 9 + 5 + 6 GTK_FILL - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 9 - 10 + 6 + 7 + 11 + 12 GTK_FILL - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 + 6 + 7 10 11 GTK_FILL @@ -42285,39 +43179,75 @@ Charge Pump - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 11 - 12 + 6 + 7 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 8 - 9 - 12 - 13 + 6 + 7 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -42337,53 +43267,89 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 + 7 + 8 GTK_FILL - + True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 5 - 6 - 12 - 13 + 6 + 7 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 3 - 4 - 12 - 13 + 6 + 7 + 5 + 6 GTK_FILL - + True True True @@ -42391,8 +43357,8 @@ Charge Pump True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -42400,7 +43366,7 @@ Charge Pump - + True True True @@ -42408,8 +43374,8 @@ Charge Pump True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -42417,7 +43383,7 @@ Charge Pump - + True True True @@ -42425,8 +43391,8 @@ Charge Pump True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -42434,7 +43400,7 @@ Charge Pump - + True True True @@ -42442,8 +43408,8 @@ Charge Pump True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -42451,7 +43417,7 @@ Charge Pump - + True True True @@ -42459,8 +43425,8 @@ Charge Pump True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -42468,7 +43434,7 @@ Charge Pump - + True True True @@ -42476,8 +43442,8 @@ Charge Pump True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -42485,7 +43451,7 @@ Charge Pump - + True True True @@ -42493,8 +43459,8 @@ Charge Pump True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -42502,50 +43468,29 @@ Charge Pump - - True - True - True - 0 - True - - - 3 - 4 - 4 - 5 - GTK_FILL - - - - - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 1 + 2 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 + 5 + 6 2 3 GTK_FILL @@ -42553,319 +43498,37 @@ Charge Pump - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 12 - 13 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 11 - 12 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 10 - 11 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 1 - 2 - 9 - 10 - GTK_FILL - - - - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 6 - 7 - GTK_FILL - - - - - - True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 5 + 6 + 3 + 4 + GTK_FILL + + + + + + True + 0 + True - 1 - 2 - 8 - 9 + 5 + 6 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -42903,21 +43566,21 @@ All limits All home Unused - + - 1 - 2 - 7 - 8 + 6 + 7 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -42955,21 +43618,21 @@ All limits All home Unused - + - 1 - 2 - 5 - 6 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -43007,21 +43670,21 @@ All limits All home Unused - + - 1 - 2 - 4 - 5 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -43059,13 +43722,64 @@ All limits All home Unused - + - 1 - 2 + 6 + 7 + 4 + 5 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 1 + 2 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 2 + 3 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 3 4 GTK_FILL @@ -43073,51 +43787,60 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True + + + 8 + 9 + 4 + 5 + GTK_FILL + + + + + + True + function + + + 6 + 7 + GTK_FILL + + + + + + True + function 1 2 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 2 3 GTK_FILL @@ -43125,116 +43848,139 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 - 1 - 2 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - Pin Type + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 7 + 8 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 9 10 GTK_FILL @@ -43242,65 +43988,139 @@ Unused - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 10 + 11 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 2 + 3 + 11 + 12 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 2 + 3 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 3 + 4 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 4 5 GTK_FILL @@ -43308,73 +44128,127 @@ Unused - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 8 + 9 GTK_FILL - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 9 + 10 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 10 + 11 + GTK_FILL + - + True GPIO Input GPIO Output @@ -43385,52 +44259,56 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL @@ -43549,49 +44427,53 @@ StepGen - + True - Pin Type + 0 + Num + True - 2 - 3 + 5 + 6 GTK_FILL - + True 0 - Inv + Num + True - 3 - 4 GTK_FILL - + True - True - True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 - 1 - 2 + 7 + 8 + 12 + 13 GTK_FILL - + True GPIO Input GPIO Output @@ -43602,88 +44484,148 @@ StepGen - 2 - 3 - 1 - 2 + 7 + 8 + 11 + 12 GTK_FILL - + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 4 - 5 - 13 - - GTK_FILL - 13 + 7 + 8 + 10 + 11 + GTK_FILL + - + True - Inv + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 7 + 8 + 9 + 10 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 1 - 2 + 7 + 8 + 8 + 9 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 2 - 3 + 7 + 8 + 7 + 8 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 3 - 4 + 7 + 8 + 6 + 7 GTK_FILL - + True - 0 - - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 7 + 8 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 7 + 8 4 5 GTK_FILL @@ -43691,64 +44633,139 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 5 - 6 + 7 + 8 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 6 - 7 + 7 + 8 + 2 + 3 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 7 - 8 + 7 + 8 + 1 + 2 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 8 - 9 + 2 + 3 + 12 + 13 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 10 + 11 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + 2 + 3 9 10 GTK_FILL @@ -43756,259 +44773,209 @@ StepGen - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 8 + 9 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 7 + 8 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 6 + 7 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + + + + 2 + 3 + 5 + 6 + GTK_FILL + + + + + + True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 10 - 11 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 11 - 12 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - True + GPIO Input +GPIO Output +GPIO O Drain +Encoder +PWM +StepGen + - 12 - 13 + 2 + 3 + 2 + 3 GTK_FILL - + True - 0 - Pin Type - 7 - 8 + 2 + 3 + 13 + 15 GTK_FILL - + GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + Launch test panel + 0 - 1 - 2 - 1 - 2 + 2 + 3 + 15 + 17 GTK_FILL - - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function 1 2 - 2 - 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + function - 1 - 2 - 3 - 4 + 6 + 7 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 + 8 + 9 4 5 GTK_FILL @@ -44016,163 +44983,58 @@ Unused - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 5 - 6 + 8 + 9 + 3 + 4 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 7 - 8 + 8 + 9 + 2 + 3 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + True + True + 0 + True - 1 - 2 - 8 - 9 + 8 + 9 + 1 + 2 GTK_FILL - + True ESTOP IN Spindle PPR @@ -44210,21 +45072,21 @@ All limits All home Unused - + - 1 - 2 - 6 - 7 + 6 + 7 + 4 + 5 GTK_FILL - + True ESTOP IN Spindle PPR @@ -44262,21 +45124,21 @@ All limits All home Unused - + - 1 - 2 - 9 - 10 + 6 + 7 + 3 + 4 GTK_FILL - + True ESTOP IN Spindle PPR @@ -44314,21 +45176,21 @@ All limits All home Unused - + - 1 - 2 - 10 - 11 + 6 + 7 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -44366,124 +45228,81 @@ All limits All home Unused - + - 1 - 2 - 11 - 12 + 6 + 7 + 1 + 2 GTK_FILL - + True - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + True - 1 - 2 - 12 - 13 + 5 + 6 + 4 + 5 GTK_FILL - + True - True - True - 0 - True + 0 + True - 3 - 4 - 2 - 3 + 5 + 6 + 3 + 4 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 3 - 4 + 5 + 6 + 2 + 3 GTK_FILL - + True - True + 0 True - 0 - True - 3 - 4 - 4 - 5 + 5 + 6 + 1 + 2 GTK_FILL - + True True True @@ -44491,8 +45310,8 @@ Unused True - 3 - 4 + 8 + 9 5 6 GTK_FILL @@ -44500,7 +45319,7 @@ Unused - + True True True @@ -44508,8 +45327,8 @@ Unused True - 3 - 4 + 8 + 9 6 7 GTK_FILL @@ -44517,7 +45336,7 @@ Unused - + True True True @@ -44525,8 +45344,8 @@ Unused True - 3 - 4 + 8 + 9 7 8 GTK_FILL @@ -44534,7 +45353,7 @@ Unused - + True True True @@ -44542,8 +45361,8 @@ Unused True - 3 - 4 + 8 + 9 8 9 GTK_FILL @@ -44551,7 +45370,7 @@ Unused - + True True True @@ -44559,8 +45378,8 @@ Unused True - 3 - 4 + 8 + 9 9 10 GTK_FILL @@ -44568,7 +45387,7 @@ Unused - + True True True @@ -44576,8 +45395,8 @@ Unused True - 3 - 4 + 8 + 9 10 11 GTK_FILL @@ -44585,7 +45404,7 @@ Unused - + True True True @@ -44593,8 +45412,8 @@ Unused True - 3 - 4 + 8 + 9 11 12 GTK_FILL @@ -44602,39 +45421,7 @@ Unused - - True - True - True - 0 - True - - - 3 - 4 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 12 - 13 - GTK_FILL - - - - - + True X Step X Direction @@ -44654,135 +45441,13 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 12 - 13 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 12 - 13 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 11 - 12 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 10 - 11 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 9 - 10 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 8 - 9 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 7 - 8 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - - True - 0 - True - - - 5 - 6 5 6 GTK_FILL @@ -44790,7 +45455,7 @@ Charge Pump - + True X Step X Direction @@ -44810,21 +45475,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 11 - 12 + 6 + 7 GTK_FILL - + True X Step X Direction @@ -44844,21 +45509,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 10 - 11 + 7 + 8 GTK_FILL - + True X Step X Direction @@ -44878,21 +45543,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 9 - 10 + 8 + 9 GTK_FILL - + True X Step X Direction @@ -44912,21 +45577,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 8 - 9 + 9 + 10 GTK_FILL - + True X Step X Direction @@ -44946,21 +45611,21 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 7 - 8 + 10 + 11 GTK_FILL - + True X Step X Direction @@ -44980,13 +45645,43 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 + 11 + 12 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 6 7 GTK_FILL @@ -44994,7 +45689,99 @@ Charge Pump - + + True + 0 + True + + + 5 + 6 + 7 + 8 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 8 + 9 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 9 + 10 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 10 + 11 + GTK_FILL + + + + + + True + 0 + True + + + 5 + 6 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 8 + 9 + 12 + 13 + GTK_FILL + + + + + True X Step X Direction @@ -45014,21 +45801,36 @@ ESTOP Request Amplifier Enable Charge Pump - + 6 7 - 5 - 6 + 12 + 13 GTK_FILL - + + True + 0 + True + + + 5 + 6 + 12 + 13 + GTK_FILL + + + + + True True True @@ -45036,8 +45838,25 @@ Charge Pump True - 8 - 9 + 3 + 4 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 3 + 4 11 12 GTK_FILL @@ -45045,7 +45864,7 @@ Charge Pump - + True True True @@ -45053,8 +45872,8 @@ Charge Pump True - 8 - 9 + 3 + 4 10 11 GTK_FILL @@ -45062,7 +45881,7 @@ Charge Pump - + True True True @@ -45070,8 +45889,8 @@ Charge Pump True - 8 - 9 + 3 + 4 9 10 GTK_FILL @@ -45079,7 +45898,7 @@ Charge Pump - + True True True @@ -45087,8 +45906,8 @@ Charge Pump True - 8 - 9 + 3 + 4 8 9 GTK_FILL @@ -45096,7 +45915,7 @@ Charge Pump - + True True True @@ -45104,8 +45923,8 @@ Charge Pump True - 8 - 9 + 3 + 4 7 8 GTK_FILL @@ -45113,7 +45932,7 @@ Charge Pump - + True True True @@ -45121,8 +45940,8 @@ Charge Pump True - 8 - 9 + 3 + 4 6 7 GTK_FILL @@ -45130,7 +45949,7 @@ Charge Pump - + True True True @@ -45138,8 +45957,8 @@ Charge Pump True - 8 - 9 + 3 + 4 5 6 GTK_FILL @@ -45147,44 +45966,33 @@ Charge Pump - - True - 0 - True - - - 5 - 6 - 1 - 2 - GTK_FILL - - - - - + True - 0 + True True - - - 5 - 6 - 2 - 3 + 0 + True + + + 3 + 4 + 4 + 5 GTK_FILL - + True - 0 + True True + 0 + True - 5 - 6 + 3 + 4 3 4 GTK_FILL @@ -45192,22 +46000,24 @@ Charge Pump - + True - 0 + True True + 0 + True - 5 - 6 - 4 - 5 + 3 + 4 + 2 + 3 GTK_FILL - + True ESTOP IN Spindle PPR @@ -45245,21 +46055,21 @@ All limits All home Unused - + - 6 - 7 - 1 - 2 + 1 + 2 + 12 + 13 GTK_FILL - + True ESTOP IN Spindle PPR @@ -45297,21 +46107,21 @@ All limits All home Unused - + - 6 - 7 - 2 - 3 + 1 + 2 + 11 + 12 GTK_FILL - + True ESTOP IN Spindle PPR @@ -45349,21 +46159,21 @@ All limits All home Unused - + - 6 - 7 - 3 - 4 + 1 + 2 + 10 + 11 GTK_FILL - + True ESTOP IN Spindle PPR @@ -45401,174 +46211,325 @@ All limits All home Unused - + - 6 - 7 - 4 - 5 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 1 - 2 - GTK_FILL - - - - - - True - True - True - 0 - True - - - 8 - 9 - 2 - 3 + 1 + 2 + 9 + 10 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 3 - 4 + 1 + 2 + 6 + 7 GTK_FILL - + True - True - True - 0 - True + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 8 - 9 - 4 - 5 + 1 + 2 + 8 + 9 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 1 + 2 + 7 + 8 GTK_FILL - + True - function + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + 1 2 + 5 + 6 GTK_FILL - - True - True - True - Launch test panel - 0 - - - 2 - 3 - 15 - 17 - GTK_FILL - - - - - True - - - 2 - 3 - 13 - 15 - GTK_FILL - GTK_FILL - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 2 - 3 + 1 + 2 + 4 + 5 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 + 1 + 2 3 4 GTK_FILL @@ -45576,139 +46537,155 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 5 - 6 + 1 + 2 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 2 - 3 - 6 - 7 + 1 + 2 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + Pin Type - 2 - 3 - 7 - 8 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 8 - 9 + 12 + 13 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 9 - 10 + 11 + 12 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 10 11 GTK_FILL @@ -45716,119 +46693,78 @@ StepGen - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 11 - 12 + 9 + 10 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 2 - 3 - 12 - 13 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 1 - 2 + 7 + 8 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 2 - 3 + 6 + 7 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 3 - 4 + 5 + 6 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 4 5 GTK_FILL @@ -45836,127 +46772,73 @@ StepGen - - True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - - - 7 - 8 - 5 - 6 - GTK_FILL - - - - - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 6 - 7 + 3 + 4 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + True - 7 - 8 - 7 - 8 + 2 + 3 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + 0 + + True - 7 - 8 - 8 - 9 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + Inv - 7 - 8 - 9 - 10 + 8 + 9 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - - 7 - 8 - 10 - 11 - GTK_FILL - + 4 + 5 + 13 + + GTK_FILL + 13 - + True GPIO Input GPIO Output @@ -45967,56 +46849,52 @@ StepGen - 7 - 8 - 11 - 12 + 2 + 3 + 1 + 2 GTK_FILL - + True - GPIO Input -GPIO Output -GPIO O Drain -Encoder -PWM -StepGen - + True + True + 0 + True - 7 - 8 - 12 - 13 + 3 + 4 + 1 + 2 GTK_FILL - + True 0 - Num - True + Inv + 3 + 4 GTK_FILL - + True - 0 - Num - True + Pin Type - 5 - 6 + 2 + 3 GTK_FILL @@ -46148,25 +47026,51 @@ StepGen - + True - 0 - Outputs (PC to Machine): + True + True + Launch Test Panel + 0 + + 1 2 + 14 + 15 GTK_FILL - + GTK_FILL - + True - 0 - Pin _1: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + 1 + 2 1 2 GTK_FILL @@ -46174,83 +47078,105 @@ StepGen - - True - 0 - Pin _2: - True - - - 2 - 3 - GTK_FILL - - - - - - True - 0 - Pin _3: - True - - - 3 - 4 - GTK_FILL - - - - - - True - 0 - Pin _4: - True - - - 4 - 5 - GTK_FILL - - - - - - True - 0 - Pin _5: - True - - - 5 - 6 - GTK_FILL - - - - - + True - 0 - Pin _6: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 6 - 7 + 5 + 6 + 8 + 9 GTK_FILL - + True - 0 - Pin _7: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + + 5 + 6 7 8 GTK_FILL @@ -46258,103 +47184,264 @@ StepGen - - True - 0 - Pin _8: - True - - - 8 - 9 - GTK_FILL - - - - - + True - 0 - Pin _9: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 9 - 10 + 5 + 6 + 6 + 7 GTK_FILL - + True - 0 - _Pin 14: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 10 - 11 + 5 + 6 + 5 + 6 GTK_FILL - + True - 0 - P_in 16: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 11 - 12 + 5 + 6 + 4 + 5 GTK_FILL - + True - 0 - Pi_n 17: - True + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused + + + + - 12 - 13 + 5 + 6 + 3 + 4 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused - + - 1 - 2 + 5 + 6 2 3 GTK_FILL @@ -46362,135 +47449,106 @@ Charge Pump - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump + False + ESTOP IN +Spindle PPR +Spindle A +Spindle B +Home X +Home Y +Home Z +Home A +Minimum Limit + Home X +Minimum Limit + Home Y +Minimum Limit + Home Z +Minimum Limit + Home A +Maximum Limit + Home X +Maximum Limit + Home Y +Maximum Limit + Home Z +Maximum Limit + Home A +Both Limit + Home X +Both Limit + Home Y +Both Limit + Home Z +Both Limit + Home A +Minimum Limit X +Minimum Limit Y +Minimum Limit Z +Minimum Limit A +Maximum Limit X +Maximum Limit Y +Maximum Limit Z +Maximum Limit A +Both Limit X +Both Limit Y +Both Limit Z +Both Limit A +All limits +All home +Unused - + - 1 - 2 - 3 - 4 + 5 + 6 + 1 + 2 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 4 - 5 + 6 + 7 + 8 + 9 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 5 - 6 + 6 + 7 + 7 + 8 GTK_FILL - - True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + + True + False + True + True + 0 + True - 1 - 2 + 6 + 7 6 7 GTK_FILL @@ -46498,289 +47556,208 @@ Charge Pump - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 7 - 8 + 6 + 7 + 5 + 6 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 8 - 9 + 6 + 7 + 4 + 5 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 9 - 10 + 6 + 7 + 3 + 4 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 10 - 11 + 6 + 7 + 2 + 3 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + True + True + 0 + True - 1 - 2 - 11 - 12 + 6 + 7 + 1 + 2 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + False + 0 + Pin _9: + True - 1 - 2 - 12 - 13 + 4 + 5 + 8 + 9 GTK_FILL - + True + False 0 - Inputs (Machine to PC): + Pin _8: + True 4 - 6 + 5 + 7 + 8 GTK_FILL - + True + False 0 - + Pin _7: + True - 3 - 4 + 4 + 5 + 6 + 7 GTK_FILL - + True + False 0 - Invert + Pin _6: + True - 2 - 3 + 4 + 5 + 5 + 6 GTK_FILL - + True + False 0 - Invert + Pin _5: + True - 6 - 7 + 4 + 5 + 4 + 5 GTK_FILL - + True - True + False + 0 + Pin _4: True - 0 - True - 2 - 3 - 1 - 2 + 4 + 5 + 3 + 4 GTK_FILL - + True - True + False + 0 + Pin _3: True - 0 - True - 2 - 3 + 4 + 5 2 3 GTK_FILL @@ -46788,109 +47765,104 @@ Charge Pump - + True - True + False + 0 + Pin _2: True - 0 - True - 2 - 3 - 3 - 4 + 4 + 5 + 1 + 2 GTK_FILL - + True - True + 0 + Pin 1_0: True - 0 - True - 2 - 3 - 4 - 5 + 4 + 5 + 9 + 10 GTK_FILL - + True - True + 0 + Pin 1_1: True - 0 - True - 2 - 3 - 5 - 6 + 4 + 5 + 10 + 11 GTK_FILL - + True - True + 0 + Pin 1_2: True - 0 - True - 2 - 3 - 6 - 7 + 4 + 5 + 11 + 12 GTK_FILL - + True - True + 0 + Pin 1_3: True - 0 - True - 2 - 3 - 7 - 8 + 4 + 5 + 12 + 13 GTK_FILL - + True - True + 0 + Pin 1_5: True - 0 - True - 2 - 3 - 8 - 9 + 4 + 5 + 13 + 14 GTK_FILL - + True True True @@ -46898,8 +47870,8 @@ Charge Pump True - 2 - 3 + 6 + 7 9 10 GTK_FILL @@ -46907,7 +47879,7 @@ Charge Pump - + True True True @@ -46915,8 +47887,8 @@ Charge Pump True - 2 - 3 + 6 + 7 10 11 GTK_FILL @@ -46924,7 +47896,7 @@ Charge Pump - + True True True @@ -46932,8 +47904,8 @@ Charge Pump True - 2 - 3 + 6 + 7 11 12 GTK_FILL @@ -46941,7 +47913,7 @@ Charge Pump - + True True True @@ -46949,8 +47921,8 @@ Charge Pump True - 2 - 3 + 6 + 7 12 13 GTK_FILL @@ -46958,7 +47930,24 @@ Charge Pump - + + True + True + True + 0 + True + + + 6 + 7 + 13 + 14 + GTK_FILL + + + + + True ESTOP IN Spindle PPR @@ -46995,23 +47984,23 @@ Both Limit A All limits All home Unused - + - + 5 6 - 13 - 14 + 9 + 10 GTK_FILL - + True ESTOP IN Spindle PPR @@ -47048,17 +48037,17 @@ Both Limit A All limits All home Unused - + - + 5 6 - 12 - 13 + 10 + 11 GTK_FILL @@ -47117,7 +48106,7 @@ Unused - + True ESTOP IN Spindle PPR @@ -47154,23 +48143,23 @@ Both Limit A All limits All home Unused - + - + 5 6 - 10 - 11 + 12 + 13 GTK_FILL - + True ESTOP IN Spindle PPR @@ -47207,23 +48196,74 @@ Both Limit A All limits All home Unused - + - + - 5 - 6 - 9 - 10 + 5 + 6 + 13 + 14 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 2 + 3 + 12 + 13 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 2 + 3 + 11 + 12 + GTK_FILL + + + + + + True + True + True + 0 + True + + + 2 + 3 + 10 + 11 GTK_FILL - + True True True @@ -47231,16 +48271,16 @@ Unused True - 6 - 7 - 13 - 14 + 2 + 3 + 9 + 10 GTK_FILL - + True True True @@ -47248,16 +48288,16 @@ Unused True - 6 - 7 - 12 - 13 + 2 + 3 + 8 + 9 GTK_FILL - + True True True @@ -47265,16 +48305,16 @@ Unused True - 6 - 7 - 11 - 12 + 2 + 3 + 7 + 8 GTK_FILL - + True True True @@ -47282,16 +48322,16 @@ Unused True - 6 - 7 - 10 - 11 + 2 + 3 + 6 + 7 GTK_FILL - + True True True @@ -47299,224 +48339,298 @@ Unused True - 6 - 7 - 9 - 10 + 2 + 3 + 5 + 6 GTK_FILL - + True - 0 - Pin 1_5: + True True + 0 + True - 4 - 5 - 13 - 14 + 2 + 3 + 4 + 5 GTK_FILL - + True - 0 - Pin 1_3: + True True + 0 + True - 4 - 5 - 12 - 13 + 2 + 3 + 3 + 4 GTK_FILL - + True - 0 - Pin 1_2: + True True + 0 + True - 4 - 5 - 11 - 12 + 2 + 3 + 2 + 3 GTK_FILL - + True - 0 - Pin 1_1: + True True + 0 + True - 4 - 5 - 10 - 11 + 2 + 3 + 1 + 2 GTK_FILL - + True 0 - Pin 1_0: - True + Invert - 4 - 5 - 9 - 10 + 6 + 7 GTK_FILL - + True - False 0 - Pin _2: - True + Invert - 4 - 5 - 1 - 2 + 2 + 3 GTK_FILL - + True - False 0 - Pin _3: - True + - 4 - 5 - 2 - 3 + 3 + 4 GTK_FILL - + True - False 0 - Pin _4: - True + Inputs (Machine to PC): 4 - 5 - 3 - 4 + 6 GTK_FILL - + True - False - 0 - Pin _5: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 4 - 5 - 4 - 5 + 1 + 2 + 12 + 13 GTK_FILL - + True - False - 0 - Pin _6: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 4 - 5 - 5 - 6 + 1 + 2 + 11 + 12 GTK_FILL - + True - False - 0 - Pin _7: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 4 - 5 - 6 - 7 + 1 + 2 + 10 + 11 GTK_FILL - + True - False - 0 - Pin _8: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 4 - 5 - 7 - 8 + 1 + 2 + 9 + 10 GTK_FILL - + True - False - 0 - Pin _9: - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 4 - 5 + 1 + 2 8 9 GTK_FILL @@ -47524,71 +48638,135 @@ Unused - + True - False - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 6 - 7 - 1 - 2 + 1 + 2 + 7 + 8 GTK_FILL - + True - False - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 6 - 7 - 2 - 3 + 1 + 2 + 6 + 7 GTK_FILL - + True - False - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 6 - 7 - 3 - 4 + 1 + 2 + 5 + 6 GTK_FILL - + True - False - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 6 - 7 + 1 + 2 4 5 GTK_FILL @@ -47596,336 +48774,179 @@ Unused - + + True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + True - False - True - True - 0 - True + X Step +X Direction +Y Step +Y Direction +Z Step +Z Direction +A Step +A Direction +Spindle ON +Spindle CW +Spindle CCW +Spindle PWM +Coolant Mist +Coolant Flood +ESTOP Request +Amplifier Enable +Charge Pump + + + + - 6 - 7 - 5 - 6 + 1 + 2 + 2 + 3 GTK_FILL - + True - False - True + 0 + Pi_n 17: True - 0 - True - 6 - 7 - 6 - 7 + 12 + 13 GTK_FILL - + True - False - True + 0 + P_in 16: True - 0 - True - 6 - 7 - 7 - 8 + 11 + 12 GTK_FILL - + True - False - True + 0 + _Pin 14: True - 0 - True - 6 - 7 - 8 - 9 + 10 + 11 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _9: + True - 5 - 6 - 1 - 2 + 9 + 10 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _8: + True - 5 - 6 - 2 - 3 + 8 + 9 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _7: + True - 5 - 6 - 3 - 4 + 7 + 8 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _6: + True - 5 - 6 - 4 - 5 + 6 + 7 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _5: + True - 5 - 6 5 6 GTK_FILL @@ -47933,192 +48954,55 @@ Unused - - True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - - - - 5 - 6 - 6 - 7 - GTK_FILL - - - - - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _4: + True - 5 - 6 - 7 - 8 + 4 + 5 GTK_FILL - + True - False - ESTOP IN -Spindle PPR -Spindle A -Spindle B -Home X -Home Y -Home Z -Home A -Minimum Limit + Home X -Minimum Limit + Home Y -Minimum Limit + Home Z -Minimum Limit + Home A -Maximum Limit + Home X -Maximum Limit + Home Y -Maximum Limit + Home Z -Maximum Limit + Home A -Both Limit + Home X -Both Limit + Home Y -Both Limit + Home Z -Both Limit + Home A -Minimum Limit X -Minimum Limit Y -Minimum Limit Z -Minimum Limit A -Maximum Limit X -Maximum Limit Y -Maximum Limit Z -Maximum Limit A -Both Limit X -Both Limit Y -Both Limit Z -Both Limit A -All limits -All home -Unused - - - - + 0 + Pin _3: + True - 5 - 6 - 8 - 9 + 3 + 4 GTK_FILL - + True - X Step -X Direction -Y Step -Y Direction -Z Step -Z Direction -A Step -A Direction -Spindle ON -Spindle CW -Spindle CCW -Spindle PWM -Coolant Mist -Coolant Flood -ESTOP Request -Amplifier Enable -Charge Pump - - - - + 0 + Pin _2: + True + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + Pin _1: + True - 1 - 2 1 2 GTK_FILL @@ -48126,21 +49010,15 @@ Charge Pump - + True - True - True - Launch Test Panel - 0 - + 0 + Outputs (PC to Machine): - 1 2 - 14 - 15 GTK_FILL - GTK_FILL + @@ -48204,49 +49082,68 @@ Charge Pump - - 100 + True - 0.25 - 1 - label + 0 + 3pwm Deadtime: + + + 3 + 4 + 1 + 2 + + + + + True + True + 500 50 1000 10 0 0 4 5 - 5 - 6 + 1 + 2 - + + True + True + 1 0.01 100 1 0 0 + 2 + + + 4 + 5 + + + + + + True 0 - Quad Pulses / Rev: + 3pwm Scale: 3 4 - 5 - 6 - GTK_FILL - - 4 - + True True - 0.5 - 0 0 10000 0.00050000000000000001 10 0 - 4 + 0 0 100 0.01 10 0 + 2 - 1 - 2 + 4 + 5 2 3 @@ -48254,102 +49151,140 @@ Charge Pump - + True True - 0.5 - 0 0 10000 0.00050000000000000001 10 0 - 4 + 0 0 100 0.01 10 0 + 2 - 1 - 2 - 1 - 2 + 4 + 5 + 3 + 4 - + True True - 0.5 - 1 0 10000 1 10 0 + 0 -10 10 0.01 0.10000000000000001 0 4 - 1 - 2 + 4 + 5 + 4 + 5 - + + 120 + 80 True - 0 - D + True + True + 0 + + + + True + + + True + gtk-execute + + + + + True + Open +Loop +Servo +Test + + + 1 + + + + - 2 - 3 - GTK_FILL + 4 + 5 + 6 + 9 + - + True 0 - I + 4 + Dac Output Offset: - 1 - 2 + 3 + 4 + 4 + 5 GTK_FILL - + True 0 - P + 4 + Dac Max Output: + 3 + 4 + 3 + 4 GTK_FILL - + True 0 - Bias + 4 + Dac Output Scale: - 6 - 7 + 3 + 4 + 2 + 3 GTK_FILL - + True - 0 - Deadband - 7 + 2 + 3 8 - GTK_FILL - + - + True True 0.5 @@ -48359,105 +49294,105 @@ Charge Pump 1 2 - 6 - 7 + 5 + 6 - + True True 0.5 0 0 10000 0.0001 10 0 4 + GTK_UPDATE_IF_VALID 1 2 - 7 - 8 + 4 + 5 - + True - 0 - FF0 + True + 0.5 + 0 0 10000 0.0001 10 0 + 4 + 1 + 2 3 4 - GTK_FILL + - + True 0 - FF1 + FF2 - 4 - 5 + 5 + 6 GTK_FILL - + True 0 - FF2 + FF1 - 5 - 6 + 4 + 5 GTK_FILL - + True - True - 0.5 - 0 0 10000 0.0001 10 0 - 4 + 0 + FF0 - 1 - 2 3 4 - + GTK_FILL - + True True 0.5 0 0 10000 0.0001 10 0 4 - GTK_UPDATE_IF_VALID 1 2 - 4 - 5 + 7 + 8 - + True True 0.5 @@ -48467,155 +49402,118 @@ Charge Pump 1 2 - 5 - 6 + 6 + 7 - + True + 0 + Deadband - 2 - 3 + 7 8 - + GTK_FILL + - + True 0 - 4 - Dac Output Scale: + Bias - 3 - 4 - 2 - 3 + 6 + 7 GTK_FILL - + True 0 - 4 - Dac Max Output: + P - 3 - 4 - 3 - 4 GTK_FILL - + True 0 - 4 - Dac Output Offset: + I - 3 - 4 - 4 - 5 + 1 + 2 GTK_FILL - - 120 - 80 + True - True - True - 0 - - - - True - - - True - gtk-execute - - - - - True - Open -Loop -Servo -Test - - - 1 - - - - + 0 + D - 4 - 5 - 6 - 9 - + 2 + 3 + GTK_FILL - + True True - 0 -10 10 0.01 0.10000000000000001 0 + 0.5 + 1 0 10000 1 10 0 4 - 4 - 5 - 4 - 5 + 1 + 2 - + True True - 0 0 100 0.01 10 0 - 2 + 0.5 + 0 0 10000 0.00050000000000000001 10 0 + 4 - 4 - 5 - 3 - 4 + 1 + 2 + 1 + 2 - + True True - 0 0 100 0.01 10 0 - 2 + 0.5 + 0 0 10000 0.00050000000000000001 10 0 + 4 - 4 - 5 + 1 + 2 2 3 @@ -48623,58 +49521,38 @@ Test - + True 0 - 3pwm Scale: + Quad Pulses / Rev: 3 4 - - - - - True - True - 1 0.01 100 1 0 0 - 2 - - - 4 - 5 - + 5 + 6 + GTK_FILL + 4 - + + 100 True - True - 500 50 1000 10 0 0 + 0.25 + 1 + label 4 5 - 1 - 2 + 5 + 6 - - - True - 0 - 3pwm Deadtime: - - - 3 - 4 - 1 - 2 - - @@ -48729,37 +49607,33 @@ Test - - 120 + True - - + 0 + Step On-Time - 1 - 2 - 5 - 6 + 1 + 2 GTK_FILL - + True 0 - Driver Type: - True + Step Space - 5 - 6 + 2 + 3 GTK_FILL - + True True 1000 0 500000 500 10 0 @@ -48767,14 +49641,14 @@ Test 1 2 - 4 - 5 + 1 + 2 - + True True 1000 0 500000 500 10 0 @@ -48782,40 +49656,40 @@ Test 1 2 - 3 - 4 + 2 + 3 - + True 0 - Direction Setup + Direction Hold - 4 - 5 + 3 + 4 GTK_FILL - + True 0 - Direction Hold + Direction Setup - 3 - 4 + 4 + 5 GTK_FILL - + True True 1000 0 500000 500 10 0 @@ -48823,14 +49697,14 @@ Test 1 2 - 2 - 3 + 3 + 4 - + True True 1000 0 500000 500 10 0 @@ -48838,34 +49712,38 @@ Test 1 2 - 1 - 2 + 4 + 5 - + True 0 - Step Space + Driver Type: + True - 2 - 3 + 5 + 6 GTK_FILL - + + 120 True - 0 - Step On-Time + + - 1 - 2 + 1 + 2 + 5 + 6 GTK_FILL @@ -49182,93 +50060,103 @@ Test 9 2 - - True - Scale - - - - + True - Poles + True + 90 0 360 1 10 0 - 1 - 2 + 1 + 2 + 7 + 8 - + True - Encoder-offset + True + 0.20000000000000001 0 100 0.01 10 0 + 2 - 2 - 3 + 1 + 2 + 6 + 7 - + True - Drive-offset + alignment current - 3 - 4 + 6 + 7 - + True - output-pattern + lead angle - 4 - 5 + 7 + 8 - + True - Input-pattern + True + 0 + True - 5 - 6 + 1 + 2 + 8 + 9 - + True - Reverse + True + 0 0 100 1 10 0 - 8 - 9 + 1 + 2 + 5 + 6 - + True True - 100 1 10000 1 10 0 + 0 0 100 1 10 0 1 2 + 4 + 5 - + True True - 4 2 8 2 10 0 + 0 0 100 1 10 0 1 2 - 1 - 2 + 3 + 4 @@ -49285,105 +50173,95 @@ Test - + True True - 0 0 100 1 10 0 + 4 2 8 2 10 0 1 2 - 3 - 4 + 1 + 2 - + True True - 0 0 100 1 10 0 + 100 1 10000 1 10 0 1 2 - 4 - 5 - + True - True - 0 0 100 1 10 0 + Reverse - 1 - 2 - 5 - 6 + 8 + 9 - + True - True - 0 - True + Input-pattern - 1 - 2 - 8 - 9 + 5 + 6 - + True - lead angle + output-pattern - 7 - 8 + 4 + 5 - + True - alignment current + Drive-offset - 6 - 7 + 3 + 4 - + True - True - 0.20000000000000001 0 100 0.01 10 0 - 2 + Encoder-offset - 1 - 2 - 6 - 7 + 2 + 3 - + True - True - 90 0 360 1 10 0 + Poles - 1 - 2 - 7 - 8 + 1 + 2 + + + True + Scale + + @@ -49606,114 +50484,114 @@ Test - + + 50 True - True - 0 0 10 0.0001 10 0 - 4 + 0 + mm - 1 - 2 - 1 - 2 + 2 + 3 + GTK_FILL + - + True - True - 0 0 10 0.001 10 0 - 4 + 0 + Rapid Speed Following Error: - 1 - 2 + GTK_FILL + + 5 - + True 0 - mm + Feed Speed Following Error: - 2 - 3 1 2 GTK_FILL + 5 - + True True - Invert Encoder Direction + Invert Motor Direction 0 True - 3 - 4 + 2 + 3 GTK_FILL - + True True - Invert Motor Direction + Invert Encoder Direction 0 True - 2 - 3 + 3 + 4 GTK_FILL - + True 0 - Feed Speed Following Error: + mm + 2 + 3 1 2 GTK_FILL - 5 - + True - 0 - Rapid Speed Following Error: + True + 0 0 10 0.001 10 0 + 4 - GTK_FILL - - 5 + 1 + 2 - - 50 + True - 0 - mm + True + 0 0 10 0.0001 10 0 + 4 - 2 - 3 - GTK_FILL - + 1 + 2 + 1 + 2 @@ -49721,97 +50599,72 @@ Test False - False - - - - - True - 4 - 3 - - - True - True - True - Calculate -Scale - 0 - - - - 2 - 3 - 2 - - - - - True - True - 0 0 5000000 100 10 0 - 3 - - - 1 - 2 - 1 - 2 - - + False + + + + + True + 4 + 3 - + True 0 - Stepper Scale: + Maximum _Velocity: True xmaxvel - 1 - 2 + 2 + 3 GTK_FILL - + True - True - 0 0 5000000 100 10 0 - 3 + 0 + Maximum _Acceleration: + True + xmaxacc - 1 - 2 + 3 + 4 + GTK_FILL + - + True 0 - encoder Scale: - True - xmaxvel + mm / s + 2 + 3 + 2 + 3 GTK_FILL - + True - True - 1 1 10000 0.5 10 0 - 1 - + 0 + mm / s² - 1 - 2 + 2 + 3 3 4 + GTK_FILL + @@ -49829,65 +50682,90 @@ Scale - + True - 0 - mm / s² + True + 1 1 10000 0.5 10 0 + 1 + - 2 - 3 + 1 + 2 3 4 - GTK_FILL - - + True 0 - mm / s + encoder Scale: + True + xmaxvel - 2 - 3 - 2 - 3 GTK_FILL - + True - 0 - Maximum _Acceleration: - True - xmaxacc + True + 0 0 5000000 100 10 0 + 3 - 3 - 4 - GTK_FILL - + 1 + 2 - + True 0 - Maximum _Velocity: + Stepper Scale: True xmaxvel - 2 - 3 + 1 + 2 GTK_FILL + + + True + True + 0 0 5000000 100 10 0 + 3 + + + 1 + 2 + 1 + 2 + + + + + True + True + True + Calculate +Scale + 0 + + + + 2 + 3 + 2 + + False @@ -50196,216 +51074,210 @@ Scale - + True - True + NO +YES - 3 - 4 - 9 - 10 + 1 + 2 + 15 + 16 + GTK_FILL - + True - True + 0 + Use Encoder Index For Home: - 3 - 4 - 8 - 9 + 15 + 16 + GTK_FILL - + True - True + 0 + mm / minute - 3 - 4 - 7 - 8 + 2 + 3 + 14 + 15 + - + True True - 3 - 4 - 6 - 7 + 1 + 2 + 14 + 15 - + True 0 - Positive Travel Distance (Machine zero Origin to end of + travel): - True - xminlim + Home Final Velocity: - 3 - 6 - 7 - GTK_FILL - + 14 + 15 - + True - 0 - Home Search Velocity: - True - xhomesearchvel + Same +Opposite - 10 - 11 + 1 + 2 + 13 + 14 GTK_FILL - + True 0 - Home Switch location (Offset from machine zero Origin): + Home Latch Direction: True - xhomesw - 3 - 9 - 10 + 13 + 14 GTK_FILL - + True - True + Towards Negative limit +Towards Positive limit 1 2 - 10 - 11 + 11 + 12 + GTK_FILL - + True 0 - mm / minute + Home Search Direction: + True - 2 - 3 - 10 - 11 - + 11 + 12 + GTK_FILL - + True 0 - Negative Travel Distance (Machine zero Origin to end of - travel): - True - xminlim + mm / minute + 2 3 - 7 - 8 - GTK_FILL + 12 + 13 + - + True - 0 - Home Position location (offset from machine zero Origin): - True - xhomepos + True - 3 - 8 - 9 - GTK_FILL + 1 + 2 + 12 + 13 - - 17 + True + 0 + Home latch Velocity: - 4 - 19 - 20 - GTK_FILL - GTK_FILL + 12 + 13 - + True + False True - Use Backlash Compensation: - 0 - True - - 18 - 19 + 3 + 4 + 17 + 18 + + GTK_FILL - + True - True - Use Compensation File: - 0 - True - + filename: + 2 + 3 17 18 - - 17 + True + False + Type 1 +Type 2 - 4 - 16 - 17 + 1 + 2 + 17 + 18 GTK_FILL - GTK_FILL + @@ -50425,209 +51297,215 @@ Scale - + + 17 True - False - Type 1 -Type 2 - 1 - 2 - 17 - 18 + 4 + 16 + 17 GTK_FILL - + GTK_FILL - + True - filename: + True + Use Compensation File: + 0 + True + - 2 - 3 17 18 - + True - False True + Use Backlash Compensation: + 0 + True + - 3 - 4 - 17 - 18 - - GTK_FILL + 18 + 19 - + + 17 True - 0 - Home latch Velocity: - 12 - 13 + 4 + 19 + 20 + GTK_FILL + GTK_FILL - + True - True + 0 + Home Position location (offset from machine zero Origin): + True + xhomepos - 1 - 2 - 12 - 13 + 3 + 8 + 9 + GTK_FILL - + True 0 - mm / minute + Negative Travel Distance (Machine zero Origin to end of - travel): + True + xminlim - 2 3 - 12 - 13 - + 7 + 8 + GTK_FILL - + True 0 - Home Search Direction: - True + mm / minute - 11 - 12 - GTK_FILL + 2 + 3 + 10 + 11 + - + True - Towards Negative limit -Towards Positive limit + True 1 2 - 11 - 12 - GTK_FILL + 10 + 11 - + True 0 - Home Latch Direction: + Home Switch location (Offset from machine zero Origin): True + xhomesw - 13 - 14 + 3 + 9 + 10 GTK_FILL - + True - Same -Opposite + 0 + Home Search Velocity: + True + xhomesearchvel - 1 - 2 - 13 - 14 + 10 + 11 GTK_FILL - + True 0 - Home Final Velocity: + Positive Travel Distance (Machine zero Origin to end of + travel): + True + xminlim - 14 - 15 + 3 + 6 + 7 + GTK_FILL + - + True True - 1 - 2 - 14 - 15 + 3 + 4 + 6 + 7 - + True - 0 - mm / minute + True - 2 - 3 - 14 - 15 - + 3 + 4 + 7 + 8 - + True - 0 - Use Encoder Index For Home: + True - 15 - 16 - GTK_FILL + 3 + 4 + 8 + 9 - + True - NO -YES + True - 1 - 2 - 15 - 16 - GTK_FILL + 3 + 4 + 9 + 10 @@ -50726,340 +51604,340 @@ YES - + True - Cmd 1 + Cmd 15 + + 6 + 7 + 4 + 5 + - + True - Cmd 2 + Cmd 14 - 1 - 2 + 6 + 7 + 3 + 4 - + True - Cmd 3 + Cmd 13 + 6 + 7 2 3 - + True - Cmd 4 + Cmd 12 - 3 - 4 + 6 + 7 + 1 + 2 - + True - Cmd 5 + Cmd 11 - 4 - 5 + 6 + 7 - + True True - 1 - 2 + 7 + 8 + 4 + 5 - + True True - 1 - 2 - 1 - 2 + 7 + 8 + 3 + 4 - + True True - 1 - 2 + 7 + 8 2 3 - + True True - 1 - 2 - 3 - 4 + 7 + 8 + 1 + 2 - + True True - 1 - 2 - 4 - 5 + 7 + 8 - + True - True + Cmd 10 - 4 - 5 + 3 + 4 + 4 + 5 - + True - True + Cmd 9 - 4 - 5 - 1 - 2 + 3 + 4 + 3 + 4 - + True - True + Cmd 8 - 4 - 5 + 3 + 4 2 3 - + True - True + Cmd 7 - 4 - 5 - 3 - 4 + 3 + 4 + 1 + 2 - + True - True + Cmd 6 - 4 - 5 - 4 - 5 + 3 + 4 - + True - Cmd 6 + True - 3 - 4 + 4 + 5 + 4 + 5 - + True - Cmd 7 + True - 3 - 4 - 1 - 2 + 4 + 5 + 3 + 4 - + True - Cmd 8 + True - 3 - 4 + 4 + 5 2 3 - + True - Cmd 9 + True - 3 - 4 - 3 - 4 + 4 + 5 + 1 + 2 - + True - Cmd 10 + True - 3 - 4 - 4 - 5 + 4 + 5 - + True True - 7 - 8 + 1 + 2 + 4 + 5 - + True True - 7 - 8 - 1 - 2 + 1 + 2 + 3 + 4 - + True True - 7 - 8 + 1 + 2 2 3 - + True True - 7 - 8 - 3 - 4 + 1 + 2 + 1 + 2 - + True True - 7 - 8 - 4 - 5 + 1 + 2 - + True - Cmd 11 + Cmd 5 - 6 - 7 + 4 + 5 - + True - Cmd 12 + Cmd 4 - 6 - 7 - 1 - 2 + 3 + 4 - + True - Cmd 13 + Cmd 3 - 6 - 7 2 3 - + True - Cmd 14 + Cmd 2 - 6 - 7 - 3 - 4 + 1 + 2 - + True - Cmd 15 + Cmd 1 - - 6 - 7 - 4 - 5 - @@ -51652,34 +52530,16 @@ program - - True - True - 0 0 100 1 10 0 - - - 1 - 2 - 11 - 12 - - GTK_EXPAND - - - - + True - 0 - mux16 - PANGO_ELLIPSIZE_END + Add HAL components with this page. - 11 - 12 + 3 - + True True 0 0 100 1 10 0 @@ -51687,47 +52547,34 @@ program 1 2 - 8 - 9 + 2 + 3 GTK_EXPAND - + True 0 - scale - - - 8 - 9 - - - - - True - True - 0 0 10 1 10 0 + <b>Component</b> + True - 1 - 2 - 5 - 6 - + 1 + 2 GTK_EXPAND - + True 0 - PID + Absolute - 5 - 6 + 2 + 3 GTK_FILL @@ -51747,32 +52594,45 @@ program - + + True + 0 + PID + + + 5 + 6 + GTK_FILL + + + + True - 0 - Absolute + True + 0 0 10 1 10 0 - 2 - 3 - GTK_FILL + 1 + 2 + 5 + 6 + + GTK_EXPAND - + True 0 - <b>Component</b> - True + scale - 1 - 2 - GTK_EXPAND + 8 + 9 - + True True 0 0 100 1 10 0 @@ -51780,19 +52640,37 @@ program 1 2 - 2 - 3 + 8 + 9 GTK_EXPAND - + True - Add HAL components with this page. + 0 + mux16 + PANGO_ELLIPSIZE_END - 3 + 11 + 12 + + + + + True + True + 0 0 100 1 10 0 + + + 1 + 2 + 11 + 12 + + GTK_EXPAND @@ -51837,65 +52715,68 @@ program - + True - Thread Command + False + Base Thread - 1 - 2 + 2 + 3 + 4 + 5 - + True - Thread Speed + Servo Thread 2 3 + 2 + 3 - + True True GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN - + True - False True - 4 - 5 - GTK_FILL - + 1 + 2 + 2 + 3 - + True True GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN + GTK_SHADOW_ETCHED_IN - + True - False True - 1 - 2 - 4 - 5 + 2 + 3 + GTK_FILL + @@ -51905,68 +52786,65 @@ program - + True True GTK_POLICY_AUTOMATIC - GTK_SHADOW_ETCHED_IN + GTK_SHADOW_IN - + True + False True - 2 - 3 - GTK_FILL - + 1 + 2 + 4 + 5 - + True True GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN - + True + False True - 1 - 2 - 2 - 3 + 4 + 5 + GTK_FILL + - + True - Servo Thread + Thread Speed 2 3 - 2 - 3 - + True - False - Base Thread + Thread Command - 2 - 3 - 4 - 5 + 1 + 2 @@ -52059,115 +52937,86 @@ Warning limits switches - + True - True - Invert Motor - 0 - True - - 1 2 - 10 - 11 + 5 + 6 - + True True - Invert Encoder - 0 - True - + 0.5 0 10 0.10000000000000001 10 0 + 2 + 1 2 - 11 - 12 + 2 + 3 - + True True - True - Enable Amp - 0 - + 5 0 10 0.10000000000000001 10 0 + 2 + - 8 - 11 + 1 + 2 + 1 + 2 - + True True - True - Reset Encoder + Slow Dac Speed 0 - - + True + True + Dac_speed_fast + - 11 - 12 + 2 + 3 - + True True - 1 -10000 100000 100 0 0 - 3 - - - - 1 - 2 - 4 - 5 - - - - - True - Encoder Scale: - - - 4 - 5 - - - - - True - 0.60000002384185791 - Dac Offset: + Fast Dac Speed + 0 + True + True + - 3 - 4 + 1 + 2 - + True - True - 0 -2 2 0.01 0.10000000000000001 0 - 4 - + 0 + Jog: - 1 - 2 - 3 - 4 + GTK_FILL + + 10 @@ -52223,86 +53072,115 @@ Warning limits switches - + True - 0 - Jog: + True + 0 -2 2 0.01 0.10000000000000001 0 + 4 + - GTK_FILL - - 10 + 1 + 2 + 3 + 4 - + + True + 0.60000002384185791 + Dac Offset: + + + 3 + 4 + + + + + True + Encoder Scale: + + + 4 + 5 + + + + True True - Fast Dac Speed - 0 - True - True - + 1 -10000 100000 100 0 0 + 3 + - 1 - 2 + 1 + 2 + 4 + 5 - + True True - Slow Dac Speed + True + Reset Encoder 0 - True - True - Dac_speed_fast - + + - 2 - 3 + 11 + 12 - + True True - 5 0 10 0.10000000000000001 10 0 - 2 - + True + Enable Amp + 0 + - 1 - 2 - 1 - 2 + 8 + 11 - + True True - 0.5 0 10 0.10000000000000001 10 0 - 2 - + Invert Encoder + 0 + True + 1 2 - 2 - 3 + 11 + 12 - + True + True + Invert Motor + 0 + True + + 1 2 - 5 - 6 + 10 + 11 @@ -52384,59 +53262,215 @@ Warning limits switches - + + True + + + 2 + 4 + 5 + + + + + True + True + Invert Encoder + 0 + True + + + + 1 + 2 + 3 + 4 + + + + + True + True + Invert Motor + 0 + True + + + + 1 + 2 + 2 + 3 + + + + + True + + + True + False + True + 0 + + + + + True + gtk-remove + + + + + False + False + 5 + + + + + True + False + True + 0 + + + + + True + gtk-add + + + + + False + False + 5 + 1 + + + + + 1 + 2 + 5 + 6 + GTK_FILL + GTK_FILL + 5 + + + + + True + 0 + Jog: + + + 5 + 6 + GTK_FILL + + 10 + + + + + True + 0 + Test Area: + + + 6 + 7 + GTK_FILL + + 10 + + + + True - + + True + ± ++ +- + + + + False + False + + + + + True + True + 1 0 10000 1 10 0 + 1 + + + False + False + 1 + + + + True - True - 1 0 50000 1 10 0 - 1 - + mm False + False + 2 - + True - 0 - mm/minute - 1 + False + False + 3 + + + 1 2 - GTK_FILL + 6 + 7 GTK_FILL 5 - + True - + True True - 1 0 50000 1 10 0 - 1 + 0 0 30 1 10 0 False + False - + True 0 - mm/minute^2 + Seconds 1 @@ -52446,52 +53480,33 @@ Warning limits switches 1 2 - 1 - 2 - GTK_FILL - GTK_FILL - 5 - - - - - True - 0 - Acceleration: - - - 1 - 2 - GTK_FILL - - 10 + 7 + 8 - + True 0 - Velocity: + Pause - GTK_FILL - - 10 + 7 + 8 - + True - False True 0 - + True 2 - + True gtk-execute @@ -52501,10 +53516,9 @@ Warning limits switches - + True - False - Run + Enable True @@ -52517,23 +53531,26 @@ Warning limits switches + 1 + 2 8 9 - + True + False True 0 - + True 2 - + True gtk-execute @@ -52543,9 +53560,10 @@ Warning limits switches - + True - Enable + False + Run True @@ -52558,191 +53576,95 @@ Warning limits switches - 1 - 2 8 9 - + True 0 - Pause + Velocity: - 7 - 8 + GTK_FILL + + 10 - + True - - - True - True - 0 0 30 1 10 0 - - - - False - False - - - - - True - 0 - Seconds - - - 1 - - + 0 + Acceleration: - 1 - 2 - 7 - 8 + 1 + 2 + GTK_FILL + + 10 - + True - - True - ± -+ -- - - - - False - False - - - - + True True - 1 0 10000 1 10 0 + 1 0 50000 1 10 0 1 + False - False - 1 - - - - - True - mm - - - False - False - 2 - + True + 0 + mm/minute^2 - False - False - 3 + 1 - - - 1 2 - 6 - 7 + 1 + 2 + GTK_FILL GTK_FILL 5 - - True - 0 - Test Area: - - - 6 - 7 - GTK_FILL - - 10 - - - - - True - 0 - Jog: - - - 5 - 6 - GTK_FILL - - 10 - - - - + True - + True - False True - 0 - - - - - True - gtk-remove - - + 1 0 50000 1 10 0 + 1 + False - False - 5 - + True - False - True - 0 - - - - - True - gtk-add - - + 0 + mm/minute - False - False - 5 1 @@ -52750,55 +53672,11 @@ Warning limits switches 1 2 - 5 - 6 GTK_FILL GTK_FILL 5 - - - True - True - Invert Motor - 0 - True - - - - 1 - 2 - 2 - 3 - - - - - True - True - Invert Encoder - 0 - True - - - - 1 - 2 - 3 - 4 - - - - - True - - - 2 - 4 - 5 - - False @@ -52847,178 +53725,145 @@ Warning limits switches - + True - True - 0 0 10000 0.0001 10 0 - 4 - + + + + + True + Current 1 2 - 8 - 9 - + True - True - 0 0 10000 0.01 10 0 - 4 + P: - 1 - 2 - 7 - 8 + 1 + 2 - + True - 0 + I: - 3 - 4 - 8 - 9 + 2 + 3 - + True - 0 + D: - 3 - 4 - 7 - 8 + 3 + 4 - + True - DeadBand + FF0 - 8 - 9 + 4 + 5 - + True - Bias + FF1 - 7 - 8 + 5 + 6 - + True - True - 0 0 10000 0.01 1 0 - 4 - + FF2 - 1 - 2 6 7 - + True - True - 0 0 10000 0.01 0.10000000000000001 0 - 4 - - 1 - 2 - 5 - 6 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 - + Original - 1 - 2 - 4 - 5 + 3 + 4 - + True - True - 0 0 10000 0.01 10 0 - 4 - + 0 - 1 - 2 - 3 - 4 + 3 + 4 + 1 + 2 - + True - True - 0 0 10000 0.01 0.10000000000000001 0 - 4 - + 0 - 1 - 2 + 3 + 4 2 3 - + True - True - 0 0 10000 1 10 0 - 4 - + 0 - 1 - 2 - 1 - 2 + 3 + 4 + 3 + 4 - + True 0 3 4 - 6 - 7 + 4 + 5 @@ -53034,147 +53879,180 @@ Warning limits switches - + True 0 3 4 - 4 - 5 + 6 + 7 - + True - 0 + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 - 3 - 4 + 1 + 2 + 1 + 2 - + True - 0 + True + 0 0 10000 0.01 0.10000000000000001 0 + 4 + - 3 - 4 + 1 + 2 2 3 - + True - 0 + True + 0 0 10000 0.01 10 0 + 4 + - 3 - 4 - 1 - 2 + 1 + 2 + 3 + 4 - + True - Original + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 + 1 + 2 + 4 + 5 - + True + True + 0 0 10000 0.01 0.10000000000000001 0 + 4 + - 2 - 3 + 1 + 2 + 5 + 6 - + True - FF2 + True + 0 0 10000 0.01 1 0 + 4 + + 1 + 2 6 7 - + True - FF1 + Bias - 5 - 6 + 7 + 8 - + True - FF0 + DeadBand - 4 - 5 + 8 + 9 - + True - D: + 0 - 3 - 4 + 3 + 4 + 7 + 8 - + True - I: + 0 - 2 - 3 + 3 + 4 + 8 + 9 - + True - P: + True + 0 0 10000 0.01 10 0 + 4 - 1 - 2 + 1 + 2 + 7 + 8 - + True - Current + True + 0 0 10000 0.0001 10 0 + 4 + 1 2 + 8 + 9 - - - True - - @@ -53259,69 +54137,71 @@ Warning limits switches - + True - label + Step Time: - 3 - 4 - 4 - 5 + 1 + 2 - + True - label + Step Space: + + + 2 + 3 + + + + + True + Direction Hold: - 3 - 4 3 4 - + True - label + Current - 3 - 4 - 2 - 3 + 1 + 2 + + - + True - label + Original 3 4 - 1 - 2 + + - + True - True - 0 0 500000 1000 10 0 - + Direction Setup: - 1 - 2 4 5 - + True True 0 0 500000 1000 10 0 @@ -53330,8 +54210,8 @@ Warning limits switches 1 2 - 3 - 4 + 1 + 2 @@ -53349,7 +54229,7 @@ Warning limits switches - + True True 0 0 500000 1000 10 0 @@ -53358,72 +54238,70 @@ Warning limits switches 1 2 - 1 - 2 + 3 + 4 - + True - Direction Setup: + True + 0 0 500000 1000 10 0 + + 1 + 2 4 5 - + True - Original + label 3 4 - - + 1 + 2 - + True - Current + label - 1 - 2 - - + 3 + 4 + 2 + 3 - + True - Direction Hold: + label + 3 + 4 3 4 - - True - Step Space: - - - 2 - 3 - - - - + True - Step Time: + label - 1 - 2 + 3 + 4 + 4 + 5 @@ -53481,26 +54359,89 @@ Warning limits switches - + + True + + + 2 + 4 + 5 + + + + + True + True + Invert Encoder + 0 + True + + + 1 + 2 + 3 + 4 + + + + + True + True + Invert Motor + 0 + True + + + + 1 + 2 + 2 + 3 + + + + True - + True + False True - 1 0 50000 1 10 0 - 1 + 0 + + + + + True + gtk-remove + + False + False + 5 - + True - 0 - mm/minute + False + True + 0 + + + + + True + gtk-add + + + False + False + 5 1 @@ -53508,85 +54449,159 @@ Warning limits switches 1 2 + 5 + 6 GTK_FILL GTK_FILL 5 - + + True + 0 + Jog: + + + 5 + 6 + GTK_FILL + + 10 + + + + + True + 0 + Test Area: + + + 6 + 7 + GTK_FILL + + 10 + + + + True - + + True + ± ++ +- + + + + False + False + + + + True True - 1 0 50000 1 10 0 + 1 0 10000 1 10 0 1 False + False + 1 + + + + + True + mm + + + False + False + 2 - + True - 0 - mm/minute^2 - 1 + False + False + 3 + + + 1 2 - 1 - 2 - GTK_FILL + 6 + 7 GTK_FILL 5 - + True - 0 - Acceleration: + + + True + True + 0 0 30 1 10 0 + + + False + False + + + + + True + 0 + Seconds + + + 1 + + - 1 - 2 - GTK_FILL - - 10 + 1 + 2 + 7 + 8 - + True 0 - Velocity: + Pause - GTK_FILL - - 10 + 7 + 8 - + True - False True 0 - + True 2 - + True gtk-execute @@ -53596,9 +54611,9 @@ Warning limits switches - + True - Run + Enable True @@ -53611,23 +54626,26 @@ Warning limits switches + 1 + 2 8 9 - + True + False True 0 - + True 2 - + True gtk-execute @@ -53637,9 +54655,9 @@ Warning limits switches - + True - Enable + Run True @@ -53647,195 +54665,63 @@ Warning limits switches False 1 - - - - - - 1 - 2 - 8 - 9 - - - - - - True - 0 - Pause - - - 7 - 8 - - - - - True - - - True - True - 0 0 30 1 10 0 - - - False - False - - - - - True - 0 - Seconds - - - 1 - - - - - 1 - 2 - 7 - 8 - - - - - True - - - True - ± -+ -- - - - - False - False - - - - - True - True - 1 0 10000 1 10 0 - 1 - - - False - False - 1 - - - - - True - mm - - - False - False - 2 - - - - - True + - - False - False - 3 - - - - - 1 - 2 - 6 - 7 - GTK_FILL - 5 + 8 + 9 + - + True 0 - Test Area: + Velocity: - 6 - 7 GTK_FILL 10 - + True 0 - Jog: + Acceleration: - 5 - 6 + 1 + 2 GTK_FILL 10 - + True - + True - False True - 0 - - - - - True - gtk-remove - - + 1 0 50000 1 10 0 + 1 False - False - 5 - + True - False - True - 0 - - - - - True - gtk-add - - + 0 + mm/minute^2 - False - False - 5 1 @@ -53843,52 +54729,44 @@ Warning limits switches 1 2 - 5 - 6 + 1 + 2 GTK_FILL GTK_FILL 5 - - True - True - Invert Motor - 0 - True - - - - 1 - 2 - 2 - 3 - - - - + True - True - Invert Encoder - 0 - True + + + True + True + 1 0 50000 1 10 0 + 1 + + + False + + + + + True + 0 + mm/minute + + + 1 + + 1 2 - 3 - 4 - - - - - True - - - 2 - 4 - 5 + GTK_FILL + GTK_FILL + 5 @@ -53939,133 +54817,191 @@ Warning limits switches - + True + True + 0 0 10000 0.0001 10 0 + 4 + + + 1 + 2 + 8 + 9 + - + True - Current + True + 0 0 10000 1 10 0 + 4 + 1 2 + 7 + 8 - + True - P: + 0 - 1 - 2 + 3 + 4 + 8 + 9 - + True - I: + 0 - 2 - 3 + 3 + 4 + 7 + 8 - + True - D: + DeadBand - 3 - 4 + 8 + 9 - + True - FF0 + Bias - 4 - 5 + 7 + 8 - + True - FF1 + True + 0 0 10000 1 10 0 + 4 + + + + 1 + 2 + 6 + 7 + + + + + True + True + 0 0 10000 1 10 0 + 4 + + 1 + 2 5 6 - + True - FF2 + True + 0 0 10000 1 10 0 + 4 + - 6 - 7 + 1 + 2 + 4 + 5 - + True + True + 0 0 10000 1 10 0 + 4 + - 2 - 3 + 1 + 2 + 3 + 4 - + True - Original + True + 0 0 10000 1 10 0 + 3 + - 3 - 4 + 1 + 2 + 2 + 3 - + True - 0 + True + 0 0 10000 1 10 0 + 3 + - 3 - 4 + 1 + 2 1 2 - + True 0 3 4 - 2 - 3 + 6 + 7 - + True 0 3 4 - 3 - 4 + 5 + 6 @@ -54081,192 +55017,134 @@ Warning limits switches - + True 0 3 4 - 5 - 6 + 3 + 4 - + True 0 3 4 - 6 - 7 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 3 - + 0 - 1 - 2 + 3 + 4 1 2 - + True - True - 0 0 10000 1 10 0 - 3 - + Original - 1 - 2 - 2 - 3 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 - - 1 - 2 - 3 - 4 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 - + FF2 - 1 - 2 - 4 - 5 + 6 + 7 - + True - True - 0 0 10000 1 10 0 - 4 - + FF1 - 1 - 2 5 6 - - True - True - 0 0 10000 1 10 0 - 4 - - - - 1 - 2 - 6 - 7 - - - - + True - Bias + FF0 - 7 - 8 + 4 + 5 - + True - DeadBand + D: - 8 - 9 + 3 + 4 - + True - 0 + I: - 3 - 4 - 7 - 8 + 2 + 3 - + True - 0 + P: - 3 - 4 - 8 - 9 + 1 + 2 - + True - True - 0 0 10000 1 10 0 - 4 - + Current 1 2 - 7 - 8 - + True - True - 0 0 10000 0.0001 10 0 - 4 - - - 1 - 2 - 8 - 9 - @@ -54352,71 +55230,68 @@ Warning limits switches - - True - Step Time: - - - 1 - 2 - - - - + True - Step Space: + label - 2 - 3 + 3 + 4 + 4 + 5 - + True - Direction Hold: + label + 3 + 4 3 4 - + True - Current + label - 1 - 2 - - + 3 + 4 + 2 + 3 - + True - Original + label 3 4 - - + 1 + 2 - + True - Direction Setup: + True + 0 0 500000 1 10 0 + 1 + 2 4 5 - + True True 0 0 500000 1 10 0 @@ -54424,8 +55299,8 @@ Warning limits switches 1 2 - 1 - 2 + 3 + 4 @@ -54442,7 +55317,7 @@ Warning limits switches - + True True 0 0 500000 1 10 0 @@ -54450,69 +55325,72 @@ Warning limits switches 1 2 - 3 - 4 + 1 + 2 - + True - True - 0 0 500000 1 10 0 + Direction Setup: - 1 - 2 4 5 - + True - label + Original 3 4 - 1 - 2 + + - + True - label + Current - 3 - 4 - 2 - 3 + 1 + 2 + + + + + + + True + Direction Hold: + + + 3 + 4 - + True - label + Step Space: - 3 - 4 - 3 - 4 + 2 + 3 - + True - label + Step Time: - 3 - 4 - 4 - 5 + 1 + 2 @@ -54574,26 +55452,89 @@ Warning limits switches - + + True + + + 2 + 4 + 5 + + + + + True + True + Invert Encoder + 0 + True + + + 1 + 2 + 3 + 4 + + + + + True + True + Invert Motor + 0 + True + + + + 1 + 2 + 2 + 3 + + + + True - + True + False True - 1 0 50000 1 10 0 - 1 + 0 + + + + + True + gtk-remove + + False + False + 5 - + True - 0 - mm/minute + False + True + 0 + + + + + True + gtk-add + + + False + False + 5 1 @@ -54601,85 +55542,159 @@ Warning limits switches 1 2 + 5 + 6 GTK_FILL GTK_FILL 5 - + + True + 0 + Jog: + + + 5 + 6 + GTK_FILL + + 10 + + + + + True + 0 + Test Area: + + + 6 + 7 + GTK_FILL + + 10 + + + + True - + + True + ± ++ +- + + + + False + False + + + + True True - 1 0 50000 1 10 0 + 1 0 10000 1 10 0 1 False + False + 1 - + True - 0 - mm/minute^2 + mm - 1 + False + False + 2 + + + + + True + + + False + False + 3 + + + 1 2 - 1 - 2 - GTK_FILL + 6 + 7 GTK_FILL 5 - + True - 0 - Acceleration: + + + True + True + 0 0 30 1 10 0 + + + False + False + + + + + True + 0 + Seconds + + + 1 + + - 1 - 2 - GTK_FILL - - 10 + 1 + 2 + 7 + 8 - + True 0 - Velocity: + Pause - GTK_FILL - - 10 + 7 + 8 - + True - False True 0 - + True 2 - + True gtk-execute @@ -54689,9 +55704,9 @@ Warning limits switches - + True - Run + Enable True @@ -54704,23 +55719,26 @@ Warning limits switches + 1 + 2 8 9 - + True + False True 0 - + True 2 - + True gtk-execute @@ -54730,9 +55748,9 @@ Warning limits switches - + True - Enable + Run True @@ -54745,190 +55763,93 @@ Warning limits switches - 1 - 2 8 9 - + True 0 - Pause + Velocity: - 7 - 8 + GTK_FILL + + 10 - + True - - - True - True - 0 0 30 1 10 0 - - - False - False - - - - - True - 0 - Seconds - - - 1 - - + 0 + Acceleration: - 1 - 2 - 7 - 8 + 1 + 2 + GTK_FILL + + 10 - + True - - True - ± -+ -- - - - - False - False - - - - + True True - 1 0 10000 1 10 0 + 1 0 50000 1 10 0 1 False - False - 1 - - - - - True - mm - - - False - False - 2 - + True + 0 + mm/minute^2 - False - False - 3 + 1 - - - 1 2 - 6 - 7 + 1 + 2 + GTK_FILL GTK_FILL 5 - - True - 0 - Test Area: - - - 6 - 7 - GTK_FILL - - 10 - - - - - True - 0 - Jog: - - - 5 - 6 - GTK_FILL - - 10 - - - - + True - + True - False True - 0 - - - - - True - gtk-remove - - + 1 0 50000 1 10 0 + 1 False - False - 5 - + True - False - True - 0 - - - - - True - gtk-add - - + 0 + mm/minute - False - False - 5 1 @@ -54936,54 +55857,11 @@ Warning limits switches 1 2 - 5 - 6 GTK_FILL GTK_FILL 5 - - - True - True - Invert Motor - 0 - True - - - - 1 - 2 - 2 - 3 - - - - - True - True - Invert Encoder - 0 - True - - - 1 - 2 - 3 - 4 - - - - - True - - - 2 - 4 - 5 - - False @@ -55032,191 +55910,133 @@ Warning limits switches - + True - True - 0 0 10000 0.0001 10 0 - 4 - - - 1 - 2 - 8 - 9 - - + True - True - 0 0 10000 1 10 0 - 4 - + Current 1 2 - 7 - 8 - - - - - True - 0 - - - 3 - 4 - 8 - 9 - + True - 0 + P: - 3 - 4 - 7 - 8 + 1 + 2 - + True - DeadBand + I: - 8 - 9 + 2 + 3 - + True - Bias + D: - 7 - 8 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 - + FF0 - 1 - 2 - 6 - 7 + 4 + 5 - + True - True - 0 0 10000 1 10 0 - 4 - + FF1 - 1 - 2 5 6 - + True - True - 0 0 10000 1 10 0 - 4 - + FF2 - 1 - 2 - 4 - 5 + 6 + 7 - + True - True - 0 0 10000 1 10 0 - 4 - - 1 - 2 - 3 - 4 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 - + Original - 1 - 2 - 2 - 3 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 - + 0 - 1 - 2 + 3 + 4 1 2 - + True 0 3 4 - 6 - 7 + 2 + 3 - + True 0 3 4 - 5 - 6 + 3 + 4 @@ -55232,134 +56052,192 @@ Warning limits switches - + True 0 3 4 - 3 - 4 + 5 + 6 - + True 0 3 4 - 2 - 3 + 6 + 7 - + True - 0 + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 + 1 + 2 1 2 - + True - Original + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 + 1 + 2 + 2 + 3 - + True + True + 0 0 10000 1 10 0 + 4 + - 2 - 3 + 1 + 2 + 3 + 4 - + True - FF2 + True + 0 0 10000 1 10 0 + 4 + - 6 - 7 + 1 + 2 + 4 + 5 - + True - FF1 + True + 0 0 10000 1 10 0 + 4 + + 1 + 2 5 6 - + True - FF0 + True + 0 0 10000 1 10 0 + 4 + - 4 - 5 + 1 + 2 + 6 + 7 - + True - D: + Bias - 3 - 4 + 7 + 8 - + True - I: + DeadBand - 2 - 3 + 8 + 9 - + True - P: + 0 - 1 - 2 + 3 + 4 + 7 + 8 - + True - Current + 0 + + + 3 + 4 + 8 + 9 + + + + + True + True + 0 0 10000 1 10 0 + 4 + 1 2 + 7 + 8 - + True + True + 0 0 10000 0.0001 10 0 + 4 + + + 1 + 2 + 8 + 9 + @@ -55445,68 +56323,71 @@ Warning limits switches - + True - label + Step Time: - 3 - 4 - 4 - 5 + 1 + 2 - + True - label + Step Space: + + + 2 + 3 + + + + + True + Direction Hold: - 3 - 4 3 4 - + True - label + Current - 3 - 4 - 2 - 3 + 1 + 2 + + - + True - label + Original 3 4 - 1 - 2 + + - + True - True - 0 0 500000 1 10 0 + Direction Setup: - 1 - 2 4 5 - + True True 0 0 500000 1 10 0 @@ -55514,8 +56395,8 @@ Warning limits switches 1 2 - 3 - 4 + 1 + 2 @@ -55532,7 +56413,7 @@ Warning limits switches - + True True 0 0 500000 1 10 0 @@ -55540,72 +56421,69 @@ Warning limits switches 1 2 - 1 - 2 + 3 + 4 - + True - Direction Setup: + True + 0 0 500000 1 10 0 + 1 + 2 4 5 - + True - Original + label 3 4 - - + 1 + 2 - + True - Current + label - 1 - 2 - - + 3 + 4 + 2 + 3 - + True - Direction Hold: + label + 3 + 4 3 4 - - True - Step Space: - - - 2 - 3 - - - - + True - Step Time: + label - 1 - 2 + 3 + 4 + 4 + 5 @@ -55667,26 +56545,89 @@ Warning limits switches - + + True + + + 2 + 4 + 5 + + + + + True + True + Invert Encoder + 0 + True + + + 1 + 2 + 3 + 4 + + + + + True + True + Invert Motor + 0 + True + + + + 1 + 2 + 2 + 3 + + + + True - + True + False True - 1 0 50000 1 10 0 - 1 + 0 + + + + + True + gtk-remove + + False + False + 5 - + True - 0 - mm/minute + False + True + 0 + + + + + True + gtk-add + + + False + False + 5 1 @@ -55694,30 +56635,123 @@ Warning limits switches 1 2 + 5 + 6 GTK_FILL GTK_FILL 5 - + + True + 0 + Jog: + + + 5 + 6 + GTK_FILL + + 10 + + + + + True + 0 + Test Area: + + + 6 + 7 + GTK_FILL + + 10 + + + + True - + + True + ± ++ +- + + + + False + False + + + + True True - 1 0 50000 1 10 0 + 1 0 1000 1 10 0 1 False + False + 1 + + + + + True + mm + + + False + False + 2 + + + + + True + + + False + False + 3 + + + + + + + + 1 + 2 + 6 + 7 + GTK_FILL + 5 + + + + + True + + + True + True + 0 0 30 1 10 0 + + + False + False - + True 0 - mm/minute^2 + Seconds 1 @@ -55727,52 +56761,33 @@ Warning limits switches 1 2 - 1 - 2 - GTK_FILL - GTK_FILL - 5 - - - - - True - 0 - Acceleration: - - - 1 - 2 - GTK_FILL - - 10 + 7 + 8 - + True 0 - Velocity: + Pause - GTK_FILL - - 10 + 7 + 8 - + True - False True 0 - + True 2 - + True gtk-execute @@ -55782,9 +56797,9 @@ Warning limits switches - + True - Run + enable True @@ -55797,23 +56812,26 @@ Warning limits switches + 1 + 2 8 9 - + True + False True 0 - + True 2 - + True gtk-execute @@ -55823,9 +56841,9 @@ Warning limits switches - + True - enable + Run True @@ -55838,190 +56856,93 @@ Warning limits switches - 1 - 2 8 9 - + True 0 - Pause + Velocity: - 7 - 8 + GTK_FILL + + 10 - + True - - - True - True - 0 0 30 1 10 0 - - - False - False - - - - - True - 0 - Seconds - - - 1 - - + 0 + Acceleration: - 1 - 2 - 7 - 8 + 1 + 2 + GTK_FILL + + 10 - + True - - True - ± -+ -- - - - - False - False - - - - + True True - 1 0 1000 1 10 0 + 1 0 50000 1 10 0 1 False - False - 1 - - - - - True - mm - - - False - False - 2 - + True + 0 + mm/minute^2 - False - False - 3 + 1 - - - 1 2 - 6 - 7 + 1 + 2 + GTK_FILL GTK_FILL 5 - - True - 0 - Test Area: - - - 6 - 7 - GTK_FILL - - 10 - - - - - True - 0 - Jog: - - - 5 - 6 - GTK_FILL - - 10 - - - - + True - + True - False True - 0 - - - - - True - gtk-remove - - + 1 0 50000 1 10 0 + 1 False - False - 5 - + True - False - True - 0 - - - - - True - gtk-add - - + 0 + mm/minute - False - False - 5 1 @@ -56029,54 +56950,11 @@ Warning limits switches 1 2 - 5 - 6 GTK_FILL GTK_FILL 5 - - - True - True - Invert Motor - 0 - True - - - - 1 - 2 - 2 - 3 - - - - - True - True - Invert Encoder - 0 - True - - - 1 - 2 - 3 - 4 - - - - - True - - - 2 - 4 - 5 - - False @@ -56125,133 +57003,191 @@ Warning limits switches - + True + True + 0 0 10000 0.0001 10 0 + 4 + + + 1 + 2 + 8 + 9 + - + True - Current + True + 0 0 10000 1 10 0 + 4 + 1 2 + 7 + 8 - + True - P: + 0 - 1 - 2 + 3 + 4 + 8 + 9 - + True - I: + 0 - 2 - 3 + 3 + 4 + 7 + 8 - + True - D: + DeadBand - 3 - 4 + 8 + 9 - + True - FF0 + Bias - 4 - 5 + 7 + 8 - + True - FF1 + True + 0 0 10000 1 10 0 + 4 + + + + 1 + 2 + 6 + 7 + + + + + True + True + 0 0 10000 1 10 0 + 4 + + 1 + 2 5 6 - + True - FF2 + True + 0 0 10000 1 10 0 + 4 + - 6 - 7 + 1 + 2 + 4 + 5 - + True + True + 0 0 10000 1 10 0 + 4 + - 2 - 3 + 1 + 2 + 3 + 4 - + True - Original + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 + 1 + 2 + 2 + 3 - + True - 0 + True + 0 0 10000 1 10 0 + 4 + - 3 - 4 + 1 + 2 1 2 - + True 0 3 4 - 2 - 3 + 6 + 7 - + True 0 3 4 - 3 - 4 + 5 + 6 @@ -56267,192 +57203,134 @@ Warning limits switches - + True 0 3 4 - 5 - 6 + 3 + 4 - + True 0 3 4 - 6 - 7 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 - + 0 - 1 - 2 + 3 + 4 1 2 - + True - True - 0 0 10000 1 10 0 - 4 - + Original - 1 - 2 - 2 - 3 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 - - 1 - 2 - 3 - 4 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 - + FF2 - 1 - 2 - 4 - 5 + 6 + 7 - + True - True - 0 0 10000 1 10 0 - 4 - + FF1 - 1 - 2 5 6 - - True - True - 0 0 10000 1 10 0 - 4 - - - - 1 - 2 - 6 - 7 - - - - + True - Bias + FF0 - 7 - 8 + 4 + 5 - + True - DeadBand + D: - 8 - 9 + 3 + 4 - + True - 0 + I: - 3 - 4 - 7 - 8 + 2 + 3 - + True - 0 + P: - 3 - 4 - 8 - 9 + 1 + 2 - + True - True - 0 0 10000 1 10 0 - 4 - + Current 1 2 - 7 - 8 - + True - True - 0 0 10000 0.0001 10 0 - 4 - - - 1 - 2 - 8 - 9 - @@ -56538,71 +57416,68 @@ Warning limits switches - - True - Step Time: - - - 1 - 2 - - - - + True - Step Space: + label - 2 - 3 + 3 + 4 + 4 + 5 - + True - Direction Hold: + label + 3 + 4 3 4 - + True - Current + label - 1 - 2 - - + 3 + 4 + 2 + 3 - + True - Original + label 3 4 - - + 1 + 2 - + True - Direction Setup: + True + 0 0 500000 1 10 0 + 1 + 2 4 5 - + True True 0 0 500000 1 10 0 @@ -56610,8 +57485,8 @@ Warning limits switches 1 2 - 1 - 2 + 3 + 4 @@ -56628,7 +57503,7 @@ Warning limits switches - + True True 0 0 500000 1 10 0 @@ -56636,69 +57511,72 @@ Warning limits switches 1 2 - 3 - 4 + 1 + 2 - + True - True - 0 0 500000 1 10 0 + Direction Setup: - 1 - 2 4 5 - + True - label + Original 3 4 - 1 - 2 + + - + True - label + Current - 3 - 4 - 2 - 3 + 1 + 2 + + - + True - label + Direction Hold: - 3 - 4 3 4 - + True - label + Step Space: - 3 - 4 - 4 - 5 + 2 + 3 + + + + + True + Step Time: + + + 1 + 2 @@ -56766,24 +57644,23 @@ Warning limits switches - - True + - + True True - 1 0 50000 1 10 0 - 1 + 0 0 30 1 10 0 False + False - + True 0 - mm/minute + Seconds 1 @@ -56793,85 +57670,194 @@ Warning limits switches 1 2 - GTK_FILL - GTK_FILL - 5 + 7 + 8 - - True + - + True + ± ++ +- + + + + False + False + + + + True - 1 0 50000 1 10 0 + 1 0 1000 1 10 0 1 False + False + 1 - + True - 0 - mm/minute^2 + mm - 1 + False + False + 2 + + + + + True + + + False + False + 3 + + + 1 2 - 1 - 2 - GTK_FILL + 6 + 7 GTK_FILL 5 - + True - 0 - Acceleration: - 1 - 2 + 2 + 4 + 5 + + + + + True + True + Invert Encoder + 0 + True + + + 1 + 2 + 3 + 4 + + + + + True + True + Invert Motor + 0 + True + + + 1 + 2 + 2 + 3 + + + + + True + + + True + False + True + 0 + + + + + True + gtk-remove + + + + + False + False + 5 + + + + + True + False + True + 0 + + + + + True + gtk-add + + + + + False + False + 5 + 1 + + + + + 1 + 2 + 5 + 6 GTK_FILL - - 10 + GTK_FILL + 5 - + True 0 - Velocity: + Jog: + 5 + 6 GTK_FILL 10 - + True - False True 0 - + True 2 - + True gtk-execute @@ -56881,10 +57867,9 @@ Warning limits switches - + True - False - Run + Enable True @@ -56897,23 +57882,26 @@ Warning limits switches + 1 + 2 8 9 - + True + False True 0 - + True 2 - + True gtk-execute @@ -56923,9 +57911,10 @@ Warning limits switches - + True - Enable + False + Run True @@ -56938,203 +57927,91 @@ Warning limits switches - 1 - 2 8 9 - + True 0 - Jog: + Velocity: - 5 - 6 GTK_FILL 10 - + True - - - True - False - True - 0 - - - - - True - gtk-remove - - - - - False - False - 5 - - - - - True - False - True - 0 - - - - - True - gtk-add - - - - - False - False - 5 - 1 - - + 0 + Acceleration: - 1 - 2 - 5 - 6 + 1 + 2 GTK_FILL - GTK_FILL - 5 - - - - - True - True - Invert Motor - 0 - True - - - 1 - 2 - 2 - 3 - - - - - True - True - Invert Encoder - 0 - True - - - 1 - 2 - 3 - 4 + + 10 - + True - - - 2 - 4 - 5 - - - - - + True - ± -+ -- - - - - False - False - - - - True - 1 0 1000 1 10 0 + 1 0 50000 1 10 0 1 False - False - 1 - - - - - True - mm - - - False - False - 2 - + True + 0 + mm/minute^2 - False - False - 3 + 1 - - - 1 2 - 6 - 7 + 1 + 2 + GTK_FILL GTK_FILL 5 - + + True - + True True - 0 0 30 1 10 0 + 1 0 50000 1 10 0 + 1 False - False - + True 0 - Seconds + mm/minute 1 @@ -57144,8 +58021,9 @@ Warning limits switches 1 2 - 7 - 8 + GTK_FILL + GTK_FILL + 5 @@ -57196,183 +58074,133 @@ Warning limits switches - + True - True - 0 0 10000 0.0001 10 0 - 4 - - 1 - 2 - 8 - 9 - - + True - True - 0 0 10000 0.01 10 0 - 4 + Current 1 2 - 7 - 8 - - - - - True - 0 - - - 3 - 4 - 8 - 9 - + True - 0 + P: - 3 - 4 - 7 - 8 + 1 + 2 - + True - DeadBand + I: - 8 - 9 + 2 + 3 - + True - Bias + D: - 7 - 8 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 + FF0 - 1 - 2 - 6 - 7 + 4 + 5 - + True - True - 0 0 10000 1 10 0 - 4 + FF1 - 1 - 2 5 6 - + True - True - 0 0 10000 1 10 0 - 4 + FF2 - 1 - 2 - 4 - 5 + 6 + 7 - + True - True - 0 0 10000 0.01 10 0 - 4 - 1 - 2 - 3 - 4 + 2 + 3 - + True - True - 0 0 10000 1 10 0 - 4 + Original - 1 - 2 - 2 - 3 + 3 + 4 - + True - True - 0 0 10000 1 10 0 - 4 + 0 - 1 - 2 + 3 + 4 1 2 - + True 0 3 4 - 6 - 7 + 2 + 3 - + True 0 3 4 - 5 - 6 + 3 + 4 @@ -57388,134 +58216,184 @@ Warning limits switches - + True 0 3 4 - 3 - 4 + 5 + 6 - + True 0 3 4 - 2 - 3 + 6 + 7 - + True - 0 + True + 0 0 10000 1 10 0 + 4 - 3 - 4 + 1 + 2 1 2 - + True - Original + True + 0 0 10000 1 10 0 + 4 - 3 - 4 + 1 + 2 + 2 + 3 - + True + True + 0 0 10000 0.01 10 0 + 4 - 2 - 3 + 1 + 2 + 3 + 4 - + True - FF2 + True + 0 0 10000 1 10 0 + 4 - 6 - 7 + 1 + 2 + 4 + 5 - + True - FF1 + True + 0 0 10000 1 10 0 + 4 + 1 + 2 5 6 - + True - FF0 + True + 0 0 10000 1 10 0 + 4 - 4 - 5 + 1 + 2 + 6 + 7 - + True - D: + Bias - 3 - 4 + 7 + 8 - + True - I: + DeadBand - 2 - 3 + 8 + 9 - + True - P: + 0 - 1 - 2 + 3 + 4 + 7 + 8 - + True - Current + 0 + + + 3 + 4 + 8 + 9 + + + + + True + True + 0 0 10000 0.01 10 0 + 4 1 2 + 7 + 8 - + True + True + 0 0 10000 0.0001 10 0 + 4 + + 1 + 2 + 8 + 9 + @@ -57601,68 +58479,71 @@ Warning limits switches - + True - label + Step Time: - 3 - 4 - 4 - 5 + 1 + 2 - + True - label + Step Space: + + + 2 + 3 + + + + + True + Direction Hold: - 3 - 4 3 4 - + True - label + Current - 3 - 4 - 2 - 3 + 1 + 2 + + - + True - label + Original 3 4 - 1 - 2 + + - + True - True - 0 0 500000 1000 10 0 + Direction Setup: - 1 - 2 4 5 - + True True 0 0 500000 1000 10 0 @@ -57670,8 +58551,8 @@ Warning limits switches 1 2 - 3 - 4 + 1 + 2 @@ -57688,7 +58569,7 @@ Warning limits switches - + True True 0 0 500000 1000 10 0 @@ -57696,72 +58577,69 @@ Warning limits switches 1 2 - 1 - 2 + 3 + 4 - + True - Direction Setup: + True + 0 0 500000 1000 10 0 + 1 + 2 4 5 - + True - Original + label 3 4 - - + 1 + 2 - + True - Current + label - 1 - 2 - - + 3 + 4 + 2 + 3 - + True - Direction Hold: + label + 3 + 4 3 4 - - True - Step Space: - - - 2 - 3 - - - - + True - Step Time: + label - 1 - 2 + 3 + 4 + 4 + 5 @@ -58102,50 +58980,23 @@ possible. - - True - True - 200 1 5000 200 10 0 - - - 1 - 2 - 6 - 7 - - - - - True - 0.34999999403953552 - Motor steps per revolution: - True - - - 6 - 7 - GTK_FILL - - - - - + 100 True 0 - mm / rev + TPI 2 3 - 4 - 5 + 5 + 6 - + True False True @@ -58153,79 +59004,57 @@ possible. 4 - 1 - 2 - 4 - 5 - - - - - True - True - 0 - True - - - True - Leadscrew Metric Pitch - - - - - 4 - 5 - - - - - True - True - Microstep Multiplication Factor: - 0 - True - - - 3 - 4 + 1 + 2 + 5 + 6 - + True True - Worm turn ratio (Input:Outputl) 0 True + + + True + Leadscrew TPI + + - 1 - 2 + 5 + 6 - + True + False True - Pulley teeth (motor:Leadscrew): - 0 - True + 1 1 25000 1 10 0 + + 1 + 2 + 3 + 4 + - + True - + True False True 1 1 100 1 10 0 - True - + True _: True @@ -58236,7 +59065,7 @@ possible. - + True False True @@ -58251,23 +59080,26 @@ possible. 1 2 + 1 + 2 - + True - + True False True 1 1 100 1 10 0 + True - + True _: True @@ -58278,7 +59110,7 @@ possible. - + True False True @@ -58293,46 +59125,65 @@ possible. 1 2 - 1 - 2 - + True - False True - 1 1 25000 1 10 0 + Pulley teeth (motor:Leadscrew): + 0 + True + + + + + True + True + Worm turn ratio (Input:Outputl) + 0 + True + + + 1 + 2 + + + + + True + True + Microstep Multiplication Factor: + 0 + True - 1 - 2 3 4 - + True True 0 True - + True - Leadscrew TPI + Leadscrew Metric Pitch - 5 - 6 + 4 + 5 - + True False True @@ -58342,26 +59193,53 @@ possible. 1 2 - 5 - 6 + 4 + 5 - + 100 True 0 - TPI + mm / rev 2 3 - 5 - 6 + 4 + 5 + + + True + 0.34999999403953552 + Motor steps per revolution: + True + + + 6 + 7 + GTK_FILL + + + + + + True + True + 200 1 5000 200 10 0 + + + 1 + 2 + 6 + 7 + + @@ -58415,23 +59293,23 @@ possible. - + 100 True 0 - mm / rev + TPI 2 3 - 2 - 3 + 3 + 4 - + True False True @@ -58441,64 +59319,54 @@ possible. 1 2 - 2 - 3 + 3 + 4 - + True True 0 True - + True - Leadscrew Metric Pitch + Leadscrew TPI - 2 - 3 + 3 + 4 - - True - True - Pulley teeth (encoder:Leadscrew): - 0 - True - - - - + True True - Worm turn ratio (Input:Outputl) - 0 - True + 1000 1 500000 100 10 0 - 1 - 2 + 1 + 2 + 4 + 5 - + True - + True False True 1 1 100 1 10 0 - True - + True _: True @@ -58509,7 +59377,7 @@ possible. - + True False True @@ -58524,46 +59392,49 @@ possible. 1 2 + 1 + 2 - + True - 0.37000000476837158 - Encoder lines per revolution: + X 4 = Pulses/Rev + 2 + 3 4 5 - + True - X 4 = Pulses/Rev + 0.37000000476837158 + Encoder lines per revolution: - 2 - 3 4 5 - + True - + True False True 1 1 100 1 10 0 + True - + True _: True @@ -58574,7 +59445,7 @@ possible. - + True False True @@ -58589,45 +59460,52 @@ possible. 1 2 - 1 - 2 - + True True - 1000 1 500000 100 10 0 + Worm turn ratio (Input:Outputl) + 0 + True - 1 - 2 - 4 - 5 + 1 + 2 - + + True + True + Pulley teeth (encoder:Leadscrew): + 0 + True + + + + True True 0 True - + True - Leadscrew TPI + Leadscrew Metric Pitch - 3 - 4 + 2 + 3 - + True False True @@ -58637,22 +59515,22 @@ possible. 1 2 - 3 - 4 + 2 + 3 - + 100 True 0 - TPI + mm / rev 2 3 - 3 - 4 + 2 + 3 @@ -58703,25 +59581,26 @@ possible. - + True - 0 - motor steps per unit: + - + 2 + 3 - + True - 0 - encoder pulses per unit: + True + False + 1 + 2 1 2 - @@ -58736,26 +59615,25 @@ possible. - + True - True - False + 0 + encoder pulses per unit: - 1 - 2 1 2 + - + True - + 0 + motor steps per unit: - 2 - 3 + @@ -58840,150 +59718,103 @@ possible. - - True - 1 - xmaxrpm - - - 1 - 2 - 8 - 9 - GTK_FILL - - 4 - - - - - True - 0 - RPM - - - 2 - 3 - 8 - 9 - - - - - True - 0 - Motor RPM at max speed: - - - 8 - 9 - - - - + True 0 - Steps / mm + mm / encoder pulse 2 4 - 3 - 4 + 4 + 5 GTK_FILL - + + 100 True - True 1 - xcalscale - True + 0 1 2 - 3 - 4 - GTK_FILL - + 4 + 5 4 - + True 0 - Calculated Axis SCALE: + Resolution: - 3 - 4 + 4 + 5 GTK_FILL - + True 0 - Khz + Time to accelerate to max speed: + True - 2 - 3 - 7 - 8 + 5 + 6 GTK_FILL - + True 0 - sec + Distance to acheave max speed: + True - 2 - 3 - 5 - 6 + 6 + 7 GTK_FILL - + True 0 - mm + Pulse rate at max speed: - 2 - 3 - 6 - 7 + 7 + 8 GTK_FILL - + True True 1 - xkhz + xacctime GTK_JUSTIFY_RIGHT True 1 2 - 7 - 8 + 5 + 6 GTK_FILL 4 @@ -59009,106 +59840,153 @@ possible. - + True True 1 - xacctime + xkhz GTK_JUSTIFY_RIGHT True 1 2 - 5 - 6 + 7 + 8 GTK_FILL 4 - + True 0 - Pulse rate at max speed: + mm - 7 - 8 + 2 + 3 + 6 + 7 GTK_FILL - + True 0 - Distance to acheave max speed: - True + sec - 6 - 7 + 2 + 3 + 5 + 6 GTK_FILL - + True 0 - Time to accelerate to max speed: - True + Khz - 5 - 6 + 2 + 3 + 7 + 8 GTK_FILL - + True 0 - Resolution: + Calculated Axis SCALE: - 4 - 5 + 3 + 4 GTK_FILL - - 100 + True + True 1 - 0 + xcalscale + True 1 2 - 4 - 5 + 3 + 4 + GTK_FILL + 4 - + True 0 - mm / encoder pulse + Steps / mm 2 4 - 4 - 5 + 3 + 4 + GTK_FILL + + + + + + True + 0 + Motor RPM at max speed: + + + 8 + 9 + + + + + True + 0 + RPM + + + 2 + 3 + 8 + 9 + + + + + True + 1 + xmaxrpm + + + 1 + 2 + 8 + 9 GTK_FILL + 4 diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index faa187dc8..9ed9dd283 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -407,7 +407,8 @@ def iceil(x): axis_select = [_("Joint select A"),_("Joint select B"),_("Joint select C"), _("Joint select D") ] override = [_("Jog incr A"),_("Jog incr B"),_("Jog incr C"),_("Jog incr D"),_("Feed Override incr A"),_("Feed Override incr B"), _("Feed Override incr C"),_("Feed Override incr D"),_("Spindle Override incr A"),_("Spindle Override incr B"), - _("Spindle Override incr C"),_("Spindle Override incr D") ] + _("Spindle Override incr C"),_("Spindle Override incr D"), _("Max Vel Override incr A"),_("Max Vel Override incr B"), + _("Max Vel Override incr C"),_("Max Vel Override incr D") ] spindle = [ _("Manual Spindle CW"),_("Manual Spindle CCW"),_("Manual Spindle Stop"),_("Spindle Up-To-Speed") ] operation = [_("Cycle Start"),_("Abort"),_("Single Step") ] control = [_("ESTOP In"), _("Probe In") ] @@ -435,7 +436,7 @@ def iceil(x): DIN0, DIN1, DIN2, DIN3, SELECT_A, SELECT_B, SELECT_C, SELECT_D, JOGA, JOGB, JOGC, JOGD, FOA, FOB, FOC, FOD, -SOA,SOB,SOC,SOD, +SOA,SOB,SOC,SOD, MVOA, MVOB, MVOC, MVOD, SPINDLE_CW, SPINDLE_CCW, SPINDLE_STOP,SPINDLE_AT_SPEED, CYCLE_START, ABORT, SINGLE_STEP, ESTOP_IN, PROBE, @@ -455,7 +456,7 @@ def iceil(x): "din-00", "din-01", "din-02", "din-03", "joint-select-a","joint-select-b","joint-select-c","joint-select-d", "jog-incr-a","jog-incr-b","jog-incr-c","jog-incr-d","fo-incr-a","fo-incr-b","fo-incr-c","fo-incr-d", -"so-incr-a","so-incr-b","so-incr-c","so-incr-d", +"so-incr-a","so-incr-b","so-incr-c","so-incr-d","mvo-incr-a","mvo-incr-b","mvo-incr-c","mvo-incr-d", "spindle-manual-cw","spindle-manual-ccw","spindle-manual-stop","spindle-at-speed", "cycle-start","abort","single-step", "estop-ext", "probe-in", @@ -520,7 +521,7 @@ def iceil(x): axis = [_("X Encoder"),_("Y Encoder"), _("Z Encoder"),_("A Encoder"),_("Spindle Encoder")] mpg = [_("X Hand Wheel"), _("Y Hand Wheel"), _("Z Hand Wheel"), _("A Hand Wheel") ,_("Multi Hand Wheel")] -over = [_("Feed Override"),_("spindle Override")] +over = [_("Feed Override"),_("spindle Override"),_("Max Vel Override")] human_encoder_input_names = [ [_("Unused Encoder"),[]],[_("Axis Encoder"), axis],[_("MPG Jog Controls"), mpg],[_("Override MPG control"), over], [_("Custom Signals"),[]] ] @@ -673,6 +674,7 @@ def __init__(self): self.singlejogbuttons = False self.multijogbuttons = False self.jograpidrate = 1.0 + self.externalmpg = False self.guimpg = True self.multimpg = False @@ -698,6 +700,7 @@ def __init__(self): self.mpgdebouncetime = .2 self.mpggraycode = False self.mpgignorefalse = False + self.externalfo = False self.fo_usempg = False self.fo_useswitch = False @@ -721,6 +724,7 @@ def __init__(self): self.fodebouncetime = .2 self.fograycode = False self.foignorefalse = False + self.externalso = False self.so_usempg = False self.so_useswitch = False @@ -744,7 +748,30 @@ def __init__(self): self.sodebouncetime = .2 self.sograycode = False self.soignorefalse = False - self.externalfo = False + + self.externalmvo = False + self.mvo_usempg = False + self.mvo_useswitch = False + self.mvoincrvalue0 = 0 # all incr-select low + self.mvoincrvalue1 = 5 # incr-select-a high + self.mvoincrvalue2 = 10 # b + self.mvoincrvalue3 = 25 # ab + self.mvoincrvalue4 = 50 # c + self.mvoincrvalue5 = 75 # ac + self.mvoincrvalue6 = 90 # bc + self.mvoincrvalue7 = 100 # abc + self.mvoincrvalue8 = 100 # d + self.mvoincrvalue9 = 100 # ad + self.mvoincrvalue10 = 100 # bd + self.mvoincrvalue11 = 100 # abd + self.mvoincrvalue12 = 100 # cd + self.mvoincrvalue13 = 100 # acd + self.mvoincrvalue14 = 100 # bcd + self.mvoincrvalue15 = 100 # abcd + self.mvodebounce = True + self.mvodebouncetime = .2 + self.mvograycode = False + self.mvoignorefalse = False # GUI frontend defaults self.position_offset = 1 # relative @@ -2226,7 +2253,9 @@ def writebackup(origname): if self.externalmpg: self.mux16names = self.mux16names+"jogincr," if self.externalfo: - self.mux16names = self.mux16names+"foincr," + self.mux16names = self.mux16names+"foincr," + if self.externalmvo: + self.mux16names = self.mux16names+"mvoincr," if self.externalso: self.mux16names = self.mux16names+"soincr," temp = self.mux16names.rstrip(",") @@ -2288,7 +2317,7 @@ def writebackup(origname): if self.classicladder: print >>file,"addf classicladder.0.refresh servo-thread" - if self.externalmpg or self.externalfo or self.externalso or self.joystickjog or self.userneededmux16 > 0: + if self.externalmpg or self.externalfo or self.externalmvo or self.externalso or self.joystickjog or self.userneededmux16 > 0: temp=self.mux16names.split(",") for j in (temp): print >>file, "addf %s servo-thread"% j @@ -2518,6 +2547,48 @@ def writebackup(origname): print >>file, " setp foincr.in%02d %f"% (i,value) print >>file + pinname = self.make_pinname(self.findsignal("mvo-mpg-a")) + if pinname: + print >>file, "# ---max velocity override signals to mesa encoder - mpg---" + print >>file + print >>file, "net mvo-count <= %s.count"% (pinname) + print >>file, "setp %s.filter true" % pinname + print >>file, "setp %s.counter-mode true" % pinname + print >>file + if self.externalmvo: + temp=[] + for i in self.available_axes: + temp.append(float(self[i+"maxvel"])) + scale = max(temp)/100 + if self.mvo_usempg: + print >>file, "# connect max velocity overide increments - MPG" + print >>file + print >>file, " setp halui.max-velocity-override.count-enable true" + print >>file, " setp halui.max-velocity-override.direct-value false" + print >>file, " setp halui.max-velocity-override.scale %04f"% scale + print >>file, "net mvo-count => halui.max-velocity-override.counts" + print >>file + elif self.mvo_useswitch: + print >>file, "# connect max velocity overide increments - switches" + print >>file + print >>file, " setp halui.max-velocity-override.count-enable true" + print >>file, " setp halui.max-velocity-override.direct_value true" + print >>file, " setp halui.max-velocity-override.scale %04f"% scale + print >>file, "net max-vel-override-incr => halui.max-velocity-override.counts" + print >>file, "net mvo-incr-a => mvoincr.sel0" + print >>file, "net mvo-incr-b => mvoincr.sel1" + print >>file, "net mvo-incr-c => mvoincr.sel2" + print >>file, "net mvo-incr-d => mvoincr.sel3" + print >>file, "net max-vel-override-incr <= mvoincr.out-s" + if self.mvodebounce: + print >>file, " setp mvoincr.debounce-time %f"% self.mvodebouncetime + print >>file, " setp mvoincr.use-graycode %s"% self.mvograycode + print >>file, " setp mvoincr.suppress-no-input %s" % self.mvoignorefalse + for i in range(0,16): + value = self["mvoincrvalue%d"% i] + print >>file, " setp mvoincr.in%02d %f"% (i,value) + print >>file + pinname = self.make_pinname(self.findsignal("so-mpg-a")) if pinname: print >>file, "# ---spindle override signals to mesa encoder - mpg---" @@ -3974,6 +4045,10 @@ def on_external_cntrl_prepare(self, *args): self.widgets.fo_usempg.set_active(1) else: self.widgets.fo_useswitch.set_active(1) + if self.data.mvo_usempg : + self.widgets.mvo_usempg.set_active(1) + else: + self.widgets.mvo_useswitch.set_active(1) if self.data.so_usempg : self.widgets.so_usempg.set_active(1) else: @@ -3984,11 +4059,12 @@ def on_external_cntrl_prepare(self, *args): self.widgets.externalmpg.set_active(self.data.externalmpg) self.widgets.externaljog.set_active(self.data.externaljog) self.widgets.externalfo.set_active(self.data.externalfo) + self.widgets.externalmvo.set_active(self.data.externalmvo) self.widgets.externalso.set_active(self.data.externalso) self.widgets.sharedmpg.set_active(self.data.sharedmpg) self.widgets.multimpg.set_active(self.data.multimpg) self.widgets.incrselect.set_active(self.data.incrselect) - for i in ("mpg","fo","so"): + for i in ("mpg","fo","so","mvo"): self.widgets[i+"debounce"].set_active(self.data[i+"debounce"]) self.widgets[i+"debouncetime"].set_value(self.data[i+"debouncetime"]) self.widgets[i+"graycode"].set_active(self.data[i+"graycode"]) @@ -3999,6 +4075,7 @@ def on_external_cntrl_prepare(self, *args): tempunits = "mm" for i in range(0,16): self.widgets["foincrvalue"+str(i)].set_value(self.data["foincrvalue"+str(i)]) + self.widgets["mvoincrvalue"+str(i)].set_value(self.data["mvoincrvalue"+str(i)]) self.widgets["soincrvalue"+str(i)].set_value(self.data["soincrvalue"+str(i)]) self.widgets["mpgincr"+str(i)].set_text(tempunits) @@ -4029,10 +4106,13 @@ def on_external_options_toggled(self, *args): self.widgets.externaljogbox.set_sensitive(self.widgets.externaljog.get_active()) self.widgets.externalmpgbox.set_sensitive(self.widgets.externalmpg.get_active()) self.widgets.externalfobox.set_sensitive(self.widgets.externalfo.get_active()) + self.widgets.externalmvobox.set_sensitive(self.widgets.externalmvo.get_active()) self.widgets.externalsobox.set_sensitive(self.widgets.externalso.get_active()) self.widgets.foexpander.set_sensitive(self.widgets.fo_useswitch.get_active()) + self.widgets.mvoexpander.set_sensitive(self.widgets.mvo_useswitch.get_active()) self.widgets.soexpander.set_sensitive(self.widgets.so_useswitch.get_active()) self.widgets.joystickjogbox.set_sensitive(self.widgets.joystickjog.get_active()) + i = self.widgets.incrselect.get_active() for j in range(1,16): self.widgets["incrlabel%d"% j].set_sensitive(i) @@ -4178,6 +4258,8 @@ def on_external_cntrl_next(self, *args): self.data.multimpg = self.widgets.multimpg.get_active() self.data.fo_usempg = self.widgets.fo_usempg.get_active() self.data.fo_useswitch = self.widgets.fo_useswitch.get_active() + self.data.mvo_usempg = self.widgets.mvo_usempg.get_active() + self.data.mvo_useswitch = self.widgets.mvo_useswitch.get_active() self.data.so_usempg = self.widgets.so_usempg.get_active() self.data.so_useswitch = self.widgets.so_useswitch.get_active() self.data.jograpidrate = self.widgets.jograpidrate.get_value() @@ -4187,16 +4269,18 @@ def on_external_cntrl_next(self, *args): self.data.externaljog = self.widgets.externaljog.get_active() self.data.externalfo = self.widgets.externalfo.get_active() self.data.externalso = self.widgets.externalso.get_active() + self.data.externalmvo = self.widgets.externalmvo.get_active() self.data.sharedmpg = self.widgets.sharedmpg.get_active() self.data.multimpg = self.widgets.multimpg.get_active() self.data.incrselect = self.widgets.incrselect.get_active() - for i in ("mpg","fo","so"): + for i in ("mpg","fo","so","mvo"): self.data[i+"debounce"] = self.widgets[i+"debounce"].get_active() self.data[i+"debouncetime"] = self.widgets[i+"debouncetime"].get_value() self.data[i+"graycode"] = self.widgets[i+"graycode"].get_active() self.data[i+"ignorefalse"] = self.widgets[i+"ignorefalse"].get_active() for i in range (0,16): self.data["foincrvalue"+str(i)] = self.widgets["foincrvalue"+str(i)].get_value() + self.data["mvoincrvalue"+str(i)] = self.widgets["mvoincrvalue"+str(i)].get_value() self.data["soincrvalue"+str(i)] = self.widgets["soincrvalue"+str(i)].get_value() self.data["mpgincrvalue"+str(i)] = self.widgets["mpgincrvalue"+str(i)].get_value() self.data.usbdevicename = self.widgets.usbdevicename.get_text() From cf36cfff615c112776cf5ca12fb2e8e521264285 Mon Sep 17 00:00:00 2001 From: cmorley Date: Sat, 24 Sep 2011 00:41:59 -0700 Subject: [PATCH 0033/1024] pncconf -fix stepgen's max velocity,max acceleration setting --- src/emc/usr_intf/pncconf/pncconf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 9ed9dd283..0ad7f776b 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -1778,8 +1778,8 @@ def connect_axis(self, file, num, let): print >>file, "setp " + steppinname + ".maxaccel [%s_%d]MAX_ACCELERATION"% (title, axnum) print >>file, "setp " + steppinname + ".maxvel [%s_%d]MAX_VELOCITY"% (title, axnum) else: - print >>file, "setp " + steppinname + ".maxaccel %.1f"%( (self[let+"maxvel"]*1.25) ) - print >>file, "setp " + steppinname + ".maxvel %.1f"%( (self[let+"maxacc"]*1.25) ) + print >>file, "setp " + steppinname + ".maxaccel %.1f"%( (self[let+"maxacc"]*1.25) ) + print >>file, "setp " + steppinname + ".maxvel %.1f"%( (self[let+"maxvel"]*1.25) ) if let == "s": print >>file print >>file, "net spindle-enable => " + steppinname + ".enable" From 5b6bf7bfeaf3e24fc58e949bfc54d384b691ea0b Mon Sep 17 00:00:00 2001 From: John Thornton Date: Sat, 24 Sep 2011 06:46:14 -0500 Subject: [PATCH 0034/1024] try and clear up the description and license. Signed-off-by: John Thornton --- src/hal/components/thc.comp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/hal/components/thc.comp b/src/hal/components/thc.comp index 129353d85..b12dc4913 100755 --- a/src/hal/components/thc.comp +++ b/src/hal/components/thc.comp @@ -4,9 +4,13 @@ description """ Torch Height Control Mesa THC > Mesa 5i20 Encoder > EMC THC -The Mesa THC sends a pulse based on the scaled voltage detected. -A velocity is used from the encoder that is being driven by a frequency from -the Mesa THC. +The Mesa THC sends a frequency based on the voltage detected to the encoder. +The velocity from the encoder is converted to volts with the velocity scale +parameter. +The THCAD card sends a frequency at 0 volts so the scale offset parameter is +used to correct this. + +Component Functions If enabled and torch is on and X + Y velocity is within tolerance of set speed allow the THC to offset the Z axis as needed to maintain voltage. @@ -37,7 +41,7 @@ thc.current-vel <= motion.current-vel author "John Thornton"; -license "GPL"; +license "GPLv2 or greater"; option singleton yes; @@ -63,7 +67,7 @@ param rw float vel_scale "The scale to convert the Velocity signal to Volts"; param rw float scale_offset "The offset of the velocity input at 0 volts"; param rw float velocity_tol "The deviation percent from planned velocity"; param rw float voltage_tol "The deviation of Tip Voltage before correction takes place"; -param rw float correction_vel "The Velocity to move Z to correct"; +param rw float correction_vel "The amount of change in user units per period to move Z to correct"; // Global Variables variable float offset; From eddee5cc9498636cf31a97c6d3748d464c99857a Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Fri, 23 Sep 2011 19:44:09 -0600 Subject: [PATCH 0035/1024] remove a stray eXecute bit --- src/emc/kinematics/gantrykins.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/emc/kinematics/gantrykins.c diff --git a/src/emc/kinematics/gantrykins.c b/src/emc/kinematics/gantrykins.c old mode 100755 new mode 100644 From 32ab33ae597961a29d7564c6fd55e5b56081fe8f Mon Sep 17 00:00:00 2001 From: cmorley Date: Sun, 25 Sep 2011 23:39:50 -0700 Subject: [PATCH 0036/1024] pncconf - add detail about dac scale and max output --- .../pncconf/pncconf-help/help-axismotor.txt | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf-help/help-axismotor.txt b/src/emc/usr_intf/pncconf/pncconf-help/help-axismotor.txt index 501724501..aaf7ac0d1 100644 --- a/src/emc/usr_intf/pncconf/pncconf-help/help-axismotor.txt +++ b/src/emc/usr_intf/pncconf/pncconf-help/help-axismotor.txt @@ -10,25 +10,44 @@ Servo Info: FF0 - zero order feed forward FF1 - first order feed forward FF2 - second order feed forward - Bias - used to add / subract a constant value to dac. + Bias - used to add / subtract a constant value to dac. Deadband - if the actual position is in this band - of the commanded proportional control will not be - added. + of the commanded proportional control will not be added. Dac scale - scales the output nominal is +-1 volt Dac Max output - clamps the output to +- this value - Dac offset - used to offset dac range. 3PWM scale - sets the mid point scale factor: see man pages 3PWM deadtime - deadtime between high side and low side enable - Too little deadtime creates a short circuit - not good. + Too little deadtime creates a short circuit - not good. + +Dac Scale: + Dac scale sets the user DAC units to PWM duty cycle. The maximum duty cycle + is (+ or -) 1. + If using the 7i33 daughter board then at maximum duty cycle of (+ or -) 1 + the 7i33 outputs (+ or -) 10 volts (and produce maximum motor speed) + If using the 7i29 daughter board at maximum duty cycle of (+ or -) 1 + then the output would be (+ or -) supply voltage (and produce maximum motor + speed). So with a scale of one, DAC units are duty cycle. If you were using + the 7i33 daughter board then maybe you would like the Dac units to be voltage. + then you would set the dac scale to 10. 10 volts / 10 (scale) = 1 (duty cycle) + You could scale this to represent motor speed, voltage, duty cycle or anything + else. Common settings would be duty cycle (scale of 1), voltage (scale of + maximum voltage) or axis speed (scale of maximum axis speed in machine + units per second). I reccomend axis speed. + Note that scale is tied closely to dac max output. + +Dac Max Output: + This is the maximum output that the dac can output to the amps. It is in the + units set by the dac scale. It using a simple H-bridge you may have to set + this less then the actual max output as H-bridges must turn on and off at a + minimum rate. Brushless Control: Select this to use and configure the BLDC component. The BLDC component can be used to control brushless motors directly and for HALL sensor conversions. See the MAN pages. - PNCconf Does not finish the HAL connections for BLDC control. + PNCconf does not finish the HAL connections for BLDC control. I have nothing to test with - so you'll have to tinker with it. Please send suggestions to EMC mail list or forum. - Open loop servo test Button: Use this test to confirm proper Dac output. @@ -39,8 +58,10 @@ Open loop servo test Button: direction when the motor turns in the positive direction. If this is not true expect a SERVO MOTOR RUN AWAY when using PID control! + You can confirm the maximum axis speed the servo can produce. You can also confirm the encoder scaling is correct, by moving - the axis a known distance and noting the encoder count. + the axis a known distance and noting the encoder count. The encoder + should function with out the amp enabled depending how it is powered. The limit switches are not functional during this test. Spindle-at-speed settings: @@ -49,7 +70,7 @@ Spindle-at-speed settings: digital input signal is required for this. Spindle display filter gain: - If a spindle speed display was choosen, this sets the filter + If a spindle speed display was chosen, this sets the filter gain which helps stop the display from bouncing around. Stepper Info: @@ -74,6 +95,8 @@ Axis info: Invert encoder direction - check to reverse encoder direction When using metric units check the defaults carefully they are not converted so need to be adjusted to sane values. + Following error setting are usually temporarily set larger to help with + servo tuning. Calculate Scale Button: You can enter scaling directly or use this dialog to calculate them. @@ -99,7 +122,6 @@ Calculate Scale Button: The motion data is just for information. If you wish to use the settings press apply otherwise cancel. - Test / Tune Axis Button: Use this to test and tune the current axis. This is unavailable for servos or if using simulated realtime. From 1ee985dbad76fddac9e2c3a08f02cb8e6a5a0e32 Mon Sep 17 00:00:00 2001 From: cmorley Date: Sun, 25 Sep 2011 23:49:14 -0700 Subject: [PATCH 0037/1024] pncconf - set dac scale and dac max output to default of 10 While setting scale to max axis speed would be better. there is no way to know that so we default to setting it to represent voltage as in a +-10 volt servo amp having scale at 1 and max output at 10 was just wrong --- src/emc/usr_intf/pncconf/pncconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 0ad7f776b..4feae480f 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -1089,7 +1089,7 @@ def __init__(self): self[temp+"invertencoder"]= 0 self[temp+"3pwmscale"]= 1 self[temp+"3pwmdeadtime"]= 500 - self[temp+"outputscale"]= 1 + self[temp+"outputscale"]= 10 self[temp+"outputoffset"]= 0 self[temp+"maxoutput"]= 10 self[temp+"P"]= 1.0 From 51a8a53d2aabd4cd1d927aa57e692e5f02155d88 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Thu, 7 Oct 2010 17:24:59 -0700 Subject: [PATCH 0038/1024] emcrsh: avoid segv if client omits passwd with "set enable" --- src/emc/usr_intf/emcrsh.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emc/usr_intf/emcrsh.cc b/src/emc/usr_intf/emcrsh.cc index e0602641f..732c18b92 100644 --- a/src/emc/usr_intf/emcrsh.cc +++ b/src/emc/usr_intf/emcrsh.cc @@ -745,7 +745,7 @@ static cmdResponseType setVerbose(char *s, connectionRecType *context) static cmdResponseType setEnable(char *s, connectionRecType *context) { - if (strcmp(s, enablePWD) == 0) { + if (s && (strcmp(s, enablePWD) == 0) ) { enabledConn = context->cliSock; context->enabled = true; return rtNoError; From 3d5b73ebde4d1b6eb06274b3f8447881a979d39f Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 27 Sep 2011 15:32:36 -0600 Subject: [PATCH 0039/1024] sample configs: remove a stray unused hal file --- configs/sim/sim-xyyz.hal | 67 ---------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 configs/sim/sim-xyyz.hal diff --git a/configs/sim/sim-xyyz.hal b/configs/sim/sim-xyyz.hal deleted file mode 100644 index 6d0555b55..000000000 --- a/configs/sim/sim-xyyz.hal +++ /dev/null @@ -1,67 +0,0 @@ -# core HAL config file for simulation - -# first load all the RT modules that will be needed -# kinematics -loadrt gantrykins -setp gantrykins.joint-0 0 -setp gantrykins.joint-1 1 -setp gantrykins.joint-2 2 -setp gantrykins.joint-3 1 - -# motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD -# load 6 differentiators (for velocity and accel signals -loadrt ddt count=6 -# load additional blocks -loadrt hypot count=2 -loadrt comp count=4 -loadrt or2 count=1 - -# add motion controller functions to servo thread -addf motion-command-handler servo-thread -addf motion-controller servo-thread -# link the differentiator functions into the code -addf ddt.0 servo-thread -addf ddt.1 servo-thread -addf ddt.2 servo-thread -addf ddt.3 servo-thread -addf ddt.4 servo-thread -addf ddt.5 servo-thread -addf hypot.0 servo-thread -addf hypot.1 servo-thread - -# create HAL signals for position commands from motion module -# loop position commands back to motion module feedback -net Xpos axis.0.motor-pos-cmd => axis.0.motor-pos-fb ddt.0.in -net Ypos axis.1.motor-pos-cmd => axis.1.motor-pos-fb ddt.2.in -net Zpos axis.2.motor-pos-cmd => axis.2.motor-pos-fb ddt.4.in -net Y1pos axis.3.motor-pos-cmd => axis.3.motor-pos-fb - -# send the position commands thru differentiators to -# generate velocity and accel signals -# define the signals, and hook them up -net Xvel ddt.0.out => ddt.1.in hypot.0.in0 -net Xacc <= ddt.1.out -net Yvel ddt.2.out => ddt.3.in hypot.0.in1 -net Yacc <= ddt.3.out -net Zvel ddt.4.out => ddt.5.in hypot.1.in0 -net Zacc <= ddt.5.out - -net XYvel hypot.0.out => hypot.1.in0 -net XYZvel <= hypot.1.out - -# estop loopback -net enable iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in - -# create signals for tool loading loopback -net tool-prepare iocontrol.0.tool-prepare => iocontrol.0.tool-prepared -net tool-change iocontrol.0.tool-change => iocontrol.0.tool-changed - -# amp control -net xena <= axis.0.amp-enable-out -net yena <= axis.1.amp-enable-out -net zena <= axis.2.amp-enable-out - -net xflt => axis.0.amp-fault-in -net yflt => axis.1.amp-fault-in -net zflt => axis.2.amp-fault-in From 0bcf519c2023b559981981df355d8ee6a6c8db89 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 27 Sep 2011 15:23:48 -0600 Subject: [PATCH 0040/1024] docs: fix a typo in gantrykins manpage --- docs/man/man9/gantrykins.9 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/man/man9/gantrykins.9 b/docs/man/man9/gantrykins.9 index ee3ce3b46..792994469 100644 --- a/docs/man/man9/gantrykins.9 +++ b/docs/man/man9/gantrykins.9 @@ -17,7 +17,7 @@ gantrykins \- A kinematics module that maps one axis to multiple joints The \fBcoordinates=\fR parameter specifies the initial gantry joint mapping. Each axis letter is mapped to a joint, starting from 0. So \fBcoordinates=XYYZ\fR maps the X axis to joint 0, the Y axis to joint 1 and 2, -and the Z axis to joint 4. If not specified, the default mapping is +and the Z axis to joint 3. If not specified, the default mapping is \fBcoordinates=XYZABC\fR. Coordinate letters may be specified in uppercase or lowercase. From 6a2808ddaa9bc1b5e5df21ab01b55f3e24e3f06f Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 27 Sep 2011 16:58:14 -0600 Subject: [PATCH 0041/1024] docs: add a note about homing & jogging gantrykins --- docs/man/man9/gantrykins.9 | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/docs/man/man9/gantrykins.9 b/docs/man/man9/gantrykins.9 index 792994469..c089681f7 100644 --- a/docs/man/man9/gantrykins.9 +++ b/docs/man/man9/gantrykins.9 @@ -21,6 +21,32 @@ and the Z axis to joint 3. If not specified, the default mapping is \fBcoordinates=XYZABC\fR. Coordinate letters may be specified in uppercase or lowercase. +.SS A note about joints and axes +EMC2 makes a distinction between joints and axes: a joint is something +controlled by a motor, and an axis is a coordinate you can move via +G-code. You can also jog joints or jog axes. + +A gantry has two joints controlling one axis, and this requires a bit +of special care. + +Homing always happens in joint mode (aka Free mode). The two joints +of a gantry's axis must be homed together, so they must have the same +[AXIS_n]HOME_SEQUENCE in the .ini file. + +Jogging of a gantry must happen in world mode (aka Teleop mode). If you +jog a gantry in joint mode (Free mode), you will move just one of the +joints, and the gantry will rack. In contrast, if you jog a gantry in +world mode (Teleop mode), it's the axis that jogs: emc2 will coordinate +the motion of the two joints that make up the axis, both joints will +move together, and the gantry will stay square. + +The Axis GUI has provisions for jogging in joint mode (Free) and in +world mode (Teleop). Use the "$" hotkey, or the View mennu to switch +between them. + +Joint-mode (aka Free mode) supports continuous and incremental jogging. +World-mode (aka Teleop mode) only supports continuous jogging. + .SH KINEMATICS In the inverse kinematics, each joint gets the value of its corresponding axis. In the forward kinematics, each axis gets the value of the highest numbered @@ -36,8 +62,11 @@ None. .SH PARAMETERS .TP .B gantrykins.joint-\fIN\fR (s32) -Specifies the axis mapped to joint \fIN\fR. The values 0 through 8 -correspond to the axes XYZABCUVW. +Specifies the axis mapped to joint \fIN\fR. The values 0 through +8 correspond to the axes XYZABCUVW. It is preferable to use the +"coordinates=" parameter at loadrt-time rather than setting the joint-N +parameters later, because the gantrykins module prints the joint-to-axis +mapping at loadrt-time, and having that output correct is nice. .SH NOTES \fBgantrykins\fR must be loaded before \fBmotion\fR. From 8553587fc78e6612d22865bfc5f7930b1335559d Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Sun, 25 Sep 2011 23:05:09 -0600 Subject: [PATCH 0042/1024] configs: add a sim gantry config --- configs/sim/README | 2 + configs/sim/gantry.ini | 237 ++++++++++++++++++++++++++ configs/sim/gantrysim.hal | 35 ++++ configs/sim/simulated-gantry-home.hal | 47 +++++ 4 files changed, 321 insertions(+) create mode 100644 configs/sim/gantry.ini create mode 100644 configs/sim/gantrysim.hal create mode 100644 configs/sim/simulated-gantry-home.hal diff --git a/configs/sim/README b/configs/sim/README index bfbf6e953..df17924c0 100644 --- a/configs/sim/README +++ b/configs/sim/README @@ -32,6 +32,8 @@ Right now the possible choices are: -- tripod.ini (non-trivial kinematics machine) +-- gantry.ini (gantry machine, XYYZ) + -- xemc.ini (native X interface, runs ok on older machines) Select one of these if you have no functional machine diff --git a/configs/sim/gantry.ini b/configs/sim/gantry.ini new file mode 100644 index 000000000..c14fb798f --- /dev/null +++ b/configs/sim/gantry.ini @@ -0,0 +1,237 @@ +# EMC controller parameters for a simulated gantry machine. + +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = EMC-GANTRY-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +# DEBUG = 0x00000007 +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = tkemc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 + +# gantry machines jog in Teleop-mode (aka World-mode) only, +# which does not support incremental jogs +#INCREMENTS = 0.100 in, 0.010 in, 0.001 in, 0.0001 in + + +# the [DISPLAY]GEOMETRY tells the UI how to display the preview and +# backplot, it's got nothing to do with how the joints of the machine map +# to axes +GEOMETRY = XYYZ + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .dxf 3D Polygon Model +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode.py +gif = image-to-gcode.py +jpg = image-to-gcode.py +dxf = toolpaths.py +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = gantrysim.hal +HALFILE = simulated-gantry-home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +# These two variables are a bit weird for gantry machines. +# The gantry machine that this sim config describes has only three axes (X, +# Y, and Z), but it uses two joints to implement the Y axis. The +# [TRAJ]AXES variable somewhat confusingly counts joints, not axes. +# Furthermore, the [TRAJ]COORDINATES variable only lists the axis names +# that are accepted in incoming G-code, and duplicate names here have no +# effect. +AXES = 4 +COORDINATES = X Y Y Z + +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.0 +MAX_VELOCITY = 58 +MAX_LINEAR_VELOCITY = 58 +#DEFAULT_ACCELERATION = 20.0 +#MAX_ACCELERATION = 20.0 + +# Axes sections --------------------------------------------------------------- + +# X axis +[AXIS_0] +TYPE = LINEAR + +MAX_VELOCITY = 39 +MAX_ACCELERATION = 120.0 + +MIN_LIMIT = -0.01 +MAX_LIMIT = 50.0 + +HOME = 0 +HOME_SEQUENCE = 1 +HOME_SEARCH_VEL = -39 +HOME_LATCH_VEL = 10 +HOME_USE_INDEX = no +HOME_IGNORE_LIMITS = yes +HOME_OFFSET = -0.1 +HOME_IS_SHARED = 1 + +FERROR = 0.050 +MIN_FERROR = 0.010 + + +# Y Axis, first joint +[AXIS_1] +TYPE = LINEAR + +MIN_LIMIT = -0.01 +MAX_LIMIT = 50.0 + +HOME = 0.0 +HOME_SEQUENCE = 1 +HOME_SEARCH_VEL = -39 +HOME_LATCH_VEL = 10 +HOME_USE_INDEX = no +HOME_IGNORE_LIMITS = yes +HOME_OFFSET = -0.1 +HOME_IS_SHARED = 0 + +FERROR = 0.050 +MIN_FERROR = 0.010 + +MAX_VELOCITY = 39 +MAX_ACCELERATION = 120.0 + + +# Z axis +[AXIS_2] +TYPE = LINEAR + +HOME = 0.0 +HOME_SEQUENCE = 0 +HOME_SEARCH_VEL = 39 +HOME_LATCH_VEL = -10 +HOME_USE_INDEX = no +HOME_IGNORE_LIMITS = yes +HOME_OFFSET = 0.1 +HOME_IS_SHARED = 1 + +MIN_LIMIT = -50.0 +MAX_LIMIT = 0.01 + +FERROR = 0.050 +MIN_FERROR = 0.010 + +MAX_VELOCITY = 39 +MAX_ACCELERATION = 120.0 + + +# Y axis, second joint +[AXIS_3] +TYPE = LINEAR + +HOME = 0.0 +HOME_SEQUENCE = 1 +HOME_SEARCH_VEL = -39 +HOME_LATCH_VEL = 10 +HOME_USE_INDEX = no +HOME_IGNORE_LIMITS = yes +HOME_OFFSET = -0.1 +HOME_IS_SHARED = 0 + +MIN_LIMIT = -0.01 +MAX_LIMIT = 50 + +FERROR = 0.050 +MIN_FERROR = 0.010 + +MAX_VELOCITY = 39 +MAX_ACCELERATION = 120.0 + + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl diff --git a/configs/sim/gantrysim.hal b/configs/sim/gantrysim.hal new file mode 100644 index 000000000..3abd81ba9 --- /dev/null +++ b/configs/sim/gantrysim.hal @@ -0,0 +1,35 @@ + +loadrt gantrykins coordinates=XYZY + +# motion controller, get name and thread periods from ini file +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES + +# add motion controller functions to servo thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread + +# create HAL signals for position commands from motion module +# loop position commands back to motion module feedback +net J0pos axis.0.motor-pos-cmd => axis.0.motor-pos-fb +net J1pos axis.1.motor-pos-cmd => axis.1.motor-pos-fb +net J2pos axis.2.motor-pos-cmd => axis.2.motor-pos-fb +net J3pos axis.3.motor-pos-cmd => axis.3.motor-pos-fb + +# estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# amp control - these nets are not used, but are placeholders for +# converting this sample config to actual machines +net J0ena <= axis.0.amp-enable-out +net J1ena <= axis.1.amp-enable-out +net J2ena <= axis.2.amp-enable-out +net J3ena <= axis.3.amp-enable-out + +net J0flt => axis.0.amp-fault-in +net J1flt => axis.1.amp-fault-in +net J2flt => axis.2.amp-fault-in +net J3flt => axis.3.amp-fault-in diff --git a/configs/sim/simulated-gantry-home.hal b/configs/sim/simulated-gantry-home.hal new file mode 100644 index 000000000..1c5611b91 --- /dev/null +++ b/configs/sim/simulated-gantry-home.hal @@ -0,0 +1,47 @@ + +loadrt comp count=4 +loadrt or2 count=1 + +# Joint 0 = X axis, home switch is on negative end +# Joint 1 = Y1 axis, home switch is on negative end +# Joint 2 = Z axis, home switch is on positive end +# Joint 3 = Y2 axis, home switch is on negative end +net J0homeswpos => comp.0.in1 +net J1homeswpos => comp.1.in1 +net J2homeswpos => comp.2.in0 +net J3homeswpos => comp.3.in1 + +sets J0homeswpos -0.1 +sets J1homeswpos -0.1 +sets J2homeswpos 0.1 +sets J3homeswpos -0.1 + +net J0pos => comp.0.in0 +net J1pos => comp.1.in0 +net J2pos => comp.2.in1 +net J3pos => comp.3.in0 + +setp comp.0.hyst .02 +setp comp.1.hyst .02 +setp comp.2.hyst .02 +setp comp.3.hyst .02 + +# the X and Z joints share a home switch +# the Y joints each have their own home switches +net J0homesw <= comp.0.out +net J1homesw <= comp.1.out => axis.1.home-sw-in +net J2homesw <= comp.2.out +net J3homesw <= comp.3.out => axis.3.home-sw-in + +net J0homesw => or2.0.in0 +net J2homesw => or2.0.in1 +net J0.J1homesw or2.0.out => axis.0.home-sw-in axis.2.home-sw-in + + +addf comp.0 servo-thread +addf comp.1 servo-thread +addf comp.2 servo-thread +addf comp.3 servo-thread + +addf or2.0 servo-thread + From bc5b33c97cadadb0ad9bef63c89928d3a720dd95 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:03:56 -0700 Subject: [PATCH 0043/1024] encoder: rename export_counter to export_encoder and reduce its parameters try to clarify man page for naming of pins and parameters --- docs/man/man9/encoder.9 | 13 ++++++++----- src/hal/components/encoder.c | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/man/man9/encoder.9 b/docs/man/man9/encoder.9 index 0baff0489..708cbcfe1 100644 --- a/docs/man/man9/encoder.9 +++ b/docs/man/man9/encoder.9 @@ -48,13 +48,16 @@ and other necessary conversion, handles counter rollover, etc. Can (and should) be called less frequently than \fBupdate-counters\fR. Operates on all channels at once. +.SH NAMING +The names for pins and parameters are prefixed as: + \fBencoder.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBencoder.N.\fR format is shown in the following descriptions. + + .SH PINS -Pin names for num_chan= specifier are: - \fBencoder.\fIN\fB.the_pin_name\fR -.TP -Pin names for names= specifier are: - \fBname\fB.the_pin_name\fR .TP \fBencoder.\fIN\fB.counter-mode\fR bit i/o Enables counter mode. When true, the counter counts each rising edge of the diff --git a/src/hal/components/encoder.c b/src/hal/components/encoder.c index 7d76806ce..da87f8562 100644 --- a/src/hal/components/encoder.c +++ b/src/hal/components/encoder.c @@ -181,7 +181,7 @@ static int comp_id; /* component ID */ * LOCAL FUNCTION DECLARATIONS * ************************************************************************/ -static int export_counter(int num, counter_t * addr,char * prefix); +static int export_encoder(counter_t * addr,char * prefix); static void update(void *arg, long period); static void capture(void *arg, long period); @@ -238,9 +238,9 @@ int rtapi_app_main(void) if(num_chan) { char buf[HAL_NAME_LEN + 1]; rtapi_snprintf(buf, sizeof(buf), "encoder.%d", n); - retval = export_counter(n, cntr,buf); + retval = export_encoder(cntr,buf); } else { - retval = export_counter(n, cntr,names[i++]); + retval = export_encoder(cntr,names[i++]); } if (retval != 0) { rtapi_print_msg(RTAPI_MSG_ERR, @@ -512,7 +512,7 @@ static void capture(void *arg, long period) * LOCAL FUNCTION DEFINITIONS * ************************************************************************/ -static int export_counter(int num, counter_t * addr,char * prefix) +static int export_encoder(counter_t * addr,char * prefix) { int retval, msg; From 77a0082cad269de2841b2fc3faedde64f282783c Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:08:15 -0700 Subject: [PATCH 0044/1024] pid: bugfix: use howmany not num_chan in test also: reduce parameters of export_pid() try to clarify man page for naming of pins, parameters, functions --- docs/man/man9/pid.9 | 12 +++++++----- src/hal/components/pid.c | 12 ++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/man/man9/pid.9 b/docs/man/man9/pid.9 index e51f9619c..1c671b587 100644 --- a/docs/man/man9/pid.9 +++ b/docs/man/man9/pid.9 @@ -26,6 +26,13 @@ value is three. If \fBdebug\fR is set to 1 (the default is 0), some additional HAL parameters will be exported, which might be useful for tuning, but are otherwise unnecessary. +.SH NAMING +The names for pins, parameters, and functions are prefixed as: + \fBpid.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBpid.N.\fR format is shown in the following descriptions. + .SH FUNCTIONS \fBpid.\fIN\fB.do-pid-calcs\fR (uses floating-point) @@ -33,11 +40,6 @@ Does the PID calculations for control loop \fIN\fR. .SH PINS -Pin names for num_chan= specifier are: - \fBencoder.\fIN\fB.the_pin_name\fR -.TP -Pin names for names= specifier are: - \fBname\fB.the_pin_name\fR .TP \fBpid.\fIN\fB.command\fR float in The desired (commanded) value for the control loop. diff --git a/src/hal/components/pid.c b/src/hal/components/pid.c index 14d0726a5..8aabb87d7 100644 --- a/src/hal/components/pid.c +++ b/src/hal/components/pid.c @@ -211,7 +211,7 @@ static int comp_id; /* component ID */ * LOCAL FUNCTION DECLARATIONS * ************************************************************************/ -static int export_pid(int num, hal_pid_t * addr,char * prefix); +static int export_pid(hal_pid_t * addr,char * prefix); static void calc_pid(void *arg, long period); /*********************************************************************** @@ -236,7 +236,7 @@ int rtapi_app_main(void) } /* test for number of channels */ - if ((howmany <= 0) || (num_chan > MAX_CHAN)) { + if ((howmany <= 0) || (howmany > MAX_CHAN)) { rtapi_print_msg(RTAPI_MSG_ERR, "PID: ERROR: invalid number of channels: %d\n", howmany); return -1; @@ -261,9 +261,9 @@ int rtapi_app_main(void) if(num_chan) { char buf[HAL_NAME_LEN + 1]; rtapi_snprintf(buf, sizeof(buf), "pid.%d", n); - retval = export_pid(n, &(pid_array[n]), buf); + retval = export_pid(&(pid_array[n]), buf); } else { - retval = export_pid(n, &(pid_array[n]), names[i++]); + retval = export_pid(&(pid_array[n]), names[i++]); } if (retval != 0) { @@ -443,7 +443,7 @@ static void calc_pid(void *arg, long period) * LOCAL FUNCTION DEFINITIONS * ************************************************************************/ -static int export_pid(int num, hal_pid_t * addr, char * prefix) +static int export_pid(hal_pid_t * addr, char * prefix) { int retval, msg; char buf[HAL_NAME_LEN + 1]; @@ -645,7 +645,7 @@ static int export_pid(int num, hal_pid_t * addr, char * prefix) /* export function for this loop */ rtapi_snprintf(buf, sizeof(buf), "%s.do-pid-calcs", prefix); retval = - hal_export_funct(buf, calc_pid, &(pid_array[num]), 1, 0, comp_id); + hal_export_funct(buf, calc_pid, addr, 1, 0, comp_id); if (retval != 0) { rtapi_print_msg(RTAPI_MSG_ERR, "PID: ERROR: do_pid_calcs funct export failed\n"); From 8afcf3700db68200f81a6198e7d226ef17db5088 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:11:25 -0700 Subject: [PATCH 0045/1024] siggen: support names= option --- docs/man/man9/siggen.9 | 19 ++++++++-- src/hal/components/siggen.c | 72 +++++++++++++++++++++++++------------ 2 files changed, 67 insertions(+), 24 deletions(-) diff --git a/docs/man/man9/siggen.9 b/docs/man/man9/siggen.9 index 75ca6c6cf..be4a8f0f8 100644 --- a/docs/man/man9/siggen.9 +++ b/docs/man/man9/siggen.9 @@ -8,7 +8,9 @@ .SH NAME siggen \- signal generator .SH SYNOPSIS -\fBloadrt siggen num_chan=\fInum\fR +\fBloadrt siggen [num_chan=\fInum\fB | names=\fIname1\fB[,\fIname2...\fB]] + + .SH DESCRIPTION \fBsiggen\fR is a signal generator that can be used for testing and @@ -20,9 +22,21 @@ components. .P \fBsiggen\fR supports a maximum of sixteen channels. The number of channels actually loaded is set by the \fBnum_chan\fR argument when -the module is loaded. If \fBnumchan\fR is not specified, the default +the module is loaded. Alternatively, specify \fBnames=\fR and unique names +separated by commas. +.P +The \fBnum_chan=\fR and \fBnames=\fR specifiers are mutually exclusive. +If neither \fBnum_chan=\fR nor \fBnames=\fR are specified, the default value is one. +.SH NAMING +The names for pins, parameters, and functions are prefixed as: + \fBsiggen.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBsiggen.N.\fR format is shown in the following descriptions. + + .SH FUNCTIONS .TP \fBsiggen.\fIN\fB.update\fR (uses floating-point) @@ -32,6 +46,7 @@ faster than the desired signal frequency, to avoid distortion and aliasing. .SH PINS + .TP \fBsiggen.\fIN\fB.frequency\fR float in The output frequency for signal generator \fIN\fR, in Hertz. The default diff --git a/src/hal/components/siggen.c b/src/hal/components/siggen.c index e7559008e..03dcc59f8 100644 --- a/src/hal/components/siggen.c +++ b/src/hal/components/siggen.c @@ -16,7 +16,9 @@ will mostly be used for testing. It is a realtime component. It supports any number of signal generators, as set by the - insmod parameter 'num_chan'. + insmod parameter 'num_chan'. Alternatively,use the names= specifier + and a list of unique names separated by commas. The names= and + num_chan= specifiers are mututally exclusive. Each generator has a number of pins and parameters, whose names begin with 'siggen.x.', where 'x' is the generator number. @@ -72,14 +74,21 @@ #include "hal.h" /* HAL public API decls */ #include #include +#include /* module information */ MODULE_AUTHOR("John Kasunich"); MODULE_DESCRIPTION("Signal Generator Component for EMC HAL"); MODULE_LICENSE("GPL"); -static int num_chan = 1; /* number of channels - default = 1 */ +static int num_chan; /* number of channels */ +static int default_num_chan = 1; +static int howmany; RTAPI_MP_INT(num_chan, "number of channels"); +#define MAX_CHAN 16 +static char *names[MAX_CHAN] = {0,}; +RTAPI_MP_ARRAY_STRING(names, MAX_CHAN, "names of siggen"); + /*********************************************************************** * STRUCTURES AND GLOBAL VARIABLES * ************************************************************************/ @@ -110,23 +119,34 @@ static int comp_id; /* component ID */ * LOCAL FUNCTION DECLARATIONS * ************************************************************************/ -static int export_siggen(int num, hal_siggen_t * addr); +static int export_siggen(int num, hal_siggen_t * addr,char* prefix); static void calc_siggen(void *arg, long period); /*********************************************************************** * INIT AND EXIT CODE * ************************************************************************/ -#define MAX_CHAN 16 int rtapi_app_main(void) { - int n, retval; + int n, retval, i; + + if(num_chan && names[0]) { + rtapi_print_msg(RTAPI_MSG_ERR,"num_chan= and names= are mutually exclusive\n"); + return -EINVAL; + } + if(!num_chan && !names[0]) num_chan = default_num_chan; + + if(num_chan) { + howmany = num_chan; + } else { + for(i=0; names[i]; i++) {howmany = i+1;} + } /* test for number of channels */ - if ((num_chan <= 0) || (num_chan > MAX_CHAN)) { + if ((howmany <= 0) || (howmany > MAX_CHAN)) { rtapi_print_msg(RTAPI_MSG_ERR, - "SIGGEN: ERROR: invalid num_chan: %d\n", num_chan); + "SIGGEN: ERROR: invalid number of channels: %d\n", howmany); return -1; } /* have good config info, connect to the HAL */ @@ -136,7 +156,7 @@ int rtapi_app_main(void) return -1; } /* allocate shared memory for siggen data */ - siggen_array = hal_malloc(num_chan * sizeof(hal_siggen_t)); + siggen_array = hal_malloc(howmany * sizeof(hal_siggen_t)); if (siggen_array == 0) { rtapi_print_msg(RTAPI_MSG_ERR, "SIGGEN: ERROR: hal_malloc() failed\n"); @@ -144,9 +164,17 @@ int rtapi_app_main(void) return -1; } /* export variables and functions for each siggen */ - for (n = 0; n < num_chan; n++) { + i = 0; // for names= items + for (n = 0; n < howmany; n++) { /* export everything for this loop */ - retval = export_siggen(n, &(siggen_array[n])); + if(num_chan) { + char buf[HAL_NAME_LEN + 1]; + rtapi_snprintf(buf, sizeof(buf), "siggen.%d", n); + retval = export_siggen(n, &(siggen_array[n]),buf); + } else { + retval = export_siggen(n, &(siggen_array[n]),names[i++]); + } + if (retval != 0) { rtapi_print_msg(RTAPI_MSG_ERR, "SIGGEN: ERROR: siggen %d var export failed\n", n); @@ -155,7 +183,7 @@ int rtapi_app_main(void) } } rtapi_print_msg(RTAPI_MSG_INFO, - "SIGGEN: installed %d signal generators\n", num_chan); + "SIGGEN: installed %d signal generators\n", howmany); hal_ready(comp_id); return 0; } @@ -235,54 +263,54 @@ static void calc_siggen(void *arg, long period) * LOCAL FUNCTION DEFINITIONS * ************************************************************************/ -static int export_siggen(int num, hal_siggen_t * addr) +static int export_siggen(int num, hal_siggen_t * addr,char* prefix) { int retval; char buf[HAL_NAME_LEN + 1]; /* export pins */ retval = hal_pin_float_newf(HAL_OUT, &(addr->square), comp_id, - "siggen.%d.square", num); + "%s.square", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_OUT, &(addr->sawtooth), comp_id, - "siggen.%d.sawtooth", num); + "%s.sawtooth", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_OUT, &(addr->triangle), comp_id, - "siggen.%d.triangle", num); + "%s.triangle", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_OUT, &(addr->sine), comp_id, - "siggen.%d.sine", num); + "%s.sine", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_OUT, &(addr->cosine), comp_id, - "siggen.%d.cosine", num); + "%s.cosine", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_OUT, &(addr->clock), comp_id, - "siggen.%d.clock", num); + "%s.clock", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_IN, &(addr->frequency), comp_id, - "siggen.%d.frequency", num); + "%s.frequency", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_IN, &(addr->amplitude), comp_id, - "siggen.%d.amplitude", num); + "%s.amplitude", prefix); if (retval != 0) { return retval; } retval = hal_pin_float_newf(HAL_IN, &(addr->offset), comp_id, - "siggen.%d.offset", num); + "%s.offset", prefix); if (retval != 0) { return retval; } @@ -298,7 +326,7 @@ static int export_siggen(int num, hal_siggen_t * addr) *(addr->offset) = 0.0; addr->index = 0.0; /* export function for this loop */ - rtapi_snprintf(buf, sizeof(buf), "siggen.%d.update", num); + rtapi_snprintf(buf, sizeof(buf), "%s.update", prefix); retval = hal_export_funct(buf, calc_siggen, &(siggen_array[num]), 1, 0, comp_id); From 7e7158a554b079270b7a7f0949e57ecdf3acef35 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:13:25 -0700 Subject: [PATCH 0046/1024] at_pid: support names= option --- docs/man/man9/at_pid.9 | 23 ++++++- src/hal/components/at_pid.c | 125 ++++++++++++++++++++++-------------- 2 files changed, 98 insertions(+), 50 deletions(-) diff --git a/docs/man/man9/at_pid.9 b/docs/man/man9/at_pid.9 index 8f6e6a663..6ebcfe191 100644 --- a/docs/man/man9/at_pid.9 +++ b/docs/man/man9/at_pid.9 @@ -8,7 +8,9 @@ .SH NAME at_pid \- proportional/integral/derivative controller with auto tuning .SH SYNOPSIS -\fBloadrt at_pid num_chan=\fInum\fR [\fBdebug=\fIdbg\fR] +\fBloadrt at_pid [num_chan=\fInum\fB | names=\fIname1\fB[,\fIname2...\fB]] + + .SH DESCRIPTION \fBat_pid\fR is a classic Proportional/Integral/Derivative controller, @@ -17,8 +19,14 @@ other closed-loop applications. .P \fBat_pid\fR supports a maximum of sixteen controllers. The number that are actually loaded is set by the \fBnum_chan\fR argument when -the module is loaded. If \fBnumchan\fR is not specified, the default -value is three. If \fBdebug\fR is set to 1 (the default is 0), some +the module is loaded. Alternatively, specify \fBnames=\fR and unique names +separated by commas. +.P +The \fBnum_chan=\fR and \fBnames=\fR specifiers are mutually exclusive. +If neither \fBnum_chan=\fR nor \fBnames=\fR are specified, the default +value is three. +.P +If \fBdebug\fR is set to 1 (the default is 0), some additional HAL parameters will be exported, which might be useful for tuning, but are otherwise unnecessary. .P @@ -44,12 +52,21 @@ occurs, or the oscillation is too small, slowly increase \fBtune-effort\fR. Auto tuning can be aborted at any time by setting \fBenable\fR or \fBtune-mode\fR to false. +.SH NAMING +The names for pins, parameters, and functions are prefixed as: + \fBpid.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBpid.N.\fR format is shown in the following descriptions. + + .SH FUNCTIONS .TP \fBpid.\fIN\fB.do-pid-calcs\fR (uses floating-point) Does the PID calculations for control loop \fIN\fR. .SH PINS + .TP \fBpid.\fIN\fB.command\fR float in The desired (commanded) value for the control loop. diff --git a/src/hal/components/at_pid.c b/src/hal/components/at_pid.c index 01e77468e..d3e38ddb8 100644 --- a/src/hal/components/at_pid.c +++ b/src/hal/components/at_pid.c @@ -10,15 +10,18 @@ * Integeral/Derivative control loops. It is a realtime component. * * It supports a maximum of 16 PID loops, as set by the insmod parameter - * 'num_chan'. + * 'num_chan=' or the 'names=" specifier. The 'num_chan=' and 'names=' + * specifiers are mutually exclusive. * * In this documentation, it is assumed that we are discussing position * loops. However this component can be used to implement other loops * such as speed loops, torch height control, and others. * - * Each loop has a number of pins and parameters, whose names begin - * with 'pid.x.', where 'x' is the channel number. Channel numbers - * start at zero. + * Each loop has a number of pins and parameters + * When the 'num_chan=' method is used, names begin with 'pid.x.', where + * 'x' is the channel number. Channel numbers start at zero. + * When the 'names=' method is used, names begin with the specifed names, + * e.g., for 'names=PID', the pin/parameter begin with "PID." * * The three most important pins are 'command', 'feedback', and * 'output'. For a position loop, 'command' and 'feedback' are @@ -127,11 +130,16 @@ MODULE_AUTHOR("Pete Vavaroutsos"); MODULE_DESCRIPTION("Auto-Tune PID Loop Component for EMC HAL"); MODULE_LICENSE("GPL"); -static int num_chan = 3; // Number of channels - default = 3. +static int num_chan; // Number of channels. +static int default_num_chan = 3; +static int howmany; RTAPI_MP_INT(num_chan, "number of channels"); static int debug = 0; // Flag to export optional params. RTAPI_MP_INT(debug, "enables optional params"); +#define MAX_CHAN 16 +static char *names[MAX_CHAN] = {0,}; +RTAPI_MP_ARRAY_STRING(names, MAX_CHAN, "names of at_pid components"); #define PI 3.141592653589 @@ -213,7 +221,7 @@ typedef struct { // These methods are used for initialization. static int Pid_Init(Pid *this); -static int Pid_Export(Pid *this, int compId, int id); +static int Pid_Export(Pid *this, int compId, char* prefix); static void Pid_AutoTune(Pid *this, long period); static void Pid_CycleEnd(Pid *this); @@ -227,7 +235,6 @@ static void Pid_Refresh(void *this, long period); * ******************************************************************************/ -#define MAX_CHANNELS 16 typedef struct { int id; // HAL component ID. @@ -244,13 +251,25 @@ static Component component; int rtapi_app_main(void) { - int i; + int retval,n,i; Pid *pComp; + if(num_chan && names[0]) { + rtapi_print_msg(RTAPI_MSG_ERR,"num_chan= and names= are mutually exclusive\n"); + return -EINVAL; + } + if(!num_chan && !names[0]) num_chan = default_num_chan; + + if(num_chan) { + howmany = num_chan; + } else { + for(i=0; names[i]; i++) {howmany = i+1;} + } + // Check number of channels. - if((num_chan <= 0) || (num_chan > MAX_CHANNELS)){ + if((howmany <= 0) || (howmany > MAX_CHAN)){ rtapi_print_msg(RTAPI_MSG_ERR, - "PID: ERROR: invalid num_chan: %d\n", num_chan); + "AT_PID: ERROR: invalid number of channels: %d\n", howmany); return(-1); } @@ -262,7 +281,7 @@ rtapi_app_main(void) } // Allocate memory for pid objects. - component.pidTable = hal_malloc(num_chan * sizeof(*pComp)); + component.pidTable = hal_malloc(howmany * sizeof(*pComp)); if(component.pidTable == NULL){ rtapi_print_msg(RTAPI_MSG_ERR, "PID: ERROR: hal_malloc() failed\n"); @@ -271,13 +290,25 @@ rtapi_app_main(void) } pComp = component.pidTable; - for(i = 0; i < num_chan; i++, pComp++){ + i = 0; // for names= items + for(n = 0; n < howmany; n++, pComp++){ // Export pins, parameters, and functions. - if(Pid_Export(pComp, component.id, i)){ - hal_exit(component.id); - return(-1); + if(num_chan) { + char buf[HAL_NAME_LEN + 1]; + // note name is pid not at_pid + rtapi_snprintf(buf, sizeof(buf), "pid.%d", n); + retval = Pid_Export(pComp, component.id, buf); + } else { + retval = Pid_Export(pComp, component.id, names[i++]); } + if (retval != 0) { + rtapi_print_msg(RTAPI_MSG_ERR, + "AT_PID: ERROR: at_pid %d var export failed\n", n); + hal_exit(component.id); + return -1; + } + // Initialize pid. if(Pid_Init(pComp)){ hal_exit(component.id); @@ -347,7 +378,7 @@ Pid_Init(Pid *this) static int -Pid_Export(Pid *this, int compId, int id) +Pid_Export(Pid *this, int compId,char* prefix) { int error, msg; char buf[HAL_NAME_LEN + 1]; @@ -360,125 +391,125 @@ Pid_Export(Pid *this, int compId, int id) rtapi_set_msg_level(RTAPI_MSG_WARN); // Export pins. - error = hal_pin_bit_newf(HAL_IN, &(this->pEnable), compId, "pid.%d.enable", id); + error = hal_pin_bit_newf(HAL_IN, &(this->pEnable), compId, "%s.enable", prefix); if(!error){ - error = hal_pin_float_newf(HAL_IN, &(this->pCommand), compId, "pid.%d.command", id); + error = hal_pin_float_newf(HAL_IN, &(this->pCommand), compId, "%s.command", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IN, &(this->pFeedback), compId, "pid.%d.feedback", id); + error = hal_pin_float_newf(HAL_IN, &(this->pFeedback), compId, "%s.feedback", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->pError), compId, "pid.%d.error", id); + error = hal_pin_float_newf(HAL_OUT, &(this->pError), compId, "%s.error", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->pOutput), compId, "pid.%d.output", id); + error = hal_pin_float_newf(HAL_OUT, &(this->pOutput), compId, "%s.output", prefix); } if(!error){ - error = hal_pin_bit_newf(HAL_IN, &(this->pTuneMode), compId, "pid.%d.tune-mode", id); + error = hal_pin_bit_newf(HAL_IN, &(this->pTuneMode), compId, "%s.tune-mode", prefix); } if(!error){ - error = hal_pin_bit_newf(HAL_IO, &(this->pTuneStart), compId, "pid.%d.tune-start", id); + error = hal_pin_bit_newf(HAL_IO, &(this->pTuneStart), compId, "%s.tune-start", prefix); } // Export pins. (former parameters). if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->deadband), compId, "pid.%d.deadband", id); + error = hal_pin_float_newf(HAL_IO, &(this->deadband), compId, "%s.deadband", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxError), compId, "pid.%d.maxerror", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxError), compId, "%s.maxerror", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxErrorI), compId, "pid.%d.maxerrorI", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxErrorI), compId, "%s.maxerrorI", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxErrorD), compId, "pid.%d.maxerrorD", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxErrorD), compId, "%s.maxerrorD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxCmdD), compId, "pid.%d.maxcmdD", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxCmdD), compId, "%s.maxcmdD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxCmdDd), compId, "pid.%d.maxcmdDD", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxCmdDd), compId, "%s.maxcmdDD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->bias), compId, "pid.%d.bias", id); + error = hal_pin_float_newf(HAL_IO, &(this->bias), compId, "%s.bias", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->pGain), compId, "pid.%d.Pgain", id); + error = hal_pin_float_newf(HAL_IO, &(this->pGain), compId, "%s.Pgain", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->iGain), compId, "pid.%d.Igain", id); + error = hal_pin_float_newf(HAL_IO, &(this->iGain), compId, "%s.Igain", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->dGain), compId, "pid.%d.Dgain", id); + error = hal_pin_float_newf(HAL_IO, &(this->dGain), compId, "%s.Dgain", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->ff0Gain), compId, "pid.%d.FF0", id); + error = hal_pin_float_newf(HAL_IO, &(this->ff0Gain), compId, "%s.FF0", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->ff1Gain), compId, "pid.%d.FF1", id); + error = hal_pin_float_newf(HAL_IO, &(this->ff1Gain), compId, "%s.FF1", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->ff2Gain), compId, "pid.%d.FF2", id); + error = hal_pin_float_newf(HAL_IO, &(this->ff2Gain), compId, "%s.FF2", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->maxOutput), compId, "pid.%d.maxoutput", id); + error = hal_pin_float_newf(HAL_IO, &(this->maxOutput), compId, "%s.maxoutput", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_IO, &(this->tuneEffort), compId, "pid.%d.tune-effort", id); + error = hal_pin_float_newf(HAL_IO, &(this->tuneEffort), compId, "%s.tune-effort", prefix); } if(!error){ - error = hal_pin_u32_newf(HAL_IO, &(this->tuneCycles), compId, "pid.%d.tune-cycles", id); + error = hal_pin_u32_newf(HAL_IO, &(this->tuneCycles), compId, "%s.tune-cycles", prefix); } if(!error){ - error = hal_pin_u32_newf(HAL_IO, &(this->tuneType), compId, "pid.%d.tune-type", id); + error = hal_pin_u32_newf(HAL_IO, &(this->tuneType), compId, "%s.tune-type", prefix); } // Export optional parameters. if(debug > 0){ if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->errorI), compId, "pid.%d.errorI", id); + error = hal_pin_float_newf(HAL_OUT, &(this->errorI), compId, "%s.errorI", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->errorD), compId, "pid.%d.errorD", id); + error = hal_pin_float_newf(HAL_OUT, &(this->errorD), compId, "%s.errorD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->cmdD), compId, "pid.%d.commandD", id); + error = hal_pin_float_newf(HAL_OUT, &(this->cmdD), compId, "%s.commandD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->cmdDd), compId, "pid.%d.commandDD", id); + error = hal_pin_float_newf(HAL_OUT, &(this->cmdDd), compId, "%s.commandDD", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->ultimateGain), compId, "pid.%d.ultimate-gain", id); + error = hal_pin_float_newf(HAL_OUT, &(this->ultimateGain), compId, "%s.ultimate-gain", prefix); } if(!error){ - error = hal_pin_float_newf(HAL_OUT, &(this->ultimatePeriod), compId, "pid.%d.ultimate-period", id); + error = hal_pin_float_newf(HAL_OUT, &(this->ultimatePeriod), compId, "%s.ultimate-period", prefix); } } else { this->errorI = (hal_float_t *) hal_malloc(sizeof(hal_float_t)); @@ -491,7 +522,7 @@ Pid_Export(Pid *this, int compId, int id) // Export functions. if(!error){ - rtapi_snprintf(buf, sizeof(buf), "pid.%d.do-pid-calcs", id); + rtapi_snprintf(buf, sizeof(buf), "%s.do-pid-calcs", prefix); error = hal_export_funct(buf, Pid_Refresh, this, 1, 0, compId); } From d782cf575db397c725cb3588bdfbec38acfac99c Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:15:07 -0700 Subject: [PATCH 0047/1024] sim_encoder: support names= option --- docs/man/man9/sim_encoder.9 | 22 ++++++++-- src/hal/components/sim_encoder.c | 70 ++++++++++++++++++++++---------- 2 files changed, 68 insertions(+), 24 deletions(-) diff --git a/docs/man/man9/sim_encoder.9 b/docs/man/man9/sim_encoder.9 index 7f1efcc70..17546e0e1 100644 --- a/docs/man/man9/sim_encoder.9 +++ b/docs/man/man9/sim_encoder.9 @@ -8,7 +8,9 @@ .SH NAME sim_encoder \- simulated quadrature encoder .SH SYNOPSIS -\fBloadrt sim_encoder num_chan=\fInum\fR +\fBloadrt sim_encoder [num_chan=\fInum\fB | names=\fIname1\fB[,\fIname2...\fB]] + + .SH DESCRIPTION \fBsim_encoder\fR can generate quadrature signals as if from an encoder. @@ -19,8 +21,13 @@ generators. .P \fBsim_encoder\fR supports a maximum of eight channels. The number of -channels actually loaded is set by the \fBnum_chan\fR argument when -the module is loaded. If \fBnumchan\fR is not specified, the default +channels actually loaded is set by the \fBnum_chan=\fR argument when +the module is loaded. Alternatively, specify \fBnames=\fR and unique names +separated by commas. + +.P +The \fBnum_chan=\fR and \fBnames=\fR specifiers are mutually exclusive. +If neither \fBnum_chan=\fR nor \fBnames=\fR are specified, the default value is one. .SH FUNCTIONS @@ -37,7 +44,16 @@ effect only when \fBupdate-speed\fR runs. Can (and should) be called less frequently than \fBmake-pulses\fR. Operates on all channels at once. +.SH NAMING +The names for pins and parameters are prefixed as: + \fBsim-encoder.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBsim-encoder.N.\fR format is shown in the following descriptions. + + .SH PINS + .TP \fBsim-encoder.\fIN\fB.phase-A\fR bit out One of the quadrature outputs. diff --git a/src/hal/components/sim_encoder.c b/src/hal/components/sim_encoder.c index ce0472176..0f821179c 100644 --- a/src/hal/components/sim_encoder.c +++ b/src/hal/components/sim_encoder.c @@ -16,7 +16,9 @@ on other HAL pins. A parameter sets the counts/revolution. It supports up to 8 simulated encoders. The number is set by - an insmod command line parameter 'num_chan'. + an insmod command line parameter 'num_chan'. Alternatively, use the + names= specifier and a list of unique names separated by commas. + The names= and num_chan= specifiers are mutually exclusive. The module exports two functions. 'sim-encoder.make-pulses', is responsible for actually generating the A, B, and Z signals. It @@ -58,6 +60,7 @@ #include "rtapi.h" /* RTAPI realtime OS API */ #include "rtapi_app.h" /* RTAPI realtime module decls */ +#include "rtapi_string.h" #include "hal.h" /* HAL public API decls */ #define MAX_CHAN 8 @@ -66,8 +69,12 @@ MODULE_AUTHOR("John Kasunich"); MODULE_DESCRIPTION("Simulated Encoder for EMC HAL"); MODULE_LICENSE("GPL"); -int num_chan = 1; -RTAPI_MP_INT(num_chan, "number of 'encoders'"); +static int num_chan; +static int default_num_chan = 1; +RTAPI_MP_INT(num_chan, "number of 'sim_encoders'"); +static int howmany; +static char *names[MAX_CHAN] = {0,}; +RTAPI_MP_ARRAY_STRING(names, MAX_CHAN, "names of sim_encoder"); /*********************************************************************** * STRUCTURES AND GLOBAL VARIABLES * @@ -109,7 +116,7 @@ static double maxf; /* max frequency in Hz */ * LOCAL FUNCTION DECLARATIONS * ************************************************************************/ -static int export_sim_enc(int num, sim_enc_t * addr); +static int export_sim_enc(sim_enc_t * addr, char *prefix); static void make_pulses(void *arg, long period); static void update_speed(void *arg, long period); @@ -119,11 +126,23 @@ static void update_speed(void *arg, long period); int rtapi_app_main(void) { - int n, retval; + int n, retval, i; - if ((num_chan <= 0) || (num_chan > MAX_CHAN)) { + if(num_chan && names[0]) { + rtapi_print_msg(RTAPI_MSG_ERR,"num_chan= and names= are mutually exclusive\n"); + return -EINVAL; + } + if(!num_chan && !names[0]) num_chan = default_num_chan; + + if(num_chan) { + howmany = num_chan; + } else { + for(i=0; names[i]; i++) {howmany = i+1;} + } + + if ((howmany <= 0) || (howmany > MAX_CHAN)) { rtapi_print_msg(RTAPI_MSG_ERR, - "SIM_ENCODER: ERROR: 'num_chan' must be 1 to %d\n", MAX_CHAN); + "SIM_ENCODER: ERROR: invalid number of channels %d\n", howmany); return -1; } /* periodns will be set to the proper value when 'make_pulses()' @@ -143,7 +162,7 @@ int rtapi_app_main(void) return -1; } /* allocate shared memory for encoder data */ - sim_enc_array = hal_malloc(num_chan * sizeof(sim_enc_t)); + sim_enc_array = hal_malloc(howmany * sizeof(sim_enc_t)); if (sim_enc_array == 0) { rtapi_print_msg(RTAPI_MSG_ERR, "SIM_ENCODER: ERROR: hal_malloc() failed\n"); @@ -151,9 +170,18 @@ int rtapi_app_main(void) return -1; } /* export all the variables for each simulated encoder */ - for (n = 0; n < num_chan; n++) { + i = 0; //for names= items + for (n = 0; n < howmany; n++) { /* export all vars */ - retval = export_sim_enc(n, &(sim_enc_array[n])); + + if(num_chan) { + char buf[HAL_NAME_LEN + 1]; + rtapi_snprintf(buf, sizeof(buf), "sim-encoder.%d", n); + retval = export_sim_enc(&(sim_enc_array[n]),buf); + } else { + retval = export_sim_enc(&(sim_enc_array[n]),names[i++]); + } + if (retval != 0) { rtapi_print_msg(RTAPI_MSG_ERR, "SIM_ENCODER: ERROR: 'encoder' %d var export failed\n", n); @@ -179,7 +207,7 @@ int rtapi_app_main(void) return -1; } rtapi_print_msg(RTAPI_MSG_INFO, - "SIM_ENCODER: installed %d simulated encoders\n", num_chan); + "SIM_ENCODER: installed %d simulated encoders\n", howmany); hal_ready(comp_id); return 0; } @@ -211,7 +239,7 @@ static void make_pulses(void *arg, long period) periodns = period; /* point to sim_enc data structures */ sim_enc = arg; - for (n = 0; n < num_chan; n++) { + for (n = 0; n < howmany; n++) { /* get current value of bit 31 */ overunder = sim_enc->accum >> 31; /* update the accumulator */ @@ -300,7 +328,7 @@ static void update_speed(void *arg, long period) } /* update the 'encoders' */ sim_enc = arg; - for (n = 0; n < num_chan; n++) { + for (n = 0; n < howmany; n++) { /* check for change in scale value */ if ( *(sim_enc->scale) != sim_enc->old_scale ) { /* save new scale to detect future changes */ @@ -334,7 +362,7 @@ static void update_speed(void *arg, long period) * LOCAL FUNCTION DEFINITIONS * ************************************************************************/ -static int export_sim_enc(int num, sim_enc_t * addr) +static int export_sim_enc(sim_enc_t * addr, char *prefix) { int retval, msg; @@ -346,41 +374,41 @@ static int export_sim_enc(int num, sim_enc_t * addr) rtapi_set_msg_level(RTAPI_MSG_WARN); /* export param variable for pulses per rev */ retval = hal_pin_u32_newf(HAL_IO, &(addr->ppr), comp_id, - "sim-encoder.%d.ppr", num); + "%s.ppr", prefix); if (retval != 0) { return retval; } /* export param variable for scaling */ retval = hal_pin_float_newf(HAL_IO, &(addr->scale), comp_id, - "sim-encoder.%d.scale", num); + "%s.scale", prefix); if (retval != 0) { return retval; } /* export pin for speed command */ retval = hal_pin_float_newf(HAL_IN, &(addr->speed), comp_id, - "sim-encoder.%d.speed", num); + "%s.speed", prefix); if (retval != 0) { return retval; } /* export pins for output phases */ retval = hal_pin_bit_newf(HAL_OUT, &(addr->phaseA), comp_id, - "sim-encoder.%d.phase-A", num); + "%s.phase-A", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_OUT, &(addr->phaseB), comp_id, - "sim-encoder.%d.phase-B", num); + "%s.phase-B", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_OUT, &(addr->phaseZ), comp_id, - "sim-encoder.%d.phase-Z", num); + "%s.phase-Z", prefix); if (retval != 0) { return retval; } /* export pin for rawcounts */ retval = hal_pin_s32_newf(HAL_IN, &(addr->rawcounts), comp_id, - "sim-encoder.%d.rawcounts", num); + "%s.rawcounts", prefix); if (retval != 0) { return retval; } From 799075f235c56acb4f79fdc56a0803deb488ab2f Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Mon, 29 Aug 2011 09:17:29 -0700 Subject: [PATCH 0048/1024] encoder_ratio: support names= option --- docs/man/man9/encoder_ratio.9 | 18 ++++++- src/hal/components/encoder_ratio.c | 75 ++++++++++++++++++++---------- 2 files changed, 67 insertions(+), 26 deletions(-) diff --git a/docs/man/man9/encoder_ratio.9 b/docs/man/man9/encoder_ratio.9 index 085f305d1..dacd5af16 100644 --- a/docs/man/man9/encoder_ratio.9 +++ b/docs/man/man9/encoder_ratio.9 @@ -9,7 +9,8 @@ .SH NAME encoder_ratio \- an electronic gear to synchronize two axes .SH SYNOPSIS -.B loadrt encoder_ratio [num_chan=\fIN\fB] +\fBloadrt encoder_ratio [num_chan=\fInum\fB | names=\fIname1\fB[,\fIname2...\fB]] + .SH DESCRIPTION \fBencoder_ratio\fR can be used to synchronize two axes (like an "electronic gear"). It counts encoder pulses from both axes in software, and produces an @@ -17,7 +18,12 @@ error value that can be used with a PID loop to make the slave encoder track the master encoder with a specific ratio. This module supports up to eight axis pairs. The number of pairs is set by the -module parameter \fBnum_chan\fR. +module parameter \fBnum_chan\fR. Alternatively, specify \fBnames=\fR and unique names +separated by commas. +.P +The \fBnum_chan=\fR and \fBnames=\fR specifiers are mutually exclusive. +If neither \fBnum_chan=\fR nor \fBnames=\fR are specified, the default value is one. + .SH FUNCTIONS .TP @@ -27,7 +33,15 @@ Read all input pins. Must be called at twice the maximum desired count rate. .B encoder-ratio.update (uses floating-point) Updates all output pins. May be called from a slower thread. +.SH NAMING +The names for pins and parameters are prefixed as: + \fBencoder-ratio.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR + \fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR + +The \fBencoder-ratio.N.\fR format is shown in the following descriptions. + .SH PINS + .TP .B encoder-ratio.\fIN\fB.master-A\fR bit in .TQ diff --git a/src/hal/components/encoder_ratio.c b/src/hal/components/encoder_ratio.c index e479be0d2..3bcf16a96 100644 --- a/src/hal/components/encoder_ratio.c +++ b/src/hal/components/encoder_ratio.c @@ -21,7 +21,9 @@ This module supports up to eight axis pairs. The number of pairs is set by the module parameter 'num_chan' when the component is - insmod'ed. + insmod'ed. Alternatively, use the names= specifier and a list of + unique names separated by commas. + The names= and num_chan= specifiers are mutually exclusive. The module exports pins and parameters for each axis pair as follows: @@ -98,9 +100,15 @@ MODULE_AUTHOR("John Kasunich"); MODULE_DESCRIPTION("Encoder Ratio Module for HAL"); MODULE_LICENSE("GPL"); -static int num_chan = 1; /* number of channels - default = 1 */ +static int num_chan; /* number of channels*/ +static int default_num_chan = 1; RTAPI_MP_INT(num_chan, "number of channels"); +static int howmany; +#define MAX_CHAN 8 +static char *names[MAX_CHAN] = {0,}; +RTAPI_MP_ARRAY_STRING(names,MAX_CHAN,"encoder_ratio names"); + /*********************************************************************** * STRUCTURES AND GLOBAL VARIABLES * ************************************************************************/ @@ -156,7 +164,7 @@ static int comp_id; /* component ID */ * LOCAL FUNCTION DECLARATIONS * ************************************************************************/ -static int export_encoder_pair(int num, encoder_pair_t * addr); +static int export_encoder_pair(int num, encoder_pair_t * addr, char* prefix); static void sample(void *arg, long period); static void update(void *arg, long period); @@ -164,16 +172,27 @@ static void update(void *arg, long period); * INIT AND EXIT CODE * ************************************************************************/ -#define MAX_CHAN 8 int rtapi_app_main(void) { - int n, retval; + int n, retval,i; + + if(num_chan && names[0]) { + rtapi_print_msg(RTAPI_MSG_ERR,"num_chan= and names= are mutually exclusive\n"); + return -EINVAL; + } + if(!num_chan && !names[0]) num_chan = default_num_chan; + + if(num_chan) { + howmany = num_chan; + } else { + for(i=0; names[i]; i++) {howmany = i+1;} + } /* test for number of channels */ - if ((num_chan <= 0) || (num_chan > MAX_CHAN)) { + if ((howmany <= 0) || (howmany > MAX_CHAN)) { rtapi_print_msg(RTAPI_MSG_ERR, - "ENCODER_RATIO: ERROR: invalid num_chan: %d\n", num_chan); + "ENCODER_RATIO: ERROR: invalid number of channels: %d\n", howmany); return -1; } /* have good config info, connect to the HAL */ @@ -183,7 +202,7 @@ int rtapi_app_main(void) return -1; } /* allocate shared memory for encoder data */ - encoder_pair_array = hal_malloc(num_chan * sizeof(encoder_pair_t)); + encoder_pair_array = hal_malloc(howmany * sizeof(encoder_pair_t)); if (encoder_pair_array == 0) { rtapi_print_msg(RTAPI_MSG_ERR, "ENCODER_RATIO: ERROR: hal_malloc() failed\n"); @@ -191,9 +210,17 @@ int rtapi_app_main(void) return -1; } /* set up each encoder pair */ - for (n = 0; n < num_chan; n++) { + i = 0; // for names= items + for (n = 0; n < howmany; n++) { /* export all vars */ - retval = export_encoder_pair(n, &(encoder_pair_array[n])); + if(num_chan) { + char buf[HAL_NAME_LEN + 1]; + rtapi_snprintf(buf, sizeof(buf), "encoder-ratio.%d", n); + retval = export_encoder_pair(n, &(encoder_pair_array[n]), buf); + } else { + retval = export_encoder_pair(n, &(encoder_pair_array[n]), names[i++]); + } + if (retval != 0) { rtapi_print_msg(RTAPI_MSG_ERR, "ENCODER_RATIO: ERROR: counter %d var export failed\n", n); @@ -227,7 +254,7 @@ int rtapi_app_main(void) return -1; } rtapi_print_msg(RTAPI_MSG_INFO, - "ENCODER_RATIO: installed %d encoder_ratio blocks\n", num_chan); + "ENCODER_RATIO: installed %d encoder_ratio blocks\n", howmany); hal_ready(comp_id); return 0; } @@ -248,7 +275,7 @@ static void sample(void *arg, long period) unsigned char state; pair = arg; - for (n = 0; n < num_chan; n++) { + for (n = 0; n < howmany; n++) { /* detect transitions on master encoder */ /* get state machine current state */ state = pair->master_state; @@ -304,7 +331,7 @@ static void update(void *arg, long period) int n; pair = arg; - for (n = 0; n < num_chan; n++) { + for (n = 0; n < howmany; n++) { /* scale raw error to output pin */ if ( pair->output_scale > 0 ) { *(pair->error) = pair->raw_error / pair->output_scale; @@ -324,7 +351,7 @@ static void update(void *arg, long period) * LOCAL FUNCTION DEFINITIONS * ************************************************************************/ -static int export_encoder_pair(int num, encoder_pair_t * addr) +static int export_encoder_pair(int num, encoder_pair_t * addr, char* prefix) { int retval, msg; @@ -337,55 +364,55 @@ static int export_encoder_pair(int num, encoder_pair_t * addr) /* export pins for the quadrature inputs */ retval = hal_pin_bit_newf(HAL_IN, &(addr->master_A), comp_id, - "encoder-ratio.%d.master-A", num); + "%s.master-A", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_IN, &(addr->master_B), comp_id, - "encoder-ratio.%d.master-B", num); + "%s.master-B", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_IN, &(addr->slave_A), comp_id, - "encoder-ratio.%d.slave-A", num); + "%s.slave-A", prefix); if (retval != 0) { return retval; } retval = hal_pin_bit_newf(HAL_IN, &(addr->slave_B), comp_id, - "encoder-ratio.%d.slave-B", num); + "%s.slave-B", prefix); if (retval != 0) { return retval; } /* export pin for the enable input */ retval = hal_pin_bit_newf(HAL_IN, &(addr->enable), comp_id, - "encoder-ratio.%d.enable", num); + "%s.enable", prefix); if (retval != 0) { return retval; } /* export pin for output */ retval = hal_pin_float_newf(HAL_OUT, &(addr->error), comp_id, - "encoder-ratio.%d.error", num); + "%s.error", prefix); if (retval != 0) { return retval; } /* export pins for config info() */ retval = hal_pin_u32_newf(HAL_IO, &(addr->master_ppr), comp_id, - "encoder-ratio.%d.master-ppr", num); + "%s.master-ppr", prefix); if (retval != 0) { return retval; } retval = hal_pin_u32_newf(HAL_IO, &(addr->slave_ppr), comp_id, - "encoder-ratio.%d.slave-ppr", num); + "%s.slave-ppr", prefix); if (retval != 0) { return retval; } retval = hal_pin_u32_newf(HAL_IO, &(addr->master_teeth), comp_id, - "encoder-ratio.%d.master-teeth", num); + "%s.master-teeth", prefix); if (retval != 0) { return retval; } retval = hal_pin_u32_newf(HAL_IO, &(addr->slave_teeth), comp_id, - "encoder-ratio.%d.slave-teeth", num); + "%s.slave-teeth", prefix); if (retval != 0) { return retval; } From 067285cffdc637cfc4e57f1eb56ecccc0cc7fbf9 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Fri, 30 Sep 2011 00:45:52 +0100 Subject: [PATCH 0049/1024] Remove completely bogus arithmetic from 8i20 driver. Signed-off-by: Andy Pugh --- src/hal/drivers/mesa-hostmot2/mesa_8i20.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/hal/drivers/mesa-hostmot2/mesa_8i20.c b/src/hal/drivers/mesa-hostmot2/mesa_8i20.c index fd7a65e4f..4993debe5 100644 --- a/src/hal/drivers/mesa-hostmot2/mesa_8i20.c +++ b/src/hal/drivers/mesa-hostmot2/mesa_8i20.c @@ -228,9 +228,10 @@ int hm2_8i20_create(hostmot2_t *hm2, hm2_module_descriptor_t *md) { void hm2_8i20_prepare_tram_write(hostmot2_t *hm2){ int i; int c; - double angle_lim, norm_current; + u32 angle_lim; + double norm_current; const float i_const = 32767; - const float a_const = 182.0444479; + const float a_const = 65535; for (i = 0 ; i < hm2->sserial.num_instances ; i++){ hm2_sserial_instance_t *inst = &hm2->sserial.instance[i]; @@ -256,11 +257,8 @@ void hm2_8i20_prepare_tram_write(hostmot2_t *hm2){ } - angle_lim = *hal->pin.hm2_phase_angle; - if ( 0.0 > (angle_lim = 360.0 * (angle_lim - floor(angle_lim/360.0)))){ - angle_lim = 360.0 - angle_lim; - } - + angle_lim = ((u32)(*hal->pin.hm2_phase_angle * a_const)) & 0x0000FFFF; + if (*hal->pin.hm2_current > 1.0) {*hal->pin.hm2_current = 1.0;} else if (*hal->pin.hm2_current < -1.0){*hal->pin.hm2_current = -1;} @@ -270,7 +268,7 @@ void hm2_8i20_prepare_tram_write(hostmot2_t *hm2){ * i_const; if (*hal->pin.enable) { *tram->reg_0_write = ((int)(norm_current) << 16) - | ((u32)(angle_lim * a_const) & 0x0000FFFF); + | angle_lim; } else { From d467b5e194c12dfc2b70375b362e33d1f13e11ca Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Fri, 30 Sep 2011 00:49:41 +0100 Subject: [PATCH 0050/1024] Make it possible to alter bldc.N.encoder-offset live. Signed-off-by: Andy Pugh --- src/hal/components/bldc.comp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hal/components/bldc.comp b/src/hal/components/bldc.comp index 76a5e01d7..6fbb4260c 100644 --- a/src/hal/components/bldc.comp +++ b/src/hal/components/bldc.comp @@ -27,7 +27,7 @@ pin in float initvalue = 0.2 if personality & 0x04 """The current to be used for the homing sequence in applications where an incremental encoder is used with no hall-sensor feedback"""; -pin in signed rawcounts if personality & 0x06 +pin in signed rawcounts = 0 if personality & 0x06 """Encoder counts input. This must be linked to the encoder rawcounts pin or encoder index resets will cause the motor commutation to fail"""; @@ -662,7 +662,7 @@ FUNCTION(_) { } else { lead = lead_angle / 360.0; } - rotor_angle = (double)((long_rawcounts-offset) * poles/2)/scale; + rotor_angle = (double)((long_rawcounts-encoder_offset) * poles/2)/scale; rotor_angle -= floor(rotor_angle); phase_angle = rotor_angle + lead; phase_angle -= floor(phase_angle); From 86481c8847b900929022041fe2b4ded6cac367b4 Mon Sep 17 00:00:00 2001 From: John Thornton Date: Fri, 30 Sep 2011 07:40:14 -0500 Subject: [PATCH 0051/1024] add missing inival to spinbox Signed-off-by: John Thornton --- docs/src/hal/pyvcp.lyx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/src/hal/pyvcp.lyx b/docs/src/hal/pyvcp.lyx index dabf0c9c2..90d8197bb 100644 --- a/docs/src/hal/pyvcp.lyx +++ b/docs/src/hal/pyvcp.lyx @@ -1181,8 +1181,9 @@ Spinbox controls a FLOAT pin. \newline -12 \newline - 33 + 33 +\newline + 0 \newline 0.1 \newline From 0e2508e3230b2b766df6568c3ad40e92e50f0815 Mon Sep 17 00:00:00 2001 From: John Thornton Date: Fri, 30 Sep 2011 07:42:56 -0500 Subject: [PATCH 0052/1024] add missing inival to spinbox Signed-off-by: John Thornton --- docs/src/hal/pyvcp.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/hal/pyvcp.txt b/docs/src/hal/pyvcp.txt index 3bcaf24a7..718d6fea4 100644 --- a/docs/src/hal/pyvcp.txt +++ b/docs/src/hal/pyvcp.txt @@ -586,6 +586,7 @@ and rolling your mouse-wheel. "my-spinbox" -12 33 + 0 0.1 "2.3f" ("Arial",30) From a556af6d8d4c279407840717b27805324902a700 Mon Sep 17 00:00:00 2001 From: Matt Shaver Date: Fri, 30 Sep 2011 12:44:32 -0400 Subject: [PATCH 0053/1024] Add support for the old 1034 mill. Signed-off-by: Matt Shaver --- configs/smithy/1034gecko.ini | 261 +++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 configs/smithy/1034gecko.ini diff --git a/configs/smithy/1034gecko.ini b/configs/smithy/1034gecko.ini new file mode 100644 index 000000000..f0980dd43 --- /dev/null +++ b/configs/smithy/1034gecko.ini @@ -0,0 +1,261 @@ +# EMC controller parameters for Parallel Port controlled Smithy 1240 Gecko Mill +[EMC] +MACHINE = Smithy 1240 Gecko Mill +VERSION = $Revision$ +DEBUG = 0x00000000 +#DEBUG = 0x7FFFFFFF + +[DISPLAY] +#DISPLAY = eztrol +# CYCLE_TIME is used by eztrol +CYCLE_TIME = .1 +DISPLAY = axis +#DISPLAY = usrmot +#DISPLAY = mini +#DISPLAY = tkemc +#HELP_FILE = /usr/share/doc/emc2/tkemc.txt +#DISPLAY = xemc +#HELP_FILE = /usr/share/doc/emc2/xemc.txt +#DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +EMBED_TAB_NAME = xterm +EMBED_TAB_COMMAND = xterm -fa console-terminus -fs 8 -geo 132x24 -sb -into {XID} -hold -e date;echo;pwd;echo;ls;echo;bash +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.5 +MIN_SPINDLE_OVERRIDE = 0.2 +MAX_SPINDLE_OVERRIDE = 1.5 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ +EDITOR = gedit +TOOL_EDITOR = tooledit +DEFAULT_LINEAR_VELOCITY = 0.2 +MAX_LINEAR_VELOCITY = 2.0 +DEFAULT_ANGULAR_VELOCITY = 12.0 +MAX_ANGULAR_VELOCITY = 60 + +[EZTROL] +QTEMC_PLUGIN = /usr/share/eztrol/lib/libqtemc-2.4.6.so +QTEMCHAL_PLUGIN = /usr/share/eztrol/lib/libqtemchal-2.4.6.so +EZTROLGUI = /usr/share/eztrol/eztrolgui/libguimill2.so +MAX_SPINDLE_RPM = 5000 +DIR_PLUGIN = /usr/share/eztrol/eztrolplugins +PLUGIN = libeztrol_wizard_plugin.so +PLUGIN = libeztrol_webwizard_plugin.so +# disabling settings gcode editor will benefit systems with small memory size +ENABLE_SETTINGS_EDITOR = true +# disable OpenGL 3D Preview +ENABLE_3D_PREVIEW = true +# set to Full Screen TRUE/FALSE +FULLSCREEN = false +# Settings Tab GCode Editor Syntax Highlight +# color guide - http://www.w3.org/TR/SVG/types.html#ColorKeywords +AXIS_COLOR = magenta +LINENUMBER_COLOR = rosybrown +GM_COLOR = blue +STFDRLPQH_COLOR = red +O_COLOR = blue +RESERVEDWORDS_COLOR = darkviolet +VARIABLE_COLOR = olive +COMMENT_COLOR = seagreen +GUI_STYLESHEET = eztrolstyle1.qss + +[EZTROLWIZARDS] +WIZARD_DIRECTORY = /usr/share/eztrol/eztrolwizards +SAVE_DIRECTORY = /home/smithy/emc2/nc_files + +[EZTROLWEBWIZARD] +URL = http://www.mattshaver.com/ecmacam/ecmacam.htm + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 50000 +SERVO_PERIOD = 1000000 +TRAJ_PERIOD = 10000000 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = mill.tbl +#TOOL_CHANGE_POSITION = 0 0 2 +#TOOL_CHANGE_WITH_SPINDLE_ON = 1 +TOOL_CHANGE_QUILL_UP = 1 +#TOOL_CHANGE_AT_G30 = 1 + +[HAL] +HALUI = halui +HALFILE = 1240gecko.hal +EZTROL_HALFILE = eztrol.hal +POSTGUI_HALFILE = axis_manualtoolchange.hal + +[TRAJ] +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +DEFAULT_VELOCITY = 0.2 + +[AXIS_0] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 2.2 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = 10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -14.7 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 2 + +[AXIS_1] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 2.2 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = -10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -7.7 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 1 + +[AXIS_2] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 1.4 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = -10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -9.0 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +[AXIS_3] +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 30.0 +MAX_ACCELERATION = 300.0 +STEPGEN_MAXVEL = 33.0 +STEPGEN_MAXACCEL = 330.0 +BACKLASH = 0.0000 +SCALE = -500 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -36000.0 +MAX_LIMIT = 36000.0 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 3 + From 28a0e9a34ae29abcaa6d18a10da6854b41418d02 Mon Sep 17 00:00:00 2001 From: Matt Shaver Date: Fri, 30 Sep 2011 13:01:55 -0400 Subject: [PATCH 0054/1024] Add support for old style 1034 mill. Signed-off-by: Matt Shaver --- configs/smithy/1034gecko.ini | 261 +++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 configs/smithy/1034gecko.ini diff --git a/configs/smithy/1034gecko.ini b/configs/smithy/1034gecko.ini new file mode 100644 index 000000000..f0980dd43 --- /dev/null +++ b/configs/smithy/1034gecko.ini @@ -0,0 +1,261 @@ +# EMC controller parameters for Parallel Port controlled Smithy 1240 Gecko Mill +[EMC] +MACHINE = Smithy 1240 Gecko Mill +VERSION = $Revision$ +DEBUG = 0x00000000 +#DEBUG = 0x7FFFFFFF + +[DISPLAY] +#DISPLAY = eztrol +# CYCLE_TIME is used by eztrol +CYCLE_TIME = .1 +DISPLAY = axis +#DISPLAY = usrmot +#DISPLAY = mini +#DISPLAY = tkemc +#HELP_FILE = /usr/share/doc/emc2/tkemc.txt +#DISPLAY = xemc +#HELP_FILE = /usr/share/doc/emc2/xemc.txt +#DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +EMBED_TAB_NAME = xterm +EMBED_TAB_COMMAND = xterm -fa console-terminus -fs 8 -geo 132x24 -sb -into {XID} -hold -e date;echo;pwd;echo;ls;echo;bash +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.5 +MIN_SPINDLE_OVERRIDE = 0.2 +MAX_SPINDLE_OVERRIDE = 1.5 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ +EDITOR = gedit +TOOL_EDITOR = tooledit +DEFAULT_LINEAR_VELOCITY = 0.2 +MAX_LINEAR_VELOCITY = 2.0 +DEFAULT_ANGULAR_VELOCITY = 12.0 +MAX_ANGULAR_VELOCITY = 60 + +[EZTROL] +QTEMC_PLUGIN = /usr/share/eztrol/lib/libqtemc-2.4.6.so +QTEMCHAL_PLUGIN = /usr/share/eztrol/lib/libqtemchal-2.4.6.so +EZTROLGUI = /usr/share/eztrol/eztrolgui/libguimill2.so +MAX_SPINDLE_RPM = 5000 +DIR_PLUGIN = /usr/share/eztrol/eztrolplugins +PLUGIN = libeztrol_wizard_plugin.so +PLUGIN = libeztrol_webwizard_plugin.so +# disabling settings gcode editor will benefit systems with small memory size +ENABLE_SETTINGS_EDITOR = true +# disable OpenGL 3D Preview +ENABLE_3D_PREVIEW = true +# set to Full Screen TRUE/FALSE +FULLSCREEN = false +# Settings Tab GCode Editor Syntax Highlight +# color guide - http://www.w3.org/TR/SVG/types.html#ColorKeywords +AXIS_COLOR = magenta +LINENUMBER_COLOR = rosybrown +GM_COLOR = blue +STFDRLPQH_COLOR = red +O_COLOR = blue +RESERVEDWORDS_COLOR = darkviolet +VARIABLE_COLOR = olive +COMMENT_COLOR = seagreen +GUI_STYLESHEET = eztrolstyle1.qss + +[EZTROLWIZARDS] +WIZARD_DIRECTORY = /usr/share/eztrol/eztrolwizards +SAVE_DIRECTORY = /home/smithy/emc2/nc_files + +[EZTROLWEBWIZARD] +URL = http://www.mattshaver.com/ecmacam/ecmacam.htm + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 50000 +SERVO_PERIOD = 1000000 +TRAJ_PERIOD = 10000000 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = mill.tbl +#TOOL_CHANGE_POSITION = 0 0 2 +#TOOL_CHANGE_WITH_SPINDLE_ON = 1 +TOOL_CHANGE_QUILL_UP = 1 +#TOOL_CHANGE_AT_G30 = 1 + +[HAL] +HALUI = halui +HALFILE = 1240gecko.hal +EZTROL_HALFILE = eztrol.hal +POSTGUI_HALFILE = axis_manualtoolchange.hal + +[TRAJ] +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +DEFAULT_VELOCITY = 0.2 + +[AXIS_0] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 2.2 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = 10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -14.7 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 2 + +[AXIS_1] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 2.0 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 2.2 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = -10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -7.7 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 1 + +[AXIS_2] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 1.5 +STEPGEN_MAXVEL = 1.4 +STEPGEN_MAXACCEL = 1.7 +BACKLASH = 0.0000 +# Leadscrew Pitch = 5mm +# Drive Ratio = 1:1 +# Steps/Rev = 200 * 10uSteps = 2000 +# Vel at 200k Steps/S = 1181"/min +SCALE = -10160 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -9.0 +MAX_LIMIT = 0.2 +FERROR = 0.05 +MIN_FERROR = 0.01 +HOME_OFFSET = 0.25 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = -0.1 +HOME_FINAL_VEL = 0.5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +[AXIS_3] +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 30.0 +MAX_ACCELERATION = 300.0 +STEPGEN_MAXVEL = 33.0 +STEPGEN_MAXACCEL = 330.0 +BACKLASH = 0.0000 +SCALE = -500 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -36000.0 +MAX_LIMIT = 36000.0 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 3 + From 18b74443d18dd0e510e54944b795c1747d56be4c Mon Sep 17 00:00:00 2001 From: Matt Shaver Date: Fri, 30 Sep 2011 14:18:25 -0400 Subject: [PATCH 0055/1024] Fix README in master to describe 1034gecko machines. Signed-off-by: Matt Shaver --- configs/smithy/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/smithy/README b/configs/smithy/README index 695b25cd9..cc649132e 100644 --- a/configs/smithy/README +++ b/configs/smithy/README @@ -4,7 +4,7 @@ These configurations are for the following Smithy machines: 1240_4axis - Mill equipped with Leadshine axis drives, VFD and 1.5kW AC induction type spindle motor, rotary 4th axis, and controlled by signals from a Mesa 5i20 FPGA card. -1240gecko - Mill equipped with Gecko G201 axis drives, VFD and 1.5kW AC induction type spindle motor, and controlled by signals from a PC parallel port. +1034gecko/1240gecko - Mill equipped with Gecko G201 axis drives, VFD and 1.5kW AC induction type spindle motor, and controlled by signals from a PC parallel port. 1240rutex - Mill equipped with Rutex DC brush servo axis drives, 1.5kW AC induction type spindle motor with forward and reverse, and controlled by signals from a PC parallel port. From ac1d6da8628663c9e791fa485497874e87dcaac9 Mon Sep 17 00:00:00 2001 From: Matt Shaver Date: Fri, 30 Sep 2011 15:34:23 -0400 Subject: [PATCH 0056/1024] Add ngcgui support to all ini files. Signed-off-by: Matt Shaver --- configs/smithy/1034gecko.ini | 6 ++-- configs/smithy/1240.ini | 47 ++++++++++++++++++++++++++- configs/smithy/1240_4axis.ini | 47 ++++++++++++++++++++++++++- configs/smithy/1240combined.ini | 47 ++++++++++++++++++++++++++- configs/smithy/1240gecko.ini | 47 ++++++++++++++++++++++++++- configs/smithy/1240rutex.ini | 47 ++++++++++++++++++++++++++- configs/smithy/1240rutex_4axis.ini | 47 ++++++++++++++++++++++++++- configs/smithy/516gecko.ini | 47 ++++++++++++++++++++++++++- configs/smithy/6130.ini | 28 ++++++++++++++++ configs/smithy/622.ini | 47 ++++++++++++++++++++++++++- configs/smithy/622_4axis.ini | 47 ++++++++++++++++++++++++++- configs/smithy/622gecko.ini | 47 ++++++++++++++++++++++++++- configs/smithy/622keyence.ini | 47 ++++++++++++++++++++++++++- configs/smithy/622leadshine.ini | 47 ++++++++++++++++++++++++++- configs/smithy/622leadshine_4axis.ini | 47 ++++++++++++++++++++++++++- configs/smithy/924.ini | 30 ++++++++++++++++- 16 files changed, 657 insertions(+), 18 deletions(-) diff --git a/configs/smithy/1034gecko.ini b/configs/smithy/1034gecko.ini index f0980dd43..4c33a4782 100644 --- a/configs/smithy/1034gecko.ini +++ b/configs/smithy/1034gecko.ini @@ -1,6 +1,6 @@ -# EMC controller parameters for Parallel Port controlled Smithy 1240 Gecko Mill +# EMC controller parameters for Parallel Port controlled Smithy 1034 Gecko Mill [EMC] -MACHINE = Smithy 1240 Gecko Mill +MACHINE = Smithy 1034 Gecko Mill VERSION = $Revision$ DEBUG = 0x00000000 #DEBUG = 0x7FFFFFFF @@ -18,8 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -EMBED_TAB_NAME = xterm -EMBED_TAB_COMMAND = xterm -fa console-terminus -fs 8 -geo 132x24 -sb -into {XID} -hold -e date;echo;pwd;echo;ls;echo;bash # These lines are from: # http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html TKPKG = Ngcgui 1.0 diff --git a/configs/smithy/1240.ini b/configs/smithy/1240.ini index c09de854a..0f28c600c 100644 --- a/configs/smithy/1240.ini +++ b/configs/smithy/1240.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 #MAX_LINEAR_VELOCITY = 7.0 MAX_LINEAR_VELOCITY = 5.0 @@ -79,6 +122,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240_4axis.ini b/configs/smithy/1240_4axis.ini index 2616aa9c6..c69680eae 100644 --- a/configs/smithy/1240_4axis.ini +++ b/configs/smithy/1240_4axis.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 #MAX_LINEAR_VELOCITY = 7.0 MAX_LINEAR_VELOCITY = 5.0 @@ -79,6 +122,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240combined.ini b/configs/smithy/1240combined.ini index b9fedda0e..9d52b1aca 100644 --- a/configs/smithy/1240combined.ini +++ b/configs/smithy/1240combined.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 # @SCALE = 25600 #MAX_LINEAR_VELOCITY = 1.9 @@ -80,6 +123,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240gecko.ini b/configs/smithy/1240gecko.ini index 5110354b1..8d108d518 100644 --- a/configs/smithy/1240gecko.ini +++ b/configs/smithy/1240gecko.ini @@ -17,6 +17,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -25,8 +67,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 2.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -79,6 +122,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240rutex.ini b/configs/smithy/1240rutex.ini index 5c35a2521..5edfef0a5 100644 --- a/configs/smithy/1240rutex.ini +++ b/configs/smithy/1240rutex.ini @@ -17,6 +17,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -25,8 +67,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -79,6 +122,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240rutex_4axis.ini b/configs/smithy/1240rutex_4axis.ini index 2872a8c7b..9e5ad7983 100644 --- a/configs/smithy/1240rutex_4axis.ini +++ b/configs/smithy/1240rutex_4axis.ini @@ -17,6 +17,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -25,8 +67,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -79,6 +122,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/516gecko.ini b/configs/smithy/516gecko.ini index 63c0adf6d..d8348311b 100644 --- a/configs/smithy/516gecko.ini +++ b/configs/smithy/516gecko.ini @@ -17,6 +17,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -25,8 +67,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 1.5 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -82,6 +125,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/6130.ini b/configs/smithy/6130.ini index a92c3ac0c..fc30f5f86 100644 --- a/configs/smithy/6130.ini +++ b/configs/smithy/6130.ini @@ -13,6 +13,31 @@ DISPLAY = axis # Path to help file for tkemc HELP_FILE = /usr/share/doc/emc2/tkemc.txt LATHE = 1 +USER_COMMAND_FILE = tkapp.py +# This line is from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/lathe_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/id.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/od.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/taper-od.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 @@ -24,6 +49,7 @@ MAX_LINEAR_VELOCITY = 1.5 DEFAULT_ANGULAR_VELOCITY = 0.1 PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit PYVCP = 6130.xml [TASK] @@ -33,6 +59,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var RS274NGC_STARTUP_CODE = G18 G54 +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622.ini b/configs/smithy/622.ini index c817365fe..949d0124b 100644 --- a/configs/smithy/622.ini +++ b/configs/smithy/622.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -78,6 +121,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622_4axis.ini b/configs/smithy/622_4axis.ini index ccd99f2a2..491489a74 100644 --- a/configs/smithy/622_4axis.ini +++ b/configs/smithy/622_4axis.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -78,6 +121,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622gecko.ini b/configs/smithy/622gecko.ini index 559ab36ea..dbc89c67a 100644 --- a/configs/smithy/622gecko.ini +++ b/configs/smithy/622gecko.ini @@ -17,6 +17,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -25,8 +67,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 1.5 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -82,6 +125,8 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622keyence.ini b/configs/smithy/622keyence.ini index 6c2a62395..dadb679a3 100644 --- a/configs/smithy/622keyence.ini +++ b/configs/smithy/622keyence.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -78,6 +121,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622leadshine.ini b/configs/smithy/622leadshine.ini index 4ff43c4fd..cb7b70238 100644 --- a/configs/smithy/622leadshine.ini +++ b/configs/smithy/622leadshine.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -78,6 +121,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622leadshine_4axis.ini b/configs/smithy/622leadshine_4axis.ini index 6ed697d08..94e942b8d 100644 --- a/configs/smithy/622leadshine_4axis.ini +++ b/configs/smithy/622leadshine_4axis.ini @@ -16,6 +16,48 @@ DISPLAY = axis #DISPLAY = xemc #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick +USER_COMMAND_FILE = tkapp.py +# These lines are from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKPKG = Ngcguittt 1.0 +# note: ngcgui_app.tcl must precede ngcgui_ttt.tcl +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +TKAPP = ngcgui_ttt.tcl +TTT = truetype-tracer +TTT_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/in_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/backlash.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hole_circle.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/reqtool.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/hw.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/helix_rtheta.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/slot.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/simp.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/xyz.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/iquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/oquad.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/db25.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ihex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/ohex.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/gosper.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -24,8 +66,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.0 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -78,6 +121,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/924.ini b/configs/smithy/924.ini index d3f839916..2aca2b38f 100644 --- a/configs/smithy/924.ini +++ b/configs/smithy/924.ini @@ -14,6 +14,31 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick LATHE = 1 +USER_COMMAND_FILE = tkapp.py +# This line is from: +# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html +TKPKG = Ngcgui 1.0 +TKAPP = ngcgui_app.tcl +NGCGUI = ngcgui.tcl +NGCGUI_FONT = Courier -10 normal +#NGCGUI_FONT = Helvetica -12 normal +#NGCGUI_FONT = Sans -12 normal +# specify relative or full path for startup subroutine tab pages: +NGCGUI_PREAMBLE = /home/smithy/emc2/nc_files/lathe_std.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/id.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/od.ngc +NGCGUI_SUBFILE = /home/smithy/emc2/nc_files/taper-od.ngc +NGCGUI_SUBFILE = "" +#NGCGUI_SUBFILE = "" use when imageframe is specified if +# opening other files is required +# images will be put in a toplevel window +NGCGUI_OPTIONS = +#NGCGUI_OPTIONS = opt1 opt2 ... +# opt items: +# nonew -- disallow making a new tab page +# noremove -- disallow removing any tab page +# noauto -- no autosend (makeFile, then manually send) +# noiframe -- no internal image, image on separate toplevel POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 @@ -22,8 +47,9 @@ MAX_SPINDLE_OVERRIDE = 1.5 INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in -PROGRAM_PREFIX = ../../nc_files/ +PROGRAM_PREFIX = /home/smithy/emc2/nc_files/ EDITOR = gedit +TOOL_EDITOR = tooledit DEFAULT_LINEAR_VELOCITY = 0.2 MAX_LINEAR_VELOCITY = 3.75 DEFAULT_ANGULAR_VELOCITY = 12.0 @@ -43,6 +69,8 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var +SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs +USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod From c93e9d2e37320aff60166799158b9e3dc5dbc7cd Mon Sep 17 00:00:00 2001 From: Matt Shaver Date: Fri, 30 Sep 2011 23:14:20 -0400 Subject: [PATCH 0057/1024] Remove unneeded key/value pairs specific to ngcgui in v2.5 from all ini files. Signed-off-by: Matt Shaver --- configs/smithy/1034gecko.ini | 6 ------ configs/smithy/1240.ini | 6 ------ configs/smithy/1240_4axis.ini | 6 ------ configs/smithy/1240combined.ini | 6 ------ configs/smithy/1240gecko.ini | 6 ------ configs/smithy/1240rutex.ini | 6 ------ configs/smithy/1240rutex_4axis.ini | 6 ------ configs/smithy/516gecko.ini | 6 ------ configs/smithy/6130.ini | 5 ----- configs/smithy/622.ini | 6 ------ configs/smithy/622_4axis.ini | 6 ------ configs/smithy/622gecko.ini | 6 ------ configs/smithy/622keyence.ini | 6 ------ configs/smithy/622leadshine.ini | 6 ------ configs/smithy/622leadshine_4axis.ini | 6 ------ configs/smithy/924.ini | 5 ----- 16 files changed, 94 deletions(-) diff --git a/configs/smithy/1034gecko.ini b/configs/smithy/1034gecko.ini index 4c33a4782..1c9305a11 100644 --- a/configs/smithy/1034gecko.ini +++ b/configs/smithy/1034gecko.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240.ini b/configs/smithy/1240.ini index 0f28c600c..f9226dfe3 100644 --- a/configs/smithy/1240.ini +++ b/configs/smithy/1240.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240_4axis.ini b/configs/smithy/1240_4axis.ini index c69680eae..45c54d81e 100644 --- a/configs/smithy/1240_4axis.ini +++ b/configs/smithy/1240_4axis.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240combined.ini b/configs/smithy/1240combined.ini index 9d52b1aca..d3b5cf38a 100644 --- a/configs/smithy/1240combined.ini +++ b/configs/smithy/1240combined.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -123,8 +119,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240gecko.ini b/configs/smithy/1240gecko.ini index 8d108d518..960e27a72 100644 --- a/configs/smithy/1240gecko.ini +++ b/configs/smithy/1240gecko.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240rutex.ini b/configs/smithy/1240rutex.ini index 5edfef0a5..9d4031a66 100644 --- a/configs/smithy/1240rutex.ini +++ b/configs/smithy/1240rutex.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/1240rutex_4axis.ini b/configs/smithy/1240rutex_4axis.ini index 9e5ad7983..09e3a3e15 100644 --- a/configs/smithy/1240rutex_4axis.ini +++ b/configs/smithy/1240rutex_4axis.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -122,8 +118,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/516gecko.ini b/configs/smithy/516gecko.ini index d8348311b..f531737f5 100644 --- a/configs/smithy/516gecko.ini +++ b/configs/smithy/516gecko.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -125,8 +121,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/6130.ini b/configs/smithy/6130.ini index fc30f5f86..fd5a4dd76 100644 --- a/configs/smithy/6130.ini +++ b/configs/smithy/6130.ini @@ -14,9 +14,6 @@ DISPLAY = axis HELP_FILE = /usr/share/doc/emc2/tkemc.txt LATHE = 1 USER_COMMAND_FILE = tkapp.py -# This line is from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl NGCGUI_FONT = Courier -10 normal @@ -59,8 +56,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var RS274NGC_STARTUP_CODE = G18 G54 -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622.ini b/configs/smithy/622.ini index 949d0124b..ab81efddc 100644 --- a/configs/smithy/622.ini +++ b/configs/smithy/622.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -121,8 +117,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622_4axis.ini b/configs/smithy/622_4axis.ini index 491489a74..4d6264751 100644 --- a/configs/smithy/622_4axis.ini +++ b/configs/smithy/622_4axis.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -121,8 +117,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622gecko.ini b/configs/smithy/622gecko.ini index dbc89c67a..69a9ed56d 100644 --- a/configs/smithy/622gecko.ini +++ b/configs/smithy/622gecko.ini @@ -18,10 +18,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -125,8 +121,6 @@ CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622keyence.ini b/configs/smithy/622keyence.ini index dadb679a3..0a2aa9e51 100644 --- a/configs/smithy/622keyence.ini +++ b/configs/smithy/622keyence.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -121,8 +117,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622leadshine.ini b/configs/smithy/622leadshine.ini index cb7b70238..4d081f890 100644 --- a/configs/smithy/622leadshine.ini +++ b/configs/smithy/622leadshine.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -121,8 +117,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/622leadshine_4axis.ini b/configs/smithy/622leadshine_4axis.ini index 94e942b8d..957834a54 100644 --- a/configs/smithy/622leadshine_4axis.ini +++ b/configs/smithy/622leadshine_4axis.ini @@ -17,10 +17,6 @@ DISPLAY = axis #HELP_FILE = /usr/share/doc/emc2/xemc.txt #DISPLAY = keystick USER_COMMAND_FILE = tkapp.py -# These lines are from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 # note: ngcgui_app.tcl must precede ngcgui_ttt.tcl TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl @@ -121,8 +117,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod diff --git a/configs/smithy/924.ini b/configs/smithy/924.ini index 2aca2b38f..0a9dd6324 100644 --- a/configs/smithy/924.ini +++ b/configs/smithy/924.ini @@ -15,9 +15,6 @@ DISPLAY = axis #DISPLAY = keystick LATHE = 1 USER_COMMAND_FILE = tkapp.py -# This line is from: -# http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html -TKPKG = Ngcgui 1.0 TKAPP = ngcgui_app.tcl NGCGUI = ngcgui.tcl NGCGUI_FONT = Courier -10 normal @@ -69,8 +66,6 @@ CYCLE_TIME = 0.001 [RS274NGC] PARAMETER_FILE = emc.var -SUBROUTINE_PATH = /home/smithy/emc2/nc_files/utilitysubs -USER_M_PATH = /home/smithy/emc2/nc_files/mfiles [EMCMOT] EMCMOT = motmod From b6e96a173c7c8d4d9f4061dd5cdb46fd6e20e91b Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Tue, 27 Sep 2011 00:31:02 -0700 Subject: [PATCH 0058/1024] pncconf -fix openloop test if charge pump used the optional charge pump made a enable signal then afterwards a newsig enable command would fail. --- src/emc/usr_intf/pncconf/pncconf.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 4feae480f..1676d68e5 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -8009,8 +8009,6 @@ def test_axis(self, axis): halrun.write( "addf charge-pump slow\n") halrun.write("addf steptest.0 slow\n") self.hal_cmnds("WRITE") - halrun.write("newsig enable bit\n") - halrun.write("sets enable false\n") # set enable pin if used (output) temp = self.data.findsignal( "%senable"% axis) self.amp = self.data.make_pinname(temp) From a6bf3d074e45fb4be1078b57eb4142063f4f98e3 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Tue, 27 Sep 2011 23:06:31 -0700 Subject: [PATCH 0059/1024] pncconf - fix error gvcp file not found when deleting filename was miss spelled - only happenned if no gvcp was selected --- src/emc/usr_intf/pncconf/pncconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 1676d68e5..688c98646 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -2757,7 +2757,7 @@ def writebackup(origname): else: # gvcp was not selected remove any existing related HAl files if os.path.exists(gvcp_options_filename): - os.remove(gvcp_options_name) + os.remove(gvcp_options_filename) if os.path.exists(gvcp_call_filename): os.remove(gvcp_call_filename) From 82388695129189385e4bc20d26e87199540eb7b2 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Sat, 1 Oct 2011 00:55:21 -0700 Subject: [PATCH 0060/1024] pncconf -fix openloop test for sserial and ommissions PWM scale was hardcoded PWM gen didn't honour user selected type during test DAC spinbutton didn't change range according to PWM scale and DAC MAX estop output didn't work if a signal was on multiple output pins pncconf missed the extras only one parport was checked generalized the search for HAL enable (etc) signals needed to do test removed the loading of steptest component. added sserial support --- src/emc/usr_intf/pncconf/pncconf.py | 164 +++++++++++++++++----------- 1 file changed, 98 insertions(+), 66 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 688c98646..1344c660b 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -7981,6 +7981,9 @@ def on_tuneinvertmotor_toggled(self, w): # openloop servo test def test_axis(self, axis): + + + # one needs real time, pwm gen and an encoder for open loop testing. if not self.check_for_rt(self): return if not self.data.findsignal( (axis + "-pwm-pulse")) or not self.data.findsignal( (axis + "-encoder-a")): @@ -7994,85 +7997,43 @@ def test_axis(self, axis): fastdac = get_value(widgets["fastdac"]) slowdac = get_value(widgets["slowdac"]) dacspeed = widgets.Dac_speed_fast.get_active() + dac_scale = get_value(widgets[axis+"outputscale"]) + max_dac = get_value(widgets[axis+"maxoutput"]) enc_scale = get_value(widgets[axis+"encoderscale"]) pump = self.data.findsignal("charge-pump") halrun.write("loadrt threads period1=%d name1=fast fp1=0 period2=%d name2=slow \n" % (100000, self.data.servoperiod )) self.hal_cmnds("LOAD") - halrun.write("loadrt steptest\n") + #halrun.write("loadrt steptest\n") halrun.write("loadusr halscope\n") self.hal_cmnds("READ") if pump: halrun.write( "loadrt charge_pump\n") halrun.write( "net enable charge-pump.enable\n") halrun.write( "net charge-pump <= charge-pump.out\n") - halrun.write( "addf charge-pump slow\n") - halrun.write("addf steptest.0 slow\n") + halrun.write( "addf charge-pump slow\n") + #halrun.write("addf steptest.0 slow\n") self.hal_cmnds("WRITE") - # set enable pin if used (output) - temp = self.data.findsignal( "%senable"% axis) - self.amp = self.data.make_pinname(temp) - if self.amp: - if "hm2_" in self.amp: - halrun.write("setp %s true\n"% (self.amp + ".is_output")) - halrun.write("net enable %s\n"% (self.amp + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (self.amp + ".invert_output")) - self.amp = self.amp + ".out" - if "parport" in self.amp: - halrun.write("net enable %s\n" % (self.amp )) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (self.amp + "-invert")) - halrun.write("loadusr halmeter -s pin %s -g 0 475 330\n"% (self.amp)) - temp = self.data.findsignal( "machine-is-enabled") - machine_on = self.data.make_pinname(temp) - if machine_on: - if "hm2" in machine_on: - halrun.write("setp %s true\n"% (machine_on + ".is_output")) - halrun.write("net enable %s \n"% (machine_on + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (machine_on + ".invert_output")) - if "parport" in machine_on: - halrun.write("net enable %s\n" % (machine_on )) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (machine_on + "-invert")) - # setup pwm generator - temp = self.data.findsignal( "estop-out") - estop = self.data.make_pinname(temp) - if estop: - if "hm2_" in estop: - halrun.write("setp %s true\n"% (estop + ".is_output")) - halrun.write("net enable %s\n"% (estop + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (estop + ".invert_output")) - estop = estop + ".out" - if "parport" in estop: - halrun.write("net enable %s\n" % (estop)) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (estop + "-invert")) - halrun.write("loadusr halmeter -s pin %s -g 0 550 330\n"% (estop)) - # set charge pump if used - temp = self.data.findsignal( "charge-pump") - pump = self.data.make_pinname(temp) - if pump: - if "hm2_" in pump: - halrun.write("setp %s true\n"% (pump + ".is_output")) - halrun.write("net charge-pump %s\n"% (pump + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (pump + ".invert_output")) - pump = pump + ".out" - if "parport" in pump: - halrun.write(" net charge-pump %s\n" % (pump)) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (pump + "-invert")) - halrun.write( "net charge-pump %s\n"%(pump)) - halrun.write("loadusr halmeter -s pin %s -g 0 500 330\n"% (pump)) + halrun.write( "newsig estop-out bit\n") + halrun.write( "sets estop-out true\n") + # search for pins with test signals that may be needed to enable amp + self.hal_test_signals(axis) # setup pwm generator - pwm = self.data.make_pinname(self.data.findsignal( (axis + "-pwm-pulse"))) - if pwm: + temp = self.data.findsignal( (axis + "-pwm-pulse")) + pwm = self.data.make_pinname(temp) + if pwm: + pwmtype = self.data[temp+"type"] + if pwmtype == PWMP: pulsetype = 1 + elif pwmtype == PDMP: pulsetype = 3 + elif pwmtype == UDMU: pulsetype = 2 + else: + print "**** ERROR PNCCONF- PWM type not recognized in open loop test" + return + halrun.write("setp %s %d \n"% (pwm +".output-type", pulsetype)) halrun.write("net dac %s \n"% (pwm +".value")) halrun.write("net enable %s \n"% (pwm +".enable")) - halrun.write("setp %s \n"% (pwm +".scale 10")) + halrun.write("setp %s \n"% (pwm +".scale %f"% dac_scale)) + halrun.write("loadusr halmeter -s sig enable -g 0 475 330\n") halrun.write("loadusr halmeter -s pin %s -g 550 500 330\n"% (pwm +".value")) halrun.write("loadusr halmeter pin %s -g 550 375\n"% (pwm +".value") ) # set up encoder @@ -8091,7 +8052,9 @@ def test_axis(self, axis): widgets.testinvertmotor.set_active(widgets[axis+"invertmotor"].get_active()) widgets.testinvertencoder.set_active(widgets[axis+"invertencoder"].get_active()) widgets.testoutputoffset.set_value(widgets[axis+"outputoffset"].get_value()) - widgets.testenc_scale.set_value(float(enc_scale)) + widgets.testenc_scale.set_value(float(enc_scale)) + widgets.fastdac.set_range(0,max_dac) + widgets.slowdac.set_range(0,max_dac) self.update_axis_params() halrun.write("start\n"); halrun.flush() self.widgets['window1'].set_sensitive(0) @@ -8134,6 +8097,7 @@ def update_axis_params(self, *args): output = output * -1 output += get_value(self.widgets.testoutputoffset) halrun.write("sets enable %d\n"% ( self.enable_amp)) + halrun.write("sets estop-out %d\n"% ( not self.enable_amp)) halrun.write("""setp %(scalepin)s.scale %(scale)f\n""" % { 'scalepin':self.enc, 'scale': (enc_scale * enc_invert)}) halrun.write("""sets dac %(output)f\n""" % { 'output': output}) halrun.write("""sets enc-reset %(reset)d\n""" % { 'reset': self.enc_reset}) @@ -8174,7 +8138,75 @@ def run(self, filename=None): self.data.load(filename, self) self.widgets.druid1.set_page(self.widgets.basicinfo) gtk.main() - + + def hal_test_signals(self, axis): + # during testing pncconf looks for pins with these signals names + # and connects to them so as to enable amps etc + # FORCE->PIN will just make the pin be true all the time + # this could be used as a temparary way to enable I/O that the + # specific machine needs on for the amp to work but pncconf doesn't look for. + halrun = self.halrun + def write_pins(pname,p,i,t): + if p in ((axis+"enable"),"machine-is-enabled","estop-out","charge-pump","FORCE->PIN"): + pinname = self.data.make_pinname(pname) + if pinname: + #print p, pname, i + if p == "estop-out": signal = p + else: signal = "enable" + if "parport" in pinname: + if p == "FORCE->PIN": + halrun.write("setp %s true\n"% (pinname)) + else: + halrun.write("net %s %s \n"% (signal,pinname)) + else: + if not "sserial" in pname: + halrun.write("setp %s true\n"% (pinname + ".is_output")) + if t == GPIOD: halrun.write("setp "+pinname+".is_opendrain true") + if p == "FORCE->PIN": + halrun.write("setp %s true\n"% ((pinname + ".out"))) + else: + halrun.write("net %s %s \n"% (signal,(pinname + ".out"))) + if i: # invert pin + if "sserial" in pname: ending = ".invert" + elif "parport" in pinname: ending = "-invert" + else: ending = ".invert_output" + halrun.write("setp %s true\n"% (pinname + ending )) + return + + # search everything for multiple same named signal output pins + # mesa mainboard + for boardnum in range(0,int(self.data.number_mesa)): + for concount,connector in enumerate(self.data["mesa%d_currentfirmwaredata"% (boardnum)][_NUMOFCNCTRS]) : + for pin in range(0,24): + pname = 'mesa%dc%dpin%d' % (boardnum,connector, pin) + p = self.data['mesa%dc%dpin%d' % (boardnum,connector, pin)] + i = self.data['mesa%dc%dpin%dinv' % (boardnum,connector, pin)] + t = self.data['mesa%dc%dpin%dtype' % (boardnum,connector, pin)] + if t in (GPIOO,GPIOD) and not p == "unused-output": + write_pins(pname,p,i,t) + # mesa sserial + if self.data["mesa%d_numof_sserialports"% (boardnum)]: # only check if we have sserialports + port = 0 + for channel in range (0,self.data["mesa%d_currentfirmwaredata"% boardnum][_MAXSSERIALCHANNELS]): + if channel >3: break # TODO only have 4 channels worth of glade widgets + for pin in range (0,48): + pname = 'mesa%dsserial%d_%dpin%d' % (boardnum,port,channel,pin) + p = self.data['mesa%dsserial%d_%dpin%d' % (boardnum,port,channel,pin)] + i = self.data['mesa%dsserial%d_%dpin%dinv' % (boardnum,port,channel,pin)] + t = self.data['mesa%dsserial%d_%dpin%dtype' % (boardnum,port,channel,pin)] + if t in (GPIOO,GPIOD) and not p == "unused-output": + write_pins(pname,p,i,t) + # parports + templist = ("pp1","pp2","pp3") + for j, k in enumerate(templist): + if self.data.number_pports < (j+1): break + for x in (1,2,3,4,5,6,7,8,9,14,16,17): + pname = "%sOpin%d" % (k, x) + p = self.data[pname] + i = self.data[pname+"inv"] + if not p == "unused-output": + write_pins(pname,p,i,None) + def hal_cmnds(self,command ): halrun = self.halrun if command == "LOAD": From c1cbd66602ac5093233de61fd80a804b68e4821b Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Sat, 1 Oct 2011 01:48:20 -0700 Subject: [PATCH 0061/1024] pncconf - fix stepper test, add sserial and fix omissions missed extra output pins with same signal names added charge pump option added estop output now uses the generalized search for HAL signals needed for testing such as amp enable etc. --- src/emc/usr_intf/pncconf/pncconf.py | 52 ++++++++--------------------- 1 file changed, 14 insertions(+), 38 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 1344c660b..a65a53f21 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -7646,6 +7646,7 @@ def tune_axis(self, axis): #print axis," encoder--",self.encoder self.pwmgen = self.data.pwmgen_sig(axis) #print axis," pwgen--",self.pwmgen + pump = self.data.findsignal("charge-pump") w.tuneaxispage.set_current_page(axnum) w[axis+"tunepage"].set_sensitive(1) @@ -7721,12 +7722,21 @@ def tune_axis(self, axis): if not self.stepgen: halrun.write("loadrt pid num_chan=1\n") self.hal_cmnds("LOAD") - self.hal_cmnds("READ") + self.hal_cmnds("READ") + if pump: + halrun.write( "loadrt charge_pump\n") + halrun.write( "net enable charge-pump.enable\n") + halrun.write( "net charge-pump <= charge-pump.out\n") + halrun.write( "addf charge-pump slow\n") halrun.write("addf steptest.0 slow \n") if not self.stepgen: halrun.write("addf pid.0.do-pid-calcs slow \n") halrun.write("addf scale_to_rpm slow \n") self.hal_cmnds("WRITE") + halrun.write( "newsig estop-out bit\n") + halrun.write( "sets estop-out true\n") + # search and connect I/o signals needed to enable amps etc + self.hal_test_signals(axis) # for encoder signals if self.encoder: #print self.encoder,"--",self.encoder[4:5],self.encoder[10:],self.encoder[6:7] @@ -7781,40 +7791,6 @@ def tune_axis(self, axis): halrun.write("loadusr halmeter sig speed_rpm -g 0 415\n") halrun.write("loadusr halmeter -s pin %s.velocity-fb -g 0 575 350\n"% (self.step_signalname)) halrun.write("loadusr halmeter -s pin %s.position-fb -g 0 525 350\n"% (self.step_signalname)) - # set up enable output pin if used - temp = self.data.findsignal( "%senabled"% axis) - amp = self.data.make_pinname(temp) - if amp: - if "hm2" in amp: - halrun.write("setp %s true\n"% (amp + ".is_output")) - halrun.write("net enable %s \n"% (amp + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (amp + ".invert_output")) - if "parport" in amp: - halrun.write(" setp %s true\n" % (amp)) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (amp + "-invert")) - temp = self.data.findsignal( "machine-is-enabled") - machine_on = self.data.make_pinname(temp) - if machine_on: - if "hm2" in machine_on: - halrun.write("setp %s true\n"% (machine_on + ".is_output")) - halrun.write("net enable %s \n"% (machine_on + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (machine_on + ".invert_output")) - if "parport" in machine_on: - halrun.write(" setp %s true\n" % (machine_on )) - if self.data[temp+"inv"] == True: - halrun.write(" setp %s true\n" % (machine_on + "-invert")) - # set up estop output if used - temp = self.data.findsignal( "estop-out") - estop = self.data.make_pinname(temp) - if estop: - if "hm2" in estop: - halrun.write("setp %s true\n"% (estop + ".is_output")) - halrun.write("net enable %s\n"% (estop + ".out")) - if self.data[temp+"inv"] == True: - halrun.write("setp %s true\n"% (estop + ".invert_output")) # set up PID if there is a feedback sensor and pwm. TODO add ability to test closed loop steppers if self.encoder and self.pwmgen: halrun.write("setp pid.0.Pgain %d\n"% ( w[axis+"P"].get_value() )) @@ -7896,6 +7872,7 @@ def update_tune_axis_params(self, *args): setp steptest.0.dir %(dir)s setp steptest.0.pause %(pause)d sets enable %(enable)s + sets estop-out %(estop)s """ % { 'scale':self.scale, 'len':self.widgets[axis+"tunecurrentsteptime"].get_value(), @@ -7912,7 +7889,8 @@ def update_tune_axis_params(self, *args): 'velps': (self.widgets[axis+"tunevel"].get_value()/60), 'dir': self.widgets[axis+"tunedir"].get_active(), 'pause':int(self.widgets[axis+"tunepause"].get_value()), - 'enable':self.widgets[axis+"tuneenable"].get_active() + 'enable':self.widgets[axis+"tuneenable"].get_active(), + 'estop':not (self.widgets[axis+"tuneenable"].get_active()) }) else: halrun.write(""" @@ -7981,8 +7959,6 @@ def on_tuneinvertmotor_toggled(self, w): # openloop servo test def test_axis(self, axis): - - # one needs real time, pwm gen and an encoder for open loop testing. if not self.check_for_rt(self): return From a1e179c1b1bc15d508247c3bfb0494b7fc76b610 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Sat, 1 Oct 2011 02:17:50 -0700 Subject: [PATCH 0062/1024] pncconf - add signal name force-pin-true force-pin-true is used to make an output pin always true can be used for testing. --- src/emc/usr_intf/pncconf/pncconf.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index a65a53f21..a67149d7d 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -364,7 +364,7 @@ def iceil(x): (UNUSED_OUTPUT, ON, CW, CCW, BRAKE, MIST, FLOOD, ESTOP, AMP, XAMP, YAMP, ZAMP, AAMP, -PUMP, DOUT0, DOUT1, DOUT2, DOUT3, +PUMP,FORCE_PIN_TRUE, DOUT0, DOUT1, DOUT2, DOUT3, X_HALL1_OUT,X_HALL2_OUT,X_HALL3_OUT,X_C1_OUT,X_C2_OUT,X_C4_OUT,X_C8_OUT, Y_HALL1_OUT,Y_HALL2_OUT,Y_HALL3_OUT,Y_C1_OUT,Y_C2_OUT,Y_C4_OUT,Y_C8_OUT, Z_HALL1_OUT,Z_HALL2_OUT,Z_HALL3_OUT,Z_C1_OUT,Z_C2_OUT,Z_C4_OUT,Z_C8_OUT, @@ -373,7 +373,7 @@ def iceil(x): "unused-output", "spindle-enable", "spindle-cw", "spindle-ccw", "spindle-brake", "coolant-mist", "coolant-flood", "estop-out", "machine-is-enabled", "xenable", "yenable", "zenable", "aenable", -"charge-pump", "dout-00", "dout-01", "dout-02", "dout-03", +"charge-pump", "force-pin-true", "dout-00", "dout-01", "dout-02", "dout-03", "x-hall1-out","x-hall2-out","x-hall3-out","x-gray-c1-out","x-gray-c2-out","x-gray-C4-out","x-gray-C8-out", "y-hall1-out","y-hall2-out","y-hall3-out","y-gray-c1-out","y-gray-c2-out","y-gray-C4-out","y-gray-C8-out", "z-hall1-out","z-hall2-out","z-hall3-out","z-gray-c1-out","z-gray-c2-out","z-gray-C4-out","z-gray-C8-out", @@ -383,7 +383,7 @@ def iceil(x): spindle_output = [_("Spindle ON"),_("Spindle CW"), _("Spindle CCW"), _("Spindle Brake") ] coolant_output = [_("Coolant Mist"), _("Coolant Flood")] control_output = [_("ESTOP Out"), _("Machine Is Enabled"),_("X Amplifier Enable"),_("Y Amplifier Enable"),_("Z Amplifier Enable"), -_("A Amplifier Enable"),_("Charge Pump")] +_("A Amplifier Enable"),_("Charge Pump"),_("Force Pin True")] digital_output = [_("Digital out 0"), _("Digital out 1"), _("Digital out 2"), _("Digital out 3")] xmotor_control = [_("X HALL 1"),_("X HALL 2"),_("X HALL 3"),_("X Gray C1"),_("X Gray C2"),_("X Gray C4"),_("X Gray C8")] ymotor_control = [_("Y HALL 1"),_("Y HALL 2"),_("Y HALL 3"),_("Y Gray C1"),_("Y Gray C2"),_("Y Gray C4"),_("Y Gray C8")] @@ -1948,7 +1948,10 @@ def connect_output(self, file): p = self['pp1Opin%d' % pin] i = self['pp1Opin%dinv' % pin] if p == UNUSED_OUTPUT: continue - print >>file, "net %s => parport.0.pin-%02d-out" % (p, pin) + if p == "force-pin-true": + print >>file, "setp parport.0.pin-%02d-out true" % (pin) + else: + print >>file, "net %s => parport.0.pin-%02d-out" % (p, pin) if i: print >>file, "setp parport.0.pin-%02d-out-invert true" % pin print >>file def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): @@ -1958,14 +1961,15 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): pinname = self.make_pinname(pname) print >>file, "# ---",p.upper(),"---" if "sserial" in pname: - print >>file, "net %s => "% (p)+pinname +".out" if i: print >>file, "setp "+pinname+".invert true" else: - print >>file, "net %s => "% (p)+pinname +".out" print >>file, "setp "+pinname +".is_output true" if i: print >>file, "setp "+pinname+".invert_output true" if t == GPIOD: print >>file, "setp "+pinname+".is_opendrain true" - + if p == "force-pin-true": + print >>file, "setp %s"% pinname +".out true" + else: + print >>file, "net %s => "% (p)+pinname +".out" # for pwm pins elif t in (PWMP,PDMP,UDMU): if not p == "unused-pwm": @@ -8118,19 +8122,19 @@ def run(self, filename=None): def hal_test_signals(self, axis): # during testing pncconf looks for pins with these signals names # and connects to them so as to enable amps etc - # FORCE->PIN will just make the pin be true all the time + # force-pin-true will just make the pin be true all the time # this could be used as a temparary way to enable I/O that the # specific machine needs on for the amp to work but pncconf doesn't look for. halrun = self.halrun def write_pins(pname,p,i,t): - if p in ((axis+"enable"),"machine-is-enabled","estop-out","charge-pump","FORCE->PIN"): + if p in ((axis+"enable"),"machine-is-enabled","estop-out","charge-pump","force-pin-true"): pinname = self.data.make_pinname(pname) if pinname: #print p, pname, i if p == "estop-out": signal = p else: signal = "enable" if "parport" in pinname: - if p == "FORCE->PIN": + if p == "force-pin-true": halrun.write("setp %s true\n"% (pinname)) else: halrun.write("net %s %s \n"% (signal,pinname)) @@ -8138,7 +8142,7 @@ def write_pins(pname,p,i,t): if not "sserial" in pname: halrun.write("setp %s true\n"% (pinname + ".is_output")) if t == GPIOD: halrun.write("setp "+pinname+".is_opendrain true") - if p == "FORCE->PIN": + if p == "force-pin-true": halrun.write("setp %s true\n"% ((pinname + ".out"))) else: halrun.write("net %s %s \n"% (signal,(pinname + ".out"))) From 148065f704bfa0b354b6958ccf0bec1f13ee2d44 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Sat, 1 Oct 2011 03:25:33 -0700 Subject: [PATCH 0063/1024] pncconf - fix HAL file for multiple parports for input and output HAL commands, only one parport was written. space the output so it is easier to read --- src/emc/usr_intf/pncconf/pncconf.py | 97 ++++++++++++++++++----------- 1 file changed, 59 insertions(+), 38 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index a67149d7d..58277d7d0 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -1888,21 +1888,17 @@ def connect_axis(self, file, num, let): def connect_input(self, file): print >>file, "# external input signals" - print >>file - for pin in (2,3,4,5,6,7,8,9,10,11,12,13,15): - p = self['pp1Ipin%d' % pin] - i = self['pp1Ipin%dinv' % pin] - if p == UNUSED_INPUT: continue - if i: print >>file, "net %s <= parport.0.pin-%02d-in-not" % (p, pin) - else: print >>file, "net %s <= parport.0.pin-%02d-in" % (p, pin) - print >>file + def write_pins(pname,p,i,t): # for input pins if t == GPIOI: if not p == "unused-input": - pinname = self.make_pinname(self.findsignal( p )) - print >>file, "# ---",p.upper(),"---" - if "sserial" in pname: + pinname = self.make_pinname(pname) + print >>file, "\n# ---",p.upper(),"---" + if "parport" in pinname: + if i: print >>file, "net %s <= %s-not" % (p, pinname) + else: print >>file, "net %s <= %s" % (p, pinname) + elif "sserial" in pname: if i: print >>file, "net %s <= "% (p)+pinname +".in-not" else: print >>file, "net %s <= "% (p)+pinname +".in" else: @@ -1914,13 +1910,14 @@ def write_pins(pname,p,i,t): for sig in (self.halencoderinputsignames): if p == sig+"-a": pinname = self.make_pinname(self.findsignal( p )) - print >>file, "# ---",sig.upper(),"---" + print >>file, "\n# ---",sig.upper(),"---" print >>file, "net %s <= "% (sig+"-position")+pinname +".position" print >>file, "net %s <= "% (sig+"-count")+pinname +".count" print >>file, "net %s <= "% (sig+"-velocity")+pinname +".velocity" print >>file, "net %s <= "% (sig+"-reset")+pinname +".reset" print >>file, "net %s <= "% (sig+"-index-enable")+pinname +".index-enable" break + # mesa mainboards for boardnum in range(0,int(self.number_mesa)): for concount,connector in enumerate(self["mesa%d_currentfirmwaredata"% (boardnum)][_NUMOFCNCTRS]) : for pin in range(0,24): @@ -1929,7 +1926,9 @@ def write_pins(pname,p,i,t): i = self['mesa%dc%dpin%dinv' % (boardnum,connector, pin)] t = self['mesa%dc%dpin%dtype' % (boardnum,connector, pin)] write_pins(pname,p,i,t) + # sserial if self["mesa%d_numof_sserialports"% (boardnum)]: # only check if we have sserialports + print >>file port = 0 for channel in range (0,self["mesa%d_currentfirmwaredata"% boardnum][_MAXSSERIALCHANNELS]): if channel >3: break # TODO only have 4 channels worth of glade widgets @@ -1939,44 +1938,53 @@ def write_pins(pname,p,i,t): i = self['mesa%dsserial%d_%dpin%dinv' % (boardnum,port,channel,pin)] t = self['mesa%dsserial%d_%dpin%dtype' % (boardnum,port,channel,pin)] write_pins(pname,p,i,t) + # parports + templist = ("pp1","pp2","pp3") + for j, k in enumerate(templist): + if self.number_pports < (j+1): break + print >>file + for x in (2,3,4,5,6,7,8,9,10,11,12,13,15): + pname = "%sIpin%d" % (k, x) + p = self[pname] + i = self[pname+"inv"] + if not p == "unused-input": + write_pins(pname,p,i,GPIOI) def connect_output(self, file): - print >>file, "# external output signals" - print >>file - for pin in (1,2,3,4,5,6,7,8,9,14,16,17): - p = self['pp1Opin%d' % pin] - i = self['pp1Opin%dinv' % pin] - if p == UNUSED_OUTPUT: continue - if p == "force-pin-true": - print >>file, "setp parport.0.pin-%02d-out true" % (pin) - else: - print >>file, "net %s => parport.0.pin-%02d-out" % (p, pin) - if i: print >>file, "setp parport.0.pin-%02d-out-invert true" % pin - print >>file + def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): # for output /open drain pins if t in (GPIOO,GPIOD): if not p == "unused-output": pinname = self.make_pinname(pname) - print >>file, "# ---",p.upper(),"---" - if "sserial" in pname: - if i: print >>file, "setp "+pinname+".invert true" - else: - print >>file, "setp "+pinname +".is_output true" - if i: print >>file, "setp "+pinname+".invert_output true" - if t == GPIOD: print >>file, "setp "+pinname+".is_opendrain true" - if p == "force-pin-true": - print >>file, "setp %s"% pinname +".out true" + print >>file, "\n# ---",p.upper(),"---" + if "parport" in pinname: + if p == "force-pin-true": + print >>file, "setp %s true"% (pinname) + else: + print >>file, "net %s %s"% (p,pinname) else: - print >>file, "net %s => "% (p)+pinname +".out" + if not "sserial" in pname: + print >>file, "setp %s true"% (pinname + ".is_output") + if t == GPIOD: print >>file, "setp "+pinname+".is_opendrain true" + if p == "force-pin-true": + print >>file, "setp %s true"% ((pinname + ".out")) + else: + print >>file, "net %s %s"% (p,(pinname + ".out")) + if i: # invert pin + if "sserial" in pname: ending = ".invert" + elif "parport" in pinname: ending = "-invert" + else: ending = ".invert_output" + print >>file, "setp %s true"% (pinname + ending ) + # for pwm pins elif t in (PWMP,PDMP,UDMU): if not p == "unused-pwm": for sig in (self.halpwmoutputsignames): if p == (sig+"-pulse"): pinname = self.make_pinname(pname) - print >>file, "# ---",sig.upper(),"---" + print >>file, "\n# ---",sig.upper(),"---" if t == PWMP: print >>file, "setp "+pinname +".output-type 1" if t == UDMU: @@ -1992,7 +2000,7 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): for sig in (self.haltppwmoutputsignames): if p == (sig+"-a"): pinname = self.make_pinname(pname) - print >>file, "# ---",sig.upper(),"---" + print >>file, "\n# ---",sig.upper(),"---" print >>file, "net %s <= "% (sig+"-enable")+pinname +".enable" print >>file, "net %s <= "% (sig+"-a-value")+pinname +".A-value" print >>file, "net %s <= "% (sig+"-b-value")+pinname +".B-value" @@ -2004,7 +2012,7 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): for sig in (self.halsteppersignames): if p == (sig+"-step"): pinname = self.make_pinname(pname) - print >>file, "# ---",sig.upper(),"---" + print >>file, "\n# ---",sig.upper(),"---" print >>file, "net %s <= "% (sig+"-enable")+pinname +".enable" print >>file, "net %s <= "% (sig+"-count")+pinname +".counts" print >>file, "net %s <= "% (sig+"-cmd-position")+pinname +".position-cmd" @@ -2016,7 +2024,7 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): gpioname = self.make_pinname(i[0],True) print >>file, "setp "+gpioname+".invert_output true" break - + # mesa mainboards for boardnum in range(0,int(self.number_mesa)): for concount,connector in enumerate(self["mesa%d_currentfirmwaredata"% (boardnum)][_NUMOFCNCTRS]) : for pin in range(0,24): @@ -2025,7 +2033,9 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): i = self['mesa%dc%dpin%dinv' % (boardnum,connector, pin)] t = self['mesa%dc%dpin%dtype' % (boardnum,connector, pin)] write_pins(pname,p,i,t,boardnum,connector,None,None,pin) + # mesa sserial if self["mesa%d_numof_sserialports"% (boardnum)]: # only check if we have sserialports + print >>file port = 0 for channel in range (0,self["mesa%d_currentfirmwaredata"% boardnum][_MAXSSERIALCHANNELS]): if channel >3: break # TODO only have 4 channels worth of glade widgets @@ -2035,6 +2045,17 @@ def write_pins(pname,p,i,t,boardnum,connector,port,channel,pin): i = self['mesa%dsserial%d_%dpin%dinv' % (boardnum,port,channel,pin)] t = self['mesa%dsserial%d_%dpin%dtype' % (boardnum,port,channel,pin)] write_pins(pname,p,i,t,boardnum,None,port,channel,pin) + # parports + templist = ("pp1","pp2","pp3") + for j, k in enumerate(templist): + if self.number_pports < (j+1): break + print >>file + for x in (1,2,3,4,5,6,7,8,9,14,16,17): + pname = "%sOpin%d" % (k, x) + p = self[pname] + i = self[pname+"inv"] + if not p == "unused-output": + write_pins(pname,p,i,GPIOO,None,None,None,None,None) def write_halfile(self, base): def writebackup(origname): From 42f64698f124068d3495483064971e649a132ce4 Mon Sep 17 00:00:00 2001 From: Chris Morley Date: Sat, 1 Oct 2011 03:36:24 -0700 Subject: [PATCH 0064/1024] pncconf -upgrade to BETA 1 we are getting pretty ggod and this makes it easier to tell what version we are at --- src/emc/usr_intf/pncconf/pncconf-help/help-welcome.txt | 10 +++++----- src/emc/usr_intf/pncconf/pncconf.glade | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf-help/help-welcome.txt b/src/emc/usr_intf/pncconf/pncconf-help/help-welcome.txt index 139f45169..6e858872d 100644 --- a/src/emc/usr_intf/pncconf/pncconf-help/help-welcome.txt +++ b/src/emc/usr_intf/pncconf/pncconf-help/help-welcome.txt @@ -1,13 +1,13 @@ Welcome to PNCCONF a graphical configuration program for EMC2. - ALPHA Version -Alpha means that there are probably bugs and that some features -are not finished. Please give feed back to the mailing list + BETA 1 Version +Beta means that there are possible bugs and that some features +are lacking. Please give feed back to the mailing list or EMC forum. Pncconf is used to configure a servo or hardware stepper system -using Mesa I / O cards with the Hostmot2 driver, and optionally -extra simple I / O with parallel ports. +using Mesa I/O cards with the Hostmot2 driver, and optionally +extra simple I/O with parallel ports. Pncconf require the mesa firmwares to be installed and a realtime kernal for tests. diff --git a/src/emc/usr_intf/pncconf/pncconf.glade b/src/emc/usr_intf/pncconf/pncconf.glade index e662dd74f..6df266743 100644 --- a/src/emc/usr_intf/pncconf/pncconf.glade +++ b/src/emc/usr_intf/pncconf/pncconf.glade @@ -20,7 +20,7 @@ True GNOME_EDGE_START - EMC2 Configuration Wizard Alpha Version + EMC2 Configuration Wizard Beta 1 Version This program creates configuration files for "Closed Loop Servo" and hardware stepper From 7541733866e55bd8c295584a5dd272d60688087d Mon Sep 17 00:00:00 2001 From: cmorley Date: Sun, 2 Oct 2011 01:37:37 -0700 Subject: [PATCH 0065/1024] pncconf -add basic support for the 5i25 board add a 'not used' pintype so that the pins beyound 34 are not shown ( the 5i25 only has 34 not 48 ) The extra pins are set to GPIOI with unused_input signal names so that pncconf will ignore them yet I don't have to add code to _every_ method that handles pintype. since I don't have a 5i25 to test with the HAL code for loading the card might not be right yet as the 5i25 doesn't load the firmware each time EMC loads.That will be easy to fix later. unfortunately hostmot2 repository doesn't have the 5i25 firmware XML file, so users will have to use pncconf's back door method of adding it. --- src/emc/usr_intf/pncconf/pncconf.py | 65 +++++++++++++++++------------ 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 58277d7d0..6dce991a7 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -147,7 +147,7 @@ def iceil(x): ["keling", _("Keling 4030"), 5000, 5000, 20000, 20000], ] -( GPIOI, GPIOO, GPIOD ) = pintype_gpio = [ _("GPIO Input"),_("GPIO Output"),_("GPIO O Drain") ] +( GPIOI, GPIOO, GPIOD,NUSED ) = pintype_gpio = [ _("GPIO Input"),_("GPIO Output"),_("GPIO O Drain"), _("NOT USED") ] ( ENCA, ENCB, ENCI, ENCM ) = pintype_encoder = [_("Quad Encoder-A"),_("Quad Encoder-B"),_("Quad Encoder-I"),_("Quad Encoder-M") ] ( MXEA, MXEB, MXEI, MXEM, MXES ) = pintype_muxencoder = [_("Muxed Encoder-A"),_("Muxed Encoder-B"),_("Muxed Encoder-I"),_("Muxed Encoder-M"), _("Mux Enc Select") ] @@ -5013,45 +5013,43 @@ def set_mesa_options(self,boardnum,title,firmware,numofpwmgens,numoftppwmgens,nu self.data["mesa%d_currentfirmwaredata"% boardnum] = mesafirmwaredata[search] break #print mesafirmwaredata[search] - self.widgets["mesa%dcon3table"% boardnum].set_sensitive(1) - self.widgets["mesa%dcon3tab"% boardnum].set_sensitive(1) - self.widgets["mesa%dcon3table"% boardnum].show() - self.widgets["mesa%dcon4table"% boardnum].set_sensitive(1) - self.widgets["mesa%dcon4tab"% boardnum].set_sensitive(1) - self.widgets["mesa%dcon4table"% boardnum].show() - if self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] == "5i20" or self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] == "5i23": + + self.widgets["mesa%dcon2table"% boardnum].hide() + self.widgets["mesa%dcon3table"% boardnum].hide() + self.widgets["mesa%dcon4table"% boardnum].hide() + self.widgets["mesa%dcon5table"% boardnum].hide() + self.widgets["mesa%dcon6table"% boardnum].hide() + self.widgets["mesa%dcon7table"% boardnum].hide() + self.widgets["mesa%dcon8table"% boardnum].hide() + self.widgets["mesa%dcon9table"% boardnum].hide() + self.widgets["mesa%dsserialtab1"% boardnum].hide() + self.widgets["mesa%dsserialtab2"% boardnum].hide() + self.widgets["mesa%dsserialtab3"% boardnum].hide() + self.widgets["mesa%dsserialtab4"% boardnum].hide() + currentboard = self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] + if currentboard == "5i20" or currentboard == "5i23": self.widgets["mesa%dcon2table"% boardnum].show() self.widgets["mesa%dcon3table"% boardnum].show() self.widgets["mesa%dcon4table"% boardnum].show() - self.widgets["mesa%dcon5table"% boardnum].hide() - if self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] == "5i22": + if currentboard == "5i22": self.widgets["mesa%dcon2table"% boardnum].show() self.widgets["mesa%dcon3table"% boardnum].show() self.widgets["mesa%dcon4table"% boardnum].show() - self.widgets["mesa%dcon5table"% boardnum].show() - if self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] == "7i43": - self.widgets["mesa%dcon2table"% boardnum].hide() + self.widgets["mesa%dcon5table"% boardnum].show() + if currentboard == "5i25": + self.widgets["mesa%dcon2table"% boardnum].show() + self.widgets["mesa%dcon3table"% boardnum].show() + if currentboard == "7i43": self.widgets["mesa%dcon3table"% boardnum].show() self.widgets["mesa%dcon4table"% boardnum].show() - self.widgets["mesa%dcon5table"% boardnum].hide() - if self.data["mesa%d_currentfirmwaredata"% boardnum][_BOARDNAME] == "3x20": - self.widgets["mesa%dcon2table"% boardnum].hide() - self.widgets["mesa%dcon3table"% boardnum].hide() + if currentboard == "3x20": self.widgets["mesa%dcon4table"% boardnum].show() self.widgets["mesa%dcon5table"% boardnum].show() self.widgets["mesa%dcon6table"% boardnum].show() self.widgets["mesa%dcon7table"% boardnum].show() self.widgets["mesa%dcon8table"% boardnum].show() self.widgets["mesa%dcon9table"% boardnum].show() - else: - self.widgets["mesa%dcon6table"% boardnum].hide() - self.widgets["mesa%dcon7table"% boardnum].hide() - self.widgets["mesa%dcon8table"% boardnum].hide() - self.widgets["mesa%dcon9table"% boardnum].hide() - self.widgets["mesa%dsserialtab1"% boardnum].hide() - self.widgets["mesa%dsserialtab2"% boardnum].hide() - self.widgets["mesa%dsserialtab3"% boardnum].hide() - self.widgets["mesa%dsserialtab4"% boardnum].hide() + self.widgets["mesa%d"%boardnum].set_title("Mesa%d Configuration-Board: %s firmware: %s"% (boardnum,self.data["mesa%d_boardtitle"%boardnum], self.data["mesa%d_currentfirmwaredata"% boardnum][_FIRMWARE])) @@ -5180,7 +5178,20 @@ def set_mesa_options(self,boardnum,title,firmware,numofpwmgens,numoftppwmgens,nu def firmware_to_widgets(self,boardnum,firmptype,p,ptype,pinv,complabel,compnum,concount,pin,numofencoders,numofpwmgens,numoftppwmgens, numofstepgens,numofsserialports,numofsserialchannels,sserialflag): # *** convert widget[ptype] to component specified in firmwaredata *** - + + # if the board has less then 24 pins hide the extra comboboxes + if firmptype == NUSED: + self.widgets[p].hide() + self.widgets[ptype].hide() + self.widgets[pinv].hide() + self.widgets[complabel].hide() + firmptype = GPIOI # we cheat and now call it GPIOI just to simplify later code + else: + self.widgets[p].show() + self.widgets[ptype].show() + self.widgets[pinv].show() + self.widgets[complabel].show() + # ---SETUP GUI FOR ENCODER FAMILY COMPONENT--- # check that we are not converting more encoders that user requested # if we are then we trick this routine into thinking the firware asked for GPIO: From 6ef390c751e67225919f21de16e3e1b045e20c3a Mon Sep 17 00:00:00 2001 From: cmorley Date: Sun, 2 Oct 2011 17:05:54 -0700 Subject: [PATCH 0066/1024] pncconf -fix loading of the 5i25 board --- src/emc/usr_intf/pncconf/pncconf.py | 59 ++++++++++++++++++----------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/src/emc/usr_intf/pncconf/pncconf.py b/src/emc/usr_intf/pncconf/pncconf.py index 6dce991a7..9dfe391d4 100755 --- a/src/emc/usr_intf/pncconf/pncconf.py +++ b/src/emc/usr_intf/pncconf/pncconf.py @@ -1353,18 +1353,23 @@ def write_inifile(self, base): ssconfig0 = "num_sserials=%d"%self.mesa0_currentfirmwaredata[_MAXSSERIALCHANNELS] if self.mesa1_numof_sserialports: ssconfig1 = "num_sserials=%d"%self.mesa1_currentfirmwaredata[_MAXSSERIALCHANNELS] + firmstring0 = firmstring1 = "" + if not "5i25" in self.mesa0_currentfirmwaredata[_BOARDNAME]: + firmstring0 = "firmware=hm2/%s/%s.BIT" % (self.mesa0_boardtitle, self.mesa0_firmware) + if not "5i25" in self.mesa1_currentfirmwaredata[_BOARDNAME]: + firmstring1 = "firmware=hm2/%s/%s.BIT" % (self.mesa1_boardtitle, self.mesa1_firmware) print >>file, "# [HOSTMOT2]" - print >>file, "# This is for info only" + print >>file, "# **** This is for info only ****" print >>file, "# DRIVER0=%s"% self.mesa0_currentfirmwaredata[_HALDRIVER] print >>file, "# BOARD0=%s"% self.mesa0_currentfirmwaredata[_BOARDNAME] - print >>file, """# CONFIG0="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( - self.mesa0_boardtitle, self.mesa0_firmware, self.mesa0_numof_encodergens, + print >>file, """# CONFIG0="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( + firmstring0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens, self.mesa0_numof_stepgens, ssconfig0 ) if self.number_mesa == 2: print >>file, "# DRIVER1=%s" % self.mesa1_currentfirmwaredata[_HALDRIVER] print >>file, "# BOARD1=%s"% self.mesa1_currentfirmwaredata[_BOARDNAME] print >>file, """# CONFIG1="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( - self.mesa1_boardtitle, self.mesa1_firmware, self.mesa1_numof_encodergens, + firmstring1, self.mesa1_numof_encodergens, self.mesa1_numof_pwmgens, self.mesa1_numof_tppwmgens, self.mesa1_numof_stepgens, ssconfig1 ) print >>file print >>file, "[HAL]" @@ -2114,17 +2119,22 @@ def writebackup(origname): ssconfig0 = "num_sserials=%d"%self.mesa0_currentfirmwaredata[_MAXSSERIALCHANNELS] if self.mesa1_numof_sserialports: ssconfig1 = "num_sserials=%d"%self.mesa1_currentfirmwaredata[_MAXSSERIALCHANNELS] + firmstring0 = firmstring1 = "" + if not "5i25" in board0: + firmstring0 = "firmware=hm2/%s/%s.BIT" % (directory0, firm0) + if not "5i25" in board1: + firmstring1 = "firmware=hm2/%s/%s.BIT" % (directory1, firm1) if self.number_mesa == 1: - print >>file, """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( - driver0, directory0, firm0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens, self.mesa0_numof_stepgens ,ssconfig0) + print >>file, """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( + driver0, firmstring0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens, self.mesa0_numof_stepgens ,ssconfig0) elif self.number_mesa == 2 and (driver0 == driver1): - print >>file, """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s,firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" - """ % ( driver0, directory0, firm0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens, self.mesa0_numof_stepgens, ssconfig0, directory1, firm1, self.mesa1_numof_encodergens, self.mesa1_numof_pwmgens, self.mesa1_numof_tppwmgens, self.mesa1_numof_stepgens, ssconfig1 ) + print >>file, """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s,%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" + """ % ( driver0, firmstring0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens, self.mesa0_numof_stepgens, ssconfig0, firmstring1, self.mesa1_numof_encodergens, self.mesa1_numof_pwmgens, self.mesa1_numof_tppwmgens, self.mesa1_numof_stepgens, ssconfig1 ) elif self.number_mesa == 2: - print >>file, """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( - driver0, directory0, firm0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens,self.mesa0_numof_stepgens, ssconfig0 ) - print >>file, """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( - driver1, directory1, firm1, self.mesa1_numof_encodergens, self.mesa1_numof_pwmgens, self.mesa0_numof_tppwmgens,self.mesa1_numof_stepgens, ssconfig1 ) + print >>file, """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( + driver0, firmstring0, self.mesa0_numof_encodergens, self.mesa0_numof_pwmgens, self.mesa0_numof_tppwmgens,self.mesa0_numof_stepgens, ssconfig0 ) + print >>file, """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s" """ % ( + driver1, firmstring1, self.mesa1_numof_encodergens, self.mesa1_numof_pwmgens, self.mesa0_numof_tppwmgens,self.mesa1_numof_stepgens, ssconfig1 ) for boardnum in range(0,int(self.number_mesa)): if boardnum == 1 and (board0 == board1): halnum = 1 @@ -8254,6 +8264,11 @@ def hal_cmnds(self,command ): directory1 = self.data.mesa1_currentfirmwaredata[_DIRECTORY] firm0 = self.data.mesa0_currentfirmwaredata[_FIRMWARE] firm1 = self.data.mesa1_currentfirmwaredata[_FIRMWARE] + firmstring0 = firmstring1 = "" + if not "5i25" in board0: + firmstring0 = "firmware=hm2/%s/%s.BIT" % (directory0, firm0) + if not "5i25" in board1: + firmstring1 = "firmware=hm2/%s/%s.BIT" % (directory1, firm1) # TODO fix this hardcoded hack: only one serialport ssconfig0 = ssconfig1 = "" if self.data.mesa0_numof_sserialports: @@ -8261,18 +8276,18 @@ def hal_cmnds(self,command ): if self.data.mesa1_numof_sserialports: ssconfig1 = "num_sserials=%d"%self.data.mesa1_currentfirmwaredata[_MAXSSERIALCHANNELS] if self.data.number_mesa == 1: - halrun.write( """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s"\n """ % ( - driver0, directory0, firm0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa0_numof_stepgens ,ssconfig0)) + halrun.write( """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s"\n """ % ( + driver0, firmstring0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa0_numof_stepgens ,ssconfig0)) elif self.data.number_mesa == 2 and (driver0 == driver1): - halrun.write( """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s,\ - firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s"\n""" % ( - driver0, directory0, firm0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, - self.data.mesa0_numof_stepgens, ssconfig0 ,directory1, firm1, self.data.mesa1_numof_encodergens, self.data.mesa1_numof_pwmgens, self.data.mesa1_numof_tppwmgens,self.data.mesa1_numof_stepgens, ssconfig1 )) + halrun.write( """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s,\ + %s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d %s"\n""" % ( + driver0, firmstring0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, + self.data.mesa0_numof_stepgens, ssconfig0, firmstring1, self.data.mesa1_numof_encodergens, self.data.mesa1_numof_pwmgens, self.data.mesa1_numof_tppwmgens,self.data.mesa1_numof_stepgens, ssconfig1 )) elif self.data.number_mesa == 2: - halrun.write( """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d"\n """ % ( - driver0, directory0, firm0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa0_numof_stepgens, ssconfig0 )) - halrun.write( """loadrt %s config="firmware=hm2/%s/%s.BIT num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d"\n """ % ( - driver1, directory1, firm1, self.data.mesa1_numof_encodergens, self.data.mesa1_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa1_numof_stepgens, ssconfig1 )) + halrun.write( """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d"\n """ % ( + driver0, firmstring0, self.data.mesa0_numof_encodergens, self.data.mesa0_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa0_numof_stepgens, ssconfig0 )) + halrun.write( """loadrt %s config="%s num_encoders=%d num_pwmgens=%d num_3pwmgens=%d num_stepgens=%d"\n """ % ( + driver1, firmstring1, self.data.mesa1_numof_encodergens, self.data.mesa1_numof_pwmgens, self.data.mesa0_numof_tppwmgens, self.data.mesa1_numof_stepgens, ssconfig1 )) for boardnum in range(0,int(self.data.number_mesa)): if boardnum == 1 and (board0 == board1): halnum = 1 From d595d9cc05ba571dba720264fb5804d9544e8609 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Mon, 26 Sep 2011 06:12:15 +0200 Subject: [PATCH 0067/1024] interp: assure aborted O-word subroutines properly unwind the call stack wrap read() and execute() to call unwind_call() on error. factor out most of reset() into unwind_call(). To aid post-error inspection, the failing input line is left intact on unwind_call() and only cleared in reset(). NB: also reset _setup.skipping_to_sub. Post-reset the interpreter will never be skipping to a sub without an initial read(). --- src/emc/rs274ngc/rs274ngc_interp.hh | 4 + src/emc/rs274ngc/rs274ngc_pre.cc | 134 ++++++++++++++++++---------- 2 files changed, 90 insertions(+), 48 deletions(-) diff --git a/src/emc/rs274ngc/rs274ngc_interp.hh b/src/emc/rs274ngc/rs274ngc_interp.hh index 82aba6362..71009d475 100644 --- a/src/emc/rs274ngc/rs274ngc_interp.hh +++ b/src/emc/rs274ngc/rs274ngc_interp.hh @@ -272,6 +272,7 @@ private: int cycle_traverse(block_pointer block, CANON_PLANE plane, double end1, double end2, double end3); int enhance_block(block_pointer block, setup_pointer settings); + int _execute(const char *command = 0); int execute_binary(double *left, int operation, double *right); int execute_binary1(double *left, int operation, double *right); int execute_binary2(double *left, int operation, double *right); @@ -320,6 +321,7 @@ private: int parse_line(char *line, block_pointer block, setup_pointer settings); int precedence(int an_operator); + int _read(const char *command); int read_a(char *line, int *counter, block_pointer block, double *parameters); int read_atan(char *line, int *counter, double *double_ptr, @@ -448,6 +450,8 @@ private: block_pointer block, /* pointer to a block of RS274/NGC instructions */ setup_pointer settings); /* pointer to machine settings */ + int unwind_call(int status, const char *file, int line); + int convert_straight_indexer(int, block*, setup*); int issue_straight_index(int, double, int, setup*); diff --git a/src/emc/rs274ngc/rs274ngc_pre.cc b/src/emc/rs274ngc/rs274ngc_pre.cc index 8f186c513..e6c2217b9 100644 --- a/src/emc/rs274ngc/rs274ngc_pre.cc +++ b/src/emc/rs274ngc/rs274ngc_pre.cc @@ -207,7 +207,7 @@ This executes a previously parsed block. */ -int Interp::execute(const char *command) +int Interp::_execute(const char *command) { int status; int n; @@ -310,6 +310,15 @@ int Interp::execute(const char *command) } +int Interp::execute(const char *command) +{ + int status; + if ((status = _execute(command)) > INTERP_MIN_ERROR) { + unwind_call(status, __FILE__,__LINE__); + } + return status; +} + int Interp::execute(const char *command, int line_number) { @@ -870,7 +879,7 @@ zero, this parses the line into the _setup.block1. */ -int Interp::read(const char *command) //!< may be NULL or a string to read +int Interp::_read(const char *command) //!< may be NULL or a string to read { static char name[] = "Interp::read"; int read_status; @@ -960,6 +969,76 @@ int Interp::read(const char *command) //!< may be NULL or a string to read return read_status; } +int Interp::read(const char *command) +{ + int status; + if ((status = _read(command)) > INTERP_MIN_ERROR) { + unwind_call(status, __FILE__,__LINE__); + } + return status; +} + +// Reset interpreter state and terminate a call in progress by +// falling back to toplevel in a controlled way. Idempotent. +// The input line (_setup.linetext,_setup.blocktext, _setup.line_length) +// is left untouched for inspection post-error. This is only +// cleared in reset(). +int Interp::unwind_call(int status, const char *file, int line) +{ + logDebug("unwind_call call_level=%d status=%d from %s:%d\n", + _setup.call_level, status, file, line); + + for(; _setup.call_level > 0; _setup.call_level--) { + int i; + context * sub = _setup.sub_context + _setup.call_level - 1; + free_named_parameters(_setup.call_level, &_setup); + if(sub->subName) { + logDebug("unwind_call leaving sub '%s'\n", sub->subName); + free(sub->subName); + sub->subName = 0; + } + + for(i=0; isaved_params[i]; + } + + // When called from Interp::close via Interp::reset, this one is NULL + if (!_setup.file_pointer) continue; + + if(0 != strcmp(_setup.filename, sub->filename)) { + fclose(_setup.file_pointer); + _setup.file_pointer = fopen(sub->filename, "r"); + logDebug("unwind_call: reopening '%s' at %ld\n", + sub->filename, sub->position); + strcpy(_setup.filename, sub->filename); + } + + fseek(_setup.file_pointer, sub->position, SEEK_SET); + + _setup.sequence_number = sub->sequence_number; + logDebug("unwind_call: setting sequence number=%d from frame %d\n", + _setup.sequence_number,_setup.call_level); + + } + + if(_setup.sub_name) { + logDebug("unwind_call exiting current sub '%s'\n", _setup.sub_name); + free(_setup.sub_name); + _setup.sub_name = 0; + } + _setup.call_level = 0; + _setup.defining_sub = 0; + _setup.skipping_o = 0; + _setup.skipping_to_sub = 0; + _setup.oword_labels = 0; + + _setup.mdi_interrupt = false; + + qc_reset(); + return INTERP_OK; +} + /***********************************************************************/ /*! Interp::reset @@ -993,10 +1072,6 @@ which are called by Interp::init) change the model. int Interp::reset() { - _setup.linetext[0] = 0; - _setup.blocktext[0] = 0; - _setup.line_length = 0; - //!!!KL According to the comment, //!!!KL this should not be here because this is for //!!!KL more than one line. @@ -1006,48 +1081,11 @@ int Interp::reset() // // initialization stuff for subroutines and control structures - for(; _setup.call_level > 0; _setup.call_level--) { - int i; - context * sub = _setup.sub_context + _setup.call_level - 1; - free_named_parameters(_setup.call_level, &_setup); - if(sub->subName) { - free(sub->subName); - sub->subName = 0; - } - - for(i=0; isaved_params[i]; - } - - // When called from Interp::close this one is NULL - if (!_setup.file_pointer) continue; - - if(0 != strcmp(_setup.filename, sub->filename)) { - fclose(_setup.file_pointer); - _setup.file_pointer = fopen(sub->filename, "r"); - - strcpy(_setup.filename, sub->filename); - } - - fseek(_setup.file_pointer, sub->position, SEEK_SET); - - _setup.sequence_number = sub->sequence_number; - } - if(_setup.sub_name) { - free(_setup.sub_name); - _setup.sub_name = 0; - } - _setup.call_level = 0; - _setup.defining_sub = 0; - _setup.skipping_o = 0; - _setup.oword_labels = 0; - - _setup.mdi_interrupt = false; - - qc_reset(); - - return INTERP_OK; + _setup.linetext[0] = 0; + _setup.blocktext[0] = 0; + _setup.line_length = 0; + unwind_call(INTERP_OK, __FILE__,__LINE__); + return INTERP_OK; } /***********************************************************************/ From bb1a2b6917d48047c4523c766559fcf32c5155ea Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Mon, 26 Sep 2011 06:32:25 +0200 Subject: [PATCH 0068/1024] sai: add -i option to rs274 --- src/emc/sai/driver.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/emc/sai/driver.cc b/src/emc/sai/driver.cc index cb7e64088..c8ebfaee4 100644 --- a/src/emc/sai/driver.cc +++ b/src/emc/sai/driver.cc @@ -31,7 +31,6 @@ #include Interp interp_new; -//Inifile inifile; #define active_settings interp_new.active_settings #define active_g_codes interp_new.active_g_codes @@ -506,6 +505,7 @@ int main (int argc, char ** argv) char default_name[] = "/etc/emc2/sample-configs/sim/sim.var"; int print_stack; int go_flag; + char *inifile = NULL; do_next = 2; /* 2=stop */ block_delete = OFF; print_stack = OFF; @@ -515,7 +515,7 @@ int main (int argc, char ** argv) go_flag = 0; while(1) { - int c = getopt(argc, argv, "t:v:bsn:g"); + int c = getopt(argc, argv, "t:v:bsn:gi:"); if(c == -1) break; switch(c) { @@ -525,6 +525,7 @@ int main (int argc, char ** argv) case 's': print_stack = (print_stack == OFF) ? ON : OFF; break; case 'n': do_next = atoi(optarg); break; case 'g': go_flag = !go_flag; break; + case 'i': inifile = optarg; break; case '?': default: goto usage; } } @@ -545,6 +546,7 @@ int main (int argc, char ** argv) " -b: Toggle the 'block delete' flag (default: ON)\n" " -s: Toggle the 'print stack' flag (default: ON)\n" " -g: Toggle the 'go (batch mode)' flag (default: OFF)\n" + " -i: specify the .ini file (default: no ini file)\n" , argv[0]); exit(1); } @@ -601,6 +603,11 @@ int main (int argc, char ** argv) exit(1); } } + if (inifile!= 0) { + setenv("INI_FILE_NAME",inifile,1); + } else + unsetenv("INI_FILE_NAME"); + if ((status = interp_init()) != INTERP_OK) { report_error(status, print_stack); From 786ee724e4519ce26e2b4d0846aeffe4563ef33f Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Mon, 26 Sep 2011 07:13:28 +0200 Subject: [PATCH 0069/1024] sai: make rs274 -h output reflect actual defaults set to OFF in code, -h output said 'default ON' --- src/emc/sai/driver.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emc/sai/driver.cc b/src/emc/sai/driver.cc index c8ebfaee4..9747d8902 100644 --- a/src/emc/sai/driver.cc +++ b/src/emc/sai/driver.cc @@ -543,8 +543,8 @@ int main (int argc, char ** argv) " 0: continue\n" " 1: enter MDI mode\n" " 2: stop (default)\n" - " -b: Toggle the 'block delete' flag (default: ON)\n" - " -s: Toggle the 'print stack' flag (default: ON)\n" + " -b: Toggle the 'block delete' flag (default: OFF)\n" + " -s: Toggle the 'print stack' flag (default: OFF)\n" " -g: Toggle the 'go (batch mode)' flag (default: OFF)\n" " -i: specify the .ini file (default: no ini file)\n" , argv[0]); From bc1fd41ecedc7dbb88db3796629ec2f532f15a0a Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Mon, 26 Sep 2011 07:20:00 +0200 Subject: [PATCH 0070/1024] interp: regression test for correct unwind after failed external oword procedure This test requires rs274 inifile support (-i ). --- tests/interp/oword-unwind/README | 1 + tests/interp/oword-unwind/expected | 14 ++++++++++++++ .../oword-unwind/expected.pre-failed-oword-patch | 16 ++++++++++++++++ tests/interp/oword-unwind/fail.ngc | 9 +++++++++ tests/interp/oword-unwind/test.ini | 4 ++++ tests/interp/oword-unwind/test.ngc | 3 +++ tests/interp/oword-unwind/test.sh | 3 +++ 7 files changed, 50 insertions(+) create mode 100644 tests/interp/oword-unwind/README create mode 100644 tests/interp/oword-unwind/expected create mode 100644 tests/interp/oword-unwind/expected.pre-failed-oword-patch create mode 100644 tests/interp/oword-unwind/fail.ngc create mode 100644 tests/interp/oword-unwind/test.ini create mode 100644 tests/interp/oword-unwind/test.ngc create mode 100644 tests/interp/oword-unwind/test.sh diff --git a/tests/interp/oword-unwind/README b/tests/interp/oword-unwind/README new file mode 100644 index 000000000..9c1b38ff2 --- /dev/null +++ b/tests/interp/oword-unwind/README @@ -0,0 +1 @@ +Tests for proper unwind in a failed external o-word procedure. diff --git a/tests/interp/oword-unwind/expected b/tests/interp/oword-unwind/expected new file mode 100644 index 000000000..37986fc24 --- /dev/null +++ b/tests/interp/oword-unwind/expected @@ -0,0 +1,14 @@ + N..... USE_LENGTH_UNITS(CANON_UNITS_MM) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_REFERENCE(CANON_XYZ) + N..... MESSAGE(" pre divide-by-zero") + N..... MESSAGE(" pre divide-by-zero") + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_MODE(0) + N..... SET_FEED_RATE(0.0000) + N..... STOP_SPINDLE_TURNING() + N..... SET_SPINDLE_MODE(0.0000) + N..... PROGRAM_END() diff --git a/tests/interp/oword-unwind/expected.pre-failed-oword-patch b/tests/interp/oword-unwind/expected.pre-failed-oword-patch new file mode 100644 index 000000000..a9b107b75 --- /dev/null +++ b/tests/interp/oword-unwind/expected.pre-failed-oword-patch @@ -0,0 +1,16 @@ + N..... USE_LENGTH_UNITS(CANON_UNITS_MM) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_REFERENCE(CANON_XYZ) + N..... MESSAGE(" pre divide-by-zero") + N..... MESSAGE(" post divide-by-zero") + N..... MESSAGE(" pre divide-by-zero") + N..... MESSAGE(" post divide-by-zero") + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_MODE(0) + N..... SET_FEED_RATE(0.0000) + N..... STOP_SPINDLE_TURNING() + N..... SET_SPINDLE_MODE(0.0000) + N..... PROGRAM_END() diff --git a/tests/interp/oword-unwind/fail.ngc b/tests/interp/oword-unwind/fail.ngc new file mode 100644 index 000000000..73dc76cba --- /dev/null +++ b/tests/interp/oword-unwind/fail.ngc @@ -0,0 +1,9 @@ +(debug, pre ) +o sub +(debug, pre divide-by-zero) +#100 = [1/0] +(debug, post divide-by-zero) +o endsub +(debug, post ) +m2 + diff --git a/tests/interp/oword-unwind/test.ini b/tests/interp/oword-unwind/test.ini new file mode 100644 index 000000000..5d1f5d4fd --- /dev/null +++ b/tests/interp/oword-unwind/test.ini @@ -0,0 +1,4 @@ +[RS274NGC] +SUBROUTINE_PATH=. + + diff --git a/tests/interp/oword-unwind/test.ngc b/tests/interp/oword-unwind/test.ngc new file mode 100644 index 000000000..d0d8018b2 --- /dev/null +++ b/tests/interp/oword-unwind/test.ngc @@ -0,0 +1,3 @@ +o call +o call +M2 diff --git a/tests/interp/oword-unwind/test.sh b/tests/interp/oword-unwind/test.sh new file mode 100644 index 000000000..da3515145 --- /dev/null +++ b/tests/interp/oword-unwind/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +rs274 -n 0 -i test.ini -g test.ngc | awk '{$1=""; print}' +exit ${PIPESTATUS[0]} From e6fe7859446c6c8cc72769f5806255ed5fd309e9 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Wed, 5 Oct 2011 22:52:05 -0600 Subject: [PATCH 0071/1024] teach linux_event.py about new input events The Linux Input subsystem has gained some new events since linux_event.py was written. This commit adds support for the new event types. This patch is from Przemek Klosowski, thanks! --- lib/python/linux_event.py | 99 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/lib/python/linux_event.py b/lib/python/linux_event.py index a4194d3f1..f24349adb 100644 --- a/lib/python/linux_event.py +++ b/lib/python/linux_event.py @@ -404,6 +404,14 @@ def __repr__(self): 'KEY_SAVE': 234, 'KEY_DOCUMENTS': 235, 'KEY_UNKNOWN': 240, + 'KEY_VIDEO_NEXT': 241, + 'KEY_VIDEO_PREV': 242, + 'KEY_BRIGHTNESS_CYCLE': 243, + 'KEY_BRIGHTNESS_ZERO': 244, + 'KEY_DISPLAY_OFF': 245, + 'KEY_WIMAX': 246, + 'KEY_RFKILL': 247, + 'KEY_OK': 0x160, 'KEY_SELECT': 0x161, 'KEY_GOTO': 0x162, @@ -493,6 +501,39 @@ def __repr__(self): 'KEY_FN_F': 0x1e2, 'KEY_FN_S': 0x1e3, 'KEY_FN_B': 0x1e4, + 'KEY_BRL_DOT1': 0x1f1, + 'KEY_BRL_DOT2': 0x1f2, + 'KEY_BRL_DOT3': 0x1f3, + 'KEY_BRL_DOT4': 0x1f4, + 'KEY_BRL_DOT5': 0x1f5, + 'KEY_BRL_DOT6': 0x1f6, + 'KEY_BRL_DOT7': 0x1f7, + 'KEY_BRL_DOT8': 0x1f8, + 'KEY_BRL_DOT9': 0x1f9, + 'KEY_BRL_DOT10': 0x1fa, + 'KEY_NUMERIC_0': 0x200, + 'KEY_NUMERIC_1': 0x201, + 'KEY_NUMERIC_2': 0x202, + 'KEY_NUMERIC_3': 0x203, + 'KEY_NUMERIC_4': 0x204, + 'KEY_NUMERIC_5': 0x205, + 'KEY_NUMERIC_6': 0x206, + 'KEY_NUMERIC_7': 0x207, + 'KEY_NUMERIC_8': 0x208, + 'KEY_NUMERIC_9': 0x209, + 'KEY_NUMERIC_STAR': 0x20a, + 'KEY_NUMERIC_POUND': 0x20b, + 'KEY_CAMERA_FOCUS': 0x210, + 'KEY_WPS_BUTTON': 0x211, + 'KEY_TOUCHPAD_TOGGLE': 0x212, + 'KEY_TOUCHPAD_ON': 0x213, + 'KEY_TOUCHPAD_OFF': 0x214, + 'KEY_CAMERA_ZOOMIN': 0x215, + 'KEY_CAMERA_ZOOMOUT': 0x216, + 'KEY_CAMERA_UP': 0x217, + 'KEY_CAMERA_DOWN': 0x218, + 'KEY_CAMERA_LEFT': 0x219, + 'KEY_CAMERA_RIGHT': 0x21a, } BTN = { 'BTN_MISC': 0x100, @@ -565,9 +606,52 @@ def __repr__(self): 'BTN_STYLUS2': 0x14c, 'BTN_TOOL_DOUBLETAP': 0x14d, 'BTN_TOOL_TRIPLETAP': 0x14e, + 'BTN_TOOL_QUADTAP': 0x14f, 'BTN_WHEEL': 0x150, 'BTN_GEAR_DOWN': 0x150, 'BTN_GEAR_UP': 0x151, + + 'BTN_TRIGGER_HAPPY': 0x2c0, + 'BTN_TRIGGER_HAPPY1': 0x2c0, + 'BTN_TRIGGER_HAPPY2': 0x2c1, + 'BTN_TRIGGER_HAPPY3': 0x2c2, + 'BTN_TRIGGER_HAPPY4': 0x2c3, + 'BTN_TRIGGER_HAPPY5': 0x2c4, + 'BTN_TRIGGER_HAPPY6': 0x2c5, + 'BTN_TRIGGER_HAPPY7': 0x2c6, + 'BTN_TRIGGER_HAPPY8': 0x2c7, + 'BTN_TRIGGER_HAPPY9': 0x2c8, + 'BTN_TRIGGER_HAPPY10': 0x2c9, + 'BTN_TRIGGER_HAPPY11': 0x2ca, + 'BTN_TRIGGER_HAPPY12': 0x2cb, + 'BTN_TRIGGER_HAPPY13': 0x2cc, + 'BTN_TRIGGER_HAPPY14': 0x2cd, + 'BTN_TRIGGER_HAPPY15': 0x2ce, + 'BTN_TRIGGER_HAPPY16': 0x2cf, + 'BTN_TRIGGER_HAPPY17': 0x2d0, + 'BTN_TRIGGER_HAPPY18': 0x2d1, + 'BTN_TRIGGER_HAPPY19': 0x2d2, + 'BTN_TRIGGER_HAPPY20': 0x2d3, + 'BTN_TRIGGER_HAPPY21': 0x2d4, + 'BTN_TRIGGER_HAPPY22': 0x2d5, + 'BTN_TRIGGER_HAPPY23': 0x2d6, + 'BTN_TRIGGER_HAPPY24': 0x2d7, + 'BTN_TRIGGER_HAPPY25': 0x2d8, + 'BTN_TRIGGER_HAPPY26': 0x2d9, + 'BTN_TRIGGER_HAPPY27': 0x2da, + 'BTN_TRIGGER_HAPPY28': 0x2db, + 'BTN_TRIGGER_HAPPY29': 0x2dc, + 'BTN_TRIGGER_HAPPY30': 0x2dd, + 'BTN_TRIGGER_HAPPY31': 0x2de, + 'BTN_TRIGGER_HAPPY32': 0x2df, + 'BTN_TRIGGER_HAPPY33': 0x2e0, + 'BTN_TRIGGER_HAPPY34': 0x2e1, + 'BTN_TRIGGER_HAPPY35': 0x2e2, + 'BTN_TRIGGER_HAPPY36': 0x2e3, + 'BTN_TRIGGER_HAPPY37': 0x2e4, + 'BTN_TRIGGER_HAPPY38': 0x2e5, + 'BTN_TRIGGER_HAPPY39': 0x2e6, + 'BTN_TRIGGER_HAPPY40': 0x2e7, } BUS = { 'BUS_PCI': 0x01, @@ -586,6 +670,8 @@ def __repr__(self): 'BUS_I2C': 0x18, 'BUS_HOST': 0x19, 'BUS_GSC': 0x1A, + 'BUS_ATARI': 0x1B, + 'BUS_SPI': 0x1C, } ABS = { 'ABS_X': 0x00, @@ -614,6 +700,19 @@ def __repr__(self): 'ABS_TOOL_WIDTH': 0x1c, 'ABS_VOLUME': 0x20, 'ABS_MISC': 0x28, + 'ABS_MT_SLOT': 0x2f, + 'ABS_MT_TOUCH_MAJOR': 0x30, + 'ABS_MT_TOUCH_MINOR': 0x31, + 'ABS_MT_WIDTH_MAJOR': 0x32, + 'ABS_MT_WIDTH_MINOR': 0x33, + 'ABS_MT_ORIENTATION': 0x34, + 'ABS_MT_POSITION_X': 0x35, + 'ABS_MT_POSITION_Y': 0x36, + 'ABS_MT_TOOL_TYPE': 0x37, + 'ABS_MT_BLOB_ID': 0x38, + 'ABS_MT_TRACKING_ID': 0x39, + 'ABS_MT_PRESSURE': 0x3a, + 'ABS_MT_DISTANCE': 0x3b, } LED = { 'LED_NUML': 0x00, From 3936d2a37e72b14a8bb82dc16fc3657374e9e1a9 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Thu, 6 Oct 2011 00:48:36 -0600 Subject: [PATCH 0072/1024] packaging: add build-dependency on python-lxml This is needed for psha's new html equations. --- debian/control.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control.in b/debian/control.in index cff988da6..f9c78a8a4 100644 --- a/debian/control.in +++ b/debian/control.in @@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 6), tcl@TCLTK_VERSION@-dev, tk@TCLTK_VERSION@-dev, bwidget, blt, libxaw7-dev, libncurses-dev, libreadline-dev, asciidoc (>= 8.5), source-highlight, dblatex (>= 0.2.12), xsltproc, groff, - python, python-dev, python-support, python-tk, + python, python-dev, python-support, python-tk, python-lxml, libglu1-mesa-dev, libgl1-mesa-dev | libgl1-mesa-swx11-dev, libgtk2.0-dev, libgnomeprintui2.2-dev, gettext, autoconf From 7eec33fbe442af12fcc52c1c081639cb55b508bc Mon Sep 17 00:00:00 2001 From: Pavel Shramov Date: Thu, 6 Oct 2011 20:36:45 +0400 Subject: [PATCH 0073/1024] docs: Fix latex math image generator script In older lxml there is no 'method' keyword arg for tostring method. --- docs/src/html-latex-images | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/html-latex-images b/docs/src/html-latex-images index 8294d1d5f..d2c571717 100755 --- a/docs/src/html-latex-images +++ b/docs/src/html-latex-images @@ -68,7 +68,7 @@ def latex(txt, block=False): if r: raise RuntimeError("Compilation failed") def substitute(f): - xml = ET.parse(open(f)) + xml = ET.parse(open(f), ET.HTMLParser()) images = 0 for e in xml.xpath('//xhtml:span[@class="latexmath"]', namespaces=nsmap): images += build_img(f, e, block=False) @@ -77,7 +77,7 @@ def substitute(f): if not images: return print "Added %d images" % images fp = open(f + ".math", 'w') - fp.write(ET.tostring(xml, method="html", pretty_print=True, xml_declaration=False, encoding="utf-8")) + fp.write(ET.tostring(xml, pretty_print=True, xml_declaration=False, encoding="utf-8")) fp.close() os.unlink(f) #os.rename(f, f + ".pre-math") From d13a4b55c9d1ebd5caf633225604d25d7fb05ea6 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Sun, 9 Oct 2011 06:42:12 +0200 Subject: [PATCH 0074/1024] interp: fix for bug ID: 3420655: not correctly handling do-break-while see http://sourceforge.net/tracker/?func=detail&atid=106744&aid=3420655&group_id=6744 --- src/emc/rs274ngc/interp_internal.hh | 2 +- src/emc/rs274ngc/interp_o_word.cc | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index b5215a6b4..68e276090 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -455,7 +455,7 @@ typedef struct setup_struct int defining_sub; // true if in a subroutine defn char *sub_name; // name of sub we are defining (free this) int doing_continue; // true if doing a continue - //int doing_break; // true if doing a break + int doing_break; // true if doing a break int executed_if; // true if executed in current if char *skipping_o; // o_name we are skipping for (or zero) char *skipping_to_sub; // o_name of sub skipping to (or zero) diff --git a/src/emc/rs274ngc/interp_o_word.cc b/src/emc/rs274ngc/interp_o_word.cc index 911bd3794..5fe4c2a87 100644 --- a/src/emc/rs274ngc/interp_o_word.cc +++ b/src/emc/rs274ngc/interp_o_word.cc @@ -609,7 +609,7 @@ int Interp::convert_control_functions( /* ARGUMENTS */ // test the condition - if(settings->test_value != 0.0) + if (settings->test_value != 0.0) { // true // execute forward @@ -631,7 +631,7 @@ int Interp::convert_control_functions( /* ARGUMENTS */ { // this is the end of a 'do' // test the condition - if(settings->test_value != 0.0) + if ((settings->test_value != 0.0) && !_setup.doing_break) { // true // loop on back @@ -644,6 +644,7 @@ int Interp::convert_control_functions( /* ARGUMENTS */ // false logDebug("not looping back to: [%s] in 'do while'", block->o_name); + _setup.doing_break = 0; } } @@ -775,7 +776,7 @@ int Interp::convert_control_functions( /* ARGUMENTS */ if(settings->skipping_o)free(settings->skipping_o); settings->skipping_o = strdup(block->o_name); settings->skipping_start = settings->sequence_number; - //settings->doing_break = 1; + settings->doing_break = 1; logDebug("start skipping forward: [%s] in 'break'", block->o_name); break; From 91c143db5e7f0afd0a7fe45b56df86276ab02046 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Sun, 9 Oct 2011 19:22:59 +0200 Subject: [PATCH 0075/1024] tests: regression for ID: 3420655 (do-break-while) incorporates Seb's fix http://git.highlab.com/?p=emc2.git;a=commit;h=f398f566eb48b4ecd65b66bedccc7cd0fce7b3c4 to avoid looping the buildbot --- tests/interp/do-while-break/README | 3 +++ tests/interp/do-while-break/bug.ngc | 7 +++++++ tests/interp/do-while-break/expected | 17 ++++++++++++++++ tests/interp/do-while-break/test.ngc | 30 ++++++++++++++++++++++++++++ tests/interp/do-while-break/test.sh | 3 +++ 5 files changed, 60 insertions(+) create mode 100644 tests/interp/do-while-break/README create mode 100644 tests/interp/do-while-break/bug.ngc create mode 100644 tests/interp/do-while-break/expected create mode 100644 tests/interp/do-while-break/test.ngc create mode 100644 tests/interp/do-while-break/test.sh diff --git a/tests/interp/do-while-break/README b/tests/interp/do-while-break/README new file mode 100644 index 000000000..3e470cac9 --- /dev/null +++ b/tests/interp/do-while-break/README @@ -0,0 +1,3 @@ +Tests for bug 3420655 (http://sourceforge.net/tracker/?func=detail&atid=106744&aid=3420655&group_id=6744) + + diff --git a/tests/interp/do-while-break/bug.ngc b/tests/interp/do-while-break/bug.ngc new file mode 100644 index 000000000..466943a1d --- /dev/null +++ b/tests/interp/do-while-break/bug.ngc @@ -0,0 +1,7 @@ +o102 do + (print,@start of do-while-loop) +o102 break + (print,@end of do-while-loop) +o102 while [1] +(print,@endsub) +M2 diff --git a/tests/interp/do-while-break/expected b/tests/interp/do-while-break/expected new file mode 100644 index 000000000..f21a411e3 --- /dev/null +++ b/tests/interp/do-while-break/expected @@ -0,0 +1,17 @@ + N..... USE_LENGTH_UNITS(CANON_UNITS_MM) + N..... SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_REFERENCE(CANON_XYZ) + N..... MESSAGE("must-execute-outer") + N..... MESSAGE("must-execute-nested") + N..... MESSAGE("must-execute-inner") + N..... MESSAGE("post-inner-while") + N..... MESSAGE("post-nested-while") + N..... MESSAGE("post-outer-while") + N..... SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_MODE(0) + N..... SET_FEED_RATE(0.0000) + N..... STOP_SPINDLE_TURNING() + N..... SET_SPINDLE_MODE(0.0000) + N..... PROGRAM_END() diff --git a/tests/interp/do-while-break/test.ngc b/tests/interp/do-while-break/test.ngc new file mode 100644 index 000000000..86915673b --- /dev/null +++ b/tests/interp/do-while-break/test.ngc @@ -0,0 +1,30 @@ + +# = 0 + +o100 do + (debug,must-execute-outer) + # = [# + 1] + # = 0 + o200 do + (debug,must-execute-nested) + # = [# + 1] + # = 0 + o300 do + (debug,must-execute-inner) + # = [# + 1] + o300 break + (debug,do-not-execute-inner) + o300 while [# LT 3] + (debug,post-inner-while) + + o200 break + (debug,do-not-execute-nested) + o200 while [# LT 3] + (debug,post-nested-while) + +o100 break + (debug,do-not-execute-outer) +o100 while [# LT 3] +(debug,post-outer-while) + +M2 diff --git a/tests/interp/do-while-break/test.sh b/tests/interp/do-while-break/test.sh new file mode 100644 index 000000000..83d69e365 --- /dev/null +++ b/tests/interp/do-while-break/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +rs274 -g test.ngc | awk '{$1=""; print}' +exit ${PIPESTATUS[0]} From 589948185a0ad8d6d2e4313fae00c86df48e6930 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Sun, 9 Oct 2011 19:32:08 +0200 Subject: [PATCH 0076/1024] tests: adapt regression output for interp/do-while-break to v2.5_branch --- tests/interp/do-while-break/expected | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/interp/do-while-break/expected b/tests/interp/do-while-break/expected index f21a411e3..ce1fc4a85 100644 --- a/tests/interp/do-while-break/expected +++ b/tests/interp/do-while-break/expected @@ -1,5 +1,6 @@ N..... USE_LENGTH_UNITS(CANON_UNITS_MM) - N..... SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) N..... SET_XY_ROTATION(0.0000) N..... SET_FEED_REFERENCE(CANON_XYZ) N..... MESSAGE("must-execute-outer") @@ -8,7 +9,7 @@ N..... MESSAGE("post-inner-while") N..... MESSAGE("post-nested-while") N..... MESSAGE("post-outer-while") - N..... SET_ORIGIN_OFFSETS(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) N..... SET_XY_ROTATION(0.0000) N..... SET_FEED_MODE(0) N..... SET_FEED_RATE(0.0000) From 715c18fbef8a9cd0e6cf1b82c0055d71568edc73 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Wed, 12 Oct 2011 00:51:20 +0100 Subject: [PATCH 0077/1024] Add support for multi-mode Mesa SSLBP (Smart serial) cards. Signed-off-by: Andy Pugh --- docs/man/man9/hostmot2.9 | 42 +++++++++++----------- src/hal/drivers/mesa-hostmot2/hostmot2.c | 46 +++++++++++++++--------- src/hal/drivers/mesa-hostmot2/hostmot2.h | 2 +- src/hal/drivers/mesa-hostmot2/sserial.c | 38 ++++++++++++++++---- 4 files changed, 83 insertions(+), 45 deletions(-) diff --git a/docs/man/man9/hostmot2.9 b/docs/man/man9/hostmot2.9 index 94802992e..f59d04a94 100644 --- a/docs/man/man9/hostmot2.9 +++ b/docs/man/man9/hostmot2.9 @@ -35,7 +35,7 @@ Modules used. hostmot2 is a device driver that interfaces the Mesa HostMot2 firmware to the EMC2 HAL. This driver by itself does nothing, the boards that actually run the firmware require their own drivers before anything -can happen. Currently drivers are available for the 5i20, 5i22, 5i23, +can happen. Currently drivers are available for the 5i20, 5i22, 5i23, 5i25, 3x20, 4i65, and 4i68 (all using the hm2_pci module) and the 7i43 (using the hm2_7i43 module). @@ -88,7 +88,7 @@ like this: .B .nf -loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=3,firmware=hm2/5i23/SVSS8_8.BIT num_sserials=8 num_encoders=4" +loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=3,firmware=hm2/5i23/SVSS8_8.BIT sserial_mode0=0000 num_encoders=4" .fi Note: this assumes that the hm2_pci driver detects the 5i20 first and @@ -102,13 +102,16 @@ Best to try loading it and see what the detection order is. The format of each board's config string is: -.B [firmware=\fIF\fB] [num_encoders=\fIN\fB] [num_pwmgens=\fIN\fB] [num_3pwmgens=\fIN\fB] [num_stepgens=\fIN\fB] [num_sserials=\fIN.N.N.N\fB] [num_leds=\fIN\fB] [enable_raw] +.B [firmware=\fIF\fB] [num_encoders=\fIN\fB] [num_pwmgens=\fIN\fB] [num_3pwmgens=\fIN\fB] [num_stepgens=\fIN\fB] [sserial_modes0=00000000\fB] [num_leds=\fIN\fB] [enable_raw] .RS .TP \fBfirmware\fR [optional] Load the firmware specified by F into the FPGA on this board. If no "\fBfirmware=\fIF\fR" string is specified, the FPGA will not be programmed, and had better have a valid configuration already. + +The 5i25 comes pre-programmed with firmware, and can be loaded, if required +with no config string at all. .P .RS The requested firmware F is fetched by udev. udev searches for the @@ -138,26 +141,25 @@ Only enable the first N stepgens. If N is -1, all stepgens are enabled. If N is 0, no stepgens are enabled. If N is greater than the number of stepgens available in the firmware, the board will fail to register. .TP -\fBnum_sserials\fR [optional, default: 0.0.0.0] +\fBsserial_modesN (N = 0 .. 4)\fR [optional, default: 00000000 for all ports] Up to 32 Smart Serial devices can be connected to a Mesa Anything IO board depending on the firmware used and the number of physical connections on the board. These are arranged in 1-4 ports of 1 to 8 channels. -The number of ports enabled is governed by the number of digits in the string. -The "." character is optional and any characters other than space and comma are -OK. However, do not put a leading 0 in front of a digit or it will be read as a -zero value. -The ports and channels are numbered in the C-style, starting at 0, so -num_sserials=8 will activate channels 0 to 7 of port 0. -The sserial driver will auto-detect the devices. This parameter determines which -of the the 8 channels of each port should be searched for devices. -The channels are activated in ascending order. Pins allocated -to Smart Serial by the firmware but not connected to a Smart Serial device may -be used for GPIO. Pins activated but on which no devices are found can also be -used for GPIO, but this is not recommended as the pin values and directions will -change randomly during the device interogation stage. -For this reason the feature defaults to all channels disabled. -The parameter can also be used to disable specific channels and/ -or ports. + To set the modes for port 0 use, for example \fBsserial_modes0=0120xxxx\fR + Some Smart Serial (SSLBP) cards offer more than one load-time configuration, +for example all inputs, or all outputs, or offering additional analogue input on +some digital pins. + A '0'in the string sets the corresponding port to mode 0, 1 to mode 1, and so on +up to mode 9. An "x" in any position disables that channel and makes the +corresponding FPGA pins available as GPIO. + The string can be up to 8 characters long, and if it defines more +modes than there are channels on the port then the extras are ignored. Channel +numbering is left to right so the example above would set sserial device 0.0 +to mode 0, 0.2 to mode2 and disable channels 0.4 onwards. + The sserial driver will auto-detect connected devices, no further configuration +should be neded. Unconnected channels will default to GPIO, but the pin values +will vary semi-randomly during boot when card-detection runs, to it is best to +actively disable any channel that is to be usd for GPIO. .TP \fBnum_leds\fR [optional, default: -1] Only enable the first N of the LEDs on the FPGA board. If N is -1, then HAL diff --git a/src/hal/drivers/mesa-hostmot2/hostmot2.c b/src/hal/drivers/mesa-hostmot2/hostmot2.c index adb1fe815..a20eb51c7 100644 --- a/src/hal/drivers/mesa-hostmot2/hostmot2.c +++ b/src/hal/drivers/mesa-hostmot2/hostmot2.c @@ -194,17 +194,14 @@ const char *hm2_get_general_function_name(int gtag) { static int hm2_parse_config_string(hostmot2_t *hm2, char *config_string) { char **argv; int argc; - int i; + int i,j; // default is to enable everything in the firmware hm2->config.num_encoders = -1; hm2->config.num_pwmgens = -1; hm2->config.num_tp_pwmgens = -1; hm2->config.num_sserials = 0; - hm2->config.num_sserial_chans[0] = 0; // default to all-off to make probing safer - hm2->config.num_sserial_chans[1] = 0; - hm2->config.num_sserial_chans[2] = 0; - hm2->config.num_sserial_chans[3] = 0; + for(i=0;i<4;i++) for(j=0;j<8;j++) hm2->config.sserial_modes[i][j]='0'; hm2->config.num_stepgens = -1; hm2->config.num_leds = -1; hm2->config.enable_raw = 0; @@ -236,17 +233,27 @@ static int hm2_parse_config_string(hostmot2_t *hm2, char *config_string) { } else if (strncmp(token, "num_3pwmgens=", 13) == 0) { token += 13; hm2->config.num_tp_pwmgens = simple_strtol(token, NULL, 0); - - } else if (strncmp(token, "num_sserials=", 13) == 0) { - hm2->config.num_sserials = 0; - token += 13; - for ( ; *token != 0; token++) { - if (*token >= '0' && *token <= '8') { - hm2->config.num_sserial_chans[hm2->config.num_sserials] = - *token - '0'; - hm2->config.num_sserials ++; + + } else if (strncmp(token, "sserial_mode", 12) == 0) { + int i = *token - '0'; + int c = 0; + token += 12; + i = *token - '0'; + token += 1; + if (i < 0 || i > 4 || *token != '='){ + HM2_ERR("sserial_mode tag must be in the form " + """sserial_modeN=0123xx23"" where N may be 0 to 3\n"); + goto fail; + } + for (token += 1 ; *token != 0; token++) { + if (((*token >= '0' && *token <= '9') || *token == 'x') + && c <= 8) { + hm2->config.sserial_modes[i][c++] = *token; } } + if (i >= hm2->config.num_sserials){ + hm2->config.num_sserials = i + 1; + } } else if (strncmp(token, "num_stepgens=", 13) == 0) { token += 13; @@ -276,9 +283,14 @@ static int hm2_parse_config_string(hostmot2_t *hm2, char *config_string) { HM2_DBG(" num_encoders=%d\n", hm2->config.num_encoders); HM2_DBG(" num_pwmgens=%d\n", hm2->config.num_pwmgens); HM2_DBG(" num_3pwmgens=%d\n", hm2->config.num_tp_pwmgens); - HM2_DBG(" num_sserials=%i.%i.%i.%i)\n", hm2->config.num_sserial_chans[0], - hm2->config.num_sserial_chans[1], hm2->config.num_sserial_chans[2], - hm2->config.num_sserial_chans[3]); + HM2_DBG(" sserial_modes=%s\n" + " %s\n" + " %s\n" + " %s\n", + hm2->config.sserial_modes[0], + hm2->config.sserial_modes[1], + hm2->config.sserial_modes[2], + hm2->config.sserial_modes[3]); HM2_DBG(" num_stepgens=%d\n", hm2->config.num_stepgens); HM2_DBG(" enable_raw=%d\n", hm2->config.enable_raw); HM2_DBG(" firmware=%s\n", hm2->config.firmware ? hm2->config.firmware : "(NULL)"); diff --git a/src/hal/drivers/mesa-hostmot2/hostmot2.h b/src/hal/drivers/mesa-hostmot2/hostmot2.h index d8fc90667..bffa81a5a 100644 --- a/src/hal/drivers/mesa-hostmot2/hostmot2.h +++ b/src/hal/drivers/mesa-hostmot2/hostmot2.h @@ -829,7 +829,7 @@ typedef struct { int num_stepgens; int num_leds; int num_sserials; - int num_sserial_chans[4]; + char sserial_modes[4][8]; int enable_raw; char *firmware; } config; diff --git a/src/hal/drivers/mesa-hostmot2/sserial.c b/src/hal/drivers/mesa-hostmot2/sserial.c index 2049cd2e6..2e8729c3c 100644 --- a/src/hal/drivers/mesa-hostmot2/sserial.c +++ b/src/hal/drivers/mesa-hostmot2/sserial.c @@ -33,7 +33,7 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { int i,c; int pin = -1; int port_pin, port; - u32 ddr_reg, src_reg, addr, buff; + u32 ddr_reg, src_reg, addr, buff, buff2; int r = 0; int count = 0; int chan_counts[] = {0,0,0,0,0,0,0,0}; @@ -121,8 +121,8 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { chan_counts[hm2->pin[pin].sec_unit] = (hm2->pin[pin].sec_pin & 0x0F); } // check if the channel is enabled - if ((hm2->pin[pin].sec_pin & 0x0F) - <= hm2->config.num_sserial_chans[hm2->pin[pin].sec_unit]) { + if (hm2->config.sserial_modes[hm2->pin[pin].sec_unit] + [hm2->pin[pin].sec_pin & 0x0F] != 'x') { src_reg |= (1 << port_pin); if (hm2->pin[pin].sec_pin & 0x80){ ddr_reg |= (1 << port_pin); } } @@ -148,6 +148,12 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { inst->command_reg_addr = md->base_address + i * md->instance_stride; inst->data_reg_addr = md->base_address + i * md->instance_stride + md->register_stride; + + buff=0x4000; //Reset + hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); + buff=0x00; //Clear + hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); + rtapi_delay(10000000); buff=0x2003; //Read firmware version hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); @@ -158,14 +164,25 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { hm2->llio->read(hm2->llio, inst->data_reg_addr, &buff, sizeof(u32)); HM2_PRINT("Smart Serial Firmware Version %i\n",buff); - buff=0x800; + buff=0x800; //Stop All hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); if (hm2_sserial_waitfor(hm2, inst->command_reg_addr, 0xFFFFFFFF,51) < 0){ r = -EINVAL; goto fail0; } // start up the card in setup mode so any sub-drivers can read parameters out - buff=0xF00 | (0xFF >> (8 - hm2->config.num_sserial_chans[i])); + // we need to set the card mode here too. + buff=0xF00; + for (c = 0 ; c < inst->num_channels ; c++){ + if (hm2->config.sserial_modes[i][c] != 'x'){ + buff |= 1 << c; + // CS addr - write card mode + addr = md->base_address + 2 * md->register_stride + + i * md->instance_stride + c * sizeof(u32); + buff2 = (hm2->config.sserial_modes[i][c] - '0') << 24; + hm2->llio->write(hm2->llio, addr, &buff2, sizeof(u32)); + } + } hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); if (hm2_sserial_waitfor(hm2, inst->command_reg_addr, 0xFFFFFFFF, 8000) < 0){ r = -EINVAL; @@ -178,6 +195,7 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { inst->tag_all = 0; inst->num_all = 0; for (c = 0 ; c < inst->num_channels ; c++) { + // user1 addr addr = md->base_address + 4 * md->register_stride + i * md->instance_stride + c * sizeof(u32); hm2->llio->read(hm2->llio, addr, &buff, sizeof(u32)); @@ -204,8 +222,8 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { inst->num_all += 1; break; default: - HM2_ERR("Unsupported Device ID %X found on sserial %d " - "channel %d\n", buff, i, c); + HM2_ERR("Unsupported Device ID %4s found on sserial %d " + "channel %d\n", (char*)&buff, i, c); } } if (inst->num_all > 0){ @@ -337,6 +355,12 @@ int hm2_sserial_parse_md(hostmot2_t *hm2, int md_index) { hm2->llio->write(hm2->llio, hm2->ioport.alt_source_addr + 4 * port, &src_reg, sizeof(u32)); } + // Stop the sserial ports. + buff=0x800; //Stop All + for (i = 0 ; i < hm2->sserial.num_instances ; i++) { + hm2_sserial_instance_t *inst = &hm2->sserial.instance[i]; + hm2->llio->write(hm2->llio, inst->command_reg_addr, &buff, sizeof(u32)); + } return hm2->sserial.num_instances; fail0: hm2->sserial.num_instances = 0; From 5fb4c9c3befacc70e9a6c76b253b745c68114678 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Sat, 15 Oct 2011 12:43:10 -0500 Subject: [PATCH 0078/1024] changelog for v2.4.7 release --- debian/changelog | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/debian/changelog b/debian/changelog index 74e886b09..eeb945e6c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,52 @@ +emc2 (1:2.4.7) lucid; urgency=low + + * axis: fix problem removing a single notification + * axis: fix jog after ctrl-alt-left or -right in mdi + + * classicladder: fix a problem when more than 8 modbus inputs are read + * classicladder: fix possible crashes + + * comp: fix a problem with 'option userinit yes" + + * emcrsh: minor bugfixes + + * halcmd: fix a possible crash + * halrmt: fix a possible crash + * halmeter: fix a possible crash + + * hal_input: add names for new input events + + * hal_motenc: set outputs to 0 on exit + + * interpreter: fix spurious cutter comp error with tiny arcs in metric + * interpreter: fix G10 L2 on the active coordinate system + * interpreter: disallow changing coordinate system with cutter comp on + * interpreter: fix incorrect handling of do-break-while (SF#3420655) + + * motion: fix spurious reversal in CSS mode with M4 and X=0 + * motion: fix a problem with probing (SF#3040806) + + * pncconf: fix nameless 'addf' in HAL file + * pncconf: changes spaces in configuration names to underscores + * pncconf: fixes for 3i28 and 7i43-4 boards + * pncconf: fix scale calculation + * pncconf: fix scaled spindle speed display + + * stepconf: changes spaces in configuration names to underscores + * stepconf: fix for spindle PWM on pin 17 + * stepconf: fix name of "Z Both Limit + Home" pin + * stepconf: fix scaled spindle speed display + * stepconf: advice about how to use on an 800x600 display + + * thc: correctly remove offset after compensation disabled + + * documentation: various improvements + + * configs/smithy: various updates + * configs/gantry: simulated XYYZ gantry configuration + + -- Jeff Epler Sat, 15 Oct 2011 12:23:30 -0500 + emc2 (1:2.4.6) lucid; urgency=low * documentation: various improvements From 7a6fd05261ca95892f5e89d662968d899c8a42c8 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Tue, 18 Oct 2011 19:25:46 +0200 Subject: [PATCH 0079/1024] M19 orient spindle: NML support --- src/emc/nml_intf/emc.cc | 18 ++++++++++++++++++ src/emc/nml_intf/emc.hh | 1 + src/emc/nml_intf/emc_nml.hh | 13 +++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/emc/nml_intf/emc.cc b/src/emc/nml_intf/emc.cc index 2ccaebb59..576bee3b3 100644 --- a/src/emc/nml_intf/emc.cc +++ b/src/emc/nml_intf/emc.cc @@ -242,6 +242,9 @@ int emcFormat(NMLTYPE type, void *buffer, CMS * cms) case EMC_SPINDLE_SPEED_TYPE: ((EMC_SPINDLE_SPEED *) buffer)->update(cms); break; + case EMC_SPINDLE_ORIENT_TYPE: + ((EMC_SPINDLE_ORIENT *) buffer)->update(cms); + break; case EMC_SPINDLE_STAT_TYPE: ((EMC_SPINDLE_STAT *) buffer)->update(cms); break; @@ -599,6 +602,8 @@ const char *emc_symbol_lookup(long type) return "EMC_SPINDLE_ON"; case EMC_SPINDLE_SPEED_TYPE: return "EMC_SPINDLE_SPEED"; + case EMC_SPINDLE_ORIENT_TYPE: + return "EMC_SPINDLE_ORIENT"; case EMC_SPINDLE_STAT_TYPE: return "EMC_SPINDLE_STAT"; case EMC_STAT_TYPE: @@ -2067,6 +2072,19 @@ void EMC_SPINDLE_SPEED::update(CMS * cms) } +/* +* NML/CMS Update function for EMC_SPINDLE_ORIENT +* Manually generated by Michael Haberler. +* on Tue Oct 18 18:36:21 CEST 2011 +*/ +void EMC_SPINDLE_ORIENT::update(CMS * cms) +{ + + EMC_SPINDLE_CMD_MSG::update(cms); + cms->update(orientation); + cms->update(direction); +} + /* * NML/CMS Update function for EMC_TASK_PLAN_END * Automatically generated by NML CodeGen Java Applet. diff --git a/src/emc/nml_intf/emc.hh b/src/emc/nml_intf/emc.hh index 224624c36..c0ed5b01b 100644 --- a/src/emc/nml_intf/emc.hh +++ b/src/emc/nml_intf/emc.hh @@ -227,6 +227,7 @@ class PM_CARTESIAN; /* removed #define EMC_SPINDLE_ENABLE_TYPE ((NMLTYPE) 1314) */ /* removed #define EMC_SPINDLE_DISABLE_TYPE ((NMLTYPE) 1315) */ #define EMC_SPINDLE_SPEED_TYPE ((NMLTYPE) 1316) +#define EMC_SPINDLE_ORIENT_TYPE ((NMLTYPE) 1317) #define EMC_SPINDLE_STAT_TYPE ((NMLTYPE) 1399) diff --git a/src/emc/nml_intf/emc_nml.hh b/src/emc/nml_intf/emc_nml.hh index 00bcebe99..81daa6c9f 100644 --- a/src/emc/nml_intf/emc_nml.hh +++ b/src/emc/nml_intf/emc_nml.hh @@ -1672,6 +1672,19 @@ class EMC_SPINDLE_SPEED:public EMC_SPINDLE_CMD_MSG { double xoffset; // X axis offset compared to center of rotation, for CSS }; +class EMC_SPINDLE_ORIENT:public EMC_SPINDLE_CMD_MSG { + public: + EMC_SPINDLE_ORIENT():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_ORIENT_TYPE, + sizeof(EMC_SPINDLE_ORIENT)) { + }; + + // For internal NML/CMS use only. + void update(CMS * cms); + double orientation; // desired spindle position + int direction; // cw/ccw +}; + + class EMC_SPINDLE_ON:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_ON():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_ON_TYPE, From 5a0e5d13438206ec4bd4ea87c6af64fa1578f00b Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Tue, 18 Oct 2011 19:26:23 +0200 Subject: [PATCH 0080/1024] M19 orient spindle: queued canon support for ORIENT_SPINDLE --- src/emc/rs274ngc/interp_queue.cc | 19 ++++++++++++++++++- src/emc/rs274ngc/interp_queue.hh | 9 ++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/emc/rs274ngc/interp_queue.cc b/src/emc/rs274ngc/interp_queue.cc index a3a9d89ca..6cba96153 100644 --- a/src/emc/rs274ngc/interp_queue.cc +++ b/src/emc/rs274ngc/interp_queue.cc @@ -186,6 +186,20 @@ void enqueue_STOP_SPINDLE_TURNING(void) { qc().push_back(q); } +void enqueue_ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction) { + if(qc().empty()) { + if(debug_qc) printf("immediate spindle orient\n"); + ORIENT_SPINDLE(orientation,direction); + return; + } + queued_canon q; + q.type = QORIENT_SPINDLE; + q.data.orient_spindle.orientation = orientation; + q.data.orient_spindle.direction = direction; + if(debug_qc) printf("enqueue spindle orient\n"); + qc().push_back(q); +} + void enqueue_SET_SPINDLE_MODE(double mode) { if(qc().empty()) { if(debug_qc) printf("immediate spindle mode %f\n", mode); @@ -512,7 +526,10 @@ void dequeue_canons(setup_pointer settings) { START_CHANGE(); free(q.data.comment.comment); break; - + case QORIENT_SPINDLE: + if(debug_qc) printf("issuing orient spindle\n"); + ORIENT_SPINDLE(q.data.orient_spindle.orientation, q.data.orient_spindle.direction); + break; } } qc().clear(); diff --git a/src/emc/rs274ngc/interp_queue.hh b/src/emc/rs274ngc/interp_queue.hh index ac3d3fddb..d38f3aaa0 100644 --- a/src/emc/rs274ngc/interp_queue.hh +++ b/src/emc/rs274ngc/interp_queue.hh @@ -14,7 +14,7 @@ enum queued_canon_type {QSTRAIGHT_TRAVERSE, QSTRAIGHT_FEED, QARC_FEED, QSET_FEED QMIST_ON, QMIST_OFF, QFLOOD_ON, QFLOOD_OFF, QSTART_SPINDLE_CLOCKWISE, QSTART_SPINDLE_COUNTERCLOCKWISE, QSTOP_SPINDLE_TURNING, QSET_SPINDLE_MODE, QSET_SPINDLE_SPEED, - QCOMMENT, QM_USER_COMMAND,QSTART_CHANGE}; + QCOMMENT, QM_USER_COMMAND,QSTART_CHANGE, QORIENT_SPINDLE}; struct straight_traverse { int line_number; @@ -66,6 +66,11 @@ struct mcommand { double q_number; }; +struct orient_spindle { + double orientation; + int direction; +}; + struct queued_canon { queued_canon_type type; union { @@ -79,6 +84,7 @@ struct queued_canon { struct set_spindle_speed set_spindle_speed; struct comment comment; struct mcommand mcommand; + struct orient_spindle orient_spindle; } data; }; @@ -116,6 +122,7 @@ void enqueue_ARC_FEED(setup_pointer settings, int l, double u, double v, double w); void enqueue_M_USER_COMMAND(int index,double p_number,double q_number); void enqueue_START_CHANGE(void); +void enqueue_ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction); void dequeue_canons(setup_pointer settings); void set_endpoint(double x, double y); void set_endpoint_zx(double z, double x); From 14363c8f5887f88dd8a0a1aadbb0191741d0d5a6 Mon Sep 17 00:00:00 2001 From: Andy Pugh Date: Wed, 19 Oct 2011 23:49:43 +0100 Subject: [PATCH 0081/1024] Count the onboard LEDs of the Mesa FPGA cards more reliably. Depending on the source of the firmware the current method is unreliable. Not that that mattered, as I had the sense of the strcmp test wrong too. Signed-off-by: Andy Pugh --- src/hal/drivers/mesa-hostmot2/hm2_7i43.c | 2 +- src/hal/drivers/mesa-hostmot2/hm2_pci.c | 8 ++++ .../drivers/mesa-hostmot2/hostmot2-lowlevel.h | 3 ++ src/hal/drivers/mesa-hostmot2/led.c | 42 ++++--------------- 4 files changed, 20 insertions(+), 35 deletions(-) diff --git a/src/hal/drivers/mesa-hostmot2/hm2_7i43.c b/src/hal/drivers/mesa-hostmot2/hm2_7i43.c index 89f4fa77f..cc3807868 100644 --- a/src/hal/drivers/mesa-hostmot2/hm2_7i43.c +++ b/src/hal/drivers/mesa-hostmot2/hm2_7i43.c @@ -437,7 +437,7 @@ static int hm2_7i43_setup(void) { board[i].llio.pins_per_connector = 24; board[i].llio.ioport_connector_name[0] = "P4"; board[i].llio.ioport_connector_name[1] = "P3"; - + board[i].llio.num_leds = 8; board[i].llio.private = &board[i]; this = &board[i].llio; diff --git a/src/hal/drivers/mesa-hostmot2/hm2_pci.c b/src/hal/drivers/mesa-hostmot2/hm2_pci.c index 79da2c772..b89136811 100644 --- a/src/hal/drivers/mesa-hostmot2/hm2_pci.c +++ b/src/hal/drivers/mesa-hostmot2/hm2_pci.c @@ -420,6 +420,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[1] = "P3"; board->llio.ioport_connector_name[2] = "P4"; board->llio.fpga_part_number = "2s200pq208"; + board->llio.num_leds = 8; break; } @@ -432,6 +433,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[0] = "P1"; board->llio.ioport_connector_name[1] = "P1"; board->llio.fpga_part_number = "3s400pq208"; + board->llio.num_leds = 8; break; } @@ -445,6 +447,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[1] = "P3"; board->llio.ioport_connector_name[2] = "P4"; board->llio.fpga_part_number = "2s200pq208"; + board->llio.num_leds = 8; break; } @@ -465,6 +468,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[1] = "P3"; board->llio.ioport_connector_name[2] = "P4"; board->llio.ioport_connector_name[3] = "P5"; + board->llio.num_leds = 8; break; } @@ -478,6 +482,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[1] = "P3"; board->llio.ioport_connector_name[2] = "P4"; board->llio.fpga_part_number = "3s400pq208"; + board->llio.num_leds = 2; break; } @@ -490,6 +495,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[0] = "P3"; board->llio.ioport_connector_name[1] = "P2"; board->llio.fpga_part_number = "6slx9pq144"; + board->llio.num_leds = 2; break; } @@ -508,6 +514,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[1] = "P2"; board->llio.ioport_connector_name[2] = "P4"; board->llio.fpga_part_number = "3s400pq208"; + board->llio.num_leds = 4; break; } @@ -554,6 +561,7 @@ static int hm2_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { board->llio.ioport_connector_name[3] = "P9"; board->llio.ioport_connector_name[4] = "P8"; board->llio.ioport_connector_name[5] = "P7"; + board->llio.num_leds = 0; break; } diff --git a/src/hal/drivers/mesa-hostmot2/hostmot2-lowlevel.h b/src/hal/drivers/mesa-hostmot2/hostmot2-lowlevel.h index 7dd44d15b..f6b400795 100644 --- a/src/hal/drivers/mesa-hostmot2/hostmot2-lowlevel.h +++ b/src/hal/drivers/mesa-hostmot2/hostmot2-lowlevel.h @@ -98,6 +98,9 @@ struct hm2_lowlevel_io_struct { int num_ioport_connectors; int pins_per_connector; const char *ioport_connector_name[ANYIO_MAX_IOPORT_CONNECTORS]; + + // llio enumeration is the easiest place to count the leds + int num_leds; // the part number of the FPGA on this board // optional, enhances firmware sanity checking if present diff --git a/src/hal/drivers/mesa-hostmot2/led.c b/src/hal/drivers/mesa-hostmot2/led.c index 468104ee4..f805fd606 100644 --- a/src/hal/drivers/mesa-hostmot2/led.c +++ b/src/hal/drivers/mesa-hostmot2/led.c @@ -35,8 +35,6 @@ int hm2_led_parse_md(hostmot2_t *hm2, int md_index) { hm2_module_descriptor_t *md = &hm2->md[md_index]; int r; - int led_count; - // // some standard sanity checks @@ -48,41 +46,17 @@ int hm2_led_parse_md(hostmot2_t *hm2, int md_index) { } - // Choose the max number of LEDs from the board ID - if (strcmp(hm2->idrom.board_name, "hm2_7i43")) { - led_count = 8; - } - else if (strcmp(hm2->idrom.board_name, "hm2_5i20")) { - led_count = 8; - } - else if (strcmp(hm2->idrom.board_name, "hm2_5i22")) { - led_count = 8; - } - else if (strcmp(hm2->idrom.board_name, "hm2_5i23")) { - led_count = 2; - } - else if (strcmp(hm2->idrom.board_name, "hm2_4i65")) { - led_count = 8; - } - else if (strcmp(hm2->idrom.board_name, "hm2_4i68")) { - led_count = 4; - } - else if (strcmp(hm2->idrom.board_name, "hm2_3x20")) { - led_count = 0; // Without knowing how it works, don't try - } - else { - led_count = 8; - HM2_ERR("Unknown board type %s, Defaulting to 8 onboard LEDs", hm2->idrom.board_name); - } - - if (led_count == 0 || hm2->config.num_leds == 0) return 0; + // LEDs were enumerated during llio setup + + if (hm2->llio->num_leds == 0 || hm2->config.num_leds == 0) return 0; - if (hm2->config.num_leds > led_count) { - hm2->config.num_leds = led_count; - HM2_ERR( "There are only %d LEDs on this board type, defaulting to %d\n", led_count, hm2->config.num_leds ); + if (hm2->config.num_leds > hm2->llio->num_leds) { + hm2->config.num_leds = hm2->llio->num_leds; + HM2_ERR( "There are only %d LEDs on this board type, defaulting to %d\n", + hm2->llio->num_leds, hm2->config.num_leds ); } else if (hm2->config.num_leds == -1) { - hm2->config.num_leds = led_count; + hm2->config.num_leds = hm2->llio->num_leds; } // From b9962734e42f82533ec13feb55340ea19ed9bd30 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Thu, 20 Oct 2011 06:51:16 +0200 Subject: [PATCH 0082/1024] M19 orient spindle: interpreter support M19 in modal group 7 like m3,m4,m5 M19 R- P- R..orientation angle P..ccw direction flag (default to 0/cw; integer; non-zero means ccw) execution: always queue STOP_SPINDLE_TURNING before ORIENT_SPINDLE [RS274NGC]ORIENT_OFFSET defines the angular zero position (my spindle encoder is mounted in some whacky zero position) adapt regression test --- src/emc/rs274ngc/interp_array.cc | 4 ++-- src/emc/rs274ngc/interp_check.cc | 9 +++++---- src/emc/rs274ngc/interp_convert.cc | 7 ++++++- src/emc/rs274ngc/interp_internal.hh | 1 + src/emc/rs274ngc/rs274ngc_pre.cc | 1 + src/emc/task/emccanon.cc | 7 ++++++- tests/interp/m19/expected | 17 +++++++++++++++++ tests/interp/m19/test.ini | 2 ++ tests/interp/m19/test.sh | 3 +++ 9 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 tests/interp/m19/expected create mode 100644 tests/interp/m19/test.ini create mode 100644 tests/interp/m19/test.sh diff --git a/src/emc/rs274ngc/interp_array.cc b/src/emc/rs274ngc/interp_array.cc index acf17d40a..19880fd25 100644 --- a/src/emc/rs274ngc/interp_array.cc +++ b/src/emc/rs274ngc/interp_array.cc @@ -136,7 +136,7 @@ group 4 = {m0,m1,m2,m30,m60} - stopping group 5 = {m62,m63,m64,m65, - turn I/O point on/off m66} - wait for Input group 6 = {m6,m61} - tool change -group 7 = {m3,m4,m5} - spindle turning +group 7 = {m3,m4,m5,m19} - spindle turning, orient group 8 = {m7,m8,m9} - coolant group 9 = {m48,m49, - feed and speed override switch bypass m50, - feed override switch bypass P1 to turn on, P0 to turn off @@ -148,7 +148,7 @@ group 10 = {m100..m199} - user-defined const int Interp::_ems[] = { 4, 4, 4, 7, 7, 7, 6, 8, 8, 8, // 9 - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 19 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, // 19 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 29 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 39 -1, -1, -1, -1, -1, -1, -1, -1, 9, 9, // 49 diff --git a/src/emc/rs274ngc/interp_check.cc b/src/emc/rs274ngc/interp_check.cc index 6a4ae46a5..28a67a6bf 100644 --- a/src/emc/rs274ngc/interp_check.cc +++ b/src/emc/rs274ngc/interp_check.cc @@ -295,11 +295,12 @@ int Interp::check_other_codes(block_pointer block) //!< pointer to a block (block->m_modes[9] != 50) && (block->m_modes[9] != 51) && (block->m_modes[9] != 52) && (block->m_modes[9] != 53) && (block->m_modes[5] != 62) && (block->m_modes[5] != 63) && (block->m_modes[5] != 64) && (block->m_modes[5] != 65) && (block->m_modes[5] != 66) && - (block->user_m != 1)), + (block->m_modes[7] != 19) && (block->user_m != 1)), _("P word with no G2 G3 G4 G10 G64 G5 G5.2 G76 G82 G86 G88 G89" " or M50 M51 M52 M53 M62 M63 M64 M65 M66 or user M code to use it")); - CHKS((block->p_flag && (motion == G_2 || motion == G_3) && fabs(round_to_int(block->p_number) - block->p_number) > 0.001), - _("P value not an integer with G2 or G3")); + CHKS((block->p_flag && (motion == G_2 || motion == G_3 || (block->m_modes[7] == 19)) && + fabs(round_to_int(block->p_number) - block->p_number) > 0.001), + _("P value not an integer with M19 G2 or G3")); CHKS((block->p_flag && (motion == G_2 || motion == G_3) && round_to_int(block->p_number) < 1), _("P value should be 1 or greater with G2 or G3")); } @@ -315,7 +316,7 @@ int Interp::check_other_codes(block_pointer block) //!< pointer to a block CHKS(((motion != G_2) && (motion != G_3) && (motion != G_76) && ((motion < G_81) || (motion > G_89)) && (motion != G_73) && (block->g_modes[7] != G_41_1) && (block->g_modes[7] != G_42_1) && - (block->g_modes[0] != G_10)), + (block->g_modes[0] != G_10) && (block->m_modes[7] != 19) ), NCE_R_WORD_WITH_NO_G_CODE_THAT_USES_IT); } diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index 091838750..a06858550 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -3018,7 +3018,12 @@ int Interp::convert_m(block_pointer block, //!< pointer to a block of RS27 } else if (block->m_modes[7] == 5) { enqueue_STOP_SPINDLE_TURNING(); settings->spindle_turning = CANON_STOPPED; - + } else if (block->m_modes[7] == 19) { + enqueue_STOP_SPINDLE_TURNING(); + settings->spindle_turning = CANON_STOPPED; + enqueue_ORIENT_SPINDLE(block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, + block->p_flag ? (block->p_number > 0.0 ? CANON_COUNTERCLOCKWISE : CANON_CLOCKWISE) : + CANON_CLOCKWISE); } else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) { // save state in current stack frame. We borrow the o-word call stack diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index 54e340321..218fe213e 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -475,6 +475,7 @@ typedef struct setup_struct int pockets_max; // number of pockets in carousel (including pocket 0, the spindle) CANON_TOOL_TABLE tool_table[CANON_POCKETS_MAX]; // index is pocket number double traverse_rate; // rate for traverse motions + double orient_offset; // added to M19 R word, from [RS274NGC]ORIENT_OFFSET /* stuff for subroutines and control structures */ int defining_sub; // true if in a subroutine defn diff --git a/src/emc/rs274ngc/rs274ngc_pre.cc b/src/emc/rs274ngc/rs274ngc_pre.cc index 29c0de1fe..da91cc14b 100644 --- a/src/emc/rs274ngc/rs274ngc_pre.cc +++ b/src/emc/rs274ngc/rs274ngc_pre.cc @@ -451,6 +451,7 @@ int Interp::init() inifile.Find(&_setup.a_indexer, "LOCKING_INDEXER", "AXIS_3"); inifile.Find(&_setup.b_indexer, "LOCKING_INDEXER", "AXIS_4"); inifile.Find(&_setup.c_indexer, "LOCKING_INDEXER", "AXIS_5"); + inifile.Find(&_setup.orient_offset, "ORIENT_OFFSET", "RS274NGC"); if(NULL != (inistring = inifile.Find("LOG_LEVEL", "RS274NGC"))) { diff --git a/src/emc/task/emccanon.cc b/src/emc/task/emccanon.cc index ad60cabf4..10ff0b869 100644 --- a/src/emc/task/emccanon.cc +++ b/src/emc/task/emccanon.cc @@ -1740,7 +1740,12 @@ void SPINDLE_RETRACT() void ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction) { - /*! \todo FIXME-- unimplemented */ + EMC_SPINDLE_ORIENT o; + + flush_segments(); + o.orientation = orientation; + o.direction = direction; + interp_list.append(o); } void USE_SPINDLE_FORCE(void) diff --git a/tests/interp/m19/expected b/tests/interp/m19/expected new file mode 100644 index 000000000..c949e8d11 --- /dev/null +++ b/tests/interp/m19/expected @@ -0,0 +1,17 @@ + N..... USE_LENGTH_UNITS(CANON_UNITS_MM) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_REFERENCE(CANON_XYZ) + N..... ORIENT_SPINDLE(42.0000, CANON_CLOCKWISE) + N..... ORIENT_SPINDLE(87.0000, CANON_CLOCKWISE) + N..... ORIENT_SPINDLE(42.0000, CANON_COUNTERCLOCKWISE) + N..... ORIENT_SPINDLE(132.0000, CANON_CLOCKWISE) + N..... ORIENT_SPINDLE(132.0000, CANON_COUNTERCLOCKWISE) + N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) + N..... SET_XY_ROTATION(0.0000) + N..... SET_FEED_MODE(0) + N..... SET_FEED_RATE(0.0000) + N..... STOP_SPINDLE_TURNING() + N..... SET_SPINDLE_MODE(0.0000) + N..... PROGRAM_END() diff --git a/tests/interp/m19/test.ini b/tests/interp/m19/test.ini new file mode 100644 index 000000000..abe8751d6 --- /dev/null +++ b/tests/interp/m19/test.ini @@ -0,0 +1,2 @@ +[RS274NGC] +ORIENT_OFFSET = 42.0 diff --git a/tests/interp/m19/test.sh b/tests/interp/m19/test.sh new file mode 100644 index 000000000..da3515145 --- /dev/null +++ b/tests/interp/m19/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +rs274 -n 0 -i test.ini -g test.ngc | awk '{$1=""; print}' +exit ${PIPESTATUS[0]} From 9ad095e1c69c6fd10092d59ea5134db7f88d3160 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Thu, 20 Oct 2011 06:56:15 +0200 Subject: [PATCH 0083/1024] M19 orient spindle: test case not really a test - just exercising options --- tests/interp/m19/README | 2 ++ tests/interp/m19/test.ngc | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 tests/interp/m19/README create mode 100644 tests/interp/m19/test.ngc diff --git a/tests/interp/m19/README b/tests/interp/m19/README new file mode 100644 index 000000000..737aeacba --- /dev/null +++ b/tests/interp/m19/README @@ -0,0 +1,2 @@ +exercise M19 and possible parameters + diff --git a/tests/interp/m19/test.ngc b/tests/interp/m19/test.ngc new file mode 100644 index 000000000..06072c3fd --- /dev/null +++ b/tests/interp/m19/test.ngc @@ -0,0 +1,7 @@ +M19 +M19 R45 +M19 P1 +M19 R90 P0 +M19 R90 P1 + +M2 From 953bde8fcd7a2de9f94b45124dfaa941989711a1 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Tue, 18 Oct 2011 23:32:44 +0200 Subject: [PATCH 0084/1024] M19 orient spindle: motion & task support engage spindle brake when spindle locked after orient complete --- src/emc/motion/command.c | 48 +++++++++++++++++++++++++++++- src/emc/motion/control.c | 19 ++++++++++++ src/emc/motion/mot_priv.h | 8 +++++ src/emc/motion/motion.c | 12 ++++++++ src/emc/motion/motion.h | 5 ++++ src/emc/nml_intf/emc.hh | 1 + src/emc/nml_intf/emc_nml.hh | 2 +- src/emc/rs274ngc/interp_convert.cc | 1 - src/emc/task/emccanon.cc | 2 +- src/emc/task/emctaskmain.cc | 11 +++++++ src/emc/task/taskintf.cc | 9 ++++++ 11 files changed, 114 insertions(+), 4 deletions(-) diff --git a/src/emc/motion/command.c b/src/emc/motion/command.c index 1278b24fc..52e8918f1 100644 --- a/src/emc/motion/command.c +++ b/src/emc/motion/command.c @@ -1498,6 +1498,20 @@ check_stuff ( "before command_handler()" ); case EMCMOT_SPINDLE_ON: rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_ON"); + + if (*(emcmot_hal_data->spindle_orient)) + rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_ORIENT cancelled by SPINDLE_ON"); + if (*(emcmot_hal_data->spindle_locked)) + rtapi_print_msg(RTAPI_MSG_DBG, "spindle-locked cleared by SPINDLE_ON"); + *(emcmot_hal_data->spindle_locked) = 0; + *(emcmot_hal_data->spindle_orient) = 0; + + /* if (emcmotStatus->spindle.orient) { */ + /* reportError(_("cant turn on spindle during orient in progress")); */ + /* emcmotStatus->commandStatus = EMCMOT_COMMAND_INVALID_COMMAND; */ + /* tpAbort(&emcmotDebug->queue); */ + /* SET_MOTION_ERROR_FLAG(1); */ + /* } else { */ emcmotStatus->spindle.speed = emcmotCommand->vel; emcmotStatus->spindle.css_factor = emcmotCommand->ini_maxvel; emcmotStatus->spindle.xoffset = emcmotCommand->acc; @@ -1507,7 +1521,7 @@ check_stuff ( "before command_handler()" ); emcmotStatus->spindle.direction = -1; } emcmotStatus->spindle.brake = 0; //disengage brake - emcmotStatus->atspeed_next_feed = 1; + emcmotStatus->atspeed_next_feed = 1; break; case EMCMOT_SPINDLE_OFF: @@ -1515,6 +1529,38 @@ check_stuff ( "before command_handler()" ); emcmotStatus->spindle.speed = 0; emcmotStatus->spindle.direction = 0; emcmotStatus->spindle.brake = 1; // engage brake + if (*(emcmot_hal_data->spindle_orient)) + rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_ORIENT cancelled by SPINDLE_OFF"); + if (*(emcmot_hal_data->spindle_locked)) + rtapi_print_msg(RTAPI_MSG_DBG, "spindle-locked cleared by SPINDLE_OFF"); + *(emcmot_hal_data->spindle_locked) = 0; + *(emcmot_hal_data->spindle_orient) = 0; + break; + + case EMCMOT_SPINDLE_ORIENT: + rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_ORIENT"); + if (*(emcmot_hal_data->spindle_orient)) { + rtapi_print_msg(RTAPI_MSG_DBG, "orient already in progress"); + + // mah:FIXME unsure wether this is ok or an error + /* reportError(_("orient already in progress")); */ + /* emcmotStatus->commandStatus = EMCMOT_COMMAND_INVALID_COMMAND; */ + /* tpAbort(&emcmotDebug->queue); */ + /* SET_MOTION_ERROR_FLAG(1); */ + } + emcmotStatus->spindle.speed = 0; + emcmotStatus->spindle.direction = 0; + // so far like spindle stop, except opening brake + emcmotStatus->spindle.brake = 0; // open brake + + *(emcmot_hal_data->spindle_orient_angle) = emcmotCommand->orientation; + *(emcmot_hal_data->spindle_orient_fwd) = emcmotCommand->direction; + *(emcmot_hal_data->spindle_locked) = 0; + *(emcmot_hal_data->spindle_orient) = 1; + + // mirror in spindle status + emcmotStatus->spindle.orient_fault = 0; // this pin read during spindle-orient == 1 + emcmotStatus->spindle.locked = 0; break; case EMCMOT_SPINDLE_INCREASE: diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index e8764ea40..33042a44d 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -567,6 +567,25 @@ static void process_inputs(void) } /* end of read and process joint inputs loop */ } + + // a fault was signalled during a spindle-orient in progress + // signal error, and cancel the orient + if (*(emcmot_hal_data->spindle_orient)) { + if (*(emcmot_hal_data->spindle_orient_fault)) { + *(emcmot_hal_data->spindle_orient) = 0; + emcmotStatus->spindle.orient_fault = *(emcmot_hal_data->spindle_orient_fault); + reportError(_("fault %d during orient in progress"), emcmotStatus->spindle.orient_fault); + emcmotStatus->commandStatus = EMCMOT_COMMAND_INVALID_COMMAND; + tpAbort(&emcmotDebug->queue); + SET_MOTION_ERROR_FLAG(1); + } else if (*(emcmot_hal_data->spindle_is_oriented)) { + *(emcmot_hal_data->spindle_orient) = 0; + *(emcmot_hal_data->spindle_locked) = 1; + emcmotStatus->spindle.locked = 1; + emcmotStatus->spindle.brake = 1; + rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_ORIENT complete, spindle locked"); + } + } } static void do_forward_kins(void) diff --git a/src/emc/motion/mot_priv.h b/src/emc/motion/mot_priv.h index ecaa7bb6a..f4a38926d 100644 --- a/src/emc/motion/mot_priv.h +++ b/src/emc/motion/mot_priv.h @@ -141,6 +141,14 @@ typedef struct { hal_float_t *spindle_speed_cmd_rps; /* spindle speed command without SO applied */ hal_float_t *spindle_speed_in; /* spindle speed measured */ + // spindle orient + hal_float_t *spindle_orient_angle; /* out: desired spindle angle, degrees */ + hal_bit_t *spindle_orient_fwd; /* out: search cw if true, else ccw */ + hal_bit_t *spindle_orient; /* out: signal orient in progress */ + hal_bit_t *spindle_locked; /* out: signal orient complete, spindle locked */ + hal_bit_t *spindle_is_oriented; /* in: orientation completed */ + hal_s32_t *spindle_orient_fault; /* in: error code of failed operation */ + // FIXME - debug only, remove later hal_float_t traj_pos_out; /* RPA: traj internals, for debugging */ hal_float_t traj_vel_out; /* RPA: traj internals, for debugging */ diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index 832ef6251..bf88a15c5 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -301,6 +301,18 @@ static int init_hal_io(void) if ((retval = hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->spindle_speed_out_rps), mot_comp_id, "motion.spindle-speed-out-rps")) < 0) goto error; if ((retval = hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->spindle_speed_cmd_rps), mot_comp_id, "motion.spindle-speed-cmd-rps")) < 0) goto error; + // spindle orient pins + if ((retval = hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient_angle), mot_comp_id, "motion.spindle-orient-angle")) < 0) goto error; + if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient_fwd), mot_comp_id, "motion.spindle-orient-fwd")) < 0) goto error; + if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient), mot_comp_id, "motion.spindle-orient")) < 0) goto error; + if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_locked), mot_comp_id, "motion.spindle-locked")) < 0) goto error; + if ((retval = hal_pin_bit_newf(HAL_IN, &(emcmot_hal_data->spindle_is_oriented), mot_comp_id, "motion.spindle-is-oriented")) < 0) goto error; + if ((retval = hal_pin_s32_newf(HAL_IN, &(emcmot_hal_data->spindle_orient_fault), mot_comp_id, "motion.spindle-orient-fault")) < 0) goto error; + *(emcmot_hal_data->spindle_orient_angle) = 0.0; + *(emcmot_hal_data->spindle_orient_fwd) = 1; + *(emcmot_hal_data->spindle_orient) = 0; + + // if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->inpos_output), mot_comp_id, "motion.motion-inpos")) < 0) goto error; if ((retval = hal_pin_float_newf(HAL_IN, &(emcmot_hal_data->spindle_revs), mot_comp_id, "motion.spindle-revs")) < 0) goto error; if ((retval = hal_pin_float_newf(HAL_IN, &(emcmot_hal_data->spindle_speed_in), mot_comp_id, "motion.spindle-speed-in")) < 0) goto error; diff --git a/src/emc/motion/motion.h b/src/emc/motion/motion.h index ade787c9f..72817c0ce 100644 --- a/src/emc/motion/motion.h +++ b/src/emc/motion/motion.h @@ -162,6 +162,7 @@ extern "C" { EMCMOT_SPINDLE_DECREASE, /* spindle slower */ EMCMOT_SPINDLE_BRAKE_ENGAGE, /* engage the spindle brake */ EMCMOT_SPINDLE_BRAKE_RELEASE, /* release the spindle brake */ + EMCMOT_SPINDLE_ORIENT, /* orient the spindle */ EMCMOT_SET_MOTOR_OFFSET, /* set the offset between joint and motor */ EMCMOT_SET_JOINT_COMP, /* set a compensation triplet for a joint (nominal, forw., rev.) */ EMCMOT_SET_OFFSET, /* set tool offsets */ @@ -232,6 +233,8 @@ extern "C" { ~2 = move until probe trips (ngc default) |2 = move until probe clears */ EmcPose tool_offset; /* TLO */ + double orientation; /* angle for spindle orient */ + char direction; /* CANON_DIRECTION flag for spindle orient */ unsigned char tail; /* flag count for mutex detect */ } emcmot_command_t; @@ -555,6 +558,8 @@ Suggestion: Split this in to an Error and a Status flag register.. double xoffset; int direction; // 0 stopped, 1 forward, -1 reverse int brake; // 0 released, 1 engaged + int locked; // spindle lock engaged after orient + int orient_fault; } spindle_status; diff --git a/src/emc/nml_intf/emc.hh b/src/emc/nml_intf/emc.hh index c0ed5b01b..59203937c 100644 --- a/src/emc/nml_intf/emc.hh +++ b/src/emc/nml_intf/emc.hh @@ -523,6 +523,7 @@ extern int emcAuxUpdate(EMC_AUX_STAT * stat); extern int emcSpindleAbort(); extern int emcSpindleSpeed(double speed, double factor, double xoffset); extern int emcSpindleOn(double speed, double factor, double xoffset); +extern int emcSpindleOrient(double orientation, int direction); extern int emcSpindleOff(); extern int emcSpindleIncrease(); extern int emcSpindleDecrease(); diff --git a/src/emc/nml_intf/emc_nml.hh b/src/emc/nml_intf/emc_nml.hh index 81daa6c9f..f5b6a924f 100644 --- a/src/emc/nml_intf/emc_nml.hh +++ b/src/emc/nml_intf/emc_nml.hh @@ -1681,7 +1681,7 @@ class EMC_SPINDLE_ORIENT:public EMC_SPINDLE_CMD_MSG { // For internal NML/CMS use only. void update(CMS * cms); double orientation; // desired spindle position - int direction; // cw/ccw + int direction; // CANON_DIRECTION }; diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index a06858550..3f5ba3923 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -3019,7 +3019,6 @@ int Interp::convert_m(block_pointer block, //!< pointer to a block of RS27 enqueue_STOP_SPINDLE_TURNING(); settings->spindle_turning = CANON_STOPPED; } else if (block->m_modes[7] == 19) { - enqueue_STOP_SPINDLE_TURNING(); settings->spindle_turning = CANON_STOPPED; enqueue_ORIENT_SPINDLE(block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, block->p_flag ? (block->p_number > 0.0 ? CANON_COUNTERCLOCKWISE : CANON_CLOCKWISE) : diff --git a/src/emc/task/emccanon.cc b/src/emc/task/emccanon.cc index 10ff0b869..d301da297 100644 --- a/src/emc/task/emccanon.cc +++ b/src/emc/task/emccanon.cc @@ -1738,7 +1738,7 @@ void SPINDLE_RETRACT() /*! \todo FIXME-- unimplemented */ } -void ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction) +void ORIENT_SPINDLE(double orientation, int direction) { EMC_SPINDLE_ORIENT o; diff --git a/src/emc/task/emctaskmain.cc b/src/emc/task/emctaskmain.cc index 874521a73..7df631159 100644 --- a/src/emc/task/emctaskmain.cc +++ b/src/emc/task/emctaskmain.cc @@ -389,6 +389,7 @@ static EMC_TRAJ_SET_SPINDLESYNC *emcTrajSetSpindlesyncMsg; //static EMC_MOTION_SET_DOUT *emcMotionSetDoutMsg; static EMC_SPINDLE_SPEED *spindle_speed_msg; +static EMC_SPINDLE_ORIENT *spindle_orient_msg; static EMC_SPINDLE_ON *spindle_on_msg; static EMC_TOOL_PREPARE *tool_prepare_msg; static EMC_TOOL_LOAD_TOOL_TABLE *load_tool_table_msg; @@ -997,6 +998,7 @@ static int emcTaskPlan(void) case EMC_TRAJ_SET_FH_ENABLE_TYPE: case EMC_TRAJ_SET_SO_ENABLE_TYPE: case EMC_SPINDLE_SPEED_TYPE: + case EMC_SPINDLE_ORIENT_TYPE: case EMC_SPINDLE_ON_TYPE: case EMC_SPINDLE_OFF_TYPE: case EMC_SPINDLE_BRAKE_RELEASE_TYPE: @@ -1155,6 +1157,7 @@ static int emcTaskPlan(void) case EMC_TRAJ_SET_FH_ENABLE_TYPE: case EMC_TRAJ_SET_SO_ENABLE_TYPE: case EMC_SPINDLE_SPEED_TYPE: + case EMC_SPINDLE_ORIENT_TYPE: case EMC_SPINDLE_ON_TYPE: case EMC_SPINDLE_OFF_TYPE: case EMC_SPINDLE_BRAKE_RELEASE_TYPE: @@ -1306,6 +1309,7 @@ static int emcTaskPlan(void) case EMC_TRAJ_SET_FH_ENABLE_TYPE: case EMC_TRAJ_SET_SO_ENABLE_TYPE: case EMC_SPINDLE_SPEED_TYPE: + case EMC_SPINDLE_ORIENT_TYPE: case EMC_SPINDLE_ON_TYPE: case EMC_SPINDLE_OFF_TYPE: case EMC_SPINDLE_BRAKE_RELEASE_TYPE: @@ -1439,6 +1443,7 @@ static int emcTaskCheckPreconditions(NMLmsg * cmd) case EMC_SPINDLE_SPEED_TYPE: case EMC_SPINDLE_ON_TYPE: case EMC_SPINDLE_OFF_TYPE: + case EMC_SPINDLE_ORIENT_TYPE: // not sure return EMC_TASK_EXEC_WAITING_FOR_MOTION_AND_IO; break; @@ -1867,6 +1872,11 @@ static int emcTaskIssueCommand(NMLmsg * cmd) retval = emcSpindleSpeed(spindle_speed_msg->speed, spindle_speed_msg->factor, spindle_speed_msg->xoffset); break; + case EMC_SPINDLE_ORIENT_TYPE: + spindle_orient_msg = (EMC_SPINDLE_ORIENT *) cmd; + retval = emcSpindleOrient(spindle_orient_msg->orientation, spindle_orient_msg->direction); + break; + case EMC_SPINDLE_ON_TYPE: spindle_on_msg = (EMC_SPINDLE_ON *) cmd; retval = emcSpindleOn(spindle_on_msg->speed, spindle_on_msg->factor, spindle_on_msg->xoffset); @@ -2274,6 +2284,7 @@ static int emcTaskCheckPostconditions(NMLmsg * cmd) case EMC_SPINDLE_SPEED_TYPE: case EMC_SPINDLE_ON_TYPE: case EMC_SPINDLE_OFF_TYPE: + case EMC_SPINDLE_ORIENT_TYPE: case EMC_COOLANT_MIST_ON_TYPE: case EMC_COOLANT_MIST_OFF_TYPE: case EMC_COOLANT_FLOOD_ON_TYPE: diff --git a/src/emc/task/taskintf.cc b/src/emc/task/taskintf.cc index 85f0a1290..0af3c1674 100644 --- a/src/emc/task/taskintf.cc +++ b/src/emc/task/taskintf.cc @@ -1392,6 +1392,15 @@ int emcSpindleSpeed(double speed, double css_factor, double offset) return -1; //can't have negative speeds } +int emcSpindleOrient(double orientation, int direction) +{ + emcmotCommand.command = EMCMOT_SPINDLE_ORIENT; + emcmotCommand.orientation = orientation; + emcmotCommand.direction = (direction == CANON_CLOCKWISE); + return usrmotWriteEmcmotCommand(&emcmotCommand); +} + + int emcSpindleOn(double speed, double css_factor, double offset) { From 0d422d62912d54c0e040f2e6e42a85ec71352065 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Wed, 19 Oct 2011 08:30:15 +0200 Subject: [PATCH 0085/1024] M19 orient spindle: example config orient.ini --- configs/sim/orient.hal | 11 +++ configs/sim/orient.ini | 219 +++++++++++++++++++++++++++++++++++++++++ configs/sim/orient.ui | 194 ++++++++++++++++++++++++++++++++++++ 3 files changed, 424 insertions(+) create mode 100644 configs/sim/orient.hal create mode 100644 configs/sim/orient.ini create mode 100644 configs/sim/orient.ui diff --git a/configs/sim/orient.hal b/configs/sim/orient.hal new file mode 100644 index 000000000..0c595b405 --- /dev/null +++ b/configs/sim/orient.hal @@ -0,0 +1,11 @@ + +#net orient-loop motion.spindle-orient motion.spindle-is-oriented + +net orient motion.spindle-orient gladevcp.spindle-orient-led +net oriented gladevcp.spindle-is-oriented motion.spindle-is-oriented gladevcp.spindle-is-oriented-led +net locked motion.spindle-locked gladevcp.spindle-locked-led + +net angle motion.spindle-orient-angle gladevcp.spindle-orient-angle +net fwd motion.spindle-orient-fwd gladevcp.spindle-orient-fwd-led +net brake motion.spindle-brake gladevcp.spindle-brake-led +net fault gladevcp.spindle-orient-fault-s motion.spindle-orient-fault \ No newline at end of file diff --git a/configs/sim/orient.ini b/configs/sim/orient.ini new file mode 100644 index 000000000..e77904359 --- /dev/null +++ b/configs/sim/orient.ini @@ -0,0 +1,219 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = EMC-M19-Orient-demo + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +DEBUG = 0x7FFFFFFF +#DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + + +GLADEVCP = orient.ui + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 + +MAX_LINEAR_VELOCITY = 1.2 +DEFAULT_LINEAR_VELOCITY = .25 +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 + +EDITOR = gedit +TOOL_EDITOR = tooledit + +INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# fixed offset added to M19 R word +ORIENT_OFFSET = 42.0 + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal +#HALFILE = gamepad.hal +POSTGUI_HALFILE = orient.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.2 +POSITION_FILE = position.txt +MAX_LINEAR_VELOCITY = 1.2 +NO_FORCE_HOMING = 1 + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -8.0 +MAX_LIMIT = 0.0001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 0 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/orient.ui b/configs/sim/orient.ui new file mode 100644 index 000000000..dd135eb13 --- /dev/null +++ b/configs/sim/orient.ui @@ -0,0 +1,194 @@ + + + + + + + + + True + 0 + none + + + True + 12 + + + True + 7 + 2 + + + True + 2 + + + 1 + 2 + + + + + True + motion.spindle-orient: + + + + + True + motion.spindle-locked + + + 2 + 3 + + + + + True + 2 + + + 1 + 2 + 1 + 2 + + + + + motion.spindle-is-oriented: + True + True + True + + + 1 + 2 + + + 4 + 4 + + + + + True + 2 + + + 1 + 2 + 2 + 3 + + + + + True + 1 + motion.spindle-orient-angle: %f + + + 2 + 3 + 4 + + + + + True + motion.spindle-orient-fwd: + + + 4 + 5 + + + + + True + 2 + + + 1 + 2 + 4 + 5 + + + + + True + 2 + + + 1 + 2 + 5 + 6 + + + + + True + motion.spindle-brake: + + + 5 + 6 + + + + + True + True + + fault-adj + + + 1 + 2 + 6 + 7 + + + + + True + motion.spindle-orient-fault: + + + 6 + 7 + + + + + + + + + True + <b>M19-related pins</b> + True + + + + + + + -100 + 100 + 1 + 10 + 10 + + + 100 + 1 + 10 + 10 + + From c9574cd2f4fa622526dabf4235903c0186819e82 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Thu, 20 Oct 2011 07:50:31 +0200 Subject: [PATCH 0086/1024] M19 orient spindle: document --- configs/sim/orient.README | 20 ++++++++++++ docs/man/man9/motion.9 | 26 +++++++++++++++ docs/src/config/emc2hal.txt | 59 ++++++++++++++++++++++++++++++++++ docs/src/config/ini_config.txt | 5 +++ docs/src/gcode/main.txt | 24 ++++++++++++++ docs/src/gcode/overview.txt | 2 +- 6 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 configs/sim/orient.README diff --git a/configs/sim/orient.README b/configs/sim/orient.README new file mode 100644 index 000000000..9ea7135f3 --- /dev/null +++ b/configs/sim/orient.README @@ -0,0 +1,20 @@ +The orient.ini configuration helps exploring +the M19 command and its effect on various HAL pins. + +Note the ORIENT_OFFSET value in orient.ini which is +added to the R word. + + +run, and execute in MDI: + +M19 +M5 +M19 R45 P1 +S500 M3 + +Acknowledge an spindle-orient request by +pushing the spindle-is-oriented button. + +-mah + + diff --git a/docs/man/man9/motion.9 b/docs/man/man9/motion.9 index 662d09e58..e95e0a32f 100644 --- a/docs/man/man9/motion.9 +++ b/docs/man/man9/motion.9 @@ -203,6 +203,32 @@ Desired spindle speed in rotations per minute \fBmotion.spindle-speed-out-rps\fR OUT float Desired spindle speed in rotations per second +.TP +\fBspindle-orient-angle\fR OUT float +Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. + +.TP +\fBspindle-orient-fwd\fR OUT bit +Desired spindle rotation direction for M19. Default 1. Set to zero if M19 P1 is given. + +.TP +\fBspindle-orient\fR OUT bit +Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. +If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message. + +.TP +\fBspindle-is-oriented\fR IN bit +Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented +was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. + +.TP +\fBspindle-orient-fault\fR IN s32 +Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort. + +.TP +\fBspindle-locked\fR OUT bit +Spindle orient complete pin. Cleared by any of M3,M4,M5. + .TP \fBmotion.teleop-mode\fR OUT bit diff --git a/docs/src/config/emc2hal.txt b/docs/src/config/emc2hal.txt index 2a9dff863..3052b611d 100644 --- a/docs/src/config/emc2hal.txt +++ b/docs/src/config/emc2hal.txt @@ -154,6 +154,65 @@ motion.tooloffset.x ... motion.tooloffset.w:: it could come from the tool table (`G43` active), or it could come from the gcode (`G43.1` active) +spindle-orient-angle:: + (float,out) Desired spindle orientation for M19. Value of the + M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. + +spindle-orient-fwd:: + (bit,out) Desired spindle rotation direction for M19. Default 1. Set to zero if M19 P1 is given. + +spindle-orient:: + (out,bit) + Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. + If spindle-orient-fault is not zero during spindle-orient + true, the M19 command fails with an error message. + +spindle-is-oriented:: + (in, bit) Acknowledge pin for spindle-orient. Completes orient + cycle. If spindle-orient was true when spindle-is-oriented was + asserted, the spindle-orient pin is cleared and the + spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. + +spindle-orient-fault:: + (s32, in) Fault code input for orient cycle. Any value other + than zero will cause the orient cycle to abort. + +spindle-lock:: + (bit, out) Spindle orient complete pin. Cleared by any of M3,M4,M5. + +==== HAL pin usage for M19 orient spindle + +Conceptually the spindle is in one of the following modes: + + - rotation mode (the default) + - searching for desired orientation mode + - orienation complete mode. + +When an M19 is executed, the spindle changes to 'searching for desired +orientation' , and the `spindle-orient` HAL pin is asserted. The +desired target position is specified by the `spindle-orient-angle` and +`spindle-orient-fwd` pins and driven by the M19 R and P parameters. + +The HAL support logic is expected to react to `spindle-orient` by +moving the spindle to the desired position. When this is complete, the +HAL logic is expected to acknowledge this by asserting the +`spindle-is-oriented` pin. + +Motion then acknowledges this by deasserting the `spindle-orient` pin +and asserts the `spindle-locked` pin to indicate 'orientation +complete' mode. It also raises the `spindle-brake` pin. The spindle now +is in 'orientation complete' mode. + +If, during `spindle-orient` being true, and `spindle-is-oriented` not +yet asserted the `spindle-orient-fault` pin has a value other than +zero, the M19 command is aborted, a message including the fault code +is displayed, and the motion queue is flushed. The spindle reverts to +rotation mode. + +Also, any of the M3,M4 or M5 commands cancel either 'searching for +desired orientation' or 'orientation complete' mode. This is indicated +by deasserting both the `spindle-orient` and `spindle-locked` pins. + === Parameters Many of these parameters serve as debugging aids, and are subject to diff --git a/docs/src/config/ini_config.txt b/docs/src/config/ini_config.txt index e7294e2ae..4f4251a4b 100644 --- a/docs/src/config/ini_config.txt +++ b/docs/src/config/ini_config.txt @@ -482,6 +482,11 @@ PARAMETER_FILE = myfile.var:: file which contains the parameters used by the interpreter (saved between runs). +ORIENT_OFFSET = 0:: + (((ORIENT OFFSET ))) A float value added to the R word parameter + of an < operation. Used to define an arbitrary + zero position regardless of encoder mount orientation. + RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98:: (((RS274NGC STARTUP CODE))) A string of NC codes that the interpreter is initialized with. This is not a substitute for specifying modal diff --git a/docs/src/gcode/main.txt b/docs/src/gcode/main.txt index 814b30778..5ee03134e 100644 --- a/docs/src/gcode/main.txt +++ b/docs/src/gcode/main.txt @@ -1762,6 +1762,30 @@ To turn all coolant off, program `M9`. It is always OK to use any of these commands, regardless of what coolant is on or off. +== M19 Orient Spindle [[sec:M19]] +(((M19 Orient Spindle))) + +To start spindle orientation mode, program `M19`. + + M19 R- P- + + - The optional R- word specifies the desired angle in degrees (default 0). + - The optional P- word specifies the rotation direction (default clockwise, + a value of 1 specifies counterclockwise rotation). + +M19 cancels spindle rotation mode and enters spindle orientation +mode. M19 turns off the spindle, unlocks the spindle brake and then starts the +orientation HAL pin protocol. See the motion manpage for the pin +description. + +Any M3,M4,M5 spindle command will cancel spindle orientation mode and +switch back to rotation mode, which is the default. + +The `[RS274NGC]ORIENT_OFFSET` value from the ini file is added to the +R word to define an aribtrary zero position. + +M19 is a modal group 7 command (same as M3,M4,M5). + == Overrides [[sec:Overrides]] === M48, M49 Override Control[[sub:M48-Both-Override]][[sub:M49-Neither-Override]](((M48, M49 Override Control))) diff --git a/docs/src/gcode/overview.txt b/docs/src/gcode/overview.txt index daa0b58bb..91137b1bf 100644 --- a/docs/src/gcode/overview.txt +++ b/docs/src/gcode/overview.txt @@ -798,7 +798,7 @@ being in effect. The modal groups are shown in Table |Lathe Diameter Mode | G7, G8 |Stopping | M0, M1, M2, M30, M60 |Tool Change | M6 Tn -|Spindle | M3, M4, M5 +|Spindle | M3, M4, M5, M19 |Coolant | (M7 M8 can both be on), M9 |Override Switches | M48, M49 |Flow Control | O- From a2ab87600bce9ea5ea2550f5207e71c8d1ff0b71 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Thu, 20 Oct 2011 15:58:47 +0200 Subject: [PATCH 0087/1024] M19 orient spindle: improve usefulness of the P word 0: rotate clockwise or counterclockwise for smallest angular movement 1: always rotate clockwise 2: always rotate counterclockwise Adapt interpretation of the ORIEN_SPINDLE second parameter. Add range check in interp_check.cc Adapt regression test output. Adapt docs. --- docs/man/man9/motion.9 | 14 +++++++------- docs/src/config/emc2hal.txt | 25 ++++++++++++++++++------- docs/src/gcode/main.txt | 9 +++++++-- src/emc/motion/command.c | 2 +- src/emc/motion/mot_priv.h | 2 +- src/emc/motion/motion.c | 4 ++-- src/emc/nml_intf/canon.hh | 2 +- src/emc/nml_intf/emc.cc | 2 +- src/emc/nml_intf/emc_nml.hh | 2 +- src/emc/rs274ngc/interp_check.cc | 11 +++++++---- src/emc/rs274ngc/interp_convert.cc | 3 +-- src/emc/rs274ngc/interp_queue.cc | 8 ++++---- src/emc/rs274ngc/interp_queue.hh | 4 ++-- src/emc/sai/saicanon.cc | 6 ++---- src/emc/task/emccanon.cc | 4 ++-- src/emc/task/emctaskmain.cc | 2 +- src/emc/task/taskintf.cc | 4 ++-- tests/interp/m19/expected | 10 +++++----- 18 files changed, 65 insertions(+), 49 deletions(-) diff --git a/docs/man/man9/motion.9 b/docs/man/man9/motion.9 index e95e0a32f..9d6b2bc2f 100644 --- a/docs/man/man9/motion.9 +++ b/docs/man/man9/motion.9 @@ -204,29 +204,29 @@ Desired spindle speed in rotations per minute Desired spindle speed in rotations per second .TP -\fBspindle-orient-angle\fR OUT float +\fBmotion.spindle-orient-angle\fR OUT float Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. .TP -\fBspindle-orient-fwd\fR OUT bit -Desired spindle rotation direction for M19. Default 1. Set to zero if M19 P1 is given. +\fBmotion.spindle-orient-mode\fR OUT bit +Desired spindle rotation mode. Reflects M19 P parameter word. .TP -\fBspindle-orient\fR OUT bit +\fBmotion.spindle-orient\fR OUT bit Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message. .TP -\fBspindle-is-oriented\fR IN bit +\fBmotion.spindle-is-oriented\fR IN bit Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. .TP -\fBspindle-orient-fault\fR IN s32 +\fBmotion.spindle-orient-fault\fR IN s32 Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort. .TP -\fBspindle-locked\fR OUT bit +\fBmotion.pindle-locked\fR OUT bit Spindle orient complete pin. Cleared by any of M3,M4,M5. .TP diff --git a/docs/src/config/emc2hal.txt b/docs/src/config/emc2hal.txt index 3052b611d..a43c40393 100644 --- a/docs/src/config/emc2hal.txt +++ b/docs/src/config/emc2hal.txt @@ -154,30 +154,30 @@ motion.tooloffset.x ... motion.tooloffset.w:: it could come from the tool table (`G43` active), or it could come from the gcode (`G43.1` active) -spindle-orient-angle:: +motion.spindle-orient-angle:: (float,out) Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. -spindle-orient-fwd:: - (bit,out) Desired spindle rotation direction for M19. Default 1. Set to zero if M19 P1 is given. +motion.spindle-orient-mode:: + (s32,out) Desired spindle rotation mode M19. Default 0. -spindle-orient:: +motion.spindle-orient:: (out,bit) Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message. -spindle-is-oriented:: +motion.spindle-is-oriented:: (in, bit) Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. -spindle-orient-fault:: +motion.spindle-orient-fault:: (s32, in) Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort. -spindle-lock:: +motion.spindle-lock:: (bit, out) Spindle orient complete pin. Cleared by any of M3,M4,M5. ==== HAL pin usage for M19 orient spindle @@ -213,6 +213,17 @@ Also, any of the M3,M4 or M5 commands cancel either 'searching for desired orientation' or 'orientation complete' mode. This is indicated by deasserting both the `spindle-orient` and `spindle-locked` pins. +The `spindle-orient-mode` pin reflects the M19 P word and shall be +interpreted as follows: + + - 0: rotate clockwise or counterclockwise for smallest angular movement + - 1: always rotate clockwise + - 2: always rotate counterclockwise + +It can be used with the `orient` HAL component which provides a PID +command value based on spindle encoder positon, `spindle-orient-angle` +and `spindle-orient-mode`. + === Parameters Many of these parameters serve as debugging aids, and are subject to diff --git a/docs/src/gcode/main.txt b/docs/src/gcode/main.txt index 5ee03134e..2e046b1fd 100644 --- a/docs/src/gcode/main.txt +++ b/docs/src/gcode/main.txt @@ -1770,14 +1770,19 @@ To start spindle orientation mode, program `M19`. M19 R- P- - The optional R- word specifies the desired angle in degrees (default 0). - - The optional P- word specifies the rotation direction (default clockwise, - a value of 1 specifies counterclockwise rotation). + - The optional P- word specifies the rotation direction (default 0). M19 cancels spindle rotation mode and enters spindle orientation mode. M19 turns off the spindle, unlocks the spindle brake and then starts the orientation HAL pin protocol. See the motion manpage for the pin description. +The P parameter is interpreted as follows: + + - 0: rotate clockwise or counterclockwise for smallest angular movement + - 1: always rotate clockwise + - 2: always rotate counterclockwise + Any M3,M4,M5 spindle command will cancel spindle orientation mode and switch back to rotation mode, which is the default. diff --git a/src/emc/motion/command.c b/src/emc/motion/command.c index 52e8918f1..ec260f9e3 100644 --- a/src/emc/motion/command.c +++ b/src/emc/motion/command.c @@ -1554,7 +1554,7 @@ check_stuff ( "before command_handler()" ); emcmotStatus->spindle.brake = 0; // open brake *(emcmot_hal_data->spindle_orient_angle) = emcmotCommand->orientation; - *(emcmot_hal_data->spindle_orient_fwd) = emcmotCommand->direction; + *(emcmot_hal_data->spindle_orient_mode) = emcmotCommand->mode; *(emcmot_hal_data->spindle_locked) = 0; *(emcmot_hal_data->spindle_orient) = 1; diff --git a/src/emc/motion/mot_priv.h b/src/emc/motion/mot_priv.h index f4a38926d..2ff910e48 100644 --- a/src/emc/motion/mot_priv.h +++ b/src/emc/motion/mot_priv.h @@ -143,7 +143,7 @@ typedef struct { // spindle orient hal_float_t *spindle_orient_angle; /* out: desired spindle angle, degrees */ - hal_bit_t *spindle_orient_fwd; /* out: search cw if true, else ccw */ + hal_s32_t *spindle_orient_mode; /* out: 0: least travel; 1: cw; 2: ccw */ hal_bit_t *spindle_orient; /* out: signal orient in progress */ hal_bit_t *spindle_locked; /* out: signal orient complete, spindle locked */ hal_bit_t *spindle_is_oriented; /* in: orientation completed */ diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index bf88a15c5..34d9d1902 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -303,13 +303,13 @@ static int init_hal_io(void) // spindle orient pins if ((retval = hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient_angle), mot_comp_id, "motion.spindle-orient-angle")) < 0) goto error; - if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient_fwd), mot_comp_id, "motion.spindle-orient-fwd")) < 0) goto error; + if ((retval = hal_pin_s32_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient_mode), mot_comp_id, "motion.spindle-orient-mode")) < 0) goto error; if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_orient), mot_comp_id, "motion.spindle-orient")) < 0) goto error; if ((retval = hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->spindle_locked), mot_comp_id, "motion.spindle-locked")) < 0) goto error; if ((retval = hal_pin_bit_newf(HAL_IN, &(emcmot_hal_data->spindle_is_oriented), mot_comp_id, "motion.spindle-is-oriented")) < 0) goto error; if ((retval = hal_pin_s32_newf(HAL_IN, &(emcmot_hal_data->spindle_orient_fault), mot_comp_id, "motion.spindle-orient-fault")) < 0) goto error; *(emcmot_hal_data->spindle_orient_angle) = 0.0; - *(emcmot_hal_data->spindle_orient_fwd) = 1; + *(emcmot_hal_data->spindle_orient_mode) = 0; *(emcmot_hal_data->spindle_orient) = 0; diff --git a/src/emc/nml_intf/canon.hh b/src/emc/nml_intf/canon.hh index 1e32e21c2..812dbfdd9 100644 --- a/src/emc/nml_intf/canon.hh +++ b/src/emc/nml_intf/canon.hh @@ -498,7 +498,7 @@ extern void STOP_SPINDLE_TURNING(); command may be given, but it will have no effect. */ extern void SPINDLE_RETRACT(); -extern void ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction); +extern void ORIENT_SPINDLE(double orientation, int mode); extern void LOCK_SPINDLE_Z(); extern void USE_SPINDLE_FORCE(); extern void USE_NO_SPINDLE_FORCE(); diff --git a/src/emc/nml_intf/emc.cc b/src/emc/nml_intf/emc.cc index 576bee3b3..1aeb580e1 100644 --- a/src/emc/nml_intf/emc.cc +++ b/src/emc/nml_intf/emc.cc @@ -2082,7 +2082,7 @@ void EMC_SPINDLE_ORIENT::update(CMS * cms) EMC_SPINDLE_CMD_MSG::update(cms); cms->update(orientation); - cms->update(direction); + cms->update(mode); } /* diff --git a/src/emc/nml_intf/emc_nml.hh b/src/emc/nml_intf/emc_nml.hh index f5b6a924f..f2cc895d9 100644 --- a/src/emc/nml_intf/emc_nml.hh +++ b/src/emc/nml_intf/emc_nml.hh @@ -1681,7 +1681,7 @@ class EMC_SPINDLE_ORIENT:public EMC_SPINDLE_CMD_MSG { // For internal NML/CMS use only. void update(CMS * cms); double orientation; // desired spindle position - int direction; // CANON_DIRECTION + int mode; }; diff --git a/src/emc/rs274ngc/interp_check.cc b/src/emc/rs274ngc/interp_check.cc index 28a67a6bf..e892ea11e 100644 --- a/src/emc/rs274ngc/interp_check.cc +++ b/src/emc/rs274ngc/interp_check.cc @@ -298,10 +298,13 @@ int Interp::check_other_codes(block_pointer block) //!< pointer to a block (block->m_modes[7] != 19) && (block->user_m != 1)), _("P word with no G2 G3 G4 G10 G64 G5 G5.2 G76 G82 G86 G88 G89" " or M50 M51 M52 M53 M62 M63 M64 M65 M66 or user M code to use it")); - CHKS((block->p_flag && (motion == G_2 || motion == G_3 || (block->m_modes[7] == 19)) && - fabs(round_to_int(block->p_number) - block->p_number) > 0.001), - _("P value not an integer with M19 G2 or G3")); - CHKS((block->p_flag && (motion == G_2 || motion == G_3) && round_to_int(block->p_number) < 1), + int p_value = round_to_int(block->p_number); + CHKS(((motion == G_2 || motion == G_3 || (block->m_modes[7] == 19)) && + fabs(p_value - block->p_number) > 0.001), + _("P value not an integer with M19 G2 or G3")); + CHKS((block->m_modes[7] == 19) && ((p_value > 2) || p_value < 0), + _("P value must be 0,1,or 2 with M19")); + CHKS(((motion == G_2 || motion == G_3) && round_to_int(block->p_number) < 1), _("P value should be 1 or greater with G2 or G3")); } diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index 3f5ba3923..34702194a 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -3021,8 +3021,7 @@ int Interp::convert_m(block_pointer block, //!< pointer to a block of RS27 } else if (block->m_modes[7] == 19) { settings->spindle_turning = CANON_STOPPED; enqueue_ORIENT_SPINDLE(block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, - block->p_flag ? (block->p_number > 0.0 ? CANON_COUNTERCLOCKWISE : CANON_CLOCKWISE) : - CANON_CLOCKWISE); + block->p_flag ? block->p_number : 0); } else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) { // save state in current stack frame. We borrow the o-word call stack diff --git a/src/emc/rs274ngc/interp_queue.cc b/src/emc/rs274ngc/interp_queue.cc index 6cba96153..a380403b9 100644 --- a/src/emc/rs274ngc/interp_queue.cc +++ b/src/emc/rs274ngc/interp_queue.cc @@ -186,16 +186,16 @@ void enqueue_STOP_SPINDLE_TURNING(void) { qc().push_back(q); } -void enqueue_ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction) { +void enqueue_ORIENT_SPINDLE(double orientation, int mode) { if(qc().empty()) { if(debug_qc) printf("immediate spindle orient\n"); - ORIENT_SPINDLE(orientation,direction); + ORIENT_SPINDLE(orientation,mode); return; } queued_canon q; q.type = QORIENT_SPINDLE; q.data.orient_spindle.orientation = orientation; - q.data.orient_spindle.direction = direction; + q.data.orient_spindle.mode = mode; if(debug_qc) printf("enqueue spindle orient\n"); qc().push_back(q); } @@ -528,7 +528,7 @@ void dequeue_canons(setup_pointer settings) { break; case QORIENT_SPINDLE: if(debug_qc) printf("issuing orient spindle\n"); - ORIENT_SPINDLE(q.data.orient_spindle.orientation, q.data.orient_spindle.direction); + ORIENT_SPINDLE(q.data.orient_spindle.orientation, q.data.orient_spindle.mode); break; } } diff --git a/src/emc/rs274ngc/interp_queue.hh b/src/emc/rs274ngc/interp_queue.hh index d38f3aaa0..0b84307dc 100644 --- a/src/emc/rs274ngc/interp_queue.hh +++ b/src/emc/rs274ngc/interp_queue.hh @@ -68,7 +68,7 @@ struct mcommand { struct orient_spindle { double orientation; - int direction; + int mode; }; struct queued_canon { @@ -122,7 +122,7 @@ void enqueue_ARC_FEED(setup_pointer settings, int l, double u, double v, double w); void enqueue_M_USER_COMMAND(int index,double p_number,double q_number); void enqueue_START_CHANGE(void); -void enqueue_ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction); +void enqueue_ORIENT_SPINDLE(double orientation, int mode); void dequeue_canons(setup_pointer settings); void set_endpoint(double x, double y); void set_endpoint_zx(double z, double x); diff --git a/src/emc/sai/saicanon.cc b/src/emc/sai/saicanon.cc index 95887fa8e..609b41f35 100644 --- a/src/emc/sai/saicanon.cc +++ b/src/emc/sai/saicanon.cc @@ -606,10 +606,8 @@ void STOP_SPINDLE_TURNING() void SPINDLE_RETRACT() {PRINT0("SPINDLE_RETRACT()\n");} -void ORIENT_SPINDLE(double orientation, CANON_DIRECTION direction) -{PRINT2("ORIENT_SPINDLE(%.4f, %s)\n", orientation, - (direction == CANON_CLOCKWISE) ? "CANON_CLOCKWISE" : - "CANON_COUNTERCLOCKWISE"); +void ORIENT_SPINDLE(double orientation, int mode) +{PRINT2("ORIENT_SPINDLE(%.4f, %d)\n", orientation,mode); } void USE_NO_SPINDLE_FORCE() diff --git a/src/emc/task/emccanon.cc b/src/emc/task/emccanon.cc index d301da297..69cb704f1 100644 --- a/src/emc/task/emccanon.cc +++ b/src/emc/task/emccanon.cc @@ -1738,13 +1738,13 @@ void SPINDLE_RETRACT() /*! \todo FIXME-- unimplemented */ } -void ORIENT_SPINDLE(double orientation, int direction) +void ORIENT_SPINDLE(double orientation, int mode) { EMC_SPINDLE_ORIENT o; flush_segments(); o.orientation = orientation; - o.direction = direction; + o.mode = mode; interp_list.append(o); } diff --git a/src/emc/task/emctaskmain.cc b/src/emc/task/emctaskmain.cc index 7df631159..26330b79c 100644 --- a/src/emc/task/emctaskmain.cc +++ b/src/emc/task/emctaskmain.cc @@ -1874,7 +1874,7 @@ static int emcTaskIssueCommand(NMLmsg * cmd) case EMC_SPINDLE_ORIENT_TYPE: spindle_orient_msg = (EMC_SPINDLE_ORIENT *) cmd; - retval = emcSpindleOrient(spindle_orient_msg->orientation, spindle_orient_msg->direction); + retval = emcSpindleOrient(spindle_orient_msg->orientation, spindle_orient_msg->mode); break; case EMC_SPINDLE_ON_TYPE: diff --git a/src/emc/task/taskintf.cc b/src/emc/task/taskintf.cc index 0af3c1674..157206f89 100644 --- a/src/emc/task/taskintf.cc +++ b/src/emc/task/taskintf.cc @@ -1392,11 +1392,11 @@ int emcSpindleSpeed(double speed, double css_factor, double offset) return -1; //can't have negative speeds } -int emcSpindleOrient(double orientation, int direction) +int emcSpindleOrient(double orientation, int mode) { emcmotCommand.command = EMCMOT_SPINDLE_ORIENT; emcmotCommand.orientation = orientation; - emcmotCommand.direction = (direction == CANON_CLOCKWISE); + emcmotCommand.mode = mode; return usrmotWriteEmcmotCommand(&emcmotCommand); } diff --git a/tests/interp/m19/expected b/tests/interp/m19/expected index c949e8d11..01ff1e309 100644 --- a/tests/interp/m19/expected +++ b/tests/interp/m19/expected @@ -3,11 +3,11 @@ N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) N..... SET_XY_ROTATION(0.0000) N..... SET_FEED_REFERENCE(CANON_XYZ) - N..... ORIENT_SPINDLE(42.0000, CANON_CLOCKWISE) - N..... ORIENT_SPINDLE(87.0000, CANON_CLOCKWISE) - N..... ORIENT_SPINDLE(42.0000, CANON_COUNTERCLOCKWISE) - N..... ORIENT_SPINDLE(132.0000, CANON_CLOCKWISE) - N..... ORIENT_SPINDLE(132.0000, CANON_COUNTERCLOCKWISE) + N..... ORIENT_SPINDLE(42.0000, 0) + N..... ORIENT_SPINDLE(87.0000, 0) + N..... ORIENT_SPINDLE(42.0000, 1) + N..... ORIENT_SPINDLE(132.0000, 0) + N..... ORIENT_SPINDLE(132.0000, 1) N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000) N..... SET_XY_ROTATION(0.0000) N..... SET_FEED_MODE(0) From 6db83deb028b9bd23f752ae4db2cb5a14f652097 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Thu, 20 Oct 2011 15:59:42 +0200 Subject: [PATCH 0088/1024] M19 orient spindle: new component 'orient' designed to work with the M19 motion pins for a spindle position PID loop --- src/hal/components/orient.comp | 97 ++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/hal/components/orient.comp diff --git a/src/hal/components/orient.comp b/src/hal/components/orient.comp new file mode 100644 index 000000000..cad0cacb8 --- /dev/null +++ b/src/hal/components/orient.comp @@ -0,0 +1,97 @@ +component orient "Provide a PID command input for orientation mode based on current spindle position, target angle and orient mode"; + +pin in bit enable "enable angular output for orientation mode"; +pin in s32 mode "0: rotate - shortest move; 1: always rotate clockwise; 2: always rotate counterclockwise"; +pin in float position "spindle position input, unit 1 rev"; +pin in float angle "orient target position in degrees, 0 <= angle < 360"; +pin out float command "target spindle position, input to PID command"; +pin out float poserr "in degrees - aid for PID tuning"; + +variable int last_enable = 0; + +option fp yes; + +function _ "Update \\fBcommand\\fR based on \\fBenable\\fR, \\fBposition\\fR, \\fBmode\\fR and \\fBangle\\fR."; +author "Michael Haberler"; + + +description """ +This component is designed to support a spindle orientation PID loop by providing a +command value, and fit with the motion spindle-orient support pins to support the M19 code. + +The spindle is assumed to have stopped in an arbitrary position. The spindle +encoder positon is linked to the \\fBposition\\fR pin. +The current value of the position pin is sampled on a positive edge on the \\fBenable\\fR pin, and +\\fBcommand\\fR is computed and set as follows: floor(number of +full spindle revolutions +in the \\fBposition\\fR sampled on positive edge) +plus \\fBangle\\fR/360 (the fractional revolution) +1/-1/0 depending on \\fBmode\\fR. + +The \\fBmode\\fR pin is interpreted as follows: + +0: the spindle rotates in the direction with the lesser angle, +which may be clockwise or counterclockwise. + +1: the spindle rotates always rotates clockwise to the new angle. + +2: the spindle rotates always rotates counterclockwise to the new angle. + + +.SH HAL USAGE + +On \\fBmotion.spindle-orient\\fR disconnect the spindle control and connect to the orient-pid +loop: + +loadrt orient names=orient +.br +loadrt pid names=orient-pid +.br +net orient-angle motion.spindle-orient-angle orient.angle +.br +net orient-mode motion.spindle-orient-mode orient.mode +.br +net orient-enable motion.spindle-orient orient.enable orient-pid.enable +.br +net spindle-pos ...encoder..position orient.position orient-pid.position +.br +net orient-command orient.command orient-pid.command +.br + +"""; + +license "GPL"; +;; +#include + +FUNCTION(_) { + + double revs; // current number of spindle revs + double spindle_angle; // current spindle angular pos in revs (0..<1.0) + double target_angle; + double latched_position; + + if (enable) { + if (enable ^ last_enable) { // positive edge on enable + latched_position = position; // sample now + revs = floor(latched_position); + spindle_angle = latched_position - revs; + target_angle = angle/360.0; + switch (mode) { + case 0: // shortest move + command = revs + target_angle; + break; + case 1: // always cw + command = revs + target_angle + + (target_angle < spindle_angle) ? 1.0 : 0.0; + break; + case 2: // always ccw + command = revs + target_angle + + (target_angle > spindle_angle) ? -1.0 : 0.0; + break; + } + } + poserr = (position - command) * 360.0; + } + last_enable = enable; +} + From a29467d3e5430940b67c455c65b09b8b16843b92 Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Fri, 21 Oct 2011 10:48:53 +0200 Subject: [PATCH 0089/1024] M19 orient spindle: add range check for R word must be within 0..360 --- src/emc/rs274ngc/interp_check.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/emc/rs274ngc/interp_check.cc b/src/emc/rs274ngc/interp_check.cc index e892ea11e..286ff2cf7 100644 --- a/src/emc/rs274ngc/interp_check.cc +++ b/src/emc/rs274ngc/interp_check.cc @@ -321,6 +321,8 @@ int Interp::check_other_codes(block_pointer block) //!< pointer to a block (block->g_modes[7] != G_41_1) && (block->g_modes[7] != G_42_1) && (block->g_modes[0] != G_10) && (block->m_modes[7] != 19) ), NCE_R_WORD_WITH_NO_G_CODE_THAT_USES_IT); + CHKS((block->m_modes[7] == 19) && ((block->r_number > 360.0) || (block->r_number < 0.0)), + _("R value must be within 0..360 with M19")); } if (!block->s_flag) { From d4b7edc1e2ad08c7bf8ec01726a50440f6045d8d Mon Sep 17 00:00:00 2001 From: John Thornton Date: Sat, 22 Oct 2011 07:11:04 -0500 Subject: [PATCH 0090/1024] Docs: explain file properties Signed-off-by: John Thornton --- docs/src/gui/axis.lyx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/src/gui/axis.lyx b/docs/src/gui/axis.lyx index a92ea3c11..52f8163de 100644 --- a/docs/src/gui/axis.lyx +++ b/docs/src/gui/axis.lyx @@ -412,7 +412,9 @@ as... \end_layout \begin_layout Description -Properties Properties of the current loaded g code file. +Properties The sum of the rapid and feed moves. Does not factor in + acceleration, blending or path mode so time reported will never + be less than the actual run time. \end_layout \begin_layout Description From 47f0aa58c757ded5c313b3852843ca4805e0a4c5 Mon Sep 17 00:00:00 2001 From: John Thornton Date: Sat, 22 Oct 2011 09:32:55 -0500 Subject: [PATCH 0091/1024] Docs: explain file properties Signed-off-by: John Thornton --- docs/src/gui/axis.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/src/gui/axis.txt b/docs/src/gui/axis.txt index 4ca101c37..76732456c 100644 --- a/docs/src/gui/axis.txt +++ b/docs/src/gui/axis.txt @@ -98,7 +98,9 @@ Save gcode as...:: Save the current file with a new name. Properties:: - Properties of the current loaded g code file. + The sum of the rapid and feed moves. Does not factor in + acceleration, blending or path mode so time reported will never + be less than the actual run time. Edit tool table...:: Same as Edit if you have defined an editor you can open the tool table From e2692404982fb0c909a2bbf353a2c191a8d86234 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Mon, 24 Oct 2011 21:30:12 -0600 Subject: [PATCH 0092/1024] sample configs: fix firmware path for 3x20 configs The hm2-{servo,stepper}/* sample configs were created before Jeff Epler's hostmot2 packages, back when the hostmot2 firmware was part of the emc2 package. Back then, the 3x20 firmwares got put in a different place. Jeff's hostmot2 packages put the 3x20 firmwares in a new & better, slightly different place. This commit updates the 3x20 configs to look for their firmware in the new place. All the other hm2-{servo,stepper}/* configs find their firmwares in the old places, because Jeff thoughtfully included symlinks to keep old configs working. --- configs/hm2-servo/3x20-small.ini | 2 +- configs/hm2-stepper/3x20-small.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/hm2-servo/3x20-small.ini b/configs/hm2-servo/3x20-small.ini index 23e3c2232..c63e95052 100644 --- a/configs/hm2-servo/3x20-small.ini +++ b/configs/hm2-servo/3x20-small.ini @@ -2,7 +2,7 @@ [HOSTMOT2] DRIVER=hm2_pci BOARD=3x20 -CONFIG="firmware=hm2/3x20/SV24S.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0" +CONFIG="firmware=hm2/3x20-1/SV24.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0" diff --git a/configs/hm2-stepper/3x20-small.ini b/configs/hm2-stepper/3x20-small.ini index f085e73fa..af0d77c51 100644 --- a/configs/hm2-stepper/3x20-small.ini +++ b/configs/hm2-stepper/3x20-small.ini @@ -2,7 +2,7 @@ [HOSTMOT2] DRIVER=hm2_pci BOARD=3x20 -CONFIG="firmware=hm2/3x20/SVST16_24S.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3" +CONFIG="firmware=hm2/3x20-1/SVST16_24.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3" From 219729a4d65000d83074603b6301eab839de868e Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Tue, 25 Oct 2011 23:44:49 +0200 Subject: [PATCH 0093/1024] orient.9: fix mode 1 and mode 2 offset calculation Thanks to Martin Kaplan for finding this bug. --- src/hal/components/orient.comp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hal/components/orient.comp b/src/hal/components/orient.comp index cad0cacb8..ad66f3073 100644 --- a/src/hal/components/orient.comp +++ b/src/hal/components/orient.comp @@ -82,11 +82,11 @@ FUNCTION(_) { break; case 1: // always cw command = revs + target_angle + - (target_angle < spindle_angle) ? 1.0 : 0.0; + ((target_angle < spindle_angle) ? 1.0 : 0.0); break; case 2: // always ccw command = revs + target_angle + - (target_angle > spindle_angle) ? -1.0 : 0.0; + ((target_angle > spindle_angle) ? -1.0 : 0.0); break; } } From 2908eab03d5480e282b4254cb2d8f5f914b311ac Mon Sep 17 00:00:00 2001 From: Michael Haberler Date: Wed, 26 Oct 2011 07:03:07 +0200 Subject: [PATCH 0094/1024] orient.9: rewrite for readability Seb does have a point --- src/hal/components/orient.comp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/hal/components/orient.comp b/src/hal/components/orient.comp index ad66f3073..85e154fd1 100644 --- a/src/hal/components/orient.comp +++ b/src/hal/components/orient.comp @@ -81,12 +81,16 @@ FUNCTION(_) { command = revs + target_angle; break; case 1: // always cw - command = revs + target_angle + - ((target_angle < spindle_angle) ? 1.0 : 0.0); + if (target_angle < spindle_angle) + command = revs + target_angle + 1.0; + else + command = revs + target_angle; break; case 2: // always ccw - command = revs + target_angle + - ((target_angle > spindle_angle) ? -1.0 : 0.0); + if (target_angle > spindle_angle) + command = revs + target_angle - 1.0; + else + command = revs + target_angle; break; } } From d7e8b18c61d9e72c0b40e3cba1ee61e68d6ecc32 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Sun, 9 Oct 2011 10:52:40 -0700 Subject: [PATCH 0095/1024] ngcgui fixes db25: require min diameter for tool, center outline, fix dimensions M110: remove unneeded eval --- nc_files/ngcgui_lib/db25.ngc | 51 ++++++++++++++++++++++----------- nc_files/ngcgui_lib/mfiles/M110 | 4 +-- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/nc_files/ngcgui_lib/db25.ngc b/nc_files/ngcgui_lib/db25.ngc index a52ec67f2..e434db55d 100644 --- a/nc_files/ngcgui_lib/db25.ngc +++ b/nc_files/ngcgui_lib/db25.ngc @@ -1,4 +1,5 @@ (info: db25 connector -- uses iquad.ngc) +; centered at origin, use offsets to relocate o sub # = #1 (=1) # = #2 (=2000) @@ -8,25 +9,41 @@ o sub # = #6 (=.02) # = #7 (=0.2) # = #8 (=0) -# = #9 (=5) -# = #10 (=2) -# = #11 (=90) - -; todo: check these dimensions -; center at cg ? -; reject too big tools -# = 0.5465 -# = 0.0 -# = 0.4567 -# = -0.509 -# = -0.4567 -# = -0.509 -# = -0.5465 -# = 0.0 +# = #9 (=0) +# = #10 (=0) +# = #11 (=0) -# = 1.0 +; reject tools that are too big +o call [#] +# = #5410 +o if [# Gt 0.12501] + (debug, tooldiam too big: #) + m2 +o endif + +; http://www.interfacebus.com/Connector_D-Sub_Mechanical_Dimensions.html +; mounting hole spacing is 1.857 + + # = 1.635 + # = 1.675 ; adjust to allow use of 0.125 cutter diameter + # = 0.432 +# = [# - 2 * # * tan[10]] + +; center at origin +# = [0.5 * #] +# = [0.5 * #] +# = [ 0.5 * #] +# = [-0.5 * #] + +# = [-0.5 * #] +# = [-0.5 * #] + +# = [-0.5 * #] +# = [ 0.5 * #] + +# = 1.0 -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] o endsub diff --git a/nc_files/ngcgui_lib/mfiles/M110 b/nc_files/ngcgui_lib/mfiles/M110 index 34391cf7c..41cbb28ab 100755 --- a/nc_files/ngcgui_lib/mfiles/M110 +++ b/nc_files/ngcgui_lib/mfiles/M110 @@ -9,9 +9,9 @@ # the pin for axisui.notifications-clear-info is in emc-2.4pre # using an earlier version will print error to stdout -eval halcmd setp axisui.notifications-clear-info 1 +halcmd setp axisui.notifications-clear-info 1 sleep .100 ;# requires a sleep that does <1 -eval halcmd setp axisui.notifications-clear-info 0 +halcmd setp axisui.notifications-clear-info 0 # if a M1nn command fails and its script exits with nonzero status, # the gcode program exits. So always exit 0, and make sure From ea08d3202c6c4fc30315d0ee1e4b773aa776bf10 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Sun, 23 Oct 2011 09:49:08 -0700 Subject: [PATCH 0096/1024] twopass.tcl: improve parsing of ini file items Parse more occurrences of: "[SECTION]item " Lines with more than one ini file item like: net name.[STANZA1]item1 <= [STANZA2]item2 => [STANZA2]item3 are now supported. Note that the trailing space (or end-of-line) is used in finding ini file item occurrences and this precludes support of lines with an item embedded _within_ text like: net name.[STANZA1]item1.morestuff [STANZA2]item2 This will be reported as an error since [STANZA]item1.morestuff does not likely exist --- tcl/twopass.tcl | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/tcl/twopass.tcl b/tcl/twopass.tcl index fdefafb64..daebf8c41 100644 --- a/tcl/twopass.tcl +++ b/tcl/twopass.tcl @@ -315,36 +315,34 @@ proc ::tp::hal_to_tcl {ifile ofile} { } } set idx 0 - set new $line - set altered 0 while {$idx >= 0} { set l [string first \[ $line $idx] if {$l < 0} break set r [string first \] $line $idx] if {$r < 0} break - if {!$altered} { - set altered 1 - set new "" - } - set new "${new}[string range $line $idx [expr $l -1]]" - set new "${new}\$::[string range $line [expr $l+1] [expr $r-1]]\(" + set stanza [string range $line [expr $l + 1] [expr $r -1]] + + set new "[string range $line 0 [expr $l -1]]" + set new "${new}\$::$stanza\(" set s [string first " " $line $r] if {$s <0} { - set new "${new}[string range $line [expr $r + 1] end]\)" - break + set item [string range $line [expr $r + 1] end] + set line "${new}${item}\) " + set idx -1 } else { - set new "${new}[string range $line [expr $r + 1] [expr -1 + $s]]\) " + set item [string range $line [expr $r + 1] [expr $s -1]] + set new "${new}${item}\) " + set idx [expr [string length $new] -1] + set new "${new}[string range $line [expr $s +1] end]" + set line $new } - set idx [expr $s + 1] - } - if {$altered} { - set line $new } # Anything following "#" on a line is a comment set cidx [string first "#" $line] if {$cidx > 0} { - puts $fdout "[string range $line 0 [expr -1 + $cidx]]\ - ;[string range $line $cidx end]" + set notcomment "[string range $line 0 [expr -1 + $cidx]]" + set comment ";[string range $line $cidx end]" + puts $fdout "$notcomment$comment" } else { puts $fdout $line } From 503f204b79e3b97caedca1614042bc3c33f0e3f4 Mon Sep 17 00:00:00 2001 From: Dewey Garrett Date: Sun, 23 Oct 2011 17:15:20 -0700 Subject: [PATCH 0097/1024] twopass: Add options for debugging Support option handling as specified by keywords in the [HAL]TWOPASS ini file item. Example: [HAL] TWOPASS = on,verbose,nodelete Options: verbose: extra reporting including comparison of lines with ini file items that converted from hal files to tcl global variable format nodelete: do not delete the temporary tcl files converted from hal files --- configs/simtcl/twopass_compat.ini | 5 ++- configs/simtcl/twopass_demo.ini | 5 ++- tcl/twopass.tcl | 60 ++++++++++++++++++++++++------- 3 files changed, 56 insertions(+), 14 deletions(-) diff --git a/configs/simtcl/twopass_compat.ini b/configs/simtcl/twopass_compat.ini index 1d006129e..4e2fdcc55 100644 --- a/configs/simtcl/twopass_compat.ini +++ b/configs/simtcl/twopass_compat.ini @@ -46,7 +46,10 @@ BASE_PERIOD = 0 SERVO_PERIOD = 1000000 [HAL] -TWOPASS = 1 +# include this line with any non_null argument to enable twopass processing: +TWOPASS = on +# or use this line to enable debugging options: +#TWOPASS = on,verbose,nodelete HALFILE = ../sim/core_sim.hal HALFILE = ../sim/axis_manualtoolchange.hal HALFILE = ../sim/simulated_home.hal diff --git a/configs/simtcl/twopass_demo.ini b/configs/simtcl/twopass_demo.ini index 9e2a4ea35..68e7bffa0 100644 --- a/configs/simtcl/twopass_demo.ini +++ b/configs/simtcl/twopass_demo.ini @@ -46,7 +46,10 @@ BASE_PERIOD = 0 SERVO_PERIOD = 1000000 [HAL] -TWOPASS = 1 +# include this line with any non_null argument to enable twopass processing: +TWOPASS = on +# or use this line to enable debugging options: +#TWOPASS = on,verbose,nodelete HALFILE = ./twopass_demo.tcl [TRAJ] diff --git a/tcl/twopass.tcl b/tcl/twopass.tcl index daebf8c41..21c82160f 100644 --- a/tcl/twopass.tcl +++ b/tcl/twopass.tcl @@ -20,6 +20,12 @@ # loadusr completed commands) are executed and addf commands # are executed in order of occurrence. # +# The inifile item HAL:TWOPASS can be any non-null string. This string +# can be used to pass keywords for supported options: +# verbose -- enables extra reporting +# nodelete -- disables deletion of temporary tcl files that +# are created from .hal files +# # A few internal procs are useful by HALFILE tcl scripts: # # ::tp::passnumber returns 0 | 1 for the current pass number @@ -249,6 +255,7 @@ proc ::tp::unhide_cmds {} { } ;# unhide_cmds proc ::tp::pass0 {} { + verbose "pass0:BEGIN" if [info exists ::TP(passnumber)] { return -code error "pass0: unexpected passnumber <$::TP(passnumber)>" } @@ -259,7 +266,7 @@ proc ::tp::pass0 {} { source_the_files load_the_modules unhide_cmds - #puts "pass0:END" + verbose "pass0:END" } ;# pass0 proc ::tp::prep_the_files {} { @@ -269,8 +276,11 @@ proc ::tp::prep_the_files {} { foreach f $::HAL(HALFILE) { set suffix [filesuffix $f] switch -exact $suffix { - tcl {lappend ::TP(runfiles) $f} + tcl {lappend ::TP(runfiles) $f + verbose "tclfile: $f" + } hal {set ::TP($f,tmp) /tmp/[file tail $f].tmp + verbose "convert $f to $::TP($f,tmp)" hal_to_tcl $f $::TP($f,tmp) lappend ::TP(runfiles) $::TP($f,tmp) } @@ -297,6 +307,7 @@ proc ::tp::hal_to_tcl {ifile ofile} { set fdin [open $ifile r] set fdout [open $ofile w] + puts $fdout "# temporary tcl file generated by twopass.tcl" set lno 0 while 1 { if [eof $fdin] break @@ -342,9 +353,13 @@ proc ::tp::hal_to_tcl {ifile ofile} { if {$cidx > 0} { set notcomment "[string range $line 0 [expr -1 + $cidx]]" set comment ";[string range $line $cidx end]" - puts $fdout "$notcomment$comment" - } else { - puts $fdout $line + set line "$notcomment$comment" + } + puts $fdout $line + if {"$theline" != "$line"} { + verbose "converted hal line for tcl from $ifile:" + verbose " hal: $theline" + verbose " tcl: $line" } } close $fdin @@ -354,7 +369,7 @@ proc ::tp::hal_to_tcl {ifile ofile} { proc ::tp::source_the_files {} { foreach f $::TP(runfiles) { - #puts "source_the_files<[passnumber]> sourcing <$f>" + verbose "sourcing: $f" source $f } } ;# source_the_files @@ -366,7 +381,6 @@ proc ::tp::filesuffix {f} { } ;# filesuffix proc ::tp::load_the_modules {} { - #puts "load_the_modules: <$::TP(modules)>" foreach m $::TP(modules) { set cmd "orig_loadrt $m" ;# this is the real loadrt if [info exists ::TP($m,count)] { @@ -382,12 +396,11 @@ proc ::tp::load_the_modules {} { if [info exists ::TP($m,other)] { set cmd "$cmd $::TP($m,other)" } - #puts cmd=$cmd + verbose "[string range $cmd 5 end]" ;# omit leading orig_ eval $cmd } set ::TP(loaded,modules) $::TP(modules) set ::TP(modules) "" - #puts "load_the_modules:loaded,modules=$::TP(loaded,modules)" } ;# load_the_modules proc ::tp::addf_the_funcs {} { @@ -397,6 +410,7 @@ proc ::tp::addf_the_funcs {} { } ;# addf_the_funcs proc ::tp::pass1 {} { + verbose "pass1:BEGIN" incr ::TP(passnumber) source_the_files if {$::TP(combine_addfs)} { @@ -404,11 +418,33 @@ proc ::tp::pass1 {} { addf_the_funcs } foreach name [array names ::TP *,tmp] { - #puts "pass1: deleting $::TP($name)" - file delete $::TP($name) + if $::tp::nodelete { + verbose "nodelete: $::TP($name)" + } else { + verbose "deleting: $::TP($name)" + file delete $::TP($name) + } } - #puts "pass1:END" + verbose "pass1:END" } ;# pass1 +proc ::tp::verbose {msg} { + if !$::tp::verbose return + puts "twopass: $msg" +} ;# verbose + +set ::tp::options "" +set ::tp::verbose 0 +if {[string first verbose [string tolower $::HAL(TWOPASS)]] >=0} { + set ::tp::verbose 1 + lappend ::tp::options verbose +} +set ::tp::nodelete 0 +if {[string first nodelete [string tolower $::HAL(TWOPASS)]] >=0} { + set ::tp::nodelete 1 + lappend ::tp::options nodelete +} +puts "twopass: invoked with <$::tp::options> options" + ::tp::pass0 ::tp::pass1 From 47e46e1eff56c203a84e07940362e1fa0371e558 Mon Sep 17 00:00:00 2001 From: John Thornton Date: Thu, 27 Oct 2011 06:33:03 -0500 Subject: [PATCH 0098/1024] Docs: arc deviation error and suggested decimal precision Signed-off-by: John Thornton --- docs/src/gcode/main.txt | 20 +++++++++++++++----- docs/src/gcode/overview.txt | 4 +--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/src/gcode/main.txt b/docs/src/gcode/main.txt index 1c56e1d70..90bda3f9d 100644 --- a/docs/src/gcode/main.txt +++ b/docs/src/gcode/main.txt @@ -267,14 +267,17 @@ It is an error if: In the center format, the coordinates of the end point of the arc in the selected plane are specified along with the offsets of the center of the arc from the current location. In this format, it is OK if the -end point of the arc is the same as the current point. +end point of the arc is the same as the current point. When programming +arcs using a precision of less than 4 decimal places (0.0000) for inch +and less than 3 decimal places (0.000) for millimeters can result in +an error due to rounding. It is an error if: - - When the arc is projected on the selected plane, the distance from the - current point to the center differs from the distance from the end - point to the center by more than 0.0002 inch (if inches are being used) - or 0.002 millimeter (if millimeters are being used). + - When the arc is projected on the selected plane, the distance from + the current point to the center differs from the distance from the end + point to the center by more than (.05 inch/.5 mm) + OR ((.0005 inch/.005mm) AND .1% of radius). When the XY-plane is selected program: @@ -378,6 +381,13 @@ In the center format, the radius of the arc is not specified, but it may be found easily as the distance from the center of the circle to either the current point or the end point of the arc. +Deciphering the Error message "Radius to end of arc differs from radius to start:" + start = the current position + center = the center position as calculated using the i,j or k words + end = the programmed end point + r1 = radius from the start position to the center + r2 = radius from the end position to the center + === Full Circles G2 or G3 I- J- K- diff --git a/docs/src/gcode/overview.txt b/docs/src/gcode/overview.txt index 6b3ff1c73..f0aa61ec4 100644 --- a/docs/src/gcode/overview.txt +++ b/docs/src/gcode/overview.txt @@ -515,9 +515,7 @@ position of each item on the line, but by the following list: == Use an appropriate decimal precision Use at least 3 digits after the decimal when milling in millimeters, -and at least 4 digits after the decimal when milling in inches. In -particular, arc tolerance checks are made to .001 and .0001 depending -on the active units. +and at least 4 digits after the decimal when milling in inches. == Use consistent white space From 6b909232bea436b2917437dd6c3269c3f388045f Mon Sep 17 00:00:00 2001 From: John Thornton Date: Thu, 27 Oct 2011 07:21:43 -0500 Subject: [PATCH 0099/1024] Docs: remove lyx files no longer used Signed-off-by: John Thornton --- docs/README | 103 - docs/src/Getting_Started.lyx | 306 - docs/src/Getting_Started_fr.lyx | 322 - docs/src/Master_Developer.lyx | 244 - docs/src/Master_HAL.lyx | 255 - docs/src/Master_HAL_fr.lyx | 298 - docs/src/Master_Integrator.lyx | 598 - docs/src/Master_Integrator_fr.lyx | 551 - docs/src/Master_User.lyx | 371 - docs/src/Master_User_fr.lyx | 411 - docs/src/code/Code_Notes.lyx | 2274 --- docs/src/code/NML_Messages.lyx | 2840 ---- docs/src/code/Style_Guide.lyx | 423 - docs/src/common/Document_Header.lyx | 95 - docs/src/common/Document_Header_fr.lyx | 95 - docs/src/common/GPLD_Copyright.lyx | 716 - docs/src/common/Getting_EMC.lyx | 713 - docs/src/common/Getting_EMC_fr.lyx | 424 - docs/src/common/Glossary.lyx | 1079 -- docs/src/common/Integrator_Concepts.lyx | 336 - docs/src/common/Linux_FAQ.lyx | 583 - docs/src/common/Linux_FAQ_fr.lyx | 602 - docs/src/common/Stepper_Diagnostics.lyx | 283 - docs/src/common/Stepper_Diagnostics_fr.lyx | 296 - docs/src/common/System_Requirements.lyx | 145 - docs/src/common/System_Requirements_fr.lyx | 115 - docs/src/common/Updating_EMC.lyx | 173 - docs/src/common/User_Concepts.lyx | 517 - docs/src/common/User_Concepts_fr.lyx | 336 - docs/src/common/machining_center.lyx | 2198 --- docs/src/common/template.lyx | 33 - docs/src/common/user_intro.lyx | 389 - docs/src/common/user_intro_fr.lyx | 780 - docs/src/common/userforeword.lyx | 200 - docs/src/common/userforeword_fr.lyx | 201 - docs/src/config/copy_and_run.lyx | 188 - docs/src/config/copy_and_run_fr.lyx | 227 - docs/src/config/emc2hal.lyx | 742 - docs/src/config/emc2hal_fr.lyx | 766 - docs/src/config/ini_config.lyx | 3059 ---- docs/src/config/ini_config_fr.lyx | 2361 --- docs/src/config/ini_homing.lyx | 593 - docs/src/config/ini_homing_fr.lyx | 732 - docs/src/config/lathe_config.lyx | 113 - docs/src/config/lathe_config_fr.lyx | 46 - docs/src/config/pncconf.lyx | 614 - docs/src/config/stepconf.lyx | 1936 --- docs/src/config/stepconf_fr.lyx | 1708 --- docs/src/config/stepper.lyx | 555 - docs/src/config/stepper_fr.lyx | 596 - docs/src/drivers/AX5214H.lyx | 147 - docs/src/drivers/GS2.lyx | 244 - docs/src/drivers/hostmot2.lyx | 2635 ---- docs/src/drivers/m5i20.lyx | 2760 ---- docs/src/drivers/motenc.lyx | 357 - docs/src/drivers/opto22.lyx | 313 - docs/src/drivers/pico_ppmc.lyx | 645 - docs/src/drivers/pluto_p.lyx | 1731 --- docs/src/drivers/servo_to_go.lyx | 225 - docs/src/examples/gcode.lyx | 182 - docs/src/examples/gcode_fr.lyx | 145 - docs/src/examples/gs2_example.lyx | 145 - docs/src/examples/misc.lyx | 53 - docs/src/examples/misc_fr.lyx | 62 - docs/src/examples/mpg.lyx | 161 - docs/src/examples/mpg_fr.lyx | 155 - docs/src/examples/pci_parallel_port.lyx | 125 - docs/src/examples/pci_parallel_port_fr.lyx | 128 - docs/src/examples/spindle.lyx | 443 - docs/src/examples/spindle_fr.lyx | 295 - docs/src/gcode/coordinates.lyx | 966 -- docs/src/gcode/coordinates_fr.lyx | 955 -- docs/src/gcode/main.lyx | 10029 ------------- docs/src/gcode/main_fr.lyx | 12272 ---------------- docs/src/gcode/mill_canned.lyx | 1245 -- docs/src/gcode/mill_canned_fr.lyx | 1419 -- docs/src/gcode/overview.lyx | 2894 ---- docs/src/gcode/rs274ngc.lyx | 233 - docs/src/gcode/tool_compensation.lyx | 724 - docs/src/gcode/tool_compensation_fr.lyx | 1206 -- docs/src/gui/axis.lyx | 3160 ---- docs/src/gui/axis_fr.lyx | 2600 ---- docs/src/gui/gladevcp.lyx | 2655 ---- docs/src/gui/halui.lyx | 695 - docs/src/gui/halui_fr.lyx | 1156 -- docs/src/gui/image-to-gcode.lyx | 566 - docs/src/gui/image-to-gcode_fr.lyx | 498 - docs/src/gui/keystick.lyx | 143 - docs/src/gui/keystick_fr.lyx | 129 - docs/src/gui/mini.lyx | 1492 -- docs/src/gui/mini_fr.lyx | 1832 --- docs/src/gui/tkemc.lyx | 1481 -- docs/src/gui/tkemc_fr.lyx | 1270 -- docs/src/gui/touchy.lyx | 194 - docs/src/hal/basic_hal.lyx | 1506 -- docs/src/hal/basic_hal_fr.lyx | 1122 -- docs/src/hal/comp.lyx | 2324 --- docs/src/hal/comp_fr.lyx | 2134 --- docs/src/hal/components.lyx | 2030 --- docs/src/hal/components_fr.lyx | 518 - docs/src/hal/drivers_fr.lyx | 6384 -------- docs/src/hal/general_ref.lyx | 1223 -- docs/src/hal/general_ref_fr.lyx | 1448 -- docs/src/hal/hal-examples.lyx | 473 - docs/src/hal/hal-examples_fr.lyx | 79 - docs/src/hal/halmodule.lyx | 617 - docs/src/hal/halmodule_fr.lyx | 533 - docs/src/hal/halshow.lyx | 627 - docs/src/hal/halshow_fr.lyx | 589 - docs/src/hal/halui_examples.lyx | 241 - docs/src/hal/halui_examples_fr.lyx | 149 - docs/src/hal/intro.lyx | 1184 -- docs/src/hal/intro_fr.lyx | 1361 -- docs/src/hal/opto22.lyx | 254 - docs/src/hal/parallel_port.lyx | 734 - docs/src/hal/pyvcp.lyx | 2019 --- docs/src/hal/pyvcp_examples.lyx | 1233 -- docs/src/hal/pyvcp_fr.lyx | 1627 -- docs/src/hal/rtcomps.lyx | 3151 ---- docs/src/hal/rtcomps_fr.lyx | 2722 ---- docs/src/hal/tools.lyx | 265 - docs/src/hal/tools_fr.lyx | 222 - docs/src/hal/tutorial.lyx | 2824 ---- docs/src/hal/tutorial_fr.lyx | 2763 ---- docs/src/install/Latency_Test.lyx | 289 - docs/src/install/Latency_Test_fr.lyx | 255 - docs/src/install/compiling_emc2.lyx | 424 - docs/src/install/compiling_emc2_fr.lyx | 419 - docs/src/install/installing_emc2_fr.lyx | 365 - docs/src/ladder/classic_ladder.lyx | 3255 ---- docs/src/ladder/ladder_examples.lyx | 570 - docs/src/ladder/ladder_intro.lyx | 171 - docs/src/ladder/ladder_intro_fr.lyx | 150 - docs/src/lathe/lathe-user.lyx | 1213 -- docs/src/lathe/lathe-user_fr.lyx | 1133 -- docs/src/motion/kinematics.lyx | 585 - docs/src/motion/kinematics_fr.lyx | 534 - docs/src/motion/pid_theory.lyx | 725 - docs/src/motion/pid_theory_fr.lyx | 704 - docs/src/motion/tweaking_steppers.lyx | 576 - docs/src/motion/tweaking_steppers_fr.lyx | 607 - docs/src/quickstart/stepper_quickstart.lyx | 1504 -- docs/src/quickstart/stepper_quickstart_fr.lyx | 1287 -- 143 files changed, 151428 deletions(-) delete mode 100644 docs/src/Getting_Started.lyx delete mode 100644 docs/src/Getting_Started_fr.lyx delete mode 100644 docs/src/Master_Developer.lyx delete mode 100644 docs/src/Master_HAL.lyx delete mode 100644 docs/src/Master_HAL_fr.lyx delete mode 100644 docs/src/Master_Integrator.lyx delete mode 100644 docs/src/Master_Integrator_fr.lyx delete mode 100644 docs/src/Master_User.lyx delete mode 100644 docs/src/Master_User_fr.lyx delete mode 100644 docs/src/code/Code_Notes.lyx delete mode 100644 docs/src/code/NML_Messages.lyx delete mode 100644 docs/src/code/Style_Guide.lyx delete mode 100644 docs/src/common/Document_Header.lyx delete mode 100644 docs/src/common/Document_Header_fr.lyx delete mode 100644 docs/src/common/GPLD_Copyright.lyx delete mode 100644 docs/src/common/Getting_EMC.lyx delete mode 100644 docs/src/common/Getting_EMC_fr.lyx delete mode 100644 docs/src/common/Glossary.lyx delete mode 100644 docs/src/common/Integrator_Concepts.lyx delete mode 100644 docs/src/common/Linux_FAQ.lyx delete mode 100644 docs/src/common/Linux_FAQ_fr.lyx delete mode 100644 docs/src/common/Stepper_Diagnostics.lyx delete mode 100644 docs/src/common/Stepper_Diagnostics_fr.lyx delete mode 100644 docs/src/common/System_Requirements.lyx delete mode 100644 docs/src/common/System_Requirements_fr.lyx delete mode 100644 docs/src/common/Updating_EMC.lyx delete mode 100644 docs/src/common/User_Concepts.lyx delete mode 100644 docs/src/common/User_Concepts_fr.lyx delete mode 100644 docs/src/common/machining_center.lyx delete mode 100644 docs/src/common/template.lyx delete mode 100644 docs/src/common/user_intro.lyx delete mode 100644 docs/src/common/user_intro_fr.lyx delete mode 100644 docs/src/common/userforeword.lyx delete mode 100644 docs/src/common/userforeword_fr.lyx delete mode 100644 docs/src/config/copy_and_run.lyx delete mode 100644 docs/src/config/copy_and_run_fr.lyx delete mode 100644 docs/src/config/emc2hal.lyx delete mode 100644 docs/src/config/emc2hal_fr.lyx delete mode 100644 docs/src/config/ini_config.lyx delete mode 100644 docs/src/config/ini_config_fr.lyx delete mode 100644 docs/src/config/ini_homing.lyx delete mode 100644 docs/src/config/ini_homing_fr.lyx delete mode 100644 docs/src/config/lathe_config.lyx delete mode 100644 docs/src/config/lathe_config_fr.lyx delete mode 100644 docs/src/config/pncconf.lyx delete mode 100644 docs/src/config/stepconf.lyx delete mode 100644 docs/src/config/stepconf_fr.lyx delete mode 100644 docs/src/config/stepper.lyx delete mode 100644 docs/src/config/stepper_fr.lyx delete mode 100644 docs/src/drivers/AX5214H.lyx delete mode 100644 docs/src/drivers/GS2.lyx delete mode 100644 docs/src/drivers/hostmot2.lyx delete mode 100644 docs/src/drivers/m5i20.lyx delete mode 100644 docs/src/drivers/motenc.lyx delete mode 100644 docs/src/drivers/opto22.lyx delete mode 100644 docs/src/drivers/pico_ppmc.lyx delete mode 100644 docs/src/drivers/pluto_p.lyx delete mode 100644 docs/src/drivers/servo_to_go.lyx delete mode 100644 docs/src/examples/gcode.lyx delete mode 100644 docs/src/examples/gcode_fr.lyx delete mode 100644 docs/src/examples/gs2_example.lyx delete mode 100644 docs/src/examples/misc.lyx delete mode 100644 docs/src/examples/misc_fr.lyx delete mode 100644 docs/src/examples/mpg.lyx delete mode 100644 docs/src/examples/mpg_fr.lyx delete mode 100644 docs/src/examples/pci_parallel_port.lyx delete mode 100644 docs/src/examples/pci_parallel_port_fr.lyx delete mode 100644 docs/src/examples/spindle.lyx delete mode 100644 docs/src/examples/spindle_fr.lyx delete mode 100644 docs/src/gcode/coordinates.lyx delete mode 100644 docs/src/gcode/coordinates_fr.lyx delete mode 100644 docs/src/gcode/main.lyx delete mode 100644 docs/src/gcode/main_fr.lyx delete mode 100644 docs/src/gcode/mill_canned.lyx delete mode 100644 docs/src/gcode/mill_canned_fr.lyx delete mode 100644 docs/src/gcode/overview.lyx delete mode 100644 docs/src/gcode/rs274ngc.lyx delete mode 100644 docs/src/gcode/tool_compensation.lyx delete mode 100644 docs/src/gcode/tool_compensation_fr.lyx delete mode 100644 docs/src/gui/axis.lyx delete mode 100644 docs/src/gui/axis_fr.lyx delete mode 100644 docs/src/gui/gladevcp.lyx delete mode 100644 docs/src/gui/halui.lyx delete mode 100644 docs/src/gui/halui_fr.lyx delete mode 100644 docs/src/gui/image-to-gcode.lyx delete mode 100644 docs/src/gui/image-to-gcode_fr.lyx delete mode 100644 docs/src/gui/keystick.lyx delete mode 100644 docs/src/gui/keystick_fr.lyx delete mode 100644 docs/src/gui/mini.lyx delete mode 100644 docs/src/gui/mini_fr.lyx delete mode 100644 docs/src/gui/tkemc.lyx delete mode 100644 docs/src/gui/tkemc_fr.lyx delete mode 100644 docs/src/gui/touchy.lyx delete mode 100644 docs/src/hal/basic_hal.lyx delete mode 100644 docs/src/hal/basic_hal_fr.lyx delete mode 100644 docs/src/hal/comp.lyx delete mode 100644 docs/src/hal/comp_fr.lyx delete mode 100644 docs/src/hal/components.lyx delete mode 100644 docs/src/hal/components_fr.lyx delete mode 100644 docs/src/hal/drivers_fr.lyx delete mode 100644 docs/src/hal/general_ref.lyx delete mode 100644 docs/src/hal/general_ref_fr.lyx delete mode 100644 docs/src/hal/hal-examples.lyx delete mode 100644 docs/src/hal/hal-examples_fr.lyx delete mode 100644 docs/src/hal/halmodule.lyx delete mode 100644 docs/src/hal/halmodule_fr.lyx delete mode 100644 docs/src/hal/halshow.lyx delete mode 100644 docs/src/hal/halshow_fr.lyx delete mode 100644 docs/src/hal/halui_examples.lyx delete mode 100644 docs/src/hal/halui_examples_fr.lyx delete mode 100644 docs/src/hal/intro.lyx delete mode 100644 docs/src/hal/intro_fr.lyx delete mode 100644 docs/src/hal/opto22.lyx delete mode 100644 docs/src/hal/parallel_port.lyx delete mode 100644 docs/src/hal/pyvcp.lyx delete mode 100644 docs/src/hal/pyvcp_examples.lyx delete mode 100644 docs/src/hal/pyvcp_fr.lyx delete mode 100644 docs/src/hal/rtcomps.lyx delete mode 100644 docs/src/hal/rtcomps_fr.lyx delete mode 100644 docs/src/hal/tools.lyx delete mode 100644 docs/src/hal/tools_fr.lyx delete mode 100644 docs/src/hal/tutorial.lyx delete mode 100644 docs/src/hal/tutorial_fr.lyx delete mode 100644 docs/src/install/Latency_Test.lyx delete mode 100644 docs/src/install/Latency_Test_fr.lyx delete mode 100644 docs/src/install/compiling_emc2.lyx delete mode 100644 docs/src/install/compiling_emc2_fr.lyx delete mode 100644 docs/src/install/installing_emc2_fr.lyx delete mode 100644 docs/src/ladder/classic_ladder.lyx delete mode 100644 docs/src/ladder/ladder_examples.lyx delete mode 100644 docs/src/ladder/ladder_intro.lyx delete mode 100644 docs/src/ladder/ladder_intro_fr.lyx delete mode 100644 docs/src/lathe/lathe-user.lyx delete mode 100644 docs/src/lathe/lathe-user_fr.lyx delete mode 100644 docs/src/motion/kinematics.lyx delete mode 100644 docs/src/motion/kinematics_fr.lyx delete mode 100644 docs/src/motion/pid_theory.lyx delete mode 100644 docs/src/motion/pid_theory_fr.lyx delete mode 100644 docs/src/motion/tweaking_steppers.lyx delete mode 100644 docs/src/motion/tweaking_steppers_fr.lyx delete mode 100644 docs/src/quickstart/stepper_quickstart.lyx delete mode 100644 docs/src/quickstart/stepper_quickstart_fr.lyx diff --git a/docs/README b/docs/README index c5400e06f..1c8eeb930 100644 --- a/docs/README +++ b/docs/README @@ -1,111 +1,8 @@ README for Document Writers -Creating new master lyx documents. - -In Layout/Document... - Layout tab, Document_class: book - -In the Master Document... - Preamble tab: - \usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} - \pagenumbering{Roman} - \let\myTOC\tableofcontents - \renewcommand\tableofcontents{% - \myTOC - \clearpage - \pagenumbering{arabic} - } - - \usepackage{fancyhdr} - \setlength{\headheight}{15pt} - \pagestyle{fancy} - \renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter.\ #1}{}} - - \lhead{\fancyplain{}{EMC V2.3 Manual Name Here}} - - \fancyfoot{} - \fancyfoot[CE,CO]{\thepage} - -In sub documents the Preamble should be empty. - -Creating new sub documents use the template.lyx file as the base. - Drawings from QCad ------------------- Save as .dxf to same directory as the image Set line thickness to 0.50mm Export image as 480 x 480 Resolution Auto .png -Images -------------------- - -Images must be in the same directory or a subdirectory below the .lyx file -or it adds a local path and that really fouls it up... - -Notes on using Lyx -------------------- - -Smart Quotes mess up copy and paste so use Ctrl/Shift " for a normal quote. - -By adding a package to the preamble it is possible to include the -TOC starting page in the TOC itself. That way it will appear in -the side bar of the PDF readers and allow the user to click back -to where they last were when they clicked on a TOC entry. - -That line is \usepackage{tocbibind} and it seems to work fine right -below the line that colors and creates the TOC links. - -It is also possible to add other references to the TOC for things -like sections or chapters that are not numbered (chapter*) by including -an ERT (Evil Red Text) while running the Lyx GUI itself. An example of -this is shown below. What it does is add the user handbook Foreword -to the TOC when the first line of userforward.lyx has been changed -to an unnumbered chapter. - -The line is listed below. You'd need to change "Foreword" to your -own entry's name. This ERT should be added before the -lines that insert a file or create a new heading you wish to add. -The ERT is Insert/TeX on the lyx menu. - -\addcontentsline{toc}{chapter}{\protect\numberline{}Foreword} - -This line is optional and adds a page title... -It also looks like we need to modify the header variable that is -used for the top of each page to reflect the new info. This can -be done by placing the following ERT immediately before the item -to be added. - -\markboth{Foreword}{Foreword} - -Change "Foreword" to the name you wish to show at the top of the page . - - -Note on common title page common/Document_Header.lyx ---------------------------------------------------- - -It is possible to use the same include file for all books that use -this frontmatter file. - -What we do is first define a box and include the book's title in -it. This must be done before Document_Header.lyx is included in -the new master doc. This is done with a single ERT that looks like -this. - - \newsavebox{\titleadd} - - \sbox{\titleadd} {\Huge \bf Getting Started} - -Fontsize is chosen with the \Huge but could be smaller using in -decending order; - huge - LARGE - Large - large - -The \bf sets the usage of boldfont. - -Replace "Getting Started" with the name chosen for the new book. - -There is an ERT added into Document_Header.lyx in the title -definition that calls up the box created in the master doc. - diff --git a/docs/src/Getting_Started.lyx b/docs/src/Getting_Started.lyx deleted file mode 100644 index 8220c7fee..000000000 --- a/docs/src/Getting_Started.lyx +++ /dev/null @@ -1,306 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{Roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} - -\usepackage{fancyhdr} -\setlength{\headheight}{15pt} -\pagestyle{fancy} -\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter.\ #1}{}} - -\lhead{\fancyplain{}{EMC V2.5 Getting Started}} - -\fancyfoot{} -\fancyfoot[CE,CO]{\thepage} - -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle empty -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Cover} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Getting Started Guide V2.5 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/System_Requirements.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Getting_EMC.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Updating_EMC.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{quickstart/stepper_quickstart.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/stepconf.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/pncconf.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/copy_and_run.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Linux_FAQ.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -markboth{Index}{Index} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Index} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -The End -\end_layout - -\end_body -\end_document diff --git a/docs/src/Getting_Started_fr.lyx b/docs/src/Getting_Started_fr.lyx deleted file mode 100644 index a3219bde0..000000000 --- a/docs/src/Getting_Started_fr.lyx +++ /dev/null @@ -1,322 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language french -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Couverture} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Guide du débutant V2.3 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - - -\end_layout - -\begin_layout Standard -NOTICE: -\end_layout - -\begin_layout Standard -As of 2011-01-16, the French version of the EMC2 documentation is 2 years - out of date due to not having a translator available. -\end_layout - -\begin_layout Standard -It's recommended to use the English documentation whenever possible. -\end_layout - -\begin_layout Standard -If you wish to provide updated French translation of EMC2, please contact - us. -\end_layout - -\begin_layout Standard -AVIS: -\end_layout - -\begin_layout Standard -Au 2011-01-16, la version française de la documentation EMC2 est de 2 ans - à la date d'échéance pour ne pas avoir un traducteur disponible. -\end_layout - -\begin_layout Standard -Il est recommandé d'utiliser la documentation en anglais chaque fois que - possible. -\end_layout - -\begin_layout Standard -Si vous souhaitez fournir des mises à jour traduction française d'EMC2, - s'il vous plaît contactez-nous. -\end_layout - -\begin_layout Standard -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Table des matières} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Part -Quel ordinateur ? -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/System_Requirements_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Trouver EMC2 -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Getting_EMC_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Configuration -\end_layout - -\begin_layout Standard -\begin_inset Include \include{quickstart/stepper_quickstart_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/stepconf_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/copy_and_run_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Petite FAQ Linux -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Linux_FAQ_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Annexes -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Index de l'ouvrage -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_Developer.lyx b/docs/src/Master_Developer.lyx deleted file mode 100644 index ebcead2f6..000000000 --- a/docs/src/Master_Developer.lyx +++ /dev/null @@ -1,244 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Cover} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -V2.5 Developers Handbook -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-7 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Part -EMC2 Code Notes -\end_layout - -\begin_layout Standard -\begin_inset Include \include{code/Code_Notes.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -NML Messages -\end_layout - -\begin_layout Standard -\begin_inset Include \include{code/NML_Messages.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -\start_of_appendix -Coding Style Guide -\end_layout - -\begin_layout Standard -\begin_inset Include \include{code/Style_Guide.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Glossary -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Glossary.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Chapter -Legal Section -\end_layout - -\begin_layout Standard -\begin_inset Include \input{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_HAL.lyx b/docs/src/Master_HAL.lyx deleted file mode 100644 index af904d698..000000000 --- a/docs/src/Master_HAL.lyx +++ /dev/null @@ -1,255 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{Roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{\myTOC \clearpage \pagenumbering{arabic}} - -\usepackage{fancyhdr} -\setlength{\headheight}{15pt} -\pagestyle{fancy} -\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter.\ #1}{}} - -\lhead{\fancyplain{}{EMC V2.5 Integrator Manual}} - -\fancyfoot{} -\fancyfoot[CE,CO]{\thepage} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Cover} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -HAL Manual 2.5 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -This manual is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/intro.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/tutorial.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/general_ref.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/tools.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/comp.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/halmodule.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Chapter -\start_of_appendix -Legal Section -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_HAL_fr.lyx b/docs/src/Master_HAL_fr.lyx deleted file mode 100644 index 9686899a6..000000000 --- a/docs/src/Master_HAL_fr.lyx +++ /dev/null @@ -1,298 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Couverture} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Le manuel de HAL -\newline -(Couche d'abstraction du matériel) -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -NOTICE: -\end_layout - -\begin_layout Standard -As of 2011-01-16, the French version of the EMC2 documentation is 2 years - out of date due to not having a translator available. -\end_layout - -\begin_layout Standard -It's recommended to use the English documentation whenever possible. -\end_layout - -\begin_layout Standard -If you wish to provide updated French translation of EMC2, please contact - us. -\end_layout - -\begin_layout Standard -AVIS: -\end_layout - -\begin_layout Standard -Au 2011-01-16, la version française de la documentation EMC2 est de 2 ans - à la date d'échéance pour ne pas avoir un traducteur disponible. -\end_layout - -\begin_layout Standard -Il est recommandé d'utiliser la documentation en anglais chaque fois que - possible. -\end_layout - -\begin_layout Standard -Si vous souhaitez fournir des mises à jour traduction française d'EMC2, - s'il vous plaît contactez-nous. - -\end_layout - -\begin_layout Standard -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Table des matières} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Part -Introduction et tutoriels -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/intro_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/tutorial_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Les références de HAL -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/general_ref_fr.lyx} -preview false - -\end_inset - - -\begin_inset Include \include{hal/tools_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/comp_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/halmodule_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -\start_of_appendix -Annexes -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_Integrator.lyx b/docs/src/Master_Integrator.lyx deleted file mode 100644 index 04e89bee1..000000000 --- a/docs/src/Master_Integrator.lyx +++ /dev/null @@ -1,598 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{Roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{\myTOC \clearpage \pagenumbering{arabic}} - -\usepackage{fancyhdr} -\setlength{\headheight}{15pt} -\pagestyle{fancy} -\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter.\ #1}{}} - -\lhead{\fancyplain{}{EMC V2.5 Integrator Manual}} - -\fancyfoot{} -\fancyfoot[CE,CO]{\thepage} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Cover} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Integrators Manual V2.5 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - keepAspectRatio - -\end_inset - - -\end_layout - -\begin_layout Standard -This manual is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Integrator_Concepts.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Configuration -\end_layout - -\begin_layout Standard -\begin_inset Include \include{install/Latency_Test.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/ini_config.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/ini_homing.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/lathe_config.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/emc2hal.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -GUI -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/gladevcp.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -HAL -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/basic_hal.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/halshow.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/stepper.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/components.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/rtcomps.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/parallel_port.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/halui.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/hal-examples.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/pyvcp.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/pyvcp_examples.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\begin_layout Part -Hardware Drivers -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/AX5214H.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/GS2.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/hostmot2.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/m5i20.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/motenc.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/opto22.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/pico_ppmc.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/pluto_p.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{drivers/servo_to_go.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Advanced topics -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/kinematics.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Tuning -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/tweaking_steppers.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/pid_theory.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Ladder Logic -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/ladder_intro.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/classic_ladder.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/ladder_examples.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Hardware Examples -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/pci_parallel_port.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/spindle.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/mpg.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/gs2_example.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Diagnostics -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Stepper_Diagnostics.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -FAQ -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Linux_FAQ.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Appendices -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Glossary.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{ -\backslash -protect -\backslash -numberline{}Index} -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_Integrator_fr.lyx b/docs/src/Master_Integrator_fr.lyx deleted file mode 100644 index cde114122..000000000 --- a/docs/src/Master_Integrator_fr.lyx +++ /dev/null @@ -1,551 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language french -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Couverture} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Manuel de l'intégrateur V2.3 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - keepAspectRatio - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -NOTICE: -\end_layout - -\begin_layout Standard -As of 2011-01-16, the French version of the EMC2 documentation is 2 years - out of date due to not having a translator available. -\end_layout - -\begin_layout Standard -It's recommended to use the English documentation whenever possible. -\end_layout - -\begin_layout Standard -If you wish to provide updated French translation of EMC2, please contact - us. -\end_layout - -\begin_layout Standard -AVIS: -\end_layout - -\begin_layout Standard -Au 2011-01-16, la version française de la documentation EMC2 est de 2 ans - à la date d'échéance pour ne pas avoir un traducteur disponible. -\end_layout - -\begin_layout Standard -Il est recommandé d'utiliser la documentation en anglais chaque fois que - possible. -\end_layout - -\begin_layout Standard -Si vous souhaitez fournir des mises à jour traduction française d'EMC2, - s'il vous plaît contactez-nous. - -\end_layout - -\begin_layout Standard -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard - -\lyxline - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Table des matières} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Part -Installation d'EMC2 -\end_layout - -\begin_layout Standard -\begin_inset Include \include{install/installing_emc2_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{install/compiling_emc2_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Configuration d'EMC2 -\end_layout - -\begin_layout Standard -\begin_inset Include \include{install/Latency_Test_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/ini_config_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/ini_homing_fr.lyx} -preview false - -\end_inset - - -\begin_inset Include \include{config/lathe_config_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/emc2hal_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Spécificités de HAL -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/basic_hal_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/halshow_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{config/stepper_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/components_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/hal-examples_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/rtcomps_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/drivers_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/halui_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/pyvcp_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{hal/pyvcp_examples.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Notions de cinématique -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/kinematics_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Les réglages -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/tweaking_steppers_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{motion/pid_theory_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -La logique Ladder -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/ladder_intro_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/classic_ladder.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{ladder/ladder_examples.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Exemples d'utilisation -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/pci_parallel_port_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/spindle_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/mpg_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Diagnostic -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Stepper_Diagnostics_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Petite FAQ Linux -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Linux_FAQ_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Annexes -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Glossary.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Index de l'ouvrage -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_User.lyx b/docs/src/Master_User.lyx deleted file mode 100644 index d24971626..000000000 --- a/docs/src/Master_User.lyx +++ /dev/null @@ -1,371 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{Roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{\myTOC \clearpage \pagenumbering{arabic}} - -\usepackage{fancyhdr} -\setlength{\headheight}{15pt} -\pagestyle{fancy} -\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter.\ #1}{}} - -\lhead{\fancyplain{}{EMC V2.5 User Manual}} - -\fancyfoot{} -\fancyfoot[CE,CO]{\thepage} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Cover} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -User Manual V2.5 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -This manual is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/userforeword.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/user_intro.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/User_Concepts.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Interfaces -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/axis.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/touchy.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/tkemc.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/mini.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/keystick.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Using EMC -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/machining_center.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/coordinates.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/tool_compensation.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/overview.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/main.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{lathe/lathe-user.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/rs274ngc.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Examples -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/gcode.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/image-to-gcode.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Diagnostics -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Stepper_Diagnostics.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Appendices -\end_layout - -\begin_layout Standard -\start_of_appendix -\begin_inset Include \include{common/Glossary.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/Master_User_fr.lyx b/docs/src/Master_User_fr.lyx deleted file mode 100644 index 5470afe60..000000000 --- a/docs/src/Master_User_fr.lyx +++ /dev/null @@ -1,411 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language french -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\papercolumns 1 -\papersides 1 -\paperpagestyle headings -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Couverture} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Title -Manuel de l'utilisateur V2.3 -\end_layout - -\begin_layout Author -The EMC Team -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename common/emc2-intro.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.75in -\end_inset - -NOTICE: -\end_layout - -\begin_layout Standard -As of 2011-01-16, the French version of the EMC2 documentation is 2 years - out of date due to not having a translator available. -\end_layout - -\begin_layout Standard -It's recommended to use the English documentation whenever possible. -\end_layout - -\begin_layout Standard -If you wish to provide updated French translation of EMC2, please contact - us. -\end_layout - -\begin_layout Standard -AVIS: -\end_layout - -\begin_layout Standard -Au 2011-01-16, la version française de la documentation EMC2 est de 2 ans - à la date d'échéance pour ne pas avoir un traducteur disponible. -\end_layout - -\begin_layout Standard -Il est recommandé d'utiliser la documentation en anglais chaque fois que - possible. -\end_layout - -\begin_layout Standard -Si vous souhaitez fournir des mises à jour traduction française d'EMC2, - s'il vous plaît contactez-nous. - -\end_layout - -\begin_layout Standard -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Copyright (c) 2000-9 LinuxCNC.org -\end_layout - -\begin_layout Standard -\begin_inset VSpace 0.5in -\end_inset - - -\lyxline - -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -vspace{-1 -\backslash -parskip} -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Table des matières} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/userforeword_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Standard - - -\backslash -addcontentsline{toc}{chapter}{Avant-propos} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Part -Les concepts -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/user_intro_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/User_Concepts_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Les interfaces utilisateur -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/axis_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/tkemc_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/mini_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/keystick_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -L'utilisation d'EMC2 -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/main_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/tool_compensation_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gcode/coordinates_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{lathe/lathe-user_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Quelques exemples -\end_layout - -\begin_layout Standard -\begin_inset Include \include{examples/gcode_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Include \include{gui/image-to-gcode_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Diagnostic -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/Stepper_Diagnostics_fr.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Annexes -\end_layout - -\begin_layout Standard -\begin_inset Include \include{common/GPLD_Copyright.lyx} -preview false - -\end_inset - - -\end_layout - -\begin_layout Part -Index de l'ouvrage -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand printindex - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/code/Code_Notes.lyx b/docs/src/code/Code_Notes.lyx deleted file mode 100644 index 191cb0204..000000000 --- a/docs/src/code/Code_Notes.lyx +++ /dev/null @@ -1,2274 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Introduction -\end_layout - -\begin_layout Section -Intended audience -\end_layout - -\begin_layout Standard -This document is a collection of notes about the internals of EMC2. - It is primarily of interest to developers, however much of the information - here may also be of interest to system integrators and others who are simply - curious about how EMC2 works. - Much of this information is now outdated and has never been reviewed for - accuracy. -\end_layout - -\begin_layout Section -Organization -\end_layout - -\begin_layout Standard -There will be a chapter for each of the major components of EMC2, as well - as chapter(s) covering how they work together. - This document is very much a work in progress, and it's layout may change - in the future. -\end_layout - -\begin_layout Chapter -Overview of EMC2 -\end_layout - -\begin_layout Section -Terms and definitions -\end_layout - -\begin_layout Description -AXIS An axis is one of the six degrees of freedom that define a tool position - in three dimensional Cartesian space. - Those axes are X, Y, Z, A, B, and C, where X, Y, and Z are linear coordinates - that determine where the tip of the tool is, and A, B, and C are angular - coordinates that determine the tool orientation. - Unfortunately -\begin_inset Quotes eld -\end_inset - -axis -\begin_inset Quotes erd -\end_inset - - is also sometimes used to mean a degree of freedom of the machine itself, - such as the saddle, table, or quill of a Bridgeport type milling machine. - On a Bridgeport this causes no confusion, since movement of the table directly - corresponds to movement along the X axis. - However, the shoulder and elbow joints of a robot arm and the linear actuators - of a hexapod do not correspond to movement along any Cartesian axis, and - in general it is important to make the distinction between the Cartesian - axes and the machine degrees of freedom. - In this document, the latter will be called -\begin_inset Quotes eld -\end_inset - -joints -\begin_inset Quotes erd -\end_inset - -, not axes. - (The GUIs and some other parts of the code may not always follow this distincti -on, but the internals of the motion controller do.) -\end_layout - -\begin_layout Description -JOINT A joint is one of the movable parts of the machine. - Joints are distinct from axes, although the two terms are sometimes (mis)used - to mean the same thing. - In EMC2, a joint is a physical thing that can be moved, not a coordinate - in space. - For example, the quill, knee, saddle, and table of a Bridgeport mill are - all joints. - The shoulder, elbow, and wrist of a robot arm are joints, as are the linear - actuators of a hexapod. - Every joint has a motor or actuator of some type associated with it. - Joints do not necessarily correspond to the X, Y, and Z axes, although - for machines with trivial kinematics that may be the case. - Even on those machines, joint position and axis position are fundamentally - different things. - In this document, the terms -\begin_inset Quotes eld -\end_inset - -joint -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -axis -\begin_inset Quotes erd -\end_inset - - are used carefully to respect their distinct meanings. - Unfortunately that isn't necessarily true everywhere else. - In particular, GUIs for machines with trivial kinematics may gloss over - or completely hide the distinction between joints and axes. - In addition, the ini file uses the term -\begin_inset Quotes eld -\end_inset - -axis -\begin_inset Quotes erd -\end_inset - - for data that would more accurately be described as joint data, such as - input and output scaling, etc. -\end_layout - -\begin_layout Description -POSE A pose is a fully specified position in 3-D Cartesian space. - In the EMC2 motion controller, when we refer to a pose we mean an EmcPose - structure, containing three linear coordinates and three angular ones. -\end_layout - -\begin_layout Section -Architecture overview -\end_layout - -\begin_layout Standard -There are four components contained in the EMC2 Architecture: a motion controlle -r (EMCMOT), a discrete IO controller (EMCIO), a task executor which coordinates - them (EMCTASK) and several text-mode and graphical User Interfaces. - Each of them will be described in the current document, both from the design - point of view and from the developers point of view (where to find needed - data, how to easily extend/modify things, etc.). -\end_layout - -\begin_layout Chapter -Motion Controller -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -The motion controller receives commands from user space modules via a shared - memory buffer, and executes those commands in realtime. - The status of the controller is made available to the user space modules - through the same shared memory area. - The motion controller interacts with the motors and other hardware using - the HAL (Hardware Abstraction Layer). - This document assumes that the reader has a basic understanding of the - HAL, and uses terms like hal pins, hal signals, etc, without explaining - them. - For basic information about the HAL, read the -\begin_inset Quotes eld -\end_inset - -Introduction to HAL -\begin_inset Quotes erd -\end_inset - - document. - Another chapter of this document will eventually go into the internals - of the HAL itself, but in this chapter, we only use the HAL API as defined - in emc2/src/hal/hal.h. -\end_layout - -\begin_layout Section -Block diagrams and Data Flow -\end_layout - -\begin_layout Standard -Figure -\begin_inset LatexCommand ref -reference "fig:motion-joint-controller-block-diag" - -\end_inset - - is a block diagram of a joint controller. - There is one joint controller per joint. - The joint controllers work at a lower level than the kinematics, a level - where all joints are completely independent. - All the data for a joint is in a single joint structure. - Some members of that structure are visible in the block diagram, such as - coarse_pos, pos_cmd, and motor_pos_fb. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename emc2-motion-joint-controller-block-diag.png - scale 80 - clip - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:motion-joint-controller-block-diag" - -\end_inset - -Joint Controller Block Diagram -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Figure -\begin_inset LatexCommand ref -reference "fig:motion-joint-controller-block-diag" - -\end_inset - - shows five of the seven sets of position information that form the main - data flow through the motion controller. - The seven forms of position data are as follows: -\end_layout - -\begin_layout Enumerate -emcmotStatus->carte_pos_cmd - This is the desired position, in Cartesian - coordinates. - It is updated at the traj rate, not the servo rate. - In coord mode, it is determined by the traj planner. - In teleop mode, it is determined by the traj planner? In free mode, it - is either copied from actualPos, or generated by applying forward kins - to (2) or (3). -\end_layout - -\begin_layout Enumerate -emcmotStatus->joints[n].coarse_pos - This is the desired position, in joint - coordinates, but before interpolation. - It is updated at the traj rate, not the servo rate. - In coord mode, it is generated by applying inverse kins to (1) In teleop - mode, it is generated by applying inverse kins to (1) In free mode, it - is copied from (3), I think. -\end_layout - -\begin_layout Enumerate -emcmotStatus->joints[n].pos_cmd - This is the desired position, in joint - coords, after interpolation. - A new set of these coords is generated every servo period. - In coord mode, it is generated from (2) by the interpolator. - In teleop mode, it is generated from (2) by the interpolator. - In free mode, it is generated by the free mode traj planner. -\end_layout - -\begin_layout Enumerate -emcmotStatus->joints[n].motor_pos_cmd - This is the desired position, in - motor coords. - Motor coords are generated by adding backlash compensation, lead screw - error compensation, and offset (for homing) to (3). - It is generated the same way regardless of the mode, and is the output - to the PID loop or other position loop. -\end_layout - -\begin_layout Enumerate -emcmotStatus->joints[n].motor_pos_fb - This is the actual position, in motor - coords. - It is the input from encoders or other feedback device (or from virtual - encoders on open loop machines). - It is "generated" by reading the feedback device. -\end_layout - -\begin_layout Enumerate -emcmotStatus->joints[n].pos_fb - This is the actual position, in joint coordinate -s. - It is generated by subtracting offset, lead screw error compensation, and - backlash compensation from (5). - It is generated the same way regardless of the operating mode. -\end_layout - -\begin_layout Enumerate -emcmotStatus->carte_pos_fb - This is the actual position, in Cartesian coordinat -es. - It is updated at the traj rate, not the servo rate. - Ideally, actualPos would always be calculated by applying forward kinematics - to (6). - However, forward kinematics may not be available, or they may be unusable - because one or more axes aren't homed. - In that case, the options are: A) fake it by copying (1), or B) admit that - we don't really know the Cartesian coordinates, and simply don't update - actualPos. - Whatever approach is used, I can see no reason not to do it the same way - regardless of the operating mode. - I would propose the following: If there are forward kins, use them, unless - they don't work because of unhomed axes or other problems, in which case - do (B). - If no forward kins, do (A), since otherwise actualPos would _never_ get - updated. - -\end_layout - -\begin_layout Section -Commands -\end_layout - -\begin_layout Standard -This section simply lists all of the commands that can be sent to the motion - module, along with detailed explanations of what they do. - The command names are defined in a large typedef enum in emc2/src/emc/motion/mo -tion.h, called cmd_code_t. - (Note that in the code, each command name starts with -\begin_inset Quotes eld -\end_inset - -EMCMOT_ -\begin_inset Quotes erd -\end_inset - -, which is omitted here.) -\end_layout - -\begin_layout Standard -The commands are implemented by a large switch statement in the function - emcmotCommandHandler(), which is called at the servo rate. - More on that function later. -\end_layout - -\begin_layout Standard -There are approximately 44 commands - this list is still under construction. -\end_layout - -\begin_layout Subsection -ABORT -\end_layout - -\begin_layout Standard -The ABORT command simply stops all motion. - It can be issued at any time, and will always be accepted. - It does not disable the motion controller or change any state information, - it simply cancels any motion that is currently in progress. -\begin_inset Foot -status open - -\begin_layout Standard -It seems that the higher level code (TASK and above) also use ABORT to clear - faults. - Whenever there is a persistent fault (such as being outside the hardware - limit switches), the higher level code sends a constant stream of ABORTs - to the motion controller trying to make the fault go away. - Thousands of 'em.... - That means that the motion controller should avoid persistent faults. - This needs looked into. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command is alway accepted and acted on immediately. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -In free mode, the free mode trajectory planners are disabled. - That results in each joint stopping as fast as it's accel (decel) limit - allows. - The stop is not coordinated. - In teleop mode, the commanded Cartesian velocity is set to zero. - I don't know exactly what kind of stop results (coordinated, uncoordinated, - etc), but will figure it out eventually. - In coord mode, the coord mode trajectory planner is told to abort the current - move. - Again, I don't know the exact result of this, but will document it when - I figure it out. -\end_layout - -\begin_layout Subsection -FREE -\end_layout - -\begin_layout Standard -The FREE command puts the motion controller in free mode. - Free mode means that each joint is independent of all the other joints. - Cartesian coordinates, poses, and kinematics are ignored when in free mode. - In essence, each joint has it's own simple trajectory planner, and each - joint completely ignores the other joints. - Some commands (like JOG) only work in free mode. - Other commands, including anything that deals with Cartesian coordinates, - do not work at all in free mode. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler applies no requirements to the FREE command, it will - always be accepted. - However, if any joint is in motion (GET_MOTION_INPOS_FLAG() == FALSE), - then the command will be ignored. - This behavior is controlled by code that is now located in the function - -\begin_inset Quotes eld -\end_inset - -set_operating_mode() -\begin_inset Quotes erd -\end_inset - - in control.c, that code needs to be cleaned up. - I believe the command should not be silently ignored, instead the command - handler should determine whether it can be executed and return an error - if it cannot. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -If the machine is already in free mode, nothing. - Otherwise, the machine is placed in free mode. - Each joint's free mode trajectory planner is initialized to the current - location of the joint, but the planners are not enabled and the joints - are stationary. -\end_layout - -\begin_layout Subsection -TELEOP -\end_layout - -\begin_layout Standard -The TELEOP command places the machine in teleoperating mode. - In teleop mode, movement of the machine is based on Cartesian coordinates - using kinematics, rather than on individual joints as in free mode. - However the trajectory planner per se is not used, instead movement is - controlled by a velocity vector. - Movement in teleop mode is much like jogging, except that it is done in - Cartesian space instead of joint space. - On a machine with trivial kinematics, there is little difference between - teleop mode and free mode, and GUIs for those machines might never even - issue this command. - However for non-trivial machines like robots and hexapods, teleop mode - is used for most user commanded jog type movements. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler will reject the TELEOP command with an error message - if the kinematics cannot be activated because the one or more axes have - not been homed. - In addition, if any joint is in motion (GET_MOTION_INPOS_FLAG() == FALSE), - then the command will be ignored (with no error message). - This behavior is controlled by code that is now located in the function - -\begin_inset Quotes eld -\end_inset - -set_operating_mode() -\begin_inset Quotes erd -\end_inset - - in control.c. - I believe the command should not be silently ignored, instead the command - handler should determine whether it can be executed and return an error - if it cannot. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -If the machine is already in teleop mode, nothing. - Otherwise the machine is placed in teleop mode. - The kinematics code is activated, interpolators are drained and flushed, - and the Cartesian velocity commands are set to zero. -\end_layout - -\begin_layout Subsection -COORD -\end_layout - -\begin_layout Standard -The COORD command places the machine in coordinated mode. - In coord mode, movement of the machine is based on Cartesian coordinates - using kinematics, rather than on individual joints as in free mode. - In addition, the main trajectory planner is used to generate motion, based - on queued LINE, CIRCLE, and/or PROBE commands. - Coord mode is the mode that is used when executing a G-code program. - -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler will reject the COORD command with an error message - if the kinematics cannot be activated because the one or more axes have - not been homed. - In addition, if any joint is in motion (GET_MOTION_INPOS_FLAG() == FALSE), - then the command will be ignored (with no error message). - This behavior is controlled by code that is now located in the function - -\begin_inset Quotes eld -\end_inset - -set_operating_mode() -\begin_inset Quotes erd -\end_inset - - in control.c. - I believe the command should not be silently ignored, instead the command - handler should determine whether it can be executed and return an error - if it cannot. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -If the machine is already in coord mode, nothing. - Otherwise, the machine is placed in coord mode. - The kinematics code is activated, interpolators are drained and flushed, - and the trajectory planner queues are empty. - The trajectory planner is active and awaiting a LINE, CIRCLE, or PROBE - command. -\end_layout - -\begin_layout Subsection -ENABLE -\end_layout - -\begin_layout Standard -The ENABLE command enables the motion controller. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -If the controller is already enabled, nothing. - If not, the controller is enabled. - Queues and interpolators are flushed. - Any movement or homing operations are terminated. - The amp-enable outputs associated with active joints are turned on. - If forward kinematics are not available, the machine is switched to free - mode. -\end_layout - -\begin_layout Subsection -DISABLE -\end_layout - -\begin_layout Standard -The DISABLE command disables the motion controller. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -If the controller is already disabled, nothing. - If not, the controller is disabled. - Queues and interpolators are flushed. - Any movement or homing operations are terminated. - The amp-enable outputs associated with active joints are turned off. - If forward kinematics are not available, the machine is switched to free - mode. -\end_layout - -\begin_layout Subsection -ENABLE_AMPLIFIER -\end_layout - -\begin_layout Standard -The ENABLE_AMPLIFIER command turns on the amp enable output for a single - output amplifier, without changing anything else. - Can be used to enable a spindle speed controller. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Currently, nothing. - (A call to the old extAmpEnable function is currently commented out.) Eventually - it will set the amp enable HAL pin true. -\end_layout - -\begin_layout Subsection -DISABLE_AMPLIFIER -\end_layout - -\begin_layout Standard -The DISABLE_AMPLIFIER command turns off the amp enable output for a single - amplifier, without changing anything else. - Again, useful for spindle speed controllers. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Currently, nothing. - (A call to the old extAmpEnable function is currently commented out.) Eventually - it will set the amp enable HAL pin false. -\end_layout - -\begin_layout Subsection -ACTIVATE_JOINT -\end_layout - -\begin_layout Standard -The ACTIVATE_JOINT command turns on all the calculations associated with - a single joint, but does not change the joint's amp enable output pin. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Calculations for the specified joint are enabled. - The amp enable pin is not changed, however, any subsequent ENABLE or DISABLE - commands will modify the joint's amp enable pin. -\end_layout - -\begin_layout Subsection -DEACTIVATE_JOINT -\end_layout - -\begin_layout Standard -The DEACTIVATE_JOINT command turns off all the calculations associated with - a single joint, but does not change the joint's amp enable output pin. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Calculations for the specified joint are enabled. - The amp enable pin is not changed, and subsequent ENABLE or DISABLE commands - will not modify the joint's amp enable pin. -\end_layout - -\begin_layout Subsection -ENABLE_WATCHDOG -\end_layout - -\begin_layout Standard -The ENABLE_WATCHDOG command enables a hardware based watchdog (if present). -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Currently nothing. - The old watchdog was a strange thing that used a specific sound card. - A new watchdog interface may be designed in the future. -\end_layout - -\begin_layout Subsection -DISABLE_WATCHDOG -\end_layout - -\begin_layout Standard -The DISABLE_WATCHDOG command disables a hardware based watchdog (if present). -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Currently nothing. - The old watchdog was a strange thing that used a specific sound card. - A new watchdog interface may be designed in the future. -\end_layout - -\begin_layout Subsection -PAUSE -\end_layout - -\begin_layout Standard -The PAUSE command stops the trajectory planner. - It has no effect in free or teleop mode. - At this point I don't know if it pauses all motion immediately, or if it - completes the current move and then pauses before pulling another move - from the queue. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The trajectory planner pauses. -\end_layout - -\begin_layout Subsection -RESUME -\end_layout - -\begin_layout Standard -The RESUME command restarts the trajectory planner if it is paused. - It has no effect in free or teleop mode, or if the planner is not paused. - -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The trajectory planner resumes. -\end_layout - -\begin_layout Subsection -STEP -\end_layout - -\begin_layout Standard -The STEP command restarts the trajectory planner if it is paused, and tells - the planner to stop again when it reaches a specific point. - It has no effect in free or teleop mode. - At this point I don't know exactly how this works. - I'll add more documentation here when I dig deeper into the trajectory - planner. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The trajectory planner resumes, and later pauses when it reaches a specific - point. -\end_layout - -\begin_layout Subsection -SCALE -\end_layout - -\begin_layout Standard -The SCALE command scales all velocity limits and commands by a specified - amount. - It is used to implement feed rate override and other similar functions. - The scaling works in free, teleop, and coord modes, and affects everything, - including homing velocities, etc. - However, individual joint velocity limits are unaffected. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -All velocity commands are scaled by the specified constant. -\end_layout - -\begin_layout Subsection -OVERRIDE_LIMITS -\end_layout - -\begin_layout Standard -The OVERRIDE_LIMITS command prevents limits from tripping until the end - of the next JOG command. - It is normally used to allow a machine to be jogged off of a limit switch - after tripping. - (The command can actually be used to override limits, or to cancel a previous - override.) -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -None. - The command can be issued at any time, and will always be accepted. - (I think it should only work in free mode.) -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Limits on all joints are over-ridden until the end of the next JOG command. - (This is currently broken... - once an OVERRIDE_LIMITS command is received, limits are ignored until another - OVERRIDE_LIMITS command re-enables them.) -\end_layout - -\begin_layout Subsection -HOME -\end_layout - -\begin_layout Standard -The HOME command initiates a homing sequence on a specified joint. - The actual homing sequence is determined by a number of configuration parameter -s, and can range from simply setting the current position to zero, to a - multi-stage search for a home switch and index pulse, followed by a move - to an arbitrary home location. - For more information about the homing sequence, see section -\begin_inset LatexCommand ref -reference "sec:Homing" - -\end_inset - - of this document. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command will be ignored silently unless the machine is in free mode. -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -Any jog or other joint motion is aborted, and the homing sequence starts. -\end_layout - -\begin_layout Subsection -JOG_CONT -\end_layout - -\begin_layout Standard -The JOG_CONT command initiates a continuous jog on a single joint. - A continuous jog is generated by setting the free mode trajectory planner's - target position to a point beyond the end of the joint's range of travel. - This ensures that the planner will move constantly until it is stopped - by either the joint limits or an ABORT command. - Normally, a GUI sends a JOG_CONT command when the user presses a jog button, - and ABORT when the button is released. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler will reject the JOG_CONT command with an error message - if machine is not in free mode, or if any joint is in motion (GET_MOTION_INPOS_ -FLAG() == FALSE), or if motion is not enabled. - It will also silently ignore the command if the joint is already at or - beyond it's limit and the commanded jog would make it worse. - -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The free mode trajectory planner for the joint identified by emcmotCommand->axis - is activated, with a target position beyond the end of joint travel, and - a velocity limit of emcmotCommand->vel. - This starts the joint moving, and the move will continue until stopped - by an ABORT command or by hitting a limit. - The free mode planner accelerates at the joint accel limit at the beginning - of the move, and will decelerate at the joint accel limit when it stops. -\end_layout - -\begin_layout Subsection -JOG_INCR -\end_layout - -\begin_layout Standard -The JOG_INCR command initiates an incremental jog on a single joint. - Incremental jogs are cumulative, in other words, issuing two JOG_INCR commands - that each ask for 0.100 inches of movement will result in 0.200 inches of - travel, even if the second command is issued before the first one finishes. - Normally incremental jogs stop when they have traveled the desired distance, - however they also stop when they hit a limit, or on an ABORT command. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler will silently reject the JOG_INCR command if machine - is not in free mode, or if any joint is in motion (GET_MOTION_INPOS_FLAG() - == FALSE), or if motion is not enabled. - It will also silently ignore the command if the joint is already at or - beyond it's limit and the commanded jog would make it worse. - -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The free mode trajectory planner for the joint identified by emcmotCommand->axis - is activated, the target position is incremented/decremented by emcmotCommand-> -offset, and the velocity limit is set to emcmotCommand->vel. - The free mode trajectory planner will generate a smooth trapezoidal move - from the present position to the target position. - The planner can correctly handle changes in the target position that happen - while the move is in progress, so multiple JOG_INCR commands can be issued - in quick succession. - The free mode planner accelerates at the joint accel limit at the beginning - of the move, and will decelerate at the joint accel limit to stop at the - target position. -\end_layout - -\begin_layout Subsection -JOG_ABS -\end_layout - -\begin_layout Standard -The JOG_ABS command initiates an absolute jog on a single joint. - An absolute jog is a simple move to a specific location, in joint coordinates. - Normally absolute jogs stop when they reach the desired location, however - they also stop when they hit a limit, or on an ABORT command. -\end_layout - -\begin_layout Subsubsection -Requirements -\end_layout - -\begin_layout Standard -The command handler will silently reject the JOG_ABS command if machine - is not in free mode, or if any joint is in motion (GET_MOTION_INPOS_FLAG() - == FALSE), or if motion is not enabled. - It will also silently ignore the command if the joint is already at or - beyond it's limit and the commanded jog would make it worse. - -\end_layout - -\begin_layout Subsubsection -Results -\end_layout - -\begin_layout Standard -The free mode trajectory planner for the joint identified by emcmotCommand->axis - is activated, the target position is set to emcmotCommand->offset, and - the velocity limit is set to emcmotCommand->vel. - The free mode trajectory planner will generate a smooth trapezoidal move - from the present position to the target position. - The planner can correctly handle changes in the target position that happen - while the move is in progress. - If multiple JOG_ABS commands are issued in quick succession, each new command - changes the target position and the machine goes to the final commanded - position. - The free mode planner accelerates at the joint accel limit at the beginning - of the move, and will decelerate at the joint accel limit to stop at the - target position. -\end_layout - -\begin_layout Subsection -SET_LINE -\end_layout - -\begin_layout Standard -The SET_LINE command adds a straight line to the trajectory planner queue. -\end_layout - -\begin_layout Standard -(More later) -\end_layout - -\begin_layout Subsection -SET_CIRCLE -\end_layout - -\begin_layout Standard -The SET_CIRCLE command adds a circular move to the trajectory planner queue. -\end_layout - -\begin_layout Standard -(More later) -\end_layout - -\begin_layout Subsection -SET_TELEOP_VECTOR -\end_layout - -\begin_layout Standard -The SET_TELEOP_VECTOR command instructs the motion controller to move along - a specific vector in Cartesian space. -\end_layout - -\begin_layout Standard -(More later) -\end_layout - -\begin_layout Subsection -PROBE -\end_layout - -\begin_layout Standard -The PROBE command instructs the motion controller to move toward a specific - point in Carte Sean space, stopping and recording it's position if the - probe input is triggered. -\end_layout - -\begin_layout Standard -(More later) -\end_layout - -\begin_layout Subsection -CLEAR_PROBE_FLAG -\end_layout - -\begin_layout Standard -The CLEAR_PROBE_FLAG command is used to reset the probe input in preparation - for a PROBE command. - (Question: why shouldn't the PROBE command automatically reset the input?) -\end_layout - -\begin_layout Standard -(More later) -\end_layout - -\begin_layout Subsection -SET_xix -\end_layout - -\begin_layout Standard -There are approximately 15 SET_xxx commands, where xxx is the name of some - configuration parameter. - It is anticipated that there will be several more SET commands as more - parameters are added. - I would like to find a cleaner way of setting and reading configuration - parameters. - The existing methods require many lines of code to be added to multiple - files each time a parameter is added. - Much of that code is identical or nearly identical for every parameter. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Homing" - -\end_inset - -Homing -\end_layout - -\begin_layout Subsection -Overview -\end_layout - -\begin_layout Standard -Homing seems simple enough - just move each joint to a known location, and - set EMC's internal variables accordingly. - However, different machines have different requirements, and homing is - actually quite complicated. -\end_layout - -\begin_layout Standard -In EMC2, homing is done in free mode. - The core of the homing algorithm is a state machine contained in the function - -\begin_inset Quotes eld -\end_inset - -do_homing() -\begin_inset Quotes erd -\end_inset - -, which in turn makes use of the free mode trajectory planner. - Homing does not use kinematics or the coordinated trajectory planner. -\end_layout - -\begin_layout Subsection -Homing Sequence -\end_layout - -\begin_layout Standard -Figure -\begin_inset LatexCommand ref -reference "fig:motion-homing-sequence-diagram" - -\end_inset - - shows four possible homing sequences, along with the associated configuration - parameters. - For a more detailed description of what each configuration parameter does, - see the following section. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename emc2-motion-homing-diag.ps - width 7in - height 9in - keepAspectRatio - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:motion-homing-sequence-diagram" - -\end_inset - -Homing Sequences -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Configuration -\end_layout - -\begin_layout Standard -There are six pieces of information that determine exactly how the home - sequence behaves. - They are stored in the joint structure, and each joint is configured independen -tly. -\end_layout - -\begin_layout Subsubsection -home_search_vel -\end_layout - -\begin_layout Standard -'home_search_vel' is a member of the joint structure (as defined in motion.h). - The default value is zero. - A value of zero causes EMC to assume that there is no home switch. - The search and latch stages of homing are skipped, EMC declares the current - position to be -\begin_inset Quotes eld -\end_inset - -home_offset -\begin_inset Quotes erd -\end_inset - -, and does a rapid to -\begin_inset Quotes eld -\end_inset - -home -\begin_inset Quotes erd -\end_inset - - if -\begin_inset Quotes eld -\end_inset - -home -\begin_inset Quotes erd -\end_inset - - is not equal to -\begin_inset Quotes eld -\end_inset - -home_offset -\begin_inset Quotes erd -\end_inset - -. - -\end_layout - -\begin_layout Standard -If 'home_search_vel' is non-zero, then EMC assumes that there is a home - switch. - It begins searching for the home switch by moving in the direction specified - by the sign of 'home_search_vel', at a speed determined by its absolute - value. - When the home switch is detected, the joint will stop as fast as possible, - but there will always be some overshoot. - The amount of overshoot depends on the speed. - If it is too high, the joint might overshoot enough to hit a limit switch - or crash into the end of travel. - On the other hand, if 'home_search_vel' is too low, homing can take a long - time. -\end_layout - -\begin_layout Subsubsection -home_latch_vel -\end_layout - -\begin_layout Standard -'home_latch_vel' is also a member of the joint structure. - It specifies the speed and direction that EMC uses when it makes its final - accurate determination of the home switch and index pulse location. - It will usually be slower than the search velocity to maximize accuracy. - If search_vel and latch_vel have the same sign, then the latch phase is - done while moving in the same direction as the search phase. - (In that case, EMC first backs off the switch, before moving towards it - again at the latch velocity.) If search_vel and latch_vel have opposite - signs, the latch phase is done while moving in the opposite direction from - the search phase. - That means EMC will latch the first pulse after it moves off the switch. - If 'search_vel' is zero, the latch phase is skipped and this parameter - is ignored. - If 'search_vel' is non-zero and this parameter is zero, it is an error - and the homing operation will fail. - The default value is zero. -\end_layout - -\begin_layout Subsubsection -home_final_vel -\end_layout - -\begin_layout Standard -'home_final_vel' is also a member of the joint structure. - It specifies the speed that EMC uses when it makes its move from HOME_OFFSET - to the HOME position. - If the HOME_FINAL_VEL is missing from the ini file, then the maximum joint - speed is used to make this move. -\end_layout - -\begin_layout Subsubsection -home_ignore_limits -\end_layout - -\begin_layout Standard -'home_ignore_limits' is a single bit within the joint structure member 'home_fla -gs'. - This flag determines whether EMC will ignore the limit switch inputs. - Some machine configurations do not use a separate home switch, instead - they route one of the limit switch signals to the home switch input as - well. - In this case, EMC needs to ignore that limit during homing. - The default value for this parameter is OFF. -\end_layout - -\begin_layout Subsubsection -home_use_index -\end_layout - -\begin_layout Standard -'home_use_index' is a single bit within the joint structure member 'home_flags'. - It specifies whether or not there is an index pulse. - If the flag is true, EMC will latch on the rising edge of the index pulse. - If false, EMC will latch on either the rising or falling edge of the home - switch (depending on the signs of search_vel and latch_vel). - If 'search_vel' is zero, the latch phase is skipped and this parameter - is ignored. - The default value is OFF. -\end_layout - -\begin_layout Subsubsection -home_offset -\end_layout - -\begin_layout Standard -'home_offset' is a member of the joint structure. - It contains the location of the home switch or index pulse, in joint coordinate -s. - It can also be treated as the distance between the point where the switch - or index pulse is latched and the zero point of the joint. - After detecting the index pulse, EMC sets the joint coordinate of that - point to -\begin_inset Quotes eld -\end_inset - -home_offset -\begin_inset Quotes erd -\end_inset - -. - The default value is zero. -\end_layout - -\begin_layout Subsubsection -home -\end_layout - -\begin_layout Standard -'home' is a member of the joint structure. - It is the position that the joint will go to upon completion of the homing - sequence. - After detecting the index pulse, and setting the coordinate of that point - to -\begin_inset Quotes eld -\end_inset - -home_offset -\begin_inset Quotes erd -\end_inset - -, EMC makes a move to "home" as the final step of the homing process. - The default value is zero. - Note that even if this parameter is the same as -\begin_inset Quotes eld -\end_inset - -home_offset -\begin_inset Quotes erd -\end_inset - -, the axis will slightly overshoot the latched position as it stops. - Therefore there will always be a small move at this time (unless search_vel - is zero, and the entire search/latch stage was skipped). - This final move will be made at the joint's maximum velocity. - Since the axis is now homed, there should be no risk of crashing the machine, - and a rapid move is the quickest way to finish the homing sequence. - -\begin_inset Foot -status collapsed - -\begin_layout Standard -The distinction between 'home' and 'home_offset' is not as clear as I would - like. - I intend to make a small drawing and example to help clarify it. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -clearpage -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Backlash and Screw Error Compensation -\end_layout - -\begin_layout Chapter -Task controller (EMCTASK) -\end_layout - -\begin_layout Chapter -IO controller (EMCIO) -\end_layout - -\begin_layout Chapter -User Interfaces -\end_layout - -\begin_layout Chapter -libnml -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -libnml is derived from the NIST rcslib without all the multi-platform support. - Many of the wrappers around platform specific code has been removed along - with much of the code that is not required by emc2. - It is hoped that sufficient compatibility remains with rcslib so that applicati -ons can be implemented on non-Linux platforms and still be able to communicate - with emc2. -\end_layout - -\begin_layout Standard -This chapter is not intended to be a definitive guide to using libnml (or - rcslib), instead, it will eventually provide an overview of each C++ class - and their member functions. - Initially, most of these notes will be random comments added as the code - scrutinized and modified. -\end_layout - -\begin_layout Section -LinkedList -\end_layout - -\begin_layout Standard -Base class to maintain a linked list. - This is one of the core building blocks used in passing NML messages and - assorted internal data structures. -\end_layout - -\begin_layout Section -LinkedListNode -\end_layout - -\begin_layout Standard -Base class for producing a linked list - Purpose, to hold pointers to the - previous and next nodes, pointer to the data, and the size of the data. -\end_layout - -\begin_layout Standard -No memory for data storage is allocated. -\end_layout - -\begin_layout Section -SharedMemory -\end_layout - -\begin_layout Standard -Provides a block of shared memory along with a semaphore (inherited from - the Semaphore class). - Creation and destruction of the semaphore is handled by the SharedMemory - constructor and destructor. -\end_layout - -\begin_layout Section -ShmBuffer -\end_layout - -\begin_layout Standard -Class for passing NML messages between local processes using a shared memory - buffer. - Much of internal workings are inherited from the CMS class. -\end_layout - -\begin_layout Section -Timer -\end_layout - -\begin_layout Standard -The Timer class provides a periodic timer limited only by the resolution - of the system clock. - If, for example, a process needs to be run every 5 seconds regardless of - the time taken to run the process, the following code snippet demonstrates - how : -\end_layout - -\begin_layout LyX-Code -main() -\end_layout - -\begin_layout LyX-Code -{ -\end_layout - -\begin_layout LyX-Code - timer = new Timer(5.0); /* Initialize a timer with a 5 second loop - */ -\end_layout - -\begin_layout LyX-Code - while(0) { -\end_layout - -\begin_layout LyX-Code - /* Do some process */ -\end_layout - -\begin_layout LyX-Code - timer.wait(); /* Wait till the next 5 second interval */ -\end_layout - -\begin_layout LyX-Code - } -\end_layout - -\begin_layout LyX-Code - delete timer; -\end_layout - -\begin_layout LyX-Code -} -\end_layout - -\begin_layout Section -Semaphore -\end_layout - -\begin_layout Standard -The Semaphore class provides a method of mutual exclusions for accessing - a shared resource. - The function to get a semaphore can either block until access is available, - return after a timeout, or return immediately with or without gaining the - semaphore. - The constructor will create a semaphore or attach to an existing one if - the ID is already in use. -\end_layout - -\begin_layout Standard -The Semaphore::destroy() must be called by the last process only. -\end_layout - -\begin_layout Section -CMS -\end_layout - -\begin_layout Standard -At the heart of libnml is the CMS class, it contains most of the functions - used by libnml and ultimately NML. - Many of the internal functions are overloaded to allow for specific hardware - dependent methods of data passing. - Ultimately, everything revolves around a central block of memory (referred - to as the -\begin_inset Quotes eld -\end_inset - -message buffer -\begin_inset Quotes erd -\end_inset - - or just -\begin_inset Quotes eld -\end_inset - -buffer -\begin_inset Quotes erd -\end_inset - -). - This buffer may exist as a shared memory block accessed by other CMS/NML - processes, or a local and private buffer for data being transferred by - network or serial interfaces. -\end_layout - -\begin_layout Standard -The buffer is dynamically allocated at run time to allow for greater flexibility - of the CMS/NML sub-system. - The buffer size must be large enough to accommodate the largest message, - a small amount for internal use and allow for the message to be encoded - if this option is chosen (encoded data will be covered later). - Figure -\begin_inset LatexCommand ref -reference "fig:CMS buffer" - -\end_inset - - is an internal view of the buffer space. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename CMS_buffer.eps - width 3in - height 4in - keepAspectRatio - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:CMS buffer" - -\end_inset - -CMS buffer -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The CMS base class is primarily responsible for creating the communications - pathways and interfacing to the O.S. -\end_layout - -\begin_layout Chapter -NML Notes /* FIX ME */ -\end_layout - -\begin_layout Standard - -\shape italic -A collection of random notes and thought whilst studying the libnml and - rcslib code. -\end_layout - -\begin_layout Standard - -\shape italic -Much of this needs to be edited and re-written in a coherent manner before - publication. -\end_layout - -\begin_layout Section -Configuration file format -\end_layout - -\begin_layout Standard -NML configuration consists of two types of line formats. - One for Buffers, and a second for Processes that connect to the buffers. -\end_layout - -\begin_layout Subsection -Buffer line -\end_layout - -\begin_layout Standard -The original NIST format of the buffer line is: -\end_layout - -\begin_layout Standard -B name type host size neut RPC# buffer# max_procs key [type specific configs] -\end_layout - -\begin_layout Itemize -B identifies this line as a Buffer configuration. -\end_layout - -\begin_layout Itemize -name is the identifier of the buffer. -\end_layout - -\begin_layout Itemize -type describes the buffer type - SHMEM, LOCMEM, FILEMEM, PHANTOM, or GLOBMEM. -\end_layout - -\begin_layout Itemize -host is either an IP address or host name for the NML server -\end_layout - -\begin_layout Itemize -size is the size of the buffer -\end_layout - -\begin_layout Itemize -neut a boolean to indicate if the data in the buffer is encoded in a machine - independent format, or raw. -\end_layout - -\begin_layout Itemize -RPC# Obsolete - Place holder retained for backward compatibility only. -\end_layout - -\begin_layout Itemize -buffer# A unique ID number used if a server controls multiple buffers. -\end_layout - -\begin_layout Itemize -max_procs is the maximum processes allowed to connect to this buffer. -\end_layout - -\begin_layout Itemize -key is a numerical identifier for a shared memory buffer -\end_layout - -\begin_layout Subsection -Type specific configs -\end_layout - -\begin_layout Standard -The buffer type implies additional configuration options whilst the host - operating system precludes certain combinations. - In an attempt to distill published documentation in to a coherent format, - only the SHMEM buffer type will be covered. -\end_layout - -\begin_layout Itemize -mutex=os_sem - default mode for providing semaphore locking of the buffer - memory. -\end_layout - -\begin_layout Itemize -mutex=none - Not used -\end_layout - -\begin_layout Itemize -mutex=no_interrupts - not applicable on a Linux system -\end_layout - -\begin_layout Itemize -mutex=no_switching - not applicable on a Linux system -\end_layout - -\begin_layout Itemize -mutex=mao split - Splits the buffer in to half (or more) and allows one - process to access part of the buffer whilst a second process is writing - to another part. -\end_layout - -\begin_layout Itemize -TCP=(port number) - Specifies which network port to use. -\end_layout - -\begin_layout Itemize -UDP=(port number) - ditto -\end_layout - -\begin_layout Itemize -STCP=(port number) - ditto -\end_layout - -\begin_layout Itemize -serialPortDevName=(serial port) - Undocumented. -\end_layout - -\begin_layout Itemize -passwd=file_name.pwd - Adds a layer of security to the buffer by requiring - each process to provide a password. -\end_layout - -\begin_layout Itemize -bsem - NIST documentation implies a key for a blocking semaphore, and if - bsem=-1, blocking reads are prevented. -\end_layout - -\begin_layout Itemize -queue - Enables queued message passing. -\end_layout - -\begin_layout Itemize -ascii - Encode messages in a plain text format -\end_layout - -\begin_layout Itemize -disp - Encode messages in a format suitable for display (???) -\end_layout - -\begin_layout Itemize -xdr - Encode messages in External Data Representation. - (see rpc/xdr.h for details). -\end_layout - -\begin_layout Itemize -diag - Enables diagnostics stored in the buffer (timings and byte counts - ?) -\end_layout - -\begin_layout Subsection -Process line -\end_layout - -\begin_layout Standard -The original NIST format of the process line is: -\end_layout - -\begin_layout Standard -P name buffer type host ops server timeout master c_num [type specific configs] -\end_layout - -\begin_layout Itemize -P identifies this line as a Process configuration. -\end_layout - -\begin_layout Itemize -name is the identifier of the process. -\end_layout - -\begin_layout Itemize -buffer is one of the buffers defined elsewhere in the config file. -\end_layout - -\begin_layout Itemize -type defines whether this process is local or remote relative to the buffer. -\end_layout - -\begin_layout Itemize -host specifies where on the network this process is running. -\end_layout - -\begin_layout Itemize -ops gives the process read only, write only, or read/write access to the - buffer. -\end_layout - -\begin_layout Itemize -server specifies if this process will running a server for this buffer. -\end_layout - -\begin_layout Itemize -timeout sets the timeout characteristics for accesses to the buffer. -\end_layout - -\begin_layout Itemize -master indicates if this process is responsible for creating and destroying - the buffer. -\end_layout - -\begin_layout Itemize -c_num an integer between zero and (max_procs -1) -\end_layout - -\begin_layout Subsection -Configuration Comments -\end_layout - -\begin_layout Standard -Some of the configuration combinations are invalid, whilst others imply - certain constraints. - On a Linux system, GLOBMEM is obsolete, whilst PHANTOM is only really useful - in the testing stage of an application, likewise for FILEMEM. - LOCMEM is of little use for a multi-process application, and only offers - limited performance advantages over SHMEM. - This leaves SHMEM as the only buffer type to use with emc2. -\end_layout - -\begin_layout Standard -The neut option is only of use in a multi-processor system where different - (and incompatible) architectures are sharing a block of memory. - The likelihood of seeing a system of this type outside of a museum or research - establishment is remote and is only relevant to GLOBMEM buffers. -\end_layout - -\begin_layout Standard -The RPC number is documented as being obsolete and is retained only for - compatibility reasons. -\end_layout - -\begin_layout Standard -With a unique buffer name, having a numerical identity seems to be pointless. - Need to review the code to identify the logic. - Likewise, the key field at first appears to be redundant, and it could - be derived from the buffer name. -\end_layout - -\begin_layout Standard -The purpose of limiting the number of processes allowed to connect to any - one buffer is unclear from existing documentation and from the original - source code. - Allowing unspecified multiple processes to connect to a buffer is no more - difficult to implement. -\end_layout - -\begin_layout Standard -The mutex types boil down to one of two, the default -\begin_inset Quotes eld -\end_inset - -os_sem -\begin_inset Quotes erd -\end_inset - - or -\begin_inset Quotes eld -\end_inset - -mao split -\begin_inset Quotes erd -\end_inset - -. - Most of the NML messages are relatively short and can be copied to or from - the buffer with minimal delays, so split reads are not essential. -\end_layout - -\begin_layout Standard -Data encoding is only relevant when transmitted to a remote process - Using - TCP or UDP implies XDR encoding. - Whilst ascii encoding may have some use in diagnostics or for passing data - to an embedded system that does not implement NML. -\end_layout - -\begin_layout Standard -UDP protocols have fewer checks on data and allows a percentage of packets - to be dropped. - TCP is more reliable, but is marginally slower. -\end_layout - -\begin_layout Standard -If emc2 is to be connected to a network, one would hope that it is local - and behind a firewall. - About the only reason to allow access to emc2 via the Internet would be - for remote diagnostics - This can be achieved far more securely using other - means, perhaps by a web interface. -\end_layout - -\begin_layout Standard -The exact behavior when timeout is set to zero or a negative value is unclear - from the NIST documents. - Only INF and positive values are mentioned. - However, buried in the source code of rcslib, it is apparent that the following - applies: -\end_layout - -\begin_layout Standard -timeout > 0 Blocking access until the timeout interval is reached or access - to the buffer is available. -\end_layout - -\begin_layout Standard -timeout = 0 Access to the buffer is only possible if no other process is - reading or writing at the time. -\end_layout - -\begin_layout Standard -timeout < 0 or INF Access is blocked until the buffer is available. -\end_layout - -\begin_layout Section -NML base class /* FIX ME */ -\end_layout - -\begin_layout Standard - -\shape italic -Expand on the lists and the relationship between NML, NMLmsg, and the lower - level cms classes. -\end_layout - -\begin_layout Standard -Not to be confused with NMLmsg, RCS_STAT_MSG, or RCS_CMD_MSG. -\end_layout - -\begin_layout Standard -NML is responsible for parsing the config file, configuring the cms buffers - and is the mechanism for routing messages to the correct buffer(s). - To do this, NML creates several lists for: -\end_layout - -\begin_layout Itemize -cms buffers created or connected to. -\end_layout - -\begin_layout Itemize -processes and the buffers they connect to -\end_layout - -\begin_layout Itemize -a long list of format functions for each message type -\end_layout - -\begin_layout Standard -This last item is probably the nub of much of the malignment of libnml/rcslib - and NML in general. - Each message that is passed via NML requires a certain amount of information - to be attached in addition to the actual data. - To do this, several formatting functions are called in sequence to assemble - fragments of the overall message. - The format functions will include NML_TYPE, MSG_TYPE, in addition to the - data declared in derived NMLmsg classes. - Changes to the order in which the formatting functions are called and also - the variables passed will break compatibility with rcslib if messed with - - -\shape italic -There are reasons for maintaining rcslib compatibility, and good reasons - for messing with the code. - The question is, which set of reasons are overriding ? -\end_layout - -\begin_layout Subsection -NML internals -\end_layout - -\begin_layout Subsubsection -NML constructor -\end_layout - -\begin_layout Standard -NML::NML() parses the config file and stores it in a linked list to be passed - to cms constructors in single lines. - It is the function of the NML constructor to call the relevant cms constructor - for each buffer and maintain a list of the cms objects and the processes - associated with each buffer. -\end_layout - -\begin_layout Standard -It is from the pointers stored in the lists that NML can interact with cms - and why Doxygen fails to show the real relationships involved. -\end_layout - -\begin_layout Standard -(side note) The config is stored in memory before passing a pointer to a - specific line to the cms constructor. - The cms constructor then parses the line again to extract a couple of variables... - It would make more sense to do ALL the parsing and save the variables in - a struct that is passed to the cms constructor - This would eliminate string - handling and reduce duplicate code in cms.... -\end_layout - -\begin_layout Subsubsection -NML read/write -\end_layout - -\begin_layout Standard -Calls to NML::read and NML::write both perform similar tasks in so much - as processing the message - The only real variation is in the direction - of data flow. -\end_layout - -\begin_layout Standard -A call to the read function first gets data from the buffer, then calls - format_output(), whilst a write function would call format_input() before - passing the data to the buffer. - It is in format_xxx() that the work of constructing or deconstructing the - message takes place. - A list of assorted functions are called in turn to place various parts - of the NML header (not to be confused with the cms header) in the right - order - The last function called is emcFormat() in emc.cc. -\end_layout - -\begin_layout Subsubsection -NMLmsg and NML relationships -\end_layout - -\begin_layout Standard -NMLmsg is the base class from which all message classes are derived. - Each message class must have a unique ID defined (and passed to the constructor -) and also an update(*cms) function. - The update() will be called by the NML read/write functions when the NML - formatter is called - The pointer to the formatter will have been declared - in the NML constructor at some point. - By virtue of the linked lists NML creates, it is able to select cms pointer - that is passed to the formatter and therefor which buffer is to be used. -\end_layout - -\begin_layout Section -Adding custom NML commands -\end_layout - -\begin_layout Standard -EMC2 is pretty awesome, but some parts need some tweaking. - As you know communication is done through NML channels, the data sent through - such a channel is one of the classes defined in emc.hh (implemented in emc.cc). - If somebody needs a message type that doesn't exist, he should follow these - steps to add a new one. - (The Message I added in the example is called EMC_IO_GENERIC (inherits - EMC_IO_CMD_MSG (inherits RCS_CMD_MSG))) -\end_layout - -\begin_layout Enumerate -add the definition of the EMC_IO_GENERIC class to emc2/src/emc/nml_intf/emc.hh -\end_layout - -\begin_layout Enumerate -add the type define: #define EMC_IO_GENERIC_TYPE ((NMLTYPE) 1605) - (I chose - 1605, because it was available) to emc2/src/emc/nml_intf/emc.hh -\end_layout - -\begin_layout Enumerate -add case EMC_IO_GENERIC_TYPE to emcFormat in emc2/src/emc/nml_intf/emc.cc -\end_layout - -\begin_layout Enumerate -add case EMC_IO_GENERIC_TYPE to emc_symbol_lookup in emc2/src/emc/nml_intf/emc.cc -\end_layout - -\begin_layout Enumerate -add EMC_IO_GENERIC::update function to emc2/src/emc/nml_intf/emc.cc -\end_layout - -\begin_layout Standard -recompile, and the new message should be there. - The next part is to send such messages from somewhere, and receive them - in another place, and do some stuff with it. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/code/NML_Messages.lyx b/docs/src/code/NML_Messages.lyx deleted file mode 100644 index 8ad247922..000000000 --- a/docs/src/code/NML_Messages.lyx +++ /dev/null @@ -1,2840 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language english -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -NML Messages -\layout Section - -EMC OPERATOR -\layout Subsection - -EMC_OPERATOR_ERROR_TYPE -\layout Standard - -Description, NML Type: textual error message to the operator, 11 -\layout Standard - -Written From: emccanon.cc, iosh.cc -\layout Standard - -Read To: emctaskmain.cc, emcsh.cc -\layout Standard - -Parameter, Type: [error, char[LINELEN]] -\layout Subsection - -EMC_OPERATOR_TEXT_TYPE -\layout Standard - -Description, NML Type: textual information message to the operator, 12 -\layout Standard - -Written From: emctaskmain.cc -\layout Standard - -Read To: emctaskmain.cc, emcsh.cc -\layout Standard - -Parameter, Type: [text, char[LINELEN]] -\layout Subsection - -EMC_OPERATOR_DISPLAY_TYPE -\layout Standard - -Description, NML Type: URL or filename of a document to display, 13 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emctaskmain.cc, emcsh.cc -\layout Standard - -Parameter, Type: [display, char[LINELEN]] -\layout Section - -EMC NULL, SET, DEBUG, & SYSTEM -\layout Subsection - -EMC_NULL_TYPE -\layout Standard - -Description, NML Type: used to reset serial number to original, 21 -\layout Standard - -Written From: thisQuit (emcsh.cc) -\layout Standard - -Read To: emctaskmain.cc -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_SET_DEBUG_TYPE -\layout Standard - -Description, NML Type: sets debug level, 22 -\layout Standard - -Written From: emcIoSetDebug (iotaskintf.cc), sendDebug (emcsh.cc) -\layout Standard - -Read To: emctaskmain.cc, ioControl.cc -\layout Standard - -Parameter, Type: [debug, int] -\layout Subsection - -EMC_SYSTEM_CMD_TYPE -\layout Standard - -Description, NML Type: execute a system command, 30 -\layout Standard - -Written From: user_defined_add_m_code (emctask.cc) -\layout Standard - -Read To: emcSystemCmd (emctaskmain.cc) -\layout Standard - -Parameter, Type: [string, char[LINELEN]] -\layout Section - -EMC AXIS -\layout Subsection - -EMC_AXIS_SET_AXIS_TYPE -\layout Standard - -Description, NML Type: axis type to linear or angular, 101 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [axisType, unsigned char] - -\layout Subsection - -EMC_AXIS_SET_UNITS_TYPE -\layout Standard - -Description, NML Type: units conversion factor, 102 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [units, double] -\layout Subsection - -EMC_AXIS_SET_GAINS_TYPE -\layout Standard - -Description, NML Type: Set the PID gains, 103 -\layout Standard - -Obs: currently not used in emc2, needs to go to HAL -\layout Standard - -Written From: none -\layout Standard - -Read To: emctaskmain.cc -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [p, double] [i, double] - [d, double] [ff0, double] [ff1, double] [ff2, double] [backlash, double] - [bias, double] [maxError, double] -\layout Subsection - -EMC_AXIS_SET_CYCLE_TIME_TYPE -\layout Standard - -Description, NML Type: cycle time for the servo task, 104 -\layout Standard - -Written From: none -\layout Standard - -Read To: emctaskmain.cc -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [cycleTime, double] -\layout Subsection - -EMC_AXIS_SET_INPUT_SCALE_TYPE -\layout Standard - -Description, NML Type: scale factor and offset for the position input, 105 -\layout Standard - -Obs: currently if 0'ed, used only directly from iniaxis -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetInputScale - (minimill|bridgeporttaskintf.cc) which sends EMCMOT_SET_INPUT_SCALE -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [scale, double] [offset, - double] -\layout Subsection - -EMC_AXIS_SET_OUTPUT_SCALE_TYPE -\layout Standard - -Description, NML Type: scale factor and offset for the position output, - 106 -\layout Standard - -Obs: currently if 0'ed, used only directly from iniaxis -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [scale, double] [offset, - double] -\layout Subsection - -EMC_AXIS_SET_MIN_POSITION_LIMIT_TYPE -\layout Standard - -Description, NML Type: sets min limit, 107 -\layout Standard - -Obs: also handled by iniaxis which directly calls emcAxisSetMinPositionLimit -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetMinPositionLimit - (taskintf.cc) which sends EMCMOT_SET_POSITION_LIMITS -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] -\layout Subsection - -EMC_AXIS_SET_MAX_POSITION_LIMIT_TYPE -\layout Standard - -Description, NML Type: sets max limit, 108 -\layout Standard - -Obs: also handled by iniaxis which directly calls emcAxisSetMaxPositionLimit -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetMaxPositionLimit - (taskintf.cc) which sends EMCMOT_SET_POSITION_LIMITS -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] -\layout Subsection - -EMC_AXIS_SET_MIN_OUTPUT_LIMIT_TYPE -\layout Standard - -Description, NML Type: -, 109 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] -\layout Subsection - -EMC_AXIS_SET_MAX_OUTPUT_LIMIT_TYPE -\layout Standard - -Description, NML Type: -, 110 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] -\layout Subsection - -EMC_AXIS_SET_FERROR_TYPE -\layout Standard - -Description, NML Type: sets max following error, 111 -\layout Standard - -Obs: also handled by iniaxis which directly calls emcAxisSetFerror -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetFerror (taskintf.cc) - which sends EMCMOT_SET_MAX_FERROR -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [ferror, double] -\layout Subsection - -EMC_AXIS_SET_HOMING_VEL_TYPE -\layout Standard - -Description, NML Type: -, 112 -\layout Standard - -Obs: in EMC2 those are SET_HOMING_PARAMS double home, double offset, double - search_vel, double latch_vel, int use_index, int ignore_limits, -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [ferror, double] -\layout Subsection - -EMC_AXIS_SET_HOME_TYPE -\layout Standard - -Description, NML Type: -, 113 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [homingVel, double] -\layout Subsection - -EMC_AXIS_SET_HOME_OFFSET_TYPE -\layout Standard - -Description, NML Type: -, 114 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [home, double] -\layout Subsection - -EMC_AXIS_SET_MIN_FERROR_TYPE -\layout Standard - -Description, NML Type: sets min following error, 115 -\layout Standard - -Obs: also handled by iniaxis which directly calls emcAxisSetMinFerror -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetMinFerror (taskintf. -cc) which sends EMCMOT_SET_MIN_FERROR -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [offset, double] -\layout Subsection - -EMC_AXIS_SET_MAX_VELOCITY_TYPE -\layout Standard - -Description, NML Type: sets max. - velocity, 116 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [vel, double] -\layout Subsection - -EMC_AXIS_INIT_TYPE -\layout Standard - -Description, NML Type: -, 118 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_HALT_TYPE -\layout Standard - -Description, NML Type: -, 119 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisHalt (taskintf.cc) -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_ABORT_TYPE -\layout Standard - -Description, NML Type: aborts motion on an axis (e.g. - GUI jogs), 120 -\layout Standard - -Obs: used from the GUI when stopping a manual jog -\layout Standard - -Written From: sendJogStop (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisAbort (taskintf.cc) - which sends EMCMOT_AXIS_ABORT -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_ENABLE_TYPE -\layout Standard - -Description, NML Type: enables axis, 121 -\layout Standard - -Obs: not used from tkemc & mini -\layout Standard - -Written From: sendAxisEnable (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisEnable (taskintf.cc) - which sends EMCMOT_ENABLE_AMPLIFIER -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_DISABLE_TYPE -\layout Standard - -Description, NML Type: disable axis, 122 -\layout Standard - -Obs: not used from tkemc & mini -\layout Standard - -Written From: sendAxisDisable (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisDisable (taskintf.cc) - which sends EMCMOT_DISABLE_AMPLIFIER -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_HOME_TYPE -\layout Standard - -Description, NML Type: home an axis at current position, 123 -\layout Standard - -Obs: used from tkemc & mini through emc_home -\layout Standard - -Written From: sendHome (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisHome (taskintf.cc) - which sends EMCMOT_HOME -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_JOG_TYPE -\layout Standard - -Description, NML Type: jogs an axis continuosly, 124 -\layout Standard - -Obs: used on jogging -\layout Standard - -Written From: sendJogCont (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisJog (taskintf.cc) - which sends EMCMOT_JOG_CONT -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [vel, double] -\layout Subsection - -EMC_AXIS_INCR_JOG_TYPE -\layout Standard - -Description, NML Type: jogs an axis with an increment, 125 -\layout Standard - -Obs: used on jogging -\layout Standard - -Written From: sendJogIncr (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisIncrJog (taskintf.cc) - which sends EMCMOT_JOG_INCR -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [incr, double] [vel, - double] -\layout Subsection - -EMC_AXIS_ABS_JOG_TYPE -\layout Standard - -Description, NML Type: jogs an axis with an absolute value, 126 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisAbsJog (taskintf.cc) - which sends EMCMOT_JOG_ABS -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [pos, double] [vel, double] - -\layout Subsection - -EMC_AXIS_ACTIVATE_TYPE -\layout Standard - -Description, NML Type: -, 127 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_DEACTIVATE_TYPE -\layout Standard - -Description, NML Type: -, 128 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_OVERRIDE_LIMITS_TYPE -\layout Standard - -Description, NML Type: overrides min/max limits during homing, 129 -\layout Standard - -Obs: used from tkemc & mini through emc_override_limit -\layout Standard - -Written From: sendOverrideLimits (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisOverrideLimits - (taskintf.cc) which sends EMCMOT_OVERRIDE_LIMITS -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -\layout Subsection - -EMC_AXIS_SET_OUTPUT_TYPE -\layout Standard - -Description, NML Type: sets an DAC output value, 130 -\layout Standard - -Obs: currently not used in emc2, needs to go to HAL -\layout Standard - -Written From: sendAxisSetOutput (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetOutput (taskintf.cc) - which sends EMCMOT_DAC_OUT -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [output, double] -\layout Subsection - -EMC_AXIS_LOAD_COMP_TYPE -\layout Standard - -Description, NML Type: loads compensation values from a file, 131 -\layout Standard - -Obs: currently usrmotLoadComp if 0'ed in emc2 -\layout Standard - -Written From: sendAxisLoadComp (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisLoadComp (minimill|bri -dgeporttaskintf.cc) which calls usrmotLoadComp -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [file, char[LINELEN]] - -\layout Subsection - -EMC_AXIS_ALTER_TYPE -\layout Standard - -Description, NML Type: loads the alter value to modify the axis position, - 132 -\layout Standard - -Written From: sendAxisAlter (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisAlter (taskintf.cc) - which calls usrmotAlter -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [alter, double] -\layout Subsection - -EMC_AXIS_SET_STEP_PARAMS_TYPE -\layout Standard - -Description, NML Type: was used to set step related params, 133 -\layout Standard - -Obs: currently not used in emc2, needs to go to HAL (maybe directly from - the ini, not through NML) -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcAxisSetStepParams - (taskintf.cc) which sends EMCMOT_SET_STEP_PARAMS -\layout Standard - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [setup_time, double] - [hold_time, double] -\layout Subsection - -EMC_AXIS_STAT_TYPE -\layout Standard - -Description, NML Type: status for axis, not sent as a message but used as - is, 199 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [a HUGE load of params] -\layout Section - -EMC TRAJ -\layout Subsection - -EMC_TRAJ_SET_AXES_TYPE -\layout Standard - -Description, NML Type: -, 201 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [axes, int] -\layout Subsection - -EMC_TRAJ_SET_UNITS_TYPE -\layout Standard - -Description, NML Type: -, 202 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [linearUnits, double] [angularUnits, double] -\layout Subsection - -EMC_TRAJ_SET_CYCLE_TIME_TYPE -\layout Standard - -Description, NML Type: -, 203 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [cycleTime, double] -\layout Subsection - -EMC_TRAJ_SET_MODE_TYPE -\layout Standard - -Description, NML Type: -, 204 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [mode, enum EMC_TRAJ_MODE_ENUM] -\layout Subsection - -EMC_TRAJ_SET_VELOCITY_TYPE -\layout Standard - -Description, NML Type: sends a request to set the vel, which is in internal - units/sec, 205 -\layout Standard - -Written From: sendVelMsg (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetVelocity (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_SET_VEL -\layout Standard - -Parameter, Type: [velocity, double] -\layout Subsection - -EMC_TRAJ_SET_ACCELERATION_TYPE -\layout Standard - -Description, NML Type: -, 206 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [acceleration, double] -\layout Subsection - -EMC_TRAJ_SET_MAX_VELOCITY_TYPE -\layout Standard - -Description, NML Type: -, 207 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [velocity, double] -\layout Subsection - -EMC_TRAJ_SET_MAX_ACCELERATION_TYPE -\layout Standard - -Description, NML Type: -, 208 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [acceleration, double] -\layout Subsection - -EMC_TRAJ_SET_SCALE_TYPE -\layout Standard - -Description, NML Type: set the feed override to be the percent value, 209 -\layout Standard - -Obs: used for feed override messages -\layout Standard - -Written From: sendFeedOverride (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetScale (taskintf.cc) - which sends EMCMOT_SCALE -\layout Standard - -Parameter, Type: [scale, double] -\layout Subsection - -EMC_TRAJ_SET_MOTION_ID_TYPE -\layout Standard - -Description, NML Type: -, 210 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [id, int] -\layout Subsection - -EMC_TRAJ_INIT_TYPE -\layout Standard - -Description, NML Type: -, 211 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_HALT_TYPE -\layout Standard - -Description, NML Type: -, 212 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_ENABLE_TYPE -\layout Standard - -Description, NML Type: -, 213 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_DISABLE_TYPE -\layout Standard - -Description, NML Type: -, 214 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_ABORT_TYPE -\layout Standard - -Description, NML Type: causes traj to abort ?, 215 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajAbort (taskintf.cc) - which sends EMCMOT_ABORT -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_PAUSE_TYPE -\layout Standard - -Description, NML Type: causes traj to pause ?, 216 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajPause (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_PAUSE -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_STEP_TYPE -\layout Standard - -Description, NML Type: -, 217 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_RESUME_TYPE -\layout Standard - -Description, NML Type: causes traj to resume ?, 218 -\layout Standard - -Obs: not used, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajResume (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_RESUME -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_DELAY_TYPE -\layout Standard - -Description, NML Type: sets a delay in the task execution, 219 -\layout Standard - -Obs: used with dwelling -\layout Standard - -Written From: DWELL (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) -\layout Standard - -Parameter, Type: [delay, double] -\layout Subsection - -EMC_TRAJ_LINEAR_MOVE_TYPE -\layout Standard - -Description, NML Type: sends a linear move from the interp to motion, 220 -\layout Standard - -Obs: used -\layout Standard - -Written From: STRAIGHT_TRAVERSE, ARC_FEED (emccanon.cc) -\layout Standard - -Read To: checkInterpList, emcTaskIssueCommand (emctaskmain.cc) calls emcTrajLinea -rMove (minimill | bridgeporttaskintf.cc) which sends EMCMOT_SET_LINE -\layout Standard - -Parameter, Type: [end, EmcPose] -\layout Subsection - -EMC_TRAJ_CIRCULAR_MOVE_TYPE -\layout Standard - -Description, NML Type: sends a circular move from the interp to motion, - 221 -\layout Standard - -Obs: used -\layout Standard - -Written From: ARC_FEED (emccanon.cc) -\layout Standard - -Read To: checkInterpList, emcTaskIssueCommand (emctaskmain.cc) calls emcTrajCircu -larMove (minimill | bridgeporttaskintf.cc) which sends EMCMOT_SET_CIRCLE -\layout Standard - -Parameter, Type: [end, EmcPose] [center, PM_CARTESIAN] [normal, PM_CARTESIAN] - [turn, int] -\layout Subsection - -EMC_TRAJ_SET_TERM_COND_TYPE -\layout Standard - -Description, NML Type: choses between blending or exact path mode, 222 -\layout Standard - -Obs: used, seems the interp knows exact PATH, STOP and BLEND, motion however - knows only BLEND or STOP -\layout Standard - -Written From: SET_MOTION_CONTROL_MODE (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetTermCond (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_TERM_COND_STOP or EMCMOT_TERM_COND_B -LEND -\layout Standard - -Parameter, Type: [cond, int] -\layout Subsection - -EMC_TRAJ_SET_OFFSET_TYPE -\layout Standard - -Description, NML Type: is used for tool length offset, 223 -\layout Standard - -Obs: used, the message could transport more than just Z offset used for - tool length -\layout Standard - -Written From: USE_TOOL_LENGTH_OFFSET (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) remembers the origin offset - into emcStatus->task.origin -\layout Standard - -Parameter, Type: [offset, EmcPose] -\layout Subsection - -EMC_TRAJ_SET_ORIGIN_TYPE -\layout Standard - -Description, NML Type: sets the origin coords ?, 224 -\layout Standard - -Obs: used -\layout Standard - -Written From: SET_ORIGIN_OFFSETS (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) remembers the tool length offset -\layout Standard - -Parameter, Type: [origin, EmcPose] -\layout Subsection - -EMC_TRAJ_SET_HOME_TYPE -\layout Standard - -Description, NML Type: -, 225 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [home, EmcPose] -\layout Subsection - -EMC_TRAJ_SET_PROBE_INDEX_TYPE -\layout Standard - -Description, NML Type: sends the index pin used for probing, 226 -\layout Standard - -Obs: should get obsolete, probin pin should get routed by HAL -\layout Standard - -Written From: sendSetProbeIndex (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetProbeIndex - (minimill | bridgeporttaskintf.cc) which sends EMCMOT_SET_PROBE_INDEX -\layout Standard - -Parameter, Type: [index, int] -\layout Subsection - -EMC_TRAJ_SET_PROBE_POLARITY_TYPE -\layout Standard - -Description, NML Type: sends the polarity for the pin used for probing, - 227 -\layout Standard - -Obs: should get obsolete, probin pin polarity should get routed by HAL -\layout Standard - -Written From: sendSetProbePolarity (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetProbePolarity - (minimill | bridgeporttaskintf.cc) which sends EMCMOT_SET_PROBE_POLARITY -\layout Standard - -Parameter, Type: [polarity, int] -\layout Subsection - -EMC_TRAJ_CLEAR_PROBE_TRIPPED_FLAG_TYPE -\layout Standard - -Description, NML Type: clears the probe tripped, 228 -\layout Standard - -Obs: used -\layout Standard - -Written From: TURN_PROBE_ON (emccanon.cc) sendClearProbeTrippedFlag (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajClearProbeTrippedFlag - (minimill | bridgeporttaskintf.cc) which sends EMCMOT_CLEAR_PROBE_FLAGS -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TRAJ_PROBE_TYPE -\layout Standard - -Description, NML Type: performs a straight probe move, 229 -\layout Standard - -Obs: used -\layout Standard - -Written From: STRAIGHT_PROBE (emccanon.cc) sendProbe (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajProbe (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_PROBE -\layout Standard - -Parameter, Type: [pos, EmcPose] -\layout Subsection - -EMC_TRAJ_SET_TELEOP_ENABLE_TYPE -\layout Standard - -Description, NML Type: sets the traj mode to teleop, 230 -\layout Standard - -Obs: used -\layout Standard - -Written From: sendSetTeleopEnable (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetMode (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_TELEOP -\layout Standard - -Parameter, Type: [enable, int] -\layout Subsection - -EMC_TRAJ_SET_TELEOP_VECTOR_TYPE -\layout Standard - -Description, NML Type: jogs in teleop mode, 231 -\layout Standard - -Obs: used for jogging in teleop mode -\layout Standard - -Written From: sendJogCont (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTrajSetTeleopVector - (minimill | bridgeporttaskintf.cc) which sends EMCMOT_SET_TELEOP_VECTOR -\layout Standard - -Parameter, Type: [vector, EmcPose] -\layout Subsection - -EMC_TRAJ_STAT_TYPE -\layout Standard - -Description, NML Type: status for traj, not sent as a message but used as - is, 299 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [a HUGE load of params -\layout Section - -EMC MOTION -\layout Subsection - -EMC_MOTION_INIT_TYPE -\layout Standard - -Description, NML Type: -, 301 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_MOTION_HALT_TYPE -\layout Standard - -Description, NML Type: -, 302 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_MOTION_ABORT_TYPE -\layout Standard - -Description, NML Type: -, 303 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_MOTION_SET_AOUT_TYPE -\layout Standard - -Description, NML Type: sets an analog output value coordinated with motion, - 304 -\layout Standard - -Obs: emccanon.cc currently lacks this in emc2, not used in emc2, needs to - go to HAL -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcMotionSetAout (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_SET_AOUT -\layout Standard - -Parameter, Type: [index, unsigned char] [start, double] [end, double] [now, - unsigned char] -\layout Subsection - -EMC_MOTION_SET_DOUT_TYPE -\layout Standard - -Description, NML Type: sets an digital output value coordinated with motion, - 305 -\layout Standard - -Obs: emccanon.cc currently lacks this in emc2, not used in emc2, needs to - go to HAL -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcMotionSetDout (minimill - | bridgeporttaskintf.cc) which sends EMCMOT_SET_DOUT -\layout Standard - -Parameter, Type: [index, unsigned char] [start, double] [end, double] -\layout Subsection - -EMC_MOTION_STAT_TYPE -\layout Standard - -Description, NML Type: status for motion, not sent as a message but used - as is, 399 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [heartbeat, unsigned long int] [traj, EMC_TRAJ_STAT] [axis[EMC_ -AXIS_MAX], EMC_AXIS_STAT] -\layout Section - -EMC TASK -\layout Subsection - -EMC_TASK_INIT_TYPE -\layout Standard - -Description, NML Type: calls the Task init(), 501 -\layout Standard - -Obs: not used, emcTaskInit called directly from emctask_startup() -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTaskInit() -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_HALT_TYPE -\layout Standard - -Description, NML Type: -, 502 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_ABORT_TYPE -\layout Standard - -Description, NML Type: aborts task, cleans up, 503 -\layout Standard - -Obs: used on shutdown -\layout Standard - -Written From: sendAbort (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) aborts all -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_SET_MODE_TYPE -\layout Standard - -Description, NML Type: sets current TASK mode, MANUAL, MDI, AUTO, 504 -\layout Standard - -Obs: used for switching the current mode -\layout Standard - -Written From: sendManual sendMdi sendAuto (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTaskSetMode (emcTask.cc) -\layout Standard - -Parameter, Type: [mode, enum EMC_TASK_MODE_ENUM] -\layout Subsection - -EMC_TASK_SET_STATE_TYPE -\layout Standard - -Description, NML Type: , 505 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [state, enum EMC_TASK_STATE_ENUM] -\layout Subsection - -EMC_TASK_PLAN_OPEN_TYPE -\layout Standard - -Description, NML Type: , 506 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [file, char[LINELEN]] -\layout Subsection - -EMC_TASK_PLAN_RUN_TYPE -\layout Standard - -Description, NML Type: , 507 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [line, int] -\layout Subsection - -EMC_TASK_PLAN_READ_TYPE -\layout Standard - -Description, NML Type: , 508 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_EXECUTE_TYPE -\layout Standard - -Description, NML Type: , 509 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [command, char[LINELEN]] -\layout Subsection - -EMC_TASK_PLAN_PAUSE_TYPE -\layout Standard - -Description, NML Type: , 510 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_STEP_TYPE -\layout Standard - -Description, NML Type: , 511 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_RESUME_TYPE -\layout Standard - -Description, NML Type: , 512 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_END_TYPE -\layout Standard - -Description, NML Type: , 513 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_CLOSE_TYPE -\layout Standard - -Description, NML Type: , 514 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_INIT_TYPE -\layout Standard - -Description, NML Type: , 515 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_PLAN_SYNCH_TYPE -\layout Standard - -Description, NML Type: , 516 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TASK_STAT_TYPE -\layout Standard - -Description, NML Type: , 599 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [heartbeat, unsigned long int] [a HUGE load of params -\layout Section - -EMC TOOL -\layout Subsection - -EMC_TOOL_INIT_TYPE -\layout Standard - -Description, NML Type: starts TOOL init, 1101 -\layout Standard - -Obs: used for initializing the IO stuff, should load the tool table too -\layout Standard - -Written From: emcIoInit (iotaskintf.cc) -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TOOL_HALT_TYPE -\layout Standard - -Description, NML Type: stops TOOL, 1102 -\layout Standard - -Obs: used for stopping IO, doesn't actually do anything so far, in EMC1 - it was send to subordinates too (spindle, aux, coolant, lube) -\layout Standard - -Written From: emcIoHalt (iotaskintf.cc) -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TOOL_ABORT_TYPE -\layout Standard - -Description, NML Type: aborts TOOL, 1103 -\layout Standard - -Obs: used for aborting IO, doesn't actually do anything so far, in EMC1 - it was send to subordinates too (spindle, aux, coolant, lube) -\layout Standard - -Written From: emcIoAbort (iotaskintf.cc) -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TOOL_PREPARE_TYPE -\layout Standard - -Description, NML Type: prepares a tool for tool changing, 1104 -\layout Standard - -Obs: loads the prep tool in emcioStatus.tool.toolPrepped, should go to PLC - and make it move the desired tool in the toolchanging position -\layout Standard - -Written From: SELECT_TOOL (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcToolPrepare (iotaskintf.cc) - which sends it to the IO controller -\layout Standard - -Parameter, Type: [tool, int] -\layout Subsection - -EMC_TOOL_LOAD_TYPE -\layout Standard - -Description, NML Type: changes the current tool with the prepared tool, - 1105 -\layout Standard - -Obs: loads the actual tool, makes toolprepped=0 -\layout Standard - -Written From: CHANGE_TOOL (emccanon.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcToolLoad (iotaskintf.cc) - which sends it to the IO controller, main (simIoControl.cc ioControl.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TOOL_UNLOAD_TYPE -\layout Standard - -Description, NML Type: unloads the current tool from the spindle, 1106 -\layout Standard - -Obs: unloads the current tool, not written in EMC2 only read -\layout Standard - -Written From: none -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcToolUnLoad (iotaskintf.cc) - which sends it to the IO controller, main (simIoControl.cc ioControl.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_TOOL_LOAD_TOOL_TABLE_TYPE -\layout Standard - -Description, NML Type: loads the tool table, without this tool comp. - can't be made, 1107 -\layout Standard - -Written From: sendLoadToolTable (emcsh.cc) -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [file, char[LINELEN]] -\layout Subsection - -EMC_TOOL_SET_OFFSET_TYPE -\layout Standard - -Description, NML Type: , 1108 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [tool, int] [length, double] [diameter, double] -\layout Subsection - -EMC_TOOL_STAT_TYPE -\layout Standard - -Description, NML Type: , 1199 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Section - -EMC AUX -\layout Subsection - -EMC_AUX_INIT_TYPE -\layout Standard - -Description, NML Type: , 1201 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_AUX_HALT_TYPE -\layout Standard - -Description, NML Type: , 1202 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_AUX_ABORT_TYPE -\layout Standard - -Description, NML Type: , 1203 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_AUX_DIO_WRITE_TYPE -\layout Standard - -Description, NML Type: , 1204 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [index, int] [value, int] -\layout Subsection - -EMC_AUX_AIO_WRITE_TYPE -\layout Standard - -Description, NML Type: , 1205 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [index, int] [value, double] -\layout Subsection - -EMC_AUX_ESTOP_ON_TYPE -\layout Standard - -Description, NML Type: , 1206 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_AUX_ESTOP_OFF_TYPE -\layout Standard - -Description, NML Type: , 1207 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_AUX_STAT_TYPE -\layout Standard - -Description, NML Type: , 1299 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [estop, int] [estopIn, int] [dout, unsigned char[EMC_AUX_MAX_DO -UT]] [din, unsigned char[EMC_AUX_MAX_DIN]] [aout, double[EMC_AUX_MAX_AOUT]] - [ain, double[EMC_AUX_MAX_AIN]] -\layout Section - -EMC SPINDLE -\layout Subsection - -EMC_SPINDLE_INIT_TYPE -\layout Standard - -Description, NML Type: , 1301 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_HALT_TYPE -\layout Standard - -Description, NML Type: , 1302 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_ABORT_TYPE -\layout Standard - -Description, NML Type: , 1303 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_ON_TYPE -\layout Standard - -Description, NML Type: , 1304 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] -\layout Subsection - -EMC_SPINDLE_OFF_TYPE -\layout Standard - -Description, NML Type: , 1305 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_FORWARD_TYPE -\layout Standard - -Description, NML Type: , 1306 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] -\layout Subsection - -EMC_SPINDLE_REVERSE_TYPE -\layout Standard - -Description, NML Type: , 1307 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] -\layout Subsection - -EMC_SPINDLE_STOP_TYPE -\layout Standard - -Description, NML Type: , 1308 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] -\layout Subsection - -EMC_SPINDLE_INCREASE_TYPE -\layout Standard - -Description, NML Type: , 1309 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] -\layout Subsection - -EMC_SPINDLE_DECREASE_TYPE -\layout Standard - -Description, NML Type: , 1310 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_CONSTANT_TYPE -\layout Standard - -Description, NML Type: , 1311 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_BRAKE_RELEASE_TYPE -\layout Standard - -Description, NML Type: , 1312 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_BRAKE_ENGAGE_TYPE -\layout Standard - -Description, NML Type: , 1313 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_ENABLE_TYPE -\layout Standard - -Description, NML Type: , 1314 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_DISABLE_TYPE -\layout Standard - -Description, NML Type: , 1315 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_SPINDLE_STAT_TYPE -\layout Standard - -Description, NML Type: , 1399 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [speed, double] [direction, int] [brake, int] [increasing, - int] [enabled, int] -\layout Section - -EMC COOLANT -\layout Subsection - -EMC_COOLANT_INIT_TYPE -\layout Standard - -Description, NML Type: initializes the COOLANT controller (currently part - of the IO controller), 1401 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_INIT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_HALT_TYPE -\layout Standard - -Description, NML Type: stops the COOLANT, 1402 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_HALT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_ABORT_TYPE -\layout Standard - -Description, NML Type: aborts the COOLANT, 1403 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_ABORT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_MIST_ON_TYPE -\layout Standard - -Description, NML Type: starts MIST coolant, 1404 -\layout Standard - -Obs: used, written by emccanon.cc -\layout Standard - -Written From: MIST_ON (emccanon.cc) sendMistOn (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcCoolantMistOn (iotaskintf.c -c) which sends it to the IO controller, main (simIoControl.cc ioControl.cc) - iosh.cc -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_MIST_OFF_TYPE -\layout Standard - -Description, NML Type: stops MIST coolant, 1405 -\layout Standard - -Obs: used, written by emccanon.cc -\layout Standard - -Written From: MIST_OFF (emccanon.cc) sendMistOff (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcCoolantMistOff (iotaskintf. -cc) which sends it to the IO controller, main (simIoControl.cc ioControl.cc) - iosh.cc -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_FLOOD_ON_TYPE -\layout Standard - -Description, NML Type: starts FLOOD coolant, 1406 -\layout Standard - -Obs: used, written by emccanon.cc -\layout Standard - -Written From: FLOOD_ON (emccanon.cc) sendFloodOn (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcCoolantFloodOn (iotaskintf. -cc) which sends it to the IO controller, main (simIoControl.cc ioControl.cc) - iosh.cc -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_FLOOD_OFF_TYPE -\layout Standard - -Description, NML Type: stops FLOOD coolant, 1407 -\layout Standard - -Obs: used, written by emccanon.cc -\layout Standard - -Written From: FLOOD_OFF (emccanon.cc) sendFloodOff (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcCoolantFloodOff (iotaskint -f.cc) which sends it to the IO controller, main (simIoControl.cc ioControl.cc) - iosh.cc -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_COOLANT_STAT_TYPE -\layout Standard - -Description, NML Type: status for coolant, not sent as a message but used - as is, 1499 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [mist, int] [flood, int] -\layout Section - -EMC LUBE -\layout Subsection - -EMC_LUBE_INIT_TYPE -\layout Standard - -Description, NML Type: initializes the LUBE controller (currently part of - the IO controller), 1501 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_INIT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LUBE_HALT_TYPE -\layout Standard - -Description, NML Type: stops the LUBE, 1502 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_HALT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LUBE_ABORT_TYPE -\layout Standard - -Description, NML Type: aborts the LUBE, 1503 -\layout Standard - -Obs: not written in emc2, only read, in EMC1 it was sent when TOOL_ABORT - was sent -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LUBE_ON_TYPE -\layout Standard - -Description, NML Type: starts LUBE, 1504 -\layout Standard - -Obs: written only by the GUI's (emcsh.cc) -\layout Standard - -Written From: sendLubeOn (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLubeOn (iotaskintf.cc) - which sends it to the IO controller, main (ioControl.cc simIoControl.cc) - emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LUBE_OFF_TYPE -\layout Standard - -Description, NML Type: stops LUBE, 1505 -\layout Standard - -Obs: written only by the GUI's (emcsh.cc) -\layout Standard - -Written From: sendLubeOff (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLubeOff (iotaskintf.cc) - which sends it to the IO controller, main (ioControl.cc simIoControl.cc) - emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LUBE_STAT_TYPE -\layout Standard - -Description, NML Type: status for LUBE, not sent as a message but used as - is, 1599 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [on, int] [level, int] -\layout Section - -EMC SET -\layout Subsection - -EMC_SET_DIO_INDEX_TYPE -\layout Standard - -Description, NML Type: , 5001 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [value, int] [index, int] -\layout Subsection - -EMC_SET_AIO_INDEX_TYPE -\layout Standard - -Description, NML Type: , 5002 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [value, int] [index, int] -\layout Subsection - -EMC_SET_POLARITY_TYPE -\layout Standard - -Description, NML Type: , 5003 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [value, int] [polarity, int] -\layout Section - -EMC IO -\layout Subsection - -EMC_IO_INIT_TYPE -\layout Standard - -Description, NML Type: , 1601 -\layout Standard - -Obs: not written in emc2, only read -\layout Standard - -Written From: none -\layout Standard - -Read To: main (ioControl.cc simIoControl.cc) emc_io_get_command (iosh.cc) -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_IO_HALT_TYPE -\layout Standard - -Description, NML Type: , 1602 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_IO_ABORT_TYPE -\layout Standard - -Description, NML Type: , 1603 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_IO_SET_CYCLE_TIME_TYPE -\layout Standard - -Description, NML Type: , 1604 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [cycleTime, double] -\layout Subsection - -EMC_IO_STAT_TYPE -\layout Standard - -Description, NML Type: status for IO, not sent as a message but used as - is, 1699 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [heartbeat, unsigned long int] [tool, EMC_TOOL_STAT] [spindle, - EMC_SPINDLE_STAT] [coolant, EMC_COOLANT_STAT] [aux, EMC_AUX_STAT] [lube, - EMC_LUBE_STAT] -\layout Section - -EMC INIT, HALT, & ABORT -\layout Subsection - -EMC_INIT_TYPE -\layout Standard - -Description, NML Type: , 1901 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_HALT_TYPE -\layout Standard - -Description, NML Type: , 1902 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Subsection - -EMC_ABORT_TYPE -\layout Standard - -Description, NML Type: , 1903 -\layout Standard - -Obs: not used -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: -\layout Section - -EMC LOG -\layout Subsection - -EMC_LOG_OPEN_TYPE -\layout Standard - -Description, NML Type: opens the log file, 1904 -\layout Standard - -Obs: not used in emc2, it was used in EMC[1] from emclog.tcl -\layout Standard - -Written From: sendLogOpen (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLogOpen (taskintf.cc) - which sends EMCMOT_OPEN_LOG -\layout Standard - -Parameter, Type: [file, char[LINELEN]] [type, int] [size, int] [skip, int] - [which, int] [triggerType, int] [triggerVar, int] [triggerThreshold, double] - -\layout Subsection - -EMC_LOG_START_TYPE -\layout Standard - -Description, NML Type: starts logging, 1905 -\layout Standard - -Obs: not used in emc2, it was used in EMC[1] from emclog.tcl -\layout Standard - -Written From: sendLogStart (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLogStart (taskintf.cc) - which sends EMCMOT_START_LOG -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LOG_STOP_TYPE -\layout Standard - -Description, NML Type: stops logging, 1906 -\layout Standard - -Obs: not used in emc2, it was used in EMC[1] from emclog.tcl -\layout Standard - -Written From: sendLogStop (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLogStop (taskintf.cc) - which sends EMCMOT_STOP_LOG -\layout Standard - -Parameter, Type: none -\layout Subsection - -EMC_LOG_CLOSE_TYPE -\layout Standard - -Description, NML Type: closes the log file, 1907 -\layout Standard - -Obs: not used in emc2, it was used in EMC[1] from emclog.tcl -\layout Standard - -Written From: sendLogClose (emcsh.cc) -\layout Standard - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcLogClose (taskintf.cc) - which sends EMCMOT_CLOSE_LOG -\layout Standard - -Parameter, Type: none -\layout Section - -EMC STAT -\layout Subsection - -EMC_STAT_TYPE -\layout Standard - -Description, NML Type: aggregation of all the status messages, not sent - as a message but used as is all over the place, 1999 -\layout Standard - -Written From: none -\layout Standard - -Read To: none -\layout Standard - -Parameter, Type: [task, EMC_TASK_STAT] [motion, EMC_MOTION_STAT] [io, EMC_IO_STA -T] [logFile, char[LINELEN]] [logType, int] [logSize, int] [logSkip, int] - [logOpen, int] [logStarted, int] [logPoints, int] -\the_end diff --git a/docs/src/code/Style_Guide.lyx b/docs/src/code/Style_Guide.lyx deleted file mode 100644 index 8947b40f5..000000000 --- a/docs/src/code/Style_Guide.lyx +++ /dev/null @@ -1,423 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language english -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Coding Style -\layout Standard - -This chapter describes the source code style prefered by the EMC team. -\layout Section - -Do no harm -\layout Standard - -When making small edits to code in a style different than the one described - below, observe the local coding style. - Rapid changes from one coding style to another decrease code readability. -\layout Standard - -Never check in code after running -\begin_inset Quotes eld -\end_inset - -indent -\begin_inset Quotes erd -\end_inset - - on it. - The whitespace changes introduced by indent make it more difficult to follow - the revision history of the file. -\layout Standard - -Do not use an editor that makes unneeded changes to whitespace (e.g., which - replaces 8 spaces with a tabstop on a line not otherwise modified, or word-wrap -s lines not otherwise modified) -\layout Section - -Tab Stops -\layout Standard - -A tab stop always corresponds to 8 spaces. - Do not write code that displays correctly only with a differing tab stop - setting. -\layout Section - -Indentation -\layout Standard - -Use 4 spaces per level of indentation. - Combining 8 spaces into one tab is acceptable but not required. -\layout Section - -Placing Braces -\layout Standard - -Put the opening brace last on the line, and put the closing brace first: -\layout LyX-Code - -if(x) { -\newline - f(); -\newline -} -\layout Standard - -The closing brace is on a line of its own, except in the cases where it - is followed by a continuation of the same statement, i.e. - a "while" in a do-statement or an "else" in an if-statement, like this: -\layout LyX-Code - -do { -\newline - body(); -\newline -} while (condition); -\layout Standard - -and -\layout LyX-Code - -if(x == y) { -\newline - .. - -\newline -} else if(x > y) { -\newline - ... -\newline -} else { -\newline - .... -\newline -}some detail -\layout Standard - -This brace-placement also minimizes the number of empty (or almost empty) - lines, which allows a greater amount of code or comments to be visible - at once in a terminal of a fixed size. -\layout Section - -Naming -\layout Standard - -C is a Spartan language, and so should your naming be. - Unlike Modula-2 and Pascal programmers, C programmers do not use cute names - like ThisVariableIsATemporaryCounter. - A C programmer would call that variable "tmp", which is much easier to - write, and not the least more difficult to understand. - -\layout Standard - -However, descriptive names for global variables are a must. - To call a global function "foo" is a shooting offense. - -\layout Standard - -GLOBAL variables (to be used only if you -\series bold -really -\series default - need them) need to have descriptive names, as do global functions. - If you have a function that counts the number of active users, you should - call that "count_active_users()" or similar, you should -\series bold -not -\series default - call it "cntusr()". - -\layout Standard - -Encoding the type of a function into the name (so-called Hungarian notation) - is brain damaged - the compiler knows the types anyway and can check those, - and it only confuses the programmer. - No wonder Microsoft makes buggy programs. - -\layout Standard - -LOCAL variable names should be short, and to the point. - If you have some random integer loop counter, it should probably be called - "i". - Calling it "loop_counter" is non-productive, if there is no chance of it - being mis-understood. - Similarly, "tmp" can be just about any type of variable that is used to - hold a temporary value. - -\layout Standard - -If you are afraid to mix up your local variable names, you have another - problem, which is called the function-growth-hormone-imbalance syndrome. - See next chapter. - -\layout Section - -Functions -\layout Standard - -Functions should be short and sweet, and do just one thing. - They should fit on one or two screenfuls of text (the ISO/ANSI screen size - is 80x24, as we all know), and do one thing and do that well. - -\layout Standard - -The maximum length of a function is inversely proportional to the complexity - and indentation level of that function. - So, if you have a conceptually simple function that is just one long (but - simple) case-statement, where you have to do lots of small things for a - lot of different cases, it's OK to have a longer function. - -\layout Standard - -However, if you have a complex function, and you suspect that a less-than-gifted - first-year high-school student might not even understand what the function - is all about, you should adhere to the maximum limits all the more closely. - Use helper functions with descriptive names (you can ask the compiler to - in-line them if you think it's performance-critical, and it will probably - do a better job of it that you would have done). - -\layout Standard - -Another measure of the function is the number of local variables. - They shouldn't exceed 5-10, or you're doing something wrong. - Re-think the function, and split it into smaller pieces. - A human brain can generally easily keep track of about 7 different things, - anything more and it gets confused. - You know you're brilliant, but maybe you'd like to understand what you - did 2 weeks from now. - -\layout Section - -Commenting -\layout Standard - -Comments are good, but there is also a danger of over-commenting. - NEVER try to explain HOW your code works in a comment: it's much better - to write the code so that the -\series bold -working -\series default - is obvious, and it's a waste of time to explain badly written code. - -\layout Standard - -Generally, you want your comments to tell WHAT your code does, not HOW. - A boxed comment describing the function, return value, and who calls it - placed above the body is good. - Also, try to avoid putting comments inside a function body: if the function - is so complex that you need to separately comment parts of it, you should - probably re-read the Functions section again. - You can make small comments to note or warn about something particularly - clever (or ugly), but try to avoid excess. - Instead, put the comments at the head of the function, telling people what - it does, and possibly WHY it does it. -\layout Standard - -If comments along the lines of /* Fix me */ are used, please, please, say - why something needs fixing. - When a change has been made to the affected portion of code, either remove - the comment, or amend it to indicate a change has been made and needs testing. -\layout Section - -Shell Scripts & Makefiles -\layout Standard - -Not everyone has the same tools and packages installed. - Some people use vi, others emacs - A few even avoid having either package - installed, preferring a lightweight text editor such as nano or the one - built in to Midnight Commander. -\layout Standard - -gawk versus mawk - Again, not everyone will have gawk installed, mawk is - nearly a tenth of the size and yet conforms to the Posix AWK standard. - If some obscure gawk specific command is needed that mawk does not provide, - than the script will break for some users. - The same would apply to mawk. - In short, use the generic awk invocation in preference to gawk or mawk. -\layout Section - -C++ Conventions -\layout Standard - -C++ coding styles are always likely to end up in heated debates (a bit like - the emacs versus vi arguments). - One thing is certain however, a common style used by everyone working on - a project leads to uniform and readable code. -\layout Standard - -Naming conventions: Constants either from #defines or enumerations should - be in upper case through out. - Rationale: Makes it easier to spot compile time constants in the source - code. - e.g. - EMC_MESSAGE_TYPE -\layout Standard - -Classes and Namespaces should capitalize the first letter of each word and - avoid underscores. - Rationale: Identifies classes, constructors and destructors. - e.g. - GtkWidget -\layout Standard - -Methods (or function names) should follow the C recommendations above and - should not include the class name. - Rationale: Maintains a common style across C and C++ sources. - e.g. - get_foo_bar() -\layout Standard - -However, boolean methods are easier to read if they avoid underscores and - use an 'is' prefix (not to be confused with methods that manipulate a boolean). - Rationale: Identifies the return value as TRUE or FALSE and nothing else. - e.g. - isOpen, isHomed -\layout Standard - -Do NOT use "Not" in a boolean name, it leads only leads to confusion when - doing logical tests. - e.g. - isNotOnLimit or is_not_on_limit are BAD. -\layout Standard - -Variable names should avoid the use of upper case and underscores except - for local or private names. - The use of global variables should be avoided as much as possible. - Rationale: Clarifies which are variables and which are methods. - Public: e.g. - axislimit Private: e.g. - maxvelocity_ -\layout Standard - -Specific method naming conventions -\layout Standard - -The terms get and set should be used where an attribute is accessed directly. - Rationale: Indicates the purpose of the function or method. - e.g. - get_foo set_bar -\layout Standard - -For methods involving boolean attributes, set & reset is preferred. - Rationale: As above. - e.g. - set_amp_enable reset_amp_fault -\layout Standard - -Math intensive methods should use compute as a prefix. - Rationale: Shows that it is computationally intensive and will hog the - CPU. - e.g. - compute_PID -\layout Standard - -Abbreviations in names should be avoided where possible - The exception - is for local variable names. - Rationale: Clarity of code. - e.g. - pointer is preferred over ptr compute is preferred over cmp compare is - again preferred over cmp. -\layout Standard - -Enumerates and other constants can be prefixed by a common type name e.g. - enum COLOR { COLOR_RED, COLOR_BLUE }; -\layout Standard - -Excessive use of macros and defines should be avoided - Using simple methods - or functions is preferred. - Rationale: Improves the debugging process. -\layout Standard - -Include Statements Header files must be included at the top of a source - file and not scattered throughout the body. - They should be sorted and grouped by their hierarchical position within - the system with the low level files included first. - Include file paths should NEVER be absolute - Use the compiler -I flag - instead. - Rationale: Headers may not be in the same place on all systems. -\layout Standard - -Pointers and references should have their reference symbol next to the variable - name rather than the type name. - Rationale: Reduces confusion. - e.g. - float *x or int &i -\layout Standard - -Implicit tests for zero should not be used except for boolean variables. - e.g. - if (spindle_speed != 0) NOT if (spindle_speed) -\layout Standard - -Only loop control statements must be included in a for() construct. - e.g. - sum = 0; for (i = 0; i < 10; i++) { sum += value[i]; } -\layout Standard - -NOT for (i = 0, sum =0; i < 10; i++) sum += value[i]; -\layout Standard - -Likewise, executable statements in conditionals must be avoided. - e.g. - if (fd = open(file_name) is bad. -\layout Standard - -Complex conditional statements should be avoided - Introduce temporary boolean - variables instead. -\layout Standard - -Parentheses should be used in plenty in mathematical expressions - Do not - rely on operator precedence when an extra parentheses would clarify things. -\layout Standard - -File names: C++ sources and headers use .cc and .hh extension. - The use of .c and .h are reserved for plain C. - Headers are for class, method, and structure declarations, not code (unless - the functions are declared inline). - -\layout Section - -Python coding standards -\layout Standard - -Use the -\begin_inset LatexCommand \url[PEP 8]{http://www.python.org/dev/peps/pep-0008/} - -\end_inset - - style for Python code. -\layout Section - -Comp coding standards -\layout Standard - -In the declaration portion of a .comp file, begin each declaration at the - first column. - Insert extra blank lines when they help group related items. -\layout Standard - -In the code portion of a .comp file, follow normal C coding style. -\the_end diff --git a/docs/src/common/Document_Header.lyx b/docs/src/common/Document_Header.lyx deleted file mode 100644 index fe65131dc..000000000 --- a/docs/src/common/Document_Header.lyx +++ /dev/null @@ -1,95 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language english -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 1 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Title - - -\begin_inset Graphics - filename emc2-intro.png - scale 50 - -\end_inset - - -\newline - -\begin_inset ERT -status Collapsed - -\layout Standard - -\backslash -usebox{ -\backslash -titleadd} -\end_inset - - -\layout Author -\added_space_top medskip -The EMC Team -\layout Standard -\added_space_top medskip -This handbook is a work in progress. - If you are able to help with writing, editing, or graphic preparation please - contact any member of the writing team or join and send an email to emc-users@l -ists.sourceforge.net. -\layout Standard -\added_space_top smallskip \align center -Copyright (c) 2000-8 LinuxCNC.org -\layout Standard -\added_space_top smallskip \line_top \line_bottom \pagebreak_bottom \noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\the_end diff --git a/docs/src/common/Document_Header_fr.lyx b/docs/src/common/Document_Header_fr.lyx deleted file mode 100644 index 541d69fd8..000000000 --- a/docs/src/common/Document_Header_fr.lyx +++ /dev/null @@ -1,95 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\pagenumbering{roman} -\let\myTOC\tableofcontents -\renewcommand\tableofcontents{% -\myTOC -\clearpage -\pagenumbering{arabic} -} -\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{3.2em}} -\renewcommand{\l@subsection}{\@dottedtocline{2}{3.2em}{4.9em}} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 1 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Title - - -\begin_inset Graphics - filename emc2-intro.png - scale 50 - -\end_inset - - -\newline - -\begin_inset ERT -status Collapsed - -\layout Standard - -\backslash -usebox{ -\backslash -titleadd} -\end_inset - - -\layout Author -\added_space_top medskip -The EMC Team -\layout Standard -\added_space_top medskip -Ce manuel est en perptuelle volution. - Si vous avez envie d'aider dans sa rdaction, son dition ou la prparation - des graphiques, merci de contacter un membre de l'quipe de documentation - en envoyant un email emc-users@lists.sourceforge.net. -\layout Standard -\added_space_top smallskip \align center -Copyright (c) 2000-9 LinuxCNC.org -\layout Standard -\added_space_top smallskip \line_top \line_bottom \pagebreak_bottom \noindent -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330 Boston, MA 02111-1307 -\the_end diff --git a/docs/src/common/GPLD_Copyright.lyx b/docs/src/common/GPLD_Copyright.lyx deleted file mode 100644 index 0844cc9c1..000000000 --- a/docs/src/common/GPLD_Copyright.lyx +++ /dev/null @@ -1,716 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble - -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle empty -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Legal Section -\end_layout - -\begin_layout Section -Copyright Terms -\end_layout - -\begin_layout Standard -Copyright (c) 2000 LinuxCNC.org -\end_layout - -\begin_layout Standard -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant Sections, - no Front-Cover Texts, and one Back-Cover Text: "This EMC Handbook is the - product of several authors writing for linuxCNC.org. - As you find it to be of value in your work, we invite you to contribute - to its revision and growth." A copy of the license is included in the section - entitled "GNU Free Documentation License". - If you do not find the license you may order a copy from Free Software - Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 -\end_layout - -\begin_layout Section -GNU Free Documentation License -\end_layout - -\begin_layout Standard -GNU Free Documentation License Version 1.1, March 2000 -\end_layout - -\begin_layout Standard - -\size small -\color black -Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted - to copy and distribute verbatim copies of this license document, but changing - it is not allowed. -\end_layout - -\begin_layout Standard - -\size small -\color black -0. - PREAMBLE -\end_layout - -\begin_layout Standard - -\size small -\color black -The purpose of this License is to make a manual, textbook, or other written - document "free" in the sense of freedom: to assure everyone the effective - freedom to copy and redistribute it, with or without modifying it, either - commercially or noncommercially. - Secondarily, this License preserves for the author and publisher a way - to get credit for their work, while not being considered responsible for - modifications made by others. -\end_layout - -\begin_layout Standard - -\size small -\color black -This License is a kind of "copyleft", which means that derivative works - of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft license - designed for free software. -\end_layout - -\begin_layout Standard - -\size small -\color black -We have designed this License in order to use it for manuals for free software, - because free software needs free documentation: a free program should come - with manuals providing the same freedoms that the software does. - But this License is not limited to software manuals; it can be used for - any textual work, regardless of subject matter or whether it is published - as a printed book. - We recommend this License principally for works whose purpose is instruction - or reference. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -1. - APPLICABILITY AND DEFINITIONS -\end_layout - -\begin_layout Standard - -\size small -\color black -This License applies to any manual or other work that contains a notice - placed by the copyright holder saying it can be distributed under the terms - of this License. - The "Document", below, refers to any such manual or work. - Any member of the public is a licensee, and is addressed as "you". -\end_layout - -\begin_layout Standard - -\size small -\color black -A "Modified Version" of the Document means any work containing the Document - or a portion of it, either copied verbatim, or with modifications and/or - translated into another language. -\end_layout - -\begin_layout Standard - -\size small -\color black -A "Secondary Section" is a named appendix or a front-matter section of the - Document that deals exclusively with the relationship of the publishers - or authors of the Document to the Document's overall subject (or to related - matters) and contains nothing that could fall directly within that overall - subject. - (For example, if the Document is in part a textbook of mathematics, a Secondary - Section may not explain any mathematics.) The relationship could be a matter - of historical connection with the subject or with related matters, or of - legal, commercial, philosophical, ethical or political position regarding - them. -\end_layout - -\begin_layout Standard - -\size small -\color black -The "Invariant Sections" are certain Secondary Sections whose titles are - designated, as being those of Invariant Sections, in the notice that says - that the Document is released under this License. -\end_layout - -\begin_layout Standard - -\size small -\color black -The "Cover Texts" are certain short passages of text that are listed, as - Front-Cover Texts or Back-Cover Texts, in the notice that says that the - Document is released under this License. -\end_layout - -\begin_layout Standard - -\size small -\color black -A "Transparent" copy of the Document means a machine-readable copy, represented - in a format whose specification is available to the general public, whose - contents can be viewed and edited directly and straightforwardly with generic - text editors or (for images composed of pixels) generic paint programs - or (for drawings) some widely available drawing editor, and that is suitable - for input to text formatters or for automatic translation to a variety - of formats suitable for input to text formatters. - A copy made in an otherwise Transparent file format whose markup has been - designed to thwart or discourage subsequent modification by readers is - not Transparent. - A copy that is not "Transparent" is called "Opaque". -\end_layout - -\begin_layout Standard - -\size small -\color black -Examples of suitable formats for Transparent copies include plain ASCII - without markup, Texinfo input format, LaTeX input format, SGML or XML using - a publicly available DTD, and standard-conforming simple HTML designed - for human modification. - Opaque formats include PostScript, PDF, proprietary formats that can be - read and edited only by proprietary word processors, SGML or XML for which - the DTD and/or processing tools are not generally available, and the machine-ge -nerated HTML produced by some word processors for output purposes only. -\end_layout - -\begin_layout Standard - -\size small -\color black -The "Title Page" means, for a printed book, the title page itself, plus - such following pages as are needed to hold, legibly, the material this - License requires to appear in the title page. - For works in formats which do not have any title page as such, "Title Page" - means the text near the most prominent appearance of the work's title, - preceding the beginning of the body of the text. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -2. - VERBATIM COPYING -\end_layout - -\begin_layout Standard - -\size small -\color black -You may copy and distribute the Document in any medium, either commercially - or noncommercially, provided that this License, the copyright notices, - and the license notice saying this License applies to the Document are - reproduced in all copies, and that you add no other conditions whatsoever - to those of this License. - You may not use technical measures to obstruct or control the reading or - further copying of the copies you make or distribute. - However, you may accept compensation in exchange for copies. - If you distribute a large enough number of copies you must also follow - the conditions in section 3. -\end_layout - -\begin_layout Standard - -\size small -\color black -You may also lend copies, under the same conditions stated above, and you - may publicly display copies. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -3. - COPYING IN QUANTITY -\end_layout - -\begin_layout Standard - -\size small -\color black -If you publish printed copies of the Document numbering more than 100, and - the Document's license notice requires Cover Texts, you must enclose the - copies in covers that carry, clearly and legibly, all these Cover Texts: - Front-Cover Texts on the front cover, and Back-Cover Texts on the back - cover. - Both covers must also clearly and legibly identify you as the publisher - of these copies. - The front cover must present the full title with all words of the title - equally prominent and visible. - You may add other material on the covers in addition. - Copying with changes limited to the covers, as long as they preserve the - title of the Document and satisfy these conditions, can be treated as verbatim - copying in other respects. -\end_layout - -\begin_layout Standard - -\size small -\color black -If the required texts for either cover are too voluminous to fit legibly, - you should put the first ones listed (as many as fit reasonably) on the - actual cover, and continue the rest onto adjacent pages. -\end_layout - -\begin_layout Standard - -\size small -\color black -If you publish or distribute Opaque copies of the Document numbering more - than 100, you must either include a machine-readable Transparent copy along - with each Opaque copy, or state in or with each Opaque copy a publicly-accessib -le computer-network location containing a complete Transparent copy of the - Document, free of added material, which the general network-using public - has access to download anonymously at no charge using public-standard network - protocols. - If you use the latter option, you must take reasonably prudent steps, when - you begin distribution of Opaque copies in quantity, to ensure that this - Transparent copy will remain thus accessible at the stated location until - at least one year after the last time you distribute an Opaque copy (directly - or through your agents or retailers) of that edition to the public. -\end_layout - -\begin_layout Standard - -\size small -\color black -It is requested, but not required, that you contact the authors of the Document - well before redistributing any large number of copies, to give them a chance - to provide you with an updated version of the Document. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -4. - MODIFICATIONS -\end_layout - -\begin_layout Standard - -\size small -\color black -You may copy and distribute a Modified Version of the Document under the - conditions of sections 2 and 3 above, provided that you release the Modified - Version under precisely this License, with the Modified Version filling - the role of the Document, thus licensing distribution and modification - of the Modified Version to whoever possesses a copy of it. - In addition, you must do these things in the Modified Version: -\end_layout - -\begin_layout Standard - -\size small -\color black -A. - Use in the Title Page (and on the covers, if any) a title distinct from - that of the Document, and from those of previous versions (which should, - if there were any, be listed in the History section of the Document). - You may use the same title as a previous version if the original publisher - of that version gives permission. - B. - List on the Title Page, as authors, one or more persons or entities responsible - for authorship of the modifications in the Modified Version, together with - at least five of the principal authors of the Document (all of its principal - authors, if it has less than five). - C. - State on the Title page the name of the publisher of the Modified Version, - as the publisher. - D. - Preserve all the copyright notices of the Document. - E. - Add an appropriate copyright notice for your modifications adjacent to - the other copyright notices. - F. - Include, immediately after the copyright notices, a license notice giving - the public permission to use the Modified Version under the terms of this - License, in the form shown in the Addendum below. - G. - Preserve in that license notice the full lists of Invariant Sections and - required Cover Texts given in the Document's license notice. - H. - Include an unaltered copy of this License. - I. - Preserve the section entitled "History", and its title, and add to it an - item stating at least the title, year, new authors, and publisher of the - Modified Version as given on the Title Page. - If there is no section entitled "History" in the Document, create one stating - the title, year, authors, and publisher of the Document as given on its - Title Page, then add an item describing the Modified Version as stated - in the previous sentence. - J. - Preserve the network location, if any, given in the Document for public - access to a Transparent copy of the Document, and likewise the network - locations given in the Document for previous versions it was based on. - These may be placed in the "History" section. - You may omit a network location for a work that was published at least - four years before the Document itself, or if the original publisher of - the version it refers to gives permission. - K. - In any section entitled "Acknowledgements" or "Dedications", preserve the - section's title, and preserve in the section all the substance and tone - of each of the contributor acknowledgements and/or dedications given therein. - L. - Preserve all the Invariant Sections of the Document, unaltered in their - text and in their titles. - Section numbers or the equivalent are not considered part of the section - titles. - M. - Delete any section entitled "Endorsements". - Such a section may not be included in the Modified Version. - N. - Do not retitle any existing section as "Endorsements" or to conflict in - title with any Invariant Section. -\end_layout - -\begin_layout Standard - -\size small -\color black -If the Modified Version includes new front-matter sections or appendices - that qualify as Secondary Sections and contain no material copied from - the Document, you may at your option designate some or all of these sections - as invariant. - To do this, add their titles to the list of Invariant Sections in the Modified - Version's license notice. - These titles must be distinct from any other section titles. -\end_layout - -\begin_layout Standard - -\size small -\color black -You may add a section entitled "Endorsements", provided it contains nothing - but endorsements of your Modified Version by various parties--for example, - statements of peer review or that the text has been approved by an organization - as the authoritative definition of a standard. -\end_layout - -\begin_layout Standard - -\size small -\color black -You may add a passage of up to five words as a Front-Cover Text, and a passage - of up to 25 words as a Back-Cover Text, to the end of the list of Cover - Texts in the Modified Version. - Only one passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. - If the Document already includes a cover text for the same cover, previously - added by you or by arrangement made by the same entity you are acting on - behalf of, you may not add another; but you may replace the old one, on - explicit permission from the previous publisher that added the old one. -\end_layout - -\begin_layout Standard - -\size small -\color black -The author(s) and publisher(s) of the Document do not by this License give - permission to use their names for publicity for or to assert or imply endorseme -nt of any Modified Version. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -5. - COMBINING DOCUMENTS -\end_layout - -\begin_layout Standard - -\size small -\color black -You may combine the Document with other documents released under this License, - under the terms defined in section 4 above for modified versions, provided - that you include in the combination all of the Invariant Sections of all - of the original documents, unmodified, and list them all as Invariant Sections - of your combined work in its license notice. -\end_layout - -\begin_layout Standard - -\size small -\color black -The combined work need only contain one copy of this License, and multiple - identical Invariant Sections may be replaced with a single copy. - If there are multiple Invariant Sections with the same name but different - contents, make the title of each such section unique by adding at the end - of it, in parentheses, the name of the original author or publisher of - that section if known, or else a unique number. - Make the same adjustment to the section titles in the list of Invariant - Sections in the license notice of the combined work. -\end_layout - -\begin_layout Standard - -\size small -\color black -In the combination, you must combine any sections entitled "History" in - the various original documents, forming one section entitled "History"; - likewise combine any sections entitled "Acknowledgements", and any sections - entitled "Dedications". - You must delete all sections entitled "Endorsements." -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -6. - COLLECTIONS OF DOCUMENTS -\end_layout - -\begin_layout Standard - -\size small -\color black -You may make a collection consisting of the Document and other documents - released under this License, and replace the individual copies of this - License in the various documents with a single copy that is included in - the collection, provided that you follow the rules of this License for - verbatim copying of each of the documents in all other respects. -\end_layout - -\begin_layout Standard - -\size small -\color black -You may extract a single document from such a collection, and distribute - it individually under this License, provided you insert a copy of this - License into the extracted document, and follow this License in all other - respects regarding verbatim copying of that document. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -7. - AGGREGATION WITH INDEPENDENT WORKS -\end_layout - -\begin_layout Standard - -\size small -\color black -A compilation of the Document or its derivatives with other separate and - independent documents or works, in or on a volume of a storage or distribution - medium, does not as a whole count as a Modified Version of the Document, - provided no compilation copyright is claimed for the compilation. - Such a compilation is called an "aggregate", and this License does not - apply to the other self-contained works thus compiled with the Document, - on account of their being thus compiled, if they are not themselves derivative - works of the Document. -\end_layout - -\begin_layout Standard - -\size small -\color black -If the Cover Text requirement of section 3 is applicable to these copies - of the Document, then if the Document is less than one quarter of the entire - aggregate, the Document's Cover Texts may be placed on covers that surround - only the Document within the aggregate. - Otherwise they must appear on covers around the whole aggregate. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -8. - TRANSLATION -\end_layout - -\begin_layout Standard - -\size small -\color black -Translation is considered a kind of modification, so you may distribute - translations of the Document under the terms of section 4. - Replacing Invariant Sections with translations requires special permission - from their copyright holders, but you may include translations of some - or all Invariant Sections in addition to the original versions of these - Invariant Sections. - You may include a translation of this License provided that you also include - the original English version of this License. - In case of a disagreement between the translation and the original English - version of this License, the original English version will prevail. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -9. - TERMINATION -\end_layout - -\begin_layout Standard - -\size small -\color black -You may not copy, modify, sublicense, or distribute the Document except - as expressly provided for under this License. - Any other attempt to copy, modify, sublicense or distribute the Document - is void, and will automatically terminate your rights under this License. - However, parties who have received copies, or rights, from you under this - License will not have their licenses terminated so long as such parties - remain in full compliance. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -10. - FUTURE REVISIONS OF THIS LICENSE -\end_layout - -\begin_layout Standard - -\size small -\color black -The Free Software Foundation may publish new, revised versions of the GNU - Free Documentation License from time to time. - Such new versions will be similar in spirit to the present version, but - may differ in detail to address new problems or concerns. - See http:///www.gnu.org/copyleft/. -\end_layout - -\begin_layout Standard - -\size small -\color black -Each version of the License is given a distinguishing version number. - If the Document specifies that a particular numbered version of this License - "or any later version" applies to it, you have the option of following - the terms and conditions either of that specified version or of any later - version that has been published (not as a draft) by the Free Software Foundatio -n. - If the Document does not specify a version number of this License, you - may choose any version ever published (not as a draft) by the Free Software - Foundation. -\end_layout - -\begin_layout Standard - -\series bold -\size small -\color black -ADDENDUM -\series default -: How to use this License for your documents -\end_layout - -\begin_layout Standard - -\size small -\color black -To use this License in a document you have written, include a copy of the - License in the document and put the following copyright and license notices - just after the title page: -\end_layout - -\begin_layout Standard - -\size small -\color black -Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with the Invariant Sections - being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with - the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU Free Documentati -on License". -\end_layout - -\begin_layout Standard - -\size small -\color black -If you have no Invariant Sections, write "with no Invariant Sections" instead - of saying which ones are invariant. - If you have no Front-Cover Texts, write "no Front-Cover Texts" instead - of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts. -\end_layout - -\begin_layout Standard - -\size small -\color black -If your document contains nontrivial examples of program code, we recommend - releasing these examples in parallel under your choice of free software - license, such as the GNU General Public License, to permit their use in - free software. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Getting_EMC.lyx b/docs/src/common/Getting_EMC.lyx deleted file mode 100644 index 43ac3750f..000000000 --- a/docs/src/common/Getting_EMC.lyx +++ /dev/null @@ -1,713 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble - -\end_preamble -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -About EMC -\end_layout - -\begin_layout Section -The Software -\end_layout - -\begin_layout Itemize -EMC (the Enhanced Machine Control) is a software system for computer control - of machine tools such as milling machines and lathes. -\end_layout - -\begin_layout Itemize -EMC is free software with open source code. - Current versions of EMC are entirely licensed under the GNU General Public - License and Lesser GNU General Public License (GPL and LGPL) -\end_layout - -\begin_layout Itemize -EMC provides: -\end_layout - -\begin_deeper -\begin_layout Itemize -a graphical user interface (actually several interfaces to chose from) -\end_layout - -\begin_layout Itemize -an interpreter for "G-code" (the RS-274 machine tool programming language) -\end_layout - -\begin_layout Itemize -a realtime motion planning system with look-ahead -\end_layout - -\begin_layout Itemize -operation of low-level machine electronics such as sensors and motor drives -\end_layout - -\begin_layout Itemize -an easy to use "breadboard" layer for quickly creating a unique configuration - for your machine -\end_layout - -\begin_layout Itemize -a software PLC programmable with ladder diagrams -\end_layout - -\begin_layout Itemize -easy installation with a Live-CD -\end_layout - -\end_deeper -\begin_layout Itemize -It does not provide drawing (CAD - Computer Aided Design) or G-code generation - from the drawing (CAM - Computer Automated Manufacturing) functions. -\end_layout - -\begin_layout Itemize -It can simultaneously move up to 9 axes and supports a variety of interfaces. -\end_layout - -\begin_layout Itemize -The control can operate true servos (analog or PWM) with the feedback loop - closed by the EMC software at the computer, or open loop with "step-servos" - or stepper motors. -\end_layout - -\begin_layout Itemize -Motion control features include: cutter radius and length compensation, - path deviation limited to a specified tolerance, lathe threading, synchronized - axis motion, adaptive feedrate, operator feed override, and constant velocity - control. -\end_layout - -\begin_layout Itemize -Support for non-Cartesian motion systems is provided via custom kinematics - modules. - Available architectures include hexapods (Stewart platforms and similar - concepts) and systems with rotary joints to provide motion such as PUMA - or SCARA robots. -\end_layout - -\begin_layout Itemize -EMC runs on Linux using real time extensions. - -\end_layout - -\begin_layout Section -The Operating System -\end_layout - -\begin_layout Standard -Ubuntu has been chosen, because it fits perfectly into the Open Source views - of EMC2: -\end_layout - -\begin_layout Itemize -Ubuntu will always be free of charge, and there is no extra fee for the - "enterprise edition", we make our very best work available to everyone - on the same Free terms. -\end_layout - -\begin_layout Itemize -EMC is paired with the LTS versions of Ubuntu which provide support and - security fixes from the Ubuntu team for 3 - 5 years. -\end_layout - -\begin_layout Itemize -Ubuntu uses the very best in translations and accessibility infrastructure - that the Free Software community has to offer, to make Ubuntu usable for - as many people as possible. -\end_layout - -\begin_layout Itemize -The Ubuntu community is entirely committed to the principles of free software - development; we encourage people to use open source software, improve it - and pass it on. -\end_layout - -\begin_layout Chapter -Getting Help -\end_layout - -\begin_layout Section -IRC -\end_layout - -\begin_layout Standard -IRC stands for Internet Relay Chat. - It is a live connection to other EMC users. - The EMC IRC channel is #emc on freenode. - -\end_layout - -\begin_layout Standard -The simplest way to get on the IRC is to use the embedded java client on - this page -\begin_inset LatexCommand url -target "http://www.linuxcnc.org/content/view/4/8/lang,en/" - -\end_inset - -. - -\end_layout - -\begin_layout Standard -Some IRC etiquette: -\end_layout - -\begin_layout Itemize -Ask specific questions... - Avoid "Can someone help me?", "It won't run" type of questions. -\end_layout - -\begin_layout Itemize -If you're really new to all this, think a bit about your question before - typing it. - Make sure you give enough information so someone can solve your question. - -\end_layout - -\begin_layout Itemize -Have some patience when waiting for an answer, sometimes it takes a while - to formulate an answer or everyone might be busy working or something. -\end_layout - -\begin_layout Itemize -Set up your IRC account with your unique name so people will know who you - are. - If you use the java client, use the same name every time you log in. - This helps people remember who you are and if you have been on before many - will remember the past discussions which saves time on both ends. -\end_layout - -\begin_layout Subsection -Sharing Files -\end_layout - -\begin_layout Standard -The most common way to share files on the IRC is to upload the file to one - of the following or a similar service and paste the link: -\end_layout - -\begin_layout Quote -http://pastebin.ca = for text -\newline -http://imagebin.ca = for pictures -\newline -http://filebin.ca - = for files and pdfs -\end_layout - -\begin_layout Section -Mailing List -\end_layout - -\begin_layout Standard -An Internet Mailing List is a way to put questions out for everyone on that - list to see and answer at their convenience. - You get better exposure to your questions on a mailing list than on the - IRC but answers take longer. - In a nutshell you e-mail a message to the list and either get daily digests - or individual replies back depending on how you set up your account. -\end_layout - -\begin_layout Standard -Information about the EMC Users Mailing List at: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "https://lists.sourceforge.net/lists/listinfo/emc-users" - -\end_inset - - -\end_layout - -\begin_layout Section -EMC Wiki -\end_layout - -\begin_layout Standard -A Wiki site is a user maintained web site that anyone can add to or edit. -\end_layout - -\begin_layout Standard -The user maintained EMC Wiki site contains a wealth of information and tips - at: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl" - -\end_inset - - -\end_layout - -\begin_layout Chapter -Get EMC2 -\end_layout - -\begin_layout Section -Normal Download -\end_layout - -\begin_layout Standard -Download the Live CD from: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "http://www.linuxcnc.org/" - -\end_inset - - -\end_layout - -\begin_layout Standard -and follow the Download link. -\end_layout - -\begin_layout Section -Multi-session Download -\begin_inset LatexCommand index -name "Multi-session Download" - -\end_inset - - -\end_layout - -\begin_layout Standard -If the file is too large to download in one session because of a bad or - slow Internet connection use -\family typewriter -\series bold -wget -\family default -\series default - to allow resuming downloads. - -\end_layout - -\begin_layout Subsection -Wget Linux -\begin_inset LatexCommand index -name "Wget Linux" - -\end_inset - - -\end_layout - -\begin_layout Standard -Open a terminal window. - In Ubuntu it is Applications/Accessories/Terminal. - Note that actual file names may change so you might have to go to -\begin_inset LatexCommand url -target "http://www.linuxcnc.org/" - -\end_inset - - and follow the Download link to get the actual file name. - In most browsers you can right click on the link and select Copy Link Location - or similar then paste the link into the terminal window with a right mouse - click and select Paste. -\end_layout - -\begin_layout Standard -To get the Ubuntu 8.04 Hardy Heron version copy this in the terminal window - and press enter: -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -wget -r http://www.linuxcnc.org/hardy/ubuntu-8.04-desktop-emc2-aj07-i386.iso -\end_layout - -\begin_layout Standard -To get the Ubuntu 6.06 Dapper Drake version: -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -wget -r http://www.linuxcnc.org/iso/emc2.2.2-1-ubuntu6.06-desktop-i386.iso -\end_layout - -\begin_layout Standard -To continue a download that has been stopped add the -c option to wget: -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -wget -r -c http://www.linuxcnc.org/hardy/ubuntu-8.04-desktop-emc2-aj07-i386.iso -\end_layout - -\begin_layout Standard -To stop a download use Ctrl-C or close the terminal window. -\end_layout - -\begin_layout Standard -After the download is complete you will find a new directory called www.linuxcnc.o -rg or something similar. - In the subdirectory under the above directory you will find the ISO CD - image file. - Next is burning the CD. -\end_layout - -\begin_layout Subsection -Wget Windows -\begin_inset LatexCommand index -name "Wget Windows" - -\end_inset - - -\end_layout - -\begin_layout Standard -The wget program is also available for Windows from -\end_layout - -\begin_layout Standard -http://gnuwin32.sourceforge.net/packages/wget.htm -\end_layout - -\begin_layout Standard -Follow the instructions on the web page for downloading and installing the - windows version of the wget program. -\end_layout - -\begin_layout Standard -To run wget open a command prompt window. - -\end_layout - -\begin_layout Standard -In most Windows it is Programs/Accessories/Command Prompt -\end_layout - -\begin_layout Standard -First you have to change to the directory where wget is installed in. - -\end_layout - -\begin_layout Standard -Typically it is in C: -\backslash -Program Files -\backslash -GnuWin32 -\backslash -bin so in the Command Prompt window type: -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -cd C: -\backslash -Program Files -\backslash -GnuWin32 -\backslash -bin -\end_layout - -\begin_layout Standard -and the prompt should change to C: -\backslash -Program Files -\backslash -GnuWin32> -\end_layout - -\begin_layout Standard -Type the wget command into the window and press enter as above. -\end_layout - -\begin_layout Section -Burning the CD -\end_layout - -\begin_layout Standard -EMC2 is distributed as CD image files, called ISOs. - To install EMC2, you first need to burn the ISO file onto a CD. - You need a working CD/DVD burner and an 80 minute (700 Mb) CD for this. - If the CD writing fails, try writing at a slower burn speed. -\end_layout - -\begin_layout Subsection -Burn with Linux -\end_layout - -\begin_layout Standard -Before burning a CD, it is highly recommended that you verify the md5 sum - (hash) of the .iso file. -\end_layout - -\begin_layout Standard -Open a terminal window. - In Ubuntu it is Applications/Accessories/Terminal. -\end_layout - -\begin_layout Standard -Change to the directory where the ISO was downloaded to. -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -cd download_directory -\end_layout - -\begin_layout Standard -The run the md5sum command with the file name you saved. -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -md5sum ubuntu-8.04-desktop-emc2-aj07-i386.iso -\end_layout - -\begin_layout Standard -The md5sum should print out a single line after calculating the hash. - On slower computers this might take a minute or two. -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -91c5abb84386091e0ff056e9ebc40fdb ubuntu-8.04-desktop-emc2-aj07-i386.iso -\end_layout - -\begin_layout Standard -Now compare it to the md5sum on the EMC2 download page. -\end_layout - -\begin_layout Standard -Burning the ISO to a CD -\end_layout - -\begin_layout Enumerate -Insert a blank CD into your burner. - A "CD/DVD Creator" or "Choose Disc Type" window will pop up. - Close this, as we will not be using it. -\end_layout - -\begin_layout Enumerate -Browse to the downloaded ISO image in the file browser. -\end_layout - -\begin_layout Enumerate -Right click on the ISO image file and choose Write to Disc. -\end_layout - -\begin_layout Enumerate -Select the write speed. - If you are burning a Ubuntu Live CD, it is recommended that you write at - the lowest possible speed. -\end_layout - -\begin_layout Enumerate -Start the burning process. -\end_layout - -\begin_layout Enumerate -If a choose a file name for the disc image window pops up just pick OK. -\end_layout - -\begin_layout Subsection -Burn with Windows -\end_layout - -\begin_layout Standard -Before burning a CD, it is highly recommended that you verify the md5 sum - (hash) of the .iso file. -\end_layout - -\begin_layout Standard -Windows does not come with a md5sum program. - You will have to download and install one to check the md5sum. - More information can be found at: -\end_layout - -\begin_layout Standard -https://help.ubuntu.com/community/HowToMD5SUM -\end_layout - -\begin_layout Standard -Burning the ISO to a CD -\end_layout - -\begin_layout Enumerate -Download and install Infra Recorder, a free and open source image burning - program. -\end_layout - -\begin_layout Enumerate -Insert a blank CD in the drive and select Do nothing or Cancel if an auto-run - dialog pops up. -\end_layout - -\begin_layout Enumerate -Open Infra Recorder, and select the 'Actions' menu, then 'Burn image'. -\end_layout - -\begin_layout Section -Testing EMC2 -\end_layout - -\begin_layout Standard -With the Live CD in the CD/DVD drive shut down the computer then turn the - computer back on. - This will boot the computer from the Live CD. - Once the computer has booted up you can try out EMC2 without installing - it. - You can not create custom configurations or modify most system settings - like screen resolution unless you install EMC2. - -\end_layout - -\begin_layout Standard -To try out EMC2 from the Applications/CNC menu pick EMC2. - Then select a sim configuration to try out. - -\end_layout - -\begin_layout Standard -To see if your computer is suitable for software step pulse generation run - the Latency Test as outlined in Section ( -\begin_inset LatexCommand ref -reference "sub:Latency-Test" - -\end_inset - -) -\end_layout - -\begin_layout Section -Installing EMC2 -\end_layout - -\begin_layout Standard -If you like what you see, just click the Install icon on the desktop, answer - a few questions (your name, timezone, password) and the install completes - in a few minutes. - Make sure you write down the name you used and the password. - Once the install process is complete and you go on line the update manager - will pop up and allow you to upgrade to the latest stable version of EMC2. -\end_layout - -\begin_layout Section -Axis Interface -\end_layout - -\begin_layout Standard -The AXIS interface is one of the interfaces to choose from. - It can be configured to add a Virtual Control Panel to customize the interface - to suit your needs. - AXIS is the default user interface and is actively being developed. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis_2.3.png - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Section -Updates to EMC2 -\begin_inset LatexCommand index -name "Updates to EMC2" - -\end_inset - - -\end_layout - -\begin_layout Standard -With the normal install the Update Manager will notify you of updates to - EMC2 when you go on line and allow you to easily upgrade with no Linux - knowledge needed. - If you want to upgrade to 10.04 from 8.04 a clean install from the Live-CD - is needed. - It is OK to upgrade EMC when asked to. - -\end_layout - -\begin_layout Standard -Warning: Do not upgrade Ubuntu to a new version (like 8.04 to 8.10) as it - will prevent EMC from running. -\end_layout - -\begin_layout Section -Install Problems -\end_layout - -\begin_layout Standard -In rare cases you might have to reset the BIOS to default settings if during - the Live CD install it can not recognize the hard drive during the boot - up. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Getting_EMC_fr.lyx b/docs/src/common/Getting_EMC_fr.lyx deleted file mode 100644 index cfc3b1ffd..000000000 --- a/docs/src/common/Getting_EMC_fr.lyx +++ /dev/null @@ -1,424 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -Trouver de l'aide -\begin_inset LatexCommand \index{Trouver de l'aide} - -\end_inset - - -\begin_inset LatexCommand \label{sec:Trouver-aide} - -\end_inset - - -\layout Section - -IRC -\layout Standard - -Sur le canal IRC d'EMC. - -\layout Standard - -La manire la plus simple d'aller sur IRC est d'utiliser le client Java - embarqu sur cette page -\begin_inset LatexCommand \url{http://www.linuxcnc.org/content/view/4/8/lang,en/} - -\end_inset - -. - -\layout Standard - -Un peu d'thique sur le canal IRC: -\layout Itemize - -Posez votre question particulire... -\layout Itemize - -Faites preuve de patience quand vous attendez une rponse, il peut s'couler - un certain temps avant que quelqu'un ne fournisse une rponse, les participants - peuvent tre occups leur travail ou autre... -\layout Itemize - -Rglez votre compte IRC avec un unique nom de sorte que les gens sachent - qui vous tes. -\layout Section - -Liste de diffusion -\layout Standard - -La liste de diffusion des utilisateurs d'EMC2 -\begin_inset LatexCommand \url{https://lists.sourceforge.net/lists/listinfo/emc-users} - -\end_inset - -. -\layout Section - -Wiki -\layout Standard - -Le Wiki d'EMC, site maintenu par les utilisateurs -\begin_inset LatexCommand \url{http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl} - -\end_inset - - contient un grand nombre d'informations et d'astuces. -\layout Chapter - -Charger le logiciel -\begin_inset LatexCommand \index{Charger le logiciel} - -\end_inset - - -\layout Standard - -Tlchargez le CD Live depuis -\begin_inset LatexCommand \url{http://www.linuxcnc.org/} - -\end_inset - - en suivant le lien de tlchargement. -\layout Section - -Tlchargement fragment -\begin_inset LatexCommand \index{Telechargement fragmente} - -\end_inset - - -\layout Standard - -Si le fichier est trop important pour tre tlcharg en une seule fois - parce que votre connection Internet est lente ou mauvaise, utilisez -\family typewriter -\series bold -wget -\family default -\series default - qui permet la reprise aprs un tlchargement interrompu. - -\layout Subsection - -Sous Linux -\begin_inset LatexCommand \index{wget} - -\end_inset - - -\layout Standard - -Ouvrez un terminal. - Dans Ubuntu il est dans Applications/Accessoires/Terminal. - Notez que le nom du fichier peut tre diffrent de celui de cette documentation -, suivez le lien de tlchargement sur -\begin_inset LatexCommand \url{http://www.linuxcnc.org/} - -\end_inset - - pour avoir le nom du fichier actuel. - Vous pouvez copier le lien puis le coller dans le terminal l'aide de - la souris. -\layout Standard - -Pour prendre la version Ubuntu 8.04 Hardy Heron copiez ce lien dans le terminal - et pressez Entre: -\layout Standard - - -\family typewriter -\series bold -wget -r http://www.linuxcnc.org/hardy/ubuntu-8.04-desktop-emc2-aj07-i386.iso -\layout Standard - -Pour prendre la version Ubuntu 6.06 Dapper Drake: -\layout Standard - - -\family typewriter -\series bold -wget -r http://www.linuxcnc.org/iso/emc2.2.2-1-ubuntu6.06-desktop-i386.iso -\layout Standard - -Pour reprendre un tlchargement interrompu ajoutez l'option -c wget: -\layout Standard - - -\family typewriter -\series bold -wget -r -c http://www.linuxcnc.org/hardy/ubuntu-8.04-desktop-emc2-aj07-i386.iso -\layout Standard - -Pour stopper un tlchargement utilisez Ctrl-C ou fermer la fentre du terminal. -\layout Standard - -Aprs que le tlchargement soit termin vous trouverez un nouveau rpertoire - appel www.linuxcnc.org ou quelque chose de similaire. - Dans ce rpertoire vous trouverez l'image ISO du CD. - Il ne vous restera plus qu' la graver. -\layout Subsection - -Sous Windows -\layout Standard - -Le programme wget est galement disponible pour Windows depuis -\layout Standard - -http://gnuwin32.sourceforge.net/packages/wget.htm -\layout Standard - -Suivez les instructions de la page web pour tlcharger et installer le - programme wget sous Windows. -\layout Standard - -Pour lancer wget ouvrez la fentre DOS. - -\layout Standard - -Dans la plupart des Windows elle est dans Programmes/Accessoires/Commande -\layout Standard - -Naviguez jusqu'au rpertoire dans lequel s'est install wget. - -\layout Standard - -Habituellement il est dans C: -\backslash -Program Files -\backslash -GnuWin32 -\backslash -bin si c'est le cas, tapez la commande: -\layout Standard - - -\family typewriter -\series bold -cd C: -\backslash -Program Files -\backslash -GnuWin32 -\backslash -bin -\layout Standard - -et le prompt devrait changer pour C: -\backslash -Program Files -\backslash -GnuWin32> -\layout Standard - -Tapez les commandes wget dans la fentre DOS et pressez Entre comme prcdemmen -t. -\layout Section - -Graver le CD -\layout Standard - -EMC2 est distribu sous la forme d'un fichier image de CD, appele image - ISO. - Pour installer EMC2, vous devez d'abord graver cette image ISO sur un CD. - Vous devez disposer d'un graveur de CD/DVD et d'un CD vierge de 80 minutes - (700 Mio). - Si la gravure du CD choue, essayez de le graver une vitesse plus lente. -\layout Subsection - -Sous Linux -\layout Standard - -Avant de graver un CD, il est fortement recommand de vrifier la somme - de contrle md5 (hash) du fichier de l'image iso. -\layout Standard - -Ouvrez un terminal. - Dans Ubuntu il est dans Applications/Accessoires/Terminal. -\layout Standard - -Allez dans le rpertoire contenant l'image ISO prcdemment tlcharge. -\layout Standard - - -\family typewriter -\series bold -cd rpertoire_de_l'image -\layout Standard - -Puis lancez la commande md5sum suivie du nom du fichier, exemple: -\layout Standard - - -\family typewriter -\series bold -md5sum ubuntu-8.04-desktop-emc2-aj07-i386.iso -\layout Standard - -La commande md5sum doit retourner une simple ligne aprs le calcul de la - somme de contrle. - Sur une machine lente le calcul peut prendre plusieurs minutes, exemple - de retour: -\layout Standard - - -\family typewriter -\series bold -91c5abb84386091e0ff056e9ebc40fdb ubuntu-8.04-desktop-emc2-aj07-i386.iso -\layout Standard - -Il reste comparer avec la somme md5 fournie sur la page de tlchargement - d'EMC2. -\layout Standard - -Graver l'image ISO sur un CD -\layout Enumerate - -Inserez un CD vierge dans votre graveur. - Une fentre surgissante "CD/DVD Creator" ou "Choisissez le type de disque" - va s'ouvrir. - Fermez la, elle ne sera pas utilise. -\layout Enumerate - -Naviguez jusqu'au rpertoire contenant l'image ISO. -\layout Enumerate - -Faites un click droit sur le fichier de l'image ISO et choisissez Graver - le Disque. -\layout Enumerate - -Slectionnez la vitesse de gravure. - Pour graver le CD Live d'EMC2 il est recommand de graver la vitesse - la plus lente possible pour viter toute erreur de gravure. -\layout Enumerate - -Lancez la gravure. -\layout Enumerate - -Si le choix d'un nom de fichier est demand pour l'image disque, cliquez - juste OK. -\layout Subsection - -Sous Windows -\layout Standard - -Avant de graver un CD, il est fortement recommand de vrifier la somme - de contrle md5 (hash) du fichier de l'image iso. -\layout Standard - -Windows ne dispose pas de programme de contrle du md5. - Vous devrez en installer un pour vrifier la somme de contrle de l'ISO. - Plus d'informations sont disponibles ici: -\layout Standard - -https://help.ubuntu.com/community/HowToMD5SUM -\layout Standard - -Gravez l'ISO sur un CD -\layout Enumerate - -Vous pouvez tlcharger Infra Recorder, un logiciel de gravure d'images - gratuit et open source. -\layout Enumerate - -Inserez un CD vierge dans le graveur slectionnez Quitter ou Cancel si un - auto-run dmarre. -\layout Enumerate - -Lancez Infra Recorder et choisissez le menu 'Actions' puis 'Graver l'image'. -\layout Section - -Tester EMC2 -\layout Standard - -Avec le CD Live d'EMC2 dans le lecteur de CD/DVD redmarrez votre PC de - sorte qu'il dmarre sur le CD Live. - Quand l'ordinateur a redmarr vous pouvez essayer EMC2 sans l'installer. - Vous ne pouvez pas crer de configuration personnalise ni modifier les - rglages du systme comme la rsolution de l'cran sans installer EMC2. - -\layout Standard - -Pour lancer EMC2 allez dans le menu Applications/CNC et choisissez EMC2. - Puis slectionnez une configuration en sim (simulation) et essayez le. - -\layout Standard - -Pour savoir si votre ordinateur est utilisable par le gnrateur de trains - d'impulsions du logiciel, lancez un test de latence comme indiqu la - section ( -\begin_inset LatexCommand \ref{sec:Test de latence} - -\end_inset - -) -\layout Section - -Installer EMC2 -\layout Standard - -Si vous avez envie d'aller plus loin, cliquez juste sur l'icne Install - se trouvant sur le bureau, rpondez quelques questions (votre nom, votre - fuseau horaire, le mot de passe) et faites une installation complte en - quelques minutes. - Notez bien le mot de passe indiqu et le nom d'utilisateur. - Une fois l'installation complte et que vous tes connect, le gestionnaire - de mises jour vous proposera d'effectuer une mise jour vers la dernire - version stable d'EMC2 -\layout Section - -L'interface utilisateur Axis -\layout Standard - -L'interface AXIS est une des interfaces parmis lesquelles vous avez choisir. - Elle peut tre configure pour lui ajouter un panneau de commandes virtuel - personnalis en fonction des besoins. - AXIS est l'interface utilisateur par dfaut et est activement dveloppe. -\layout Standard -\align center - -\begin_inset Graphics - filename axis_fr.png - scale 50 - -\end_inset - - -\layout Section - -Mises jour d'EMC2 -\layout Standard - -Avec l'installation normale, si vous tes en ligne, le gestionnaire de mises - jour vous prviendra quand des mises jour d'EMC2 et d'Ubuntu seront - disponibles, vous pourrez alors facilement mettre votre systme jour - sans connaissances particulires de Linux. -\the_end diff --git a/docs/src/common/Glossary.lyx b/docs/src/common/Glossary.lyx deleted file mode 100644 index 54ad5815d..000000000 --- a/docs/src/common/Glossary.lyx +++ /dev/null @@ -1,1079 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement h -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Glossary -\end_layout - -\begin_layout Standard -A listing of terms and what they mean. - Some terms have a general meaning and several additional meanings for users, - installers, and developers. - -\end_layout - -\begin_layout Description -Acme\InsetSpace ~ -Screw -\begin_inset LatexCommand index -name "acme screw" - -\end_inset - - -\begin_inset LatexCommand label -name "AcmeScrew" - -\end_inset - - A type of lead-screw that uses an acme thread form. - Acme threads have somewhat lower friction and wear than simple triangular - threads, but ball-screws are lower yet. - Most manual machine tools use acme lead-screws. -\end_layout - -\begin_layout Description -Axis -\begin_inset LatexCommand index -name "axis" - -\end_inset - - -\begin_inset LatexCommand label -name "Axis" - -\end_inset - - One of the computer control movable parts of the machine. - For a typical vertical mill, the table is the X axis, the saddle is the - Y axis, and the quill or knee is the Z axis. - Additional linear axes parallel to X, Y, and Z are called U, V, and W respectiv -ely. - Angular axes like rotary tables are referred to as A, B, and C. -\end_layout - -\begin_layout Description -Axis -\begin_inset LatexCommand index -name "GUI" - -\end_inset - - One of the Graphical User Interfaces available to users of EMC2. - Features the modern use of menus and mouse buttons while automating and - hiding some of the more traditional EMC2 controls. - It is the only open-source interface that displays the entire tool path - as soon as a file is opened. - -\end_layout - -\begin_layout Description -Backlash -\begin_inset LatexCommand index -name "backlash" - -\end_inset - - -\begin_inset LatexCommand label -name "Backlash" - -\end_inset - - The amount of "play" or lost motion that occurs when direction is reversed - in a lead screw. - or other mechanical motion driving system. - It can result from nuts that are loose on leadscrews, slippage in belts, - cable slack, "wind-up" in rotary couplings, and other places where the - mechanical system is not "tight". - Backlash will result in inaccurate motion, or in the case of motion caused - by external forces (think cutting tool pulling on the work piece) the result - can be broken cutting tools. - This can happen because of the sudden increase in chip load on the cutter - as the work piece is pulled across the backlash distance by the cutting - tool. - -\end_layout - -\begin_layout Description -Backlash\InsetSpace ~ -Compensation -\begin_inset LatexCommand index -name "backlash compensation" - -\end_inset - - - Any technique that attempts to reduce the effect of backlash without - actually removing it from the mechanical system. - This is typically done in software in the controller. - This can correct the final resting place of the part in motion but fails - to solve problems related to direction changes while in motion (think circular - interpolation) and motion that is caused when external forces (think cutting - tool pulling on the work piece) are the source of the motion. -\end_layout - -\begin_layout Description -Ball\InsetSpace ~ -Screw -\begin_inset LatexCommand index -name "ball screw" - -\end_inset - - -\begin_inset LatexCommand label -name "Ballscrew" - -\end_inset - - A type of lead-screw that uses small hardened steel balls between the nut - and screw to reduce friction. - Ball-screws have very low friction and backlash, but are usually quite - expensive. -\end_layout - -\begin_layout Description -Ball\InsetSpace ~ -Nut -\begin_inset LatexCommand index -name "ball nut" - -\end_inset - - -\begin_inset LatexCommand label -name "Ballnut" - -\end_inset - - A special nut designed for use with a ball-screw. - It contains an internal passage to re-circulate the balls from one end - of the screw to the other. -\end_layout - -\begin_layout Description -CNC -\begin_inset LatexCommand index -name "CNC" - -\end_inset - - -\begin_inset LatexCommand label -name "CNC" - -\end_inset - - Computer Numerical Control. - The general term used to refer to computer control of machinery. - Instead of a human operator turning cranks to move a cutting tool, CNC - uses a computer and motors to move the tool, based on a part program . -\end_layout - -\begin_layout Description -Comp -\begin_inset LatexCommand index -name "comp" - -\end_inset - - -\begin_inset LatexCommand label -name "comp" - -\end_inset - - A tool used to build, compile and install EMC2 HAL components. -\end_layout - -\begin_layout Description -Configuration(n) A directory containing a set of configuration files. - Custom configurations are normally saved in the users home/emc2/configs - directory. - These files include EMC's traditional INI file and HAL files. - A configuration may also contain several general files that describe tools, - parameters, and NML connections. -\end_layout - -\begin_layout Description -Configuration(v) The task of setting up EMC2 so that it matches the hardware - on a machine tool. -\end_layout - -\begin_layout Description -Coordinate\InsetSpace ~ -Measuring\InsetSpace ~ -Machine -\begin_inset LatexCommand index -name "coordinate measuring machine" - -\end_inset - - A Coordinate Measuring Machine is used to make many accurate measurements - on parts. - These machines can be used to create CAD data for parts where no drawings - can be found, when a hand-made prototype needs to be digitized for moldmaking, - or to check the accuracy of machined or molded parts. - -\end_layout - -\begin_layout Description -Display\InsetSpace ~ -units -\begin_inset LatexCommand index -name "display units" - -\end_inset - - The linear and angular units used for onscreen display. -\end_layout - -\begin_layout Description -DRO -\begin_inset LatexCommand index -name "DRO" - -\end_inset - - A Digital Read Out is a device attached to the slides of a machine tool - or other device which has parts that move in a precise manner to indicate - the current location of the tool with respect to some reference position. - Nearly all DRO's use linear quadrature encoders to pick up position information - from the machine. - -\end_layout - -\begin_layout Description -EDM -\begin_inset LatexCommand index -name "EDM" - -\end_inset - - EDM is a method of removing metal in hard or difficult to machine or tough - metals, or where rotating tools would not be able to produce the desired - shape in a cost-effective manner. - An excellent example is rectangular punch dies, where sharp internal corners - are desired. - Milling operations can not give sharp internal corners with finite diameter - tools. - A wire EDM machine can make internal corners with a radius only slightly - larger than the wire's radius. - A 'sinker' EDM cam make corners with a radius only slightly larger than - the radius on the corner of the convex EDM electrode. - -\end_layout - -\begin_layout Description -EMC -\begin_inset LatexCommand index -name "EMC" - -\end_inset - - -\begin_inset LatexCommand label -name "EMC" - -\end_inset - - The Enhanced Machine Controller. - Initially a NIST project. - EMC is able to run a wide range of motion devices. -\end_layout - -\begin_layout Description -EMCIO -\begin_inset LatexCommand index -name "EMCIO" - -\end_inset - - -\begin_inset LatexCommand label -name "EMCIO" - -\end_inset - - The module within EMC that handles general purpose I/O, unrelated to the - actual motion of the axes. -\end_layout - -\begin_layout Description -EMCMOT -\begin_inset LatexCommand index -name "EMCMOT" - -\end_inset - - -\begin_inset LatexCommand label -name "EMCMOT" - -\end_inset - - The module within EMC that handles the actual motion of the cutting tool. - It runs as a real-time program and directly controls the motors. -\end_layout - -\begin_layout Description -Encoder -\begin_inset LatexCommand index -name "encoder" - -\end_inset - - -\begin_inset LatexCommand label -name "Encoder" - -\end_inset - - A device to measure position. - Usually a mechanical-optical device, which outputs a quadrature signal. - The signal can be counted by special hardware, or directly by the parport - with emc2. -\end_layout - -\begin_layout Description -Feed -\begin_inset LatexCommand index -name "feed" - -\end_inset - - -\begin_inset LatexCommand label -name "Feed" - -\end_inset - - Relatively slow, controlled motion of the tool used when making a cut. -\end_layout - -\begin_layout Description -Feed\InsetSpace ~ -rate -\begin_inset LatexCommand index -name "feed rate" - -\end_inset - - The speed at which a motion occurs. - In manual mode, jog speed can be set from the graphical interface. - In auto or mdi mode feed rate is commanded using a (f) word. - F10 would mean ten units per minute. -\end_layout - -\begin_layout Description -Feedback -\begin_inset LatexCommand index -name "feedback" - -\end_inset - - -\begin_inset LatexCommand label -name "Feedback" - -\end_inset - - A method (e.g., quadrature encoder signals) by which emc receives information - about the position of motors -\end_layout - -\begin_layout Description -Feed\InsetSpace ~ -rate\InsetSpace ~ -Override -\begin_inset LatexCommand index -name "feed override" - -\end_inset - - -\begin_inset LatexCommand label -name "FeedrateOveride" - -\end_inset - - A manual, operator controlled change in the rate at which the tool moves - while cutting. - Often used to allow the operator to adjust for tools that are a little - dull, or anything else that requires the feed rate to be -\begin_inset Quotes eld -\end_inset - -tweaked -\begin_inset Quotes erd -\end_inset - -. -\end_layout - -\begin_layout Description -Floating\InsetSpace ~ -Point\InsetSpace ~ -Number A number that has a decimal point. - (12.300) In HAL it is known as float. -\end_layout - -\begin_layout Description -G-Code -\begin_inset LatexCommand index -name "G-Code" - -\end_inset - - -\begin_inset LatexCommand label -name "G-Code" - -\end_inset - - The generic term used to refer to the most common part programming language. - There are several dialects of G-code, EMC uses RS274/NGC. -\end_layout - -\begin_layout Description -GUI -\begin_inset LatexCommand label -name "GUI" - -\end_inset - - -\begin_inset LatexCommand index -name "GUI" - -\end_inset - - Graphical User Interface. - -\end_layout - -\begin_deeper -\begin_layout Description -General A type of interface that allows communications between a computer - and human (in most cases) via the manipulation of icons and other elements - (widgets) on a computer screen. -\end_layout - -\begin_layout Description -EMC An application that presents a graphical screen to the machine operator - allowing manipulation of machine and the corresponding controlling program. -\end_layout - -\end_deeper -\begin_layout Description -HAL -\begin_inset LatexCommand index -name "HAL" - -\end_inset - - -\begin_inset LatexCommand label -name "HAL" - -\end_inset - - -\series bold -H -\series default -ardware -\series bold -A -\series default -bstraction -\series bold -L -\series default -ayer. - At the highest level, it is simply a way to allow a number of building - blocks to be loaded and interconnected to assemble a complex system. - Many of the building blocks are drivers for hardware devices. - However, HAL can do more than just configure hardware drivers. -\end_layout - -\begin_layout Description -Home -\begin_inset LatexCommand index -name "home" - -\end_inset - - -\begin_inset LatexCommand label -name "Home" - -\end_inset - - A specific location in the machine's work envelope that is used to make - sure the computer and the actual machine both agree on the tool position. -\end_layout - -\begin_layout Description -ini\InsetSpace ~ -file -\begin_inset LatexCommand index -name "INI" - -\end_inset - - -\begin_inset LatexCommand label -name "inifile" - -\end_inset - - A text file that contains most of the information that configures EMC for - a particular machine -\end_layout - -\begin_layout Description -Instance -\begin_inset LatexCommand index -name "Instance" - -\end_inset - - -\begin_inset LatexCommand label -name "Instance" - -\end_inset - - One can have an instance of a class or a particular object. - The instance is the actual object created at runtime. - In programmer jargon, the Lassie object is an instance of the Dog class. - -\end_layout - -\begin_layout Description -Joint\InsetSpace ~ -Coordinates -\begin_inset LatexCommand index -name "joint coordinates" - -\end_inset - - -\begin_inset LatexCommand label -name "Joint_Coordinates" - -\end_inset - - These specify the angles between the individual joints of the machine. - See also Kinematics -\end_layout - -\begin_layout Description -Jog -\begin_inset LatexCommand index -name "jog" - -\end_inset - - Manually moving an axis of a machine. - Jogging either moves the axis a fixed amount for each key-press, or moves - the axis at a constant speed as long as you hold down the key. -\end_layout - -\begin_layout Description -kernel-space -\begin_inset LatexCommand label -name "kernel-space" - -\end_inset - - See real-time. -\end_layout - -\begin_layout Description -Kinematics -\begin_inset LatexCommand index -name "kinematics" - -\end_inset - - -\begin_inset LatexCommand label -name "Kinematics" - -\end_inset - - The position relationship between world coordinates and joint coordinates - of a machine. - There are two types of kinematics. - Forward kinematics is used to calculate world coordinates from joint coordinate -s. - Inverse kinematics is used for exactly opposite purpose.Note that kinematics - does not take into account, the forces, moments etc. - on the machine. - It is for positioning only. -\end_layout - -\begin_layout Description -Lead-screw -\begin_inset LatexCommand index -name "lead screw" - -\end_inset - - -\begin_inset LatexCommand label -name "Leadscrew" - -\end_inset - - An screw that is rotated by a motor to move a table or other part of a - machine. - Lead-screws are usually either ball-screws or acme screws, although conventiona -l triangular threaded screws may be used where accuracy and long life are - not as important as low cost. -\end_layout - -\begin_layout Description -Machine\InsetSpace ~ -units -\begin_inset LatexCommand index -name "machine units" - -\end_inset - - The linear and angular units used for machine configuration. - These units are used in the inifile. - HAL pins and parameters are also generally in machine units. -\end_layout - -\begin_layout Description -MDI -\begin_inset LatexCommand index -name "MDI" - -\end_inset - - -\begin_inset LatexCommand label -name "MDI" - -\end_inset - - Manual Data Input. - This is a mode of operation where the controller executes single lines - of G-code as they are typed by the operator. -\end_layout - -\begin_layout Description -NIST -\begin_inset LatexCommand index -name "NIST" - -\end_inset - - -\begin_inset LatexCommand label -name "NIST" - -\end_inset - - National Institute of Standards and Technology. - An agency of the Department of Commerce in the United States. -\end_layout - -\begin_layout Description -Offsets -\begin_inset LatexCommand index -name "offsets" - -\end_inset - - -\begin_inset LatexCommand label -name "Offsets" - -\end_inset - - -\end_layout - -\begin_layout Description -Part\InsetSpace ~ -Program -\begin_inset LatexCommand index -name "part Program" - -\end_inset - - -\begin_inset LatexCommand label -name "PartProgram" - -\end_inset - - A description of a part, in a language that the controller can understand. - For EMC, that language is RS-274/NGC, commonly known as G-code. -\end_layout - -\begin_layout Description -Program\InsetSpace ~ -Units -\begin_inset LatexCommand index -name "program units" - -\end_inset - - The linear and angular units used for part programs. -\end_layout - -\begin_layout Description -Python General-purpose, very high-level programming language. - Used in EMC2 for the Axis GUI, the Stepconf configuration tool, and several - G-code programming scripts. -\end_layout - -\begin_layout Description -Rapid -\begin_inset LatexCommand index -name "rapid" - -\end_inset - - -\begin_inset LatexCommand label -name "Rapid" - -\end_inset - - Fast, possibly less precise motion of the tool, commonly used to move between - cuts. - If the tool meets the material during a rapid, it is probably a bad thing! -\end_layout - -\begin_layout Description -Real-time -\begin_inset LatexCommand index -name "real-time" - -\end_inset - - -\begin_inset LatexCommand label -name "real-time" - -\end_inset - - Software that is intended to meet very strict timing deadlines. - Under Linux, in order to meet these requirements it is necessary to install - RTAI or RTLINUX and build the software to run in those special environments. - For this reason real-time software runs in kernel-space. -\end_layout - -\begin_layout Description -RTAI -\begin_inset LatexCommand index -name "RTAI" - -\end_inset - - -\begin_inset LatexCommand label -name "RTAI" - -\end_inset - - Real Time Application Interface, see -\begin_inset LatexCommand url -target "https://www.rtai.org/" - -\end_inset - -, one of two real-time extensions for Linux that EMC can use to achieve - real-time performance. -\end_layout - -\begin_layout Description -RTLINUX -\begin_inset LatexCommand index -name "RTLINUX" - -\end_inset - - -\begin_inset LatexCommand label -name "RTLINUX" - -\end_inset - - See -\begin_inset LatexCommand url -target "http://www.rtlinux.org" - -\end_inset - -, one of two real-time extensions for Linux that EMC can use to achieve - real-time performance. -\end_layout - -\begin_layout Description -RTAPI -\begin_inset LatexCommand index -name "RTAPI" - -\end_inset - -A portable interface to real-time operating systems including RTAI and RTLINUX -\end_layout - -\begin_layout Description -RS-274/NGC -\begin_inset LatexCommand index -name "RS274NGC" - -\end_inset - - -\begin_inset LatexCommand label -name "RS274NGC" - -\end_inset - - The formal name for the language used by EMC part programs. - -\end_layout - -\begin_layout Description -Servo\InsetSpace ~ -Motor -\begin_inset LatexCommand index -name "servo motor" - -\end_inset - - -\begin_inset LatexCommand label -name "ServoMotor" - -\end_inset - - A special kind of motor that uses error-sensing feedback to correct the - position of an actuator. -\end_layout - -\begin_layout Description -Servo\InsetSpace ~ -Loop -\begin_inset LatexCommand index -name "loop" - -\end_inset - - -\begin_inset LatexCommand label -name "ServoLoop" - -\end_inset - - A control loop used to control position or velocity of an motor equipped - with a feedback device. -\end_layout - -\begin_layout Description -Signed\InsetSpace ~ -Integer -\begin_inset LatexCommand index -name "Signed Integer" - -\end_inset - - A whole number that can have a positive or negitive sign. - (-12) In HAL it is known as s32. -\end_layout - -\begin_layout Description -Spindle -\begin_inset LatexCommand index -name "spindle" - -\end_inset - - -\begin_inset LatexCommand label -name "Spindle" - -\end_inset - - On a mill or drill, the spindle holds the cutting tool. - On a lathe, the spindle holds the workpiece. -\end_layout - -\begin_layout Description -Spindle\InsetSpace ~ -Speed\InsetSpace ~ -Override A manual, operator controlled change in the rate at - which the tool rotates while cutting. - Often used to allow the operator to adjust for chatter caused by the cutter's - teeth. - Spindle\InsetSpace ~ -Speed\InsetSpace ~ -Override assume that the EMC2 software has been configured - to control spindle speed. -\end_layout - -\begin_layout Description -Stepconf An EMC2 configuration wizard. - It is able to handle many step-and-direction motion command based machines. - Writes a full configuration after the user answers a few questions about - the computer and machine to be run with. -\end_layout - -\begin_layout Description -Stepper\InsetSpace ~ -Motor -\begin_inset LatexCommand index -name "stepper motor" - -\end_inset - - -\begin_inset LatexCommand label -name "StepperMotor" - -\end_inset - - A type of motor that turns in fixed steps. - By counting steps, it is possible to determine how far the motor has turned. - If the load exceeds the torque capability of the motor, it will skip one - or more steps, causing position errors. -\end_layout - -\begin_layout Description -TASK -\begin_inset LatexCommand index -name "TASK" - -\end_inset - - -\begin_inset LatexCommand label -name "TASK" - -\end_inset - - The module within EMC that coordinates the overall execution and interprets - the part program. -\end_layout - -\begin_layout Description -Tcl/Tk -\begin_inset LatexCommand index -name "Tk" - -\end_inset - - -\begin_inset LatexCommand label -name "Tcl/Tk" - -\end_inset - - A scripting language and graphical widget toolkit with which several of - the EMC's GUI's and selection wizards were written. -\end_layout - -\begin_layout Description -Traverse\InsetSpace ~ -Move -\begin_inset LatexCommand index -name "Traverse Move" - -\end_inset - - A move in a straight line from the start point to the end point. -\end_layout - -\begin_layout Description -Units -\begin_inset LatexCommand index -name "units" - -\end_inset - - See "Machine Units", "Display Units", or "Program Units". -\end_layout - -\begin_layout Description -Unsigned\InsetSpace ~ -Integer -\begin_inset LatexCommand index -name "Unsigned Integer" - -\end_inset - - A whole number that has no sign. - (123) In HAL it is known as u32. -\end_layout - -\begin_layout Description -World\InsetSpace ~ -Coordinates -\begin_inset LatexCommand index -name "world coordinates" - -\end_inset - - -\begin_inset LatexCommand label -name "World_Coordinates" - -\end_inset - - This is the absolute frame of reference. - It gives coordinates in terms of a fixed reference frame that is attached - to some point (generally the base) of the machine tool. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Integrator_Concepts.lyx b/docs/src/common/Integrator_Concepts.lyx deleted file mode 100644 index 944ce2691..000000000 --- a/docs/src/common/Integrator_Concepts.lyx +++ /dev/null @@ -1,336 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Important Concepts -\end_layout - -\begin_layout Section -Stepper Systems -\end_layout - -\begin_layout Subsection -Base Period -\end_layout - -\begin_layout Standard -BASE_PERIOD is the "heartbeat" of your EMC computer. - Every period, the software step generator decides if it is time for another - step pulse. - A shorter period will allow you to generate more pulses per second, within - limits. - But if you go too short, your computer will spend so much time generating - step pulses that everything else will slow to a crawl, or maybe even lock - up. - Latency and stepper drive requirements affect the shortest period you can - use. -\end_layout - -\begin_layout Standard -Worst case latencies might only happen a few times a minute, and the odds - of bad latency happening just as the motor is changing direction are low. - So you can get very rare errors that ruin a part every once in a while - and are impossible to troubleshoot. -\end_layout - -\begin_layout Standard -The simplest way to avoid this problem is to choose a BASE_PERIOD that is - the sum of the longest timing requirement of your drive, and the worst - case latency of your computer. - This is not always the best choice for example if you are running a drive - with a 20uS hold time requirement, and your latency test said you have - a maximum latency of 11uS, then if you set the BASE_PERIOD to 20+11 = 31uS - and a not-so-nice 16,129 steps per second. - -\end_layout - -\begin_layout Standard -The problem is with the 20uS hold time requirement. - That plus the 11uS latency is what forces us to use a slow 31uS period. - But the EMC2 software step generator has some parameters that let you increase - the various time from one period to several. - For example, if steplen is changed from 1 to 2, then it there will be two - periods between the beginning and end of the step pulse. - Likewise, if dirhold is changed from 1 to 3, there will be at least three - periods between the step pulse and a change of the direction pin. -\end_layout - -\begin_layout Standard -If we can use dirhold to meet the 20uS hold time requirement, then the next - longest time is the 4.5uS high time. - Add the 11uS latency to the 4.5uS high time, and you get a minimum period - of 15.5uS. - When you try 15.5uS, you find that the computer is sluggish, so you settle - on 16uS. - If we leave dirhold at 1 (the default), then the minimum time between step - and direction is the 16uS period minus the 11uS latency = 5uS, which is - not enough. - We need another 15uS. - Since the period is 16uS, we need one more period. - So we change dirhold from 1 to 2. - Now the minimum time from the end of the step pulse to the changing direction - pin is 5+16=21uS, and we don't have to worry about the drive stepping the - wrong direction because of latency. - -\end_layout - -\begin_layout Standard -For more information on stepgen see Section ( -\begin_inset LatexCommand ref -reference "sec:Stepgen" - -\end_inset - -). -\end_layout - -\begin_layout Subsection -Step Timing -\end_layout - -\begin_layout Standard -Step Timing and Step Space on some drives are different. - In this case the Step point becomes important. - If the drive steps on the falling edge then the output pin should be inverted. - -\end_layout - -\begin_layout Section -Servos -\end_layout - -\begin_layout Subsection -Tuning -\end_layout - -\begin_layout Standard -Servo systems must be "tuned" as they don't quite work out of the box like - a stepper system might. - This is because servos don't "step" in fixed increments like steppers do. - PID is the "Black Magic" that makes your servos move where you want them - to move and when you want them to move. - -\end_layout - -\begin_layout Standard -PID stand for Proportional, Integral, and Derivative. - The Proportional value determines the reaction to the current error, the - Integral value determines the reaction based on the sum of recent errors, - and the Derivative value determines the reaction based on the rate at which - the error has been changing. - They are three common mathematical techniques that are applied to the task - of getting a working process to follow a set point. - In the case of EMC the process we want to control is actual axis position - and the set point is the commanded axis position. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -PID Loop -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pid-feedback.png - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -By "tuning" the three constants in the PID controller algorithm, the controller - can provide control action designed for specific process requirements. - The response of the controller can be described in terms of the responsiveness - of the controller to an error, the degree to which the controller overshoots - the set point and the degree of system oscillation. -\end_layout - -\begin_layout Subsection -Proportional term -\end_layout - -\begin_layout Standard -The proportional term (sometimes called gain) makes a change to the output - that is proportional to the current error value. - A high proportional gain results in a large change in the output for a - given change in the error. - If the proportional gain is too high, the system can become unstable. - In contrast, a small gain results in a small output response to a large - input error. - If the proportional gain is too low, the control action may be too small - when responding to system disturbances. -\end_layout - -\begin_layout Standard -In the absence of disturbances, pure proportional control will not settle - at its target value, but will retain a steady state error that is a function - of the proportional gain and the process gain. - Despite the steady-state offset, both tuning theory and industrial practice - indicate that it is the proportional term that should contribute the bulk - of the output change. -\end_layout - -\begin_layout Subsection -Integral term -\end_layout - -\begin_layout Standard -The contribution from the integral term (sometimes called reset) is proportional - to both the magnitude of the error and the duration of the error. - Summing the instantaneous error over time (integrating the error) gives - the accumulated offset that should have been corrected previously. - The accumulated error is then multiplied by the integral gain and added - to the controller output. -\end_layout - -\begin_layout Standard -The integral term (when added to the proportional term) accelerates the - movement of the process towards set point and eliminates the residual steady-st -ate error that occurs with a proportional only controller. - However, since the integral term is responding to accumulated errors from - the past, it can cause the present value to overshoot the set point value - (cross over the set point and then create a deviation in the other direction). -\end_layout - -\begin_layout Subsection -Derivative term -\end_layout - -\begin_layout Standard -The rate of change of the process error is calculated by determining the - slope of the error over time (i.e. - its first derivative with respect to time) and multiplying this rate of - change by the derivative gain. -\end_layout - -\begin_layout Standard -The derivative term slows the rate of change of the controller output and - this effect is most noticeable close to the controller set point. - Hence, derivative control is used to reduce the magnitude of the overshoot - produced by the integral component and improve the combined controller-process - stability. -\end_layout - -\begin_layout Subsection -Loop tuning -\end_layout - -\begin_layout Standard -If the PID controller parameters (the gains of the proportional, integral - and derivative terms) are chosen incorrectly, the controlled process input - can be unstable, i.e. - its output diverges, with or without oscillation, and is limited only by - saturation or mechanical breakage. - Tuning a control loop is the adjustment of its control parameters (gain/proport -ional band, integral gain/reset, derivative gain/rate) to the optimum values - for the desired control response. -\end_layout - -\begin_layout Subsection -Manual tuning -\end_layout - -\begin_layout Standard -A simple tuning method is to first set the I and D values to zero. - Increase the P until the output of the loop oscillates, then the P should - be set to be approximately half of that value for a "quarter amplitude - decay" type response. - Then increase I until any offset is correct in sufficient time for the - process. - However, too much I will cause instability. - Finally, increase D, if required, until the loop is acceptably quick to - reach its reference after a load disturbance. - However, too much D will cause excessive response and overshoot. - A fast PID loop tuning usually overshoots slightly to reach the set point - more quickly; however, some systems cannot accept overshoot, in which case - an "over-damped" closed-loop system is required, which will require a P - setting significantly less than half that of the P setting causing oscillation. -\end_layout - -\begin_layout Section -RTAI -\end_layout - -\begin_layout Standard -The Real Time Application Interface (RTAI) is used to provide the best Real - Time (RT) performance. - The RTAI patched kernel lets you write applications with strict timing - constraints. - RTAI gives you the ability to have things like software step generation - which require precise timing. -\end_layout - -\begin_layout Subsection* -ACPI -\end_layout - -\begin_layout Standard -The Advanced Configuration and Power Interface (ACPI) has a lot of different - functions, most of which interfere with RT performance (for example: power - management, CPU power down, CPU frequency scaling, etc). - The EMC2 kernel (and probably all RTAI-patched kernels) has ACPI disabled. - ACPI also takes care of powering down the system after a shutdown has been - started, and that's why you need to push the power button to completely - turn off your computer. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Linux_FAQ.lyx b/docs/src/common/Linux_FAQ.lyx deleted file mode 100644 index 6b91f5815..000000000 --- a/docs/src/common/Linux_FAQ.lyx +++ /dev/null @@ -1,583 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble - -\end_preamble -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Linux FAQ -\begin_inset LatexCommand index -name "Linux FAQ" - -\end_inset - - -\end_layout - -\begin_layout Standard -These are some basic Linux commands and techniques for new to Linux users. - More complete information can be found on the web or by using the man pages. -\end_layout - -\begin_layout Section -Automatic Login -\begin_inset LatexCommand index -name "Automatic Login" - -\end_inset - - -\end_layout - -\begin_layout Standard -When you install EMC2 with the Ubuntu LiveCD the default is to have to log - in each time you turn the computer on. - To enable automatic login go to System/Administration/Login Window. - If it is a fresh install the Login Window might take a second or three - to pop up. - You will have to have your password that you used for the install to gain - access to the Login Window Preferences window. - In the Security tab check off Enable Automatic Login and pick a user name - from the list (that would be you). - -\end_layout - -\begin_layout Section -Automatic Startup -\begin_inset LatexCommand index -name "Automatic Startup" - -\end_inset - - -\end_layout - -\begin_layout Standard -To have EMC start automatically with your config after turning on the computer - go to System/Preferences/Sessions Startup Programs , add new. - Navigate to your config and select the .ini file. - When the file picker dialog closes add emc and a space in front of the - path to your .ini file. -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code -emc /home/mill/emc2/config/mill/mill.ini -\end_layout - -\begin_layout Section -Man Pages -\begin_inset LatexCommand index -name "Man Pages" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Man-Pages" - -\end_inset - - -\end_layout - -\begin_layout Standard -Man pages are automatically generated manual pages in most cases. - Man pages are usually available for most programs and commands in Linux. -\end_layout - -\begin_layout Standard -To view a man page open up a terminal window by going to Applications, Accessori -es, Terminal. - For example if you wanted to find out something about the find command - in the terminal window type: -\end_layout - -\begin_layout Quote -man find -\end_layout - -\begin_layout Standard -Use the Page Up and Page Down keys to view the man page and the Q key to - quit viewing. -\end_layout - -\begin_layout Section -List Modules -\end_layout - -\begin_layout Standard -Sometimes when troubleshooting you need to get a list of modules that are - loaded. - In a terminal window type: -\end_layout - -\begin_layout Quote -lsmod -\end_layout - -\begin_layout Standard -If you want to send the output from lsmod to a text file in a terminal window - type: -\end_layout - -\begin_layout Quote -lsmod > mymod.txt -\end_layout - -\begin_layout Standard -The resulting text file will be located in the home directory if you did - not change directories when you opened up the terminal window and it will - be named mymod.txt or what ever you named it. -\end_layout - -\begin_layout Section -Editing a Root File -\begin_inset LatexCommand index -name "Editing a Root File" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Editing-a-Root-File" - -\end_inset - - -\end_layout - -\begin_layout Standard -When you open the file browser and you see the Owner of the file is root - you must do extra steps to edit that file. - Editing some root files can have bad results. - Be careful when editing root files. - You can open and view most root files normally but they will open in -\begin_inset Quotes eld -\end_inset - -read only -\begin_inset Quotes erd -\end_inset - - mode. -\end_layout - -\begin_layout Subsection -The Command Line Way -\begin_inset LatexCommand index -name "sudo gedit" - -\end_inset - - -\end_layout - -\begin_layout Standard -Open up Applications, Accessories, Terminal. -\end_layout - -\begin_layout Standard -In the terminal window type -\end_layout - -\begin_layout Quote -sudo gedit -\end_layout - -\begin_layout Standard -Open the file with File, Open then edit -\end_layout - -\begin_layout Subsection -The GUI Way -\begin_inset LatexCommand index -name "gksudo" - -\end_inset - - -\end_layout - -\begin_layout Enumerate -Right click on the desktop and select Create Launcher -\end_layout - -\begin_layout Enumerate -Type a name in like sudo edit -\end_layout - -\begin_layout Enumerate -Type -\family typewriter -\series bold -gksudo "gnome-open %u" -\family default -\series default - as the command and save the launcher to your desktop -\end_layout - -\begin_layout Enumerate -Drag a file onto your launcher to open and edit -\end_layout - -\begin_layout Subsection -Root Access -\end_layout - -\begin_layout Standard -In Ubuntu you can become root by typing in "sudo -i" in a terminal window - then typing in your password. - You can really foul up things if you don't know what your doing as root. -\end_layout - -\begin_layout Section -Terminal Commands -\begin_inset LatexCommand index -name "Terminal Commands" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Terminal-Commands" - -\end_inset - - -\end_layout - -\begin_layout Subsection -Working Directory -\begin_inset LatexCommand index -name "Working Directory" - -\end_inset - - -\begin_inset LatexCommand index -name "pwd" - -\end_inset - - -\end_layout - -\begin_layout Standard -To find out the path to the present working directory in the terminal window - type: -\end_layout - -\begin_layout Quote -pwd -\end_layout - -\begin_layout Subsection -Changing Directories -\begin_inset LatexCommand index -name "Changing Directories" - -\end_inset - - -\begin_inset LatexCommand index -name "cd" - -\end_inset - - -\end_layout - -\begin_layout Standard -To move up one level in the terminal window type: -\end_layout - -\begin_layout Quote -cd .. -\end_layout - -\begin_layout Standard -To move up two levels in the terminal window type: -\end_layout - -\begin_layout Quote -cd ../.. -\end_layout - -\begin_layout Standard -To move down to the emc2/configs subdirectory in the terminal window type: -\end_layout - -\begin_layout Quote -cd emc2/configs -\end_layout - -\begin_layout Subsection -Listing files in a directory -\begin_inset LatexCommand index -name "Listing files in a directory" - -\end_inset - - -\begin_inset LatexCommand index -name "dir" - -\end_inset - - -\begin_inset LatexCommand index -name "ls" - -\end_inset - - -\end_layout - -\begin_layout Standard -To view a list of all the files and subdirectories in the terminal window - type: -\end_layout - -\begin_layout Quote -dir -\end_layout - -\begin_layout Standard -or -\end_layout - -\begin_layout Quote -ls -\end_layout - -\begin_layout Subsection -Finding a File -\begin_inset LatexCommand index -name "Finding a File" - -\end_inset - - -\begin_inset LatexCommand index -name "find" - -\end_inset - - -\end_layout - -\begin_layout Standard -The find command can be a bit confusing to a new Linux user. - The basic syntax is: -\end_layout - -\begin_layout Quote -find starting-directory parameters actions -\end_layout - -\begin_layout Standard -For example to find all the .ini files in your emc2 directory you first need - to use the pwd command to find out the directory. - Open a new terminal window and type: -\end_layout - -\begin_layout Quote -pwd -\end_layout - -\begin_layout Standard -might return the following result -\end_layout - -\begin_layout Quote -/home/joe -\end_layout - -\begin_layout Standard -With this information put the command together like this: -\end_layout - -\begin_layout Quote -find /home/joe/emc2 -name *.ini -print -\end_layout - -\begin_layout Standard -The -name is the name of the file your looking for and the -print tells - it to print out the result to the terminal window. - The *.ini tells find to return all files that have the .ini extension. - -\end_layout - -\begin_layout Standard -To find all the files in the directory named and all the subdirectories - under that add the -L option to the find command like this: -\end_layout - -\begin_layout Quote -find -L /home/joe/emc2 -name *.ini -print -\end_layout - -\begin_layout Subsection -Searching for Text -\begin_inset LatexCommand index -name "Searching for Text" - -\end_inset - - -\begin_inset LatexCommand index -name "grep" - -\end_inset - - -\end_layout - -\begin_layout Quote -grep -i -r 'text to search for' * -\end_layout - -\begin_layout Standard -To find all the files that contain the 'text to search for' in the current - directory and all the subdirectories below the current while ignoring the - case. - The -i is for ignore case and the -r is for recursive (include all subdirectori -es in the search). - The * is a wild card for search all files. -\end_layout - -\begin_layout Subsection -Bootup Messages -\end_layout - -\begin_layout Standard -To view the bootup messages use "dmesg" from the command window. - To save the bootup messages to a file use the redirection operator like - this: -\end_layout - -\begin_layout Quote -dmesg > bootmsg.txt -\end_layout - -\begin_layout Standard -The contents of this file can be copied and pasted on line to share with - people trying to help you diagnose your problem. - -\end_layout - -\begin_layout Standard -To clear the message buffer type this: -\end_layout - -\begin_layout Quote -sudo dmesg -c -\end_layout - -\begin_layout Standard -This can be useful to do just before you launch EMC to only show the infomation - related to the start up of EMC. - -\end_layout - -\begin_layout Section -Convenience Items -\end_layout - -\begin_layout Subsection -Terminal Launcher -\end_layout - -\begin_layout Standard -If you want to add a terminal launcher to the panel bar on top of the screen - you typically can right click on the panel at the top of the screen and - select "Add to Panel". - Select Custom Application Launcher and Add. - Give it a name and put gnome-terminal in the command box. -\end_layout - -\begin_layout Section -Hardware Problems -\end_layout - -\begin_layout Subsection -Hardware Info -\end_layout - -\begin_layout Standard -To find out what hardware is connected to your motherboard in a terminal - window type: -\end_layout - -\begin_layout LyX-Code -lspci -v -\end_layout - -\begin_layout Subsection -Monitor Resolution -\end_layout - -\begin_layout Standard -During installation Ubuntu attempts to detect the monitor settings. - If this fails you are left with a generic monitor with a maximum resolution - of 800x600. - -\end_layout - -\begin_layout Standard -Instructions for fixing this are located here: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "https://help.ubuntu.com/community/FixVideoResolutionHowto" - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Linux_FAQ_fr.lyx b/docs/src/common/Linux_FAQ_fr.lyx deleted file mode 100644 index f7d5a3ba5..000000000 --- a/docs/src/common/Linux_FAQ_fr.lyx +++ /dev/null @@ -1,602 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding default -\fontscheme default -\graphics default -\float_placement !!h -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Petite FAQ Linux -\begin_inset LatexCommand \index{Linux FAQ} - -\end_inset - - -\layout Standard - -Voici quelques commandes et techniques de base pour l'utilisateur dbutant - sous Linux. - Beaucoup d'autres informations peuvent tre trouves sur -\begin_inset LatexCommand \htmlurl[le site web]{http://www.linuxcnc.org/} - -\end_inset - - ou dans les man pages. -\layout Section - -Login automatique -\layout Standard - -Quand vous installez EMC2 avec le CD-Live Ubuntu, par dfaut vous devez - passer par la fentre de connexion chaque dmarrage du PC. - Pour activer le login automatique ouvrez le menu -\begin_inset Quotes fld -\end_inset - -Systme -\begin_inset Quotes frd -\end_inset - - -> -\begin_inset Quotes fld -\end_inset - -Administration -\begin_inset Quotes frd -\end_inset - --> -\begin_inset Quotes fld -\end_inset - -Fentre de connexion -\begin_inset Quotes frd -\end_inset - -. - Si l'installation est rcente la fentre de connexion peut prendre quelques - secondes pour s'ouvrir. - Vous devez entrer le mot de passe utilis pour l'installation pour accder - la fentre des prfrences. - Ouvrez alors l'onglet -\begin_inset Quotes fld -\end_inset - -Scurit -\begin_inset Quotes frd -\end_inset - -, cochez la case -\begin_inset Quotes fld -\end_inset - -Activer les connexions automatiques -\begin_inset Quotes frd -\end_inset - - et saisissez votre nom d'utilisateur ou choisissez en un dans la liste - droulante. - Vous tes maintenant dispens de la fentre de connexion. - -\layout Section - -Les Man Pages -\begin_inset LatexCommand \index{Man Pages} - -\end_inset - - -\begin_inset LatexCommand \label{sec:Man-Pages} - -\end_inset - - -\layout Standard - -Les Man pages sont des pages de manuel gnres automatiquement le plus - souvent. - Les Man pages existent pour quasiment tous les programmes et les commandes - de Linux. -\layout Standard - -Pour visualiser une man page ouvrez un terminal depuis Applications > Accessoire -s > Terminal. - Par exemple si vous voulez trouver quelques choses concernant la commande - -\begin_inset Quotes fld -\end_inset - -find -\begin_inset Quotes frd -\end_inset - -, tapez alors dans le terminal: -\layout Standard - - -\family typewriter -\series bold -man find -\layout Standard - -Utilisez les touches -\begin_inset Quotes fld -\end_inset - -Vers le haut -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Vers le bas -\begin_inset Quotes frd -\end_inset - - pour faire dfiler le texte et la touche -\begin_inset Quotes fld -\end_inset - -Q -\begin_inset Quotes frd -\end_inset - - pour quitter. -\layout Section - -Lister les modules du noyau -\layout Standard - -En cas de problme il est parfois utile de connatre la liste des modules - du noyau qui sont chargs. - Ouvrez une console et tapez: -\layout Standard - - -\family typewriter -\series bold -lsmod -\layout Standard - -Si vous voulez, pour le consulter tranquillement, envoyer le rsultat de - la commande dans un fichier, tapez la sous cette forme: -\layout Standard - - -\family typewriter -\series bold -lsmod > mes_modules.txt -\layout Standard - -Le fichier mes_modules.txt rsultant se trouvera alors dans votre rpertoire - home si c'est de l que vous avez ouvert la console. -\layout Section - -Editer un fichier en root -\begin_inset LatexCommand \index{Editer un fichier en root} - -\end_inset - - -\begin_inset LatexCommand \label{sec:Editer-un-fichier-en-root} - -\end_inset - - -\layout Standard - -Editer certains fichiers du systme en root peut donner des rsultats inattendus -! Soyez trs vigilant quand vous ditez en root. - Vous pouvez ouvrir et lire de nombreux fichiers systmes appartenant au - root qui sont en mode lecture seule. -\layout Subsection - -A la ligne de commande -\begin_inset LatexCommand \index{sudo gedit} - -\end_inset - - -\layout Standard - -Ouvrir un terminal depuis Applications > Accessoires > Terminal. -\layout Standard - -Dans ce terminal, tapez: -\layout Standard - - -\family typewriter -\series bold -sudo gedit -\layout Standard - -Ouvrez un fichier depuis Fichiers, Ouvrir puis ditez le. -\layout Subsection - -En mode graphique -\begin_inset LatexCommand \index{gksudo} - -\end_inset - - -\layout Enumerate - -Faites un click droit sur le bureau et choisissez Crer un lanceur. -\layout Enumerate - -Tapez un nom tel que -\begin_inset Quotes fld -\end_inset - -diteur, dans la zone -\begin_inset Quotes fld -\end_inset - -Nom -\begin_inset Quotes frd -\end_inset - - -\begin_inset Quotes frd -\end_inset - -. -\layout Enumerate - -Entrez -\family typewriter -\series bold - gksudo -\begin_inset Quotes eld -\end_inset - -gnome-open %u -\begin_inset Quotes erd -\end_inset - - -\family default -\series default - dans la zone -\begin_inset Quotes fld -\end_inset - -Commande -\begin_inset Quotes frd -\end_inset - - et validez. -\layout Enumerate - -Glissez un fichier et dposez le sur votre lanceur, il s'ouvrira alors dans - l'diteur. -\layout Section - -Commandes du terminal -\begin_inset LatexCommand \index{Terminal Commands} - -\end_inset - - -\begin_inset LatexCommand \label{sec:Commandes-Terminal} - -\end_inset - - -\layout Subsection - -Rpertoire de travail -\begin_inset LatexCommand \index{repertoire de travail} - -\end_inset - - -\begin_inset LatexCommand \index{pwd} - -\end_inset - - -\layout Standard - -Pour afficher le chemin du rpertoire courant dans le terminal tapez: -\layout Standard - - -\family typewriter -\series bold -pwd -\layout Subsection - -Changer de rpertoire -\begin_inset LatexCommand \index{Changer de repertoire} - -\end_inset - - -\begin_inset LatexCommand \index{cd} - -\end_inset - - -\layout Standard - -Pour remonter dans le rpertoire prcdent, tapez dans le terminal: -\layout Standard - - -\family typewriter -\series bold - cd .. -\layout Standard - -Pour remonter de deux niveaux de rpertoire, tapez dans le terminal: -\layout Standard - - -\family typewriter -\series bold - cd ../.. -\layout Standard - -Pour aller directement dans le sous-rpertoire emc2/configs tapez: -\layout Standard - - -\family typewriter -\series bold -cd emc2/configs -\layout Subsection - -Lister les fichiers du rpertoire courant -\begin_inset LatexCommand \index{Lister le répertoire courant} - -\end_inset - - -\begin_inset LatexCommand \index{dir} - -\end_inset - - -\begin_inset LatexCommand \index{ls} - -\end_inset - - -\layout Standard - -Pour voir le contenu du rpertoire courant tapez: -\layout Standard - - -\family typewriter -\series bold -dir -\layout Standard - -ou -\layout Standard - - -\family typewriter -\series bold -ls -\layout Subsection - -Trouver un fichier -\begin_inset LatexCommand \index{Trouver un fichier} - -\end_inset - - -\begin_inset LatexCommand \index{find} - -\end_inset - - -\layout Standard - -La commande -\begin_inset Quotes fld -\end_inset - -find -\begin_inset Quotes frd -\end_inset - - peut tre un peu droutante pour le nouvel utilisateur de Linux. - La syntaxe de base est: -\layout Standard - - -\family typewriter -\series bold -find rpertoire_de_dpart paramtres actions -\layout Standard - -Par exemple, pour trouver tous les fichiers .ini dans votre rpertoire emc2 - utilisez d'abord la commande -\begin_inset Quotes fld -\end_inset - -pwd -\begin_inset Quotes frd -\end_inset - - pour trouver le rpertoire courant. - Ouvrez un nouveau terminal et tapez: -\layout Standard - - -\family typewriter -\series bold -pwd -\layout Standard - -il vous est retourn par exemple le rsultat suivant: -\layout Standard - - -\family typewriter -\series bold -/home/robert -\layout Standard - -Avec cette information vous pouvez taper, par exemple, la commande: -\layout Standard - - -\family typewriter -\series bold -find /home/robert/emc2 -name *.ini -print -\layout Standard - -Le -\emph on --name -\emph default - est le nom de fichier que vous recherchez et le -\emph on --print -\emph default - indique find d'afficher le rsultat dans le terminal. - Le -\emph on -*.ini -\emph default - indique find de retourner tous les fichiers contenant l'extension -\emph on -.ini -\emph default - -\layout Subsection - -Rechercher un texte -\begin_inset LatexCommand \index{Rechercher un texte} - -\end_inset - - -\begin_inset LatexCommand \index{grep} - -\end_inset - - -\layout Standard - -Tapez dans un terminal: -\layout Standard - - -\family typewriter -\series bold -grep -i -r 'texte rechercher' * -\family default -\series default - -\layout Standard - -Pour trouver tous les fichiers contenant le texte -\emph on -'texte rechercher' -\emph default - dans le rpertoire courant et tous ses sous-rpertoires et en ignorant - la casse. - Le paramtre -i demande d'ignorer la casse et le -r demande une recherche - rcursive (qui inclus tous les sous-rpertoires dans la recherche). - Le caractre * est un jocker indiquant -\begin_inset Quotes fld -\end_inset - -tous les fichiers -\begin_inset Quotes frd -\end_inset - -. -\layout Subsection - -Messages du boot -\layout Standard - -Pour visualiser les messages du boot utilisez la commande -\begin_inset Quotes fld -\end_inset - -dmesg -\begin_inset Quotes frd -\end_inset - - depuis un terminal. - Pour enregistrer ces messages dans un fichier redirigez les avec: -\layout Quote - - -\family typewriter -\series bold -dmesg > dmesg.txt -\layout Standard - -Le contenu de ce fichier pourra alors tre copi et coll destination - des personnes en ligne qui vous aideront diagnostiquer votre problme. - -\layout Section - -Problmes matriels -\layout Subsection - -Informations sur le matriel -\layout Standard - -Pour voir la liste du matriel utilis par votre carte mre, tapez la commande - suivante dans un terminal: -\layout LyX-Code - - -\family typewriter -\series bold -lspci -v -\layout Subsection - -Rsolution du moniteur -\layout Standard - -Lors de l'installation d'Ubuntu les rglages du moniteur sont dtects. - Il peut arriver que a fonctionne mal et que la rsolution ne soit que - celle d'un moniteur gnrique en 800x600. - -\layout Standard - -Pour rsoudre ce cas, suivez les instructions donnes ici: -\layout Standard - - -\begin_inset LatexCommand \url{https://help.ubuntu.com/community/FixVideoResolutionHowto} - -\end_inset - - -\the_end diff --git a/docs/src/common/Stepper_Diagnostics.lyx b/docs/src/common/Stepper_Diagnostics.lyx deleted file mode 100644 index 3f4948ca5..000000000 --- a/docs/src/common/Stepper_Diagnostics.lyx +++ /dev/null @@ -1,283 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Steppers -\end_layout - -\begin_layout Standard -If what you get is not what you expect many times you just got some experience. - Learning from the experience increases your understanding of the whole. - Diagnosing problems is best done by divide and conquer. - By this I mean if you can remove 1/2 of the variables from the equation - each time you will find the problem the fastest. - In the real world this is not always the case but a good place to start - usually. - -\end_layout - -\begin_layout Section -Common Problems -\end_layout - -\begin_layout Subsection -Stepper Moves One Step -\end_layout - -\begin_layout Standard -The most common reason in a new installation for the stepper not to move - is the step and direction signals are backwards. - If you press the jog foward and backward key and the stepper moves one - step each time in the same direction there is your sign. -\end_layout - -\begin_layout Subsection -No Steppers Move -\end_layout - -\begin_layout Standard -Many drives have an enable pin or need a charge pump to enable the output. - -\end_layout - -\begin_layout Subsection -Distance Not Correct -\end_layout - -\begin_layout Standard -If you command the axis to move a specific distance and it does not move - that distance then your scale is wrong. -\end_layout - -\begin_layout Section -Error Messages -\end_layout - -\begin_layout Subsection -Following Error -\end_layout - -\begin_layout Standard -The concept of a following error is funny when talking about stepper motors. - Since they are an open loop system, there is no position feedback to let - you know if you actually are out of range. - EMC calculates if it can keep up with the motion called for and if not - then it gives a following error. - Following errors usually are the result of one of the following on stepper - systems. -\end_layout - -\begin_layout Itemize -FERROR to small -\end_layout - -\begin_layout Itemize -MIN_FERROR to small -\end_layout - -\begin_layout Itemize -MAX_VELOCITY to fast -\end_layout - -\begin_layout Itemize -MAX_ACCELERATION to fast -\end_layout - -\begin_layout Itemize -BASE_PERIOD set to long -\end_layout - -\begin_layout Itemize -Backlash added to an axis -\end_layout - -\begin_layout Standard -Any of the above can cause the RT pulsing to not be able to keep up the - requested step rate. - This can happen if you didn't run the latency test long enough to get a - good number to plug into the Stepconf Wizard or if you set the Maximum - Velocity or Maximum Acceleration too high. - -\end_layout - -\begin_layout Standard -If you added backlash you need to increase the STEPGEN_MAXACCEL up to double - the MAX_ACCELERATION in the AXIS section of the INI file for each axis - you added backlash to. - EMC uses "extra acceleration" at a reversal to take up the backlash. - Without backlash correction step generator acceleration can be just a few - percent above the motion planner acceleration. -\end_layout - -\begin_layout Subsection -RTAPI Error -\end_layout - -\begin_layout Standard -When you get this error: -\end_layout - -\begin_layout Quote -RTAPI: ERROR: Unexpected realtime delay on task n -\end_layout - -\begin_layout Standard -This error is generated by rtapi based on an indication from rtai that a - deadline was missed. - It is usually an indication that the BASE_PERIOD in the [EMCMOT] section - of the ini file is set too low. - You should run the Latency Test for an extended period of time to see if - you have any delays that would cause this problem. - If you used the Stepconf Wizard run it again and test the Base Period Jitter - again and adjust the Base Period Maximum Jitter on the Basic Machine Informatio -n page. - You might have to leave the test running for an extended period of time - to find out if some hardware causes intermittent problems. -\end_layout - -\begin_layout Standard -EMC2 tracks the number of CPU cycles between invocations of the real-time - thread. - If some element of your hardware is causing delays or your realtime threads - are set too fast you will get this error. - -\end_layout - -\begin_layout Standard -NOTE: This error is only displayed once per session. - If you had your BASE_PERIOD too low you could get hundreds of thousands - of error messages per second if more than one was displayed. -\end_layout - -\begin_layout Standard - -\end_layout - -\begin_layout Section -Testing -\end_layout - -\begin_layout Subsection -Step Timing -\end_layout - -\begin_layout Standard -If you are seeing an axis ending up in the wrong location over multiple - moves, it is likely that you do not have the correct direction hold times - or step timing for your stepper drivers. - Each direction change may be losing a step or more. - If the motors are stalling, it is also possible you have either the MAX_ACCELER -ATION or MAX_VELOCITY set too high for that axis. - -\end_layout - -\begin_layout Standard -The following program will test the Z axis configuration for proper setup. - Copy the program to your emc2/nc_files directory and name it TestZ.ngc or - similar. - Zero your machine with Z = 0.000 at the table top. - Load and run the program. - It will make 200 moves back and forth from 0.5 to 1". - If you have a configuration issue, you will find that the final position - will not end up 0.500" that the axis window is showing. - To test another axis just replace the Z with your axis in the G0 lines. -\end_layout - -\begin_layout Quote -( test program to see if Z axis loses position ) -\newline -( msg, test 1 of Z axis - configuration ) -\newline -G20 #1000=100 ( loop 100 times ) -\newline -( this loop has delays after - moves ) -\newline -( tests acc and velocity settings ) -\newline -o100 while [#1000] -\newline -G0 Z1.000 -\newline -G4 - P0.250 -\newline -G0 Z0.500 -\newline -G4 P0.250 -\newline -#1000 = [#1000 - 1] -\newline -o100 endwhile -\newline -( msg, test 2 of Z - axis configuration S to continue) -\newline -M1 (stop here) -\newline -#1000=100 ( loop 100 times - ) -\newline -( the next loop has no delays after moves ) -\newline -( tests direction hold times - on driver config and also max accel setting ) -\newline -o101 while [#1000] -\newline -G0 Z1.000 -\newline -G0 - Z0.500 -\newline -#1000 = [#1000 - 1] -\newline -o101 endwhile -\newline -( msg, Done...Z should be exactly .5" - above table ) -\newline -M2 -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/Stepper_Diagnostics_fr.lyx b/docs/src/common/Stepper_Diagnostics_fr.lyx deleted file mode 100644 index 14f297cc2..000000000 --- a/docs/src/common/Stepper_Diagnostics_fr.lyx +++ /dev/null @@ -1,296 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Moteurs pas pas -\layout Standard - -Si ce que vous obtenez ne correspond pas ce que vous espriez, la plupart - du temps c'est juste un petit manque d'exprience. - Accrotre son exprience permet souvent une meilleure comprhension globale. - Porter un diagnostic sur plusieurs problmes est toujours plus facile en - les prenant sparment, de mme qu'une quation dont on a rduit le nombre - de variables est toujours plus rapide rsoudre. - Dans le monde rel ce n'est pas toujours le cas mais c'est une bonne voie - suivre. - -\layout Section - -Problmes communs -\layout Subsection - -Le moteur n'avance que d'un pas -\layout Standard - -La raison la plus frquente dans une nouvelle installation pour que le moteur - ne bouge pas est l'interversion entre le signal de pas et le signal de - direction. - Si, quand vous pressez le bouton de jog dans un sens puis dans l'autre, - le moteur n'avance que d'un pas chaque fois et toujours dans la mme - direction, vous tes dans ce cas. -\layout Subsection - -Le moteur ne bouge pas -\layout Standard - -Certaine interfaces de pilotage de moteurs ont une broche d'activation (enable) - ou demandent un signal de pompe de charge pour activer leurs sorties. - -\layout Subsection - -Distance incorrecte -\layout Standard - -Si vous commandez une distance de dplacement prcise sur un axe et que - le dplacement rel ne correspond pas, alors l'chelle de l'axe n'est pas - bonne. -\layout Section - -Messages d'erreur -\layout Subsection - -Erreur de suivi -\layout Standard - -Le concept d'erreur de suivi est trange quand il s'agit de moteurs pas - pas. - Etant un systme en boucle ouverte, aucune contre raction ne permet de - savoir si le suivi est correct ou non. - EMC calcule si il peut maintenir le suivi demand par une commande, si - ce n'est pas possible il stoppe le mouvement et affiche une erreur de suivi. - Les erreurs de suivi sur les systmes pas pas sont habituellement les - suivantes: -\layout Itemize - -FERROR to small - (FERROR trop petit) -\layout Itemize - -MIN_FERROR to small - (MIN_FERROR trop petit) -\layout Itemize - -MAX_VELOCITY to fast - (MAX_VELOCITY trop rapide) -\layout Itemize - -MAX_ACCELERATION to fast - (MAX_ACCELERATION trop rapide) -\layout Itemize - -BASE_PERIOD set to long - (BASE_PERIOD trop longue) -\layout Itemize - -Backlash ajout un axe (rattrapage de jeu) -\layout Standard - -Toutes ces erreurs se produisent lorsque l'horloge temps rel n'est pas - capable de fournir le nombre de pas ncessaire pour maintenir la vitesse - requise par le rglage de la variable BASE_PERIOD. - Ce qui peut se produire, par exemple aprs un test de latence trop bref - pour obtenir un valeur fiable, dans ce cas, revenir une valeur plus proche - de ce qu'elle tait et ressayez. - C'est galement le cas quand les valeurs de vitesse maximum et d'acclration - maximum sont trop leves. -\layout Standard - -Si un backlash a t ajout, il est ncessaire d'augmenter STEPGEN_MAXACCEL - aux environs du double de MAX_ACCELERATION dans la section [AXIS] du fichier - INI et ce, pour chacun des axes sur lesquels un backlash a t ajout. - EMC2 utilise une "extra acclration" au moment de l'inversion de sens - pour reprendre le jeu. - Sans correction du backlash, l'acclration pour le gnrateur de pas peut - tre juste un peu plus basse que celle du planificateur de mouvements. -\layout Subsection - -Erreur de RTAPI -\layout Standard - -Quand vous rencontrez cette erreur: -\layout Quote - -RTAPI: ERROR: Unexpected realtime delay on task n -\layout Standard - -C'est gnralement que la variable BASE_PERIOD dans la section [EMCMOT] - du fichier ini a une valeur trop petite. - Vous devez lancer un -\begin_inset Quotes fld -\end_inset - -Latency Test -\begin_inset Quotes frd -\end_inset - - pendant une dure plus longue pour voir si vous n'avez pas un dlai excessif - quelque part, responsable de ce problme. - Si c'est le cas rajuster alors BASE_PERIOD avec la nouvelle valeur obtenue. - -\layout Standard - -EMC2 vrifie le nombre de cycles du CPU entre les invocations du thread - temps rel. - Si certains lments de votre matriel provoquent un dlai excessif ou - que les threads sont ajusts des valeurs trop rapides, vous rencontrerez - cette erreur. - -\layout Standard - -NOTE: Cette erreur n'est affiche qu'une seule fois par session. - En effet, si votre BASE_PERIOD tait trop basse vous pourriez avoir des - centaines de milliers de messages d'erreur par seconde si plus d'un tait - affich. -\layout Standard - - -\begin_inset Note -collapsed false - -\layout Standard - -lien vers latency-test -\end_inset - - -\layout Section - -Tester -\layout Subsection - -Tester le timing des pas -\layout Standard - -Si un de vos axes vibre, grogne ou fait des petits mouvements dans toutes - les directions, c'est rvlateur d'un mauvais timing d'impulsions de pas - de ce moteur. - Les paramtres du pilote matriel sont a vrifier et a ajuster. - Il peut aussi y avoir des pertes de pas aux changements de direction. - Si le moteur cale compltement, il est aussi possible que les paramtres - MAX_ACCELERATION ou MAX_VELOCITY aient des valeurs trop leves. - -\layout Standard - -Le programme suivant vrifie que la configuration de l'axe Z est correcte. - Copiez le programme dans le rpertoire de votre emc2/nc_files nommez le - -\begin_inset Quotes fld -\end_inset - -TestZ.ngc -\begin_inset Quotes frd -\end_inset - - ou similaire. - Initialisez votre machine avec Z = 0.000 sur le dessus de la table. - Chargez et lancez le programme. - Il va effectuer 200 mouvements d'aller et retour entre 10.00 et 30.00mm. - Si vous avez un problme de configuration, la position de l'axe Z affiche - la fin du programme, soit 10.00mm, ne correspondra pas la position mesure. - Pour tester un autre axe remplacez simplement le Z des G0 par le nouvel - axe. -\layout LyX-Code - -( Faite Z=0 au dessus de la table avant de dmarrer! ) -\layout LyX-Code - -( Ce programme teste les pertes de position en Z ) -\layout LyX-Code - -( msg, test 1 de la configuration de l'axe Z ) -\layout LyX-Code - -G21 #1000=100 ( boucle 100 fois ) -\layout LyX-Code - -( cette boucle comporte un delai aprs chaque mouvement ) -\layout LyX-Code - -( test des rglages d'acclration et de vitesse ) -\layout LyX-Code - -o100 while [#1000] -\layout LyX-Code - - G0 Z30.000 -\layout LyX-Code - - G4 P0.250 -\layout LyX-Code - - G0 Z10.000 -\layout LyX-Code - - G4 P0.250 -\layout LyX-Code - - #1000 = [#1000 - 1] -\layout LyX-Code - -o100 endwhile -\layout LyX-Code - -( msg, test 2 de la configuration de l'axe Z, pressez S pour continuer) - -\layout LyX-Code - -M1 (un arrt ici) -\layout LyX-Code - -#1000=100 ( boucle 100 fois ) -\layout LyX-Code - -( Les boucles suivantes n'ont plus de dlai en fin de mouvements ) -\layout LyX-Code - -( test des -\begin_inset Quotes fld -\end_inset - -hold times -\begin_inset Quotes frd -\end_inset - - de la conf. - du pilote et le rglage de max accel ) -\layout LyX-Code - -o101 while [#1000] -\layout LyX-Code - - G0 Z30.000 . -\layout LyX-Code - - G0 Z10.000 -\layout LyX-Code - - #1000 = [#1000 - 1] -\layout LyX-Code - -o101 endwhile -\layout LyX-Code - -( msg, Fin Z doit tre 10mm au dessus de la table ) -\layout LyX-Code - -M2 -\the_end diff --git a/docs/src/common/System_Requirements.lyx b/docs/src/common/System_Requirements.lyx deleted file mode 100644 index 8d44aecee..000000000 --- a/docs/src/common/System_Requirements.lyx +++ /dev/null @@ -1,145 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble - -\end_preamble -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Computer -\end_layout - -\begin_layout Section -Minimum Requirements -\begin_inset LatexCommand index -name "Minimum Requirements" - -\end_inset - - -\end_layout - -\begin_layout Standard -The minimum system to run EMC2 and Ubuntu may vary depending on the exact - usage. - Stepper systems in general require faster threads to generate step pulses - than servo systems. - Using the Live-CD you can test the software before committing a computer. - Keep in mind that the Latency Test numbers are more important than the - processor speed for software step generation. - More information on the Latency Test is in Section ( -\begin_inset LatexCommand ref -reference "sub:Latency-Test" - -\end_inset - -). -\end_layout - -\begin_layout Standard -Additional information is on the EMC Wiki site: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Hardware_Requirements" - -\end_inset - - -\end_layout - -\begin_layout Standard -EMC2 and Ubuntu should run reasonably well on a computer with the following - minimum hardware specification. - These numbers are not the absolute minimum but will give reasonable performance - for most stepper systems. - -\end_layout - -\begin_layout Itemize -700 MHz x86 processor (1.2 GHz x86 processor recommended) -\end_layout - -\begin_layout Itemize -384 MB of RAM (512 MB up to 1 GB recommended) -\end_layout - -\begin_layout Itemize -4 GB hard disk -\end_layout - -\begin_layout Itemize -Graphics card capable of at least 800x600 resolution, which is not using - the NVidia or ATI fglrx proprietary drivers, and which is not an onboard - video chipset that shares main memory with the CPU -\end_layout - -\begin_layout Itemize -A network or Internet connection (not strictly needed, but very useful for - updates and for communicating with the EMC community) -\end_layout - -\begin_layout Section -Problematic Hardware -\end_layout - -\begin_layout Subsection -Laptops -\end_layout - -\begin_layout Standard -Laptops are not generally suited to real time software step generation. - Again a Latency Test run for an extended time will give you the info you - need to determine suitability. -\end_layout - -\begin_layout Subsection -Video Cards -\end_layout - -\begin_layout Standard -If your installation pops up with 800 x 600 screen resolution then most - likely Ubuntu does not recognize your video card or monitor. - Onboard video many times causes bad real time performance. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/System_Requirements_fr.lyx b/docs/src/common/System_Requirements_fr.lyx deleted file mode 100644 index 09d540911..000000000 --- a/docs/src/common/System_Requirements_fr.lyx +++ /dev/null @@ -1,115 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Quel ordinateur -\layout Section - -Configuration minimale -\begin_inset LatexCommand \index{Configuration minimale} - -\end_inset - - -\layout Standard - -La configuration minimale pour faire tourner EMC2 sous Ubuntu varie selon - l'usage envisag. - Les moteurs pas pas en gnral exigent, pour gnrer leurs trains d'impulsion -s de pas, des machines plus rapides que les systmes servomoteurs. - Il est possible de tester le logiciel partir du CD-Live avant de l'installer - sur un ordinateur. - Guarder l'esprit que les valeurs retournes par le test de latence (Latency - Test), sont plus importantes que la vitesse du P pour la gnration logicielle - des pas. - Plus d'informations propos du test de latence dans la section ( -\begin_inset LatexCommand \ref{sec:Test de latence} - -\end_inset - -). -\layout Standard - -Autres informations additionnelles sur le Wiki d'EMC2: -\layout Standard - - -\begin_inset LatexCommand \url{http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Hardware_Requirements} - -\end_inset - - -\layout Standard - -EMC2 et Ubuntu doivent fonctionner raisonnablement bien sur la configuration - matrielle minimale suivante. - Ces valeurs ne sont pas des valeurs minimales absolues mais donneront des - performances acceptables de la plupart des systmes moteurs pas pas. - -\layout Itemize - -Microprocesseur x86 700 MHz (x86 1.2 GHz recommand) -\layout Itemize - -384 Mio de RAM (512 Mio ou plus de 1 Gio recommand) -\layout Itemize - -8 GB d'espace disque -\layout Itemize - -Carte graphique avec une rsolution minimale de 1024x768 -\layout Itemize - -Une connection Internet ou rseau (optionnelle mais trs pratique pour les - mises jour) -\layout Itemize - -Carte son (optionnelle) -\layout Section - -Problmatique du matriel -\layout Subsection - -Les portables -\layout Standard - -Les portables donnent gnralement de pitres performances pour les tches - temps rel utilises pour la gnration logicielle de pas. - Encore une fois, lancer un test de latence sur une grande priode de temps - vous permettra de dterminer si le portable envisag est utilisable ou - non. -\layout Subsection - -Les cartes graphiques -\layout Standard - -Si votre installation se termine par un cran avec une rsolution de 800 - x 600 il est alors probable que Ubuntu n'a pas reconnu votre carte graphique. - Les cartes graphiques intgres aux cartes mres donnent souvent de mauvaises - performances temps rel. - -\the_end diff --git a/docs/src/common/Updating_EMC.lyx b/docs/src/common/Updating_EMC.lyx deleted file mode 100644 index ab8743648..000000000 --- a/docs/src/common/Updating_EMC.lyx +++ /dev/null @@ -1,173 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Upgrading EMC2 -\end_layout - -\begin_layout Standard -The following instructions only apply to Ubuntu 8.04 "Hardy Heron". - EMC 2.4 is not available for older releases of Ubuntu. -\end_layout - -\begin_layout Standard -Because there are several minor incompatibilities between 2.3.5 and 2.4.x, your - existing install will not automatically be updated to 2.4.x. - If you want to run 2.4.x, change to the EMC-2.4 repository by following these - instructions: -\end_layout - -\begin_layout Standard -run System/Administration/Synaptic Package Manager -\end_layout - -\begin_layout Standard -go to Settings/Repositories -\end_layout - -\begin_layout Standard -In the list of Third-Party software there should be at least two lines for - linuxcnc.org. -\end_layout - -\begin_layout Standard -For each of them: -\end_layout - -\begin_layout Itemize -Select the line and click Edit -\end_layout - -\begin_layout Itemize -on the Components line, change emc2.3 to emc2.4 -\end_layout - -\begin_layout Itemize -Click OK -\end_layout - -\begin_layout Standard -Close the "Software Preferences" window -\end_layout - -\begin_layout Standard -Click "Reload" as instructed -\end_layout - -\begin_layout Standard -Click "Mark All Upgrades" -\end_layout - -\begin_layout Standard -If you use a mesa card, find the proper hostmot2-firmware package for your - card and mark it for installation. - Hint: do a search for "hostmot2-firmware in the synaptic package manager. -\end_layout - -\begin_layout Standard -Click "Apply" -\end_layout - -\begin_layout Section* -Changes between 2.3.x and 2.4.x -\end_layout - -\begin_layout Standard -Once you have done the upgrade, update any custom configurations by following - these instructions: -\end_layout - -\begin_layout Subsection* -emc.nml changes -\end_layout - -\begin_layout Standard -For configurations that have not customized emc.nml, remove the inifile line - NML_FILE = emc.nml. - This will cause the most up to date version of emc.nml to be used. -\end_layout - -\begin_layout Standard -For configurations that have customized emc.nml, a change similar to this - one is required. -\end_layout - -\begin_layout Standard -Failure to do this can cause an error like "libnml/buffer/physmem.cc 143: - PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size - 10208." -\end_layout - -\begin_layout Subsection* -tool table changes -\end_layout - -\begin_layout Standard -The format of the tool table has been changed incompatibly. - The documentation shows the new format. - The tool table will automatically be converted to the new format. -\end_layout - -\begin_layout Subsection* -hostmot2 firmware images -\end_layout - -\begin_layout Standard -The hostmot2 firmware images are now a separate package. - You can: -\end_layout - -\begin_layout Itemize -Continue using an already-installed emc2-firmware-mesa-* 2.3.x package -\end_layout - -\begin_layout Itemize -Install the new packages from the synaptic package manager. - The new packages are named hostmot2-firmware-* -\end_layout - -\begin_layout Itemize -Download the firmware images as tar files from http://emergent.unpy.net/0126762256 -1 and install them manually -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/User_Concepts.lyx b/docs/src/common/User_Concepts.lyx deleted file mode 100644 index f076dd891..000000000 --- a/docs/src/common/User_Concepts.lyx +++ /dev/null @@ -1,517 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -User Concepts -\end_layout - -\begin_layout Standard -This chapter covers important user concepts that should be understood before - attempting to run a CNC machine with g code. -\end_layout - -\begin_layout Section -Trajectory Control -\end_layout - -\begin_layout Subsection -Trajectory Planning -\end_layout - -\begin_layout Standard -Trajectory planning, in general, is the means by which EMC follows the path - specified by your G Code program, while still operating within the limits - of your machinery. - -\end_layout - -\begin_layout Standard -A G Code program can never be fully obeyed. - For example imagine you specify as a single-line program the following - move: -\end_layout - -\begin_layout Quote -G1 X1 F10 (G1 is linear move, X1 is the destination, F10 is the speed) -\end_layout - -\begin_layout Standard -In reality, the whole move can't be made at F10, since the machine must - accelerate from a stop, move toward X=1, and then decelerate to stop again. - Sometimes part of the move is done at F10, but for many moves, especially - short ones, the specified feed rate is never reached at all. - Having short moves in your G Code can cause your machine to slow down and - speed up for the longer moves if the "naive cam detector" is not employed - with G64 Pn. -\end_layout - -\begin_layout Standard -The basic acceleration and deceleration described above is not complex and - there is no compromise to be made. - In the INI file the specified machine constraints such as maximum axis - velocity and axis acceleration must be obeyed by the trajectory planner. -\end_layout - -\begin_layout Subsection -Path Following -\end_layout - -\begin_layout Standard -A less straightforward problem is that of path following. - When you program a corner in G Code, the trajectory planner can do several - things, all of which are right in some cases: it can decelerate to a stop - exactly at the coordinates of the corner, and then accelerate in the new - direction. - It can also do what is called blending, which is to keep the feed rate - up while going through the corner, making it necessary to round the corner - off in order to obey machine constraints. - You can see that there is a trade off here: you can slow down to get better - path following, or keep the speed up and have worse path following. - Depending on the particular cut, the material, the tooling, etc., the programmer - may want to compromise differently. -\end_layout - -\begin_layout Standard -Rapid moves also obey the current trajectory control. - With moves long enough to reach maximum velocity on a machine with low - acceleration and no path tolerance specified, you can get a fairly round - corner. - -\end_layout - -\begin_layout Subsection -Programming the Planner -\end_layout - -\begin_layout Standard -The trajectory control commands are as follows: -\end_layout - -\begin_layout Description -G61 (Exact Path Mode) visits the programmed point exactly, even though that - means it might temporarily come to a complete stop in order to change direction - to the next programmed point. - -\end_layout - -\begin_layout Description -G61.1 (Exact Stop Mode) tells the planner to come to an exact stop at every - segment's end. - -\end_layout - -\begin_layout Description -G64 (Blend Without Tolerance Mode) G64 is the default setting when you start - EMC. - G64 is just blending and the naive cam detector is not enabled. - G64 and G64P0 tell the planner to sacrifice path following accuracy in - order to keep the feed rate up. - This is necessary for some types of material or tooling where exact stops - are harmful, and can work great as long as the programmer is careful to - keep in mind that the tool's path will be somewhat more curvy than the - program specifies. - When using G0 (rapid) moves with G64 use caution on clearance moves and - allow enough distance to clear obstacles based on the acceleration capabilities - of your machine. -\end_layout - -\begin_layout Description -G64\InsetSpace ~ -P-\InsetSpace ~ -Q- (Blend With Tolerance Mode) This enables the "naive cam detector" - and enables blending with a tolerance. - If you program G64 P0.05, you tell the planner that you want continuous - feed, but at programmed corners you want it to slow down enough so that - the tool path can stay within 0.05 user units of the programmed path. - The exact amount of slowdown depends on the geometry of the programmed - corner and the machine constraints, but the only thing the programmer needs - to worry about is the tolerance. - This gives the programmer complete control over the path following compromise. - The blend tolerance can be changed throughout the program as necessary. - Beware that a specification of G64 P0 has the same effect as G64 alone - (above), which is necessary for backward compatibility for old G Code programs. - See the G Code Chapter for more information on G64 P- Q-. -\end_layout - -\begin_layout Description -Blending\InsetSpace ~ -without\InsetSpace ~ -tolerance The controlled point will touch each specified - movement at at least one point. - The machine will never move at such a speed that it cannot come to an exact - stop at the end of the current movement (or next movement, if you pause - when blending has already started). - The distance from the end point of the move is as large as it needs to - be to keep up the best contouring feed. -\end_layout - -\begin_layout Description -Naive\InsetSpace ~ -Cam\InsetSpace ~ -Detector Successive G1 moves that involve only the XYZ axes that - deviate less than Q- from a straight line are merged into a single straight - line. - This merged movement replaces the individual G1 movements for the purposes - of blending with tolerance. - Between successive movements, the controlled point will pass no more than - P- from the actual endpoints of the movements. - The controlled point will touch at least one point on each movement. - The machine will never move at such a speed that it cannot come to an exact - stop at the end of the current movement (or next movement, if you pause - when blending has already started) On G2/3 moves in the G17 (XY) plane - when the maximum deviation of an arc from a straight line is less than - the G64 Q- tolerance the arc is broken into two lines (from start of arc - to midpoint, and from midpoint to end). - those lines are then subject to the naive cam algorithm for lines. - Thus, line-arc, arc-arc, and arc-line cases as well as line-line benefit - from the "naive cam detector". - This improves contouring performance by simplifying the path. - -\end_layout - -\begin_layout Standard -In the following figure the blue line represents the actual machine velocity. - The red lines are the acceleration capability of the machine. - The horizontal lines below each plot is the planned move. - The upper plot shows how the trajectory planner will slow the machine down - when short moves are encountered to stay within the limits of the machines - acceleration setting to be able to come to an exact stop at the end of - the next move. - The bottom plot shows the effect of the Naive Cam Detector to combine the - moves and do a better job of keeping the velocity as planned. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Naive Cam Detector -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/naive-cam.png - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Planning Moves -\end_layout - -\begin_layout Standard -Make sure moves are "long enough" to suit your machine/material. - Principally because of the rule that "the machine will never move at such - a speed that it cannot come to a complete stop at the end of the current - movement", there is a minimum movement length that will allow the machine - to keep up a requested feed rate with a given acceleration setting. - -\end_layout - -\begin_layout Standard -The acceleration and deceleration phase each use half the ini file MAX_ACCELERAT -ION. - In a blend that is an exact reversal, this causes the total axis acceleration - to equal the ini file MAX_ACCELERATION. - In other cases, the actual machine acceleration is somewhat less than the - ini file acceleration -\end_layout - -\begin_layout Standard -To keep up feed rate, the move must be longer than the distance it takes - to accelerate from 0 to the desired feed rate and then stop again. - Using A as 1/2 the ini file MAX_ACCELERATION and F as the feed rate *in - units per second*, the acceleration time is ta = F/A and the acceleration - distance is -\begin_inset Formula $da=(1/2)*F*ta$ -\end_inset - - the deceleration time and distance are the same, making the critical distance - d = da + dd = 2*da = F^2 / A. - -\end_layout - -\begin_layout Standard -For example, for a feed rate of 1 inch per second and an acceleration of - 10 inch/sec^2, the critical distance is 1^2 / 10 = .1 inch. - For a feed rate of .5 inch per second, the critical distance is .5^2 / 10 - = .025 inch. - -\end_layout - -\begin_layout Section -G Code -\end_layout - -\begin_layout Subsection -Defaults -\end_layout - -\begin_layout Standard -When EMC first starts up many G and M codes are loaded by default. - The current active G and M codes can be viewed on the MDI tab in the "Active - G-Codes:" window in the AXIS interface. - These G and M codes define the behavior of EMC and it is important that - you understand what each one does before running EMC. - The defaults can be changed when running a G-Code file and left in a different - state than when you started your EMC session. - The best practice is to set the defaults needed for the job in the preamble - of your G-Code file and not assume that the defaults have not changed. - Printing out the G-Code Quick Reference ( -\begin_inset LatexCommand ref -reference "sec:Quick-Reference-Table" - -\end_inset - -) page can help you remember what each one is. -\end_layout - -\begin_layout Subsection -Feed Rate -\end_layout - -\begin_layout Standard -How the feed rate is applied depends on if an axis involved with the move - is a rotary axis. - Read and understand the Feed Rate section ( -\begin_inset LatexCommand ref -reference "sub:Feed-Rate" - -\end_inset - -) if you have a rotary axis or a lathe. -\end_layout - -\begin_layout Subsection -Tool Radius Offset -\end_layout - -\begin_layout Standard -Tool Radius Offset (G41/42) requires that the tool be able to touch somewhere - along each programmed move without gouging the two adjacent moves. - If that is not possible with the current tool diameter you will get an - error. - A smaller diameter tool may run without an error on the same path. - This means you can program a cutter to pass down a path that is narrower - than the cutter without any errors. - See the Tool Compensation Section ( -\begin_inset LatexCommand ref -reference "sec:Cutter-Radius-Compensation" - -\end_inset - -) for more information. -\end_layout - -\begin_layout Section -Homing -\end_layout - -\begin_layout Standard -After starting EMC2 each axis must be homed prior to running a program or - running a MDI command. - -\end_layout - -\begin_layout Standard -If you want to deviate from the default behavior, or want to use the Mini - interface you will need to set the option NO_FORCE_HOMING = 1 in the [TRAJ] - section of your ini file. - More information on homing can be found in the Integrators Manual. -\end_layout - -\begin_layout Section -Tool Changes -\end_layout - -\begin_layout Standard -There are several options when doing manual tool changes. - See the [EMCIO] section of the Integrators Manual for information on configurat -ion of these options. - Also see the G28 and G30 section of the User Manual. -\end_layout - -\begin_layout Section -Coordinate Systems -\end_layout - -\begin_layout Standard -The Coordinate Systems can be confusing at first. - Before running a CNC machine you must understand the basics of the coordinate - systems used by EMC. - In depth information on the EMC Coordinate Systems is in the coordinate - section -\begin_inset LatexCommand ref -reference "cha:Coordinate-System" - -\end_inset - - of this manual. -\end_layout - -\begin_layout Subsection -G53 Machine Coordinate -\end_layout - -\begin_layout Standard -When you home EMC you set the G53 Machine Coordinate System to 0 for each - axis homed. - -\end_layout - -\begin_layout Itemize -No other coordinate systems or tool offsets are changed by homing. - -\end_layout - -\begin_layout Standard -The only time you move in the G53 machine coordinate system is when you - program a G53 on the same line as a move. - Normally you are in the G54 coordinate system. -\end_layout - -\begin_layout Subsection -G54-59.3 User Coordinates -\end_layout - -\begin_layout Standard -Normally you use the G54 Coordinate System. - When an offset is applied to a current user coordinate system a small blue - ball with lines will be at the machine origin when your DRO is displaying - "Position: Relative Actual" in Axis. - If your offsets are temporary use the Zero Coordinate System from the Machine - menu or program G10 L2 P1 X0 Y0 Z0 at the end of your G Code file. - Change the "P" number to suit the coordinate system you wish to clear the - offset in. - -\end_layout - -\begin_layout Itemize -Offsets stored in a user coordinate system are retained when EMC is shut - down. -\end_layout - -\begin_layout Itemize -Using the "Touch Off" button in Axis sets an offset for the chosen User - Coordinate System. -\end_layout - -\begin_layout Subsection -When You're Lost -\end_layout - -\begin_layout Standard -If you're having trouble getting 0,0,0 on the DRO when you think you should, - you may have some offsets programmed in and need to remove them. - -\end_layout - -\begin_layout Itemize -Move to the Machine origin with -\newline -G53 G0 X0 Y0 Z0 -\end_layout - -\begin_layout Itemize -Clear any G92 offset with -\newline -G92.1 -\end_layout - -\begin_layout Itemize -Use the G54 coordinate system with -\newline -G54 -\end_layout - -\begin_layout Itemize -Set the G54 coordinate system to be the same as the machine coordinate system - with -\newline -G10 L2 P1 X0 Y0 Z0 -\end_layout - -\begin_layout Itemize -Turn off tool offsets with -\newline -G49 -\end_layout - -\begin_layout Itemize -Turn on the Relative Coordinate Display from the menu -\end_layout - -\begin_layout Standard -Now you should be at the machine origin X0 Y0 Z0 and the relative coordinate - system should be the same as the machine coordinate system. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/User_Concepts_fr.lyx b/docs/src/common/User_Concepts_fr.lyx deleted file mode 100644 index 915a2b794..000000000 --- a/docs/src/common/User_Concepts_fr.lyx +++ /dev/null @@ -1,336 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Concepts importants -\layout Standard - -Ce chapitre couvre les concepts importants qui doivent tre assimils avant - d'essayer de dmarrer un fichier de G-code. -\layout Section - -Contrle de trajectoire -\layout Subsection - -La planification de trajectoire -\layout Standard - -La planification de trajectoire est en gnral, le moyen qui permet EMC2 - de suivre le chemin spcifi par le programme G-code, tout en restant dans - les limites permises par la machine. - -\layout Standard - -Un programme en G-code ne peut jamais tre totalement suivi. - Par exemple imaginez que vous spcifiez dans une ligne du programme les - mouvements suivants: -\layout LyX-Code - -G1 X10 F100 (G1 un mouvement linaire, X10 la destination, F100 la vitesse) -\layout Standard - -En ralit, la totalit du mouvement ne peut pas tre effectue F100, - puisque la machine commence le mouvement une vitesse nulle, elle doit - acclrer pour se dplacer vers X=10, puis dclrer pour revenir une - vitesse nulle en fin de mouvement. - Parfois une portion du mouvement se fera bien F100, mais pour beaucoup - de mouvements, spcialement les petits mouvements, la vitesse spcifie - ne sera jamais atteinte. -\layout Standard - -Les acclrations et dclrations de base dcrite ici ne sont pas complexes - et ne ncessite pas de compromis. - Les contraintes des axes de la machine sont placs dans le fichier INI, - comme la vitesse maximum de l'axe et l'acclration ne devant pas tre - dpasses par le planificateur de trajectoire. -\layout Subsection - -Le suivi du parcours -\layout Standard - -Un problme plus compliqu est pos par le suivi du parcours. - Quand vous programmez un angle droit en G-code, le planificateur de trajectoire - peut suivre diffrents parcours, tous sont bons dans certains cas; il peut - dclrer et s'arrter exactement sur les coordonnes du sommet de l'angle, - puis acclrer dans la direction perpendiculaire. - Il peut galement faire ce qui est appel le mode -\begin_inset Quotes fld -\end_inset - -trajectoire continue -\begin_inset Quotes frd -\end_inset - -, qui consiste maintenir la vitesse d'avance en passant vers le sommet - de l'angle, ce qui ncessite d'arrondir l'angle de faon respecter les - contraintes machine. - Vous pouvez remarquer qu'il y a dans ce cas un compromis: vous pouvez ralentir - pour avoir un meilleur suivi du parcours, ou conserver une vitesse d'avance - leve au dtriment de la finesse des angles, du fait d'un moins bon suivi - du parcours. - Selon les particularits de l'usinage, du matriau, de l'outillage, etc., - le programmeur devra dcider du bon compromis. -\layout Subsection - -La programmation du planificateur -\layout Standard - -Les commandes de contrle de trajectoire sont les suivantes: -\layout Description - -G61 (mode arrt exact) G61 indique au planificateur de s'arrter exactement - la fin de chaque segment. - Le parcours sera suivi avec exactitude mais les arrts complets de l'avance - peuvent se rvler destructeurs pour la pice ou l'outillage, selon les - particularits de l'usinage. - -\layout Description - -G64 (mode trajectoire continue sans tolrance) G64 est juste une trajectoire - continue, le -\begin_inset Quotes fld -\end_inset - -naive cam detector -\begin_inset Quotes frd -\end_inset - - n'est pas activ. - G64 et G64 P0 indiquent au planificateur de sacrifier la prcision de suivi - du parcours pour conserver une vitesse d'avance leve. - Ce mode est ncessaire pour certains types de matriaux ou d'outillages - pour lesquels l'arrt exact est dangereux. - Il peut trs bien fonctionner tant que le programmeur garde l'esprit - que le parcours d'outil pourra tre plus arrondi que celui indiqu par - le programme. - -\layout Description - -G64\SpecialChar ~ -Px.xxx (mode trajectoire continue avec tolrance) Ce mode active le -\begin_inset Quotes fld -\end_inset - -naive cam detector -\begin_inset Quotes frd -\end_inset - - et active le mode trajectoire continue avec tolrance. - Si vous utilisez le millimtre comme unit et programmez G64 P1.27, vous - dites au planificateur que vous souhaitez une vitesse d'avance continue, - mais qu'aux coins programms vous voulez un ralentissement suffisant pour - que le parcours de l'outil puisse rester moins de 1.27mm du parcours programm. - L'amplitude exacte du ralentissement dpend de la gomtrie de l'angle - programm et des contraintes machine, mais la seule chose dont le programmeur - ait se soucier est la tolrance, ce qui lui donne le contrle complet - des compromis du suivi de parcours. - La tolrance de ce mode peut tre modifie tout au long du programme si - ncessaire. - Attention: spcifier un G64 P0 aura le mme effet qu'un G64 seul (voir - ci-dessus), c'est rendu ncessaire pour conserver la compatibilit ascendante - avec les anciens programmes G-code. - -\layout Description - -Trajectoire\SpecialChar ~ -continue\SpecialChar ~ -sans\SpecialChar ~ -tolrance Le point contrl touchera chaque mouvement - spcifi au moins un point. - La machine ne pourra jamais se dplacer une vitesse d'avance telle qu'elle - ne puisse pas s'arrter avec prcision la fin du mouvement en cours (ou - du prochain mouvement, si vous mettez en pause lorsque la trajectoire est - dj commence). - La distance avec le point final du mouvement est aussi grande que ncessaire - pour maintenir la meilleure vitesse d'avance possible pendant le parcours. -\layout Description - - -\begin_inset Quotes fld -\end_inset - -Naive\SpecialChar ~ -Cam\SpecialChar ~ -Detector -\begin_inset Quotes frd -\end_inset - - Les mouvements successifs en G1, concernant uniquement les axes XYZ, dont - la dviation par rapport une ligne droite est infrieur P, sont fusionns - en une seule ligne droite. - Ce mouvement fusionn remplace les mouvements individuels en G1 pour obtenir - une nouvelle trajectoire avec tolrance. - Entre les mouvements successifs, le point contrl ne passera jamais - plus de P- du point final du mouvement en cours. - Le point contrl touchera au moins un point de chacun des mouvements. - La machine ne pourra jamais se dplacer une vitesse ne lui permettant - pas de venir s'arrter exactement la fin du mouvement actuel (ou du prochain - mouvement, si vous mettez en pause lorsque la trajectoire est dj commence). - -\layout Subsection - -Planification des mouvements -\layout Standard - -Assurez-vous que les mouvements soient -\begin_inset Quotes fld -\end_inset - -assez longs -\begin_inset Quotes frd -\end_inset - - pour convenir votre machine/matriel. - Principalement en raison de la rgle selon laquelle -\begin_inset Quotes fld -\end_inset - -la machine ne pourra jamais se dplacer une vitesse ne lui permettant - pas de venir s'arrter compltement la fin du mouvement actuel -\begin_inset Quotes frd -\end_inset - -, il y a une longueur minimale de dplacement permettant la machine d'atteindr -e la vitesse demande avec un rglage d'acclration donn. -\layout Standard - -Les phases d'acclration et de dclration utilisent chacune la moiti - de la variable MAX_ACCELERATION du fichier .ini. - Avec une trajectoire continue c'est exactement invers, ce qui fait que - l'acclration totale de l'axe est gal la variablee MAX_ACCELERATION. - Dans d'autres cas, l'acclration actuelle de la machine est un peu infrieure - celle du fichier ini. -\layout Standard - -Pour maintenir la vitesse d'avance, le mouvement doit tre plus long que - la distance qui lui est ncessaire pour acclrer de zro la vitesse - souhaite, puis de dclrer pour s'arrter. - En utilisant A comme tant 1/2 de la variable MAX_ACCELERATION et F comme - tant la vitesse d'avance *en units par seconde*, le temps d'acclration - sera ta=F/A et la distance d'acclration sera da=(1/2)*F*ta. - Les temps et distance de dclration sont les mmes, ce qui fait que la - distance critique dc=da+dd=2*da=F -\begin_inset Formula $^{\textrm{2}}$ -\end_inset - -/A. -\layout Standard - -Par exemple, pour une vitesse d'avance de 25mm par seconde et une acclration - de 250mm/sec -\begin_inset Formula $^{\textrm{2}}$ -\end_inset - -, la distance critique sera de 10 -\begin_inset Formula $^{\textrm{2}}$ -\end_inset - -/100=1mm. - Pour une vitesse d'avance de 5mm par seconde, la distance critique ne serait - que de 5 -\begin_inset Formula $^{\textrm{2}}$ -\end_inset - -/100 = .25mm. -\layout Section - -G-code -\layout Subsection - -Vitesse d'avance -\layout Standard - -Si vous avez un tour ou un axe rotatif, pour savoir comment la vitesse d'avance - s'applique selon que l'axe est linaire ou rotatif, lire et comprendre - la section -\begin_inset Quotes fld -\end_inset - -vitesse d'avance -\begin_inset Quotes frd -\end_inset - -( -\begin_inset LatexCommand \ref{sub:-Vitesse-d'avance} - -\end_inset - -) du manuel de l'utilisateur. -\layout Subsection - -Compensation de rayon d'outil -\layout Standard - -La compensation de rayon d'outil (G41/42) ncessite que l'outil puisse toucher - tout au long de la trajectoire programme sans interfrer avec les mouvements - d'entre ou de sortie. - Si c'est impossible avec le diamtre de l'outil courant, une erreur est - signale. - Un diamtre d'outil infrieur est peut tre utilisable sans erreur pour - le mme parcours. - Ce qui signifie que quand ce type de problme se prsente, il est possible - de programmer un outil plus petit pour usiner le mme parcours sans erreur. - Voir la section compensation de rayon d'outil ( -\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} - -\end_inset - -) pour plus d'informations. -\layout Section - -Prise d'origine machine -\layout Standard - -Aprs le dmarrage d'EMC2 chaque axe doit tre rfrenc sur sont point - d'origine machine avant tout mouvement ou commande MDI. - -\layout Standard - -Pour droger ce comportement par dfaut, ou pour utiliser l'interface - Mini, il est possible d'ajuster l'option NO_FORCE_HOMING = 1 dans la section - [TRAJ] du fichier ini. -\layout Section - -Changement d'outil -\layout Standard - -Il existe plusieurs options pour effectuer un changement d'outil. - Voir la section [EMCIO] dans le manuel de l'intgrateur pour les informations - sur la configuration de ces options. - Voir galement les sections G28 -\begin_inset LatexCommand \ref{sub:G28,-G28.1:-Aller} - -\end_inset - - et G30 -\begin_inset LatexCommand \ref{sub:G30,-G30.1:-Aller} - -\end_inset - - du manuel de l'utilisateur. - -\the_end diff --git a/docs/src/common/machining_center.lyx b/docs/src/common/machining_center.lyx deleted file mode 100644 index 54eac5b22..000000000 --- a/docs/src/common/machining_center.lyx +++ /dev/null @@ -1,2198 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -CNC Machine Overview -\end_layout - -\begin_layout Standard -This section gives a brief description of how a CNC machine is viewed from - the input and output ends of the Interpreter. - -\end_layout - -\begin_layout Section -Mechanical Components -\end_layout - -\begin_layout Standard -A CNC machine has many mechanical components that may be controlled or may - affect the way in which control is exercised. - This section describes the subset of those components that interact with - the Interpreter. - Mechanical components that do not interact directly with the Interpreter, - such as the jog buttons, are not described here, even if they affect control. - -\end_layout - -\begin_layout Subsection -Axes -\begin_inset LatexCommand index -name "axes" - -\end_inset - - -\end_layout - -\begin_layout Standard -Any CNC machine has one or more Axes. - Different types of CNC machines have different combinations. - For instance, a "4-axis milling machine" may have XYZA or XYZB axes. - A lathe typically has XZ axes. - A foam-cutting machine may have XYUZ axes. - In EMC, the case of a XYYZ "gantry" machine with two motors for one axis - is better handled by kinematics rather than by a second linear axis. -\end_layout - -\begin_layout Standard -\begin_inset Foot -status open - -\begin_layout Standard -If the motion of mechanical components is not independent, as with hexapod - machines, the RS274/NGC language and the canonical machining functions - will still be usable, as long as the lower levels of control know how to - control the actual mechanisms to produce the same relative motion of tool - and workpiece as would be produced by independent axes. - This is called -\emph on -kinematics -\emph default -. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Primary Linear Axes -\begin_inset LatexCommand index -name "axes, primary linear" - -\end_inset - - -\end_layout - -\begin_layout Standard -The X, Y, and Z axes produce linear motion in three mutually orthogonal - directions. -\end_layout - -\begin_layout Subsubsection -Secondary Linear Axes -\begin_inset LatexCommand index -name "axes, secondary linear" - -\end_inset - - -\end_layout - -\begin_layout Standard -The U, V, and W axes produce linear motion in three mutually orthogonal - directions. - Typically, X and U are parallel, Y and V are parallel, and Z and W are - parallel. -\end_layout - -\begin_layout Subsubsection -Rotational Axes -\begin_inset LatexCommand index -name "axes, rotational" - -\end_inset - - -\end_layout - -\begin_layout Standard -The A, B and C axes produce angular motion (rotation). - Typically, A rotates around a line parallel to X, B rotates around a line - parallel to Y, and C rotates around a line parallel to Z. -\end_layout - -\begin_layout Subsection -Spindle -\begin_inset LatexCommand index -name "spindle" - -\end_inset - - -\end_layout - -\begin_layout Standard -A CNC machine typically has a spindle which holds one cutting tool, probe, - or the material in the case of a lathe. - The spindle may or may not be controlled by the CNC software. -\end_layout - -\begin_layout Subsection -Coolant -\begin_inset LatexCommand index -name "coolant" - -\end_inset - - -\end_layout - -\begin_layout Standard -If a CNC machine has components to provide mist coolant and/or flood coolant - they can be controlled by G-Codes. -\end_layout - -\begin_layout Subsection -Feed -\begin_inset LatexCommand index -name "feed override" - -\end_inset - - and Speed -\begin_inset LatexCommand index -name "spindle speed override" - -\end_inset - - Override -\begin_inset LatexCommand label -name "sub:Feed-and-Speed" - -\end_inset - - -\end_layout - -\begin_layout Standard -A CNC machine can have separate feed and speed override controls, which - let the operator specify that the actual feed rate or spindle speed used - in machining at some percentage of the programmed rate. - See Section -\begin_inset LatexCommand ref -reference "sub:Feed-Interaction" - -\end_inset - -. - -\end_layout - -\begin_layout Subsection -Block Delete Switch -\begin_inset LatexCommand index -name "optional block delete" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Block-Delete-Switch" - -\end_inset - - -\end_layout - -\begin_layout Standard -A CNC machine can have a block delete switch. - See Section -\begin_inset LatexCommand ref -reference "sub:Block-Delete-Switch-Interaction" - -\end_inset - -. -\end_layout - -\begin_layout Subsection -Optional Program Stop -\begin_inset LatexCommand index -name "optional program stop" - -\end_inset - - Switch -\begin_inset LatexCommand label -name "sub:Optional-Program-Stop" - -\end_inset - - -\end_layout - -\begin_layout Standard -A CNC machine can have an optional program stop switch. - See Section -\begin_inset LatexCommand ref -reference "sub:Optional-Program-Stop-Interaction" - -\end_inset - -. - -\end_layout - -\begin_layout Section -Control and Data Components -\end_layout - -\begin_layout Subsection -Linear Axes -\end_layout - -\begin_layout Standard -The X, Y, and Z axes form a standard right-handed coordinate system of orthogona -l linear axes. - Positions of the three linear motion mechanisms are expressed using coordinates - on these axes. -\end_layout - -\begin_layout Standard -The U, V and W axes also form a standard right-handed coordinate system. - X and U are parallel, Y and V are parallel, and Z and W are parallel. -\end_layout - -\begin_layout Subsection -Rotational Axes -\end_layout - -\begin_layout Standard -The rotational axes are measured in degrees as wrapped linear axes in which - the direction of positive rotation is counterclockwise when viewed from - the positive end of the corresponding X, Y, or Z-axis. - By -\begin_inset Quotes eld -\end_inset - -wrapped linear axis, -\begin_inset Quotes erd -\end_inset - - we mean one on which the angular position increases without limit (goes - towards plus infinity) as the axis turns counterclockwise and deceases - without limit (goes towards minus infinity) as the axis turns clockwise. - Wrapped linear axes are used regardless of whether or not there is a mechanical - limit on rotation. -\end_layout - -\begin_layout Standard -Clockwise or counterclockwise is from the point of view of the workpiece. - If the workpiece is fastened to a turntable which turns on a rotational - axis, a counterclockwise turn from the point of view of the workpiece is - accomplished by turning the turntable in a direction that (for most common - machine configurations) looks clockwise from the point of view of someone - standing next to the machine. -\begin_inset Foot -status collapsed - -\begin_layout Standard -If the parallelism requirement is violated, the system builder will have - to say how to distinguish clockwise from counterclockwise. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Controlled Point -\begin_inset LatexCommand label -name "sub:Controlled-Point" - -\end_inset - - -\begin_inset LatexCommand index -name "controlled point" - -\end_inset - - -\end_layout - -\begin_layout Standard -The controlled point is the point whose position and rate of motion are - controlled. - When the tool length offset is zero (the default value), this is a point - on the spindle axis (often called the gauge point) that is some fixed distance - beyond the end of the spindle, usually near the end of a tool holder that - fits into the spindle. - The location of the controlled point can be moved out along the spindle - axis by specifying some positive amount for the tool length offset. - This amount is normally the length of the cutting tool in use, so that - the controlled point is at the end of the cutting tool. - On a lathe, tool length offsets can be specified for X and Z axes, and - the controlled point is either at the tool tip or slightly outside it (where - the perpendicular, axis-aligned lines touched by the -\begin_inset Quotes eld -\end_inset - -front -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -side -\begin_inset Quotes erd -\end_inset - - of the tool intersect). -\end_layout - -\begin_layout Subsection -Coordinated Linear Motion -\begin_inset LatexCommand label -name "sub:Coordinate-Linear-Motion" - -\end_inset - - -\end_layout - -\begin_layout Standard -To drive a tool along a specified path, a machining center must often coordinate - the motion of several axes. - We use the term -\begin_inset Quotes eld -\end_inset - -coordinated linear motion -\begin_inset Quotes erd -\end_inset - - to describe the situation in which, nominally, each axis moves at constant - speed and all axes move from their starting positions to their end positions - at the same time. - If only the X, Y, and Z axes (or any one or two of them) move, this produces - motion in a straight line, hence the word -\begin_inset Quotes eld -\end_inset - -linear -\begin_inset Quotes erd -\end_inset - - in the term. - In actual motions, it is often not possible to maintain constant speed - because acceleration or deceleration is required at the beginning and/or - end of the motion. - It is feasible, however, to control the axes so that, at all times, each - axis has completed the same fraction of its required motion as the other - axes. - This moves the tool along same path, and we also call this kind of motion - coordinated linear motion. -\end_layout - -\begin_layout Standard -Coordinated linear motion can be performed either at the prevailing feed - rate, or at traverse rate, or it may be synchronized to the spindle rotation. - If physical limits on axis speed make the desired rate unobtainable, all - axes are slowed to maintain the desired path. -\end_layout - -\begin_layout Subsection -Feed Rate -\begin_inset LatexCommand index -name "feed rate" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Feed-Rate" - -\end_inset - - -\end_layout - -\begin_layout Standard -The rate at which the controlled point or the axes move is nominally a steady - rate which may be set by the user. - In the Interpreter, the interpretation of the feed rate is as follows unless - -\begin_inset Quotes eld -\end_inset - -inverse time feed -\begin_inset Quotes erd -\end_inset - - or -\begin_inset Quotes eld -\end_inset - -feed per revolution -\begin_inset Quotes erd -\end_inset - - modes are being used (see Section -\begin_inset LatexCommand ref -reference "sub:G93,-G94:-Set" - -\end_inset - -). -\end_layout - -\begin_layout Enumerate -If any of XYZ are moving, F is in units per minute in the XYZ cartesian - system, and all other axes (UVWABC) move so as to start and stop in coordinated - fashion -\end_layout - -\begin_layout Enumerate -Otherwise, if any of UVW are moving, F is in units per minute in the UVW - cartesian system, and all other axes (ABC) move so as to start and stop - in coordinated fashion -\end_layout - -\begin_layout Enumerate -Otherwise, the move is pure rotary motion and the F word is in rotary units - in the ABC -\begin_inset Quotes eld -\end_inset - -pseudo-cartesian -\begin_inset Quotes erd -\end_inset - - system. -\end_layout - -\begin_layout Subsection -Coolant -\begin_inset LatexCommand index -name "coolant" - -\end_inset - - -\end_layout - -\begin_layout Standard -Flood coolant and mist coolant may each be turned on independently. - The RS274/NGC language turns them off together (see Section -\begin_inset LatexCommand ref -reference "sub:M7,-M8,-M9:" - -\end_inset - -). -\end_layout - -\begin_layout Subsection -Dwell -\begin_inset LatexCommand index -name "dwell" - -\end_inset - - -\end_layout - -\begin_layout Standard -A machining center may be commanded to dwell (i.e., keep all axes unmoving) - for a specific amount of time. - The most common use of dwell is to break and clear chips, so the spindle - is usually turning during a dwell. - Regardless of the Path Control Mode (see Section -\begin_inset LatexCommand ref -reference "sub:Path-Control-Mode" - -\end_inset - -) the machine will stop exactly at the end of the previous programmed move, - as though it was in exact path mode. -\end_layout - -\begin_layout Subsection -Units -\begin_inset LatexCommand index -name "units" - -\end_inset - - -\end_layout - -\begin_layout Standard -Units used for distances along the X, Y, and Z axes may be measured in millimete -rs or inches. - Units for all other quantities involved in machine control cannot be changed. - Different quantities use different specific units. - Spindle speed is measured in revolutions per minute. - The positions of rotational axes are measured in degrees. - Feed rates are expressed in current length units per minute, or degrees - per minute, or length units per spindle revolution, as described in Section - -\begin_inset LatexCommand ref -reference "sub:Feed-Rate" - -\end_inset - -. -\end_layout - -\begin_layout Subsection -Current Position -\end_layout - -\begin_layout Standard -The controlled point is always at some location called the -\begin_inset Quotes eld -\end_inset - -current position, -\begin_inset Quotes erd -\end_inset - - and the controller always knows where that is. - The numbers representing the current position must be adjusted in the absence - of any axis motion if any of several events take place: -\end_layout - -\begin_layout Enumerate -Length units are changed. -\end_layout - -\begin_layout Enumerate -Tool length offset is changed. -\end_layout - -\begin_layout Enumerate -Coordinate system offsets are changed. - -\end_layout - -\begin_layout Subsection -Selected Plane -\begin_inset LatexCommand label -name "sub:Selected-Plane" - -\end_inset - - -\end_layout - -\begin_layout Standard -There is always a -\begin_inset Quotes eld -\end_inset - -selected plane -\begin_inset Quotes erd -\end_inset - -, which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining - center. - The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to - the YZ-plane, and the Y-axis to the XZ-plane. - -\end_layout - -\begin_layout Subsection -Tool Carousel -\end_layout - -\begin_layout Standard -Zero or one tool is assigned to each slot in the tool carousel. -\end_layout - -\begin_layout Subsection -Tool Change -\end_layout - -\begin_layout Standard -A machining center may be commanded to change tools. -\end_layout - -\begin_layout Subsection -Pallet Shuttle -\end_layout - -\begin_layout Standard -The two pallets may be exchanged by command. -\end_layout - -\begin_layout Subsection -Feed and Speed Override Switches -\end_layout - -\begin_layout Standard -The feed and speed override switches may be enabled (so they work as expected) - or disabled (so they have no effect on the feed rate or spindle speed). - The RS274/NGC language has one command that enables both switches and one - command that disables both (see Section -\begin_inset LatexCommand ref -reference "sub:M48,-M49:-Override" - -\end_inset - -). - See Section -\begin_inset LatexCommand ref -reference "sub:Feed-Interaction" - -\end_inset - - for further details. - -\end_layout - -\begin_layout Subsection -Path Control Mode -\begin_inset LatexCommand index -name "path control mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Path-Control-Mode" - -\end_inset - - -\end_layout - -\begin_layout Standard -The machining center may be put into any one of three path control modes: - (1) exact stop mode, (2) exact path mode, or (3) continuous mode with optional - tolerance. - In exact stop mode, the machine stops briefly at the end of each programmed - move. - In exact path mode, the machine follows the programmed path as exactly - as possible, slowing or stopping if necessary at sharp corners of the path. - In continuous mode, sharp corners of the path may be rounded slightly so - that the feed rate may be kept up (but by no more than the tolerance, if - specified). - See Section -\begin_inset LatexCommand ref -reference "sub:G61,-G61.1,-G64:" - -\end_inset - -. -\end_layout - -\begin_layout Section -Interpreter Interaction with Switches -\end_layout - -\begin_layout Standard -The Interpreter interacts with several switches. - This section describes the interactions in more detail. - In no case does the Interpreter know what the setting of any of these switches - is. - -\end_layout - -\begin_layout Subsection -Feed and Speed Override Switches -\begin_inset LatexCommand label -name "sub:Feed-Interaction" - -\end_inset - - -\end_layout - -\begin_layout Standard -The Interpreter will interpret RS274/NGC commands which enable ( -\family typewriter -M48 -\family default -) or disable ( -\family typewriter -M49 -\family default -) the feed and speed override switches. - For certain moves, such as the traverse out of the end of a thread during - a threading cycle, the switches are disabled automatically. -\end_layout - -\begin_layout Standard -EMC2 reacts to the speed and feed override settings when these switches - are enabled. -\end_layout - -\begin_layout Subsection -Block Delete -\begin_inset LatexCommand index -name "block delete" - -\end_inset - - Switch -\begin_inset LatexCommand label -name "sub:Block-Delete-Switch-Interaction" - -\end_inset - - -\end_layout - -\begin_layout Standard -If the block delete switch is on, lines of RS274/NGC code which start with - a slash (the block delete character) are not interpreted. - If the switch is off, such lines are interpreted. - Normally the block delete switch should be set before starting the NGC - program. -\end_layout - -\begin_layout Subsection -Optional Program Stop -\begin_inset LatexCommand index -name "optional program stop" - -\end_inset - - Switch -\begin_inset LatexCommand label -name "sub:Optional-Program-Stop-Interaction" - -\end_inset - - -\end_layout - -\begin_layout Standard -If this switch is on and an M1 code is encountered, program execution is - paused. -\end_layout - -\begin_layout Section -Tool File -\begin_inset LatexCommand label -name "sub:Tool-File" - -\end_inset - - -\end_layout - -\begin_layout Standard -A tool file is required to use the Interpreter. - The file tells which tools are in which carousel slots and what the length - and diameter of each tool are. -\end_layout - -\begin_layout Standard -The file consists of any number of header lines, followed by one blank line, - followed by any number of lines of data. - The header lines are ignored by the interpreter. - It is important that there be exactly one blank line (with no spaces or - tabs, even) before the data. - The header line shown in Table -\begin_inset LatexCommand ref -reference "cap:Sample-Tool-File" - -\end_inset - - describes the data columns, so it is suggested (but not required) that - such a line always be included in the header. -\end_layout - -\begin_layout Standard -Each data line of the file contains the data for one tool. - The line may contain 4 or 5 elements ( -\begin_inset Quotes eld -\end_inset - -mill format -\begin_inset Quotes erd -\end_inset - -) or 8 or 9 elements ( -\begin_inset Quotes eld -\end_inset - -lathe format -\begin_inset Quotes erd -\end_inset - -). -\end_layout - -\begin_layout Standard -The units used for the length and diameter are in machine units. -\end_layout - -\begin_layout Standard -The lines do not have to be in any particular order. - Switching the order of lines has no effect unless the same slot number - is used on two or more lines, which should not normally be done, in which - case the data for only the last such line will be used. - -\end_layout - -\begin_layout Standard -In emc, the location of the tool file is specified in the ini file. - See the Integrator Manual for more details. -\end_layout - -\begin_layout Standard -A tool file may have a mixture of -\begin_inset Quotes eld -\end_inset - -mill format -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -lathe format -\begin_inset Quotes erd -\end_inset - - lines, though usually the -\begin_inset Quotes eld -\end_inset - -lathe format -\begin_inset Quotes erd -\end_inset - - lines are only required for lathe-type tooling. -\end_layout - -\begin_layout Subsection -Mill Format Tool Files -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -mill format -\begin_inset Quotes erd -\end_inset - - of a tool file is shown in Table -\begin_inset LatexCommand ref -reference "cap:Sample-Tool-File" - -\end_inset - -. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Sample Tool File (mill format) -\begin_inset LatexCommand label -name "cap:Sample-Tool-File" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Pocket -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FMS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -TLO -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Diameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Comment -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1.5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -endmill -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2.4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard --0.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -for testing -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each line has five entries. - The first four entries are required. - The last entry (a comment) is optional. - It makes reading easier if the entries are arranged in columns, as shown - in the table, but the only format requirement is that there be at least - one space or tab after each of the first three entries on a line and a - space, tab, or newline at the end of the fourth entry. - The meanings of the columns and the type of data to be put in each are - as follows. -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -Pocket -\begin_inset Quotes erd -\end_inset - - column contains the number (unsigned integer) which represents the pocket - number (slot number) of the tool carousel slot in which the tool is placed. - The entries in this column must all be different. -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -FMS -\begin_inset Quotes erd -\end_inset - - column contains the number (unsigned integer) which represents a code number - for the tool. - The user may use any code for any tool, as long as the codes are unsigned - integers. - This is typically the same as the pocket number. -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -TLO -\begin_inset Quotes erd -\end_inset - - column contains a real number which represents the tool length offset. - This number will be used if tool length offsets are being used and this - pocket is selected. - This is normally a positive real number, but it may be zero or any other - number if it is never to be used. -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -Diameter -\begin_inset Quotes erd -\end_inset - - column contains a real number. - This number is used only if tool radius compensation is turned on using - this pocket. - If the programmed path during compensation is the edge of the material - being cut, this should be a positive real number representing the measured - diameter of the tool. - If the programmed path during compensation is the path of a tool whose - diameter is nominal, this should be a small number (positive, negative, - or zero) representing the difference between the measured diameter of the - tool and the nominal diameter. - If cutter radius compensation is not used with a tool, it does not matter - what number is in this column. - -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -Comment -\begin_inset Quotes erd -\end_inset - - column may optionally be used to describe the tool. - Any type of description is OK. - This column is for the benefit of human readers only. -\end_layout - -\begin_layout Subsection -Lathe Format Tool Files -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -lathe format -\begin_inset Quotes erd -\end_inset - - of a tool file is shown in Table -\begin_inset LatexCommand ref -reference "cap:Lathe-Tool-File" - -\end_inset - -. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Sample Tool File (lathe format) -\begin_inset LatexCommand label -name "cap:Lathe-Tool-File" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Pocket -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FMS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ZOFFSET -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOFFSET -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FRONTANGLE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BACKANGLE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORIENTATION -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Comment -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -95.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -155.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -120 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The Pocket, FMS, DIA and Comment fields are as for mill format tool files. - The ZOFFSET field is the same as the TLO field of mill format tool files. - The DIA is also used by the AXIS gui display. -\end_layout - -\begin_layout Standard -The XOFFSET field gives an offset for the X coordinate when tool length - offsets are in effect. - -\end_layout - -\begin_layout Standard -The ORIENTATION field gives the orientation of the lathe tool, as illustrated - in -\begin_inset LatexCommand ref -reference "cap:Tool-Orientations" - -\end_inset - -. - The red cross is the controlled point. - See -\begin_inset LatexCommand ref -reference "sub:Controlled-Point" - -\end_inset - -. -\end_layout - -\begin_layout Standard -The FRONTANGLE and BACKANGLE fields are used by some user interfaces to - display a fancy representation of the lathe tool. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Tool Orientations -\begin_inset LatexCommand label -name "cap:Tool-Orientations" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename lathe_tool.png - scale 50 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Parameters -\begin_inset LatexCommand index -name "parameters" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Parameters" - -\end_inset - - -\end_layout - -\begin_layout Standard -In the RS274/NGC language view, a machining center maintains an array of - numerical parameters defined by a system definition (RS274NGC_MAX_PARAMETERS). - Many of them have specific uses especially in defining coordinate systems. - The number of numerical parameters can increase as development adds support - for new parameters. - The parameter array persists over time, even if the machining center is - powered down. - EMC2 uses a parameter file to ensure persistence and gives the Interpreter - the responsibility for maintaining the file. - The Interpreter reads the file when it starts up, and writes the file when - it exits. -\end_layout - -\begin_layout Standard -All parameters are avalible for use in G Code programs. -\end_layout - -\begin_layout Description -1-30 Subroutine local parameters of call arguments. - These parameters are local to the subroutine. - See -\begin_inset LatexCommand ref -reference "cha:O-Codes" - -\end_inset - - -\end_layout - -\begin_layout Description -1-5000 G-Code user parameters. - These parameters are global in the G Code file. -\end_layout - -\begin_layout Description -5061-5070 Result of "G38.2" Probe for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5161-5169 "G28" Home for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5181-5189 "G30" Home for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5211-5219 "G92" offset for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5220 Coordinate System number 1 - 9 for G54 - G59.3. -\end_layout - -\begin_layout Description -5221-5229 Coordinate System 1, G54 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5241-5249 Coordinate System 2, G55 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5261-5269 Coordinate System 3, G56 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5281-5289 Coordinate System 4, G57 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5301-5309 Coordinate System 5, G58 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5321-5329 Coordinate System 6, G59 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5341-5349 Coordinate System 7, G59.1 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5361-5369 Coordinate System 8, G59.2 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5381-5389 Coordinate System 9, G59.3 for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Description -5399 Result of M66 - Check or wait for input -\end_layout - -\begin_layout Description -5400 Tool Number -\end_layout - -\begin_layout Description -5401 Tool X Offset -\end_layout - -\begin_layout Description -5402 Tool Y Offset -\end_layout - -\begin_layout Description -5403 Tool Z Offset -\end_layout - -\begin_layout Description -5404 Tool A Offset -\end_layout - -\begin_layout Description -5405 Tool B Offset -\end_layout - -\begin_layout Description -5406 Tool C Offset -\end_layout - -\begin_layout Description -5407 Tool U Offset -\end_layout - -\begin_layout Description -5408 Tool V Offset -\end_layout - -\begin_layout Description -5409 Tool W Offset -\end_layout - -\begin_layout Description -5410 Tool Diameter -\end_layout - -\begin_layout Description -5411 Tool Front Angle -\end_layout - -\begin_layout Description -5412 Tool Back Angle -\end_layout - -\begin_layout Description -5413 Tool Orientation -\end_layout - -\begin_layout Description -5420-5428 Current Position including all offsets and in the current program - units for X, Y, Z, A, B, C, U, V & W. -\end_layout - -\begin_layout Standard -The format of a parameter file is shown in Table -\begin_inset LatexCommand ref -reference "cap:Parameter-File-Format" - -\end_inset - -. - The file consists of any number of header lines, followed by one blank - line, followed by any number of lines of data. - The Interpreter skips over the header lines. - It is important that there be exactly one blank line (with no spaces or - tabs, even) before the data. - The header line shown in Table -\begin_inset LatexCommand ref -reference "cap:Parameter-File-Format" - -\end_inset - - describes the data columns, so it is suggested (but not required) that - that line always be included in the header. -\end_layout - -\begin_layout Standard -The Interpreter reads only the first two columns of the table. - The third column, "Comment," is not read by the Interpreter. -\end_layout - -\begin_layout Standard -Each line of the file contains the index number of a parameter in the first - column and the value to which that parameter should be set in the second - column. - The value is represented as a double-precision floating point number inside - the Interpreter, but a decimal point is not required in the file. - All of the parameters shown in Table -\begin_inset LatexCommand ref -reference "cap:Parameter-File-Format" - -\end_inset - - are required parameters and must be included in any parameter file, except - that any parameter representing a rotational axis value for an unused axis - may be omitted. - An error will be signalled if any required parameter is missing. - A parameter file may include any other parameter, as long as its number - is in the range 1 to 5400. - The parameter numbers must be arranged in ascending order. - An error will be signalled if not. - Any parameter included in the file read by the Interpreter will be included - in the file it writes as it exits. - The original file is saved as a backup file when the new file is written. - Comments are not preserved when the file is written. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Parameter File Format -\begin_inset LatexCommand label -name "cap:Parameter-File-Format" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Parameter Number -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Parameter Value -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Comment -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5161 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G28 Home X -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5162 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0.0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G28 Home Y -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/template.lyx b/docs/src/common/template.lyx deleted file mode 100644 index 3c97f0127..000000000 --- a/docs/src/common/template.lyx +++ /dev/null @@ -1,33 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language english -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Document Template -\layout Standard - -Use this as your template for new documents so everything remains consistant. -\the_end diff --git a/docs/src/common/user_intro.lyx b/docs/src/common/user_intro.lyx deleted file mode 100644 index e6bb84ba6..000000000 --- a/docs/src/common/user_intro.lyx +++ /dev/null @@ -1,389 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -EMC2 -\end_layout - -\begin_layout Standard - -\series bold -\size largest -The Enhanced Machine Control -\end_layout - -\begin_layout Section -This Manual -\end_layout - -\begin_layout Standard -The focus of this manual is on using EMC. - It is intended to be used once EMC is installed and configured. - For standard installations see the Getting Started Guide for step by step - instructions to get you up and going. - For detailed information on installation and configuration of EMC see the - Integrator Manual. -\end_layout - -\begin_layout Section -How EMC2 Works -\begin_inset LatexCommand label -name "sec:How-EMC2-Works" - -\end_inset - - -\end_layout - -\begin_layout Standard -The Enhanced Machine Controller (EMC2) is a lot more than just another CNC -\begin_inset LatexCommand index -name "CNC" - -\end_inset - - mill program. - It can control machine tools, robots, or other automated devices. - It can control servo motors, stepper motors, relays, and other devices - related to machine tools. - -\end_layout - -\begin_layout Standard -There are four main components to the EMC2 software: a motion controller, - a discrete I/O controller, a task executor which coordinates them, and - graphical user interfaces. - In addition there is a layer called HAL (Hardware Abstraction Layer) which - allows configuration of EMC2 without the need of recompiling. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:Typical_machine" - -\end_inset - -Simple EMC2 Controlled Machine -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename whatstep1.png - lyxscale 70 - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Figure -\begin_inset LatexCommand ref -reference "fig:Typical_machine" - -\end_inset - - shows a simple block diagram showing what a typical 3-axis EMC2 system - might look like. - This diagram shows a stepper motor system. - The PC, running Linux -\begin_inset LatexCommand index -name "Linux" - -\end_inset - - as its operating system, is actually controlling the stepper motor drives - by sending signals through the printer port. - These signals (pulses) make the stepper drives move the stepper motors. - The EMC2 can also run servo motors via servo interface cards or by using - an extended parallel port to connect with external control boards. - As we examine each of the components that make up an EMC2 system we will - remind the reader of this typical machine. -\end_layout - -\begin_layout Section -User Interfaces -\begin_inset LatexCommand label -name "sub:Graphical-User-Interfaces" - -\end_inset - - -\end_layout - -\begin_layout Standard -A user interface is the part of the EMC2 that the machine tool operator - interacts with. - The EMC2 comes with several types of user interfaces: -\end_layout - -\begin_layout Itemize -AXIS an OpenGL-based GUI (Graphical User Interface), with an interactive - G-Code previewer. - This interface is one of the few that are still under active development - and improvement. - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis_2.3.png - scale 70 - -\end_inset - - -\end_layout - -\begin_layout Itemize -Keystick a character-based screen graphics program suitable for minimal - installations (without the X server running). -\end_layout - -\begin_layout Itemize -Xemc an X Windows program -\end_layout - -\begin_layout Itemize -two Tcl/Tk-based GUIs named TkEMC and Mini -\end_layout - -\begin_layout Itemize -a HAL based user interface called halui, which allows to control emc2 using - knobs and switches -\end_layout - -\begin_layout Itemize -a telnet based user interface called emcrsh, which allows commands to be - sent to emc2 from remote computers -\end_layout - -\begin_layout Section -Languages -\end_layout - -\begin_layout Standard -EMC2 uses translation files to translate EMC User Interfaces into many languages. - You just need to log in with the language you intend to use and when you - start up EMC it comes up in that language. - If your language has not been translated contact a developer on the IRC - or the mailing list if you can assist in the translation. -\end_layout - -\begin_layout Section -Thinking Like a Machine Operator -\begin_inset LatexCommand label -name "sec:Thinking-Operator" - -\end_inset - - -\end_layout - -\begin_layout Standard -This book will not even pretend that it can teach you to run a mill or a - lathe. - Becoming a machinist takes time and hard work. - An author once said, "We learn from experience, if at all." Broken tools, - gouged vices, and scars are the evidence of lessons taught. - Good part finish, close tolerances, and careful work are the evidence of - lessons learned. - No machine, no computer program, can take the place of human experience. -\end_layout - -\begin_layout Standard -As you begin to work with the EMC2 program, you will need to place yourself - in the position of operator. - You need to think of yourself in the role of the one in charge of a machine. - It is a machine that is either waiting for your command or executing the - command that you have just given it. - Throughout these pages we will give information that will help you become - a good operator of the EMC2 mill. - You will need some information right up front here so that the following - pages will make sense to you. - -\end_layout - -\begin_layout Section -Modes of Operation -\begin_inset LatexCommand label -name "sub:Modes-of-Operation" - -\end_inset - - -\end_layout - -\begin_layout Standard -When an EMC2 is running, there are three different major modes used for - inputting commands. - These are Manual -\begin_inset LatexCommand index -name "Manual" - -\end_inset - -, Auto -\begin_inset LatexCommand index -name "Auto" - -\end_inset - -, and MDI -\begin_inset LatexCommand index -name "MDI" - -\end_inset - -. - Changing from one mode to another makes a big difference in the way that - the EMC2 behaves. - There are specific things that can be done in one mode that can not be - done in another. - An operator can home an axis in manual mode but not in auto or MDI modes. - An operator can cause the machine to execute a whole file full of G-codes - in the auto mode but not in manual or MDI. - -\end_layout - -\begin_layout Standard -In manual mode, each command is entered separately. - In human terms a manual command might be "turn on coolant" or "jog X at - 25 inches per minute". - These are roughly equivalent to flipping a switch or turning the hand wheel - for an axis. - These commands are normally handled on one of the graphical interfaces - by pressing a button with the mouse or holding down a key on the keyboard. - In auto mode, a similar button or key press might be used to load or start - the running of a whole program of G-code that is stored in a file. - In the MDI mode the operator might type in a block of code and tell the - machine to execute it by pressing the or key on the keyboard. -\end_layout - -\begin_layout Standard -Some motion control commands are available and will cause the same changes - in motion in all modes. - These include -\series bold -\shape smallcaps -\noun on -abort -\series default -\shape default -\noun default - -\begin_inset LatexCommand index -name "ABORT" - -\end_inset - -, -\series bold -\shape smallcaps -\noun on -estop -\series default -\shape default -\noun default - -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - -, and -\series bold -\shape smallcaps -\noun on -feed rate override -\series default -\shape default -\noun default - -\begin_inset LatexCommand index -name "feed override" - -\end_inset - -. - Commands like these should be self explanatory. -\end_layout - -\begin_layout Standard -The AXIS user interface hides some of the distinctions between Auto and - the other modes by making Auto-commands available at most times. - It also blurs the distinction between Manual and MDI because some Manual - commands like Touch Off are actually implemented by sending MDI commands. - It does this by automatically changing to the mode that is needed for the - action the user has requested. -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/user_intro_fr.lyx b/docs/src/common/user_intro_fr.lyx deleted file mode 100644 index c2735f4d7..000000000 --- a/docs/src/common/user_intro_fr.lyx +++ /dev/null @@ -1,780 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize Custom -\paperpackage a4 -\use_geometry 1 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - - -\begin_inset LatexCommand \label{first-section} - -\end_inset - -Le concept d'EMC -\layout Section - -Introduction -\begin_inset LatexCommand \label{sec:Introduction} - -\end_inset - - -\layout Standard - -Ce document est centr sur l'utilisation d'EMC2, il est plutt destin aux - lecteurs l'ayant dj install et configur. - Quelques informations sur l'installation sont donnes dans les chapitres - suivants. - La documentation complte sur l'installation et la configuration se trouve - dans le manuel de l'intgrateur. -\layout Section - -Vue d'ensemble de la CNC -\begin_inset LatexCommand \label{sec:Vue-d'ensemble-de-la-CNC} - -\end_inset - - -\layout Standard - -Le terme CNC a pris beaucoup de sens diffrents au cours des annes. - Dans les dbuts, la CNC a consist remplacer les mains de l'oprateur - par des moteurs, lesquels suivaient des commandes reproduisant au mieux - les mouvements d'un oprateur tournant les manivelles. - De ces premires machines, un langage de contrle de l'outil est n, puis - a grandi. - Ce langage est appell RS274 dont diffrentes variantes ont t proposes. - Des ajouts lui ont t apports par les fabricants de machines-outils et - de contrleurs pour rpondre aux besoins spcifiques de leurs machines. - Pour qu'une machine puisse changer d'outil pendant l'excution d'un programme - il est ncessaire de disposer de commandes de changement d'outil. - Si un chargeur de pices doit installer un nouveau brut, il est galement - ncessaire d'avoir les commandes permettant de grer ce type de matriel. - Comme tous les langages, RS274 a volu au fil du temps. - Actuellement plusieurs dialectes existent. - En gnral, chaque fabricant de machines-outils essaye de rester cohrent - avec ses lignes de produits mais il arrive que des commandes produisent - des effets compltement diffrents d'une machine une autre. -\layout Standard - -Trs rcemment le langage de CNC a t masqu derrire diffrents symboles - de programmation se rfrant un -\begin_inset Quotes eld -\end_inset - -Langage -\begin_inset Foot -collapsed true - -\layout Standard - -Un fabricant de machines, Hurco, clame avoir seul les droits de l'usage - de ces symboles en programmation ainsi que de l'usage du terme conversationnel - utilis dans ce contexte. - -\end_inset - - de programmation conversationnel. -\begin_inset Quotes erd -\end_inset - - Une caractristique commune de ces types de programmation est la slection - d'une forme ou d'une gomtrie et l'ajout de valeurs pour les coins, les - limites, ou les caractristiques de cette gomtrie. -\layout Standard - -L'usage du Dessin Assist par Ordinateur a galement eux un impact sur les - langages de programmation CNC. - Les dessins raliss en DAO tant sauvegards sous forme de listes de donnes - avec les variables associes chaque gomtrie, ces listes sont facilement - interprtes dans le G-Code. - Les interprteurs qui ralisent ce travail sont appels des programmes - de CAM (Computer Aided Machining). -\layout Standard - -Ce sont des convertisseurs de DAO, l'ensemble des logiciels de dessin, comme - Corel -\begin_inset Formula $^{\textrm{TM}}$ -\end_inset - - et presque la totalit des programmes graphiques, fournissent des fichiers - pouvant tre convertis. - Ces convertisseurs ont t crits pour lire un fichier d'une image bitmap, - en trames ou vectorielle et la transformer en un fichier G-Code pouvant - tre lanc sur une machine CNC. -\layout Standard - -Vous vous demandez peut tre, -\begin_inset Quotes eld -\end_inset - -Pourquoi ai-je besoin de savoir cel? -\begin_inset Quotes erd -\end_inset - - La rponse est que dans sa forme actuelle EMC2 ne peut pas utiliser directement -, pour l'usinage, un fichier non converti issu d'une DAO, ni aucune image. - EMC2 utilise une variante du premier langage CNC nomme RS274NGC. - (pour Next Generation Controller). - Toutes les commandes passes EMC2 doivent l'tre dans une forme reconnue - par son interprteur RS274NGC. - Ce qui signifie que si vous voulez usiner une pice dssine dans un programme - graphique ou de dessin, vous devez galement utiliser un programme capable - de convertir le format du fichier de sortie de ce programme en un autre - fichier dans le format reconnu et accept par l'interprteur d'EMC2. - Il existe plusieurs programmes commerciaux effectuant cette tche. - Au moins un convertisseur (Ace) a t mis sous un type de copyright le - rendant disponible au public. -\layout Standard - -Il y a eux de rcentes discussions propos de l'criture d'une interface - -\begin_inset Quotes fld -\end_inset - -conversationelle -\begin_inset Quotes frd -\end_inset - - ou gomtrique, permettant l'oprateur d'entrer les programmes plus ou - moins de la mme faon que sur certains contrleurs propritaires modernes, - mais c'est encore loin. - -\layout Section - -Systme d'exploitation de l'ordinateur -\begin_inset LatexCommand \label{sec:Le-systeme-d'exploitation} - -\end_inset - - -\layout Standard - -Le code d'EMC2 peut tre compil sur la plupart des distributions GNU-Linux - (sous rserve que son noyau ait t patch avec une extension temps rel). - En plus du code source, certaines distributions binaires sont disponibles. - Le dernier paquet a t cr autour d'une distribution Ubuntu -\begin_inset LatexCommand \index{Ubuntu} - -\end_inset - - qui est une ditribution GNU-Linux -\begin_inset LatexCommand \index{GNU-Linux} - -\end_inset - -. - Ubuntu est la distribution la plus apprcie par les utilisateurs de Linux - novices, elle est considre comme tant trs facile utiliser. - En plus de cel, il existe pour elle un grand nombre de sites d'entraide - dans le monde entier. - Installer EMC2 sur cette distribution est extrmement simple, voir la section - -\begin_inset LatexCommand \ref{sec:Le live CD d'EMC2} - -\end_inset - - -\layout Standard - -EMC2 ne fonctionne pas sur les systmes d'exploitation Microsoft (TM). - La raison en est qu'EMC2 requiert un environnement temps rel pour son - planificateur de mouvements et ses gnrateurs de pas. - Il bnficie aussi de l'excellente stabilit et des performances nettement - meilleures du systme d'exploitation Linux. -\layout Section - -Comment marche EMC2 -\begin_inset LatexCommand \label{sec:Comment-marche-EMC2} - -\end_inset - - -\layout Standard - -EMC2 est un peu plus que juste un autre programme de fraiseuse CNC -\begin_inset LatexCommand \index{CNC} - -\end_inset - - . - Il est capable de contrler des machines-outils, des robots ou d'autres - automatismes. - Il est capable de contrler des servomoteurs, des moteurs pas pas, des - relais ainsi que d'autres mcanismes relatifs aux machines-outils. - Dans ce manuel nous nous concentrerons seulement sur de petites machines - mais aux possibilits impressionnantes, les mini fraiseuses. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{fig:Machine-typique} - -\end_inset - -Simple machine contrle par EMC2 -\layout Standard -\align center - -\begin_inset Graphics - filename whatstep1.png - -\end_inset - - -\end_inset - - -\layout Standard - -La figure -\begin_inset LatexCommand \ref{fig:Machine-typique} - -\end_inset - - montre un simple diagramme bloc reprsentant une machine 3 axes typique - comme EMC2 les aime. - Cette figure montre un systme bas sur des moteurs pas pas. - Le PC, tournant sous Linux -\begin_inset LatexCommand \index{Linux} - -\end_inset - - contrle les interfaces de puissance des moteurs pas pas en leur envoyant - des signaux au travers du port parallle. - Ces signaux (impulsionnels) font que la puissance adquate est fournie - aux moteurs. - EMC2 peut galement contrler des servomoteurs via une interface de puissance - pour servomoteurs ou utiliser le port parallle tendu connect une carte - de contrle externe. - Quand nous examinerons chacun des composants qui forment un systme EMC2, - nous nous rfrerons cette machine typique. -\layout Standard - -Il y a quatre composants dans le logiciel EMC2: un controleur de mouvement - (EMCMOT), un contrleur d'entres/sorties discrtes (EMCIO), un coordinateur - d'excution des tches (EMCTASK) et une bibliothque d'interfaces utilisateur, - tant graphiques que textuelles. - EMC2, pour prendre le contrle complet d'une fraiseuse, il doit lancer - chacun de ces quatre composants. - Chaque composant sera brivement dcrit ci-dessous. - En plus, il existe une couche appele HAL -\begin_inset LatexCommand \index{HAL} - -\end_inset - - (la couche d'abstraction du matriel), qui permet la configuration simple - d'EMC2 sans qu'il soit besoin de le recompiler. - -\layout Section - -Interfaces utilisateur graphiques -\begin_inset LatexCommand \label{sub:Interfaces-utilisateur-graphiques} - -\end_inset - - -\layout Standard - -L'interface graphique est la partie d'EMC2 qui interragit avec l'oprateur - de la machine-outil. - EMC2 est fourni avec plusieurs interfaces utilisateurs graphiques: -\layout Itemize - -Un cran graphique de type caractres nomm keystick -\begin_inset LatexCommand \index{keystick} - -\end_inset - - -\begin_inset LatexCommand \ref{fig:L'interface Keystick} - -\end_inset - - -\layout Itemize - -Un programme X Windows nomm xemc -\begin_inset LatexCommand \index{xemc} - -\end_inset - -\layout Itemize - -Deux GUI bases sur Tcl/Tk nommes tkemc -\begin_inset LatexCommand \index{tkemc} - -\end_inset - - -\begin_inset LatexCommand \ref{fig:L'interface graphique TkEmc} - -\end_inset - - et mini -\begin_inset LatexCommand \index{mini} - -\end_inset - - -\begin_inset LatexCommand \ref{fig:L'interface graphique Mini} - -\end_inset - -. - -\layout Itemize - -Une GUI base sur OpenGL, avec prvisualisation du G-Code, appele AXIS -\begin_inset LatexCommand \index{AXIS} - -\end_inset - - -\begin_inset LatexCommand \ref{fig:L'interface graphique d'AXIS} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename images/axis_2.3_fr.png - width 60page% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:L'interface graphique d'AXIS} - -\end_inset - -L'interface graphique AXIS -\end_inset - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename keystick.png - scale 80 - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:L'interface Keystick} - -\end_inset - -L'interface graphique Keystick -\end_inset - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename mini_fr.jpg - width 50page% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:L'interface graphique Mini} - -\end_inset - -L'interface graphique Mini -\end_inset - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename tkemc_fr.png - width 60page% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:L'interface graphique TkEmc} - -\end_inset - -L'interface graphique TkEmc -\end_inset - - -\layout Standard - -Tkemc et Mini peuvent tourner sous Linux, Mac et Microsoft Windows si le - langage de programmation Tcl/Tk a t pralablement install. - Les versions Mac et Microsoft Windows peuvent tre connectes EMC2 tournant - sur une machine Linux temps rel via une connection rseau, permettant - de visualiser la machine depuis un emplacement distant. - Les instructions pour installer et configurer une telle connection entre - un MAC ou une machine Micosoft et un PC sur lequel tourne EMC2 se trouvent - dans le manuel de l'intgrateur. -\layout Section - -Penser comme un oprateur sur CNC -\begin_inset LatexCommand \label{sec:Penser-operateur} - -\end_inset - - -\layout Standard - -Ce manuel ne prtend pas vous apprendre utiliser un tour ou une fraiseuse. - Devenir un oprateur expriment prends beaucoup de temps et demande beaucoup - de travail. - Un auteur a dit une fois, -\begin_inset Quotes fld -\end_inset - -Nous apprenons de l'exprience, si on la possde toute -\begin_inset Quotes frd -\end_inset - -. - Les outils casss, les taux attaqus et les cicatrices sont les preuves - des leons apprises. - Une belle finition, des tolrances serres et la prudence pendant le travail - sont les preuves des leons retenues. - Aucune machine, aucun programme ne peut remplacer l'exprience humaine. - -\layout Standard - -Maintenant que vous commencez travailler avec le programme EMC2, vous - devez vous placer dans la peau d'un oprateur. - Vous devez tre dans le rle de quelqu'un qui a la charge d'une machine. - C'est une machine qui attendra vos commandes puis qui excutera les ordres - que vous lui donnerez. - Dans ces pages nous donnerons les explications qui vous aideront devenir - un bon oprateur de fraiseuse avec EMC2. -\layout Section - -Modes opratoires -\begin_inset LatexCommand \label{sub:Modes-operatoires} - -\end_inset - - -\layout Standard - -Quand EMC2 fonctionne, il existe trois diffrents modes majeurs pour entrer - des commandes. - Les modes Manuel -\begin_inset LatexCommand \index{Manuel} - -\end_inset - -, Auto -\begin_inset LatexCommand \index{Auto} - -\end_inset - - et MDI -\begin_inset LatexCommand \index{MDI} - -\end_inset - -. - Passer d'un mode un autre marque une grande diffrence dans le comportement - d'EMC2. - Des choses spcifiques un mode ne peuvent pas tre faites dans un autre. - L'oprateur peut faire une prise d'origine sur un axe en mode manuel mais - pas en mode auto ou MDI. - L'oprateur peut lancer l'excution complte d'un programme de G-codes - en mode auto mais pas en mode manuel ni en MDI. - -\layout Standard - -En mode manuel, chaque commande est entre sparment. - En termes humains une commande manuelle pourrait tre -\begin_inset Quotes fld -\end_inset - -active l'arrosage -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -jog l'axe X 250 millimtres par minute. -\begin_inset Quotes frd -\end_inset - - C'est en gros quivalent basculer un interrupteur ou tourner la manivelle - d'un axe. - Ces commandes sont normalement contrles en pressant un bouton de l'interface - graphique avec la souris ou en maintenant appuye une touche du clavier. - En mode auto, un bouton similaire ou l'appui d'une touche peuvent tre - utiliss pour charger ou lancer l'excution complte d'un programme de - G-codes stock dans un fichier. - En mode d'entre de donnes manuelles (MDI) l'oprateur peut saisir un - bloc de codes est dire la machine de l'excuter en pressant la touche - ou du clavier. -\layout Standard - -Certaines commandes de mouvement sont disponibles et produisent les mmes - effets dans tous les modes. - Il s'agit des commandes -\shape smallcaps -\noun on -abort -\shape default -\noun default - -\begin_inset LatexCommand \index{ABORT} - -\end_inset - -, -\shape smallcaps -\noun on -estop -\shape default -\noun default - -\begin_inset LatexCommand \index{ESTOP} - -\end_inset - - et -\shape smallcaps -\noun on -feed rate override -\shape default -\noun default - -\begin_inset LatexCommand \index{feed override} - -\end_inset - -. - Ces commandes se dispensent d'explications. -\layout Standard - -L'interface utilisateur graphique AXIS supprime certaines distinctions entre - Auto et les autres modes en rendant automatique la disponibilit des commandes, - la plupart du temps. - Il rend galement floue la distinction entre Manuel et MDI parce que certaines - commandes manuelles comme Toucher, sont galement implmentes en envoyant - une commande MDI. -\layout Section - -Informations affiches -\begin_inset LatexCommand \label{sub:Informations-affichees} - -\end_inset - - -\layout Standard - -Quand EMC2 fonctionne, chacun de ses modules maintient la conversation avec - les autres et avec l'interface graphique. - C'est la charge de l'affichage de slectionner quel flux d'information - l'oprateur doit voir et de l'arranger sur son cran pour lui rendre facile - comprendre. - Le point le plus important de l'affichage est peut tre la possibilit - de voir le fonctionnement interne d'EMC2. - Vous devrez garder un oeil sur le mode d'affichage. -\layout Standard - -L'affichage du mode actif permet de savoir si il y a cohrence entre l'affichage - et la position de chaque axe. - La plupart des interfaces permettent l'oprateur de lire la position - actuelle ou commande ainsi que la position machine ou relative. - -\layout Description -\noindent -Machine -\begin_inset LatexCommand \index{Position: Machine} - -\end_inset - - C'est la position d'un axe par rapport l'origine machine, aprs que la - POM a t faite. - -\layout Description -\noindent -Relative -\begin_inset LatexCommand \index{Position: Relative} - -\end_inset - - C'est la position relative d'un axe aprs qu'un ou plusieurs dcalages - aient t appliqus (pice, outil, etc). - -\layout Description -\noindent -Actuelle -\begin_inset LatexCommand \index{Position: Actuelle} - -\end_inset - - C'est la position relle d'un axe en coordonnes machine ou relatives. - -\layout Description -\noindent -Commande -\begin_inset LatexCommand \index{Position: Commandee} - -\end_inset - - C'est la position commande sur laquelle l'axe doit aller. -\layout Standard - -Elles sont toutes exactement les mmes si aucun dcalage n'a t appliqu - et qu'aucune bande morte n'a t paramtre dans le fichier INI. - La bande morte (Deadband) est une toute petite distance, suppose trs - proche -- peut tre une impulsion de pas ou un point de codeur. - -\layout Standard - -Il est galement important de voir tous les messages ou les codes d'erreur - envoys par EMC2. - Ceux-ci sont utiliss pour demander que l'oprateur change l'outil, pour - dcrire les problmes dans les programmes G-code ou indiquer pourquoi la - machine s'est arrte. -\layout Standard - -Vous modifierez votre faon de travailler avec ces petits textes, vous apprendre -z, petit petit, comment ajuster et faire fonctionner votre machine avec - le logiciel EMC2. - Pendant que vous apprendrez affiner les rglages, que vous travaillerez - avec votre mini fraiseuse, vous penserez d'autres applications et d'autres - possibilits. - Ce seront les sujets d'autres manuels de linuxcnc.org. -\layout Section - -Units -\begin_inset LatexCommand \index{unites} - -\end_inset - - -\begin_inset LatexCommand \label{sub:Unites} - -\end_inset - - -\layout Standard - -Les units peuvent prter confusion. - Vous pouvez vous demander, -\begin_inset Quotes eld -\end_inset - -Vaut-il mieux travailler en pouces, en pieds, en centimtres, millimtres - ou autre? -\begin_inset Quotes erd -\end_inset - - Plusieurs rponses sont possibles cette question mais la meilleure est - que a marchera mieux dans l'unit avec laquelle vous avez choisi de configur - la machine. - -\layout Standard - -Au niveau de la machine, chacun des axes est rgl avec une unit fixe - dans une variable du fichier INI. - Cette variable ressemble ceci: -\layout LyX-Code - -UNITS = inch -\layout Standard - -ou -\layout LyX-Code - -UNITS = mm -\layout Standard - -Aprs avoir dcid de l'unit utilise sur les axes, il faut indiquer - EMC2 combien d'impulsions moteur, ou de codeur, il doit envoyer ou lire - pour produire un dplacement pour chaque unit de distance. - Aprs cel, EMC2 sait compter les units de distance. - Cependant il est trs important de comprendre que ce calcul de distance - pour les axes est diffrent de la distance commande dans le programme. - Vous pouvez commander une distance en millimtres ou en pouces sans mme - penser aux units car il existe des G-code permettant de basculer d'une - unit mtrique une unit impriale. -\the_end diff --git a/docs/src/common/userforeword.lyx b/docs/src/common/userforeword.lyx deleted file mode 100644 index 7eec17bcb..000000000 --- a/docs/src/common/userforeword.lyx +++ /dev/null @@ -1,200 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Foreword -\end_layout - -\begin_layout Standard -EMC2 is modular and flexible. - These attributes lead many to see it as a confusing jumble of little things - and wonder why it is the way it is. - This page attempts to answer that question before you get into the thick - of things. -\end_layout - -\begin_layout Standard -EMC started at the National Institute of Standards and Technology in the - USA. - It grew up using Unix as it's operating system. - Unix made it different. - Among early Unix developers there grew a set of code writing ideas that - some call the Unix way. - These early EMC authors followed those ways. -\end_layout - -\begin_layout Quote -Eric S. - Raymond, in his book The Art of Unix Programming, summarizes the Unix philosoph -y as the widely-used engineering philosophy, "Keep it Simple, Stupid" (KISS - Principle). - He then describes how he believes this overall philosophy is applied as - a cultural Unix norm, although unsurprisingly it is not difficult to find - severe violations of most of the following in actual Unix practice: -\end_layout - -\begin_layout Quote -* Rule of Modularity: Write simple parts connected by clean interfaces. -\end_layout - -\begin_layout Quote -* Rule of Clarity: Clarity is better than cleverness. -\end_layout - -\begin_layout Quote -* Rule of Composition: Design programs to be connected to other programs. -\end_layout - -\begin_layout Quote -* Rule of Separation: Separate policy from mechanism; separate interfaces - from engines. -\begin_inset Foot -status collapsed - -\begin_layout Standard -Found at http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Mr Raymond offered several more rules but these four describe essential - characteristics of the EMC2 motion control system. - -\end_layout - -\begin_layout Standard -The -\series bold -Modularity -\series default - rule is critical. - Throughout these handbooks you will find talk of the interpreter or task - planner or motion or HAL. - Each of these is a module or collection of modules. - It's modularity that allows you to connect together just the parts you - need to run your machine. - -\end_layout - -\begin_layout Standard -The -\series bold -Clarity -\series default - rule is essential. - EMC2 is a work in progress -- it is not finished nor will it ever be. - It is complete enough to run most of the machines we want it to run. - Much of that progress is achieved because many users and code developers - are able to look at the work of others and build on what they have done. -\end_layout - -\begin_layout Standard -The -\series bold -Composition -\series default - rule allows us to build a predictable control system from the many modules - available by making them connectable. - We achieve connectability by setting up standard interfaces to sets of - modules and following those standards. -\end_layout - -\begin_layout Standard -The -\series bold -Separation -\series default - rule requires that we make distinct parts that do little things. - By separating functions debugging is much easier and replacement modules - can be dropped into the system and comparisons easily made. -\end_layout - -\begin_layout Standard -What does the Unix way mean for you as a user of EMC2. - It means that you are able to make choices about how you will use the system. - Many of these choices are a part of machine integration, but many also - affect the way you will use your machine. - As you read you will find many places where you will need to make comparisons. - Eventually you will make choices, "I'll use this interface rather than - that -\begin_inset Quotes erd -\end_inset - - or, -\begin_inset Quotes eld -\end_inset - -I'll write part offsets this way rather than that way." Throughout these - handbooks we describe the range of abilities currently available. - -\end_layout - -\begin_layout Standard -As you begin your journey into using EMC2 we offer two cautionary notes: -\begin_inset Foot -status open - -\begin_layout Standard -Found at http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -Praphrasing the words of Doug Gwyn on UNIX: "emc2 was not designed to stop - its users from doing stupid things, as that would also stop them from doing - clever things." -\end_layout - -\begin_layout Itemize -Likewise the words of Steven King: "emc2 is user-friendly. - It just isn't promiscuous about which users it's friendly with." -\end_layout - -\end_body -\end_document diff --git a/docs/src/common/userforeword_fr.lyx b/docs/src/common/userforeword_fr.lyx deleted file mode 100644 index 095a2d33e..000000000 --- a/docs/src/common/userforeword_fr.lyx +++ /dev/null @@ -1,201 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter* - -Avant-propos -\layout Standard - -EMC2 est souple et modulaire. - Ces attributs l'ont fait apparatre certains comme un brouillon de petits - morceaux confus, ils se sont demand pourquoi il en tait ainsi. - Cette page tente de rpondre cette question avant que vous lecteurs, - ne plongiez dedans pour vous faire votre propre ide. -\layout Standard - -EMC a dbut l'institut national des standards et des technologies des - Etats Unis, le NIST. - Il a mri comme un logiciel fonctionnant sur le systme d'exploitation - Unix. - Unix le rendait diffrent. - Trs tt des dveloppeurs Unix ont apport une srie d'ides concernant - l'criture du code, c'est devenu une criture selon -\begin_inset Quotes fld -\end_inset - -la tradition d'Unix -\begin_inset Quotes frd -\end_inset - -. - Les premiers auteurs d'EMC ont suivi cette voie. -\layout Quote - -Eric S. - Raymond, dans son livre The Art of Unix Programming, rsume la philosophie - Unix par la philosophie largement utilise en ingnirie, le principe KISS - Keep it Simple, Stupid Reste Simple, Crtin ou Sois Simple et Concis. - Puis il dcrit sa vision selon laquelle cette philosophie globale s'applique - en tant que norme culturelle Unix, bien qu'on trouve sans surprise de graves - entorses la plupart des rgles Unix suivantes: -\layout Quote - -* Rgle de modularit: Ecrire des lments simples relis par de bonnes - interfaces. -\layout Quote - -* Rgle de clart: La Clart vaut mieux que l'ingniosit. -\layout Quote - -* Rgle de composition: Concevoir des programmes qui peuvent tre relis - d'autres programmes. -\layout Quote - -* Rgle de sparation: Sparer les rgles du fonctionnement; Sparer les - interfaces du mcanisme. -\begin_inset Foot -collapsed true - -\layout Standard - -Trouv sur http://fr.wikipedia.org/wiki/Philosophie_d%27Unix le 09/09/2008 -\end_inset - - -\layout Standard - -M. - Raymond offre d'autres rgles mais ces quatre dcrivent les caractristiques - essentielles du systme de contrle de mouvement EMC2. - -\layout Standard - -La rgle de -\series bold -Modularit -\series default - est critique. - Tout au long de ces manuels, vous trouverez des discussions propos de - l'interprteur ou propos des planificateurs de tche ou de mouvement - ou encore propos de HAL. - Chacun d'eux est un module ou un ensemble de modules. - Cette modularit vous permettra de ne connecter entre elles que les parties - dont vous avez besoin pour le bon fonctionnement de votre machine. - -\layout Standard - -La rgle de -\series bold -clart -\series default - est essentielle. - EMC2 est en perptuelle volution, il n'est pas termin et ne le sera jamais. - Il est assez complet pour piloter toutes les machines que nous avons voulu - qu'il pilote. - Une bonne partie de cette volution est atteinte parce que les utilisateurs - et les dveloppeurs peuvent voir le travail des autres et construire sur - ce qui est dj fait. -\layout Standard - -La rgle de -\series bold -composition -\series default - nous permet de concevoir et de construire un contrleur partir des nombreux - modules existants, en les rendant connectables entre eux. - Nous obtenons cette connectivit en appliquant une interface standard - tous les modules et en suivant ce standard. -\layout Standard - -La rgle de -\series bold -sparation -\series default - exige que chaque petite chose soit faite par une partie distincte. - En sparant les fonctions, le dpannage est rendu plus ais, le remplacement - de modules par d'autres peut tre fait l'intrieur du systme et la comparais -on s'effectuer facilement. -\layout Standard - -Qu'apporte la fameuse -\begin_inset Quotes fld -\end_inset - -tradition d'Unix -\begin_inset Quotes frd -\end_inset - - vous, utilisateurs d'EMC2. - Elle signifie que vous pourrez faire des choix sur la faon d'utiliser - le systme. - Beaucoup de ces choix affecteront les parties intgres la machine, mais - beaucoup galement affecteront la manire dont vous utiliserez votre machine. - Au cours de votre lecture, vous trouverez diffrents endroits o vous pourrez - faire des comparaisons. - Finalement vous pourrez dire -\begin_inset Quotes fld -\end_inset - -J'utiliserai cette interface plutt que telle autre -\begin_inset Quotes frd -\end_inset - - ou, -\begin_inset Quotes fld -\end_inset - -J'crirai cette nouvelle partie de telle manire plutt que de telle autre. -\begin_inset Quotes frd -\end_inset - - Tout au long de ces manuels nous dcrirons l'tendue des possibilits d'EMC2 - actuellement disponibles. - -\layout Standard - -Puisque vous commencez votre voyage dans l'utilisation d'EMC2 nous vous - proposons ces deux citations: -\begin_inset Foot -collapsed false - -\layout Standard - -Trouv sur http://fr.wikipedia.org/wiki/Philosophie_d%27Unix le 06/07/2008 -\end_inset - - -\layout Itemize - -"Unix n'a pas t conu pour empcher ses utilisateurs de commettre des - actes stupides, car cela les empcherait aussi de raliser des actes ingnieux." - \SpecialChar ~ - Doug Gwyn -\layout Itemize - -"Unix est convivial. - Cependant Unix ne prcise pas vraiment avec qui." \SpecialChar ~ - Steven King -\the_end diff --git a/docs/src/config/copy_and_run.lyx b/docs/src/config/copy_and_run.lyx deleted file mode 100644 index 19334d740..000000000 --- a/docs/src/config/copy_and_run.lyx +++ /dev/null @@ -1,188 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Running EMC -\end_layout - -\begin_layout Section -Invoking EMC -\end_layout - -\begin_layout Standard -After installation, EMC2 starts just like any other piece of Linux software: - run it from the terminal by issuing the command -\family typewriter -emc -\family default -, or select it in the Applications > CNC menu. -\end_layout - -\begin_layout Section -Configuration Selector -\end_layout - -\begin_layout Standard -By default, the Configuration Selector dialog is shown when you first run - EMC. - Your own personalized configurations are shown at the top of the list, - followed by sample configurations. - Since each sample configuration is for a different type of hardware interface, - some will not run without the hardware installed. - The configurations listed under the category "sim" run entirely without - attached hardware. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:EMC2-Configuration-Selector" - -\end_inset - -EMC2 Configuration Selector -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/configuration-selector.png - width 80text% - keepAspectRatio - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Click any of the listed configurations to display specific information about - it. - Double-click a configuration or click OK to start the configuration. - Select "Create Desktop Shortcut" and then click OK to add an icon on the - Ubuntu desktop to directly launch this configuration without showing the - Configuration Selector screen. -\end_layout - -\begin_layout Standard -If you select a configuration from the Sample Configurations section, you - will be asked to copy the configuration to a location in your home directory. - It is safe to say "yes" to this prompt. - If you say "no", EMC may start but will behave strangely--for instance, - offsets entered with Touch Off will be cleared unexpectedly. - This is because the files are read only if you don't save a copy to your - home directory. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Copy Configuration Dialog -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/copy-configuration.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Next steps in configuration -\end_layout - -\begin_layout Standard -After finding the sample configuration that uses the same interface hardware - as your machine, and saving a copy to your home directory you can customize - it according to the details of your machine. - Refer to the Integrators Manual for topics on configuration. -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/copy_and_run_fr.lyx b/docs/src/config/copy_and_run_fr.lyx deleted file mode 100644 index b8e2a2d77..000000000 --- a/docs/src/config/copy_and_run_fr.lyx +++ /dev/null @@ -1,227 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -Dmarrage d'EMC -\layout Section - -Lancer emc -\layout Standard - -Aprs installation, emc2 se lance comme un autre programme Linux: depuis - un terminal en passant la commande -\family typewriter -\series bold -emc -\family default -\series default -, ou depuis le sous-menu -\family typewriter -\series bold -Applications -> CNC -\family default -\series default -. -\layout Section - -Slecteur de configuration -\layout Standard - -Par dfaut, le dialogue Slecteur de configuration s'affichera la premire - fois que vous lancerez emc. - Vos propres configurations personnalises s'affichent dans le haut de la - liste, suivies par les diffrentes configurations fournies en exemple. -\begin_inset Foot -collapsed false - -\layout Standard - -Etant donn que chaque exemple de configuration utilise un type diffrent - d'interface matrielle, la plupart ne fonctionneront pas sur votre systme. - Les configurations listes dans la catgorie -\begin_inset Quotes fld -\end_inset - -Sim -\begin_inset Quotes frd -\end_inset - - (simulation) fonctionneront toutes, mme sans matriel raccord. -\end_inset - -Figure -\begin_inset LatexCommand \ref{cap:Selecteur-de-configuration} - -\end_inset - - montre l'apparence de la fentre du slecteur de configuration. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{cap:Selecteur-de-configuration} - -\end_inset - -Slecteur de configuration pour EMC2 -\layout Standard -\align center - -\begin_inset Graphics - filename images/configuration-selector1_fr.png - width 80text% - -\end_inset - - -\end_inset - - -\layout Standard - -Cliquez dans la liste, sur les diffrentes configurations pour afficher - les informations les concernant. - Double-cliquez sur une configuration ou cliquez OK pour dmarrer EMC2 avec - cette configuration. - Cochez la case -\begin_inset Quotes fld -\end_inset - -Crer un raccourci sur le bureau -\begin_inset Quotes frd -\end_inset - - puis cliquez OK pour ajouter une icne sur le bureau d'Ubuntu. - Cette icne vous permettra par la suite de lancer directement EMC2 avec - cette configuration, sans passer par le slecteur de configuration. -\layout Standard - -Quand vous choisissez un exemple de configuration dans le slecteur, un - dialogue vous demandera si vous voulez en faire une copie dans votre rpertoire - home. - Si vous rpondez oui, un dossier -\begin_inset Quotes fld -\end_inset - -emc2 -\begin_inset Quotes frd -\end_inset - - autoris en criture sera cr, il contiendra un jeu de fichiers que vous - pourrez diter pour les adapter vos besoins. - Si vous rpondez -\begin_inset Quotes fld -\end_inset - -non -\begin_inset Quotes frd -\end_inset - -, emc dmarrera mais pourra se comporter de faon trange, par exemple, - les dcalages d'origine pice entrs avec la commande -\begin_inset Quotes fld -\end_inset - -Toucher -\begin_inset Quotes frd -\end_inset - - ne seront pas pris en compte, ce comportement est li ce moment, l'absence - de rpertoire autoris en criture sans lequel les paramtres ne peuvent - tre enregistrs. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Dialogue de copie de la configuration -\layout Standard -\align center - -\begin_inset Graphics - filename images/copy-configuration_fr.png - -\end_inset - - -\end_inset - - -\layout Section - -Les tapes suivantes dans la configuration -\layout Standard - -Si votre machine est pilote avec des signaux de type: -\begin_inset Quotes fld -\end_inset - -pas et direction -\begin_inset Quotes frd -\end_inset - - (step/dir) via le port parallle du PC, lisez le chapitre -\begin_inset Quotes fld -\end_inset - -Stepconf -\begin_inset Quotes frd -\end_inset - -. - Pour les autres types, trouvez l'exemple de configuration qui utilise la - mme interface matriel que votre machine et personnalisez la pour l'adapter - exactement votre matriel. - Pour cela, faites en une copie dans votre rpertoire home (voir chapitre: - 1.2) et passez la lecture du chapitre -\begin_inset Quotes fld -\end_inset - -INI Configuration -\begin_inset Quotes frd -\end_inset - -. -\the_end diff --git a/docs/src/config/emc2hal.lyx b/docs/src/config/emc2hal.lyx deleted file mode 100644 index 3232521d8..000000000 --- a/docs/src/config/emc2hal.lyx +++ /dev/null @@ -1,742 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -EMC2 and HAL -\end_layout - -\begin_layout Standard -See also the manual pages -\series bold -motion(9) -\series default - and -\series bold -iocontrol(1) -\series default -. -\end_layout - -\begin_layout Section -motion (realtime) -\end_layout - -\begin_layout Subsection -Options -\end_layout - -\begin_layout Standard -Motion is loaded with the motmod command. - A kins should be loaded before motion. -\end_layout - -\begin_layout LyX-Code -loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] [traj_period_ -nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] -\end_layout - -\begin_layout Standard -If the number of digital I/O needed is above the default of 4 you can add - up to 64 digital I/O by using the num_dio option when loading motmod. -\end_layout - -\begin_layout Standard -If the number of analog I/O needed is more that the default of 4 you can - add up to 16 analog I/O by using the num_aio option when loading motmod. -\end_layout - -\begin_layout Subsection -Pins -\begin_inset LatexCommand index -name "motion (hal pins)" - -\end_inset - - -\end_layout - -\begin_layout Standard -These pins, parameters, and functions are created by the realtime -\family typewriter -motmod -\family default - module. -\end_layout - -\begin_layout Description -motion.adaptive-feed (float, in) When adaptive feed is enabled with -\family typewriter -M52\InsetSpace ~ -P1 -\family default -, the commanded velocity is multiplied by this value. - This effect is multiplicative with the NML-level feed override value and - -\series bold -motion.feed-hold -\series default -. -\end_layout - -\begin_layout Description -motion.analog-in-00 (float, in) These pins (00, 01, 02, 03 or more if configured) - are controlled by M66. - -\end_layout - -\begin_layout Description -motion.analog-out-00 (float, out) These pins (00, 01, 02, 03 or more if configure -d) are controlled by M67 or M68. -\end_layout - -\begin_layout Description -motion.coord-error (bit, out) TRUE when motion has encountered an error, - such as exceeding a soft limit -\end_layout - -\begin_layout Description -motion.coord-mode (bit, out) TRUE when motion is in "coordinated mode", as - opposed to "teleop mode" -\end_layout - -\begin_layout Description -motion.current-vel (float, out) The current tool velocity in user units per - second. -\end_layout - -\begin_layout Description -motion.digital-in-00 (bit, in) These pins (00, 01, 02, 03 or more if configured) - are controlled by M62-65. -\end_layout - -\begin_layout Description -motion.digital-out-00 (bit, out) These pins (00, 01, 02, 03 or more if configured -) are controlled by the -\family typewriter -M62-65 -\family default -. -\end_layout - -\begin_layout Description -motion.distance-to-go (float,out) The distance remaining in the current move. -\end_layout - -\begin_layout Description -motion.enable (bit, in) If this bit is driven FALSE, motion stops, the machine - is placed in the "machine off" state, and a message is displayed for the - operator. - For normal motion, drive this bit TRUE. -\end_layout - -\begin_layout Description -motion.feed-hold (bit, in) When Feed Stop Control is enabled with -\family typewriter -M53\InsetSpace ~ -P1 -\family default -, and this bit is TRUE, the feed rate is set to 0. -\end_layout - -\begin_layout Description -motion.in-position (bit, out) TRUE if the machine is in position. -\end_layout - -\begin_layout Description -motion.motion-enabled (bit, out) TRUE when in "machine on" state. -\end_layout - -\begin_layout Description -motion.on-soft-limit (bit, out) TRUE when the machine is on a soft limit. -\end_layout - -\begin_layout Description -motion.probe-input (bit, in) -\family typewriter -G38.x -\family default - uses the value on this pin to determine when the probe has made contact. - TRUE for probe contact closed (touching), FALSE for probe contact open. -\end_layout - -\begin_layout Description -motion.program-line (s32, out) The current program line while executing. - Zero if not running or between lines while single stepping. -\end_layout - -\begin_layout Description -motion.requested-vel (float, out) The current requested velocity in user - units per second from the F=n setting in the G Code file. - No feed overrides or any other adjustments are applied to this pin. -\end_layout - -\begin_layout Description -motion.spindle-at-speed (bit, in) Motion will pause until this pin is TRUE, - under the following conditions: before the first feed move after each spindle - start or speed change; before the start of every chain of spindle-synchronized - moves; and if in CSS mode, at every rapid to feed transition. - This input can be used to ensure that the spindle is up to speed before - starting a cut, or that a lathe spindle in CSS mode has slowed down after - a large to small facing pass before starting the next pass at the large - diameter. - Many VFDs have an "at speed" output. - Otherwise, it is easy to generate this signal with the -\family typewriter -HAL near -\family default - component, by comparing requested and actual spindle speeds. -\end_layout - -\begin_layout Description -motion.spindle-brake (bit, out) TRUE when the spindle brake should be applied. -\end_layout - -\begin_layout Description -motion.spindle-forward (bit, out) TRUE when the spindle should rotate forward. -\end_layout - -\begin_layout Description -motion.spindle-index-enable (bit, I/O) For correct operation of spindle synchroni -zed moves, this pin must be hooked to the index-enable pin of the spindle - encoder. - -\end_layout - -\begin_layout Description -motion.spindle-on (bit, out) TRUE when spindle should rotate. -\end_layout - -\begin_layout Description -motion.spindle-reverse (bit, out) TRUE when the spindle should rotate backward -\end_layout - -\begin_layout Description -motion.spindle-revs (float, in) For correct operation of spindle synchronized - moves, this signal must be hooked to the position pin of the spindle encoder. - The spindle encoder position should be scaled such that spindle-revs increases - by 1.0 for each rotation of the spindle in the clockwise ( -\family typewriter -M3 -\family default -) direction. -\end_layout - -\begin_layout Description -motion.spindle-speed-in (float, in) Feedback of actual spindle speed in rotations - per second. - This is used by feed-per-revolution motion ( -\family typewriter -G95 -\family default -). - If your spindle encoder driver does not have a velocity output, you can - generate a suitable one by sending the spindle position through a -\family typewriter -ddt -\family default - component. -\end_layout - -\begin_layout Description -motion.spindle-speed-out (float, out) Commanded spindle speed in rotations - per minute. - Positive for spindle forward ( -\family typewriter -M3 -\family default -), negative for spindle reverse ( -\family typewriter -M4 -\family default -). -\end_layout - -\begin_layout Description -motion.spindle-speed-out-rps (float, out) Commanded spindle speed in rotations - per second. - Positive for spindle forward ( -\family typewriter -M3 -\family default -), negative for spindle reverse ( -\family typewriter -M4 -\family default -). -\end_layout - -\begin_layout Description -motion.teleop-mode (bit, out) TRUE when motion is in "teleop mode", as opposed - to "coordinated mode" -\end_layout - -\begin_layout Description -motion.tooloffset.w (float, out) shows the w offset in effect; it could come - from the tool table ( -\family typewriter -G43 -\family default - active), or it could come from the gcode ( -\family typewriter -G43.1 -\family default - active) -\end_layout - -\begin_layout Description -motion.tooloffset.x (float, out) shows the x offset in effect; it could come - from the tool table ( -\family typewriter -G43 -\family default - active), or it could come from the gcode ( -\family typewriter -G43.1 -\family default - active) -\end_layout - -\begin_layout Description -motion.tooloffset.z (float, out) shows the z offset in effect; it could come - from the tool table ( -\family typewriter -G43 -\family default - active), or it could come from the gcode ( -\family typewriter -G43.1 -\family default - active) -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Standard -Many of these parameters serve as debugging aids, and are subject to change - or removal at any time. -\end_layout - -\begin_layout Description -motion-command-handler.time (s32, RO) -\end_layout - -\begin_layout Description -motion-command-handler.tmax (s32, RW) -\end_layout - -\begin_layout Description -motion-controller.time (s32, RO) -\end_layout - -\begin_layout Description -motion-controller.tmax (s32, RW) -\end_layout - -\begin_layout Description -motion.debug-bit-0 (bit, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-bit-1 (bit, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-float-0 (float, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-float-1 (float, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-float-2 (float, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-float-3 (float, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-s32-0 (s32, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.debug-s32-1 (s32, RO) This is used for debugging purposes. - -\end_layout - -\begin_layout Description -motion.servo.last-period (u32, RO) The number of CPU cycles between invocations - of the servo thread. - Typically, this number divided by the CPU speed gives the time in seconds, - and can be used to determine whether the realtime motion controller is - meeting its timing constraints -\end_layout - -\begin_layout Description -motion.servo.last-period-ns (float, RO) -\end_layout - -\begin_layout Description -motion.servo.overruns (u32, RW) By noting large differences between successive - values of -\emph on -motion.servo.last-period -\emph default -, the motion controller can determine that there has probably been a failure - to meet its timing constraints. - Each time such a failure is detected, this value is incremented. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Standard -Generally, these functions are both added to the servo-thread in the order - shown. -\end_layout - -\begin_layout Description -motion-command-handler Processes motion commands coming from user space -\end_layout - -\begin_layout Description -motion-controller Runs the EMC motion controller -\end_layout - -\begin_layout Section -axis.N (realtime) -\end_layout - -\begin_layout Standard -These pins and parameters are created by the realtime -\family typewriter -motmod -\family default - module. - These are actually joint values, but the pins and parameters are still - called "axis.N". -\begin_inset Foot -status open - -\begin_layout Standard -In "trivial kinematics" machines, there is a one-to-one correspondence between - joints and axes. -\end_layout - -\end_inset - - They are read and updated by the -\emph on -motion-controller -\emph default - function. -\end_layout - -\begin_layout Subsection -Pins -\begin_inset LatexCommand index -name "axis (hal pins)" - -\end_inset - - -\end_layout - -\begin_layout Description -axis.N.active (bit, out) -\end_layout - -\begin_layout Description -axis.N.amp-enable-out (bit, out) TRUE if the amplifier for this joint should - be enabled -\end_layout - -\begin_layout Description -axis.N.amp-fault-in (bit, in) Should be driven TRUE if an external fault is - detected with the amplifier for this joint -\end_layout - -\begin_layout Description -axis.N.backlash-corr (float, out) -\end_layout - -\begin_layout Description -axis.N.backlash-filt (float, out) -\end_layout - -\begin_layout Description -axis.N.backlash-vel (float, out) -\end_layout - -\begin_layout Description -axis.N.coarse-pos-cmd (float, out) -\end_layout - -\begin_layout Description -axis.N.error (bit, out) -\end_layout - -\begin_layout Description -axis.N.f-error (float, out) -\end_layout - -\begin_layout Description -axis.N.f-error-lim (float, out) -\end_layout - -\begin_layout Description -axis.N.f-errored (bit, out) -\end_layout - -\begin_layout Description -axis.N.faulted (bit, out) -\end_layout - -\begin_layout Description -axis.N.free-pos-cmd (float, out) -\end_layout - -\begin_layout Description -axis.N.free-tp-enable (bit, out) -\end_layout - -\begin_layout Description -axis.N.free-vel-lim (float, out) -\end_layout - -\begin_layout Description -axis.N.home-sw-in (bit, in) Should be driven TRUE if the home switch for this - joint is closed. -\end_layout - -\begin_layout Description -axis.N.homed (bit, out) -\end_layout - -\begin_layout Description -axis.N.homing (bit, out) TRUE if the joint is currently homing -\end_layout - -\begin_layout Description -axis.N.in-position (bit, out) -\end_layout - -\begin_layout Description -axis.N.index-enable (bit, I/O) -\end_layout - -\begin_layout Description -axis.N.jog-counts (s32, in) Connect to the "counts" pin of an external encoder - to use a physical jog wheel. -\end_layout - -\begin_layout Description -axis.N.jog-enable (bit, in) When TRUE (and in manual mode), any change in - "jog-counts" will result in motion. - When false, "jog-counts" is ignored. -\end_layout - -\begin_layout Description -axis.N.jog-scale (float, in) Sets the distance moved for each count on "jog-counts -", in machine units. -\end_layout - -\begin_layout Description -axis.N.jog-vel-mode (bit, in) When FALSE (the default), the jogwheel operates - in position mode. - The axis will move exactly jog-scale units for each count, regardless of - how long that might take. - When TRUE, the wheel operates in velocity mode - motion stops when the - wheel stops, even if that means the commanded motion is not completed. -\end_layout - -\begin_layout Description -axis.N.joint-pos-cmd (float, out) The joint (as opposed to motor) commanded - position. - There may be an offset between the joint and motor positions--for example, - the homing process sets this offset. -\end_layout - -\begin_layout Description -axis.N.joint-pos-fb (float, out) The joint (as opposed to motor) feedback - position. -\end_layout - -\begin_layout Description -axis.N.joint-vel-cmd (float, out) -\end_layout - -\begin_layout Description -axis.N.kb-jog-active (bit, out) -\end_layout - -\begin_layout Description -axis.N.motor-pos-cmd (float, out) The commanded position for this joint. -\end_layout - -\begin_layout Description -axis.N.motor-pos-fb (float, in) The actual position for this joint. -\end_layout - -\begin_layout Description -axis.N.neg-hard-limit (bit, out) -\end_layout - -\begin_layout Description -axis.N.pos-lim-sw-in (bit, in) Should be driven TRUE if the positive limit - switch for this joint is closed -\end_layout - -\begin_layout Description -axis.N.pos-hard-limit (bit, out) -\end_layout - -\begin_layout Description -axis.N.neg-lim-sw-in (bit, in) Should be driven TRUE if the negative limit - switch for this joint is closed -\end_layout - -\begin_layout Description -axis.N.wheel-jog-active (bit, out) -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Description -axis.N.home-state Reflects the step of homing currently taking place -\end_layout - -\begin_layout Section -iocontrol (userspace) -\end_layout - -\begin_layout Standard -These pins are created by the userspace IO controller, usually called -\family typewriter -io -\family default -. -\end_layout - -\begin_layout Subsection -Pins -\begin_inset LatexCommand index -name "iocontrol (HAL pins)" - -\end_inset - - -\end_layout - -\begin_layout Description -iocontrol.0.coolant-flood (bit, out) TRUE when flood coolant is requested -\end_layout - -\begin_layout Description -iocontrol.0.coolant-mist (bit, out) TRUE when mist coolant is requested -\end_layout - -\begin_layout Description -iocontrol.0.emc-enable-in (bit, in) Should be driven FALSE when an external - E-Stop condition exists -\end_layout - -\begin_layout Description -iocontrol.0.lube (bit, out) TRUE when lube is commanded -\end_layout - -\begin_layout Description -iocontrol.0.lube_level (bit, in) Should be driven TRUE when lube level is - high enough -\end_layout - -\begin_layout Description -iocontrol.0.tool-change (bit, out) TRUE when a tool change is requested -\end_layout - -\begin_layout Description -iocontrol.0.tool-changed (bit, in) Should be driven TRUE when a tool change - is completed -\end_layout - -\begin_layout Description -iocontrol.0.tool-number (s32, out) The current tool number -\end_layout - -\begin_layout Description -iocontrol.0.tool-prep-number (s32, out) The number of the next tool, from - the RS274NGC T-word -\end_layout - -\begin_layout Description -iocontrol.0.tool-prepare (bit, out) TRUE when a tool prepare is requested -\end_layout - -\begin_layout Description -iocontrol.0.tool-prepared (bit, in) Should be driven TRUE when a tool prepare - is completed -\end_layout - -\begin_layout Description -iocontrol.0.user-enable-out (bit, out) FALSE when an internal E-Stop condition - exists -\end_layout - -\begin_layout Description -iocontrol.0.user-request-enable (bit, out) TRUE when the user has requested - that E-Stop be cleared -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/emc2hal_fr.lyx b/docs/src/config/emc2hal_fr.lyx deleted file mode 100644 index d2d1d5340..000000000 --- a/docs/src/config/emc2hal_fr.lyx +++ /dev/null @@ -1,766 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding latin1 -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -EMC2 et HAL -\layout Standard - -Voir galement les man pages -\series bold -motion(9) -\series default - et -\series bold -iocontrol(1) -\layout Section - -motion (realtime) -\layout Standard - -Ces pins, paramtres et fonctions sont crs par le module temps rel -\family typewriter - -\begin_inset Quotes eld -\end_inset - -motmod -\family default - -\begin_inset Quotes erd -\end_inset - -. -\layout Subsection - -Pins -\begin_inset LatexCommand \index{motion (hal pins)} - -\end_inset - - -\layout Description - -motion.adaptive-feed (Float, In) Quand la vitesse est place en mode adaptatif - avec -\family typewriter -M52\SpecialChar ~ -P1 -\family default - la vitesse commande est multiplie par cette valeur. - Cet effet est multiplicatif avec -\series bold -motion.feed-hold -\series default - et la valeur du correcteur de vitesse du niveau NML. -\layout Description - -motion.analog-in-nn (Float, In) Ces pins sont contrles par M66. - Les valeurs pour nn valides sont: 00, 01, 02, 03. - -\layout Description - -motion.current-vel (Float, out) The current tool velocity -\layout Description - -motion.digital-in-nn (bit, In) Ces pins sont contrles par M62 M65. - Les valeurs valides pour nn sont: 00, 01, 02, 03. -\layout Description - -motion.digital-out-nn (bit, out) Ces pins sont controles par les mots -\family typewriter -M62 -\family default - -\family typewriter -M65 -\family default -. -\layout Description - -motion.distance-to-go (Float, out) Distance restante pour terminer le mouvement - courant. -\layout Description - -motion.enable (bit, In) Si ce bit devient FALSE, les mouvements s'arrtent, - la machine est place dans l'tat -\begin_inset Quotes eld -\end_inset - -machine arrte -\begin_inset Quotes erd -\end_inset - - et un message est affich pour l'oprateur. - En fonctionnement normal, ce bit devra tre mis TRUE. -\layout Description - -motion.feed-hold (bit, In) Quand la vitesse est place en mode arrt contrl - avec -\family typewriter -M53\SpecialChar ~ -P1 -\family default - et que ce bit est TRUE, la vitesse est fixe 0. -\layout Description - -motion.motion-enabled (bit, out) TRUE quand l'tat de la machine est -\begin_inset Quotes eld -\end_inset - -machine on -\begin_inset Quotes erd -\end_inset - -. -\layout Description - -motion.motion-inpos (bit, In) TRUE si la machine est en position. -\layout Description - -motion.probe-input (bit, In) -\family typewriter - G38.x -\family default - utilise la valeur de cette pin pour dterminer quand la sonde de mesure - entre en contact. - TRUE le contact de la sonde est ferm (touche), FALSE le contact de la - sonde est ouvert. -\layout Description - -motion.spindle-brake (bit, out) TRUE quand le frein de broche doit tre activ. -\layout Description - -motion.spindle-forward (bit, In) TRUE quand la broche doit tourner en sens - horaire. -\layout Description - -motion.spindle-index-enable (bit, I/O) Pour les mouvements avec broche synchronis -e, ce signal doit tre raccord la broche -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - du codeur de broche. -\layout Description - -motion.spindle-on (bit, out) TRUE quand la broche doit tourner. -\layout Description - -motion.spindle-reverse (bit, out) TRUE quand la broche doit tourner en sens - anti-horaire. -\layout Description - -motion.spindle-revs (Float, In) Pour le bon fonctionnement des mouvements - avec broche synchronise, ce signal doit tre raccord la broche -\begin_inset Quotes eld -\end_inset - -position -\begin_inset Quotes erd -\end_inset - - du codeur de broche. - La position donne par le codeur de broche doit tre talonne pour que - -\begin_inset Quotes fld -\end_inset - -spindle-revs -\begin_inset Quotes frd -\end_inset - - augmente de 1.0 pour chaque tour de broche dans le sens horaire (M3). -\layout Description - -motion.spindle-speed-in (Float, In) Donne la vitesse actuelle de rotation - de la broche exprime en tours par seconde. - Elle est utilise pour les mouvements en units par tour (G95). - Si le pilote du codeur de broche ne dispose pas d'une sortie -\begin_inset Quotes fld -\end_inset - -vitesse -\begin_inset Quotes frd -\end_inset - -, il est possible d'en gnrer une en passant la position de la broche au - travers d'un composant ddt. -\layout Description - -motion.spindle-speed-out (Float, out) Consigne de vitesse de rotation de - la broche, exprime en tours par minute. - Positive pour le sens horaire (M3), ngative pour le sens anti-horaire - (M4). -\layout Description - -motion.spindle-at-speed (bit, In) Les mouvements passent en pause tant que - cette pin est TRUE, sous les conditions suivantes: avant le premier mouvement - d'avance suivant chaque dmarrage de broche ou changement de vitesse; aprs - le dmarrage de tout enchainement de mouvements avec broche synchronise; - et si en mode CSS, chaque transition avance rapide -> avance travail. - Cette entre peut tre utilise pour s'assurer que la broche a atteint - sa vitesse, avant de lancer un mouvement d'usinage. - Elle peut galement tre utilise sur un tour travaillant en mode CSS, - au passage d'un grand diamtre un petit, pour s'assurer que la vitesse - a t suffisamment rduite avant la prise de passe sur le petit diamtre - et inversement, lors du passage d'un petit diamtre vers un grand, pour - s'assurer que la vitesse a t suffisamment augmente. - Beaucoup de variateurs de frquence disposent d'une sortie -\begin_inset Quotes fld -\end_inset - -vitesse atteinte -\begin_inset Quotes frd -\end_inset - -. - Sinon, il est facile de gnrer ce signal avec le composant -\begin_inset Quotes fld -\end_inset - -near -\begin_inset Quotes frd -\end_inset - -, par comparaison entre la vitesse de broche demande et la vitesse actuelle. -\layout Description - -motion.tooloffset.w (Float, out) montre l'effet de l'offset w. - Il peut provenir de la table d'outils (G43 actif), ou du g-code (G43.1 actif) -\layout Description - -motion.tooloffset.x (float, out) montre l'effet de l'offset x. - Il peut provenir de la table d'outils (G43 actif), ou du g-code (G43.1 actif) -\layout Description - -motion.tooloffset.z (float, out) montre l'effet de l'offset z. - Il peut provenir de la table d'outils (G43 actif), ou du g-code (G43.1 actif) -\layout Subsection - -Paramtres -\layout Standard - -Beaucoup de ces paramtres servent d'aide au dboguage et sont sujets aux - changements ou au retrait tout moment. -\layout Standard - - -\series bold -motion-command-handler.time -\series default - (s32, RO) -\layout Standard - - -\series bold -motion-command-handler.tmax -\series default - (s32, RW) -\layout Standard - - -\series bold -motion-controller.time -\series default - (s32, RO) -\layout Standard - - -\series bold -motion-controller.tmax -\series default - (s32, RW) -\layout Description - -motion.coord-error (bit, RO) TRUE quand le mouvement est en erreur, ex: dpasser - une limite soft. -\layout Description - -motion.coord-mode (bit, RO) TRUE quand le mouvement est en -\begin_inset Quotes eld -\end_inset - -mode coordonnes -\begin_inset Quotes erd -\end_inset - - par opposistion au -\begin_inset Quotes eld -\end_inset - -mode tlopration -\begin_inset Quotes erd -\end_inset - -. -\layout Description - -motion.debug-bit-0 (bit, RO) Utilis pour le dboguage. - -\layout Description - -motion.debug-bit-1 (bit, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-float-0 (Float, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-float-1 (Float, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-float-2 (Float, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-float-3 (Float, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-s32-0 (s32, RO) Utilis pour le dboguage. -\layout Description - -motion.debug-s32-1 (s32, RO) Utilis pour le dboguage. -\layout Description - -motion.in-position (bit, RO) Identique la pin -\series bold -motion.motion-inpos -\layout Description - -motion.on-soft-limit (bit, RO) -\layout Description - -motion.program-line (s32, RO) -\layout Description - -motion.servo.last-period Le nombre de cycle du processeur entre les invoquations - du thread servo. - Typiquement, ce nombre divis par la vitesse du processeur donne un temps - en secondes. - Il peut tre utilis pour determiner si le contrleur de mouvement en temps - rel respecte ses contraintes de timing. -\layout Description - -motion.servo.last-period-ns (float, RO) -\layout Description - -motion.servo.overruns En voyant de grandes diffrences entre les valeurs successiv -es de -\series bold -motion -\emph on -. -\emph default -servo -\emph on -. -\emph default -last -\emph on -- -\emph default -period -\series default -, le contrleur de mouvement peut dterminer qu'il a eu un chec pour respecter - ses contraintes de timing. - Chaque fois qu'une erreur est dtecte, cette valeur est incrmente. -\layout Subsection - -Fonctions -\layout Standard - -Gnralement, ces fonctions sont toutes les deux ajoutes servo-thread - dans l'ordre suivant: -\layout Description - -motion-command-handler Processus des commandes de mouvement provenant de - l'interface utilisateur. -\layout Description - -motion-controller Lance le contrleur de mouvement d'emc. -\layout Section - -axis.N (temps rel) -\layout Standard - -Ces pins et paramtres sont crs par le module temps rel -\begin_inset Quotes eld -\end_inset - - -\family typewriter -motmod -\begin_inset Quotes erd -\end_inset - - -\family default -. - Ce sont en fait des valeurs d'articulations, mais les pins et les paramtres - sont toujours appels -\begin_inset Quotes eld -\end_inset - -axis.N -\begin_inset Quotes erd -\end_inset - -. -\begin_inset Foot -collapsed false - -\layout Standard - -Dans une machine -\begin_inset Quotes eld -\end_inset - -cinmatique triviale -\begin_inset Quotes erd -\end_inset - -, il y a correspondance une pour une, entre les articulations et les axes. -\layout Standard - -NDT: nous utilisons dans cette traduction le terme -\begin_inset Quotes eld -\end_inset - -axe -\begin_inset Quotes erd -\end_inset - -, dans le cas d'une cinmatique non triviale il devra tre remplac par - le terme -\begin_inset Quotes eld -\end_inset - -articulation -\begin_inset Quotes erd -\end_inset - - (joint). - -\end_inset - - Ils sont lus et mis jour par la fonction -\series bold -motion -\emph on -- -\emph default -controller -\series default -. -\layout Subsection - -Pins -\begin_inset LatexCommand \index{axis (hal pins)} - -\end_inset - - -\layout Description - -axis.N.amp-enable-out (bit, out) TRUE si l'ampli de cet axe doit tre activ. -\layout Description - -axis.N.amp-fault-in (bit, In) Doit tre mis TRUE si une erreur externe est - dtecte sur l'ampli de cet axe. -\layout Description - -axis.N.home-sw-in (bit, In) Doit tre mis TRUE si le contact d'origine de - cet axe est press. -\layout Description - -axis.N.homing (bit, out) TRUE si la prise d'origine de cette axe a t faite. -\layout Description - -axis.N.pos-lim-sw-in (bit, In) Doit tre mis TRUE si le fin de course de limite - positive de cet axe est activ. -\layout Description - -axis.N.neg-lim-sw-in (bit, In) Doit tre mis TRUE si le fin de course de limite - ngative de cet axe est activ. -\layout Description - -axis.N.index-enable (bit, I/O) Doit tre relie la broche -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - du codeur de cet axe pour activer la prise d'origine sur l'impulsion d'index. -\layout Description - -axis.N.jog-counts (s32, In) Connection la broche -\begin_inset Quotes eld -\end_inset - -counts -\begin_inset Quotes erd -\end_inset - - d'un codeur externe utilis comme manivelle. -\layout Description - -axis.N.jog-enable (bit, In) Quand elle est TRUE (et en mode manuel), tout - changement dans -\begin_inset Quotes eld -\end_inset - -jog-counts -\begin_inset Quotes erd -\end_inset - - se traduira par un mouvement. - Quand elle est FALSE, -\begin_inset Quotes eld -\end_inset - -jog-counts -\begin_inset Quotes erd -\end_inset - - sera ignor. -\layout Description - -axis.N.jog-scale (Float, In) Fixe la distance, en units machine, du dplacement - pour chaque volution de -\begin_inset Quotes eld -\end_inset - -jog-counts -\begin_inset Quotes erd -\end_inset - -. -\layout Description - -axis.N.jog-vel-mode (bit, In) Quand elle est FALSE (par dfaut), la manivelle - fonctionne en mode position. - L'axe se dplace exactement selon l'incrment de jog slectionn pour chaque - impulsion, sans s'occuper du temps que prendra le mouvement. - Quand elle est TRUE, la manivelle fonctionne en mode vitesse. - Le mouvement s'arrte quand la manivelle s'arrte, mme si le mouvement - command n'est pas achev. -\layout Description - -axis.N.motor-pos-cmd (Float, out) La position commande pour cet axe. -\layout Description - -axis.N.motor-pos-fb (Float, In) La position actuelle de cet axe. -\layout Description - -axis.N.joint-pos-cmd Position commande de l'axe (par opposition celle du - moteur). - Il peut y avoir un dcalage entre la position de l'axe et celle du moteur, - par exemple, le processus de prise d'origine peut ajuster cet cart. -\layout Description - -axis.N.joint-pos-fb Le retour de position (par opposition celui du moteur). -\layout Subsection - -Paramtres -\layout Standard - -Beaucoup de ces paramtres servent d'aide au dboguage et sont sujets aux - changements ou au retrait tout moment. -\layout Description - -axis.N.active TRUE quand cet axe est actif. -\layout Description - -axis.N.backlash-corr Valeur brute de ratrappage de jeu. -\layout Description - -axis.N.backlash-filt Valeur filtre de ratrappage de jeu (respect des limites - de mouvement). -\layout Description - -axis.N.backlash-vel Vitesse de ratrappage de jeu. -\layout Description - -axis.N.coarse-pos-cmd -\layout Description - -axis.N.error TRUE quand une erreur ce produit sur cet axe, ex: une limite - de course est atteinte. -\layout Description - -axis.N.f-error Erreur de suivi actuelle. -\layout Description - -axis.N.f-error-lim Limite d'erreurs de suivi. -\layout Description - -axis.N.f-errored TRUE quand cet axe dpass la limite d'erreurs de suivi. -\layout Description - -axis.N.free-pos-cmd Position commande en -\begin_inset Quotes eld -\end_inset - -free planner -\begin_inset Quotes erd -\end_inset - - pour cet axe. -\layout Description - -axis.N.free-tp-enable TRUE quand le -\begin_inset Quotes eld -\end_inset - -free planner -\begin_inset Quotes erd -\end_inset - - est activ pour cet axe. -\layout Description - -axis.N.free-vel-lim Vitesse limite en -\begin_inset Quotes eld -\end_inset - -free planner -\begin_inset Quotes erd -\end_inset - -. -\layout Description - -axis.N.home-state Refte l'tape de la prise d'origine en cours actuellement. -\layout Description - -axis.N.homed TRUE si la prise d'origine de cet axe a bien t ralise. -\layout Description - -axis.N.in-position TRUE si cet axe, utilisant le -\begin_inset Quotes eld -\end_inset - -free planner -\begin_inset Quotes erd -\end_inset - -, a atteint un arrt. -\layout Description - -axis.N.joint-vel-cmd Vitesse commande des axes. -\layout Description - -axis.N.neg-hard-limit Fin de course de limite d'axe ngative. -\layout Description - -axis.N.neg-soft-limit Limite soft ngative de cet axe. -\layout Description - -axis.N.pos-hard-limit Fin de course de limite d'axe positive. -\layout Description - -axis.N.pos-soft-limit Limite soft positive de cet axe. -\layout Section - -iocontrol (espace utilisateur) -\layout Standard - -Ces pins sont cres par le contrleur d'entres/sorties de l'espace utilisateur -, habituellement appel -\family typewriter - -\begin_inset Quotes eld -\end_inset - -io -\family default - -\begin_inset Quotes erd -\end_inset - -. -\layout Subsection - -Pins -\begin_inset LatexCommand \index{iocontrol (HAL pins)} - -\end_inset - - -\layout Description - -iocontrol.0.coolant-flood (bit, out) TRUE quand l'arrosage est demand. -\layout Description - -iocontrol.0.coolant-mist (bit, out) TRUE quand le brouillard est demand. -\layout Description - -iocontrol.0.emc-enable-in (bit, In) Doit tre mise FALSE quand un arrt d'urgence - externe est enfonc. -\layout Description - -iocontrol.0.lube (bit, out) TRUE quand le graissage centralis est command. -\layout Description - -iocontrol.0.lube_level (bit, In) Doit tre mise TRUE quand le niveau d'huile - est assez haut. -\layout Description - -iocontrol.0.tool-change (bit, out) TRUE quand un changement d'outil est demand. -\layout Description - -iocontrol.0.tool-changed (bit, In) Doit tre mise TRUE quand le changement - d'outil est termin. -\layout Description - -iocontrol.0.tool-number (s32, out) Numro de l'outil courant. -\layout Description - -iocontrol.0.tool-prep-number (s32, out) Numro du prochain outil, donn dans - le mot T selon RS274NGC. -\layout Description - -iocontrol.0.tool-prepare (bit, out) TRUE quand une prparation d'outil est - demande. -\layout Description - -iocontrol.0.tool-prepared (bit, In) Doit tre mise TRUE quand une prparation - d'outil est termine. - -\layout Description - -iocontrol.0.user-enable-out (bit, out) FALSE quand un arrt d'urgence interne - est enfonc. -\layout Description - -iocontrol.0.user-request-enable (bit, out) TRUE quand l'utilisateur relche - l'arrt d'urgence. -\the_end diff --git a/docs/src/config/ini_config.lyx b/docs/src/config/ini_config.lyx deleted file mode 100644 index 5064a5841..000000000 --- a/docs/src/config/ini_config.lyx +++ /dev/null @@ -1,3059 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Config Files -\end_layout - -\begin_layout Section -Files Used for Configuration -\end_layout - -\begin_layout Standard -The EMC is configured with human readable text files. - All of these files can be read and edited in any of the common text file - editors available with most any Linux distribution. -\begin_inset Foot -status open - -\begin_layout Standard -Don't confuse a text editor with a word processor. - A text editor like gedit or kwrite produce files that are plain text. - They also produce lines of text that are separated from each other. - A word processor like Open Office produce files with paragraphs and word - wrapping and lots of embedded codes that control font size and such. - A text editor does none of this. -\end_layout - -\end_inset - - You'll need to be a bit careful when you edit these files. - Some mistakes will cause the start up to fail. - These files are read whenever the software starts up. - Some of them are read repeatedly while the CNC is running. - -\end_layout - -\begin_layout Standard -Configuration files include -\end_layout - -\begin_layout Description -INI -\begin_inset LatexCommand index -name "INI" - -\end_inset - - The ini file overrides defaults that are compiled into the EMC code. - It also provides sections that are read directly by the Hardware Abstraction - Layer. -\end_layout - -\begin_layout Description -HAL -\begin_inset LatexCommand index -name "HAL" - -\end_inset - - The HAL files start up process modules and provide linkages between EMC - signals and specific hardware pins. -\end_layout - -\begin_layout Description -VAR -\begin_inset LatexCommand index -name "VAR" - -\end_inset - - The var file is a way for the interpreter to save some values from one - run to the next. - These values are saved from one run to another but not always saved immediately. - See the Parameters section of the G Code Manual for information on what - each parameter is. -\end_layout - -\begin_layout Description -TBL -\begin_inset LatexCommand index -name "TBL" - -\end_inset - - The tbl file saves tool information. - See the User Manual Tool File section for more info. -\end_layout - -\begin_layout Description -NML -\begin_inset LatexCommand index -name "NML" - -\end_inset - - The nml file configures the communication channels used by the EMC. - It is normally setup to run all of the communication within a single computer - but can be modified to communicate between several computers. -\end_layout - -\begin_layout Description -.emcrc -\begin_inset LatexCommand index -name ".emcrc" - -\end_inset - - This file saves user specific information and is created to save the name - of the directory when the user first selects an EMC configuration. -\begin_inset Foot -status open - -\begin_layout Standard -Usually this file is in the users home directory (e.g. - /home/user/ ) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Items marked -\series bold -\noun on -(hal) -\series default -\noun default - are used only by the sample HAL files and are suggested as a good convention. - Other items are used by EMC directly, and must always have the section - and item names given. -\end_layout - -\begin_layout Chapter -INI File -\end_layout - -\begin_layout Section -The INI File Layout -\end_layout - -\begin_layout Standard -A typical INI file follows a rather simple layout that includes; -\end_layout - -\begin_layout Itemize -comments. -\end_layout - -\begin_layout Itemize -sections, -\end_layout - -\begin_layout Itemize -variables. -\end_layout - -\begin_layout Standard -Each of these elements is separated on single lines. - Each end of line or newline character creates a new element. - -\end_layout - -\begin_layout Subsection -Comments -\begin_inset LatexCommand index -name "comments" - -\end_inset - - -\end_layout - -\begin_layout Standard -A comment line is started with a ; or a # mark. - When the ini reader sees either of these marks at the start a line, the - rest of the line is ignored by the software. - Comments can be used to describe what some INI element will do. - -\end_layout - -\begin_layout LyX-Code -; This is my little mill configuration file. -\end_layout - -\begin_layout LyX-Code -; I set it up on January 12, 2006 -\end_layout - -\begin_layout Standard -Comments can also be used to select between several values of a single variable. - -\end_layout - -\begin_layout LyX-Code -DISPLAY = axis -\end_layout - -\begin_layout LyX-Code -# DISPLAY = touchy -\end_layout - -\begin_layout Standard -In this list, the DISPLAY variable will be set to axis because the other - one is commented out. - If someone carelessly edits a list like this and leaves two of the lines - uncommented, the first one encountered will be used. -\end_layout - -\begin_layout Standard -Note that inside a variable, the "#" and ";" characters do not denote comments: -\end_layout - -\begin_layout LyX-Code -INCORRECT = value # and a comment -\end_layout - -\begin_layout LyX-Code -# Correct Comment -\end_layout - -\begin_layout LyX-Code -CORRECT = value -\end_layout - -\begin_layout Subsection -Sections -\end_layout - -\begin_layout Standard -Related parts of an ini file are separated into sections. - A section line looks like [THIS_SECTION]. - The name of the section is enclosed in brackets. - The order of sections is unimportant. - The following sections are used by EMC: -\end_layout - -\begin_layout Itemize -[EMC] general information ( -\begin_inset LatexCommand ref -reference "sub:[EMC]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[DISPLAY] settings related to the graphical user interface ( -\begin_inset LatexCommand ref -reference "sub:[DISPLAY]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[FILTER] settings input filter programs ([sub:[FILTER]-Section]) -\end_layout - -\begin_layout Itemize -[RS274NGC] settings used by the g-code interpreter ( -\begin_inset LatexCommand ref -reference "sub:[RS274NGC]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[EMCMOT] settings used by the real time motion controller ( -\begin_inset LatexCommand ref -reference "sub:[EMCMOT]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[HAL] specifies .hal files ( -\begin_inset LatexCommand ref -reference "sub:[HAL]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[TASK] settings used by the task controller ( -\begin_inset LatexCommand ref -reference "sub:[TASK]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[TRAJ] additional settings used by the real time motion controller ( -\begin_inset LatexCommand ref -reference "sub:[TRAJ]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[AXIS_0] ... - [AXIS_n] individual axis variables ( -\begin_inset LatexCommand ref -reference "sub:[AXIS]-section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[EMCIO] settings used by the I/O Controller ( -\begin_inset LatexCommand ref -reference "sub:[EMCIO]-Section" - -\end_inset - -) -\end_layout - -\begin_layout Itemize -[HALUI] MDI commands used by HALUI. - See the HALUI chapter for more information ( -\begin_inset LatexCommand ref -reference "sub:MDI" - -\end_inset - -) -\end_layout - -\begin_layout Subsection -Variables -\end_layout - -\begin_layout Standard -A variable line is made up of a variable name, an equals sign(=), and a - value. - -\color none - -\color black -Everything from the first non-white space character after the = up to the - end of the line is passed as the value, so you can embed spaces in string - symbols if you want to or need to. - A variable name is often called a keyword. -\end_layout - -\begin_layout Standard - -\color black -The following sections detail each section of the configuration file, using - sample values for the configuration lines. -\end_layout - -\begin_layout Standard -Some of the variables are used by EMC, and must always use the section names - and variable names shown. - Other variables are used only by HAL, and the section names and variable - names shown are those used in the sample configuration files. -\end_layout - -\begin_layout Subsection -Definitions -\end_layout - -\begin_layout Description -Machine\InsetSpace ~ -Unit The unit of measurement for an axis is determined by the settings - in the [TRAJ] section. - A machine unit is equal to one unit as specified by -\color black -LINEAR_UNITS or ANGULAR_UNITS. - -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sub:INI-Detail" - -\end_inset - -Sections -\end_layout - -\begin_layout Subsection -[EMC] Section -\color none - -\color black - -\begin_inset LatexCommand label -name "sub:[EMC]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "EMC (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Description - -\color black -VERSION\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -$Revision: -\series default -\InsetSpace ~ - -\series bold -1.3 -\series default -\InsetSpace ~ - -\series bold -$ -\series default -\color none - -\color black -The version number for the INI file. - The value shown here looks odd because it is automatically updated when - using the Revision Control System. - It's a good idea to change this number each time you revise your file. - If you want to edit this manually just change the number and leave the - other tags alone. - -\end_layout - -\begin_layout Description - -\color black -MACHINE\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -My -\series default -\InsetSpace ~ - -\series bold -Controller -\series default -\color none - -\color black -This is the name of the controller, which is printed out at the top of most - graphical interfaces. - You can put whatever you want here as long as you make it a single line - long. -\end_layout - -\begin_layout Description -DEBUG\InsetSpace ~ -=\InsetSpace ~ -0 Debug level 0 means no messages will be printed when EMC is run - from a terminal. - Debug flags are usually only useful to developers. - See src/emc/nml_int/emcglb.h for other settings. - -\end_layout - -\begin_layout Subsection -[DISPLAY] Section -\color none - -\color black - -\begin_inset LatexCommand label -name "sub:[DISPLAY]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "DISPLAY (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Standard -Different user interface programs use different options, and not every option - is supported by every user interface. - The main two interfaces for EMC are AXIS and Touchy. - Axis is an interface for use with normal computer and monitor, Touchy is - for use with touch screens. - Descriptions of the interfaces are in the Interfaces section of the User - Manual. -\end_layout - -\begin_layout Standard - -\series bold -\color black -DISPLAY\InsetSpace ~ -=\InsetSpace ~ -axis -\series default -\color none - -\color black -The name of the user interface to use. - Valid options may include: -\end_layout - -\begin_layout Itemize -axis -\begin_inset LatexCommand index -name "axis" - -\end_inset - - -\end_layout - -\begin_layout Itemize -touchy -\begin_inset LatexCommand index -name "touchy" - -\end_inset - - -\end_layout - -\begin_layout Itemize - -\color black -keystick -\begin_inset LatexCommand index -name "keystick" - -\end_inset - - -\end_layout - -\begin_layout Itemize -mini -\begin_inset LatexCommand index -name "mini" - -\end_inset - - -\end_layout - -\begin_layout Itemize - -\color black -tkemc -\begin_inset LatexCommand index -name "tkemc" - -\end_inset - - -\end_layout - -\begin_layout Itemize - -\color black -xemc -\begin_inset LatexCommand index -name "xemc" - -\end_inset - - -\end_layout - -\begin_layout Description -POSITION_OFFSET\InsetSpace ~ -=\InsetSpace ~ -RELATIVE The coordinate system (RELATIVE or MACHINE) to - show when the user interface starts. - The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets - currently in effect. -\end_layout - -\begin_layout Description -POSITION_FEEDBACK\InsetSpace ~ -=\InsetSpace ~ -ACTUAL The coordinate value (COMMANDED or ACTUAL) to show - when the user interface starts. - The COMMANDED position is the ideal position requested by EMC. - The ACTUAL position is the feedback position of the motors. -\end_layout - -\begin_layout Description -MAX_FEED_OVERRIDE\InsetSpace ~ -=\InsetSpace ~ -1.2 The maximum feed override the user may select. - 1.2 means 120% of the programmed feed rate -\end_layout - -\begin_layout Description -MIN_SPINDLE_OVERRIDE\InsetSpace ~ -=\InsetSpace ~ -0.5 The minimum spindle override the user may select. - 0.5 means 50% of the programmed spindle speed. - (This is useful as it's dangerous to run a program with a too low spindle - speed). -\end_layout - -\begin_layout Description -MAX_SPINDLE_OVERRIDE\InsetSpace ~ -=\InsetSpace ~ -1.0 The maximum spindle override the user may select. - 1.0 means 100% of the programmed spindle speed -\end_layout - -\begin_layout Description -PROGRAM_PREFIX\InsetSpace ~ -=\InsetSpace ~ -~/emc2/nc_files The default location for g-code files and - the location for user-defined M-codes -\end_layout - -\begin_layout Description -INTRO_GRAPHIC\InsetSpace ~ -=\InsetSpace ~ -emc2.gif The image shown on the splash screen -\end_layout - -\begin_layout Description -INTRO_TIME\InsetSpace ~ -=\InsetSpace ~ -5 The maximum time to show the splash screen -\end_layout - -\begin_layout Description -CYCLE_TIME\InsetSpace ~ -=\InsetSpace ~ -0.0500 Cycle time in seconds that display will sleep between polls. -\end_layout - -\begin_layout Standard -The following [DISPLAY] items are used only if you select AXIS as your user - interface program. -\end_layout - -\begin_layout Description -DEFAULT_LINEAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -.25 The default velocity for linear jogs, in machine - units per second. - -\end_layout - -\begin_layout Description -MIN_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -.01 The approximate lowest value the jog slider. - -\end_layout - -\begin_layout Description -MAX_LINEAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -1.0 The maximum velocity for linear jogs, in machine - units per second. - -\end_layout - -\begin_layout Description -MIN_LINEAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -.01 The approximate lowest value the jog slider. -\end_layout - -\begin_layout Description -DEFAULT_ANGULAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -.25 The default velocity for angular jogs, in machine - units per second. - -\end_layout - -\begin_layout Description -MIN_ANGULAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -.01 The approximate lowest value the jog slider. -\end_layout - -\begin_layout Description -MAX_ANGULAR_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -1.0 The maximum velocity for angular jogs, in machine - units per second. - -\end_layout - -\begin_layout Description -INCREMENTS\InsetSpace ~ -=\InsetSpace ~ -1\InsetSpace ~ -mm,\InsetSpace ~ -.5\InsetSpace ~ -in,\InsetSpace ~ -... - Defines the increments available for incremental jogs. - The INCREMENTS can be used to override the default. - The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., - 1/16), optionally followed by a unit (cm, mm, um, inch, in or mil). - If a unit is not specified the machine unit is assumed. - Metric and imperial distances may be mixed: INCREMENTS = 1 inch, 1 mil, - 1 cm, 1 mm, 1 um is a valid entry. -\end_layout - -\begin_layout Description -OPEN_FILE\InsetSpace ~ -=\InsetSpace ~ -/full/path/to/file.ngc The file to show in the preview plot when - AXIS starts. - Use a blank string "" and no file will be loaded at start up. -\end_layout - -\begin_layout Description -EDITOR\InsetSpace ~ -=\InsetSpace ~ -gedit The editor to use when selecting File > Edit or File Edit Tool - Table from the AXIS menu. - This must be configured for these menu items to work. - Another valid entry is gnome-terminal -e vim. -\end_layout - -\begin_layout Description -PYVCP\InsetSpace ~ -=\InsetSpace ~ -/filename.xml The pyVCP panel description file. - See the pyVCP section for more information. -\end_layout - -\begin_layout Description -LATHE\InsetSpace ~ -=\InsetSpace ~ -1 This displays in lathe mode with a top view and with Radius and - Diameter on the DRO. -\end_layout - -\begin_layout Description -GEOMETRY\InsetSpace ~ -=\InsetSpace ~ -XYZABCUVW Controls the preview and backplot of rotary motion. - This item consists of a sequence of axis letters, optionally preceded by - a "-" sign. - Only axes defined in -\family typewriter -[TRAJ]AXES -\family default - should be used. - This sequence specifies the order in which the effect of each axis is applied, - with a "-" inverting the sense of the rotation. -\newline -The proper GEOMETRY string - depends on the machine configuration and the kinematics used to control - it. - The example string GEOMETRY=XYZBCUVW is for a 5-axis machine where kinematics - causes UVW to move in the coordinate system of the tool and XYZ to move - in the coordinate system of the material. - The order of the letters is important, because it expresses the order in - which the different transformations are applied. - For example rotating around C then B is different than rotating around - B then C. - Geometry has no effect without a rotary axis. -\end_layout - -\begin_layout Description -ARCDIVISION\InsetSpace ~ -=\InsetSpace ~ -64 Set the quality of preview of arcs. - Arcs are previewed by dividing them into a number of straight lines; a - semicircle is divided into -\series bold -ARCDIVISION -\series default - parts. - Larger values give a more accurate preview, but take longer to load and - result in a more sluggish display. - Smaller values give a less accurate preview, but take less time to load - and may result in a faster display. - The default value of 64 means a circle of up to 3 inches will be displayed - to within 1 mil (.03%). -\begin_inset Foot -status open - -\begin_layout Standard -In emc2.4 and earlier, the default value was 128. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -MDI_HISTORY_FILE\InsetSpace ~ -= The name of a local MDI history file. - If this is not specified Axis will save the MDI history in /home/~/.axis_mdi_his -tory in the home directory. - This is useful if you have multiple configurations on one computer. -\end_layout - -\begin_layout Standard -The following [DISPLAY] items are not used if you select AXIS as your user - interface program. -\end_layout - -\begin_layout Description -HELP_FILE\InsetSpace ~ -=\InsetSpace ~ -tkemc.txt Path to help file (not used in AXIS). -\end_layout - -\begin_layout Subsection -[FILTER] Section -\begin_inset LatexCommand index -name "ini [FILTER] Section" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:[FILTER]-Section" - -\end_inset - - -\end_layout - -\begin_layout Standard -AXIS has the ability to send loaded files through a filter program. - This filter can do any desired task: Something as simple as making sure - the file ends with M2, or something as complicated as detecting whether - the input is a depth image, and generating g-code to mill the shape it - defines. - The [FILTER] section of the ini file controls how filters work. - First, for each type of file, write a PROGRAM_EXTENSION line. - Then, specify the program to execute for each type of file. - This program is given the name of the input file as its first argument, - and must write rs274ngc code to standard output. - This output is what will be displayed in the text area, previewed in the - display area, and executed by EMC when Run. - -\end_layout - -\begin_layout Description -PROGRAM_EXTENSION\InsetSpace ~ -=\InsetSpace ~ -.extension\InsetSpace ~ -Description -\end_layout - -\begin_layout Standard -If your post processor outputs files in all caps you might want to add the - following line: -\end_layout - -\begin_layout LyX-Code -PROGRAM_EXTENSION = .NGC XYZ Post Processor -\end_layout - -\begin_layout Standard -The following lines add support for the image-to-gcode converter included - with EMC2: -\end_layout - -\begin_layout LyX-Code -PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image -\newline -png = image-to-gcode -\newline -gif - = image-to-gcode -\end_layout - -\begin_layout Standard -It is also possible to specify an interpreter: -\end_layout - -\begin_layout LyX-Code -PROGRAM_EXTENSION = .py Python Script -\newline -py = python -\end_layout - -\begin_layout Standard -In this way, any Python script can be opened, and its output is treated - as g-code. - One such example script is available at nc_files/holecircle.py. - This script creates g-code for drilling a series of holes along the circumferen -ce of a circle. - Many more g-code generators are on the EMC Wiki site -\begin_inset LatexCommand url -target "http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl" - -\end_inset - -. -\end_layout - -\begin_layout Standard -If the environment variable AXIS_PROGRESS_BAR is set, then lines written - to stderr of the form -\end_layout - -\begin_layout LyX-Code -FILTER_PROGRESS=%d -\end_layout - -\begin_layout Standard -Sets the AXIS progress bar to the given percentage. - This feature should be used by any filter that runs for a long time. -\end_layout - -\begin_layout Subsection -[RS274NGC] Section -\begin_inset LatexCommand label -name "sub:[RS274NGC]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "RS274NGC (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Description -PARAMETER_FILE -\begin_inset LatexCommand index -name "PARAMETER FILE" - -\end_inset - - The file located in the same directory as the ini file which contains the - parameters used by the interpreter (saved between runs). - -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code -PARAMETER_FILE = myfile.var -\end_layout - -\begin_layout Description - -\color black -RS274NGC_STARTUP_CODE -\begin_inset LatexCommand index -name "RS274NGC STARTUP CODE" - -\end_inset - - A string of NC codes that the interpreter is initialized with. - This is not a substitute for specifying modal g-codes at the top of each - ngc file, because the modal codes of machines differ, and may be changed - by g-code interpreted earlier in the session. -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code - -\color black -RS274NGC_STARTUP_CODE = G20 G90 -\end_layout - -\begin_layout Description -SUBROUTINE_PATH -\begin_inset LatexCommand index -name "SUBROUTINE PATH" - -\end_inset - - Specifies a colon (:) separated list of up to 10 directories to be searched - when single-file subroutines are specified in gcode. - These directories are searched after searching [DISPLAY]PROGRAM_PREFIX - (if it is specified) and before searching [WIZARD]WIZARD_ROOT (if specified). - The first matching subroutine file found in the search is used. - Directories are specified relative to the current directory for the inifile - or as absolute paths. - The list must contain no intervening whitespace. -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code -SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs -\end_layout - -\begin_layout Description -USER_M_PATH -\begin_inset LatexCommand index -name "USER M PATH" - -\end_inset - - specifies a list of colon (:) separated directories (no intervening whitespace) - for user defined functions. - The maximum number of directories is defined at compile time by: USER_DEFINED_F -UNCTION_MAX_DIRS=5. - Directories are specified relative to the current directory for the inifile - or as absolute paths. - The list must contain no intervening whitespace. - -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code -USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes -\end_layout - -\begin_layout Standard -A search is made for each possible user defined function, typically (M100-M199). - The search order is: -\end_layout - -\begin_layout Enumerate -[DISPLAY]PROGRAM_PREFIX (if specified) -\end_layout - -\begin_layout Enumerate -If [DISPLAY]PROGRAM_PREFIX is not specified, search the default location: - nc_files -\end_layout - -\begin_layout Enumerate -Then search each directory in the list [RS274NGC]USER_M_PATH -\end_layout - -\begin_layout Standard -The first executable M1xx found in the search is used for each M1xx. -\end_layout - -\begin_layout Subsection -[EMCMOT] Section -\color none - -\color black - -\begin_inset LatexCommand label -name "sub:[EMCMOT]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "EMCMOT (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Standard -You may find other entries in this section and they should not be changed. -\end_layout - -\begin_layout Description -BASE_PERIOD -\begin_inset LatexCommand index -name "BASE PERIOD" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ -50000 -\series bold -\noun on -(hal) -\series default -\noun default - "Base" task period, in nanoseconds - this is the fastest thread in the - machine. -\newline -On servo-based systems, there is generally no reason for -\series bold -BASE_PERIOD -\series default - to be smaller than -\series bold -SERVO_PERIOD -\series default -. - -\newline -On machines with software step generation, the -\series bold -BASE_PERIOD -\series default - determines the maximum number of steps per second. - In the absence of long step length and step space requirements, the absolute - maximum step rate is one step per -\series bold -BASE_PERIOD -\series default -. - Thus, the -\series bold -BASE_PERIOD -\series default - shown above gives an absolute maximum step rate of 20000 steps per second. - 50000ns is a fairly conservative value. - The smallest usable value is related to the Latency Test result, the necessary - step length, and the processor speed. -\newline -Choosing a BASE_PERIOD that is too - low can lead to the "Unexpected real time delay" message, lockups, or spontaneo -us reboots. -\end_layout - -\begin_layout Description -SERVO_PERIOD -\begin_inset LatexCommand index -name "SERVO PERIOD" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ -1000000 -\series bold -\noun on -(hal) -\series default -\noun default - "Servo" task period is also in nanoseconds. - This value will be rounded to an integer multiple of -\series bold -BASE_PERIOD -\series default -. - This value is used even on systems based on stepper motors. -\newline -This is the rate - at which new motor positions are computed, following error is checked, - PID output values are updated, and so on. -\newline -Most systems will not need to change - this value. - It is the update rate of the low level motion planner. -\end_layout - -\begin_layout Description -TRAJ_PERIOD -\begin_inset LatexCommand index -name "TRAJ PERIOD" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ - -\series bold -1000000 -\noun on -(hal) -\series default -\noun default - Trajectory Planner task period in nanoseconds This value will be rounded - to an integer multiple of -\series bold -SERVO_PERIOD -\series default -. -\newline -Except for machines with unusual kinematics (e.g., hexapods) there is no reason - to make this value larger than -\series bold -SERVO_PERIOD -\series default -. -\end_layout - -\begin_layout Subsection -[TASK] Section -\begin_inset LatexCommand label -name "sub:[TASK]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "TASK (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Description -TASK\InsetSpace ~ -=\InsetSpace ~ -milltask Specifies the name of the "task" executable. - "task" does various things, such as communicate with the UIs over NML, - communicate with the realtime motion planner over non-HAL shared memory, - and interpret gcode. - Currently there is only one task executable that makes sense for 99.9% of - users, milltask In the dim mists of time (before HAL), it was frequently - the case that an integrator would have to build a modified version of things - like task, io, and motion for a specific machine. -\end_layout - -\begin_layout Description -CYCLE_TIME\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.0 -\series default -01 The period, in seconds, at which EMCTASK will run. - This parameter affects the polling interval when waiting for motion to - complete, when executing a pause instruction, and when accepting a command - from a user interface. - There is usually no need to change this number. -\end_layout - -\begin_layout Subsection -[HAL] section -\begin_inset LatexCommand label -name "sub:[HAL]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "HAL (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Description -HALFILE\InsetSpace ~ -=\InsetSpace ~ -example.hal Execute the file 'example.hal' at start up. - If -\series bold -HALFILE -\series default - is specified multiple times, the files are executed in the order they appear - in the ini file. - Almost all configurations will have at least one -\series bold -HALFILE -\series default -, and stepper systems typically have two such files, one which specifies - the generic stepper configuration ( -\family typewriter -core_stepper.hal -\family default -) and one which specifies the machine pin out ( -\family typewriter -xxx_pinout.hal -\family default -) -\end_layout - -\begin_layout Description -HALCMD\InsetSpace ~ -=\InsetSpace ~ -command Execute 'command' as a single hal command. - If -\series bold -HALCMD -\series default - is specified multiple times, the commands are executed in the order they - appear in the ini file. - -\series bold -HALCMD -\series default - lines are executed after all -\series bold -HALFILE -\series default - lines. -\end_layout - -\begin_layout Description -SHUTDOWN\InsetSpace ~ -=\InsetSpace ~ -shutdown.hal Execute the file 'shutdown.hal' when EMC is exiting. - Depending on the hardware drivers used, this may make it possible to set - outputs to defined values when EMC is exited normally. - However, because there is no guarantee this file will be executed (for - instance, in the case of a computer crash) it is not a replacement for - a proper physical e-stop chain or other protections against software failure. -\end_layout - -\begin_layout Description -POSTGUI_HALFILE\InsetSpace ~ -=\InsetSpace ~ -example2.hal -\emph on -(Only with the AXIS GUI) -\emph default - Execute 'example2.hal' after the GUI has created its HAL pins. - See section -\begin_inset LatexCommand ref -reference "sec:pyvcp-with-axis" - -\end_inset - - for more information. -\end_layout - -\begin_layout Subsection -[TRAJ] Section -\color none - -\color black - -\begin_inset LatexCommand label -name "sub:[TRAJ]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "TRAJ (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Standard - -\color black -The [TRAJ] section contains general parameters for the trajectory planning - module in EMCMOT. -\end_layout - -\begin_layout Description - -\color black -COORDINATES\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -X -\series default -\InsetSpace ~ -Y -\series bold -\InsetSpace ~ -Z -\series default -\color none - -\color black -The names of the axes being controlled. - X, Y, Z, A, B, C, U, V, and W are all valid. - Only axis named in -\color none - -\series bold -\color black -COORDINATES -\series default -\color none - -\color black -are accepted in g-code. - This has no effect on the mapping from G-code axis names (X- Y- Z-) to - joint numbers--for "trivial kinematics", X is always joint 0, A is always - joint 4, and U is always joint 7, and so on. - It is permitted to write an axis name twice (e.g., X Y Y Z for a gantry machine) - but this has no effect. -\end_layout - -\begin_layout Description - -\noun on -\color black -AXES\InsetSpace ~ -=\InsetSpace ~ -3 -\noun default - One more than the number of the highest joint number in the system. - For an XYZ machine, the joints are numbered 0, 1 and 2; in this case AXES - should be 3. - For an XYUV machine using "trivial kinematics", the V joint is numbered - 7 and therefore AXES should be 8. - For a machine with nontrivial kinematics (e.g., scarakins) this will generally - be the number of controlled joints. -\end_layout - -\begin_layout Description - -\color black -HOME\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0 -\series default -\InsetSpace ~ - -\series bold -0 -\series default -\InsetSpace ~ - -\series bold -0 -\series default -\color none - -\color black -Coordinates of the homed position of each axis. - Again for a fourth axis you will need 0 0 0 0. - This value is only used for machines with nontrivial kinematics. - On machines with trivial kinematics this value is ignored. -\end_layout - -\begin_layout Description - -\color black -LINEAR_UNITS\InsetSpace ~ -=\InsetSpace ~ - -\begin_inset LatexCommand index -name "LINEAR UNITS" - -\end_inset - - -\color none - -\color black -Specifies the machine units for linear axes. - Possible choices are (in, inch, imperial, metric, mm). - -\newline -This does not affect the linear units in NC code (the G20 and G21 words - do this). - -\end_layout - -\begin_layout Description - -\color black -ANGULAR_UNITS\InsetSpace ~ -=\InsetSpace ~ - -\begin_inset LatexCommand index -name "ANGULAR UNITS" - -\end_inset - - Specifies the machine units for rotational axes. - Possible choices are 'deg', 'degree' (360 per circle), 'rad', 'radian' - (2pi per circle), 'grad', or 'gon' (400 per circle). -\newline -This does not affect - the angular units of NC code. - In RS274NGC, A-, B- and C- words are always expressed in degrees. -\end_layout - -\begin_layout Description - -\color black -DEFAULT_VELOCITY\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0.0167 -\series default -\color none - -\color black -The initial rate for jogs of linear axes, in machine units per second. - The value shown equals one unit per minute. -\end_layout - -\begin_layout Description - -\color black -DEFAULT_ACCELERATION\InsetSpace ~ - -\series bold -=\InsetSpace ~ -2.0 -\series default -\color none - -\color black -In machines with nontrivial kinematics, the acceleration used for "teleop" - (Cartesian space) jogs, in machine units per second per second. - -\end_layout - -\begin_layout Description - -\color black -MAX_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -5.0 -\begin_inset LatexCommand index -name "MAX VELOCITY" - -\end_inset - - -\color none - -\color black -The maximum velocity for any axis or coordinated move, in machine units - per second. - The value shown equals 300 units per minute. -\end_layout - -\begin_layout Description - -\color black -MAX_ACCELERATION\InsetSpace ~ -=\InsetSpace ~ -20.0 -\begin_inset LatexCommand index -name "MAX ACCELERATION" - -\end_inset - - -\color none - -\color black -The maximum acceleration for any axis or coordinated axis move, in machine - units per second per second. -\end_layout - -\begin_layout Description -POSITION_FILE\InsetSpace ~ -=\InsetSpace ~ -position.txt If set to a non-empty value, the joint positions - are stored between runs in this file. - This allows the machine to start with the same coordinates it had on shutdown. - This assumes there was no movement of the machine while powered off. - If unset, joint positions are not stored and will begin at 0 each time - EMC is started. - This can help on smaller machines without home switches. -\end_layout - -\begin_layout Description -NO_FORCE_HOMING\InsetSpace ~ -=\InsetSpace ~ -1 The default behavior is for EMC to force the user to home - the machine before any MDI command or a program is run. - Normally jogging only is allowed before homing. - Setting NO_FORCE_HOMING = 1 allows the user to make MDI moves and run programs - without homing the machine first. - Interfaces without homing ability will need to have this option set to - 1. - -\series bold - -\newline -Warning -\series default -: Using this will allow the machine to run past soft limits while in operation - and is not generally desirable to allow this. - -\end_layout - -\begin_layout Subsection -[AXIS_] Section -\color none - -\color black - -\begin_inset LatexCommand label -name "sub:[AXIS]-section" - -\end_inset - - -\begin_inset LatexCommand index -name "AXIS (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Standard - -\color black -The [AXIS_0], [AXIS_1], etc. - sections contains general parameters for the individual components in the - axis control module. - The axis section names begin numbering at 0, and run through the number - of axes specified in the [TRAJ] AXES entry minus 1. -\end_layout - -\begin_layout Itemize -AXIS_0 = X -\end_layout - -\begin_layout Itemize -AXIS_1 = Y -\end_layout - -\begin_layout Itemize -AXIS_2 = Z -\end_layout - -\begin_layout Itemize -AXIS_3 = A -\end_layout - -\begin_layout Itemize -AXIS_4 = B -\end_layout - -\begin_layout Itemize -AXIS_5 = C -\end_layout - -\begin_layout Itemize -AXIS_6 = U -\end_layout - -\begin_layout Itemize -AXIS_7 = V -\end_layout - -\begin_layout Itemize -AXIS_8 = W -\end_layout - -\begin_layout Description - -\color black -TYPE\InsetSpace ~ -=\InsetSpace ~ -LINEAR The type of axes, either LINEAR or ANGULAR. -\end_layout - -\begin_layout Description -WRAPPED_ROTARY\InsetSpace ~ -=\InsetSpace ~ -1 When this is set to 1 for an ANGULAR axis the axis will - move 0-359.999 degrees. - Plus Numbers will move the axis in a positive direction and minus numbers - will move the axis in the opposite direction. -\end_layout - -\begin_layout Description -UNITS -\begin_inset LatexCommand index -name "UNITS" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ -inch If specified, this setting overrides the related [TRAJ] UNITS setting. - -\newline -(e.g., [TRAJ]LINEAR_UNITS if the TYPE of this axis is LINEAR, [TRAJ]ANGULAR_UNITS - if the TYPE of this axis is ANGULAR) -\end_layout - -\begin_layout Description -MAX_VELOCITY\InsetSpace ~ -=\InsetSpace ~ -1.2 Maximum velocity for this axis in machine units per second. -\end_layout - -\begin_layout Description -MAX_ACCELERATION\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -20.0 -\series default - Maximum acceleration for this axis in machine units per second squared. -\end_layout - -\begin_layout Description -BACKLASH\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.000 -\series default - -\begin_inset LatexCommand index -name "Backlash" - -\end_inset - -Backlash in machine units. - Backlash compensation value can be used to make up for small deficiencies - in the hardware used to drive an axis. - If backlash is added to an axis and you are using steppers the STEPGEN_MAXACCEL - must be increased to 1.5 to 2 times the MAX_ACCELERATION for the axis. -\end_layout - -\begin_layout Description -COMP_FILE\InsetSpace ~ -=\InsetSpace ~ -file.extension -\begin_inset LatexCommand index -name "Compensation" - -\end_inset - -A file holding compensation structure for the axis. - The file could be named xscrew.comp for example for the X axis. - File names are case sensitive and can contain letters and or numbers. - The values are triplets per line separated by a space. - The first value is nominal (where it should be). - The second and third values depend on the setting of COMP_FILE_TYPE. - Currently the limit inside EMC2 is for 256 triplets per axis. - If COMP_FILE is specified, BACKLASH is ignored. - Compensation file values are in machine units. -\end_layout - -\begin_layout Itemize -COMP_FILE_TYPE=0 the second and third values specify the forward position - (where the axis is while traveling forward) and reverse position (where - the axis is while traveling reverse) positions which correspond to the - nominal position. - -\end_layout - -\begin_layout Itemize -COMP_FILE_TYPE=1 the second and third values specify the forward trim (how - far from nominal while traveling forward) and the reverse trim (how far - from nominal while traveling in reverse). -\end_layout - -\begin_layout Description -COMP_FILE_TYPE\InsetSpace ~ -=\InsetSpace ~ -0 For COMP_FILE_TYPE of zero, the values in the compensation - file are nominal, forward & reverse. - For COMP_FILE_TYPE of non-zero the values in the compensation file are - nominal, forward_trim and reverse_trim. - -\end_layout - -\begin_layout Description - -\color black -MIN_LIMIT -\begin_inset LatexCommand index -name "MIN LIMIT" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ - -\series bold --1000 -\series default -\color none - -\color black -The minimum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -\end_layout - -\begin_layout Description - -\color black -MAX_LIMIT -\begin_inset LatexCommand index -name "MAX LIMIT" - -\end_inset - -\InsetSpace ~ - -\series bold -=\InsetSpace ~ -1000 -\series default -\color none - -\color black -The maximum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -\end_layout - -\begin_layout Description -MIN_FERROR -\begin_inset LatexCommand index -name "MIN FERROR" - -\end_inset - -\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.010 -\series default - This is the value in machine units by which the axis is permitted to deviate - from commanded position at very low speeds. - If MIN_FERROR is smaller than FERROR, the two produce a ramp of error trip - points. - You could think of this as a graph where one dimension is speed and the - other is permitted following error. - As speed increases the amount of following error also increases toward - the FERROR value. - -\end_layout - -\begin_layout Description - -\color black -FERROR -\begin_inset LatexCommand index -name "FERROR" - -\end_inset - -\InsetSpace ~ - -\series bold -=\InsetSpace ~ -1.0 -\series default -\color none - -\color black -FERROR is the maximum allowable following error, in machine units. - If the difference between commanded and sensed position exceeds this amount, - the controller disables servo calculations, sets all the outputs to 0.0, - and disables the amplifiers. - If MIN_FERROR is present in the .ini file, velocity-proportional following - errors are used. - Here, the maximum allowable following error is proportional to the speed, - with FERROR applying to the rapid rate set by [TRAJ]MAX_VELOCITY, and proportio -nally smaller following errors for slower speeds. - The maximum allowable following error will always be greater than MIN_FERROR. - This prevents small following errors for stationary axes from inadvertently - aborting motion. - Small following errors will always be present due to vibration, etc. - The following polarity values determine how inputs are interpreted and - how outputs are applied. - They can usually be set via trial-and-error since there are only two possibilit -ies. - The EMC2 Servo Axis Calibration utility program (in the AXIS interface - menu Machine/Calibration and in TkEMC it is under Setting/Calibration) - can be used to set these and more interactively and verify their results - so that the proper values can be put in the INI file with a minimum of - trouble. - -\end_layout - -\begin_layout Subsubsection -Homing -\begin_inset LatexCommand label -name "sub:Homing-related-items" - -\end_inset - - -\end_layout - -\begin_layout Standard -These parameters are Homing related, for a better explanation read the Homing - Section ( -\begin_inset LatexCommand ref -reference "sec:Homing" - -\end_inset - -). -\end_layout - -\begin_layout Description -HOME\InsetSpace ~ -=\InsetSpace ~ -0.0 The position that the joint will go to upon completion of the homing - sequence. -\end_layout - -\begin_layout Description -HOME_OFFSET\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0.0 -\series default - The axis position of the home switch or index pulse, in machine units. -\end_layout - -\begin_layout Description -HOME_SEARCH_VEL -\begin_inset LatexCommand index -name "HOME SEARCH VEL" - -\end_inset - -\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.0 -\series default - Initial homing velocity in machine units per second. - Sign denotes direction of travel. - A value of zero means assume that the current location is the home position - for the machine. - If your machine has no home switches you will want to leave this value - alone. -\end_layout - -\begin_layout Description -HOME_LATCH_VEL\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.0 -\series default - Homing velocity in machine units per second to the home switch latch position. - Sign denotes direction of travel. -\end_layout - -\begin_layout Description -HOME_FINAL_VEL\InsetSpace ~ -=\InsetSpace ~ -0.0 Velocity in machine units per second from home latch position - to home position. - If left at 0 or not included in the axis rapid velocity is used. - Must be a positive number. -\end_layout - -\begin_layout Description -HOME_USE_INDEX\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -NO -\series default - If the encoder used for this axis has an index pulse, and the motion card - has provision for this signal you may set it to yes. - When it is yes, it will affect the kind of home pattern used. - Currently, you can't home to index with steppers unless your using stepgen - in velocity mode and pid. -\end_layout - -\begin_layout Description -HOME_IGNORE_LIMITS\InsetSpace ~ - -\series bold -=\InsetSpace ~ -NO -\series default - Some machines use a single switch as a home switch and limit switch. - This variable should be set to yes if the machine configured this way. -\end_layout - -\begin_layout Description -HOME_IS_SHARED\InsetSpace ~ -=\InsetSpace ~ - If the home input is shared by more than one axis set - to 1 to prevent homing from starting if the one of the shared switches - is already closed. - Set to 0 to permit homing if a switch is closed. -\end_layout - -\begin_layout Description -HOME_SEQUENCE\InsetSpace ~ -=\InsetSpace ~ - Used to define the "Home All" sequence. - starts at 0 and no numbers may be skipped. - If left out or set to -1 the joint will not be homed by the "Home All" - function. - More than one axis can be homed at the same time. -\end_layout - -\begin_layout Description -VOLATILE_HOME\InsetSpace ~ -=\InsetSpace ~ -0 When enabled (set to 1) this joint will be unhomed if the - Machine Power is off or if E-Stop is on. - This is useful if your machine has home switches and does not have position - feedback such as a step and direction driven machine. -\end_layout - -\begin_layout Subsubsection -Servo -\begin_inset LatexCommand label -name "sub:Servo-related-items" - -\end_inset - - -\end_layout - -\begin_layout Standard -The following items are for servo-based systems and servo-like systems. - This description assumes that the units of output from the PID component - are volts. -\end_layout - -\begin_layout Description -DEADBAND\InsetSpace ~ -=\InsetSpace ~ -0.000015 -\series bold -\size footnotesize -(HAL) -\series default -\size default - How close is close enough the consider the motor in position. -\end_layout - -\begin_layout Description -BIAS\InsetSpace ~ -=\InsetSpace ~ -0.000 -\series bold -\size footnotesize -(HAL) -\series default -\size default - This is used by hm2-servo and some others. - Bias is a constant amount that is added to the output. - In most cases it should be left at zero. - However, it can sometimes be useful to compensate for offsets in servo - amplifiers, or to balance the weight of an object that moves vertically. - bias is turned off when the PID loop is disabled, just like all other component -s of the output. -\end_layout - -\begin_layout Description - -\color black -P\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -50 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The proportional gain for the axis servo. - This value multiplies the error between commanded and actual position in - machine units, resulting in a contribution to the computed voltage for - the motor amplifier. - The units on the P gain are volts per machine unit, e.g., -\begin_inset Formula $\frac{volt}{mu}$ -\end_inset - -. - -\end_layout - -\begin_layout Description - -\color black -I\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The integral gain for the axis servo. - The value multiplies the cumulative error between commanded and actual - position in machine units, resulting in a contribution to the computed - voltage for the motor amplifier. - The units on the I gain are volts per machine unit second, e.g., -\begin_inset Formula $\frac{volt}{mu\, s}$ -\end_inset - -. -\end_layout - -\begin_layout Description - -\color black -D\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The derivative gain for the axis servo. - The value multiplies the difference between the current and previous errors, - resulting in a contribution to the computed voltage for the motor amplifier. - The units on the D gain are volts per machine unit per second, e.g., -\begin_inset Formula $\frac{volt}{mu/s}$ -\end_inset - -. -\end_layout - -\begin_layout Description - -\color black -FF0\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The 0th order feed forward gain. - This number is multiplied by the commanded position, resulting in a contributio -n to the computed voltage for the motor amplifier. - The units on the FF0 gain are volts per machine unit, e.g., -\begin_inset Formula $\frac{volt}{mu}$ -\end_inset - -. -\end_layout - -\begin_layout Description - -\color black -FF1\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The 1st order feed forward gain. - This number is multiplied by the change in commanded position per second, - resulting in a contribution to the computed voltage for the motor amplifier. - The units on the FF1 gain are volts per machine unit per second, e.g., -\begin_inset Formula $\frac{volt}{mu\, s}$ -\end_inset - -. -\end_layout - -\begin_layout Description - -\color black -FF2\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The 2nd order feed forward gain. - This number is multiplied by the change in commanded position per second - per second, resulting in a contribution to the computed voltage for the - motor amplifier. - The units on the FF2 gain are volts per machine unit per second per second, - e.g., -\begin_inset Formula $\frac{volt}{mu\, s^{2}}$ -\end_inset - -. -\end_layout - -\begin_layout Description -OUTPUT_SCALE\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -1.000 -\end_layout - -\begin_layout Description -OUTPUT_OFFSET\InsetSpace ~ -=\InsetSpace ~ - -\series bold -0.000 -\series default -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -These two values are the scale and offset factors for the axis output to - the motor amplifiers. - The second value (offset) is subtracted from the computed output (in volts), - and divided by the first value (scale factor), before being written to - the D/A converters. - The units on the scale value are in true volts per DAC output volts. - The units on the offset value are in volts. - These can be used to linearize a DAC. - -\newline -Specifically, when writing outputs, the EMC first converts the desired - output in quasi-SI units to raw actuator values, e.g., volts for an amplifier - DAC. - This scaling looks like: -\begin_inset Formula \[ -raw=\frac{{output-offset}}{scale}\] - -\end_inset - - The value for scale can be obtained analytically by doing a unit analysis, - i.e., units are [output SI units]/[actuator units]. - For example, on a machine with a velocity mode amplifier such that 1 volt - results in 250 mm/sec velocity, -\begin_inset Formula \[ -amplifier[volts]=(output[\frac{mm}{sec}]-offset[\frac{mm}{sec}])/250\frac{mm}{sec\, volt}\] - -\end_inset - - Note that the units of the offset are in machine units, e.g., mm/sec, and - they are pre-subtracted from the sensor readings. - The value for this offset is obtained by finding the value of your output - which yields 0.0 for the actuator output. - If the DAC is linearized, this offset is normally 0.0. - -\newline -The scale and offset can be used to linearize the DAC as well, resulting - in values that reflect the combined effects of amplifier gain, DAC non-linearit -y, DAC units, etc. - To do this, follow this procedure: -\end_layout - -\begin_deeper -\begin_layout Enumerate - -\color black -Build a calibration table for the output, driving the DAC with a desired - voltage and measuring the result. - See table -\begin_inset LatexCommand ref -reference "cap:Output-Voltage-Measurements" - -\end_inset - - for an example of voltage measurements. -\end_layout - -\begin_layout Enumerate - -\color black -Do a least-squares linear fit to get coefficients a, b such that -\begin_inset Formula \[ -meas=a*raw+b\] - -\end_inset - - -\end_layout - -\begin_layout Enumerate - -\color black -Note that we want raw output such that our measured result is identical - to the commanded output. - This means -\end_layout - -\begin_deeper -\begin_layout Enumerate -\begin_inset Formula \[ -cmd=a*raw+b\] - -\end_inset - - -\end_layout - -\begin_layout Enumerate -\begin_inset Formula \[ -raw=(cmd-b)/a\] - -\end_inset - - -\end_layout - -\end_deeper -\begin_layout Enumerate - -\color black -As a result, the a and b coefficients from the linear fit can be used as - the scale and offset for the controller directly. - -\end_layout - -\end_deeper -\begin_layout Description - -\color black -MAX_OUTPUT\InsetSpace ~ - -\series bold -=\InsetSpace ~ -10 -\noun on -\color inherit -(hal) -\series default -\noun default -\color none - -\color black -The maximum value for the output of the PID compensation that is written - to the motor amplifier, in volts. - The computed output value is clamped to this limit. - The limit is applied before scaling to raw output units. - The value is applied symmetrically to both the plus and the minus side. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:Output-Voltage-Measurements" - -\end_inset - -Output Voltage Measurements -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -Raw -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -Measured -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --9.93 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --8.83 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --0.03 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -0.96 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -9.87 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -10.87 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description - -\color black -INPUT_SCALE -\begin_inset LatexCommand index -name "INPUT SCALE" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ -20000 -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default - Specifies the number of pulses that corresponds to a move of one machine - unit as set in the [TRAJ] section. - For a linear axis one machine unit will be equal to the setting of LINEAR_UNITS. - For an angular axis one unit is equal to the setting in ANGULAR_UNITS. -\newline -A - second number, if specified, is ignored. -\color black - -\newline -For example, on a 2000 counts per rev encoder -\begin_inset LatexCommand index -name "encoder" - -\end_inset - -, and 10 revs/inch gearing, and desired units of inch, we have -\begin_inset Formula \begin{eqnarray*} -input\_scale & = & 2000\frac{counts}{rev}*10\frac{rev}{inch}\\ - & = & 20000\frac{counts}{inch}\end{eqnarray*} - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Stepper -\begin_inset LatexCommand label -name "sub:Stepper-related-items" - -\end_inset - - -\end_layout - -\begin_layout Standard -The following items are Stepper related items. -\end_layout - -\begin_layout Description - -\color black -SCALE -\begin_inset LatexCommand index -name "INPUT SCALE" - -\end_inset - -\InsetSpace ~ -=\InsetSpace ~ -4000 -\color none - -\series bold -\noun on -\color inherit -(hal) -\series default -\noun default - Specifies the number of pulses that corresponds to a move of one machine - unit as set in the [TRAJ] section. - For stepper systems, this is the number of step pulses issued per machine - unit. - For a linear axis one machine unit will be equal to the setting of LINEAR_UNITS. - For an angular axis one unit is equal to the setting in ANGULAR_UNITS. - For servo systems, this is the number of feedback pulses per machine unit. - A second number, if specified, is ignored. -\color black - -\newline -For example, on a 1.8 degree stepper motor with half-stepping, and 10 revs/inch - gearing, and desired machine units of inch, we have -\begin_inset Formula \begin{eqnarray*} -input\_scale & = & \frac{{2\, steps}}{1.8\, degree}*360\frac{{degree}}{rev}*10\frac{rev}{inch}\\ - & = & 4000\frac{steps}{inch}\end{eqnarray*} - -\end_inset - -Older stepper configuration .ini and .hal used INPUT_SCALE for this value. -\end_layout - -\begin_layout Description -STEPGEN_MAXACCEL\InsetSpace ~ - -\series bold -=\InsetSpace ~ -21.0 -\series default - -\series bold -\noun on -(hal) -\series default -\noun default - Acceleration limit for the step generator. - This should be 1% to 10% larger than the axis MAX_ACCELERATION. - This value improves the tuning of stepgen's "position loop". - If you have added backlash compensation to an axis then this should be - 1.5 to 2 times greater than MAX_ACCELERATION. -\end_layout - -\begin_layout Description -STEPGEN_MAXVEL\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -1.4 -\series default - -\series bold -\noun on -(hal) -\series default -\noun default - Older configuration files have a velocity limit for the step generator - as well. - If specified, it should also be 1% to 10% larger than the axis MAX_VELOCITY. - Subsequent testing has shown that use of STEPGEN_MAXVEL does not improve - the tuning of stepgen's position loop. - -\end_layout - -\begin_layout Subsection -[EMCIO] Section -\begin_inset LatexCommand label -name "sub:[EMCIO]-Section" - -\end_inset - - -\begin_inset LatexCommand index -name "EMCIO (inifile section)" - -\end_inset - - -\end_layout - -\begin_layout Description -CYCLE_TIME\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -0.100 -\series default - The period, in seconds, at which EMCIO will run. - Making it 0.0 or a negative number will tell EMCIO not to sleep at all. - There is usually no need to change this number. -\end_layout - -\begin_layout Description -TOOL_TABLE\InsetSpace ~ - -\series bold -= -\series default -\InsetSpace ~ - -\series bold -tool.tbl -\series default - The file which contains tool information, described in the User Manual. -\end_layout - -\begin_layout Description -TOOL_CHANGE_POSITION\InsetSpace ~ - -\series bold -=\InsetSpace ~ -0\InsetSpace ~ -0\InsetSpace ~ -2 -\series default - Specifies the X Y Z location to move to when performing a tool change if - three digits are used. - Specifies the X Y Z A B C location when 6 digits are used. - Specifies the X Y Z A B C U V W location when 9 digits are used. - Tool Changes can be combined. - For example if you combine the quill up with change position you can move - the Z first then the X and Y. -\end_layout - -\begin_layout Description -TOOL_CHANGE_WITH_SPINDLE_ON\InsetSpace ~ -=\InsetSpace ~ -1 The spindle will be left on during the tool - change when the value is 1. - Useful for lathes or machines where the material is in the spindle not - the tool. -\end_layout - -\begin_layout Description -TOOL_CHANGE_QUILL_UP\InsetSpace ~ -=\InsetSpace ~ -1 The Z axis will be moved to machine zero prior to - the tool change when the value is 1. - This is the same as issuing a G0 G53 Z0. -\end_layout - -\begin_layout Description -TOOL_CHANGE_AT_G30\InsetSpace ~ -=\InsetSpace ~ -1 The machine is moved to reference point defined by - parameters 5181-5186 for G30 if the value is 1. - For more information on G30 and Parameters see the G Code Manual. -\end_layout - -\begin_layout Description -RANDOM_TOOLCHANGER\InsetSpace ~ -=\InsetSpace ~ -1 This is for machines that cannot place the tool back - into the pocket it came from. - For example, machines that exchange the tool in the active pocket with - the tool in the spindle. -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/ini_config_fr.lyx b/docs/src/config/ini_config_fr.lyx deleted file mode 100644 index 2383fdeb7..000000000 --- a/docs/src/config/ini_config_fr.lyx +++ /dev/null @@ -1,2361 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Configuration, fichier ini -\layout Section - -Fichiers utiliss pour la configuration -\layout Standard - -EMC est entirement configur avec des fichiers textes classiques. - Tous ces fichiers peuvent tre lus et modifis dans n'importe quel diteur - de texte disponible dans toute distribution Linux -\begin_inset Foot -collapsed true - -\layout Standard - -Ne confondez pas un diteur de texte et un traitement de texte. - Un diteur de texte comme gedit ou kwrite produisent des fichiers uniquement - en texte. - Les lignes de textes sont spares les unes des autres. - Un traitement de texte comme Open Office produit des fichiers avec des - paragraphes, des mises en formes des mots. - Ils ajoutent des codes de contrles, des polices de formes et de tailles - varies etc. - Un diteur de texte n'a rien de tout cela. -\end_inset - - . - Soyez prudent lorsque vous modifierez ces fichiers, certaines erreurs pourraien -t empcher le dmarrage d'EMC. - Ces fichiers sont lus chaque fois que le logiciel dmarre. - Certains d'entre eux sont lus de nombreuses fois pendant l'excution d'CNC. - -\layout Standard - -Les fichiers de configuration inclus: -\layout Description - -INI -\begin_inset LatexCommand \index{INI} - -\end_inset - - Le fichier ini crase les valeurs par dfaut compiles dans le code d'EMC. - Il contient galement des sections qui sont lues directement par le HAL - (Hardware Abstraction Layer, couche d'abstraction matrielle). -\layout Description - -HAL -\begin_inset LatexCommand \index{HAL} - -\end_inset - - Les fichiers hal installent les modules de process, ils crent les liens - entre les signaux d'EMC et les broches spcifiques du matriel. -\layout Description - -VAR -\begin_inset LatexCommand \index{VAR} - -\end_inset - - Ce fichier contient une suite de numros de variables. - Ces variables contiennent les paramtres qui seront utiliss par l'interprteur. - Ces valeurs sont enregistres d'une excution l'autre. - -\layout Description - -TBL -\begin_inset LatexCommand \index{TBL} - -\end_inset - - Ce fichier contient les informations relatives aux outils. - -\layout Description - -NML -\begin_inset LatexCommand \index{NML} - -\end_inset - - Ce fichier configure les canaux de communication utiliss par EMC. - Il est normalement rgl pour lancer toutes les communications avec un - seul ordinateur, peut tre modifi pour communiquer entre plusieurs ordinateurs. -\layout Description - -.emcrc -\begin_inset LatexCommand \index{.emcrc} - -\end_inset - - Ce fichier enregistre des informations spcifiques l'utilisateur, il - a t cr pour enregistrer le nom du rpertoire lorsque l'utilisateur - choisit sa premire configuration d'EMC. -\begin_inset Foot -collapsed false - -\layout Standard - -Habituellement, ce fichier est dans le rpertoire home de l'utilisateur - (ex: /home/user/ ) -\end_inset - - -\layout Standard - -Les lments avec le repre -\series bold -\noun on -(hal) -\series default -\noun default - sont utiliss seulement pour les fichiers de HAL en exemples. - C'est une bonne convention. - D'autres lments sont utiliss directement par EMC et doivent toujours - avoir la section et le nom donn l'item. -\layout Section - -Organisation du fichier INI -\layout Standard - -Un fichier INI typique suit une organisation simple; -\layout Itemize - -commentaires. -\layout Itemize - -sections, -\layout Itemize - -variables. -\layout Standard - -Chacun de ces lments est spar, sur une seule ligne. - Chaque fin de ligne ou retour chariot cre un nouvel lment. - -\layout Subsection - -Commentaires -\begin_inset LatexCommand \index{commentaires} - -\end_inset - - -\layout Standard - -Une ligne de commentaires dbute avec un ; ou un #. - Si le logiciel qui analyse le fichier ini rencontre l'un ou l'autre de - ces caractres, le reste de la ligne est ignore. - Les commentaires peuvent tre utiliss pour dcrire ce que font les lments - du fichier INI. - -\layout LyX-Code - -; Ceci est le fichier de configuration de ma petite fraiseuse. -\newline -; Je l'ai ajust le 12 janvier 2006 -\layout Standard - -Des commentaires peuvent galement tre utiliss pour choisir entre plusieurs - valeurs d'une seule variable. - -\layout LyX-Code - -# DISPLAY = tkemc -\begin_inset LatexCommand \index{tkemc} - -\end_inset - - -\newline -DISPLAY = axis -\begin_inset LatexCommand \index{AXIS} - -\end_inset - - -\newline -# DISPLAY = mini -\begin_inset LatexCommand \index{mini} - -\end_inset - - -\newline -# DISPLAY = keystick -\begin_inset LatexCommand \index{keystick} - -\end_inset - - -\layout Standard - -Dans cette liste, la variable DISPLAY -\begin_inset LatexCommand \index{DISPLAY} - -\end_inset - - est positionne sur axis puisque toutes les autres sont commentes. - Si quelqu'un dite une liste comme celle-ci et par erreur, dcommente deux - lignes, c'est la premire rencontre qui sera utilise. -\layout Standard - -Notez que dans une ligne de variables, les caractres `` -\family typewriter -\series bold -# -\family default -\series default - -\begin_inset Quotes erd -\end_inset - - et `` -\family typewriter -\series bold -; -\family default -\series default - -\begin_inset Quotes erd -\end_inset - - n'indiquent pas un commentaire. -\layout LyX-Code - -INCORRECT = value # and a comment -\layout Subsection - -Sections -\layout Standard - -Les diffrentes parties d'un fichier .ini sont regroupes dans des sections. - Une section commence par son nom en majuscules entre crochets [UNE_SECTION]. - L'ordre des sections est sans importance. - Les sections suivantes sont utilises par emc: -\layout Itemize - -[EMC] informations gnrales ( -\begin_inset LatexCommand \ref{sub:Section-[EMC]} - -\end_inset - -) -\layout Itemize - -[DISPLAY] slection du type d'interface graphique ( -\begin_inset LatexCommand \ref{sub:Section-[DISPLAY]} - -\end_inset - -) -\layout Itemize - -[RS274NGC] ajustements utiliss par l'interprteur de g-code -\layout Itemize - -[EMCMOT] Rglages utiliss par le contrleur de mouvements temps rel ( -\begin_inset LatexCommand \ref{sub:Section-[EMCMOT]} - -\end_inset - -) -\layout Itemize - -[HAL] spcifications des fichiers .hal ( -\begin_inset LatexCommand \ref{sub:Section-[HAL]} - -\end_inset - -) -\layout Itemize - -[TASK] Rglages utiliss par le contrleur de tche ( -\begin_inset LatexCommand \ref{sub:Section-[TASK]} - -\end_inset - -) -\layout Itemize - -[TRAJ] Rglages additionnels utiliss par le contrleur de mouvements temps - rel ( -\begin_inset LatexCommand \ref{sub:Section-[TRAJ]} - -\end_inset - -) -\layout Itemize - -[AXIS_0] ... - [AXIS_n] Groupes de variables pour AXIS ( -\begin_inset LatexCommand \ref{sub:Section-[AXIS]} - -\end_inset - -) -\layout Itemize - -[EMCIO] Rglages utiliss par le contrleur d'entres/sorties ( -\begin_inset LatexCommand \ref{sub:Section-[EMCIO]} - -\end_inset - -) -\layout Itemize - -[HALUI] Commandes MDI utilises par HALUI. - Voir le chapitre sur HALUI pour plus d'informations ( -\begin_inset LatexCommand \ref{sub:MDI} - -\end_inset - -) -\layout Subsection - -Variables -\layout Standard - -Une ligne de variables est compose d'un nom de variable, du signe gal - (=) et d'une valeur. - -\color none - -\color black -Tout, du premier caractre non blanc qui suit le signe = jusqu' la fin - de la ligne, est pass comme valeur la variable. - Vous pouvez donc intercaler des espaces entre les symboles si besoin. - Un nom de variable est souvent appel un mot cl. -\layout Standard - - -\color black -Les paragraphes suivants dtaillent chaque section du fichier de configuration, - en utilisant des exemples de variables dans les lignes de configuration. -\layout Standard - -Certaines de ces variables sont utilises par EMC. - Elles doivent toujours utiliser le nom de section et le nom de variable - dans leur appellation. - D'autres variables ne sont utilises que par HAL. - Les noms des sections et les noms des variables indiques sont celles qui - sont utilises dans les exemples de fichiers de configuration. -\layout Section - - -\begin_inset LatexCommand \label{sub:Details fichier INI} - -\end_inset - -Dfinition des variables du fichier INI -\layout Subsection - - -\color black -Section [EMC] -\begin_inset LatexCommand \label{sub:Section-[EMC]} - -\end_inset - - -\begin_inset LatexCommand \index{Sections du fichier INI} - -\end_inset - - -\layout Description - - -\color black -VERSION\SpecialChar ~ -=\SpecialChar ~ -$Revision:\SpecialChar ~ -1.3\SpecialChar ~ -$ Le numro de version du fichier INI. - La valeur indique ici semble trange, car elle est automatiquement mise - jour lors de l'utilisation du systme de contrle de rvision. - C'est une bonne ide de changer ce numro chaque fois que vous modifiez - votre fichier. - Si vous voulez le modifier manuellement, il suffit de changer le numro - sans toucher au reste. -\layout Description - - -\color black -MACHINE\SpecialChar ~ -=\SpecialChar ~ -ma\SpecialChar ~ -machine -\color none - -\color black -C'est 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. -\layout Description - - -\color black -RS274NGC_STARTUP_CODE\SpecialChar ~ -=\SpecialChar ~ -G21\SpecialChar ~ -G90 -\color none - -\color black - -\begin_inset LatexCommand \index{RS274NGC STARTUP CODE} - -\end_inset - -Une chaine de codes NC qui sera utilise pour initialiser l'interprteur. - Elle ne se substitue pas la spcification des gcodes modaux du dbut - de chaque fichier ngc. - Les codes modaux des machines diffrent, ils pourraient tre modifis par - les gcodes interprts plus tt dans la session. - -\layout Subsection - - -\color black -Section [DISPLAY] -\begin_inset LatexCommand \label{sub:Section-[DISPLAY]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-DISPLAY} - -\end_inset - - -\layout Standard - -Les diffrentes interfaces du programme utilisent diffrentes options. - Toutes les options ne sont pas supportes par toutes les interfaces. -\layout Standard - - -\series bold -\color black -DISPLAY\SpecialChar ~ -=\SpecialChar ~ -tkemc -\series default -\color none - -\color black -Le nom de l'interface utilisateur utiliser. - Les options disponibles sont les suivantes: -\layout Itemize - -axis -\layout Itemize - - -\color black -keystick -\layout Itemize - -mini -\layout Itemize - - -\color black -tkemc -\layout Itemize - - -\color black -xemc -\layout Description - -POSITION_OFFSET\SpecialChar ~ -=\SpecialChar ~ -RELATIVE Le systme de coordonnes (RELATIVE ou MACHINE) - utiliser au dmarrage de l'interface utilisateur. - Le systme de coordonnes RELATIVE reflte le G92 et le dcalage d'origine - G5x actuellement actifs. -\layout Description - -POSITION_FEEDBACK\SpecialChar ~ -=\SpecialChar ~ -ACTUAL Valeur de la position (COMMANDED ou ACTUAL) afficher - au dmarrage de l'interface utilisateur. - La position COMMANDED est la position exacte requise par emc. - La position ACTUAL est la position retourne par l'lectronique des moteurs. -\layout Description - -MAX_FEED_OVERRIDE\SpecialChar ~ -=\SpecialChar ~ -1.2 La correction de vitesse maximum que l'oprateur peut - utiliser. - 1.2 signifie 120% de la vitesse programme. -\layout Description - -MIN_SPINDLE_OVERRIDE\SpecialChar ~ -=\SpecialChar ~ -0.5 Correction de vitesse minimum de broche que l'oprateur - pourra utiliser. - 0.5 signifie 50% de la vitesse de broche programme. - (utile si il est dangereux de dmarrer un programme avec une vitesse de - broche trop basse). -\layout Description - -MAX_SPINDLE_OVERRIDE\SpecialChar ~ -=\SpecialChar ~ -1.0 Correction de vitesse maximum de broche que l'oprateur - pourra utiliser. - 1.0 signifie 100% de la vitesse de broche programme. -\layout Description - -DEFAULT_LINEAR_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -.25 Vitesse minimum par dfaut pour les jogs linaires, - en units machine par seconde. - Seulement utilis dans l'interface AXIS. -\layout Description - -MAX_LINEAR_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -1.0 Vitesse maximum par dfaut pour les jogs linaires, - en units machine par seconde. - Seulement utilis dans l'interface AXIS. -\layout Description - -DEFAULT_ANGULAR_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -.25 Vitesse minimum par dfaut pour les jogs angulaires, - en units machine par seconde. - Seulement utilis dans l'interface AXIS. -\layout Description - -MAX_ANGULAR_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -1.0 Vitesse maximum par dfaut pour les jogs angulaires, - en units machine par seconde. - Seulement utilis dans l'interface AXIS. -\layout Description - -PROGRAM_PREFIX\SpecialChar ~ -=\SpecialChar ~ -~/emc2/nc_files Rpertoire par dfaut des fichiers de g-codes - et emplacement des M-codes dfinis par l'utilisateur. -\layout Description - -INCREMENTS\SpecialChar ~ -=\SpecialChar ~ -1\SpecialChar ~ -mm,\SpecialChar ~ -.5\SpecialChar ~ -mm,\SpecialChar ~ -\SpecialChar \ldots{} - Dfinit les incrments disponibles pour le jog incremental. - Voir la section -\begin_inset LatexCommand \ref{sub:Section-[DISPLAY]} - -\end_inset - - pour plus d'informations. - Seulement utilis dans l'interface AXIS. -\layout Description - -INTRO_GRAPHIC\SpecialChar ~ -=\SpecialChar ~ -emc2.gif L'image affiche sur l'cran d'accueil. -\layout Description - -INTRO_TIME\SpecialChar ~ -=\SpecialChar ~ -5 Dure d'affichage de l'cran d'accueil. -\layout Description - -OPEN_FILE\SpecialChar ~ -=\SpecialChar ~ -/full/path/to/file.ngc Le fichier NC utiliser au dmarrage d'AXIS. -\layout Subsection - - -\color black -Section [EMCMOT] -\begin_inset LatexCommand \label{sub:Section-[EMCMOT]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-EMCMOT} - -\end_inset - - -\layout Description - -BASE_PERIOD\SpecialChar ~ -=\SpecialChar ~ -50000 -\series bold -\noun on -(hal) -\series default -\noun default - -\begin_inset LatexCommand \index{BASE PERIOD} - -\end_inset - - -\begin_inset Quotes eld -\end_inset - -Priode de base -\begin_inset Quotes erd -\end_inset - - des tches, exprime en nanosecondes. - C'est la plus rapide des horloges de la machine. -\newline -Avec un systme servomoteurs, il n'y a gnralement pas de raison pour - que -\series bold -BASE_PERIOD -\series default - soit plus petite que -\series bold -SERVO_PERIOD -\series default -. - -\newline -Sur une machine de type -\begin_inset Quotes eld -\end_inset - -step&direction -\begin_inset Quotes erd -\end_inset - - avec gnration logicielle des impulsions de pas, c'est -\series bold -BASE_PERIOD -\series default - 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 l'lectronique, la frquence maximum absolue est - de un pas par -\series bold -BASE_PERIOD -\series default -. - Ainsi, la -\series bold -BASE_PERIOD -\series default - 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 - ( -\begin_inset LatexCommand \ref{sec:Test de latence} - -\end_inset - -), la longueur des impulsions de pas ncessaire et la vitesse du P. -\newline -Choisir une BASE_PERIOD trop basse peut amener des messages -\begin_inset Quotes eld -\end_inset - -Unexpected realtime delay -\begin_inset Quotes erd -\end_inset - -, des bloquages ou des reboots spontans. -\layout Description - -SERVO_PERIOD\SpecialChar ~ -=\SpecialChar ~ -1000000 -\series bold -\noun on -(hal) -\series default -\noun default - -\begin_inset LatexCommand \index{SERVO PERIOD} - -\end_inset - - Priode de la tche -\begin_inset Quotes eld -\end_inset - -Servo -\begin_inset Quotes erd -\end_inset - -, exprime galement en nanosecondes. - Cette valeur sera arrondie un multiple entier de -\series bold -BASE_PERIOD -\series default -. - Elle est utilise aussi sur des systmes bass sur des moteurs pas pas -\newline -C'est la vitesse avec laquelle la nouvelle position des moteurs est traite, - les erreurs de suivi vrifies, les valeurs des sorties PID sont rafraichies - etc. -\newline -Sur la plupart des systmes -\series bold -cette -\series default - valeur n'est pas modifier. - Il s'agit du taux de mise jour du planificateur de mouvement de bas niveau. -\layout Description - -TRAJ_PERIOD\SpecialChar ~ -=\SpecialChar ~ -1000000 -\series bold -\noun on -(hal) -\series default -\noun default - -\begin_inset LatexCommand \index{TRAJ PERIOD} - -\end_inset - -Priode du planificateur de trajectoire, exprime en nanosecondes. - Cette valeur sera arrondie un multiple entier de -\series bold -SERVO_PERIOD -\series default -. -\newline -Except pour les machines avec une cinmatique particulire (ex: hexapodes) - Il n'y a aucune raison de rendre cette valeur suprieure -\series bold -SERVO_PERIOD -\series default -. -\layout Subsection - -Section [TASK] -\begin_inset LatexCommand \label{sub:Section-[TASK]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-TASK } - -\end_inset - - -\layout Description - -CYCLE_TIME\SpecialChar ~ -=\SpecialChar ~ -0.001 Priode exprime en secondes, laquelle EMCTASK va tourner. - Ce paramtre affecte l'intervalle de polling lors de l'attente de la fin - d'un mouvement, lors de l'excution d'une pause d'instruction et quand - une commande provenant d'une interface utilisateur est accepte. - Il n'est gnralement pas ncessaire de modifier cette valeur. -\layout Subsection - -Section [HAL] -\begin_inset LatexCommand \label{sub:Section-[HAL]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-HAL } - -\end_inset - - -\layout Description - -HALFILE\SpecialChar ~ -=\SpecialChar ~ -example.hal Excute le fichier 'example.hal' au dmarrage. - Si -\series bold -HALFILE -\series default - est spcifi plusieurs fois, les fichiers sont excuts dans l'ordre de - leur apparition dans le fichier ini. - Presque toutes les configurations auront au moins un -\series bold -HALFILE -\series default -. - Les systmes moteurs pas pas ont gnralement deux de ces fichiers, - un qui spcifie la configuration gnrale des moteurs ( -\family typewriter -core_stepper.hal -\family default -) et un qui spcifie le brochage des sorties ( -\family typewriter -xxx_pinout.hal -\family default -) -\layout Description - -HAL\SpecialChar ~ -=\SpecialChar ~ -command Excute 'command' comme tant une simple commande hal. - Si -\series bold -HAL -\series default - est spcifi plusieurs fois, les commandes sont excutes dans l'ordre - o elles apparaissent dans le fichier ini. - Les lignes -\series bold -HAL -\series default - sont excutes aprs toutes les lignes -\series bold -HALFILE -\series default -. -\layout Description - -SHUTDOWN\SpecialChar ~ -=\SpecialChar ~ -shutdown.hal Excute le fichier 'shutdown.hal' quand emc s'arrte. - Selon les pilotes de matriel utiliss, il est ainsi possible de positionner - les sorties sur des valeurs dfinies quand emc s'arrte normalement. - Cependant, parce qu'il n'y a aucune garantie que ce fichier sera excut - (par exemple, dans le cas d'une panne de l'ordinateur), il ne remplace - pas une vritable chane physique d'arrt d'urgence ou d'autres logiciels - de protection des dfauts de fonctionnement. -\layout Description - -POSTGUI_HALFILE\SpecialChar ~ -=\SpecialChar ~ -example2.hal -\emph on -(Seulement avec l'interface AXIS) -\emph default - Excute 'example2.hal' aprs que l'interface graphique ait cr ses HAL - pins. - -\layout Subsection - - -\color black -Section [TRAJ] -\begin_inset LatexCommand \label{sub:Section-[TRAJ]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-TRAJ } - -\end_inset - - -\layout Standard - - -\color black -La section [TRAJ] contient les paramtres gnraux du module planificateur - de trajectoires d' EMCMOT. - Vous n'aurez pas modifier 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 fichier stepper_mm.ini dans lequel les valeurs - sont dj configures dans cette unit. -\layout Description - - -\color black -COORDINATES\SpecialChar ~ -=\SpecialChar ~ -X\SpecialChar ~ -Y\SpecialChar ~ -Z -\color none - -\color black -Les noms des axes contrler. - X, Y, Z, A, B, C, U, V, et W sont valides. - Seuls les axes nomms dans -\color none - -\series bold -\color black -COORDINATES -\series default -\color none - -\color black -seront accepts dans le g-code. - Cela n'a aucun effet sur l'ordonnancement des noms d'axes depuis le G-code - (X- Y- Z-) jusqu'aux numros d'articulations. - Pour une -\begin_inset Quotes eld -\end_inset - -cinmatique triviale -\begin_inset Quotes erd -\end_inset - -, X est toujours l'articulation 0, A est toujours l'articulation 4, U est - toujours l'articulation 7 et ainsi de suite. - Il est permis d'crire les noms d'axe par paire (ex: X Y Y Z pour une machine - portique) mais cela n'a aucun effet. -\layout Description - - -\noun on -\color black -AXES\SpecialChar ~ -=\SpecialChar ~ -3 -\noun default - Une unit de plus que le plus grand numro d'articulation 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 -\begin_inset Quotes eld -\end_inset - -cinmatique triviale -\begin_inset Quotes erd -\end_inset - -, l'articulation V est numrote 7 et donc les AXES devraient tre 8. - Pour une machine cinmatique non triviale (ex: scarakins) ce sera gnralemen -t le nombre d'articulations contrles. -\layout Description - - -\color black -HOME\SpecialChar ~ -=\SpecialChar ~ -0\SpecialChar ~ -0\SpecialChar ~ -0 -\color none - -\color black -Coordonnes de l'origine 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. -\layout Description - - -\color black -LINEAR_UNITS= -\color none - -\color black - -\begin_inset LatexCommand \index{LINEAR UNITS} - -\end_inset - -Le nom des units utilises dans le fichier INI. - Les choix possibles sont 'in', 'inch', 'imperial', 'metric', 'mm'. - -\newline -Cela n'affecte pas les units linaires du code NC (pour cela il y a les - mots G20 et G21). - -\layout Description - - -\color black -ANGULAR_UNITS= -\begin_inset LatexCommand \index{ANGULAR UNITS} - -\end_inset - -Le nom des units utilises dans le fichier INI. - Les choix possibles sont 'deg', 'degree' (360 pour un cercle), 'rad', 'radian' - (2pi pour un cercle), 'grad', ou 'gon' (400 pour un cercle). -\newline -Cela n'affecte pas les units angulaires du code NC. - Dans le code RS274NGC, les mots A-, B- et C- sont toujours exprims en - degrs. -\layout Description - - -\color black -DEFAULT_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -0.0167 -\color none - -\color black -La vitesse initiale de jog des axes linaires, en units par seconde. - La valeur indique ici correspond une unit par minute. - -\layout Description - - -\color black -DEFAULT_ACCELERATION\SpecialChar ~ -=\SpecialChar ~ -2.0 -\color none - -\color black -Dans les machines cinmatique non triviale, l'acclration utilise pour - -\begin_inset Quotes eld -\end_inset - -teleop -\begin_inset Quotes erd -\end_inset - - jog (espace cartsien), en units machine par seconde par seconde. - -\layout Description - - -\color black -MAX_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -5.0 -\color none - -\color black - -\begin_inset LatexCommand \index{MAX VELOCITY} - -\end_inset - -Vitesse maximale de dplacement pour les axes, exprime en units machine - par seconde. - La valeur indique est gale 300 units par minute. -\layout Description - - -\color black -MAX_ACCELERATION\SpecialChar ~ -=\SpecialChar ~ -20.0 -\color none - -\color black - -\begin_inset LatexCommand \index{MAX ACCELERATION} - -\end_inset - -Acclration maximale pour les axes, exprime en units machine par seconde - par seconde. -\layout Description - -POSITION_FILE\SpecialChar ~ -=\SpecialChar ~ -position.txt Si rgle une valeur non vide, les positions - des axes (joins) sont enregistres dans ce fichier. - Cela permet donc de redmarrer avec les mmes coordonnes que lors de l'arrt, - ce qui suppose, que hors puissance, la machine ne fera aucun mouvement - pendant tout son arrt. - C'est utile pour les petites machines sans contact d'origine machine. - Si vide, les positions ne seront pas enregistres et commenceront 0 - chaque fois qu'EMC dmarrera. -\layout Description - -NO_FORCE_HOMING\SpecialChar ~ -=\SpecialChar ~ -1 EMC oblige implicitement l'utilisateur rfrencer la - machine par une prise d'origine machine avant de pouvoir lancer un programme - ou excuter une commande dans le MDI, seuls les mouvements de Jog sont - autoriss avant les prises d'origines. - Mettre NO_FORCE_HOMING = 1 permet l'utilisateur averti de s'affranchir - de cette restriction de scurit lors de la phase de mise au point de la - machine. - -\layout Standard - - -\series bold -Attention -\series default -: NO_FORCE_HOMING mise 1 permettra la machine de franchir les limites - logicielles pendant les mouvements ce qui n'est pas souhatable pour un - fonctionnement normal! -\layout Subsection - - -\color black -Section [AXIS_] -\begin_inset LatexCommand \label{sub:Section-[AXIS]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-AXIS} - -\end_inset - - -\layout Standard - - -\color black -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 jusqu'au nombre - d'axes spcifi dans la variable [TRAJ] AXES, moins 1. -\layout Description - - -\color black -TYPE\SpecialChar ~ -=\SpecialChar ~ -LINEAR Type des axes, soit LINEAR, soit ANGULAR. - -\color none - -\layout Description - -UNITS\SpecialChar ~ -=\SpecialChar ~ -inch -\begin_inset LatexCommand \index{UNITS} - -\end_inset - -Ce rglage crase celui des variables [TRAJ] UNITS si il est spcifi. - (ex: [TRAJ]LINEAR_UNITS si le TYPE de cet axe est LINEAR, [TRAJ]ANGULAR_UNITS - si le TYPE de cet axe est ANGULAR) -\layout Description - -MAX_VELOCITY\SpecialChar ~ -=\SpecialChar ~ -1.2 Vitesse maximum pour cet axe en units machine par seconde. -\layout Description - -MAX_ACCELERATION\SpecialChar ~ -=\SpecialChar ~ -20.0 Acclration maximum pour cet axe en units machine - par seconde au carr. -\layout Description - -BACKLASH\SpecialChar ~ -=\SpecialChar ~ -0.000 Valeur de compensation du jeu en units machine. - Peut tre utilise pour attnuer de petites dficiences du matriel utilis - pour piloter cet axe. - Si un backlash est ajout un axe et que des moteurs pas pas sont utilises, - la valeur de STEPGEN_MAXACCEL doit tre 1.5 2 fois plus grande que celle - de MAX_ACCELERATION pour cet axe. -\layout Description - -COMP_FILE\SpecialChar ~ -=\SpecialChar ~ -file.extension Fichier dans lequel est enregistre une structure - de compensation spcifique cet axe. - Les valeurs internes sont des triplets reprsentant les positions suivantes: - -\layout Enumerate - -Positions nominales -\layout Enumerate - -Positions en marche positive -\layout Enumerate - -Positions en marche ngative. - -\layout Standard - -La position nominale est celle o devrait tre le mobile. - La position en marche positive signifie, o se trouve le mobile pendant - le dplacement dans le sens positif. - La position en marche ngative signifie, o se trouve le mobile pendant - le dplacement dans le sens ngatif. - Un triplet par ligne. - Actuellement la limite d'EMC2 est de 256 triplets par axe. - Si COMP_FILE est spcifi, BACKLASH est ignor. - Les valeurs sont en units machine. -\layout Description - -COMP_FILE_TYPE\SpecialChar ~ -=\SpecialChar ~ -1 En spcifiant une valeur non nulle, le format des triplets - du fichier COMP_FILE sera diffrent. - Pour COMP_FILE_TYPE = 0, les valeurs des triplets seront: position nominale, - position en marche positive, position en marche ngative. - Pour COMP_FILE_TYPE diffrent de 0, les valeurs dans COMP_FILE seront: - position nominale, cart sens positif, cart sens ngatif. - Compares au valeurs dfinies au dessus elles correspondent , nominale, - nominale-position en marche positive, nominal-position en marche ngative. - -\layout Standard - -Exemple de triplet avec COMP_FILE_TYPE = 0: 1.00 1.01 0.99. - -\layout Standard - -Le mme exemple de triplet avec COMP_FILE_TYPE = 1: 1.00 -0.01 0.01 -\layout Description - - -\color black -MIN_LIMIT\SpecialChar ~ -=\SpecialChar ~ --1000 -\color none - -\color black - -\begin_inset LatexCommand \index{MIN LIMIT} - -\end_inset - -Limite minimum des mouvements de cet axe (limite soft), en units machine. - Quand cette limite tend tre dpasse, le contrleur arrte le mouvement. - -\layout Description - - -\color black -MAX_LIMIT\SpecialChar ~ -=\SpecialChar ~ -1000 -\color none - -\color black - -\begin_inset LatexCommand \index{MAX LIMIT} - -\end_inset - -Limite maximum des mouvements de cet axe (limite soft), en units machine. - Quand cette limite tend tre dpasse, le contrleur arrte le mouvement. -\layout Description - -MIN_FERROR\SpecialChar ~ -=\SpecialChar ~ -0.010 -\begin_inset LatexCommand \index{MIN FERROR} - -\end_inset - -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 l'autre, l'erreur tolre. - Quand la vitesse augmente, la quantit d'erreurs de suivi augmente galement - et tend vers la valeur FERROR. - -\layout Description - - -\color black -FERROR\SpecialChar ~ -=\SpecialChar ~ -1.0 -\color none - -\color black - -\begin_inset LatexCommand \index{FERROR} - -\end_inset - -FERROR est le maximum d'erreurs 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 fichier .ini, une vitesse proportionnelle - aux erreurs de suivi est utilise. - Ici, le maximum d'erreur de suivi est proportionnel la vitesse, quand - FERROR est appliqu la vitesse rapide dfinie dans [TRAJ]MAX_VELOCITY - et proportionnel aux erreurs de suivi pour les petites vitesses. - L'erreur maximale admissible sera toujours suprieure MIN_FERROR. - Cela permet d'viter 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 suivi dtermine comment les entres sont interprte -s et comment les rsultats sont appliqus aux sorties. - Elles peuvent gnralement tre rgles par ttonnement car il n'y a que - deux possibilits. - L'utilitaire de calibration peut tre utilis pour les ajuster intractivement - et vrifier les rsultats, de sorte que les valeurs puissent tre mises - dans le fichier INI avec un minimum de difficults. - Cet utilitaire est accessible dans Axis depuis le menu -\begin_inset Quotes fld -\end_inset - -Machine -\begin_inset Quotes frd -\end_inset - - puis -\begin_inset Quotes fld -\end_inset - -Calibration -\begin_inset Quotes frd -\end_inset - - et dans TkEMC depuis le menu -\begin_inset Quotes fld -\end_inset - -Rglages -\begin_inset Quotes frd -\end_inset - - puis -\begin_inset Quotes fld -\end_inset - -Calibration -\begin_inset Quotes frd -\end_inset - -. -\layout Subsubsection - -Variables relatives aux prises d'origines -\begin_inset LatexCommand \label{sub:Variables relatives aux origines} - -\end_inset - - -\layout Standard - -Les paramtres suivants sont relatifs aux prises d'origine, pour plus d'informat -ions, lire le chapitre sur la POM. -\begin_inset LatexCommand \ref{sec:Prises-d'origine} - -\end_inset - - -\layout Description - -HOME_OFFSET\SpecialChar ~ -=\SpecialChar ~ -0.0 Position du contact d'origine machine de l'axe ou impulsion - d'index, en units machine. -\layout Description - -HOME_SEARCH_VEL\SpecialChar ~ -=\SpecialChar ~ -0.0 -\begin_inset LatexCommand \index{HOME SEARCH VEL} - -\end_inset - -Vitesse du mouvement inital de prise d'origine, en units machine par seconde. - Une valeur de zro suppose que la position courante est l'origine machine. - Si votre machine n'a pas de contact d'origine, laissez cette valeur zro. -\layout Description - -HOME_LATCH_VEL\SpecialChar ~ -=\SpecialChar ~ -0.0 Vitesse du mouvement de dgagement du contact d'origine, - en units machine par seconde. -\layout Description - -HOME_FINAL_VEL\SpecialChar ~ -=\SpecialChar ~ -0.0 Vitesse du mouvement final entre le contact d'origine - et la position d'origine, en units machine par seconde. - Si cette variable est laisse 0 ou absente, la vitesse de dplacement - rapide est utilise. - Doit avoir une valeur positive. -\layout Description - -HOME_USE_INDEX\SpecialChar ~ -=\SpecialChar ~ -NO Si l'encodeur utilis pour cet axe fournit une impulsion - d'index et qu'elle est gre par la carte contrleur, vous pouvez mettre - sur Yes. - Quand il est sur yes, il aura une incidence sur le type de squence de - prise d'origine utilis. -\layout Description - -HOME_IGNORE_LIMITS\SpecialChar ~ -=\SpecialChar ~ -NO Certaines machines utilisent un seul et mme contact - comme limite d'axe et origine machine de l'axe. - Cette variable devra tre positionne sur yes si c'est le cas de votre - machine. -\layout Description - -HOME_IS_SHARED\SpecialChar ~ -=\SpecialChar ~ - Si l'entre du contact d'origine est partage par plusieurs - axes, mettre 0 pour permettre la POM mme si un des contacts partags - est dj attaqu. - Le mettre 1 pour interdire la prise d'origine dans ce cas. -\layout Description - -HOME_SEQUENCE\SpecialChar ~ -=\SpecialChar ~ - Utilis pour dfinir l'ordre dans lequel les axes se succdero -nt lors d'une squence de "POM gnrale". - commence 0, aucun numro ne peut tre saut. - Si cette variable est absente ou -1, la POM de l'axe ne pourra pas tre - excute par la commande "POM gnrale". - La POM de plusieurs axes peut se drouler simultanment. -\layout Subsubsection - -Variables relatives aux servomoteurs -\begin_inset LatexCommand \label{sub:Variables relatives aux servomoteurs} - -\end_inset - - -\layout Standard - -Les entres suivantes concernent les systmes servomoteurs, comme la carte - du systme univstep de Pico Systems. -\begin_inset Foot -collapsed true - -\layout Standard - -Rfrez vous au -\begin_inset Quotes eld -\end_inset - -Manuel de l'intgrateur d'EMC2 -\begin_inset Quotes erd -\end_inset - - pour des informations complmentaires sur les systmes servomoteurs et - leur contrle en PID. -\end_inset - - Cette description suppose que les units en sortie du composant PID sont - des Volts. -\layout Description - - -\color black -P\SpecialChar ~ -=\SpecialChar ~ -50 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -La composante -\color none - -\family typewriter -\series bold -\color black -p -\family default -\series default -roportionnelle du gain de l'ampli moteur de cet axe. - Cette valeur multiplie l'erreur entre la position commande et la position - actuelle en units machine, elle entre dans le calcul de la tension applique - l'ampli moteur. - Les units du gain -\color none - -\family typewriter -\series bold -\color black -P -\family default -\series default -\color none - -\color black -sont des Volts sur des units machine, exemple: -\begin_inset Formula $\frac{volt}{mm}$ -\end_inset - - si l'unit machine est le millimtre. -\layout Description - - -\color black -I\SpecialChar ~ -=\SpecialChar ~ -0 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -La composante -\color none - -\family typewriter -\series bold -\color black -i -\family default -\series default -ntgrale du gain de l'ampli moteur de cet axe. - Cette valeur multiplie l'erreur cumulative entre la position commande - et la position actuelle en units machine, elle entre dans le calcul de - la tension applique l'ampli moteur. - Les units du gain -\color none - -\family typewriter -\series bold -\color black -I -\family default -\series default -\color none - -\color black -sont des Volts sur des units machine par seconde, exemple: -\begin_inset Formula $\frac{volt}{mm\, s}$ -\end_inset - - si l'unit machine est le millimtre. - -\layout Description - - -\color black -D\SpecialChar ~ -=\SpecialChar ~ -0 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -La composante -\color none - -\family typewriter -\series bold -\color black -d -\family default -\series default -rive du gain de l'ampli moteur de cet axe. - Cette valeur multiplie la diffrence entre l'erreur courante et les prcdentes -, elle entre dans le calcul de la tension applique l'ampli moteur. - Les units du gain -\color none - -\family typewriter -\series bold -\color black -D -\family default -\series default -\color none - -\color black -sont des Volts sur des units machine sur des secondes, exemple: -\begin_inset Formula $\frac{volt}{mm/s}$ -\end_inset - - si l'unit machine est le millimtre. -\layout Description - - -\color black -FF0\SpecialChar ~ -=\SpecialChar ~ -0 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -Gain priori (feedforward) d'orde 0. - Cette valeur est multiplie par la position commande, elle entre dans - le calcul de la tension applique l'ampli moteur. - Les units du gain FF0 sont des Volts sur des units machine, exemple: - -\begin_inset Formula $\frac{volt}{mm}$ -\end_inset - - si l'unit machine est le millimtre. -\layout Description - - -\color black -FF1\SpecialChar ~ -=\SpecialChar ~ -0 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -Gain priori (feedforward) de premier orde. - Cette valeur est multiplie par l'cart de la position commande par seconde, - elle entre dans le calcul de la tension applique l'ampli moteur. - Les units du gain FF1 sont des Volts sur des units machine par seconde, - exemple: -\begin_inset Formula $\frac{volt}{mm\, s}$ -\end_inset - - si l'unit machine est le millimtre. -\layout Description - - -\color black -FF2\SpecialChar ~ -=\SpecialChar ~ -0 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -Gain priori (feedforward) de second orde. - Cette valeur est multiplie par l'cart de la position commande par seconde - au carr, elle entre dans le calcul de la tension applique l'ampli moteur. - Les units du gain FF2 sont des Volts sur des units machine par des secondes - au carr, exemple: -\begin_inset Formula $\frac{volt}{mm\, s^{2}}$ -\end_inset - - si l'unit machine est le millimtre. -\layout Description - -OUTPUT_SCALE\SpecialChar ~ -=\SpecialChar ~ -1.000 -\layout Description - -OUTPUT_OFFSET\SpecialChar ~ -=\SpecialChar ~ -0.000 -\series bold -\noun on -(hal) -\series default -\noun default -\color none - -\color black -Ces deux valeurs sont, l'chelle et le facteur d'offset de l'ampli moteur - de cet axe. - La seconde valeur (offset) est soustraite de la valeur de sortie calcule - (en Volts) puis divise par la premire valeur (facteur d'chelle), avant - d'tre crite dans le convertisseur D/A. - Les units du facteur d'chelle sont des Volts rels par Volts en sortie - de DAC. - Les units de la valeur d'offset sont en Volts. - Ces valeurs peuvent tre utilises pour linariser un DAC. - -\newline -Plus prcisment, quand les sorties sont crites, EMC converti d'abord les - units quasi-SI des sorties concernes en valeurs brutes, exemple: Volts - pour un amplificateur DAC. - Cette mise l'chelle ressemble cela: -\begin_inset Formula \[ -raw=\frac{{output-offset}}{scale}\] - -\end_inset - - La valeur d'chelle peut tre obtenue par analyse des units, exemple: - les units sont [units SI en sortie]/[units de l'actuateur]. - Par exemple, sur une machine sur laquelle une tension de consigne de l'ampli - de 1 Volt donne une vitesse de 250 mm/sec : -\begin_inset Formula \[ -amplifier[volts]=(output[\frac{mm}{sec}]-offset[\frac{mm}{sec}])/250\frac{mm}{sec\, volt}\] - -\end_inset - - Notez que les units d'offset sont en units machine, exemple: mm/sec et - qu'elles sont dj soustraites depuis la sonde de lecture. - La valeur de cet offset est obtenue en prenant la valeur de votre sortie - qui donne 0,0 sur la sortie de l'actuateur. - Si le DAC est linaris, cet offset est normallement de 0.0. - -\newline -L'chelle et l'offset peuvent tre utiliss pour linariser les DAC, d'o - des valeurs qui refltent les effets combins du gain de l'ampli, de la - non linarit du DAC, des units du DAC, etc. - Pour ce faire, suivez cette procdure: -\begin_deeper -\layout Enumerate - - -\color black -Construire un tableau de calibrage pour la sortie, piloter le DAC avec la - tension souhaite et mesurer le rsultat. - Voir le tableau\SpecialChar ~ - -\begin_inset LatexCommand \ref{cap:Mesure des tensions de sortie} - -\end_inset - - pour un exemple de mesures de tension. -\layout Enumerate - - -\color black -Effectuer un -\begin_inset Quotes eld -\end_inset - -least squares -\begin_inset Quotes erd -\end_inset - - linaire pour obtenir les coefficients a, b tels que: -\begin_inset Formula \[ -meas=a*raw+b\] - -\end_inset - - -\layout Enumerate - - -\color black -Notez que nous voulons des sorties brutes de sorte que nos rsultats mesurs - soient identiques la sortie commande. - Ce qui signifie: -\begin_deeper -\layout Enumerate - - -\begin_inset Formula \[ -cmd=a*raw+b\] - -\end_inset - - -\layout Enumerate - - -\begin_inset Formula \[ -raw=(cmd-b)/a\] - -\end_inset - - -\end_deeper -\layout Enumerate - - -\color black -En consquence, les coefficients a et b d'ajustement linaire peuvent tre - directement utiliss comme valeurs d'chelle et d'offset pour le contrleur. - -\end_deeper -\layout Description - - -\color black -MAX_OUTPUT\SpecialChar ~ -=\SpecialChar ~ -10 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -La valeur maximale pour la sortie de la compensation PID pouvant tre envoye - sur l'ampli moteur, en Volts. - La valeur calcule de la sortie sera fixe cette valeur limite. - La limite est applique avant la mis l'chelle de la sortie en units - brutes. - -\layout Description - - -\color black -MIN_OUTPUT\SpecialChar ~ -=\SpecialChar ~ --10 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black -La valeur minimale pour la sortie de la compensation PID pouvant tre envoye - sur l'ampli moteur, en Volts. - La valeur calcule de la sortie sera fixe cette valeur limite. - La limite est applique avant la mis l'chelle de la sortie en units - brutes. - -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Standard - - -\begin_inset LatexCommand \label{cap:Mesure des tensions de sortie} - -\end_inset - -Mesure des tensions de sortie -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -Raw (brutes) -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -Mesures -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --10 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --9.93 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --9 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --8.83 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -0 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none --0.03 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -1 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -0.96 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -9 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -9.87 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -10 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -10.87 -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Description - - -\color black -INPUT_SCALE\SpecialChar ~ -=\SpecialChar ~ -20000 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black - -\begin_inset LatexCommand \index{INPUT SCALE} - -\end_inset - - -\color default -Spcifie le nombre d'impulsions qui correspond un mouvement d'une unit - machine. - Un second chiffre, si spcifi, sera ignor. -\color black - -\newline -Par exemple, sur un codeur de 2000 impulsions par tour -\begin_inset LatexCommand \index{codeur} - -\end_inset - -, un rducteur de 10 tours/pouce et des units demandes en mm, nous avons: -\begin_inset Formula \begin{eqnarray*} -input\_ scale & = & 2000\frac{impulsions}{tour}*10\frac{tours}{pouce}\\ - & = & 20000\frac{impulsions}{pouce}\end{eqnarray*} - -\end_inset - - -\layout Subsubsection - -Variables relatives aux moteurs pas pas -\begin_inset LatexCommand \label{sub:Variables relatives aux moteurs pas a pas} - -\end_inset - - -\layout Description - - -\color black -SCALE\SpecialChar ~ -=\SpecialChar ~ -4000 -\color none - -\series bold -\noun on -\color default -(hal) -\series default -\noun default -\color none - -\color black - -\begin_inset LatexCommand \index{INPUT SCALE} - -\end_inset - - -\color default -Spcifie le nombre d'impulsions qui correspond un mouvement d'une unit - machine. - Pour les sytmes moteurs pas pas, c'est le nombre d'impulsions de pas - ncessaires pour avancer d'une unit machine. - Pour les systmes servo, c'est le nombre d'impulsions de retour signifiant - que le mobile a avanc d'une unit machine. - Un second chiffre, si spcifi, sera ignor. -\color black - -\newline -Par exemple, un pas moteur de 1.8 degr, en mode demipas, avec une rduction - de 10 tours/pouce et des units souhaites en mm, nous avons: -\begin_inset Formula \begin{eqnarray*} -input\_ scale & = & \frac{{2\, pas}}{1.8\, degre}*360\frac{degres}{tour}*10\frac{tours}{pouce}\\ - & = & 4000\frac{pas}{pouce}\end{eqnarray*} - -\end_inset - -D'anciens fichiers de configuration .ini et .hal utilisaient INPUT_SCALE pour - cette valeur. -\layout Description - -STEPGEN_MAXACCEL\SpecialChar ~ -=\SpecialChar ~ -21.0 -\series bold -\noun on -(hal) -\series default -\noun default - Limite d'acclration pour le gnrateur de pas. - Elle doit tre 1% 10% suprieure celle de l'axe MAX_ACCELERATION. - Cette valeur amliore les rglages de la -\begin_inset Quotes eld -\end_inset - -boucle de position -\begin_inset Quotes erd -\end_inset - - de stepgen. - Si une correction de backlash a t applique sur un axe, alors STEPGEN_MAXACCE -L doit tre 1,5 2 fois plus grande que MAX_ACCELERATION. -\layout Description - -STEPGEN_MAXVEL\SpecialChar ~ -=\SpecialChar ~ -1.4 -\series bold -\noun on -(hal) -\series default -\noun default - Les anciens fichiers de configuration avaient galement une limite de vitesse - du gnrateur de pas. - Si spcifie, elle doit auss tre 1% 10% suprieure celle de l'axe - MAX_VELOCITY. - Des tests ultrieurs ont montr que l'utilisation de STEPGEN_MAXVEL n'amliore - pas le rglage de la boucle de position de stepgen. - -\layout Subsection - -Section [EMCIO] -\begin_inset LatexCommand \label{sub:Section-[EMCIO]} - -\end_inset - - -\begin_inset LatexCommand \index{Fichier INI-EMCIO} - -\end_inset - - -\layout Description - -CYCLE_TIME\SpecialChar ~ -=\SpecialChar ~ -0.100 La priode en secondes, laquelle EMCIO va tourner. - La mettre 0.0 ou une valeur ngative fera qu'EMCIO tournera en permanence. - Il est prfrable de ne pas modifier cette valeur. -\layout Description - -TOOL_TABLE\SpecialChar ~ -=\SpecialChar ~ -tool.tbl Ce fichier contient les informations des outils. -\layout Description - -TOOL_CHANGE_POSITION\SpecialChar ~ -=\SpecialChar ~ -0\SpecialChar ~ -0\SpecialChar ~ -2 Quand trois digits sont utiliss, spcifie la position - XYZ ou le mobile sera dplac pour le changement d'outil. - Si six digits sont utiliss, spcifie l'emplacement ou sera envoy le mobile - pour raliser le changement d'outil sur une machine de type XYZABC et de - mme, sur une machine de type XYZABCUVW lorsque 9 digits sont utiliss. - Les variables relatives la position du changement d'outil peuvent tre - combines, par exemple; en combinant TOOL_CHANGE_POSITION avec TOOL_CHANGE_QUIL -L_UP il est possible de dplacer d'abord Z puis X et Y. -\layout Description - -TOOL_CHANGE_WITH_SPINDLE_ON\SpecialChar ~ -=\SpecialChar ~ -1 Avec cette valeur 1, la broche reste en - marche pendant le changement d'outil. - Particulirement utile sur les tours. -\layout Description - -TOOL_CHANGE_QUILL_UP\SpecialChar ~ -=\SpecialChar ~ -1 Avec cette valeur 1, l'axe Z sera dplac sur son - origine machine avant le changement d'outil. - C'est l'quivalent d'un G0 G53 Z0. -\layout Description - -TOOL_CHANGE_AT_G30\SpecialChar ~ -=\SpecialChar ~ -1 Avec cette valeur 1, le mobile sera envoy sur un - point de rfrence prdfini par G30 dans les paramtres 5181-5186. - Pour plus de dtails sur les paramtres de G30, voir le chapitre relatif - au G-code dans le Manuel de l'utilisateur. -\the_end diff --git a/docs/src/config/ini_homing.lyx b/docs/src/config/ini_homing.lyx deleted file mode 100644 index 17284753d..000000000 --- a/docs/src/config/ini_homing.lyx +++ /dev/null @@ -1,593 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Homing" - -\end_inset - -Homing -\end_layout - -\begin_layout Subsection -Overview -\end_layout - -\begin_layout Standard -Homing seems simple enough - just move each joint to a known location, and - set EMC's internal variables accordingly. - However, different machines have different requirements, and homing is - actually quite complicated. -\end_layout - -\begin_layout Subsection -Homing Sequence -\end_layout - -\begin_layout Standard -There are four possible homing sequences, along with the associated configuratio -n parameters as shown in the following table. - For a more detailed description of what each configuration parameter does, - see the following section. -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\begin_layout Standard -SEARCH_VEL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -LATCH_VEL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -USE_INDEX -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Homing Type -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -nonzero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -nonzero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -NO -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Switch-only -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -nonzero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -nonzero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -YES -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Switch + Index -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -nonzero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -YES -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Index-only -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -NO -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -None -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Other combinations -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Error -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -Configuration -\end_layout - -\begin_layout Standard -There are six pieces of information that determine exactly how the home - sequence behaves. - They are defined in an [AXIS] section of the inifile. -\end_layout - -\begin_layout Subsubsection -HOME_SEARCH_VEL -\begin_inset LatexCommand index -name "HOME SEARCH VEL" - -\end_inset - - -\end_layout - -\begin_layout Standard -The default value is zero. - A value of zero causes EMC to assume that there is no home switch; the - search stage of homing is skipped. - -\end_layout - -\begin_layout Standard -If HOME_SEARCH_VEL is non-zero, then EMC assumes that there is a home switch. - It begins by checking whether the home switch is already tripped. - If tripped it backs off the switch at HOME_SEARCH_VEL. - The direction of the back-off is opposite the sign of HOME_SEARCH_VEL. - Then it searches for the home switch by moving in the direction specified - by the sign of HOME_SEARCH_VEL, at a speed determined by its absolute value. - When the home switch is detected, the joint will stop as fast as possible, - but there will always be some overshoot. - The amount of overshoot depends on the speed. - If it is too high, the joint might overshoot enough to hit a limit switch - or crash into the end of travel. - On the other hand, if HOME_SEARCH_VEL is too low, homing can take a long - time. -\end_layout - -\begin_layout Subsubsection -HOME_LATCH_VEL -\begin_inset LatexCommand index -name "HOME LATCH VEL" - -\end_inset - - -\end_layout - -\begin_layout Standard -Specifies the speed and direction that EMC uses when it makes its final - accurate determination of the home switch (if present) and index pulse - location (if present). - It will usually be slower than the search velocity to maximise accuracy. - If HOME_SEARCH_VEL and HOME_LATCH_VEL have the same sign, then the latch - phase is done while moving in the same direction as the search phase. - (In that case, EMC first backs off the switch, before moving towards it - again at the latch velocity.) If HOME_SEARCH_VEL and HOME_LATCH_VEL have - opposite signs, the latch phase is done while moving in the opposite direction - from the search phase. - That means EMC will latch the first pulse after it moves off the switch. - If HOME_SEARCH_VEL is zero (meaning there is no home switch), and this - parameter is nonzero, EMC goes ahead to the index pulse search. - If HOME_SEARCH_VEL is non-zero and this parameter is zero, it is an error - and the homing operation will fail. - The default value is zero. -\end_layout - -\begin_layout Subsubsection -HOME_FINAL_VEL -\end_layout - -\begin_layout Standard -It specifies the speed that EMC uses when it makes its move from HOME_OFFSET - to the HOME position. - If the HOME_FINAL_VEL is missing from the ini file, then the maximum joint - speed is used to make this move. - The value must a positive number. -\end_layout - -\begin_layout Subsubsection -HOME_IGNORE_LIMITS -\begin_inset LatexCommand index -name "HOME IGNORE LIMITS" - -\end_inset - - -\end_layout - -\begin_layout Standard -Can hold the values YES / NO. - This flag determines whether EMC will ignore the limit switch inputs. - Some machine configurations do not use a separate home switch, instead - they route one of the limit switch signals to the home switch input as - well. - In this case, EMC needs to ignore that limit during homing. - The default value for this parameter is NO. -\end_layout - -\begin_layout Subsubsection -HOME_USE_INDEX -\begin_inset LatexCommand index -name "HOME USE INDEX" - -\end_inset - - -\end_layout - -\begin_layout Standard -Specifies whether or not there is an index pulse. - If the flag is true (HOME_USE_INDEX = YES), EMC will latch on the rising - edge of the index pulse. - If false, EMC will latch on either the rising or falling edge of the home - switch (depending on the signs of HOME_SEARCH_VEL and HOME_LATCH_VEL). - The default value is NO. -\end_layout - -\begin_layout Subsubsection -HOME_OFFSET -\begin_inset LatexCommand index -name "HOME OFFSET" - -\end_inset - - -\end_layout - -\begin_layout Standard -Contains the location of the home switch or index pulse, in joint coordinates. - It can also be treated as the distance between the point where the switch - or index pulse is latched and the zero point of the joint. - After detecting the index pulse, EMC sets the joint coordinate of the current - point to HOME_OFFSET. - The default value is zero. -\end_layout - -\begin_layout Subsubsection -HOME -\begin_inset LatexCommand index -name "HOME" - -\end_inset - - -\end_layout - -\begin_layout Standard -The position that the joint will go to upon completion of the homing sequence. - After detecting the index pulse, and setting the coordinate of that point - to HOME_OFFSET, EMC makes a move to HOME as the final step of the homing - process. - The default value is zero. - Note that even if this parameter is the same as HOME_OFFSET, the axis will - slightly overshoot the latched position as it stops. - Therefore there will always be a small move at this time (unless HOME_SEARCH_VE -L is zero, and the entire search/latch stage was skipped). - This final move will be made at the joint's maximum velocity. - Since the axis is now homed, there should be no risk of crashing the machine, - and a rapid move is the quickest way to finish the homing sequence. - -\begin_inset Foot -status collapsed - -\begin_layout Standard -The distinction between 'home' and 'home_offset' is not as clear as I would - like. - I intend to make a small drawing and example to help clarify it. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -HOME_IS_SHARED -\begin_inset LatexCommand index -name "HOME IS SHARED" - -\end_inset - - -\end_layout - -\begin_layout Standard -If there is not a separate home switch input for this axis, but a number - of momentary switches wired to the same pin, set this value to 1 to prevent - homing from starting if one of the shared switches is already closed. - Set this value to 0 to permit homing even if the switch is already closed. -\end_layout - -\begin_layout Subsubsection -HOME_SEQUENCE -\begin_inset LatexCommand index -name "HOME SEQUENCE" - -\end_inset - - -\end_layout - -\begin_layout Standard -Used to define a multi-axis homing sequence HOME ALL and enforce homing - order (e.g., Z may not be homed if X is not yet homed). - An axis may be homed after all axes with a lower HOME_SEQUENCE have already - been homed and are at the HOME_OFFSET. - If two axes have the same HOME_SEQUENCE, they may be homed at the same - time. - If HOME_SEQUENCE is -1 or not specified then this joint will not be homed - by the HOME ALL sequence. - HOME_SEQUENCE numbers start with 0 and there may be no unused numbers. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement h -wide false -sideways false -status collapsed - -\begin_layout Standard -\align center -\begin_inset Graphics - filename emc2-motion-homing-diag.eps - width 7in - height 9in - keepAspectRatio - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:motion-homing-sequence-diagram" - -\end_inset - -Homing Sequences -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Standard - - -\backslash -clearpage -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/ini_homing_fr.lyx b/docs/src/config/ini_homing_fr.lyx deleted file mode 100644 index ce68bf022..000000000 --- a/docs/src/config/ini_homing_fr.lyx +++ /dev/null @@ -1,732 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - - -\begin_inset LatexCommand \label{sec:Prises-d'origine} - -\end_inset - -Prise d'origine -\layout Section - -Vue d'ensemble -\layout Standard - -La prise d'origine semble assez simple, il suffit de dplacer chaque axe - un emplacement connu et de positionner l'ensemble des variables internes - d'EMC en consquence. - Toutefois, les machines sont diffrentes les unes des autres et la prise - d'origine est maintenant devenue assez complexe. - -\layout Subsection - -Squence de prise d'origine -\layout Standard - -La figure -\begin_inset LatexCommand \ref{fig: Sequences de prise d'origine} - -\end_inset - - montre les quatre squences de prise d'origine possibles, avec les variables - de configuration associes -\begin_inset LatexCommand \ref{cap:Variables sequences de POM} - -\end_inset - -. - Une description dtaille de ces paramtres sera faite au chapitre suivant. -\layout Standard - - -\begin_inset LatexCommand \ref{fig: Sequences de prise d'origine} - -\end_inset - - -\begin_inset Float figure -placement H -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename emc2-motion-homing-diag.eps - width 7in - height 9in - keepAspectRatio - -\end_inset - - -\layout Standard - - -\begin_inset LatexCommand \label{fig: Sequences de prise d'origine} - -\end_inset - - Les squences de POM possibles -\end_inset - - -\layout Subsection - -Configuration -\layout Standard - -Il y a six combinaisons possibles des variables qui dfinissent le droulement - de la squence de prise d'origine. - EIles sont dfinies dans la section [AXIS] du fichier ini. -\layout Standard - - -\begin_inset Float table -placement H -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\layout Standard - -SEARCH_VEL -\end_inset - - -\begin_inset Text - -\layout Standard - -LATCH_VEL -\end_inset - - -\begin_inset Text - -\layout Standard - -USE_INDEX -\end_inset - - -\begin_inset Text - -\layout Standard - -Type de squence -\end_inset - - - - -\begin_inset Text - -\layout Standard - -nonzero -\end_inset - - -\begin_inset Text - -\layout Standard - -nonzero -\end_inset - - -\begin_inset Text - -\layout Standard - -NO -\end_inset - - -\begin_inset Text - -\layout Standard - -Switch-seulement -\end_inset - - - - -\begin_inset Text - -\layout Standard - -nonzero -\end_inset - - -\begin_inset Text - -\layout Standard - -nonzero -\end_inset - - -\begin_inset Text - -\layout Standard - -YES -\end_inset - - -\begin_inset Text - -\layout Standard - -Switch + Index -\end_inset - - - - -\begin_inset Text - -\layout Standard - -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -nonzero -\end_inset - - -\begin_inset Text - -\layout Standard - -YES -\end_inset - - -\begin_inset Text - -\layout Standard - -Index-seulement -\end_inset - - - - -\begin_inset Text - -\layout Standard - -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -NO -\end_inset - - -\begin_inset Text - -\layout Standard - -Aucun -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Autres combinaisons -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -Erreur -\end_inset - - - - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{cap:Variables sequences de POM} - -\end_inset - - Combinaisons des variables de la POM -\end_inset - - -\layout Subsubsection - -HOME_SEARCH_VEL = 0 -\begin_inset LatexCommand \index{HOME SEARCH VEL} - -\end_inset - - -\layout Standard - -Vitesse de la phase initiale de prise d'origine, c'est la recherche du contact - d'origine machine. - Une valeur diffrente de zro indique EMC la prsence d'un contact d'origine - machine. - EMC va alors commencer par vrifier si ce contact est dj press. - Si oui, il le dgagera la vitesse tablie par -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - -, la direction du dgagement sera de signe oppos celui de -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - -. - Puis, il va revenir vers le contact en se dplaant dans la direction spcifie - par le signe de -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - et la vitesse dtermine par sa valeur absolue. - Quand le contact d'origine machine est dtect, le mobile s'arrte aussi - vite que possible, il y aura cependant toujours un certain dpassement - dpendant de la vitesse. - Si celle-ci est trop leve, le mobile peut dpasser suffisamment le contact - pour aller attaquer un fin de course de limite d'axe, voir mme aller se - crasher dans une bute mcanique. - l'oppos, si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - est trop basse, la prise d'origine peut durer trs longtemps. -\layout Standard - -Une valeur gale zro indique qu'il n'y a pas de contact d'origine machine, - dans ce cas, les phases de recherche de ce contact seront occultes. - La valeur par dfaut est zro. - -\layout Subsubsection - -HOME_LATCH_VEL = 0 -\begin_inset LatexCommand \index{HOME LATCH VEL} - -\end_inset - - -\layout Standard - -Spcifie la vitesse et la direction utilise par le mobile pendant la dernire - phase de la prise d'origine, c'est la recherche prcise du contact d'origine - machine, si il existe et de l'emplacement de l'impulsion d'index, si elle - est prsente. - Cette vitesse est plus lente que celle de la phase initiale, afin d'amliorer - la prcision. - Si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - et -\begin_inset Quotes eld -\end_inset - -HOME_LATCH_VEL -\begin_inset Quotes erd -\end_inset - - sont de mmes signes, la phase de recherche prcise s'effectuera dans le - mme sens que la phase de recherche initiale. - Dans ce cas, le mobile dgagera d'abord le contact en sens inverse avant - de revenir vers lui la vitesse dfinie ici. - L'acquisition de la position d'origine se fera sur la premire impulsion - de changement d'tat du contact. - Si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - et -\begin_inset Quotes eld -\end_inset - -HOME_LATCH_VEL -\begin_inset Quotes erd -\end_inset - - sont de signes opposs, la phase de recherche prcise s'effectuera dans - le sens oppos celui de la recherche initiale. - Dans ce cas, EMC dgagera le contact la vitesse dfinie ici. - L'acquisition de la position d'origine se fera sur la premire impulsion - de changement d'tat du contact lors de son dgagement. - Si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - est zro, signifiant qu'il n'y a pas de contact et que -\begin_inset Quotes eld -\end_inset - -HOME_LATCH_VEL -\begin_inset Quotes erd -\end_inset - - et diffrente de zro, le mobile continuera jusqu' la prochaine impulsion - d'index. - Si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - est diffrent de zro et que -\begin_inset Quotes eld -\end_inset - -HOME_LATCH_VEL -\begin_inset Quotes erd -\end_inset - - est gal zro, c'est une cause d'erreur, l'opration de prise d'origine - chouera. - La valeur par dfaut est zro. -\layout Subsubsection - -HOME_IGNORE_LIMITS = YES/NO -\begin_inset LatexCommand \index{HOME IGNORE LIMITS} - -\end_inset - - -\layout Standard - -Peut contenir les valeurs YES ou NO. - Cette variable dtermine si EMC doit ignorer les fins de course de limites - d'axe. - Certaines machines n'utilisent pas un contact d'origine spar, la place, - elles utilisent un des interrupteurs de fin de course comme contact d'origine. - Dans ce cas, EMC doit ignorer l'activation de cette limite de course pendant - la squence de prise d'origine. - La valeur par dfaut de ce paramtre est NO. - -\layout Subsubsection - -HOME_USE_INDEX = YES/NO -\begin_inset LatexCommand \index{HOME USE INDEX} - -\end_inset - - -\layout Standard - -Spcifie si une impulsion d'index doit tre prise en compte (cas de rgles - de mesure ou de codeurs de positions). - Si cette variable est vraie (HOME_USE_INDEX = YES), EMC fera l'acquisition - de l'origine machine sur le premier front de l'impulsion d'index. - Si elle est fausse (=NO), EMC fera l'acquisition de l'origine sur le premier - front produit par le contact d'origine (dpendra des signes de -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - et -\begin_inset Quotes eld -\end_inset - -HOME_LATCH_VEL -\begin_inset Quotes erd -\end_inset - -). - La valeur par dfaut est NO. -\layout Subsubsection - -HOME_OFFSET -\begin_inset LatexCommand \index{HOME OFFSET} - -\end_inset - - -\layout Standard - -Contient l'emplacement du point d'origine ou de l'impulsion d'index, en - coordonnes relatives. - Il peut aussi tre trait comme le dcalage entre le point d'origine machine - et le zro de l'axe. - A la dtection de l'impulsion d'origine, EMC ajuste les coordonnes de - l'axe la valeur de -\begin_inset Quotes eld -\end_inset - -HOME_OFFSET -\begin_inset Quotes erd -\end_inset - -. - La valeur par dfaut est zro. -\layout Subsubsection - -HOME -\begin_inset LatexCommand \index{HOME} - -\end_inset - - -\layout Standard - -C'est la position sur laquelle ira le mobile la fin de la squence de - prise d'origine. - Aprs avoir dtect le contact d'origine, avoir ajust les coordonnes - de ce point la valeur de -\begin_inset Quotes eld -\end_inset - -HOME_OFFSET -\begin_inset Quotes erd -\end_inset - -, le mobile va se dplacer sur la valeur de -\begin_inset Quotes eld -\end_inset - -HOME, c'est le point final de la squence de prise d'origine. - La valeur par dfaut est zro. - Notez que mme si ce paramtre est gal la valeur de -\begin_inset Quotes eld -\end_inset - -HOME_OFFSET -\begin_inset Quotes erd -\end_inset - -, le mobile dpassera trs lgrement la position du point d'aquisition - de l'origine machine avant de s'arrter. - Donc il y aura toujours un petit mouvement ce moment l (sauf bien sr - si -\begin_inset Quotes eld -\end_inset - -HOME_SEARCH_VEL -\begin_inset Quotes erd -\end_inset - - est zro, et que toute la squence de POM a t saute). - Ce mouvement final s'effectue en vitesse de dplacement rapide. - Puisque l'axe est maintenant rfrenc, il n'y a plus de risque pour la - machine, un mouvement rapide est donc la faon la plus rapide de finir - la squence de prise d'origine. -\begin_inset Foot -collapsed false - -\layout Standard - -La distinction entre l'origine machine et le dcalage d'origine n'est pas - aussi claire que je le voudrais. - J'envisage de faire un petit dessin et un exemple pour la clarifier. -\end_inset - - -\layout Subsubsection - -HOME_IS_SHARED -\begin_inset LatexCommand \index{HOME IS SHARED} - -\end_inset - - -\layout Standard - -Si cet axe n'a pas un contact d'origine spar des autres, mais plusieurs - contacts cbls sur la mme broche, mettez cette valeur 1 pour viter - de commencer la prise d'origine si un de ces contacts partags est dj - activ. - Mettez cette valeur 0 pour permettre la prise d'origine mme si un contact - est dj attaqu. -\layout Subsubsection - -HOME_SEQUENCE -\begin_inset LatexCommand \index{HOME SEQUENCE} - -\end_inset - - -\layout Standard - -Utilis pour dfinir l'ordre des squences -\begin_inset Quotes eld -\end_inset - -HOME ALL -\begin_inset Quotes erd -\end_inset - - de prise d'origine des diffrents axes (exemple: la POM de l'axe X ne pourra - se faire qu'aprs celle de Z). - La POM d'un axe ne pourra se faire qu'aprs tous les autres en ayant la - valeur la plus petite de -\begin_inset Quotes eld -\end_inset - -HOME_SEQUENCE -\begin_inset Quotes erd -\end_inset - - et aprs qu'ils soient dj tous -\begin_inset Quotes eld -\end_inset - -HOME_OFFSET -\begin_inset Quotes erd -\end_inset - -. - Si deux axes ont la mme valeur de -\begin_inset Quotes eld -\end_inset - -HOME_SEQUENCE -\begin_inset Quotes erd -\end_inset - -, leur POM s'effectueront simultanment. - Si -\begin_inset Quotes eld -\end_inset - -HOME_SEQUENCE -\begin_inset Quotes erd -\end_inset - - est gale -1 ou non spcifie, l'axe ne sera pas compris dans la squence - -\begin_inset Quotes eld -\end_inset - -HOME ALL -\begin_inset Quotes erd -\end_inset - -. - Les valeurs de -\begin_inset Quotes eld -\end_inset - -HOME_SEQUENCE -\begin_inset Quotes erd -\end_inset - - dbutent 0, il ne peut pas y avoir de valeur inutilise. -\the_end diff --git a/docs/src/config/lathe_config.lyx b/docs/src/config/lathe_config.lyx deleted file mode 100644 index 1398bff5f..000000000 --- a/docs/src/config/lathe_config.lyx +++ /dev/null @@ -1,113 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Section -Lathe -\end_layout - -\begin_layout Subsection -Default Plane -\end_layout - -\begin_layout Standard -When EMC's interpreter was first written, it was designed for mills. - That is why the default plane is XY (G17). - A normal lathe only uses the XZ plane (G18). - To change the default plane place the following line in the .ini file in - the RS274NGC section. -\end_layout - -\begin_layout LyX-Code -RS274NGC_STARTUP_CODE = G18 -\end_layout - -\begin_layout Subsection -INI Settings -\end_layout - -\begin_layout Standard -The following .ini settings are needed for lathe mode in addition to or replacing - normal settings in the .ini file. - -\end_layout - -\begin_layout LyX-Code -[DISPLAY] -\end_layout - -\begin_layout LyX-Code -DISPLAY = axis -\end_layout - -\begin_layout LyX-Code -LATHE = 1 -\end_layout - -\begin_layout LyX-Code -[TRAJ] -\end_layout - -\begin_layout LyX-Code -AXES = 3 -\end_layout - -\begin_layout LyX-Code -COORDINATES = X Z -\end_layout - -\begin_layout LyX-Code -[AXIS_0] -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -[AXIS_2] -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/lathe_config_fr.lyx b/docs/src/config/lathe_config_fr.lyx deleted file mode 100644 index 8190e16f0..000000000 --- a/docs/src/config/lathe_config_fr.lyx +++ /dev/null @@ -1,46 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 11 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Section - -Tours -\layout Subsection - -Plan par dfaut -\layout Standard - -Quand l'interprteur d'EMC t cr, il t crit pour les fraiseuses. - C'est pourquoi le plan par dfaut est le plan XY (G17). - Sur un tour standard utilise seulement les axes du plan XZ (G18). - Pour changer le plan par dfaut d'un tour, mettez la ligne suivante dans - la section RS274NGC du fichier ini. -\layout Standard - - -\family typewriter -\series bold -RS274NGC_STARTUP_CODE = G18 -\the_end diff --git a/docs/src/config/pncconf.lyx b/docs/src/config/pncconf.lyx deleted file mode 100644 index 05f4f30b3..000000000 --- a/docs/src/config/pncconf.lyx +++ /dev/null @@ -1,614 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Point n Click Configurator -\end_layout - -\begin_layout Standard -The Point n Click Configurator covers Mesa cards and parallel port stepper - configurations. - If you have a simple parallel port stepper machine the StepConf Wizard - might be a better choice. - The Point n Click Configurator can generate some advanced configurations - without knowing anything about HAL. -\end_layout - -\begin_layout Standard -Start the PnCConf program from the CNC menu or from a terminal window with - -\family typewriter -pncconf -\family default -. - For more information on the terminal window see the Linux FAQ section. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -PnCConf Splash -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-splash.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Basic Machine Information -\end_layout - -\begin_layout Description -Machine\InsetSpace ~ -Name: What you want to call your machine and must not have any spaces. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -PnCConf Basic -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-basic.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -GUI Configuration -\end_layout - -\begin_layout Standard -Here you can select from different GUI's and options for each one. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -GUI Configuration -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-gui.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Mesa Configuration -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mesa Configuration -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-mesa-config.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Mesa I/O Setup -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mesa I/O C2 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-mesa-io2.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mesa I/O C3 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-mesa-io3.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mesa I/O C4 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-mesa-io4.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Axis Configuration -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Axis Drive Configuration -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-axis-drive.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Axis Configuration -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-axis-config.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Advanced Options -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Advanced Options -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-advanced.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -HAL Components -\end_layout - -\begin_layout Standard -On this page you can add additional HAL components you might need. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -HAL Components -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/pncconf-hal.png - lyxscale 50 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/stepconf.lyx b/docs/src/config/stepconf.lyx deleted file mode 100644 index bc7274a44..000000000 --- a/docs/src/config/stepconf.lyx +++ /dev/null @@ -1,1936 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman times -\font_sans helvet -\font_typewriter courier -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Stepconf Wizard -\begin_inset LatexCommand label -name "cha:Stepconf-Wizard" - -\end_inset - - -\begin_inset LatexCommand index -name "Stepconf Wizard" - -\end_inset - - -\end_layout - -\begin_layout Standard -EMC2 is capable of controlling a wide range of machinery using many different - hardware interfaces. - Stepconf is a program which generates EMC configuration files for a specific - class of CNC machine: those connected to the PC using a standard -\series bold -parallel port -\series default - and controlled with -\series bold -step & direction -\series default - signals. - Stepconf is installed when you install EMC2 and is in the CNC menu. -\end_layout - -\begin_layout Standard -Stepconf places a file in the emc2/config directory to store the choices - for each configuration you create. - When you change something you need to pick the file that matches your configura -tion name. - The file extension is .stepconf. -\end_layout - -\begin_layout Standard -The Stepconf Wizard needs at least 800 x 600 screen resolution to see the - buttons on the bottom of the pages. -\end_layout - -\begin_layout Section* -Step by Step Instructions -\end_layout - -\begin_layout Section -Entry Page -\begin_inset LatexCommand label -name "sec:Entry-Page" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Entry Page -\begin_inset LatexCommand label -name "cap:Entry-Page" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-entry.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Create\InsetSpace ~ -New Creates a fresh configuration. -\end_layout - -\begin_layout Description -Modify Modify and existing configuration. - After selecting this a file picker pops up so you can select the .stepconf - file for modification. - If you made any modifications to the main .hal or the .ini file these will - be lost. - Modifications to custom.hal and custom_postgui.hal will not be changed by - the Stepconf Wizard. -\end_layout - -\begin_layout Description -Create\InsetSpace ~ -Desktop\InsetSpace ~ -Shortcut This will place a link on your desktop to the files. -\end_layout - -\begin_layout Description -Create\InsetSpace ~ -Desktop\InsetSpace ~ -Launcher This will place a launcher on your desktop to start - your application. -\end_layout - -\begin_layout Section -Basic Information -\begin_inset LatexCommand label -name "sub:Basic-Information" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Basic Information Page -\begin_inset LatexCommand label -name "cap:Basic-Information-Page" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-basic.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Machine\InsetSpace ~ -Name -\begin_inset LatexCommand index -name "Machine Name" - -\end_inset - - Choose a name for your machine. - Use only uppercase letters, lowercase letters, digits, "-" and "_". -\end_layout - -\begin_layout Description -Axis\InsetSpace ~ -Configuration -\begin_inset LatexCommand index -name "Axis Configuration" - -\end_inset - - Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe). - -\end_layout - -\begin_layout Description -Machine\InsetSpace ~ -Units -\begin_inset LatexCommand index -name "Machine Units" - -\end_inset - - Choose Inch or mm. - All subsequent questions (such as machine travel, leadscrew pitch, etc) - will be answered in the chosen units -\end_layout - -\begin_layout Description -Driver\InsetSpace ~ -Type -\begin_inset LatexCommand index -name "Driver Type" - -\end_inset - - If you have one of the stepper drivers listed in the pull down box, choose - it. - Otherwise, find the 4 timing values in your driver's data sheet and enter - them. - -\newline -If the data sheet gives a value in microseconds, multiply by 1000. - For example, enter 4.5us as 4500. - A list is on the -\begin_inset LatexCommand url -name "Linuxcnc Wiki" -target "http://wiki.linuxcnc.org" - -\end_inset - - site of most popular drives with the timing values is in the Stepper Drive - Timing Page. -\newline -Additional signal conditioning or isolation such as optocouplers - and RC filters on break out boards can impose timing constraints of their - own, in addition to those of the driver. - You may find it necessary to add some time to the drive requirements to - allow for this. - The EMC Configuration Selector has configs for Sherline all ready configured. -\end_layout - -\begin_layout Description -Step\InsetSpace ~ -Time How long the step pulse is "on" in nano seconds. -\end_layout - -\begin_layout Description -Step\InsetSpace ~ -Space Minimum time between step pulses in nano seconds. -\end_layout - -\begin_layout Description -Direction\InsetSpace ~ -Hold How long the direction pin is held after a change of direction - in nano seconds. -\end_layout - -\begin_layout Description -Direction\InsetSpace ~ -Setup How long before a direction change after the last step pulse - in nano seconds -\end_layout - -\begin_layout Description -First\InsetSpace ~ -Parport Usually the default of Ox378 is correct. -\end_layout - -\begin_layout Description -Second\InsetSpace ~ -Parport If you need to specify addional parallel ports enter the address - and the type. - For information on finding the address of PCI parallel ports see the Port - Address in the Integrators Manual. -\end_layout - -\begin_layout Description -Base\InsetSpace ~ -Period\InsetSpace ~ -Maximum\InsetSpace ~ -Jitter -\begin_inset LatexCommand index -name "Base Period Maximum Jitter" - -\end_inset - - Enter the result of the Latency Test here. - To run a latency test press the "Test Base Period Jitter" button. - See the latency test section for more details. -\end_layout - -\begin_layout Description -Max\InsetSpace ~ -Step\InsetSpace ~ -Rate -\begin_inset LatexCommand index -name "Max Step Rate" - -\end_inset - - Stepconf automatically calculates the Max Step Rate based on the driver - characteristics entered and the latency test result. -\end_layout - -\begin_layout Description -Min\InsetSpace ~ -Base\InsetSpace ~ -Period -\begin_inset LatexCommand index -name "Min Base Period" - -\end_inset - - Stepconf automatically determines the Min Base Period based on the driver - characteristics entered and latency test result. -\end_layout - -\begin_layout Description -Onscreen\InsetSpace ~ -Prompt\InsetSpace ~ -For\InsetSpace ~ -Tool\InsetSpace ~ -Change -\begin_inset LatexCommand index -name "Onscreen Prompt For Tool Change" - -\end_inset - - If this box is checked, EMC will pause and prompt you to change the tool - when -\series bold -M6 -\series default - is encountered. - Leave this box checked unless you plan to add support for an automatic - tool changer in a custom hal file -\end_layout - -\begin_layout Subsection -Latency Test -\begin_inset LatexCommand label -name "sub:Latency-Test" - -\end_inset - - -\end_layout - -\begin_layout Standard -While the test is running, you should "abuse" the computer. - Move windows around on the screen. - Surf the web. - Copy some large files around on the disk. - Play some music. - Run an OpenGL program such as glxgears. - The idea is to put the PC through its paces while the latency test checks - to see what the worst case numbers are. - -\series bold -Do not run EMC2 while the latency test is running. - -\series default - Run the test at least a few minutes. - The longer you run the test the better it will be at catching events that - might occour at less frequent intervals. - This is a test for your computer only, so no hardware needs to be connected - to run the test. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Latency Test -\begin_inset LatexCommand label -name "cap:Latency-Test" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/latency.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Latency is how long it takes the PC to stop what it is doing and respond - to an external request. - In our case, the request is the periodic "heartbeat" that serves as a timing - reference for the step pulses. - The lower the latency, the faster you can run the heartbeat, and the faster - and smoother the step pulses will be. -\end_layout - -\begin_layout Standard -Latency is far more important than CPU speed. - The CPU isn't the only factor in determining latency. - Motherboards, video cards, USB ports, -\begin_inset LatexCommand htmlurl -name "SMI" -target "nuxcnc.org/cgi-bin/emcinfo.pl?FixingSMIIssues" - -\end_inset - - issues, and a number of other things can hurt the latency. - -\end_layout - -\begin_layout Standard -The important numbers are the "max jitter". - In the example above 7085 nanoseconds is the highest jitter. - Record this number, and enter it in the Base Period Maximum Jitter box. - -\end_layout - -\begin_layout Standard -If your Max Jitter number is less than about 15-20 microseconds (15000-20000 - nanoseconds), the computer should give very nice results with software - stepping. - If the max latency is more like 30-50 microseconds, you can still get good - results, but your maximum step rate might be a little disappointing, especially - if you use microstepping or have very fine pitch leadscrews. - If the numbers are 100uS or more (100,000 nanoseconds), then the PC is - not a good candidate for software stepping. - Numbers over 1 millisecond (1,000,000 nanoseconds) mean the PC is not a - good candidate for EMC, regardless of whether you use software stepping - or not. -\end_layout - -\begin_layout Section -Parallel Port Setup -\begin_inset LatexCommand index -name "Parallel Port Setup" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Parallel-Port-Setup" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Parallel Port Setup Page -\begin_inset LatexCommand label -name "cap:Parallel-Port-Setup" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-pinout.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -For each pin, choose the signal which matches your parallel port pin out. - Turn on the "invert" check box if the signal is inverted (0V for true/active, - 5V for false/inactive). -\end_layout - -\begin_layout Description -Output\InsetSpace ~ -pinout\InsetSpace ~ -presets Automatically set pins 2 through 9 according to the - Sherline standard (Direction on pins 2, 4, 6, 8) or the Xylotex standard - (Direction on pins 3, 5, 7, 9). - -\end_layout - -\begin_layout Description -Inputs\InsetSpace ~ -and\InsetSpace ~ -Outputs If the input or output is not used set the option to "Unused". -\end_layout - -\begin_layout Description -External\InsetSpace ~ -E\InsetSpace ~ -Stop This can be selected from an input pin drop down box. - A typical E Stop chain uses all normally closed contacts. -\end_layout - -\begin_layout Description -Homing\InsetSpace ~ -&\InsetSpace ~ -Limit\InsetSpace ~ -Switches These can be selected from an input pin drop down box - for most configurations. -\end_layout - -\begin_layout Description -Charge\InsetSpace ~ -Pump If your driver board requires a charge pump signal simply select - Charge Pump from the drop down list for the output pin you wish to connect - to your charge pump input. - The charge pump output is connected to the base thread by Stepconf. - The charge pump output will be about 1/2 of the maximum step rate shown - on the Basic Machine Configuration page. -\end_layout - -\begin_layout Section -Axis Configuration -\begin_inset LatexCommand index -name "Axis Configuration" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Axis-Configuration" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Axis Configuration Page -\begin_inset LatexCommand label -name "cap:Axis-Configuration-Page" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-axis.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Motor\InsetSpace ~ -Steps\InsetSpace ~ -Per\InsetSpace ~ -Revolution -\begin_inset LatexCommand index -name "Motor Steps Per Revolution" - -\end_inset - - The number of full steps per motor revolution. - If you know how many degrees the motor is (e.g., 1.2 degree), then divide - 360 by the degrees to find the number of steps per motor revolution. -\end_layout - -\begin_layout Description -Driver\InsetSpace ~ -Microstepping -\begin_inset LatexCommand index -name "Driver Microstepping" - -\end_inset - - The amount of microstepping performed by the driver. - Enter "2" for half-stepping. -\end_layout - -\begin_layout Description -Pulley\InsetSpace ~ -Ratio -\begin_inset LatexCommand index -name "Pulley Ratio" - -\end_inset - - If your machine has pulleys between the motor and leadscrew, enter the - ratio here. - If not, enter "1:1". -\end_layout - -\begin_layout Description -Leadscrew\InsetSpace ~ -Pitch -\begin_inset LatexCommand index -name "Leadscrew Pitch" - -\end_inset - - Enter the pitch of the leadscrew here. - If you chose "Inch" units, enter the number of threads per inch here (e.g., - enter 8 for 8TPI). - If you have a multi-lead screw then you need to know how many turns per - inch it takes to move the "nut". - If you chose "mm" units, enter the number of millimeters the "nut" would - move per revolution here (e.g., enter 2 for 2mm/rev). - If the machine travels in the wrong direction, enter a negative number - here instead of a positive number or invert the direction pin for the axis. -\end_layout - -\begin_layout Description -Maximum\InsetSpace ~ -Velocity -\begin_inset LatexCommand index -name "Maximum Velocity" - -\end_inset - - Enter the maximum velocity for the axis in units per second. -\end_layout - -\begin_layout Description -Maximum\InsetSpace ~ -Acceleration -\begin_inset LatexCommand index -name "Maximum Acceleration" - -\end_inset - - The correct values for these items can only be determined through experimentati -on. - See "Finding Velocity and Acceleration" below. -\end_layout - -\begin_layout Description -Home\InsetSpace ~ -Location -\begin_inset LatexCommand index -name "Home Location" - -\end_inset - - The position the machine moves to after completing the homing procedure - for this axis. - For machines without home switches, this is the location the operator manually - moves the machine to before pressing the Home button. - If you combine the home and limit switches you must move off of the switch - to the home position or you will get a joint limit error. -\end_layout - -\begin_layout Description -Table\InsetSpace ~ -Travel -\begin_inset LatexCommand index -name "Table Travel" - -\end_inset - - The range of travel that g code programs must not exceed. - The home location must be inside the Table Travel. - In particular, having Home Location exactly equal to one of the Table Travel - values is incorrect configuration -\end_layout - -\begin_layout Description -Home\InsetSpace ~ -Switch\InsetSpace ~ -Location -\begin_inset LatexCommand index -name "Home Switch Location" - -\end_inset - - The location at which the home switch trips or releases during the homing - process. - This item and the two below only appear when Home Switches were chosen - in the Parallel Port Pinout. - If you combine home and limit switches the home switch location can not - be the same as the home position or you will get a joint limit error. -\end_layout - -\begin_layout Description -Home\InsetSpace ~ -Search\InsetSpace ~ -Velocity -\begin_inset LatexCommand index -name "Home Search Velocity" - -\end_inset - - The velocity to use when moving towards the switch. - If the switch is near the end of travel, this velocity must be chosen so - that the axis can decelerate to a stop before hitting the end of travel. - If the switch is only closed for a short range of travel (instead of being - closed from its trip point to one end of travel), this velocity must be - chosen so that the axis can decelerate to a stop before the switch opens - again, and homing must always be started from the same side of the switch. -\newline -If - the machine moves the wrong direction at the beginning of the homing procedure, - negate the value of -\series bold -Home Search Velocity -\series default -. -\end_layout - -\begin_layout Description -Home\InsetSpace ~ -Latch\InsetSpace ~ -Direction -\begin_inset LatexCommand index -name "Home Latch Direction" - -\end_inset - - Choose "Same" to have homing back off the switch, then approach it again - at a very low speed. - The second time the switch closes, the home position is set. -\newline -Choose "Opposite" - to have homing slowly back off the switch. - When the switch opens, the home position is set. -\end_layout - -\begin_layout Description -Time\InsetSpace ~ -to\InsetSpace ~ -accelerate\InsetSpace ~ -to\InsetSpace ~ -max\InsetSpace ~ -speed -\begin_inset LatexCommand index -name "Time to accelerate to max speed" - -\end_inset - - -\end_layout - -\begin_layout Description -Distance\InsetSpace ~ -to\InsetSpace ~ -accelerate\InsetSpace ~ -to\InsetSpace ~ -max\InsetSpace ~ -speed -\begin_inset LatexCommand index -name "Distance to accelerate to max speed" - -\end_inset - - -\end_layout - -\begin_layout Description -Pulse\InsetSpace ~ -rate\InsetSpace ~ -at\InsetSpace ~ -max\InsetSpace ~ -speed -\begin_inset LatexCommand index -name "Pulse rate at max speed" - -\end_inset - - Information computed based on the values entered above. - The greatest -\series bold -Pulse rate at max speed -\series default - determines the -\series bold -BASE_PERIOD -\series default -, and values above 20000Hz may lead to slow response time or even lockups - (the fastest usable pulse rate varies from computer to computer) -\end_layout - -\begin_layout Description -Axis\InsetSpace ~ -SCALE: The number that will be used in the ini file [SCALE] setting. - This is how many steps per user unit. -\end_layout - -\begin_layout Description -Test\InsetSpace ~ -this\InsetSpace ~ -axis -\begin_inset LatexCommand index -name "Test this axis" - -\end_inset - - This will open a window to allow testing for each axis. - This can be used after filling out all the information for this axis. - -\end_layout - -\begin_layout Subsection -Test This Axis -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Test This Axis -\begin_inset LatexCommand label -name "cap:Test-This-Axis" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-test.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -With Stepconf it is easy to try different values for acceleration and velocity. - -\end_layout - -\begin_layout Subsubsection -Finding Maximum Velocity -\begin_inset LatexCommand index -name "Finding Maximum Velocity" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Finding-Maximum-Velocity" - -\end_inset - - -\end_layout - -\begin_layout Standard -Begin with a low Acceleration (e.g., 2 in/s^2 or 50mm/s^2) and the velocity - you hope to attain. - Using the buttons provided, jog the axis to near the center of travel. - Take care because with a low acceleration value, it can take a surprising - distance for the axis to decelerate to a stop. -\end_layout - -\begin_layout Standard -After gauging the amount of travel available, enter a safe distance in Test - Area, keeping in mind that after a stall the motor may next start to move - in an unexpected direction. - Then click Run. - The machine will begin to move back and forth along this axis. - In this test, it is important that the combination of Acceleration and - Test Area allow the machine to reach the selected Velocity and "cruise" - for at least a short distance--the more distance, the better this test - is. - The formula d=.5*v*v/a gives the minimum distance required reach the specified - velocity with the given acceleration. - If it is convenient and safe to do so, push the table against the direction - of motion to simulate cutting forces. - If the machine stalls, reduce the speed and start the test again. -\end_layout - -\begin_layout Standard -If the machine did not obviously stall, click the "Run" button off. - The axis now returns to the position where it started. - If the position is incorrect, then the axis stalled or lost steps during - the test. - Reduce Velocity and start the test again. -\end_layout - -\begin_layout Standard -If the machine doesn't move, stalls, or loses steps no matter how low you - turn Velocity, verify the following: -\end_layout - -\begin_layout Itemize -Correct step waveform timings -\end_layout - -\begin_layout Itemize -Correct pinout, including "Invert" on step pins -\end_layout - -\begin_layout Itemize -Correct, well-shielded cabling -\end_layout - -\begin_layout Itemize -Physical problems with the motor, motor coupling, leadscrew, etc. -\end_layout - -\begin_layout Standard -Once you have found a speed at which the axis does not stall or lose steps - during this testing procedure, reduce it by 10% and use that as the axis - Maximum Velocity. -\end_layout - -\begin_layout Subsubsection -Finding Maximum Acceleration -\begin_inset LatexCommand index -name "Finding Maximum Acceleration" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Finding-Maximum-Acceleration" - -\end_inset - - -\end_layout - -\begin_layout Standard -With the Maximum Velocity you found in the previous step, enter the acceleration - value to test. - procedure as above, adjusting the Acceleration value up or down as necessary. - In this test, it is important that the combination of Acceleration and - Test Area allow the machine to reach the selected Velocity. - Once you have found a value at which the axis does not stall or lose steps - during this testing procedure, reduce it by 10% and use that as the axis - Maximum Acceleration. -\end_layout - -\begin_layout Section -Spindle Configuration -\begin_inset LatexCommand index -name "Spindle Configuration" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Spindle-Configuration" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Spindle Configuration Page -\begin_inset LatexCommand label -name "cap:Spindle-Configuration-Page" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-spindle.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This page only appear when "Spindle PWM" is chosen in the -\series bold -Parallel Port Pinout -\series default - page for one of the outputs. -\end_layout - -\begin_layout Subsubsection -Spindle Speed Control -\begin_inset LatexCommand index -name "spindle speed control" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Spindle-Speed-Control" - -\end_inset - - -\end_layout - -\begin_layout Standard -If "Spindle PWM" appears on the pinout, the following information should - be entered: -\end_layout - -\begin_layout Description -PWM\InsetSpace ~ -Rate -\begin_inset LatexCommand index -name "PWM Rate" - -\end_inset - - The "carrier frequency" of the PWM signal to the spindle. - Enter "0" for PDM mode, which is useful for generating an analog control - voltage. - Refer to the documentation for your spindle controller for the appropriate - value. -\end_layout - -\begin_layout Description -Speed\InsetSpace ~ -1\InsetSpace ~ -and\InsetSpace ~ -2,\InsetSpace ~ -PWM\InsetSpace ~ -1\InsetSpace ~ -and\InsetSpace ~ -2 -\begin_inset LatexCommand index -name "Speed 1 and 2" - -\end_inset - - -\begin_inset LatexCommand index -name "PWM 1 and 2" - -\end_inset - - The generated configuration file uses a simple linear relationship to determine - the PWM value for a given RPM value. - If the values are not known, they can be determined. - For more information see section ( -\begin_inset LatexCommand ref -reference "sub:Determining-Spindle-Calibration" - -\end_inset - -) -\end_layout - -\begin_layout Subsubsection -Spindle-synchronized motion (lathe threading) -\begin_inset LatexCommand label -name "sub:Spindle-synchronized-motion-(lathe" - -\end_inset - - -\begin_inset LatexCommand index -name "spindle-synchronized motion" - -\end_inset - - -\begin_inset LatexCommand index -name "Lathe Threading" - -\end_inset - - -\end_layout - -\begin_layout Standard -When the appropriate signals from a spindle encoder are connected to the - parallel port, EMC supports lathe threading. - These signals are: -\end_layout - -\begin_layout Description -Spindle\InsetSpace ~ -Index -\begin_inset LatexCommand index -name "Spindle PPR" - -\end_inset - - Is a pulse that occurs once per revolution of the spindle. -\end_layout - -\begin_layout Description -Spindle\InsetSpace ~ -Phase\InsetSpace ~ -A -\begin_inset LatexCommand index -name "Spindle A" - -\end_inset - - This is a pulse that occurs in multiple equally-spaced locations as the - spindle turns. -\end_layout - -\begin_layout Description -Spindle\InsetSpace ~ -Phase\InsetSpace ~ -B -\begin_inset LatexCommand index -name "Spindle B" - -\end_inset - - (optional) This is a second pulse that occurs, but with an offset from - Spindle Phase A. - The advantages to using both A and B are increased noise immunity and increased - resolution. -\end_layout - -\begin_layout Standard -If "Spindle Phase A" and "Spindle Index" appear on the pinout, the following - information should be entered: -\end_layout - -\begin_layout Description -Cycles\InsetSpace ~ -per\InsetSpace ~ -revolution -\begin_inset LatexCommand index -name "Cycles per revolution" - -\end_inset - - The number of cycles of the -\series bold -Spindle A -\series default - signal during one revolution of the spindle. - This option is only enabled when an input has be set to "Spindle Phase - A" -\end_layout - -\begin_layout Description -\begin_inset Note Note -status open - -\begin_layout Description -Maximum\InsetSpace ~ -threading\InsetSpace ~ -speed The maximum spindle speed at which threading will - be used. - Like high motor speeds in Hz, high -\series bold -SPINDLE A -\series default - speeds require a low -\series bold -BASE_PERIOD -\series default - setting (TO DO) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Determining Spindle Calibration -\begin_inset LatexCommand index -name "Determining Spindle Calibration" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Determining-Spindle-Calibration" - -\end_inset - - -\end_layout - -\begin_layout Standard -Enter the following values in the Spindle Configuration page: -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Speed 1: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\series bold -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM 1: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\series bold -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Speed 2: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\series bold -1000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM 1: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\series bold -1 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -Finish the remaining steps of the configuration process, then launch EMC - with your configuration. - Turn the machine on and select the MDI tab. - Start the spindle turning by entering: -\family typewriter -M3 S100 -\family default -. - Change the spindle speed by entering a different S-number: -\family typewriter -S800 -\family default -. - Valid numbers range from 1 to 1000. -\end_layout - -\begin_layout Standard -For two different S-numbers, measure the actual spindle speed in RPM. - Record the S-numbers and actual spindle speeds. - Run Stepconf again. - For "Speed" enter the measured speed, and for "PWM" enter the S-number - divided by 1000. -\end_layout - -\begin_layout Standard -Because most spindle drivers are somewhat nonlinear in their response curves, - it is best to: -\end_layout - -\begin_layout Itemize -Make sure the two calibration speeds are not too close together in RPM -\end_layout - -\begin_layout Itemize -Make sure the two calibration speeds are in the range of speeds you will - typically use while milling -\end_layout - -\begin_layout Standard -For instance, if your spindle will go from 0RPM to 8000RPM, but you generally - use speeds from 400RPM to 4000RPM, then find the PWM values that give 1600RPM - and 2800RPM. -\end_layout - -\begin_layout Section -Advanced Configuration Options -\begin_inset LatexCommand index -name "Advanced Configuration Options" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Advanced-Configuration-Options" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Advanced Configuration -\begin_inset LatexCommand label -name "cap:Advanced-Configuration" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/stepconf-advanced.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Include\InsetSpace ~ -Halui This will add the Halui user interface component. - See the Integrators Manual for more information on Halui. -\end_layout - -\begin_layout Description -Include\InsetSpace ~ -pyVCP This option adds the pyVCP panel base file or a sample file - to work on. - See the Integrators Manual for more information on pyVCP. -\end_layout - -\begin_layout Description -Include\InsetSpace ~ -ClassicLadder\InsetSpace ~ -PLC This option will add the ClassicLadder PLC (Programmable - Logic Controller). - See the Integrators Manual for more information on ClassicLadder. -\end_layout - -\begin_layout Section -Machine Configuration Complete -\begin_inset LatexCommand label -name "sub:Machine-Configuration-Complete" - -\end_inset - - -\end_layout - -\begin_layout Standard -Click -\begin_inset Quotes eld -\end_inset - -Apply -\begin_inset Quotes erd -\end_inset - - to write the configuration files. - Later, you can re-run this program and tweak the settings you entered before. -\end_layout - -\begin_layout Section -Axis Travel, Home Location, and Home Switch Location -\begin_inset LatexCommand index -name "Axis Travel" - -\end_inset - - -\begin_inset LatexCommand index -name "Home Location" - -\end_inset - - -\begin_inset LatexCommand index -name "Home Switch Location" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Axis-Travel-Home" - -\end_inset - - -\end_layout - -\begin_layout Standard -For each axis, there is a limited range of travel. - The physical end of travel is called the -\series bold -hard stop -\series default -. -\end_layout - -\begin_layout Standard -Before the -\series bold -hard stop -\series default - there is a -\series bold -limit switch -\series default -. - If the limit switch is encountered during normal operation, EMC shuts down - the motor amplifier. - The distance between the -\series bold -hard stop -\series default - and -\series bold -limit switch -\series default - must be long enough to allow an unpowered motor to coast to a stop. - -\end_layout - -\begin_layout Standard -Before the -\series bold -limit switch -\series default - there is a -\series bold -soft limit -\series default -. - This is a limit enforced in software after homing. - If a MDI command, or g code program would pass the soft limit, it is not - executed. - If a jog would pass the soft limit, it is terminated at the soft limit. -\end_layout - -\begin_layout Standard -The -\series bold -home switch -\series default - can be placed anywhere within the travel (between hard stops). - As long as external hardware does not deactivate the motor amplifiers with - the limit switch is reached, one of the limit switches can be used as a - home switch. -\end_layout - -\begin_layout Standard -The -\series bold -zero position -\series default - is the location on the axis that is 0 in the machine coordinate system. - Usually the -\series bold -zero position -\series default - will be within the -\series bold -soft limits -\series default -. - On lathes, constant surface speed mode requires that machine -\series bold -X=0 -\series default - correspond to the center of spindle rotation when no tool offset is in - effect. -\end_layout - -\begin_layout Standard -The -\series bold -home position -\series default - is the location within travel that the axis will be moved to at the end - of the homing sequence. - This value must be within the -\series bold -soft limits -\series default -. - In particular, the -\series bold -home position -\series default - should never be exactly equal to a -\series bold -soft limit -\series default -. -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -a diagram of all these limits would be nice -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Operating without Limit Switches -\begin_inset LatexCommand index -name "Operating without Limit Switches" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Operating-without-Limit" - -\end_inset - - -\end_layout - -\begin_layout Standard -A machine can be operated without limit switches. - In this case, only the soft limits stop the machine from reaching the hard - stop. - Soft limits only operate after the machine has been homed. - -\end_layout - -\begin_layout Subsection -Operating without Home Switches -\begin_inset LatexCommand index -name "Operating without Home Switches" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Operating-without-Home" - -\end_inset - - -\end_layout - -\begin_layout Standard -A machine can be operated without home switches. - If the machine has limit switches, but no home switches, it is best to - use a limit switch as the home switch (e.g., choose -\series bold -Minimum Limit + Home X -\series default - in the pinout). - If the machine has no switches at all, or the limit switches cannot be - used as home switches for another reason, then the machine must be homed - "by eye" or by using match marks. - Homing by eye is not as repeatable as homing to switches, but it still - allows the soft limits to be useful. -\end_layout - -\begin_layout Section -Home and Limit Switch wiring options -\begin_inset LatexCommand index -name "Home and Limit Switch wiring options" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Home-and-Limit" - -\end_inset - - -\end_layout - -\begin_layout Standard -The ideal wiring for external switches would be one input per switch. - However, the PC parallel port only offers a total of 5 inputs, while there - are as many as 9 switches on a 3-axis machine. - Instead, multiple switches are wired together in various ways so that a - smaller number of inputs are required. -\end_layout - -\begin_layout Standard -The figures below show the general idea of wiring multiple switches to a - single input pin. - In each case, when one switch is actuated, the value seen on INPUT goes - from logic HIGH to LOW. - However, EMC expects a TRUE value when a switch is closed, so the corresponding - "Invert" box must be checked on the pinout configuration page. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Normally Closed Switches -\begin_inset LatexCommand label -name "cap:Normally-Closed-Switches" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/switch-nc-series.eps - scale 80 - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Wiring N/C switches in series (simplified diagram) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Normally Open Switches -\begin_inset LatexCommand label -name "cap:Normally-Open-Switches" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/switch-no-parallel.eps - scale 80 - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -Wiring N/O switches in parallel (simplified diagram) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The following combinations of switches are permitted in Stepconf: -\end_layout - -\begin_layout Itemize -Combine home switches for all axes -\end_layout - -\begin_layout Itemize -Combine limit switches for all axes -\end_layout - -\begin_layout Itemize -Combine both limit switches for one axis -\end_layout - -\begin_layout Itemize -Combine both limit switches and the home switch for one axis -\end_layout - -\begin_layout Itemize -Combine one limit switch and the home switch for one axis -\end_layout - -\begin_layout Standard -The last two combinations are also appropriate when a "home to limit" is - used. -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/stepconf_fr.lyx b/docs/src/config/stepconf_fr.lyx deleted file mode 100644 index eb3438836..000000000 --- a/docs/src/config/stepconf_fr.lyx +++ /dev/null @@ -1,1708 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -Assistant graphique de configuration -\begin_inset LatexCommand \label{cha:Assistant-graphique} - -\end_inset - - -\layout Standard - -Stepconf est un programme qui gnre des fichiers de configuration EMC pour - une classe spcifique de machine CNC: celles qui sont pilotes via un -\series bold -port parallle -\series default - standard et contrles par des signaux de type -\series bold -step & direction -\series default -. -\layout Section - -Instructions pas pas -\begin_inset LatexCommand \label{sec:pas a pas} - -\end_inset - - -\layout Subsection - -Informations sur la machine -\begin_inset LatexCommand \label{sub:Informations sur la machine} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Page d'informations sur la machine -\begin_inset LatexCommand \label{cap:Page informations machine} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/stepconf-basic_fr.png - scale 50 - keepAspectRatio - BoundingBox 0bp 0bp 640bp 460bp - -\end_inset - - -\end_inset - - -\layout Description - -Nom\SpecialChar ~ -de\SpecialChar ~ -la\SpecialChar ~ -machine Choisissez un nom pour votre machine. - Utilisez uniquement des lettres, des chiffres ou -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - -. -\layout Description - -Configuration\SpecialChar ~ -des\SpecialChar ~ -axes Choisissez votre type de machine: XYZ (fraiseuse), - XYZA (machine 4-axes) ou XZ (tour). -\layout Description - -Les\SpecialChar ~ -units\SpecialChar ~ -utilises\SpecialChar ~ -par\SpecialChar ~ -la\SpecialChar ~ -machine Choisissez entre pouce ou millimtre. - Toutes les questions suivantes (telles que la longueur des courses, le - pas de la vis, etc) devront obtenir des rponses dans l'unit choisie ici. -\layout Description - -Caractristiques\SpecialChar ~ -du\SpecialChar ~ -pilote Si vous avez un des pilotes numrs dans la liste - droulante, cliquez sur lui. - Sinon, cherchez dans la documentation du pilote de votre matriel, les - 4 valeurs de timing et entrez les. - Si la fiche donne des valeurs en microsecondes, multipliez les par 1000. - Par exemple, pour 4.5s entrez 4500. - -\begin_deeper -\layout Standard - -D'ventuels traitements des signaux, une opto-isolation ou des filtres RC, - peuvent imposer des contraintes de temps supplmentaires aux signaux, il - convient de les ajouter celles du pilote. - -\end_deeper -\layout Description - -Rsultat\SpecialChar ~ -du\SpecialChar ~ -test\SpecialChar ~ -de\SpecialChar ~ -latence Entrez ici, le rsultat du test de latence. - (voir la section -\begin_inset LatexCommand \ref{sec:Test de latence} - -\end_inset - -) -\layout Description - -Frquence\SpecialChar ~ -maxi\SpecialChar ~ -des\SpecialChar ~ -pas Affiche la valeur calcule de la frquence maximum des - pas que la machine devrait atteindre avec les paramtres de cette configuration. -\layout Description - -Priode\SpecialChar ~ -de\SpecialChar ~ -base\SpecialChar ~ -minimum En se basant sur les caractristiques du pilote et - sur le rsultat du test de latence, Stepconf dtermine automatiquement - la priode de base la plus petite utilisable (BASE_PERIOD). - La frquence maxi des pas est calcule sur la mme BASE_PERIOD. - -\layout Description - -Prompt\SpecialChar ~ -\SpecialChar ~ -l'cran\SpecialChar ~ -au\SpecialChar ~ -changement\SpecialChar ~ -d'outil Si cette case est coche, EMC va faire - une pause et demander de changer l'outil lorsque M6 est rencontr. - Laissez cette case coche, sauf si vous envisagez d'ajouter la gestion - personnalises d'un changeur automatique d'outils dans un fichier halI. -\layout Subsection - -Rglage du port parallle -\begin_inset LatexCommand \label{sub:Reglage du port parallele} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Page de rglage du port parallle -\begin_inset LatexCommand \label{cap:Reglage du port parallele} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/stepconf-pinout_fr.png - scale 70 - keepAspectRatio - BoundingBox 0bp 0bp 695bp 605bp - -\end_inset - - -\end_inset - - -\layout Standard - -Pour chacune des pins, choisir le signal qui correspond au brochage de votre - port parallle. - Cochez la case -\begin_inset Quotes fld -\end_inset - -inverser -\begin_inset Quotes frd -\end_inset - - si le signal est invers (0V pour vrai / actif, 5V pour faux / inactif). -\layout Description - -Sorties\SpecialChar ~ -prselectionnes -\begin_inset LatexCommand \index{Sorties preselectionnees} - -\end_inset - - Rglage automatique des pins 2 9 selon le standard Sherline (Direction - sur les pins 2, 4, 6, 8) ou selon le standard Xylotex (Direction sur les - pins 3, 5, 7, 9). -\layout Description - -Entres\SpecialChar ~ -et\SpecialChar ~ -sorties -\begin_inset LatexCommand \index{Entrees et sorties} - -\end_inset - - Les entres ou les sorties non utilises doivent tre places sur -\begin_inset Quotes fld -\end_inset - -Inutilise -\begin_inset Quotes frd -\end_inset - -. -\layout Description - -Inclure\SpecialChar ~ -une\SpecialChar ~ -configuration\SpecialChar ~ -de\SpecialChar ~ -HAL\SpecialChar ~ -personnalise -\begin_inset LatexCommand \index{Conf. de HAL personnalisee} - -\end_inset - - Vous permet d'ajouter une personnalisation de hal dans le fichier -\begin_inset Quotes fld -\end_inset - -custom.hal -\begin_inset Quotes frd -\end_inset - - aprs l'excution de Stepconf. -\layout Standard - - -\series bold -Inclure\SpecialChar ~ -un -\series default -\SpecialChar ~ - -\series bold -panneau -\series default -\SpecialChar ~ - -\series bold -PyVCP\SpecialChar ~ -personnalis -\begin_inset LatexCommand \index{Panneau PYVCP personnalise} - -\end_inset - - -\series default - Si coch, le panneau de contrle PyVCP -\family typewriter - -\begin_inset Quotes fld -\end_inset - -panel.xml -\begin_inset Quotes frd -\end_inset - - -\family default - sera affich dans la partie droite de la fentre principale d'AXIS. -\layout Standard - - -\series bold -Pompe de charge -\begin_inset LatexCommand \index{Pompe de charge} - -\end_inset - - -\series default - Si votre carte de contrle gre une pompe de charge, dans la liste droulante - des sorties, slectionner -\begin_inset Quotes fld -\end_inset - -Pompe de charge -\begin_inset Quotes frd -\end_inset - - sur la sortie qui doit correspondre l'entre Pompe de charge de la carte. - La sortie pompe de charge sera connecte en interne par Stepconf. - Le signal de pompe de charge sera d'environ la moiti de la frquence maxi - des pas affiche sur la page des informations machine. -\layout Subsection - -Configuration des axes -\begin_inset LatexCommand \label{sub:Configuration des axes} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Page de configuration des axes -\begin_inset LatexCommand \label{cap:Configuration des axes} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/stepconf-axis_fr.png - scale 70 - keepAspectRatio - BoundingBox 0bp 0bp 640bp 460bp - -\end_inset - - -\end_inset - - -\layout Description - -Nombre\SpecialChar ~ -de\SpecialChar ~ -pas\SpecialChar ~ -par\SpecialChar ~ -tour Nombre de pas entiers par tour de moteur. - Si vous connaissez l'angle d'un pas en degrs (par exemple, 1.8 degrs), - divisez 360 par cet angle pour obtenir le nombre de pas par tour du moteur. -\layout Description - -Micropas\SpecialChar ~ -du\SpecialChar ~ -pilote Le nombre de micropas produits par le pilote. - Entrez -\begin_inset Quotes fld -\end_inset - -2 -\begin_inset Quotes frd -\end_inset - - pour le demipas. -\layout Description - -Dents\SpecialChar ~ -des\SpecialChar ~ -poulies Si votre machine dispose de poulies entre le moteur et la - vis, entrez ici le nombre de dents de chacune d'elles. - Pour un entranement direct, entrez -\begin_inset Quotes fld -\end_inset - -1:1 -\begin_inset Quotes frd -\end_inset - -. -\layout Description - -Pas\SpecialChar ~ -de\SpecialChar ~ -la\SpecialChar ~ -vis Entrez ici le pas de la vis. - Si vous avez choisi le -\begin_inset Quotes fld -\end_inset - -pouce -\begin_inset Quotes frd -\end_inset - - comme unit, entrez le nombre de filets par pouce (exemple, entrez 8 pour - 8TPI). - Si vous avez choisi le -\begin_inset Quotes fld -\end_inset - -mm -\begin_inset Quotes frd -\end_inset - -, entrez la taille du filet en millimtres (exemple, entrez 2 pour un pas - de 2mm). - Si la machine se dplace dans la mauvaise direction, entrez une valeur - ngative au lieu d'une positive. -\layout Description - -Vitesse\SpecialChar ~ -maximum -\layout Description - -Acclration\SpecialChar ~ -maximum Les valeurs correctes pour ces deux entres ne peuvent - tre dtermines que par l'exprimentation. - Consultez -\begin_inset LatexCommand \ref{sub:Definir la vitesse maximum} - -\end_inset - - pour dfinir la vitesse et -\begin_inset LatexCommand \ref{sub:Definir l'acceleration maximum} - -\end_inset - - pour dfinir l'acclration. - -\layout Description - -Emplacement\SpecialChar ~ -de\SpecialChar ~ -l'origine\SpecialChar ~ -machine La position sur laquelle la machine se place - aprs avoir termin la procdure de prise d'origine de cet axe. - Pour les machines sans contact plac au point d'origine, c'est la position - laquelle l'oprateur place la machine en manuel, avant de presser le - bouton de -\family typewriter -\series bold -POM des axes -\family default -\series default -. -\layout Description - -Course\SpecialChar ~ -de\SpecialChar ~ -la\SpecialChar ~ -table tendue de la course que le programme en gcode ne doit jamais - dpasser. - L'origine machine doit tre situe l'intrieur de cette course. - En particulier, avoir un point d'origine exactement gal une de ces limites - de course est une configuration incorrecte. -\layout Description - -Position\SpecialChar ~ -du\SpecialChar ~ -contact\SpecialChar ~ -d'origine\SpecialChar ~ -machine Position laquelle le contact d'origine - machine est activ ou relch pendant la procdure de prise d'origine machine. - Ces entres et les deux suivantes, n'apparaissent que si les contacts d'origine - ont t slectionns dans le rglage des broches du port parallle. -\layout Description - -Vitesse\SpecialChar ~ -de\SpecialChar ~ -recherche\SpecialChar ~ -de\SpecialChar ~ -l'origine Vitesse utilise pendant le dplacement vers - le contact d'origine machine. - Si le contact est proche d'une limite de dplacement de la table, cette - vitesse doit tre suffisamment basse pour permettre de dclrer et de - s'arrter avant d'atteindre la bute mcanique. - Si le contact est ferm par la came sur une faible longueur de dplacement - (au lieu d'tre ferm depuis son point de fermeture jusqu'au bout de le - course), cette vitesse doit tre rgle pour permettre la dclration - et l'arrt, avant que le contact ne soit dpass et ne s'ouvre nouveau. - La prise d'origine machine doit toujours commencer du mme ct du contact. -\newline -Si la machine se dplace dans la mauvaise direction au dbut de la procdure - de prise d'origine machine, rendez ngative la valeur de -\series bold -Vitesse de recherche de l'origine -\series default -. -\layout Description - -Dgagement\SpecialChar ~ -du\SpecialChar ~ -contact\SpecialChar ~ -d'origine Choisissez -\begin_inset Quotes fld -\end_inset - -Identique -\begin_inset Quotes frd -\end_inset - - pour que la machine reparte en arrire pour dgager le contact, puis revienne - de nouveau vers lui trs petite vitesse. - La seconde fois que le contact se ferme, la position de l'origine machine - est acquise. -\newline -Choisissez -\begin_inset Quotes fld -\end_inset - -Opposition -\begin_inset Quotes frd -\end_inset - - pour que la machine reparte en arrire trs petite vitesse jusqu'au dgagemen -t du contact. - Quand le contact s'ouvre, la position de l'origine machine est acquise. -\layout Description - -Temps\SpecialChar ~ -pour\SpecialChar ~ -acclrer\SpecialChar ~ -\SpecialChar ~ -la\SpecialChar ~ -vitesse\SpecialChar ~ -maxi Temps calcul. -\layout Description - -Distance\SpecialChar ~ -pour\SpecialChar ~ -acclrer\SpecialChar ~ -\SpecialChar ~ -la\SpecialChar ~ -vitesse\SpecialChar ~ -maxi Distance calcule. -\layout Description - -Frquence\SpecialChar ~ -des\SpecialChar ~ -impulsions\SpecialChar ~ -\SpecialChar ~ -la\SpecialChar ~ -vitesse\SpecialChar ~ -maxi Informations calcules sur la base - des informations entres prcdemment. - Il faut rechercher la plus haute -\series bold -Frquence des impulsions la vitesse maxi -\series default - possible, elle dtermine la priode de base: -\series bold -BASE_PERIOD -\series default -. - Des valeurs suprieures 20000Hz peuvent toutefois provoquer des ralentissemen -ts importants de l'ordinateur, voir mme son bloquage (La plus grande frquence - utilisable variera d'un ordinateur un autre) -\layout Subsection - -Configuration de la broche -\begin_inset LatexCommand \label{sub:Page configuration de la broche} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Page configuration de la broche -\begin_inset LatexCommand \label{cap:Page Configuration de la broche} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/stepconf-spindle_fr.png - scale 50 - keepAspectRatio - BoundingBox 0bp 0bp 718bp 605bp - -\end_inset - - -\end_inset - - -\layout Standard - -Ces options ne sont accessibles que quand -\begin_inset Quotes fld -\end_inset - -PWM broche -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -Phase A codeur broche -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -index broche -\begin_inset Quotes frd -\end_inset - - sont configurs sur le -\series bold -brochage du port parallle -\series default -. -\layout Subsubsection - -Contrle de la vitesse de broche -\begin_inset LatexCommand \index{Contrle de la vitesse de broche} - -\end_inset - - -\begin_inset LatexCommand \label{sub:Controle de la vitesse de broche} - -\end_inset - - -\layout Standard - -Si -\begin_inset Quotes fld -\end_inset - -PWM broche -\begin_inset Quotes frd -\end_inset - - apparat dans le rglage du port parallle, les informations suivantes - doivent tre renseignes: -\layout Description - -Frquence\SpecialChar ~ -PWM La frquence porteuse du signal PWM (modulation de largeur - d'impulsions) du moteur de broche. - Entrez -\begin_inset Quotes fld -\end_inset - -0 -\begin_inset Quotes frd -\end_inset - - pour le mode PDM (modulation de densit d'impulsions), qui est trs utile - pour gnrer une tension de consigne analogique. - Reportez-vous la documentation de votre variateur de broche pour la valeur - approprie. - -\layout Description - -Vitesse\SpecialChar ~ -1\SpecialChar ~ -et\SpecialChar ~ -2,\SpecialChar ~ -PWM\SpecialChar ~ -1\SpecialChar ~ -et\SpecialChar ~ -2 Le fichier de configuration gnr utilise une simple - relation linaire pour dterminer la valeur PWM correspondante une vitesse - de rotation. - Si les valeurs ne sont pas connues, elles peuvent tre dtermines. - Voir la section -\begin_inset Quotes fld -\end_inset - -Ajuster la vitesse de broche -\begin_inset Quotes frd -\end_inset - - ci-dessous. - -\layout Subsubsection - -Mouvement avec broche synchronise (filetage sur tour, taraudage rigide) -\begin_inset LatexCommand \label{sub:Mouvement avec broche synchronisee} - -\end_inset - - -\begin_inset LatexCommand \index{Mouvement avec broche synchronise} - -\end_inset - - -\layout Standard - -Lorsque les signaux appropris, provenants d'un codeur de broche, sont connects - au port parallle, EMC peut tre utilis pour le filetage avec broche synchroni -se sur un tour. - Ces signaux sont: -\layout Description - -Index\SpecialChar ~ -codeur\SpecialChar ~ -broche galement appel -\begin_inset Quotes fld -\end_inset - -PPR broche -\begin_inset Quotes frd -\end_inset - -, c'est une impulsion produite chaque tour de broche. -\layout Description - -Phase\SpecialChar ~ -A\SpecialChar ~ -codeur\SpecialChar ~ -broche C'est une suite d'impulsions carres gnres sur la - voie A du codeur pendant la rotation de la broche. - La quantit d'impulsions pour un tour correspond la rsolution du codeur. -\layout Description - -Phase\SpecialChar ~ -B\SpecialChar ~ -codeur\SpecialChar ~ -broche (optionnel) C'est une seconde suite d'impulsions, gnres - sur la voie B du codeur et dcales par rapport celle de la voie A. - L'utilisation de ces deux signaux permet d'accrotre l'immunit au bruit - et la rsolution. -\layout Standard - -Si -\begin_inset Quotes fld -\end_inset - -Phase A codeur broche -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Index broche -\begin_inset Quotes frd -\end_inset - - apparaissent dans le rglage des broches du port, l'information suivante - doit tre renseigne: -\layout Description - -Cycles\SpecialChar ~ -par\SpecialChar ~ -tour Le nombre d'impulsions par tour sur la pin -\series bold -Phase -\series default -\SpecialChar ~ - -\series bold -A -\series default -\SpecialChar ~ - -\series bold -codeur -\series default -\SpecialChar ~ - -\series bold -broche. -\layout Description - - -\begin_inset Note -collapsed false - -\layout Description - -Vitesse\SpecialChar ~ -maximum\SpecialChar ~ -en\SpecialChar ~ -filetage: La vitesse de broche maximum utilisable en filetage. - Pour un moteur de broche rapide ou un codeur ayant une rsolution leve -\series bold -, -\series default - une valeur basse de -\series bold -BASE_PERIOD est requise. -\end_inset - - -\layout Subsection - -Configuration machine complte -\begin_inset LatexCommand \label{sub:Configuration machine complete} - -\end_inset - - -\layout Standard - -Cliquez -\begin_inset Quotes eld -\end_inset - -Appliquer -\begin_inset Quotes erd -\end_inset - - pour enregistrer les fichiers de configuration. - Ensuite, vous pourrez relancer ce programme et ajuster les rglages entrs - prcdemment. -\layout Section - -Dfinir la vitesse et l'acclration -\begin_inset LatexCommand \label{sec:Definir la vitesse et l'acceleration} - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Fentre du test d'axe -\begin_inset LatexCommand \label{cap:Fenetre du test d'axe} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/stepconf-test_fr.png - -\end_inset - - -\end_inset - - -\layout Standard - -Avec Stepconf il est facile de dfinir certaines valeurs comme celles de - l'acclration et de la vitesse. - Entrez d'abord les lments corrects pour les -\series bold -Pas moteur -\series default -, les -\series bold -Micropas -\series default -, les -\series bold -Poulies -\series default -, et le -\series bold -pas de vis -\series default -. - Puis entrez une valeur aproximative de -\series bold -Vitesse -\series default -. - -\series bold -Enfin, -\series default - cliquez sur -\series bold -Tester cet axe -\series default -. -\layout Subsection - -Dfinir la vitesse maximum -\begin_inset LatexCommand \label{sub:Definir la vitesse maximum} - -\end_inset - - -\layout Standard - -Commencez avec une faible valeur d'acclration (par exemple, 2 in/s^2 ou - 50mm/s^2) et la vitesse que vous esprez atteindre. - l'aide des boutons de jog, positionnez l'axe vers son centre. - Soyez prudent, car avec peu d'acclration, l'axe peut prendre une surprenante - longueur pour ralentir et s'arrter. - -\layout Standard - -Aprs avoir mesur les longueurs de dplacement disponibles dans chaque - direction, entrez la moyenne de ces distances dans la zone test, en gardant - l'esprit que, aprs un dcrochage le moteur peut repartir dans la direction - inattendue. - Cliquez sur -\family typewriter -\series bold -Envoi -\family default -\series default -. - La machine va commencer faire des allers et retours sur cet axe. - Dans cet essai, il est important que la combinaison entre l'acclration - et la zone de test, permette la machine d'atteindre la vitesse slectionne - et de s'y dplacer sur, au moins, une courte distance (plus cette distance - sera longue, meilleur sera le test). - La formule: distance=0.5*vitesse*vitesse/acclration donne la distance - minimum requise avec les vitesse et acclration spcifies. - Il est souhaitable de pousser sur la table dans la direction inverse du - mouvement pour simuler les efforts de coupe. - Si la machine cale, rduire la vitesse et relancer le test. - -\layout Standard - -Si la machine ne prsente aucun dcrochage, cliquez sur le bouton -\family typewriter -\series bold -Excuter -\family default -\series default -. - L'axe revient alors sa position de dpart. - Si cette position est incorrecte, c'est que l'axe a cal ou a perdu des - pas au cours de l'essai. - Rduire la vitesse et relancer le test. - Si la machine ne se dplace pas, cale, ou perd des pas mme faible vitesse, - vrifiez les lments suivants: -\layout Itemize - -Timings des impulsions de pas corrects -\layout Itemize - -Brochage des sorties correct, inclus les cases -\family typewriter -\series bold -Inverser -\family default -\series default - des pins du port -\layout Itemize - -Cbles blinds et correctement raccords -\layout Itemize - -Problme physique avec le moteur, le couplage du moteur, l'crou de la vis, - point dur des glissires, etc. -\layout Standard - -Une fois que vous avez trouv une vitesse laquelle l'axe ne perd plus - de pas et laquelle les mesures sont exactes pendant le test, rduisez - la de 10% et utilisez la comme vitesse maximum pour cet axe. - -\layout Subsection - -Dfinir l'acclration maximum -\begin_inset LatexCommand \label{sub:Definir l'acceleration maximum} - -\end_inset - - -\layout Standard - -Avec la vitesse maximale que vous avez trouv l'tape prcdente, entrez - une valeur d'acclration approximative. - Procdez comme pour la vitesse, en ajustant la valeur d'acclration en - plus ou en moins selon le rsultat. - Dans cet essai, il est important que la combinaison de l'acclration et - de la zone test permette la machine d'atteindre la vitesse slectionne. - Une fois que vous avez trouv une valeur laquelle l'axe ne perd plus - de pas pendant le test, la rduire de 10% et l'utiliser comme acclration - maximale pour cet axe. -\layout Section - -Dfinir la calibration de la broche -\begin_inset LatexCommand \label{sec:Definir la calibration de la broche} - -\end_inset - - -\layout Standard - -Entrez les valeurs suivantes dans la page de configuration de la broche: -\layout Standard - - -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\layout Standard - -Vitesse 1: -\end_inset - - -\begin_inset Text - -\layout Standard - - -\series bold -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM 1: -\end_inset - - -\begin_inset Text - -\layout Standard - - -\series bold -0 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Vitesse 2: -\end_inset - - -\begin_inset Text - -\layout Standard - - -\series bold -1000 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM 1: -\end_inset - - -\begin_inset Text - -\layout Standard - - -\series bold -1 -\end_inset - - - - -\end_inset - - -\layout Standard - -Finissez les tapes suivantes de la configuration, puis lancez EMC2 avec - votre configuration. - Mettez la machine en marche et allez dans l'onglet -\family typewriter -\series bold -Donnes manuelles -\family default -\series default -. - dmarrez le moteur de broche en entrant: -\family typewriter -\series bold -M3 S100 -\family default -\series default -. - Modifiez la vitesse de broche avec diffrentes valeurs comme: -\family typewriter -\series bold -S800 -\family default -\series default -. - Les valeurs permises vont de 1 1000. -\layout Standard - -Pour deux diffrentes valeurs de -\family typewriter -\series bold -S -\family default -\series default -xxx, mesurez la vitesse de rotation relle de la broche en tours/mn. - Enregistrez ces vitesses relles de la broche. - Relancez Stepconf. - Pour les -\family typewriter -\series bold -Vitesses -\family default -\series default -, entrez les valeurs relles mesures et pour les -\family typewriter -\series bold -PWM -\family default -\series default -, entrez la valeur -\family typewriter -\series bold -S -\family default -\series default -xxx divise par 1000. -\layout Standard - -Parce que la plupart des interfaces ne sont pas linaires dans leurs courbes - de rponse, il est prfrable de: -\layout Itemize - -S'assurer que les deux points de mesure des vitesses en tr/mn ne soient - pas trop rapprochs -\layout Itemize - -S'assurer que les deux vitesses utilises sont dans la gamme des vitesses - utilises gnralement par la machine. -\layout Standard - -Par exemple, si votre broche tourne entre 0tr/mn et 8000tr/mn, mais que - vous l'utilisez gnralement entre 400tr/mn et 4000tr/mn, prenez alors - des valeurs qui donneront 1600tr/mn et 2800tr/mn. -\layout Section - -Fin de course des axes, position de l'origine machine et emplacements des - contacts d'origine machine -\begin_inset LatexCommand \label{sec:Fin de course, origine machine} - -\end_inset - - -\layout Standard - -La course de chaque axe est bien dlimite. - Les extrmits physiques d'une course sont appeles -\series bold -les butes mcanique -\series default -s. -\layout Standard - -Avant la -\series bold -bute mcanique -\series default - se trouve un -\series bold -contact de fin de course -\series default -. - Si ce contact est rencontr pendant les oprations normales, EMC coupe - la puissance du moteur. - La distance entre -\series bold -le fin de course -\series default - et -\series bold -la bute mcanique -\series default - doit tre suffisante pour permettre au moteur, dont la puissance a t - coupe, de s'arrter malgr l'inertie du mobile. - -\layout Standard - -Avant le -\series bold -contact de fin de course -\series default - se trouve une -\series bold -limite soft -\series default -. - Cette limite logicielle est introduite aprs la prise d'origine machine. - Si une commande manuelle ou un programme gcode dpasse cette limite, ils - ne seront pas xcuts. - Si un mouvement en jog cherche dpasser la limite logicielle, il sera - interrompu sur cette limite. -\layout Standard - -Le -\series bold -contact d'origine machine -\series default - peut tre positionn n'importe o, le long d'une course (entre les butes - mcaniques). - -\layout Standard - -Si aucun mcanisme externe ne dsactive la puissance moteur quand un contact - de limite est enfonc, un des contacts de fin de course peut tre utilis - comme contact d'origine machine. -\layout Standard - -La -\series bold -position zro -\series default - est la position correspondante au 0 de l'axe dans le systme de coordonnes - machine. - Habituellement la -\series bold -position zro -\series default - doit se trouver entre les deux -\series bold -limites soft -\series default -. - Sur les tours, le mode vitesse de surface constante requiert que la coordonne - -\series bold -X=0 -\series default - corresponde au centre de rotation de la broche quand aucun correcteur d'outil - n'est actif. -\layout Standard - -La -\series bold -position de l'origine -\series default - est la position, situe le long de l'axe, sur laquelle le mobile sera dplac - la fin de la squence de prise d'origine. - Cette position doit se situer entre les -\series bold -limites soft -\series default -. - En particulier, la -\series bold -position de l'origine -\series default - ne doit jamais tre gale une -\series bold -limite soft -\series default -. -\layout Standard - - -\begin_inset Note -collapsed false - -\layout Standard - -a diagram of all these limits would be nice -\end_inset - - -\layout Subsection - -Travail sans contact de fin de course -\begin_inset LatexCommand \label{sub:Travail sans contact de fin de course} - -\end_inset - - -\layout Standard - -Une machine peut tre utilise sans contact de fin de course. - Dans ce cas, seules les -\series bold -limites soft -\series default - empcheront la machine d'atteindre les -\series bold -butes mcaniques -\series default -. - Les -\series bold -limites soft -\series default - n'oprent qu'aprs que la POM soit faite sur la machine. - Puisqu'il n'y a pas de contact, la machine doit tre dplace la main - et l'oeil, sa position d'origine machine avant de presser le bouton - -\family typewriter -\series bold -POM des axes -\family default -\series default - ou le sous-menu -\family typewriter -\series bold -Machine->Prises d'origines machine->POM de l'axe -\family default -\series default -. -\layout Subsection - -Travail sans contact d'origine machine -\begin_inset LatexCommand \label{sub:Travail sans contact d'origine machine} - -\end_inset - - -\layout Standard - -Un machine peut tre utilise sans contact d'origine machine. - Si la machine dispose de contacts de fin de courses, mais pas de contact - d'origine machine, il est prfrable d'utiliser le contact de fin de course - comme contact d'origine machine (exemple, choisissez -\series bold -Limite mini + origine X -\series default - dans le rglage du port). - Si la machine ne dispose d'aucun contact, ou que le contact de fin de course - n'est pas utilisable pour une autre raison, alors la prise d'origine machine - peut tre ralise la main. - Faire la prise d'origine la main n'est certes pas aussi reproductible - que sur des contacts, mais elle permet tout de mme aux -\series bold -limites soft -\series default - d'tre utilisables. -\layout Section - -Test de latence -\begin_inset LatexCommand \label{sec:Test de latence} - -\end_inset - - -\layout Standard - -Faire gnrer les impulsions de pas au logiciel prsente un grand avantage, - c'est gratuit. - Quasiment chaque PC dispose d'un port parallle capable de sortir sur ses - broches les signaux de pas gnrs par le logiciel. - Cependant, les gnrateurs d'impulsions logiciels ont aussi quelques dsavantag -es: -\layout Itemize - -Leur frquence maximum est limite -\layout Itemize - -Les trains d'impulsions gnrs sont irrguliers -\layout Itemize - -Ils chargent le processeur -\layout Standard - -Le temps de latence est le temps ncessaire au PC pour arrter ce qu'il - est en train de faire pour rpondre une requte externe. - Dans notre cas, la requte est le -\begin_inset Quotes fld -\end_inset - -battement de coeur -\begin_inset Quotes frd -\end_inset - - priodique qui sert de rfrence pour les impulsions de pas. - Plus la latence est basse, plus le coeur pourra battre vite et donc, plus - rapides et plus douces seront les impulsions de pas. -\layout Standard - -Le temps de latence est beaucoup plus important que la vitesse du P. - Un vieux Pentium II qui rpond aux interruptions avec 10 microsecondes - entre chacune peut donner de meilleurs rsultats qu'un rapide P4 en Hyperthread -ing. -\layout Standard - -Le CPU n'est 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 ce qu'il en est sur votre PC est de lancer - un -\family typewriter -\series bold -latency test -\family default -\series default - de HAL. -\layout Standard - -Pour excuter le test, il suffit d'ouvrir une console et de taper: -\family typewriter -\series bold -latency-test -\family default -\series default - . - Vous devriez voir quelque chose comme ceci: -\layout Standard -\align center - -\begin_inset Graphics - filename images/latency.png - -\end_inset - - -\layout Standard - -Pendant que le test est en cours d'excution, il faut -\begin_inset Quotes fld -\end_inset - -abuser -\begin_inset Quotes frd -\end_inset - - de l'ordinateur. - Dplacez les fentres sur l'cran. - Connectez vous l'Internet. - Copiez quelques gros fichiers sur le disque dur. - Jouer de la musique. - Lancez une dmo OpenGL telle que -\family typewriter -\series bold -glxgears -\family default -\series default -. - L'ide est de charger le PC au maximum pour que le temps de latence soit - mesur dans le pire des cas. - -\family typewriter -\series bold -Ne pas excuter EMC2 ou Stepconf pendant que latency-test est en cours d'excuti -on. -\layout Standard - -Le chiffre -\family typewriter -\series bold -max jitter -\family default -\series default - dans cet exemple est de 17894 nanosecondes, soit 17.9 microsecondes. - Enregistrer ce chiffre et entrez le dans Stepconf quand il le demande. -\layout Standard - -Dans cet exemple de test de latence il n'a fallu que quelques secondes pour - afficher cette valeur. - Vous devrez peut tre lancer le test 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 (voir -\begin_inset LatexCommand \htmlurl[Fixing Dapper SMI Issues]{http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?FixingDapperSMIIssues} - -\end_inset - -) -\layout Standard - -Alors, que signifient les rsultats ? Si le rsultat de votre Max Jitter - est en dessous d'environ 15-20 microsecondes (15000-20000 nanosecondes), - l'ordinateur pourra donner d'excellents rsultats avec la gnration logicielle - des pas. - Si le temps de latence est plus de 30-50 microsecondes, vous aurez de - bons rsultats, mais la vitesse maximum sera un peu dcevante, spcialement - si vous utilisez des micropas ou si le pas de votre vis est fin. - Si les rsultats sont de 100uS ou plus (100,000 nanosecondes), alors le - PC n'est 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. -\layout Standard - -Notez que si vous obtenez une latence leve, il peut tre possible de l'amlior -er. - Un PC avait une trs mauvaise latence (plusieurs millisecondes) en utilisant - la carte graphique interne. - Un carte graphique Matrox d'occasion $5US a rsolu le problme. - EMC n'exige pas de matriel de pointe. -\layout Section - -Cblage des contacts de fin de course et d'origine machine -\begin_inset LatexCommand \label{sec:Contacts de fin de course et d'origine machine} - -\end_inset - - -\layout Standard - -Le cblage idal des contacts externes serait une entre par contact. - Toutefois, un seul port parallle d'ordinateur offre un total de 5 entres, - alors qu'il n'y a pas moins de 9 contacts sur une machine 3 axes. - Au lieu de cela, plusieurs contacts seront cbls ensemble de diverses - faons afin de ncessiter un plus petit nombre d'entres. - -\layout Standard - -Les figures ci-dessous montrent l'ide gnrale du cblage de plusieurs - contacts une seule broche d'entre. - Dans chaque cas, lorsqu'un contact est actionn, la valeur vue sur l'entre - va passer d'une logique -\family typewriter -\series bold -haute -\family default -\series default - une logique -\family typewriter -\series bold -basse -\family default -\series default -. - Cependant, EMC s'attend une valeur -\family typewriter -\series bold -VRAIE -\family default -\series default - quand un contact est ferm, de sorte que les cases -\family typewriter -\series bold -Inverser -\family default -\series default - correspondantes devront tre coches sur la page de rglage du port parallle. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename images/switch-nc-series.eps - width 50page% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{cap:Cablage NC} - -\end_inset - -Cblage de contacts NC en srie (schma simplifi) -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename images/switch-no-parallel.eps - width 50page% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{cap:Cablage NO} - -\end_inset - -Cblage de contacts NO en parallle (schma simplifi) -\end_inset - - -\layout Standard - -Les combinaisons suivantes sont permises dans Stepconf: -\layout Itemize - -Les contacts d'origine machine de tous les axes combins -\layout Itemize - -Les contacts de fin de course de tous les axes combins -\layout Itemize - -Les contacts de fin de course d'un seul axe combins -\layout Itemize - -Les contacts de fin de course et le contact d'origine machine d'un seul - axe combins -\layout Itemize - -Un seul contact de fin de course et le contact d'origine machine d'un seul - axe combins -\layout Standard - -Les deux dernires combinaisons sont galement appropries quand le type - -\family typewriter -\series bold -contact + origine -\family default -\series default - est utilis. -\the_end diff --git a/docs/src/config/stepper.lyx b/docs/src/config/stepper.lyx deleted file mode 100644 index 689671b30..000000000 --- a/docs/src/config/stepper.lyx +++ /dev/null @@ -1,555 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Basic Configuration -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Introduction" - -\end_inset - -Introduction -\end_layout - -\begin_layout Standard -The preferred way to set up a standard stepper machine is with the Step - Configuration Wizard. - See the Getting Started Guide. -\end_layout - -\begin_layout Standard -This chapter describes some of the more common settings for manually setting - up a stepper based system. - Because of the various possibilities of configuring EMC2, it is very hard - to document them all, and keep this document relatively short. - -\end_layout - -\begin_layout Standard -The most common EMC2 usage is for stepper based systems. - These systems are using stepper motors with drives that accept step & direction - signals. - -\end_layout - -\begin_layout Standard -It is one of the simpler setups, because the motors run open-loop (no feedback - comes back from the motors), yet the system needs to be configured properly - so the motors don't stall or lose steps. -\end_layout - -\begin_layout Standard -Most of this chapter is based on the sample config released along with EMC2. - The config is called stepper -\begin_inset LatexCommand index -name "stepper" - -\end_inset - -, and usually it is found in -\family typewriter -/etc/emc2/sample-configs/stepper -\family default -. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Maximum-step-rate" - -\end_inset - -Maximum step rate -\begin_inset LatexCommand index -name "step rate" - -\end_inset - - -\end_layout - -\begin_layout Standard -With software step generation, the maximum step rate is one step per two - BASE_PERIODs for step-and-direction output. - The maximum requested step rate is the product of an axis' MAX_VELOCITY - and its INPUT_SCALE. - If the requested step rate is not attainable, following errors will occur, - particularly during fast jogs and G0 moves. -\end_layout - -\begin_layout Standard -If your stepper driver can accept quadrature input, use this mode. - With a quadrature signal, one step is possible for each BASE_PERIOD, doubling - the maximum step rate. -\end_layout - -\begin_layout Standard -The other remedies are to decrease one or more of: the BASE_PERIOD (setting - this too low will cause the machine to become unresponsive or even lock - up), the INPUT_SCALE (if you can select different step sizes on your stepper - driver, change pulley ratios, or leadscrew pitch), or the MAX_VELOCITY - and STEPGEN_MAXVEL. -\end_layout - -\begin_layout Standard -If no valid combination of BASE_PERIOD, INPUT_SCALE, and MAX_VELOCITY is - acceptable, then consider using hardware step generation (such as with - the emc2-supported Universal Stepper Controller, Mesa cards, and others.) -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Pinout" - -\end_inset - -Pinout -\begin_inset LatexCommand index -name "pinout" - -\end_inset - - -\end_layout - -\begin_layout Standard -One of the major flaws in EMC was that you couldn't specify the pinout without - recompiling the source code. - EMC2 is far more flexible, and now (thanks to the Hardware Abstraction - Layer) you can easily specify which signal goes where. - See the HAL manual for more detailed information on HAL. -\end_layout - -\begin_layout Standard -As it is described in the HAL Introduction and tutorial, we have signals, - pins and parameters inside the HAL. - -\end_layout - -\begin_layout Standard -The ones relevant for our pinout are -\begin_inset Foot -status collapsed - -\begin_layout Standard -Note: we are only presenting one axis to keep it short, all others are similar. -\end_layout - -\end_inset - -: -\end_layout - -\begin_layout LyX-Code -signals: Xstep, Xdir & Xen -\newline -pins: parport.0.pin-XX-out & parport.0.pin-XX-in -\begin_inset Foot -status collapsed - -\begin_layout Standard -Refer to section -\begin_inset LatexCommand ref -reference "sec:Parport" - -\end_inset - - for additional information -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Depending on what you have chosen in your .ini file you are using either - standard_pinout.hal or xylotex_pinout.hal. - These are two files that instruct the HAL how to link the various signals - & pins. - Further on we'll investigate the standard_pinout.hal. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:standard_pinout.hal" - -\end_inset - -standard_pinout.hal -\begin_inset LatexCommand index -name "standard pinout" - -\end_inset - - -\end_layout - -\begin_layout Standard -This file contains several HAL commands, and usually looks like this: -\end_layout - -\begin_layout LyX-Code -\begin_inset Include \verbatiminput{../../../configs/stepper/standard_pinout.hal} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -The files starting with '#' are comments, and their only purpose is to guide - the reader through the file. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:Overview-standard_pinout.hal" - -\end_inset - -Overview of the standard_pinout.hal -\end_layout - -\begin_layout Standard -There are a couple of operations that get executed when the standard_pinout.hal - gets executed / interpreted: -\end_layout - -\begin_layout Enumerate -The Parport driver gets loaded (see -\begin_inset LatexCommand ref -reference "sec:Parport" - -\end_inset - - for details) -\end_layout - -\begin_layout Enumerate -The read & write functions of the parport driver get assigned to the base - thread -\begin_inset Foot -status collapsed - -\begin_layout Standard -the fastest thread in the EMC2 setup, usually the code gets executed every - few microseconds -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Enumerate -The step & direction signals for axes X,Y,Z get linked to pins on the parport -\end_layout - -\begin_layout Enumerate -Further IO signals get connected (estop loopback, toolchanger loopback) -\end_layout - -\begin_layout Enumerate -A spindle-on signal gets defined and linked to a parport pin -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:Changing-standard_pinout.hal" - -\end_inset - -Changing the standard_pinout.hal -\end_layout - -\begin_layout Standard -If you want to change the standard_pinout.hal file, all you need is a text - editor. - Open the file and locate the parts you want to change. - -\end_layout - -\begin_layout Standard -If you want for example to change the pin for the X-axis Step & Directions - signals, all you need to do is to change the number in the 'parport.0.pin-XX-out' - name: -\end_layout - -\begin_layout LyX-Code -net Xstep parport.0.pin-03-out -\newline -net Xdir parport.0.pin-02-out -\end_layout - -\begin_layout Standard -can be changed to: -\end_layout - -\begin_layout LyX-Code -net Xstep parport.0.pin-02-out -\newline -net Xdir parport.0.pin-03-out -\end_layout - -\begin_layout Standard -or basically any other numbers you like. - -\end_layout - -\begin_layout Standard -Hint: make sure you don't have more than one signal connected to the same - pin. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:Changing-the-polarity" - -\end_inset - -Changing the polarity of a signal -\begin_inset LatexCommand index -name "signal polarity" - -\end_inset - - -\end_layout - -\begin_layout Standard -If external hardware expects an -\begin_inset Quotes eld -\end_inset - -active low -\begin_inset Quotes erd -\end_inset - - signal, set the corresponding -\family typewriter --invert -\family default - parameter. - For instance, to invert the spindle control signal: -\end_layout - -\begin_layout LyX-Code -setp parport.0.pin-09-invert TRUE -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:PWM-Spindle-Speed" - -\end_inset - -Adding PWM Spindle Speed Control -\begin_inset LatexCommand index -name "spindle speed control" - -\end_inset - - -\end_layout - -\begin_layout Standard -If your spindle can be controlled by a PWM signal, use the -\family typewriter -pwmgen -\family default - component to create the signal: -\end_layout - -\begin_layout LyX-Code -loadrt pwmgen output_type=0 -\newline -addf pwmgen.update servo-thread -\newline -addf pwmgen.make-pulses - base-thread -\newline -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -\newline -net - spindle-on motion.spindle-on => pwmgen.0.enable -\newline -net spindle-pwm pwmgen.0.pwm - => parport.0.pin-09-out -\newline -setp pwmgen.0.scale 1800 # Change to your spindle's - top speed in RPM -\end_layout - -\begin_layout Standard -This assumes that the spindle controller's response to PWM is simple: 0% - PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. - If there is a minimum PWM required to get the spindle to turn, follow the - example in the -\emph on -nist-lathe -\emph default - sample configuration to use a -\family typewriter -scale -\family default - component. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:Adding-enable-signal" - -\end_inset - -Adding an enable signal -\begin_inset LatexCommand index -name "enable signal" - -\end_inset - - -\end_layout - -\begin_layout Standard -Some amplifiers (drives) require an enable signal before they accept and - command movement of the motors. - For this reason there are already defined signals called 'Xen', 'Yen', - 'Zen'. -\end_layout - -\begin_layout Standard -To connect them use the following example: -\end_layout - -\begin_layout LyX-Code -net Xen parport.0.pin-08-out -\end_layout - -\begin_layout Standard -You can either have one single pin that enables all drives; or several, - depending on the setup you have. - Note, however, that usually when one axis faults, all the other drives - will be disabled as well, so having only one enable signal / pin for all - drives is a common practice. -\end_layout - -\begin_layout Subsection -Adding an external ESTOP -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - - button -\end_layout - -\begin_layout Standard -As you can see in -\begin_inset LatexCommand ref -reference "sub:standard_pinout.hal" - -\end_inset - - by default the stepper configuration assumes no external ESTOP button. - -\begin_inset Foot -status collapsed - -\begin_layout Standard -An extensive explanation of hooking up ESTOP circuitry is explained in the - wiki.linuxcnc.org and in the Integrator Manual -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -To add a simple external button you need to replace the line: -\end_layout - -\begin_layout LyX-Code -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout LyX-Code -net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in -\end_layout - -\begin_layout Standard -This assumes an ESTOP switch connected to pin 01 on the parport. - As long as the switch will stay pushed -\begin_inset Foot -status collapsed - -\begin_layout Standard -make sure you use a maintained switch for ESTOP. -\end_layout - -\end_inset - -, EMC2 will be in the ESTOP state. - When the external button gets released EMC2 will imediately switch to the - ESTOP-RESET state, and all you need to do is switch to Machine On -\begin_inset LatexCommand index -name "machine on" - -\end_inset - - and you'll be able to continue your work with EMC2. -\end_layout - -\end_body -\end_document diff --git a/docs/src/config/stepper_fr.lyx b/docs/src/config/stepper_fr.lyx deleted file mode 100644 index 5c1a666d8..000000000 --- a/docs/src/config/stepper_fr.lyx +++ /dev/null @@ -1,596 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Les bases de la configuration pour systme pas/direction -\begin_inset Quotes eld -\end_inset - -dir/step -\begin_inset Quotes erd -\end_inset - - -\layout Section - - -\begin_inset LatexCommand \label{sec:Introduction} - -\end_inset - -Introduction -\layout Standard - -Ce chapitre dcrit quelques uns des rglages les plus frquents, sur lesquels - l'utilisateur aura agir lors de la mise au point d'EMC2. - En raison de l'adaptabilit d'EMC2, il serait trs difficile de les documenter - tous en gardant ce document relativement concis. -\layout Standard - -Le systme rencontr le plus frquemment chez les utilisateurs d'EMC2 est - un systme moteurs pas pas. - Les interfaces de pilotage de ces moteurs recoivent d'EMC2 des signaux - de pas et de direction. - -\layout Standard - -C'est le systme le plus simple mettre en oeuvre parce que les moteurs - fonctionnent en boucle ouverte (pas d'information de retour des moteurs), - le systme ncessite donc d'tre configur correctement pour que les moteurs - ne perdent pas de pas et ne calent pas. -\layout Standard - -Ce chapitre s'appuie sur la configuration fournie d'origine avec EMC2 appele - -\begin_inset Quotes fld -\end_inset - -stepper -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{stepper} - -\end_inset - - et qui se trouve habituellement dans -\family typewriter -/etc/emc2/sample-configs/stepper -\family default -. -\layout Section - - -\begin_inset LatexCommand \label{sec:Maximum-step-rate} - -\end_inset - -Frquence de pas maximum -\begin_inset LatexCommand \index{Frequence de pas maximum} - -\end_inset - - -\layout Standard - -Avec la gnration logicielle des pas la frquence maximale en sortie, pour - les impulsions de pas et de direction, est de une impulsion pour deux BASE_PERI -OD. - La frquence de pas maximale accessible pour un axe est le produit de MAX_VELOC -ITY et de INPUT_SCALE. - Si la frquence demande est excessive, une erreur de suivi se produira - (following error), particulirement pendant les jog rapides et les mouvements - en G0. -\layout Standard - -Si votre interface de pilotage des moteurs accepte des signaux d'entre - en quadrature, utilisez ce mode. - Avec un signal en quadrature, un pas est possible pour chaque BASE_PERIOD, - ce qui double la frquence maximum admissible. -\layout Standard - -Les autres remdes consistent diminuer une ou plusieurs variables: BASE_PERIOD - (une valeur trop faible peux causer un bloquage du PC), INPUT_SCALE (s'il - est possible sur l'interface de pilotage de slectionner une taille de - pas diffrente, de changer le rapport des poulies ou le pas de la vis mre), - ou enfin MAX_VELOCITY et STEPGEN_MAXVEL. -\layout Standard - -Si aucune combinaison entre BASE_PERIOD, INPUT_SCALE et MAX_VELOCITY n'est - fonctionnelle, il faut alors envisager un gnrateur de pas externe (parmis - les contrleurs de moteurs pas pas universels supports par EMC2) -\layout Section - - -\begin_inset LatexCommand \label{sec:Brochage} - -\end_inset - -Brochage -\begin_inset LatexCommand \index{brochage} - -\end_inset - - -\layout Standard - -EMC2 est trs flexible et grce la couche d'abstraction de HAL (Hardware - Abstraction Layer) il est facile de spcifier que tel signal ira sur telle - broche. - (voir la section -\begin_inset LatexCommand \ref{sec:Qu'est-ce que HAL} - -\end_inset - - pour des informations compltes propos de HAL -\begin_inset LatexCommand \index{HAL} - -\end_inset - -). -\layout Standard - -Comme dcrit dans l'introduction et la manuel de HAL, il comporte des composants - dont il fourni les signaux, les pins et les paramtres. - -\layout Standard - -Les premiers signaux et pin relatifs au brochage sont -\begin_inset Foot -collapsed true - -\layout Standard - -Note: pour rester concis, nous ne prsenterons qu'un seul axe, tous les - autres sont similaires. -\end_inset - -: -\layout LyX-Code - -signaux: Xstep, Xdir et Xen -\newline -pins: parport.0.pin-XX-out et parport.0.pin-XX-in -\begin_inset Foot -collapsed true - -\layout Standard - -Se rfrer la section -\begin_inset LatexCommand \ref{sec:Parport} - -\end_inset - - pour plus d'information -\end_inset - - -\layout Standard - -Pour configurer le fichier ini, il est possible de choisir entre les deux - brochages les plus frquents, devenus des standards de fait, le brochage - standard_pinout.hal ou le brochage xylotex_pinout.hal. - Ces deux fichiers indiquent HAL comment raccorder les diffrents signaux - aux diffrentes pins. - Dans la suite, nous nous concentrerons sur le brochage -\begin_inset Quotes fld -\end_inset - -standard_pinout.hal -\begin_inset Quotes frd -\end_inset - -. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:standard_pinout.hal} - -\end_inset - -Le fichier -\begin_inset Quotes fld -\end_inset - -standard_pinout.hal -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{standard pinout} - -\end_inset - - -\layout Standard - -Ce fichier contient certaines commandes de HAL et habituellement ressemble - cel: -\layout LyX-Code - - -\begin_inset Include \verbatiminput{../../../configs/stepper/standard_pinout.hal} -preview false - -\end_inset - - -\layout Standard - -Les lignes commenant par '#' sont des commentaires, aidant la lecture - du fichier. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Vue-d_ensemble-standard_pinout.hal} - -\end_inset - -Vue d'ensemble du fichier -\begin_inset Quotes fld -\end_inset - -standard_pinout.hal -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Voici les oprations qui sont excutes quand le fichier standard_pinout.hal - est lu par l'interprteur: -\layout Enumerate - -Le pilote du port parallle est charg (voir -\begin_inset LatexCommand \ref{sec:Parport} - -\end_inset - - pour plus de dtails) -\layout Enumerate - -Les fonctions de lecture/criture du pilote sont assigne au thread -\begin_inset Quotes fld -\end_inset - -Base thread -\begin_inset Quotes frd -\end_inset - - -\begin_inset Foot -collapsed true - -\layout Standard - -Le thread le plus rapide parmis les rglages d'EMC2, habituellement il n'y - a que quelques microsecondes entre les excutions de ce code. -\end_inset - - -\layout Enumerate - -Les signaux du gnrateur de pas et de direction des axes X,Y,Z... - sont raccords aux broches du port parallle -\layout Enumerate - -D'autres signaux d'entres/sorties sont connects (boucle d'arrt d'urgence, - boucle du changeur d'outil...) -\layout Enumerate - -Un signal de marche broche est dfini et raccord une broche du port parallle -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Modifier-standard_pinout.hal} - -\end_inset - -Modifier le fichier -\begin_inset Quotes fld -\end_inset - -standard_pinout.hal -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Pour modifier le fichier standard_pinout.hal, il suffit de l'ouvrir dans - un diteur de texte puis d'y localiser les parties modifier. - -\layout Standard - -Si vous voulez par exemple, modifier les broches de pas et de direction - de l'axe X, il vous suffit de modifier le numro de la variable nomme - 'parport.0.pin-XX-out': -\layout LyX-Code - -linksp Xstep parport.0.pin-03-out -\newline -linksp Xdir parport.0.pin-02-out -\layout Standard - -peut tre modifie pour devenir: -\layout LyX-Code - -linksp Xstep parport.0.pin-02-out -\newline -linksp Xdir parport.0.pin-03-out -\layout Standard - -ou de manire gnrale n'importe quel numro que vous souateriez. - -\layout Standard - -Attention: il faut tre certain de n'avoir qu'un seul signal connect - une broche. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Modifier-la-polarite} - -\end_inset - -Modifier la polarit d'un signal -\begin_inset LatexCommand \index{signal polarite} - -\end_inset - - -\layout Standard - -Si une interface attends un signal -\begin_inset Quotes eld -\end_inset - -actif bas -\begin_inset Quotes erd -\end_inset - -, ajouter une ligne avec le paramtre d'inversion de la sortie, -\family typewriter --invert -\family default -. - Par exemple, pour inverser le signal de rotation de la broche: -\layout LyX-Code - -setp parport.0.pin-09-invert TRUE -\layout Subsection - - -\begin_inset LatexCommand \label{sub:PWM-Vitesse-broche} - -\end_inset - -Ajouter le contrle de vitesse broche en PWM -\begin_inset LatexCommand \index{Vitesse broche PWM} - -\end_inset - - -\layout Standard - -Si votre vitesse de broche peut tre contrle par un signal de PWM, utilisez - le composant -\family typewriter - -\begin_inset Quotes fld -\end_inset - -pwmgen -\begin_inset Quotes frd -\end_inset - - -\family default - pour crer ce signal: -\layout LyX-Code - -loadrt pwmgen output_type=0 -\newline -addf pwmgen.update servo-thread -\newline -addf pwmgen.make-pulses base-thread -\newline -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -\newline -net spindle-on motion.spindle-on => pwmgen.0.enable -\newline -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -\newline -setp pwmgen.0.scale 1800 # Ajustez cette valeur la vitesse max de votre - broche en tr/mn -\layout Standard - -Ce qui donnera le fonctionnement suivant, pour un signal PWM : 0% donnera - une vitesse de 0tr/mn, 10% une vitesse de 180tr/mn, etc. - Si un signal PWM suprieur 0% est requis pour que la broche commence - tourner, suivez l'exemple du fichier de configuration -\emph on -nist-lathe -\emph default - qui utilise un composant d'chelle ( -\family typewriter -scale -\family default -). -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Ajouter-signal-enable} - -\end_inset - -Ajouter un signal de validation -\begin_inset Quotes fld -\end_inset - -enable -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{signal enable} - -\end_inset - - -\layout Standard - -Certains pilotes de moteurs requiert un signal de validation -\begin_inset Quotes fld -\end_inset - -enable -\begin_inset Quotes frd -\end_inset - - avant d'autoriser tout mouvement du moteur. - Pour cel des signaux sont dj dfinis et appels 'Xen', 'Yen', 'Zen'. -\layout Standard - -Pour les connecter vous pouvez utilisez l'exemple suivant: -\layout LyX-Code - -linksp Xen parport.0.pin-08-out -\layout Standard - -Il est possible d'avoir une seule pin de validation pour l'ensemble des - pilotes, ou plusieurs selon la configuration que vous voulez. - Notez toutefois qu'habituellement quand un axe est en dfaut, tous les - autres sont invalids aussi de sorte que, n'avoir qu'un seul signal/pin - de validation pour l'ensemble est parfaitement scuris. -\layout Subsection - -Ajouter un bouton d'Arrt d'Urgence externe -\begin_inset LatexCommand \index{A/U} - -\end_inset - - -\layout Standard - -Comme vous pouvez le voir la section -\begin_inset LatexCommand \ref{sub:standard_pinout.hal} - -\end_inset - -, par dfaut la configuration standard n'utilise pas de bouton d'Arrt d'Urgence - externe. - -\begin_inset Foot -collapsed true - -\layout Standard - -Une explication complte sur la manire de grer les circuiteries d'Arrt - d'Urgence se trouve sur le wiki.linuxcnc.org (en) et dans le Manuel de l'intgrat -eur -\end_inset - - -\layout Standard - -Pour ajouter un simple bouton externe (ou plusieurs en srie) vous devez - complter les lignes suivantes: -\layout LyX-Code - -# create a signal for the estop loopback -\layout LyX-Code - -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in -\layout Standard - -avec -\layout LyX-Code - -net estop-out <= iocontrol.0.user-enable-out -\layout LyX-Code - -net estop-ext <= parport.0.pin-01-in -\layout LyX-Code - -net estop-ext => iocontrol.0.emc-enable-in -\layout Standard - -Ce qui implique qu'un bouton d'Arrt d'Urgence soit connect sur la broche - 01 du port parallle. - Tant que le bouton est enfonc (le contact ouvert) -\begin_inset Foot -collapsed true - -\layout Standard - -Utiliser exclusivement des contacts normalement ferms pour les A/U. -\end_inset - -, EMC2 restera dans l'tat -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence -\begin_inset Quotes frd -\end_inset - - (ESTOP). - Quand le bouton externe sera relch, EMC2 passera immdiatement dans l'tat - -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence Relch -\begin_inset Quotes frd -\end_inset - - (ESTOP-RESET) vous pourrez ensuite mettre la machine en marche en pressant - le bouton -\begin_inset Quotes fld -\end_inset - -Marche machine -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{marche machine} - -\end_inset - - et vous tes alors prt continuer votre travail avec EMC2. -\the_end diff --git a/docs/src/drivers/AX5214H.lyx b/docs/src/drivers/AX5214H.lyx deleted file mode 100644 index 33294762b..000000000 --- a/docs/src/drivers/AX5214H.lyx +++ /dev/null @@ -1,147 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -AX5214H -\end_layout - -\begin_layout Standard -The Axiom Measurement & Control AX5214H is a 48 channel digital I/O board. - It plugs into an ISA bus, and resembles a pair of 8255 chips. - In fact it may be a pair of 8255 chips, but I'm not sure. - If/when someone starts a driver for an 8255 they should look at the ax5214 - code, much of the work is already done. -\end_layout - -\begin_layout Section -Installing -\end_layout - -\begin_layout Quote -loadrt hal_ax5214h cfg="" -\end_layout - -\begin_layout Standard -The config string consists of a hex port address, followed by an 8 character - string of "I" and "O" which sets groups of pins as inputs and outputs. - The first two character set the direction of the first two 8 bit blocks - of pins (0-7 and 8-15). - The next two set blocks of 4 pins (16-19 and 20-23). - The pattern then repeats, two more blocks of 8 bits (24-31 and 32-39) and - two blocks of 4 bits (40-43 and 44-47). - If more than one board is installed, the data for the second board follows - the first. - As an example, the string "0x220 IIIOIIOO 0x300 OIOOIOIO" installs drivers - for two boards. - The first board is at address 0x220, and has 36 inputs (0-19 and 24-39) - and 12 outputs (20-23 and 40-47). - The second board is at address 0x300, and has 20 inputs (8-15, 24-31, and - 40-43) and 28 outputs (0-7. - 16-23, 32-39, and 44-47). - Up to 8 boards may be used in one system. -\end_layout - -\begin_layout Section -Pins -\end_layout - -\begin_layout Itemize -(bit) ax5214..out- -- Drives a physical output pin. -\end_layout - -\begin_layout Itemize -(bit) ax5214..in- -- Tracks a physical input pin. -\end_layout - -\begin_layout Itemize -(bit) ax5214..in--not -- Tracks a physical input pin, inverted. -\end_layout - -\begin_layout Standard -For each pin, is the board number (starts at zero), and - is the I/O channel number (0 to 47). -\end_layout - -\begin_layout Standard -Note that the driver assumes active LOW signals. - This is so that modules such as OPTO-22 will work correctly (TRUE means - output ON, or input energized). - If the signals are being used directly without buffering or isolation the - inversion needs to be accounted for. - The in- HAL pin is TRUE if the physical pin is low (OPTO-22 module energized), - and FALSE if the physical pin is high (OPTO-22 module off). - The in--not HAL pin is inverted -- it is FALSE if the physical - pin is low (OPTO-22 module energized). - By connecting a signal to one or the other, the user can determine the - state of the input. -\end_layout - -\begin_layout Section -Parameters -\end_layout - -\begin_layout Itemize -(bit) ax5214..out--invert -- Inverts an output pin. -\end_layout - -\begin_layout Standard -The -invert parameter determines whether an output pin is active high or - active low. - If -invert is FALSE, setting the HAL out- pin TRUE drives the physical - pin low, turning ON an attached OPTO-22 module, and FALSE drives it high, - turning OFF the OPTO-22 module. - If -invert is TRUE, then setting the HAL out- pin TRUE will drive the physical - pin high and turn the module OFF. -\end_layout - -\begin_layout Section -Functions -\end_layout - -\begin_layout Itemize -(funct) ax5214..read -- Reads all digital inputs on one board. -\end_layout - -\begin_layout Itemize -(funct) ax5214..write -- Writes all digital outputs on one board. -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/GS2.lyx b/docs/src/drivers/GS2.lyx deleted file mode 100644 index 398f22f9f..000000000 --- a/docs/src/drivers/GS2.lyx +++ /dev/null @@ -1,244 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -GS2 VFD -\end_layout - -\begin_layout Standard -This is a userspace HAL program for the GS2 series of VFD's at Automation - Direct. - -\end_layout - -\begin_layout Standard -This component is loaded using the halcmd "loadusr" command: -\end_layout - -\begin_layout Quote -loadusr -Wn spindle-vfd gs2_vfd -n spindle-vfd -\newline -(loadusr, wait for named to - load, component gs2_vfd, named spindle-vfd) -\end_layout - -\begin_layout Standard -The command-line options are: -\end_layout - -\begin_layout Itemize --b or --bits (default 8) Set number of data bits to , where n must - be from 5 to 8 inclusive -\end_layout - -\begin_layout Itemize --d or --device (default /dev/ttyS0) Set the name of the serial device - node to use -\end_layout - -\begin_layout Itemize --g or --debug Turn on debugging messages. - This will also set the verbose flag. - Debug mode will cause all modbus messages to be printed in hex on the terminal. - -\end_layout - -\begin_layout Itemize --n or --name (default gs2_vfd) Set the name of the HAL module. - The HAL comp name will be set to , and all pin and parameter names - will begin with . - -\end_layout - -\begin_layout Itemize --p or --parity {even,odd,none} (default odd) Set serial parity to even, - odd, or none. - -\end_layout - -\begin_layout Itemize --r or --rate (default 38400) Set baud rate to . - It is an error if the rate is not one of the following: 110, 300, 600, - 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 -\end_layout - -\begin_layout Itemize --s or --stopbits {1,2} (default 1) Set serial stop bits to 1 or 2 -\end_layout - -\begin_layout Itemize --t or --target (default 1) Set MODBUS target (slave) number. - This must match the device number you set on the GS2. - -\end_layout - -\begin_layout Itemize --v or --verbose Turn on debug messages. - Note that if there are serial errors, this may become annoying. - At the moment, it doesn't make much difference most of the time. -\end_layout - -\begin_layout Standard -Pins where is the name given during loading with the -n option. -\end_layout - -\begin_layout Itemize -.DC-bus-volts (float, out) The DC bus voltage of the VFD -\end_layout - -\begin_layout Itemize -.at-speed (bit, out) when drive is at commanded speed -\end_layout - -\begin_layout Itemize -.err-reset (bit, in) reset errors sent to VFD -\end_layout - -\begin_layout Itemize -.firmware-revision (s32, out) from the VFD -\end_layout - -\begin_layout Itemize -.frequency-command (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.frequency-out (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.is-stopped (bit, out) when the VFD reports 0 Hz output -\end_layout - -\begin_layout Itemize -.load-percentage (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.motor-RPM (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.output-current (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.output-voltage (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.power-factor (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.scale-frequency (float, out) from the VFD -\end_layout - -\begin_layout Itemize -.speed-command (float, in) speed sent to VFD in RPM -\newline -It is an error to - send a speed faster than the Motor Max RPM as set in the VFD -\end_layout - -\begin_layout Itemize -.spindle-fwd (bit, in) 1 for FWD and 0 for REV sent to VFD -\end_layout - -\begin_layout Itemize -.spindle-rev (bit, in) 1 for REV and 0 if off -\end_layout - -\begin_layout Itemize -.spindle-on (bit, in) 1 for ON and 0 for OFF sent to VFD -\end_layout - -\begin_layout Itemize -.status-1 (s32, out) Drive Status of the VFD (see the GS2 manual) -\end_layout - -\begin_layout Itemize -.status-2 (s32, out) Drive Status of the VFD (see the GS2 manual) -\newline -Note - that the value is a sum of all the bits that are on. - So a 163 which means -\newline -the drive is in the run mode is the sum of 3 (run) - + 32 (freq set by serial) -\newline -+ 128 (operation set by serial). -\end_layout - -\begin_layout Standard -Parameters where is the name given during loading with the -n option. -\end_layout - -\begin_layout Itemize -.error-count (s32, RW) -\end_layout - -\begin_layout Itemize -.loop-time (float, RW) how often the modbus is polled (default 0.1) -\end_layout - -\begin_layout Itemize -.nameplate-HZ (float, RW) Nameplate Hz of motor (default 60) -\end_layout - -\begin_layout Itemize -.nameplate-RPM (float, RW) Nameplate RPM of motor (default 1730) -\end_layout - -\begin_layout Itemize -.retval (s32, RW) the return value of an error in HAL -\end_layout - -\begin_layout Itemize -.tolerance (s32, RW) speed tolerance (default 0.01) -\end_layout - -\begin_layout Standard -An example of using this component to drive a spindle is in the Hardware - Examples section of this manual. -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/hostmot2.lyx b/docs/src/drivers/hostmot2.lyx deleted file mode 100644 index cd68e6f53..000000000 --- a/docs/src/drivers/hostmot2.lyx +++ /dev/null @@ -1,2635 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Mesa HostMot2 -\begin_inset LatexCommand index -name "Mesa HostMot2" - -\end_inset - - -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -HostMot2 is an FPGA configuration developed by Mesa Electronics for their - line of "Anything I/O" motion control cards. - The firmware is open source, portable and flexible. - It can be configured (at compile-time) with zero or more instances (an - object created at runtime) of each of several Modules: encoders (quadrature - counters), PWM generators, and step/dir generators. - The firmware can be configured (at run-time) to connect each of these instances - to pins on the I/O headers. - I/O pins not driven by a Module instance revert to general-purpose bi-direction -al digital I/O. -\end_layout - -\begin_layout Section -Firmware Binaries -\end_layout - -\begin_layout Standard -Several pre-compiled HostMot2 firmware binaries are available for the different - Anything I/O boards. - (This list is incomplete, check the hostmot2-firmware distribution for - up-to-date firmware lists.) -\end_layout - -\begin_layout Standard -5i20, 5i23, 4i65, 4i68 (72 I/O pins): using hm2_pci module -\end_layout - -\begin_layout Itemize -12-channel servo -\end_layout - -\begin_layout Itemize -8-channel servo plus 4 step/dir generators -\end_layout - -\begin_layout Itemize -4-channel servo plus 8 step/dir generators -\end_layout - -\begin_layout Standard -5i22 (96 I/O pins): using hm2_pci module -\end_layout - -\begin_layout Itemize -16-channel servo -\end_layout - -\begin_layout Itemize -8-channel servo plus 24 step/dir generators -\end_layout - -\begin_layout Standard -3x20 (144 I/O pins): using hm2_pci module -\end_layout - -\begin_layout Itemize -24-channel servo -\end_layout - -\begin_layout Itemize -16-channel servo plus 24 step/dir generators -\end_layout - -\begin_layout Standard -7i43 (48 I/O pins): using hm2_7i43 module -\end_layout - -\begin_layout Itemize -8-channel servo (8 PWM generators & 8 encoders) -\end_layout - -\begin_layout Itemize -4-channel servo plus 4 step/dir generators -\end_layout - -\begin_layout Section -Installing Firmware -\end_layout - -\begin_layout Standard -Depending on how you installed EMC2 you may have to open the Synaptic Package - Manager from the System menu and install the package for your Mesa card. - The quickest way to find them is to do a search for "hostmot2" in the Synaptic - Package Manager. - Mark the firmware for installation then apply. -\end_layout - -\begin_layout Section -Loading HostMot2 -\end_layout - -\begin_layout Standard -The EMC support for the HostMot2 firmware is split into a generic driver - called "hostmot2" and two low-level I/O drivers for the Anything I/O boards. - The low-level I/O drivers are "hm2_7i43" and "hm2_pci" (for all the PCI- - and PC-104/Plus-based AnyIO boards). - The hostmot2 driver must be loaded first, using a HAL command like this: -\end_layout - -\begin_layout Quote -loadrt hostmot2 -\end_layout - -\begin_layout Standard -See the hostmot2(9) man page for details. -\end_layout - -\begin_layout Standard -The hostmot2 driver by itself does nothing, it needs access to actual boards - running the HostMot2 firmware. - The low-level I/O drivers provide this access. - The low-level I/O drivers are loaded with commands like this: -\end_layout - -\begin_layout Quote -loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 - num_stepgens=1" -\end_layout - -\begin_layout Standard -The config parameters are described in the hostmot2 man page. - -\end_layout - -\begin_layout Section -Watchdog -\end_layout - -\begin_layout Standard -The HostMot2 firmware may include a watchdog Module; if it does, the hostmot2 - driver will use it. -\end_layout - -\begin_layout Standard -The watchdog must be petted by EMC2 periodically or it will bite. -\end_layout - -\begin_layout Standard -When the watchdog bites, all the board's I/O pins are disconnected from - their Module instances and become high-impedance inputs (pulled high), - and all communication with the board stops. - The state of the HostMot2 firwmare modules is not disturbed (except for - the configuration of the IO Pins). - Encoder instances keep counting quadrature pulses, and pwm- and step-generators - keep generating signals (which are not relayed to the motors, because the - IO Pins have become inputs). -\end_layout - -\begin_layout Standard -Resetting the watchdog resumes communication and resets the I/O pins to - the configuration chosen at load-time. -\end_layout - -\begin_layout Standard -If the firmware includes a watchdog, the following HAL objects will be exported: -\end_layout - -\begin_layout Subsection* -Pins: -\end_layout - -\begin_layout Description -.has_bit: (bit i/o) True if the watchdog has bit, False if the watchdog has - not bit. - If the watchdog has bit and the has_bit bit is True, the user can reset - it to False to resume operation. -\end_layout - -\begin_layout Subsection* -Parameters: -\end_layout - -\begin_layout Description -.timeout_ns: (u32 read/write) Watchdog timeout, in nanoseconds. - This is initialized to 1,000,000,000 (1 second) at module load time. - If more than this amount of time passes between calls to the pet_watchdog() - function, the watchdog will bite. -\end_layout - -\begin_layout Subsection* -Functions: -\end_layout - -\begin_layout Description -pet_watchdog(): Calling this function resets the watchdog timer and postpones - the watchdog biting until timeout_ns nanoseconds later. - This function should be added to the servo thread. -\end_layout - -\begin_layout Section -HostMot2 Functions -\end_layout - -\begin_layout Description -hm2_..read Read all inputs, update input HAL pins. -\end_layout - -\begin_layout Description -hm2_..write Write all outputs. -\end_layout - -\begin_layout Description -hm2_..pet-watchdog Pet the watchdog to keep it from biting - us for a while. -\end_layout - -\begin_layout Description -hm2_..read_gpio Read the GPIO input pins. - (This function is not available on the 7i43 due to limitations of the EPP - bus.) -\end_layout - -\begin_layout Description -hm2_..write_gpio Write the GPIO control registers and - output pins. - (This function is not available on the 7i43 due to limitations of the EPP - bus.) -\end_layout - -\begin_layout Section -Pinouts -\end_layout - -\begin_layout Standard -The hostmot2 driver does not have a particular pinout. - The pinout comes from the firmware that the hostmot2 driver sends to the - AnyIO board. - Each firmware has different pinout, and the pinout depends on how many - of the available encoders, pwmgens, and stepgens are used. - To get a pinout list for your configuration after loading EMC2 in the terminal - window type: -\end_layout - -\begin_layout Quote -dmesg > hm2.txt -\end_layout - -\begin_layout Standard -The resulting text file will contain lots of information as well as the - pinout for the HostMot2 and any error and warning messages. - -\end_layout - -\begin_layout Standard -To reduce the clutter by clearing the message buffer before loading EMC - type the following in the terminal window: -\end_layout - -\begin_layout Quote -sudo dmesg -c -\end_layout - -\begin_layout Standard -Now when you run EMC and then do a "dmesg > hm2.txt" in the terminal only - the info from the time you loaded EMC will be in your file along with your - pinout. - The file will be in the current directory of the terminal window. - Each line will contain the card name, the card number, the I/O Pin number, - the connector and pin, and the usage. - From this printout you will know the physical connections to your card - based on your configuration. -\end_layout - -\begin_layout Standard -An example of a 5i20 configuration: -\end_layout - -\begin_layout Quote -[HOSTMOT2] -\newline -DRIVER=hm2_pci -\newline -BOARD=5i20 -\newline -CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encod -ers=1 num_pwmgens=1 num_stepgens=3" -\end_layout - -\begin_layout Quote -The above configuration produced this printout . -\end_layout - -\begin_layout Quote - -\size small -[ 1141.053386] hm2/hm2_5i20.0: 72 I/O Pins used: -\newline -[ 1141.053394] hm2/hm2_5i20.0: - IO Pin 000 (P2-01): IOPort -\newline -[ 1141.053397] hm2/hm2_5i20.0: IO Pin 001 (P2-03): - IOPort -\newline -[ 1141.053401] hm2/hm2_5i20.0: IO Pin 002 (P2-05): Encoder #0, pin - B (Input) -\newline -[ 1141.053405] hm2/hm2_5i20.0: IO Pin 003 (P2-07): Encoder #0, pin - A (Input) -\newline -[ 1141.053408] hm2/hm2_5i20.0: IO Pin 004 (P2-09): IOPort -\newline -[ 1141.053411] - hm2/hm2_5i20.0: IO Pin 005 (P2-11): Encoder #0, pin Index (Input) -\newline -[ 1141.053415] - hm2/hm2_5i20.0: IO Pin 006 (P2-13): IOPort -\newline -[ 1141.053418] hm2/hm2_5i20.0: IO - Pin 007 (P2-15): PWMGen #0, pin Out0 (PWM or Up) (Output) -\newline -[ 1141.053422] - hm2/hm2_5i20.0: IO Pin 008 (P2-17): IOPort -\newline -[ 1141.053425] hm2/hm2_5i20.0: IO - Pin 009 (P2-19): PWMGen #0, pin Out1 (Dir or Down) (Output) -\newline -[ 1141.053429] - hm2/hm2_5i20.0: IO Pin 010 (P2-21): IOPort -\newline -[ 1141.053432] hm2/hm2_5i20.0: IO - Pin 011 (P2-23): PWMGen #0, pin Not-Enable (Output) -\newline -... -\size default - -\newline - -\size small -[ 1141.053589] hm2/hm2_5i20.0: IO Pin 060 (P4-25): StepGen #2, pin Step (Output) -\newline -[ - 1141.053593] hm2/hm2_5i20.0: IO Pin 061 (P4-27): StepGen #2, pin Direction - (Output) -\newline -[ 1141.053597] hm2/hm2_5i20.0: IO Pin 062 (P4-29): StepGen #2, pin - (unused) (Output) -\newline -[ 1141.053601] hm2/hm2_5i20.0: IO Pin 063 (P4-31): StepGen - #2, pin (unused) (Output) -\newline -[ 1141.053605] hm2/hm2_5i20.0: IO Pin 064 (P4-33): - StepGen #2, pin (unused) (Output) -\newline -[ 1141.053609] hm2/hm2_5i20.0: IO Pin 065 - (P4-35): StepGen #2, pin (unused) (Output) -\newline -[ 1141.053613] hm2/hm2_5i20.0: - IO Pin 066 (P4-37): IOPort -\newline -[ 1141.053616] hm2/hm2_5i20.0: IO Pin 067 (P4-39): - IOPort -\newline -[ 1141.053619] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort -\newline -[ 1141.053621] - hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort -\newline -[ 1141.053624] hm2/hm2_5i20.0: IO - Pin 070 (P4-45): IOPort -\newline -[ 1141.053627] hm2/hm2_5i20.0: IO Pin 071 (P4-47): - IOPort -\newline -[ 1141.053811] hm2/hm2_5i20.0: registered -\size default - -\newline - -\size small -[ 1141.053815] hm2_5i20.0: initialized AnyIO board at 0000:02:02.0 -\end_layout - -\begin_layout Standard -Note that the IO Pin nnn will correspond to the pin number shown on the - HAL Configuration screen for GPIO's. - Some of the Stepgen, Encoder and PWMGen will also show up as GPIO's in - the HAL Configuration screen. -\end_layout - -\begin_layout Section -PIN Files -\end_layout - -\begin_layout Standard -The default pinout is described in a .PIN file. - When you install a firmware package .deb, the .PIN file is installed in -\end_layout - -\begin_layout Quote -/usr/share/doc/hostmot2-firmware-mesa--hostmot2 -\end_layout - -\begin_layout Section -Firmware -\end_layout - -\begin_layout Standard -If you are using Run In Place, you must still install a hostmot2-firmware - package. -\begin_inset Foot -status open - -\begin_layout Standard -The emc2-firmware packages from emc 2.3.x are also compatible with this version - of emc2. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -HAL Pins -\end_layout - -\begin_layout Standard -The HAL pins for each configuration can be seen by opening up "Show HAL - Configuration" from the Machine menu. - All the HAL pins and parameters can be found there. - The following figure is of the 5i20 configuration used above. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -5i20 HAL Pins -\begin_inset LatexCommand label -name "cap:5i20-HAL-Pins" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/5i20-halpins.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Configurations -\end_layout - -\begin_layout Standard -\align center -5i20 & 5i23 Default Configurations -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Firmware -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5i20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5i23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Encoder -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -StepGen -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -GPIO -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SV12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST2_8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST2_4_7I47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -48 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_4IM2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_8IM2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -4i65 & 4i68 Default Configurations -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Firmware -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4i65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4i68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Encoder -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -StepGen -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -GPIO -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SV12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_4IM2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST8_8IM2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -7i43 Default Configurations -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Firmware -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -200K -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -400K -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Encoder -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -StepGen -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -GPIO -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SV8B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SV8S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST2_4_7I47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_4B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_4S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_6B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_6S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SVST4_12B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -The 7i43 comes in 200K and 400K gate versions. -\end_layout - -\begin_layout Standard -Even though several cards may have the same .BIT file you can not use a .BIT - file that is not for that card. - Different cards have different clock frequencies so make sure you load - the proper .BIT file for your card. - Custom hm2 firmwares can be created for special applications and you may - see some custom hm2 firmwares in the directories with the default ones. -\end_layout - -\begin_layout Standard -When you load the board-driver (hm2_pci or hm2_7i43), you can tell it to - disable instances of the three primary modules (pwmgen, stepgen, and encoder) - by setting the count lower. - Any I/O pins belonging to disabled module instances become gpios. -\end_layout - -\begin_layout Section -GPIO -\end_layout - -\begin_layout Standard -General Purpose I/O pins on the board which are not used by a module instance - are exported to HAL as "full" GPIO pins. - Full GPIO pins can be configured at run-time to be inputs, outputs, or - open drains, and have a HAL interface that exposes this flexibility. - IO pins that are owned by an active module instance are constrained by - the requirements of the owning module, and have a restricted HAL interface. -\end_layout - -\begin_layout Standard -GPIOs have names like "hm2_..gpio.." IONum. - is a three-digit number. - The mapping from IONum to connector and pin-on-that-connector is written - to the syslog when the driver loads, and it's documented in Mesa's manual - for the Anything I/O boards. -\end_layout - -\begin_layout Standard -The hm2 GPIO representation is modeled after the Digital Inputs and Digital - Outputs described in the Canonical Device Interface (part of the HAL General - Reference document). -\end_layout - -\begin_layout Standard -GPIO pins default to input. - -\end_layout - -\begin_layout Subsection* -Pins -\end_layout - -\begin_layout Description -.in (Bit, Out) Normal state of the hardware input pin. - Both full GPIO pins and IO pins used as inputs by active module instances - have this pin. -\end_layout - -\begin_layout Description -.in_not (Bit, Out) Inverted state of the hardware input pin. - Both full GPIO pins and IO pins used as inputs by active module instances - have this pin. -\end_layout - -\begin_layout Description -.out (Bit, In) Value to be written (possibly inverted) to the hardware output - pin. - Only full GPIO pins have this pin. -\end_layout - -\begin_layout Subsection* -Parameters -\end_layout - -\begin_layout Description -.invert_output (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. - If this parameter is true, the output value of the GPIO will be the inverse - of the value on the "out" HAL pin. - Only full GPIO pins and IO pins used as outputs by active module instances - have this parameter. - To invert an active module pin you have to invert the GPIO pin not the - module pin. -\end_layout - -\begin_layout Description -.is_opendrain (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. - If this parameter is false, the GPIO behaves as a normal output pin: the - IO pin on the connector is driven to the value specified by the "out" HAL - pin (possibly inverted), and the value of the "in" and "in_not" HAL pins - is undefined. - If this parameter is true, the GPIO behaves as an open-drain pin. - Writing 0 to the "out" HAL pin drives the IO pin low, writing 1 to the - "out" HAL pin puts the IO pin in a high-impedance state. - In this high-impedance state the IO pin floats (weakly pulled high), and - other devices can drive the value; the resulting value on the IO pin is - available on the "in" and "in_not" pins. - Only full GPIO pins and IO pins used as outputs by active module instances - have this parameter. -\end_layout - -\begin_layout Description -.is_output (Bit, RW) If set to 0, the GPIO is an input. - The IO pin is put in a high-impedance state (weakly pulled high), to be - driven by other devices. - The logic value on the IO pin is available in the "in" and "in_not" HAL - pins. - Writes to the "out" HAL pin have no effect. - If this parameter is set to 1, the GPIO is an output; its behavior then - depends on the "is_opendrain" parameter. - Only full GPIO pins have this parameter. -\end_layout - -\begin_layout Section -StepGen -\end_layout - -\begin_layout Standard -Stepgens have names like "hm2_..stepgen..". - "Instance" is a two-digit number that corresponds to the HostMot2 stepgen - instance number. - There are "num_stepgens" instances, starting with 00. -\end_layout - -\begin_layout Standard -Each stepgen allocates 2-6 IO pins (selected at firmware compile time), - but currently only uses two: Step and Direction outputs. -\end_layout - -\begin_layout Standard -The stepgen representation is modeled on the stepgen software component. - Stepgen default is active high step output (high during step time low during - step space). - To invert a StepGen output pin you invert the corresponding GPIO pin that - is being used by StepGen. - To find the GPIO pin being used for the StepGen output run dmesg as shown - above. -\end_layout - -\begin_layout Standard -Each stepgen instance has the following pins and parameters: -\end_layout - -\begin_layout Subsection* -Pins -\end_layout - -\begin_layout Description -.control-type (Bit, In) Switches between position control mode (0) and velocity - control mode (1). - Defaults to position control (0). -\end_layout - -\begin_layout Description -.counts (s32, Out) Feedback position in counts (number of steps). -\end_layout - -\begin_layout Description -.enable (Bit, In) Enables output steps. - When false, no steps are generated. -\end_layout - -\begin_layout Description -.position-cmd (Float, In) Target position of stepper motion, in user-defined - position units. -\end_layout - -\begin_layout Description -.position-fb (Float, Out) Feedback position in user-defined position units - (counts / position_scale). -\end_layout - -\begin_layout Description -.velocity-cmd (Float, In) Target velocity of stepper motion, in user-defined - position units per second. - This pin is only used when the stepgen is in velocity control mode (control-typ -e=1). -\end_layout - -\begin_layout Description -.velocity-fb (Float, Out) Feedback velocity in user-defined position units - per second. -\end_layout - -\begin_layout Subsection* -Parameters -\end_layout - -\begin_layout Description -.dirhold (u32, RW) Minimum duration of stable Direction signal after a step - ends, in nanoseconds. -\end_layout - -\begin_layout Description -.dirsetup (u32, RW) Minimum duration of stable Direction signal before a - step begins, in nanoseconds. -\end_layout - -\begin_layout Description -.maxaccel (Float, RW) Maximum acceleration, in position units per second - per second. - If set to 0, the driver will not limit its acceleration. -\end_layout - -\begin_layout Description -.maxvel (Float, RW) Maximum speed, in position units per second. - If set to 0, the driver will choose the maximum velocity based on the values - of steplen and stepspace (at the time that maxvel was set to 0). -\end_layout - -\begin_layout Description -.position-scale (Float, RW) Converts from counts to position units. - position = counts / position_scale -\end_layout - -\begin_layout Description -.step_type (u32, RW) Output format, like the step_type modparam to the software - stegen(9) component. - 0 = Step/Dir, 1 = Up/Down, 2 = Quadrature. - In Quadrature mode (step_type=2), the stepgen outputs one complete Gray - cycle (00 -> 01 -> 11 -> 10 -> 00) for each "step" it takes. -\end_layout - -\begin_layout Description -.steplen (u32, RW) Duration of the step signal, in nanoseconds. -\end_layout - -\begin_layout Description -.stepspace (u32, RW) Minimum interval between step signals, in nanoseconds. -\end_layout - -\begin_layout Subsection* -Output Parameters -\end_layout - -\begin_layout Standard -The Step and Direction pins of each StepGen have two additional parameters. - To find which I/O pin belongs to which step and direction output run dmesg - as described above. -\end_layout - -\begin_layout Description -.invert_output (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. - If this parameter is true, the output value of the GPIO will be the inverse - of the value on the "out" HAL pin. - -\end_layout - -\begin_layout Description -.is_opendrain (Bit, RW) If this parameter is false, the GPIO behaves as a - normal output pin: the IO pin on the connector is driven to the value specified - by the "out" HAL pin (possibly inverted). - If this parameter is true, the GPIO behaves as an open-drain pin. - Writing 0 to the "out" HAL pin drives the IO pin low, writing 1 to the - "out" HAL pin puts the IO pin in a high-impedance state. - In this high-impedance state the IO pin floats (weakly pulled high), and - other devices can drive the value; the resulting value on the IO pin is - available on the "in" and "in_not" pins. - Only full GPIO pins and IO pins used as outputs by active module instances - have this parameter. -\end_layout - -\begin_layout Section -PWMGen -\end_layout - -\begin_layout Standard -PWMgens have names like "hm2_..pwmgen..". - "Instance" is a two-digit number that corresponds to the HostMot2 pwmgen - instance number. - There are "num_pwmgens" instances, starting with 00. -\end_layout - -\begin_layout Standard -In HM2, each pwmgen uses three output IO pins: Not-Enable, Out0, and Out1. - To invert a PWMGen output pin you invert the corresponding GPIO pin that - is being used by PWMGen. - To find the GPIO pin being used for the PWMGen output run dmesg as shown - above. -\end_layout - -\begin_layout Standard -The function of the Out0 and Out1 IO pins varies with output-type parameter - (see below). -\end_layout - -\begin_layout Standard -The hm2 pwmgen representation is similar to the software pwmgen component. - Each pwmgen instance has the following pins and parameters: -\end_layout - -\begin_layout Subsection* -Pins -\end_layout - -\begin_layout Description -.enable (Bit, In) If true, the pwmgen will set its Not-Enable pin false and - output its pulses. - If "enable" is false, pwmgen will set its Not-Enable pin true and not output - any signals. -\end_layout - -\begin_layout Description -.value (Float, In) The current pwmgen command value, in arbitrary units. -\end_layout - -\begin_layout Subsection* -Parameters -\end_layout - -\begin_layout Description -.output-type (s32, RW) This emulates the output_type load-time argument to - the software pwmgen component. - This parameter may be changed at runtime, but most of the time you probably - want to set it at startup and then leave it alone. - Accepted values are 1 (PWM on Out0 and Direction on Out1), 2 (Up on Out0 - and Down on Out1), 3 (PDM mode, PDM on Out0 and Dir on Out1), and 4 (Direction - on Out0 and PWM on Out1, "for locked antiphase"). -\end_layout - -\begin_layout Description -.scale (Float, RW) Scaling factor to convert "value" from arbitrary units - to duty cycle: dc = value / scale. - Duty cycle has an effective range of -1.0 to +1.0 inclusive, anything outside - that range gets clipped. -\end_layout - -\begin_layout Description -.pdm_frequency (u32, RW) This specifies the PDM frequency, in Hz, of all - the pwmgen instances running in PDM mode (mode 3). - This is the "pulse slot frequency"; the frequency at which the pdm generator - in the AnyIO board chooses whether to emit a pulse or a space. - Each pulse (and space) in the PDM pulse train has a duration of 1/pdm_frequency - seconds. - For example, setting the pdm_frequency to 2e6 (2 MHz) and the duty cycle - to 50% results in a 1 MHz square wave, identical to a 1 MHz PWM signal - with 50% duty cycle. - The effective range of this parameter is from about 1525 Hz up to just - under 100 MHz. - Note that the max frequency is determined by the ClockHigh frequency of - the Anything IO board; the 5i20 and 7i43 both have a 100 MHz clock, resulting - in a 100 Mhz max PDM frequency. - Other boards may have different clocks, resulting in different max PDM - frequencies. - If the user attempts to set the frequency too high, it will be clipped - to the max supported frequency of the board. -\end_layout - -\begin_layout Description -.pwm_frequency (u32, RW) This specifies the PWM frequency, in Hz, of all - the pwmgen instances running in the PWM modes (modes 1 and 2). - This is the frequency of the variable-duty-cycle wave. - Its effective range is from 1 Hz up to 193 KHz. - Note that the max frequency is determined by the ClockHigh frequency of - the Anything IO board; the 5i20 and 7i43 both have a 100 MHz clock, resulting - in a 193 KHz max PWM frequency. - Other boards may have different clocks, resulting in different max PWM - frequencies. - If the user attempts to set the frequency too high, it will be clipped - to the max supported frequency of the board. - Frequencies below about 5 Hz are not terribly accurate, but above 5 Hz - they're pretty close. -\end_layout - -\begin_layout Subsection* -Output Parameters -\end_layout - -\begin_layout Standard -The output pins of each PWMGen have two additional parameters. - To find which I/O pin belongs to which output run dmesg as described above. -\end_layout - -\begin_layout Description -.invert_output (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. - If this parameter is true, the output value of the GPIO will be the inverse - of the value on the "out" HAL pin. - -\end_layout - -\begin_layout Description -.is_opendrain (Bit, RW) If this parameter is false, the GPIO behaves as a - normal output pin: the IO pin on the connector is driven to the value specified - by the "out" HAL pin (possibly inverted). - If this parameter is true, the GPIO behaves as an open-drain pin. - Writing 0 to the "out" HAL pin drives the IO pin low, writing 1 to the - "out" HAL pin puts the IO pin in a high-impedance state. - In this high-impedance state the IO pin floats (weakly pulled high), and - other devices can drive the value; the resulting value on the IO pin is - available on the "in" and "in_not" pins. - Only full GPIO pins and IO pins used as outputs by active module instances - have this parameter. -\end_layout - -\begin_layout Section -Encoder -\end_layout - -\begin_layout Standard -Encoders have names like "hm2_..encoder..". - "Instance" is a two-digit number that corresponds to the HostMot2 encoder - instance number. - There are "num_encoders" instances, starting with 00. -\end_layout - -\begin_layout Standard -Each encoder uses three or four input IO pins, depending on how the firmware - was compiled. - Three-pin encoders use A, B, and Index (sometimes also known as Z). - Four-pin encoders use A, B, Index, and Index-mask. -\end_layout - -\begin_layout Standard -The hm2 encoder representation is similar to the one described by the Canonical - Device Interface (in the HAL General Reference document), and to the software - encoder component. - Each encoder instance has the following pins and parameters: -\end_layout - -\begin_layout Subsection* -Pins -\end_layout - -\begin_layout Description -.count (s32, Out) Number of encoder counts since the previous reset. -\end_layout - -\begin_layout Description -.index-enable (Bit, I/O) When this pin is set to True, the count (and therefore - also position) are reset to zero on the next Index (Phase-Z) pulse. - At the same time, index-enable is reset to zero to indicate that the pulse - has occurred. -\end_layout - -\begin_layout Description -.position (Float, Out) Encoder position in position units (count / scale). -\end_layout - -\begin_layout Description -.rawcounts (s32, Out) Total number of encoder counts since the start, not - adjusted for index or reset. -\end_layout - -\begin_layout Description -.reset (Bit, In) When this pin is TRUE, the count and position pins are set - to 0. - (The value of the velocity pin is not affected by this.) The driver does - not reset this pin to FALSE after resetting the count to 0, that is the - user's job. -\end_layout - -\begin_layout Description -.velocity (Float, Out) Estimated encoder velocity in position units per second. -\end_layout - -\begin_layout Subsection* -Parameters -\end_layout - -\begin_layout Description -.counter-mode (Bit, RW) Set to False (the default) for Quadrature. - Set to True for Up/Down or for single input on Phase A. - Can be used for a frequency to velocity converter with a single input on - Phase A when set to true. -\end_layout - -\begin_layout Description -.filter (Bit, RW) If set to True (the default), the quadrature counter needs - 15 clocks to register a change on any of the three input lines (any pulse - shorter than this is rejected as noise). - If set to False, the quadrature counter needs only 3 clocks to register - a change. - The encoder sample clock runs at 33 MHz on the PCI AnyIO cards and 50 MHz - on the 7i43. -\end_layout - -\begin_layout Description -.index-invert (Bit, RW) If set to True, the rising edge of the Index input - pin triggers the Index event (if index-enable is True). - If set to False, the falling edge triggers. -\end_layout - -\begin_layout Description -.index-mask (Bit, RW) If set to True, the Index input pin only has an effect - if the Index-Mask input pin is True (or False, depending on the index-mask-inve -rt pin below). -\end_layout - -\begin_layout Description -.index-mask-invert (Bit, RW) If set to True, Index-Mask must be False for - Index to have an effect. - If set to False, the Index-Mask pin must be True. -\end_layout - -\begin_layout Description -.scale (Float, RW) Converts from "count" units to "position" units. - A quadrature encoder will normally have 4 counts per pulse so a 100 PPR - encoder would be 400 counts per revolution. - In ".counter-mode" a 100 PPR encoder would have 100 counts per revelution - as it only uses the rising edge of A and direction is B. -\end_layout - -\begin_layout Description -.vel-timeout (Float, RW) When the encoder is moving slower than one pulse - for each time that the driver reads the count from the FPGA (in the hm2_read() - function), the velocity is harder to estimate. - The driver can wait several iterations for the next pulse to arrive, all - the while reporting the upper bound of the encoder velocity, which can - be accurately guessed. - This parameter specifies how long to wait for the next pulse, before reporting - the encoder stopped. - This parameter is in seconds. -\end_layout - -\begin_layout Section -Examples -\end_layout - -\begin_layout Standard -Several example configurations are included with EMC for both stepper and - servo applications. - The configurations are located in the hm2-servo and hm2-stepper sections - of the EMC2 Configuration Selector window. - You will need the same board installed for the configuration you pick to - load. - The examples are a good place to start and will save you time. - Just pick the proper example from the EMC2 Configuration Selector and save - a copy to your computer so you can edit it. - To see the exact pins and parameters that your configuration gave you open - the Show HAL Configuration window from the Machine menu or do dmesg as - outlined above. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/m5i20.lyx b/docs/src/drivers/m5i20.lyx deleted file mode 100644 index 26cc7a7bb..000000000 --- a/docs/src/drivers/m5i20.lyx +++ /dev/null @@ -1,2760 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -m5i20 -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -Remove in 2.4 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Notice: The hal_m5i20 driver is deprecated and you should use the hostmot2 - driver for new installations. -\end_layout - -\begin_layout Standard -Mesa Electronics m5i20 "Anything I/O Card" -\end_layout - -\begin_layout Standard -The Mesa Electronics m5i20 card consists of an FPGA that can be loaded with - a wide variety of configurations, and has 72 pins that leave the PC. - The assignment of the pins depends on the FPGA configuration. - Currently there is a HAL driver for the "4 axis host based motion control" - configuration, and this FPGA configurations is also provided with EMC2. - It provides 8 encoder counters, 4 PWM outputs (normally used as DACs) and - up to 48 digital I/O channels, 32 inputs and 16 outputs. -\end_layout - -\begin_layout Standard -Installing: -\end_layout - -\begin_layout Quote -loadrt hal_m5i20 [loadFpga=1|0] [dacRate=] -\end_layout - -\begin_layout Standard -If loadFpga is 1 (the default) the driver will load the FPGA configuration - on startup. - If it is 0, the driver assumes the configuration is already loaded. - dacRate sets the carrier frequency for the PWM outputs, in Hz. - The default is 32000, for 32KHz PWM. - Valid values are from 1 to 32226. - The driver prints some useful debugging message to the kernel log, which - can be viewed with dmesg. -\end_layout - -\begin_layout Standard -Up to 4 boards may be used in one system. -\end_layout - -\begin_layout Section -Pins -\end_layout - -\begin_layout Standard -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero, however this driver uses the PCI board ID, so it may be - non-zero even if there is only one board. -\end_layout - -\begin_layout Itemize -(s32) m5i20..enc--count -- Encoder position, in counts. -\end_layout - -\begin_layout Itemize -(float) m5i20..enc--position -- Encoder position, in user - units. -\end_layout - -\begin_layout Itemize -(bit) m5i20..enc--index -- Current status of index pulse input? -\end_layout - -\begin_layout Itemize -(bit) m5i20..enc--index-enable -- when true, and an index - pulse appears on the encoder input, reset counter to zero and clear index-enabl -e. -\end_layout - -\begin_layout Itemize -(bit) m5i20..enc--reset -- When true, counter is forced to - zero. -\end_layout - -\begin_layout Itemize -(bit) m5i20..dac--enable -- Enables DAC if true. - DAC outputs zero volts if false? -\end_layout - -\begin_layout Itemize -(float) m5i20..dac--value -- Analog output value for PWM "DAC" - (in user units, see -scale and -offset) -\end_layout - -\begin_layout Itemize -(bit) m5i20..in- -- State of digital input pin, see canonical - digital input. -\end_layout - -\begin_layout Itemize -(bit) m5i20..in--not -- Inverted state of digital input pin, - see canonical digital input. -\end_layout - -\begin_layout Itemize -(bit) m5i20..out- -- Value to be written to digital output, - see canonical digital output. -\end_layout - -\begin_layout Itemize -(bit) m5i20..estop-in -- Dedicated estop input, more details needed. -\end_layout - -\begin_layout Itemize -(bit) m5i20..estop-in-not -- Inverted state of dedicated estop input. -\end_layout - -\begin_layout Itemize -(bit) m5i20..watchdog-reset -- Bidirectional, - Set TRUE to reset watchdog - once, is automatically cleared. - If bit value 16 is set in watchdog-control then this value is not used, - and the hardware watchdog is cleared every time the dac-write function - is executed. -\end_layout - -\begin_layout Section -Parameters -\end_layout - -\begin_layout Itemize -(float) m5i20..enc--scale -- The number of counts / user unit - (to convert from counts to units). -\end_layout - -\begin_layout Itemize -(float) m5i20..dac--offset -- Sets the DAC offset. -\end_layout - -\begin_layout Itemize -(float) m5i20..dac--gain -- Sets the DAC gain (scaling). -\end_layout - -\begin_layout Itemize -(bit) m5i20..dac--interlaced -- Sets the DAC to interlaced - mode. - Use this mode if you are filtering the PWM to generate an anaolg voltage.With - normal 10 bit PWM, 50% duty cycle would be 512 cycles on and 512 cycles - off = ca 30 kHz with 33 MHz reference counter. - With fully interleaved PWM this would be 1 cycle on, 1 cycle off for 1024 - cycles (16.66 MHz if the PWM reference counter runs at 33 MHz) = much easier - to filter. - The 5I20 configuration interlace is somewhat between non and fully interlaced - (to make it easy to filter but not have as many transistions as fully interleav -ed). -\end_layout - -\begin_layout Itemize -(bit) m5i20..out--invert -- Inverts a digital output, see - canonical digital output. -\end_layout - -\begin_layout Itemize -(u32) m5i20..watchdog-control -- Configures the watchdog. - The value may be a bitwise OR of the following values: -\newline - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Bit # -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Value -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Meaning -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Watchdog is enabled -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Watchdog is automatically reset by DAC writes (the HAL dac-write function) -\end_layout - -\end_inset - - - - -\end_inset - - -\newline -Typically, the useful values are 0 (watchdog disabled) or 3 (watchdog enabled, - cleared by dac-write). -\end_layout - -\begin_layout Itemize -(u32) m5i20..led-view -- Maps some of the I/O to onboard LEDs. - See table below. -\end_layout - -\begin_layout Section -Functions -\end_layout - -\begin_layout Itemize -(funct) m5i20..encoder-read -- Reads all encoder counters. -\end_layout - -\begin_layout Itemize -(funct) m5i20..digital-in-read -- Reads digital inputs. -\end_layout - -\begin_layout Itemize -(funct) m5i20..dac-write -- Writes the voltages (PWM duty cycles) to - the "DACs". -\end_layout - -\begin_layout Itemize -(funct) m5i20..digital-out-write -- Writes digital outputs. -\end_layout - -\begin_layout Itemize -(funct) m5i20..misc-update -- Writes watchdog timer configuration to - hardware. - Resets watchdog timer. - Updates E-stop pin (more info needed). - Updates onboard LEDs. - -\end_layout - -\begin_layout Section -Connector pinout -\end_layout - -\begin_layout Standard -The Hostmot-4 FPGA configuration has the following pinout. - There are three 50-pin ribbon cable connectors on the card: P2, P3, and - P4. - There are also 8 status LEDs. -\end_layout - -\begin_layout Subsection -Connector P2 -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -m5i20 Connector P2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Function/HAL-pin -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-01 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-01 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-01 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-01 output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-00 output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR output for dac-01 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR output for dac-00 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-01-enable output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-00-enable output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-03 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-03 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-02 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-02 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-03 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-02 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-03 output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-02 output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR output for dac-03 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR output for dac-02 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-03-enable output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac-02-enable output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Power +5 V (or +3.3V ?) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -all even pins -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Ground -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -Connector P3 -\end_layout - -\begin_layout Standard -Encoder counters 4 - 7 work simultaneously with in-00 to in-11. - -\end_layout - -\begin_layout Standard -If you are using in-00 to in-11 as general purpose IO then reading enc-<4-7> - will produce some random junk number. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -m5i20 Connector P3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Function/HAL-pin -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Secondary Function/HAL-pin -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-00 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-04 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-01 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-04 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-02 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-04 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-03 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-05 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-04 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-05 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-05 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-05 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-06 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-06 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-07 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-06 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-08 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-06 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-09 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-07 A input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-07 B input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-07 index input -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-00 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-01 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-02 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-03 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-04 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-05 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-06 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-07 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Power +5 V (or +3.3V ?) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -all even pins -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Ground -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -Connector P4 -\end_layout - -\begin_layout Standard -The index mask masks the index input of the encoder so that the encoder - index can be combined with a mechanical switch or opto detector to clear - or latch the encoder counter only when the mask input bit is in proper - state (selected by mask polarity bit) and encoder index occurs. - This is useful for homing. - The behaviour of these pins is controlled by the Counter Control Register - (CCR), however there is currently no function in the driver to change the - CCR. - See REGMAP4emc2/src/hal/drivers/m5i20/REGMAP4E for a description of the - CCR. -\end_layout - -\begin_layout Standard -. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -m5i20 Connector P4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Function/HAL-pin -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Secondary Function/HAL-pin -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-01 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-02 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-03 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-22 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-24 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-04 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-05 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-26 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-06 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-07 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-28 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-30 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in-31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-08 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-09 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out-15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Power +5 V (or +3.3V ?) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -all even pins -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Ground -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -LEDs -\end_layout - -\begin_layout Standard -The status LEDs will monitor one motion channel set by the m5i20..led-view - parameter. - A call to m5i20..misc-update is required to update the viewed channel. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -LED name -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IRQLatch ? -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc-00 index mask -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -enc- index -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac- DIR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac- -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -dac--enable -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LED7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -watchdog timeout ? -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/motenc.lyx b/docs/src/drivers/motenc.lyx deleted file mode 100644 index 3730fdd88..000000000 --- a/docs/src/drivers/motenc.lyx +++ /dev/null @@ -1,357 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Motenc -\end_layout - -\begin_layout Standard -Vital Systems Motenc-100 and Motenc-LITE -\end_layout - -\begin_layout Standard -The Vital Systems Motenc-100 and Motenc-LITE are 8- and 4-channel servo - control boards. - The Motenc-100 provides 8 quadrature encoder counters, 8 analog inputs, - 8 analog outputs, 64 (68?) digital inputs, and 32 digital outputs. - The Motenc-LITE has only 4 encoder counters, 32 digital inputs and 16 digital - outputs, but it still has 8 analog inputs and 8 analog outputs. - The driver automatically identifies the installed board and exports the - appropriate HAL objects. -\end_layout - -\begin_layout Standard -Installing: -\end_layout - -\begin_layout Quote -loadrt hal_motenc -\end_layout - -\begin_layout Standard -During loading (or attempted loading) the driver prints some usefull debugging - message to the kernel log, which can be viewed with dmesg. -\end_layout - -\begin_layout Standard -Up to 4 boards may be used in one system. -\end_layout - -\begin_layout Section -Pins -\end_layout - -\begin_layout Standard -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero. - However this driver sets the ID based on a pair of jumpers on the baord, - so it may be non-zero even if there is only one board. -\end_layout - -\begin_layout Itemize -(s32) motenc..enc--count -- Encoder position, in counts. -\end_layout - -\begin_layout Itemize -(float) motenc..enc--position -- Encoder position, in user - units. -\end_layout - -\begin_layout Itemize -(bit) motenc..enc--index -- Current status of index pulse - input. -\end_layout - -\begin_layout Itemize -(bit) motenc..enc--idx-latch -- Driver sets this pin true - when it latches an index pulse (enabled by latch-index). - Cleared by clearing latch-index. -\end_layout - -\begin_layout Itemize -(bit) motenc..enc--latch-index -- If this pin is true, the - driver will reset the counter on the next index pulse. -\end_layout - -\begin_layout Itemize -(bit) motenc..enc--reset-count -- If this pin is true, the - counter will immediately be reset to zero, and the pin will be cleared. -\end_layout - -\begin_layout Itemize -(float) motenc..dac--value -- Analog output value for DAC - (in user units, see -gain and -offset) -\end_layout - -\begin_layout Itemize -(float) motenc..adc--value -- Analog input value read by ADC - (in user units, see -gain and -offset) -\end_layout - -\begin_layout Itemize -(bit) motenc..in- -- State of digital input pin, see canonical - digital input. -\end_layout - -\begin_layout Itemize -(bit) motenc..in--not -- Inverted state of digital input pin, - see canonical digital input. -\end_layout - -\begin_layout Itemize -(bit) motenc..out- -- Value to be written to digital output, - seen canonical digital output. -\end_layout - -\begin_layout Itemize -(bit) motenc..estop-in -- Dedicated estop input, more details needed. -\end_layout - -\begin_layout Itemize -(bit) motenc..estop-in-not -- Inverted state of dedicated estop input. -\end_layout - -\begin_layout Itemize -(bit) motenc..watchdog-reset -- Bidirectional, - Set TRUE to reset - watchdog once, is automatically cleared. -\end_layout - -\begin_layout Section -Parameters -\end_layout - -\begin_layout Itemize -(float) motenc..enc--scale -- The number of counts / user - unit (to convert from counts to units). -\end_layout - -\begin_layout Itemize -(float) motenc..dac--offset -- Sets the DAC offset. -\end_layout - -\begin_layout Itemize -(float) motenc..dac--gain -- Sets the DAC gain (scaling). -\end_layout - -\begin_layout Itemize -(float) motenc..adc--offset -- Sets the ADC offset. -\end_layout - -\begin_layout Itemize -(float) motenc..adc--gain -- Sets the ADC gain (scaling). -\end_layout - -\begin_layout Itemize -(bit) motenc..out--invert -- Inverts a digital output, see - canonical digital output. -\end_layout - -\begin_layout Itemize -(u32) motenc..watchdog-control -- Configures the watchdog. - The value may be a bitwise OR of the following values: -\newline - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Bit # -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Value -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Meaning -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Timeout is 16ms if set, 8ms if unset -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Watchdog is enabled -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Watchdog is automatically reset by DAC writes (the HAL dac-write function) -\end_layout - -\end_inset - - - - -\end_inset - - -\newline -Typically, the useful values are 0 (watchdog disabled) or 20 (8ms watchdog - enabled, cleared by dac-write). -\end_layout - -\begin_layout Itemize -(u32) motenc..led-view -- Maps some of the I/O to onboard LEDs? -\end_layout - -\begin_layout Section -Functions -\end_layout - -\begin_layout Itemize -(funct) motenc..encoder-read -- Reads all encoder counters. -\end_layout - -\begin_layout Itemize -(funct) motenc..adc-read -- Reads the analog-to-digital converters. -\end_layout - -\begin_layout Itemize -(funct) motenc..digital-in-read -- Reads digital inputs. -\end_layout - -\begin_layout Itemize -(funct) motenc..dac-write -- Writes the voltages to the DACs. -\end_layout - -\begin_layout Itemize -(funct) motenc..digital-out-write -- Writes digital outputs. -\end_layout - -\begin_layout Itemize -(funct) motenc..misc-update -- Updates misc stuff. -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/opto22.lyx b/docs/src/drivers/opto22.lyx deleted file mode 100644 index 86633712f..000000000 --- a/docs/src/drivers/opto22.lyx +++ /dev/null @@ -1,313 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -OPTO22 PCI -\end_layout - -\begin_layout Standard -PCI AC5 ADAPTER CARD / HAL DRIVER This page is considered current as of - November 2008. - -\end_layout - -\begin_layout Section -The Adapter Card -\end_layout - -\begin_layout Standard -This is a card made by OPTO22 for adapting the PCI port to solid state relay - racks such as their standard or G4 series. - It has 2 ports that can control up to 24 points each and has 4 on board - LEDS. - The ports use 50 pin connectors the same as Mesa boards. - Any relay racks/breakout boards thats work with Mesa Cards should work - with this card with the understanding any encoder counters, pwm etc would - have to be done in software- The AC5 does not have any 'smart' logic on - board it just an adapter. - -\end_layout - -\begin_layout Standard -See the manufacturer's website for more info: -\end_layout - -\begin_layout Standard -http://www.opto22.com/site/pr_details.aspx?item=PCI-AC5&qs=100110021011,,,1,3 -\end_layout - -\begin_layout Standard -I would like to thank OPTO22 for releasing info in their manual, easing - the writing of this driver! -\end_layout - -\begin_layout Section -The Driver -\end_layout - -\begin_layout Standard -This driver is for the PCI ac5 card and will not work with the ISA ac5 card. - The HAL driver is a realtime module. - It will support 4 cards as is (more cards are possible with a change in - the source code). - Load the basic driver like so: -\end_layout - -\begin_layout Quote -loadrt opto_ac5 -\end_layout - -\begin_layout Standard -This will load the driver which will search for max 4 boards.It will set - i/o of each board's 2 ports to a default setting. - The default configuration is for 12 inputs then 12 outputs. - The pin name numbers correspond to the position on the relay rack. - For example the pin names for the default i/o setting of port 0 would be: -\end_layout - -\begin_layout Standard -opto_ac5.0.port0.in-00 They would be numbered from 00 to 11 -\end_layout - -\begin_layout Standard -opto_ac5.0.port0.out-12 They would be numbered 12 to 23 port 1 would be the - same. -\end_layout - -\begin_layout Section -PINS -\end_layout - -\begin_layout Standard -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER] OUT bit -\end_layout - -\begin_layout Standard -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER]-not OUT bit -\end_layout - -\begin_layout Standard -Connect a hal bit signal to this pin to read an I/O point from the card. - The PINNUMBER represents the position in the relay rack. - Eg. - PINNUMBER 0 is position 0 in a opto22 relay rack and would be pin 47 on - the 50 pin header connector. - The -not pin is inverted so that LOW gives TRUE and HIGH gives FALSE. - -\end_layout - -\begin_layout Standard -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER] IN bit -\end_layout - -\begin_layout Standard -Connect a hal bit signal to this pin to write to an I/O point of the card. - The PINNUMBER represents the position in the relay rack.Eg. - PINNUMBER 23 is position 23 in a opto22 relay rack and would be pin 1 on - the 50 pin header connector. - -\end_layout - -\begin_layout Standard -opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit -\end_layout - -\begin_layout Standard -Turns one of the 4 onboard LEDS on/off. - LEDS are numbered 0 to 3. -\end_layout - -\begin_layout Standard -BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. - Port 0 is closest to the card bracket. - -\end_layout - -\begin_layout Section -PARAMETERS -\end_layout - -\begin_layout Standard -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit -\end_layout - -\begin_layout Standard -When TRUE, invert the meaning of the corresponding -out pin so that TRUE - gives LOW and FALSE gives HIGH. -\end_layout - -\begin_layout Section -FUNCTIONS -\end_layout - -\begin_layout Standard -opto_ac5.0.digital-read Add this to a thread to read all the input points. - -\end_layout - -\begin_layout Standard -opto_ac5.0.digital-write Add this to a thread to write all the output points - and LEDS. -\end_layout - -\begin_layout Standard -For example the pin names for the default I/O setting of port 0 would be: -\end_layout - -\begin_layout Standard -opto_ac5.0.port0.in-00 -\end_layout - -\begin_layout Standard -They would be numbered from 00 to 11 -\end_layout - -\begin_layout Standard -opto_ac5.0.port0.out-12 -\end_layout - -\begin_layout Standard -They would be numbered 12 to 23 port 1 would be the same. -\end_layout - -\begin_layout Section -Configuring I/O Ports -\end_layout - -\begin_layout Standard -To change the default setting load the driver something like so: -\end_layout - -\begin_layout Quote -loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000 -\end_layout - -\begin_layout Standard -Of course changing the numbers to match the i/o you would like. - Each port can be set up different. - -\end_layout - -\begin_layout Standard -Heres how to figure out the number: The configuration number represents - a 32 bit long code to tell the card which i/o points are output vrs input. - The lower 24 bits are the i/o points of one port. - The 2 highest bits are for 2 of the on board LEDS. - A one in any bit position makes the i/o point an output. - The two highest bits must be output for the LEDS to work. - The driver will automatically set the two highest bits for you, we won't - talk about them. - -\end_layout - -\begin_layout Standard -The easiest way to do this is to fire up the calculator under APPLICATIONS/ACCES -SORIES. - Set it to scientific (click view). - Set it BINARY (radio button Bin). - Press 1 for every output you want and/or zero for every input. - Remember that HAL pin 00 corresponds to the rightmost bit. - 24 numbers represent the 24 i/o points of one port. - So for the default setting (12 inputs then 12 outputs) you would push 1 - twelve times (thats the outputs) then 0 twelve times (thats the inputs). - Notice the first i/0 point is the lowest (right most) bit. - (that bit corresponds to HAL pin 00 .looks backwards) You should have 24 - digits on the screen. - Now push the Hex radio button. - The displayed number (fff000) is the configport number ( put a '0x' in - front of it designating it a HEX number). -\end_layout - -\begin_layout Standard -Another example : to set the port for 8 outputs and 16 inputs (the same - as a Mesa card). - Here is the 24 bits represented in a BINARY number. - Bit 1 is the rightmost number. -\end_layout - -\begin_layout Standard -000000000000000011111111 -\end_layout - -\begin_layout Standard -16 zeros for the 16 inputs 8 ones for the 8 outputs -\end_layout - -\begin_layout Standard -Which converts to FF on the calculator so 0xff is the number to use for - portconfig0 and/or portconfig1 when loading the driver. -\end_layout - -\begin_layout Section -Pin Numbering -\end_layout - -\begin_layout Standard -HAL pin 00 corresponds to bit 1 (the rightmost) which represents position - 0 on an opto22 relay rack. - HAL pin 01 corresponds to bit 2 (one spot to the left of the rightmost) - which represents position 1 on an opto22 relay rack. - etc. - HAL pin 23 corresponds to bit 24 (the leftmost) which represents position - 23 on an opto22 relay rack. -\end_layout - -\begin_layout Standard -Hal pin 00 connects to pin 47 on the 50 pin connector of each port. - Hal pin 01 connects to pin 45 on the 50 pin connector of each port. - etc. - Hal pin 23 connects to pin 1 on the 50 pin connector of each port. -\end_layout - -\begin_layout Standard -Note that opto22 and Mesa use opposite numbering systems: opto22 position - 23 = connector pin 1. - and the position goes down as the connector pin number goes up Mesa Hostmot4 - position 1 = connector pin 1. - and the position number goes up as the connector pin number goes up -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/pico_ppmc.lyx b/docs/src/drivers/pico_ppmc.lyx deleted file mode 100644 index 5bc97ea40..000000000 --- a/docs/src/drivers/pico_ppmc.lyx +++ /dev/null @@ -1,645 +0,0 @@ -#LyX 1.5.6 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Pico PPMC -\end_layout - -\begin_layout Standard -Pico Systems has a family of boards for doing analog servo, stepper, and - pwm (digital) servo control. - The boards connect to the PC through a parallel port working in EPP mode. - Although most users connect one board to a parallel port, in theory any - mix of up to 8 or 16 boards can be used on a single parport. - One driver serves all types of boards. - The final mix of I/O depends on the connected board(s). - The driver doesn't distinguish between boards, it simply numbers I/O channels - (encoders, etc) starting from 0 on the first card. -\end_layout - -\begin_layout Standard -Installing: -\end_layout - -\begin_layout Quote -loadrt hal_ppmc port_addr=[,[,...]] -\end_layout - -\begin_layout Standard -The -\family typewriter -\series bold -port_addr -\family default -\series default - parameter tells the driver what parallel port(s) to check. - By default, -\family typewriter -\series bold - -\family default -\series default - is 0x0378, and -\family typewriter -\series bold - -\family default -\series default - and following are not used. - The driver searches the entire address space of the enhanced parallel port(s) - at -\family typewriter -\series bold -port_addr -\family default -\series default -, looking for any board(s) in the PPMC family. - It then exports HAL pins for whatever it finds. - During loading (or attempted loading) the driver prints some usefull debugging - message to the kernel log, which can be viewed with -\family typewriter -\series bold -dmesg -\family default -\series default -. -\end_layout - -\begin_layout Standard -Up to 3 parport busses may be used, and each bus may have up to 8 devices - on it. -\end_layout - -\begin_layout Subsection -Pins -\end_layout - -\begin_layout Standard -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero. - However this driver sets the ID based on switches on the board, so it may - be non-zero even if there is only one board. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All s32 -\noun default - output) ppmc..encoder..count -\family default - -- Encoder position, in counts. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All s32 -\noun default - output) ppmc..encoder..delta -\family default - -- Change in counts since last read, in raw encoder count units. -\end_layout - -\begin_layout Itemize -( -\noun on -All float -\noun default -output) -\family typewriter -ppmc..encoder..velocity -\family default - -- Velocity scaled in user units per second. - On PPMC and USC this is derived from raw encoder counts per servo period, - and hence is affected by encoder granularity. - On UPC boards with the 8/21/09 and later firmware, velocity estimation - by timestamping encoder counts can be used to improve the smoothness of - this velocity output. - This can be fed to the pid hal component to produce a more stable servo - response. - This function has to be enabled in the hal command line that starts the - ppmc driver, with the timestamp=0x00 option. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -All float -\noun default - output) ppmc..encoder..position -\family default - -- Encoder position, in user units. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All bit -\noun default -bidir -\noun on -) -\noun default -ppmc..encoder..index-enable -\family default - -- Connect to axis.#.index-enable for home-to-index. - This is a bidirectional hal signal. - Setting it to true causes the encoder hardware to reset the count to zero - on the next encoder index pulse. - The driver will detect this and set the signal back to false. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(UPC bit -\noun default -input -\noun on -) -\noun default -ppmc..pwm..enable -\family default - -- Enables a PWM generator. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(UPC float -\noun default -input -\noun on -) -\noun default -ppmc..pwm..value -\family default - -- Value which determines the duty cycle of the PWM waveforms. - The value is divided by -\family typewriter -pwm..scale -\family default -, and if the result is 0.6 the duty cycle will be 60%, and so on. - Negative values result in the duty cycle being based on the absolute value, - and the direction pin is set to indicate negative. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(USC bit -\noun default -input -\noun on -) -\noun default -ppmc..stepgen..enable -\family default - -- Enables a step pulse generator. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(USC float -\noun default -input -\noun on -) -\noun default -ppmc..stepgen..velocity -\family default - -- Value which determines the step frequency. - The value is multiplied by -\family typewriter -stepgen..scale -\family default -, and the result is the frequency in steps per second. - Negative values result in the frequency being based on the absolute value, - and the direction pin is set to indicate negative. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All bit -\noun default -output -\noun on -) -\noun default -ppmc..in- -\family default - -- State of digital input pin, see canonical digital input. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All bit -\noun default -output -\noun on -) -\noun default -ppmc..in.-not -\family default - -- Inverted state of digital input pin, see canonical digital input. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All bit -\noun default -input -\noun on -) -\noun default -ppmc..out- -\family default - -- Value to be written to digital output, seen canonical digital output. -\end_layout - -\begin_layout Itemize -( -\noun on -Option float -\noun default - input) -\family typewriter -ppmc..DAC8-.value -\family default - -- Value to be written to analog output, range from 0 to 255. - This sends 8 output bits to J8, which should have a Spindle DAC board connected - to it. - 0 correponds to zero Volts, 255 corresponds to 10 Volts. - The polarity of the output can be set for always minus, always plus, or - can be controlled by the state of SSR1 (plus when on) and SSR2 (minus when - on). - You must specify extradac = 0x00 on the hal command line that loads the - ppmc driver to enable this function on the first USC ur UPC board. -\end_layout - -\begin_layout Itemize -( -\noun on -Option bit -\noun default -input) -\family typewriter -ppmc..dout-.out -\family default - -- Value to be written to one of the 8 extra digital output pins on J8. - You must specify extradout = 0x00 on the hal command line that loads the - ppmc driver to enable this function on the first USC ur UPC board. - extradac and extradout are mutually exclusive features as they use the - same signal lines for different purposes. -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All float) -\noun default -ppmc..enc..scale -\family default - -- The number of counts / user unit (to convert from counts to units). -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(UPC float) -\noun default -ppmc..pwm..freq -\family default - -- The PWM carrier frequency, in Hz. - Applies to a group of four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. - Minimum is 610Hz, maximum is 500KHz. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -UPC float -\noun default -) ppmc..pwm..scale -\family default - -- Scaling for PWM generator. - If -\family typewriter -scale -\family default - is X, then the duty cycle will be 100% when the -\family typewriter -value -\family default - pin is X (or -X). -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -UPC float -\noun default -) ppmc..pwm..max-dc -\family default - -- Maximum duty cycle, from 0.0 to 1.0. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -UPC float -\noun default -) ppmc..pwm..min-dc -\family default - -- Minimum duty cycle, from 0.0 to 1.0. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -UPC float -\noun default -) ppmc..pwm..duty-cycle -\family default - -- Actual duty cycle (used mostly for troubleshooting.) -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -UPC bit -\noun default -) ppmc..pwm..bootstrap -\family default - -- If true, the PWM generator will generate a short sequence of pulses - of both polarities when E-stop goes false, to charge the bootstrap capacitors - used on some MOSFET gate drivers. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC u32 -\noun default -) ppmc..stepgen..setup-time -\family default - -- Sets minimum time between direction change and step pulse, in units - of 100nS. - Applies to a group of four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC u32 -\noun default -) ppmc..stepgen..pulse-width -\family default - -- Sets width of step pulses, in units of 100nS. - Applies to a group of four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC u32 -\noun default -) ppmc..stepgen..pulse-space-min -\family default - -- Sets minimum time between pulses, in units of 100nS. - The maximum step rate is 1/( 100nS * ( -\family typewriter -pulse-width -\family default - + -\family typewriter -pulse-space-min -\family default - )). - Applies to a group of four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC float -\noun default -) ppmc..stepgen..scale -\family default - -- Scaling for step pulse generator. - The step frequency in Hz is the absolute value of -\family typewriter -velocity -\family default - * -\family typewriter -scale -\family default -. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC float -\noun default -) ppmc..stepgen..max-vel -\family default - -- The maximum value for -\family typewriter -velocity -\family default -. - Commands greater than -\family typewriter -max-vel -\family default - will be clamped. - Also applies to negative values. - (The absolute value is clamped.) -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -USC float -\noun default -) ppmc..stepgen..frequency -\family default - -- Actual step pulse frequency in Hz (used mostly for troubleshooting.) -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -Option float -\noun default -) ppmc..DAC8..scale -\family default - -- Sets scale of extra DAC output such that an output velue equal to scale - gives a magnitude of 10.0 V output. - (The sign of the output is set by jumpers and/or other digital outputs.) -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -Option bit -\noun default -) ppmc..out.-invert -\family default - -- Inverts a digital output, see canonical digital output. -\end_layout - -\begin_layout Itemize - -\family typewriter -( -\noun on -Option bit -\noun default -) ppmc..dout.-invert -\family default - -- Inverts a digital output pin of J8, see canonical digital output. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All funct) -\noun default -ppmc..read -\family default - -- Reads all inputs (digital inputs and encoder counters) on one port. - These reads are organized into blocks of contiguous registers to be read - in a block to minimize CPU overhead. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(All funct) -\noun default -ppmc..write -\family default - -- Writes all outputs (digital outputs, stepgens, PWMs) on one port. - These reads are organized into blocks of contiguous registers to be read - in a block to minimize CPU overhead. -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/pluto_p.lyx b/docs/src/drivers/pluto_p.lyx deleted file mode 100644 index 6ec0f4d40..000000000 --- a/docs/src/drivers/pluto_p.lyx +++ /dev/null @@ -1,1731 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Pluto-P -\end_layout - -\begin_layout Section -General Info -\end_layout - -\begin_layout Standard -The Pluto-P is an inexpensive ($60) FPGA board featuring the ACEX1K -\begin_inset LatexCommand index -name "ACEX1K" - -\end_inset - - chip from Altera. -\end_layout - -\begin_layout Subsection -Requirements -\end_layout - -\begin_layout Enumerate -A Pluto-P board -\end_layout - -\begin_layout Enumerate -An EPP-compatible parallel port, configured for EPP mode in the system BIOS -\end_layout - -\begin_layout Subsection -Connectors -\end_layout - -\begin_layout Itemize -The Pluto-P board is shipped with the left connector presoldered, with the - key in the indicated position. - The other connectors are unpopulated. - There does not seem to be a standard 12-pin IDC connector, but some of - the pins of a 16P connector can hang off the board next to QA3/QZ3. -\end_layout - -\begin_layout Itemize -The bottom and right connectors are on the same .1" grid, but the left connector - is not. - If OUT2\SpecialChar \ldots{} -OUT9 are not required, a single IDC connector can span the bottom - connector and the bottom two rows of the right connector. - -\end_layout - -\begin_layout Subsection -Physical Pins -\end_layout - -\begin_layout Itemize -Read the ACEX1K datasheet for information about input and output voltage - thresholds. - The pins are all configured in "LVTTL/LVCMOS" mode and are generally compatible - with 5V TTL logic. -\end_layout - -\begin_layout Itemize -Before configuration and after properly exiting emc2, all Pluto-P pins are - tristated with weak pull-ups (20k -\begin_inset Formula $\Omega$ -\end_inset - - min, 50k -\begin_inset Formula $\Omega$ -\end_inset - - max). - If the watchdog timer is enabled (the default), these pins are also tristated - after an interruption of communication between emc2 and the board. - The watchdog timer takes approximately 6.5ms to activate. - However, software bugs in the pluto_servo firmware or emc2 can leave the - Pluto-P pins in an undefined state. -\end_layout - -\begin_layout Itemize -In pwm+dir mode, by default dir is HIGH for negative values and LOW for - positive values. - To select HIGH for positive values and LOW for negative values, set the - corresponding dout-NN-invert parameter TRUE to invert the signal. -\end_layout - -\begin_layout Itemize -The index input is triggered on the rising edge. - Initial testing has shown that the QZx inputs are particularly noise sensitive, - due to being polled every 25ns. - Digital filtering has been added to filter pulses shorter than 175ns (seven - polling times). - Additional external filtering on all input pins, such as a Schmitt buffer - or inverter, RC filter, or differential receiver (if applicable) is recommended. -\end_layout - -\begin_layout Itemize -The IN1\SpecialChar \ldots{} -IN7 pins have 22-ohm series resistors to their associated FPGA pins. - No other pins have any sort of protection for out-of-spec voltages or currents. - It is up to the integrator to add appropriate isolation and protection. - Traditional parallel port optoisolator boards do not work with pluto_servo - due to the bidirectional nature of the EPP protocol. - -\end_layout - -\begin_layout Subsection -LED -\end_layout - -\begin_layout Itemize -When the device is unprogrammed, the LED glows faintly. - When the device is programmed, the LED glows according to the duty cycle - of PWM0 ( -\series bold -LED -\series default - = -\series bold -UP0 -\series default - -\emph on -xor -\emph default - -\series bold -DOWN0 -\series default -) or STEPGEN0 ( -\series bold -LED -\series default - = -\series bold -STEP0 -\series default - -\emph on -xor -\emph default - -\series bold -DIR0 -\series default -). -\end_layout - -\begin_layout Subsection -Power -\end_layout - -\begin_layout Itemize -A small amount of current may be drawn from VCC. - The available current depends on the unregulated DC input to the board. - Alternately, regulated +3.3VDC may be supplied to the FPGA through these - VCC pins. - The required current is not yet known, but is probably around 50mA plus - I/O current. -\end_layout - -\begin_layout Itemize -The regulator on the Pluto-P board is a low-dropout type. - Supplying 5V at the power jack will allow the regulator to work properly. -\end_layout - -\begin_layout Subsection -PC interface -\end_layout - -\begin_layout Itemize -Only a single pluto_servo or pluto_step board is supported. -\end_layout - -\begin_layout Subsection -Rebuilding the FPGA firmware -\end_layout - -\begin_layout Standard -The -\family typewriter -src/hal/drivers/pluto_servo_firmware/ -\family default - and -\family typewriter -src/hal/drivers/pluto_step_firmware/ -\family default - subdirectories contain the Verilog source code plus additional files used - by Quartus for the FPGA firmwares. - Altera's Quartus II software is required to rebuild the FPGA firmware. - To rebuild the firmware from the .hdl and other source files, open the -\family typewriter -.qpf -\family default - file and press CTRL-L. - Then, recompile emc2. -\end_layout - -\begin_layout Standard -Like the HAL hardware driver, the FPGA firmware is licensed under the terms - of the GNU General Public License. -\end_layout - -\begin_layout Standard -The gratis version of Quartus II runs only on Microsoft Windows, although - there is apparently a paid version that runs on Linux. - -\end_layout - -\begin_layout Subsection -For more information -\end_layout - -\begin_layout Standard - Some additional information about it is available from -\begin_inset LatexCommand htmlurl -target "http://www.fpga4fun.com/board_pluto-P.html" - -\end_inset - - and from -\begin_inset LatexCommand htmlurl -name "the developer's blog" -target "http://emergent.unpy.net/01165081407" - -\end_inset - -. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:pluto-servo" - -\end_inset - -pluto-servo -\begin_inset LatexCommand index -name "pluto-servo" - -\end_inset - -: Hardware PWM and quadrature counting -\end_layout - -\begin_layout Standard -The pluto_servo system is suitable for control of a 4-axis CNC mill with - servo motors, a 3-axis mill with PWM spindle control, a lathe with spindle - encoder, etc. - The large number of inputs allows a full set of limit switches. -\end_layout - -\begin_layout Standard -This driver features: -\end_layout - -\begin_layout Itemize -4 quadrature channels with 40MHz sample rate. - The counters operate in "4x" mode. - The maximum useful quadrature rate is 8191 counts per emc2 servo cycle, - or about 8MHz for EMC2's default 1ms servo rate. -\end_layout - -\begin_layout Itemize -4 PWM channels, "up/down" or "pwm+dir" style. - 4095 duty cycles from -100% to +100%, including 0%. - The PWM period is approximately 19.5kHz (40MHz / 2047). - A PDM-like mode is also available. - -\end_layout - -\begin_layout Itemize -18 digital outputs: 10 dedicated, 8 shared with PWM functions. - (Example: A lathe with unidirectional PWM spindle control may use 13 total - digital outputs) -\end_layout - -\begin_layout Itemize -20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. - (Example: A lathe with index pulse only on the spindle may use 13 total - digital inputs) -\end_layout - -\begin_layout Itemize -EPP communication with the PC. - The EPP communication typically takes around 100uS on machines tested so - far, enabling servo rates above 1kHz. - -\end_layout - -\begin_layout Subsection -Pinout -\end_layout - -\begin_layout Description -UPx The "up" (up/down mode) or -\begin_inset Quotes eld -\end_inset - -pwm -\begin_inset Quotes erd -\end_inset - - (pwm+direction mode) signal from PWM generator X. - May be used as a digital output if the corresponding PWM channel is unused, - or the output on the channel is always negative. - The corresponding digital output invert may be set to TRUE to make UPx - active low rather than active high. -\end_layout - -\begin_layout Description -DNx The "down" (up/down mode) or -\begin_inset Quotes eld -\end_inset - -direction -\begin_inset Quotes erd -\end_inset - - (pwm+direction mode) signal from PWM generator X. - May be used as a digital output if the corresponding PWM channel is unused, - or the output on the channel is never negative. - The corresponding digital ouput invert may be set to TRUE to make DNx active - low rather than active high. - -\end_layout - -\begin_layout Description -QAx,\InsetSpace ~ -QBx The A and B signals for Quadrature counter X. - May be used as a digital input if the corresponding quadrature channel - is unused. -\end_layout - -\begin_layout Description -QZx The Z (index) signal for quadrature counter X. - May be used as a digital input if the index feature of the corresponding - quadrature channel is unused. - -\end_layout - -\begin_layout Description -INx Dedicated digital input #x -\end_layout - -\begin_layout Description -OUTx Dedicated digital output #x -\end_layout - -\begin_layout Description -GND Ground -\end_layout - -\begin_layout Description -VCC +3.3V regulated DC -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Pluto-Servo Pinout -\begin_inset LatexCommand index -name "pluto-servo pinout" - -\end_inset - - -\begin_inset LatexCommand label -name "fig:Pluto-Servo-Pinout" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pluto-pinout.eps - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float table -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "table:Pluto-Servo-Alternate-Pin" - -\end_inset - -Pluto-Servo Alternate Pin Functions -\begin_inset LatexCommand index -name "pluto-servo alternate pin functions" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Primary function -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Alternate Function -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Behavior if both functions used -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -UP0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-0-pwmdir is TRUE, this pin is the PWM output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with UP0 or PWM0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -UP1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-1-pwmdir is TRUE, this pin is the PWM output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with UP1 or PWM1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -UP2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-2-pwmdir is TRUE, this pin is the PWM output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with UP2 or PWM2 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -UP3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PWM3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-3-pwmdir is TRUE, this pin is the PWM output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with UP3 or PWM3 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -DN0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-0-pwmdir is TRUE, this pin is the DIR output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with DN0 or DIR0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -DN1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-1-pwmdir is TRUE, this pin is the DIR output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with DN1 or DIR1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -DN2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-2-pwmdir is TRUE, this pin is the DIR output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with DN2 or DIR2 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -DN3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIR3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -When pwm-3-pwmdir is TRUE, this pin is the DIR output -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XOR'd with DN3 or DIR3 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QZ0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QZ1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QZ2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QZ3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QA0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QA1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QA2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QA3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QB0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QB1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QB2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -QB3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Read same value -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Input latching and output updating -\end_layout - -\begin_layout Itemize -PWM duty cycles for each channel are updated at different times. -\end_layout - -\begin_layout Itemize -Digital outputs OUT0 through OUT9 are all updated at the same time. - Digital outputs OUT10 through OUT17 are updated at the same time as the - pwm function they are shared with. -\end_layout - -\begin_layout Itemize -Digital inputs IN0 through IN19 are all latched at the same time. -\end_layout - -\begin_layout Itemize -Quadrature positions for each channel are latched at different times. - -\end_layout - -\begin_layout Subsection -HAL Functions, Pins and Parameters -\end_layout - -\begin_layout Standard -A list of all 'loadrt' arguments, HAL function names, pin names and parameter - names is in the manual page, -\emph on -pluto_servo.9 -\emph default -. -\end_layout - -\begin_layout Subsection -Compatible driver hardware -\end_layout - -\begin_layout Standard -A schematic for a 2A, 2-axis PWM servo amplifier board is available ( -\begin_inset LatexCommand htmlurl -target "http://emergent.unpy.net/projects/01148303608" - -\end_inset - -). - The L298 H-Bridge ( -\begin_inset LatexCommand htmlurl -name "L298 H-bridge" -target "http://www.st.com/stonline/books/pdf/docs/1773.pdf" - -\end_inset - -) is inexpensive and can easily be used for motors up to 4A (one motor per - L298) or up to 2A (two motors per L298) with the supply voltage up to 46V. - However, the L298 does not have built-in current limiting, a problem for - motors with high stall currents. - For higher currents and voltages, some users have reported success with - International Rectifier's integrated high-side/low-side drivers. - ( -\begin_inset LatexCommand url -target "http://www.cnczone.com/forums/showthread.php?t=25929" - -\end_inset - -) -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Pluto-step:-Hardware-step" - -\end_inset - -Pluto-step -\begin_inset LatexCommand index -name "pluto-step" - -\end_inset - -: 300kHz Hardware Step Generator -\end_layout - -\begin_layout Standard -Pluto-step is suitable for control of a 3- or 4-axis CNC mill with stepper - motors. - The large number of inputs allows for a full set of limit switches. -\end_layout - -\begin_layout Standard -The board features: -\end_layout - -\begin_layout Itemize -4 -\begin_inset Quotes eld -\end_inset - -step+direction -\begin_inset Quotes erd -\end_inset - - channels with 312.5kHz maximum step rate, programmable step length, space, - and direction change times -\end_layout - -\begin_layout Itemize -14 dedicated digital outputs -\end_layout - -\begin_layout Itemize -16 dedicated digital inputs -\end_layout - -\begin_layout Itemize -EPP communuication with the PC -\end_layout - -\begin_layout Subsection -Pinout -\end_layout - -\begin_layout Description -STEPx The -\begin_inset Quotes eld -\end_inset - -step -\begin_inset Quotes erd -\end_inset - - (clock) output of stepgen channel -\series bold -x -\end_layout - -\begin_layout Description -DIRx The -\begin_inset Quotes eld -\end_inset - -direction -\begin_inset Quotes erd -\end_inset - - output of stepgen channel -\series bold -x -\end_layout - -\begin_layout Description -INx Dedicated digital input #x -\end_layout - -\begin_layout Description -OUTx Dedicated digital output #x -\end_layout - -\begin_layout Description -GND Ground -\end_layout - -\begin_layout Description -VCC +3.3V regulated DC -\end_layout - -\begin_layout Standard -While the -\begin_inset Quotes eld -\end_inset - -extended main connector -\begin_inset Quotes erd -\end_inset - - has a superset of signals usually found on a Step & Direction DB25 connector--4 - step generators, 9 inputs, and 6 general-purpose outputs--the layout on - this header is different than the layout of a standard 26-pin ribbon cable - to DB25 connector. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:Pluto-Step-Pinout" - -\end_inset - -Pluto-Step Pinout -\begin_inset LatexCommand index -name "pluto-step pinout" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pluto-step-pinout.eps - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Input latching and output updating -\end_layout - -\begin_layout Itemize -Step frequencies for each channel are updated at different times. -\end_layout - -\begin_layout Itemize -Digital outputs are all updated at the same time. -\end_layout - -\begin_layout Itemize -Digital inputs are all latched at the same time. -\end_layout - -\begin_layout Itemize -Feedback positions for each channel are latched at different times. - -\end_layout - -\begin_layout Subsection -Step Waveform Timings -\end_layout - -\begin_layout Standard -The firmware and driver enforce step length, space, and direction change - times. - Timings are rounded up to the next multiple of -\begin_inset Formula $1.6\mu s$ -\end_inset - -, with a maximum of -\begin_inset Formula $49.6\mu s$ -\end_inset - -. - The timings are the same as for the software stepgen component, except - that -\begin_inset Quotes eld -\end_inset - -dirhold -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -dirsetup -\begin_inset Quotes erd -\end_inset - - have been merged into a single parameter -\begin_inset Quotes eld -\end_inset - -dirtime -\begin_inset Quotes erd -\end_inset - - which should be the maximum of the two, and that the same step timings - are always applied to all channels. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:Pluto-Step-Timings" - -\end_inset - -Pluto-Step Timings -\begin_inset LatexCommand index -name "pluto-step timings" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pluto_step_waveform.eps - width 50page% - keepAspectRatio - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -HAL Functions, Pins and Parameters -\end_layout - -\begin_layout Standard -A list of all 'loadrt' arguments, HAL function names, pin names and parameter - names is in the manual page, -\emph on -pluto_step.9 -\emph default -. -\end_layout - -\end_body -\end_document diff --git a/docs/src/drivers/servo_to_go.lyx b/docs/src/drivers/servo_to_go.lyx deleted file mode 100644 index 8788e1b0a..000000000 --- a/docs/src/drivers/servo_to_go.lyx +++ /dev/null @@ -1,225 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Servo-To-Go -\end_layout - -\begin_layout Standard -The Servo-To-Go is one of the first PC motion control cards supported by - EMC. - It is an ISA card and it exists in different flavours (all supported by - this driver). - The board includes up to 8 channels of quadrature encoder input, 8 channels - of analog input and output, 32 bits digital I/O, an interval timer with - interrupt and a watchdog. -\end_layout - -\begin_layout Subsection -Installing -\end_layout - -\begin_layout Quote -loadrt hal_stg [base=
] [num_chan=] [dio=""] [model=] -\end_layout - -\begin_layout Standard -The base address field is optional; if it's not provided the driver attempts - to autodetect the board. - The num_chan field is used to specify the number of channels available - on the card, if not used the 8 axis version is assumed. - The digital inputs/outputs configuration is determined by a config string - passed to insmod when loading the module. - The format consists of a four character string that sets the direction - of each group of pins. - Each character of the direction string is either "I" or "O". - The first character sets the direction of port A (Port A - DIO.0-7), the - next sets port B (Port B - DIO.8-15), the next sets port C (Port C - DIO.16-23), - and the fourth sets port D (Port D - DIO.24-31). - The model field can be used in case the driver doesn't autodetect the right - card version. -\end_layout - -\begin_layout Standard -hint: after starting up the driver, 'dmesg' can be consulted for messages - relevant to the driver (e.g. - autodetected version number and base address). - For example: -\end_layout - -\begin_layout Quote -loadrt hal_stg base=0x300 num_chan=4 dio="IOIO" -\end_layout - -\begin_layout Standard -This example installs the stg driver for a card found at the base address - of 0x300, 4 channels of encoder feedback, DAC's and ADC's, along with 32 - bits of I/O configured like this: the first 8 (Port A) configured as Input, - the next 8 (Port B) configured as Output, the next 8 (Port C) configured - as Input, and the last 8 (Port D) configured as Output -\end_layout - -\begin_layout Quote -loadrt hal_stg -\end_layout - -\begin_layout Standard -This example installs the driver and attempts to autodetect the board address - and board model, it installs 8 axes by default along with a standard I/O - setup: Port A & B configured as Input, Port C & D configured as Output. -\end_layout - -\begin_layout Section -Pins -\end_layout - -\begin_layout Itemize -stg..counts (s32) Tracks the counted encoder ticks. -\end_layout - -\begin_layout Itemize -stg..position (float) Outputs a converted position. -\end_layout - -\begin_layout Itemize -stg..dac-value (float) Drives the voltage for the corresponding DAC. -\end_layout - -\begin_layout Itemize -stg..adc-value (float) Tracks the measured voltage from the corresponding - ADC. -\end_layout - -\begin_layout Itemize -stg.in- (bit) Tracks a physical input pin. -\end_layout - -\begin_layout Itemize -stg.in--not (bit) Tracks a physical input pin, but inverted. -\end_layout - -\begin_layout Itemize -stg.out- (bit) Drives a physical output pin -\end_layout - -\begin_layout Standard -For each pin, is the axis number, and is the logic pin - number of the STGif IIOO is defined, there are 16 input pins (in-00 .. - in-15) and 16 output pins (out-00 .. - out-15), and they correspond to PORTs ABCD (in-00 is PORTA.0, out-15 is - PORTD.7). -\end_layout - -\begin_layout Standard -The in- HAL pin is TRUE if the physical pin is high, and FALSE if the physical - pin is low. - The in--not HAL pin is inverted -- it is FALSE if the physical - pin is high. - By connecting a signal to one or the other, the user can determine the - state of the input. -\end_layout - -\begin_layout Section -Parameters -\end_layout - -\begin_layout Itemize -stg..position-scale (float) The number of counts / user unit (to - convert from counts to units). -\end_layout - -\begin_layout Itemize -stg..dac-offset (float) Sets the offset for the corresponding DAC. -\end_layout - -\begin_layout Itemize -stg..dac-gain (float) Sets the gain of the corresponding DAC. -\end_layout - -\begin_layout Itemize -stg..adc-offset (float) Sets the offset of the corresponding ADC. -\end_layout - -\begin_layout Itemize -stg..adc-gain (float) Sets the gain of the corresponding ADC. -\end_layout - -\begin_layout Itemize -stg.out--invert (bit) Inverts an output pin. -\end_layout - -\begin_layout Standard -The -invert parameter determines whether an output pin is active high or - active low. - If -invert is FALSE, setting the HAL out- pin TRUE drives the physical - pin high, and FALSE drives it low. - If -invert is TRUE, then setting the HAL out- pin TRUE will drive the physical - pin low. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize -stg.capture-position (funct) Reads the encoder counters from the axis . -\end_layout - -\begin_layout Itemize -stg.write-dacs (funct) Writes the voltages to the DACs. -\end_layout - -\begin_layout Itemize -stg.read-adcs (funct) Reads the voltages from the ADCs. -\end_layout - -\begin_layout Itemize -stg.di-read (funct) Reads physical in- pins of all ports and updates all - HAL in- and in--not pins. -\end_layout - -\begin_layout Itemize -stg.do-write (funct) Reads all HAL out- pins and updates all physical output - pins. -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/gcode.lyx b/docs/src/examples/gcode.lyx deleted file mode 100644 index a496586da..000000000 --- a/docs/src/examples/gcode.lyx +++ /dev/null @@ -1,182 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -G-Code Examples -\end_layout - -\begin_layout Standard -After you install EMC2 several sample files are placed in the /nc_files - folder. - Make sure the sample file is appropriate for your machine before running. - -\end_layout - -\begin_layout Section -Mill Examples -\end_layout - -\begin_layout Subsection -Helical Hole Milling -\end_layout - -\begin_layout Standard -File Name: useful-subroutines.ngc -\end_layout - -\begin_layout Standard -Description: Subroutine for milling a hole using parameters. -\end_layout - -\begin_layout Subsection -Slotting -\end_layout - -\begin_layout Standard -File Name: useful-subroutines.ngc -\end_layout - -\begin_layout Standard -Decription: Subroutine for milling a slot using parameters. -\end_layout - -\begin_layout Subsection -Grid Probe -\end_layout - -\begin_layout Standard -File Name: gridprobe.ngc -\end_layout - -\begin_layout Standard -Description: Rectangular Probing -\end_layout - -\begin_layout Standard -This program repeatedly probes in a regular XY grid and writes the probed - location to the file 'probe-results.txt' in the same directory as the .ini - file. -\end_layout - -\begin_layout Subsection -Smart Probe -\end_layout - -\begin_layout Standard -File Name: smartprobe.ngc -\end_layout - -\begin_layout Standard -Description: Rectangular Probing -\end_layout - -\begin_layout Standard -This program repeatedly probes in a regular XY grid and writes the probed - location to the file 'probe-results.txt' in the same directory as the .ini - file. - This is improved from the grid probe file. -\end_layout - -\begin_layout Subsection -Tool Length Probe -\end_layout - -\begin_layout Standard -File Name: tool-lenght-probe.ngc -\end_layout - -\begin_layout Standard -Description: Tool Length Probing -\end_layout - -\begin_layout Standard -This program shows an example of how to measure tool lengths automatically - using a switch hooked to the probe input. - This is useful for machines without tool holders, where the length of a - tool is different every time it is inserted. -\end_layout - -\begin_layout Subsection -Hole Probe -\end_layout - -\begin_layout Standard -File Name: probe-hole.ngc -\end_layout - -\begin_layout Standard -Description: Finding the Center and Diameter of a hole. -\end_layout - -\begin_layout Standard -The program demonstrates how to find the center of a hole, measure the hole - diameter and record the results. -\end_layout - -\begin_layout Subsection -Cutter Compensation -\end_layout - -\begin_layout Standard -To be added -\end_layout - -\begin_layout Section -Lathe Examples -\end_layout - -\begin_layout Subsection -Threading -\end_layout - -\begin_layout Standard -File Name lathe-g76.ngc -\end_layout - -\begin_layout Standard -Description: Facing, threading and parting off. -\end_layout - -\begin_layout Standard -This file shows an example of threading on a lathe using parameters. -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/gcode_fr.lyx b/docs/src/examples/gcode_fr.lyx deleted file mode 100644 index e139690c2..000000000 --- a/docs/src/examples/gcode_fr.lyx +++ /dev/null @@ -1,145 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Exemples de G-Code -\layout Standard - -Aprs l'installation d'EMC2 vous pourrez trouver plusieurs fichiers d'exemple - placs dans le rpertoire /nc_files de votre dossier d'installation. - Vous ne pouvez utiliser que les fichiers appropris au type de votre machine. - -\layout Section - -Exemples pour une fraiseuse -\layout Subsection - -Fraisage hlicodal d'un orifice -\layout Standard - -Nom du fichier: useful-subroutines.ngc -\layout Standard - -Description: Programme pour usiner une poche avec utilisation des paramtres. -\layout Subsection - -Rainurage -\layout Standard - -Nom du fichier: useful-subroutines.ngc -\layout Standard - -Decription: Programme pour fraiser une rainure avec utilisation des paramtres. -\layout Subsection - -Palpage d'une grille rectangulaire de points -\layout Standard - -Nom du fichier: gridprobe.ngc -\layout Standard - -Description: Relev d'une grille rectangulaire de points au palpeur. -\layout Standard - -Ce programme palpe de manire rptitive, en suivant une grille rgulire - en XY et crit les points mesurs dans le fichier 'probe-results.txt' situ - dans le mme rpertoire que le fichier .ini. -\layout Subsection - -Amlioration du palpage d'une grille rectangulaire de points -\layout Standard - -Nom du fichier: smartprobe.ngc -\layout Standard - -Description: Relev d'une grille rectangulaire de points au palpeur. -\layout Standard - -Ce programme est une amlioration du prcdent. - Il palpe de manire rptitive, en suivant une grille rgulire en XY et - crit les points mesurs dans le fichier 'probe-results.txt' situ dans - le mme rpertoire que le fichier .ini. -\layout Subsection - -Mesure de longueur d'outil -\layout Standard - -Nom du fichier: tool-lenght-probe.ngc -\layout Standard - -Description: Mesure automatique de la longueur de l'outil. -\layout Standard - -Ce programme donne un exemple de la mesure automatique de longueur d'outil - en utilisant un contact raccord l'entre sonde. - C'est trs pratique pour une machine sur laquelle la longueur des outils - est diffrente chaque montage. -\layout Subsection - -Mesure d'un alsage au palpeur -\layout Standard - -Nom du fichier: probe-hole.ngc -\layout Standard - -Description: Mesure le centre et le diamtre d'un alsage. -\layout Standard - -Ce programme montre comment trouver le centre d'un alsage, comment calculer - son diamtre et enregistrer les mesures dans un fichier. -\layout Subsection - -Compensation de rayon d'outil -\layout Standard - -Nom du fichier: comp-g1.ngc -\layout Standard - -Description: Mouvements d'entre et de sortie avec la compensation de rayon - d'outil. -\layout Standard - -Ce programme dmontre la particularit du chemin d'outil sans et avec la - compensation de rayon d'outil. - Le rayon d'outil est pris dans la table d'outils. -\layout Section - -Exemples pour un tour -\layout Subsection - -Filetage -\layout Standard - -Nom du fichier: lathe-g76.ngc -\layout Standard - -Description: Dressage, filetage et trononnage. -\layout Standard - -Ce programme donne un exemple de filetage automatique sur un tour avec utilisati -on des paramtres. -\the_end diff --git a/docs/src/examples/gs2_example.lyx b/docs/src/examples/gs2_example.lyx deleted file mode 100644 index e1b2e98fe..000000000 --- a/docs/src/examples/gs2_example.lyx +++ /dev/null @@ -1,145 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -GS2 Spindle -\begin_inset LatexCommand label -name "cha:GS2-Spindle" - -\end_inset - - -\end_layout - -\begin_layout Standard -This example shows the connections needed to use an Automation Direct GS2 - VFD to drive a spindle. - The spindle speed and direction is controlled by EMC. - -\end_layout - -\begin_layout Standard -Using the GS2 component involves very little to set up. - We start with a Stepconf Wizard generated config. - Make sure the pins with "Spindle CW" and "Spindle PWM" are set to unused - in the parallel port setup screen. - -\end_layout - -\begin_layout Standard -In the custom.hal file we place the following to connect EMC to the GS2 and - have EMC control the drive. -\end_layout - -\begin_layout Quote -# load the user space component for the Automation Direct GS2 VFD's -\newline -loadusr - -Wn spindle-vfd gs2_vfd -n spindle-vfd -\end_layout - -\begin_layout Quote -# connect the spindle direction pin to the GS2 -\newline -net gs2-fwd spindle-vfd.spindle-fwd - <= motion.spindle-forward -\end_layout - -\begin_layout Quote -# connect the spindle on pin to the GS2 -\newline -net gs2-run spindle-vfd.spindle-on - <= motion.spindle-on -\end_layout - -\begin_layout Quote -# connect the GS2 at speed to the motion at speed -\newline -net gs2-at-speed motion.spindle- -at-speed <= spindle-vfd.at-speed -\end_layout - -\begin_layout Quote -# connect the spindle RPM to the GS2 -\newline -net gs2-RPM spindle-vfd.speed-command - <= motion.spindle-speed-out -\end_layout - -\begin_layout Standard -On the GS2 drive itself you need to set a couple of things before the modbus - communications will work. - Other parameters might need to be set based on your physical requirements - but is beyond the scope of this manual. - Refer to the GS2 manual that came with the drive for more information on - parameters. -\end_layout - -\begin_layout Itemize -The communications switches must be set to RS-232C -\end_layout - -\begin_layout Itemize -The motor parameters must be set -\end_layout - -\begin_layout Itemize -P3.00 (Source of Operation Command) must be set to Operation determined by - RS-485 interface 03 or 04 -\end_layout - -\begin_layout Itemize -P4.00 (Source of Frequency Command) must be set to Frequency determined by - RS232C/RS485 communication interface 05 -\end_layout - -\begin_layout Itemize -P9.02 (Communication Protocol) must be set to Modbus RTU mode 8 data bits, - no parity, 2 stop bits 03 -\end_layout - -\begin_layout Standard -A pyVCP panel based on this example is in the pyVCP Examples section of - this manual. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/misc.lyx b/docs/src/examples/misc.lyx deleted file mode 100644 index dd12e353b..000000000 --- a/docs/src/examples/misc.lyx +++ /dev/null @@ -1,53 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language english -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Probe Input -\layout Standard - -To use a probe input for G38 probing moves you first have to hook up your - probe to motion.probe-input. - In this example we will use the parallel port input pin 15. - In your .hal file add a line like the following making sure you pick the - pin you have hooked your probe to. -\layout Standard - -net probe-in motion.probe-input <= parport.0.pin-15-in -\layout Standard - -For more info on probing see -\begin_inset LatexCommand \ref{sub:G38.2:-Straight-Probe} - -\end_inset - - and -\begin_inset LatexCommand \ref{cap:Probing-codes} - -\end_inset - - -\the_end diff --git a/docs/src/examples/misc_fr.lyx b/docs/src/examples/misc_fr.lyx deleted file mode 100644 index 63d664242..000000000 --- a/docs/src/examples/misc_fr.lyx +++ /dev/null @@ -1,62 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Entre de palpeur de mesure -\layout Standard - -Pour utiliser une sonde de mesure avec G38 un palpeur doit tre raccord - -\begin_inset Quotes fld -\end_inset - -motion.probe-input -\begin_inset Quotes frd -\end_inset - -. - Dans cet exemple, la broche 15 du port parallle est utilise. - Dans votre fichier .hal ajoutez la ligne suivante. - Elle doit bien sur tre adapte l'entre sur laquelle votre palpeur est - raccord. -\layout Standard - -net probe-in motion.probe-input <= parport.0.pin-15-in -\layout Standard - -Pour d'autres informations concernant la sonde de mesure voir -\begin_inset LatexCommand \ref{sub:G38.x:-Palpeur} - -\end_inset - - et -\begin_inset LatexCommand \ref{cap:Codes-de-mesure} - -\end_inset - - -\the_end diff --git a/docs/src/examples/mpg.lyx b/docs/src/examples/mpg.lyx deleted file mode 100644 index afc72687f..000000000 --- a/docs/src/examples/mpg.lyx +++ /dev/null @@ -1,161 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -MPG Pendant -\end_layout - -\begin_layout Standard -This example is to explain how to hook up the common MPG pendants found - on the market place today. - This example uses a MPG3 pendant and a C22 pendant interface card from - CNC4PC connected to a second parallel port plugged into the PCI slot. - This example gives you 3 axis with 3 step increments of 0.1, 0.01, 0.001 -\end_layout - -\begin_layout Standard -In your custom.hal file or other .hal file add the following making sure you - don't have mux4 or an encoder already in use. - If you do just increase the counts and change the reference number. - More information about mux4 and encoder can be found here -\begin_inset LatexCommand ref -reference "cha:HAL-Components" - -\end_inset - - and here -\begin_inset LatexCommand ref -reference "sec:Encoder" - -\end_inset - -. -\end_layout - -\begin_layout Quote -# Jog Pendant -\newline -loadrt encoder num_chan=1 -\newline -loadrt mux4 count=1 -\newline -addf encoder.capture-pos -ition servo-thread -\newline -addf encoder.update-counters base-thread -\newline -addf mux4.0 servo-thread -\end_layout - -\begin_layout Quote -# If your MPG outputs a quadture signal per click set x4 to 1 -\newline -# If your - MPG puts out 1 pulse per click set x4 to 0 -\newline -setp encoder.0.x4-mode 0 -\end_layout - -\begin_layout Quote -# For velocity mode, set n to 1 -\newline -# In velocity mode the axis stops when dial - is stopped even if that means -\newline -# the commanded motion is not completed, - -\newline -# For position mode (the default), set n to 0 -\newline -# In position mode the axis - will move exactly jog-scale -\newline -# units for each count, regardless of how long - that might take, -\newline -# This must be set for each axis you want to behave other - than default -\newline -setp axis.N.jog-vel-mode n -\end_layout - -\begin_layout Quote -setp mux4.0.in0 0.1 -\newline -setp mux4.0.in1 0.01 -\newline -setp mux4.0.in2 0.001 -\newline -net scale1 mux4.0.sel0 - <= parport.1.pin-09-in -\newline -net scale2 mux4.0.sel1 <= parport.1.pin-10-in -\newline -net pend-scale - axis.0.jog-scale <= mux4.0.out -\newline -net pend-scale axis.1.jog-scale -\newline -net pend-scale axis.2.jog- -scale -\newline -net mpg-a encoder.0.phase-A <= parport.1.pin-02-in -\newline -net mpg-b encoder.0.phase-B - <= parport.1.pin-03-in -\newline -net mpg-x axis.0.jog-enable <= parport.1.pin-04-in -\newline -net mpg-y - axis.1.jog-enable <= parport.1.pin-05-in -\newline -net mpg-z axis.2.jog-enable <= parport.1.pin-06 --in -\newline -net pend-counts axis.0.jog-counts <= encoder.0.counts -\newline -net pend-counts axis.1.jog-cou -nts -\newline -net pend-counts axis.2.jog-counts -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/mpg_fr.lyx b/docs/src/examples/mpg_fr.lyx deleted file mode 100644 index 9d4bab768..000000000 --- a/docs/src/examples/mpg_fr.lyx +++ /dev/null @@ -1,155 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Manivelle (MPG) -\layout Standard - -Cet exemple explique comment relier une manivelle facile trouver aujourd'hui - sur le march. - Cet exemple utilisera la manivelle MPG3 avec une carte d'interface C22 - de chez CNC4PC et un second port parallle plac sur un slot PCI. - Cet exemple fournira trois axes avec chacun trois incrments de pas: 0.1, - 0.01, 0.001. -\layout Standard - -Dans votre fichier -\begin_inset Quotes fld -\end_inset - -custom.hal -\begin_inset Quotes frd -\end_inset - - ou dans un autre fichier .hal, ajoutez ce qui suit en vrifiant bien que - les composants mux4 ou encoder ne soient pas dj utiliss. - Si c'tait le cas vous auriez juste augmenter le nombre de ces composants. -\layout Standard - - -\family typewriter -\series bold -# Manivelle de jog -\layout Standard - - -\family typewriter -loadrt encoder num_chan=1 -\newline -loadrt mux4 count=1 -\newline -addf encoder.capture-position servo-thread -\newline -addf encoder.update-counters base-thread -\newline -addf mux4.0 servo-thread -\layout Standard - -# Mode position -\newline -# Chaque cran de manivelle provoque un pas calibr, -\newline -# la dure du mouvement total peut dpasser la dure de rotation de la manivelle. - -\newline -# C'est le mode par dfaut. -\newline -setp axis.N.jog-vel-mode 0 -\layout Standard - -# Mode vitesse -\newline -# L'axe s'arrte quand la manivelle s'arrte, mme si la pas de jog est - incomplet. -\newline -# Dcommenter la ligne suivante pour obtenir ce mode de fonctionnement, -\newline -# et commenter le mode position. -\newline -#setp axis.N.jog-vel-mode 1 -\layout Standard - -# Chaque axe est ajust indpendemment des autres. -\layout Standard - -# Tailles des pas de jog -\newline - -\family typewriter -setp mux4.0.in0 0.1 -\newline -setp mux4.0.in1 0.01 -\newline -setp mux4.0.in2 0.001 -\layout Standard - - -\family typewriter -# Slecteur de taille des pas du jog -\newline -net scale1 mux4.0.sel0 <= parport.1.pin-09-in -\newline -net scale2 mux4.0.sel1 <= parport.1.pin-10-in -\layout Standard - - -\family typewriter -net pend-scale axis.0.jog-scale <= mux4.0.out -\newline -net pend-scale axis.1.jog-scale -\newline -net pend-scale axis.2.jog-scale -\layout Standard - - -\family typewriter -# Signaux du codeur -\newline -net mpg-a encoder.0.phase-A <= parport.1.pin-02-in -\newline -net mpg-b encoder.0.phase-B <= parport.1.pin-03-in -\layout Standard - - -\family typewriter -# Slecteur d'axe -\newline -net mpg-x axis.0.jog-enable <= parport.1.pin-04-in -\newline -net mpg-y axis.1.jog-enable <= parport.1.pin-05-in -\newline -net mpg-z axis.2.jog-enable <= parport.1.pin-06-in -\layout Standard - - -\family typewriter -net pend-counts axis.0.jog-counts <= encoder.0.counts -\newline -net pend-counts axis.1.jog-counts -\newline -net pend-counts axis.2.jog-counts -\the_end diff --git a/docs/src/examples/pci_parallel_port.lyx b/docs/src/examples/pci_parallel_port.lyx deleted file mode 100644 index 02e36bb9d..000000000 --- a/docs/src/examples/pci_parallel_port.lyx +++ /dev/null @@ -1,125 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Second Parallel Port -\end_layout - -\begin_layout Standard -When you add a second parallel port to your PCI bus you have to find out - the address before you can use it with EMC. -\end_layout - -\begin_layout Standard -To find the address of your parallel port card open a terminal window and - type -\end_layout - -\begin_layout Quote -lspci -v -\end_layout - -\begin_layout Standard -You will see something similar to this as well as info on everything else - on the PCI bus: -\end_layout - -\begin_layout Quote -0000:00:10.0 Communication controller: NetMos Technology PCI 1 port parallel - adapter (rev 01) -\newline -Subsystem: LSI Logic / Symbios Logic: Unknown device 0010 - -\newline -Flags: medium devsel, IRQ 11 -\newline -I/O ports at a800 [size=8] -\newline -I/O ports at ac00 - [size=8] -\newline -I/O ports at b000 [size=8] -\newline -I/O ports at b400 [size=8] -\newline -I/O ports - at b800 [size=8] -\newline -I/O ports at bc00 [size=16] -\end_layout - -\begin_layout Standard -In my case the address was the first one so I changed my .hal file from -\end_layout - -\begin_layout Quote -loadrt hal_parport cfg=0x378 -\end_layout - -\begin_layout Standard -to -\end_layout - -\begin_layout Quote -loadrt hal_parport cfg="0x378 0xa800 in" -\end_layout - -\begin_layout Standard -Note the double quotes surrounding the addresses. -\end_layout - -\begin_layout Standard -and then added the following lines so the parport will get read and written - to. -\end_layout - -\begin_layout Quote -addf parport.1.read base-thread -\newline -addf parport.1.write base-thread -\end_layout - -\begin_layout Standard -After doing the above then run your config and verify that the parallel - port got loaded in Machine/Show Hal Configuration window. -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/pci_parallel_port_fr.lyx b/docs/src/examples/pci_parallel_port_fr.lyx deleted file mode 100644 index 06e7833ad..000000000 --- a/docs/src/examples/pci_parallel_port_fr.lyx +++ /dev/null @@ -1,128 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Deuxime port parallle -\layout Standard - -Lors de l'ajout d'un deuxime port parallle plac dans un slot PCI il est - indispensable de connatre son adresse avant de pouvoir l'utiliser avec - EMC2. - Pour trouver l'adresse de ce port, ouvrez un terminal et tapez: -\layout Standard - - -\family typewriter -\series bold -lspci -v -\layout Standard - -Vous devriez voir quelques choses comme ci-dessous parmi la liste du matriel - install en PCI: -\layout List -\labelwidthstring 00.00.0000 - -0000:00:10.0 Communication controller: NetMos Technology PCI 1 port parallel - adapter (rev 01) -\layout List -\labelwidthstring 00.00.0000 - -Subsystem: LSI Logic / Symbios Logic: Unknown device 0010 -\layout List -\labelwidthstring 00.00.0000 - -Flags: medium devsel, IRQ 11 -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at a800 [size=8] -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at ac00 [size=8] -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at b000 [size=8] -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at b400 [size=8] -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at b800 [size=8] -\layout List -\labelwidthstring 00.00.0000 - -I/O ports at bc00 [size=16] -\layout Standard - -Dans notre cas l'adresse tait la premire, nous avons donc modifi le fichier - .hal pour passer de -\layout Standard - - -\family typewriter -\series bold -loadrt hal_parport cfg=0x378 -\layout Standard - - -\layout Standard - - -\family typewriter -\series bold -loadrt hal_parport cfg="0x378 0xa800 in" -\layout Standard - -Notez les guillemets obligatoires encadrant les adresses. -\layout Standard - -Nous avons galement ajout: -\layout Standard - - -\family typewriter -\series bold -addf parport.1.read base-thread -\newline -addf parport.1.write base-thread -\layout Standard - -pour que le second port parallle soit lu et crit. -\layout Standard - -Par dfaut les 8 premires broches des ports parallles sont des sorties. - Le drapeau -\series bold -in -\series default - situ derrire l'adresse d'un port permet de les positionner comme tant - 8 entres sur ce port. -\the_end diff --git a/docs/src/examples/spindle.lyx b/docs/src/examples/spindle.lyx deleted file mode 100644 index 8a310763b..000000000 --- a/docs/src/examples/spindle.lyx +++ /dev/null @@ -1,443 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Spindle Control -\begin_inset LatexCommand index -name "Spindle Control" - -\end_inset - - -\begin_inset LatexCommand label -name "cha:Spindle-Control" - -\end_inset - - -\end_layout - -\begin_layout Section -0-10v Spindle Speed -\begin_inset LatexCommand index -name "0-10v Spindle Speed" - -\end_inset - - -\end_layout - -\begin_layout Standard -If your spindle is controlled by a VFD with a 0 to 10 volt signal and your - using a DAC card like the m5i20 to output the control signal. - -\end_layout - -\begin_layout Standard -First you need to figure the scale of spindle speed to control signal. - For this example the spindle top speed of 5000 RPM is equal to 10 volts. - -\begin_inset Formula $10/5000=0.002$ -\end_inset - - so our scale factor is 0.002 -\end_layout - -\begin_layout Standard -We have to add a scale component to the hal file to scale the motion.spindle-spee -d-out to the 0 to 10 needed by the VFD if your DAC card does not do scaling. -\end_layout - -\begin_layout LyX-Code -loadrt scale count=1 -\newline -addf scale.0 servo-thread -\newline -setp scale.0.gain 0.002 -\newline -net spindle-spee -d-scale motion.spindle-speed-out => scale.0.in -\newline -net spindle-speed-DAC scale.0.out - => -\end_layout - -\begin_layout Section -PWM Spindle Speed -\begin_inset LatexCommand index -name "PWM Spindle Speed" - -\end_inset - - -\end_layout - -\begin_layout Standard -If your spindle can be controlled by a PWM signal, use the pwmgen component - to create the signal: -\end_layout - -\begin_layout LyX-Code -loadrt pwmgen output_type=0 -\newline -addf pwmgen.update servo-thread -\newline -addf pwmgen.make-pulses - base-thread -\newline -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -\newline -net - spindle-on motion.spindle-on => pwmgen.0.enable -\newline -net spindle-pwm pwmgen.0.pwm - => parport.0.pin-09-out -\newline -# Set the spindle's top speed in RPM -\newline -setp pwmgen.0.scale - 1800 -\end_layout - -\begin_layout Standard -This assumes that the spindle controller's response to PWM is simple: 0% - PWM gives 0RPM, 10% PWM gives 180 RPM, etc. - If there is a minimum PWM required to get the spindle to turn, follow the - example in the nist-lathe sample configuration to use a scale component. - -\end_layout - -\begin_layout Section -Spindle Enable -\begin_inset LatexCommand index -name "Spindle Enable" - -\end_inset - - -\end_layout - -\begin_layout Standard -If you need a spindle enable signal link your output pin to motion.spindle-on. - To link these pins to a parallel port pin put something like the following - in your .hal file making sure you pick the pin that is connected to your - control device. -\end_layout - -\begin_layout LyX-Code -net spindle-enable motion.spindle-on => parport.0.pin-14-out -\end_layout - -\begin_layout Section -Spindle Direction -\begin_inset LatexCommand index -name "Spindle Direction" - -\end_inset - - -\end_layout - -\begin_layout Standard -If you have direction control of your spindle the hal pins motion.spindle-forward - and motion.spindle-reverse are controlled by M3 and M4. - Spindle speed "Sn" must be set to a positive non zero value for M3/4 to - turn on spindle motion. - -\end_layout - -\begin_layout Standard -To link these pins to a parallel port pin put something like the following - in your .hal file making sure you pick the pin that is connected to your - control device. -\end_layout - -\begin_layout LyX-Code -net spindle-fwd motion.spindle-forward => parport.0.pin-16-out -\newline -net spindle-rev - motion.spindle-reverse => parport.0.pin-17-out -\end_layout - -\begin_layout Section -Spindle Soft Start -\end_layout - -\begin_layout Standard -If you need to ramp your spindle speed command and your control does not - have that feature it can be done in HAL. - Basically you need to hijack the output of motion.spindle-speed-out and - run it through a limit2 component with the scale set so it will ramp the - rpm from motion.spindle-speed-out to your device that receives the rpm. - The second part is to let EMC know when the spindle is at speed so motion - can begin. -\end_layout - -\begin_layout Standard -In the 0-10 volt example the line "net spindle-speed-scale motion.spindle-speed-o -ut => scale.0.in" is changed as shown in the following example. -\end_layout - -\begin_layout LyX-Code -# load real time a limit2 and a near with names so it is easier to follow -\newline -loadrt - limit2 names=spindle-ramp -\newline -loadrt near names=spindle-at-speed -\end_layout - -\begin_layout LyX-Code -# add the functions to a thread -\newline -addf spindle-ramp servo-thread -\newline -addf spindle-at-spe -ed servo-thread -\end_layout - -\begin_layout LyX-Code -# set the parameter for max velocity -\newline -setp spindle-ramp.maxv 60 -\end_layout - -\begin_layout LyX-Code -# hijack the spindle speed out and send it to spindle ramp in -\newline -net spindle-cmd - <= motion.spindle-speed-out => spindle-ramp.in -\end_layout - -\begin_layout LyX-Code -# the output of spindle ramp is sent to the scale in -\newline -net spindle-ramped <= - spindle-ramp.out => scale.0.in -\end_layout - -\begin_layout LyX-Code -# to know when to start the motion we send the near component -\newline -# (named spindle-a -t-speed) to the spindle commanded speed from -\newline -# the signal spindle-cmd and - the actual spindle speed -\newline -# provided your spindle can accelerate at the maxv - setting. -\newline -net spindle-cmd => spindle-at-speed.in1 -\newline -net spindle-ramped => spindle-at-s -peed.in2 -\end_layout - -\begin_layout LyX-Code -# the output from spindle-at-speed is sent to motion.spindle-at-speed -\newline -# and - when this is true motion will start -\newline -net spindle-ready <= spindle-at-speed.out - => motion.spindle-at-speed -\end_layout - -\begin_layout Chapter -Spindle Feedback -\begin_inset LatexCommand index -name "Spindle Feedback" - -\end_inset - - -\begin_inset LatexCommand label -name "cha:Spindle-Feedback" - -\end_inset - - -\end_layout - -\begin_layout Section -Spindle Synchronized Motion -\begin_inset LatexCommand index -name "Spindle Synchronized Motion" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Spindle-Synchronized-Motion" - -\end_inset - - -\end_layout - -\begin_layout Standard -Spindle feedback is needed by EMC to perform any spindle coordinated motions - like threading and constant surface speed. - The StepConf Wizard can perform the connections for you if you select Encoder - Phase A and Encoder Index as inputs. -\end_layout - -\begin_layout Standard -Hardware assumptions: -\end_layout - -\begin_layout Itemize -An encoder is connected to the spindle and puts out 100 pulses per revolution - on phase A -\end_layout - -\begin_layout Itemize -The encoder A phase is connected to the parallel port pin 10 -\end_layout - -\begin_layout Itemize -The encoder index pulse is connected to the parallel port pin 11 -\end_layout - -\begin_layout Standard -Basic Steps to add the components and configure them: -\end_layout - -\begin_layout LyX-Code -loadrt encoder num_chan=1 -\newline -addf encoder.update-counters base-thread -\newline -addf encoder.capt -ure-position servo-thread -\newline -setp encoder.0.position-scale 100 -\newline -net spindle-position - encoder.0.position => motion.spindle-revs -\newline -net spindle-velocity encoder.0.velocity - => motion.spindle-speed-in -\newline -net spindle-index-enable encoder.0.index-enable - <=> motion.spindle-index-enable -\newline -net spindle-phase-a encoder.0.phase-A -\newline -net spindle-ph -ase-b encoder.0.phase-B -\newline -net spindle-index encoder.0.phase-Z -\newline -net spindle-phase-a - <= parport.0.pin-10-in -\newline -net spindle-index <= parport.0.pin-11-in -\end_layout - -\begin_layout Section -Spindle At Speed -\begin_inset LatexCommand index -name "Spindle At Speed" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Spindle-At-Speed" - -\end_inset - - -\end_layout - -\begin_layout Standard -To enable EMC to wait for the spindle to be at speed before executing a - series of moves you need to set motion.spindle-at-speed to true when the - spindle is at the commanded speed. - To do this you need spindle feedback from an encoder. - Since the feedback and the commanded speed are not usually -\series bold -exactly -\series default - the same you need to use the "near" component to say that the two numbers - are close enough. - The connections needed are from the spindle velocity command signal to - near.n.in1 and from the spindle velocity from the encoder to near.n.in2. - Then the near.n.out is connected to motion.spindle-at-speed. - The near.n.scale needs to be set to say how close the two numbers must be - before turning on the output. - Depending on your setup you may need to adjust the scale to work with your - hardware. - The following is typical of the additions needed to your hal file to enable - Spindle At Speed. - If you already have near in your hal file then increase the count and adjust - code to suit. - Check to make sure the signal names are the same in your hal file. -\end_layout - -\begin_layout LyX-Code -loadrt near -\end_layout - -\begin_layout LyX-Code -addf near.0 servo-thread -\end_layout - -\begin_layout LyX-Code -net spindle-cmd near.0.in1 -\end_layout - -\begin_layout LyX-Code -net spindle-velocity near.0.in2 -\end_layout - -\begin_layout LyX-Code -net spindle-at-speed motion.spindle-at-speed <= near.0.out -\end_layout - -\begin_layout LyX-Code -setp near.0.scale 1.01 -\end_layout - -\end_body -\end_document diff --git a/docs/src/examples/spindle_fr.lyx b/docs/src/examples/spindle_fr.lyx deleted file mode 100644 index 62b25fd85..000000000 --- a/docs/src/examples/spindle_fr.lyx +++ /dev/null @@ -1,295 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize 10 -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Contrle de la broche -\layout Section - -Vitesse broche en 0-10V -\layout Standard - -Si la vitesse de votre broche est contrle par un variateur de frquence - avec une consigne vitesse en 0 10V et que vous utilisez une carte de - conversion (DAC) comme la m5i20 pour sortir le signal. - -\layout Standard - -Premirement vous devez calculer le facteur d'chelle entre la vitesse broche - et la tension de commande. - Dans cet exemple, la vitesse maximale de la broche sera de 5000 tr/mn pour - une tension de commande de 10V. - -\begin_inset Formula $10/5000=0.002$ -\end_inset - - notre facteur d'chelle sera donc de 0.002 -\layout Standard - -Si votre carte DAC ne dispose pas d'une fonction chelle, nous devrons ajouter - un composant -\begin_inset Quotes fld -\end_inset - -scale -\begin_inset Quotes frd -\end_inset - - (echelle) au fichier hal pour calibrer -\begin_inset Quotes fld -\end_inset - -motion.spindle-speed-out -\begin_inset Quotes frd -\end_inset - - entre 0 et 10 comme demand par le variateur de frquence. -\layout Quote - - -\series bold -loadrt scale count=1 -\layout Quote - - -\series bold -addf scale.0 servo-thread -\layout Quote - - -\series bold -setp scale.0.gain 0.002 -\layout Quote - - -\series bold -net spindle-speed-scale motion.spindle-speed-out => scale.0.in -\layout Quote - - -\series bold -net spindle-speed-DAC scale.0.out => -\layout Section - -Vitesse de broche en PWM -\layout Standard - -Si la vitesse de votre broche peut tre contrle par un signal de PWM, - utilisez le composant -\begin_inset Quotes fld -\end_inset - -pwmgen -\begin_inset Quotes frd -\end_inset - - pour crer le signal: -\layout Quote - - -\series bold -loadrt pwmgen output_type=0 -\layout Quote - - -\series bold -addf pwmgen.update servo-thread -\layout Quote - - -\series bold -addf pwmgen.make-pulses base-thread -\layout Quote - - -\series bold -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -\layout Quote - - -\series bold -net spindle-on motion.spindle-on => pwmgen.0.enable -\layout Quote - - -\series bold -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -\layout Quote - - -\series bold -setp pwmgen.0.scale 1800 # Adaptez selon la vitesse maximale de votre broche - en tr/mn -\layout Standard - -La rponse du contrleur de PWM est simple: 0% donne 0tr/mn, 10% donnent - 180 tr/mn... - 100% donnent 1800 tr/mn. - Si un minimum est ncessaire pour faire tourner la broche, suivez l'exemple - -\begin_inset Quotes fld -\end_inset - -nist-lathe -\begin_inset Quotes frd -\end_inset - - fourni dans les exemples de configuration pour ajouter un composant d'chelle. - -\layout Section - -Marche broche -\layout Standard - -Si vous voulez un signal de marche broche reliant -\begin_inset Quotes fld -\end_inset - -motion.spindle-on -\begin_inset Quotes frd -\end_inset - - une broche de sortie physique. - Pour relier ces pins une broche du port parallle, ajouter une ligne - comme la suivante dans votre fichier .hal, il faut bien sr qu'elle soit - cble votre interface de contrle. -\layout Quote - - -\series bold -net spindle-enable motion.spindle-on => parport.0.pin-14-out -\layout Section - -Sens de rotation de la broche -\layout Standard - -Si vous voulez contrler le sens de rotation de votre broche, les pins de - HAL -\begin_inset Quotes fld -\end_inset - -motion.spindle-forward -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -motion.spindle-reverse -\begin_inset Quotes frd -\end_inset - - tant contrles par M3 et M4, peuvent tre mise une valeur positive - diffrente de zro pour que M3/4 inverse le sens de la broche. - -\layout Standard - -Pour relier ces pins des broches du port parallle utilisez, par exemple, - les lignes suivantes dans votre fichier .hal, bien sr ces broches doivent - tre cbles votre interface de contrle. -\layout Quote - - -\series bold -net spindle-fwd motion.spindle-forward -> parport.0.pin-16-out -\layout Quote - - -\series bold -net spindle-rev motion.spindle-reverse => parport.0.pin-17-out -\layout Chapter - -Vitesse de broche avec signal de retour -\layout Standard - -Une information de retour est ncessaire pour qu'EMC puisse raliser les - mouvements synchroniss avec la broche comme le filetage ou la vitesse - de coupe constante. - L'assistant de configuration StepConf peut raliser les connections lui - mme si les signaux -\begin_inset Quotes fld -\end_inset - -Canal A codeur broche -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Index codeur broche -\begin_inset Quotes frd -\end_inset - - sont choisis parmi les entres. -\layout Standard - -Matriel suppos prsent: -\layout Itemize - -Un codeur est mont sur la broche et dlivre 100 impulsions par tour sur - son canal A. -\layout Itemize - -Ce canal A est raccord la pin 10 du port parallle. -\layout Itemize - -L'index de ce codeur est connect la pin 11 du port parallle. -\layout Standard - -Configuration de base pour ajouter ces composants: -\layout Quote - - -\series bold -loadrt encoder num_chan=1 -\newline -addf encoder.update-counters base-thread -\newline -addf encoder.capture-position servo-thread -\newline -setp encoder.0.position-scale 100 -\newline -setp encoder.0.counter-mode 1 -\newline -net spindle-position encoder.0.position => motion.spindle-revs -\newline -net spindle-velocity encoder.0.velocity => motion.spindle-speed-in -\newline -net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable -\newline -net spindle-phase-a encoder.0.phase-A -\newline -net spindle-phase-b encoder.0.phase-B -\newline -net spindle-index encoder.0.phase-Z -\newline -net spindle-phase-a <= parport.0.pin-10-in -\newline -net spindle-index <= parport.0.pin-11-in -\the_end diff --git a/docs/src/gcode/coordinates.lyx b/docs/src/gcode/coordinates.lyx deleted file mode 100644 index 4e76cf66f..000000000 --- a/docs/src/gcode/coordinates.lyx +++ /dev/null @@ -1,966 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage{a4} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Coordinate System -\begin_inset LatexCommand index -name "Coordinate System" - -\end_inset - - -\begin_inset LatexCommand label -name "cha:Coordinate-System" - -\end_inset - - -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -You have seen how handy a tool length offset can be. - Having this allows the programmer to ignore the actual tool length when - writing a part program. - In the same way, it is really nice to be able to find a prominent part - of a casting or block of material and work a program from that point rather - than having to take account of the location at which the casting or block - will be held during the machining. -\end_layout - -\begin_layout Standard -This chapter introduces you to offsets as they are used by the EMC. - These include; -\end_layout - -\begin_layout Itemize -machine coordinates (G53) -\end_layout - -\begin_layout Itemize -nine fixture offsets (G54-G59.3) -\end_layout - -\begin_layout Itemize -global offsets (G92) -\end_layout - -\begin_layout Section -The Machine Position Command (G53) -\end_layout - -\begin_layout Standard -Regardless of any offsets that may be in effect, putting a G53 in a block - of code tells the interpreter to go to the real or absolute axis positions - commanded in the block. - For example -\end_layout - -\begin_layout Quote -g53 g0 x0 y0 z0 -\end_layout - -\begin_layout Standard -will get you to the actual position where these three axes are zero. - You might use a command like this if you have a favorite position for tool - changes or if your machine has an auto tool changer. - You might also use this command to get the tool out of the way so that - you can rotate or change a part in a vice. - -\end_layout - -\begin_layout Standard -G53 is not a modal command. - It must be used on each line where motion based upon absolute machine position - is desired. - -\end_layout - -\begin_layout Section -Fixture Offsets (G54-G59.3) -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/offsets.png - display color - width 80text% - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Fixture Offsets -\begin_inset LatexCommand label -name "cap:Fixture-Offsets" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Work or fixture offset are used to make a part home that is different from - the absolute, machine coordinate system. - This allows the part programmer to set up home positions for multiple parts. - A typical operation that uses fixture offsets would be to mill multiple - copies of parts on multiple part holders or vises. -\end_layout - -\begin_layout Standard -The values for offsets are stored in the VAR file that is requested by the - INI file during the startup of an EMC. - In our example below we'll use -\begin_inset LatexCommand index -name "G55" - -\end_inset - -G55. - The values for each axis for G55 are stored as variable numbers. - -\end_layout - -\begin_layout Quote -5241\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5242\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5243\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5244\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5245\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5246\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Standard -In the VAR file scheme, the first variable number stores the X offset, the - second the Y offset and so on for all six axes. - There are numbered sets like this for each of the fixture offsets. - -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -This needs to be updated! -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each of the graphical interfaces has a way to set values for these offsets. - You can also set these values by editing the VAR file itself and then restartin -g EMC so that the EMC reads the new values however this is not the recommended - way. - G10, G92, G28.1, etc are better ways to affect variables. - For our example let's directly edit the file so that G55 takes on the following - values. -\end_layout - -\begin_layout Quote -5241\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 2.000000 -\end_layout - -\begin_layout Quote -5242\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 1.000000 -\end_layout - -\begin_layout Quote -5243\InsetSpace ~ -\InsetSpace ~ - -2.000000 -\end_layout - -\begin_layout Quote -5244\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5245\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5246\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Standard -You should read this as moving the zero positions of G55 to X = 2 units, - Y= 1 unit, and Z = -2 units away from the absolute zero position. -\end_layout - -\begin_layout Standard -Once there are values assigned, a call to G55 in a program block would shift - the zero reference by the values stored. - The following line would then move each axis to the new zero position. - Unlike G53, G54 through G59.3 are modal commands. - They will act on all blocks of code after one of them has been set. - The program that might be run using figure -\begin_inset LatexCommand ref -reference "cap:Fixture-Offsets" - -\end_inset - - would require only a single coordinate reference for each of the locations - and all of the work to be done there. - The following code is offered as an example of making a square using the - G55 offsets that we set above. -\end_layout - -\begin_layout Quote -G55 G0 x0 y0 z0 -\end_layout - -\begin_layout Quote -g1 f2 z-0.2000 -\end_layout - -\begin_layout Quote -x1 -\end_layout - -\begin_layout Quote -y1 -\end_layout - -\begin_layout Quote -x0 -\end_layout - -\begin_layout Quote -y0 -\end_layout - -\begin_layout Quote -g0 z0 -\end_layout - -\begin_layout Quote -g54 x0 y0 z0 -\end_layout - -\begin_layout Quote -m2 -\end_layout - -\begin_layout Standard -"But," you say, "why is there a G54 in there near the end." Many programmers - leave the G54 coordinate system with all zero values so that there is a - modal code for the absolute machine based axis positions. - This program assumes that we have done that and use the ending command - as a command to machine zero. - It would have been possible to use g53 and arrive at the same place but - that command would not have been modal and any commands issued after it - would have returned to using the G55 offsets because that coordinate system - would still be in effect. -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G54" - -\end_inset - -G54\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 1 -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G55" - -\end_inset - -G55\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 2 -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G56" - -\end_inset - -G56\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 3 -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G57" - -\end_inset - -G57\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 4 -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G58" - -\end_inset - -G58\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 5 -\end_layout - -\begin_layout Quote -\begin_inset LatexCommand index -name "G59" - -\end_inset - -G59\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 6 -\end_layout - -\begin_layout Quote -G59.1 -\begin_inset LatexCommand index -name "G59.1" - -\end_inset - -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 7 -\end_layout - -\begin_layout Quote -G59.2 -\begin_inset LatexCommand index -name "G59.2" - -\end_inset - -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 8 -\end_layout - -\begin_layout Quote -G59.3 -\begin_inset LatexCommand index -name "G59.3" - -\end_inset - -\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ -use preset work coordinate system 9 -\end_layout - -\begin_layout Subsection -Default coordinate system -\end_layout - -\begin_layout Standard -One other variable in the VAR file becomes important when we think about - offset systems. - This variable is named 5220. - In the default files its value is set to 1.00000. - This means that when the EMC starts up it should use the first coordinate - system as its default. - If you set this to 9.00000 it would use the ninth offset system as its default - for start up and reset. - Any value other than an integer (decimal really) between 1 and 9, or a - missing 5220 variable will cause the EMC to revert to the default value - of 1.00000 on start up. - -\end_layout - -\begin_layout Subsection -Setting coordinate system values within G-code. -\end_layout - -\begin_layout Standard -In the general programming chapter we listed a G10 command word. - This command can be used to change the values of the offsets in a coordinate - system. - (add here) -\end_layout - -\begin_layout Section -G92 -\begin_inset LatexCommand index -name "G92" - -\end_inset - - Offsets -\begin_inset LatexCommand label -name "sec:G92-Offsets" - -\end_inset - - -\end_layout - -\begin_layout Standard -The way that it works has changed just a bit from the early days to the - current releases. - It should be thought of as a temporary offset that is applied to all other - offsets. - -\end_layout - -\begin_layout Subsection -The G92 commands -\end_layout - -\begin_layout Standard -This set of commands include; -\end_layout - -\begin_layout Description -G92 This command, when used with axis names, sets values to offset variables. -\end_layout - -\begin_layout Description -G92.1 -\begin_inset LatexCommand index -name "G92.1" - -\end_inset - - This command sets zero values to the g92 variables. -\end_layout - -\begin_layout Description -G92.2 -\begin_inset LatexCommand index -name "G92.2" - -\end_inset - - This command suspends but does not zero out the g92 variables. -\end_layout - -\begin_layout Description -G92.3 -\begin_inset LatexCommand index -name "G92.3" - -\end_inset - - This command applies offset values that have been suspended. -\end_layout - -\begin_layout Standard -When the commands are used as described above, they will work pretty much - as you would expect. -\end_layout - -\begin_layout Quote -A user must understand the correct ways that the g92 values work. - They are set based upon the location of each axis when the g92 command - is invoked. - The NIST document is clear that, "To make the -\noun on - -\noun default -current point have the coordinates" x0, y0, and z0 you would use g92 x0 - y0 z0. - G92 -\emph on -does not work from absolute machine coordinates -\emph default -. - It works from -\emph on -current location -\emph default -. - -\end_layout - -\begin_layout Quote -G92 also works from current location as modified by any other offsets that - are in effect when the g92 command is invoked. - While testing for differences between work offsets and actual offsets it - was found that a g54 offset could cancel out a g92 and thus give the appearance - that no offsets were in effect. - However, the g92 was still in effect for all coordinates and did produce - expected work offsets for the other coordinate systems. - -\end_layout - -\begin_layout Quote -It is likely that the absence of home switches and proper home procedures - will result in very large errors in the application of g92 values if they - exist in the var file. - Many EMC users do not have home switches in place on their machines. - For them home should be found by moving each axis to a location and issuing - the home command. - When each axis is in a known location, the home command will recalculate - how the g92 values are applied and will produce consistent results. - Without a home sequence, the values are applied to the position of the - machine when the EMC begins to run. -\end_layout - -\begin_layout Subsection -Setting G92 values -\end_layout - -\begin_layout Standard -There are at least two ways to set G92 values. -\end_layout - -\begin_layout Itemize -right mouse click on position displays of tkemc will popup a window into - which you can type a value. - -\end_layout - -\begin_layout Itemize -the g92 command -\end_layout - -\begin_layout Standard -Both of these work from the current location of the axis to which the offset - is to be applied. - -\end_layout - -\begin_layout Quote -Issuing g92 x y z a b c does in fact set values to the g92 variables such - that each axis takes on the value associated with its name. - These values are assigned to the current position of the machine axis. - These results satisfy paragraphs one and two of the NIST document. -\end_layout - -\begin_layout Quote -G92 commands work from current axis location and add and subtract correctly - to give the current axis position the value assigned by the g92 command. - The effects work even though previous offsets are in. -\end_layout - -\begin_layout Standard -So if the X axis is currently showing 2.0000 as its position a G92 x0 will - set an offset of -2.0000 so that the current location of X becomes zero. - A G92 X2 will set an offset of 0.0000 and the displayed position will not - change. - A G92 X5.0000 will set an offset of 3.0000 so that the current displayed - position becomes 5.0000. - -\end_layout - -\begin_layout Subsection -G92 Cautions -\end_layout - -\begin_layout Standard -Sometimes the values of a G92 offset will remain in the VAR file. - This can happen when a file is aborted during processing that has G92 offsets - in effect. - When this happens reset or a startup will cause them to become active again. - The variables are named -\end_layout - -\begin_layout Quote -5211\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5212\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5213\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5214\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5215\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Quote -5216\InsetSpace ~ -\InsetSpace ~ -\InsetSpace ~ - 0.000000 -\end_layout - -\begin_layout Standard -where 5211 is the X axis offset and so on. - If you are seeing unexpected positions as the result of a commanded move, - as a result of storing an offset in a previous progam and not clearing - them at the end then issue a G92.1 in the MDI widow to clear the stored - offsets. -\end_layout - -\begin_layout Standard -If G92 values exist in the VAR file when the EMC starts up the g92 values - in the var file is that it will apply the values to current location of - each axis. - If this is home position and home position is set as machine zero everything - will be correct. - Once home has been established using real machine switches or moving each - axis to a known home position and issuing an axis home command any G92 - offsets will be applied. - If you have a G92 X1 in effect when you home the X axis the DRO will read - "X: 1.000" instead of the expected "X: 0.000" because the G92 was applied - to the machine origin. - If you issue a G92.1 and the DRO now reads all zeros then you had a G92 - offset in effect when you last ran EMC. -\end_layout - -\begin_layout Standard -Unless your intention is to use the same G92 offsets in the next program - best practice is to issue a G92.1 at the end of any G Code files where you - use G92 offsets. -\end_layout - -\begin_layout Section -Sample Program Using Offsets -\end_layout - -\begin_layout Standard -This sample engraving project mills a set of four .1 radius circles in roughly - a star shape around a center circle. - We can setup the individual circle pattern like this. -\end_layout - -\begin_layout Quote -\noindent -G10 L2 P1 x0 y0 z0 (ensure that g54 is set to machine zero) -\end_layout - -\begin_layout Quote -\noindent -g0 x-.1 y0 z0 -\end_layout - -\begin_layout Quote -\noindent -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -\noindent -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -\noindent -g0 z0 -\end_layout - -\begin_layout Quote -m2 -\end_layout - -\begin_layout Standard -We can issue a set of commands to create offsets for the four other circles - like this. -\end_layout - -\begin_layout Quote -G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) -\end_layout - -\begin_layout Standard -We put these together in the following program. -\end_layout - -\begin_layout Quote -(a program for milling five small circles in a diamond shape) -\end_layout - -\begin_layout Quote -G10 L2 P1 x0 y0 z0 (ensure that g54 is machine zero) -\end_layout - -\begin_layout Quote -G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) -\end_layout - -\begin_layout Quote -G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) -\end_layout - -\begin_layout Quote -g54 g0 x-.1 y0 z0 (center circle) -\end_layout - -\begin_layout Quote -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -g0 z0 -\end_layout - -\begin_layout Quote -g55 g0 x-.1 y0 z0 (first offset circle) -\end_layout - -\begin_layout Quote -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -g0 z0 -\end_layout - -\begin_layout Quote -g56 g0 x-.1 y0 z0 (second offset circle) -\end_layout - -\begin_layout Quote -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -g0 z0 -\end_layout - -\begin_layout Quote -g57 g0 x-.1 y0 z0 (third offset circle) -\end_layout - -\begin_layout Quote -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -g0 z0 -\end_layout - -\begin_layout Quote -g58 g0 x-.1 y0 z0 (fourth offset circle) -\end_layout - -\begin_layout Quote -g1 f1 z-.25 -\end_layout - -\begin_layout Quote -g3 x-.1 y0 i.1 j0 -\end_layout - -\begin_layout Quote -g54 g0 x0 y0 z0 -\end_layout - -\begin_layout Quote -m2 -\end_layout - -\begin_layout Standard -Now comes the time when we might apply a set of G92 offsets to this program. - You'll see that it is running in each case at z0. - If the mill were at the zero position, a g92 z1.0000 issued at the head - of the program would shift everything down an inch. - You might also shift the whole pattern around in the XY plane by adding - some x and y offsets with g92. - If you do this you should add a G92.1 command just before the m2 that ends - the program. - If you do not, other programs that you might run after this one will also - use that g92 offset. - Furthermore it would save the g92 values when you shut down the EMC and - they will be recalled when you start up again. -\end_layout - -\end_body -\end_document diff --git a/docs/src/gcode/coordinates_fr.lyx b/docs/src/gcode/coordinates_fr.lyx deleted file mode 100644 index 0858cc0aa..000000000 --- a/docs/src/gcode/coordinates_fr.lyx +++ /dev/null @@ -1,955 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble - -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Systmes de coordonnes et dcalage G92 -\layout Section - -Introduction -\layout Standard - -Vous avez vu comme il est pratique d'utiliser la compensation de longueur - d'outil, elle vite au programmeur d'avoir connaitre en tout temps la - hauteur de l'outil quand il crit un programme. - De la mme manire, il est trs intressant d'utiliser un point de rfrence - sur le brut ou la pice et de faire travailler le programme partir de - ce point, sans avoir tenir compte d'o est place la pice sur la machine - pendant l'usinage. -\layout Standard - -Ce chapitre va introduire les dcalages et comment ils sont utiliss par - EMC. - Ce qui inclus: -\layout Itemize - -Les coordonnes machine (G53 -\begin_inset LatexCommand \index{G53} - -\end_inset - -) -\layout Itemize - -Les neuf dcalages d'origine pice (G54 G59.3 -\begin_inset LatexCommand \index{G54} - -\end_inset - - -\begin_inset LatexCommand \index{G55} - -\end_inset - - -\begin_inset LatexCommand \index{G56} - -\end_inset - - -\begin_inset LatexCommand \index{G57} - -\end_inset - - -\begin_inset LatexCommand \index{G58} - -\end_inset - - -\begin_inset LatexCommand \index{G59} - -\end_inset - - -\begin_inset LatexCommand \index{G59.1} - -\end_inset - - -\begin_inset LatexCommand \index{G59.2} - -\end_inset - - -\begin_inset LatexCommand \index{G59.3} - -\end_inset - - ) -\layout Itemize - -Un jeu de dcalages globaux (G92 -\begin_inset LatexCommand \index{G92} - -\end_inset - -). -\layout Section - -Commande en coordonnes machine: G53 -\layout Standard - -Indpendamment de tout dcalage pouvant tre actif, un G53 -\begin_inset LatexCommand \index{G53} - -\end_inset - - dans une ligne de code indique l'interprteur de se dplacer aux positions - relles des axes (positions absolues), commandes dans la ligne. - Par exemple: -\layout Standard - -G53 G0 X0 Y0 Z0 -\layout Standard - -dplacera le mobile depuis la position actuelle vers la position o les - coordonnes machine des trois axes seront zro. - Vous pouvez utiliser cette commande si vous avez une position fixe pour - le changement d'outil ou si votre machine dispose d'un changeur automatique. - Vous pouvez aussi utiliser cette commande pour dgager la zone de travail - et accder la pice dans l'tau. - -\layout Standard - -G53 est une commande non modale. - Elle doit tre utilise sur chaque ligne o un mouvement bas sur les coordonn -es machine est souhait. - -\layout Section - -Dcalages pice (G54 G59.3 -\begin_inset LatexCommand \index{G54} - -\end_inset - - -\begin_inset LatexCommand \index{G55} - -\end_inset - - -\begin_inset LatexCommand \index{G56} - -\end_inset - - -\begin_inset LatexCommand \index{G57} - -\end_inset - - -\begin_inset LatexCommand \index{G58} - -\end_inset - - -\begin_inset LatexCommand \index{G59} - -\end_inset - - -\begin_inset LatexCommand \index{G59.1} - -\end_inset - - -\begin_inset LatexCommand \index{G59.2} - -\end_inset - - -\begin_inset LatexCommand \index{G59.3} - -\end_inset - -) -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename images/offsets.png - display color - width 80text% - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:decalages-ilots} - -\end_inset - -Dcalages pour 8 ilots -\end_inset - - -\layout Standard - - -\begin_inset Note -collapsed true - -\layout Standard - -Ndt: le terme anglais fixture, souvent rencontr, signifie porte-pice. -\end_inset - - -\layout Standard - -Le dcalage d'origine est utilis pour sparer le point de rfrence de - la pice, de l'origine machine, crant ainsi un systme de coordonnes - (relatif), propre chaque pice et spar du systme de coordonnes machine - (absolu). - Il permet, entre autre, dans le cas de pices multiples mais semblables, - de crer en dcalant ses origine, le systme de coordonnes de chaque pice, - le programme restant le mme. - Un cas typique d'utilisation de cette fonctionnalit, pour usiner huit - ilots identiques sur la mme pice est illustr sur la figure -\begin_inset LatexCommand \ref{fig:decalages-ilots} - -\end_inset - - -\layout Standard - -Les valeurs des dcalages sont enregistres dans le fichier VAR qui est - requis par le fichier INI durant le dmarrage d'EMC. - Dans l'exemple ci-dessous qui utilise -\begin_inset LatexCommand \index{G55} - -\end_inset - -G55 la valeur de chacun des axes de G55 est enregistre dans une variable - numrote. - -\layout Quote - -5241\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5242\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5243\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5244\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5245\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5246\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Standard - -Dans le schma d'un fichier VAR, la premire variable contient la valeur - du dcalage de l'axe X, la seconde variable le dcalage de l'axe Y et ainsi - de suite pour les six axes. - Il y a une srie de variables de ce genre pour chacun des dcalages pice. - -\layout Standard - -Chacune des interfaces graphiques offre un moyen de fixer les valeurs de - ces dcalages. - Vous pouvez galement dfinir ces valeurs en modifiant le fichier VAR lui-mme, - puis faire un [reset], pour qu' EMC lise les nouvelles valeurs. - Pour notre exemple, nous allons diter directement le fichier pour que - G55 prenne les valeurs suivantes: -\layout Quote - -5241\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 2.000000 -\layout Quote - -5242\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 1.000000 -\layout Quote - -5243\SpecialChar ~ -\SpecialChar ~ - -2.000000 -\layout Quote - -5244\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5245\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5246\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Standard - -Vous pouvez voir que les positions zro de G55 sont passes en X=2, Y=1 - et Z=-2 loignes donc de l'origine absolue (machine). -\layout Standard - -Une fois que les valeurs sont assignes, un appel de G55 dans une ligne - de programme dcalera le point de rfrence zro, l'origine, vers les valeurs - enregistres. - La ligne suivante dcalera chacun des axes vers sa nouvelle position d'origine. - Contrairement G53, les commandes G54 G59.3 sont modales. - Elles agissent sur toutes les lignes de g-code du programme aprs qu'une - ait t rencontre. - Voyons le programme qui pourrait tre crit l'aide de la figure -\begin_inset LatexCommand \ref{fig:decalages-ilots} - -\end_inset - -, il suffira d'un seul point de rfrence pour chacune des pices pour faire - tout le travail. - Le code suivant est propos comme exemple pour faire un rectangle, il utilisera - les dcalages G55 que nous avons expliqu ci-dessus. -\layout Quote - -G55 G0 x0 y0 z0 -\layout Quote - -g1 f2 z-0.2000 -\layout Quote - -x1 -\layout Quote - -y1 -\layout Quote - -x0 -\layout Quote - -y0 -\layout Quote - -g0 z0 -\layout Quote - -g54 x0 y0 z0 -\layout Quote - -m2 -\layout Standard - - -\begin_inset Quotes eld -\end_inset - -Mais, -\begin_inset Quotes erd -\end_inset - - dites vous, -\begin_inset Quotes eld -\end_inset - -pourquoi y a-t-il un G54 vers la fin ? -\begin_inset Quotes erd -\end_inset - - C'est une pratique courante de quitter le systme de coordonnes G54 avec - l'ensemble des valeurs d'axes zro afin de laisser un code modal bas - sur les positions machine absolues. - Nous le faisons avec cette commande qui met la machine zro. - Il aurait t possible d'utiliser G53 et d'arriver au mme endroit, mais - la commande n'aurait pas t modale, les commandes suivantes auraient voulu - retourner dans le systme de coordonnes du G55 toujours actif. - -\layout Quote - - -\begin_inset LatexCommand \index{G54} - -\end_inset - -G54\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 1 -\layout Quote - - -\begin_inset LatexCommand \index{G55} - -\end_inset - -G55\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 2 -\layout Quote - - -\begin_inset LatexCommand \index{G56} - -\end_inset - -G56\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 3 -\layout Quote - - -\begin_inset LatexCommand \index{G57} - -\end_inset - -G57\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 4 -\layout Quote - - -\begin_inset LatexCommand \index{G58} - -\end_inset - -G58\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 5 -\layout Quote - - -\begin_inset LatexCommand \index{G59} - -\end_inset - -G59\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 6 -\layout Quote - -G59.1 -\begin_inset LatexCommand \index{G59.1} - -\end_inset - -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 7 -\layout Quote - -G59.2 -\begin_inset LatexCommand \index{G59.2} - -\end_inset - -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 8 -\layout Quote - -G59.3 -\begin_inset LatexCommand \index{G59.3} - -\end_inset - -\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ -utilise les rglages du systme de coordonnes 9 -\layout Subsection - -Systme de coordonnes par dfaut -\layout Standard - -Une autre variable dans le fichier VAR joue un rle important dans les dcalages -, c'est la variable 5220. - Dans les fichiers par dfaut, sa valeur est fixe 1,00000. - Ce qui signifie que lorsque EMC dmarre, il doit utiliser le premier systme - de coordonnes comme systme par dfaut. - Si vous dfinissez celui-ci 9,00000 le neuvime systme dcal sera utilis - par dfaut au dmarrage du systme et aux rinitialisations. - Toute valeur autre qu'un entier compris entre 1 et 9, ou l'absence de la - variable 5220, provoquera au dmarrage le retour d'EMC la valeur par - dfaut de 1.00000. -\layout Subsection - -Rglage des dcalages avec G10 -\layout Standard - -La commande G10 L- peut tre utilise pour modifier les valeurs des dcalages - dans un systme de coordonnes. - (add here) -\layout Section - -G92 -\begin_inset LatexCommand \index{G92} - -\end_inset - - Dcalages d'axes -\layout Standard - -G92 est la plus incomprise et la plus maligne des commandes programmables - avec EMC. - La faon dont elle fonctionne a un peu chang entre les premires versions - et l'actuelle. - Ces changements ont sans doute dconcert de nombreux utilisateurs. - Elle devrait tre vue comme une commande produisant un dcalage temporaire, - qui s'applique tous les autres dcalages. - -\layout Standard - -En rponse une critique de cette commande, Ray Henry l'a tudie en comparant - la faon dont les auteurs de l'interprteur s'attendaient ce qu'elle - fonctionne et la faon dont elle fonctionnait sur sa mini-fraiseuse Grizzly. - Dans les paragraphes ci-dessous, entre guillemets, vous trouverez des extraits - de son document, disponible sur -\begin_inset LatexCommand \url{http://www.linuxcnc.org} - -\end_inset - -. -\layout Subsection - -Les commandes G92 -\layout Standard - -Ce jeu de commandes inclus: -\layout Description - -G92 Cette commande, utilise avec des mots d'axes, fixe les valeurs des - variables de dcalage. -\layout Description - -G92.1 -\begin_inset LatexCommand \index{G92.1} - -\end_inset - - Cette commande met zro les valeurs des variables de g92. -\layout Description - -G92.2 -\begin_inset LatexCommand \index{G92.2} - -\end_inset - - Cette commande suspend, sans les mettre zro, les variables de g92. -\layout Description - -G92.3 -\begin_inset LatexCommand \index{G92.3} - -\end_inset - - Cette commande applique les valeurs de dcalage qui ont t suspendues. -\layout Standard - -Lorsque les commandes sont utilises comme dcrit ci-dessus, elles fonctionneron -t peu prs comme vous vous y attendiez. -\layout Quote - -L'utilisateur doit bien comprendre le fonctionnement des valeurs de g92. - Elles sont bases sur l'emplacement de chaque axe au moment o la commande - g92 est invoque. - Le document du NIST est clair, `` pour faire en sorte que le point actuel - ait les coordonnes'' x0, y0 et z0 nous utiliserons g92 x0 y0 z0. - G92 -\emph on -ne fonctionne pas depuis le systme de coordonnes machine absolues -\emph default -. - -\emph on -Il fonctionne partir de l'emplacement actuel. -\layout Quote - -G92 travaille galement partir d'un emplacement actuel dj modifi par - tout autre dcalage actif au moment o la commande g92 est invoque. - Lors de test des diffrences entre les dcalages de travail et les dcalages - rels, il a t constat qu'un dcalage g54 pouvait annuler un g92 et ainsi, - donner l'apparence qu'aucun dcalage n'tait actif. - Toutefois, le g92 tait toujours actif, pour toutes les coordonnes et - il a produit les dcalages attendus pour tous les autres systmes de coordonne -s. -\layout Quote - -Il est probable que l'absence de contact d'origine machine et d'une bonne - procdure de prise d'origine machine se traduira par de trs grandes erreurs - dans l'application des valeurs de g92 si elles existent dans le fichier - VAR. - Beaucoup d'utilisateurs d'EMC n'ont pas de contact d'origine machine sur - leurs machines. - Pour eux, l'origine machine devrait tre trouve en dplaant chaque axe - l'emplacement suppos et en utilisant la commande de prise d'origine. - Lorsque chaque axe est dans une position connue, la commande de prise d'origine - recalculera comment les valeurs de g92 doivent tre appliques pour produire - des rsultats cohrents. - Sans squence de prise d'origine machine, les valeurs sont appliques - la position de la machine au dmarrage d'EMC. -\layout Subsection - -Rglage des valeurs de G92 -\layout Standard - -Il y a au moins deux faons d'tablir les valeurs de G92. -\layout Itemize - -Par un clic droit de la souris sur les afficheurs de position de tkemc, - une fentre s'ouvre dans laquelle il est possible de saisir une valeur. - -\layout Itemize - -Par la commande G92. -\layout Standard - -Toutes les deux, fonctionnent depuis l'emplacement courant de l'axe auquel - le dplacement doit tre appliqu. - -\layout Quote - -Programmer g92 x- y- z- a- b- c- fixe les valeurs des variables de G92 de - sorte que chaque axe prenne la valeur associe son nom. - Ces valeurs sont assignes la position courante des axes. - Ces rsultats satisfont les paragraphes un et deux du document du NIST. -\layout Quote - -Les commandes G92 fonctionnent partir de la position courante de l'axe, - laquelle elles ajoutent ou soustraient des valeurs pour donner la position - courante la valeur assigne par la commande g92. - Elles prennent effet mme si d'autres dcalages sont dj actifs. -\layout Standard - -Ainsi, si l'axe X est actuellement en position X=2.0000, un G92 x0 fixera - un dcalage de -2.0000, de sorte que l'emplacement actuel de X devienne - X=0.0000. - Un nouveau G92 X5.0000 fixera un dcalage de 3.0000 et l'affichage indiquera - une position courante X=5.0000. - -\layout Standard - -Maintenant, un G92 X5 fixera un dcalage de 0.0000 et l'affichage ne changera - pas. -\layout Subsection - -Prudence avec G92 -\layout Standard - -Parfois, les valeurs de dcalage d'un G92 restent bloques dans le fichier - VAR. - Quand a arrive, une r-initialisation ou un redmarrage peut les rendre - de nouveau actifs. - Les variables sont numrotes -\layout Quote - -5211\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5212\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5213\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5214\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5215\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Quote - -5216\SpecialChar ~ -\SpecialChar ~ -\SpecialChar ~ - 0.000000 -\layout Standard - -o 5211 est le numro du dcalage de l'axe X et ainsi de suite. - Si vous voyez des positions inattendues la suite d'une commande de dplacemen -t, ou mme des chiffres inattendus dans l'affichage de la position lorsque - vous dmarrez, regardez ces variables dans le fichier VAR pour vrifier - si elles contiennent des valeurs. - Si c'est le cas, les mettre zro devrait solutionner le problme. - -\layout Quote - -Avec ces tests, nous pouvons voir qu'aprs une rinitialisation, G92 retourne - aux conditions qu'il avait au dmarrage de l'interprteur. - Le lecteur doit noter que nous avons tabli ... - qu'aucune de ces valeurs n'est crite durant un dmarrage normal si aucun - G92 n'a t fix au dmarrage, aucune ne pourra tre lue lors d'un redmarrage. -\layout Quote - -Il est possible que ce soit le coeur du problme que certains ont vcu avec - les diffrences entre l'ancien et le nouvel interprteur. - C'est possible, mais je laisse le soin d'autres de faire des essais, - pour vrifier que l'ancien interprteur et les programmes crivent les - variables immdiatement et de constater ensuite que ces valeurs sont lues - lors d'un redmarrage. - -\layout Standard - -D'autre part, si les valeurs de G92 existent dans le fichier VAR lorsque - EMC a dmarr -\layout Quote - -... - partir d'EMC avec les valeurs de g92 dans le fichier de variables, EMC - appliquera ces valeurs partir de l'emplacement actuel de chaque axe. - Si la prise d'origine machine a t faite et que l'origine machine correspond - bien au zro des axes, tout sera correct. - Une fois que la prise d'origine a t faite en utilisant les contacts d'origine - machine ou en dplaant chaque axe une position connue et en appliquant - la commande de prise d'origine, les commandes g92 et leurs valeurs fonctionnent - comme prvu. -\layout Quote - -Ces tests n'ont pas tudi l'effet produit par la lecture des variables - dans le fichier alors qu'il contient des valeurs. - Cela pourrait poser des problmes si les dcalages g92 avaient t enlevs - avec g92.1 alors que le fichier de variables contenait encore les valeurs - prcdentes. - -\layout Standard - -C'est cette complexit qui nous amne dire que les valeurs de G92 doivent - tre considres comme provisoires. - Elles devraient tre utilises pour dfinir des dcalages globaux et - court terme. - Les commandes de dcalage d'origine G54 59.3 devraient tre utilises - chaque fois que des dcalages durables et prvisibles sont ncessaires. -\layout Section - -Exemple de programme utilisant les dcalages d'axes -\layout Standard - -Cet exemple de projet de gravure fraise un jeu de quatre cercles de rayon - .1 pouce dans une forme grossire d'toile au centre du cercle. - Nous pouvons configurer individuellement les formes de la faon suivante: -\layout Quote -\noindent -G10 L2 P1 x0 y0 z0 (assure que g54 a mis la machine zro) -\layout Quote -\noindent -g0 x-.1 y0 z0 -\layout Quote -\noindent -g1 f1 z-.25 -\layout Quote -\noindent -g3 x-.1 y0 i.1 j0 -\layout Quote -\noindent -g0 z0 -\layout Quote - -m2 -\layout Standard - -Nous pouvons mettre une srie de commandes pour crer des dcalages pour - les quatre autres cercles comme cela. -\layout Quote - -G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) -\layout Quote - -G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) -\layout Quote - -G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) -\layout Quote - -G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) -\layout Standard - -Nous mettons ces ensemble dans le programme suivant. -\layout Quote - -(Un programme de fraisage de cinq petits cercles dans un losange) -\layout Quote - -G10 L2 P1 x0 y0 z0 (assure que g54 a mis la machine zro) -\layout Quote - -G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) -\layout Quote - -G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) -\layout Quote - -G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) -\layout Quote - -G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) -\layout Quote - -g54 g0 x-.1 y0 z0 (center du cercle) -\layout Quote - -g1 f1 z-.25 -\layout Quote - -g3 x-.1 y0 i.1 j0 -\layout Quote - -g0 z0 -\layout Quote - -g55 g0 x-.1 y0 z0 (premier dcalage circulaire) -\layout Quote - -g1 f1 z-.25 -\layout Quote - -g3 x-.1 y0 i.1 j0 -\layout Quote - -g0 z0 -\layout Quote - -g56 g0 x-.1 y0 z0 (second dcalage circulaire) -\layout Quote - -g1 f1 z-.25 -\layout Quote - -g3 x-.1 y0 i.1 j0 -\layout Quote - -g0 z0 -\layout Quote - -g57 g0 x-.1 y0 z0 (troisime dcalage circulaire) -\layout Quote - -g1 f1 z-.25 -\layout Quote - -g3 x-.1 y0 i.1 j0 -\layout Quote - -g0 z0 -\layout Quote - -g58 g0 x-.1 y0 z0 (dcalage circulaire) -\layout Quote - -g1 f1 z-.25 -\layout Quote - -g3 x-.1 y0 i.1 j0 -\layout Quote - -g54 g0 x0 y0 z0 -\layout Quote - -m2 -\layout Standard - -Maintenant vient le moment o l'on applique une srie de dcalages G92 - ce programme. - Vous verrez qu'il c'est fait dans chaque cas de z0. - Si la machine taient la position de zro, un g92 z1.0000 plac en tte - de programme le dcalera d'un pouce. - Vous pouvez galement modifier l'ensemble du dessin dans le plan XY en - ajoutant quelques dcalages x et y avec g92. - Si vous faites cela, vous devez ajouter une commande G92.1 juste avant le - m2 qui termine le programme. - Si vous ne le faites pas, d'autres programmes que vous pourriez lancer - aprs celui-ci, utiliseront galement les dcalages g92. - En outre, cela permettrait d'viter d'crire les valeurs de g92 lorsque - vous arrtez EMC et donc, d'viter de les recharger quand vous dmarrez - nouveau le programme. -\layout Standard - -\the_end diff --git a/docs/src/gcode/main.lyx b/docs/src/gcode/main.lyx deleted file mode 100644 index d0fb2bb73..000000000 --- a/docs/src/gcode/main.lyx +++ /dev/null @@ -1,10029 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -G Code Reference -\begin_inset LatexCommand index -name "G Codes" - -\end_inset - - -\end_layout - -\begin_layout Standard -Conventions used in this section -\end_layout - -\begin_layout Standard -In the G Code prototypes the hyphen ( -\family typewriter -- -\family default -) stands for a real value. - -\end_layout - -\begin_layout Standard -A real value may be : -\end_layout - -\begin_layout Itemize -An explicit number, -\family typewriter -4 -\end_layout - -\begin_layout Itemize -An expression, -\family typewriter -[2+2] -\family default - -\end_layout - -\begin_layout Itemize -A parameter value, -\family typewriter -#88 -\family default - -\end_layout - -\begin_layout Itemize -A unary function value, -\family typewriter -acos[0] -\end_layout - -\begin_layout Standard -In most cases, if axis words (any or all of -\family typewriter -X- -\family default -, -\family typewriter -Y- -\family default -, -\family typewriter -Z- -\family default -, -\family typewriter -A- -\family default -, -\family typewriter -B- -\family default -, -\family typewriter -C- -\family default -, -\family typewriter -U- -\family default -, -\family typewriter -V- -\family default -, -\family typewriter -W- -\family default -) are given, they specify a destination point. - -\end_layout - -\begin_layout Standard -Axis numbers are in the currently active coordinate system, unless explicitly - described as being in the absolute coordinate system. - Where axis words are optional, any omitted axes will have their current - value. - -\end_layout - -\begin_layout Standard -Any items in the G Code prototypes not explicitly described as optional - are required. - -\end_layout - -\begin_layout Standard -The values following letters are often given as explicit numbers. - Unless stated otherwise, the explicit numbers can be real values. - For example, -\family typewriter -G10 L2 -\family default - could equally well be written -\family typewriter -G[2*5] L[1+1] -\family default -. - If the value of parameter 100 were 2, -\family typewriter -G10 L#100 -\family default - would also mean the same. - -\end_layout - -\begin_layout Standard -If -\family typewriter -L- -\family default - is written in a prototype the -\family typewriter -"- -\family default -" will often be referred to as the "L number", and so on for any other letter. - -\end_layout - -\begin_layout Section -Polar Coordinates -\begin_inset LatexCommand index -name "Polar Coordinates" - -\end_inset - - -\end_layout - -\begin_layout Standard -Polar Coordinates can be used to specify the XY coordinate of a move. - The @n is the distance and ^n is the angle. - The advantage of this is for things like bolt hole circles which can be - done very simply by moving to a point in the center of the circle, setting - the offset and then moving out to the first hole then run the drill cycle. - Polar Coordinates always are from the current XY zero position. - To shift the Polar Coordinates from machine zero use an offset or select - a coordinate system. -\end_layout - -\begin_layout Standard -In Absolute Mode the distance and angle is from the XY zero position and - the angle starts with 0 on the X Positive axis and rotates in a CCW direction - about the Z axis. - The code G1 @1^90 is the same as G1 Y1. -\end_layout - -\begin_layout Standard -In Relative Mode the distance and angle is also from the XY zero position - but it is cumulative. - This can be confusing at first how this works in incremental mode. - -\end_layout - -\begin_layout Standard -For example if you have the following program you might expect it to be - a square pattern. -\end_layout - -\begin_layout LyX-Code -F100 G1 @.5 ^90 -\end_layout - -\begin_layout LyX-Code -G91 @.5 ^90 -\end_layout - -\begin_layout LyX-Code -@.5 ^90 -\end_layout - -\begin_layout LyX-Code -@.5 ^90 -\end_layout - -\begin_layout LyX-Code -@.5 ^90 -\end_layout - -\begin_layout LyX-Code -G90 G0 X0 Y0 M2 -\end_layout - -\begin_layout Standard -You can see from the following figure that the output is not what you might - expect. - Because we added .5 to the distance each time the distance from the XY zero - position increased with each line. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Polar Spiral -\begin_inset LatexCommand label -name "fig:Polar-Spiral" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/polar01.png - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The following code will produce our square pattern. -\end_layout - -\begin_layout LyX-Code -F100 G1 @.5 ^90 -\end_layout - -\begin_layout LyX-Code -G91 ^90 -\end_layout - -\begin_layout LyX-Code -^90 -\end_layout - -\begin_layout LyX-Code -^90 -\end_layout - -\begin_layout LyX-Code -^90 -\end_layout - -\begin_layout LyX-Code -G90 G0 X0 Y0 M2 -\end_layout - -\begin_layout Standard -As you can see by only adding to the angle by 90 degrees each time the end - point distance is the same for each line. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Polar Square -\begin_inset LatexCommand label -name "fig:Polar-Square" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/polar02.png - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -An incremental move is started at the origin -\end_layout - -\begin_layout Itemize -A mix of Polar and and X or Y words are used -\end_layout - -\begin_layout Section -Quick Reference Table -\begin_inset LatexCommand label -name "sec:Quick-Reference-Table" - -\end_inset - - -\begin_inset LatexCommand index -name "G Code Table" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Code -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Section -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinated Straight Motion Rapid -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G0:-Rapid-Linear" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinated Straight Motion Feed Rate -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G1:-Linear-Motion" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G2, G3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinated Helical Motion Feed Rate -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G2,-G3:-Arc" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Dwell -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G4:-Dwell" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G5.2, G5.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -NURBs Block -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G5.2-G5.3-NURBs" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G7, G8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Diameter or Radius Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G7-Diameter-Mode" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G10 L1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set Tool Table Entry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G10-L1-Set-Tool-Table" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G10 L10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set Tool Table Entry Calculated -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G10-L10" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G10 L2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinate System Origin Setting -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G10:-Set-Coordinate" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G10 L20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinate System Origin Setting Calculated -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G10-L20" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G17 - G19.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Plane Select -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G17,-G18,-G19:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G20, G21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Units of Measure -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G20,-G21:-Length" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G28 - G30.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Go to Predefined Position -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G28,-G30:-Return" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Spindle Synchronized Motion -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G33,-G33.1:-Spindle-Synchronized" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G33.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Rigid Tapping -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G33,-G33.1:-Spindle-Synchronized" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G38.2 - G38.5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Probing -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G38.2:-Straight-Probe" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G40 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cancel Cutter Compensation -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G40" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G41, G42 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cutter Compensation -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G41,-G42" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G41.1, G42.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cutter Compensation Transient -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G41.1,-G42.1" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G43, G43.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Use Tool Length Offset from Tool Table -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G43,-G49:-Tool" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cancel Tool Length Offset -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G43,-G49:-Tool" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Motion in Machine Coordinate System -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G53:-Move-in" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G54-G59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Select Coordinate System -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G54-to-G59.3:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G59.1-G59.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Select Coordinate System -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G54-to-G59.3:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G61, G61.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Path Control Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G61,-G61.1,-G64:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G64 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Path Control Mode with Optional Tolerance -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G61,-G61.1,-G64:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G73 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Drilling Cycle with Chip Breaking -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G73:-Drilling-Cycle" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G76 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Multipass Threading Cycle (Lathe) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G76:-Threading-Canned" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G80 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cancel Motion Modes -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G80:-Cancel-Modal" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G81 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Canned Drilling Cycle -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G81-to-G89:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G82-G89 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Other Canned Cycles -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G82:-Drilling-Cycle" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G90, G91 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Distance Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G90,-G91:-Set" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G90.1, G91.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Arc Distance Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G90.1,-G91.1" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G92 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Offset Coordinate Systems & Set Parameters -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G92,-G92.1,-G92.2," - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G92.1, G92.2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cancel Offsets -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G92,-G92.1,-G92.2," - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G92.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Apply Parameters to Offset Coordinate Systems -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G92,-G92.1,-G92.2," - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G93, G94, G95 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Feed Modes -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G93,-G94:-Set" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G96 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Constant Surface Speed -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G96,-G97:-Spindle" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G97 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RPM Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:G96,-G97:-Spindle" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G98, G99 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Canned Cycle Z Retract Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:G98,-G99:-Set" - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Code -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Section -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M0, M1, M2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Program Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:M0,-M1,-M2," - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M3, M4, M5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Spindle Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:M3,-M4,-M5:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tool Change -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:M6:-Tool-Change" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M7, M8, M9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coolant Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:M7,-M8,-M9:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M30, M60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pallet Shuttle -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:M0,-M1,-M2," - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M48 - M53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Override Controls -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:Overrides" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M61 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set Current Tool Number -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M66-Input-Control" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M62-65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Output Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M62-to-M65" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M66 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Input Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M66-Input-Control" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M67 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Analog Output Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M67-Analog-Output" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Analog Output Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M68-Analog-Output" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M100-M199 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -User Defined M-Codes -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sec:M100-to-M199:" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -O -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -O Codes -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "cha:O-Codes" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Feed -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:F:-Set-Feed" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Spindle Speed -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:S:-Set-Spindle" - -\end_inset - - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -T -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tool Select -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -\begin_inset LatexCommand ref -reference "sub:T:-Select-Tool" - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Section -G0 Rapid Linear Motion -\begin_inset LatexCommand index -name "G0 Rapid" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G0:-Rapid-Linear" - -\end_inset - - -\end_layout - -\begin_layout Quote -G0 -\shape slanted -axes -\end_layout - -\begin_layout Standard -For rapid linear (straight line) motion, program -\family typewriter -G0 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, where all the axis words are optional. - The -\family typewriter -G0 -\family default - is optional if the current motion mode is -\family typewriter -G0 -\family default -. - This will produce coordinated linear motion to the destination point at - the current traverse rate (or slower if the machine will not go that fast). - It is expected that cutting will not take place when a -\family typewriter -G0 -\family default - command is executing. -\end_layout - -\begin_layout Standard -If cutter radius compensation is active, the motion will differ from the - above; see Section -\begin_inset LatexCommand ref -reference "sec:Cutter-Radius-Compensation" - -\end_inset - -. - -\end_layout - -\begin_layout Standard -If -\family typewriter -G53 -\family default - is programmed on the same line, the motion will also differ; see Section - -\begin_inset LatexCommand ref -reference "sub:G53:-Move-in" - -\end_inset - -. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -An axis letter is without a real value. -\end_layout - -\begin_layout Section -G1 Linear Motion -\begin_inset LatexCommand index -name "G1 Linear Motion" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G1:-Linear-Motion" - -\end_inset - - -\end_layout - -\begin_layout Quote -G1 -\shape slanted -axes -\end_layout - -\begin_layout Standard -For linear (straight line) motion at programed feed rate (for cutting or - not), program -\family typewriter -G1 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, where all the axis words are optional. - The -\family typewriter -G1 -\family default - is optional if the current motion mode is -\family typewriter -G1 -\family default -. - This will produce coordinated linear motion to the destination point at - the current feed rate (or slower if the machine will not go that fast). -\end_layout - -\begin_layout Standard -If cutter radius compensation is active, the motion will differ from the - above; see Section -\begin_inset LatexCommand ref -reference "sec:Cutter-Radius-Compensation" - -\end_inset - -. - -\end_layout - -\begin_layout Standard -If -\family typewriter -G53 -\family default - is programmed on the same line, the motion will also differ; see Section - -\begin_inset LatexCommand ref -reference "sub:G53:-Move-in" - -\end_inset - -. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -No feed rate has been set. -\end_layout - -\begin_layout Section -G2, G3 Arc -\begin_inset LatexCommand index -name "G2, G3 Arc" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G2,-G3:-Arc" - -\end_inset - - -\end_layout - -\begin_layout Standard -A circular or helical arc is specified using either -\family typewriter -G2 -\family default - (clockwise arc) or -\family typewriter -G3 -\family default - (counterclockwise arc). - The direction (CW, CCW) is as viewed from the positive end of the axis - about which the rotation occours. - The axis of the circle or helix must be parallel to the X, Y, or Z-axis - of the machine coordinate system. - The axis (or, equivalently, the plane perpendicular to the axis) is selected - with -\family typewriter -G17 -\family default - (Z-axis, XY-plane), -\family typewriter -G18 -\family default - (Y-axis, XZ-plane), or -\family typewriter -G19 -\family default - (X-axis, YZ-plane). - Planes -\family typewriter -17.1 -\family default -, -\family typewriter -18.1 -\family default -, and -\family typewriter -19.1 -\family default - are not currently supported. - If the arc is circular, it lies in a plane parallel to the selected plane. -\end_layout - -\begin_layout Standard -If a line of code makes an arc and includes rotational axis motion, the - rotational axes turn at a constant rate so that the rotational motion starts - and finishes when the XYZ motion starts and finishes. - Lines of this sort are hardly ever programmed. -\end_layout - -\begin_layout Standard -If cutter radius compensation is active, the motion will differ from what - is described here. - See Section -\begin_inset LatexCommand ref -reference "sec:Cutter-Radius-Compensation" - -\end_inset - -. -\end_layout - -\begin_layout Standard -Two formats are allowed for specifying an arc: Center Format and Radius - Format. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -No feed rate has been set. -\end_layout - -\begin_layout Subsection -Center format arcs (preferred format) -\end_layout - -\begin_layout Standard -In the center format, the coordinates of the end point of the arc in the - selected plane are specified along with the offsets of the center of the - arc from the current location. - In this format, it is OK if the end point of the arc is the same as the - current point. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -When the arc is projected on the selected plane, the distance from the current - point to the center differs from the distance from the end point to the - center by more than 0.0002 inch (if inches are being used) or 0.002 millimeter - (if millimeters are being used). -\end_layout - -\begin_layout Standard -When the XY-plane is selected program: -\end_layout - -\begin_layout Quote - -\family typewriter -G2 or G3 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -I- J- -\end_layout - -\begin_layout Standard -The axis words are all optional except that at least one of X and Y must - be used to program an arc of less than 360 degrees. - I and J are the offsets from the current location (in the X and Y directions, - respectively) of the center of the circle. - I and J are optional except that at least one of the two must be used. - If only one is specified, the value of the other is taken as 0. - If you include the Z word it will spiral. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -I and J are both omitted. -\end_layout - -\begin_layout Standard -When the XZ-plane is selected program: -\end_layout - -\begin_layout Quote - -\family typewriter -G2 or G3 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -I- K- -\end_layout - -\begin_layout Standard -The axis words are all optional except that at least one of X and Z must - be used to program an arc of less than 360 degrees. - I and K are the offsets from the current location (in the X and Z directions, - respectively) of the center of the circle. - I and K are optional except that at least one of the two must be used. - If only one is specified, the value of the other is taken as 0. - In Diameter Mode G7 I & K are still radius dimensions. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -I and K are both omitted. -\end_layout - -\begin_layout Standard -When the YZ-plane is selected program: -\end_layout - -\begin_layout Quote - -\family typewriter -G2 or G3 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -J- K- -\family default - -\end_layout - -\begin_layout Standard -The axis words are all optional except that at least one of Y and Z must - be used to program an arc of less than 360 degrees. - J and K are the offsets from the current location (in the Y and Z directions, - respectively) of the center of the circle. - J and K are optional except that at least one of the two must be used. - If only one is specified, the value of the other is taken as 0. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -J and K are both omitted. -\end_layout - -\begin_layout Subsection* -Examples -\end_layout - -\begin_layout Standard -Calculating arcs by hand can be difficult at times. - One option is to draw the arc with a cad program to get the coordinates - and offsets. - Keep in mind the tolerance mentioned above, you may have to change the - precision of your cad program to get the desired results. - Another option is to calculate the coordinates and offset using formulas. - As you can see in the following figures a triangle can be formed from the - current position the end position and the arc center. -\end_layout - -\begin_layout Standard -In the following figure you can see the start position is X0 Y0, the end - position is X1 Y1. - The arc center position is at X1 Y0. - This gives us an offset from the start position of 1 in the X axis and - 0 in the Y axis. - In this case only an I offset is needed. -\end_layout - -\begin_layout Standard -The code for the example: -\end_layout - -\begin_layout LyX-Code -G2 X1 Y1 I1 F10 -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:G2-Example" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/g2.png - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -In the next example we see the difference between the offsets for Y if we - are doing a G2 or a G3 move. - For the G2 move the start position is X0 Y0, for the G3 move it is X0 Y1. - The arc center is at X1 Y0.5 for both moves. - The G2 move the J offset is 0.5 and the G3 move the J offset is -0.5. -\end_layout - -\begin_layout Standard -The g code for the following example: -\end_layout - -\begin_layout LyX-Code -G2 X0 Y1 I1 J0.5 F25 -\end_layout - -\begin_layout LyX-Code -G3 X0 Y0 I1 J-0.5 F25 -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:G2/3-Example" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/g2-3.png - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Here is an example of a center format command to mill a spiral arc: -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G17 G2 X10 Y16 I3 J4 Z9 -\family default -. -\end_layout - -\begin_layout Standard -That means to make a clockwise (as viewed from the positive z-axis) circular - or helical arc whose axis is parallel to the Z-axis, ending where X=10, - Y=16, and Z=9, with its center offset in the X direction by 3 units from - the current X location and offset in the Y direction by 4 units from the - current Y location. - If the current location has X=7, Y=7 at the outset, the center will be - at X=10, Y=11. - If the starting value of Z is 9, this is a circular arc; otherwise it is - a helical arc. - The radius of this arc would be 5. -\end_layout - -\begin_layout Standard -In the center format, the radius of the arc is not specified, but it may - be found easily as the distance from the center of the circle to either - the current point or the end point of the arc. - -\end_layout - -\begin_layout Subsection -Full Circles -\end_layout - -\begin_layout Quote -G2 or G3 I- J- K- -\end_layout - -\begin_layout Standard -To do a full 360 circle from the current location only program the I, J - or K offset from the current location for the G2/3. - To program a 360 degree spiral in the XY plane just include the Z word. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -The K offset is used in the XY plane -\end_layout - -\begin_layout Itemize -The J offset is used in the XZ plane -\end_layout - -\begin_layout Itemize -the I offset is used in the YZ plane -\end_layout - -\begin_layout Subsection -Radius format arcs (discouraged format) -\end_layout - -\begin_layout Standard -In the radius format, the coordinates of the end point of the arc in the - selected plane are specified along with the radius of the arc. - Program -\family typewriter -G2 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -R- -\family default - (or use -\family typewriter -G3 -\family default - instead of -\family typewriter -G2 -\family default -). - R is the radius. - The axis words are all optional except that at least one of the two words - for the axes in the selected plane must be used. - The R number is the radius. - A positive radius indicates that the arc turns through less than 180 degrees, - while a negative radius indicates a turn of more than 180 degrees. - If the arc is helical, the value of the end point of the arc on the coordinate - axis parallel to the axis of the helix is also specified. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -both of the axis words for the axes of the selected plane are omitted -\end_layout - -\begin_layout Itemize -the end point of the arc is the same as the current point. -\end_layout - -\begin_layout Standard -It is not good practice to program radius format arcs that are nearly full - circles or nearly semicircles because a small change in the location of - the end point will produce a much larger change in the location of the - center of the circle (and, hence, the middle of the arc). - The magnification effect is large enough that rounding error in a number - can produce out-of-tolerance cuts. - For instance, a 1% displacement of the endpoint of a 180 degree arc produced - a 7% displacement of the point 90 degrees along the arc. - Nearly full circles are even worse. - Other size arcs (in the range tiny to 165 degrees or 195 to 345 degrees) - are OK. -\end_layout - -\begin_layout Standard -Here is an example of a radius format command to mill an arc: -\family typewriter -G17 G2 x 10 y 15 r 20 z 5. -\end_layout - -\begin_layout Standard -That means to make a clockwise (as viewed from the positive Z-axis) circular - or helical arc whose axis is parallel to the Z-axis, ending where X=10, - Y=15, and Z=5, with a radius of 20. - If the starting value of Z is 5, this is an arc of a circle parallel to - the XY-plane; otherwise it is a helical arc. -\end_layout - -\begin_layout Section -G4 Dwell -\begin_inset LatexCommand index -name "G4 Dwell" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G4:-Dwell" - -\end_inset - - -\end_layout - -\begin_layout Quote -G4 P[seconds] -\end_layout - -\begin_layout Standard -For a dwell, program G4 P- . - This will keep the axes unmoving for the period of time in seconds specified - by the P number. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the P number is negative. -\end_layout - -\begin_layout Section -G5.1 Quadratic B-spline -\end_layout - -\begin_layout LyX-Code -G5.1 Xn Yn I[X offset] J[Y offset] -\end_layout - -\begin_layout Standard -G5.1 creates a quadratic B-spline in the XY plane with the X and Y axis only. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -I and J offset is not specified -\end_layout - -\begin_layout Itemize -An axis other than X or Y is specified -\end_layout - -\begin_layout Itemize -The active plane is not G17 -\end_layout - -\begin_layout Section -G5.2 G5.3 NURBs Block -\begin_inset LatexCommand index -name "G5.2 G5.3 NURBs Block" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G5.2-G5.3-NURBs" - -\end_inset - - -\end_layout - -\begin_layout Standard -Warning: G5.2, G5.3 is experimental and not fully tested. -\end_layout - -\begin_layout Standard -G5.2 is for opening the data block defining a NURBs and G5.3 for closing the - data block. - In the lines between these two codes the curve control points are defined - with both their related "weights" (P) and their parameter (L) which determines - the order of the curve (k) and subsequently its degree (k-1). -\end_layout - -\begin_layout Standard -Using this curve definition the knots of the NURBs curve are not defined - by the user they are calculated by the inside algorithm, in the same way - as it happens in a great number of graphic applications, where the curve - shape can be modified only acting on either control points or weights. -\end_layout - -\begin_layout Standard -Sample NURBs Code -\end_layout - -\begin_layout LyX-Code -G0 X0 Y0 -\end_layout - -\begin_layout LyX-Code -F10 -\end_layout - -\begin_layout LyX-Code -G5.2 X0 Y1 P1 L3 -\end_layout - -\begin_layout LyX-Code - X2 Y2 P1 -\end_layout - -\begin_layout LyX-Code - X2 Y0 P1 -\end_layout - -\begin_layout LyX-Code - X0 Y0 P2 -\end_layout - -\begin_layout LyX-Code -G5.3 -\end_layout - -\begin_layout LyX-Code -/ The rapid moves show the same path without the NURBs Block -\end_layout - -\begin_layout LyX-Code -G0 X0 Y1 -\end_layout - -\begin_layout LyX-Code - X2 Y2 -\end_layout - -\begin_layout LyX-Code - X2 Y0 -\end_layout - -\begin_layout LyX-Code - X0 Y0 -\end_layout - -\begin_layout LyX-Code -M2 -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Sample NURBs Output -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/nurbs01.png - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -More information on NURBs can be found here: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS" - -\end_inset - - -\end_layout - -\begin_layout Section -G7 Diameter Mode -\begin_inset LatexCommand index -name "G7 Diameter Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G7-Diameter-Mode" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program G7 to enter the diameter mode for axis X on a lathe. - When in the Diameter mode the X axis moves on a lathe will be 1/2 the distance - to the center of the lathe. - For example X1 would move the cutter to 0.500 -\begin_inset Quotes erd -\end_inset - - from the center of the lathe thus giving a 1 -\begin_inset Quotes erd -\end_inset - - diameter part. - -\end_layout - -\begin_layout Section -G8 Radius Mode -\begin_inset LatexCommand index -name "G8 Radius Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G8-Radius-Mode" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program G8 to enter the radius mode for axis X on a lathe. - When in Radius mode the X axis moves on a lathe will be the distance from - the center. - Thus a cut at X1 would result in a part that is 2" in diameter. - G8 is default at power up. -\end_layout - -\begin_layout Section -G10 L1 Set Tool Table -\begin_inset LatexCommand index -name "G10 L1 Tool Table" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G10-L1-Set-Tool-Table" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G10 L1 P[tool number] R[radius] X[offset] Y[offset] Z[offset] A[offset] - B[offset] C[offset] U[offset] V[offset] W[offset] I[frontangle] J[backangle] - Q[orientation] -\end_layout - -\begin_layout Standard -Program a G10 L1 to set a tool table entry from a program or the MDI window. - G10 L1 reloads the tool table. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -Cutter Compensation is on -\end_layout - -\begin_layout Standard -For more information on tool orientation see figure ( -\begin_inset LatexCommand ref -reference "cap:Tool-Orientations" - -\end_inset - -) -\end_layout - -\begin_layout Section -G10 L2 Set Coordinate System -\begin_inset LatexCommand index -name "G10 L2 Coordinate System" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G10:-Set-Coordinate" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G10 L2 P[coordinate system] R[rotation about Z] -\family typewriter -\emph on -axes... -\end_layout - -\begin_layout Standard -The coordinate system is described in Section -\begin_inset LatexCommand ref -reference "cha:Coordinate-System" - -\end_inset - -. -\end_layout - -\begin_layout Standard -To set the origin of a coordinate system, program -\family typewriter -G10 L2 P- R- -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, where the P number is in the range 0 to 9. - For the currently active coordinate system program P0. - To specify a coordinate system program 1 to 9 corresponding to -\family typewriter -G54 -\family default - to -\family typewriter -G59.3 -\family default -. - Optionally program R to indicate the rotation of the XY axis around the - Z and all axis words are optional. - The origin of the coordinate system specified by the P number is set to - the given values (in terms of the not offset machine coordinate system). - Only those coordinates for which an axis word is included on the line will - be set. - Being in incremental distance mode ( -\family typewriter -G91 -\family default -) has no effect on -\family typewriter -G10 L2 -\family default -. - The direction of rotation is CCW as viewed from the Top View. -\end_layout - -\begin_layout Standard -Important Concepts: -\end_layout - -\begin_layout Itemize -G10 L2 Pn does not change from the current coordinate system to the one - specified by P, you have to use G54-59.3 to select a coordinate system. -\end_layout - -\begin_layout Itemize -When a rotation is in effect jogging an axis will only move that axis in - a positive or negative direction and not along the rotated axis. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -The P number does not evaluate to an integer in the range 0 to 9. -\end_layout - -\begin_layout Itemize -An axis is programmed that is not defined in the configuration. -\end_layout - -\begin_layout Standard -If a -\family typewriter -G92 -\family default - origin offset was in effect before -\family typewriter -G10 L2 -\family default -, it will continue to be in effect afterwards. -\end_layout - -\begin_layout Standard -The coordinate system whose origin is set by a -\family typewriter -G10 -\family default - command may be active or inactive at the time the -\family typewriter -G10 -\family default - is executed. - If it is currently active, the new coordinates take effect immediately. -\end_layout - -\begin_layout Standard -Examples: -\end_layout - -\begin_layout Description - -\family typewriter -G10\InsetSpace ~ -L2\InsetSpace ~ -P1\InsetSpace ~ -X\InsetSpace ~ -3.5\InsetSpace ~ -Y\InsetSpace ~ -17.2 -\family default - sets the origin of the first coordinate system (the one selected by -\family typewriter -G54 -\family default -) to be X=3.5 and Y=17.2. - Because only X and Y are specified, the origin point is only moved in X - and Y; the other coordinates are not changed. -\end_layout - -\begin_layout Description - -\family typewriter -G10\InsetSpace ~ -L2\InsetSpace ~ -P1\InsetSpace ~ -X0\InsetSpace ~ -Y0\InsetSpace ~ -Z0 -\family default - sets the G54 coordinate back to the origin. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Set Coordinate System -\begin_inset LatexCommand label -name "cap:Set-Coordinate-System" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -P Value -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Coordinate System -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G Code -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Currently Active -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -n/a -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -54 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -55 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -56 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -57 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -58 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -59 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -59.1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -59.2 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -59.3 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -G10 L10 Set Tool Table -\begin_inset LatexCommand index -name "G10 L10 Set Tool Table" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G10-L10" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G10 L10 P[tool number] R[radius] X[offset] Z[offset] Q[orientation] -\end_layout - -\begin_layout Standard -G10 L10 is just like G10 L1 except that instead of setting the offset/entry - to the given value, it is set to a calculated value that makes the current - coordinates become the given value. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -Cutter Compensation is on -\end_layout - -\begin_layout Section -G10 L20 Set Coordinate System -\begin_inset LatexCommand index -name "G10 L20 Set Coordinate System" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G10-L20" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G10 L20 P[coordinate system] -\family typewriter -\emph on -axes... -\end_layout - -\begin_layout Standard -G10 L20 is similar to G10 L2 except that instead of setting the offset/entry - to the given value, it is set to a calculated value that makes the current - coordinates become the given value. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -The P number does not evaluate to an integer in the range 0 to 9. -\end_layout - -\begin_layout Itemize -An axis is programmed that is not defined in the configuration. -\end_layout - -\begin_layout Section -G17, G18, G19, G17.1, G18.1, G19.1 Plane Selection -\begin_inset LatexCommand index -name "G17, G18, G19 Plane Selection" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G17,-G18,-G19:" - -\end_inset - - -\end_layout - -\begin_layout Standard -These codes set the current plane as follows: -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -G17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XY (default) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ZX -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -YZ -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G17.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -UV -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G18.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -WU -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G19.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -VW -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -The effects of having a plane selected are discussed in Section -\begin_inset LatexCommand ref -reference "sub:G2,-G3:-Arc" - -\end_inset - - and Section -\begin_inset LatexCommand ref -reference "sub:G81-to-G89:" - -\end_inset - - -\end_layout - -\begin_layout Section -G20, G21 Length Units -\begin_inset LatexCommand index -name "G20, G21 Length Units" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G20,-G21:-Length" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program G20 to use inches for length units. - -\end_layout - -\begin_layout Standard -Program G21 to use millimeters for lenght units. -\end_layout - -\begin_layout Standard -It is usually a good idea to program either G20 or G21 near the beginning - of a program before any motion occurs, and not to use either one anywhere - else in the program. - -\end_layout - -\begin_layout Section -G28, G28.1 Go to Predefined Position -\begin_inset LatexCommand index -name "G28, G28.1" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G28,-G30:-Return" - -\end_inset - - -\end_layout - -\begin_layout Standard -G28 uses the values in parameters 5161-5166 as the absolute values to make - a rapid traverse move to from the current position. - The parameter values are in terms of the absolute coordinate system and - the machine's native coordinate system. -\end_layout - -\begin_layout Standard -G28 -\family typewriter -\emph on -axes -\family default -\emph default - will make a rapid traverse move to the position specified by -\family typewriter -\emph on -axes -\family default -\emph default -, then will make a rapid traverse move to the predefined position in parameters - 5161-5166. - -\end_layout - -\begin_layout Standard -G28.1 stores the current absolute position into parameters 5161-5166. -\end_layout - -\begin_layout Standard -It is an error if : -\end_layout - -\begin_layout Itemize -Radius compensation is turned on -\end_layout - -\begin_layout Section -G30, G30.1 Go to Predefined Position -\begin_inset LatexCommand index -name "G30, G30.1" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G30,-G30.1" - -\end_inset - - -\end_layout - -\begin_layout Standard -G30 uses the values in parameters 5181-5186 as the absolute values to make - a rapid traverse move to from the current position. - The parameter values are in terms of the absolute coordinate system and - the machine's native coordinate system. -\end_layout - -\begin_layout Standard -G30 -\family typewriter -\emph on -axes -\family default -\emph default - will make a rapid traverse move to the position specified by -\family typewriter -\emph on -axes -\family default -\emph default -, then will make a rapid traverse move to the predefined position in parameters - 5181-5186. - -\end_layout - -\begin_layout Standard -G30.1 stores the current absolute position into parameters 5181-5186. -\end_layout - -\begin_layout Standard -G30 parameters will be used to move the tool when a M6 is programmed if - [TOOL_CHANGE_AT_G30]=1 is in the [EMCIO] section of the ini file. -\end_layout - -\begin_layout Standard -It is an error if : -\end_layout - -\begin_layout Itemize -Radius compensation is turned on -\end_layout - -\begin_layout Section -G33 Spindle-Synchronized Motion -\begin_inset LatexCommand index -name "G33, G33.1 Spindle-Synchronized Motion" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G33,-G33.1:-Spindle-Synchronized" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G33 X- Y- Z- K- -\end_layout - -\begin_layout Standard -For spindle-synchronized motion in one direction, code -\family typewriter -G33 X- Y- Z- K- -\family default - where K gives the distance moved in XYZ for each revolution of the spindle. - For instance, if starting at -\family typewriter -Z=0 -\family default -, -\family typewriter -G33 Z-1 K.0625 -\family default - produces a 1 inch motion in Z over 16 revolutions of the spindle. - This command might be part of a program to produce a 16TPI thread. - -\end_layout - -\begin_layout Standard -Note: K follows the drive line described by -\family typewriter -X- Y- Z- -\family default - and is not parallel to the Z axis. -\end_layout - -\begin_layout Standard -Spindle-synchronized motions wait for spindle index, so multiple passes - line up. - -\family typewriter -G33 -\family default - moves end at the programmed endpoint. -\end_layout - -\begin_layout Standard -All the axis words are optional, except that at least one must be used. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -All axis words are omitted. -\end_layout - -\begin_layout Itemize -The spindle is not turning when this command is executed -\end_layout - -\begin_layout Itemize -The requested linear motion exceeds machine velocity limits due to the spindle - speed -\end_layout - -\begin_layout Section -G33.1 Rigid Tapping -\begin_inset LatexCommand label -name "sec:G33.1-Rigid-Tapping" - -\end_inset - - -\begin_inset LatexCommand index -name "G33.1 Rigid Tapping" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G33.1 X- Y- Z- K- -\end_layout - -\begin_layout Standard -For rigid tapping (spindle synchronized motion with return) code -\family typewriter -G33.1 X- Y- Z- K- -\family default - where -\family typewriter -K- -\family default - gives the distance moved for each revolution of the spindle. - A rigid tapping move consists of the following sequence: -\end_layout - -\begin_layout Itemize -A move to the specified coordinate, synchronized with the spindle at the - given ratio and starting with a spindle index pulse -\end_layout - -\begin_layout Itemize -When reaching the endpoint, a command to reverse the spindle (e.g., from clockwise - to counterclockwise) -\end_layout - -\begin_layout Itemize -Continued synchronized motion -\series bold -beyond -\series default - the specified end coordinate until the spindle actually stops and reverses -\end_layout - -\begin_layout Itemize -Continued synchronized motion back to the original coordinate -\end_layout - -\begin_layout Itemize -When reaching the original coordinate, a command to reverse the spindle - a second time (e.g., from counterclockwise to clockwise) -\end_layout - -\begin_layout Itemize -Continued synchronized motion -\series bold -beyond -\series default - the original coordinate until the spindle actually stops and reverses -\end_layout - -\begin_layout Itemize -An -\series bold -unsynchronized -\series default - move back to the original coordinate. -\end_layout - -\begin_layout Standard -Spindle-synchronized motions wait for spindle index, so multiple passes - line up. - -\family typewriter -G33.1 -\family default - moves end at the original coordinate. -\end_layout - -\begin_layout Standard -All the axis words are optional, except that at least one must be used. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -All axis words are omitted. -\end_layout - -\begin_layout Itemize -The spindle is not turning when this command is executed -\end_layout - -\begin_layout Itemize -The requested linear motion exceeds machine velocity limits due to the spindle - speed -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout LyX-Code -;move to starting position -\end_layout - -\begin_layout LyX-Code -G0 X1.000 Y1.000 Z0.100 -\end_layout - -\begin_layout LyX-Code -;rigid tapping a 20 TPI thread -\end_layout - -\begin_layout LyX-Code -G33.1 Z-0.750 K0.05 -\end_layout - -\begin_layout Section -G38.x Straight Probe -\begin_inset LatexCommand index -name "G38.x Straight Probe" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G38.2:-Straight-Probe" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program -\family typewriter -G38.2 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - -\family typewriter -G38.3 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - -\family typewriter -G38.4 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - or -\family typewriter -G38.5 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - to perform a straight probe operation. - The axis words are optional, except that at least one of them must be used. - The tool in the spindle must be a probe. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the current point is the same as the programmed point. -\end_layout - -\begin_layout Itemize -no axis word is used -\end_layout - -\begin_layout Itemize -cutter radius compensation is enabled -\end_layout - -\begin_layout Itemize -the feed rate is zero -\end_layout - -\begin_layout Itemize -the probe is already in the target state -\end_layout - -\begin_layout Standard -In response to this command, the machine moves the controlled point (which - should be at the end of the probe tip) in a straight line at the current - feed rate toward the programmed point. - In inverse time feed mode, the feed rate is such that the whole motion - from the current point to the programmed point would take the specified - time. - The move stops (within machine acceleration limits) when the programmed - point is reached, or when the requested change in the probe input takes - place. - -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Probing codes -\begin_inset LatexCommand label -name "cap:Probing-codes" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Code -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Target state -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Direction -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Signal Error -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G38.2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Contact -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Toward workpiece -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Yes -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G38.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Contact -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Toward workpiece -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -No -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G38.4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -No Contact -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Away from workpiece -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Yes -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G38.5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -No Contact -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Away from workpiece -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -No -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -After successful probing, parameters 5061 to 5069 will be set to the coordinates - of X, Y, Z, A, B, C, U, V, W of the location of the controlled point at - the time the probe changed state. - After unsuccessful probing, they are set to the coordinates of the programmed - point. - Parameter 5070 is set to 1 if the probe succeeded and 0 if the probe failed. - If the probe failed, G38.2 and G38.4 will signal an error. -\end_layout - -\begin_layout Standard -A comment of the form -\family typewriter -(PROBEOPEN -\family default - -\family typewriter -\emph on -filename.txt -\emph default -) -\family default - will open -\emph on -filename.txt -\emph default - and store the 9-number coordinate consisting of X, Y, Z, A, B, C, U, V, - W of each successful straight probe in it. - The file must be closed with -\family typewriter -(PROBECLOSE) -\family default -. -\end_layout - -\begin_layout Section -G40 Compensation Off -\begin_inset LatexCommand index -name "Compensation Off" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G40" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program G40 to turn cutter radius compensation off. - The next move must be a straight move. - It is OK to turn compensation off when it is already off. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -A G2/3 arc move is programmed next after a G40. -\end_layout - -\begin_layout Section -G41, G42 Cutter Radius Compensation -\begin_inset LatexCommand index -name "G40, G41, G41.1, G42, G42.1 Cutter Compensation" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G41,-G42" - -\end_inset - - -\end_layout - -\begin_layout Quote -G41 or G42 D[tool] -\end_layout - -\begin_layout Standard -G41 start cutter radius compensation to the left of the programmed line - as viewed from the positive end of the axis perpendicular to the plane. - -\end_layout - -\begin_layout Standard -G42 start cutter radius compensation to the right of the programmed line - as viewed from the positive end of the axis perpendicular to the plane. - -\end_layout - -\begin_layout Standard -The lead in move must be at least as long as the tool radius and can be - a rapid move. -\end_layout - -\begin_layout Standard -Cutter radius compensation may be performed if the XY-plane or XZ-plane - is active. -\end_layout - -\begin_layout Standard -User M100- commands are allowed when Cutter Compensation is on. -\end_layout - -\begin_layout Standard -The behavior of the machining center when cutter radius compensation is - on is described in Section -\begin_inset LatexCommand ref -reference "sec:Cutter-Radius-Compensation" - -\end_inset - - -\end_layout - -\begin_layout Subsection* -Cutter Radius Compensation from Tool Table -\end_layout - -\begin_layout Standard -To turn cutter radius compensation on left (i.e., the cutter stays to the - left of the programmed path when the tool radius is positive), program - -\family typewriter -G41 D- -\family default - . - To turn cutter radius compensation on right (i.e., the cutter stays to the - right of the programmed path when the tool radius is positive), program - -\family typewriter -G42 D- -\family default - . - The D word is optional; if there is no D word, the radius of the tool currently - in the spindle will be used. - If used, the D number should normally be the slot number of the tool in - the spindle, although this is not required. - It is OK for the D number to be zero; a radius value of zero will be used. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the D number is not an integer, is negative or is larger than the number - of carousel slots, -\end_layout - -\begin_layout Itemize -the YZ plane is active, -\end_layout - -\begin_layout Itemize -or cutter radius compensation is commanded to turn on when it is already - on. -\end_layout - -\begin_layout Section -G41.1, G42.1 Dynamic Cutter Radius Compensation -\begin_inset LatexCommand index -name "Dynamic Cutter Radius Compensation" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G41.1,-G42.1" - -\end_inset - - -\end_layout - -\begin_layout Quote -G41.1 or G42.1 D[diameter] -\end_layout - -\begin_layout Standard -To turn cutter radius compensation on left, program -\family typewriter -G41.1 D- L- -\family default -. - -\end_layout - -\begin_layout Standard -To turn cutter compensation on right, program -\family typewriter -G42.1 D- L- -\family default -. - -\end_layout - -\begin_layout Standard -The D word specifies the cutter diameter. - The L word specifies the cutter orientation, and defaults to 0 if unspecified. - For more information on cutter orientation see Section ( -\begin_inset LatexCommand ref -reference "cap:Tool-Orientations" - -\end_inset - -). -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the YZ plane is active, -\end_layout - -\begin_layout Itemize -the L number is not in the range from 0 to 9 inclusive. -\end_layout - -\begin_layout Itemize -or cutter compensation is commanded to turn on when it is already on -\end_layout - -\begin_layout Section -G43, G43.1, G49 Tool Length Offsets -\begin_inset LatexCommand index -name "G43, G43.1, G49 Tool Length Offsets" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G43,-G49:-Tool" - -\end_inset - - -\end_layout - -\begin_layout Subsection -G43 -\begin_inset LatexCommand label -name "sub:G43" - -\end_inset - -, G43.1: Activate Tool length compensation -\end_layout - -\begin_layout Standard -G43 and G43.1 change subsequent motions by offsetting the Z and/or X coordinates - by the length of the tool. - G43 and G43.1 do not cause any motion. - The next time a compensated axis is moved, that axis's endpoint is the - compensated location. -\end_layout - -\begin_layout Subsubsection -G43: Use current tool loaded -\end_layout - -\begin_layout Standard -To use the currently loaded tool from the last Tn M6 program a G43 -\end_layout - -\begin_layout Subsubsection -G43 Hn: Offsets from tool table -\end_layout - -\begin_layout Standard -To use a tool length offset from the tool table, program -\family typewriter -G43 H -\family default -n, where the n number is the desired index in the tool table. - The H number will typically be, but does not have to be, the same as the - slot number of the tool currently in the spindle. - It is OK for the H number to be zero; an offset value of zero will be used. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the H number is not an integer, is negative, or is larger than the number - of carousel slots. -\end_layout - -\begin_layout Subsubsection -G43.1: Dynamic tool compensation -\end_layout - -\begin_layout Standard -To use a tool length offset from the program, use -\family typewriter -G43.1 Xn Yn -\family default - ... - Wn to set any axis tlo at run time. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -motion is commanded on the same line as -\family typewriter -G43.1 -\end_layout - -\begin_layout Subsection -G49 -\begin_inset LatexCommand label -name "sub:G49" - -\end_inset - -: Cancel tool length compensation -\end_layout - -\begin_layout Standard -To use no tool length offset, program G49. -\end_layout - -\begin_layout Standard -It is OK to program using the same offset already in use. - It is also OK to program using no tool length offset if none is currently - being used. - -\end_layout - -\begin_layout Section -G53 Move in Absolute Coordinates -\begin_inset LatexCommand index -name "G53 Absolute Coordinates" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G53:-Move-in" - -\end_inset - - -\end_layout - -\begin_layout Standard -To move in absolute coordinates from the machine origin, program -\family typewriter -G53 -\family default - on the same line as a linear move. - -\family typewriter -G53 -\family default - is not modal and must be programmed on each line. - -\family typewriter -G0 -\family default - or -\family typewriter -G1 -\family default - does not have to be programmed on the same line if one is currently active. - For example -\family typewriter -G53 G0 X0 Y0 Z0 -\family default - will move the axes to the home position even if the currently selected - coordinate system has offsets in effect. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -G53 is used without G0 or G1 being active, -\end_layout - -\begin_layout Itemize -or G53 is used while cutter radius compensation is on. -\end_layout - -\begin_layout Section -G54 G59.3 Select Coordinate System -\begin_inset LatexCommand index -name "G54 - G59.3 Select Coordinate System" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G54-to-G59.3:" - -\end_inset - - -\end_layout - -\begin_layout Standard -To select coordinate system 1, program G54, and similarly for other coordinate - systems. - The system-number-G-code pairs are: (1- -\family typewriter -G54 -\family default -), (2- -\family typewriter -G55 -\family default -), (3- -\family typewriter -G56 -\family default -), (4- -\family typewriter -G57 -\family default -), (5- -\family typewriter -G58 -\family default -), (6- -\family typewriter -G59 -\family default -), (7- -\family typewriter -G59.1 -\family default -), (8- -\family typewriter -G59.2 -\family default -), and (9- -\family typewriter -G59.3 -\family default -). - The coordinate systems store the values for each system in the variables - shown in the following table. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Coordinate Systems -\begin_inset LatexCommand label -name "cap:Coordinate-Systems" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -Select -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Y -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -U -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -V -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -W -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G54 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5221 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5222 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5223 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5224 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5225 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5226 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5227 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5228 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5229 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G55 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5241 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5242 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5243 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5244 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5245 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5246 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5247 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5248 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5249 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G56 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5261 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5262 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5263 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5264 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5265 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5266 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5267 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5268 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5269 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G57 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5281 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5282 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5283 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5284 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5285 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5286 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5287 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5288 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5289 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G58 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5301 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5302 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5303 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5304 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5305 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5306 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5307 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5308 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5309 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5321 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5322 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5323 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5324 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5325 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5326 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5327 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5328 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5329 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G59.1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5341 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5342 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5343 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5344 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5345 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5346 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5347 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5348 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5349 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G59.2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5361 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5362 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5363 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5364 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5365 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5366 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5367 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5368 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5369 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G59.3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5381 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5382 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5383 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5384 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5385 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5386 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5387 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5388 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5389 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -one of these G-codes is used while cutter radius compensation is on. -\end_layout - -\begin_layout Standard -See Section -\begin_inset LatexCommand ref -reference "cha:Coordinate-System" - -\end_inset - - for an overview of coordinate systems. - -\end_layout - -\begin_layout Section -G61, G61.1, G64 Set Path Control Mode -\begin_inset LatexCommand index -name "G61, G61.1, G64 Path Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G61,-G61.1,-G64:" - -\end_inset - - -\end_layout - -\begin_layout Quote -G61 Exact Path Mode -\end_layout - -\begin_layout Quote -G61.1 Exact Stop Mode -\end_layout - -\begin_layout Quote -G64 Best Possible Speed -\end_layout - -\begin_layout Quote -G64 P- (motion blending tolerance) Q- (naive cam tolerance) -\end_layout - -\begin_layout Standard -G61 visits the programmed point exactly, even though that means temporarily - coming to a complete stop. - -\end_layout - -\begin_layout Standard -G64 without P means to keep the best speed possible, no matter how far - away from the programmed point you end up. - -\end_layout - -\begin_layout Standard -G64 P- Q- is a way to fine tune your system for best compromise between - speed and accuracy. - The P- tolerance means that the actual path will be no more than P- away - from the programmed endpoint. - The velocity will be reduced if needed to maintain the path. - In addition, when you activate G64 P- Q- it turns on the "naive cam detector"; - when there are a series of linear XYZ feed moves at the same feed rate - that are less than Q- away from being collinear, they are collapsed into - a single linear move. - On G2/3 moves in the G17 (XY) plane when the maximum deviation of an arc - from a straight line is less than the G64 P- tolerance the arc is broken - into two lines (from start of arc to midpoint, and from midpoint to end). - those lines are then subject to the naive cam algorithm for lines. - Thus, line-arc, arc-arc, and arc-line cases as well as line-line benefit - from the "naive cam detector". - This improves contouring performance by simplifying the path. - It is OK to program for the mode that is already active. - See also Section -\begin_inset LatexCommand ref -reference "sub:Path-Control-Mode" - -\end_inset - - for a discussion of these modes. - If Q is not specified then it will have the same behavior as before and - use the value of P-. -\end_layout - -\begin_layout Section -G73 Drilling Cycle with Chip Breaking -\begin_inset LatexCommand index -name "G73 Drilling Cycle Chip Break" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G73:-Drilling-Cycle" - -\end_inset - - -\end_layout - -\begin_layout Quote - -\family typewriter -G73 X- Y- Z- A- B- C- R- L- Q- -\end_layout - -\begin_layout Standard -The -\family typewriter -G73 -\family default - cycle is intended for deep drilling or milling with chip breaking. - The retracts in this cycle cut off any long stringers (which are common - when drilling in aluminum). - This cycle takes a Q number which represents a "delta" increment along - the Z axis. - -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. - -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate downward by delta or to the - Z position, whichever is less deep. - -\end_layout - -\begin_layout Enumerate -Rapid up a bit. -\end_layout - -\begin_layout Enumerate -Repeat steps 2 and 3 until the Z position is reached at step 2. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at traverse rate to clear Z. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the Q number is negative or zero. -\end_layout - -\begin_layout Section -G76 Threading Cycle -\begin_inset LatexCommand index -name "G76 Threading" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G76:-Threading-Canned" - -\end_inset - - -\end_layout - -\begin_layout Quote - -\family typewriter -G76 P- Z- I- J- R- K- Q- H- E- L- -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -The active plane is not the ZX plane -\end_layout - -\begin_layout Itemize -Other axis words, such as X- or Y-, are specified -\end_layout - -\begin_layout Itemize -The -\family typewriter -R- -\family default - degression value is less than 1.0. -\end_layout - -\begin_layout Itemize -All the required words are not specified -\end_layout - -\begin_layout Itemize - -\family typewriter -P- -\family default -, -\family typewriter -J- -\family default -, -\family typewriter -K- -\family default - or -\family typewriter -H- -\family default - is negative -\end_layout - -\begin_layout Itemize - -\family typewriter -E- -\family default - is greater than half the drive line length -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -G76 Threading -\begin_inset LatexCommand label -name "fig:G76-Threading" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/g76-threads.png - scale 75 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Drive\InsetSpace ~ -Line A line through the initial X position parallel to the Z. -\end_layout - -\begin_layout Description -P- The "thread pitch" in distance per revolution. -\end_layout - -\begin_layout Description -Z- The final position of threads. - At the end of the cycle the tool will be at this Z position. -\end_layout - -\begin_layout Description -I- The "thread peak" offset from the "drive line". - Negative -\family typewriter -I -\family default - values are external threads, and positive -\family typewriter -I -\family default - values are internal threads. - Generally the material has been turned to this size before the -\family typewriter -G76 -\family default - cycle. -\end_layout - -\begin_layout Description -J- A positive value specifying the "initial cut depth". - The first threading cut will be -\family typewriter -J -\family default - beyond the "thread peak" position. -\end_layout - -\begin_layout Description -K- A positive value specifying the "full thread depth". - The final threading cut will be -\family typewriter -K -\family default - beyond the "thread peak" position. -\end_layout - -\begin_layout Standard -Optional settings -\end_layout - -\begin_layout Description -R- The "depth degression". - -\family typewriter -R1.0 -\family default - selects constant depth on successive threading passes. - -\family typewriter -R2.0 -\family default - selects constant area. - Values between 1.0 and 2.0 select decreasing depth but increasing area. - Values above 2.0 select decreasing area. - Beware that unnecessarily high degression values will cause a large number - of passes to be used. - (degression = a descent by stages or steps.) -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -degression is spelled correctly so don't change it again JT. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Q- The "compound slide angle" is the angle (in degrees) describing to what - extent successive passes should be offset along the drive line. - This is used to cause one side of the tool to remove more material than - the other. - A positive -\family typewriter -Q -\family default - value causes the leading edge of the tool to cut more heavily. - Typical values are 29, 29.5 or 30. -\end_layout - -\begin_layout Description -H- The number of "spring passes". - Spring passes are additional passes at full thread depth. - If no additional passes are desired, program -\family typewriter -H0 -\family default -. -\end_layout - -\begin_layout Standard -Tapered entry and exit moves can be programmed using -\family typewriter -E- -\family default - and -\family typewriter -L- -\family default -. -\end_layout - -\begin_layout Description -E- Specifies the distance along the drive line used for the taper. - The angle of the taper will be so the last pass tapers to the thread crest - over the distance specified with E. - -\family typewriter - E0.2 -\family default - will give a taper for the first/last 0.2 length units along the thread. - For a 45 degree taper program E the same as K -\end_layout - -\begin_layout Description - -\family typewriter -L- -\family default - Specifies which ends of the thread get the taper. - Program -\family typewriter -L0 -\family default - for no taper (the default), -\family typewriter -L1 -\family default - for entry taper, -\family typewriter -L2 -\family default - for exit taper, or -\family typewriter -L3 -\family default - for both entry and exit tapers. - Entry tapers will pause at the drive line to synchronize with the index - pulse then feed in to the beginning of the taper. - No entry taper and the tool will rapid to the cut depth then synchronize - and begin the cut. -\end_layout - -\begin_layout Standard -The tool is moved to the initial X and Z positions prior to issuing the - G76. - The X position is the "drive line" and the Z position is the start of the - threads. -\end_layout - -\begin_layout Standard -The tool will pause briefly for synchronization before each threading pass, - so a relief groove will be required at the entry unless the beginning of - the thread is past the end of the material or an entry taper is used. -\end_layout - -\begin_layout Standard -Unless using an exit taper, the exit move (traverse to original X) is not - synchronized to the spindle speed. - With a slow spindle, the exit move might take only a small fraction of - a revolution. - If the spindle speed is increased after several passes are complete, subsequent - exit moves will require a larger portion of a revolution, resulting in - a very heavy cut during the exit move. - This can be avoided by providing a relief groove at the exit, or by not - changing the spindle speed while threading. -\end_layout - -\begin_layout Standard -The final position of the tool will be at the end of the "drive line". - A safe Z move will be needed with an internal thread to remove the tool - from the hole. -\end_layout - -\begin_layout Standard -The sample program -\family typewriter -g76.ngc -\family default - shows the use of the G76 canned cycle, and can be previewed and executed - on any machine using the -\family typewriter -sim/lathe.ini -\family default - configuration. -\end_layout - -\begin_layout Standard -The following example shows the result of running this G-Code: -\end_layout - -\begin_layout LyX-Code -G0 Z-.5 X .2 -\end_layout - -\begin_layout LyX-Code -G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045 -\end_layout - -\begin_layout Standard -The tool is in the final position after the G76 cycle is completed. - You can see the entry path on the right from the Q29.5 and the exit path - on the left from the L2 E0.045. - The white lines are the cutting moves. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Threading Example -\begin_inset LatexCommand label -name "fig:Threading-Example" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/g76-01.png - scale 75 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -G80 Cancel Modal Motion -\begin_inset LatexCommand index -name "G80 Cancel Modal Motion" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G80:-Cancel-Modal" - -\end_inset - - -\end_layout - -\begin_layout Standard -Program -\family typewriter -G80 -\family default - to ensure no axis motion will occur. - It is an error if: -\end_layout - -\begin_layout Itemize -Axis words are programmed when G80 is active, unless a modal group 0 G code - is programmed which uses axis words. -\end_layout - -\begin_layout Section -Canned Cycles -\begin_inset LatexCommand index -name "Canned Cycles" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G81-to-G89:" - -\end_inset - - -\end_layout - -\begin_layout Standard -The canned cycles -\family typewriter -G81 -\family default - through -\family typewriter -G89 -\family default - are described in this section. - Two examples are given with the description of -\family typewriter -G81 -\family default - below. -\end_layout - -\begin_layout Standard -All canned cycles are performed with respect to the currently-selected plane. - Any of the six planes may be selected. - Throughout this section, most of the descriptions assume the XY-plane has - been selected. - The behavior is analogous if another plane is selected, and the correct - words must be used. - For instance, in the -\family typewriter -G17.1 -\family default - plane, the action of the canned cycle is along W, and the locations or - increments are given with U and V. - In this case substitute U,V,W for X,Y,Z in the instructions below. -\end_layout - -\begin_layout Standard -Rotational axis words are not allowed in canned cycles. - When the active plane is one of the XYZ family, the UVW axis words are - not allowed. - Likewise, when the active plane is one of the UVW family, the XYZ axis - words are not allowed. -\end_layout - -\begin_layout Subsection -Common Words -\end_layout - -\begin_layout Standard -All canned cycles use X, Y, Z, or U, V, W groups depending on the plane - selected and R words. - The R (usually meaning retract) position is along the axis perpendicular - to the currently selected plane (Z-axis for XY-plane, etc.) Some canned - cycles use additional arguments. -\end_layout - -\begin_layout Subsection -Sticky Words -\end_layout - -\begin_layout Standard -For canned cycles, we will call a number "sticky" if, when the same cycle - is used on several lines of code in a row, the number must be used the - first time, but is optional on the rest of the lines. - Sticky numbers keep their value on the rest of the lines if they are not - explicitly programmed to be different. - The R number is always sticky. -\end_layout - -\begin_layout Standard -In incremental distance mode X, Y, and R numbers are treated as increments - from the current position and Z as an increment from the Z-axis position - before the move involving Z takes place. - In absolute distance mode, the X, Y, R, and Z numbers are absolute positions - in the current coordinate system. -\end_layout - -\begin_layout Subsection -Repeat Cycle -\end_layout - -\begin_layout Standard -The L number is optional and represents the number of repeats. - -\begin_inset Formula $L=0$ -\end_inset - - is not allowed. - If the repeat feature is used, it is normally used in incremental distance - mode, so that the same sequence of motions is repeated in several equally - spaced places along a straight line. - When L- is greater than 1 in incremental mode with the XY-plane selected, - the X and Y positions are determined by adding the given X and Y numbers - either to the current X and Y positions (on the first go-around) or to - the X and Y positions at the end of the previous go-around (on the repetitions). - Thus, if you program -\family typewriter -L10 -\family default -, you will get 10 cycles. - The first cycle will be distance X,Y from the original location. - The R and Z positions do not change during the repeats. - The L number is not sticky. - In absolute distance mode, -\begin_inset Formula $L>1$ -\end_inset - - means "do the same cycle in the same place several times", Omitting the - L word is equivalent to specifying -\begin_inset Formula $L=1$ -\end_inset - -. - -\end_layout - -\begin_layout Subsection -Retract Mode -\end_layout - -\begin_layout Standard -The height of the retract move at the end of each repeat (called "clear - Z" in the descriptions below) is determined by the setting of the retract - mode: either to the original Z position (if that is above the R position - and the retract mode is -\family typewriter -G98 -\family default -, OLD_Z), or otherwise to the R position. - See Section -\begin_inset LatexCommand ref -reference "sub:G98,-G99:-Set" - -\end_inset - - -\end_layout - -\begin_layout Subsection -Canned Cycle Errors -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -X, Y, and Z words are all missing during a canned cycle, -\end_layout - -\begin_layout Itemize -Axis words from different groups (XYZ) (UVW) are used together, -\end_layout - -\begin_layout Itemize -a P number is required and a negative P number is used, -\end_layout - -\begin_layout Itemize -an L number is used that does not evaluate to a positive integer, -\end_layout - -\begin_layout Itemize -rotational axis motion is used during a canned cycle, -\end_layout - -\begin_layout Itemize -inverse time feed rate is active during a canned cycle, -\end_layout - -\begin_layout Itemize -or cutter radius compensation is active during a canned cycle. -\end_layout - -\begin_layout Standard -If the XY plane is active, the Z number is sticky, and it is an error if: - -\end_layout - -\begin_layout Itemize -the Z number is missing and the same canned cycle was not already active, - -\end_layout - -\begin_layout Itemize -or the R number is less than the Z number. -\end_layout - -\begin_layout Standard -If other planes are active, the error conditions are analogous to the XY - conditions above. -\end_layout - -\begin_layout Subsection -Preliminary and In-Between Motion -\end_layout - -\begin_layout Standard -At the very beginning of the execution of any of the canned cycles, if the - current Z position is below the R position, the Z-axis is traversed to - the R position. - This happens only once, regardless of the value of L. -\end_layout - -\begin_layout Standard -In addition, at the beginning of the first cycle and each repeat, the following - one or two moves are made -\end_layout - -\begin_layout Enumerate -a straight traverse parallel to the XY-plane to the given XY-position, -\end_layout - -\begin_layout Enumerate -a straight traverse of the Z-axis only to the R position, if it is not already - at the R position. - -\end_layout - -\begin_layout Standard -If another plane is active, the preliminary and in-between motions are analogous. - -\end_layout - -\begin_layout Section -G81 Drilling Cycle -\begin_inset LatexCommand index -name "G81 Drilling Cycle" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G81:-Drilling-Cycle" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G81 (X- Y- Z-) or (U- V- W-) R- L- -\end_layout - -\begin_layout Standard -The -\family typewriter -G81 -\family default - cycle is intended for drilling. -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. - -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate to the Z position. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at traverse rate to clear Z. - -\end_layout - -\begin_layout Standard - -\series bold -Example 1. - -\series default - Suppose the current position is (1, 2, 3) and the XY-plane has been selected, - and the following line of NC code is interpreted. -\end_layout - -\begin_layout LyX-Code -G90 G81 G98 X4 Y5 Z1.5 R2.8 -\end_layout - -\begin_layout Standard -This calls for absolute distance mode ( -\family typewriter -G90 -\family default -) and OLD_Z retract mode ( -\family typewriter -G98 -\family default -) and calls for the -\family typewriter -G81 -\family default - drilling cycle to be performed once. - The X number and X position are 4. - The Y number and Y position are 5. - The Z number and Z position are 1.5. - The R number and clear Z are 2.8. - Old Z is 3. - The following moves take place. -\end_layout - -\begin_layout Enumerate -a traverse parallel to the XY-plane to (4,5,3) -\end_layout - -\begin_layout Enumerate -a traverse parallel to the Z-axis to (4,5,2.8) -\end_layout - -\begin_layout Enumerate -a feed parallel to the Z-axis to (4,5,1.5) -\end_layout - -\begin_layout Enumerate -a traverse parallel to the Z-axis to (4,5,3) -\end_layout - -\begin_layout Standard - -\series bold -Example 2. - -\series default - Suppose the current position is (1, 2, 3) and the XY-plane has been selected, - and the following line of NC code is interpreted. -\end_layout - -\begin_layout LyX-Code -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\end_layout - -\begin_layout Standard -This calls for incremental distance mode ( -\family typewriter -G91 -\family default -) and OLD_Z retract mode ( -\family typewriter -G98 -\family default -) and calls for the -\family typewriter -G81 -\family default - drilling cycle to be repeated three times. - The X number is 4, the Y number is 5, the Z number is -0.6 and the R number - is 1.8. - The initial X position is 5 (=1+4), the initial Y position is 7 (=2+5), - the clear Z position is 4.8 (=1.8+3), and the Z position is 4.2 (=4.8-0.6). - Old Z is 3. -\end_layout - -\begin_layout Standard -The first move is a traverse along the Z-axis to (1,2,4.8), since old Z < - clear Z. -\end_layout - -\begin_layout Standard -The first repeat consists of 3 moves. -\end_layout - -\begin_layout Enumerate -a traverse parallel to the XY-plane to (5,7,4.8) -\end_layout - -\begin_layout Enumerate -a feed parallel to the Z-axis to (5,7, 4.2) -\end_layout - -\begin_layout Enumerate -a traverse parallel to the Z-axis to (5,7,4.8) -\end_layout - -\begin_layout Standard -The second repeat consists of 3 moves. - The X position is reset to 9 (=5+4) and the Y position to 12 (=7+5). -\end_layout - -\begin_layout Enumerate -a traverse parallel to the XY-plane to (9,12,4.8) -\end_layout - -\begin_layout Enumerate -a feed parallel to the Z-axis to (9,12, 4.2) -\end_layout - -\begin_layout Enumerate -a traverse parallel to the Z-axis to (9,12,4.8) -\end_layout - -\begin_layout Standard -The third repeat consists of 3 moves. - The X position is reset to 13 (=9+4) and the Y position to 17 (=12+5). -\end_layout - -\begin_layout Enumerate -a traverse parallel to the XY-plane to (13,17,4.8) -\end_layout - -\begin_layout Enumerate -a feed parallel to the Z-axis to (13,17, 4.2) -\end_layout - -\begin_layout Enumerate -a traverse parallel to the Z-axis to (13,17,4.8) -\end_layout - -\begin_layout Section -G82 Drilling Cycle with Dwell -\begin_inset LatexCommand index -name "G82 Drilling Cycle Dwell" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G82:-Drilling-Cycle" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G82 (X- Y- Z-) or (U- V- W-) R- L- P- -\end_layout - -\begin_layout Standard -The -\family typewriter -G82 -\family default - cycle is intended for drilling with a dwell at the bottom of the hole. -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate to the Z position. - -\end_layout - -\begin_layout Enumerate -Dwell for the P number of seconds. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at traverse rate to clear Z. -\end_layout - -\begin_layout Section -G83 Peck Drilling -\begin_inset LatexCommand index -name "G83 Peck Drilling" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G83:-Peck-Drilling" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G83 (X- Y- Z-) or (U- V- W-) R- L- Q- -\end_layout - -\begin_layout Standard -The -\family typewriter -G83 -\family default - cycle (often called peck drilling) is intended for deep drilling or milling - with chip breaking. - The retracts in this cycle clear the hole of chips and cut off any long - stringers (which are common when drilling in aluminum). - This cycle takes a Q number which represents a "delta" increment along - the Z-axis. -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. - -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate downward by delta or to the - Z position, whichever is less deep. - -\end_layout - -\begin_layout Enumerate -Rapid back out to the clear_z. - -\end_layout - -\begin_layout Enumerate -Rapid back down to the current hole bottom, backed off a bit. -\end_layout - -\begin_layout Enumerate -Repeat steps 2, 3, and 4 until the Z position is reached at step 2. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at traverse rate to clear Z. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the Q number is negative or zero. -\end_layout - -\begin_layout Section -G84 Right-Hand Tapping -\begin_inset LatexCommand index -name "G84 Right-Hand Tapping" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G84:-Right-Hand-Tapping" - -\end_inset - - -\end_layout - -\begin_layout Standard -This code is currently unimplemented in EMC2. - It is accepted, but the behavior is undefined. - See section -\begin_inset LatexCommand ref -reference "sec:G33,-G33.1:-Spindle-Synchronized" - -\end_inset - - -\end_layout - -\begin_layout Section -G85 Boring, No Dwell, Feed Out -\begin_inset LatexCommand index -name "G85 Boring, No Dwell, Feed Out" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G85:-Boring,-No" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G85 (X- Y- Z-) or (U- V- W-) R- L- -\end_layout - -\begin_layout Standard -The -\family typewriter -G85 -\family default - cycle is intended for boring or reaming, but could be used for drilling - or milling. -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. - -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate to the Z position. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at the current feed rate to clear Z. - -\end_layout - -\begin_layout Section -G86 Boring, Spindle Stop, Rapid Out -\begin_inset LatexCommand index -name "G86 Boring, Spindle Stop, Rapid Out" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G86:-Boring,-Spindle" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G86 (X- Y- Z-) or (U- V- W-) R- L- P- -\end_layout - -\begin_layout Standard -The -\family typewriter -G86 -\family default - cycle is intended for boring. - This cycle uses a P number for the number of seconds to dwell. - -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. - -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate to the Z position. -\end_layout - -\begin_layout Enumerate -Dwell for the P number of seconds. -\end_layout - -\begin_layout Enumerate -Stop the spindle turning. -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at traverse rate to clear Z. -\end_layout - -\begin_layout Enumerate -Restart the spindle in the direction it was going. - -\end_layout - -\begin_layout Standard -The spindle must be turning before this cycle is used. - It is an error if: -\end_layout - -\begin_layout Itemize -the spindle is not turning before this cycle is executed. -\end_layout - -\begin_layout Section -G87 Back Boring -\begin_inset LatexCommand index -name "G87 Back Boring" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G87:-Back-Boring" - -\end_inset - - -\end_layout - -\begin_layout Standard -This code is currently unimplemented in EMC2. - It is accepted, but the behavior is undefined. -\end_layout - -\begin_layout Section -G88 Boring, Spindle Stop, Manual Out -\begin_inset LatexCommand index -name "G88 Boring, Spindle Stop, Manual Out" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G88:-Boring,-Spindle" - -\end_inset - - -\end_layout - -\begin_layout Standard -This code is currently unimplemented in EMC2. - It is accepted, but the behavior is undefined. -\end_layout - -\begin_layout Section -G89 Boring, Dwell, Feed Out -\begin_inset LatexCommand index -name "G89 Boring, Dwell, Feed Out" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G89:-Boring,-Dwell," - -\end_inset - - -\end_layout - -\begin_layout LyX-Code - -\family typewriter -G89 (X- Y- Z-) or (U- V- W-) R- L- P- -\end_layout - -\begin_layout Standard -The -\family typewriter -G89 -\family default - cycle is intended for boring. - This cycle uses a P number, where P specifies the number of seconds to - dwell. -\end_layout - -\begin_layout Enumerate -Preliminary motion, as described above. -\end_layout - -\begin_layout Enumerate -Move the Z-axis only at the current feed rate to the Z position. - -\end_layout - -\begin_layout Enumerate -Dwell for the P number of seconds. - -\end_layout - -\begin_layout Enumerate -Retract the Z-axis at the current feed rate to clear Z. - -\end_layout - -\begin_layout Section -G90, G91 Set Distance Mode -\begin_inset LatexCommand index -name "G90, G91 Set Distance Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G90,-G91:-Set" - -\end_inset - - -\end_layout - -\begin_layout Quote -G90 is Absolute Distance Mode -\end_layout - -\begin_layout Quote -G91 is Incremental Distance Mode -\end_layout - -\begin_layout Standard -Interpretation of G Code can be in one of two distance modes: absolute or - incremental. -\end_layout - -\begin_layout Standard -To go into absolute distance mode, program -\family typewriter -G90 -\family default -. - In absolute distance mode, axis numbers (X, Y, Z, A, B, C, U, V, W) usually - represent positions in terms of the currently active coordinate system. - Any exceptions to that rule are described explicitly in this Section -\begin_inset LatexCommand ref -reference "sub:G81-to-G89:" - -\end_inset - -. -\end_layout - -\begin_layout Standard -To go into incremental distance mode, program -\family typewriter -G91 -\family default -. - In incremental distance mode, axis numbers usually represent increments - from the current coordinate. -\end_layout - -\begin_layout Section -G90.1, G91.1 Arc Distance Mode -\begin_inset LatexCommand index -name "Arc Distance Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G90.1,-G91.1" - -\end_inset - - -\end_layout - -\begin_layout Standard -G90.1 Absolute Distance Mode for I, J & K offsets. - -\end_layout - -\begin_layout Itemize -I and J both must be specified or it is an error -\end_layout - -\begin_layout Standard -G91.1 Incremental Distance Mode for I, J & K offsets. -\end_layout - -\begin_layout Itemize -Returns I, J & K to their normal behavior. -\end_layout - -\begin_layout Section -G92, G92.1, G92.2, G92.3 Coordinate System Offsets -\begin_inset LatexCommand index -name "G92, G92.1, G92.2, G92.3 Offsets" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G92,-G92.1,-G92.2," - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -G92 X- Y- Z- A- B- C- U- V- W- -\end_layout - -\begin_layout Standard -See Section -\begin_inset LatexCommand ref -reference "cha:Coordinate-System" - -\end_inset - - for an overview of coordinate systems. -\end_layout - -\begin_layout Standard -See Section -\begin_inset LatexCommand ref -reference "sec:G92-Offsets" - -\end_inset - - for more information on Offsets. -\end_layout - -\begin_layout Standard -To make the current point have the coordinates you want (without motion), - program -\family typewriter -G92 X- Y- Z- A- B- C- U- V- W- -\family default - , where the axis words contain the axis numbers you want. - All axis words are optional, except that at least one must be used. - If an axis word is not used for a given axis, the coordinate on that axis - of the current point is not changed. - It is an error if: -\end_layout - -\begin_layout Enumerate -all axis words are omitted. -\end_layout - -\begin_layout Standard -When -\family typewriter -G92 -\family default - is executed, the origins of all coordinate systems move. - They move such that the value of the current controlled point, in the currently - active coordinate system, becomes the specified value. - All coordinate system's origins are offset this same distance. - -\end_layout - -\begin_layout Standard -For example, suppose the current point is at X=4 and there is currently - no -\family typewriter -G92 -\family default - offset active. - Then -\family typewriter -G92 x7 -\family default - is programmed. - This moves all origins -3 in X, which causes the current point to become - X=7. - This -3 is saved in parameter 5211. -\end_layout - -\begin_layout Standard -Being in incremental distance mode has no effect on the action of -\family typewriter -G92 -\family default -. -\end_layout - -\begin_layout Standard - -\family typewriter -G92 -\family default - offsets may be already be in effect when the -\family typewriter -G92 -\family default - is called. - If this is the case, the offset is replaced with a new offset that makes - the current point become the specified value. -\end_layout - -\begin_layout Standard -To reset axis offsets to zero, program -\family typewriter -G92.1 -\family default - or -\family typewriter -G92.2 -\family default -. - -\family typewriter -G92.1 -\family default - sets parameters 5211 to 5219 to zero, whereas -\family typewriter -G92.2 -\family default - leaves their current values alone. -\end_layout - -\begin_layout Standard -To set the axis offset to the values saved in parameters 5211 to 5219, program - -\family typewriter -G92.3 -\family default -. -\end_layout - -\begin_layout Standard -You can set axis offsets in one program and use the same offsets in another - program. - Program -\family typewriter -G92 -\family default - in the first program. - This will set parameters 5211 to 5219. - Do not use -\family typewriter -G92.1 -\family default - in the remainder of the first program. - The parameter values will be saved when the first program exits and restored - when the second one starts up. - Use -\family typewriter -G92.3 -\family default - near the beginning of the second program. - That will restore the offsets saved in the first program. - -\end_layout - -\begin_layout Standard -EMC2 stores the G92 offsets and reuses them on the next run of a program. - To prevent this, one can program a G92.1 (to erase them), or program a G92.2 - (to remove them - they are still stored). -\end_layout - -\begin_layout Section -G93, G94, G95: Set Feed Rate Mode -\begin_inset LatexCommand index -name "G93, G94, G95: Feed Rate Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G93,-G94:-Set" - -\end_inset - - -\end_layout - -\begin_layout Quote -G93 is Inverse Time Mode -\end_layout - -\begin_layout Quote -G94 is Units per Minute Mode -\end_layout - -\begin_layout Quote -G95 is Units per Revolution Mode. -\end_layout - -\begin_layout Standard -Three feed rate modes are recognized: units per minute, inverse time, and - units per revolution. - Program G94 to start the units per minute mode. - Program G93 to start the inverse time mode. - Program G95 to start the units per revolution mode. -\end_layout - -\begin_layout Standard -In units per minute feed rate mode, an F word is interpreted to mean the - controlled point should move at a certain number of inches per minute, - millimeters per minute, or degrees per minute, depending upon what length - units are being used and which axis or axes are moving. -\end_layout - -\begin_layout Standard -In units per revolution mode, an F word is interpreted to mean the controlled - point should move a certain number of inches per revolution of the spindle, - depending on what length units are being used and which axis or axes are - moving. - G95 is not suitable for threading, for threading use G33 or G76. -\end_layout - -\begin_layout Standard -In inverse time feed rate mode, an F word means the move should be completed - in [one divided by the F number] minutes. - For example, if the F number is 2.0, the move should be completed in half - a minute. -\end_layout - -\begin_layout Standard -When the inverse time feed rate mode is active, an F word must appear on - every line which has a G1, G2, or G3 motion, and an F word on a line that - does not have G1, G2, or G3 is ignored. - Being in inverse time feed rate mode does not affect G0 (rapid traverse) - motions. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -inverse time feed rate mode is active and a line with G1, G2, or G3 (explicitly - or implicitly) does not have an F word. -\end_layout - -\begin_layout Itemize -A new feed rate is not specified after switching to G94 or G95 -\end_layout - -\begin_layout Section -G96, G97 Spindle Control Mode -\begin_inset LatexCommand index -name "G96, G97 Spindle Control Mode" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:G96,-G97:-Spindle" - -\end_inset - - -\end_layout - -\begin_layout Quote -G96 D[max spindle speed] S[units per minute] is Constant Surface Speed Mode -\end_layout - -\begin_layout Quote -G97 is RPM Mode -\end_layout - -\begin_layout Standard -Two spindle control modes are recognized: revolutions per minute, and CSS - (constant surface speed). - Program G96 D- S- to select constant surface speed of S feet per minute - (if G20 is in effect) or meters per minute (if G21 is in effect). - The maximum spindle speed is set by the D- number in revolutions per minute. - When using G96, ensure that X0 in the current coordinate system (including - offsets and tool lengths) is the center of rotation or emc will not give - the desired spindle speed. - G96 is not affected by radius or diameter mode. -\end_layout - -\begin_layout Standard -Program G97 to select RPM mode. -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -S is not specified with G96 -\end_layout - -\begin_layout Itemize -A feed move is specified in G96 mode while the spindle is not turning -\end_layout - -\begin_layout Section -G98, G99 Set Canned Cycle Return Level -\begin_inset LatexCommand index -name "G98, G99 Canned Cycle Return" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:G98,-G99:-Set" - -\end_inset - - -\end_layout - -\begin_layout Standard -When the spindle retracts during canned cycles, there is a choice of how - far it retracts: (1) retract perpendicular to the selected plane to the - position indicated by the R word, or (2) retract perpendicular to the selected - plane to the position that axis was in just before the canned cycle started - (unless that position is lower than the position indicated by the R word, - in which case use the R word position). -\end_layout - -\begin_layout Standard -To use option (1), program -\family typewriter -G99 -\family default -. - To use option (2), program -\family typewriter -G98 -\family default -. - Remember that the R word has different meanings in absolute distance mode - and incremental distance mode. - -\end_layout - -\begin_layout Chapter -M Codes -\end_layout - -\begin_layout Section -M0, M1, M2, M30, M60 Program Stopping and Ending -\begin_inset LatexCommand index -name "M0, M1, M2, M30, M60 Program Pause/End" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:M0,-M1,-M2," - -\end_inset - - -\end_layout - -\begin_layout Standard -To pause a running program temporarily (regardless of the setting of the - optional stop switch), program M0. - EMC2 remains in the Auto Mode so MDI and other manual actions are not enabled. -\end_layout - -\begin_layout Standard -To pause a running program temporarily (but only if the optional stop switch - is on), program M1. - EMC2 remains in the Auto Mode so MDI and other manual actions are not enabled. -\end_layout - -\begin_layout Standard -It is OK to program -\family typewriter -M0 -\family default - and -\family typewriter -M1 -\family default - in MDI mode, but the effect will probably not be noticeable, because normal - behavior in MDI mode is to stop after each line of input, anyway. -\end_layout - -\begin_layout Standard -To exchange pallet shuttles and then stop a running program temporarily - (regardless of the setting of the optional stop switch), program -\family typewriter -M60 -\family default -. -\end_layout - -\begin_layout Standard -If a program is stopped by an -\family typewriter -M0 -\family default -, -\family typewriter -M1 -\family default -, or -\family typewriter -M60 -\family default -, pressing the cycle start button will restart the program at the following - line. -\end_layout - -\begin_layout Standard -To end a program, program -\family typewriter -M2 -\family default -. - To exchange pallet shuttles and then end a program, program -\family typewriter -M30 -\family default -. - Both of these commands have the following effects. -\end_layout - -\begin_layout Enumerate -Change from Auto mode to MDI mode. -\end_layout - -\begin_layout Enumerate -Origin offsets are set to the default (like -\family typewriter -G54 -\family default -). -\end_layout - -\begin_layout Enumerate -Selected plane is set to CANON_PLANE_XY (like -\family typewriter -G17 -\family default -). - -\end_layout - -\begin_layout Enumerate -Distance mode is set to MODE_ABSOLUTE (like -\family typewriter -G90 -\family default -). - -\end_layout - -\begin_layout Enumerate -Feed rate mode is set to UNITS_PER_MINUTE (like -\family typewriter -G94 -\family default -). -\end_layout - -\begin_layout Enumerate -Feed and speed overrides are set to ON (like -\family typewriter -M48 -\family default -). - -\end_layout - -\begin_layout Enumerate -Cutter compensation is turned off (like -\family typewriter -G40 -\family default -). - -\end_layout - -\begin_layout Enumerate -The spindle is stopped (like -\family typewriter -M5 -\family default -). - -\end_layout - -\begin_layout Enumerate -The current motion mode is set to G_1 (like -\family typewriter -G1 -\family default -). - -\end_layout - -\begin_layout Enumerate -Coolant is turned off (like -\family typewriter -M9 -\family default -). - -\end_layout - -\begin_layout Standard -No more lines of code in an RS274/NGC file will be executed after the M2 - or M30 command is executed. - Pressing cycle start will start the program back at the beginning of the - file. - -\end_layout - -\begin_layout Section -M3, M4, M5 Spindle Control -\begin_inset LatexCommand index -name "M3, M4, M5 Spindle Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:M3,-M4,-M5:" - -\end_inset - - -\end_layout - -\begin_layout Standard -To start the spindle turning clockwise at the currently programmed speed, - program -\family typewriter -M3 -\family default -. -\end_layout - -\begin_layout Standard -To start the spindle turning counterclockwise at the currently programmed - speed, program -\family typewriter -M4 -\family default -. -\end_layout - -\begin_layout Standard -To stop the spindle from turning, program -\family typewriter -M5 -\family default -. -\end_layout - -\begin_layout Standard -It is OK to use -\family typewriter -M3 -\family default - or -\family typewriter -M4 -\family default - if the spindle speed is set to zero. - If this is done (or if the speed override switch is enabled and set to - zero), the spindle will not start turning. - If, later, the spindle speed is set above zero (or the override switch - is turned up), the spindle will start turning. - It is OK to use -\family typewriter -M3 -\family default - or -\family typewriter -M4 -\family default - when the spindle is already turning or to use -\family typewriter -M5 -\family default - when the spindle is already stopped. - -\end_layout - -\begin_layout Section -M6 Tool Change -\begin_inset LatexCommand index -name "M6 Tool Change" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:M6:-Tool-Change" - -\end_inset - - -\end_layout - -\begin_layout Subsection -Manual Tool Change -\end_layout - -\begin_layout Standard -If the Hal component hal_manualtoolchange is loaded M6 will stop the spindle - and prompt the user to change the tool. - For more information on hal_manualtoolchange see Section ( -\begin_inset LatexCommand ref -reference "sec:Manual-Tool-Change" - -\end_inset - -) -\end_layout - -\begin_layout Subsection -Tool Changer -\end_layout - -\begin_layout Standard -To change a tool in the spindle from the tool currently in the spindle to - the tool most recently selected (using a T word - see Section -\begin_inset LatexCommand ref -reference "sub:T:-Select-Tool" - -\end_inset - -), program -\family typewriter -M6 -\family default -. - When the tool change is complete: -\end_layout - -\begin_layout Itemize -The spindle will be stopped. - -\end_layout - -\begin_layout Itemize -The tool that was selected (by a T word on the same line or on any line - after the previous tool change) will be in the spindle. - The T number is an integer giving the changer slot of the tool (not its - id). -\end_layout - -\begin_layout Itemize -If the selected tool was not in the spindle before the tool change, the - tool that was in the spindle (if there was one) will be in its changer - slot. - -\end_layout - -\begin_layout Itemize -If configured in the .ini file some axis positions may move when a M6 is - issued. - See the EMCIO section of the Integrators Manual for more information on - tool change options. -\end_layout - -\begin_layout Itemize -No other changes will be made. - For example, coolant will continue to flow during the tool change unless - it has been turned off by an -\family typewriter -M9 -\family default -. - The tool length offset is not changed, use G43 to change the tool length - offset. -\end_layout - -\begin_layout Standard -The tool change may include axis motion. - It is OK (but not useful) to program a change to the tool already in the - spindle. - It is OK if there is no tool in the selected slot; in that case, the spindle - will be empty after the tool change. - If slot zero was last selected, there will definitely be no tool in the - spindle after a tool change. - -\end_layout - -\begin_layout Section -M7, M8, M9 Coolant Control -\begin_inset LatexCommand index -name "M7, M8, M9 Coolant Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:M7,-M8,-M9:" - -\end_inset - - -\end_layout - -\begin_layout Standard -To turn mist coolant on, program -\family typewriter -M7 -\family default -. -\end_layout - -\begin_layout Standard -To turn flood coolant on, program -\family typewriter -M8 -\family default -. -\end_layout - -\begin_layout Standard -To turn all coolant off, program -\family typewriter -M9 -\family default -. -\end_layout - -\begin_layout Standard -It is always OK to use any of these commands, regardless of what coolant - is on or off. - -\end_layout - -\begin_layout Section -Overrides -\begin_inset LatexCommand label -name "sec:Overrides" - -\end_inset - - -\end_layout - -\begin_layout Subsection -M48, M49 Override Control -\begin_inset LatexCommand index -name "M48, M49 Override Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:M48,-M49:-Override" - -\end_inset - - -\end_layout - -\begin_layout Standard -To enable the spindle speed and feed rate override switches, program -\family typewriter -M48 -\family default -. - To disable both switches, program -\family typewriter -M49 -\family default -. - See Section -\begin_inset LatexCommand ref -reference "sub:Feed-Interaction" - -\end_inset - - for more details. - It is OK to enable or disable the switches when they are already enabled - or disabled. - These switches can also be toggled individually using M50 and M51 as described - in the sections -\begin_inset LatexCommand ref -reference "sec:M50:-Feed-Override" - -\end_inset - - and -\begin_inset LatexCommand ref -reference "sec:M51:-Spindle-Speed-Override-Control" - -\end_inset - -. -\end_layout - -\begin_layout Subsection -M50 Feed Override Control -\begin_inset LatexCommand index -name "M50 Feed Override Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M50:-Feed-Override" - -\end_inset - - -\end_layout - -\begin_layout Standard -To enable the feed rate override switch, program -\family typewriter -M50 -\family default - or -\family typewriter -M50 P1 -\family default -. - To disable the switch program -\family typewriter -M50 P0 -\family default -. - While disabled the feed override will have no influence, and the motion - will be executed at programmed feed rate. - (unless there is an adaptive feed rate override active). -\end_layout - -\begin_layout Subsection -M51 Spindle Speed Override Control -\begin_inset LatexCommand index -name "M51 Spindle Speed Override" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M51:-Spindle-Speed-Override-Control" - -\end_inset - - -\end_layout - -\begin_layout Standard -To enable the spindle speed override switch, program -\family typewriter -M51 -\family default - or -\family typewriter -M51 P1 -\family default -. - To disable the switch program -\family typewriter -M51 P0 -\family default -. - While disabled the spindle speed override will have no influence, and the - spindle speed will have the exact program specified value (using the S-word - as described in -\begin_inset LatexCommand ref -reference "sub:S:-Set-Spindle" - -\end_inset - -). -\end_layout - -\begin_layout Subsection -M52 Adaptive Feed Control -\begin_inset LatexCommand index -name "M52 Adaptive Feed Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M52:-Adaptive-Feed-Control" - -\end_inset - - -\end_layout - -\begin_layout Standard -To use an adaptive feed, program -\family typewriter -M52 -\family default - or -\family typewriter -M52 P1 -\family default -. - To stop using adaptive feed, program -\family typewriter -M52 P0 -\family default -. - When adaptive feed is enabled, some external input value is used together - with the user interface feed override value and the commanded feed rate - to set the actual feed rate. - In EMC2, the HAL pin -\family typewriter -motion.adaptive-feed -\family default - is used for this purpose. - Values on -\family typewriter -motion.adaptive-feed -\family default - should range from 0 (feed hold) to 1 (full speed). -\end_layout - -\begin_layout Subsection -M53 Feed Stop Control -\begin_inset LatexCommand index -name "M53 Feed Stop Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M53:-Feed-Stop-Control" - -\end_inset - - -\end_layout - -\begin_layout Standard -To enable the feed stop switch, program -\family typewriter -M53 -\family default - or -\family typewriter -M53 P1 -\family default -. - To disable the switch program -\family typewriter -M53 P0 -\family default -. - Enabling the feed stop switch will allow motion to be interrupted by means - of the feed stop control. - In EMC2, the HAL pin -\family typewriter -motion.feed-hold -\family default - is used for this purpose. - Values of 1 will cause the motion to stop (if -\family typewriter -M53 -\family default - is active). -\end_layout - -\begin_layout Section -M61 Set Current Tool Number -\begin_inset LatexCommand index -name "M61 Set Current Tool Number" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M61-Set-Current-Tool-Number" - -\end_inset - - -\end_layout - -\begin_layout Standard -To change the current tool number while in MDI or Manual mode program a - M61 Qxx in the MDI window. - One use is when you power up EMC with a tool currently in the spindle you - can set that tool number without doing a tool change. -\end_layout - -\begin_layout Quote -It is an error if: -\end_layout - -\begin_layout Itemize -Q- is not 0 or greater -\end_layout - -\begin_layout Section -M62 to M65 Output Control -\begin_inset LatexCommand index -name "M62 to M65 Output Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M62-to-M65" - -\end_inset - - -\end_layout - -\begin_layout Standard -To control a digital output bit, program -\family typewriter -M- P- -\family default -, where the M-word ranges from 62 to 65, and the P-word ranges from 0 to - a default value of 3. - If needed the the number of I/O can be increased by using the num_dio parameter - when loading the motion controller. - See the Integrators Manual Configuration Section EMC and HAL section for - more information. -\end_layout - -\begin_layout Itemize -The P- word specifies the digital output number. -\end_layout - -\begin_layout Description -M62 Turn on digital output synchronized with motion -\end_layout - -\begin_layout Description -M63 Turn off digital output synchronized with motion -\end_layout - -\begin_layout Description -M64 Turn on digital output immediately -\end_layout - -\begin_layout Description -M65 Turn off digital output immediately -\end_layout - -\begin_layout Standard -The M62 & M63 commands will be queued. - Subsequent commands referring to the same output number will overwrite - the older settings. - More than one output change can be specified by issuing more than one M62/M63 - command. -\end_layout - -\begin_layout Standard -The actual change of the specified outputs will happen at the beginning - of the next motion command. - If there is no subsequent motion command, the queued output changes won't - happen. - It's best to always program a motion g-code (G0, G1, etc) right after the - M62/63. -\end_layout - -\begin_layout Standard -M64 & M65 happen immediately as they are received by the motion controller. - They are not synchronized with movement, and they will break blending. -\end_layout - -\begin_layout Section -M66 Input Control -\begin_inset LatexCommand index -name "M66 Input Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M66-Input-Control" - -\end_inset - - -\end_layout - -\begin_layout Standard -To read the value of an analog or digital input pin, program -\family typewriter -M66 P- E- L- Q- -\family default - , where the P-word and the E-word ranges from 0 to 3. - If needed the the number of I/O can be increased by using the num_dio or - num_aio parameter when loading the motion controller. - See the Integrators Manual Configuration Section EMC and HAL section for - more information.Only one of the P or E words must be present. - It is an error if they are both missing. -\end_layout - -\begin_layout Description -M66 Wait on an input -\end_layout - -\begin_layout Itemize -The P- word specifies the digital input number. - -\end_layout - -\begin_layout Itemize -The E- word specifies the analog input number. - -\end_layout - -\begin_layout Itemize -The L- word specifies the wait type: -\end_layout - -\begin_deeper -\begin_layout Description -0 WAIT_MODE_IMMEDIATE - no waiting, returns immediately. - The current value of the input is stored in parameter #5399 -\end_layout - -\begin_layout Description -1 WAIT_MODE_RISE - waits for the selected input to perform a rise event. -\end_layout - -\begin_layout Description -2 WAIT_MODE_FALL - waits for the selected input to perform a fall event. -\end_layout - -\begin_layout Description -3 WAIT_MODE_HIGH - waits for the selected input to go to the HIGH state. -\end_layout - -\begin_layout Description -4 WAIT_MODE_LOW - waits for the selected input to go to the LOW state. -\end_layout - -\end_deeper -\begin_layout Itemize -The Q-word specifies the timeout in seconds for the waiting. - If the timeout is exceeded, the wait is interrupt, and the variable #5399 - will be holding the value -1. - The Q value is ignored if the L-word is zero (IMMEDIATE). - A Q value of zero is an error if the L-word is non-zero. -\end_layout - -\begin_layout Itemize -Mode 0 is the only one permitted for an analog input. -\end_layout - -\begin_layout Standard -M66 wait on an input stops further execution of the program, until the selected - event (or the programmed timeout) occurs. -\end_layout - -\begin_layout Standard -It is an error to program M66 with both a P-word and an E-word (thus selecting - both an analog and a digital input).In EMC2 these inputs are not monitored - in real time and thus should not be used for timing-critical applications. -\end_layout - -\begin_layout Section -M67 Analog Output -\begin_inset LatexCommand index -name "M67 Analog Motion Output Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M67-Analog-Output" - -\end_inset - - -\end_layout - -\begin_layout Standard -To control an analog output synchronized with motion, program -\family typewriter -M67 E- Q- -\family default -, where the E word ranges from 0 to the default maximum of 3 and Q is the - value to set. - The number of I/O can be increased by using the num_aio parameter when - loading the motion controller. - See the "EMC2 and HAL" chapter in the Configuration Section of the Integrators - Manual for more information on the Motion Controller. - M67 functions the same as M62-63. - See the M62-65 section for information about queuing output commands synchroniz -ed with motion. -\end_layout - -\begin_layout Section -M68 Analog Output -\begin_inset LatexCommand index -name "M68 Analog Aux Output Control" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M68-Analog-Output" - -\end_inset - - -\end_layout - -\begin_layout Standard -To control an analog output immediately, program -\family typewriter -M68 E- Q-, -\family default -where the E word ranges from 0 to the default maximum of 3 and Q is the - value to set. - The number of I/O can be increased by using the num_aio parameter when - loading the motion controller. - See the "EMC2 and HAL" chapter in the Configuration Section of the Integrators - Manual for more information on the Motion Controller. - M68 functions the same as M64-65. - See the M62-65 section for information about immediate output commands. -\end_layout - -\begin_layout Section -M100 to M199 User Defined Commands -\begin_inset LatexCommand index -name "M100 to M199 User Defined Commands" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:M100-to-M199:" - -\end_inset - - -\end_layout - -\begin_layout Standard -To invoke a user-defined command, program M1nn P- Q- where P- and Q- are - both optional and must be a number. - The external program "M1nn" must be in the directory named in [DISPLAY]PROGRAM_ -PREFIX in the ini file and is executed with the P and Q values as its two - arguments. - Execution of the RS274NGC file pauses until the invoked program exits. - Any valid executable file can be used. -\end_layout - -\begin_layout Standard -The error "Unknown M code used" denotes one of the following -\end_layout - -\begin_layout Itemize -The specified User Defined Command does not exist -\end_layout - -\begin_layout Itemize -The file is not an executable file -\end_layout - -\begin_layout Standard -For example to open and close a collet closer that is controlled by a paraport - pin using a bash script file using M101 and M102. - Create two files called M101 and M102. - Set them as executable files (typically right click/properties/permissions) - before running EMC2. - Make sure the paraport pin is not connected to anything in a hal file. -\end_layout - -\begin_layout Standard -M101 (file name) -\end_layout - -\begin_layout LyX-Code -#!/bin/sh -\end_layout - -\begin_layout LyX-Code -# file to turn on paraport pin 14 to open the collet closer -\end_layout - -\begin_layout LyX-Code -halcmd setp parport.0.pin-14-out True -\end_layout - -\begin_layout LyX-Code -exit 0 -\end_layout - -\begin_layout Standard -M102 (file name) -\end_layout - -\begin_layout LyX-Code -#!/bin/sh -\end_layout - -\begin_layout LyX-Code -# file to turn off paraport pin 14 to open the collet closer -\end_layout - -\begin_layout LyX-Code -halcmd setp parport.0.pin-14-out False -\end_layout - -\begin_layout LyX-Code -exit 0 -\end_layout - -\begin_layout Standard -To pass a variable to a M1nn file you use the P and Q option like this -\end_layout - -\begin_layout LyX-Code -M100 P123.456 Q321.654 -\end_layout - -\begin_layout Standard -In your M100 file it might look like this: -\end_layout - -\begin_layout LyX-Code -#!/bin/sh -\end_layout - -\begin_layout LyX-Code -voltage=$1 -\end_layout - -\begin_layout LyX-Code -feedrate=$2 -\end_layout - -\begin_layout LyX-Code -halcmd setp thc.voltage $voltage -\end_layout - -\begin_layout LyX-Code -halcmd setp thc.feedrate $feedrate -\end_layout - -\begin_layout LyX-Code -exit 0 -\end_layout - -\begin_layout Chapter -O Codes -\begin_inset LatexCommand index -name "O Codes" - -\end_inset - - -\begin_inset LatexCommand label -name "cha:O-Codes" - -\end_inset - - -\end_layout - -\begin_layout Standard -O-codes provide for flow control in NC programs. - Each block has an associated number, which is the number used after O. - Care must be taken to properly match the O-numbers. - O codes use the letter "O" not the number zero as the first character in - the number like O100. -\end_layout - -\begin_layout Standard -The behavior is undefined if: -\end_layout - -\begin_layout Itemize -Other words are used on a line with an O- word -\end_layout - -\begin_layout Itemize -Comments are used on a line with an O-word -\end_layout - -\begin_layout Section -Subroutines: sub, endsub, return, call -\begin_inset LatexCommand index -name "Subroutines: sub, endsub, return, call" - -\end_inset - - -\end_layout - -\begin_layout Standard -Subroutines extend from a -\family typewriter -O- sub -\family default - to an -\family typewriter -O- endsub -\family default -. - The lines inside the subroutine (the "body") are not executed in order; - instead, they are executed each time the subroutine is called with -\family typewriter -O- call. -\end_layout - -\begin_layout LyX-Code -O100 sub (subroutine to move to machine home) -\end_layout - -\begin_layout LyX-Code -G0 X0 Y0 Z0 -\end_layout - -\begin_layout LyX-Code -O100 endsub -\end_layout - -\begin_layout LyX-Code -(many intervening lines) -\end_layout - -\begin_layout LyX-Code -O100 call -\end_layout - -\begin_layout Standard -Inside a subroutine, -\family typewriter -O- return -\family default - can be executed. - This immediately returns to the calling code, just as though -\family typewriter -O- endsub -\family default - was encountered. -\end_layout - -\begin_layout Standard - -\family typewriter -O- call -\family default - takes up to 30 optional arguments, which are passed to the subroutine as - -\family typewriter -#1 -\family default -, -\family typewriter -#2 -\family default -, ..., #N. - Parameters from #N+1 to #30 have the same value as in the calling context. - On return from the subroutine, the values of parameters #1 through #30 - (regardless of the number of arguments) will be restored to the values - they had before the call. - Parameters #1 - #30 are local to the subroutine. -\end_layout - -\begin_layout Standard -Because " -\family typewriter -1 2 3 -\family default -" is parsed as the number 123, the parameters must be enclosed in square - brackets. - The following calls a subroutine with 3 arguments: -\end_layout - -\begin_layout LyX-Code -O200 call [1] [2] [3] -\end_layout - -\begin_layout Standard -Subroutine bodies may not be nested. - They may only be called after they are defined. - They may be called from other functions, and may call themselves recursively - if it makes sense to do so. - The maximum subroutine nesting level is 10. -\end_layout - -\begin_layout Standard -Subroutines do not have "return values", but they may change the value of - parameters above #30 and those changes will be visible to the calling code. - Subroutines may also change the value of global named parameters. -\end_layout - -\begin_layout Section -Looping: do, while, endwhile, break, continue -\begin_inset LatexCommand index -name "Looping: do, while, endwhile, break, continue" - -\end_inset - - -\end_layout - -\begin_layout Standard -The "while loop" has two structures: while/endwhile, and do/while. - In each case, the loop is exited when the "while" condition evaluates to - false. -\end_layout - -\begin_layout LyX-Code -(draw a sawtooth shape) -\end_layout - -\begin_layout LyX-Code -F100 -\end_layout - -\begin_layout LyX-Code -#1 = 0 -\end_layout - -\begin_layout LyX-Code -O101 while [#1 lt 10] -\end_layout - -\begin_layout LyX-Code -G1 X0 -\end_layout - -\begin_layout LyX-Code -G1 Y[#1/10] X1 -\end_layout - -\begin_layout LyX-Code -#1 = [#1+1] -\end_layout - -\begin_layout LyX-Code -O101 endwhile -\end_layout - -\begin_layout Standard -Inside a while loop, -\family typewriter -O- break -\family default - immediately exits the loop, and -\family typewriter -O- continue -\family default - immediately skips to the next evaluation of the -\family typewriter -while -\family default - condition. - If it is still true, the loop begins again at the top. - If it is false, it exits the loop. -\end_layout - -\begin_layout Section -Conditional: if, else, endif -\begin_inset LatexCommand index -name "Conditional: if, else, endif" - -\end_inset - - -\end_layout - -\begin_layout Standard -The "if" conditional executes one group of statements if a condition is - true and another if it is false. -\end_layout - -\begin_layout LyX-Code -(Set feed rate depending on a variable) -\end_layout - -\begin_layout LyX-Code -O102 if [#2 GT 5] -\end_layout - -\begin_layout LyX-Code -F100 -\end_layout - -\begin_layout LyX-Code -O102 else -\end_layout - -\begin_layout LyX-Code -F200 -\end_layout - -\begin_layout LyX-Code -O102 endif -\end_layout - -\begin_layout Section -Repeat -\begin_inset LatexCommand index -name "Repeat" - -\end_inset - - -\end_layout - -\begin_layout Standard -The "repeat" will execute the statements inside of the repeat/endrepeat - the specified number of times. - The example shows how you might mill a diagonal series of shapes starting - at the present position. -\end_layout - -\begin_layout LyX-Code -(Mill 5 diagonal shapes) -\end_layout - -\begin_layout LyX-Code -G91 (Incremental mode) -\end_layout - -\begin_layout LyX-Code -O103 repeat [5] -\end_layout - -\begin_layout LyX-Code -... - (insert milling code here) -\end_layout - -\begin_layout LyX-Code -G0 X1 Y1 (diagonal move to next position) -\end_layout - -\begin_layout LyX-Code -O103 endrepeat -\end_layout - -\begin_layout LyX-Code -G90 (Absolute mode) -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout Section -Indirection -\begin_inset LatexCommand index -name "Indirection" - -\end_inset - - -\end_layout - -\begin_layout Standard -The O-number may be given by a parameter or calculation. -\end_layout - -\begin_layout LyX-Code -O[#101+2] call -\end_layout - -\begin_layout Section -Computing values in O-words -\end_layout - -\begin_layout Standard -In O-words, Parameters (section -\begin_inset LatexCommand ref -reference "sub:Numbered-Parameters" - -\end_inset - -), Expressions (section -\begin_inset LatexCommand ref -reference "sub:Expressions" - -\end_inset - -), Binary Operators (section -\begin_inset LatexCommand ref -reference "sub:Binary-Operators" - -\end_inset - -) and Functions (table -\begin_inset LatexCommand ref -reference "cap:Functions" - -\end_inset - -) are particularly useful. -\end_layout - -\begin_layout Section -Calling Files -\begin_inset LatexCommand index -name "Calling Files" - -\end_inset - - -\end_layout - -\begin_layout Standard -To call a separate file with a subroutine name the file the same as your - call and include a sub and endsub in the file. - The file must be in the directory pointed to by PROGRAM_PREFIX. - The file name can include lowercase letters, numbers, dash, and underscore - only. -\end_layout - -\begin_layout LyX-Code -o call (a named file) -\end_layout - -\begin_layout Standard -or -\end_layout - -\begin_layout LyX-Code -o123 call (a number file) -\end_layout - -\begin_layout Standard -In the called file you must include the oxxx sub and endsub and the file - must be a valid file. -\end_layout - -\begin_layout LyX-Code -myfile.ngc -\end_layout - -\begin_layout LyX-Code -o sub -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -o endsub -\end_layout - -\begin_layout LyX-Code -M2 -\end_layout - -\begin_layout Chapter -Other Codes -\end_layout - -\begin_layout Section -F: Set Feed Rate -\begin_inset LatexCommand index -name "F: Set Feed Rate" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:F:-Set-Feed" - -\end_inset - - -\end_layout - -\begin_layout Standard -To set the feed rate, program -\family typewriter -F -\family default - where "n" is a number. - The application of the feed rate is as described in Section -\begin_inset LatexCommand ref -reference "sub:Feed-Rate" - -\end_inset - -, unless inverse time feed rate mode is in effect, in which case the feed - rate is as described in Section -\begin_inset LatexCommand ref -reference "sub:G93,-G94:-Set" - -\end_inset - -. - -\end_layout - -\begin_layout Section -S: Set Spindle Speed -\begin_inset LatexCommand index -name "S: Set Spindle Speed" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:S:-Set-Spindle" - -\end_inset - - -\end_layout - -\begin_layout Standard -To set the speed in revolutions per minute (rpm) of the spindle, program - -\family typewriter -S- -\family default - . - The spindle will turn at that speed when it has been programmed to start - turning. - It is OK to program an S word whether the spindle is turning or not. - If the speed override switch is enabled and not set at 100%, the speed - will be different from what is programmed. - It is OK to program S0; the spindle will not turn if that is done. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -the S number is negative. -\end_layout - -\begin_layout Standard -As described in Section -\begin_inset LatexCommand ref -reference "sub:G84:-Right-Hand-Tapping" - -\end_inset - -, if a -\family typewriter -G84 -\family default - (tapping) canned cycle is active and the feed and speed override switches - are enabled, the one set at the lower setting will take effect. - The speed and feed rates will still be synchronized. - In this case, the speed may differ from what is programmed, even if the - speed override switch is set at 100%. - -\end_layout - -\begin_layout Section -T: Select Tool -\begin_inset LatexCommand index -name "T: Select Tool" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:T:-Select-Tool" - -\end_inset - - -\end_layout - -\begin_layout Standard -To select a tool, program -\family typewriter -T -\family default -, where the number is the carousel slot for the tool. - The tool is not changed until an -\family typewriter -M6 -\family default - is programmed (see Section -\begin_inset LatexCommand ref -reference "sub:M6:-Tool-Change" - -\end_inset - -). - The T word may appear on the same line as the -\family typewriter -M6 -\family default - or on a previous line. - It is OK, but not normally useful, if T words appear on two or more lines - with no tool change. - The carousel may move a lot, but only the most recent T word will take - effect at the next tool change. - It is OK to program -\family typewriter -T0 -\family default -; no tool will be selected. - This is useful if you want the spindle to be empty after a tool change. - -\end_layout - -\begin_layout Standard -It is an error if: -\end_layout - -\begin_layout Itemize -a negative T number is used, -\end_layout - -\begin_layout Itemize -or a T number larger than the number of slots in the carousel is used. -\end_layout - -\begin_layout Standard -On some machines, the carousel will move when a T word is programmed, at - the same time machining is occurring. - On such machines, programming the T word several lines before a tool change - will save time. - A common programming practice for such machines is to put the T word for - the next tool to be used on the line after a tool change. - This maximizes the time available for the carousel to move. - -\end_layout - -\begin_layout Standard -Rapid moves after a T will not show on the AXIS preview until after a - feed move. - This is for machines that travel long distances to change the tool like - a lathe. - This can be very confusing at first. - To turn this feature off for the current tool change program a G1 without - any move after the T. -\end_layout - -\begin_layout Section -Comments -\begin_inset LatexCommand index -name "G Code Comments" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Comments" - -\end_inset - - -\end_layout - -\begin_layout Standard -Printable characters and white space inside parentheses is a comment. - A left parenthesis always starts a comment. - The comment ends at the first right parenthesis found thereafter. - Once a left parenthesis is placed on a line, a matching right parenthesis - must appear before the end of the line. - Comments may not be nested; it is an error if a left parenthesis is found - after the start of a comment and before the end of the comment. - Here is an example of a line containing a comment: -\family typewriter -"G80 M5 (stop motion) -\family default -". - Comments do not cause a machining center to do anything. -\end_layout - -\begin_layout Section -Messages -\begin_inset LatexCommand index -name "G Code Messages" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Messages" - -\end_inset - - -\end_layout - -\begin_layout Standard -A comment contains a message if -\family typewriter -"MSG, -\family default -" appears after the left parenthesis and before any other printing characters. - Variants of -\family typewriter -"MSG, -\family default -" which include white space and lower case characters are allowed. - The rest of the characters before the right parenthesis are considered - to be a message. - Messages should be displayed on the message display device. - Comments not containing messages need not be displayed there. - -\end_layout - -\begin_layout Section -Probe Logging -\begin_inset LatexCommand index -name "Probe Logging" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Probe-Logging" - -\end_inset - - -\end_layout - -\begin_layout Standard -A comment can also be used to specify a file for the results of G38.x probing. - See section -\begin_inset LatexCommand ref -reference "sub:G38.2:-Straight-Probe" - -\end_inset - -. -\end_layout - -\begin_layout Standard -Often, general logging is more useful than probe logging. - Using general logging, the format of the output data can be controlled. -\end_layout - -\begin_layout Standard -General Logging -\begin_inset LatexCommand index -name "General Logging" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:General-logging" - -\end_inset - - -\end_layout - -\begin_layout Subsection -(LOGOPEN,filename) -\end_layout - -\begin_layout Standard -Opens the named log file. - If the file already exists, it is truncated. -\end_layout - -\begin_layout Subsection -(LOGAPPEND,filename) -\end_layout - -\begin_layout Standard -Opens the named log file. - If the file already exists, the data is appended. -\end_layout - -\begin_layout Subsection -(LOGCLOSE) -\end_layout - -\begin_layout Standard -If the log file is open, it is closed. -\end_layout - -\begin_layout Subsection -(LOG,\SpecialChar \ldots{} -) -\end_layout - -\begin_layout Standard -The message -\begin_inset Quotes eld -\end_inset - -\SpecialChar \ldots{} - -\begin_inset Quotes erd -\end_inset - - is expanded as described below and then written to the log file if it is - open. -\end_layout - -\begin_layout Section -Debugging Messages -\begin_inset LatexCommand index -name "G Code Debugging Messages" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:Debugging-messages" - -\end_inset - - -\end_layout - -\begin_layout Standard -Comments that look like: -\family typewriter -(debug, rest of comment) -\family default - are the same as comments like -\family typewriter -(msg, rest of comment) -\family default - with the addition of special handling for parameters. -\end_layout - -\begin_layout Standard -Comments that look like: -\family typewriter -(print, rest of comment) -\family default - are output to stderr with special handling for parameters. -\end_layout - -\begin_layout Section -Parameters in special comments -\end_layout - -\begin_layout Standard -In the DEBUG, PRINT and LOG comments, the values of parameters in the message - are expanded. -\end_layout - -\begin_layout Standard -For example: to print a named global variable to stderr (the default console - window) add a line to your gcode like... -\end_layout - -\begin_layout Quote -(print,endmill dia = #<_endmill_dia>) -\end_layout - -\begin_layout Standard -Inside the above types of comments, sequences like -\family typewriter -#123 -\family default - are replaced by the value of the parameter 123. - Sequences like -\family typewriter -# -\family default - are replaced by the value of the named parameter. - Remember that named parameters will have white space removed from them. - So, -\family typewriter -# -\family default - is the same as -\family typewriter -# -\family default -. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/gcode/main_fr.lyx b/docs/src/gcode/main_fr.lyx deleted file mode 100644 index 84bb2e275..000000000 --- a/docs/src/gcode/main_fr.lyx +++ /dev/null @@ -1,12272 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\title{The EMC2 RS274NGC Interpreter} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -Vue d'ensemble d'un centre d'usinage -\layout Standard - -Cette section donne une brve description des interactions entre les organes - d'un centre d'usinage et son interprteur de commandes. - Le lecteur est sens tre dj familier avec les centres d'usinage. -\layout Standard - -Le langage RS274/NGC -\begin_inset LatexCommand \index{RS274NGC} - -\end_inset - - et les fonctions d'usinage standards qui en dcoulent permettent d'envisager - un centre d'usinage sous deux points de vue: -\layout Standard - -(1) les composants mcaniques de la machine. -\layout Standard - -(2) les composants de contrle et les donnes utilises pour le contrle - de la machine. -\layout Section - -Composants mcaniques -\layout Standard - -Un centre d'usinage dispose de beaucoup de composants mcaniques pouvant - tre contrls ou qui peuvent avoir une incidence sur la faon dont le - contrle de la machine s'effectue. - Cette section dcrit les composants qui interagissent avec l'interprteur. - Les composants mcaniques, qui n'interagissent pas avec l'interprteur, - comme les boutons du jog, ne seront pas dcrits ici, mme si ils affectent - le contrle. - -\layout Subsection - -Axes -\begin_inset LatexCommand \index{axes} - -\end_inset - - -\layout Standard - -Tout centre d'usinage dispose d'un ou de plusieurs axes. - Les diffrents types de machines ont diffrentes combinaisons d'axes. - Par exemple, une fraiseuse 4 axes peut avoir la combinaison d'axes XYZA - ou XYZB. - Un tour classique aura les axes XZ. - Une machine de dcoupe fil chaud aura les axes XYUZ. -\begin_inset Foot -collapsed false - -\layout Standard - -Si le mouvement des composants mcaniques n'est pas indpendant, comme sur - une machine hexapode, le langage RS274/NGC et les fonctions standards seront - quand mme utilisables, tant que le contrle de bas niveau sait comment - contrler les mcanismes actuels pour produire le mouvement relatif de - l'outil et de la pice qui auraient t produits par des axes indpendants. - C'est appel, la cinmatique. -\end_inset - - -\begin_inset Foot -collapsed false - -\layout Standard - -Avec EMC, le cas de la machine portique XYYZ avec deux moteurs pour un - axe est mieux trait par la cinmatique que par un axe linaire supplmentaire. -\end_inset - - -\layout Subsubsection - -Axes linaires primaires -\begin_inset LatexCommand \index{axes lineaires primaires} - -\end_inset - - -\layout Standard - -Les axes X, Y et Z produisent des mouvements linaires dans trois directions, - mutuellement orthogonales. -\layout Subsubsection - -Axes linaires secondaires -\begin_inset LatexCommand \index{axes lineaires secondaires} - -\end_inset - - -\layout Standard - -Les axes U, V et W produisent des mouvements linaires dans trois directions - mutuellement orthogonales. - Habituellement, X et U sont parallles, Y et V sont parallles et Z et - W sont parallles. -\layout Subsubsection - -Axes rotatifs -\begin_inset LatexCommand \index{Axes rotatifs} - -\end_inset - - -\layout Standard - -Les axes A, B et C produisent des mouvements angulaires (rotations). - Habituellement, l'axe de rotation de A est parallle X, l'axe de rotation - de B est parallle Y et l'axe de rotation de C est parallle Z. -\layout Subsection - -Broche -\begin_inset LatexCommand \index{broche} - -\end_inset - - -\layout Standard - -Un centre d'usinage est quip d'une broche qui maintient un outil coupant, - un palpeur ou d'autres outils. - La broche peut tourner dans les deux sens. - Elle peut tre conue pour tourner vitesse constante mais rglable. - Except sur les machines dont la broche est monte sur un axe rotatif, - l'axe de la broche est maintenu parallle l'axe Z et il est concident - avec l'axe Z quand X et Y sont zro. - La broche peut tre stoppe sur une position fixe ou non. - -\layout Subsection - -Arrosages -\begin_inset LatexCommand \index{arrosage} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un composant fournissant l'arrosage - fuide ou en brouillard. -\layout Subsection - -Chargeur de pices -\begin_inset LatexCommand \index{chargement} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un systme de chargement des pices. - Le systme se compose de deux porte-pices sur lesquels sont fixs les - bruts des pices usiner. - Un seul porte-pice la fois est en position d'usinage. - -\layout Subsection - -Carrousel d'outils -\begin_inset LatexCommand \index{carrousel d'outils} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un carrousel d'outils dans lequel - sont rangs les outils dj monts dans leurs porte-outils. - -\layout Subsection - -Changeur d'outil -\begin_inset LatexCommand \index{changeur d'outil} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un mcanisme de changement d'outils - (fixs dans les porte-outils) entre le carrousel d'outils et la broche. - -\layout Subsection - -Visu des messages -\layout Standard - -Un centre d'usinage est quip d'une visualisation capable d'afficher les - messages pour l'oprateur. - -\layout Subsection - -Correcteurs de vitesse -\begin_inset LatexCommand \index{correcteurs vitesse} - -\end_inset - - d'avance et de broche -\begin_inset LatexCommand \index{correcteur v. broche} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Feed-and-Speed} - -\end_inset - - -\layout Standard - -Un centre d'usinage est quip de boutons de rglage de la vitesse d'avance - et de la vitesse de rotation de la broche, ils laissent l'oprateur corriger - les vitesses ncessaires pour la broche et l'avance travail, il peut ainsi - augmenter ou rduire les vitesses programmes. -\layout Subsection - -Bouton d'effacement de block -\begin_inset LatexCommand \index{Bouton effacement de block} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Bouton-effacement-de-block} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un bouton d'effacement de block. - Voir la section -\begin_inset LatexCommand \ref{sub:-Interaction-effacement-de-block} - -\end_inset - -. -\layout Subsection - -Bouton d'arrt optionnel du programme -\begin_inset LatexCommand \index{arrt optionnel} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-arret-optionnel} - -\end_inset - - -\layout Standard - -Un centre d'usinage peut tre quip d'un bouton d'arrt du programme. - Voir la section -\begin_inset LatexCommand \ref{sub:-Interaction-arrets-optionnels} - -\end_inset - -. - -\layout Section - -Composants de contrle et de donnes -\layout Subsection - -Axes linaires -\layout Standard - -Les axes X, Y et Z forment un systme de coordonnes orthogonales standard. - La position d'un axe s'exprime en utilisant ses coordonnes. -\layout Standard - -Les axes U, V et W forment galement un systme de coordonnes standard. - X et U sont parallles, Y et V sont parallles enfin Z et W sont parallles. -\layout Subsection - -Axes rotatifs -\layout Standard - -Les axes rotatifs se mesurent en degrs. - Leur sens de rotation positif est le sens anti-horaire quand l'observateur - est plac face l'axe. - -\begin_inset Foot -collapsed false - -\layout Standard - -Si les paralllismes sont particuliers, le constructeur du systme devra - indiquer quels sens de rotation correspondent horaire et anti-horaire. -\end_inset - - -\layout Subsection - -Point contrl -\begin_inset LatexCommand \label{sub:-Point-controle} - -\end_inset - - -\begin_inset LatexCommand \index{point contrl} - -\end_inset - - -\layout Standard - -Le point contrl est le point dont la position et la vitesse de dplacement - sont contrls. - Quand la compensation de longueur d'outil est zro (valeur par dfaut), - c'est un point situ sur l'axe de la broche et proche de la fin de celle-ci. - Cette position peut tre dplace le long de l'axe de la broche en spcifiant - une compensation de longueur d'outil. - Cette compensation correspond gnralement la longueur de l'outil coupant - courant. - Ainsi, le point contrl est la pointe de l'outil. - Sur un tour, les correcteurs d'outil peuvent tre spcifis pour les axes - X et Z, le point contrl est la pointe de l'outil ou (correction du - rayon de bec) lgrement en retrait du point d'intersection des droites - perpendiculaires formes par l'axe des points de tangence la pice, de - face et sur le ct de l'outil. -\layout Subsection - -Mouvement linaire coordonn -\begin_inset LatexCommand \label{sub:-Mouvement-lineaire-coordonne} - -\end_inset - - -\layout Standard - -Pour mener un outil sur une trajectoire spcifie, un centre d'usinage doit - coordonner les mouvements de plusieurs axes. - Nous utilisons le terme -\begin_inset Quotes eld -\end_inset - -mouvement linaire coordonn -\begin_inset Quotes erd -\end_inset - - pour dcrire une situation dans laquelle, nominalement, chacun des axes - se dplace vitesse constante et tous les axes se dplacent de leur point - de dpart leur point d'arrive en mme temps. - Si deux des axes X, Y, Z (ou les trois) se dplacent, ceci produit un mouvement - en ligne droite, d'o le mot -\begin_inset Quotes eld -\end_inset - -linaire -\begin_inset Quotes erd -\end_inset - - dans le terme. - Dans les vritables mouvements, ce n'est souvent pas possible de maintenir - la vitesse constante cause des acclrations et dclrations ncessaires - en dbut et fin de mouvement. - C'est faisable, cependant, de contrler les axes ainsi, chaque axe doit - en permanence faire la mme fraction du mouvement requis que les autres - axes. - Ceci dplace l'outil le long du mme parcours et nous appelons aussi ce - genre de mouvement, mouvement linaire coordonn. -\layout Standard - -Un mouvement linaire coordonn peut tre excut soit en vitesse travail, - soit en vitesse rapide, ou il peut tre synchronis la rotation de la - broche. - Si les limites physique de l'axe rendent le dplacement impossible, tous - les axes seront ralentis pour maintenir le chemin prvu. -\layout Subsection - -Vitesse -\begin_inset LatexCommand \index{vitesse d'avance} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Vitesse-d'avance} - -\end_inset - - -\layout Standard - -La vitesse laquelle le point contrl se dplace est ajustable par l'oprateur. - Sauf cas particulier, (vitesse inverse du temps, vitesse par tour, voir - la section -\begin_inset LatexCommand \ref{sub:G93,-G94:-Set} - -\end_inset - -) , dans l'interprteur, l'interprtation des vitesses est la suivante: -\layout Enumerate - -Si le dplacement concerne un des axes XYZ, F est en units machine par - minute dans le systme Cartsien XYZ et les mouvements des autres axes - (UVWABC) sont galement dans un mme mode de coordonnes. -\layout Enumerate - -Autrement, si le dplacement concerne un des axes UVW, F est en units machine - par minute dans le systme Cartsien UVW, tous les autres axes (ABC) se - dplacent dans un mme mode de coordonnes. -\layout Enumerate - -Autrement, le mouvement est purement rotatif et le mot F est en units de - rotation dans le systme pseudo-Cartsien ABC. -\layout Subsection - -Arrosage -\begin_inset LatexCommand \index{arrosage} - -\end_inset - - -\layout Standard - -Arrosage fluide ou brouillard (gouttelettes) peuvent tre activs sparment. - Le langage RS274/NGC les arrte ensemble (voir la section -\begin_inset LatexCommand \ref{sub:M7,-M8,-M9:} - -\end_inset - -). -\layout Subsection - -Temporisation -\begin_inset LatexCommand \index{tempo} - -\end_inset - - -\layout Standard - -Une temporisation peut tre commande (ex: pour immobiliser tous les axes) - pendant une dure spcifique. - La broche n'est pas arrte pendant une temporisation! Sans s'occuper du - mode de contrle de trajectoire (voir la section -\begin_inset LatexCommand \ref{sub:Modes-de-controle-trajectoires} - -\end_inset - -) la machine s'arrtera exactement la fin du dernier mouvement avant la - temporisation. -\layout Subsection - -Units -\begin_inset LatexCommand \index{unites} - -\end_inset - - -\layout Standard - -Les units utilises pour les distances le long des axes X, Y et Z peuvent - tre les pouces ou les millimtres. - La vitesse de rotation de la broche est en tours par minute. - Les positions des axes rotatifs sont exprimes en degrs. - Les vitesses d'avance sont exprimes en units machine par minute ou en - degrs par minute ou en units de longueur par tour de broche, comme dcrit - dans la section -\begin_inset LatexCommand \ref{sub:-Vitesse-d'avance} - -\end_inset - -. -\layout Subsection - -Position courante -\layout Standard - -Le point contrl est toujours un emplacement appel la "position courante,'' - et le contrleur sait toujours o est cette position. - Les valeurs reprsentant la position courante doivent tre ajustes en - l'absence de tout mouvement des axes si un de ces vnements a lieu: -\layout Enumerate - -Les units de longueur ont chang. -\layout Enumerate - -La compensation de longueur d'outil a chang. -\layout Enumerate - -Le dcalage d'origine a chang. - -\layout Subsection - -Choix du plan de travail -\begin_inset LatexCommand \label{sub:-Choix-du-plan-de-travail} - -\end_inset - - -\layout Standard - -Il y a toujours un plan slectionn, qui doit tre le plan XY, le plan YZ, - ou le plan XZ de la machine. - L'axe Z est, bien sr, perpendiculaire au plan XY, l'axe X perpendiculaire - au plan YZ et l'axe Y perpendiculaire au plan XZ. - -\layout Subsection - -carrousel d'outils -\layout Standard - -Aucun ou un outil est assign chaque emplacement dans le carrousel. -\layout Subsection - -Changeur d'outil -\layout Standard - -Un centre d'usinage peut commander un changeur d'outils. -\layout Subsection - -Chargeur de pice -\layout Standard - -Les deux porte-pices peuvent tre intervertis par commande. -\layout Subsection - -Boutons des correcteurs de vitesses -\layout Standard - -Les boutons des correcteurs de vitesses peuvent tre activs (ils fonctionnent - normalement) ou rendus inoprents (Ils n'ont plus aucun effet). - Le langage RS274/NGC dispose d'une commande qui active tous les boutons - et une autre qui les dsactive (voir la section -\begin_inset LatexCommand \ref{sub:M48,-M49:-Correcteurs} - -\end_inset - -). - Voir la section -\begin_inset LatexCommand \ref{sub:-Interaction-vitesses} - -\end_inset - - pour d'autres dtails. - -\layout Subsection - -Modes de contrle de trajectoire -\begin_inset LatexCommand \label{sub:Modes-de-controle-trajectoires} - -\end_inset - - -\layout Standard - -La machine peut tre place dans un de ces trois modes de contrle de trajectoir -e: (1) mode arrt exact, (2) mode trajectoire exacte ou (3) mode trajectoire - continue avec tolrance optionnelle. - En mode arrt exact, le mobile s'arrte brivement la fin de chaque mouvement - programm. - En mode trajectoire exacte, le mobile suit la trajectoire programme aussi - prcisment que possible, ralentissant ou s'arrtant si ncessaire aux - angles vifs du parcours. - En mode trajectoire continue, les angles vifs du parcours peuvent tre - lgrement arrondis pour que la vitesse soit maintenue (sans dpasser la - tolrance, si elle est spcifie). - Voir la section -\begin_inset LatexCommand \ref{sub:G61,-G61.1,-G64:-Controle-trajectoire} - -\end_inset - -. -\layout Section - -Interaction de l'interprteur avec les boutons -\layout Standard - -L'interprteur interagit avec plusieurs boutons de commande. - Cette section dcrit ces interactions plus en dtail. - En aucun cas l'interprteur ne connait ce que sont les rglages de ces - boutons. - -\layout Subsection - -Boutons de correction de vitesses -\begin_inset LatexCommand \label{sub:-Interaction-vitesses} - -\end_inset - - -\layout Standard - -L'interprteur de commande RS274/NGC autorise (M48) ou interdit (M49) l'action - des boutons d'ajustement des vitesses. - Pour certains mouvements, tels que la sortie de filet la fin d'un cycle - de filetage, les boutons sont neutraliss automatiquement. -\layout Standard - -EMC2 ragit aux rglages de ces boutons seulement quand ils sont autoriss. -\layout Subsection - -Bouton d'effacement de block Switch -\begin_inset LatexCommand \label{sub:-Interaction-effacement-de-block} - -\end_inset - - -\begin_inset LatexCommand \index{effacement de block} - -\end_inset - - -\layout Standard - -Si le bouton -\begin_inset Quotes eld -\end_inset - -Effacement de block -\begin_inset Quotes erd -\end_inset - - est actif, les lignes de code RS274/NGC commenant par le caractre barre - de fraction (caractre d'effacement de block) ne sont pas interprtes. - Si le bouton est dsactiv, ces mmes lignes sont interprtes. - Normalement le bouton d'effacement de block doit tre positionn avant - de lancer le programme NGC. -\layout Subsection - - -\family typewriter -Bouton d'arrt optionnel du programme -\begin_inset LatexCommand \label{sub:-Interaction-arrets-optionnels} - -\end_inset - - -\begin_inset LatexCommand \index{Arrets optionnels} - -\end_inset - - -\layout Standard - -Si ce bouton est actif et qu'un code M1 est rencontr, le programme est - mis en pause. -\layout Section - -Fichier d'outils -\begin_inset LatexCommand \label{sub:-Fichier-d'outils} - -\end_inset - - -\layout Standard - -Un fichier d'outils est requis par l'interprteur. - Le fichier indique dans quels emplacements du carrousel sont placs les - outils, la longueur et le diamtre de chacun des outils. -\layout Standard - -Le fichier est compos d'un certain nombre de lignes d'en-tte, suivies - par une ligne vide, suivie d'un nombre quelconque de lignes de donnes. - Les lignes d'en-tte sont ignores par l'interprteur. - Il est important qu'il y ait une ligne vide (sans espace ni tabulation), - avant les donnes. - La ligne d'en-tte montre dans ce tableau -\begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse} - -\end_inset - -, dcrit les colonnes de donnes, il est donc propos (mais pas obligatoire) - que cette ligne soit toujours prsente. - -\layout Standard - -Chaque ligne de donnes du fichier contient les donnes d'un outil. - La ligne peut contenir 4 ou 5 lments ( -\begin_inset Quotes eld -\end_inset - -format fraiseuse -\begin_inset Quotes erd -\end_inset - -) ou 8 ou 9 lments ( -\begin_inset Quotes eld -\end_inset - -format tour -\begin_inset Quotes erd -\end_inset - -). -\layout Standard - -Les units utilises pour la longueur et le diamtre sont en units machine. - -\layout Standard - -Les lignes n'ont pas tre dans un ordre particulier. - Permuter l'ordre des lignes est sans effet, sauf si le mme numro d'emplacemen -t est utilis sur deux ou plusieurs lignes, ce qui ne devrait normalement - pas tre fait, dans ce cas, seules les donnes de la dernire de ces lignes - seront utilises. - -\layout Standard - -Dans emc2, l'emplacement du fichier d'outils est spcifi dans le fichier - ini. - Voir la section [EMCIO] du Manuel de l'intgrateur pour plus de dtails. -\layout Standard - -Un fichier d'outils peut tre un mlange de lignes au -\begin_inset Quotes eld -\end_inset - -format fraiseuse -\begin_inset Quotes erd -\end_inset - - et au -\begin_inset Quotes eld -\end_inset - -format tour -\begin_inset Quotes erd -\end_inset - -, bien que gnralement les lignes du style -\begin_inset Quotes eld -\end_inset - -format tour -\begin_inset Quotes erd -\end_inset - - soient seulement requises pour les outils de tour. -\layout Subsection - -Fichier d'outils au format fraiseuse -\layout Standard - -Le -\begin_inset Quotes eld -\end_inset - -format fraiseuse -\begin_inset Quotes erd -\end_inset - - d'un fichier d'outils est visible dans le tableau -\begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse} - -\end_inset - -. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Exemple de fichier d'outils (format fraiseuse) -\begin_inset LatexCommand \label{cap:Fichier-d'outils-fraiseuse} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - - - - -\begin_inset Text - -\layout Standard - -Slot -\end_inset - - -\begin_inset Text - -\layout Standard - -FMS -\end_inset - - -\begin_inset Text - -\layout Standard - -TLO -\end_inset - - -\begin_inset Text - -\layout Standard - -Diamtre -\end_inset - - -\begin_inset Text - -\layout Standard - -Commentaire -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -2.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -1.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -1.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.2 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5 -\end_inset - - -\begin_inset Text - -\layout Standard - -5 -\end_inset - - -\begin_inset Text - -\layout Standard - -1.5 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.25 -\end_inset - - -\begin_inset Text - -\layout Standard - -coupe en bout -\end_inset - - - - -\begin_inset Text - -\layout Standard - -10 -\end_inset - - -\begin_inset Text - -\layout Standard - -10 -\end_inset - - -\begin_inset Text - -\layout Standard - -2.4 -\end_inset - - -\begin_inset Text - -\layout Standard - --0.3 -\end_inset - - -\begin_inset Text - -\layout Standard - - tester -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Chaque ligne comporte 5 lments. - Les quatre premiers lments sont obligatoires. - Le commentaire, plac en cinquime est facultatif. - La lecture est rendue plus facile si les lments sont disposs en colonnes, - comme dans le tableau ci-dessus, mais la seule exigence de forme, c'est - qu'il y ait au moins un espace ou une tabulation aprs chacun des trois - premiers lments d'une ligne, et une tabulation ou un saut de ligne - la fin des cinq lments. - La signification des colonnes et le type de donnes mettre dans chacune - sont les suivants: -\layout Standard - -La colonne -\begin_inset Quotes eld -\end_inset - -Slot -\begin_inset Quotes erd -\end_inset - - contient un entier non sign reprsentant le numro d'emplacement dans - le carrousel d'outils (numro de slot) dans lequel cet outil est plac. - Les lments de cette colonne doivent tre tous diffrents. -\layout Standard - -La colonne -\begin_inset Quotes eld -\end_inset - -FMS -\begin_inset Quotes erd -\end_inset - - contient un entier non sign reprsentant le numro de code de l'outil. - L'utilisateur peut y placer n'importe quel code pour tous les outils, tant - que les codes sont des entiers non signs. - C'est en gnral le mme que celui de l'emplacement. -\layout Standard - -La colonne -\begin_inset Quotes eld -\end_inset - -TLO -\begin_inset Quotes erd -\end_inset - - contient un nombre rel reprsentant l'offset de longueur d'outil. - Cette valeur sera utilise si la compensation de longueur d'outil est active - et que ce numro d'emplacement est choisi. - C'est normalement un nombre rel positif, mais il peut tre mis zro - ou tout autre valeur si il n'a pas tre utilis. -\layout Standard - -La colonne -\begin_inset Quotes eld -\end_inset - -Diamtre -\begin_inset Quotes erd -\end_inset - - contient un nombre rel. - Cette valeur est utilise seulement si la compensation de rayon d'outil - est active et que ce numro d'emplacement est choisi. - Si la trajectoire programme avec la compensation est le bord du matriau - usiner, ce devrait tre un nombre rel positif reprsentant le diamtre - mesur de l'outil. - Si la trajectoire programme pendant la compensation est la trajectoire - d'un outil dont le diamtre est nominal, ce nombre devrait tre petit (positif, - ngatif ou nul) et reprsenter la diffrence entre le diamtre mesur de - l'outil et le diamtre nominal. - Si la compensation de rayon d'outil n'est pas utilise avec un outil, le - contenu de cette colonne est sans effet. -\layout Standard - -La colonne -\begin_inset Quotes eld -\end_inset - -Commentaire -\begin_inset Quotes erd -\end_inset - - est optionnelle, elle peut tre utilise pour dcrire l'outil. - Tout type de description convient. - Cette colonne amliore la lisibilit du fichier. -\layout Subsection - -Fichier d'outils au format tour -\layout Standard - -Le -\begin_inset Quotes eld -\end_inset - -format tour -\begin_inset Quotes erd -\end_inset - - d'un fichier d'outils est visible dans le tableau -\begin_inset LatexCommand \ref{cap:Fichier-d'outils-tour} - -\end_inset - -. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Exemple de fichier d'outils (format tour) -\begin_inset LatexCommand \label{cap:Fichier-d'outils-tour} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - - - - - - - - -\begin_inset Text - -\layout Standard - -Slot -\end_inset - - -\begin_inset Text - -\layout Standard - -FMS -\end_inset - - -\begin_inset Text - -\layout Standard - -ZOFFSET -\end_inset - - -\begin_inset Text - -\layout Standard - -XOFFSET -\end_inset - - -\begin_inset Text - -\layout Standard - -DIA -\end_inset - - -\begin_inset Text - -\layout Standard - -FRONTANGLE -\end_inset - - -\begin_inset Text - -\layout Standard - -BACKANGLE -\end_inset - - -\begin_inset Text - -\layout Standard - -ORIENTATION -\end_inset - - -\begin_inset Text - -\layout Standard - -Commentaire -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -95.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -155.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.5 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.5 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -120 -\end_inset - - -\begin_inset Text - -\layout Standard - -60 -\end_inset - - -\begin_inset Text - -\layout Standard - -6 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Les champs Slot, FMS, DIA et Commentaire sont les mmes que dans un fichier - d'outils de fraiseuse. - La colonne ZOFFSET est la mme que la colonne TLO d'un fichier d'outils - de fraiseuse; offset de longueur d'outil. - -\layout Standard - -La colonne XOFFSET fournit l'offset pour la coordonne X quand la compensation - de longueur d'outil est active. - -\layout Standard - -La colonne ORIENTATION donne l'orientation de l'outil de tour, comme illustr - sur -\begin_inset LatexCommand \ref{cap:Orientations-des-outils-de-tour} - -\end_inset - -. - La croix rouge correspond au point contrl. - Voir -\begin_inset LatexCommand \ref{sub:-Point-controle} - -\end_inset - -. -\layout Standard - -Les colonnes FRONTANGLE et BACKANGLE sont utilises par certaines interfaces - utilisateur pour afficher une reprsentation de l'outil de tour. -\layout Standard - - -\begin_inset Float figure -placement H -wide false -collapsed false - -\layout Caption - -Orientations des outils de tour -\begin_inset LatexCommand \label{cap:Orientations-des-outils-de-tour} - -\end_inset - - -\layout Standard - - -\begin_inset Graphics - filename images/tool_positions.png - scale 80 - BoundingBox 20bp 20bp 738bp 594bp - -\end_inset - - -\end_inset - - -\layout Section - -Paramtres -\begin_inset LatexCommand \index{parametres} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Parametres} - -\end_inset - - -\layout Standard - -Dans le language RS274/NGC, le centre d'usinage maintient un tableau de - 5400 paramtres numriques. - La plupart d'entre eux ont un usage spcifique. - Le tableau de paramtres est persistant, mme quand la machine est mise - hors tension. - EMC2 utilise un fichier de paramtres et assure sa persistance, il donne - l'interprteur la responsabilit d'actualiser le fichier. - L'interprteur lit le fichier quand il dmarre et l'crit juste avant de - s'arrter. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Paramtres utiliss par l'interprteur RS274NGC -\begin_inset LatexCommand \label{cap:Parametres-interpreteur} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Numros de paramtre -\end_inset - - -\begin_inset Text - -\layout Standard - -Signification -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5061-5070 -\end_inset - - -\begin_inset Text - -\layout Standard - -Rsultats des mesures -\begin_inset Quotes eld -\end_inset - -G38.2 -\begin_inset Quotes erd -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5161-5169 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset Quotes eld -\end_inset - -G28 -\begin_inset Quotes erd -\end_inset - - Origines machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5181-5189 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset Quotes eld -\end_inset - -G30 -\begin_inset Quotes erd -\end_inset - - Origines pice -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5211-5219 -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset Quotes eld -\end_inset - -G92 -\begin_inset Quotes erd -\end_inset - - Dcalages d'origines -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5220 -\end_inset - - -\begin_inset Text - -\layout Standard - -Numro du systme de coordonnes -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5221-5229 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 1 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5241-5249 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 2 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5261-5269 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 3 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5281-5289 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 4 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5301-5309 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 5 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5321-5329 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 6 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5341-5349 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 7 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5361-5369 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 8 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5381-5389 -\end_inset - - -\begin_inset Text - -\layout Standard - -Systme de coordonnes 9 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5399 -\end_inset - - -\begin_inset Text - -\layout Standard - -Rsultat de M66 - Surveillance entre -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Le format d'un fichier de paramtres est visible dans la table -\begin_inset LatexCommand \ref{cap:Format-fichier-de-parametres} - -\end_inset - -. - Le fichier est compos d'un certain nombre de lignes d'en-tte, suivie - par une ligne vide, suivie d'un nombre quelconque de lignes de donnes. - Les lignes d'en-tte sont ignores par l'interprteur. - Il est important qu'il y ait une ligne vide (sans espace ni tabulation), - avant les donnes. - La ligne d'en-tte montre dans ce tableau -\begin_inset LatexCommand \ref{cap:Format-fichier-de-parametres} - -\end_inset - -, dcrit les colonnes de donnes, il est donc propos (mais pas obligatoire) - que cette ligne soit toujours prsente. - -\layout Standard - -L'interprteur lit seulement les deux premires colonnes du tableau. - Il ignore la troisime colonne, Commentaire. -\layout Standard - -Chaque ligne du fichier contient le numro d'index d'un paramtre dans la - premire colonne et la valeur attribue ce paramtre, dans la deuxime - colonne. - La valeur est reprsente par une nombre flottant en double prcision - l'intrieur de l'interprteur, mais le point dcimal n'est pas exig dans - le fichier. - Le format des paramtres visible dans le tableau -\begin_inset LatexCommand \ref{cap:Format-fichier-de-parametres} - -\end_inset - - est obligatoire et doit tre utilis pour tous les fichiers de paramtres, - l'exception des paramtres reprsentant une valeur sur un axe rotatif - inutilis, qui peuvent tre omis. - Une erreur sera signale si un paramtre requis est absent. - Un fichier de paramtres peut inclure tout autre paramtre, tant que son - numro est compris dans une fourchette de 1 5400. - Les numros de paramtre doivent tre disposs dans l'ordre crossant. - Sinon, une erreur sera signale. - Le fichier original est copi comme fichier de sauvegarde lorsque le nouveau - fichier est crit. - Les commentaires ne sont pas conservs lorsque le fichier est crit. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Format d'un fichier de paramtres -\begin_inset LatexCommand \label{cap:Format-fichier-de-parametres} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -Numro d'index -\end_inset - - -\begin_inset Text - -\layout Standard - -Valeur -\end_inset - - -\begin_inset Text - -\layout Standard - -Commentaire -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5161 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -G28 pom X -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5162 -\end_inset - - -\begin_inset Text - -\layout Standard - -0.0 -\end_inset - - -\begin_inset Text - -\layout Standard - -G28 pom Y -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Section - -Systmes de coordonnes -\begin_inset LatexCommand \index{systmes de coordonnes} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Systemes-de-coordonnees} - -\end_inset - - -\layout Standard - -Dans le langage RS274/NGC, un centre d'usinage dispose d'un systme de coordonn -es machine (absolues) et de 9 systmes de coordonnes programme (relatives). -\layout Standard - -Vous pouvez dfinir le dcalage d'origine de neuf systmes de coordonnes - programme en utilisant G10 L2 Pn (n tant le numro du systme de coordonnes), - avec des valeurs pour les axes en coordonnes absolues. - Voir la section -\begin_inset LatexCommand \ref{sub:G10-L2:-Coordonnees-piece} - -\end_inset - -. -\layout Standard - -Vous pouvez choisir un des neuf systmes en utilisant -\family typewriter -G54 -\family default -, -\family typewriter -G55 -\family default -, -\family typewriter -G56 -\family default -, -\family typewriter -G57 -\family default -, -\family typewriter -G58 -\family default -, -\family typewriter -G59 -\family default -, -\family typewriter -G59.1 -\family default -, -\family typewriter -G59.2 -\family default -, ou -\family typewriter -G59.3 -\family default - (Voir la section -\begin_inset LatexCommand \ref{sub:G54-a-G59.3:} - -\end_inset - -). - Il n'est pas possible de choisir directement le systme de coordonnes - machine. -\layout Standard - -Vous pouvez dcaler l'origine du systme de coordonnes actuel en utilisant - -\family typewriter -G92 -\family default - ou -\family typewriter -G92.3 -\family default -. - Ce dcalage s'appliquera alors l'ensemble des neuf systmes de coordonnes - programme. - Ce dcalage peut tre annul avec -\family typewriter -G92.1 -\family default - ou -\family typewriter -G92.2 -\family default -. - Voir la section -\begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,} - -\end_inset - -. -\layout Standard - -Vous pouvez faire des mouvements dans le systme de coordonnes machine - absolues en utilisant -\family typewriter -G53 -\family default - avec -\family typewriter -G0 -\family default - ou -\family typewriter -G1 -\family default -. - Voir la section -\begin_inset LatexCommand \ref{sub:G53:-Move-in} - -\end_inset - -. -\layout Standard - -Les donnes des systmes de coordonnes sont enregistres dans les paramtres. -\layout Standard - -Lors de l'initialisation, le systme de coordonnes choisi est celui spcifi - par le paramtre 5220. - Une valeur de 1 signifie le premier systme de coordonnes (celui qu'active - G54), une valeur de 2 signifie le deuxime systme de coordonnes (celui - qu'active G55), et ainsi de suite. - Il y a erreur si la valeur du paramtre 5220 n'est pas un nombre entier - compris entre 1 et 9. -\layout Chapter - -Vue d'ensemble du langage -\begin_inset LatexCommand \label{cha:Vue-d'ensemble-du-langage} - -\end_inset - - -\layout Standard - -Le langage RS274/NGC est bas sur des lignes de code. - Chaque ligne (galement appele un -\begin_inset Quotes eld -\end_inset - -block -\begin_inset Quotes erd -\end_inset - -) peut inclure des commandes pour faire produire diverses actions au centre - d'usinage. - Plusieurs lignes de code peuvent tre regroupes dans un fichier pour crer - un programme. -\layout Standard - -Une ligne de code typique commence par un numro de ligne optionnel suivi - par un ou plusieurs -\begin_inset Quotes eld -\end_inset - -mots -\begin_inset Quotes erd -\end_inset - -. - Un mot commence par une lettre suivie d'un nombre (ou quelque chose qui - permet d'valuer un nombre). - Un mot peut, soit donner une commande, soit fournir un argument une commande. - Par exemple, -\begin_inset Quotes eld -\end_inset - - -\family typewriter -G1 X3 -\family default - -\begin_inset Quotes erd -\end_inset - - est une ligne de code valide avec deux mots. - -\begin_inset Quotes eld -\end_inset - - -\family typewriter -G1 -\family default - -\begin_inset Quotes erd -\end_inset - - est une commande qui signifie -\begin_inset Quotes eld -\end_inset - -dplaces toi en ligne droite la vitesse programme -\begin_inset Quotes erd -\end_inset - - et -\begin_inset Quotes eld -\end_inset - - -\family typewriter -X3 -\family default - -\begin_inset Quotes erd -\end_inset - - fournit la valeur d'argument (la valeur de X doit tre 3 la fin du mouvement). - La plupart des commandes RS274/NGC commencent avec G ou M (G pour Gnral - et M pour Miscellaneous (auxiliaire)). - Les termes pour ces commandes sont -\begin_inset Quotes eld -\end_inset - -G codes -\begin_inset Quotes erd -\end_inset - - et -\begin_inset Quotes eld -\end_inset - -M codes. -\begin_inset Quotes erd -\end_inset - - -\layout Standard - -Le langage RS274/NGC -\begin_inset LatexCommand \index{RS274NGC} - -\end_inset - - n'a pas d'indicateur de dbut et de fin de programme. - L'interprteur cependant traite les fichiers. - Un programme simple peut tre en un seul fichier, mais il peut aussi tre - partag sur plusieurs fichiers. - Un fichier peut tre dlimit par le signe pourcent de la manire suivante. - La premire ligne non vide d'un fichier peut contenir un signe -\begin_inset Quotes eld -\end_inset - -% -\begin_inset Quotes erd -\end_inset - - seul, ventuellement encadr d'espaces blancs, ensuite, la fin du fichier - on doit trouver une ligne similaire. - Dlimiter un fichier avec des % est facultatif si le fichier comporte un - -\family typewriter -M2 -\family default - ou un -\family typewriter -M30 -\family default -, mais est requis sinon. - Une erreur sera signale si un fichier a une ligne pourcent au dbut, mais - pas la fin. - Le contenu utile d'un fichier dlimit par pourcent s'arrte aprs la seconde - ligne pourcent. - Tout le reste est ignor. -\layout Standard - -Le langage RS274/NGC prvoit les deux commandes ( -\family typewriter -M2 -\family default - ou -\family typewriter -M30 -\family default -) pour finir un programme. - Le programme peut se terminer avant la fin du fichier. - Les lignes places aprs la fin d'un programme ne seront pas excutes. - L'interprteur ne les lit mme pas. -\layout Section - -Format d'une ligne -\layout Standard - -Une ligne de code permise par la norme RS274/NGC est construite de la faon - suivante, dans l'ordre avec la restriction un maximum de 256 caractres - sur la mme ligne. -\layout Enumerate - -Un block optionnel contenant le caractre d'effacement de ligne, barre de - fraction -\begin_inset Quotes eld -\end_inset - -/ -\begin_inset Quotes erd -\end_inset - -. - -\layout Enumerate - -Un numro de ligne optionnel. -\layout Enumerate - -N'importe quel nombre de mots, valeurs de paramtres et commentaires. -\layout Enumerate - -Un caractre de fin de ligne (retour chariot ou saut de ligne ou les deux). -\layout Standard - -Toute entre non explicitement permise est illgale, elle provoquera un - message d'erreur de l'interprteur. -\layout Standard - -Les espaces sont permis ainsi que les tabulations dans une ligne de code - dont ils ne changent pas la signification, except dans les commentaires. - Ceci peut donner d'tranges lignes, mais elles sont autorises. - La ligne -\begin_inset Quotes eld -\end_inset - - -\family typewriter -g0x +0. - 12 34y 7 -\family default - -\begin_inset Quotes erd -\end_inset - - est quivalente -\begin_inset Quotes eld -\end_inset - - -\family typewriter -g0 x+0.1234 y7 -\family default - -\begin_inset Quotes erd -\end_inset - -, par exemple. -\layout Standard - -Les lignes vides sont permises, elles seront ignores. -\layout Standard - -La casse des caractres est ignore, except dans les commentaires. - Toutes les lettres en dehors des commentaires peuvent tre, indiffremment - des majuscules ou des minuscules sans changer la signification de la ligne. - -\layout Section - -Numro de ligne -\layout Standard - -Un numro de ligne commence par la lettre N suivie d'un nombre entier non - sign compris entre 0 et 99999 crit avec moins de six caractres (par - exemple: 000009 est interdit). - Les numros de ligne peuvent se suivre ou tre dans le dsordre, bien qu'une - pratique normale vite ce genre d'usage. - Les numros de ligne peuvent tre sauts, c'est une pratique normale. - L'utilisation d'un numro de ligne n'est pas obligatoire, mais si il est - utilis, il doit tre sa place. -\layout Section - -Les mots -\layout Standard - -Un mot est une lettre, autre que N, suivie d'un nombre rel. -\layout Standard - -Les mots peuvent commencer avec l'une ou l'autre des lettres indiques dans - le tableau -\begin_inset LatexCommand \ref{cap:Les-mots-et-leur-significations} - -\end_inset - -. - Le tableau inclus N pour tre complet, mme si, comme dfini prcdemment, - les numros de lignes ne sont pas des mots. - Plusieurs lettres (I, J, K, L, P, R) peuvent avoir diffrentes significations - dans des contextes diffrents. - Les lettres qui se rfrent aux noms d'axes ne sont pas valides sur une - machine n'ayant pas les axes correspondants. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Les mots et leur signification -\begin_inset LatexCommand \label{cap:Les-mots-et-leur-significations} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Lettre -\end_inset - - -\begin_inset Text - -\layout Standard - -Signification -\end_inset - - - - -\begin_inset Text - -\layout Standard - -A -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe A de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -B -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe B de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -C -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe C de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -D -\end_inset - - -\begin_inset Text - -\layout Standard - -Valeur de la compensation de rayon d'outil -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F -\end_inset - - -\begin_inset Text - -\layout Standard - -Vitesse d'avance travail -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G -\end_inset - - -\begin_inset Text - -\layout Standard - -Fonction Gnrale (voir la table 5) -\end_inset - - - - -\begin_inset Text - -\layout Standard - -H -\end_inset - - -\begin_inset Text - -\layout Standard - -Index d'offset de longueur d'outil -\end_inset - - - - -\begin_inset Text - -\layout Standard - -I -\end_inset - - -\begin_inset Text - -\layout Standard - -Dcalage en X pour les arcs et dans les cycles prprogramms G87 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -J -\end_inset - - -\begin_inset Text - -\layout Standard - -Dcalage en Y pour les arcs et dans les cycles prprogramms G87 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -K -\end_inset - - -\begin_inset Text - -\layout Standard - -Dcalage en Z pour les arcs et dans les cycles prprogramms G87 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -Distance de dplacement par tour de broche avec G33 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M -\end_inset - - -\begin_inset Text - -\layout Standard - -Fonction auxiliaire (voir la table 7) -\end_inset - - - - -\begin_inset Text - -\layout Standard - -N -\end_inset - - -\begin_inset Text - -\layout Standard - -Numro de ligne -\end_inset - - - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - -Temporisation utilise dans les cycles prprogramms et avec G4. - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -Mot cl utilis avec G10. -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Q -\end_inset - - -\begin_inset Text - -\layout Standard - -Incrment Delta en Z dans un cycle prprogramm G73, G83 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -R -\end_inset - - -\begin_inset Text - -\layout Standard - -Rayon d'arc ou plan de retrait dans un cycle prprogramm -\end_inset - - - - -\begin_inset Text - -\layout Standard - -S -\end_inset - - -\begin_inset Text - -\layout Standard - -Vitesse de rotation de la broche -\end_inset - - - - -\begin_inset Text - -\layout Standard - -T -\end_inset - - -\begin_inset Text - -\layout Standard - -Numro d'outil -\end_inset - - - - -\begin_inset Text - -\layout Standard - -U -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe U de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -V -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe V de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -W -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe W de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -X -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe X de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Y -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe Y de la machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Z -\end_inset - - -\begin_inset Text - -\layout Standard - -Axe Z de la machine -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Subsection - -Nombres -\begin_inset LatexCommand \label{sub:-Nombres} - -\end_inset - - -\layout Standard - -Les rgles suivantes sont employes pour des nombres (explicites). - Dans ces rgles un chiffre est un caractre simple entre 0 et 9. -\layout Itemize - -Un nombre commence par: (1) un signe plus ou un signe moins optionnel, suivi - par (2) de zro plusieurs chiffres, peut tre suivis par, (3) un point - dcimal, suivi par (4) de zro plusieurs chiffres, il doit au moins y - avoir un chiffre. -\layout Itemize - -Il existe deux types de nombres: les entiers et les dcimaux. - Un entier n'a pas de point dcimal; un dcimal en a un. -\layout Itemize - -Les nombres peuvent avoir n'importe quel nombre de chiffres, sous rserve - de la limitation de longueur d'une ligne. - Seulement environ dix-sept chiffres significatifs seront retenus, c'est - toutefois suffisant pour toutes les applications connues. -\layout Itemize - -Un nombre non nul sans autre signe que le premier caractre est considr - positif. -\layout Standard - -Les zros non significatifs, ne sont pas ncessaires. -\layout Standard - -Si un nombre utilis dans le langage RS274/NGC est proche d'une valeur entire - moins de quatre dcimales, il est considr comme entier, par exemple - 0.9999. - -\layout Subsection - -Paramtres numrots -\begin_inset LatexCommand \label{sub:-Parametres-numerotes} - -\end_inset - - -\layout Standard - -Un paramtre numrot commence par le caractre -\family typewriter -# -\family default - suivi par un entier compris entre 1 et 5399. - Le paramtre est rfrenc par cet entier, sa valeur est la valeur stocke - dans le paramtre. - -\layout Standard - -Une valeur est stocke dans un paramtre avec l'oprateur = par exemple - " -\family typewriter -#3 = 15 -\family default -" signifie que la valeur 15 est stocke dans le paramtre numro 3. - -\layout Standard - -Le caractre -\family typewriter -# -\family default - a une prcdence suprieure celle des autres oprations, ainsi par exemple, - -\begin_inset Quotes eld -\end_inset - - -\family typewriter -#1+2 -\family default - -\begin_inset Quotes erd -\end_inset - - signifie la valeur trouve en ajoutant 2 la valeur contenue dans le paramtre - 1 et non la valeur trouve dans le paramtre 3. - Bien sr, -\family typewriter -#[1+2] -\family default - signifie la valeur trouve dans le paramtre 3. - Le caractre -\family typewriter -# -\family default - peut tre rpt, par exemple -\family typewriter -##2 -\family default - signifie le paramtre dont le numro est gal la valeur entire trouve - dans le paramtre 2. -\layout Subsection - -Paramtres nomms -\begin_inset LatexCommand \label{sub:-Parametres-nommes} - -\end_inset - - -\layout Standard - -Les paramtres nomms fonctionnent comme les paramtres numrots mais sont - plus faciles lire. - Les paramtres nomms sont convertis en minuscules, les espaces et tabulations - sont supprims. - Les paramtres nomms doivent tre encadrs des signes -\family typewriter -< et > -\family default -. -\layout Standard - - -\family typewriter -# -\family default - est un paramtre nomm local. - Par dfaut, un paramtre nomm est local l'tendue dans laquelle il est - assign. - L'accs un paramtre local, en dehors de son sous-programme est impossible, - de sorte que deux sous-programmes puissent utiliser le mme nom de paramtre - sans craindre qu'un des deux n'crase la valeur de l'autre. -\layout Standard - - -\family typewriter -#<_un paramtre global> -\family default - est un paramtre nomm global. - Ils sont accessibles depuis des sous-programmes appels et peuvent placer - des valeurs dans tous les sous-programmes accessibles l'appelant. - En ce qui concerne la porte, ils agissent comme des paramtres numrots. - Ils ne sont pas enregistrs dans des fichiers. - -\layout Standard - -Exemples: -\layout Itemize - -Dclaration d'une variable nomme globale -\layout Standard - - -\family typewriter -#<_troisdents_dia> = 10.00 -\family default - -\layout Itemize - -Rfrence la variable globale prcdemment dclare -\layout Standard - - -\family typewriter -#<_troisdents_rayon> = [#<_troisdents_dia>/2.0] -\family default - -\layout Itemize - -Mlange de paramtres nomms et de valeurs littrales -\layout Standard - - -\family typewriter -o100 call [0.0] [0.0] [#<_interieur_decoupe>-#<_troisdents_dia>] [#<_Zprofondeur>] - [#<_vitesse>] -\layout Standard - -Notes: -\layout Standard - -Les paramtres globaux _a, _b, _c, ... - _z sont rservs pour une utilisation spciale. - Dans le futur, ils pourront fournir l'accs aux derniers Aword, Bword, - Cword, ... - Zword etc. - -\layout Subsection - -Expressions -\begin_inset LatexCommand \label{sub:-Expressions} - -\end_inset - - -\layout Standard - -Une expression est un groupe de caractres commenant avec le crochet gauche - -\family typewriter -[ -\family default - et se terminant avec le crocher droit -\family typewriter -] -\family default -. - Entre les crochets, on trouve des nombres, des valeurs de paramtre, des - oprations mathmatiques et d'autres expressions. - Une expression est value pour produire un nombre. - Les expressions sur une ligne sont values quand la ligne est lue et avant - que quoi que ce soit ne soit xcut sur cette ligne. - Un exemple d'expression: -\family typewriter -[1 + acos[0] - [#3 ** [4.0/2]]] -\family default -. -\layout Subsection - -Oprateurs binaires -\begin_inset LatexCommand \label{sub:-Operateurs-binaires} - -\end_inset - - -\layout Standard - -Les oprateurs binaires ne se rencontrent que dans les expressions. - Il y a quatre oprateurs mathmatiques de base: addition ( -\family typewriter -+ -\family default -), soustraction ( -\family typewriter -- -\family default -), multiplication ( -\family typewriter -* -\family default -) et division ( -\family typewriter -/ -\family default -). - Il y a trois oprateurs logiques: ou ( -\family typewriter -OR -\family default -), ou exclusif ( -\family typewriter -XOR -\family default -) et logique ( -\family typewriter -AND -\family default -). - Le huitime oprateur est le modulo ( -\family typewriter -MOD -\family default -). - Le neuvime oprateur est l'lvation la puissance ( -\family typewriter -** -\family default -) qui lve le nombre situ sa gauche la puissance du nombre situ - sa droite. - Les oprateurs de relation sont: galit ( -\family typewriter -EQ -\family default -), non galit ( -\family typewriter -NE -\family default -), strictement suprieur ( -\family typewriter -GT -\family default -), suprieur ou gal ( -\family typewriter -GE -\family default -), strictement infrieur ( -\family typewriter -LT -\family default -) et infrieur ou gal ( -\family typewriter -LE -\family default -). -\layout Standard - -Les oprations binaires sont divises en plusieurs groupes selon leur prcdence. - (voir la table -\begin_inset LatexCommand \ref{cap:Precedence-des-operateurs} - -\end_inset - -) Si dans une opration se trouvent diffrents groupes de prcdence (par - exemple dans l'expression -\family typewriter -[2.0 / 3 * 1.5 - 5.5 / 11.0] -\family default -), les oprations du groupe suprieur seront effectues avant celles des - groupes infrieurs. - Si une expression contient plusieurs oprations du mme groupe (comme les - premiers -\family typewriter -/ -\family default - et -\family typewriter -* -\family default - dans l'exemple), l'opration de gauche est effectue en premier. - Notre exemple est quivalent : -\family typewriter -[[[2.0 / 3] * 1.5] - [5.5 / 11.0]] -\family default - , qui est quivalent -\family typewriter -[1.0 - 0.5] -\family default - , le rsultat est: -\family typewriter -0.5 -\family default - . -\layout Standard - -Les oprations logiques et le modulo sont excuts sur des nombres rels - et non pas seulement sur des entiers. - Le zro est quivalent un tat logique faux (FALSE), tout nombre diffrent - de zro est quivalent un tat logique vrai (TRUE). - -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Prcdence des oprateurs -\begin_inset LatexCommand \label{cap:Precedence-des-operateurs} - -\end_inset - - -\begin_inset LatexCommand \index{Precedence des operateurs} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Oprateurs -\end_inset - - -\begin_inset Text - -\layout Standard - -Prcdence -\end_inset - - - - -\begin_inset Text - -\layout Standard - -** -\end_inset - - -\begin_inset Text - -\layout Standard - - -\emph on -haute -\end_inset - - - - -\begin_inset Text - -\layout Standard - -* / MOD -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -+ - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -EQ NE GT GE LT LE -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -AND OR XOR -\end_inset - - -\begin_inset Text - -\layout Standard - - -\emph on -basse -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Subsection - -Fonctions -\begin_inset LatexCommand \label{sub:-Operations-unaires} - -\end_inset - - -\layout Standard - -Une fonction commence par son nom, ex: -\begin_inset Quotes eld -\end_inset - - -\family typewriter -ATAN -\family default - -\begin_inset Quotes erd -\end_inset - - suivi par une expression divise par une autre expression (par exemple - -\begin_inset Quotes eld -\end_inset - - -\family typewriter -ATAN[2]/[1+3] -\family default - -\begin_inset Quotes erd -\end_inset - -) ou tout autre nom de fonction suivi par une expression (par exemple -\begin_inset Quotes eld -\end_inset - - -\family typewriter -SIN[90] -\family default - -\begin_inset Quotes erd -\end_inset - -). - Les fonctions disponibles sont visibles dans le tableau -\begin_inset LatexCommand \ref{cap:Fonctions} - -\end_inset - -. - Les arguments pour les oprations unaires sur des angles ( -\family typewriter -COS -\family default -, -\family typewriter -SIN -\family default - et -\family typewriter -TAN -\family default -) sont en degrs. - Les valeurs retournes par les oprations sur les angles ( -\family typewriter -ACOS -\family default -, -\family typewriter -ASIN -\family default - et -\family typewriter -ATAN -\family default -) sont galement en degrs. -\layout Standard - -L'oprateur -\family typewriter -FIX -\family default - arrondi vers la gauche (moins positif ou plus ngatif), par exemple: -\family typewriter -FIX[2.8] =2 -\family default - et -\family typewriter -FIX[-2.8] = -3 -\family default - . - L'oprateur -\family typewriter -FUP -\family default - arrondi vers la droite (plus positif ou moins ngatif), par exemple: -\family typewriter -FUP[2.8] = 3 -\family default - et -\family typewriter -FUP[-2.8] = -2 -\family default - . - -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Fonctions -\begin_inset LatexCommand \label{cap:Fonctions} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Nom de fonction -\end_inset - - -\begin_inset Text - -\layout Standard - -Fonction -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ATAN[Y]/[X] -\end_inset - - -\begin_inset Text - -\layout Standard - -Tangente quatre quadrants -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ABS[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Valeur absolue -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ACOS[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Arc cosinus -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ASIN[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Arc sinus -\end_inset - - - - -\begin_inset Text - -\layout Standard - -COS[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Cosinus -\end_inset - - - - -\begin_inset Text - -\layout Standard - -EXP[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Exposant -\end_inset - - - - -\begin_inset Text - -\layout Standard - -FIX[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Arrondi l'entier immdiatement infrieur -\end_inset - - - - -\begin_inset Text - -\layout Standard - -FUP[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Arrondi l'entier immdiatement suprieur -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ROUND[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Arrondi l'entier le plus proche -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LN[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Logarithme Nperien -\end_inset - - - - -\begin_inset Text - -\layout Standard - -SIN[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Sinus -\end_inset - - - - -\begin_inset Text - -\layout Standard - -SQRT[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Racine carre -\end_inset - - - - -\begin_inset Text - -\layout Standard - -TAN[arg] -\end_inset - - -\begin_inset Text - -\layout Standard - -Tangente -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Section - -Commentaires -\begin_inset LatexCommand \index{commentaires} - -\end_inset - - -\begin_inset LatexCommand \label{sub:-Commentaires} - -\end_inset - - -\layout Standard - -Un ensemble de caractres et espaces blancs entre parenthses est un commentaire. - Une parenthse ouvrante dbute toujours un commentaire. - Le commentaire se termine la premire parenthse fermante trouve. - Si une parenthse ouvrante est trouve sur une ligne, une parenthse fermante - doit tre galement rencontre avant la fin de la ligne. - Les commentaires ne peuvent pas tre imbriqus, une erreur sera signale - si une parenthse ouvrante est rencontre aprs le dbut d'un commentaire - et avant la fin d'un commentaire. - Voici un exemple de ligne de commentaire: -\family typewriter - -\begin_inset Quotes eld -\end_inset - -G80 M5 (arret du mouvement) -\family default - -\begin_inset Quotes erd -\end_inset - -. - Les commentaires sont seulement informatifs, ils n'ont aucune influence - sur la machine. -\layout Subsection - -Messages -\begin_inset LatexCommand \label{sub:-Messages} - -\end_inset - - -\layout Standard - -Un commentaire contient un message si `` MSG'' apparat aprs la parenthse - ouvrante, et avant tout autre caractre. - Les variantes de -\begin_inset Quotes eld -\end_inset - - -\family typewriter -MSG -\family default - -\begin_inset Quotes erd -\end_inset - - qui incluent un espace blanc et des minuscules sont autorises. - Le reste du texte avant la parenthse fermante est considr comme le message. - Les messages sont affichs sur la visu de l'interface utilisateur. - Les commentaires ne contenant pas de message ne sont pas affichs. - -\layout Subsection - -Enregistrement des mesures -\begin_inset LatexCommand \label{sub:-Log-des-mesures} - -\end_inset - - -\layout Standard - -Un commentaire peut aussi tre utilis pour spcifier le fichier de log - des rsultats des mesures faites au palpeur avec G38.x . - Voir la section -\begin_inset LatexCommand \ref{sub:G38.x:-Palpeur} - -\end_inset - -. -\layout Subsection - -Log gnral -\begin_inset LatexCommand \label{sub:-Log-general} - -\end_inset - - -\layout Subsubsection - -(LOGOPEN,filename) -\layout Standard - -Ouvre le fichier de log -\begin_inset Quotes eld -\end_inset - -filename -\begin_inset Quotes erd -\end_inset - -. - Si le fichier existe dj, il sera tronqu. -\layout Subsubsection - -(LOGCLOSE) -\layout Standard - -Si le fichier est ouvert, il sera ferm. -\layout Subsubsection - -(LOG,\SpecialChar \ldots{} -) -\layout Standard - -Le message -\begin_inset Quotes eld -\end_inset - -\SpecialChar \ldots{} - -\begin_inset Quotes erd -\end_inset - - est tendu comme dcrit plus loin, il est crit dans le fichier de log - si il est ouvert. -\layout Subsection - -Messages de dboguage -\begin_inset LatexCommand \label{sub:-Messages-deboguage} - -\end_inset - - -\layout Standard - -Les commentaires comme: -\family typewriter -(debug, reste du commentaire) -\family default - sont traits de la mme faon que ceux avec -\family typewriter -(msg, reste du commentaire) -\family default - avec l'ajout de possibilits spciales pour les paramtres. -\layout Standard - -Les commentaires comme: -\family typewriter -(print, reste du commentaire) -\family default - vont directement sur la sortie stderr avec des possibilits spciales pour - les paramtres. -\layout Subsection - -Paramtres dans les commentaires -\layout Standard - -Dans les commentaires avec DEBUG, PRINT et LOG, les valeurs des paramtres - dans le message sont tendues. -\layout Standard - -Par exemple: pour afficher une variable nomme globale sur la sortie stderr - (la fentre de la console par dfaut) ajouter une ligne au g-code comme: -\layout LyX-Code - -(print,diamtre fraise 3 dents = #<_troisdents_dia>) -\layout Standard - - l'intrieur de ces types de commentaires, les squences comme -\family typewriter -#123 -\family default - sont remplaces par la valeur du paramtre 123. - Les squences comme -\family typewriter -# -\family default - sont remplaces par la valeur du paramtre nomm. - Rappelez vous que les espaces dans les noms des paramtres nomms sont - supprims, -\family typewriter -# -\family default - est quivalent -\family typewriter -# -\family default -. - -\layout Section - -Rptitions d'items -\layout Standard - -Une ligne peut contenir autant de mots G que voulu, mais seulement deux - mots G du mme groupe modal peuvent apparatre sur la mme ligne. - (voir la section -\begin_inset LatexCommand \ref{sec:-Groupes-modaux} - -\end_inset - -) -\layout Standard - -Une ligne peut avoir de zro quatre mots M. - Mais pas deux mots M du mme groupe modal. -\layout Standard - -Pour toutes les autres lettres lgales, un seul mot commenant par cette - lettre peut se trouver sur la mme ligne. -\layout Standard - -Si plusieurs valeurs de paramtre se rptent sur la mme ligne, par exemple: - -\begin_inset Quotes eld -\end_inset - - -\family typewriter -#3=15 #3=6 -\family default - -\begin_inset Quotes erd -\end_inset - -, seule la dernire valeur prendra effet. - Il est absurde, mais pas illgal, de fixer le mme paramtre deux fois - sur la mme ligne. -\layout Standard - -Si plus d'un commentaire apparat sur la mme ligne, seul le dernier sera - utilis, chacun des autres sera lu et son format vrifi, mais il sera - ignor. - Placer plusieurs commentaires sur la mme ligne est trs rare. -\layout Section - -Ordre des items -\layout Standard - -Les trois types d'item dont la commande peut varier sur une ligne (comme - indiqu au dbut de cette section) sont les mots, les paramtres et les - commentaires. - Imaginez que ces trois types d'lments sont diviss en trois groupes selon - leur type. -\layout Standard - -Dans le premier groupe les mots, peuvent tre arrangs dans n'importe quel - ordre sans changer la signification de la ligne. -\layout Standard - -Dans le second groupe les valeurs de paramtre, quelque soit leur arrangement, - il n'y aura pas de changement dans la signification de la ligne sauf si - le mme paramtre est prsent plusieurs fois. - Dans ce cas, seule la valeur du dernier paramtre prendra effet. - Par exemple, quand la ligne -\begin_inset Quotes eld -\end_inset - - -\family typewriter -#3=15 #3=6 -\family default - -\begin_inset Quotes erd -\end_inset - - aura t interprte, la valeur du paramtre 3 vaudra 6. - Si l'ordre est invers, -\begin_inset Quotes eld -\end_inset - - -\family typewriter -#3=6 #3=15 -\family default - -\begin_inset Quotes erd -\end_inset - - aprs interprtation, la valeur du paramtre 3 vaudra 15. -\layout Standard - -Enfin dans le troisime groupe les commentaires, si plusieurs commentaires - sont prsents sur une ligne, seul le dernier commentaire sera utilis. -\layout Standard - -Si chaque groupe est laiss, ou rordonn, dans l'ordre recommand, la significa -tion de la ligne ne changera pas, alors les trois groupes peuvent tre entrecroi -ss n'importe comment sans changer la signification de la ligne. - Par exemple, la ligne -\begin_inset Quotes eld -\end_inset - - -\family typewriter -g40 g1 #3=15 (foo) #4=-7.0 -\family default - -\begin_inset Quotes erd -\end_inset - - cinq items est signifiera exactement la mme chose dans les 120 ordres - d'arrangement possibles des cinq items comme -\begin_inset Quotes eld -\end_inset - - -\family typewriter -#4=-7.0 g1 #3=15 g40 (foo) -\family default - -\begin_inset Quotes erd -\end_inset - -. - -\layout Section - -Commandes et modes machine -\layout Standard - -En RS274/NGC, de nombreuses commandes produisent, d'un mode un autre, - quelque chose de diffrent au niveau de la machine, le mode reste actif - jusqu' ce qu'une autre commande ne le rvoque, implicitement ou explicitement. - Ces commandes sont appeles -\begin_inset Quotes eld -\end_inset - -modales -\begin_inset Quotes erd -\end_inset - -. - Par exemple, si l'arrosage est mis en marche, il y reste jusqu' ce qu'il - soit explicitement arrt. - Les G-codes pour les mouvements sont galement modaux. - Si, par exemple, une commande G1 (dplacement linaire) se trouve sur une - ligne, elle peut tre utilise sur la ligne suivante avec seulement un - mot d'axe, tant qu'une commande explicite est donne sur la ligne suivante - en utilisant des axes ou un arrt de mouvement. -\layout Standard - -Les codes -\begin_inset Quotes eld -\end_inset - -non modaux -\begin_inset Quotes erd -\end_inset - - n'ont d'effet que sur la ligne ou ils se prsentent. - Par exemple, G4 (tempo) est non modale. - -\layout Section - -Groupes modaux -\begin_inset LatexCommand \label{sec:-Groupes-modaux} - -\end_inset - - -\layout Standard - -Les commandes modales sont arranges par lots appels -\begin_inset Quotes eld -\end_inset - -groupes modaux -\begin_inset Quotes erd -\end_inset - -, tout moment, un seul membre d'un groupe modal peut tre actif. - En gnral, un groupe modal contient des commandes pour lesquelles il est - logiquement impossible que deux membres soient actifs simultanment, comme - les units en pouces et les units en millimtres. - Un centre d'usinage peut tre dans plusieurs modes simultanment, si seulement - un mode pour chaque groupe est actif. - Les groupes modaux sont visibles dans le tableau -\begin_inset LatexCommand \ref{cap:Groupes-modaux} - -\end_inset - -. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Groupes modaux -\begin_inset LatexCommand \label{cap:Groupes-modaux} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Signification du groupe modal -\end_inset - - -\begin_inset Text - -\layout Standard - -Mots des membres -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Mouvements ( -\begin_inset Quotes eld -\end_inset - -Groupe 1 -\begin_inset Quotes erd -\end_inset - -) -\end_inset - - -\begin_inset Text - -\layout Standard - -G0 G1 G2 G3 G33 G38.x G73 G80 G81 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -G82 G83 G84 G85 G86 G87 G88 G89 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Choix du plan de travail -\end_inset - - -\begin_inset Text - -\layout Standard - -G17 G18 G19 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Mode diamtre/rayon sur les tours -\end_inset - - -\begin_inset Text - -\layout Standard - -G7, G8 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Mode de dplacements -\end_inset - - -\begin_inset Text - -\layout Standard - -G90, G91 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Mode de vitesses -\end_inset - - -\begin_inset Text - -\layout Standard - -G93, G94 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Units machine -\end_inset - - -\begin_inset Text - -\layout Standard - -G20, G21 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Correcteurs de rayon d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -G40, G41, G42, G41.1, G42.1 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Correcteurs de longueur d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -G43, G43.1, G49 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Options plan de retrait -\end_inset - - -\begin_inset Text - -\layout Standard - -G98, G99 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Systmes de coordonnes -\end_inset - - -\begin_inset Text - -\layout Standard - -G54, G55, G56, G57, G58, -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -G59, G59.1, G59.2, G59.3 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Types d'arrt de programme -\end_inset - - -\begin_inset Text - -\layout Standard - -M0, M1, M2, M30, M60 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Appel d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -M6 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Types de rotation de la broche -\end_inset - - -\begin_inset Text - -\layout Standard - -M3, M4, M5 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Arrosages -\end_inset - - -\begin_inset Text - -\layout Standard - -M7, M8, M9. - Cas spciaux: M7, M8 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -peuvent tre actifs simultanment -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Boutons de correction de vitesse -\end_inset - - -\begin_inset Text - -\layout Standard - -M48, M49 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Contrle de flux -\end_inset - - -\begin_inset Text - -\layout Standard - -O- -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Codes non modaux ( -\begin_inset Quotes eld -\end_inset - -Groupe 0 -\begin_inset Quotes erd -\end_inset - -) -\end_inset - - -\begin_inset Text - -\layout Standard - -G4, G10, G28, G28.1, G30, G30.1, G53 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -G92, G92.1, G92.2, G92.3 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -M100 M199 -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Pour plusieurs groupes modaux, quand la machine est prte accepter des - commandes, un membre du groupe doit tre en vigueur. - Il y a des paramtres par dfaut pour ces groupes modaux. - Lorsque la machine est mise en marche ou r-initialises, les valeurs par - dfaut sont automatiquement actives. -\layout Standard - -Groupe 1, le premier groupe du tableau, est un groupe de G-codes pour les - mouvements. - tout moment, un seul d'entre eux est actif. - Il est appel le mode de mouvement courant. -\layout Standard - -C'est une erreur que de mettre un G-code du groupe 1 et un G-code du groupe - 0 sur la mme ligne si les deux utilisent les mmes axes. - Si un mot d'axe utilisant un G-code du groupe 1 est implicitement actif - sur la ligne (en ayant t activ sur une ancienne ligne) et qu'un G-code - du groupe 0 utilisant des mots d'axes apparat sur la mme ligne, l'activit - du G-code du groupe 1 est rvoque pour le reste de la ligne. - Les mots d'axes utilisant des G-codes du groupe 0 sont G10, G28, G30 et - G92. - -\layout Standard - -C'est une erreur d'inclure des mots sans rapport sur une ligne avec le contrle - de flux -\family typewriter -O -\family default -. -\layout Chapter - -Ordre d'excution -\begin_inset LatexCommand \label{sec:Ordre-d'execution} - -\end_inset - - -\layout Standard - -L'ordre d'excution des lments d'une ligne est essentiel la scurit - et l'efficacit d'une machine. - Les lments sont excuts dans l'ordre indiqu ci-dessous, si ils se trouvent - sur la mme ligne. -\layout Enumerate - -Commentaire (message inclu) -\layout Enumerate - -Positionnement du mode de vitesses (G93, G94). - -\layout Enumerate - -Rglage de la vitesse travail (F). - -\layout Enumerate - -Rglage de la vitesse de rotation de la broche (S). - -\layout Enumerate - -Slection de l'outil (T). - -\layout Enumerate - -Appel d'outil (M6). -\layout Enumerate - -Marche/Arrt broche (M3, M4, M5). -\layout Enumerate - -Marche/Arrt arrosages (M7, M8, M9). -\layout Enumerate - -Activation/Inhibition correcteurs de vitesse (M48, M49). - -\layout Enumerate - -Temporisation (G4). - -\layout Enumerate - -Choix du plan de travail (G17, G18, G19). - -\layout Enumerate - -Choix de l'unit de longueur (G20, G21). -\layout Enumerate - -Activation/Dsactivation de la compensation de rayon d'outil (G40, G41, - G42) -\layout Enumerate - -Activation/Dsactivation de la compensation de longueur d'outil (G43, G49) - -\layout Enumerate - -Slection du systme de coordonnes (G54, G55, G56, G57, G58, G59, G59.1, - G59.2, G59.3). - -\layout Enumerate - -Rglage du mode de trajectoire (G61, G61.1, G64) -\layout Enumerate - -Rglage du mode de dplacement (G90, G91). - -\layout Enumerate - -Rglage du type de retrait (G98, G99). -\layout Enumerate - -Prise d'origine machine (G28, G30) ou tablissement du systme de coordonnes - (G10) ou encore, rglage des dcalages d'axes (G92, G92.1, G92.2, G94). - -\layout Enumerate - -Effectuer les mouvements (G0 G3, G33, G80 G89), tels que modifis (ventuell -ement) par G53. - -\layout Enumerate - -Arrt (M0, M1, M2, M30, M60). -\layout Chapter - -G-Code: Bonnes pratiques -\layout Section - -Utiliser un nombre de dcimales appropri -\layout Standard - -Utilisez au plus 3 chiffres aprs la virgule pour l'usinage en millimtres - et au plus 4 chiffres aprs la virgule pour l'usinage en pouces. - En particulier, les contrles de tolrance des arcs sont faits pour .001 - et .0001 selon les units actives. - -\layout Section - -Utiliser les espaces de faon cohrente -\layout Standard - -Le G-code est plus lisible quand au moins un espace apparat avant les mots. - S'il est permis d' insrer des espaces blancs au milieu des chiffres, il - faut viter de le faire. -\layout Section - -Prfrer le -\begin_inset Quotes eld -\end_inset - -format centre -\begin_inset Quotes erd -\end_inset - - pour les arcs -\layout Standard - -Les arcs en format centre (qui utilisent -\family typewriter -I- J- K- -\family default - au lieu de -\family typewriter -R- -\family default -) se comportent de faon plus prcise que ceux en format rayon, particulirement - pour des angles proche de 180 et 360 degrs. -\layout Section - -Placer les codes modaux importants au dbut des programmes -\layout Standard - -Lorsque l'excution correcte de votre programme dpend de paramtres modaux, - n'oubliez pas de les mettre au dbut du programme. - Des modes incorrects peuvent provenir d'un programme prcdent ou depuis - des entres manuelles. -\layout Standard - -Une bonne mesure prventive consiste placer la ligne suivante au dbut - de tous les programmes: -\layout LyX-Code - -G17 G21 G40 G49 G54 G80 G90 G94 -\layout Standard - -(plan XY, mode mm, annulation de la compensation de rayon, et de longueur, - sytme de coordonnes numro 1, arrt des mouvements, dplacements absolus, - mode vitesse/minute) -\layout Standard - -Peut-tre que le code modal le plus important est le rglage des units - machine. - Si les codes G20 ou G21, ne sont pas inclus, selon les machines l'chelle - d'usinage sera diffrente. - D'autres valeurs comme le plan de retrait des cycles prprogramms peuvent - tre importantes. -\layout Section - -Ne pas mettre trop de choses sur une ligne -\layout Standard - -Ignorer le contenu de la section -\begin_inset LatexCommand \ref{sec:Ordre-d'execution} - -\end_inset - - et ne pas crire de ligne de code qui laisse la moindre ambigut. - De mme, ne pas rgler un paramtre et l'utiliser sur la mme ligne, mme - si la smantique est bien dfinie. - (Exception: Mise jour d'une variable une nouvelle valeur, comme -\family typewriter -#1=[#1+#2 -\family default -]) -\layout Section - -Ne pas utiliser les numros de ligne -\layout Standard - -Les numros de ligne n'apportent rien. - Quand des numros de ligne sont rapports dans les messages d'erreur, ces - numros font rfrence aux numros de lignes l'intrieur du programme, - pas aux valeurs des mots N. -\layout Section - -Lorsque plusieurs systmes de coordonnes sont dplacs, envisager le mode - vitesse inverse du temps -\layout Standard - -Parce que la signification d'un mot F en mtres par minute varie selon les - axes dplacer et parce que la quantit de matire enleve ne dpend pas - que de la vitesse travail, il peut tre plus simple d'utiliser G93, vitesse - inverse du temps pour atteindre l'enlvement de matire souhat. -\layout Standard - - -\begin_inset Include \input{tool_compensation_fr.lyx} -preview false - -\end_inset - - -\layout Chapter - -G Codes -\layout Standard - -Les G-codes du langage RS274/NGC sont dcrits ci-dessous. -\layout Standard - -Dans une commande type, le tiret ( -\family typewriter -- -\family default -) signifie une valeur relle. - Comme dcrite prcdemment, une valeur relle peut tre (1) un nombre explicite -, 4 par exemple, (2) une expression, [2+2] par exemple, (3) une valeur de - paramtre, #88 par exemple, ou (4) une fonction unaire de la valeur acos - [0], par exemple. - -\layout Standard - -Dans la plupart des cas, si des mots d'axes sont donns, parmi -\family typewriter -X -\family default -, -\family typewriter -Y -\family default -, -\family typewriter -Z -\family default -, -\family typewriter -A -\family default -, -\family typewriter -B -\family default -, -\family typewriter -C -\family default -, -\family typewriter -U -\family default -, -\family typewriter -V -\family default -, -\family typewriter -W -\family default -, ils spcifient le point de destination. - Les axes sont donns dans le systme de coordonnes courant, moins qu'explici -tement dcrit comme tant dans le systme de coordonnes absolues (machine). - O les axes sont optionnels, tout axe omis gardera sa valeur courante. - Tout item dans une commande non explicitement dcrit comme optionnel sera - requis. - Une erreur sera signale si un item requis est omis. -\layout Standard - -Dans les commandes, les valeurs suivant les lettres sont souvent donnes - comme des nombres explicites. - Sauf indication contraire, les nombres explicites peuvent tre des valeurs - relles. - Par exemple, G10 L2 pourrait aussi bien tre crite G [2 * 5] L [1 +1]. - Si la valeur du paramtre 100 taient 2, G10 L#100 signifierait galement - la mme chose. - L'utilisation de valeurs relles qui ne sont pas des nombres explicites, - comme indiqu dans les exemples sont rarement utiles. -\layout Standard - -Si -\family typewriter -L- -\family default - est crit dans une commande le -\begin_inset Quotes eld -\end_inset - - -\family typewriter -- -\family default - -\begin_inset Quotes erd -\end_inset - - fera rfrence -\begin_inset Quotes eld -\end_inset - -L nombre -\begin_inset Quotes erd -\end_inset - -. - De la mme manire, le -\begin_inset Quotes eld -\end_inset - - -\family typewriter -- -\family default - -\begin_inset Quotes erd -\end_inset - - dans -\family typewriter -H- -\family default - peut tre appel le -\begin_inset Quotes eld -\end_inset - -H nombre -\begin_inset Quotes erd -\end_inset - - et ainsi de suite pour les autres lettres. - -\layout Section - -Table rsume du G-code -\begin_inset LatexCommand \index{Table du G Code} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\layout Standard - -Codes -\end_inset - - -\begin_inset Text - -\layout Standard - -Descriptions -\end_inset - - -\begin_inset Text - -\layout Standard - -Paramtres -\end_inset - - -\begin_inset Text - -\layout Standard - -Sections -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G0 -\end_inset - - -\begin_inset Text - -\layout Standard - -Interpolation linaire en vitesse rapide -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G0:-Interpolation-lineaire} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Interpolation linaire en vitesse travail -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G1:-Interpolation-lineaire} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G2, G3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Interpolation circulaire sens horaire, sens anti-horaire -\end_inset - - -\begin_inset Text - -\layout Standard - -I J K or R -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:-G2,-G3:-Arc} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G7, G8 -\end_inset - - -\begin_inset Text - -\layout Standard - -Mode diamtre, rayon sur les tours -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G7-Mode-diametre} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G10 L1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Entre longu., rayon, orientation outil dans table d'outils -\end_inset - - -\begin_inset Text - -\layout Standard - -P R X Z -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G10-L1:-Entree-table} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G10 L2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Etablissement du systme de coord. - pice (1 9) -\end_inset - - -\begin_inset Text - -\layout Standard - -P X Y Z A B C -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G10-L2:-Coordonnees-piece} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G17, G18, G19 -\end_inset - - -\begin_inset Text - -\layout Standard - -Choix du plan de travail -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G17,-G18,-G19:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G20, G21 -\end_inset - - -\begin_inset Text - -\layout Standard - -Unit machine -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G20,-G21:-Unites} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G28, G28.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Aller une position prdfinie -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G28,-G28.1:-Aller} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G30, G30.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Aller une position prdfinie -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G30,-G30.1:-Aller} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G33 -\end_inset - - -\begin_inset Text - -\layout Standard - -Mouvement synchronis avec la broche -\end_inset - - -\begin_inset Text - -\layout Standard - -K -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G33,-G33.1:-Broche-synchronisee} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G33.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Taraudage rigide -\end_inset - - -\begin_inset Text - -\layout Standard - -K -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G33,-G33.1:-Broche-synchronisee} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G38.2-G38.5 -\end_inset - - -\begin_inset Text - -\layout Standard - -Mesures au palpeur -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G38.x:-Palpeur} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G40 -\end_inset - - -\begin_inset Text - -\layout Standard - -Annulation de la compensation de longueur d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G40,-G41,-G42:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G41, G42 -\end_inset - - -\begin_inset Text - -\layout Standard - -Compensation de rayon d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -D -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G40,-G41,-G42:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G41.1, G42.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Comp. - dynamique de rayon d'outil gauche, droite -\end_inset - - -\begin_inset Text - -\layout Standard - -D L -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G40,-G41,-G42:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G43 -\end_inset - - -\begin_inset Text - -\layout Standard - -Comp. - de longueur d'outil depuis la table d'outils -\end_inset - - -\begin_inset Text - -\layout Standard - -H -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G43,-G49:-Outils} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G49 -\end_inset - - -\begin_inset Text - -\layout Standard - -Annulation de la compensation de longueur d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -I K -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G43,-G49:-Outils} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G53 -\end_inset - - -\begin_inset Text - -\layout Standard - -Dplacements en coordonnes machine -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G53:-Move-in} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G54-G59 -\end_inset - - -\begin_inset Text - -\layout Standard - -Choix du systme de coordonnes (1 a 9) -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G54-a-G59.3:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G59.1-G59.3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Choix du systme de coordonnes -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G54-a-G59.3:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G61, G61.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Mode trajectoire exacte, mode arrt exact -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G61,-G61.1,-G64:-Controle-trajectoire} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G64 -\end_inset - - -\begin_inset Text - -\layout Standard - -Mode trajectoire continue avec tolrance optionnelle -\end_inset - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G61,-G61.1,-G64:-Controle-trajectoire} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G73 -\end_inset - - -\begin_inset Text - -\layout Standard - -Cycle de perage avec brise copeau -\end_inset - - -\begin_inset Text - -\layout Standard - -R L Q -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G73:-Percage-avec-brise-copeaux} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G76 -\end_inset - - -\begin_inset Text - -\layout Standard - -Cycle de filetage multipasses prprogramm (tour) -\end_inset - - -\begin_inset Text - -\layout Standard - -P Z I J R K Q H L E -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{fig:G76-cycle-de-filetage} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G80 -\end_inset - - -\begin_inset Text - -\layout Standard - -Rvocation des codes modaux -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G80:-Revocation-modaux} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G81 -\end_inset - - -\begin_inset Text - -\layout Standard - -Cycle de perage -\end_inset - - -\begin_inset Text - -\layout Standard - -R L P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G81-a-G89:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G82-G89 -\end_inset - - -\begin_inset Text - -\layout Standard - -Autres cycles preprogrammes -\end_inset - - -\begin_inset Text - -\layout Standard - -R L P Q -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G82:-Cycle-de-percage} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G90, G91 -\end_inset - - -\begin_inset Text - -\layout Standard - -Types de dplacements -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G90,-G91:-Set} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G92 -\end_inset - - -\begin_inset Text - -\layout Standard - -Dcalages d'origines avec mise jour des paramtres -\end_inset - - -\begin_inset Text - -\layout Standard - -X Y Z A B C -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G92.1, G92.2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Annulation des dcalages d'origine -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G92.3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Appliquer contenu des paramtres aux dc. - d'origine -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G93, G94, G95 -\end_inset - - -\begin_inset Text - -\layout Standard - -Modes de vitesses -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G93,-G94:-Set} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G96 -\end_inset - - -\begin_inset Text - -\layout Standard - -Vitesse de coupe constante (IPM ou m/mn) -\end_inset - - -\begin_inset Text - -\layout Standard - -D S -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G96,-G97:-Broche} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G97 -\end_inset - - -\begin_inset Text - -\layout Standard - -Vitesse en tours par minute -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G96,-G97:-Broche} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G98, G99 -\end_inset - - -\begin_inset Text - -\layout Standard - -Options de retrait des cycles preprogrammes -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G98,-G99:-Set} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F, S -\end_inset - - -\begin_inset Text - -\layout Standard - -F=rglage vitesse travail, S=rglage vitesse broche -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:F:-vitesse} - -\end_inset - - -\begin_inset LatexCommand \ref{sub:S:-broche} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M0, M1, M2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Contrle du programme -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M0,-M1,-M2:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M3, M4, M5 -\end_inset - - -\begin_inset Text - -\layout Standard - -Contrle de la broche -\end_inset - - -\begin_inset Text - -\layout Standard - -S -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M3,-M4,-M5:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M6 -\end_inset - - -\begin_inset Text - -\layout Standard - -Appel d'outil Tn n=numro d'outil -\end_inset - - -\begin_inset Text - -\layout Standard - -T -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M6:-Appel-d'outil} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M7, M8, M9 -\end_inset - - -\begin_inset Text - -\layout Standard - -Contrle arrosage -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M7,-M8,-M9:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M30, M60 -\end_inset - - -\begin_inset Text - -\layout Standard - -Pallet Shuttle -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M0,-M1,-M2:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M50 -\end_inset - - -\begin_inset Text - -\layout Standard - -Correcteur de vitesse d'avance travail -\end_inset - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M50:-Correcteur-vitesse-travail} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M51 -\end_inset - - -\begin_inset Text - -\layout Standard - -Correcteur de vitesse de broche -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M51:-Correcteur-vitesse-broche} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M52 -\end_inset - - -\begin_inset Text - -\layout Standard - -Correcteur dynamique de vitesse d'avance -\end_inset - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M52:-Controle-vitesse-adaptative} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M53 -\end_inset - - -\begin_inset Text - -\layout Standard - -Vitesse constante -\end_inset - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:G53:-Move-in} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M61 -\end_inset - - -\begin_inset Text - -\layout Standard - -Numro de l'outil courant -\end_inset - - -\begin_inset Text - -\layout Standard - -Q -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M61:-Ajuste-numero-outil} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M62 M65 -\end_inset - - -\begin_inset Text - -\layout Standard - -Output control -\end_inset - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M62-a-M65:-Controle-sorties-num} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M66 -\end_inset - - -\begin_inset Text - -\layout Standard - -Input control -\end_inset - - -\begin_inset Text - -\layout Standard - -P, E, L, Q -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M66:-Controle-entrees-num} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -M100-M199 -\end_inset - - -\begin_inset Text - -\layout Standard - -M-Codes dfinis par l'utilisateur -\end_inset - - -\begin_inset Text - -\layout Standard - -P Q -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{sub:M100-a-M199:} - -\end_inset - - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -O -\end_inset - - -\begin_inset Text - -\layout Standard - -O Codes -\end_inset - - -\begin_inset Text - -\layout Standard - -n/a -\end_inset - - -\begin_inset Text - -\layout Standard - - -\begin_inset LatexCommand \ref{cha:O-Codes} - -\end_inset - - -\end_inset - - - - -\end_inset - - -\layout Section - -G0 -\begin_inset LatexCommand \index{G0 Interpolation lineaire rapide} - -\end_inset - -: Interpolation linaire en vitesse rapide -\begin_inset LatexCommand \label{sub:G0:-Interpolation-lineaire} - -\end_inset - - -\layout Standard - -Pour un mouvement linaire en vitesse rapide, programmer -\family typewriter -G0 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, au moins un mot d'axe doit tre prsent, les autres sont optionnels. - Le -\family typewriter -G0 -\family default - est optionnel si le mode mouvement courant est dj -\family typewriter -G0 -\family default -. - Cela produira un mouvement linaire vers le point de destination la vitesse - rapide courante (ou moins vite si la machine n'atteint pas cette vitesse). - Il n'est pas prvu d'usiner la matire quand une commande G0 est excute. -\layout Standard - -C'est une erreur si: -\layout Itemize - -tous les axes sont omis. -\layout Standard - -Si la compensation de rayon d'outil est active, le mouvement sera diffrent - de celui dcrit ci-dessus, voir la section -\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} - -\end_inset - -. - Si -\family typewriter -G53 -\family default - est programm sur la mme ligne, le mouvement sera galement diffrent, - voir la section -\begin_inset LatexCommand \ref{sub:G53:-Move-in} - -\end_inset - -. -\layout Standard - -Si un mouvement -\family typewriter -G0 -\family default - dplace seulement des axes rotatifs et que la position de la cible pour - ces axes est dans une chelle de -360 360 degrs, le mouvement sera organis - pour que chaque axe rotatif fasse moins d'un tour complet. - Exemple: -\layout LyX-Code - -N1 G0 X1 A[20*360] -\layout LyX-Code - -N2 G0 A0 -\layout Standard - -Aprs la ligne -\family typewriter -N1 -\family default -, la position de l'axe A sera 7200 degrs. - 7200 degrs est gal zro degr sur un axe rotatif, de sorte que le mouvement - linaire rapide spcifi en ligne -\family typewriter -N2 -\family default - ne produira aucun mouvement. -\layout Section - -G1 -\begin_inset LatexCommand \index{G1 Interpolation lineaire travail} - -\end_inset - -: Interpolation linaire en vitesse travail -\begin_inset LatexCommand \label{sub:G1:-Interpolation-lineaire} - -\end_inset - - -\layout Standard - -Pour un mouvement linaire en vitesse travail, programmer -\family typewriter -G1 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, au moins un mot d'axe doit tre prsent, les autres sont optionnels. - Le -\family typewriter -G1 -\family default - est optionnel si le mode mouvement courant est dj -\family typewriter -G -\family default -1. - Cela produira un mouvement linaire vers le point de destination la vitesse - de travail courante (ou moins vite si la machine n'atteint pas cette vitesse). -\layout Standard - -C'est une erreur si: -\layout Itemize - -tous les axes sont omis. -\layout Standard - -Si la compensation de rayon d'outil est active, le mouvement sera diffrent - de celui dcrit ci-dessus, voir la section -\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} - -\end_inset - -. - Si -\family typewriter -G53 -\family default - est programm sur la mme ligne, le mouvement sera galement diffrent, - voir la section -\begin_inset LatexCommand \ref{sub:G53:-Move-in} - -\end_inset - -. -\layout Section - -G2 -\begin_inset LatexCommand \index{G2 Interpolation circulaire sens horaire} - -\end_inset - -, G3 -\begin_inset LatexCommand \index{G3 Interpolation circulaire anti-horaire} - -\end_inset - -: Interpolation circulaire en vitesse travail -\begin_inset LatexCommand \label{sub:-G2,-G3:-Arc} - -\end_inset - - -\layout Standard - -Un mouvement circulaire ou hlicodal est spcifi en sens horaire avec - G -\family typewriter -2 -\family default - ou en sens anti-horaire avec -\family typewriter -G3 -\family default -. - Les axes du cercle ou de l'hlicode, doivent tre parallles aux axes - X, Y, ou Z du systme de coordonnes machine. - Les axes (ou, leurs quivalents, les plans perpendiculaires aux axes) sont - slectionns avec -\family typewriter -G17 -\family default - (axe Z, plan XY), -\family typewriter -G18 -\family default - (axe Y, plan XZ), ou -\family typewriter -G19 -\family default - (axe X, plan YZ). - Si l'arc est circulaire, il se trouve dans un plan parallle au plan slectionn -. -\layout Standard - -Si une ligne de code RS274/NGC forme un arc et inclu le mouvement d'un axe - rotatif, l'axe rotatif tournera vitesse constante, de sorte que le mouvement - de l'axe rotatif commence et se termine en mme temps que les autres axes - XYZ. - De telles lignes ne sont pratiquement jamais programmes. -\layout Standard - -Si la compensation de rayon d'outil est active, le mouvement sera diffrent - de celui dcrit ci-dessus, voir la section -\begin_inset LatexCommand \ref{sub:G40,-G41,-G42:} - -\end_inset - -. -\layout Standard - -Deux formats sont autoriss pour spcifier un arc: le format centre et le - format rayon. -\layout Subsection - -Arc au format centre (format recommand) -\layout Standard - -Dans le format centre, les coordonnes du point final de l'arc, dans le - plan choisi, sont spcifies par dcalage du centre de l'arc depuis le - point courant. - Dans ce format, il est permis d'avoir le point final de l'arc identique - au point courant. - C'est une erreur si: -\layout Itemize - -Lorsque l'arc est projet sur le plan choisi, la distance entre le point - courant et le centre diffrent de la distance entre le point d'arrive - et le centre de plus de 0,0002 pouce (si les pouces sont utiliss), soit - 0,002 millimtre (si les millimtres sont utiliss). -\layout Standard - -Lorsque le plan XY est slectionn, programmer G2 Axe I- J- (ou utiliser - G3 au lieu de G2). - Les mots d'axes sont tous facultatifs sauf au moins un entre X et Y qui - doit tre utilis. - I et J sont les dcalages du centre de l'arc, par rapport au point actuel - (dans le sens X et Y, respectivement). - I et J sont facultatifs, sauf qu'au moins un des deux doit tre utilis. - C'est une erreur si: -\layout Itemize - -X et Y sont tous les deux omis. -\layout Itemize - -I et J sont tous les deux omis . -\layout Standard - -Lorsque le plan XZ est slectionn, programmer -\family typewriter -G2 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -I- K- -\family default - (ou utiliser -\family typewriter -G3 -\family default - au lieu de -\family typewriter -G2 -\family default -). - Les mots d'axes sont tous facultatifs sauf au moins un entre X et Z qui - doit tre utilis. - I et K sont les dcalages du centre de l'arc, par rapport au point actuel - (dans le sens X et Z , respectivement). - I et K sont facultatifs, sauf qu'au moins un des deux doit tre utilis. - C'est une erreur si: -\layout Itemize - -X et Z sont tous les deux omis. -\layout Itemize - -I et K sont tous les deux omis . -\layout Standard - -Lorsque le plan YZ est slectionn, programmer -\family typewriter -G2 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - -\family typewriter -J- K- -\family default - (ou utiliser -\family typewriter -G3 -\family default - au lieu de -\family typewriter -G2 -\family default -). - Les mots d'axes sont tous facultatifs sauf au moins un entre Y et Z qui - doit tre utilis. - J et K sont les dcalages du centre de l'arc, par rapport au point actuel - (dans le sens Y et Z , respectivement). - J et K sont facultatifs, sauf qu'au moins un des deux doit tre utilis. - C'est une erreur si: -\layout Itemize - -Y et Z sont tous les deux omis. -\layout Itemize - -J et K sont tous les deux omis . -\layout Standard - -Voici un exemple de commande pour usiner un arc au format centre: -\family typewriter -G17 G2 x10 y16 i3 j4 z9 -\family default -. -\layout Standard - -Cela signifie faire un mouvement en arc ou hlicodal en sens horaire (vu - du ct positif de l'axe Z), se terminant en X=10, Y=16 et Z=9, avec son - centre dcal du point actuel de 3 units en X et de 4 units en Y. - Si la position courante est X=7, Y=7 au final, le centre sera en X=10, - Y=11. - Si la position de dpart de l'axe Z est 9, ce sera un arc circulaire, autrement - ce sera un arc hlicodal. - Le rayon de l'arc sera de 5. -\layout Standard - -Dans le format centre, le rayon de l'arc n'est pas spcifi, mais il peut - facilement tre trouv comme tant la distance entre le centre de l'arc - et soit, son point d'arrive soit, le point courant. - -\layout Subsection - -Arcs au format rayon (format non recommand) -\layout Standard - -Dans le format rayon, les coordonnes du point final de l'arc, dans le plan - choisi, sont spcifies en mme temps que le rayon de l'arc. - Programmer G2 axes R- (ou utiliser -\family typewriter -G3 -\family default - au lieu de -\family typewriter -G2 -\family default -). - R est le rayon. - Les mots d'axes sont facultatifs sauf au moins un des deux du plan choisi, - qui doit tre utilis. - Un rayon positif indique que l'arc fait moins de 180 degrs, alors qu'un - rayon ngatif indique un arc suprieur 180 degrs. - Si l'arc est hlicodal, la valeur du point d'arrive de l'arc dans les - coordonnes de l'axe perpendiculaire au plan choisi sera galement spcifie. -\layout Standard - -C'est une erreur si: -\layout Itemize - -Les deux mots d'axes pour le plan choisi sont omis. -\layout Itemize - -Le point d'arrive de l'arc est identique au point courant. -\layout Standard - -Ce n'est pas une bonne pratique de programmer au format rayon, des arcs - qui sont presque des cercles entiers ou des demi-cercles, car un changement - minime dans l'emplacement du point d'arrive va produire un changement - beaucoup plus grand dans l'emplacement du centre du cercle (et donc, du - milieu de l'arc). - L'effet de grossissement est tellement important, qu'une erreur d'arrondi - peut facilement produire un usinage hors tolrance. - Par exemple, 1% de dplacement de l'extrmit d'un arc de 180 degrs produit - 7% de dplacement du point situ 90 degrs le long de l'arc. - Les cercles presque complets sont encore pires. - Autrement l'usinage d'arcs dans une gamme de petits 165 degrs ou de - 195 345 degrs sera bon. -\layout Standard - -Voici un exemple de commande pour usiner un arc au format -\family typewriter -rayon: G17 G2 x 10 y 15 r 20 z 5. -\layout Standard - -Cela signifie faire un mouvement en arc ou hlicodal en sens horaire (vu - du ct positif de l'axe Z), se terminant en X=10, Y=15 et Z=5, avec un - rayon de 20. - Si la valeur de dpart de Z est 5, Ce sera un arc de cercle parallle au - plan XY sinon, ce sera un arc hlicodal. -\layout Section - -G4 -\begin_inset LatexCommand \index{G4 Temporisation} - -\end_inset - -: Tempo -\begin_inset LatexCommand \label{sub:G4:-Tempo} - -\end_inset - - -\layout Standard - -Pour une tempo, programmer G4 P- . - Les axes s'immobiliseront pour une dure de P secondes. - C'est une erreur si: -\layout Itemize - -Le nombre P est ngatif. -\layout Section - -G7 -\begin_inset LatexCommand \index{G7 Mode diametre} - -\end_inset - -: Mode diamtre -\begin_inset LatexCommand \label{sub:G7-Mode-diametre} - -\end_inset - - -\layout Standard - -Sur un tour, programmer G7 pour passer l'axe X en mode diamtre. - En mode diamtre, les mouvements de l'axe X font la moiti de la cote programm -e. - Par exemple, X10 placera l'outil 5 units du centre, ce qui produira - bien une pice d'un diamtre de 10 units. - -\layout Section - -G8 -\begin_inset LatexCommand \index{G8 Mode rayon} - -\end_inset - -: Mode rayon -\begin_inset LatexCommand \label{sub:G8-Mode-rayon} - -\end_inset - - -\layout Standard - -Sur un tour, programmer G8 pour passer l'axe X en mode rayon. - En mode rayon, les mouvements de l'axe X sont gaux la cote programme. - Ce qui signifie que X10 placera l'outil 10 units du centre et aura pour - rsultat une pice d'un diamtre de 20 units. - G8 est le mode par dfaut la mise sous tension. -\layout Section - -G10 L1 -\begin_inset LatexCommand \index{G10 L1 Entree dans la table d'outils} - -\end_inset - -: Entre dans la table d'outils -\begin_inset LatexCommand \label{sub:G10-L1:-Entree-table} - -\end_inset - - -\layout Standard - -Programmer un G10 L1 pour ajuster une entre dans la table d'outils depuis - un programme ou depuis la fentre d'entres manuelles. - -\layout Standard - -G10 recharge la table d'outils. - -\layout Standard - -Format de la commande G10 L1: -\layout Standard - -G10 L1 P[Numro d'outil] R[rayon] X[correcteur en X] Z[correcteur en Z] - Q[orientation] -\layout Standard - -Pour connatre l'orientation des outils, se rfrer la figure -\begin_inset LatexCommand \ref{cap:Orientations-des-outils-de-tour} - -\end_inset - - -\layout Section - -G10 L2 -\begin_inset LatexCommand \index{G10 L1 Etablissement coordonnees piece} - -\end_inset - -: tablissement du systme de coordonnes pice -\begin_inset LatexCommand \label{sub:G10-L2:-Coordonnees-piece} - -\end_inset - - -\layout Standard - -Le langage RS274/NGC utilise les systmes de coordonnes dcrits la section -\begin_inset LatexCommand \ref{sub:-Systemes-de-coordonnees} - -\end_inset - -. -\layout Standard - -Pour dfinir les coordonnes de l'origine d'un systme de coordonnes pice, - programmer -\family typewriter -G10 L2 P- -\family default - -\family typewriter -\emph on -axes -\family default -\emph default -, o l'entier P, compris entre 1 et 9 (correspondance de -\family typewriter -G54 -\family default - -\family typewriter -G59.3 -\family default -) et tous les mots d'axes, sont optionnels. - L'origine du systme de coordonnes spcifi par le nombre P, est remplace - par les valeurs indiques (en termes de coordonnes machine non dcales). - Seules, les coordonnes pour lesquelles un mot d'axe est inclu sur la ligne, - seront remplaces. - Etre en mode incrmental (G91), est sans effet sur G10 L2. -\layout Standard - -C'est une erreur si: -\layout Itemize - -Le nombre P n'est pas un entier compris entre 1 et 9. -\layout Standard - -Si un dcalage d'origine cr avec -\family typewriter -G92 -\family default - est actif avant la commande -\family typewriter -G10 -\family default - L2, il reste actif aprs. -\layout Standard - -Le systme de coordonnes dont l'origine est dfinie par la commande G10 - peut tre actif ou non au moment de l'excution de -\family typewriter -G10 -\family default -. - Si il est actif ce moment l, les nouvelles coordonnes prennent effet - immdiatement. -\layout Standard - -Exemple: -\family typewriter -G10 L2 P1 X3.5 Y17.2 -\family default - place l'origine du premier systme de coordonnes (celui selectionn par - G54) au point o X=3.5 et Y=17.2 (en coordonnes absolues). - La coordonne Z de l'origine, ainsi que les coordonnes de tous les autres - axes, restent inchanges puisque seuls X et Y taient spcifis. - -\layout Section - -G17 -\begin_inset LatexCommand \index{G17 Plan XY} - -\end_inset - -, G18 -\begin_inset LatexCommand \index{G18 Plan XZ} - -\end_inset - -, G19 -\begin_inset LatexCommand \index{G19 Plan YZ} - -\end_inset - -, G17.1, G18.1, G19.1: Choix du plan de travail -\begin_inset LatexCommand \label{sub:G17,-G18,-G19:} - -\end_inset - - -\layout Standard - -Ces codes slectionnent le plan courant comme ci-dessous: -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -G17 -\end_inset - - -\begin_inset Text - -\layout Standard - -XY (par dfault) -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G18 -\end_inset - - -\begin_inset Text - -\layout Standard - -ZX -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G19 -\end_inset - - -\begin_inset Text - -\layout Standard - -YZ -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G17.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -UV -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G18.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -WU -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G19.1 -\end_inset - - -\begin_inset Text - -\layout Standard - -VW -\end_inset - - - - -\end_inset - - -\layout Standard - -Les diffrents effets provoqus selon la slection du plan de travail, sont - expliqus dans les sections -\begin_inset LatexCommand \ref{sub:-G2,-G3:-Arc} - -\end_inset - - et -\begin_inset LatexCommand \ref{sub:-Choix-du-plan-de-travail} - -\end_inset - - -\layout Section - -G20 -\begin_inset LatexCommand \index{G20 Pouce} - -\end_inset - -, G21 -\begin_inset LatexCommand \index{G21 Millimetre} - -\end_inset - -: Choix des units machine -\begin_inset LatexCommand \label{sub:G20,-G21:-Unites} - -\end_inset - - -\layout Standard - -Programmer G20 pour utiliser le pouce comme unit de longueur. - Programmer G21 pour utiliser le millimtre. -\layout Standard - -C'est toujours une bonne pratique de programmer soit G20, soit G21, au dbut - d'un programme, avant tout mouvement et de ne plus en changer ailleurs - dans le programme. - C'est la responsabilit de l'oprateur d'tre sr que toutes les longueurs - sont appropries pour l'utilisation des units actuelles. - -\layout Section - -G28 -\begin_inset LatexCommand \index{G28} - -\end_inset - -, G28.1 -\begin_inset LatexCommand \index{G28.1} - -\end_inset - -: Aller une position prdfinie -\begin_inset LatexCommand \label{sub:G28,-G28.1:-Aller} - -\end_inset - - -\layout Standard - -La commande G28 utilise les valeurs stockes dans les paramtres 5161 - 5166 comme valeurs absolues pour effectuer un mouvement en vitesse rapide - de la position courante la position dfinie dans les paramtres. - Les valeurs stockes dans les paramtres font rfrence au systme de coordonn -es absolues qui est le systme de coordonnes machine. -\layout Standard - -La commande -\family typewriter -G28 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - effectue un dplacement en vitesse rapide depuis la position courante jusqu' - la position spcifie par -\family typewriter -\emph on -axes -\family default -\emph default -, suivi d'un mouvement rapide la position prdfinie dans les paramtres - 5161 5166. -\layout Standard - -G28.1 enregistre la position absolue courante dans les paramtres 5161 - 5166. -\layout Standard - -C'est une erreur si: -\layout Itemize - -La compensation de rayon d'outil est active. -\layout Section - -G30 -\begin_inset LatexCommand \index{G30} - -\end_inset - -, G30.1 -\begin_inset LatexCommand \index{G30.1} - -\end_inset - -: Aller une position prdfinie -\begin_inset LatexCommand \label{sub:G30,-G30.1:-Aller} - -\end_inset - - -\layout Standard - -La commande G30 utilise les valeurs stockes dans les paramtres 5181 - 5186 comme valeurs absolues pour effectuer un mouvement en vitesse rapide - de la position courante la position dfinie dans les paramtres. - Les valeurs stockes dans les paramtres font rfrence au systme de coordonn -es absolues qui est le systme de coordonnes machine. -\layout Standard - -La commande G30 -\family typewriter -\emph on -axes -\family default -\emph default - effectue un dplacement en vitesse rapide depuis la position courante jusqu' - la position spcifie par -\family typewriter -\emph on -axes -\family default -\emph default -, suivi d'un mouvement rapide la position prdfinie dans les paramtres - 5181-5186. - -\layout Standard - -G30.1 enregistre la position absolue courante dans les paramtres 5181-5186. -\layout Standard - -Les paramtres de G30 peuvent tre utiliss pour dplacer l'outil quand - un M6 est programm et que la variable [TOOL_CHANGE_AT_G30]=1 dans la section - [EMCIO] du fichier ini. -\layout Standard - -C'est une erreur si: -\layout Itemize - -La compensation de rayon d'outil est active. -\layout Section - -G33 -\begin_inset LatexCommand \index{G33 MVT avec broche synchronisee} - -\end_inset - -, G33.1 -\begin_inset LatexCommand \index{G33.1 Taraudage rigide} - -\end_inset - -: Mouvement avec broche synchronise -\begin_inset LatexCommand \label{sub:G33,-G33.1:-Broche-synchronisee} - -\end_inset - - -\layout Standard - -Pour un mouvement avec broche synchronise dans une direction, programmer - -\family typewriter -G33 X- Y- Z- K- -\family default - o K donne la longueur du mouvement en XYZ pour chaque tour de broche. - Par exemple, il commence -\family typewriter -Z=0 -\family default -, -\family typewriter -G33 Z-1 K.0625 -\family default - produira un mouvement d'un pouce de long en Z, et en mme temps 16 tours - de broche. - Cette commande pourrait tre la base d'un programme pour faire un filetage - de 16 filets par pouce. - Un autre exemple en mtrique, G33 Z-15 K1.5 produira un mouvement de 15mm - de long pendant que la broche fera 10 tours soit un pas de 1.5mm. - -\layout Standard - -Pour un taraudage rigide avec broche synchronise et mouvement de retour, - programmer -\family typewriter -G33.1 X- Y- Z- K- -\family default - o -\family typewriter -K- -\family default - donne la longueur du mouvement pour chaque tour de broche. - Un mouvement de taraudage rigide suit cette squence: -\layout Itemize - -Un mouvement aux coordonnes spcifies, synchronis avec la rotation de - la broche, avec un ratio donn et dbutant sur l'impulsion d'index du codeur - de la broche. -\layout Itemize - -Quand le point final est atteint, la commande inverse le sens de rotation - de la broche (ex: de 300 tours/mn en sens horaire 300 tours/mn en sens - anti-horaire) -\layout Itemize - -Le mouvement reste synchronis en continu avec la broche mme -\series bold -au del -\series default - de la coordonne du point final spcifie pendant l'arrt de la broche - et son inversion. -\layout Itemize - -Le mouvement synchronis se poursuit pour revenir aux coordonnes initiales. -\layout Itemize - -Quand les coordonnes d'origines sont atteintes, la commande inverse la - broche une seconde fois (ex: de 300tr/mn sens anti-horaire 300tr/mn sens - horaire) -\layout Itemize - -Le mouvement reste synchronis mme -\series bold -au del -\series default - des coordonnes d'origine pendant que la broche s'arrte et s'inverse. -\layout Itemize - -Un mouvement -\series bold -non synchronis -\series default - ramne le mobile en arrire, aux coordonnes d'origine. -\layout Standard - -Tous les mouvements avec broche synchronise ont besoin d'un index de broche, - pour conserver la trajectoire prvue. - Un mouvement avec -\family typewriter -G33 -\family default - se termine au point final programm, un mouvement avec -\family typewriter -G33.1 -\family default - se termine aux coordonnes initiales. -\layout Standard - -Les mots d'axes sont facultatifs, sauf au moins un qui doit tre utilis. - -\layout Standard - -C'est une erreur si: -\layout Itemize - -Tous les axes sont omis. -\layout Itemize - -La broche ne tourne pas quand cette commande est excute. -\layout Itemize - -Le mouvement linaire requis excde les limites de vitesse machine en raison - de la vitesse de broche. -\layout Section - -G38.x -\begin_inset LatexCommand \index{G38.2 Palpeur} - -\end_inset - - -\begin_inset LatexCommand \index{G38.5 Palpeur} - -\end_inset - -: Mesure au palpeur -\begin_inset LatexCommand \label{sub:G38.x:-Palpeur} - -\end_inset - - -\layout Standard - -Programmer -\family typewriter -G38.2 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - -\family typewriter -G38.3 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - -\family typewriter -G38.4 -\family default - -\family typewriter -\emph on -axes -\family default -, -\emph default - ou -\family typewriter -G38.5 -\family default - -\family typewriter -\emph on -axes -\family default -\emph default - pour effectuer une mesure au palpeur. - Au moins un mot d'axe est obligatoire, les autres sont optionnels. - L'outil dans la broche doit tre un palpeur. -\layout Standard - -C'est une erreur si: -\layout Itemize - -Le point programm est le mme que le point courant. -\layout Itemize - -Aucun mot d'axe n'est utilis. -\layout Itemize - -La compensation de rayon d'outil est active. -\layout Itemize - -La vitesse travail est zro. -\layout Itemize - -Le palpeur est dj au contact de la cible. -\layout Standard - -En rponse cette commande, la machine dplace le point contrl (qui est - la pointe ou la boule du palpeur), en ligne droite, la vitesse actuelle, - vers le point programm, en mode vitesse inverse du temps; la vitesse est - telle, que le mouvement depuis le point courant jusqu'au point programm, - prendra le temps spcifi. - Le mouvement s'arrte lorsque le point programm est atteint, ou quand - l'entre du palpeur bascule dans l'tat attendu -\begin_inset Foot -collapsed false - -\layout Standard - -En ralit, le mouvement continue lgrement aprs que l'tat du palpeur - ait bascul, cause des contraintes d'acclration/dclration de la - machine. -\end_inset - -. - Le tableau -\begin_inset LatexCommand \ref{cap:Codes-de-mesure} - -\end_inset - - montre la signification des diffrents codes de mesure. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Codes de mesure -\begin_inset LatexCommand \label{cap:Codes-de-mesure} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - - - -\begin_inset Text - -\layout Standard - -Code -\end_inset - - -\begin_inset Text - -\layout Standard - -Etat cibl -\end_inset - - -\begin_inset Text - -\layout Standard - -Direction -\end_inset - - -\begin_inset Text - -\layout Standard - -Signal d'erreur -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G38.2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Contact -\end_inset - - -\begin_inset Text - -\layout Standard - -Vers la pice -\end_inset - - -\begin_inset Text - -\layout Standard - -Oui -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G38.3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Contact -\end_inset - - -\begin_inset Text - -\layout Standard - -Vers la pice -\end_inset - - -\begin_inset Text - -\layout Standard - -Non -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G38.4 -\end_inset - - -\begin_inset Text - -\layout Standard - -Pas de contact -\end_inset - - -\begin_inset Text - -\layout Standard - -Depuis la pice -\end_inset - - -\begin_inset Text - -\layout Standard - -Oui -\end_inset - - - - -\begin_inset Text - -\layout Standard - -G38.5 -\end_inset - - -\begin_inset Text - -\layout Standard - -Pas de contact -\end_inset - - -\begin_inset Text - -\layout Standard - -Depuis la pice -\end_inset - - -\begin_inset Text - -\layout Standard - -Non -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Aprs une mesure russie, les paramtres 5061 5069 contiendront les coordonne -s de l'emplacement du point contrl lors du changement d'tat du palpeur. - Aprs une mesure manque, ils contiendront les coordonnes du point programm. - Le paramtre 5070 est mis 1 si la mesure est russie et 0 si elle est - manque. - Si la mesure n'a pas russi, G38.2 et G38.4 signaleront une erreur. -\layout Standard - -Un commentaire de la forme -\family typewriter -(PROBEOPEN -\family default - -\family typewriter -\emph on -filename.txt -\emph default -) -\family default - ouvrira le ficher -\emph on -filename.txt -\emph default - et y enregistrera les 9 coordonnes de chaque mesure russie. - Le fichier doit tre ferm avec le commentaire -\family typewriter -(PROBECLOSE) -\family default -. -\layout Section - -G40 -\begin_inset LatexCommand \index{G40 Revocation compensation rayon} - -\end_inset - -, G41 -\begin_inset LatexCommand \index{G41 Compensation de rayon} - -\end_inset - -, G42 -\begin_inset LatexCommand \index{G42 Compensation de rayon} - -\end_inset - -, G41.1 -\begin_inset LatexCommand \index{G41.1 Compensation dynamique de rayon} - -\end_inset - -, G42.1 -\begin_inset LatexCommand \index{G42.1 Compensation dynamique de rayon} - -\end_inset - -: Compensation de rayon d'outil -\begin_inset LatexCommand \label{sub:G40,-G41,-G42:} - -\end_inset - - -\layout Standard - -Pour dsactiver la compensation de rayon d'outil, programmer -\family typewriter -G40 -\family default -. - Le mouvement suivant doit tre une droite. - Ce n'est pas une erreur de dsactiver la compensation quand elle est dj - inactive. - C'est une erreur de programmer un mouvement en arc avec G2 ou G3 derrire - un G40. -\layout Standard - -Pour activer la compensation de rayon d'outil gauche du profil, programmer - G41. - -\layout Standard - -Pour activer la compensation de rayon d'outil droite du profil, programmer - G42. -\layout Standard - -Le mouvement d'entre doit tre au moins aussi long que le rayon de l'outil. - Le mouvement d'entre peut tre effectu en vitesse rapide. -\layout Standard - -La compensation de rayon d'outil ne peut tre active que si le plan de - travail courant est le plan XY. -\layout Standard - -Le comportement du centre d'usinage quand la compensation de rayon d'outil - est active est dcrit dans la section -\begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} - -\end_inset - - -\layout Subsection - -Compensation de rayon d'outil depuis une table d'outils -\layout Standard - -Pour activer la compensation de rayon d'outil gauche du profil, c'est - dire, la fraise reste gauche de la trajectoire programme quand le - rayon d'outil est positif, programmer -\family typewriter -G41 D- -\family default - . - Pour activer la compensation de rayon d'outil droite du profil, c'est - dire, la fraise reste droite de la trajectoire programme quand le - rayon d'outil est positif, programmer -\family typewriter -G42 D- -\family default - . - Le mot D est optionnel, si il n'y a pas de mot D, le rayon de l'outil mont - actuellement dans la broche est utilis. - Si D est utilis, sa valeur devrait tre le numro de l'outil mont dans - la broche, cependant, ce n'est pas obligatoire. - Ce n'est pas une erreur d'avoir D zro, le rayon utilis sera de zro. -\layout Standard - -C'est une erreur si: -\layout Itemize - -La valeur de D n'est pas un entier, il est ngatif ou suprieur au nombre - d'emplacements dans le carrousel. - -\layout Itemize - -Le plan de travail n'est pas YZ. -\layout Itemize - -La compensation de rayon d'outil est active alors qu'elle est dj active. -\layout Subsection - -Compensation dynamique de rayon d'outil -\layout Standard - -Pour activer la compensation dynamique de rayon d'outil gauche du profil, - programmer -\family typewriter -G41.1 D- L- -\family default -. - Pour activer la compensation dynamique de rayon d'outil droite du profil, - programmer -\family typewriter -G42.1 D- L- -\family default -. - Le mot D spcifie le diamtre de l'outil. - Le mot L spcifie l'orientation des artes de l'outil, et par dfaut 0 - si non spcifi. -\layout Standard - -C'est une erreur si: -\layout Itemize - -Le plan yz est le plan de travail actif. -\layout Itemize - -La valeur de L n'est pas comprise entre 0 et 9 inclus. -\layout Itemize - -La compensation de rayon d'outil est active alors qu'elle est dj active. -\layout Section - -G43 -\begin_inset LatexCommand \index{G43 Compensation de longueur} - -\end_inset - -, G43.1 -\begin_inset LatexCommand \index{G43.1 Compensation dynamique de longueur} - -\end_inset - -, G49 -\begin_inset LatexCommand \index{G49 Revocation compensation longueur} - -\end_inset - -: Compensation de longueur d'outil -\begin_inset LatexCommand \label{sub:G43,-G49:-Outils} - -\end_inset - - -\layout Subsection - -G43 -\begin_inset LatexCommand \label{sub:G43} - -\end_inset - -, G43.1: Activation de la compensation de longueur d'outil -\layout Standard - -G43 et G43.1 modifient les mouvements ultrieurs en dcalant, de la longueur - de l'outil, les coordonnes de Z et/ou de X. - G43 et G43.1 ne provoquent aucun mouvement. - L'effet de la compensation ne se produira qu'au prochain mouvement de l'axe - compens. -\layout Subsubsection - -G43: Compensation de longueur d'outil depuis une table d'outils -\layout Standard - -Pour utiliser la compensation de longueur d'outil depuis une table d'outils, - programmer -\family typewriter -G43 H- -\family default - , o la valeur de H est l'index souhat dans la table d'outils. - La valeur de H n'est pas obligatoirement la mme que celle du numro d'outil - mont dans la broche. - Ce n'est pas une erreur d'avoir la valeur de H zro, une compensation - de zro sera utilise. -\layout Standard - -C'est une erreur si: -\layout Itemize - -La valeur de H n'est pas un entier, il est ngatif, ou il est suprieur - au nombre d'outils dans le carrousel. -\layout Subsubsection - -G43.1: Compensation dynamique de longueur d'outil -\layout Standard - -Pour utiliser la compensation dynamique de longueur d'outil depuis un programme, - utiliser -\family typewriter -G43.1 I- K- -\family default -, o -\family typewriter -I- -\family default - donne la compensation de longueur d'outil en X (pour les tours) et -\family typewriter -K- -\family default - donne la compensation de longueur en Z (pour les tours et les fraiseuses). - -\layout Standard - -C'est une erreur si: -\layout Itemize - -Une commande de mouvement est sur la mme ligne que -\family typewriter -G43.1 -\layout Subsection - -G49 -\begin_inset LatexCommand \index{G49 Revocation compensation longueur} - -\end_inset - -: Annulation de la compensation de longueur d'outil -\layout Standard - -Pour annuler la compensation de longueur d'outil, programmer G49. -\layout Standard - -Ce n'est pas une erreur de programmer une compensation qui est dj utilise. - Ce n'est pas non plus une erreur d'annuler la compensation de longueur - d'outil alors qu'aucune n'est couramment utilise. - -\layout Section - -G53 -\begin_inset LatexCommand \index{G53 Mouvements en absolu} - -\end_inset - -: Mouvement en coordonnes absolues -\begin_inset LatexCommand \label{sub:G53:-Move-in} - -\end_inset - - -\layout Standard - -Pour un dplacement un point exprim en coordonnes absolues, programmer - -\family typewriter -G1 G53 X- Y- Z- A- B- C- -\family default - (ou utiliser -\family typewriter -G0 -\family default - la place de -\family typewriter -G1 -\family default -), au moins un mot d'axe est obligatoire, les autres sont optionnels. - Le -\family typewriter -G0 -\family default - ou le -\family typewriter -G1 -\family default - est optionnel si il est dj le mode de mouvement courant. - -\family typewriter -G53 -\family default - n'est pas modal, il doit tre programm sur chaque ligne o il doit tre - actif. - Il produit un mouvement linaire coordonn au point programm. - Si -\family typewriter -G1 -\family default - est actif, la vitesse travail courante est utilise si la machine est assez - rapide. - Si -\family typewriter -G0 -\family default - est actif, la vitesse rapide courante sera utilise si la machine est assez - rapide. -\layout Standard - -C'est une erreur si: -\layout Itemize - -G53 est utilis sans que G0 ou G1 ne soit actif. - -\layout Itemize - -G53 est utilis alors que la compensation de rayon d'outil est active. -\layout Standard - -Voir la section -\begin_inset LatexCommand \ref{sub:-Systemes-de-coordonnees} - -\end_inset - - pour une vue complte des systmes de coordonnes. - -\layout Section - -G54 -\begin_inset LatexCommand \index{G54 Origine piece 1} - -\end_inset - - -\begin_inset LatexCommand \index{G55 Origine piece 2} - -\end_inset - - -\begin_inset LatexCommand \index{G56 Origine piece 3} - -\end_inset - - -\begin_inset LatexCommand \index{G57 Origine piece 4} - -\end_inset - - -\begin_inset LatexCommand \index{G58 Origine piece 5} - -\end_inset - - -\begin_inset LatexCommand \index{G59 Origine piece 6} - -\end_inset - - -\begin_inset LatexCommand \index{G59.1 Origine piece 7} - -\end_inset - - -\begin_inset LatexCommand \index{G59.2 Origine piece 8} - -\end_inset - - G59.3 -\begin_inset LatexCommand \index{G59.3 Origine piece 9} - -\end_inset - -: Choix du systme de coordonnes -\begin_inset LatexCommand \label{sub:G54-a-G59.3:} - -\end_inset - - -\layout Standard - -Le code G54 est appari avec le systme de coordonnes pice N1, pour le - choisir programmer G54 et ainsi de suite pour les autres systmes. - Les systmes de coordonnes apparis un G-code sont les suivants: (1 - avec -\family typewriter -G54 -\family default -), (2 avec -\family typewriter -G55 -\family default -), (3 -\family typewriter -avec G56 -\family default -), (4 avec -\family typewriter -G57 -\family default -), (5 avec -\family typewriter -G58 -\family default -), (6 avec -\family typewriter -G59 -\family default -), (7 avec -\family typewriter -G59.1 -\family default -), (8 avec -\family typewriter -G59.2 -\family default -) et (9 avec -\family typewriter -G59.3 -\family default -). -\layout Standard - -C'est une erreur si: -\layout Itemize - -Un de ces G-codes est utilis alors que la compensation de rayon d'outil - est active. -\layout Standard - -Voir la section -\begin_inset LatexCommand \ref{sub:-Systemes-de-coordonnees} - -\end_inset - - pour une vue complte des systmes de coordonnes. -\layout Section - -G61 -\begin_inset LatexCommand \index{G61 Trajectoire exacte} - -\end_inset - -, G61.1 -\begin_inset LatexCommand \index{G61.1 Arret exact} - -\end_inset - -, G64 -\begin_inset LatexCommand \index{G64 Trajectoire continue} - -\end_inset - -: Types de contrle de trajectoire -\begin_inset LatexCommand \label{sub:G61,-G61.1,-G64:-Controle-trajectoire} - -\end_inset - - -\layout Standard - -Programmer -\family typewriter -G61 -\family default - pour passer la machine en mode de trajectoire exacte, -\family typewriter -G61.1 -\family default - pour la passer en mode arrt exact, ou -\family typewriter -G64 P- -\family default - pour le mode trajectoire continue avec tolrance optionnelle. - Ce n'est pas une erreur de programmer un mode dj actif. - Voir la section -\begin_inset LatexCommand \ref{sub:Modes-de-controle-trajectoires} - -\end_inset - - pour une discussion de ces modes. -\layout Section - -G73 -\begin_inset LatexCommand \index{G73 Cycle percage brise copeaux} - -\end_inset - -: Cycle de perage avec brise copeaux -\begin_inset LatexCommand \label{sub:G73:-Percage-avec-brise-copeaux} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G73 -\family default - est destin au perage profond ou au fraisage avec brise-copeaux. - Les retraits, au cours de ce cycle, fragmentent les copeaux longs (qui - sont frquents lors du perage dans l'aluminum). - Ce cycle utilise la valeur Q qui reprsente un incrment -\begin_inset Quotes eld -\end_inset - -delta -\begin_inset Quotes erd -\end_inset - - le long de l'axe Z. - Programmer -\family typewriter -G73 X- Y- Z- A- B- C- R- L- Q- -\layout Standard - -donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins - profonde entre, un incrment delta, ou la position de Z programme. - -\layout Enumerate - -Une petite remonte en vitesse rapide. - -\layout Enumerate - -Rptition des tapes 2 et 3 jusqu' ce que la position programme de Z - soit atteinte l'tape 2. -\layout Enumerate - -Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. - -\layout Standard - -C'est une erreur si: -\layout Itemize - -La valeur de Q est ngative ou gale zro. -\layout Section - -G76 -\begin_inset LatexCommand \index{G76 Cycle filetage multipasses} - -\end_inset - -: Cycle de filetage prprogramm -\begin_inset LatexCommand \label{sub:G76:-Filetage-preprogramme} - -\end_inset - - -\layout Standard - -Programmer -\family typewriter -G76 P- Z- I- J- R- K- Q- H- E- L- -\family default - pour produire un cycle de filetage multi-passes. - C'est une erreur si: -\layout Itemize - -Le plan de travail actif n'est pas ZX. -\layout Itemize - -D'autres mots d'axes comme X- ou Y-, sont spcifis. -\layout Itemize - -La dgressivit -\family typewriter -R- -\family default - est infrieure 1.0. -\layout Itemize - -Certains mots requis ne sont pas spcifis. -\layout Itemize - - -\family typewriter -P- -\family default -, -\family typewriter -J- -\family default -, -\family typewriter -K- -\family default - ou -\family typewriter -H- -\family default - est ngatif. -\layout Itemize - - -\family typewriter -E- -\family default - est suprieure la moiti de la longueur de la ligne pilote. -\layout Standard - -La ligne pilote (drive line) est une ligne imaginaire, parallle l'axe - de la broche, situe en scurit l'extrieur du matriau fileter. - La ligne pilote va du point initial en Z jusqu' la fin du filetage donne - par la valeur de -\family typewriter -Z- -\family default - dans la commande. -\layout Standard - -Le pas du filet, ou la longueur du dplacement par tour est donn par la - valeur de -\family typewriter -P- -\family default -. -\layout Standard - -La crte du filet est donne par la valeur de -\family typewriter -I- -\family default - , c'est une cote entre la ligne pilote et la surface de la pice. - Une valeur ngative de -\family typewriter -I-, -\family default - indique un filetage externe et une valeur positive, indique un filetage - interne. - C'est gnralement ce diamtre nominal que le matriau est cylindr avant - de commencer le cycle -\family typewriter -G76 -\family default -. -\layout Standard - -La profondeur de la passe initiale est donne par la valeur de -\family typewriter -J- -\family default -. - La premire passe sera -\family typewriter -J- -\family default - au del de la crte du filet. - -\family typewriter -J- -\family default - est positif, mme quand -\family typewriter -I- -\family default - est ngatif. -\layout Standard - -La profondeur du filet est donne par la valeur de -\family typewriter -K- -\family default -. - La dernire passe du filetage sera -\family typewriter -K- au del -\family default - de la crte du filet. - -\family typewriter -K- -\family default - est positif, mme quand I -\family typewriter -- -\family default - est ngatif. -\layout Standard - -La dgressivit de la profondeur de passe est donne par la valeur de -\family typewriter -R- -\family default -. - -\family typewriter -R1.0 -\family default - slectionne une profondeur de passe constante pour les passes successives - du filetage. - -\family typewriter -R2.0 -\family default - slectionne une surface constante. - Les valeurs comprises entre 1.0 et 2.0 slectionnent une profondeur dcrossante - mais une surface crossante. - Enfin, les valeurs suprieures 2.0 slectionnent une surface dcrossante. - Attention: les valeurs inutilement hautes de dgression, demanderont un - nombre inutilement important de passes. -\layout Standard - -L'angle de pntration oblique est donn par la valeur de -\family typewriter -Q- -\family default - c'est l'angle (en degrs) dcrivant de combien les passes successives doivent - tre dcales le long de l'axe. - C'est utilis pour faire enlever plus de matriau d'un ct de l'outil - que de l'autre. - Une valeur positive de -\family typewriter -Q -\family default - fait couper d'avantage le bord principal de l'outil. - Typiquement, les valeurs sont 29, 29.5 ou 30 degrs. -\layout Standard - -Le nombre de passes de finition est donn par la valeur de -\family typewriter -H- -\family default -. - Les passes de finition sont des passes additionnelles en fond de filet. - Pour ne pas faire de passe de finition, programmer -\family typewriter -H0 -\family default -. -\layout Standard - -Les entres et sorties de filetage peuvent tre programmes cniques avec - les valeurs de -\family typewriter -E- -\family default - et -\family typewriter -L- -\family default -. - -\family typewriter -E- -\family default - donne la longueur de la partie cnique le long de l'axe. - -\family typewriter -E0.2 -\family default - donnera un cne pour le premier et le dernier filet, de 0.2 units dans - le sens du filetage. - -\family typewriter -L- -\family default - est utilis pour spcifier quelles extrmits du filetage doivent tre - cniques. - Programmer -\family typewriter -L0 -\family default - pour aucune (par dfaut), -\family typewriter -L1 -\family default - pour une entre cnique, -\family typewriter -L2 -\family default - pour une sortie cnique, ou -\family typewriter -L3 -\family default - pour l'entre et la sortie cniques. -\layout Standard - -L'outil fera une brve pause pour la synchronisation avant chaque passe - de filetage, ainsi une gorge de dgagement sera requise l'entre, moins - que le dbut du filetage ne soit aprs l'extrmit de la pice ou qu'un - cne d'entre soit utilis. -\layout Standard - - moins d'utiliser un cne de sortie, le mouvement de sortie (retour rapide - sur X d'origine) n'est pas synchronis sur la vitesse de broche. - Avec une broche lente, la sortie pourrait se faire sur une petite fraction - de tour. - Si la vitesse de broche est augmente aprs qu'un certain nombre de passes - ne soient dj faites, la sortie va prendre une plus grande fraction de - tour, il en rsultera un usinage trs brutal pendant ce nouveau mouvement - de sortie. - Ceci peut tre vit en prvoyant une gorge de sortie, ou en ne changeant - pas la vitesse de broche pendant le filetage. -\layout Standard - -Un exemple de programme, -\family typewriter -g76.ngc -\family default - montre l'utilisation d'un cycle de filetage G76, il peut tre visualis - et excut sur n'importe quelle machine utilisant la configuration -\family typewriter -sim/lathe.ini -\family default -. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{fig:G76-cycle-de-filetage} - -\end_inset - -G76 cycle de filetage -\layout Standard -\align center - -\begin_inset Graphics - filename g76.epsi - scale 75 - -\end_inset - - -\end_inset - - -\layout Section - -G80 -\begin_inset LatexCommand \index{G80 Revocation codes modaux} - -\end_inset - -: Rvocation des codes modaux -\begin_inset LatexCommand \label{sub:G80:-Revocation-modaux} - -\end_inset - - -\layout Standard - -Programmer -\family typewriter -G80 -\family default - pour s'assurer qu'aucun mouvement d'axe ne surviendra sans G-code modal. - C'est une erreur si: -\layout Itemize - -Des mots d'axes sont programms quand G80 est actif, sans qu'un G-code modal - du groupe 0 ne soit programm avec les mots d'axes. -\layout Section - - -\begin_inset LatexCommand \index{Cycles preprogrammes} - -\end_inset - -Les cycles prprogramms -\begin_inset LatexCommand \label{sub:G81-a-G89:} - -\end_inset - - -\layout Standard - -Les cycles prprogramms -\family typewriter -de G81 -\family default - -\family typewriter -G89 -\family default - sont dcrit dans cette section. - Deux exemples sont donns plus bas avec la description de -\family typewriter -G81. -\layout Standard - -Tous les cycles prprogramms sont effectus dans le respect du plan de - travail courant. - N'importe lequel des six plans de travail peut tre choisi. - Dans cette section, la plupart des descriptions supposeront que le plan - de travail XY est le plan courant. - Le comportement reste analogue pour les autres plans de travail et les - mots corrects doivent tre utiliss. -\layout Standard - -Les mots d'axes rotatifs sont autoriss dans les cycles prprogramms, mais - il est prfrable de les omettre. - Si les mots d'axes rotatifs sont utiliss, leurs valeurs doivent rester - les mmes que celles de la position courante, de sorte qu'ils ne tournent - pas. -\layout Subsection - -Mots communs -\layout Standard - -Tous les cycles prprogramms utilisent les mots X-, Y-, R-, et Z-. - La position de R- (signifiant rtraction) est perpendiculaire au plan de - travail courant (axe Z pour le plan XY, axe X pour le plan YZ, axe Y pour - le plan XZ, etc.). - Quelques cycles prprogramms utilisent des arguments supplmentaires. -\layout Subsection - -Mots -\begin_inset Quotes fld -\end_inset - -sticky -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Dans les cycles prprogramms, un nombre est appel -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - - (collant) si, quand le mme cycle est rpt sur plusieurs lignes de code - en colonne, le nombre doit tre indiqu la premire fois, mais qu'il devient - optionnel pour le reste des lignes suivantes. - Les nombres -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - - conservent leur valeur tant qu'ils ne sont pas explicitement programms - avec une nouvelle valeur. - La valeur de R est toujours -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - -. -\layout Standard - -En mode de dplacements incrmentaux (G91), les valeurs X-, Y-, est R- sont - traites comme des incrments depuis la position courante, Z est un incrment - depuis la position de l'axe Z avant le mouvement impliquant l'axe Z. - En mode de dplacements absolus, les valeurs de X-, Y-, R-, et Z- sont - des positions absolues dans le systme de coordonnes courant. -\layout Standard - -La valeur L- est optionnelle, elle reprsente le nombre de rptitions. - -\begin_inset Formula $L=0$ -\end_inset - - n'est pas permis. - Si les rptitions sont utilises, elles le sont normalement en mode incrmenta -l, de sorte que la mme squence de mouvements puisse tre rpte plusieurs - endroits, galements espacs, le long d'un ligne droite. - En mode de dplacements absolus, -\begin_inset Formula $L>1$ -\end_inset - - signifie -\begin_inset Quotes eld -\end_inset - -faire le mme cycle au mme endroit, plusieurs fois -\begin_inset Quotes erd -\end_inset - -. - L'omission du mot L revient spcifier -\begin_inset Formula $L=1$ -\end_inset - -. - La valeur de L n'est pas -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - -. -\layout Subsection - -Rptition de cycle -\layout Standard - -Quand -\begin_inset Formula $L>1$ -\end_inset - - en mode incrmental et XY comme plan courant, les positions X et Y sont - dtermines en ajoutant les valeurs X et Y de la commande celles de la - position courante, pour le premier trajet ou ensuite, celles de la position - finale du prcdent trajet, pour les rptitions. - Ainsi, si vous programmez L10, vous obtiendrez 10 cycles. - Le premier cycle sera la distance X, Y depuis la position d'origine. - Les positions de R- et Z- ne changent pas durant toutes les rptitions. -\layout Subsection - -Mode de retrait -\layout Standard - -La hauteur du mouvement de retrait la fin de chaque rptition (appelle - -\begin_inset Quotes eld -\end_inset - -plan de retrait -\begin_inset Quotes erd -\end_inset - - dans les descriptions suivantes) est dtermine par le mode de retrait: - retrait sur la position initiale de Z, si elle est au dessus de la valeur - de R- et que le mode de retrait est -\family typewriter -G9 -\family default -8, OLD_Z, sinon, la position de R-. - Voir la section -\begin_inset LatexCommand \ref{sub:G98,-G99:-Set} - -\end_inset - - -\layout Subsection - -Erreurs des cycles prprogramms -\layout Standard - -C'est une erreur si: -\layout Itemize - -Tous les mots X, Y et Z sont manquants durant un cycle prprogramm. -\layout Itemize - -Un nombre P est requis mais un nombre P ngatif est utilis. - -\layout Itemize - -Un nombre L est utilis mais n'est pas un entier positif. - -\layout Itemize - -Un mouvement d'axe rotatif est utilis durant un cycle prprogramm. - -\layout Itemize - -Une vitesse inverse du temps est active durant un cycle prprogramm. - -\layout Itemize - -La correction de rayon d'outil est active durant un cycle prprogramm. -\layout Standard - -Quand le plan XY est actif, la valeur de Z est -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - -, et c'est une erreur si: -\layout Itemize - -La valeur de Z est manquante alors qu'un mme cycle prprogramm n'a pas - encore t activ. - -\layout Itemize - -La valeur de R est infrieure celle de Z. -\layout Standard - -Si un autre plan est actif, les conditions d'erreur sont analogues celles - du plan XY dcrites ci-dessus. -\layout Subsection - -Mouvement prliminaire et Intermdiaire -\begin_inset LatexCommand \label{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Standard - -Tout au dbut de l'excution d'un cycle prprogramm, avec le plan courant - XY, si la position actuelle de Z est en dessous de la position de retrait - R, l'axe Z va la position R. - Ceci n'arrive qu'une fois, sans tenir compte de la valeur de L. -\layout Standard - -En plus, au dbut du premier cycle et chaque rptition, un ou deux des - mouvements suivants sont faits: -\layout Enumerate - -Un dplacement en ligne droite, parallle au plan XY, vers le position programm -e. - -\layout Enumerate - -Un dplacement en ligne droite, de l'axe Z seul vers la position de retrait - R, si il n'est pas dj cette position R. - -\layout Standard - -Si un autre plan est actif, le mouvement prliminaire et intermdiaire est - analogue. - -\layout Subsection - -G81 -\begin_inset LatexCommand \index{G81 Cycle de percage} - -\end_inset - -: Cycle de perage -\begin_inset LatexCommand \label{sub:G81:-Cycle-de-percage} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G81 -\family default - est destin au perage. - Programmer -\family typewriter -G81 X- Y- Z- A- B- C- R- L- -\family default - donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un dplacement de l'axe Z seul la vitesse programme, vers la position - Z programme. -\layout Enumerate - -Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. - -\layout Standard - - -\series bold -Exemple 1. - -\series default - Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la - ligne de codes suivante est interprte: -\layout LyX-Code - -G90 G81 G98 X4 Y5 Z1.5 R2.8 -\layout Standard - -Le mode de dplacements absolus est appel ( -\family typewriter -G90 -\family default -), le plan de retrait est positionn sur OLD_Z ( -\family typewriter -G98 -\family default -), l'appel du cycle de perage -\family typewriter -G81 -\family default - va lancer ce cycle une fois. - La position X deviendra celle demande, X4. - La position de Y deviendra celle demande, Y5. - La position de Z deviendra celle demande, Z1.5. - La valeur de R fixe le plan de retrait de Z 2.8. - La valeur de OLD_Z est 3. - Les mouvements suivants vont se produire. -\layout Enumerate - -Un mouvement en vitesse rapide, parallle au plan XY vers X4, Y5, Z3 -\layout Enumerate - -Un mouvement en vitesse rapide, parallle l'axe Z vers X4, Y5, Z2.8 -\layout Enumerate - -Un mouvement en vitesse travail, parallle l'axe Z vers X4, Y5, Z1.5 -\layout Enumerate - -Un mouvement en vitesse rapide, parallle l'axe Z vers X4, Y5, Z3 -\layout Standard - - -\series bold -Exemple 2. - -\series default - Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la - ligne de codes suivante est interprte: -\layout LyX-Code - -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\layout Standard - -Le mode de dplacements incrmentaux est appel ( -\family typewriter -G91 -\family default -), le plan de retrait est positionn sur OLD_Z ( -\family typewriter -G98 -\family default -), l'appel du cycle de perage -\family typewriter -G81 -\family default - demande 3 rptitions du cycle. - La valeur demande de X est 4, la valeur demande de Y est 5, la valeur - demande de Z est -0.6 et le retrait R est 1.8. - La position initiale de X sera 5 (1+4), la position initiale de Y sera - 7 (2+5), le plan de retrait sera positionn sur 4.8 (1.8+3) et Z positionn - sur 4.2 (4.8-0.6). - OLD_Z est 3. -\layout Standard - -Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2, Z4.8), - puisque OLD_Z est infrieur au plan de retrait. -\layout Standard - -La premire rptition produira 3 mouvements. -\layout Enumerate - -Un dplacement en vitesse rapide, parallle au plan XY vers X5, Y7, Z4.8 -\layout Enumerate - -Un dplacement en vitesse travail, parallle l'axe Z vers X5, Y7, Z4.2 -\layout Enumerate - -Un dplacement en vitesse rapide, parallle l'axe Z vers X5, Y7, Z4.8 -\layout Standard - -La deuxime rptition produira 3 mouvements. - La position de X est augmente de 4 et passe 9, la position de Y est - augmente de 5 et passe 12. -\layout Enumerate - -Un dplacement en vitesse rapide, parallle au plan XY vers X9, Y12, Z4.8 -\layout Enumerate - -Un dplacement en vitesse travail, parallle l'axe Z vers X9, Y12, Z4.2 -\layout Enumerate - -Un dplacement en vitesse rapide, parallle l'axe Z vers X9, Y12, Z4.8 - -\layout Standard - -La troisime rptition produira 3 mouvements. - La position de X est augmente de 4 et passe 13, la position de Y est - augmente de 5 et passe 17. -\layout Enumerate - -Un dplacement en vitesse rapide, parallle au plan XY vers X13, Y17, Z4.8 - -\layout Enumerate - -Un dplacement en vitesse travail, parallle l'axe Z vers X13, Y17, Z4.2 - -\layout Enumerate - -Un dplacement en vitesse rapide, parallle l'axe Z vers X13, Y17, Z4.8 - -\layout Subsection - -G82 -\begin_inset LatexCommand \index{G82 Cycle de percage avec tempo} - -\end_inset - -: Cycle de perage avec temporisation -\begin_inset LatexCommand \label{sub:G82:-Cycle-de-percage} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G82 -\family default - est destin au perage. - Programmer -\family typewriter -G82 X- Y- Z- A- B- C- R- L- P- -\layout Standard - -donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un dplacement de l'axe Z seul en vitesse programme, vers la position Z - programme. - -\layout Enumerate - -Une temporisation de P secondes. -\layout Enumerate - -Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. -\layout Subsection - -G83 -\begin_inset LatexCommand \index{G83 Cycle de percage avec debourrage} - -\end_inset - -: Cycle de perage avec dbourrage -\begin_inset LatexCommand \label{sub:G83:-Percage-avec-debourrage} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G83 -\family default - est destin au perage profond ou au fraisage avec brise-copeaux. - Les retraits, au cours de ce cycle, dgagent les copeaux du trou et fragmentent - les copeaux longs (qui sont frquents lors du perage dans l'aluminum). - Ce cycle utilise la valeur Q qui reprsente un incrment -\begin_inset Quotes eld -\end_inset - -delta -\begin_inset Quotes erd -\end_inset - - le long de l'axe Z. - Programmer -\family typewriter -G83 X- Y- Z- A- B- C- R- L- Q- -\layout Standard - -donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins - profonde entre, un incrment delta, ou la position de Z programme. - -\layout Enumerate - -Un mouvement en vitesse rapide au plan de retrait. - -\layout Enumerate - -Une plonge en vitesse rapide dans le mme trou, presque jusqu'au fond. -\layout Enumerate - -Rptition des tapes 2, 3 et 4 jusqu' ce que la position programme de - Z soit atteinte l'tape 2. -\layout Enumerate - -Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. - -\layout Standard - -C'est une erreur si: -\layout Itemize - -La valeur de Q est ngative ou gale zro. -\layout Subsection - -G84 -\begin_inset LatexCommand \index{G84 Cycle de taraudage} - -\end_inset - -: Cycle de taraudage droite -\begin_inset LatexCommand \label{sub:G84:-Taraudage-a-droite} - -\end_inset - - -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. - Voir -\family typewriter -G33.1 -\layout Subsection - -G85 -\begin_inset LatexCommand \index{G85 Cycle d'alesage} - -\end_inset - -: Cycle d'alsage, sans temporisation, retrait en vitesse travail -\begin_inset LatexCommand \label{sub:G85:-Alesage-retrait-travail} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G85 -\family default - est destin l'alsage, mais peut tre utilis pour le perage ou le fraisage. - Programmer -\family typewriter -G85 X- Y- Z- A- B- C- R- L- donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programme. - -\layout Enumerate - -Retrait de l'axe Z en vitesse travail vers le plan de retrait. - -\layout Subsection - -G86 -\begin_inset LatexCommand \index{G86 Cycle d'alesage} - -\end_inset - -: Cycle d'alsage, arrt de broche, retrait en vitesse rapide -\begin_inset LatexCommand \label{sub:G86:-Alesage-retrait-rapide} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G86 -\family default - est destin l'alsage. - Ce cycle utilise la valeur P pour une temporisation en secondes. - Programmer -\family typewriter -G86 X- Y- Z- A- B- C- R- L- P- -\layout Standard - -donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programme. -\layout Enumerate - -Une temporisation de P secondes. -\layout Enumerate - -L'arrt de rotation de la broche. -\layout Enumerate - -Retrait de l'axe Z en vitesse rapide vers le plan de retrait. -\layout Enumerate - -Reprise de la rotation de la broche dans la mme direction que prcdemment. - -\layout Standard - -La broche doit tourner avant le lancement de ce cycle. - C'est une erreur si: -\layout Itemize - -La broche ne tourne pas avant que ce cycle ne soit xcut. -\layout Subsection - -G87 -\begin_inset LatexCommand \index{G87 Alesage inverse} - -\end_inset - -: Alsage inverse -\begin_inset LatexCommand \label{sub:G87:-Back-Boring} - -\end_inset - - -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. -\layout Subsection - -G88 -\begin_inset LatexCommand \index{G88 Cycle d'alesage} - -\end_inset - -: Alsage, arrt de broche, retrait en manuel -\begin_inset LatexCommand \label{sub:G88:-Boring,-Spindle} - -\end_inset - - -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. -\layout Subsection - -G89 -\begin_inset LatexCommand \index{G89 Cycle d'alesage} - -\end_inset - -: Cycle d'alsage, temporisation, retrait en vitesse travail -\begin_inset LatexCommand \label{sub:G89:-Alesage-temporisation} - -\end_inset - - -\layout Standard - -Le cycle -\family typewriter -G89 -\family default - est destin l'alsage. - Il utilise la valeur de P pour une temporisation en secondes. - Programmer -\family typewriter -G89 X- Y- Z- A- B- C- R- L- P- -\layout Standard - -donnera: -\layout Enumerate - -Un mouvement prliminaire. - Comme dcrit ici -\begin_inset LatexCommand \ref{sub:Mouvement-preliminaire} - -\end_inset - - -\layout Enumerate - -Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programme. - -\layout Enumerate - -Temporisation de P secondes. - -\layout Enumerate - -Retrait de l'axe Z en vitesse travail vers le plan de retrait. -\layout Section - -G90 -\begin_inset LatexCommand \index{G90 Mode deplacements absolus} - -\end_inset - -, G91 -\begin_inset LatexCommand \index{G91 Mode deplacements incrementaux} - -\end_inset - -: Modes de dplacement -\begin_inset LatexCommand \label{sub:G90,-G91:-Set} - -\end_inset - - -\layout Standard - -L'interprtation du code RS274/NGC peut se faire dans deux modes de dplacements -: absolu ou incrmental. -\layout Standard - -Pour se dplacer en mode absolu, programmer -\family typewriter -G90 -\family default -. - En mode absolu, les valeurs d'axes X, Y, Z, A, B, C, U, V, W reprsentent - les positions dans le systme de coordonnes courant. - Les exceptions cette rgle sont dcrites dans la section -\begin_inset LatexCommand \ref{sub:G81-a-G89:} - -\end_inset - -. -\layout Standard - -Pour se dplacer en mode incrmental, programmer -\family typewriter -G91 -\family default -. - En mode incrmental, les valeurs d'axes reprsentent un incrment depuis - la position courante. -\layout Section - -G90.1, G91.1: Mode distance (I, J et K) -\layout Standard - -Note: Cette fonctionnalit est en cours de dveloppement, elle n'est peut - tre pas totalement implmente. -\layout Standard - -G90.1 Mode distance absolute pour les offsets I, J et K. - -\layout Itemize - -I et J doivent tous les deux tre spcifis ou une erreur se produira. -\layout Standard - -G91.1 Mode distance incrmentale pour les offsets I, J et K. -\layout Itemize - -Renvoie I, J et K leur fonctionnement normal. -\layout Section - -G92 -\begin_inset LatexCommand \index{G92} - -\end_inset - -, G92.1 -\begin_inset LatexCommand \index{G92.1} - -\end_inset - -, G92.2 -\begin_inset LatexCommand \index{G92.2} - -\end_inset - -, G92.3 -\begin_inset LatexCommand \index{G92.3} - -\end_inset - -: Dcalage d'origine des systmes de coordonnes -\begin_inset LatexCommand \label{sub:G92,-G92.1,-G92.2,} - -\end_inset - - -\layout Standard - -Voir la section -\begin_inset LatexCommand \ref{sub:-Systemes-de-coordonnees} - -\end_inset - - pour une vision gnrale des systmes de coordonnes. -\layout Standard - -Pour donner au point actuel de nouvelles valeurs de coordonnes (sans faire - de mouvement), programmer -\family typewriter -G92 X- Y- Z- A- B- C- -\family default - U-, V-, W-, o les mots d'axes contiennent les valeurs souhates. - Au moins un mot d'axe est obligatoire, les autres sont optionnels. - Si il n'y a pas de mot d'axe pour un axe donn, les coordonnes de cet - axe resteront inchanges. - C'est une erreur si: -\layout Enumerate - -Tous les mots d'axes sont omis. -\layout Standard - -Quand -\family typewriter -G92 -\family default - est excut, les origines de tout les systmes de coordonnes sont dplaces. - Elles sont dplaces de la mme valeur que le point contrl courant l'est, - dans le systme de coordonnes courant, pour prendre les valeurs spcifies - dans la ligne du G92. - Les origines de tous les systmes de coordonnes sont dcales de la mme - valeur. -\layout Standard - -Un exemple: supposons que le point courant soit X=4 et qu'aucun dcalage - G92 ne soit actif. - La ligne G92 X7 est programme, toutes les origines seront dcales de - -3 en X, ce qui fera que le point courant deviendra X=7. - Ce -3 est sauvegard dans le paramtre 5211. -\layout Standard - -Le fait d'tre en mode de dplacement incrmental est sans effet sur l'action - de -\family typewriter -G92 -\family default -. -\layout Standard - -Des dcalages G92 peuvent dj tre actifs quand -\family typewriter -G92 -\family default - est appel. - Si c'est le cas, ils sont remplacs par le nouveau dcalage, de sorte que - le point courant prenne la valeur spcifie. - -\layout Standard - -Pour repasser un dcalage d'axe zro, programmer -\family typewriter -G92.1 -\family default - ou -\family typewriter -G92.2 -\family default -. - -\family typewriter -G92.1 -\family default - positionne les paramtres 5211 5219 zro, tandis que -\family typewriter -G92.2 -\family default - conserve leurs valeurs courantes inchanges. -\layout Standard - -Pour positionner des valeurs de dcalage d'axes aux valeurs donnes dans - les paramtres 5211 5219, programmer -\family typewriter -G92.3 -\family default -. -\layout Standard - -Vous pouvez positionner les dcalages d'axes dans un programme et r-utiliser - les mmes dans un autre programme. - Programmer -\family typewriter -G92 -\family default - dans le premier programme, ce qui positionnera les paramtres 5211 5219. - Ne pas utiliser G92.1 dans la suite du premier programme. - Les valeurs des paramtres seront enregistres lors de la sortie du premier - programme et rtablies au chargement du second programme. - Utiliser -\family typewriter -G92.3 -\family default - vers le dbut du deuxime programme, ce qui restaurera les dcalages d'axes - enregistrs par le premier. - -\layout Standard - -EMC2 enregistre les dcalages G92 et les rutilise au lancement du programme - suivant. - Il y a deux moyens de contourner cel, il est possible de programmer G92.1 - pour effacer les dcalages, ou de programmer G92.2 pour que les dcalages - enregistrs ne soient pas appliqus. - -\layout Section - -G93 -\begin_inset LatexCommand \index{G93 Mode de vitesse} - -\end_inset - -, G94 -\begin_inset LatexCommand \index{G94 Mode de vitesse} - -\end_inset - -, G95 -\begin_inset LatexCommand \index{G95 Mode de vitesse} - -\end_inset - -: Choix des modes de vitesse -\begin_inset LatexCommand \label{sub:G93,-G94:-Set} - -\end_inset - - -\layout Standard - -Trois modes de vitesse sont reconnus: units par minute, inverse du temps - et units par tour. - Programmer G94 pour passer en mode units par minute. - Programmer G93 pour passer en mode inverse du temps. - Programmer G95 pour passer en mode units par tour. - -\layout Standard - -Dans le mode vitesse en units par minute, le mot F est interprt pour - indiquer que le point contrl doit se dplacer un certain nombre de - pouces par minute, de millimtres par minute, ou de degrs par minute, - selon l'unit de longueur choisie pour les axes et quels types d'axes doivent - se dplacer. -\layout Standard - -Dans le mode vitesse en units par tour, le mot F est interprt pour indiquer - que le point contrl doit se dplacer un certain nombre de pouces par - tour de broche, de millimtres par tour, selon l'unit de longueur utilise - et quels axes doivent tre dplacs. -\layout Standard - -Dans le mode vitesse inverse du temps, le mot F signifie que le mouvement - doit tre termin en [1 divis par la valeur de F] minutes. - Par exemple, si la valeur de F est 2.0, les mouvements doivent tre termins - en 1/2 minute. -\layout Standard - -Quand le mode vitesse inverse du temps est actif, le mot F doit apparatre - sur chaque ligne contenant un mouvement G1, G2, ou G3. - Les mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignors. - tre en mode vitesse inverse du temps est sans effet sur les mouvements - G0 (vitesse rapide). - C'est une erreur si: -\layout Itemize - -Le mode vitesse inverse du temps est actif et qu'une ligne avec G1, G2, - ou G3 (explicitement ou implicitement) n'a pas de mot F. -\layout Itemize - -Une nouvelle vitesse n'a pas t spcifie aprs un passage en G94 ou G95. -\layout Section - -G96 -\begin_inset LatexCommand \index{G96 Vitesse de coupe constante} - -\end_inset - -, G97 -\begin_inset LatexCommand \index{G97 Vitesse de coupe en tr/mn} - -\end_inset - -: Modes de contrle de la broche -\begin_inset LatexCommand \index{mode} - -\end_inset - - -\begin_inset LatexCommand \label{sub:G96,-G97:-Broche} - -\end_inset - - -\layout Standard - -Deux modes de contrle de la broche sont reconnus: tours par minute, et - vitesse de coupe constante. - Programmer G96 D- S- pour valider une vitesse de coupe constante de S pieds - par minute si G20 est actif, ou mtres par minute si G21 est actif. - La vitesse de rotation maximale est indique par la valeur de D- en tours - par minute. -\layout Standard - -Programmer G97 pour activer le mode vitesse en tours par minute. -\layout Standard - -C'est une erreur si: -\layout Itemize - -S n'est pas spcifi avec G96. -\layout Itemize - -Une vitesse est spcifie en mode G96 et la broche ne tourne pas. -\layout Section - -G98 -\begin_inset LatexCommand \index{G98 Retrait sur R} - -\end_inset - -, G99 -\begin_inset LatexCommand \index{G99 Retrait position initiale} - -\end_inset - -: Options du plan de retrait -\begin_inset LatexCommand \label{sub:G98,-G99:-Set} - -\end_inset - - -\layout Standard - -Quand la broche se rtracte pendant les cycles prprogramms, il existe - deux options pour indiquer comment elle se rtracte: (1) Retrait perpendiculair -e au plan de travail courant jusqu' la position indique par le mot R, - ou (2) Retrait perpendiculaire au plan de travail courant jusqu' la position - qui tait celle de cet axe juste avant le dbut du cycle prprogramm ( - moins que cette position ne soit infrieure celle indique par le mot - R, auquel cas, c'est cette dernire qui serait utilise. -\layout Standard - -Pour utiliser l'option (1), programmer -\family typewriter -G99 -\family default -. - Pour utiliser l'option (2), programmer -\family typewriter -G98 -\family default -. - Ne pas oublier que le mot R a diffrentes significations en mode de dplacement - absolu et en mode de dplacement incrmental. - -\layout Chapter - -M Codes -\layout Section - -M0 -\begin_inset LatexCommand \index{M0 Arret de programme} - -\end_inset - -, M1 -\begin_inset LatexCommand \index{M1 Arret de programme} - -\end_inset - -, M2 -\begin_inset LatexCommand \index{M2 Fin de programme} - -\end_inset - -, M30 -\begin_inset LatexCommand \index{M30 Fin de programme} - -\end_inset - -, M60 -\begin_inset LatexCommand \index{M60 Arret de programme} - -\end_inset - -: Arrts de programme -\begin_inset LatexCommand \label{sub:M0,-M1,-M2:} - -\end_inset - - -\layout Standard - -Pour stopper temporairement un programme en cours (quelle que soit la position - du bouton d'arrt facultatif), programmer M0. -\layout Standard - -Pour stopper temporairement un programme en cours (mais seulement si le - bouton d'arrt optionnel est activ), programmer M1. -\layout Standard - -Il est permis de programmer -\family typewriter -M0 -\family default - et -\family typewriter -M1 -\family default - en mode donnes manuelles (MDI), mais l'effet ne sera probablement pas - perceptible, puisque le comportement normal en mode MDI est de s'arrter, - de toute faon, la fin de chaque ligne. -\layout Standard - -Pour procder l'change de porte-pice avec le chargeur de pices et stopper - temporairement un programme en cours (quel que soit le rglage du bouton - d'arrt facultatif), programmer M60. -\layout Standard - -Si un programme est stopp par M0, M1, ou M60, en appuyant sur le bouton - de dpart cycle, le programme reprend la ligne suivante. -\layout Standard - -Pour finir un programme, programmer -\family typewriter -M2 -\family default -. - Pour changer le porte-pice du chargeur et finir un programme, programmer - -\family typewriter -M30 -\family default -. - Ces deux commandes produisent les effets suivants: -\layout Enumerate - -Les dcalages d'axes sont mis zro (comme avec -\family typewriter -G92.2 -\family default -) et les dcalages d'origine sont mis aux valeurs par dfaut (comme avec - -\family typewriter -G54 -\family default -). -\layout Enumerate - -Le plan de travail actif devient XY (comme avec -\family typewriter -G17 -\family default -). - -\layout Enumerate - -Le mode de dplacement devient absolu (comme avec -\family typewriter -G90 -\family default -). - -\layout Enumerate - -La vitesse travail passe en units par minute (comme avec -\family typewriter -G94 -\family default -). -\layout Enumerate - -Les correcteurs de vitesse sont activs (comme avec -\family typewriter -M48 -\family default -). - -\layout Enumerate - -Les compensations d'outil sont dsactives (comme avec -\family typewriter -G40 -\family default -). - -\layout Enumerate - -La broche est arrte (comme avec -\family typewriter -M5 -\family default -). - -\layout Enumerate - -Le mode mouvement courant devient G1 (comme avec -\family typewriter -G1 -\family default -). - -\layout Enumerate - -L'arrosage est arrt (comme avec -\family typewriter -M9 -\family default -). - -\layout Standard - -Plus aucune ligne de code RS274/NGC ne sera excute aprs excution de - la commande M2 ou M30. - Presser le dpart cycle relance le programme au dbut du fichier. - -\layout Section - -M3 -\begin_inset LatexCommand \index{M3 Broche sens horaire} - -\end_inset - -, M4 -\begin_inset LatexCommand \index{M4 Broche sens anti-horaire} - -\end_inset - -, M5 -\begin_inset LatexCommand \index{M5 Arret de broche} - -\end_inset - -: Contrle de broche -\begin_inset LatexCommand \label{sub:M3,-M4,-M5:} - -\end_inset - - -\layout Standard - -Pour dmarrer la rotation de la broche en sens horaire la vitesse programme - courante, programmer -\family typewriter -M3 -\family default -. -\layout Standard - -Pour dmarrer la rotation de la broche en sens anti-horaire la vitesse - programme courante, programmer M4. -\layout Standard - -Pour arrter la rotation de la broche, programmer -\family typewriter -M5 -\family default -. -\layout Standard - -Il est permis d'utiliser -\family typewriter -M3 -\family default - ou -\family typewriter -M4 -\family default - si la vitesse de broche est zro. - Si cela est fait (ou si le bouton de correction de vitesse est activ mais - mis zro), la broche ne tournera pas, si, plus tard la vitesse de broche - est augmente (ou que le correcteur de vitesse est augment), la broche - va se mettre en rotation. - Il est permis d'utiliser -\family typewriter -M3 -\family default - ou -\family typewriter -M4 -\family default - quand la broche est dj en rotation ou d'utiliser -\family typewriter -M5 -\family default - quand la broche est dj arrte. - -\layout Section - -M6 -\begin_inset LatexCommand \index{M6 Appel d'outil} - -\end_inset - -: Appel d'outil -\begin_inset LatexCommand \label{sub:M6:-Appel-d'outil} - -\end_inset - - -\layout Standard - -Pour changer l'outil actuellement dans la broche par un autre, nouvellement - slectionn en utilisant le mot T, voir la section -\begin_inset LatexCommand \ref{sub:T:-Appel-d'outil} - -\end_inset - -), programmer -\family typewriter -M6 -\family default -. - Un changement d'outil complet donnera: -\layout Itemize - -La rotation de la broche est arrte. - -\layout Itemize - -L'outil qui a t slectionn (par le mot T sur la mme ligne ou sur n'importe - quelle ligne aprs le changement d'outil prcdent), sera plac dans la - broche. - Le mot T est un nombre entier indiquant le numro du slot d'outil dans - le carrousel (non son index). -\layout Itemize - -Si l'outil slectionn n'est pas dj dans la broche avant le changement - d'outil, l'outil qui tait dans la broche (s'il y en avait un) va tre - replac dans son emplacement dans le chargeur. - -\layout Itemize - -Les coordonnes des axes seront arrtes dans les mmes positions absolues - qu'elles avaient avant le changement d'outil (mais la broche devra peut-tre - tre roriente). -\layout Itemize - -Aucune autre modification ne sera apporte. - Par exemple, l'arrosage continue couler durant le changement d'outil - moins qu'il ne soit arrt par -\family typewriter -M9 -\family default -. -\layout Standard - -Le changement d'outil peut inclure des mouvements d'axes pendant son excution. - Il est permis, mais pas utile, de programmer un changement d'outil avec - le mme outil que celui qui est dj dans la broche. - Il est permis galement, si il n'y a pas d'outil dans le slot slectionn, - dans ce cas, la broche sera vide aprs le changement d'outil. - Si le slot zro a t le dernier slectionn, il n'y aura pas d'outil dans - la broche aprs le changement. - -\layout Section - -M7 -\begin_inset LatexCommand \index{M7 Goutelettes} - -\end_inset - -, M8 -\begin_inset LatexCommand \index{M8 Arrosage} - -\end_inset - -, M9 -\begin_inset LatexCommand \index{M9 Arret d'arrosages} - -\end_inset - -: Contrle d'arrosage -\begin_inset LatexCommand \label{sub:M7,-M8,-M9:} - -\end_inset - - -\layout Standard - -Pour activer l'arrosage par brouillard (gouttelettes), programmer -\family typewriter -M7 -\family default -. -\layout Standard - -Pour activer l'arrosage fluide, programmer -\family typewriter -M8 -\family default -. -\layout Standard - -Pour arrter tous les arrosages, programmer -\family typewriter -M9 -\family default -. -\layout Standard - -Il est toujours permis d'utiliser une de ces commandes, que les arrosages - soient arrts ou non. - -\layout Section - -M48 -\begin_inset LatexCommand \index{M48 Controle correcteur de vitesse} - -\end_inset - -, M49 -\begin_inset LatexCommand \index{M49} - -\end_inset - -: Contrle des correcteurs de vitesse -\begin_inset LatexCommand \label{sub:M48,-M49:-Correcteurs} - -\end_inset - - -\layout Standard - -Pour autoriser les potentiomtres de corrections de vitesses de broche et - celui de vitesse travail, programmer -\family typewriter -M48 -\family default -. - Pour les inhiber tous les deux, programmer -\family typewriter -M49 -\family default -. - Voir la section -\begin_inset LatexCommand \ref{sub:-Interaction-vitesses} - -\end_inset - - pour plus de dtails. - Il est permis d'autoriser ou d'inhiber ces potentiomtres quand ils sont - dj autoriss ou inhibs. - Ces potentiomtres peuvent aussi tre activs individuellement en utilisant - les commandes M50 et M51 comme dcrit dans les sections -\begin_inset LatexCommand \ref{sub:M50:-Correcteur-vitesse-travail} - -\end_inset - - et -\begin_inset LatexCommand \ref{sub:M51:-Correcteur-vitesse-broche} - -\end_inset - -. -\layout Section - -M50 -\begin_inset LatexCommand \index{M50 Controle correcteur travail} - -\end_inset - -: Contrle du correcteur de vitesse travail -\begin_inset LatexCommand \label{sub:M50:-Correcteur-vitesse-travail} - -\end_inset - - -\layout Standard - -Pour autoriser le potentiomtre de correction de vitesse travail, programmer - -\family typewriter -M50 -\family default - ou -\family typewriter -M50 P1 -\family default -. - Pour inhiber ce potentiomtre, programmer -\family typewriter -M50 P0 -\family default -. - Quand il est inhib, le potentiomtre de correction de vitesse n'a plus - aucune influence et les mouvements seront excuts la vitesse de travail - programme. - ( moins que ne soit actif un correcteur de vitesse adaptative). -\layout Section - -M51 -\begin_inset LatexCommand \index{M51 Controle correcteur broche} - -\end_inset - -: Contrle du correcteur de vitesse broche -\begin_inset LatexCommand \label{sub:M51:-Correcteur-vitesse-broche} - -\end_inset - - -\layout Standard - -Pour autoriser le potentiomtre de correction de vitesse de la broche, programme -r -\family typewriter -M51 -\family default - ou -\family typewriter -M51 P1 -\family default -. - Pour inhiber ce potentiomtre programmer -\family typewriter -M51 P0 -\family default -. - Quand il est inhib, le potentiomtre de correction de vitesse de broche - n'a plus aucune influence et la broche tournera la vitesse programme, - en utilisant le mot S comme dcrit dans la section -\begin_inset LatexCommand \ref{sub:S:-broche} - -\end_inset - -. -\layout Section - -M52 -\begin_inset LatexCommand \index{M52 Controle vitesse adaptative} - -\end_inset - -: Contrle de vitesse adaptative -\begin_inset LatexCommand \label{sub:M52:-Controle-vitesse-adaptative} - -\end_inset - - -\layout Standard - -Pour utiliser une vitesse adaptative, programmer -\family typewriter -M52 -\family default - ou -\family typewriter -M52 P1 -\family default -. - Pour stopper l'utilisation d'une vitesse adaptative, programmer -\family typewriter -M52 P0 -\family default -. - Quand la vitesse adaptative est utilise, certaines valeurs externes sont - utilises avec les correcteurs de vitesse de l'interface utilisateur et - les vitesses programmes pour obtenir la vitesse travail. - Dans EMC2, la HAL pin -\family typewriter -motion.adaptive-feed -\family default - est utilise dans ce but. - Les valeurs de -\family typewriter -motion.adaptive-feed -\family default - doivent tre dans une chelle comprise entre 0 (pas de vitesse) et 1 (pleine - vitesse). -\layout Section - -M53 -\begin_inset LatexCommand \index{M53 Controle coupure vitesse} - -\end_inset - -: Contrle de coupure de vitesse -\begin_inset LatexCommand \label{sub:M53:-Controle-coupure-vitesse} - -\end_inset - - -\layout Standard - -Pour autoriser le bouton de coupure de vitesse, programmer -\family typewriter -M53 -\family default - ou -\family typewriter -M53 P1 -\family default -. - Pour inhiber ce bouton programmer -\family typewriter -M53 P0 -\family default -. - Autoriser la coupure de vitesse permet d'interrompre les mouvements par - le biais d'une coupure de vitesse. - Dans EMC2, la HAL pin -\family typewriter -motion.feed-hold -\family default - est utilise pour cette fonctionnalit. - Une valeur de 1 provoque un arrt des mouvements (si -\family typewriter -M53 -\family default - est actif). -\layout Section - -M61 -\begin_inset LatexCommand \index{M61 Ajuste numero outil} - -\end_inset - -: Ajuste le numro de l'outil courant -\begin_inset LatexCommand \label{sub:M61:-Ajuste-numero-outil} - -\end_inset - - -\layout Standard - -Pour corriger le numro de l'outil courant, en mode MDI ou aprs un changement - manuel d'outil programmer M61 Qxx dans la fentre de donnes manuelles. - Au dmarrage d'EMC2 avec un outil dans la broche, il est possible ainsi - d'ajuster le numro de l'outil courant sans faire de changement d'outil. -\layout Quote - -C'est une erreur si: -\layout Itemize - -Qxx n'est pas gal o suprieur 0 -\layout Section - -M62 M65 -\begin_inset LatexCommand \index{M62 Controle sorties num} - -\end_inset - -: Contrle de sorties numriques -\begin_inset LatexCommand \label{sub:M62-a-M65:-Controle-sorties-num} - -\end_inset - - -\layout Standard - -Pour contrler un bit de sortie digitale, programmer -\family typewriter -M- P- -\family default -, o le mot M doit tre compris entre 62 et 65, et le mot P compris entre - 0 et un maximum dfini selon l'implmentation. -\layout Description - -M62 -\begin_inset LatexCommand \index{M62} - -\end_inset - - Activer la sortie digitale synchronise avec un mouvement. -\layout Description - -M63 -\begin_inset LatexCommand \index{M63} - -\end_inset - - Dsactiver la sortie digitale synchronise avec un mouvement. -\layout Description - -M64 -\begin_inset LatexCommand \index{M64} - -\end_inset - - Activer immdiatement la sortie digitale. -\layout Description - -M65 -\begin_inset LatexCommand \index{M65} - -\end_inset - - Dsactiver immdiatement la sortie digitale. -\layout Section - -M66 -\begin_inset LatexCommand \index{M66 Controle entrees num} - -\end_inset - -: Contrle d'entre digitale -\begin_inset LatexCommand \label{sub:M66:-Controle-entrees-num} - -\end_inset - - -\layout Standard - -Pour contrler un bit d'entre digitale, programmer -\family typewriter -M66 P- E- L- Q- -\family default - , o le mot P et le mot E doivent tre compris entre 0 et un maximum dfini - selon l'implmentation. - Un seul des mots P ou E doit tre prsent. - C'est une erreur si ils sont prsents tous les deux. -\layout Description - -M66 -\begin_inset LatexCommand \index{M66} - -\end_inset - - Attente d'une entre -\layout Itemize - -Le mot P spcifie le numro d'une entre digitale. - -\layout Itemize - -Le mot E spcifie le numro d'une entre analogique. - -\layout Itemize - -Le mot L spcifie le type d'attente: -\layout Description - -0 - WAIT_MODE_IMMEDIATE - pas d'attente, retour immdiat. - La valeur courante de l'entre est stocke dans le paramtre #5399 -\layout Description - -1 - WAIT_MODE_RISE - attente d'un front montant sur l'entre. -\layout Description - -2 - WAIT_MODE_FALL - attente d'un front descendant sur l'entre. -\layout Description - -3 - WAIT_MODE_HIGH - attente d'un tat logique HIGH sur l'entre. -\layout Description - -4 - WAIT_MODE_LOW - attente d'un tat logique LOW sur l'entre. -\layout Itemize - -Le mot Q spcifie le timeout pour l'attente. - Si le timeout est dpass, l'attente est interrompue et la variable #5399 - positionne -1. -\layout Itemize - -Le type 0 est le seul autoris pour une entre analogique. -\layout Standard - -M66 attends un nouvel vnement sur l'entre ou l'arrt de l'excution du - programme, jusqu' ce que l'vnement slectionn (ou le timeout programm) - ne survienne. - C'est une erreur de programmer une valeur de timeout 0 dans tous les - types, sauf le type 0. - -\layout Standard - -C'est galement une erreur de programmer M66 avec les deux mots, un mot - P et un mot E (ce qui reviendrait slectionner la fois une entre analogiqu -e et une digitale). -\layout Section - -M100 M199 -\begin_inset LatexCommand \index{M100..199 Mcodes utilisateur} - -\end_inset - -: Commandes dfinies par l'utilisateur -\begin_inset LatexCommand \label{sub:M100-a-M199:} - -\end_inset - - -\layout Standard - -Pour invoquer une commande dfinie par l'utilisateur, programmer M1xx P- - Q- o P et Q sont facultatifs. - Le programme externe `` M1nn'', qui doit se trouver dans le rpertoire - point par la variable [DISPLAY] PROGRAM_PREFIX du fichier ini, est excut - avec les valeurs P et Q comme tant ses deux arguments. - L'excution du fichier G-code courant passe en pause jusqu' ce que le - programme invoqu soit termin. -\layout Standard - -Le message d'erreur -\begin_inset Quotes fld -\end_inset - -M code inconnu -\begin_inset Quotes frd -\end_inset - - signifie que: -\layout Itemize - -La commande spcifie n'existe pas. -\layout Itemize - -Le fichier n'est pas excutable. -\layout Standard - -Exemple: dans un programme g-code, on doit ouvrir et fermer un mandrin automatiq -ue via une broche du port parallle, on appellera respectivement M101 pour - ouvrir le mandrin et M102 pour le fermer. - Les deux scripts bash correspondants, appels M101 et M102 seront crs - avant le lancement d'EMC2 puis rendus excutables, par exemple par un click - droit puis proprits -> permissions -> Excution. - -\layout Standard - -M101 -\layout Quote - - -\series bold -#!/bin/bash -\layout Quote - - -\series bold -# ce fichier met la broche 14 du port -\series default -// 1 pour ouvrir le mandrin automatique -\layout Quote - - -\series bold -halcmd setp parport.0.pin-14-out True -\layout Quote - - -\series bold -exit 0 -\layout Standard - -M102 -\layout Quote - - -\series bold -#!/bin/bash -\layout Quote - - -\series bold -# ce fichier met la broche 14 du port -\series default -// 0 pour fermer le mandrin automatique -\layout Quote - - -\series bold -halcmd setp parport.0.pin-14-out False -\layout Quote - - -\series bold -exit 0 -\layout Chapter - -O Codes -\begin_inset LatexCommand \index{O Codes} - -\end_inset - - -\begin_inset LatexCommand \label{cha:O-Codes} - -\end_inset - - -\layout Standard - -Les O-codes permettent le contrle de flux dans les programmes NC. - Chaque block est associ une adresse, qui est la valeur utilise aprs - le O. - Il faut prendre soin de bien faire correspondre les adresses des codes - O. -\layout Standard - -Le comportement est indfini si: -\layout Itemize - -D'autres mots sont utiliss sur une ligne contenant un mot O. -\layout Itemize - -Un commentaire est utilis sur une ligne contenant un code O. -\layout Section - -Sous-programmes: -\begin_inset Quotes fld -\end_inset - -sub -\begin_inset LatexCommand \index{sub} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -endsub -\begin_inset LatexCommand \index{endsub} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -return -\begin_inset LatexCommand \index{return} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -call -\begin_inset LatexCommand \index{call} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Les sous-programmes s'tendent d'un -\family typewriter -\series bold -O- sub -\family default -\series default - un -\family typewriter -\series bold -O- endsub -\family default -\series default -. - Les lignes, l'intrieur du sous-programme (le corps du sous-programme), - ne sont pas excutes dans l'ordre, mais elles sont excutes chaque - fois que le sous-programme est appel avec un -\family typewriter -\series bold -O- call -\series default -. -\layout LyX-Code - - -\series bold -O100 sub -\series default - (sous-programme pour aller l'origine programme) -\newline - -\series bold -G0 X0 Y0 Z0 -\newline -O100 endsub -\series default - -\newline - -\series bold -... - -\series default - (plusieurs lignes) -\newline - -\series bold -O100 call -\layout Standard - - l'intrieur d'un sous-programme, -\family typewriter -\series bold -O- return -\family default -\series default - peut tre excut, pour retourner immdiatement au code appelant, comme - si -\family typewriter -\series bold -O- endsub -\family default -\series default - avait t rencontr. -\layout Standard - - -\family typewriter -\series bold -O- call -\family default -\series default - peut prendre jusqu' 30 arguments optionnels, qui sont passs au sous-programme - comme -\family typewriter -#1 -\family default -, -\family typewriter -#2 -\family default -, ..., #N. - Les paramtres de #N+1 #30 ont la mme valeur dans le contexte de l'appel. - Au retour du sous-programme, les valeurs des paramtres #1 jusqu' #30 - (quel que soit le nombre d'arguments) sont restaurs aux valeurs qu'ils - avaient avant l'appel. -\layout Standard - -Parce que `` 1 2 3'' est analys comme le nombre 123, les paramtres doivent - tre placs entre crochets. - L'appel de sous-programme suivant, s'effectue avec 3 arguments: -\layout LyX-Code - - -\series bold -O200 call [1] [2] [3] -\layout Standard - -Les corps de sous-programme ne peuvent pas tre imbriqus. - Ils ne peuvent tre appels qu'aprs avoit t dfinis. - Ils peuvent tre appels depuis d'autres fonctions et peuvent s'appeler - eux mme rcursivement, s'il est judicieux de le faire. - Le niveau maximum d'imbrication des sous-programmes est de 10. - -\layout Standard - -Les sous-programmes n'ont pas de -\begin_inset Quotes eld -\end_inset - -valeur de retour -\begin_inset Quotes erd -\end_inset - -, mais ils peuvent changer la valeur des paramtres au dessus de #30 et - ces changements sont visibles depuis le code appelant. - Les sous-programmes peuvent aussi changer la valeur des paramtres nomms - globaux. -\layout Section - -Boucles: -\begin_inset Quotes fld -\end_inset - -do -\begin_inset LatexCommand \index{do} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -while -\begin_inset LatexCommand \index{while} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -endwhile -\begin_inset LatexCommand \index{endwhile} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -break -\begin_inset LatexCommand \index{break} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -continue -\begin_inset LatexCommand \index{continue} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -La boucle -\family typewriter -\series bold -while -\family default -\series default - a deux structures possibles: while/endwhile et do/while. - Dans chaque cas, la boucle est quitte quand la condition du -\begin_inset Quotes eld -\end_inset - -while -\begin_inset Quotes erd -\end_inset - - devient fausse. -\layout LyX-Code - -(dessine la forme d'une dent de scie) -\newline - -\series bold -F100 -\newline -#1 = 0 -\newline -O101 while [#1 lt 10] -\newline -G1 X0 -\newline -G1 Y[#1/10] X1 -\newline -#1 = [#1+1] -\newline -O101 endwhile -\layout Standard - - l'intrieur d'une boucle while, -\family typewriter -\series bold -O- break -\series default -, -\family default - quitte immdiatement la boucle et -\family typewriter -\series bold -O- continue -\series default -, -\family default - saute immdiatement la prochaine valuation de la condition du -\family typewriter -while -\family default -. - Si elle est vraie, la boucle recommence au dbut. - Si elle est fausse, la boucle est quitte. -\layout Section - -Conditionnel: -\begin_inset Quotes fld -\end_inset - -if -\begin_inset LatexCommand \index{if} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -else -\begin_inset LatexCommand \index{else} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -endif -\begin_inset LatexCommand \index{endif} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Le -\family typewriter -\series bold -if -\family default -\series default - conditionnel excute un groupe d'instructions si sa condition est vraie - et un autre groupe si elle est fausse. -\layout LyX-Code - -(Ajuste la vitesse travail en fonction d'une variable) -\newline - -\series bold -O102 if [#2 GT 5] -\newline -F100 -\newline -O102 else -\newline -F200 -\newline -O102 endif -\layout LyX-Code - -\layout Section - -Rptition: -\begin_inset Quotes fld -\end_inset - -Repeat -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{Repeat} - -\end_inset - - -\layout Standard - -La rptition -\begin_inset Quotes fld -\end_inset - -repeat -\begin_inset Quotes frd -\end_inset - -, excutera les blocs contenus entre -\begin_inset Quotes fld -\end_inset - -repeat -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -endrepeat -\begin_inset Quotes frd -\end_inset - - le nombre de fois spcifi entre crochets. - L'exemple suivant montre comment usiner une sries de 5 formes diagonales - commenant la position courante. -\layout LyX-Code - -(Usine 5 formes diagonales) -\layout LyX-Code - - -\series bold -G91 -\series default - (Mode incrmental) -\layout LyX-Code - - -\series bold -O103 repeat [5] -\layout LyX-Code - - -\series bold -... - -\series default - (inserer le code usiner ici) -\layout LyX-Code - - -\series bold -G0 X1 Y1 -\series default - (mouvement en diagonale la position suivante) -\layout LyX-Code - - -\series bold -O103 endrepeat -\layout LyX-Code - - -\series bold -G90 -\series default - (Mode absolu) -\layout Section - -Indirection -\layout Standard - -L'adresse de O- peut tre donne par un paramtre ou un calcul. -\layout LyX-Code - - -\series bold -O[#101+2] call -\layout Section - -Calcul des valeurs dans les mots O -\layout Standard - -Dans les mots O-, les paramtres (section -\begin_inset LatexCommand \ref{sub:-Parametres-numerotes} - -\end_inset - -), les expressions (section -\begin_inset LatexCommand \ref{sub:-Expressions} - -\end_inset - -), les oprateurs binaires (section -\begin_inset LatexCommand \ref{sub:-Operateurs-binaires} - -\end_inset - -) et les fonctions (tableau -\begin_inset LatexCommand \ref{cap:Fonctions} - -\end_inset - -), sont particulirement intressants. -\layout Section - -Appel de fichiers -\begin_inset LatexCommand \index{Appel de fichiers} - -\end_inset - - -\layout Standard - -Pour appeler un fichier par son nom, celui-ci doit contenir un -\begin_inset Quotes fld -\end_inset - -sub -\begin_inset Quotes frd -\end_inset - - et un -\begin_inset Quotes fld -\end_inset - -endsub -\begin_inset Quotes frd -\end_inset - -. - Le fichier appel doit se trouver dans le rpertoire point par la variable - PROGRAM_PREFIX du fichier ini. -\layout LyX-Code - - -\series bold -o call -\series default - (fichier nomm) -\layout Standard - -ou -\layout LyX-Code - - -\series bold -o123 call -\series default - (fichier numrot) -\layout Standard - -Dans le fichier appel doit se touver le -\begin_inset Quotes fld -\end_inset - -sub -\begin_inset Quotes frd -\end_inset - - et le -\begin_inset Quotes fld -\end_inset - -endsub -\begin_inset Quotes frd -\end_inset - - correspondant l'appel. - Le fichier doit tre un fichier valide. -\layout Standard - -Exemple: -\layout LyX-Code - - -\series bold -monfichier.ngc -\layout LyX-Code - - -\series bold -o sub -\layout LyX-Code - - -\series bold -... -\layout LyX-Code - - -\series bold -o endsub -\layout LyX-Code - - -\series bold -M2 -\layout Chapter - -Autres Codes -\layout Section - -F: Rglage de la vitesse travail -\begin_inset LatexCommand \label{sub:F:-vitesse} - -\end_inset - - -\layout Standard - -Pour rgler la vitesse d'avance, programmer -\family typewriter -F- -\family default - . - L'application de la vitesse est telle que dcrite dans la section -\begin_inset LatexCommand \ref{sub:-Vitesse-d'avance} - -\end_inset - -, moins que le mode vitesse inverse du temps ne soit actif, dans ce cas, - la vitesse est telle que dcrite dans la section -\begin_inset LatexCommand \ref{sub:G93,-G94:-Set} - -\end_inset - -. - -\layout Section - -S: Rglage de la vitesse de rotation de la broche -\begin_inset LatexCommand \label{sub:S:-broche} - -\end_inset - - -\layout Standard - -Pour rgler la vitesse en tours par minute (tr/mn) de la broche, programmer - -\family typewriter -S- -\family default - . - La broche va tourner cette vitesse quand elle sera programme pour tourner. - Il est permis de programmer un mot S que la broche tourne ou non. - Si le potentiomtre de correction de vitesse broche est autoris et n'est - pas positionn sur 100%, la vitesse de broche sera diffrente de celle - programme. - Il est permis de programmer S0, la broche ne tournera pas. - C'est une erreur si: -\layout Itemize - -La valeur de S est ngative. -\layout Standard - -Comme dcrit dans la section -\begin_inset LatexCommand \ref{sub:G84:-Taraudage-a-droite} - -\end_inset - -, si un -\family typewriter -cycle prprogramm G84 -\family default - (taraudage) est actif et que les potentiomtres de vitesse et d'avance - sont autoriss, celui qui a le rglage le plus bas sera utilis. - La vitesse de rotation et d'avance resterons synchronises. - Dans ce cas, la vitesse peut diffrer de celle programme, mme si le potentiom -tre de correction de vitesse travail est sur 100%. - -\layout Section - -T: Choix de l'outil -\begin_inset LatexCommand \label{sub:T:-Appel-d'outil} - -\end_inset - - -\layout Standard - -Pour slectionner un outil, programmer -\family typewriter -T- -\family default -, o la valeur de T correspond au numro du slot d'outil dans le carrousel. - L'outil ne sera appel et chang que quand un -\family typewriter -M6 -\family default - sera programm (voir la section -\begin_inset LatexCommand \ref{sub:M6:-Appel-d'outil} - -\end_inset - -). - Le mot T peut apparaitre sur la mme ligne que le -\family typewriter -M6 -\family default - ou sur une ligne prcdente. - Il est permis, mais normalement inutile, qu'un mot T apparaisse plus - de deux lignes avant, sans changement d'outil. - Le carrousel peut bouger, seulement le plus rcent mot T ne prendra effet - qu'au prochain changement d'outil. - Il est permis de programmer -\family typewriter -T0 -\family default -, aucun outil ne sera slectionn. - C'est utile pour avoir la broche vide. - C'est une erreur si: -\layout Itemize - -Un valeur ngative de T est utilise. - -\layout Itemize - -Une valeur de T suprieure au nombre de slot d'outils dans le carrousel - est utilise. -\layout Standard - -Sur certaines machines, le carrousel se dplace lorsque le mot T est programm, - avec l'usinage en cours. - Sur ces machines, programmer T plusieurs lignes de texte avant le changement - d'outil permet de gagner du temps. - Une pratique de programmation courante pour ces types de machines, consiste - placer le mot T pour le prochain outil sur la ligne suivant le changement - d'outil. - Cela laisse au carrousel tout le temps pour se positionner. -\layout Chapter - -Diffrences entre le g-code d'EMC2 et le RS274NGC -\layout Section - -Diffrences changeant la signification d'un programme correctement crit - en RS274NGC -\layout Subsection - -Position aprs un changement d'outil -\layout Standard - -Dans EMC2, la machine ne revient pas sa position initiale aprs un changement - d'outil. - Ce choix a t fait parce que le nouvel outil pourrait tre plus long que - l'ancien, rendant le retour de la machine sa position initiale, impossible - sans heurter la pice. -\layout Subsection - -Les dcalages sont dans les units du fichier ini -\layout Standard - -Dans EMC2, les valeurs stockes dans les paramtres des points d'origine - G28 et G30, des systmes de coordonnes P1\SpecialChar \ldots{} -P9 et du dcalage G92 sont dans - les units dfinies dans le fichier ini. - Cette diffrence existe parce que, sinon, la signification d'un emplacement - changeait selon que G20 ou G21 tait actif lorsque G28, G30, G10, L2, ou - G92.3 tait programm. -\layout Subsection - -Les longueurs/diamtres de la table d'outils sont dans les units du fichier - ini -\layout Standard - -Dans EMC2, les longueurs (compensation) et diamtres de la table d'outils - sont seulement dans les units du fichier ini. - Cette diffrence existe parce que autrement, la longueur d'un outil et - son diamtre aurait chang selon que G20 ou G21 aurait t actif dans les - modes G43, G41, G42. - Ce qui aurait rendu impossible, sans modification de la table d'outils, - l'excution de g-code avec la machine en units non natives, mme pour - un g-code bien crit (ligne en dbut avec G20 ou G21 et mmes units tout - au long du programme). -\layout Subsection - -G84, G87 non implments -\layout Standard - -G84 et G87 ne sont pas actuellement implments, mais serons peut tre ajouts - de futures versions d'EMC2. -\layout Subsection - -G28, G30 avec des mots d'axes -\layout Standard - -Quand -\family typewriter -G28 -\family default - ou -\family typewriter -G30 -\family default - est programm avec un mot d'axe prsent, EMC2 dplace cet axe seul. - Il est commun sur les autres contrles machine. - Pour dplacer certains axes vers un point intermdiaire puis les dplacer - tous vers un point pr-dfini, crire deux lignes de gcode: -\layout LyX-Code - -G0 X- Y- (Les axes se dplacent vers le point intermdiaire) -\newline -G28 (Les axes se dplacent vers leurs origines) -\layout Subsection - -M62, M63 non implments -\layout Standard - -M62 et M63 ne sont pas encore implments, mais serons peut tre ajouts - de futures versions d'EMC2. -\layout Subsection - -G0 rduit les longs mouvements angulaires pour les rendre infrieurs un - tour -\layout Standard - -Comme dcrit prcdemment, G0 rduit les mouvements angulaires moins d'un - tour. - Ce qui peut produire des trajectoires diffrentes de celles produites avec - RS274NGC. -\layout Section - -Diffrences ne changeant pas la signification des programmes bien crits - en RS274NGC -\layout Subsection - -G33, G76 codes de taraudage -\layout Standard - -Ces codes ne sont pas dfinis dans RS274NGC. -\layout Subsection - -G38.2 -\layout Standard - -La pointe du palpeur n'est pas rtracte aprs un mouvement G38.2. - Ce mouvement de retrait sera peut tre ajout dans de futures versions - d'EMC2. -\layout Subsection - -G38.3\SpecialChar \ldots{} -G38.5 -\layout Standard - -Ces codes ne sont pas dfinis dans RS274NGC -\layout Subsection - -O-codes -\layout Standard - -Ces codes ne sont pas dfinis dans RS274NGC -\layout Subsection - -M50\SpecialChar \ldots{} -M53 survitesses -\layout Standard - -Ces codes ne sont pas dfinis dans RS274NGC -\layout Subsection - -M61\SpecialChar \ldots{} -M66 -\layout Standard - -Ces codes ne sont pas dfinis dans RS274NGC -\layout Subsection - -G43, G43.1 -\layout Subsubsection - -Longueurs d'outil ngatives -\layout Standard - -Les spcifications du RS274NGC disent -\begin_inset Quotes eld -\end_inset - -il est prvu que -\begin_inset Quotes erd -\end_inset - - toutes les longueurs d'outils soient positives. - Toutefois, G43 fonctionne aussi avec des longueurs d'outils ngatives. -\layout Subsubsection - -Outils de tour -\layout Standard - -La compensation de longueur d'outil G43 peut dcaler l'outil dans les deux - dimensions X et Z. - Cette fonctionnalit est trs utile sur les tours. -\layout Subsubsection - -Longueurs d'outil dynamiques -\layout Standard - -EMC2 permet la spcification d'une longueur d'outil calcule par -\family typewriter -G43.1 I K. -\layout Subsection - -G41.1, G42.1 -\layout Standard - -EMC2 permet la spcification dans le gcode d'un diamtre d'outil et sur - un tour, de son orientation. - Le format est -\family typewriter -G41.1/G42.1 D- L -\family default --, o -\family typewriter -D -\family default - est le diamtre et -\family typewriter -L -\family default - (si spcifi) est l'orientation de l'outil de tour. -\layout Subsection - -G43 sans mot H -\layout Standard - -Dans ngc, cela n'est pas permis. - Dans EMC2, il rgle la cote de longueur du dcalage pour l'outil courant. - Si aucun outil n'est charg actuellement, c'est une erreur. - Cette diffrence a t apporte pour que l'utilisateur n'ait pas spcifier - le numro d'outil deux endroits pour chaque changement d'outil et parce - que c'est plus cohrent avec la manire de travailler de G -\family typewriter -41/G42 -\family default - quand le mot D n'est pas spcifi. -\layout Subsection - -Axes U, V et W -\layout Standard - -EMC2 gre des machines avec un maximum de 9 axes en dfinissant un jeu supplmen -taire de 3 axes linaires nomms U, V et W. -\the_end diff --git a/docs/src/gcode/mill_canned.lyx b/docs/src/gcode/mill_canned.lyx deleted file mode 100644 index eaa04f805..000000000 --- a/docs/src/gcode/mill_canned.lyx +++ /dev/null @@ -1,1245 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language english -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize Default -\paperpackage a4wide -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Canned Cycles -\begin_inset LatexCommand \index{Canned Cycles} - -\end_inset - - -\layout Standard - - -\begin_inset Note -collapsed false - -\layout Standard - -graphics need to be unsucked and mini pages replaced as it makes the graphics - too small to read -\end_inset - - -\layout Standard - -Canned Cycles G81 through G89 have been implemented for milling. - This section describes how each cycle has been implemented. - In addition G80 and G98/G99 are considered here because their primary use - is related to canned cycles. -\layout Standard - -All canned cycles are performed with respect to the XY plane. - With the current 3 axis interpreter, no A, B, C-axis motion is allowed - during canned cycles. - Inverse time feed rate is not allowed with cutter radius compensation. - Each of the canned cycles defines a new machine motion mode. - As a motion mode, they will stay in effect until replaced by another motion - G word or by G80 as described below. -\layout Standard - -All canned cycles use X, Y, R, and Z values in the NC code. - These values are used to determine X, Y, R, and Z positions. - The R (usually meaning retract) position is along the Z-axis. - Some canned cycles use additional arguments that are listed with the specific - cycle. -\layout Standard - -In absolute distance mode, the X, Y, R, and Z values are absolute positions - in the current coordinate system. - In incremental distance mode, X, Y, and R values are treated as increments - to the current position and Z as an increment from the Z-axis position - before the move involving Z takes place. -\layout Standard - -A repeat feature has been implemented. - The L word represents the number of repeats. - If the repeat feature is used, it is normally used in incremental distance - mode, so that the same sequence of motions is repeated in several equally - spaced places along a straight line. - EMC allows L > 1 in absolute distance mode to mean "do the same cycle in - the same place several times." Omitting the L value is equivalent to specifying - L=1. - -\layout Standard - -When L>1 in incremental mode, the X and Y positions are determined by adding - the given X and Y values either to the current X and Y positions (on the - first go-around) or to the X and Y positions at the end of the previous - go-around (on the second and successive go-arounds). - The R and Z positions do not change during the repeats. -\layout Standard - -The number of repeats of a canned cycle only works for in the block containing - L word. - If you want to repeat a canned cycle using the repeat feature by placing - a new L word on each line for which you want repeats. -\layout Standard - -The height of the retract move at the end of each repeat (called "clear - Z" in the descriptions below) is determined by the setting of the retract_mode: - either to the original Z position (if that is above the R position and - the retract_mode is G98, OLD_Z), or otherwise to the R position. - (See G98/G99 below) -\layout Section - -Preliminary Motion -\layout Standard - -Preliminary motion may be confusing on first read. - It should come clear as you work through the examples in G80 and G81 below. - Preliminary motion is a set of motions that is common to all of the milling - canned cycles. - These motions are computed at the time the canned cycle block is encountered - by the interpreter. - They move the tool into the proper location for the execution of the canned - cycle itself. -\layout Standard - -These motions will be different depending on whether the canned cycle is - to be executed using absolute distances or incremental distances. - These motions will also be affected by the initial position of the z axis - when the canned cycle block is encountered in a program. -\layout Standard - -If the current Z position is below the R position, the Z axis is traversed - to the R position. - This happens only once, regardless of the value of L. -\layout Standard - -In addition, for each repeat as specified by L, one or two moves are made - before the rest of the cycle: 1. - a straight traverse parallel to the XY-plane to the given XY-position 2. - a straight traverse of the Z-axis only to the R position, if it is not - already at the R position. -\layout Section - -G80 -\begin_inset LatexCommand \index{G80} - -\end_inset - - -\layout Standard - -G80 turns off all motion. - You should think of it as the off position on a rotary switch where the - other positions are the different possible motion modes. - In the EMC interpreter, G80 is one of the modal codes so any other code - will replace it. - The result of the following lines of code is the same. -\layout Quote - -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -\newline -G80 (turn off canned cycle motion) -\newline -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) -\layout Standard - -produces the same final position and machine state as -\layout Quote - -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -\newline -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) -\layout Standard - -The advantage of the first set is that, the G80 line clearly turns off the - G81 canned cycle. - With the first set of blocks, the programmer must turn motion back on with - G0, as is done in the next line, or any other motion mode G word. - -\layout Standard - -Example 1 - Use of a canned cycle as a modal motion code -\layout Standard - -If a canned cycle is not turned off with G80 or another motion word, the - canned cycle will attempt to repeat itself using the next block of code - that contains an X, Y, or Z word. - The following file drills (G81) a set of eight holes as shown. - (note the z position change after the first four holes.) -\layout Quote - -G90 G0 X0 Y0 Z0 (coordinate home) -\newline -G1 X0 G4 P0.1 -\newline -G81 X1 Y0 Z0 R1 (canned drill cycle) -\newline -X2 -\newline -X3 -\newline -X4 -\newline -Y1 Z0.5 -\newline -X3 -\newline -X2 -\newline -X1 -\newline -G80 (turn off canned cycle) -\newline -G0 X0 (rapid home moves) -\newline -Y0 -\newline -Z0 -\newline -M2 (program end) -\layout Quote - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -G81 Cycle -\begin_inset LatexCommand \label{cap:G81-Cycle} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/G81mult.png - -\end_inset - - -\end_inset - - -\layout Standard - -The use of G80 in line n200 is optional because the G0 on the next line - will turn off the G81 cycle. - But using the G80. - as example 1 shows, will provide for an easily readable canned cycle. - Without it, it is not so obvious that all of the blocks between N120 and - N200 belong to the canned cycle. -\layout Standard - -If you use G80 and do not set another modal motion code soon after, you - may get one of the following error messages. -\layout Quote - -Cannot use axis commands with G80 -\newline -Coordinate setting given with G80 -\layout Standard - -These should serve as a reminder that you need to write in a new motion - word. -\layout Section - -G81 -\begin_inset LatexCommand \index{G81} - -\end_inset - - -\layout Standard - -The G81 cycle is intended for drilling. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -2. - Retract the Z-axis at traverse rate to clear Z. - This cycle was used in the description of G80 above but is explained in - detail here. -\layout Standard - -Example 2 - Absolute Position G81 -\layout Standard - -Suppose the current position is (1, 2, 3) and the following line of NC code - is interpreted. -\layout Standard - -G90 G81 G98 X4 Y5 Z1.5 R2.8 -\layout Standard - -This calls for absolute distance mode (G90) and OLD_Z retract mode (G98) - and calls for the G81 drilling cycle to be performed once. - The X value and X position are 4. - The Y value and Y position are 5. - The Z value and Z position are 1.5. - The R value and clear Z are 2.8. - OLD_Z is 3. - -\layout Standard - -The following moves take place. - -\layout Standard - -1. - a traverse parallel to the XY plane to (4,5,3) -\layout Standard - -2. - a traverse parallel to the Z-axis to (4,5,2.8). - -\layout Standard - -3. - a feed parallel to the Z-axis to (4,5,1.5) -\layout Standard - -4. - a traverse parallel to the Z-axis to (4,5,3) -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G81ex1.png - -\end_inset - - -\layout Standard - -Example 2 - Absolute Position G81 -\layout Standard - -Suppose the current position is (1, 2, 3) and the following line of NC code - is interpreted. - -\layout Standard - -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\layout Standard - -This calls for incremental distance mode (G91) and OLD_Z retract mode (G98). - It also calls for the G81 drilling cycle to be repeated three times. - The X value is 4, the Y value is 5, the Z value is -0.6 and the R value - is 1.8. - The initial X position is 5 (=1+4), the initial Y position is 7 (=2+5), - the clear Z position is 4.8 (=1.8+3), and the Z position is 4.2 (=4.8-0.6). - OLD_Z is 3. -\layout Standard - -The first preliminary move is a traverse along the Z axis to (1,2,4.8), since - OLD_Z < clear Z. -\layout Standard - -The first repeat consists of 3 moves. -\layout Standard - -1. - a traverse parallel to the XY-plane to (5,7,4.8) -\layout Standard - -2. - a feed parallel to the Z-axis to (5,7, 4.2) -\layout Standard - -3. - a traverse parallel to the Z-axis to (5,7,4.8) The second repeat consists - of 3 moves. - The X position is reset to 9 (=5+4) and the Y position to 12 (=7+5). -\layout Standard - -1. - a traverse parallel to the XY-plane to (9,12,4.8) -\layout Standard - -2. - a feed parallel to the Z-axis to (9,12, 4.2) -\layout Standard - -3. - a traverse parallel to the Z-axis to (9,12,4.8) The third repeat consists - of 3 moves. - The X position is reset to 13 (=9+4) and the Y position to 17 (=12+5). -\layout Standard - -1. - a traverse parallel to the XY-plane to (13,17,4.8) -\layout Standard - -2. - a feed parallel to the Z-axis to (13,17, 4.2) -\layout Standard - -3. - a traverse parallel to the Z-axis to (13,17,4.8) -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G81ex2.png - -\end_inset - - -\layout Standard - -Example 3 - Relative Position G81 -\layout Standard - -Now suppose that you execute the first g81 block of code but from (0, 0, - 0) rather than from (1, 2, 3). - -\layout Standard - -G90 G81 G98 X4 Y5 Z1.5 R2.8 Since OLD_Z is below the R value, it adds nothing - for the motion but since the initial value of Z is less than the value - specified in R, there will be an initial Z move during the preliminary - moves. - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G81.png - -\end_inset - - -\layout Standard - -Example 4 - Absolute G81 R > Z -\layout Standard - -This is a plot of the path of motion for the second g81 block of code. -\layout Standard - -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\layout Standard - -Since this plot starts with (0, 0, 0), the interpreter adds the initial - Z 0 and R 1.8 and rapids to that location. - After that initial z move, the repeat feature works the same as it did - in example 3 with the final z depth being 0.6 below the R value. -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G81a.png - -\end_inset - - -\layout Standard - -Example 5 - Relative position R > Z -\layout Section - -G82 -\begin_inset LatexCommand \index{G82} - -\end_inset - - -\layout Standard - -The G82 cycle is intended for drilling. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -2. - Dwell for the given number of seconds. -\layout Standard - -3. - Retract the Z-axis at traverse rate to clear Z. - The motion of a G82 canned cycle looks just like g81 with the addition - of a dwell at the bottom of the Z move. - The length of the dwell is specified by a p# word in the g82 block. -\layout Standard - -G90 G82 G98 X4 Y5 Z1.5 R2.8 P2 -\layout Standard - -Would be equivalent to example 2 above with a dwell added at the bottom - of the hole. -\layout Section - -G83 -\begin_inset LatexCommand \index{G83} - -\end_inset - - -\layout Standard - -The G83 cycle is intended for deep drilling or milling with chip breaking. - The dwell in this cycle causes any long stringers (which are common when - drilling in aluminum) to be cut off. - This cycle takes a Q value which represents a "delta" increment along the - Z-axis. - Machinists often refer to this as peck drilling. - -\layout Standard - -0. - Preliminary motion, as described above. - -\layout Standard - -1. - Move the Z-axis only at the current feed rate downward by delta or to the - Z position, whichever is less deep. - -\layout Standard - -2. - Dwell for 0.25 second. - -\layout Standard - -3. - Retract at traverse rate to clear Z -\layout Standard - -4. - Repeat steps 1 - 3 until the Z position is reached. - -\layout Standard - -5. - Retract the Z-axis at traverse rate to clear Z. -\layout Standard - -NIST lists the elements of the command as G83 X- Y- Z- A- B- C- R- L- Q- - -\layout Standard - -I find this command very handy for many of my deep drilling projects. - I have not tried to use the L for a repeat so can't say much about that - feature. - A typical g83 line that I would write might look like G83 X0.285 Y0.00 Z-0.500 - R0.2 L1 Q0.05. - EMC moves to position X0.285 Y0.00 at the z height before the block. - It then pecks its way down to Z-0.500. - Each peck pulls the drill tip up to R0.2 after moving Q0.05. -\layout Section - -G84 -\begin_inset LatexCommand \index{G84} - -\end_inset - - -\layout Standard - -The G84 cycle is intended for right-hand tapping. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Start speed-feed synchronization. -\layout Standard - -2. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -3. - Stop the spindle. -\layout Standard - -4. - Start the spindle counterclockwise. -\layout Standard - -5. - Retract the Z-axis at the current feed rate to clear Z. -\layout Standard - -6. - If speed-feed synch was not on before the cycle started, stop it. -\layout Standard - -7. - Stop the spindle. -\layout Standard - -8. - Start the spindle clockwise. -\layout Section - -G85 -\begin_inset LatexCommand \index{G85} - -\end_inset - - -\layout Standard - -The G85 cycle is intended for boring or reaming. - -\layout Standard - -0. - Preliminary motion, as described above. - -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. - -\layout Standard - -2. - Retract the Z-axis at the current feed rate to clear Z. - This motion is very similar to g81 except that the tool is retracted from - the hole at feed rate rather than rapid. -\layout Section - -G86 -\begin_inset LatexCommand \index{G86} - -\end_inset - - -\layout Standard - -The G86 cycle is intended for boring. - -\layout Standard - -0. - Preliminary motion, as described above. - -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. - -\layout Standard - -2. - Dwell for the given number of seconds. - -\layout Standard - -3. - Stop the spindle turning. - -\layout Standard - -4. - Retract the Z-axis at traverse rate to clear Z. - -\layout Standard - -5. - Restart the spindle in the direction it was going. - This cycle is very similar to g82 except that it stops the spindle before - it retracts the tool and restarts the spindle when it reaches the clearance - value R. -\layout Section - -G87 -\begin_inset LatexCommand \index{G87} - -\end_inset - - -\layout Standard - -The G87 cycle is intended for back boring. - -\layout Standard - -The situation is that you have a through hole and you want to counter bore - the bottom of hole. - To do this you put an L-shaped tool in the spindle with a cutting surface - on the UPPER side of its base. - You stick it carefully through the hole when it is not spinning and is - oriented so it fits through the hole, then you move it so the stem of the - L is on the axis of the hole, start the spindle, and feed the tool upward - to make the counter bore. - Then you stop the tool, get it out of the hole, and restart it. - -\layout Standard - -This cycle uses I and J values to indicate the position for inserting and - removing the tool. - I and J will always be increments from the X position and the Y position, - regardless of the distance mode setting. - This cycle also uses a K value to specify the position along the Z-axis - of the top of counterbore. - The K value is an absolute Z-value in absolute distance mode, and an increment - (from the Z position) in incremental distance mode. - -\layout Standard - -0. - Preliminary motion, as described above. - -\layout Standard - -1. - Move at traverse rate parallel to the XY-plane to the point indicated by - I and J. - -\layout Standard - -2. - Stop the spindle in a specific orientation. - -\layout Standard - -3. - Move the Z-axis only at traverse rate downward to the Z position. - -\layout Standard - -4. - Move at traverse rate parallel to the XY-plane to the X,Y location. - -\layout Standard - -5. - Start the spindle in the direction it was going before. - -\layout Standard - -6. - Move the Z-axis only at the given feed rate upward to the position indicated - by K. - -\layout Standard - -7. - Move the Z-axis only at the given feed rate back down to the Z position. - -\layout Standard - -8. - Stop the spindle in the same orientation as before. - -\layout Standard - -9. - Move at traverse rate parallel to the XY-plane to the point indicated by - I and J. - -\layout Standard - -10. - Move the Z-axis only at traverse rate to the clear Z. - -\layout Standard - -11. - Move at traverse rate parallel to the XY-plane to the specified X,Y location. - -\layout Standard - -12. - Restart the spindle in the direction it was going before. -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G87pre.png - -\end_inset - - -\layout Standard - -Example 6 - Backbore -\layout Standard - -Example six uses a incremental distances from (0, 0, 0) so the preliminary - moves look much like those in example five but they are done using the - G87 backbore canned cycle. -\layout Standard - -G91 G87 M3 S1000 X1 Y1 Z-0.4 R1.4 I-0.1 J-0.1 K-0.1 -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "60col%" -collapsed false - -\layout Standard - -You will notice that the preliminary moves shift the tool to directly above - the center axis of the existing bore. -\layout Standard - -Next it increments that location by the I and J values. - I offsets X with a plus value being added to the current X. - J does the same for the Y axis. - -\layout Standard - -For our example block both I and J are negative so they move back from the - hole axis along the path just made by the tool. - The amount of offset required should be just enough that the tool tip will - slide down through the bore. -\end_inset - - -\hfill - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "40col%" -collapsed false - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G87s1.png - width 2in - -\end_inset - - -\end_inset - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "60col%" -collapsed false - -\layout Standard - -Next the canned cycle moves the tool down in z and at the bottom location - represented in the block by the Z 0.4 value it moves the tool back to the - center of the bore. -\end_inset - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "40col%" -collapsed false - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G87s5.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -Now the g87 canned cycle turns the spindle on and moves back up into the - bore at the programmed feed rate. - This is the real cutting action of this canned cycle. - With the proper tool in a boring bar this cycle will produce a chamfer - on the bottom side of the bore. - G87 can also be used to produce a larger diameter bore on the bottom side - of the bore. - -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "60col%" -collapsed false - -\layout Standard - -When the tool has reached the K position it is returned to the bottom location, - the spindle is stopped and oriented and follows the earlier path back out - of the bore to the initial position above. - -\end_inset - - -\hfill - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "40col%" -collapsed false - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename G87s12.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -This canned cycle assumes spindle orientation which has not been implemented - in the EMC to date. - The proper alignment of the tool tip to the oriented spindle is critical - to the successful insertion of the tool through the hole to be backbored. -\layout Section - -G88 -\begin_inset LatexCommand \index{G88} - -\end_inset - - -\layout Standard - -The G88 cycle is intended for boring. - This cycle uses a P value, where P specifies the number of seconds to dwell. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -2. - Dwell for the given number of seconds. -\layout Standard - -3. - Stop the spindle turning. -\layout Standard - -4. - Stop the program so the operator can retract the spindle manually. -\layout Standard - -5. - Restart the spindle in the direction it was going. - It is unclear how the operator is to manually move the tool because a change - to manual mode resets the program to the top. - We will attempt to clarify that step in this procedure. -\layout Section - -G89 -\begin_inset LatexCommand \index{G89} - -\end_inset - - -\layout Standard - -The G89 cycle is intended for boring. - This cycle uses a P value, where P specifies the number of seconds to dwell. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -2. - Dwell for the given number of seconds. -\layout Standard - -3. - Retract the Z-axis at the current feed rate to clear Z. - This cycle is like G82 except that the tool is drawn back at feed rate - rather than rapid. -\layout Section - -G98 -\begin_inset LatexCommand \index{G98} - -\end_inset - - -\layout Standard - -Program a G98 and the canned cycle will use the Z position prior to the - canned cycle as the Z return position if it is higher than the R value - specified in the cycle. - If it is lower then the R value will be used. - The R word has different meanings in absolute distance mode and incremental - distance mode. -\layout Standard - -Example -\layout Standard - -G0 X1 Y2 Z3 -\layout Standard - -G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10 -\layout Standard - -The G98 to the second line above means that the return move will be to the - value of Z in the first line since it is higher that the R value specified. - -\layout Section - -G99 -\begin_inset LatexCommand \index{G99} - -\end_inset - - -\layout Standard - -Program a G99 and the canned cycle will use the R value as the Z return - position. - -\layout Section - -G91 with G98-99 -\begin_inset LatexCommand \index{G91 with G98-99} - -\end_inset - - -\layout Standard - - -\begin_inset Note -collapsed false - -\layout Standard - -need a diagram or something to clear this up also compare with 2.2.x -\end_inset - - -\layout Standard - -Neither G98 or G99 will have any affect when in incremental distance mode - (G91) and a positive R value is specified because the R value is added - to OLD_Z and that result is used as the initial level for a G98. - The same value is the computed R value so G99 will also return to the same - place. - When the value of R is less than OLD_Z and incremental distance mode is - turned on, G99 will retract the tool to OLD_Z plus the negative R value. - The return will be below OLD_Z. -\layout Section - -Why use a canned cycle? -\layout Standard - -There are at least two reasons for using canned cycles. - The first is the economy of code. - A single bore would take several lines of code to execute. -\layout Standard - -Example 1 above demonstrated how a canned cycle could be used to produce - 8 holes with ten lines of nc code within the canned cycle mode. - The program below will produce the same set of 8 holes using five lines - for the canned cycle. - It does not follow exactly the same path nor does it drill in the same - order as the earlier example. - But the program writing economy of a good canned cycle should be obvious. - -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "60col%" -collapsed false - -\layout Standard -\align left -Example 7 - Eight Holes Revisited -\layout Standard -\align left -G90 G0 X0 Y0 Z0 (move coordinate home) -\layout Standard -\align left -G1 f10 X0 G4 P0.1 -\layout Standard -\align left -G91 G81 X1 Y0 Z-1 R1 l4(canned drill cycle) -\layout Standard -\align left -G90 G0 X0 Y1 -\layout Standard -\align left -Z0 -\layout Standard -\align left -G91 G81 X1 Y0 Z-.5 R1 l4(canned drill cycle) -\layout Standard -\align left -G80 (turn off canned cycle) -\layout Standard -\align left -M2 (program end) -\end_inset - - -\hfill - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "40col%" -collapsed false - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename Eight.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -Example 8 - Twelve holes in a square -\layout Standard - -This example demonstrates the use of the L word to repeat a set of incremental - drill cycles for successive blocks of code within the same G81 motion mode. - Here we produce 12 holes using five lines of code in the canned motion - mode. - -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "60col%" -collapsed false - -\layout Standard - -G90 G0 X0 Y0 Z0 (move coordinate home) -\newline -G1 F50 X0 G4 P0.1 -\newline -G91 G81 X1 Y0 Z-0.5 R1 L4 (canned drill cycle) -\newline -X0 Y1 R0 L3 (repeat) -\newline -X-1 Y0 L3 (repeat) -\newline -X0 Y-1 L2 (repeat) -\newline -G80 (turn off canned cycle) -\newline -G90 G0 X0 (rapid home) -\newline -Y0 -\newline -Z0 -\newline -M2 (program end) -\end_inset - - -\hfill - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "40col%" -collapsed false - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align center - -\begin_inset Graphics - filename Twelve.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -The second reason to use a canned cycle is that they all produce preliminary - moves and returns that you can anticipate and control regardless of the - start point of the canned cycle. -\the_end diff --git a/docs/src/gcode/mill_canned_fr.lyx b/docs/src/gcode/mill_canned_fr.lyx deleted file mode 100644 index 1b22c8e63..000000000 --- a/docs/src/gcode/mill_canned_fr.lyx +++ /dev/null @@ -1,1419 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble - -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Cycles prprogramms -\layout Standard - -Les cycles prprogramms G81 G89 sont implments comme dcrit dans cette - section. - -\layout Standard - -Tous les cycles prprogramms sont effectus dans le respect du plan de - travail courant. - N'importe lequel des trois plans de travail XY, YZ, ZX peut tre choisi. - Dans cette section, la plupart des descriptions supposeront que le plan - de travail XY est le plan courant. - Le comportement reste analogue pour les plans de travail YZ ou XZ. -\layout Standard - -Les mots d'axes rotatifs sont autoriss (sous conditions) dans les cycles - prprogramms, mais il est prfrable de les omettre. - Si les mots d'axes rotatifs sont utiliss, leurs valeurs doivent rester - les mmes que celles de la position courante, de sorte qu'ils ne tournent - pas. -\layout Standard - -Tous les cycles prprogramms utilisent X-, Y-, R-, et Z- dans le code NC. - Ces valeurs sont utilises pour dterminer les positions de X, Y, R, et - Z. - La position de R- (signifiant rtraction) est perpendiculaire au plan de - travail courant (axe Z pour le plan XY, axe X pour le plan YZ, axe Y pour - le plan XZ). - Quelques cycles prprogramms utilisent des arguments supplmentaires. -\layout Standard - -Dans les cycles prprogramms, un nombre est appel -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - - (collant) si, quand le mme cycle est rpt sur plusieurs lignes de code - en colonne, le nombre doit tre indiqu la premire fois, mais qu'il devient - optionnel pour le reste des lignes suivantes. - Les nombres -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - - conservent leur valeur tant qu'ils ne sont pas explicitement programms - avec une nouvelle valeur. - La valeur de R- est toujours -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - -. -\layout Standard - -En mode de dplacements incrmentaux (G91): quand le plan courant est XY, - les valeurs X-, Y-, est R- sont traites comme incrmentales partir de - la position courante et Z- comme un incrment depuis la position prcdent - le mouvement impliquant l'axe Z. - Quand le plan YZ ou XZ est le plan courant, le traitement des mots d'axes - est analogue. - En mode de dplacements absolus, les valeurs de X-, Y-, R-, et Z- sont - des positions absolues dans le systme de coordonnes courant. -\layout Standard - -La valeur L- est optionnelle, elle reprsente le nombre de rptitions. - L=0 n'est pas permis. - Si les rptitions sont utilises, elles le sont normalement en mode de - dplacements incrmentaux, de sorte que la mme squence de mouvements - puisse tre rpte plusieurs endroits, galements espacs, le long d'un - ligne droite. - En mode de dplacements absolus, L>1 signifie -\begin_inset Quotes eld -\end_inset - -faire le mme cycle au mme endroit, plusieurs fois -\begin_inset Quotes erd -\end_inset - -. - L'omission du mot L revient spcifier L=1. - La valeur de L- n'est pas -\begin_inset Quotes eld -\end_inset - -sticky -\begin_inset Quotes erd -\end_inset - -. -\layout Standard - -Avec L>1 en mode incrmental et XY comme plan courant, les positions X et - Y sont dtermines en ajoutant les valeurs X- et Y- de la commande celles - de la position courante, pour le premier trajet ou, ensuite, celles de - la position finale du prcdent trajet, pour les rptitions. - Les valeurs de R- et de Z- ne changent pas durant toutes les rptitions. -\layout Standard - -La hauteur du mouvement de retrait la fin de chaque rptition (appelle - -\begin_inset Quotes eld -\end_inset - -plan de retrait -\begin_inset Quotes erd -\end_inset - - dans les descriptions suivantes) est dtermine par le passage en mode: - retrait sur la position initiale de Z, si elle est au dessus de la valeur - de R- et que le mode de retrait est G98, OLD_Z, sinon, la position de - R-. -\layout Section - -Mouvement prliminaire -\layout Standard - -Tout au dbut de l'excution d'un cycle prprogramm, avec le plan courant - XY, si la position actuelle de Z est en dessous de la position de retrait - R, l'axe Z va la position R. - Ceci n'arrive qu'une fois, sans tenir compte de la valeur de L. -\layout Standard - -En plus, au dbut du premier cycle et chaque rptition, un ou deux des - mouvements suivants sont faits: -\layout Standard - -1. - Un dplacement en ligne droite, parallle au plan XY, vers le position - programme. - 2. - Un dplacement en ligne droite, de l'axe Z seul vers la position de retrait - R, si il n'est pas dj cette position R. - -\layout Standard - -Si un des plans XZ ou YZ est actif, le mouvement prliminaire et intermdiaire - est analogue. - -\layout Section - -G80 Rvocation des codes modaux -\layout Standard - -G80 -\begin_inset LatexCommand \index{G80} - -\end_inset - - Programmer G80 pour s'assurer qu'aucun mouvement d'axe ne surviendra sans - G-code modal. - -\layout Standard - -Dans l'interprteur d'EMC, G80 est un code modal rvoqu par tout autre - g-code. - Les rsultats des lignes suivantes sont identiques: -\layout Standard - - -\family typewriter -\size scriptsize -G90 G81 X1 Y1 Z1.5 R2.8 (cycle prprogramm en mode de dplacements absolus) -\newline -G80 (rvoque G81) -\newline -G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et dplace le mobile - en X0, Y0 et Z0) -\layout Standard - -produit le mme dplacement et le mme tat final de la machine que: -\layout Standard - - -\family typewriter -\size scriptsize -G90 G81 X1 Y1 Z1.5 R2.8 (cycle prprogramm en mode de dplacements absolus) - -\newline -G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et dplace le mobile - en X0, Y0 et Z0) -\layout Standard - -L'avantage du premier, la ligne du G80 rvoque clairement le cycle G81. - Avec ce premier programme, le programmeur doit revenir en mode mouvement - avec G0, comme c'est fait sur la ligne suivante, ou tout autre mot G de - mouvement. - -\layout Standard - -Exemple 0: Utilisation d'un cycle prprogramm avec un code de mouvement - modal -\layout Standard - -Si un cycle prprogramm n'est pas rvoqu avec G80 ou un autre mot G de - mouvement, le cycle prprogramm attend de se rpter en utilisant le prochaine - ligne de code contenant un (ou plusieurs) mot d'axe X, Y ou Z. - Le fichier suivant perce (G81) un ensemble de huit trous. - Noter la position de Z change aprs les quatre premiers trous. - -\layout Standard -\noindent \align left - -\begin_inset Minipage -position 0 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard -\align left - -\family typewriter -\size scriptsize -G90 G0 X0 Y0 Z0 (coordonnes d'origine) -\newline -G1 X0 G4 P0.1 -\newline -G81 X1 Y0 Z0 R1 (cycle de perage) -\newline -X2 -\layout Standard -\align left - -\family typewriter -\size scriptsize -X3 -\newline -X4 -\newline -Y1 Z0.5 -\newline -X3 -\newline -X2 -\newline -X1 -\newline -G80 (rvocation du cycle G81) -\newline -G0 X0 (mouvement en vitesse rapide) -\newline -Y0 -\newline -Z0 -\newline -M2 (fin du programme) -\end_inset - - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename images/G81mult.png - width 2.5in - -\end_inset - - -\end_inset - - -\layout Standard - -L'utilisation de G80 la ligne N200 est optionnel puisqu'il y a un G0 sur - la ligne suivante qui rvoque le cycle G81. - Mais utiliser G80, comme l'exemple 1 le montre, donne une meilleure lisibilit - au code du cycle prprogramm. - Sans lui, il est moins vident que les lignes entre N120 et N200 appartiennent - au cycle G81. -\layout Standard - -Si vous utilisez G80 et que vous ne placez pas un code de mouvement modal - juste derrire vous pourrez avoir un de ces messages: -\layout Quote - - -\family typewriter -\size footnotesize -Cannot use axis commands with G80 -\newline -Coordinate setting given with G80 -\layout Standard - -Ils servent vous rappeler que vous devez crire un nouveau mot de mouvement. -\layout Section - -Cycle G81 -\layout Standard - -Le cycle G81 -\begin_inset LatexCommand \index{G81} - -\end_inset - - est destin au perage. -\layout Standard - -0. - Un mouvement prliminaire, comme il a t trait ci-dessus. -\layout Standard - -1. - Un dplacement de l'axe Z seul la vitesse programme, vers la position - Z programme. -\layout Standard - -2. - Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. - -\layout Standard - -Exemple 1: G81 en position absolue -\layout Standard - -Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la - ligne de codes suivante est interprte: -\layout Standard - -G90 G81 G98 X4 Y5 Z1.5 R2.8 -\layout Standard - -Le mode de dplacements absolus est appel (G90), le plan de retrait est - positionn sur OLD_Z (G98), l'appel du cycle de perage G81 va lancer ce - cycle une fois. - La position X deviendra celle demande, X4. - La position de Y deviendra celle demande, Y5. - La position de Z deviendra celle demande, Z1.5. - La valeur de R fixe le plan de retrait de Z 2.8. - La valeur de OLD_Z est 3. - Les mouvements suivants vont se produire: -\layout Standard - -1. - Un mouvement en vitesse rapide, parallle au plan XY vers X4, Y5, Z3 -\layout Standard - -2. - Un mouvement en vitesse rapide, parallle l'axe Z vers X4, Y5, Z2.8 -\layout Standard - -3. - Un mouvement en vitesse travail, parallle l'axe Z vers X4, Y5, Z1.5 -\layout Standard -\added_space_bottom 0.3cm -4. - Un mouvement en vitesse rapide, parallle l'axe Z vers X4, Y5, Z3 -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81ex1.png - -\end_inset - - -\end_inset - - -\layout Standard - -Exemple 2: Supposons que la position courante soit, X1, Y2, Z3 dans le plan - XY, la ligne de codes suivante est interprte: -\layout Standard - -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\layout Standard - -Le mode de dplacements incrmentaux est appel (G91), le plan de retrait - est positionn sur OLD_Z (G98), l'appel du cycle de perage G81 demande - 3 rptitions du cycle. - La valeur demande de X est 4, la valeur demande de Y est 5, la valeur - demande de Z est -0.6 et le retrait R est 1.8. - La position initiale de X sera 5 (1+4), la position initiale de Y sera - 7 (2+5), le plan de retrait sera positionn sur 4.8 (1.8+3) et Z positionn - sur 4.2 (4.8-0.6). - OLD_Z est 3. -\layout Standard - -Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2, Z4.8), - puisque OLD_Z est infrieur au plan de retrait. -\layout Standard - -La premire rptition produira 3 mouvements. -\layout Standard - -1. - Un dplacement en vitesse rapide, parallle au plan XY vers X5, Y7, Z4.8 -\layout Standard - -2. - Un dplacement en vitesse travail, parallle l'axe Z vers X5, Y7, Z4.2 -\layout Standard - -3. - Un dplacement en vitesse rapide, parallle l'axe Z vers X5, Y7, Z4.8 -\layout Standard - -La deuxime rptition produira 3 mouvements. - La position de X est augmente de 4 et passe 9, la position de Y est - augmente de 5 et passe 12. -\layout Standard - -1. - Un dplacement en vitesse rapide, parallle au plan XY vers X9, Y12, Z4.8 -\layout Standard - -2. - Un dplacement en vitesse travail, parallle l'axe Z vers X9, Y12, Z4.2 -\layout Standard - -3. - Un dplacement en vitesse rapide, parallle l'axe Z vers X9, Y12, Z4.8 -\layout Standard - -La troisime rptition produira 3 mouvements. - La position de X est augmente de 4 et passe 13, la position de Y est - augmente de 5 et passe 17. -\layout Standard - -1. - Un dplacement en vitesse rapide, parallle au plan XY vers X13, Y17, Z4.8 -\layout Standard - -2. - Un dplacement en vitesse travail, parallle l'axe Z vers X13, Y17, Z4.2 -\layout Standard -\added_space_bottom 0.3cm -3. - Un dplacement en vitesse rapide, parallle l'axe Z vers X13, Y17, Z4.8 -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81ex2.png - -\end_inset - - -\end_inset - - -\layout Standard - -Exemple 3 - G81 en position relative -\layout Standard -\added_space_bottom 0.3cm -Supposons maintenant que vous excutez le premier g81 de la ligne de code, - mais de (0, 0, 0) plutt que de (1, 2, 3). - G90 G81 G98 X4 Y5 Z1.5 R2.8 Depuis OLD_Z est infrieur la valeur de R, - il n'ajoute rien au mouvement, mais puisque la valeur initiale de Z est - infrieure la valeur spcifie dans R, un premier mouvement de Z sera - effectu durant le mouvement prliminaire. -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81.png - -\end_inset - - -\end_inset - - -\layout Standard - -Exemple 4 - G81 en absolu avec R > Z -\layout Standard - -Il s'agit de la trajectoire pour le second block de code de g81. -\layout Standard - -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 -\layout Standard -\added_space_bottom 0.3cm -Cette trajectoire commence en (0, 0, 0), l'interprteur ajoute les valeurs - initiales Z0 et R 1.8 et dplace le mobile en vitesse rapide vers cet emplacemen -t. - Aprs ce premier dplacement initial de Z, la rptition fonctionne de - manire identique celle de l'exemple 3 avec le mouvement final de Z - 0.6 en dessous de la valeur de R. -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81a.png - -\end_inset - - -\end_inset - - -\layout Standard - -Exemple 5 - Position relative R > Z -\layout Section - -Cycle G82 -\layout Standard - -Le cycle G82 -\begin_inset LatexCommand \index{G82} - -\end_inset - - est destin au perage. -\layout Standard - -0. - Un mouvement prliminaire, comme il a t trait ci-dessus. -\layout Standard - -1. - Un dplacement de l'axe Z seul en vitesse programme, vers la position - Z programme. -\layout Standard - -2. - Une temporisation de P secondes. -\layout Standard - -3. - Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. -\layout Standard - -Les mouvements du cycle G82 ressemblent ceux de g81 avec une temporisation - supplmentaire en fin de mouvement Z. - La longueur de cette temporisation, exprime en secondes, est spcifie - par un mot P# sur la ligne du G82. -\layout Standard - -G90 G82 G98 X4 Y5 Z1.5 R2.8 P2 -\layout Standard - -Sera quivalent l'exemple 3 ci-dessus mais avec une temporisation de 2 - secondes en fond de trou. -\layout Section - -Cycle G83 -\layout Standard - -Le cycle G83 -\begin_inset LatexCommand \index{G82} - -\end_inset - - est destin au perage profond ou au fraisage avec brise-copeaux. - Les retraits, au cours de ce cycle, dgagent les copeaux du trou et fragmentent - les copeaux longs (qui sont frquents lors du perage dans l'aluminum). - Ce cycle utilise la valeur Q qui reprsente un incrment -\begin_inset Quotes eld -\end_inset - -delta -\begin_inset Quotes erd -\end_inset - - le long de l'axe Z. -\layout Standard - -0. - Un mouvement prliminaire, comme dcrit prcdemment. -\layout Standard - -1. - Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins - profonde entre, un incrment delta, ou la position de Z programme. -\layout Standard - -2. - Un mouvement en vitesse rapide au plan de retrait. - -\layout Standard - -3. - Une plonge en vitesse rapide dans le mme trou, presque jusqu'au fond. -\layout Standard - -3. - Rptition des tapes 2, 3 et 4 jusqu' ce que la position programme de - Z soit atteinte l'tape 2. -\layout Standard - -4. - Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. -\layout Section - -Cycle G84 -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. - Voir G33.1 -\layout Standard - -The G84 -\begin_inset LatexCommand \index{G84} - -\end_inset - - cycle is intended for right-hand tapping. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Start speed-feed synchronization. -\layout Standard - -2. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -3. - Stop the spindle. -\layout Standard - -4. - Start the spindle counterclockwise. -\layout Standard - -5. - Retract the Z-axis at the current feed rate to clear Z. -\layout Standard - -6. - If speed-feed synch was not on before the cycle started, stop it. -\layout Standard - -7. - Stop the spindle. -\layout Standard - -8. - Start the spindle clockwise. -\layout Section - -Cycle G85 -\begin_inset LatexCommand \index{G85} - -\end_inset - - -\layout Standard - -Le cycle G85 est destin l'alsage, mais peut tre utilis pour le perage - ou le fraisage. -\layout Standard - -0. - Un mouvement prliminaire, comme dcrit prcdemment. -\layout Standard - -1. - Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programm -e. -\layout Standard - -2. - Retrait de l'axe Z en vitesse travail vers le plan de retrait. -\layout Section - -Cycle G86 -\begin_inset LatexCommand \index{G86} - -\end_inset - - -\layout Standard - -Le cycle G86 est destin l'alsage. - Ce cycle utilise la valeur P pour une temporisation en secondes. -\layout Standard - -0. - Un mouvement prliminaire, comme dcrit prcdemment. -\layout Standard - -1. - Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programm -e. -\layout Standard - -2. - Une temporisation de P secondes. -\layout Standard - -3. - L'arrt de rotation de la broche. -\layout Standard - -4. - Retrait de l'axe Z en vitesse rapide vers le plan de retrait. -\layout Standard - -5. - Reprise de la rotation de la broche dans la mme direction que prcdemment. -\layout Section - -Cycle G87 -\begin_inset LatexCommand \index{G87} - -\end_inset - - -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. -\layout Standard - -The G87 cycle is intended for back boring. - -\layout Standard - -The situation is that you have a through hole and you want to counter bore - the bottom of hole. - To do this you put an L-shaped tool in the spindle with a cutting surface - on the UPPER side of its base. - You stick it carefully through the hole when it is not spinning and is - oriented so it fits through the hole, then you move it so the stem of the - L is on the axis of the hole, start the spindle, and feed the tool upward - to make the counter bore. - Then you stop the tool, get it out of the hole, and restart it. - -\layout Standard - -This cycle uses I and J values to indicate the position for inserting and - removing the tool. - I and J will always be increments from the X position and the Y position, - regardless of the distance mode setting. - This cycle also uses a K value to specify the position along the Z-axis - of the top of counterbore. - The K value is an absolute Z-value in absolute distance mode, and an increment - (from the Z position) in incremental distance mode. - -\layout Standard - -0. - Preliminary motion, as described above. - -\layout Standard - -1. - Move at traverse rate parallel to the XY-plane to the point indicated by - I and J. - -\layout Standard - -2. - Stop the spindle in a specific orientation. - -\layout Standard - -3. - Move the Z-axis only at traverse rate downward to the Z position. - -\layout Standard - -4. - Move at traverse rate parallel to the XY-plane to the X,Y location. - -\layout Standard - -5. - Start the spindle in the direction it was going before. - -\layout Standard - -6. - Move the Z-axis only at the given feed rate upward to the position indicated - by K. - -\layout Standard - -7. - Move the Z-axis only at the given feed rate back down to the Z position. - -\layout Standard - -8. - Stop the spindle in the same orientation as before. - -\layout Standard - -9. - Move at traverse rate parallel to the XY-plane to the point indicated by - I and J. - -\layout Standard - -10. - Move the Z-axis only at traverse rate to the clear Z. - -\layout Standard - -11. - Move at traverse rate parallel to the XY-plane to the specified X,Y location. - -\layout Standard -\added_space_bottom 0.3cm -12. - Restart the spindle in the direction it was going before. -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 0 -inner_position 1 -height "1in" -width "50col%" -collapsed false - -\layout Standard -\noindent \align left - -\begin_inset Graphics - filename G87pre.png - -\end_inset - - -\end_inset - - -\layout Standard - -Exemple 6 - Backbore -\layout Standard - -Example six uses a incremental distances from (0, 0, 0) so the preliminary - moves look much like those in example five but they are done using the - G87 backbore canned cycle. -\layout Standard - -G91 G87 M3 S1000 X1 Y1 Z-0.4 R1.4 I-0.1 J-0.1 K-0.1 -\layout Standard -\align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - -You will notice that the preliminary moves shift the tool to directly above - the center axis of the existing bore. -\layout Standard - -Next it increments that location by the I and J values. - I offsets X with a plus value being added to the current X. - J does the same for the Y axis. - -\layout Standard - -For our example block both I and J are negative so they move back from the - hole axis along the path just made by the tool. - The amount of offset required should be just enough that the tool tip will - slide down through the bore. -\end_inset - - -\layout Standard -\align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G87s1.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - -Next the canned cycle moves the tool down in z and at the bottom location - represented in the block by the Z 0.4 value it moves the tool back to the - center of the bore. -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G87s5.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -Now the g87 canned cycle turns the spindle on and moves back up into the - bore at the programmed feed rate. - This is the real cutting action of this canned cycle. - With the proper tool in a boring bar this cycle will produce a chamfer - on the bottom side of the bore. - G87 can also be used to produce a larger diameter bore on the bottom side - of the bore. - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - -When the tool has reached the K position it is returned to the bottom location, - the spindle is stopped and oriented and follows the earlier path back out - of the bore to the initial position above. - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G87s12.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -This canned cycle assumes spindle orientation which has not been implemented - in the EMC to date. - The proper alignment of the tool tip to the oriented spindle is critical - to the successful insertion of the tool through the hole to be backbored. -\layout Section - -Cycle G88 -\layout Standard - -Ce code n'est pas encore implment dans EMC2. - Il est accept mais son comportement n'est pas dfini. -\layout Standard - -The G88 -\begin_inset LatexCommand \index{G88} - -\end_inset - - cycle is intended for boring. - This cycle uses a P value, where P specifies the number of seconds to dwell. -\layout Standard - -0. - Preliminary motion, as described above. -\layout Standard - -1. - Move the Z-axis only at the current feed rate to the Z position. -\layout Standard - -2. - Dwell for the given number of seconds. -\layout Standard - -3. - Stop the spindle turning. -\layout Standard - -4. - Stop the program so the operator can retract the spindle manually. -\layout Standard - -5. - Restart the spindle in the direction it was going. - It is unclear how the operator is to manually move the tool because a change - to manual mode resets the program to the top. - We will attempt to clarify that step in this procedure. -\layout Section - -Cycle G89 -\layout Standard - -Le cycle G89 -\begin_inset LatexCommand \index{G89} - -\end_inset - - est destin l'alsage. - Il utilise la valeur de P pour une temporisation en secondes. -\layout Standard - -0. - Un mouvement prliminaire, comme dcrit prcdemment. -\layout Standard - -1. - Un dplacement de l'axe Z seul en vitesse travail, vers la position Z programm -e. -\layout Standard - -2. - Temporisation de P secondes. -\layout Standard - -3. - Retrait de l'axe Z en vitesse travail vers le plan de retrait. -\layout Section - -Options G98 et G99 -\layout Standard - -Quand la broche se rtracte pendant les cycles prprogramms, il existe - deux options pour indiquer comment elle se rtracte: (1) Retrait perpendiculair -e au plan de travail courant jusqu' la position indique par le mot R, - ou (2) Retrait perpendiculaire au plan de travail courant jusqu' la position - qui tait celle de cet axe juste avant le dbut du cycle prprogramm ( - moins que cette position ne soit infrieure celle indique par le mot - R, auquel cas, c'est cette dernire qui serait utilise. -\layout Standard -\added_space_bottom 0.3cm \align left -Pour utiliser l'option (1), programmer G99 -\begin_inset LatexCommand \index{G99} - -\end_inset - -. - Pour utiliser l'option (2), programmer G98 -\begin_inset LatexCommand \index{G98} - -\end_inset - -. - Ne pas oublier que le mot R a diffrentes significations en mode de dplacement - absolu et en mode de dplacement incrmental. - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81g98d.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left -Utilisation de G98 -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename G81ret.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -Utilisation de G99 -\layout Section - -Pourquoi utiliser les cycles prprogramms ? -\layout Standard - -Il y a au moins deux raisons, la premire est l'conomie de code. - Un simple trou demande plusieurs lignes de code pour tre excut. -\layout Standard - -Exemple 7: Nous avons montr plus haut, comment les cycles prprogramms - peuvent tre utiliss pour produire 8 trous avec dix lignes de code. - Le programme ci-dessous permet de produire le mme jeu de 8 trous en utilisant - cinq lignes pour le cycle prprogramm. - Il ne suit pas exactement le mme parcours et ne perce pas dans le mme - ordre que l'exemple prcdent, mais le programme a t crit de manire - conomique, une bonne pratique qui devrait tre courante avec les cycles - prprogramms. - -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard -\align left -Exemple 7 - perage de huit trous, rcrit. -\layout Standard -\align left - -\family typewriter -\size footnotesize -g90 g0 x0 y0 z0 (coordonnes d'origine) -\layout Standard -\align left - -\family typewriter -\size footnotesize -g1 f10 x0 g4 p0.1 -\layout Standard -\align left - -\family typewriter -\size footnotesize -g91 g81 x1 y0 z-1 r1 l4(cycle de perage) -\layout Standard -\align left - -\family typewriter -\size footnotesize -g90 g0 x0 y1 -\layout Standard -\align left - -\family typewriter -\size footnotesize -z0 -\layout Standard -\align left - -\family typewriter -\size footnotesize -g91 g81 x1 y0 z-.5 r1 l4(cycle de perage) -\layout Standard -\align left - -\family typewriter -\size footnotesize -g80 (rvocation du cycle G81) -\layout Standard -\align left - -\family typewriter -\size footnotesize -m2 (fin du programme) -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename Eight.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \noindent \align left -Exemple 8 - Douze trous dans un carr -\layout Standard -\added_space_bottom 0.3cm \noindent \align left -Cet exemple montre l'utilisation du mot L pour rpter une srie incrmentale - de cycles de perage pour des blocks de code successifs dans le mme mode - mouvements G81. - Ici, nous produisons 12 trous au moyen de cinq lignes de code dans le mouvement - modal. -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\family typewriter -\size small -G90 G0 X0 Y0 Z0 (coordines d'origine) -\newline -G1 F50 X0 G4 P0.1 -\newline -G91 G81 X1 Y0 Z-0.5 R1 L4 (cycle de perage) -\newline -X0 Y1 R0 L3 (rptition) -\newline -X-1 Y0 L3 (rptition) -\newline -X0 Y-1 L2 (rptition) -\newline -G80 (rvocation du cycle G81) -\newline -G90 G0 X0 (retour vers l'origine en vitesse rapide) -\newline -Y0 -\newline -Z0 -\newline -M2 (fin du programme) -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \noindent \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename Twelve.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \noindent \align left -La deuxime raison d'utiliser les cycles prprogramms, c'est qu'il produisent - un mouvement prliminaire et retournent une position prvisible et contrlabl -e, quel que soit le point de dpart du cycle. -\the_end diff --git a/docs/src/gcode/overview.lyx b/docs/src/gcode/overview.lyx deleted file mode 100644 index 98d924674..000000000 --- a/docs/src/gcode/overview.lyx +++ /dev/null @@ -1,2894 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -G Code Overview -\begin_inset LatexCommand label -name "cha:Language-Overview" - -\end_inset - - -\end_layout - -\begin_layout Standard -The EMC2 G Code language is based on the RS274/NGC language. - The G Code language is based on lines of code. - Each line (also called a "block") may include commands to do several different - things. - Lines of code may be collected in a file to make a program. -\end_layout - -\begin_layout Standard -A typical line of code consists of an optional line number at the beginning - followed by one or more "words". - A word consists of a letter followed by a number (or something that evaluates - to a number). - A word may either give a command or provide an argument to a command. - For example, " -\family typewriter -G1 X3 -\family default -" is a valid line of code with two words. - " -\family typewriter -G1 -\family default -" is a command meaning "move in a straight line at the programmed feed rate - to the programmed end point", and " -\family typewriter -X3 -\family default -" provides an argument value (the value of X should be 3 at the end of the - move). - Most EMC2 G Code commands start with either G or M (for General and Miscellaneo -us). - The words for these commands are called "G codes" and "M codes." -\end_layout - -\begin_layout Standard -The EMC2 language has no indicator for the start of a program. - The Interpreter, however, deals with files. - A single program may be in a single file, or a program may be spread across - several files. - A file may demarcated with percents in the following way. - The first non-blank line of a file may contain nothing but a percent sign, - "%", possibly surrounded by white space, and later in the file (normally - at the end of the file) there may be a similar line. - Demarcating a file with percents is optional if the file has an -\family typewriter -M2 -\family default - or -\family typewriter -M30 -\family default - in it, but is required if not. - An error will be signalled if a file has a percent line at the beginning - but not at the end. - The useful contents of a file demarcated by percents stop after the second - percent line. - Anything after that is ignored. -\end_layout - -\begin_layout Standard -The EMC2 G Code language has two commands ( -\family typewriter -M2 -\family default - or -\family typewriter -M30 -\family default -), either of which ends a program. - A program may end before the end of a file. - Lines of a file that occur after the end of a program are not to be executed. - The interpreter does not even read them. -\end_layout - -\begin_layout Section -Format of a line -\end_layout - -\begin_layout Standard -A permissible line of input code consists of the following, in order, with - the restriction that there is a maximum (currently 256) to the number of - characters allowed on a line. -\end_layout - -\begin_layout Enumerate -an optional block delete character, which is a slash "/" . - -\end_layout - -\begin_layout Enumerate -an optional line number. -\end_layout - -\begin_layout Enumerate -any number of words, parameter settings, and comments. -\end_layout - -\begin_layout Enumerate -an end of line marker (carriage return or line feed or both). - -\end_layout - -\begin_layout Standard -Any input not explicitly allowed is illegal and will cause the Interpreter - to signal an error. -\end_layout - -\begin_layout Standard -Spaces and tabs are allowed anywhere on a line of code and do not change - the meaning of the line, except inside comments. - This makes some strange-looking input legal. - The line " -\family typewriter -G0X +0. - 12 34Y 7 -\family default -" is equivalent to " -\family typewriter -G0 x+0.1234 Y7 -\family default -", for example. -\end_layout - -\begin_layout Standard -Blank lines are allowed in the input. - They are to be ignored. -\end_layout - -\begin_layout Standard -Input is case insensitive, except in comments, i.e., any letter outside a - comment may be in upper or lower case without changing the meaning of a - line. - -\end_layout - -\begin_layout Section -Line Number -\begin_inset LatexCommand index -name "Line Number" - -\end_inset - - -\end_layout - -\begin_layout Standard -A line number is the letter N followed by an integer (with no sign) between - 0 and 99999 written with no more than five digits (000009 is not OK, for - example). - Line numbers may be repeated or used out of order, although normal practice - is to avoid such usage. - Line numbers may also be skipped, and that is normal practice. - A line number is not required to be used, but must be in the proper place - if used. -\end_layout - -\begin_layout Section -Word -\begin_inset LatexCommand index -name "Word" - -\end_inset - - -\end_layout - -\begin_layout Standard -A word is a letter other than N followed by a real value. -\end_layout - -\begin_layout Standard -Words may begin with any of the letters shown in Table -\begin_inset LatexCommand ref -reference "cap:Words-and-their" - -\end_inset - -. - The table includes N for completeness, even though, as defined above, line - numbers are not words. - Several letters (I, J, K, L, P, R) may have different meanings in different - contexts. - Letters which refer to axis names are not valid on a machine which does - not have the corresponding axis. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Words and their meanings -\begin_inset LatexCommand label -name "cap:Words-and-their" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -Letter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Meaning -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tool radius compensation number -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Feed rate -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -G -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -General function (See table -\begin_inset LatexCommand ref -reference "cap:Modal-Groups" - -\end_inset - -) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -H -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tool length offset index -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -I -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X offset for arcs and G87 canned cycles -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -J -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Y offset for arcs and G87 canned cycles -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -K -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z offset for arcs and G87 canned cycles. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Spindle-Motion Ratio for G33 synchronized movements. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -M -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Miscellaneous function (See table -\begin_inset LatexCommand ref -reference "cap:Modal-Groups" - -\end_inset - -) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -N -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Line number -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -P -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Dwell time in canned cycles and with G4. - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Key used with G10. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Q -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Feed increment in G73, G83 canned cycles -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -R -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Arc radius or canned cycle plane -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Spindle speed -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -T -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tool selection -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -U -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -U axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -V -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -V axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -W -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -W axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -X -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -X axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Y -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Y axis of machine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z axis of machine -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Number -\begin_inset LatexCommand label -name "sub:Number" - -\end_inset - - -\end_layout - -\begin_layout Standard -The following rules are used for (explicit) numbers. - In these rules a digit is a single character between 0 and 9. -\end_layout - -\begin_layout Itemize -A number consists of (1) an optional plus or minus sign, followed by (2) - zero to many digits, followed, possibly, by (3) one decimal point, followed - by (4) zero to many digits - provided that there is at least one digit - somewhere in the number. -\end_layout - -\begin_layout Itemize -There are two kinds of numbers: integers and decimals. - An integer does not have a decimal point in it; a decimal does. -\end_layout - -\begin_layout Itemize -Numbers may have any number of digits, subject to the limitation on line - length. - Only about seventeen significant figures will be retained, however (enough - for all known applications). -\end_layout - -\begin_layout Itemize -A non-zero number with no sign as the first character is assumed to be positive. -\end_layout - -\begin_layout Standard -Notice that initial (before the decimal point and the first non-zero digit) - and trailing (after the decimal point and the last non-zero digit) zeros - are allowed but not required. - A number written with initial or trailing zeros will have the same value - when it is read as if the extra zeros were not there. -\end_layout - -\begin_layout Standard -Numbers used for specific purposes in RS274/NGC are often restricted to - some finite set of values or some to some range of values. - In many uses, decimal numbers must be close to integers; this includes - the values of indexes (for parameters and carousel slot numbers, for example), - M codes, and G codes multiplied by ten. - A decimal number which is supposed be close to an integer is considered - close enough if it is within 0.0001 of an integer. - -\end_layout - -\begin_layout Section -Numbered Parameters -\begin_inset LatexCommand label -name "sub:Numbered-Parameters" - -\end_inset - - -\end_layout - -\begin_layout Standard -A numbered parameter is the pound character -\family typewriter -# -\family default - followed by an integer between 1 and 5399. - The parameter is referred to by this integer, and its value is whatever - number is stored in the parameter. - -\end_layout - -\begin_layout Standard -A value is stored in a parameter with the = operator; for example " -\family typewriter -#3 = 15 -\family default -" means "set parameter 3 to 15." A parameter setting does not take effect - until after all parameter values on the same line have been found. - For example, if parameter 3 has been previously set to 15 and the line - " -\family typewriter -#3=6 G1 x#3 -\family default -" is interpreted, a straight move to a point where x equals 15 will occur - and the value of parameter 3 will be 6. - -\end_layout - -\begin_layout Standard -The -\family typewriter -# -\family default - character takes precedence over other operations, so that, for example, - " -\family typewriter -#1+2 -\family default -" means the number found by adding 2 to the value of parameter 1, not the - value found in parameter 3. - Of course, -\family typewriter -#[1+2] -\family default - does mean the value found in parameter 3. - The -\family typewriter -# -\family default - character may be repeated; for example -\family typewriter -##2 -\family default - means the value of the parameter whose index is the (integer) value of - parameter 2. - -\end_layout - -\begin_layout Standard -The interpreter maintains a number of readonly parameters for a loaded tool: -\end_layout - -\begin_layout Itemize -#5400 tool number -\end_layout - -\begin_layout Itemize -#5401 tool x offset -\end_layout - -\begin_layout Itemize -#5402 tool y offset -\end_layout - -\begin_layout Itemize -#5403 tool z offset -\end_layout - -\begin_layout Itemize -#5404 tool a offset -\end_layout - -\begin_layout Itemize -#5405 tool b offset -\end_layout - -\begin_layout Itemize -#5406 tool c offset -\end_layout - -\begin_layout Itemize -#5407 tool u offset -\end_layout - -\begin_layout Itemize -#5408 tool v offset -\end_layout - -\begin_layout Itemize -#5409 tool w offset -\end_layout - -\begin_layout Itemize -#5410 tool diameter -\end_layout - -\begin_layout Itemize -#5411 tool frontangle -\end_layout - -\begin_layout Itemize -#5412 tool backangle -\end_layout - -\begin_layout Itemize -#5413 tool orientation -\end_layout - -\begin_layout Section -Named Parameters -\begin_inset LatexCommand label -name "sub:Named-Parameters" - -\end_inset - - -\end_layout - -\begin_layout Standard -Named parameters work like numbered parameters but are easier to read. - All parameter names are converted to lower case and have spaces and tabs - removed. - Named parameters must be enclosed with -\family typewriter -< > -\family default - marks. -\end_layout - -\begin_layout Standard - -\family typewriter -# -\family default - is a local named parameter. - By default, a named parameter is local to the scope in which it is assigned. - You can't access a local parameter outside of its subroutine - this is - so that two subroutines can use the same parameter names without fear of - one subroutine overwriting the values in another. -\end_layout - -\begin_layout Standard - -\family typewriter -#<_global named parameter here> -\family default - is a global named parameter. - They are accessible from within called subroutines and may set values within - subroutines that are accessible to the caller. - As far as scope is concerned, they act just like regular numeric parameters. - They are not stored in files. - -\end_layout - -\begin_layout Standard -Examples: -\end_layout - -\begin_layout Itemize -Declaration of named global variable -\end_layout - -\begin_layout Quote - -\family typewriter -#<_endmill_dia> = 0.049 -\family default - -\end_layout - -\begin_layout Itemize -Reference to previously declared global variable -\end_layout - -\begin_layout Quote - -\family typewriter -#<_endmill_rad> = [#<_endmill_dia>/2.0] -\family default - -\end_layout - -\begin_layout Itemize -Mixed literal and named parameters -\end_layout - -\begin_layout Quote - -\family typewriter -o100 call [0.0] [0.0] [#<_inside_cutout>-#<_endmill_dia>] [#<_Zcut>] [#<_feedrate> -] -\end_layout - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -Notes: -\end_layout - -\begin_layout Standard -The global parameters _a, _b, _c, ... - _z have been reserved for special use. - In the future, they may provide access to the last Aword, Bword, Cword, - etc. - -\end_layout - -\begin_layout Section -System Parameters -\begin_inset LatexCommand label -name "sec:System-Parameters" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two global read only named parameters are available to check which version - is running from G Code. -\end_layout - -\begin_layout Description -#<_vmajor> Major package version. - If current version was 2.6.2 would return 2.6. -\end_layout - -\begin_layout Description -#<_vminor> Minor package version. - If current version was 2.6.2 would return 0.2. -\end_layout - -\begin_layout Section -Expressions -\begin_inset LatexCommand label -name "sub:Expressions" - -\end_inset - - -\end_layout - -\begin_layout Standard -An expression is a set of characters starting with a left bracket -\family typewriter -[ -\family default - and ending with a balancing right bracket -\family typewriter -] -\family default -. - In between the brackets are numbers, parameter values, mathematical operations, - and other expressions. - An expression is evaluated to produce a number. - The expressions on a line are evaluated when the line is read, before anything - on the line is executed. - An example of an expression is -\family typewriter -[1 + acos[0] - [#3 ** [4.0/2]]] -\family default -. -\end_layout - -\begin_layout Section -Binary Operators -\begin_inset LatexCommand label -name "sub:Binary-Operators" - -\end_inset - - -\end_layout - -\begin_layout Standard -Binary operators only appear inside expressions. - There are four basic mathematical operations: addition ( -\family typewriter -+ -\family default -), subtraction ( -\family typewriter -- -\family default -), multiplication ( -\family typewriter -* -\family default -), and division ( -\family typewriter -/ -\family default -). - There are three logical operations: non-exclusive or ( -\family typewriter -OR -\family default -), exclusive or ( -\family typewriter -XOR -\family default -), and logical and ( -\family typewriter -AND -\family default -). - The eighth operation is the modulus operation ( -\family typewriter -MOD -\family default -). - The ninth operation is the "power" operation ( -\family typewriter -** -\family default -) of raising the number on the left of the operation to the power on the - right. - The relational operators are equality ( -\family typewriter -EQ -\family default -), inequality ( -\family typewriter -NE -\family default -), strictly greater than ( -\family typewriter -GT -\family default -), greater than or equal to ( -\family typewriter -GE -\family default -), strictly less than ( -\family typewriter -LT -\family default -), and less than or equal to ( -\family typewriter -LE -\family default -). -\end_layout - -\begin_layout Standard -The binary operations are divided into several groups according to their - precedence. - (see table -\begin_inset LatexCommand ref -reference "cap:Operator-Precedence" - -\end_inset - -) If operations in different precedence groups are strung together (for - example in the expression -\family typewriter -[2.0 / 3 * 1.5 - 5.5 / 11.0] -\family default -), operations in a higher group are to be performed before operations in - a lower group. - If an expression contains more than one operation from the same group (such - as the first -\family typewriter -/ -\family default - and -\family typewriter -* -\family default - in the example), the operation on the left is performed first. - Thus, the example is equivalent to: -\family typewriter -[[[2.0 / 3] * 1.5] - [5.5 / 11.0]] -\family default - , which is equivalent to to -\family typewriter -[1.0 - 0.5] -\family default - , which is -\family typewriter -0.5 -\family default -. -\end_layout - -\begin_layout Standard -The logical operations and modulus are to be performed on any real numbers, - not just on integers. - The number zero is equivalent to logical false, and any non-zero number - is equivalent to logical true. - -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Operator Precedence -\begin_inset LatexCommand label -name "cap:Operator-Precedence" - -\end_inset - - -\begin_inset LatexCommand index -name "operator precedence" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -Operators -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Precedence -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -** -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\emph on -highest -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -* / MOD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -+ - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -EQ NE GT GE LT LE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -AND OR XOR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\emph on -lowest -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Functions -\begin_inset LatexCommand label -name "sub:Unary-Operation-Value" - -\end_inset - - -\end_layout - -\begin_layout Standard -A function is either " -\family typewriter -ATAN -\family default -" followed by one expression divided by another expression (for example - " -\family typewriter -ATAN[2]/[1+3] -\family default -") or any other function name followed by an expression (for example " -\family typewriter -SIN[90] -\family default -"). - The available functions are shown in table -\begin_inset LatexCommand ref -reference "cap:Functions" - -\end_inset - -. - Arguments to unary operations which take angle measures ( -\family typewriter -COS -\family default -, -\family typewriter -SIN -\family default -, and -\family typewriter -TAN -\family default -) are in degrees. - Values returned by unary operations which return angle measures ( -\family typewriter -ACOS -\family default -, -\family typewriter -ASIN -\family default -, and -\family typewriter -ATAN -\family default -) are also in degrees. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Functions -\begin_inset LatexCommand label -name "cap:Functions" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -Function Name -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Function result -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ATAN[Y]/[X] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Four quadrant inverse tangent -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ABS[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Absolute value -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ACOS[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Inverse cosine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ASIN[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Inverse sine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -COS[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cosine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -EXP[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -e raised to the given power -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -FIX[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Round down to integer -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -FUP[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Round up to integer -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ROUND[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Round to nearest integer -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -LN[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Base-e logarithm -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SIN[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Sine -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -SQRT[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Square Root -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -TAN[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Tangent -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -EXISTS[arg] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Check named Parameter -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The -\family typewriter -FIX -\family default - function rounds towards the left (less positive or more negative) on a - number line, so that -\family typewriter -FIX[2.8] =2 -\family default - and -\family typewriter -FIX[-2.8] = -3 -\family default -, for example. - The -\family typewriter -FUP -\family default - operation rounds towards the right (more positive or less negative) on - a number line; -\family typewriter -FUP[2.8] = 3 -\family default - and -\family typewriter -FUP[-2.8] = -2 -\family default -, for example. - -\end_layout - -\begin_layout Standard -The EXISTS function checks for the existence of a single named parameter. - It takes only one named parameter and returns 1 if it exists and 0 if it - does not exist. - It is an error if you use a numbered parameter or an expression. -\end_layout - -\begin_layout Section -Repeated Items -\end_layout - -\begin_layout Standard -A line may have any number of G words, but two G words from the same modal - group (see Section -\begin_inset LatexCommand ref -reference "sec:Modal-Groups" - -\end_inset - -) may not appear on the same line. -\end_layout - -\begin_layout Standard -A line may have zero to four M words. - Two M words from the same modal group may not appear on the same line. -\end_layout - -\begin_layout Standard -For all other legal letters, a line may have only one word beginning with - that letter. -\end_layout - -\begin_layout Standard -If a parameter setting of the same parameter is repeated on a line, " -\family typewriter -#3=15 #3=6 -\family default -", for example, only the last setting will take effect. - It is silly, but not illegal, to set the same parameter twice on the same - line. -\end_layout - -\begin_layout Standard -If more than one comment appears on a line, only the last one will be used; - each of the other comments will be read and its format will be checked, - but it will be ignored thereafter. - It is expected that putting more than one comment on a line will be very - rare. - -\end_layout - -\begin_layout Section -Item order -\end_layout - -\begin_layout Standard -The three types of item whose order may vary on a line (as given at the - beginning of this section) are word, parameter setting, and comment. - Imagine that these three types of item are divided into three groups by - type. -\end_layout - -\begin_layout Standard -The first group (the words) may be reordered in any way without changing - the meaning of the line. -\end_layout - -\begin_layout Standard -If the second group (the parameter settings) is reordered, there will be - no change in the meaning of the line unless the same parameter is set more - than once. - In this case, only the last setting of the parameter will take effect. - For example, after the line " -\family typewriter -#3=15 #3=6 -\family default -" has been interpreted, the value of parameter 3 will be 6. - If the order is reversed to " -\family typewriter -#3=6 #3=15 -\family default -" and the line is interpreted, the value of parameter 3 will be 15. -\end_layout - -\begin_layout Standard -If the third group (the comments) contains more than one comment and is - reordered, only the last comment will be used. -\end_layout - -\begin_layout Standard -If each group is kept in order or reordered without changing the meaning - of the line, then the three groups may be interleaved in any way without - changing the meaning of the line. - For example, the line " -\family typewriter -g40 g1 #3=15 (foo) #4=-7.0 -\family default -" has five items and means exactly the same thing in any of the 120 possible - orders (such as " -\family typewriter -#4=-7.0 g1 #3=15 g40 (foo) -\family default -") for the five items. - -\end_layout - -\begin_layout Section -Commands and Machine Modes -\end_layout - -\begin_layout Standard -Many commands cause the controller to change from one mode to another, and - the mode stays active until some other command changes it implicitly or - explicitly. - Such commands are called "modal". - For example, if coolant is turned on, it stays on until it is explicitly - turned off. - The G codes for motion are also modal. - If a G1 (straight move) command is given on one line, for example, it will - be executed again on the next line if one or more axis words is available - on the line, unless an explicit command is given on that next line using - the axis words or canceling motion. -\end_layout - -\begin_layout Standard -"Non-modal" codes have effect only on the lines on which they occur. - For example, G4 (dwell) is non-modal. - -\end_layout - -\begin_layout Section -Modal Groups -\begin_inset LatexCommand index -name "Modal Groups" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Modal-Groups" - -\end_inset - - -\end_layout - -\begin_layout Standard -Modal commands are arranged in sets called "modal groups", and only one - member of a modal group may be in force at any given time. - In general, a modal group contains commands for which it is logically impossibl -e for two members to be in effect at the same time - like measure in inches - vs. - measure in millimeters. - A machining center may be in many modes at the same time, with one mode - from each modal group being in effect. - The modal groups are shown in Table -\begin_inset LatexCommand ref -reference "cap:Modal-Groups" - -\end_inset - -. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Modal Groups -\begin_inset LatexCommand label -name "cap:Modal-Groups" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -Modal Group Meaning -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Member Words -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Motion ("Group 1") -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G0 G1 G2 G3 G33 G38.x G73 G76 G80 G81 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G82 G83 G84 G85 G86 G87 G88 G89 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Plane selection -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G17, G18, G19 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Diameter / Radius for lathes -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G7, G8 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Distance Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G90, G91 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Feed Rate Mode -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G93, G94 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Units -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G20, G21 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Cutter Radius Compensation -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G40, G41, G42, G41.1, G42.1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Tool Length Offset -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G43, G43.1, G49 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Return Mode in Canned Cycles -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G98, G99 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Coordinate System Selection -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G54, G55, G56, G57, G58 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G59, G59.1, G59.2, G59.3 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Stopping -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M0, M1, M2, M30, M60 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Tool Change -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M6 Tn -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Spindle Turning -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M3, M4, M5 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Coolant -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M7, M8, M9. - Special case: -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M7 and M8 may be active at the same time -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Override Switches -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M48, M49 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Flow Control -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -O- -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Non-modal codes ("Group 0") -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G4, G10 G28, G30, G53 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -G92, G92.1, G92.2, G92.3 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -M100 to M199 -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -For several modal groups, when a machining center is ready to accept commands, - one member of the group must be in effect. - There are default settings for these modal groups. - When the machining center is turned on or otherwise re-initialized, the - default values are automatically in effect. -\end_layout - -\begin_layout Standard -Group 1, the first group on the table, is a group of G codes for motion. - One of these is always in effect. - That one is called the current motion mode. -\end_layout - -\begin_layout Standard -It is an error to put a G-code from group 1 and a G-code from group 0 on - the same line if both of them use axis words. - If an axis word-using G-code from group 1 is implicitly in effect on a - line (by having been activated on an earlier line), and a group 0 G-code - that uses axis words appears on the line, the activity of the group 1 G-code - is suspended for that line. - The axis word-using G-codes from group 0 are G10, G28, G30, and G92. - -\end_layout - -\begin_layout Standard -It is an error to include any unrelated words on a line with -\family typewriter -O- -\family default - flow control. -\end_layout - -\begin_layout Section -Comments -\end_layout - -\begin_layout Standard -Comments can be added to lines of G code to help clear up the intention - of the programmer. - Comments can be embedded in a line using parentheses () or for the remainder - of a line using a semi-colon. - The semi-colon is not treated as the start of a comment when enclosed in - parentheses. -\end_layout - -\begin_layout Quote -G0 (Rapid to start) X1 Y1 -\newline -G0 X1 Y1 (Rapid to start; but don't forget the - coolant) -\newline -M2 ; End of program. -\end_layout - -\begin_layout Section -File Size -\end_layout - -\begin_layout Standard -The interpreter and task are carefully written so that the only limit on - part program size is disk capacity. - The TkEMC and Axis interface both load the program text to display it to - the user, though, so RAM becomes a limiting factor. - In Axis, because the preview plot is drawn by default, the redraw time - also becomes a practical limit on program size. - The preview can be turned off in Axis to speed up loading large part programs. - In Axis sections of the preview can be turned off using special comments. -\end_layout - -\begin_layout Chapter -G Code Order of Execution -\begin_inset LatexCommand index -name "G Code Order of Execution" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Order-of-Execution" - -\end_inset - - -\end_layout - -\begin_layout Standard -The order of execution of items on a line is defined not by the position - of each item on the line, but by the following list: -\end_layout - -\begin_layout Enumerate -Comment (including message) -\end_layout - -\begin_layout Enumerate -Set feed rate mode (G93, G94). - -\end_layout - -\begin_layout Enumerate -Set feed rate (F). - -\end_layout - -\begin_layout Enumerate -Set spindle speed (S). - -\end_layout - -\begin_layout Enumerate -Select tool (T). - -\end_layout - -\begin_layout Enumerate -Change tool (M6). -\end_layout - -\begin_layout Enumerate -Spindle on or off (M3, M4, M5). -\end_layout - -\begin_layout Enumerate -Coolant on or off (M7, M8, M9). -\end_layout - -\begin_layout Enumerate -Enable or disable overrides (M48, M49). - -\end_layout - -\begin_layout Enumerate -Dwell (G4). - -\end_layout - -\begin_layout Enumerate -Set active plane (G17, G18, G19). - -\end_layout - -\begin_layout Enumerate -Set length units (G20, G21). -\end_layout - -\begin_layout Enumerate -Cutter radius compensation on or off (G40, G41, G42) -\end_layout - -\begin_layout Enumerate -Cutter length compensation on or off (G43, G49) -\end_layout - -\begin_layout Enumerate -Coordinate system selection (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3). - -\end_layout - -\begin_layout Enumerate -Set path control mode (G61, G61.1, G64) -\end_layout - -\begin_layout Enumerate -Set distance mode (G90, G91). - -\end_layout - -\begin_layout Enumerate -Set retract mode (G98, G99). -\end_layout - -\begin_layout Enumerate -Go to reference location (G28, G30) or change coordinate system data (G10) - or set axis offsets (G92, G92.1, G92.2, G94). - -\end_layout - -\begin_layout Enumerate -Perform motion (G0 to G3, G33, G73, G76, G80 to G89), as modified (possibly) - by G53. - -\end_layout - -\begin_layout Enumerate -Stop (M0, M1, M2, M30, M60). -\end_layout - -\begin_layout Chapter -G Code Best Practices -\begin_inset LatexCommand index -name "G Code Best Practices" - -\end_inset - - -\end_layout - -\begin_layout Section* -Use an appropriate decimal precision -\end_layout - -\begin_layout Standard -Use at least 3 digits after the decimal when milling in millimeters, and - at least 4 digits after the decimal when milling in inches. - In particular, arc tolerance checks are made to .001 and .0001 depending - on the active units. -\end_layout - -\begin_layout Section* -Use consistent white space -\end_layout - -\begin_layout Standard -G-code is most legible when at least one space appears before words. - While it is permitted to insert white space in the middle of numbers, there - is no reason to do so. -\end_layout - -\begin_layout Section* -Use "Center-format" arcs -\end_layout - -\begin_layout Standard -Center-format arcs (which use -\family typewriter -I- J- K- -\family default - instead of -\family typewriter -R- -\family default -) behave more consistently than R-format arcs, particularly for included - angles near 180 or 360 degrees. -\end_layout - -\begin_layout Section* -Put important modal settings at the top of the file -\end_layout - -\begin_layout Standard -When correct execution of your program depends on modal settings, be sure - to set them at the beginning of the part program. - Modes can carry over from previous programs and from the MDI commands. -\end_layout - -\begin_layout Standard -As a good preventative measure, put a line similar to the following at the - top of all your programs: -\end_layout - -\begin_layout Quote -G17 G20 G40 G49 G54 G80 G90 G94 -\end_layout - -\begin_layout Standard -(XY plane, inch mode, cancel diameter compensation, cancel length offset, - coordinate system 1, cancel motion, non-incremental motion, feed/minute - mode) -\end_layout - -\begin_layout Standard -Perhaps the most critical modal setting is the distance units--If you do - not include G20 or G21, then different machines will mill the program at - different scales. - Other settings, such as the return mode in canned cycles may also be important. -\end_layout - -\begin_layout Section* -Don't put too many things on one line -\end_layout - -\begin_layout Standard -Ignore everything in Section -\begin_inset LatexCommand ref -reference "sec:Order-of-Execution" - -\end_inset - -, and instead write no line of code that is the slightest bit ambiguous. - -\end_layout - -\begin_layout Section* -Don't set & use a parameter on the same line -\end_layout - -\begin_layout Standard -Don't use and set a parameter on the same line, even though the semantics - are well defined. - Updating a variable to a new value, such as -\family typewriter -#1=[#1+#2 -\family default -] is ok. -\end_layout - -\begin_layout Section* -Don't use line numbers -\end_layout - -\begin_layout Standard -Line numbers offer no benefits. - When line numbers are reported in error messages, the numbers refer to - the line number in the file, not the N-word value. -\end_layout - -\begin_layout Section* -When moving more than one coordinate system, consider inverse time feed - mode -\end_layout - -\begin_layout Standard -Because the meaning of an F-word in feed-per-minute mode varies depending - on which axes are commanded to move, and because the amount of material - removed does not depend only on the feed rate, it may be easier to use - G93 inverse time feed mode to achieve the desired material removal rate. -\end_layout - -\end_body -\end_document diff --git a/docs/src/gcode/rs274ngc.lyx b/docs/src/gcode/rs274ngc.lyx deleted file mode 100644 index 251aed580..000000000 --- a/docs/src/gcode/rs274ngc.lyx +++ /dev/null @@ -1,233 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -RS274NGC -\end_layout - -\begin_layout Section* -Differences that change the meaning of RS274NGC programs -\end_layout - -\begin_layout Subsection* -Location after a tool change -\end_layout - -\begin_layout Standard -In EMC2, the machine does not return to its original position after a tool - change. - This change was made because the new tool might be longer than the old - tool, and the move to the original machine position could therefore leave - the tool tip too low. -\end_layout - -\begin_layout Subsection* -Offset parameters are inifile units -\end_layout - -\begin_layout Standard -In EMC2, the values stored in parameters for the G28 and G30 home locations, - the P1...P9 coordinate systems, and the G92 offset are in "inifile units". - This change was made because otherwise the meaning of a location changed - depending on whether G20 or G21 was active when G28, G30, G10 L2, or G92.3 - is programmed. -\end_layout - -\begin_layout Subsection* -Tool table lengths/diameters are in inifile units -\end_layout - -\begin_layout Standard -In EMC2, the tool lengths (offsets) and diameters in the tool table are - specified in inifile units only. - This change was made because otherwise the length of a tool and its diameter - would change based on whether G20 or G21 was active when initiating G43, - G41, G42 modes. - This made it impossible to run gcode in the machine's non-native units, - even when the gcode was simple and well-formed (starting with G20 or G21, - and didn't change units throughout the program), without changing the tool - table. -\end_layout - -\begin_layout Subsection* -G84, G87 not implemented -\end_layout - -\begin_layout Standard -G84 and G87 are not currently implemented, but may be added to a future - release of EMC2. -\end_layout - -\begin_layout Subsection* -G28, G30 with axis words -\end_layout - -\begin_layout Standard -When G28 or G30 is programmed with only some axis words present, EMC2 only - moves the named axes. - This is common on other machine controls. - To move some axes to an intermediate point and then move all axes to the - predefined point, write two lines of gcode: -\end_layout - -\begin_layout Standard -G0 X- Y- (axes to move to intermediate point) G28 (move all axes to predefined - point) -\end_layout - -\begin_layout Section* -Differences that do not change the meaning of RS274NGC programs -\end_layout - -\begin_layout Subsection* -G33, G76 threading codes -\end_layout - -\begin_layout Standard -These codes are not defined in RS274NGC. -\end_layout - -\begin_layout Subsection* -G38.2 -\end_layout - -\begin_layout Standard -The probe tip is not retracted after a G38.2 movement. - This retraction move may be added in a future release of EMC2. -\end_layout - -\begin_layout Subsection* -G38.3...G38.5 -\end_layout - -\begin_layout Standard -These codes are not defined in RS274NGC -\end_layout - -\begin_layout Subsection* -O-codes -\end_layout - -\begin_layout Standard -These codes are not defined in RS274NGC -\end_layout - -\begin_layout Subsection* -M50...M53 overrides -\end_layout - -\begin_layout Standard -These codes are not defined in RS274NGC -\end_layout - -\begin_layout Subsection* -M61..M66 -\end_layout - -\begin_layout Standard -These codes are not defined in RS274NGC -\end_layout - -\begin_layout Subsection* -G43, G43.1 -\end_layout - -\begin_layout Subsubsection* -Negative Tool Lengths -\end_layout - -\begin_layout Standard -The RS274NGC spec says "it is expected that" all tool lengths will be positive. - However, G43 works for negative tool lengths. -\end_layout - -\begin_layout Subsubsection* -Lathe tools -\end_layout - -\begin_layout Standard -G43 tool length compensation can offset the tool in both the X and Z dimensions. - This feature is primarily useful on lathes. -\end_layout - -\begin_layout Subsubsection* -Dynamic tool lengths -\end_layout - -\begin_layout Standard -EMC2 allows specification of a computed tool length through G43.1 I K. -\end_layout - -\begin_layout Subsection* -G41.1, G42.1 -\end_layout - -\begin_layout Standard -EMC2 allows specification of a tool diameter and, if in lathe mode, orientation - in the gcode. - The format is G41.1/G42.1 D L, where D is diameter and L (if specified) is - the lathe tool orientation. -\end_layout - -\begin_layout Subsection* -G43 without H word -\end_layout - -\begin_layout Standard -In ngc, this is not allowed. - In EMC2, it sets length offsets for the currently loaded tool. - If no tool is currently loaded, it is an error. - This change was made so the user doesn't have to specify the tool number - in two places for each tool change, and because it's consistent with the - way G41/G42 work when the D word is not specified. -\end_layout - -\begin_layout Subsection* -U, V, and W axes -\end_layout - -\begin_layout Standard -EMC2 allows machines with up to 9 axes by defining an additional set of - 3 linear axes known as U, V and W -\end_layout - -\end_body -\end_document diff --git a/docs/src/gcode/tool_compensation.lyx b/docs/src/gcode/tool_compensation.lyx deleted file mode 100644 index 40438ce1c..000000000 --- a/docs/src/gcode/tool_compensation.lyx +++ /dev/null @@ -1,724 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage{a4} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Tool Compensation -\end_layout - -\begin_layout Section -Tool Length Offsets -\end_layout - -\begin_layout Subsection -Touch Off -\begin_inset LatexCommand index -name "Touch Off" - -\end_inset - - -\end_layout - -\begin_layout Standard -Using the Touch Off Screen in the AXIS interface you can update the tool - table automatically. - -\end_layout - -\begin_layout Standard -Typical steps for updating the tool table: -\end_layout - -\begin_layout Enumerate -After homing load a tool with "TnM6" where "n" is the tool number. - -\end_layout - -\begin_layout Enumerate -Move tool to an extablished point using a gauge or take a test cut and measure. -\end_layout - -\begin_layout Enumerate -Select "Tool Table" in the Coordinate System drop down box. -\end_layout - -\begin_layout Enumerate -Enter the gauge or measured dimension and select OK. -\end_layout - -\begin_layout Standard -The Tool Table will be changed with the correct Z length to make the DRO - display the correct Z position and a G43 command will be issued so the - new tool Z length will be in effect. - Tool table touch off is only available when a tool is loaded with "TnM6". -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Touch Off Tool Table -\begin_inset LatexCommand label -name "cap:Touch-Off-Tool" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/ToolTable-TouchOff.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Using G10 L1 -\end_layout - -\begin_layout Standard -By using "G10 L1 Pn Zx" where "n" is the tool number and "x" is the offset - from the MDI window or in your program you can also set the tool table. - -\end_layout - -\begin_layout Section -Tool Table -\end_layout - -\begin_layout Standard -The "Tool Table" is a text file that contains information about each tool. - The file is located in the same directory as your configuration and is - called "tool.tbl". - The tools might be in a tool changer or just changed manually. - The file can be edited with a text editor or be updated using G10 L1. - See the Lathe Specifics Section for lathe tool table example. - The maximum number of entries in the tool table is 56. - The maximum tool and pocket number is 99999. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mill Format Tool File -\begin_inset LatexCommand label -name "cap:Mill-Format-Tool-File" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -T1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -P1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D0.125000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z+0.511000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -;1/8 -\begin_inset Quotes erd -\end_inset - - End Mill -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -T2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -P2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D0.062500 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z+0.100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -;1/16 -\begin_inset Quotes erd -\end_inset - - End Mill -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -T99999 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -P99999 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D23.75000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Z-0.3000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -;You have a lot of tools -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -In general new tool table line format is: -\end_layout - -\begin_layout Itemize -T - integer tool number -\end_layout - -\begin_layout Itemize -P - integer pocket number -\end_layout - -\begin_layout Itemize -D - float tool diameter -\end_layout - -\begin_layout Itemize -X..W - float tool length offset on specified axis -\end_layout - -\begin_layout Itemize -I - float front angle (lathe tools) -\end_layout - -\begin_layout Itemize -J - float back angle (lathe tools) -\end_layout - -\begin_layout Itemize -Q - int tool orientation (lathe) -\end_layout - -\begin_layout Itemize -; - begin of comment -\end_layout - -\begin_layout Subsection -Tool Changers -\end_layout - -\begin_layout Standard -EMC supports three types of tool changers "manual", "random location" and - "fixed location". - Information about configuring an EMC tool changer is in the Integrators - Manual. -\end_layout - -\begin_layout Subsubsection* -Manual Tool Changer -\end_layout - -\begin_layout Standard -Manual tool changer (you change the tool by hand) is treated like a fixed - location tool changer and the P number is ignored. - Using the manual tool changer only makes sense if you have tool holders - that remain with the tool (Cat, NMTB, Kwik Switch etc.) when changed thus - preserving the location of the tool to the spindle. - Machines with R-8 or router collet type tool holders do not preserve the - location of the tool and the manual tool changer should not be used. -\end_layout - -\begin_layout Subsubsection* -Fixed Location Tool Changers -\end_layout - -\begin_layout Standard -Fixed location tool changers like lathe turrets the tools are in a fixed - position in the tool changer. - When EMC is configured for a fixed location tool changer the "P" number - is ignored (but read, preserved and rewritten) by EMC, so you can use P - for any bookkeeping number you want. -\end_layout - -\begin_layout Subsubsection* -Random Location Tool Changers -\end_layout - -\begin_layout Standard -Random location tool changers swaps the tool in the spindle with the one - in the changer. - This type of tool changer the tool location will always be in a different - pocket after a tool change. - When a tool is changed EMC rewrites the pocket number to keep track of - where the tool are. - T can be any number but P must be a number that makes sense for the machine. -\end_layout - -\begin_layout Section -Cutter Radius Compensation -\begin_inset LatexCommand label -name "sec:Cutter-Radius-Compensation" - -\end_inset - - -\end_layout - -\begin_layout Standard -Cutter Radius Compensation allows the programmer to program the tool path - without knowing the exact tool diameter. - The only caveat is the programmer must program the lead in move to be at - least as long as the largest tool radius that might be used. -\end_layout - -\begin_layout Standard -There are two possible paths the cutter can take while cutter radius compensatio -n is on to the left or right side of a line when facing the direction of - cutter motion from behind the cutter. - To visualize this imagine you were standing on the part walking behind - the tool as it progresses across the part. - G41 is your left side of the line and G42 is the right side of the line. -\end_layout - -\begin_layout Standard -The end point of each move depends on the next move. - If the next move creates an outside corner the move will be to the end - point of the compensated cut line. - If the next move creates in an inside corner the move will stop short so - to not gouge the part. - The following figure shows how the compensated move will stop at different - points depending on the next move. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Compensation End Point -\begin_inset LatexCommand label -name "cap:Compensation-End-Point" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/comp-path.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Overview -\end_layout - -\begin_layout Subsubsection* -Tool Table -\end_layout - -\begin_layout Standard -Cutter radius compensation uses the data from the tool table to determine - the offset needed. - The data can be set at run time with G10 L1. -\end_layout - -\begin_layout Subsubsection* -Programming Entry Moves -\end_layout - -\begin_layout Standard -Any move that is long enough to perform the compensation will work as the - entry move. - The minimum lenght is the cutter radius. - This can be a rapid move above the work piece. - If several rapid moves are issued after a G41/42 only the last one will - move the tool to the compensated position. -\end_layout - -\begin_layout Standard -In the following figure you can see that the entry move is compensated to - the right of the line. - This puts the center of the tool to the right of X0 in this case. - If you were to program a profile and the end is at X0 the resulting profile - would leave a bump due to the offset of the entry move. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Entry Move -\begin_inset LatexCommand label -name "cap:Entry-Move" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/comp02.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection* -Z Motion -\end_layout - -\begin_layout Standard -Z axis motion may take place while the contour is being followed in the - XY plane. - Portions of the contour may be skipped by retracting the Z axis above the - part and by extending the Z-axis at the next start point. - -\end_layout - -\begin_layout Subsubsection* -Rapid Moves -\end_layout - -\begin_layout Standard -Rapid moves may be programed while compensation is turned on. - -\end_layout - -\begin_layout Subsubsection* -Good Practices -\end_layout - -\begin_layout Itemize -Start a program with G40 to make sure compensation is off. -\end_layout - -\begin_layout Subsection -Examples -\end_layout - -\begin_layout Subsubsection -Outside Profile -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Outside Profile -\begin_inset LatexCommand label -name "cap:Outside-Profile" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/outside-comp.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Inside Profile -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Inside Profile -\begin_inset LatexCommand label -name "cap:Inside-Profile" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/inside-comp.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/gcode/tool_compensation_fr.lyx b/docs/src/gcode/tool_compensation_fr.lyx deleted file mode 100644 index 331733cf0..000000000 --- a/docs/src/gcode/tool_compensation_fr.lyx +++ /dev/null @@ -1,1206 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble - -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Fichier d'outils et compensations -\layout Section - -Fichier d'outils -\layout Standard - -Les longueurs et diamtres d'outils peuvent tre lus dans un fichier d'outils - (voir la section -\begin_inset LatexCommand \ref{sub:-Fichier-d'outils} - -\end_inset - -) ou provenir d'un mot spcifi pour activer la compensation d'outil. -\layout Section - -Compensation d'outil -\layout Standard - -La compensation d'outil peut causer beaucoup de problmes aux meilleurs - programmeurs de code nc. - Mais elle peut aussi tre une aide puissante quand elle est utilise pour - aider un oprateur obtenir une pice la cote. - En rglant la longueur et le diamtre des outils dans une table d'outils, - les dcalages peuvent tre utiliss pendant un cycle d'usinage qui tient - compte des variations de taille de l'outil, ou pour des dviations mineures - des trajectoires programmes. - Et ces changements peuvent tre faits sans que l'oprateur n'ait changer - quoi que ce soit dans le programme. -\layout Standard - -Tout au long de ce module, vous trouverez occasionnellement des rfrences - des fonctions canoniques, l o il est ncessaire pour le lecteur de - comprendre comment fonctionne une compensation d'outil dans une situation - spcifique. - Ces rfrences ont pour but de donner au lecteur une ide de la squences - plutt que d'exiger qu'il comprenne la faon dont les fonctions canoniques - elles-mmes fonctionnent dans EMC. - -\layout Section - -Compensation de longueur d'outil -\begin_inset LatexCommand \label{sec:Compensation-longueur-d'outil} - -\end_inset - - -\layout Standard - -Les compensations de longueur d'outil sont donnes comme des nombres positifs - dans la table d'outils. - Une compensation d'outil est programme en utilisant G43 Hn, o n est le - numro d'index de l'outil souhait dans la table d'outil. - Il est prvu que toutes les entres dans la table d'outils soit positives. - La valeur de H est vrifie, elle doit tre un entier non ngatif quand - elle est lue. - L'interprteur se comporte comme suit: -\layout Standard - -1. - Si G43 Hn est programm, un appel la fonction USE_TOOL_LENGTH_OFFSET(longueur -) est fait (o longueur est l'cart de longueur, lu dans la table d'outils, - de l'outil index n), tool_length_offset est repositionn dans le modle - de rglages de la machine et la valeur de current_z dans le modle est - ajuste. - Noter que n n'a pas besoin d'tre le mme que le numro de slot de l'outil - actuellement dans la broche. -\layout Standard - -2. - Si G49 est programm, USE_TOOL_LENGTH_OFFSET(0.0) est appele, tool_length_offse -t est remis 0.0 dans le modle de rglages de la machine et la valeur courante - de current_z dans le modle est ajuste. - L'effet de la compensation de longueur d'outil est illustre dans la capture - ci-dessous. - Noter que la longueur de l'outil est soustraite de Z pour que le point - contrl programm corresponde la pointe de l'outil.Il faut galement - noter que l'effet de la compensation de longueur est immdiat quand on - voit la position de Z comme une coordonne relative mais il est sans effet - sur la position actuelle de la machine jusqu' ce qu'un mouvement en Z - soit programm. -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "60col%" -collapsed false - -\layout Standard - -Programme de test de longueur d'outil. - -\layout Standard - -Tool #1 is 1 inch long. -\layout Standard - - -\family typewriter -N01 G1 F15 X0 Y0 Z0 -\newline -N02 G43 H1 Z0 X1 -\newline -N03 G49 X0 Z0 -\newline -N04 G0 X2 -\newline -N05 G1 G43 H1 G4 P10 Z0 X3 -\newline -N06 G49 X2 Z0 -\newline -N07 G0 X0 -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename length1.png - width 2in - -\end_inset - - -\end_inset - - -\layout Standard - -Avec ce programme, dans la plupart des cas, la machine va appliquer le dcalage - sous forme d'une rampe pendant le mouvement en xyz suivant le mot G43. -\layout Section - -Compensation de rayon d'outil -\begin_inset LatexCommand \label{sec:Compensation-rayon-d'outil} - -\end_inset - - -\layout Standard - - -\begin_inset Note -collapsed true - -\layout Standard - -By Jon Elson -\end_inset - - -\layout Standard - -La compensation de rayon d'outil (galement appele compensation de diamtre - d'outil) t ajoute aux spcifications RS-274D la demande d'utilisateurs, - car elle est extrmement utile, mais son implmentation a t assez mal - pense. - L'objectif de cette fonctionnalit est de permettre aux programmeurs de - -\begin_inset Quotes eld -\end_inset - -virtualiser -\begin_inset Quotes erd -\end_inset - - la trajectoire de l'outil, de sorte que la machine puisse pendant toute - l'excution, dterminer la bon dcalage a apporter la position de l'outil - pour respecter les cotes, en s'appuyant sur les diamtres d'outils existants. - Si un outil est raffut, son diamtre sera lgrement plus petit que celui - d'origine, il faudra galement en tenir compte. -\layout Standard - -Le problme est pour donner la machine la trajectoire exacte o l'outil - doit usiner, sur le ct intrieur d'un parcours imaginaire, ou sur le - ct extrieur. - Comme ces trajectoires ne sont pas ncessairement fermes (mme si elles - peuvent l'tre), il est quasiment impossible la machine de connatre - de quel ct du profil elle doit compenser l'outil. - Il a t dcid qu'il n'y aurait que deux choix possibles, outil -\begin_inset Quotes eld -\end_inset - -gauche -\begin_inset Quotes erd -\end_inset - - du profil usiner et outil -\begin_inset Quotes eld -\end_inset - -droite -\begin_inset Quotes erd -\end_inset - - du profil usiner. - Ce qui doit tre interprt gauche ou droite du profil usiner en - suivant l'outil le long du profil. -\layout Subsection - -Compensation de rayon d'outil, dtails -\layout Standard - - -\begin_inset Note -collapsed true - -\layout Standard - -By Tom Kramer and Fred Proctor -\end_inset - - -\layout Standard - -Les possibilits de compensation de rayon d'outil de l'interprteur, autorise - le programmeur spcifier si l'outil doit passer gauche ou droite - du profil usiner. - Ce profil peut tre un contour ouvert ou ferm, dans le plan XY compos - de segments en arcs de cercles et en lignes droites. - Le contour peut tre le pourtour d'une pice brute ou, il peut tre une - trajectoire exacte suivie par un outil mesur avec prcision. - La figure ci-dessous, montre deux exemples de trajectoires d'usinage d'une - pice triangulaire, utilisant la compensation de rayon d'outil. -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "50col%" -collapsed false - -\layout Standard - -Dans les deux exemples, le triangle gris reprsente le matriau restant - aprs usinage et la ligne extrieure reprsente le parcours suivi par le - centre de l'outil. - Dans les deux cas le triangle gris est conserv. - Le parcour de gauche (avec les coins arrondis) est le parcours gnralement - interprt. - Dans la mthode de droite (celle marque Not this way), l'outil ne reste - pas en contact avec les angles vifs du triangle gris. - -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset LatexCommand \label{figure:7} - -\end_inset - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp.png - width 2.5in - -\end_inset - - -\end_inset - - -\layout Standard - -Des mouvements sur l'axe Z peuvent avoir lieu pendant que le contour est - suivi dans le plan XY. - Des portions du contour peuvent tre franchies avec l'axe Z en retrait - au dessus de la pice pendant la poursuite du parcour et jusqu'au point - o l'usinage doit reprendre, l'axe Z plongera de nouveau en position. - Ces dgagements de zones non usines peuvent tre faits en vitesse travail - (G1), en rapide (G0), en vitesse inverse du temps (G93) ou en avance en - units par minute (G94) toutes peuvent tre utilises avec la compensation - de rayon d'outil. - Sous G94, la vitesse sera applique la pointe de l'outil coupant, non - au contour programm. -\layout Subsubsection* - -Instructions de programmation -\layout Itemize - -Pour activer la compensation de rayon d'outil, programmer soit, G41 (pour - maintenir l'outil gauche du profil usiner) soit, G42 (pour maintenir - l'outil droite du profil). - Dans la figure -\begin_inset LatexCommand \ref{figure:7} - -\end_inset - -, par exemple, si G41 tait programm, l'outil devrait tourner en sens horaire - autour du triangle et dans le sens contraire si G42 tait programm. -\layout Itemize - -Pour dsactiver la compensation de rayon d'outil, programmer G40. -\layout Itemize - -Si un G40, G41, ou G42 est programm dans la mme ligne qu'un mouvement - d'axe, la compensation de rayon sera active ou dsactive avant que le - mouvement ne soit fait. - Pour que le mouvement s'effectue en premier, il doit tre programm sparment - et avant. -\layout Subsubsection* - -La valeur de D -\layout Standard - -L'interprteur actuel requiert une valeur D sur chaque ligne contenant un - mot G41 ou G42. - Le nombre D doit tre un entier positif. - Il reprsente le numro de slot de l'outil, dont le rayon (la moiti du - diamtre d'outil indiqu dans la table d'outils) sera compens. - Il peut aussi tre gal zro, dans ce cas, la valeur du rayon sera aussi - gale zro. - Tous les slots de la table d'outils peuvent tre slectionns de cette - faon. - Le nombre D n'est pas ncessairement le mme que le numro de slot de l'outil - mont dans la broche. -\layout Subsubsection* - -Table d'outils -\layout Standard - -La compensation de rayon d'outil utilise les donnes fournies par la table - d'outils de la machine. - Pour chaque slot d'outil dans le carrousel, la table d'outils contient - le diamtre de l'outil rang cet emplacement (ou la diffrence entre - le diamtre nominal de l'outil plac dans ce slot et son diamtre actuel). - La table d'outils est indexe par les numros de slot. - Reportez vous la page des -\begin_inset Quotes eld -\end_inset - -Fichiers d'outils -\begin_inset Quotes erd -\end_inset - - pour savoir comment remplir ces fichiers. -\layout Subsubsection* - -Deux types de contour -\layout Standard - -L'interprteur contrle la compensation pour deux types de contour: -\layout Itemize - -1) Le contour donn dans le code NC correspond au bord extrieur du matriau - aprs usinage. - Nous l'appellerons "contour sur le profil du matriau". - -\layout Itemize - -2) Le contour donn dans le code NC correspond la trajectoire suivie par - le centre d'un outil de rayon nominal. - Nous l'appellerons "contour sur le parcours d'outil". -\layout Standard - -L'interprteur ne dispose d'aucun paramtre pour dterminer quel type de - contour est utilis, mais la description des contours est diffrente (pour - la mme gomtrie de pice) entre les deux types, les valeurs des diamtres - dans la table d'outils seront galement diffrentes pour les deux types. -\layout Subsubsection* - -Contour sur le profil du matriau -\layout Standard - -Lorsque le contour est sur le profil du matriau, c'est ce trac qui est - dcrit dans le programme NC. - Pour un contour sur le profil du matriau, la valeur du diamtre dans la - table d'outils correspond au diamtre rel de l'outil courant. - Cette valeur dans la table doit tre positive. - Le code NC pour ce type de contour reste toujours le mme l'exception - du diamtre de l'outil (actuel ou nominal). - -\layout Standard - -Exemple 1 : -\layout Standard - -Voici un programme NC qui usine le matriau en suivant le profil d'un des - triangles de la figure prcdente. - Dans cet exemple, la compensation de rayon est celle du rayon actuel de - l'outil, soit 0.5 -\begin_inset Quotes erd -\end_inset - -. - La valeur pour le diamtre dans la table d'outil est de 1.0 -\begin_inset Quotes erd -\end_inset - - . -\layout Standard - - -\family typewriter -N0010 G41 G1 X2 Y2 (active la compensation et fait le mouvement d'entre) -\layout Standard - - -\family typewriter -N0020 Y-1 (suit la face droite du triangle) -\layout Standard - - -\family typewriter -N0030 X-2 (suit la base du triangle) -\layout Standard - - -\family typewriter -N0040 X2 Y2 (suit l'hypotnuse du triangle) -\layout Standard - - -\family typewriter -N0050 G40 (dsactive la compensation) -\layout Standard - -Avec ce programme, l'outil suit cette trajectoire: un mouvement d'entre, - puis la trajectoire montre dans la partie gauche de la figure, avec un - dplacement de l'outil en sens horaire autour du triangle. - Noter que les coordonnes du triangle de matriau apparaissent dans le - code NC. - Noter aussi que la trajectoire inclus trois arcs qui ne sont pas explicitement - programms, ils sont gnrs automatiquement. -\layout Subsubsection* - -Contour sur le parcours d'outil -\layout Standard - -Lorsque le contour est sur le parcours d'outil, la trajectoire dcrite dans - le programme correspond au parcours que devra suivre le centre de l'outil. - Le bord de l'outil, un rayon de l, (except durant les mouvements d'entre) - suivra la gomtrie de la pice. - La trajectoire peut tre cre manuellement ou par un post-processeur, - selon la pice qui doit tre ralise. - Pour l'interprteur, le parcours d'outil doit tre tel que le bord de l'outil - reste en contact avec la gomtrie de la pice, comme montr gauche de - la figure 7. - Si une trajectoire du genre de celle montre sur la droite de la figure - 7 est utilise, dans laquelle l'outil ne reste pas en permanence au contact - avec la gomtrie de la pice, l'interprteur ne pourra pas compenser correctem -ent si un outil en dessous de son diamtre nominal est utilis. -\layout Standard - -Pour un contour sur le parcours d'outil, la valeur pour le diamtre de l'outil - dans la table d'outils devra tre un petit nombre positif si l'outil slectionn - est lgrement surdimensionn. - La valeur du diamtre sera un petit nombre ngatif si l'outil est lgrement - sous-dimensionn. - Si un diamtre d'outil est ngatif, l'interprteur compense de l'autre - ct du contour programm et utilise la valeur absolue donne au diamtre. - Si l'outil courant est son diamtre nominal, la valeur dans la table - d'outil doit tre zro. -\layout Standard - -Exemple de contour sur le parcours d'outil -\layout Standard - -Supposons que le diamtre de l'outil courant mont dans la broche est de - 0.97 et le diamtre utilis en gnrant le parcours d'outil a t de 1.0 - . - Alors la valeur de diamtre dans la table d'outils pour cet outil est de - -0.03. - Voici un programme NC qui va usiner l'extrieur d'un triangle de la figure - 7. -\layout Standard - - -\family typewriter -\size small -N0010 G1 X1 Y4.5 (mouvement d'alignement) -\newline -N0020 G41 G1 Y3.5 (active la compensation et premier mouvement d'entre) -\newline -N0030 G3 X2 Y2.5 I1 (deuxime mouvement d'entre) -\newline -N0040 G2 X2.5 Y2 J-0.5 (usinage le long de l'arc en haut du parcours d'outil) -\newline -N0050 G1 Y-1 (usinage le long du ct droit du parcours d'outil) -\newline -N0060 G2 X2 Y-1.5 I-0.5 (usinage de l'arc en bas droite) -\newline -N0070 G1 X-2 (usinage de la base du parcours d'outil) -\newline -N0080 G2 X-2.3 Y-0.6 J0.5 (usinage de l'arc en bas gauche) -\newline -N0090 G1 X1.7 Y2.4 (usinage de l'hypotnuse) -\newline -N0100 G2 X2 Y2.5 I0.3 J-0.4 (usinage de l'arc en haut droite) -\newline -N0110 G40 (dsactive la compensation) -\layout Standard - -Avec ce programme, l'outil suit cette trajectoire: un mouvement d'alignement, - deux mouvements d'entre, puis il suit une trajectoire lgrement intrieure - au parcours d'outil montr sur la figure 7 en tournant en sens horaire - autour de la pice. - Cette compensation est droite de la trajectoire programme, mme si c'est - G41 qui est programm, en raison de la valeur ngative du diamtre. -\layout Subsubsection* - -Erreurs de programmation et limitations -\layout Standard - -Les messages en rapport avec la compensation de rayon d'outil, dlivrs - par l'interprteur sont les suivants: -\layout Enumerate - -Impossible de changer les dcalages d'axes avec la compensation de rayon - d'outil -\layout Enumerate - -Impossible de changer d'unit avec la compensation de rayon d'outil -\layout Enumerate - -Impossible d'activer la compensation de rayon d'outil en dehors du plan - XY -\layout Enumerate - -Action impossible, la compensation de rayon d'outil est dj active -\layout Enumerate - -Impossible d'utiliser G28 ou G30 avec la compensation de rayon d'outil -\layout Enumerate - -Impossible d'utiliser G53 avec la compensation de rayon d'outil -\layout Enumerate - -Impossible d'utiliser le plan XZ avec la compensation de rayon d'outil -\layout Enumerate - -Impossible d'utiliser le plan YZ avec la compensation de rayon d'outil -\layout Enumerate - -Coin concave avec la compensation de rayon d'outil -\layout Enumerate - -Interfrence de l'outil avec une partie finie de la pice avec la compensation - de rayon d'outil -\begin_inset Foot -collapsed true - -\layout Standard - -Le terme anglais -\begin_inset Quotes eld -\end_inset - -gouging -\begin_inset Quotes erd -\end_inset - - indique une interfrence entre l'outil et une partie finie de la pice - ou la paroi d'une cavit. - Par extension, le terme est parfois repris pour une interfrence entre - le porte-outil ou la broche et la pice. -\end_inset - - -\layout Enumerate - -Mot D sur une ligne sans mot de commande G41 ni G42 -\layout Enumerate - -Index de rayon d'outil trop grand -\layout Enumerate - -Le rayon de l'outil n'est pas infrieur au rayon de l'arc avec la compensation - de rayon -\layout Enumerate - -Deux G-codes du mme groupe modal sont utiliss. -\layout Standard - -Pour certains de ces messages, des explications sont donnes plus loin. -\layout Standard - -Changer d'outil alors que la compensation de rayon d'outil est active n'est - pas considr comme une erreur, mais il est peu probable que cela soit - fait intentionnellement. - Le rayon d'outil utilis lors de l'tablissement de la compensation continuera - tre utilis jusqu' la dsactivation de la compensation, mme si un - nouvel outil est effectivement utilis. -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "40col%" -collapsed false - -\layout Standard -\align left -Quand la compensation de rayon d'outil est active, il est physiquement possible - de faire un cercle, dont le rayon est la moiti du diamtre de l'outil - donn dans la table d'outils, il sera tangent avec l'outil en tout point - de son contour. -\end_inset - - -\layout Standard - - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp_error.png - width 3in - -\end_inset - - -\end_inset - - -\layout Standard - -En particulier, l'interprteur traite les coins concaves et les arcs concaves - plus petits que l'outil, comme des erreurs, le cercle ne peut pas tre - maintenu tangent avec le contour dans ces situations. - Cette dtection de dfaut, ne limite pas les formes qui peuvent tre usines, - mais elle requiert que le programmeur prcise la forme exacte usiner - (ou le parcours d'outil qui doit tre suivi) et non une approximation. - A cet gart, l'interprteur utilis par EMC diffre des interprteurs utiliss - dans beaucoup d'autres contrleurs, qui passent ces erreurs sous silence - et laissent l'outil interfrer avec la partie finie de la pice (gouging) - ou arrondissent des angles qui devraient tre vifs. - Il n'est pas ncessaire, de dplacer l'outil entre la dsactivation de - la compensation et sa ractivation, mais le premier mouvement suivant la - ractivation sera considr comme premier mouvement, comme dj dcrit - plus tt. -\layout Standard - -Il n'est pas possible de passer d'un index de rayon d'outil un autre alors - que la compensation est active. - Il est galement impossible de basculer la compensation d'un ct l'autre - avec la compensation active. - Si le prochain point de destination XY est dj dans le primtre d'action - de l'outil quand la compensation est active, le message indiquant une - interfrence outil/surface finie, s'affichera quand la ligne du programme - qui donne cette destination sera atteinte. - Dans ce cas, l'outil a dj usin dans le matriau, l o il n'aurait pas - d... -\layout Standard - -Si le numro de slot programm par le mot D est suprieur au nombre d'emplacemen -ts disponibles dans le carrousel, un message d'erreur sera affich. - Dans l'implmentation actuelle, le nombre d'emplacements maximum est de - 68. -\layout Standard - -Le message d'erreur "Deux G-codes du mme groupe modal sont utiliss" est - un message gnrique utilis pour plusieurs jeux de G-codes. - Il s'applique la compensation de rayon d'outil, il signifie que plus - d'un code G40, G41 ou G42 apparat sur la mme ligne de progamme NC, ce - qui n'est pas permis. -\layout Subsection* - -Premier mouvement -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "40col%" -collapsed false - -\layout Standard - -L'algorithme utilis lors du premier dplacement, quand c'est une ligne - droite, consiste tracer une droite, depuis le point d'arrive, tangente - un cercle dont le centre est le point actuel, et le rayon, celui de l'outil. - Le point de destination de la pointe de l'outil se trouve alors au centre - d'un cercle de mme rayon, tangeant la ligne droite trace prcdemment. - C'est montr sur la figure 9. - Si le point programm est situ l'intrieur de la premire section d'outil - (le cercle de gauche), une erreur sera signale. -\end_inset - - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp_straight.png - width 3in - -\end_inset - - -\end_inset - - -\layout Standard -\added_space_top 0.3cm \added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp_arc.png - width 3in - -\end_inset - - -\end_inset - - -\layout Standard - -Si le premier mouvement aprs que la compensation de rayon d'outil a t - active est un arc, l'arc qui sera gnr est driv d'un arc auxiliaire, - qui a son centre identique celui du point central programm, passe par - le point final de l'arc programm et, est tangent l'outil son emplacement - courant. - Si l'arc auxiliaire ne peut pas tre construit, une erreur sera signale. - L'arc gnr dplacera l'outil pour qu'il reste tangeant l'arc auxiliaire - pendant tout le mouvement. - C'est ce que montre sur la figure 10. -\layout Standard - -Indpendamment du fait que le premier dplacement est une droite ou un arc, - l'axe Z peut aussi se dplacer en mme temps. - Il se dplacera linairement, comme c'est le cas quand la compensation - de rayon n'est pas utilise. - Les mouvements des axes rotatifs (A, B et C) sont autoriss avec la compensatio -n de rayon d'outil, mais leur utilisation serait vraiment trs inhabituelle. -\layout Standard - -Aprs les mouvements d'entre en compensation de rayon d'outil, l'interprteur - maintiendra l'outil tangeant au contour programm et du ct appropri. - Si un angle aig se trouve dans le parcours, un arc est insr pour tourner - autour de l'angle. - Le rayon de cet arc sera de la moiti du diamtre de l'outil donn dans - la table d'outils. -\layout Standard - -Quand la compensation de rayon est dsactive, aucun mouvement de sortie - particulier n'est fait. - Le mouvement suivant sera ce qu'il aurait t si la compensation n'avait - jamais t active et que le mouvement prcdent ait plac l'outil sa - position actuelle. -\layout Subsubsection* - -Programmation des mouvements d'entre -\layout Standard - -En gnral, un mouvement d'alignement et deux mouvements d'entre sont demands - pour commencer la compensation correctement. - Cependant, si le contour programm comporte des pointes et des angles aigs, - un seul mouvement d'entre (plus, ventuellement, un mouvement de pr-entre) - est demand. - La mthode gnrale, qui fonctionne dans toutes les situations, est dcrite - en premier. - Elle suppose que le programmeur connait dj le contour et son but est - d'ajouter le mouvement d'entre. -\layout Subsubsection* - -Mthode gnrale -\layout Standard - -La mthode gnrale de programmation comprend un mouvement d'alignement - et deux mouvements d'entre. - Les mouvements d'entre expliqus ci-dessus, seront repris comme exemple. - Voici le code correspondant: -\layout Standard - - -\family typewriter -\size small -N0010 G1 X1 Y4.5 (mouvement d'alignement vers le point C) -\newline -N0020 G41 G1 Y3.5 (active la compensation et fait le premier mouvement d'entre - vers le point B) -\newline -N0030 G3 X2 Y2.5 I1 (fait le second mouvement d'entre vers le point A) -\layout Standard - -Voir la figure 11. - La figure montre les deux mouvements d'entre mais pas le mouvement d'alignemen -t. -\layout Standard - -En premier, choisir un point A sur le contour o il convient d'attacher - un arc d'entre. - Spcifier un arc l'extrieur du contour qui commence au point B et s'achve - au point A, tangeant au contour (et aller dans la mme direction que celle - prvue pour tourner autour du contour). - Le rayon doit tre suprieur la moiti du diamtre donn dans la table - d'outils. - Ensuite, tirer une ligne tangeante l'arc, du point B au point C, plac - de telle sorte que la ligne BC fasse plus d'un rayon de long. -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "40col%" -collapsed false - -\layout Standard - -Aprs que la construction soit termine, le code est crit dans l'ordre - inverse de celui de la construction. - La compensation de rayon d'outil est active aprs le mouvement d'alignement - et avant le premier mouvement d'entre. - Dans le code prcdent, la ligne N0010 fait le mouvement d'alignement, - la ligne N0020 active la compensation et fait le premier mouvement d'entre - et la ligne N0030 fait le second mouvement d'entre. -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp_entry.png - width 3in - -\end_inset - - -\end_inset - - -\layout Standard - -Dans cet exemple, l'arc AB et la ligne BC sont trs larges, ce n'est pas - ncessaire. - Pour un contour sur parcours d'outil, le rayon de l'arc AB demande juste - tre lgrement plus grand que la variation maximale du rayon de l'outil - par rapport son rayon nominal. - Egalement, pour un contour sur parcours d'outil, le ct choisi pour la - compensation doit tre celui utilis si l'outil est surdimensionn. - Comme mentionn prcdemment, si l'outil est sousdimensionn, l'interprteur - basculera de l'autre ct. -\layout Subsubsection* - -Mthode simple -\layout Standard - -Si le contour est sur le profil du matriau et qu'il comprends des angles - aigs quelque part sur le contour, une mthode simple pour faire l'entre - est possible. - Voir la figure 12. -\layout Standard - -Premirement, choisir un angle aig, par exemple D. - Ensuite, dcider comment on va tourner autour du matriau depuis le point - D. - Dans notre exemple nous maintiendrons l'outil gauche du profil et nous - avancerons vers F. - Prolonger la ligne FD (si le segment suivant du contour est un arc, prolonger - la tangeante l'arc FD depuis D) pour diviser la surface extrieure au - contour proche de D en deux parties. - S'assurer que le centre de l'outil est actuellement dans la partie du mme - ct de la ligne prolonge que le matriau. - Sinon, dplacer l'outil dans cette partie. - Par exemple, le point E reprsente la position courante du centre de l'outil. - Comme il est du mme ct de la ligne FD prolonge que le triangle gris - du matriau, aucun mouvement supplmentaire n'est ncessaire. - Maintenant crire la ligne de code NC qui active la compensation et faire - le mouvement vers le point D -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 1 -height "1pt" -width "40col%" -collapsed false - -\layout Standard - - -\family typewriter -\size small -N0010 G41 G1 X2 Y2 (active la compensation et fait le mouvement d'entre) - -\layout Standard - -Cette mthode fonctionnera galement avec un angle aig sur un contour sur - parcours d'outil, si l'outil est surdimensionn, mais elle chouera si - il est sousdimensionn. -\end_inset - - -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename radius_comp_entry_simple.png - width 3in - -\end_inset - - -\end_inset - - -\layout Subsubsection* - -Autres points o est excute la compensation de rayon d'outil -\layout Standard - -Le jeu complet de fonctions canoniques comprend des fonctions qui activent - et dsactivent la compensation de rayon d'outil, de sorte qu'elle puisse - tre active quand le contrleur excute une de ces fonctions. - Dans l'interprteur cependant, ces commandes ne sont pas utilises. - La compensation est assure par l'interprteur et reflte dans les sorties - des commandes, c'est l'interprteur qui continuera diriger les mouvements - du centre de l'outil. - Cela simplifie le travail du contrleur de mouvement tout en rendant le - travail de l'interprteur un peu plus difficile. -\layout Subsubsection* - -Algorithmes pour compensation de rayon d'outil -\layout Standard - -L'interprteur permet que les mouvements d'entre et de sortie soient des - arcs. - Le comportement pour les mouvements intermdiaires est le mme, except - que certaines situations sont traites comme des erreurs par l'interprteur - alors qu'elles ne le sont pas sur d'autres contrleurs de machine. - -\layout Standard - -Donnes relatives la compensation de rayon d'outil: -\layout Standard - -L'interprteur conserve trois donnes pour la compensation de rayon d'outil: - Le rglage lui mme (gauche, droite ou arrt), program_x et program_y. - Les deux dernires reprsentent les positions en X et en Y donnes dans - le code NC quand la compensation est active. - Quand elle est dsactive, les deux entres sont fixes de trs petites - valeurs (10 e-20 ) dont la valeur symbolique (dans un #define) est "unknown". - L'interprteur utilise, les items current_x et current_y qui reprsentent, - le centre de la pointe de l'outil (dans le systme de coordonnes courant), - tout moment. -\layout Subsection* - -Exemples de Jon Elson -\layout Standard - -Toutes les informations spcifiques au systme se rfrent au programme - EMC du NIST, mais doit aussi s'appliquer aux plus modernes contrleurs - CNC. - Ma mthode de vrification de ces programmes est d'abord de slectionner - l'outil zro, de sorte que les commandes de compensation soient ignores. - Ensuite, je colle une feuille de papier sur une plaque tenue de niveau - dans l'tau, une sorte de platine. - J'installe une recharge de stylo ressort dans la broche. - C'est une recharge standard de stylo bille en mtal avec un ressort, - dans un corps de 12mm de diamtre. - Elle un ressort pour la faire rentrer dans le corps du stylo, et un 'collet' - l'arrire qui permet la pointe de se rtracter malgrs le ressort, - mais qui la laisse centre quelques diximes prs. - Je charge le programme avec l'outil zro slectionn, et il trace une ligne - l'extrieur de la pice. - (voir la figure suivante) Alors, je slectionne un outil avec le diamtre - de l'outil que j'envisage d'utiliser et je lance le programme une nouvelle - fois. - (Noter que la coordonne Z dans le programme ne doit pas tre change pour - viter de plonger le stylo au travers du plateau ;-) Maintenant, je dois - voir si la compensation G41 ou G42 que je spcifie passe sur le ct voulu - de la pice. - Sinon, je modifie avec la compensation du ct oppos, et j'dite la compensati -on oppose dans le programme, puis j'essaye nouveau. - Maintenant, avec l'outil sur le ct correct de la pice, je peut vrifier - si quelque part sur le parcours l'outil est 'trop gros' pour usiner les - surfaces concaves. - Ma vieille Allen-Bradley 7320 tait trs indulgente sur ce point, mais - EMC ne tolre rien. - Si vous avez la moindre concavit o deux lignes se rencontrent moins - de 180 degrs avec un outil de taille dfinies, EMC va s'arrter l, avec - un message d'erreur. - Mme si le gougeage est de .001mm de profondeur. - Alors, je fais toujours l'approche sur le mouvement d'entre et le mouvement - de sortie juste sur un coin de la pice, en fournissant un angle de plus - de 180 degrs, afin qu'EMC ne hurle pas. - Cela exige une grande attention lors de l'ajustement des points de dpart - et de sortie, qui ne sont pas compenss par le rayon d'outil, mais ils - doivent tre choisis avec un rayon approximatif bien rflchi. -\layout Standard - -Les commandes sont: -\layout Standard - -G40 - Annuler la compensation de rayon d'outil -\newline -G41 - Activer la compensation, outil gauche du profil -\newline -G42 - Activer la compensation, outil droite du profil -\layout Standard - -Voici un petit fichier qui usine le ct d'une pice avec de multiples arcs - convexes et concaves et plusieurs lignes droites. - La plupart de ces commandes ont t traces depuis Bobcad/CAM, mais les - lignes N15 et N110 ont t ajoutes par moi et certaines coordonnes dans - ce contour ont t bricoles un peu par moi. -\layout Standard - - -\family typewriter -\size small -N10 G01 G40 X-1.3531 Y3.4 -\newline -N15 F10 G17 G41 D4 X-0.7 Y3.1875 (ligne d'entre) -\newline -N20 X0. - Y3.1875 -\newline -N40 X0.5667 F10 -\newline -N50 G03 X0.8225 Y3.3307 R0.3 -\newline -N60 G02 X2.9728 Y4.3563 R2.1875 -\newline -N70 G01 X7.212 Y3.7986 -\newline -N80 G02 X8.1985 Y3.2849 R1.625 -\newline -N90 G03 X8.4197 Y3.1875 R0.3 -\newline -N100 G01 X9. -\newline -N110 G40 X10.1972 Y3.432 (ligne de sortie) -\newline -N220 M02 -\layout Standard - -La ligne 15 contient G41 D4, qui signifie que le diamtre de l'outil est - celui de l'outil #4 dans la table d'outils, il sera utilis pour dcaler - la broche de 1/2 diamtre, qui est, bien sr, le rayon d'outil. - Noter que la ligne avec la commande G41 contient le point final du mouvement - dans lequel la compensation de rayon est interpole. - Cela signifie qu'au dbut de ce mouvement, il n'y a aucun effet de compensation - et la fin, l'outil est dcal de 100% du rayon de l'outil slectionn. - Immdiatement aprs le G41 il y a D4, signifiant que le dcalage sera le - rayon de l'outil N4 dans la table d'outils. - Noter que les DIAMETRES d'outil sont entrs dans la table d'outils. - (le diamtre de l'outil de Jon est de 0.4890) -\layout Standard -\added_space_bottom 0.3cm \align left -Mais, noter qu' la ligne 110, o il y a la commande G40, l'interpolation - de la compensation d'outil est en dehors de ce mouvement. - La manire d'obtenir ce rglage, les mouvements des lignes 15 et 110 sont - presque exactement parallles l'axe X et la diffrence dans les coordonnes - Y est la ligne o l'outil est appel, en dehors de la compensation d'outil. -\layout Standard -\added_space_bottom 0.3cm \align left - -\begin_inset Minipage -position 1 -inner_position 0 -height "0pt" -width "50col%" -collapsed false - -\layout Standard - - -\begin_inset Graphics - filename partdraw1.png - width 5in - -\end_inset - - -\end_inset - - -\layout Standard - -Certaines autres choses sont noter, le programme commence avec G40, pour - dsactiver les compensations ventuellement actives. - Cela vite un tas d'ennuis quand le programme s'arrte cause d'une erreur - de concavit, mais laisse la compensation dsactive. - Noter aussi, en ligne 15, G17 est utilis pour spcifier le plan de travail - XY pour les interpolations circulaires. - J'ai utilis le format rayon pour les spcifications des arcs plutt que - la forme I, J. - EMC est trs pointilleux au sujet des rayons qu'il calcule partir du - format des coordonnes I, J et il doit trouver le dbut et la fin du mouvement - avec 10^-11 units internes, de sorte qu'il y a beaucoup de problmes avec - des arcs arbitraires. - Normalement, si vous avez un arc de 90 degrs, centr sur (1.0,1.0) avec - un rayon de 1", tout ira bien, mais si le rayon ne peut pas tre exprim - exactement et avec juste le nombre de chiffres significatifs, ou si l'arc - un nombre trange de degrs, alors les problmes commencent avec EMC. - Le mot R supprime tous ce dsordre et il est beaucoup plus facile de travailler - avec lui, de toute faon. - Si l'arc est de plus de 180 degrs, R doit tre ngatif. -\the_end diff --git a/docs/src/gui/axis.lyx b/docs/src/gui/axis.lyx deleted file mode 100644 index 52f8163de..000000000 --- a/docs/src/gui/axis.lyx +++ /dev/null @@ -1,3160 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -AXIS -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -AXIS -\begin_inset LatexCommand index -name "AXIS" - -\end_inset - - is a graphical front-end for EMC2 which features a live preview and backplot. - It is written in Python -\begin_inset LatexCommand index -name "Python" - -\end_inset - - and uses Tk -\begin_inset LatexCommand index -name "Tk" - -\end_inset - - and OpenGL -\begin_inset LatexCommand index -name "OpenGL" - -\end_inset - - to display its user interface. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -AXIS Window -\begin_inset LatexCommand label -name "cap:AXIS-Window" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis_2.3.png - width 60page% - keepAspectRatio - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Getting Started -\end_layout - -\begin_layout Standard -To select AXIS as the front-end for EMC2, edit the .ini file. - In the section -\family typewriter -[DISPLAY] -\family default - change the -\family typewriter -DISPLAY -\family default - line to read -\end_layout - -\begin_layout Quote -DISPLAY = axis -\end_layout - -\begin_layout Standard -Then, start EMC2 and select that ini file. - The sample configuration -\family typewriter -sim/axis.ini -\family default - is already configured to use AXIS as its front-end. -\end_layout - -\begin_layout Standard -When you start AXIS, a window like the one in Figure -\begin_inset LatexCommand ref -reference "cap:AXIS-Window" - -\end_inset - - is shown. -\end_layout - -\begin_layout Subsection -A Typical Session -\end_layout - -\begin_layout Enumerate -Start EMC. -\end_layout - -\begin_layout Enumerate -Clear the E-STOP (F1) and turn the Machine Power (F2) on. -\end_layout - -\begin_layout Enumerate -Home all axes. -\end_layout - -\begin_layout Enumerate -Load the g-code file. -\end_layout - -\begin_layout Enumerate -Use the preview plot to verify that the program is correct. -\end_layout - -\begin_layout Enumerate -Set the proper offsets for each axis by jogging and using the Touch Off - button. -\end_layout - -\begin_layout Enumerate -Run the program. -\end_layout - -\begin_layout Enumerate -To run the same file again, return to step 6. - To run a different file, return to step 4. - When you're done, exit AXIS. -\end_layout - -\begin_layout Section -AXIS Display -\end_layout - -\begin_layout Standard -The AXIS window contains the following elements: -\end_layout - -\begin_layout Itemize -A display area that shows a preview of the loaded file (in this case, "axis.ngc") -, as well as the current location of the CNC -\begin_inset LatexCommand index -name "CNC" - -\end_inset - - machine's "controlled point". - Later, this area will display the path the CNC machine has moved through, - called the "backplot" -\end_layout - -\begin_layout Itemize -A menu bar and toolbar that allow you to perform various actions -\end_layout - -\begin_layout Itemize -"Manual Control Tab" -\begin_inset LatexCommand index -name "Manual" - -\end_inset - -, which allows you to make the machine move, turn the spindle on or off, - and turn the coolant on or off if included in the ini file. -\end_layout - -\begin_layout Itemize -"MDI Tab -\begin_inset Quotes erd -\end_inset - - -\begin_inset LatexCommand index -name "MDI" - -\end_inset - -, where G-code programs can be entered manually, one line at a time. - This also shows the "Active G Codes" which shows which modal G Codes are - in effect. -\end_layout - -\begin_layout Itemize -"Feed Override" -\begin_inset LatexCommand index -name "feed override" - -\end_inset - -, which allows you to increase or decrease the speed at which EMC executes - Feed Moves the selected program. - The default maximum is 120% and can be set to a different value in the - ini file. - See the Integrators Manual for more information on this setting. -\end_layout - -\begin_layout Itemize -"Spindle Override" -\begin_inset LatexCommand index -name "Spindle Override" - -\end_inset - -, which allows you to increase or decrease the speed at which EMC commands - the spindle to run if spindle control is configured. -\end_layout - -\begin_layout Itemize -"Jog Speed" -\begin_inset LatexCommand index -name "Jog Speed" - -\end_inset - -, which allows you to set the jog speed within the limits set in the ini - file. - See the Integrators Manual for more information on the ini file. -\end_layout - -\begin_layout Itemize -"Max Velocity", which allows you to set the maximum velocity for rapids - and cap feed rates (except spindle synchronized motion) for dry runs. - Currently only AXIS and Halui allow you to set it. -\end_layout - -\begin_layout Itemize -A text display area that shows the G-code source of the loaded file. -\end_layout - -\begin_layout Itemize -A status bar which shows the state of the machine. - In this screen shot, the machine is turned on, does not have a tool inserted, - and the displayed position is "Relative -\begin_inset LatexCommand index -name "position: relative" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to the machine offset (as opposed to -\begin_inset Quotes eld -\end_inset - -Absolute -\begin_inset LatexCommand index -name "position: absolute" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - -), and the -\begin_inset Quotes eld -\end_inset - -Actual -\begin_inset LatexCommand index -name "position: actual" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - (as opposed to -\begin_inset Quotes eld -\end_inset - -Commanded -\begin_inset LatexCommand index -name "position: commanded" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - position) -\end_layout - -\begin_layout Subsection -Menu Items -\end_layout - -\begin_layout Standard -Some menu items might be grayed out depending on how you have your .ini file - configured. - For more information on configuration see the Integrators Manual. -\end_layout - -\begin_layout Subsubsection -File Menu -\end_layout - -\begin_layout Description -Open... - Opens a standard dialog box to open a g code file to load in AXIS. - If you have configured EMC to use a filter program you can also open it - up. - See the Integrators manual for more information on filter programs. -\end_layout - -\begin_layout Description -Recent\InsetSpace ~ -Files Displays a list of recently opened files. -\end_layout - -\begin_layout Description -Edit... - Open the current g code file for editing if you have an editor configured - in your ini file. - See the Integrators Manual for more information on specifying an editor - to use. -\end_layout - -\begin_layout Description -Reload reload the current g code file. - If you edited it you must reload it for the changes to take affect. - If you stop a file and want to start from the beginning then reload the - file. - The toolbar reload is the same as the menu. -\end_layout - -\begin_layout Description -Save\InsetSpace ~ -gcode\InsetSpace ~ -as... - Save the current file with a new name. -\end_layout - -\begin_layout Description -Properties The sum of the rapid and feed moves. Does not factor in - acceleration, blending or path mode so time reported will never - be less than the actual run time. -\end_layout - -\begin_layout Description -Edit\InsetSpace ~ -tool\InsetSpace ~ -table... - Same as Edit if you have defined an editor you can open the tool table - and edit it. -\end_layout - -\begin_layout Description -Reload\InsetSpace ~ -tool\InsetSpace ~ -table After editing the tool table you must reload it. -\end_layout - -\begin_layout Description -Ladder\InsetSpace ~ -editor If you have loaded Classic Ladder you can edit it from here. - See the Integrators Manual on setting up Classic Ladder -\end_layout - -\begin_layout Description -Quit Terminates the current EMC session. -\end_layout - -\begin_layout Subsubsection -Machine -\end_layout - -\begin_layout Description -Toggle\InsetSpace ~ -Emergency\InsetSpace ~ -Stop\InsetSpace ~ -F1 -\end_layout - -\begin_layout Description -Toggle\InsetSpace ~ -Machine\InsetSpace ~ -Power\InsetSpace ~ -F2 -\end_layout - -\begin_layout Description -Run\InsetSpace ~ -Program -\end_layout - -\begin_layout Description -Run\InsetSpace ~ -From\InsetSpace ~ -Selected\InsetSpace ~ -Line Select the line you want to start from first. - Use with caution as this will move the tool to the expected position before - the line first then it will execute the rest of the code. -\end_layout - -\begin_layout Description -Step Single step through a program. -\end_layout - -\begin_layout Description -Pause Pause a program. -\end_layout - -\begin_layout Description -Resume Resume running from a pause. -\end_layout - -\begin_layout Description -Stop Stop a running program. -\end_layout - -\begin_layout Description -Stop\InsetSpace ~ -at\InsetSpace ~ -M1 If you have a M1 in your g code and this is checked program execution - will stop on the M1 line. - Press Resume to continue. -\end_layout - -\begin_layout Description -Skip\InsetSpace ~ -lines\InsetSpace ~ -with\InsetSpace ~ -"/" If a line begins with / and this is checked it will skip - that line. -\end_layout - -\begin_layout Description -Clear\InsetSpace ~ -MDI\InsetSpace ~ -history Clears the MDI history window. -\end_layout - -\begin_layout Description -Copy\InsetSpace ~ -from\InsetSpace ~ -MDI\InsetSpace ~ -history Copies the MDI history to the clipboard -\end_layout - -\begin_layout Description -Paste\InsetSpace ~ -to\InsetSpace ~ -MDI\InsetSpace ~ -history Paste from the clipboard to the MDI history window -\end_layout - -\begin_layout Description -Calibration This is a servo testing pop up widow for each axis. - After making changes and testing them it can save them to your .ini file. -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -HAL\InsetSpace ~ -Configuration Opens up the HAL Configuration widow where you can - monitor HAL Components, Pins, Parameters, Signals, Functions, and Threads. -\end_layout - -\begin_layout Description -HAL\InsetSpace ~ -Meter Opens up a window where you can monitor a single HAL Pin, Signal, - or Parameter. -\end_layout - -\begin_layout Description -HAL\InsetSpace ~ -Scope Opens up a Scope window where you can set up and monitor Pins and - Signals. -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -EMC\InsetSpace ~ -Status Opens up a window showing EMC's status. -\end_layout - -\begin_layout Description -Set\InsetSpace ~ -Debug\InsetSpace ~ -Level Opens a window where debug levels can be viewed and some can - be set. -\end_layout - -\begin_layout Description -Homing Home any or all axis. -\end_layout - -\begin_layout Description -Unhoming Unhome any or all axis. -\end_layout - -\begin_layout Description -Zero\InsetSpace ~ -Coordinate\InsetSpace ~ -System Zero work offsets. -\end_layout - -\begin_layout Subsubsection -View -\end_layout - -\begin_layout Description -Top\InsetSpace ~ -View -\end_layout - -\begin_layout Description -Rotated\InsetSpace ~ -Top\InsetSpace ~ -View -\end_layout - -\begin_layout Description -Side\InsetSpace ~ -View -\end_layout - -\begin_layout Description -Front\InsetSpace ~ -View -\end_layout - -\begin_layout Description -Perspective\InsetSpace ~ -View -\end_layout - -\begin_layout Description -Display\InsetSpace ~ -Inches -\end_layout - -\begin_layout Description -Display\InsetSpace ~ -MM -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Program -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Live\InsetSpace ~ -Plot -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Tool -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Extents -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Machine\InsetSpace ~ -Limits -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Velocity -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Distance\InsetSpace ~ -to\InsetSpace ~ -Go -\end_layout - -\begin_layout Description -Clear\InsetSpace ~ -Live\InsetSpace ~ -Plot -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Commanded\InsetSpace ~ -Position -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Actual\InsetSpace ~ -Position -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Machine\InsetSpace ~ -Position -\end_layout - -\begin_layout Description -Show\InsetSpace ~ -Relative\InsetSpace ~ -Position -\end_layout - -\begin_layout Subsubsection -Help -\end_layout - -\begin_layout Description -About\InsetSpace ~ -Axis -\end_layout - -\begin_layout Description -Quick\InsetSpace ~ -Reference Shows the keyboard shortcut keys. -\end_layout - -\begin_layout Subsection -Toolbar buttons -\end_layout - -\begin_layout Standard -From left to right, the toolbar buttons (keyboard shortcuts in []). -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_estop.gif - -\end_inset - - Toggle Emergency Stop [F1] (also called E-Stop -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - -) -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_power.gif - -\end_inset - - Toggle Machine Power [F2] -\begin_inset LatexCommand index -name "machine on" - -\end_inset - - -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_open.gif - -\end_inset - - Open G Code file [O] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_reload.gif - -\end_inset - - Reload current file [Ctrl-R] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_run.gif - -\end_inset - - Begin executing the current file [R] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_step.gif - -\end_inset - - Execute next line [T] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_pause.gif - -\end_inset - - Pause Execution [P] Resume Execution[S] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_stop.gif - -\end_inset - - Stop Program Execution [ESC] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_blockdelete.gif - -\end_inset - - Toggle Skip lines with "/" [Alt-M-/] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_optpause.gif - -\end_inset - - Toggle Optional Pause [Alt-M-1] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_zoomin.gif - -\end_inset - - Zoom In -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_zoomout.gif - -\end_inset - - Zoom Out -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_axis_z.gif - -\end_inset - - Top view -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_axis_z2.gif - -\end_inset - - Rotated Top view -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_axis_x.gif - -\end_inset - - Front view -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_axis_y.gif - -\end_inset - - Side view -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_axis_p.gif - -\end_inset - - Perspective view -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_rotate.gif - -\end_inset - - Toggle between Drag and Rotate Mode [D] -\end_layout - -\begin_layout Enumerate -\begin_inset Graphics - filename images/tool_clear.gif - -\end_inset - - Clear live backplot [Ctrl-K] -\end_layout - -\begin_layout Subsection -Graphical Display Area -\end_layout - -\begin_layout Subsubsection -Coordinate Display -\end_layout - -\begin_layout Standard -In the upper-left corner of the program display is the coordinate display. - It shows the position of the machine. - To the left of the axis name, an origin symbol ( -\begin_inset Graphics - filename images/axis-homed.png - width 1.5ex - -\end_inset - -) is shown if the axis has been properly homed. - To the right of the axis name, a limit symbol ( -\begin_inset Graphics - filename images/axis-limit.png - width 2ex - -\end_inset - -) is shown if the axis is on one of its limit switches. -\end_layout - -\begin_layout Standard -To properly interpret these numbers, refer to the "Position:" indicator - in the status bar. - If the position is "Absolute", then the displayed number is in the machine - coordinate system. - If it is "Relative", then the displayed number is in the offset coordinate - system. - When the coordinates displayed are relative and an offset has been set, - the display will include a cyan "machine origin" marker ( -\begin_inset Graphics - filename images/axis-machineorigin.png - width 2ex - -\end_inset - -). - If the position is "Commanded", then it is the ideal position--for instance, - the exact coordinate given in a -\family typewriter -G0 -\family default - command. - If it is "Actual", then it is the position the machine has actually been - moved to. - These values can differ for several reasons: Following error, dead band, - encoder resolution, or step size. - For instance, if you command a movement to X 0.0033 on your mill, but one - step of your stepper motor is 0.00125, then the "Commanded" position will - be 0.0033 but the "Actual" position will be 0.0025 (2 steps) or 0.00375 (3 - steps). -\end_layout - -\begin_layout Subsubsection -Preview Plot -\begin_inset LatexCommand index -name "preview plot" - -\end_inset - - -\end_layout - -\begin_layout Standard -When a file is loaded, a preview of it is shown in the display area. - Fast moves (such as those produced by the -\family typewriter -G0 -\family default - command) are shown as green lines. - Moves at a feed rate (such as those produced by the -\family typewriter -G1 -\family default - command) are shown as solid white lines. - Dwells (such as those produced by the -\family typewriter -G4 -\family default - command) are shown as small "X" marks. -\end_layout - -\begin_layout Standard -G0 (Rapid) moves prior to a feed move will not show up on the preview plot. - Rapid moves after a T (Tool Change) will not show on the AXIS preview - until after a feed move. - To turn either of these features off program a G1 without any moves prior - to the G0 moves. -\end_layout - -\begin_layout Subsubsection -Program Extents -\begin_inset LatexCommand index -name "program extents" - -\end_inset - - -\end_layout - -\begin_layout Standard -The "extents" of the program in each axis are shown. - At each end, the least or greatest coordinate value is indicated. - In the middle, the difference between the coordinates is shown. - In Figure ( -\begin_inset LatexCommand ref -reference "cap:AXIS-Window" - -\end_inset - -), the X extent of the file is from 0.00 to 6.92 inches, a total of 6.92 inches. -\end_layout - -\begin_layout Standard -When some coordinates exceed the "soft limits" in the .ini file, the relevant - dimension is shown in a different color and enclosed by a box. - In Figure ( -\begin_inset LatexCommand ref -reference "cap:Soft-Limit" - -\end_inset - -) the maximum soft limit is exceeded on the X axis as indicated by the box - surrounding the coordinate value. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Soft Limit -\begin_inset LatexCommand label -name "cap:Soft-Limit" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis-outofrange.png - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Tool Cone -\end_layout - -\begin_layout Standard -The location of the tip of the tool is indicated by the "tool cone". - The cone does not indicate anything about the shape, length, or radius - of the tool. -\end_layout - -\begin_layout Standard -When a tool is loaded (for instance, with the MDI command -\family typewriter -T1M6 -\family default -), the cone changes to a cylinder which shows the diameter of the tool given - in the tool table file. -\end_layout - -\begin_layout Subsubsection -Backplot -\end_layout - -\begin_layout Standard -When the machine moves, it leaves a trail called the backplot. - The color of the line indicates the type of motion: Yellow for jogs, faint - green for rapid movements, red for straight moves at a feed rate, and magenta - for circular moves at a feed rate. -\end_layout - -\begin_layout Subsubsection -Interacting -\end_layout - -\begin_layout Standard -By left-clicking on a portion of the preview plot, the line will be highlighted - in both the graphical and text displays. - By left-clicking on an empty area, the highlighting will be removed. -\end_layout - -\begin_layout Standard -By dragging with the left mouse button pressed, the preview plot will be - shifted (panned). -\end_layout - -\begin_layout Standard -By dragging with shift and the left mouse button pressed, or by dragging - with the mouse wheel pressed, the preview plot will be rotated. - When a line is highlighted, the center of rotation is the center of the - line. - Otherwise, the center of rotation is the center of the file as a whole. -\end_layout - -\begin_layout Standard -By rotating the mouse wheel, or by dragging with the right mouse button - pressed, or by dragging with control and the left mouse button pressed, - the preview plot will be zoomed in or out. -\end_layout - -\begin_layout Standard -By clicking one of the "Preset View" icons, or by pressing "V", several - preset views may be selected. -\end_layout - -\begin_layout Subsection -Text Display Area -\end_layout - -\begin_layout Standard -By left-clicking a line of the program, the line will be highlighted in - both the graphical and text displays in blue. -\end_layout - -\begin_layout Standard -When the program is running, the line currently being executed is highlighted - in red. - If no line has been selected by the user, the text display will automatically - scroll to show the current line. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Current and Selected Lines -\begin_inset LatexCommand label -name "cap:Current-and-Selected" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis-currentandselected.png - width 70page% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Manual Control -\begin_inset LatexCommand index -name "Manual" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -This section needs to be expanded and show what pins turn on what even if - it is really integrator information... -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -While the machine is turned on but not running a program, the items in the - "Manual Control" tab can be used to move the machining center or turn different - parts of it on and off. -\end_layout - -\begin_layout Standard -When the machine is not turned on, or when a program is running, the manual - controls are unavailable. -\end_layout - -\begin_layout Standard -Many of the items described below are not useful on all machines. - When AXIS detects that a particular pin is not connected in HAL, the correspond -ing item in the Manual Control tab is removed. - For instance, if the HAL pin -\family typewriter -motion.spindle-brake -\family default - is not connected, then the "Brake" button will not appear on the screen. - If the environment variable -\family typewriter -AXIS_NO_AUTOCONFIGURE -\family default - is set, this behavior is disabled and all the items will appear. -\end_layout - -\begin_layout Subsubsection -The "Axis" group -\end_layout - -\begin_layout Standard -"Axis" allows you to manually move the machine. - This action is known as "jogging". - First, select the axis to be moved by clicking it. - Then, click and hold the "+" or "-" button depending on the desired direction - of motion. - The first four axes can also be moved by the arrow keys (X and Y), PAGE - UP and PAGE DOWN keys (Z) and the [ and ] keys (A). -\end_layout - -\begin_layout Standard -If "Continuous" is selected, the motion will continue as long as the button - or key is pressed. - If another value is selected, the machine will move exactly the displayed - distance each time the button is clicked or the key is pressed. - By default, the available values are: -\end_layout - -\begin_layout Quotation -0.1000, 0.0100, 0.0010, 0.0001 -\end_layout - -\begin_layout Standard -See the Configure section of the Integrators Manual for more information - on setting the increments. -\end_layout - -\begin_layout Subsubsection -Homing -\end_layout - -\begin_layout Standard -If your machine has home switches and a homing sequence defined for all - axes the button will read "Home All". - The "Home All" button or the Ctrl-HOME key will home all axes using the - homing sequence. - Pressing the HOME key will home the current axis, even if a homing sequence - is defined. - -\end_layout - -\begin_layout Standard -If your machine has home switches and no homing sequence is defined or not - all axes have a homing sequence the button will read "Home" and will home - the selected axis only. - Each axis must be selected and homed separately. -\end_layout - -\begin_layout Standard -If your machine does not have home switches defined in the configuration - the "Home" button will set the current selected axis current position to - be the absolute position 0 for that axis and will set the "is-homed" bit - for that axis. -\end_layout - -\begin_layout Standard -See the Integrators Manual for more information on homing. -\end_layout - -\begin_layout Subsubsection -Touch Off -\end_layout - -\begin_layout Standard -By pressing "Touch Off" or the END key, the "G54 offset" for the current - axis is changed so that the current axis value will be the specified value. - Expressions may be entered using the rules for rs274ngc programs, except - that variables may not be referred to. - The resulting value is shown as a number. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Touch Off -\begin_inset LatexCommand label -name "cap:Touch-Off" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/touchoff.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Override Limits -\end_layout - -\begin_layout Standard -By pressing "Override Limits", the machine will temporarily be allowed to - jog off of a physical limit switch. - This check box is only available if a limit switch is tripped. -\end_layout - -\begin_layout Subsubsection -The "Spindle" group -\begin_inset LatexCommand index -name "spindle" - -\end_inset - - -\end_layout - -\begin_layout Standard -The buttons on the first row select the direction for the spindle to rotate: - Counterclockwise, Stopped, Clockwise. - Counterclockwise will only show up if the pin -\family typewriter -motion.spindle-reverse -\family default - is in the hal file (it can be -\family typewriter -net trick-axis motion.spindle-reverse -\family default -). - The buttons on the next row increase or decrease the rotation speed. - The checkbox on the third row allows the spindle brake to be engaged or - released. - Depending on your machine configuration, not all the items in this group - may appear. - Pressing the spindle start button sets the "S" speed to 1. -\end_layout - -\begin_layout Subsubsection -The "Coolant" group -\begin_inset LatexCommand index -name "coolant" - -\end_inset - - -\end_layout - -\begin_layout Standard -The two buttons allow the "Mist" and "Flood" coolants to be turned on and - off. - Depending on your machine configuration, not all the items in this group - may appear. -\end_layout - -\begin_layout Subsection -MDI -\end_layout - -\begin_layout Standard -MDI -\begin_inset LatexCommand index -name "MDI" - -\end_inset - -, allows G-code programs can be entered manually, one line at a time. - When the machine is not turned on, or when a program is running, the MDI - controls are unavailable. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -The MDI tab -\begin_inset LatexCommand label -name "cap:The-MDI-tab" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/axis_mdi.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -History: This shows MDI commands that have been typed earlier in this session. -\end_layout - -\begin_layout Description -MDI\InsetSpace ~ -Command: This allows you to enter a g-code command to be executed. - Execute the command by pressing Enter or by clicking "Go". -\end_layout - -\begin_layout Description -Active\InsetSpace ~ -G-Codes: This shows the "modal codes" that are active in the interpreter. - For instance, "G54" indicates that the "G54 offset" is applied to all coordinat -es that are entered. - When in Auto the Active G-Codes represent the codes after any read ahead - by the interpreter. -\end_layout - -\begin_layout Subsection -Feed Override -\begin_inset LatexCommand index -name "feed override" - -\end_inset - - -\end_layout - -\begin_layout Standard -By moving this slider, the programmed feed rate can be modified. - For instance, if a program requests -\family typewriter -F60 -\family default - and the slider is set to 120%, then the resulting feed rate will be 72. -\end_layout - -\begin_layout Subsection -Spindle Speed Override -\begin_inset LatexCommand index -name "spindle speed override" - -\end_inset - - -\end_layout - -\begin_layout Standard -By moving this slider, the programmed spindle feed rate can be modified. - For instance, if a program requests F8000 and the slider is set to 80%, - then the resulting spindle speed will be 6400. - This item only appears when the HAL pin -\family typewriter -motion.spindle-speed-out -\family default - is connected. -\end_layout - -\begin_layout Subsection -Jog Speed -\begin_inset LatexCommand index -name "jog speed" - -\end_inset - - -\end_layout - -\begin_layout Standard -By moving this slider, the speed of jogs can be modified. - For instance, if the slider is set to 1 in/min, then a .01 inch jog will - complete in about .6 seconds, or 1/100 of a minute. - Near the left side (slow jogs) the values are spaced closely together, - while near the right side (fast jogs) they are spaced much further apart, - allowing a wide range of jog speeds with fine control when it is most important. -\end_layout - -\begin_layout Standard -On machines with a rotary axis, a second jog speed slider is shown. - This slider sets the jog rate for the rotary axes (A, B and C). -\end_layout - -\begin_layout Subsection -Max Velocity -\begin_inset LatexCommand index -name "Max Velocity" - -\end_inset - - -\end_layout - -\begin_layout Standard -By moving this slider, the maximum velocity can be set. - This caps the maximum velocity of axis no matter what is programed in the - g code file. -\end_layout - -\begin_layout Section -Keyboard Controls -\end_layout - -\begin_layout Standard -Almost all actions in AXIS can be accomplished with the keyboard. - A full list of keyboard shortcuts can be found in the AXIS Quick Reference, - which can be displayed by choosing -\noun on -Help > Quick Reference -\noun default -. - Many of the shortcuts are unavailable when in MDI mode. - -\end_layout - -\begin_layout Subsubsection* -Feed Override Keys -\end_layout - -\begin_layout Standard -The Feed Override keys behave differently when in Manual Mode. - The keys `12345678 will select an axis if it is programed. - If you have 3 axis then ` will select axis 0, 1 will select axis 1 and - 2 will select axis 2. - The remainder of the number keys will still set the Feed Override. - When running a program `1234567890 will set the Feed Override to 0% - 100%. -\end_layout - -\begin_layout Standard -The most frequently used keyboard shortcuts are shown in Table -\begin_inset LatexCommand ref -reference "cap:Most-Common-Keyboard" - -\end_inset - -. -\end_layout - -\begin_layout Standard -\begin_inset Float table -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Most Common Keyboard Shortcuts -\begin_inset LatexCommand label -name "cap:Most-Common-Keyboard" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -Keystroke -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Action Taken -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Mode -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Toggle Emergency Stop -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -All -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Turn machine on/off -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -All -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -`, 1 .. - 9, 0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set feed override from 0% to 100% -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Varies -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -X, ` -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate first axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Y, 1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate second axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Z, 2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate third axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -A, 3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate fourth axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -I -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Select jog increment -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Continuous jog -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Control-Home -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Perform homing sequence -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -End -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Touch off: Set G54 offset for active axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Left, Right -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog first axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Up, Down -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog second axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Pg Up, Pg Dn -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog third axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -[, ] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog fourth axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -O -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Open File -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Control-R -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Reload File -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -R -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Run file -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -P -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pause execution -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Auto -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -S -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Resume Execution -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Auto -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ESC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Stop execution -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Auto -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Control-K -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Clear backplot -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Auto/Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -V -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Cycle among preset views -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Auto/Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Shift-Left,Right -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Rapid X Axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Shift-Up,Down -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Rapid Y Axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Shift-PgUp, PgDn -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Rapid Z Axis -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Manual -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Show EMC Status -\end_layout - -\begin_layout Standard -AXIS includes a program called "emctop" which shows some of the details - of EMC's state. - You can run this program by invoking -\noun on -Machine > Show EMC Status -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -EMC Status Window -\begin_inset LatexCommand label -name "cap:EMC-Status-Window" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename axis-emctop.png - width 80page% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The name of each item is shown in the left column. - The current value is shown in the right column. - If the value has recently changed, it is shown on a red background. -\end_layout - -\begin_layout Section -MDI interface -\end_layout - -\begin_layout Standard -AXIS includes a program called "MDI" which allows text-mode entry of MDI - commands to a running EMC session. - You can run this program by opening a terminal and typing -\end_layout - -\begin_layout Quote -mdi /path/to/emc.nml -\end_layout - -\begin_layout Standard -Once it is running, it displays the prompt -\family typewriter -MDI> -\family default -. - When a blank line is entered, the machine's current position is shown. - When a command is entered, it is sent to EMC to be executed. - -\end_layout - -\begin_layout Standard -This is a sample session of mdi. -\end_layout - -\begin_layout Quote -$ mdi ~/emc2/configs/sim/emc.nml -\newline -MDI> -\newline -(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -\newline -MDI> G1 F5 - X1 -\newline -MDI> -\newline -(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) -\newline -MDI> -\newline -(1.0000000000000639, - 0.0, 0.0, 0.0, 0.0, 0.0) -\end_layout - -\begin_layout Section -axis-remote -\end_layout - -\begin_layout Standard -AXIS includes a program called "axis-remote" which can send certain commands - to a running AXIS. - The available commands are shown by running -\family typewriter -axis-remote -\SpecialChar \- --help -\family default - and include checking whether AXIS is running ( -\family typewriter --\SpecialChar \- --ping -\family default -), loading a file by name, reloading the currently loaded file ( -\family typewriter --\SpecialChar \- --reload -\family default -), and making AXIS exit ( -\family typewriter --\SpecialChar \- --quit -\family default -). -\end_layout - -\begin_layout Section -Manual Tool Change -\begin_inset LatexCommand index -name "Manual Tool Change" - -\end_inset - - -\begin_inset LatexCommand label -name "sec:Manual-Tool-Change" - -\end_inset - - -\end_layout - -\begin_layout Standard -EMC2 includes a userspace hal component called "hal_manualtoolchange", which - shows a window (Figure -\begin_inset LatexCommand ref -reference "cap:The-Manual-Toolchange" - -\end_inset - -) when a -\family typewriter -M6 -\family default - command is issued. - After the OK button is pressed, execution of the program will continue. -\end_layout - -\begin_layout Standard -The HAL configuration file -\family typewriter -configs/sim/axis_manualtoolchange.hal -\family default - shows the HAL commands necessary to use this component. -\end_layout - -\begin_layout Standard -hal_manualtoolchange can be used even when AXIS is not used as the GUI. - This component is most useful if you have presettable tools and you use - the tool table. -\end_layout - -\begin_layout Standard -Important Note: Rapids will not show on the preview after a T is issued - until the next feed move after the M6. - This can be very confusing to most users. - To turn this feature off for the current tool change program a G1 with - no move after the T. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -The Manual Toolchange Window -\begin_inset LatexCommand label -name "cap:The-Manual-Toolchange" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/manualtoolchange.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Python modules -\end_layout - -\begin_layout Standard -AXIS -\begin_inset LatexCommand index -name "AXIS" - -\end_inset - - includes several Python -\begin_inset LatexCommand index -name "Python" - -\end_inset - - modules which may be useful to others. - For more information on one of these modules, use -\family typewriter -"pydoc " -\family default - or read the source code. - These modules include: -\end_layout - -\begin_layout Itemize - -\family typewriter -emc -\family default - provides access to the emc command, status, and error channels -\end_layout - -\begin_layout Itemize - -\family typewriter -gcode -\family default - provides access to the rs274ngc interpreter -\end_layout - -\begin_layout Itemize - -\family typewriter -rs274 -\family default - provides additional tools for working with rs274ngc files -\end_layout - -\begin_layout Itemize - -\family typewriter -hal -\family default - allows the creation of userspace HAL components written in Python -\end_layout - -\begin_layout Itemize - -\family typewriter -_togl -\family default - provides an OpenGL widget that can be used in Tkinter applications -\end_layout - -\begin_layout Itemize - -\family typewriter -minigl -\family default - provides access to the subset of OpenGL used by AXIS -\end_layout - -\begin_layout Standard -To use these modules in your own scripts, you must ensure that the directory - where they reside is on Python's module path. - When running an installed version of EMC2, this should happen automatically. - When running "in-place", this can be done by using -\family typewriter -scripts/emc-environment -\family default -. -\end_layout - -\begin_layout Section -Lathe Mode -\end_layout - -\begin_layout Standard -By including the line -\end_layout - -\begin_layout Quote -LATHE=1 -\end_layout - -\begin_layout Standard -in the [DISPLAY] section of the ini file, AXIS selects lathe mode. - The "Y" axis is not shown in coordinate readouts, the view is changed to - show the Z axis extending to the right and the X axis extending towards - the bottom of the screen, and several controls (such as those for preset - views) are removed. -\end_layout - -\begin_layout Standard -Pressing "V" zooms out to show the entire file, if one is loaded. -\end_layout - -\begin_layout Standard -When in lathe mode, the shape of the loaded tool (if any) is shown. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Lathe Tool Shape -\begin_inset LatexCommand label -name "cap:Lathe-Tool-Shape" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename axis-lathe-tool.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Advanced Configuration -\end_layout - -\begin_layout Standard -For more information on ini file settings that can change how AXIS works - see the INI File/Sections/[DISPLAY] Section of Configuration chapter in - the Integrators manual. -\end_layout - -\begin_layout Subsection -Program Filters -\end_layout - -\begin_layout Standard -AXIS has the ability to send loaded files through a "filter program". - This filter can do any desired task: Something as simple as making sure - the file ends with ' -\family typewriter -M2 -\family default -', or something as complicated as detecting whether the input is a depth - image, and generating g-code to mill the shape it defines. -\end_layout - -\begin_layout Standard -The -\family typewriter -[FILTER] -\family default - section of the ini file controls how filters work. - First, for each type of file, write a -\family typewriter -PROGRAM_EXTENSION -\family default - line. - Then, specify the program to execute for each type of file. - This program is given the name of the input file as its first argument, - and must write rs274ngc code to standard output. - This output is what will be displayed in the text area, previewed in the - display area, and executed by EMC when "Run". - The following lines add support for the "image-to-gcode" converter included - with EMC2: -\end_layout - -\begin_layout Quote -[FILTER] -\newline -PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image -\newline -png = image-to-gcode -\newline -gif - = image-to-gcode -\end_layout - -\begin_layout Standard -It is also possible to specify an interpreter: -\end_layout - -\begin_layout Quote -PROGRAM_EXTENSION = .py Python Script -\newline -py = python -\end_layout - -\begin_layout Standard -In this way, any Python script can be opened, and its output is treated - as g-code. - One such example script is available at -\family typewriter -nc_files/holecircle.py -\family default -. - This script creates g-code for drilling a series of holes along the circumferen -ce of a circle. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Circular Holes -\begin_inset LatexCommand label -name "cap:Circular-Holes" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename holes.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -If the environment variable AXIS_PROGRESS_BAR is set, then lines written - to stderr of the form -\end_layout - -\begin_layout Quote -FILTER_PROGRESS=%d -\end_layout - -\begin_layout Standard -will set the AXIS progress bar to the given percentage. - This feature should be used by any filter that runs for a long time. -\end_layout - -\begin_layout Subsection -The X Resource Database -\end_layout - -\begin_layout Standard -The colors of most elements of the AXIS user interface can be customized - through the X Resource Database. - The sample file -\family typewriter -axis_light_background -\family default - changes the colors of the backplot window to a "dark lines on white background" - scheme, and also serves as a reference for the configurable items in the - display area. - The sample file -\family typewriter -axis_big_dro -\family default - changes the position readout to a larger size font. - To use these files: -\end_layout - -\begin_layout Quote -xrdb -merge /usr/share/doc/emc2/axis_light_background -\end_layout - -\begin_layout Quote -xrdb -merge /usr/share/doc/emc2/axis_big_dro -\end_layout - -\begin_layout Standard -For information about the other items which can be configured in Tk applications -, see the Tk man pages. -\end_layout - -\begin_layout Standard -Because modern desktop environments automatically make some settings in - the X Resource Database that adversely affect AXIS, by default these settings - are ignored. - To make the X Resource Database items override AXIS defaults, include the - following line in your X Resources: -\end_layout - -\begin_layout Quote -*Axis*optionLevel: widgetDefault -\end_layout - -\begin_layout Standard -this causes the built-in options to be created at the option level "widgetDefaul -t", so that X Resources (which are level "userDefault") can override them. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:Physical-jog-wheels" - -\end_inset - -Physical jog wheels -\end_layout - -\begin_layout Standard -To improve the interaction of AXIS with physical jog wheels, the axis currently - selected in the GUI is also reported on a pin with a name like -\family typewriter -axisui.jog.x -\family default -. - Except for a short time when the active axis has just been changed, exactly - one of these pins is -\family typewriter -TRUE -\family default - at one time, and the rest are -\family typewriter -FALSE -\family default -. -\end_layout - -\begin_layout Standard -After AXIS has created these HAL pins, it executes the halfile named in - -\family typewriter -[HAL]POSTGUI_HALFILE -\family default -. - Unlike -\family typewriter -[HAL]HALFILE -\family default -, only one such file may be used. -\end_layout - -\begin_layout Subsection -axisrc -\begin_inset LatexCommand index -name ".axisrc" - -\end_inset - - -\end_layout - -\begin_layout Standard -If it exists, the contents of -\family typewriter -~/.axisrc -\family default - are executed as Python source code just before the AXIS gui is displayed. - The details of what may be written in the axisrc are subject to change - during the development cycle. -\end_layout - -\begin_layout Standard -The following adds Control-Q as a keyboard shortcut for Quit and turns on - "Distance to go" by default. -\end_layout - -\begin_layout Quote -root_window.bind("", "destroy .") -\newline -help2.append(("Control-Q", "Quit")) -\newline -vars. -show_distance_to_go.set(1) -\end_layout - -\begin_layout Subsection -External Editor -\begin_inset LatexCommand index -name "External Editor" - -\end_inset - - -\end_layout - -\begin_layout Standard -The menu options File > Edit... - and File > Edit Tool Table... - become available after defining the editor in the ini section [DISPLAY]. - Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. - For more information, see the DISPLAY section of the INI Configuration - Chapter in the Integrators Manual. -\end_layout - -\begin_layout Subsection -Virtual Control Panel -\begin_inset LatexCommand index -name "Virtual Control Panel" - -\end_inset - - -\end_layout - -\begin_layout Standard -AXIS can display a custom virtual control panel in the right-hand pane. - You can program buttons, indicators, data displays and more. - For more information, see the Integrators Manual. -\end_layout - -\begin_layout Subsection -Special Comments -\begin_inset LatexCommand index -name "Special Comments" - -\end_inset - - -\end_layout - -\begin_layout Standard -Special comments can be inserted into the G Code file to control how the - preview of AXIS behaves. - In the case where you want to limit the drawing of the preview use these - special comments. - Anything between the (AXIS,hide) and (AXIS,show) will not be drawn during - the preview. - The (AXIS,hide) and (AXIS,show) must be used in pairs with the (AXIS,hide) - being first. - Anything after a (AXIS,stop) will not be drawn during the preview. -\end_layout - -\begin_layout Standard -These comments are useful to unclutter the preview display (for instance - while debugging a larger g-code file, one can disable the preview on certain - parts that are already working OK). -\end_layout - -\begin_layout Itemize -(AXIS,hide) Stops the preview (must be first) -\end_layout - -\begin_layout Itemize -(AXIS,show) Resumes the preview (must follow a hide) -\end_layout - -\begin_layout Itemize -(AXIS, stop) Stops the preview from here to the end of the file. -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/axis_fr.lyx b/docs/src/gui/axis_fr.lyx deleted file mode 100644 index 524f6d6fe..000000000 --- a/docs/src/gui/axis_fr.lyx +++ /dev/null @@ -1,2600 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle headings - -\layout Chapter - -L'interface graphique AXIS -\layout Section - -Introduction -\layout Standard - -AXIS -\begin_inset LatexCommand \index{AXIS} - -\end_inset - - est une interface utilisateur graphique pour emc2, il offre un aperu permanent - du parcours de l'outil. - Il est crit en Python -\begin_inset LatexCommand \index{Python} - -\end_inset - -, utilise Tk -\begin_inset LatexCommand \index{Tk} - -\end_inset - - et OpenGL -\begin_inset LatexCommand \index{OpenGL} - -\end_inset - - pour l'affichage de l'interface graphique. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Fentre d'AXIS -\begin_inset LatexCommand \label{cap:Fenetre d'AXIS} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/axis_2.3_fr.png - width 60page% - -\end_inset - - -\end_inset - - -\layout Section - -Pour commencer -\layout Standard - -Pour choisir AXIS comme interface graphique d'emc2, ditez le fichier .ini - et dans la section -\family typewriter -[DISPLAY] -\family default - changez la ligne -\family typewriter -DISPLAY -\family default - comme ceci: -\layout LyX-Code - -DISPLAY = axis -\layout Standard - -Puis, lancez emc2 et choisissez le fichier ini. - La configuration simplifie -\family typewriter -sim/axis.ini -\family default - est dj configure pour utiliser AXIS comme interface. -\layout Standard - -Quand vous dmarrez AXIS, une fentre telle que celle de la figure -\begin_inset LatexCommand \ref{cap:Fenetre d'AXIS} - -\end_inset - - s'ouvre. -\layout Subsection - -Une session typique avec AXIS -\layout Enumerate - -Lancez emc et slectionnez un fichier de configuration. -\layout Enumerate - -Relchez le bouton d'arrt d'urgence -\begin_inset Quotes fld -\end_inset - -A/U -\begin_inset LatexCommand \index{A/U} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - et mettez la machine en marche. -\layout Enumerate - -Faites les prises d'origine machine -\begin_inset Quotes fld -\end_inset - -POM -\begin_inset Quotes frd -\end_inset - - pour chacun des axes. -\layout Enumerate - -Chargez un fichier d'usinage. -\layout Enumerate - -Utilisez l'affichage du parcours d'outil pour vrifier que le programme - est correct. -\layout Enumerate - -Bridez le brut usiner sur la table. -\layout Enumerate - -Faites les prises d'origine pice -\begin_inset Quotes fld -\end_inset - -POP -\begin_inset Quotes frd -\end_inset - - de chacun des axes avec le jog et en utilisant le bouton -\begin_inset Quotes fld -\end_inset - -Toucher -\begin_inset LatexCommand \index{Toucher} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -. -\layout Enumerate - -Lancez le programme. -\layout Enumerate - -Pour usiner le mme fichier une nouvelle fois, retournez l'tape 6. - Pour usiner un fichier diffrent, retournez l'tape 4. - Quand vous avez fini, quittez AXIS. -\layout Section - -Elments de la fentre d'AXIS -\layout Standard - -La fentre d'AXIS contient les lments suivants: -\layout Itemize - -Un espace d'affichage qui montre une pr-visualisation du fichier charg - (dans ce cas, -\begin_inset Quotes fld -\end_inset - -axis.ngc -\begin_inset Quotes frd -\end_inset - -), ainsi que la position courante du point programm par la machine CNC -\begin_inset LatexCommand \index{CNC} - -\end_inset - -. - Plus tard, cette zone affichera le parcours de l'outil dplac par la machine - CNC, cette zone est appele le parcours d'outil ( -\begin_inset Quotes fld -\end_inset - -backplot -\begin_inset Quotes frd -\end_inset - -) -\layout Itemize - -Une barre de menus, une barre d'outils, des curseurs et des onglets permettent - d'effectuer diffrentes actions. -\layout Itemize - -L'onglet -\begin_inset Quotes fld -\end_inset - -Contrle manuel -\begin_inset LatexCommand \index{Contrle manuel} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, qui permet de faire des mouvements d'axe, de mettre la broche en rotation - ou de l'arrter, de mettre l'arrosage en marche ou de l'arrter. -\layout Itemize - -L'onglet -\begin_inset Quotes fld -\end_inset - -Donnes manuelles -\begin_inset Quotes frd -\end_inset - - (aussi appel MDI -\begin_inset LatexCommand \index{Donnes manuelles} - -\end_inset - -), o les blocs de programme G-code peuvent tre entrs la main, une ligne - la fois. -\layout Itemize - -Les curseurs -\begin_inset Quotes fld -\end_inset - -Correcteurs de vitesse -\begin_inset LatexCommand \index{Correcteurs de vitesse} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, qui permettent d'augmenter ou de diminuer la vitesse de la fonction concerne. -\layout Itemize - -Une zone de textes qui affiche le G-code du fichier charg. -\layout Itemize - -Une barre d'tat qui affiche l'tat de la machine. - Dans cette capture d'cran, la machine est en marche, aucun outil n'est - mont, la position affiche est -\begin_inset Quotes fld -\end_inset - -relative -\begin_inset LatexCommand \index{Position: Relative} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - l'origine machine (par opposition une position -\begin_inset Quotes fld -\end_inset - -absolue -\begin_inset LatexCommand \index{Position: Absolue} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -) et -\begin_inset Quotes fld -\end_inset - -actuelle -\begin_inset LatexCommand \index{Position: Actuelle} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - (par opposition une position -\begin_inset Quotes fld -\end_inset - -commande -\begin_inset LatexCommand \index{Position: Commande} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -) -\layout Subsection - -Menu Items -\layout Standard - -SousSection en cours de rdaction - To Do List -\layout Standard - -finish menu descriptions -\layout Subsection - -Boutons de la barre d'outils -\layout Standard - -Signification des boutons, de gauche droite: -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_estop.gif - -\end_inset - - -\begin_inset Quotes fld -\end_inset - -Arrt d'urgence -\begin_inset Quotes frd -\end_inset - - (A/U) en Anglais (E-Stop) -\begin_inset LatexCommand \index{Arret d'urgence} - -\end_inset - - -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_power.gif - -\end_inset - - Marche/Arrt puissance machine -\begin_inset LatexCommand \index{Marche/Arret} - -\end_inset - - -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_open.gif - -\end_inset - - Ouvrir un fichier -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_reload.gif - -\end_inset - - Recharger le fichier courant -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_run.gif - -\end_inset - - Dpart cycle -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_step.gif - -\end_inset - - Cycle en pas pas -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_pause.gif - -\end_inset - - Pause/Reprise -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_stop.gif - -\end_inset - - Stopper l'excution du programme -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_blockdelete.gif - -\end_inset - - Sauter ou non les lignes commenant par "/" -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_optpause.gif - -\end_inset - - Avec ou sans pause optionelle -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_zoomin.gif - -\end_inset - - Zoom plus -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_zoomout.gif - -\end_inset - - Zoom moins -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_axis_z.gif - -\end_inset - - Vue prdfinie -\begin_inset Quotes fld -\end_inset - -Z -\begin_inset Quotes frd -\end_inset - - (vue de dessus) -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_axis_z2.gif - -\end_inset - - Vue prdfinie -\begin_inset Quotes fld -\end_inset - -Z bascule -\begin_inset Quotes frd -\end_inset - - -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_axis_x.gif - -\end_inset - - Vue prdfinie -\begin_inset Quotes fld -\end_inset - -X -\begin_inset Quotes frd -\end_inset - - (vue de ct) -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_axis_y.gif - -\end_inset - - Vue prdfinie -\begin_inset Quotes fld -\end_inset - -Y -\begin_inset Quotes frd -\end_inset - - (vue de face) -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_axis_p.gif - -\end_inset - - Vue prdfinie -\begin_inset Quotes fld -\end_inset - -P -\begin_inset Quotes frd -\end_inset - - (vue en perspective) -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_rotate.gif - -\end_inset - - Orienter la vue avec le bouton gauche de la souris -\layout Enumerate - - -\begin_inset Graphics - filename images/tool_clear.gif - -\end_inset - - Rafrachir le parcours d'outil -\layout Subsection - -Zones d'affichage graphique du programme -\layout Subsubsection - -Affichage des coordonnes -\layout Standard - -L'affichage des coordonnes est situ en haut gauche de l'cran graphique. - Il montre les positions de la machine. - A gauche du nom de l'axe, un symbole d'origine ( -\begin_inset Graphics - filename images/axis-homed.png - width 1.5ex - -\end_inset - -) est visible si la prise d'origine de l'axe a t faite. - A droite du nom de l'axe, un symbole de limite ( -\begin_inset Graphics - filename images/axis-limit.png - width 2ex - -\end_inset - -) est visible si l'axe est sur un de ses capteurs de limite. -\layout Standard - -Pour interprter correctement ces valeurs, rfrez vous l'indicateur -\begin_inset Quotes fld -\end_inset - -Position: -\begin_inset Quotes frd -\end_inset - - de la barre d'tat. - Si la position est -\begin_inset Quotes fld -\end_inset - -Absolue -\begin_inset Quotes frd -\end_inset - -, alors les valeurs affiches sont exprimes en coordonnes machine. - Si la position est -\begin_inset Quotes fld -\end_inset - -Relative -\begin_inset Quotes frd -\end_inset - -, alors les valeurs affiches sont exprimes en coordonnes relatives - la pice. - Quand les coordonnes affiches sont relatives, une marque d'origine de - couleur cyan est visible pour reprsenter -\begin_inset Quotes fld -\end_inset - -l'origine machine -\begin_inset Quotes frd -\end_inset - - ( -\begin_inset Graphics - filename images/axis-machineorigin.png - width 2ex - -\end_inset - -). - Si la position est -\begin_inset Quotes fld -\end_inset - -Commande -\begin_inset Quotes frd -\end_inset - -, alors il s'agit de la position atteindre -- par exemple, les coordonnes - passes dans une commande -\family typewriter -G0 -\family default -. - Si la position est -\begin_inset Quotes fld -\end_inset - -Actuelle -\begin_inset Quotes frd -\end_inset - -, alors il s'agit de la position laquelle la machine vient de se dplacer. - Ces valeurs peuvent varier pour certaines raisons: erreur de suivi, bande - morte, rsolution d'encodeur ou taille de pas. - Par exemple, si vous demandez un mouvement X 0.08 votre fraiseuse, mais - un pas du moteur fait 0.03, alors la position -\begin_inset Quotes fld -\end_inset - -Commande -\begin_inset Quotes frd -\end_inset - - sera de 0.08 mais la position -\begin_inset Quotes fld -\end_inset - -Actuelle -\begin_inset Quotes frd -\end_inset - - sera de 0.06 (2 pas) ou 0.09 (3 pas). -\layout Subsubsection - -Vue du parcours d'outil -\begin_inset LatexCommand \index{Chemin d'outil} - -\end_inset - - -\layout Standard - -Quand un fichier est charg, une vue du parcours d'outil qu'il produira - est visible dans la zone graphique. - Les mouvements en vitesse rapide (tels ceux produits par une commande -\family typewriter -G0 -\family default -) sont affichs en lignes pointilles vertes. - Les dplacements en vitesse programme (tels ceux produits par une commande - -\family typewriter -G1 -\family default -) sont affichs en lignes continues blanches. - Les arrts temporiss (tels ceux produits par la commande -\family typewriter -G4 -\family default -) sont reprsents par une petite marque -\begin_inset Quotes fld -\end_inset - -X -\begin_inset Quotes frd -\end_inset - -. -\layout Subsubsection - -Etendues du programme -\begin_inset LatexCommand \index{Etendues du programme} - -\end_inset - - -\layout Standard - -Les -\begin_inset Quotes fld -\end_inset - -tendues -\begin_inset Quotes frd -\end_inset - - du programme sont visibles pour chacun des axes. - Aux extrmits de chacune, la plus petite et la plus grande valeur des - coordonnes sont indiques. - Au milieu, la diffrence entre ces valeurs de coordonnes est visible. - Sur la figure -\begin_inset LatexCommand \ref{cap:Fenetre d'AXIS} - -\end_inset - -, l'tendue des X du fichier va de -1.95 1.88 pouces, un total de 3.83 pouces. -\layout Standard - -Quand une coordonne excde une -\begin_inset Quotes fld -\end_inset - -soft limits -\begin_inset Quotes frd -\end_inset - - tablie dans le fichier .ini, la dimension correspondante est affiche dans - une couleur diffrente. - Ici, la limite maximale est dpasse sur l'axe X: -\layout Standard -\align center - -\begin_inset Graphics - filename images/axis-outofrange.png - -\end_inset - - -\layout Subsubsection - -Le cne d'outil -\layout Standard - -L'emplacement de la pointe de l'outil est indiqu par le -\begin_inset Quotes fld -\end_inset - -cne d'outil -\begin_inset Quotes frd -\end_inset - -. - Le cne d'outil ne donne pas d'indication sur la forme, la longueur ou - le rayon de l'outil. -\layout Standard - -Quand un outil est charg, (par exemple dans le MDI, avec la commande -\family typewriter -T1 M6 -\family default -), le cne passe de cnique cylindrique, il indique alors le diamtre - de l'outil lu dans le fichier de la table d'outil. -\layout Subsubsection - -Trac d'outil -\layout Standard - -Quand la machine se dplace, elle laisse une trace appele le trac d'outil. - La couleur des lignes indique le type de mouvement: Jaune pour les jogs, - vert clair pour les mouvements en vitesse rapide, rouge pour les mouvements - en vitesse d'avance programme et magenta pour les mouvements circulaires - en vitesse d'avance programme. -\layout Subsubsection - -Interaction avec l'affichage -\layout Standard - -Par un clic gauche sur une portion du parcours d'outil, la ligne sous la - souris passe en surbrillance la fois dans le graphique et dans le texte. - Un clic droit dans une zone vide enlve la surbrillance. -\layout Standard - -En dplaant la souris avec son bouton gauche appuy, la vue est glisse - sur l'cran. -\layout Standard - -En dplaant la souris avec le bouton -\begin_inset Quotes fld -\end_inset - -Maj -\begin_inset Quotes frd -\end_inset - - enfonc, ou en glissant avec la molette de la souris appuye, la vue est - tourne. - Si une ligne du trac est en surbrillance, elle devient le centre de rotation - de la vue. - Autrement, le centre de rotation est le milieu du fichier dans son ensemble. -\layout Standard - -En tournant la molette de la souris ou en glissant la souris avec son bouton - droit enfonc ou encore en glissant la souris avec son bouton gauche enfonc - et la touche -\begin_inset Quotes fld -\end_inset - -Ctrl -\begin_inset Quotes frd -\end_inset - - appuye, le trac sera zoom en plus ou en moins. -\layout Standard - -En cliquant sur une des icnes de vue pr-dfinie de la barre d'outils, - ou en pressant la touche -\begin_inset Quotes fld -\end_inset - -V -\begin_inset Quotes frd -\end_inset - -, cette vue est slectionne. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Ligne courante et ligne en surbrillance -\layout Standard -\align center - -\begin_inset Graphics - filename images/axis-currentandselected_fr.png - lyxscale 50 - width 80page% - -\end_inset - - -\end_inset - - -\layout Subsection - -Zone texte d'affichage du programme -\layout Standard - -Un clic gauche sur une ligne du programme passe la ligne en surbrillance - la fois dans la zone texte et dans la zone graphique. -\layout Standard - -Quand le programme est lanc, la ligne en cours d'excution est en surbrillance - rouge. - Si aucune ligne n'est slectionne par l'utilisateur, le texte dfile automatiq -uement pour toujours laisser la ligne courante visible. -\layout Subsection - -Contrle manuel -\begin_inset LatexCommand \index{Contrle manuel} - -\end_inset - - -\layout Standard - -Quand la machine est en marche mais qu'aucun programme n'est excut, les - lments graphiques de l'onglet -\begin_inset Quotes fld -\end_inset - -Contrle manuel -\begin_inset Quotes frd -\end_inset - - peuvent tre utiliss pour actionner le centre d'usinage ou mettre en marche - et arrter les diffrents organes de la machine. -\layout Standard - -Quand la machine n'est pas en marche ou quand un programme est en cours - d'excution, le contrle manuel est indisponible. -\layout Standard - -Certains des lments dcrits plus bas ne sont pas disponibles sur toutes - les machines. - Quand AXIS dtecte qu'une -\begin_inset Quotes fld -\end_inset - -pin -\begin_inset Quotes frd -\end_inset - - particulire n'est pas connecte dans le fichier HAL, l'lment correspondant - de l'onglet Contrle manuel est supprim. - Par exemple, si la -\begin_inset Quotes fld -\end_inset - -pin HAL -\begin_inset Quotes frd -\end_inset - - -\family typewriter -motion.spindle-brake -\family default - n'est pas connecte, alors le bouton -\begin_inset Quotes fld -\end_inset - -Frein de broche -\begin_inset Quotes frd -\end_inset - - n'apparatra pas sur l'cran. - Si la variable d'environnement -\family typewriter -AXIS_NO_AUTOCONFIGURE -\family default - est mise 1, ce comportement est dsactiv et tous les boutons sont visibles. -\layout Subsubsection - -Le groupe -\begin_inset Quotes fld -\end_inset - -Axes -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Les cases cocher du groupe -\begin_inset Quotes fld -\end_inset - -Axes -\begin_inset Quotes frd -\end_inset - - permettent de choisir l'axe de la machine actionner manuellement. - Cette action s'appelle le -\begin_inset Quotes fld -\end_inset - -jog -\begin_inset Quotes frd -\end_inset - -. - Premirement slectionnez l'axe actionner en cochant sa case. - Puis cliquez le bouton -\begin_inset Quotes fld -\end_inset - -+ -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - selon le sens de dplacement souhait. - Les quatre premiers axes peuvent aussi tre dplacs avec les touches flches - pour (X et Y), Page prcdente et Page suivante pour (Z) et les touches - [ et ] pour (A). -\layout Standard - -Si -\begin_inset Quotes fld -\end_inset - -En continu -\begin_inset Quotes frd -\end_inset - - est slectionn, le mouvement continuera tant que la touche ou le bouton - resteront appuys. - Si une autre valeur est slectionne, la machine se dplacera juste de - la distance affiche chaque fois que la touche ou le bouton seront appuys. - Par dfaut, les valeurs disponibles sont: -\layout Quotation - -0.1000 0.0100 0.0010 0.0001 -\layout Standard - -Le rglage du fichier .ini -\family typewriter -[DISPLAY]INCREMENTS -\begin_inset LatexCommand \label{Increments du jog} - -\end_inset - - -\family default - peut tre utilis pour remplacer ces valeurs 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 n'est spcifie, les units natives de la machine seront - utilises. - Pour les utilisateurs prfrant les units mtriques, un bon rglage pourrait - tre: -\layout LyX-Code - -INCREMENTS = 10 um, 50 um, 0.1mm, 0.5mm, 1mm, 5mm, 10 mm -\layout Standard - -Pour les utilisateurs prfrant les units -\begin_inset Quotes fld -\end_inset - -impriales -\begin_inset Quotes frd -\end_inset - -, un bon rglage pourrait tre: -\layout LyX-Code - -INCREMENTS = 1/4 in, 1/16 in, 1/32 in, 1/64 in, 1 mil, .1 mil -\layout Standard - -ou -\layout LyX-Code - -INCREMENTS = .5 in, .1 in, 50 mil, 10 mil, 5 mil, 1 mil, .1 mil -\layout Standard - -Le mlange entre mtrique et imprial est possible: -\layout LyX-Code - -INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um -\layout Subsubsection - -La prise d'origine machine -\layout Standard - -Si votre machine a une squence de prise d'origine machine dfinie, le bouton - -\begin_inset Quotes fld -\end_inset - -POM gnrale -\begin_inset Quotes frd -\end_inset - - ou les touches Ctrl+origine lanceront cette squence. - Autrement, le bouton sera lu -\begin_inset Quotes fld -\end_inset - -Origine machine -\begin_inset Quotes frd -\end_inset - -, et enverra l'axe courant sa position d'origine. - L'appui de la touche origine seule enverra l'axe courant sa position - d'origine mme si une squence de prise d'origines machine est dfinie. - Selon votre configuration, la POM peut ajuster la valeur de la position - de l'axe comme tant la position absolue 0.0, ou elle peut faire dplacer - la machine vers une position d'origine spcifie et avec l'usage de -\begin_inset Quotes fld -\end_inset - -capteurs d'origine -\begin_inset Quotes frd -\end_inset - -. - -\layout Subsubsection - -Toucher -\layout Standard - -Si le bouton -\begin_inset Quotes fld -\end_inset - -Toucher -\begin_inset Quotes frd -\end_inset - - ou la touche Fin sont appuys, le dcalage d'origine pice de l'axe actif, - sur la figure -\begin_inset LatexCommand \ref{cap:Toucher} - -\end_inset - -: P1 G54, prendra la valeur spcifie dans le champ de la boite de dialogue. - Les expressions peuvent tre entres en suivant les rgles de programmation - rs274ngc, sauf les variables qui ne peuvent pas tre utilises. - La valeur rsultante sera affiche sous le champ. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Toucher -\begin_inset LatexCommand \label{cap:Toucher} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/touchoff_fr.png - -\end_inset - - -\end_inset - - -\layout Standard - -\layout Standard - -La case cocher -\begin_inset Quotes fld -\end_inset - -Mouvement temporaire hors limites -\begin_inset Quotes frd -\end_inset - - permet un dplacement temporaire de la machine hors des limites physiques. - Par exemple, pour ramener dans les limites, un axe engag par erreur sur - un fin de course. - -\layout Subsubsection - -Le groupe -\begin_inset Quotes fld -\end_inset - -Broche -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{Broche} - -\end_inset - - -\layout Standard - -Les boutons de la premire range permettent de slectionner la direction - de rotation de la broche: Sens anti-horaire, Arrt, Sens horaire. - Les boutons de la range suivante augmentent ou diminuent la frquence - de rotation. - La case cocher de la troisime range permet d'engager ou de relcher - le frein de broche. - Selon la configuration de votre machine, ces lments n'apparatront peut - tre pas tous. -\layout Subsubsection - -Le groupe -\begin_inset Quotes fld -\end_inset - -Arrosage -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{Arrosage} - -\end_inset - - -\layout Standard - -Ces deux boutons permettent d'activer le -\begin_inset Quotes fld -\end_inset - -Brouillard -\begin_inset Quotes frd -\end_inset - - et l' -\begin_inset Quotes fld -\end_inset - -Arrosage -\begin_inset Quotes frd -\end_inset - - ou de les dsactiver. - Selon la configuration de votre machine, ces boutons n'apparatront peut - tre pas tous. -\layout Subsection - -Donnes manuelles -\layout Standard - -L'onglet d'entre de donnes manuelles (encore appel MDI -\begin_inset LatexCommand \index{MDI} - -\end_inset - -), permet d'entrer manuellement et une par une, des lignes de programme - en G-code. - Quand la machine n'est pas en marche, ou quand un programme est en cours - d'excution, cet onglet n'est pas oprationnel. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -L'onglet Donnes manuelles -\layout Standard -\align center - -\begin_inset Graphics - filename images/axis-codeentry_fr.png - -\end_inset - - -\end_inset - - -\layout Subsubsection - -Historique -\layout Standard - -Affiche les commandes prcdemment tapes au cours de cette session. -\layout Subsubsection - -Commande MDI -\layout Standard - -Ce champ permet la saisie d'une ligne de commande excuter. - La commande sera excute par l'appui de la touche -\begin_inset Quotes fld -\end_inset - -Entre -\begin_inset Quotes frd -\end_inset - - ou un clic du bouton -\begin_inset Quotes fld -\end_inset - -Envoi -\begin_inset Quotes frd -\end_inset - -. -\layout Subsubsection - -G-Codes actifs -\layout Standard - -Ce champ affiche les -\begin_inset Quotes fld -\end_inset - -codes modaux -\begin_inset Quotes frd -\end_inset - - actuellement actifs dans l'interprteur. - Par exemple, -\begin_inset Quotes fld -\end_inset - -G54 -\begin_inset Quotes frd -\end_inset - - indique que le dcalage d'origine -\begin_inset Quotes fld -\end_inset - -G54 -\begin_inset Quotes frd -\end_inset - - sera appliqu toutes les coordonnes qui seront entres. -\layout Subsection - -Correcteurs de vitesse -\begin_inset LatexCommand \index{Correcteurs de vitesse} - -\end_inset - - -\layout Standard - -En dplaant le curseur, la vitesse de dplacement programme peut tre - modifie. - Par exemple, si un programme requiert une vitesse -\family typewriter -F60 -\family default - et que le curseur est plac sur 120%, alors la vitesse rsultante sera - de 72. - -\layout Subsection - -Correcteur de vitesse de broche -\begin_inset LatexCommand \index{Correcteur de vitesse broche} - -\end_inset - - -\layout Standard - -En dplaant ce curseur, la vitesse programme de la broche peut tre modifie. - Par exemple, si un programme requiert une vitesse F8000 et que le curseur - est plac sur 80%, alors la frquence de rotation rsultante sera de 6400. - Cet lment n'apparat que si la -\begin_inset Quotes fld -\end_inset - -HAL pin -\begin_inset Quotes frd -\end_inset - - -\family typewriter -motion.spindle-speed-out -\family default - est connecte dans .ini. -\layout Subsection - -Vitesse de Jog -\begin_inset LatexCommand \index{Vitesse de jog} - -\end_inset - - -\layout Standard - -En dplaant ce curseur, la vitesse de jog peut tre modifie. - Par exemple, si ce curseur est plac sur 100 mm/mn, alors un jog de 1 mm - durera .6 secondes, ou 1/100 de minute. - Du ct gauche du curseur (jog lent) l'espacement des valeurs est petit - alors que du ct droit (jog rapide) l'espacement des valeurs est plus - grand, cela permet une large tendue de vitesses de jog avec un contrle - plus fin du curseur dans les zones les plus importantes. -\layout Standard - -Sur les machines avec axes rotatifs, un second curseur de vitesse est prsent. - Il permet d'ajuster la vitesse de rotation des axes rotatifs (A, B et C). -\layout Section - -Raccourcis clavier -\layout Standard - -La plupart des actions d'AXIS sont accessibles depuis le clavier. - La liste complte des raccourcis clavier est disponible dans l'aide rapide - d'AXIS qui s'affiche en cliquant sur -\noun on -Aide > Aide rapide -\noun default -. - Beaucoup de ces raccourcis sont inaccessible en mode Entres manuelles. -\layout Standard - -Les raccourcis clavier les plus frquents sont visibles dans la table -\begin_inset LatexCommand \ref{cap:Raccourcis clavier usuels} - -\end_inset - -. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Raccourcis clavier usuels -\begin_inset LatexCommand \label{cap:Raccourcis clavier usuels} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Touches -\end_inset - - -\begin_inset Text - -\layout Standard - -Actions produites -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Bascule l'arrt d'urgence -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Bascule le marche/arrt machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -`, 1 .. - 9, 0 -\end_inset - - -\begin_inset Text - -\layout Standard - -Correcteurs de vitesse de 0% 100% -\end_inset - - - - -\begin_inset Text - -\layout Standard - -X, ` -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le premier axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Y, 1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le deuxime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Z, 2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le troisime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -A, 3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le quatrime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -I -\end_inset - - -\begin_inset Text - -\layout Standard - -Slection d'incrment du jog -\end_inset - - - - -\begin_inset Text - -\layout Standard - -C -\end_inset - - -\begin_inset Text - -\layout Standard - - jog en mode continu -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Ctrl+origine -\end_inset - - -\begin_inset Text - -\layout Standard - -Lance une squence de POM -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Fin -\end_inset - - -\begin_inset Text - -\layout Standard - -Toucher: valide l'offset G54 de l'axe actif -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Gauche, Droite -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du premier axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Up, Down -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du deuxime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Pg Up, Pg Dn -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du troisime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -[, ] -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du quatrime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -O -\end_inset - - -\begin_inset Text - -\layout Standard - -Ouvrir un fichier -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Ctrl+R -\end_inset - - -\begin_inset Text - -\layout Standard - -Recharger le fichier courant -\end_inset - - - - -\begin_inset Text - -\layout Standard - -R -\end_inset - - -\begin_inset Text - -\layout Standard - -Excuter le programme -\end_inset - - - - -\begin_inset Text - -\layout Standard - -P -\end_inset - - -\begin_inset Text - -\layout Standard - -Pause dans l'excution du programme -\end_inset - - - - -\begin_inset Text - -\layout Standard - -S -\end_inset - - -\begin_inset Text - -\layout Standard - -Reprise de l'excution du programme -\end_inset - - - - -\begin_inset Text - -\layout Standard - -ESC -\end_inset - - -\begin_inset Text - -\layout Standard - -Stopper l'excution -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Ctrl+K -\end_inset - - -\begin_inset Text - -\layout Standard - -Raffrachi le trac d'outil -\end_inset - - - - -\begin_inset Text - -\layout Standard - -V -\end_inset - - -\begin_inset Text - -\layout Standard - -Dfilement cyclique des vues prdfinies -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Section - -emctop: Affichage de l'tat d'EMC -\layout Standard - -AXIS inclut un programme appel -\begin_inset Quotes fld -\end_inset - -emctop -\begin_inset Quotes frd -\end_inset - - qui affiche en dtail l'tat d'emc. - Ce programme est accessible dans le menu -\noun on -Machine > Fentre d'tat d'emc2 -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Fentre d'tat d'EMC -\layout Standard -\align center - -\begin_inset Graphics - filename axis-emctop.png - width 80page% - -\end_inset - - -\end_inset - - -\layout Standard - -Le nom de chaque entre est affich dans la colonne de gauche. - La valeur courante de chaque entre s'affiche dans la colonne de droite. - Si la valeur a chang rcemment, elle s'affiche en surbrillance rouge. -\layout Section - -mdi: Entre de donnes en texte (MDI) -\layout Standard - -AXIS inclut un programme appel -\begin_inset Quotes fld -\end_inset - -mdi -\begin_inset Quotes frd -\end_inset - -, il permet d'envoyer des commandes la session d'EMC2 en cours, sous forme - de lignes de texte. - Vous pouvez lancer ce programme en ouvrant une console et en tapant: -\layout LyX-Code - -mdi /path/to/emc.nml -\layout Standard - -En cours d'excution il affiche le prompt: -\family typewriter -MDI> -\family default -. - Quand une ligne vide est entre, la position courante de la machine est - affiche. - Quand une commande est entre, elle est passe emc qui l'excute. - Une courte session MDI est visible sur la figure -\begin_inset LatexCommand \ref{cap:Session MDI} - -\end_inset - -. -\layout LyX-Code - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Session MDI -\begin_inset LatexCommand \label{cap:Session MDI} - -\end_inset - - -\layout LyX-Code - -$ mdi ~/emc2/configs/sim/emc.nml -\newline -MDI> -\newline -(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -\newline -MDI> G1 F5 X1 -\newline -MDI> -\newline -(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) -\newline -MDI> -\newline -(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) -\end_inset - - -\layout Section - -axis-remote: Commande distance de l'interface graphique d'AXIS -\layout Standard - -AXIS inclut un programme appel -\begin_inset Quotes fld -\end_inset - -axis-remote -\begin_inset Quotes frd -\end_inset - - qui permet d'envoyer certaines commandes vers l'application AXIS fonctionnant - distance. - Les commandes disponibles sont visibles en faisant: -\family typewriter -axis-remote --help -\family default - pour vrifier qu'AXIS est en marche, inclure: ( -\family typewriter ---ping -\family default -), charger un fichier, recharger le fichier courant avec: ( -\family typewriter ---reload -\family default -) et quitter le programme AXIS avec: ( -\family typewriter ---quit -\family default -). -\layout Section - -hal_manualtoolchange: Dialogue de changement manuel d'outil -\layout Standard - -AXIS inclut un composant Hall appel -\begin_inset Quotes fld -\end_inset - -hal_manualtoolchange -\begin_inset Quotes frd -\end_inset - -, il ouvre une fentre d'appel d'outil (Figure -\begin_inset LatexCommand \ref{cap:Changement manuel d'outil} - -\end_inset - -) quand la commande -\family typewriter -M6 -\family default - est invoque. - Ds que le bouton Continuer est press, l'excution du programme reprend. -\layout Standard - -Le fichier de configuration .hal: -\family typewriter -configs/sim/axis_manualtoolchange.hal -\family default - montre les commandes HAL ncessaires pour l'utilisation de ce composant. -\layout Standard - -hal_manualtoolchange peut tre utilis mme si l'interface graphique AXIS - n'est pas en service. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -La fentre de changement manuel d'outil -\begin_inset LatexCommand \label{cap:Changement manuel d'outil} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename images/manualtoolchange_fr.png - -\end_inset - - -\end_inset - - -\layout Section - -Modules en Python -\layout Standard - -AXIS -\begin_inset LatexCommand \index{AXIS} - -\end_inset - - inclut plusieurs modules en Python -\begin_inset LatexCommand \index{Python} - -\end_inset - - qui peuvent tre trs utiles. - Pour des informations compltes sur ces modules, faites: -\family typewriter - -\begin_inset Quotes fld -\end_inset - -pydoc -\family default - -\begin_inset Quotes frd -\end_inset - - ou lisez son code source. - Modules inclus: -\layout Itemize - - -\family typewriter -emc -\family default - fournit l'accs aux commandes d'emc, son tat et aux chanes d'erreur -\layout Itemize - - -\family typewriter -gcode -\family default - fournit l'accs l'interprteur rs274ngc -\layout Itemize - - -\family typewriter -rs274 -\family default - fournit des outils supplmentaires pour travailler sur les fichiers rs274ngc -\layout Itemize - - -\family typewriter -hal -\family default - permet la cration par l'utilisateur de composants de HAL crits en Python -\layout Itemize - - -\family typewriter -_togl -\family default - fournit des lments OpenGL utilisables dans les applications Tkinter -\layout Itemize - - -\family typewriter -minigl -\family default - fournit l'accs aux sous-ensembles d'OpenGL utiliss par AXIS -\layout Standard - -Pour utiliser ces modules dans vos propres scripts, assurez-vous que le - rpertoire o ils se trouvent est dans le chemin d'accs des modules Python. - Avec une version installe d'EMC2, a se fera automatiquement. - Avec une version installe en -\begin_inset Quotes fld -\end_inset - -in-place -\begin_inset Quotes frd -\end_inset - -, a peut tre fait avec l'aide de: -\family typewriter -scripts/emc-environment -\family default -. -\layout Section - -Utiliser AXIS pour contrler un tour CNC -\begin_inset LatexCommand \index{AXIS avec un tour} - -\end_inset - - -\layout Standard - -En incluant cette ligne dans le fichier ini le mode tour (lathe) sera slectionn -: -\layout LyX-Code - -[DISPLAY] -\newline -LATHE = 1 -\layout Standard - -L'axe -\begin_inset Quotes fld -\end_inset - -Y -\begin_inset Quotes frd -\end_inset - - ne sera pas visible dans l'affichage des coordonnes, la vue sera modifie - pour placer l'axe Z dans le sens gauche/droite et l'axe X dans le sens - avant/arrire et diffrents lments (tels que les icnes des vues prdfinies) - seront supprims. -\layout Standard - -La touche -\begin_inset Quotes fld -\end_inset - -V -\begin_inset Quotes frd -\end_inset - - agit alors sur le zoom pour afficher le trac complet du fichier charg. -\layout Standard - -En mode tour (lathe), la forme de l'outil charg est visible. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Forme d'outil visible en mode tour -\layout Standard -\align center - -\begin_inset Graphics - filename axis-lathe-tool.png - -\end_inset - - -\end_inset - - -\layout Section - -Configuration avance d'AXIS -\layout Subsection - -Filtres de programme -\layout Standard - -AXIS a la capacit d'envoyer des fichiers chargs travers un -\begin_inset Quotes fld -\end_inset - -filtre de programme -\begin_inset Quotes frd -\end_inset - -. - Ce filtre peut faire diverses tches: Simple, comme s'assurer que le programme - se termine bien par un: ' -\family typewriter -M2 -\family default -' ou complexe, comme dtecter que l'entre est une image et gnrer le g-code - qui permettra d'usiner sa forme. -\layout Standard - -La section -\family typewriter -[FILTER] -\family default - du fichier ini dfini comment les filtres doivent agir. - Premirement, pour chaque type de fichier, crire une ligne: -\family typewriter -PROGRAM_EXTENSION -\family default - puis, spcifier le programme excuter pour chaque type de fichier. - Ce programme reoit comme argument le nom du fichier d'entre, il doit - produire le code selon le standard rs274ngc, en sortie. - Les lignes de cette sortie s'affichent alors dans la zone texte, le parcours - d'outil rsultant est visible dans la zone graphique, enfin il sera excut - quand emc recevra la commande -\begin_inset Quotes fld -\end_inset - -Excuter le programme -\begin_inset Quotes frd -\end_inset - -. - Les lignes suivantes fournissent la possibilit d'utiliser -\begin_inset Quotes fld -\end_inset - -image-to-gcode -\begin_inset Quotes frd -\end_inset - -, le convertisseur d'images fourni avec EMC2: -\layout LyX-Code - -[FILTER] -\newline -PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image -\newline -png = image-to-gcode -\newline -gif = image-to-gcode -\layout Standard - -Il est galement possible de spcifier un interprteur: -\layout LyX-Code - -PROGRAM_EXTENSION = .py Python Script -\newline -py = python -\layout Standard - -De cette manire, n'importe quel script Python pourra tre ouvert et sa - sortie traite comme du g-code. - Un autre exemple est disponible dans: -\family typewriter -nc_files/holecircle.py -\family default -. - Ce script cre le g-code pour percer une srie de trous suivant un arc - de cercle. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Perages circulaires -\layout Standard -\align center - -\begin_inset Graphics - filename holes.png - -\end_inset - - -\end_inset - - -\layout Standard - -Si la variable d'environnement: AXIS_PROGRESS_BAR est active, alors les - lignes seront crites sur stderr de la forme: -\layout LyX-Code - -FILTER_PROGRESS=%d -\layout Standard - -AXIS fixera la barre de progression selon le pourcentage donn. - Cette fonction devrait tre utilise pour un filtre qui fonctionne suffisamment - longtemps. -\layout Subsection - -La base de donnes des ressources X -\layout Standard - -Les couleurs de la plupart des lments de l'interface utilisateur d'AXIS - peuvent tre personnalises grce la base de donnes X. - Le fichier: -\family typewriter -axis_light_background -\family default - modifie les couleurs de la fentre du parcours d'outil sur le modle -\begin_inset Quotes fld -\end_inset - -lignes noires et fond blanc -\begin_inset Quotes frd -\end_inset - -, il sert aussi de rfrence des lments configurables dans l'cran graphique. -\layout Standard - -Pour plus d'informations au sujet des lments configurables dans les applicatio -ns Tk, rfrez vous aux manuels de Tk. -\layout Standard - -Les bureaux graphiques modernes effectuent certains rglages dans la base - de donnes des ressources X ces rglages peuvent affecter ceux d'AXIS, - par dfaut ces rglages sont ignors. - Pour que les lments des ressources X crasent ceux par dfaut dans AXIS, - il faut inclure cette ligne dans vos ressources X: -\layout LyX-Code - -*Axis*optionLevel: widgetDefault -\layout Standard - -ce qui entranera la construction des options au niveau -\begin_inset Quotes fld -\end_inset - -widgetDefault -\begin_inset Quotes frd -\end_inset - -, de sorte que les ressources X (qui sont elles, au niveau -\begin_inset Quotes fld -\end_inset - -userDefault -\begin_inset Quotes frd -\end_inset - -) puissent l'emporter. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Manivelle de jog} - -\end_inset - -Manivelle de jog -\layout Standard - -Pour accrotre l'interaction d'AXIS avec une manivelle de jog physique, - l'axe actif courant slectionn dans l'interface graphique est aussi report - sur une -\begin_inset Quotes fld -\end_inset - -pin Hal -\begin_inset Quotes frd -\end_inset - - avec un nom comme -\family typewriter -axisui.jog.x -\family default -. - Except pendant un court instant aprs que l'axe courant ait chang, une - seule de ces pins la fois est -\family typewriter -TRUE -\family default -, les autres restent -\family typewriter -FALSE -\family default -. -\layout Standard - -Aprs qu'AXIS ait cr ces -\begin_inset Quotes fld -\end_inset - -HAL pins -\begin_inset Quotes frd -\end_inset - -, il excute le fichier hal dclar avec: -\family typewriter -[HAL]POSTGUI_HALFILE -\family default -. - Ce qui diffre de -\family typewriter -[HAL]HALFILE, -\family default - qui lui ne s'utilise qu'une seule fois. -\layout Subsection - -~/.axisrc -\begin_inset LatexCommand \index{.axisrc} - -\end_inset - - -\layout Standard - -Si il existe, le contenu de: -\family typewriter -~/.axisrc -\family default - est excut comme un code source Python juste avant l'ouverture de l'interface - graphique d'AXIS. - Les dtails de ce qui peut tre crit dans .axisrc sont sujets changement - durant le cycle de dveloppement. -\layout Standard - -Les lignes visibles sur la figure -\begin_inset LatexCommand \ref{cap:Exemple de fichier .axisrc} - -\end_inset - - ajoutent un Ctrl+Q comme raccourci clavier pour Quitter et activer l'option - -\begin_inset Quotes eld -\end_inset - -Distance restante -\begin_inset Quotes erd -\end_inset - - par dfaut. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Exemple de fichier .axisrc -\begin_inset LatexCommand \label{cap:Exemple de fichier .axisrc} - -\end_inset - - -\layout LyX-Code - -root_window.bind("", "destroy .") -\newline -help2.append(("Ctrl+Q", "Quitter")) -\newline -vars.show_distance_to_go.set(1) -\end_inset - - -\layout Subsection - -Editeur externe -\layout Standard - -En dfinissant: -\family typewriter -[DISPLAY]EDITOR -\family default -, les options de menu: Fichier > Editer ainsi que Fichier > Editer la table - d'outils, deviennent accessibles. - Deux valeurs qui marchent bien: -\family typewriter -EDITOR=gedit -\family default - et -\family typewriter -EDITOR=gnome-terminal -e vim -\family default -. -\layout Subsection - -Panneau de contrle virtuel -\layout Standard - -AXIS peut afficher le fichier xml pyVCP dans le panneau droit de l'interface. - -\the_end diff --git a/docs/src/gui/gladevcp.lyx b/docs/src/gui/gladevcp.lyx deleted file mode 100644 index cdc98bc33..000000000 --- a/docs/src/gui/gladevcp.lyx +++ /dev/null @@ -1,2655 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -GladeVCP -\end_layout - -\begin_layout Standard -GladeVCP is an EMC2 component which adds the ability to add a virtual control - panel to EMC user interfaces like Axis or Touchy. - It is similar to PyVCP; whereas PyVCP panels are created by editing an - XML file manually, GladeVCP uses the glade WYSIWYG user interface editor. - Therefore, it's faster and easier to create visually pleasing panels with - GladeVCP. -\end_layout - -\begin_layout Description -Note: Until GladeVCP is fully integrated with EMC2 please refer to the EMC - wiki page GladeVcpSetup for instructions on installing and setting up GladeVCP. -\end_layout - -\begin_layout Section -Creating your first GladeVCP UI component -\end_layout - -\begin_layout Standard -Either modify an existing UI component, or start a new one with running - glade. - In the left tab, expand the 'HAL Python' components. - Create a window as top level window from the 'Toplevels' section, which - by default will be named window1. - Leave that name as is - gladevcp assumes the top level window has this - name. - Add a HAL_Box or a HAL_Table from 'HAL Python' to the frame, and pick and - place some elements like LED, button etc in its box. -\end_layout - -\begin_layout Standard -This will look like so: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Glade -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/glade-myui.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Select File->Save as, give it a name like 'myui.ui' and make sure it's saved - as 'GtkBuilder' file (radio button left bottom corner in Save dialog). - The convention for GtkBuilder file extension is '.ui'. - You can now run it with: -\end_layout - -\begin_layout LyX-Code -gladevcp myui.ui -\end_layout - -\begin_layout Section -Integrating the example UI into Axis -\end_layout - -\begin_layout Standard -While you could run your UI as a separate top level window side-by-side - with Axis, having it within the Axis frame as a tab side-by-side with the - Preview and DRO tabs is more elegant. - To do so, edit your .ini file and add two variables to the DISPLAY section - of ini file: -\end_layout - -\begin_layout LyX-Code - -\size small -EMBED_TAB_NAME = GladeVCP -\end_layout - -\begin_layout LyX-Code - -\size small -EMBED_TAB_COMMAND = gladevcp -c gladevcp-test -w {XID} -H gladevcp-test.hal - gladevcp-test.ui -\end_layout - -\begin_layout Standard -Try it out by running Axis - there should be a new tab called 'GladeVCP' - near the DRO tab. - Select that tab, you should see the example panel nicely fit within Axis - like so: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -GladeVCP in Axis -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/axis-gladevcp.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Integrating into Touchy -\end_layout - -\begin_layout Standard -Touchy also understands EMBED_TAB_NAME/EMBED_TAB_COMMAND variables from - INI file so instructions for it are equal to Axis. -\end_layout - -\begin_layout Section -Axis: linking HAL pins in the example UI -\end_layout - -\begin_layout Standard -To be useful, the pins in your UI need to be linked to the rest of your - setup. - Usually this is done by running one or several HAL files through the HALFILE - and POSTGUI_HALFILE statements in the HAL section of your .ini file. -\end_layout - -\begin_layout Standard -For gladevcp components this not currently possible because all of these - HALFILE statements are run before gladevcp is started, so linking to your - UI's pins from there would refer to pins which do not yet exist. - You therefore need to prepare a file of all HAL commands which refer to - / link with your UI's pins and pass it to the gladevcp command in the EMBED_TAB -_COMMAND statement like so: -\end_layout - -\begin_layout Standard -EMBED_TAB_COMMAND = gladevcp -c gladevcp-test -H gladevcp-test.hal -w {XID} - gladevcp-test.glade -\end_layout - -\begin_layout Standard -There is an example gladevcp-test.hal file in the emc2-dev/lib/python/gladevcp - directory. - Before using it in the EMBED_TAB_NAME statement, make sure the loadusr - statements at the top are commented out. -\end_layout - -\begin_layout Section -Adding custom user callbacks in Python -\end_layout - -\begin_layout Standard -This is just a very minimal example to convey the idea - for a detailed - description on how to program a gladevcp application, see GladeVCPprogramming - and HalWidgets. -\end_layout - -\begin_layout Standard -gladevcp cannot only manipulate or display HAL pins, you can also write - regular event handlers in Python. - This could be used, among others, to execute MDI commands. - Here's how you do it: -\end_layout - -\begin_layout Standard -Write a Python module like so and save as e.g. - handlers.py: -\end_layout - -\begin_layout LyX-Code -nhits = 0 -\end_layout - -\begin_layout LyX-Code -def on_button_press(gtkobj,data=None): -\end_layout - -\begin_layout LyX-Code -global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) -\end_layout - -\begin_layout Standard -In glade, define a button or HAL button, select the 'Signals' tab, and in - the GtkButton properties select the 'pressed' line. - Enter 'on_button_press' there, and save the glade file. -\end_layout - -\begin_layout Standard -Then add the option '-u handlers.py' to the gladevcp command line. - If your event handlers are spread over several files, just add multiple - '-u ' options. -\end_layout - -\begin_layout Standard -Now, pressing the button should change its label since it's set in the callback - function. -\end_layout - -\begin_layout Standard -What the -u flag does is: all Python functions in this file are collected - and setup as potential callback handlers for your Gtk widgets - they can - be referenced from glade 'Signals' tabs. - The callback handlers are called with the particular object instance as - parameter, like the GtkButton instance above, so you can apply any GtkButton - method from there. -\end_layout - -\begin_layout Standard -Or do some more useful stuff, like calling an MDI command! -\end_layout - -\begin_layout Section -Gladevcp command line options -\end_layout - -\begin_layout Standard -See also 'man gladevcp' . - This is the usage message when you run 'gladevcp -h': -\end_layout - -\begin_layout Standard -Usage: gladevcp [options] myfile.ui -\end_layout - -\begin_layout Standard -Options: -\end_layout - -\begin_layout Description --h,\InsetSpace ~ ---help show this help message and exit -\end_layout - -\begin_layout Description --c\InsetSpace ~ -NAME Set component name to NAME. - Default is base name of UI file -\end_layout - -\begin_layout Description --d Enable debug output -\end_layout - -\begin_layout Description --g\InsetSpace ~ -GEOMETRY Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET.Values are in pixel - units, XOFFSET/YOFFSET is referenced from top left of screen use -g WIDTHxHEIGH -T for just setting size or -g +XOFFSET+YOFFSET for just position -H FILE - execute hal statements from FILE with halcmd after the component is set - up and ready -\end_layout - -\begin_layout Description --x\InsetSpace ~ -XID Re-parent gladevcp into an existing window XID instead of creating - a new top level window -\end_layout - -\begin_layout Description --u\InsetSpace ~ -FILE Use File's as additional user defined modules with handlers -\end_layout - -\begin_layout Description --U\InsetSpace ~ -USEROPT pass USEROPTs to Python modules -\end_layout - -\begin_layout Section -Troubleshooting -\end_layout - -\begin_layout Itemize -make sure your have the development version of emc2 installed. - You don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. -\end_layout - -\begin_layout Itemize -run gladevcp or Axis from a terminal window. - If you get Python errors, check whether there's still a /usr/lib/python2.6/dist- -packages/hal.so file lying around besides the newer /usr/lib/python2.6/dist-packag -es/_hal.so (note underscore); if yes, remove the hal.so file. - It has been superseded by hal.py in the same directory and thus creates - confusion. -\end_layout - -\begin_layout Itemize -if you're using run-in-place, do a 'make clean' to remove any accidentially - left over hal.so file, then 'make'. -\end_layout - -\begin_layout Itemize -if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have an - HAL pin associated with it which is off by default. - This pin controls whether these container's children are active or not. -\end_layout - -\begin_layout Chapter -GladeVCP Programming -\end_layout - -\begin_layout Section -PyVCP to GladeVCP -\end_layout - -\begin_layout Standard -Stock gladevcp can be used pretty much in the style of PyVCP - the major - difference being that in the case of gladevcp, the glade user interface - editor is used to design a screen layout, whereas PyVCP is driven by manually - edited XML files. - Also, PyVCP uses the TkInter widgets, whereas gladevcp uses the much richer - GTK toolkit. - Both support 'HAL widgets' - widgets with one or more associated HAL pin - which is the interface to the rest of EMC. - Stock gladevcp and PyVCP panels are really just a bunch of virtual switches, - dials, leds an so forth, wired to the outside world through the HAL layer, - designed to set and read ints, bits and floats values. -\end_layout - -\begin_layout Standard -Most widget sets, and their associated user interface editors, support the - concept of callbacks - functions in user-written code which are executed - when 'something happens' in the UI - events like mouse clicks, characters - typed, mouse movement, timer events, window hiding and exposure and so - forth. - Both PyVCP and stock gladevcp mainly do two things: mapping events on HAL - widgets to actions like a value change of the associated HAL pin, and in - the other direction - detecting if HAL pin values changed and updating - the associated widget, like a LED, a meter, a bar, or just some label displayin -g a value. - However, neither PyVCP nor stock gladevcp provide support for other actions - than changing HAL values. - Doing something more complex, like executing MDI commands to call a G-code - subroutine, is outside scope. -\end_layout - -\begin_layout Section -Hal Widgets -\end_layout - -\begin_layout Standard -GladeVcp includes a collection of Gtk widgets with attached HAL pins called - HAL Widgets, intended to control, display or otherwise interact with the - EMC HAL layer. - They are intended to be used with the glade user interface editor. - With proper installation, the HAL Widgets should show up in glade's 'HAL - Python' widget group. - Many HAL specific fields in the glade 'General' section have an associated - mouse-over tool tip. -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -add link to HAL data types -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -HAL signals come in two variants, bits and numbers. - Bits are off/on signals. - Numbers can be "float", "s32" or "u32". - For more information on HAL data types see the [->] section. - The GladeVcp widgets can either display the value of the signal with an - indicator widget, or modify the signal value with a control widget. - Thus there are four classes of GladeVcp widgets that you can connect to - a HAL signal. - Another class of helper widgets allow you to organize and label your panel. -\end_layout - -\begin_layout Itemize -Widgets for indicating "bit" signals: HAL_LED -\end_layout - -\begin_layout Itemize -Widgets for controlling "bit" signals: HAL_Button, HAL_RadioButton, HAL_CheckBut -ton, HAL_RadioButton -\end_layout - -\begin_layout Itemize -Widgets for indicating "number" signals: HAL_Label, HAL_ProgressBar, HAL_Bar, - HAL_VBar, HAL_Meter -\end_layout - -\begin_layout Itemize -Widgets for controlling "number" signals: HAL_SpinButton, HAL_HScale, HAL_VScale -\end_layout - -\begin_layout Itemize -Helper widgets: HAL_Table, HAL_HBox -\end_layout - -\begin_layout Itemize -Tool Path preview: HAL_Gremlin -\end_layout - -\begin_layout Standard -HAL Widgets inherit methods, properties and signals from the underlying - Gtk widgets, so it is helpful to consult the Gtk and PyGTK documentation - as well. -\end_layout - -\begin_layout Subsection* -Widget and HAL pin naming -\end_layout - -\begin_layout Standard -Most HAL widgets have a single associated HAL pin with the same name as - the widget (glade: General->Name). - Exceptions to this rule currently are the HAL_Spinbutton, which has two - pins: a -f (float) and a -s (s32) pin, and the - HAL_ProgressBar, which has a value input pin, and a .sc -ale input pin. -\end_layout - -\begin_layout Subsection* -Setting pin and widget values -\end_layout - -\begin_layout Standard -As a general rule, if you need to set a HAL output widget's value from Python - code, do so by calling the underlying Gtk 'setter' (e.g. - set_active(), set_value()) - do not try to set the associated pin's value - by halcomp[pinname] = value directly because the widget 'will not notice'. -\end_layout - -\begin_layout Standard -It might be tempting to 'set HAL widget input pins' programmatically. - Note this defeats the purpose of an input pin in the first place - it should - be linked to, and react to signals generated by other HAL components. - While there is currently no write protection on writing to input pins in - HAL Python, this doesn't make sense. - You might use setp pinname value in the associated halfile for testing - though. -\end_layout - -\begin_layout Standard -It is perfectly OK to set an output HAL pin's value with halcomp[pinname] - = value provided this HAL pin is not associated with a widget, that is, - has been created by the hal_glib.GPin(halcomp.newpin(,,) - method (see GladeVCProgramming for an example). -\end_layout - -\begin_layout Subsection* -The hal-pin-changed signal -\end_layout - -\begin_layout Standard -Event-driven programming means that the UI tells you when "something happens" - - through a callback, like when a button was pressed. - The output HAL widgets (those which display a HAL pin's value) like LED, - Bar, VBar, Meter etc, support the hal-pin-changed signal which may cause - a callback into your Python code when - well, a HAL pin changes its value. - This means there's no more need for permanent polling of HAL pin changes - in your code, the widgets do that in the background and let you know. - The example in configs/gladevcp/examples/complex shows how this is handled - in Python. -\end_layout - -\begin_layout Standard -Here is an example how to set a hal-pin-changed signal for a HAL_LED in - the glade UI editor: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Hal Pin Change -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/hal-pin-change.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection* -Buttons -\end_layout - -\begin_layout Standard -This group of widget is derived from various Gtk buttons and consists of - HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton widgets. - All of them have a single output BIT pin named identical to the widget. - Buttons have no additional properties compared to their base Gtk classes. -\end_layout - -\begin_layout Itemize -HAL_Button: instantaneous action, does not retain state. - Important signal: pressed -\end_layout - -\begin_layout Itemize -HAL_ToggleButton, HAL_CheckButton: retains on/off state. - Important signal: toggled -\end_layout - -\begin_layout Itemize -HAL_RadioButton: a one-of-many group. - Important signal: toggled (per button). -\end_layout - -\begin_layout Itemize -Important common methods: set_active(), get_active() -\end_layout - -\begin_layout Itemize -Important properties: label, image -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Buttons -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/checkbutton.png - scale 80 - -\end_inset - - -\begin_inset Graphics - filename images/radiobutton.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Hint: Defining radio button groups in glade: -\end_layout - -\begin_layout Standard -- decide on default active button -\end_layout - -\begin_layout Standard -- in the other button's General->Group select the default active button's - name in the 'Choose a Radio Button in this project' dialog. -\end_layout - -\begin_layout Standard -See configs/gladevcp/by-widget/radiobutton for a gladevcp application and - UI file for working with radio buttons. -\end_layout - -\begin_layout Subsection* -Scales -\end_layout - -\begin_layout Standard -HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectiv -ely. - They have one output FLOAT pin with name equal to widget name. - Scales have no additional properties. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Scale -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/hscale.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Hint: To make a scale useful in glade, add an 'Adjustment' (General->Adjustment- ->New or existing adjustment) and edit the adjustment object. - It defines the default/min/max/increment -\end_layout - -\begin_layout Standard -values. - Also, set adjustment 'Page size' and 'Page increment' to zero to avoid - warnings. -\end_layout - -\begin_layout Subsection* -SpinButton -\end_layout - -\begin_layout Standard -HAL SpinButton is derived from GtkSpinButton and holds two pins: -\end_layout - -\begin_layout Itemize -{widgetname}-f: out FLOAT pin -\end_layout - -\begin_layout Itemize -{widgetname}-s: out S32 pin -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -SpinButton -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/spinbutton.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Hint: to be useful, Spinbuttons need an adjustment value like scales, see - above. -\end_layout - -\begin_layout Subsection* -Label -\end_layout - -\begin_layout Standard -HAL_Label is simple widget based on GtkLabel which represents a HAL pin - value in a user-defined format. - The pin's HAL type depends on the label_pin_type property (0:S32, 1:float, - 2:U32), see also the tooltip on General->HAL pin type (note this is different - from PyVCP which has three label widgets, one for each type). -\end_layout - -\begin_layout Standard -The text displayed depends on the text_template property - an Python format - string to represent the pin value. - It defaults to "%s" (values are converted by the str() function) but may - contain anything legit in a as argument to Pythons format() method. -\end_layout - -\begin_layout Standard -Example: Distance: %.03f will display the text and the pin value with 3 fractiona -l digits padded with zeros for a FLOAT pin. -\end_layout - -\begin_layout Subsection* -Containers: HAL_HBox and HAL_Table -\end_layout - -\begin_layout Standard -Compared to their Gtk counterparts they have one input BIT pin which controls - if their child widgets are sensitive or not. - If the pin is low then child widgets are inactive which is the default. -\end_layout - -\begin_layout Standard -Hint: if you find some part of your gladevcp application is 'grayed out' - (insensitive), see whether a container's pin is unset. -\end_layout - -\begin_layout Subsection* -LED -\end_layout - -\begin_layout Standard -The HAL_Led simulates a real indicator LED . - It has a single input BIT pin which controls it's state: ON or OFF. - Leds have several properties which control their look and feel: -\end_layout - -\begin_layout Itemize -on_color: a String defining ON color of led. - May be any valid gtk.gdk.Color name. - Not working on Ubuntu 8.04. -\end_layout - -\begin_layout Itemize -off_color: String defining OFF color of led. - May be any valid gtk.gdk.Color name or special value "dark". - "dark" means that OFF color will be set to 0.4 value of ON color. - Not working on Ubuntu 8.04. -\end_layout - -\begin_layout Itemize -pick_color_on, pick_color_off: Colors for ON and OFF states may be represented - as #RRRRGGGGBBBB strings. - These are optional properties which have precedence over "on_color" and - "off_color". -\end_layout - -\begin_layout Itemize -led_size: LED radius (for square - half of LED's side) -\end_layout - -\begin_layout Itemize -led_shape: LED Shape. - Valid values are 0 for round, 1 for oval and 2 for square shapes. -\end_layout - -\begin_layout Itemize -led_blink_rate: if set and led is ON then it's blinking. - Blink frequency is equal to "led_blink_rate" specified in milliseconds. -\end_layout - -\begin_layout Standard -As an input widget, LED also supports the hal-pin-changed signal. - If you want to get a notification in your code when the LED's HAL pin was - changed, then connect this signal to a handler, for example on_led_pin_changed - and provide the handler as follows: -\end_layout - -\begin_layout LyX-Code -def on_led_pin_changed(self,hal_led,data=None): -\end_layout - -\begin_layout LyX-Code -print "on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get() -\end_layout - -\begin_layout Standard -This will be called at any edge of the signal and also during program start - up to report the current value. -\end_layout - -\begin_layout Standard -Example LEDs: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -LED -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/leds.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection* -ProgressBar -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -This might get removed -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Note: This widget might go away. - Use the HAL_HBar and HAL_VBar widgets instead. -\end_layout - -\begin_layout Standard -The HAL_ProgressBar is derived from gtk.ProgressBar and has two float HAL - input pins: -\end_layout - -\begin_layout Itemize - - the current value to be displayed -\end_layout - -\begin_layout Itemize -.scale - the maximum absolute value of input -\end_layout - -\begin_layout Standard -It has the following properties: -\end_layout - -\begin_layout Itemize -scale - value scale. - set maximum absolute value of input. - Same as setting the .scale pin. - A float, range from -2**24 to 2**24. -\end_layout - -\begin_layout Itemize -green_limit - green zone limit lower limit -\begin_inset Note Note -status open - -\begin_layout Standard --- PFIXME: please give example value and effect -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -yellow_limit - yellow zone limit lower limit -\end_layout - -\begin_layout Itemize -red_limit - red zone limit lower limit -\end_layout - -\begin_layout Itemize -text_template - Text template to display the current value of the - pin. - Python formatting may be used for dict {"value":value} -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -PFIXME: please give example format string with and without 'dict', whatever - that means -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Progressbar -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/progressbar2.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection* -ComboBox -\end_layout - -\begin_layout Standard -HAL_ComboBox is derived from gtk.ComboBox. - It enables choice of a value from a dropdown list. -\end_layout - -\begin_layout Standard -It exports two HAL pins: -\end_layout - -\begin_layout Itemize --f: the current value, type FLOAT -\end_layout - -\begin_layout Itemize --s: the current value, type S32 -\end_layout - -\begin_layout Standard -It has the following property which can be set in glade: -\end_layout - -\begin_layout LyX-Code -column: the column index, type S32, defaults to -1, range from -1..100 . -\end_layout - -\begin_layout Standard -In default mode this widgets sets the pins to the index of the chosen list - entry. - So if your widget has three labels, it may only assume values 0,1 and 2. -\end_layout - -\begin_layout Standard -In column mode (column > -1), the value reported is chosen from the ListStore - array as defined in Glade. - So typically your widget definition would have two columns in the ListStore - , one with text displayed in the dropdown, and an int or float value to - use for that choice. -\end_layout - -\begin_layout Standard -There's an example in configs/gladevcp/by-widget/combobox/combobox.{py,ui} - which uses column mode to pick a float value from the ListStore. -\end_layout - -\begin_layout Standard -If you're confused like me about how to edit ComboBox ListStores and CellRendere -r , see http://www.youtube.com/watch?v=Z5_F-rW2cL8. -\end_layout - -\begin_layout Subsection* -Bars -\end_layout - -\begin_layout Standard -HAL Bar and VBar widgets for horizontal and vertical bars representing float - values. - They have one input FLOAT hal pin. - Both bars have the following properties: -\end_layout - -\begin_layout Itemize -invert: Swap min and max direction. - An inverted HBar grows from right to left, an inverted VBar from top to - bottom. -\end_layout - -\begin_layout Itemize -min, max: Minimum and maximum value of desired range. - It is not an error condition if the current value is outside this range. -\end_layout - -\begin_layout Itemize -zero: Zero point of range. - If it's inside of min/max range then the bar will grow from that value - and not from the left (or right) side of the widget. - Useful to represent values that may be both positive or negative. -\end_layout - -\begin_layout Itemize -force_width, force_height: Forced width or height of widget. - If not set then size will be deduced from packing or from fixed widget - size and bar will fill whole area. -\end_layout - -\begin_layout Itemize -text_template: Like in Label sets text format for min/max/current values. - Can be used to turn off value display. -\end_layout - -\begin_layout Itemize -bg_color: Background (inactive) color of bar. -\end_layout - -\begin_layout Itemize -z0_color, z1_color, z2_color: Colors of different value zones. - Defaults are "green", "yellow" and "red". - For description of zones see "z*_border" properties. -\end_layout - -\begin_layout Itemize -* z0_border, z1_border: Define up bounds of color zones. - By default only one zone is enabled. - If you want more then one zone set "z0_border" and "z1_border" to desired - values so zone 0 will fill from 0 to first border, zone 1 will fill from - first to second border and zone 2 -- from last border to 1. - Borders are set as fractions, values from 0 to 1. -\end_layout - -\begin_layout Standard -Examples: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Bars -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/hal_hbar.png - scale 80 - -\end_inset - - -\begin_inset Graphics - filename images/vscale.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection* -Meter -\end_layout - -\begin_layout Standard -HAL Meter is widget like PyVCP meter representing float value. - It have one input FLOAT hal pin. - Widget has following properties: -\end_layout - -\begin_layout Itemize -min, max: Minimum and maximum value of desired range. - It is not an error condition if the current value is outside this range. -\end_layout - -\begin_layout Itemize -force_size: Forced diameter of widget. - If not set then size will be deduced from packing or from fixed widget - size and meter will fill all available space with respect to aspect ratio. -\end_layout - -\begin_layout Itemize -text_template: Like in Label sets text format for current value. - Can be used to turn off value display. -\end_layout - -\begin_layout Itemize -label: Large label above center of meter. -\end_layout - -\begin_layout Itemize -sublabel: Small label below center of meter. -\end_layout - -\begin_layout Itemize -bg_color: Background color of meter. -\end_layout - -\begin_layout Itemize -z0_color, z1_color, z2_color: Colors of different value zones. - Defaults are "green", "yellow" and "red". - For description of zones see "z*_border" properties. -\end_layout - -\begin_layout Itemize -z0_border, z1_border: Define up bounds of color zones. - By default only one zone is enabled. - If you want more then one zone set "z0_border" and "z1_border" to desired - values so zone 0 will fill from min to first border, zone 1 will fill from - first to second border and zone 2 -- from last border to max. - Borders are set as values in range min-max. -\end_layout - -\begin_layout Standard -Examples: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Hal Meter -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/hal_meter.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection* -Gremlin tool path preview for .ngc files -\end_layout - -\begin_layout Standard -Gremlin is a plot preview widget similar to the Axis preview window. - It assumes a running EMC environment like Axis or Touchy. - To connect to it, inspects the INI_FILE_NAME environment variable. - Gremlin displays the current .ngc file - it does monitor for changes and - reloads the ngc file if the file name in Axis/Touchy changes. - If you run it in a gladevcp application when EMC is not running you might - get a traceback because the Gremlin widget cant find EMC status, like the - current file name. -\end_layout - -\begin_layout Standard -Gremlin does not export any HAL pins. - It has the following properties: -\end_layout - -\begin_layout Itemize -view : may be any of 'x', 'y', 'z', 'p' (perspective) . - Defaults to 'z' view. -\end_layout - -\begin_layout Itemize -enable_dro : boolean; wether to draw a DRO on the plot or not. - Defaults to 'True'. -\end_layout - -\begin_layout Standard -Example: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Gremlin -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/gremlin.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Action Widgets -\end_layout - -\begin_layout Standard -GladeVcp includes a collection of "canned actions" called EMC Action Widgets - for the glade user interface editor. - Other than HAL widgets, which interact with HAL pins, EMC Actions interact - with EMC and the G-code interpreter. -\end_layout - -\begin_layout Standard -EMC Action Widgets are derived from the Gtk.Action widget. - The Action widget in a nutshell: -\end_layout - -\begin_layout Itemize -it is an object available in glade -\end_layout - -\begin_layout Itemize -it has no visual appearance by itself -\end_layout - -\begin_layout Itemize -it's purpose: associate a visible, sensitive UI component like menu, toolbutton, - button with a command. - See these widget's 'General->Related Action' property. -\end_layout - -\begin_layout Itemize -the "canned action" will be executed when the associated UI component is - triggered (button press, menu click..) -\end_layout - -\begin_layout Itemize -it provides an easy way to execute commands without resorting to Python - programming. -\end_layout - -\begin_layout Standard -The appearance of EMC Actions in glade is roughly as follows: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Actions -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/emc-actions.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Tooltip hovers provide a description. -\end_layout - -\begin_layout Subsection* -Action widget types -\end_layout - -\begin_layout Subsubsection* -EMC Action widgets -\end_layout - -\begin_layout Standard -These are one-shot type widgets. - They implement a single action and are for use in simple buttons, menu - entries or radio/check groups. -\end_layout - -\begin_layout Subsubsection* -EMC ToggleAction widgets -\end_layout - -\begin_layout Standard -These are bi-modal widgets. - They implement two actions or use a second (usually pressed) state to indicate - that currently an action is running. - Toggle actions are aimed for use in ToggleButtons, ToggleToolButtons or - toggling menu items. - A simplex example is the ESTOP toggle button. -\end_layout - -\begin_layout Standard -Currently the following widgets are available: -\end_layout - -\begin_layout Itemize -The ESTOP toggle sends ESTOP or ESTOP_RESET commands to EMC depending on - it's state. -\end_layout - -\begin_layout Itemize -The ON/OFF toggle sends STATE_ON and STATE_OFF commands. -\end_layout - -\begin_layout Itemize -Pause/Resume sends AUTO_PAUSE or AUTO_RESUME commands. -\end_layout - -\begin_layout Standard -The following toggle actions have only one associated command and use the - 'pressed' state to indicate that the requested operation is running: -\end_layout - -\begin_layout Itemize -The Run toggle sends an AUTO_RUN command and waits in the pressed state - until the interpreter is idle again. -\end_layout - -\begin_layout Itemize -The Stop toggle is inactive until the interpreter enters the active state - (is running G-code) and then allows user to send AUTO_ABORT command. -\end_layout - -\begin_layout Itemize -The MDI toggle sends given MDI command and waits for its completion in 'pressed' - inactive state. -\end_layout - -\begin_layout Subsubsection* -The Action_MDI Toggle and Action_MDI widgets -\end_layout - -\begin_layout Standard -These widgets provide a means to execute arbitrary MDI commands. -\end_layout - -\begin_layout Subsubsection* -A simple example: Execute MDI command on button press -\end_layout - -\begin_layout Standard -Here's a glade UI file which conveys the basics: -\begin_inset Note Note -status open - -\begin_layout Standard -upload:whoareyou.ui -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Open it in glade and study how it's done. - Start Axis, and then start this from a terminal window with gladevcp whoareyou.u -i . - See the hal_action_mdi1 Action and it's MDI command property - this just - executes (MSG, "Hi, I'm an EMC_Action_MDI") so there should be a message - popup in Axis like so: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Who Are You -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/whoareyou.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -You'll notice that the button associated with the Action_MDI action is grayed - out if the machine is off, in E-Stop or the program is running. - It will automatically become active when the machine is turned on and out - of E-Stop, and the program is idle. -\end_layout - -\begin_layout Subsubsection* -Parameter processing in the Action_MDI and ToggleAction_MDI widgets -\end_layout - -\begin_layout Standard -Optionally, 'MDI command' strings may have parameters substituted before - they are passed to the interpreter. - Parameters currently may be names of HAL pins in the gladevcp component - (in a later release, this will be extended to cover HAL pins of other component -s as well). - This is how it works: -\end_layout - -\begin_layout Itemize -assume you have a HAL SpinBox named speed, and you want to pass it's current - value as a parameter in an MDI command. -\end_layout - -\begin_layout Itemize -The HAL SpinBox? will have a float-type HAL pin named speed-f (see HalWidgets - description). -\end_layout - -\begin_layout Itemize -To substitute this value in the MDI command, insert the HAL pin name enclosed - like so: ${pin-name} -\end_layout - -\begin_layout Itemize -for the above HAL SpinBox, we could use (MSG, "The speed is: ${speed-f}") - just to show what's happening. -\end_layout - -\begin_layout Standard -Here's the example UI file for gladevcp: -\begin_inset Note Note -status open - -\begin_layout Standard -upload:speed.ui -\end_layout - -\end_inset - - , and here's what you get: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Speed -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/speed.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection* -An advanced example: Feeding parameters to an O-word subroutine -\end_layout - -\begin_layout Standard -It's perfectly OK to call an O-word subroutine in an MDI command, and pass - HAL pin values as actual parameters. - Here's an example UI file upload:owordsub.ui and O-word sub: -\begin_inset Note Note -status open - -\begin_layout Standard -upload:oword.ngc -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Place oword.ngc so Axis can find it, and run gladevcp owordsub.ui from a terminal - window. - This looks like so: -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -O Word -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/oword.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection* -Preparing for an MDI Action, and cleaning up afterwards -\end_layout - -\begin_layout Standard -The EMC G-Code interpreter has a single global set of variables, like feed, - spindle speed, relative/absolute mode and others. - If you use G code commands or O-word subs, some of these variables might - get changed by the command or subroutine - for example, a probing subroutine - will very likely set the feed value quite low. - With no further precautions, your previous feed setting will be overwritten - by the probing subroutine's value. -\end_layout - -\begin_layout Standard -To deal with this surprising and undesirable side effect of a given O-word - subroutine or G-code statement executed with an EMC ToggleAction_MDI, you - might associate pre-MDI and post-MDI handlers with a given EMC ToggleAction_MDI. - These handlers are optional and provide a way to save any state before - executing the MDI Action, and to restore it to previous values. - The signal names are mdi-command-start and mdi-command-stop; the handler - names can be set in glade like any other handler. -\end_layout - -\begin_layout Standard -Here's an example how a feed value might be saved and restored by such handlers - (note that EMC command and status channels are available as self.emc and - self.stat through the _EMC_ActionBase class: -\end_layout - -\begin_layout LyX-Code -def on_mdi_command_start(self, action, userdata=None): -\end_layout - -\begin_layout LyX-Code - action.stat.poll() -\end_layout - -\begin_layout LyX-Code - self.start_feed = action.stat.settings[1] -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -def on_mdi_command_stop(self, action, userdata=None): -\end_layout - -\begin_layout LyX-Code - action.emc.mdi('F%.1f' % (self.start_feed)) -\end_layout - -\begin_layout LyX-Code - while action.emc.wait_complete() == -1: -\end_layout - -\begin_layout LyX-Code - pass -\end_layout - -\begin_layout Standard -Only the Action_MDI Toggle widget supports these signals. -\end_layout - -\begin_layout Subsubsection* -Using the EMC Stat object to deal with status changes -\end_layout - -\begin_layout Standard -Many actions depend on EMC status - is it in manual, MDI or auto mode? is - a program running, paused or idle? You cannot start an MDI command while - a G-code program is running, so this needs to be taken care of. - Many EMC actions take care of this themselves, and related buttons and - menu entries are deactivated when the operation is currently impossible. -\end_layout - -\begin_layout Standard -When using Python event handlers - which are at a lower level than Actions - - one needs to take care of dealing with status dependencies oneself. - For this purpose, there's the EMC Stat widget: to associate EMC status - changes with event handlers. -\end_layout - -\begin_layout Standard -EMC Stat has no visible component - you just add it to your UI with glade. - Once added, you can associate handlers with its following signals: -\end_layout - -\begin_layout Itemize -state-related: "state-estop", "state-estop-reset", "state-on", "state-off" - - emitted when E-Stop condtion occurs, is reset, machine is turned on, - or is turned off -\end_layout - -\begin_layout Itemize -mode-related: "mode-manual", "mode-mdi", "mode-auto" - emitted when EMC - enters that particular mode -\end_layout - -\begin_layout Itemize -interpreter-related: "interp-run", "interp-idle", "interp-paused", "interp-readi -ng", "interp-waiting" - emitted when the G-code interpreter changes into - that mode -\end_layout - -\begin_layout Section -User Defined Actions -\end_layout - -\begin_layout Standard -As most of the infrastructure to support user-defined actions in glade and - the GTK widget set is in place, the new gladevcp version really just provides - a way for the user to write a Python module whose class methods - or in - the simple case, just functions - can be referred to in glade as event - handlers, a way to import this module(s) into gladevcp at runtime and properly - link it with the rest of the HAL layer. -\end_layout - -\begin_layout Subsection* -HAL value change events -\end_layout - -\begin_layout Standard -We also extended the way the HAL input pins interact with the gladevcp panel. - Beyond HAL widgets displaying pin values, there is now a way to attach - a 'value-changed' callback to a HAL pin, which fits nicely with the event-drive -n structure of a typical widget application: every activity, be it mouse - click, key, timer expired, or the change of a HAL pin's value, generates - a callback and is handled by the same orthogonal mechanism. -\end_layout - -\begin_layout Standard -Note that the above refers to explicitly declared HAL pins. - HAL widgets come with a pre-defined signal 'hal-pin-changed', see the HalWidget -s page for details. -\end_layout - -\begin_layout Standard -See the 'Adding HAL pins' section below for details. -\end_layout - -\begin_layout Subsection* -Persistent values in GladeVCP -\end_layout - -\begin_layout Standard -A annoying aspect of gladevcp in its earlier form and pyvcp is the fact - that you may change values through text entry, sliders, spin boxes, toggle - buttons etc, but their settings are not saved and restored at the next - run of EMC - they start at the default value as set in the panel or widget - definition. - Therefore I added an easy-to-use mechanism to save and restore the state - of HAL widgets, and program variables (in fact instance attributes) as - well. - This mechanism uses the popular '.ini' file syntax and has safeguards against - the .ini file and the corresponding user interface or program variables - getting out of sync - just imagine renaming, adding or deleting widgets - in glade: an .ini file lying around from a previous program version, or - an entirely different user interface, would be not be able to restore the - state properly. - This situation is detected through a signature which depends on all object - names and types which are saved and to be restored. - In the case of signature mismatch, a new .ini file with default settings - is generated. -\end_layout - -\begin_layout Subsection* -Programming model -\end_layout - -\begin_layout Standard -The overall protocol is as follows: -\end_layout - -\begin_layout Itemize -design your UI with glade, and set signal handlers where you want actions - associated with a widget -\end_layout - -\begin_layout Itemize -write a Python module which contains callable objects (see 'handler models' - below) -\end_layout - -\begin_layout Itemize -pass your module's path name to gladevcp with the '-u ' option -\end_layout - -\begin_layout Itemize -gladevcp imports the module, inspects it for signal handlers and connects - them to the widget tree -\end_layout - -\begin_layout Itemize -the main event loop is run. -\end_layout - -\begin_layout Subsubsection* -The simple handler model -\end_layout - -\begin_layout Standard -For simple tasks it's sufficient to define functions named after the glade - signal handlers. - These will be called when the corresponding event happens in the widget - tree. - Here's a trivial example - it assumes that the 'pressed' signal of a GTK - Button or HAL Button is linked to a callback called 'on_button_press': -\end_layout - -\begin_layout LyX-Code -nhits = 0 -\end_layout - -\begin_layout LyX-Code -def on_button_press(gtkobj,data=None): -\end_layout - -\begin_layout LyX-Code -global nhits -\end_layout - -\begin_layout LyX-Code -nhits += 1 -\end_layout - -\begin_layout LyX-Code -gtkobj.set_label("hits: %d" % nhits) -\end_layout - -\begin_layout Standard -Add this function to a Python file and run as follows: -\end_layout - -\begin_layout LyX-Code -gladevcp -u .py mygui.ui -\end_layout - -\begin_layout Standard -Note communication between handlers has to go through global variables, - which does not scale well and is positively un-pythonic. - This is why we came up with the class-based handler model. -\end_layout - -\begin_layout Subsubsection* -The class-based handler model -\end_layout - -\begin_layout Standard -The idea here is: handlers are linked to class methods. - The underlying class(es) are instantiated and inspected during gladevcp - startup and linked to the widget tree as signal handlers. - So the task now is to write: -\end_layout - -\begin_layout Itemize -one or more several class definition(s) with one or several methods, in - one module or split over several modules, -\end_layout - -\begin_layout Itemize -a function 'get_handlers' in each module which will return a list of class - instances to gladevcp - their method names will be linked to signal handlers -\end_layout - -\begin_layout Standard -Here is a minimum user-defined handler example module: -\end_layout - -\begin_layout LyX-Code -Class MyCallbacks : -\end_layout - -\begin_layout LyX-Code -def on_this_signal(self,obj,data=None): -\end_layout - -\begin_layout LyX-Code -print "this_signal happened, obj=",obj -\end_layout - -\begin_layout LyX-Code -def get_handlers(halcomp,builder,useropts): -\end_layout - -\begin_layout LyX-Code -return [MyCallbacks ()] -\end_layout - -\begin_layout Standard -Now, 'on_this_signal' will be available as signal handler to your widget - tree. -\end_layout - -\begin_layout Subsubsection* -The get_handlers protocol -\end_layout - -\begin_layout Standard -If during module inspection gladevcp finds a function 'get_handlers', it - calls it as follows: -\end_layout - -\begin_layout Standard -get_handlers(halcomp,builder,useropts) -\end_layout - -\begin_layout Standard -the arguments are: -\end_layout - -\begin_layout Itemize -halcomp - refers to the HAL component under construction -\end_layout - -\begin_layout Itemize -builder - widget tree - result of reading the UI definition (either referring - to a GTKBuilder or libglade-type object) -\end_layout - -\begin_layout Itemize -useropts - a list of strings collected from the gladevcp command line '-U - ' option -\end_layout - -\begin_layout Standard -gladevcp then inspects the list of class instances and retrieves their method - names. - Qualifying method names are connected to the widget tree as signal handlers. - Only method names which do not begin with an '_' (underscore) are considered. -\end_layout - -\begin_layout Standard -Note that regardless whether you're using the libglade or the new GtkBuilder - format for your glade UI, widgets can always be referred to as -\series bold -builder.get_object() -\series default -. - Also, the complete list of widgets is available as -\series bold -builder.get_objects() -\series default - regardless of UI format. -\end_layout - -\begin_layout Subsection* -Initialization sequence -\end_layout - -\begin_layout Standard -It is important to know in which state of affairs your get_handlers() function - is called so you know what is safe to do there and what not. - First, modules are imported and initialized in command line order. - After successful import, get_handlers() is called in the following state: -\end_layout - -\begin_layout Itemize -the widget tree is created, but not yet realized (no toplevel window.show() - has been executed yet) -\end_layout - -\begin_layout Itemize -the halcomp HAL component is set up and all HAL widget's pins have already - been added to it -\end_layout - -\begin_layout Itemize -it is safe to add more HAL pins because halcomp.ready() has not yet been - called at this point, so you may add your own pins, for instance in the - class __init__() method. -\end_layout - -\begin_layout Standard -Once all modules have been imported and method names extracted, the following - steps happen: -\end_layout - -\begin_layout Itemize -all qualifying method names will be connected to the widget tree with connect_si -gnals()/signal_autoconnect() (depending on the type of UI imported - GtkBuilder - vs the old libglade format). -\end_layout - -\begin_layout Itemize -the HAL component is finalized with halcomp.ready() -\end_layout - -\begin_layout Itemize -if a window ID was passed as argument, the widget tree is re-parented to - run in this window, and glade's toplevel window1 is abandoned (see FAQ) -\end_layout - -\begin_layout Itemize -if a HAL command file was passed with '-H halfile', it is executed with - halcmd -\end_layout - -\begin_layout Itemize -the gtk main loop is run. -\end_layout - -\begin_layout Standard -So when your handler class is initialized, all widgets are existent but - not yet realized (displayed on screen). - And the HAL component isn't ready as well, so its unsafe to access pins - values in your __init__() method. -\end_layout - -\begin_layout Standard -If you want to have a callback to execute at program start after it is safe - to access HAL pins, then a connect a handler to the realize signal of the - top level window1 (which might be its only real purpose). - At this point gladevcp is done with all setup tasks, the halfile has been - run, and gladevcp is about to enter the gtk main loop. -\end_layout - -\begin_layout Subsection* -Multiple callbacks with the same name -\end_layout - -\begin_layout Standard -Within a class, method names must be unique. - However, it is OK to have multiple class instances passed to gladevcp by - get_handlers() with identically named methods. - When the corresponding signal occurs, these methods will be called in definitio -n order - module by module, and within a module, in the order class instances - are returned by get_handlers(). -\end_layout - -\begin_layout Subsection* -The gladevcp -U flag -\end_layout - -\begin_layout Standard -Instead of extending gladevcp for any conceivable option which could potentially - be useful for a handler class, you may use the -U flag (repeatedly - if you wish). - This flag collects a list of strings. - This list is passed to the get_handlers() function (useropts argument). - Your code is free to interpret these strings as you see fit. - An possible usage would be to pass them to the Python exec function in - your get_handlers() as follows: -\end_layout - -\begin_layout LyX-Code -debug = 0 -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -def get_handlers(halcomp,builder,useropts): -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -global debug # assuming there's a global var -\end_layout - -\begin_layout LyX-Code -for cmd in useropts: -\end_layout - -\begin_layout LyX-Code -exec cmd in globals() -\end_layout - -\begin_layout Standard -This way you can pass arbitrary Python statements to your module through - the gladevcp -U option, for example: -\end_layout - -\begin_layout Standard -gladevcp -U debug=42 -U "print 'debug=%d' % debug" ... -\end_layout - -\begin_layout Standard -This should set debug to 2 and confirm that your module actually did it. -\end_layout - -\begin_layout Subsection* -Persistence -\end_layout - -\begin_layout Standard -If you want any of: GTK widget state, HAL widgets output pin's values and/or - class attributes of your handler class to be retained across invocations, - proceed as follows: -\end_layout - -\begin_layout Itemize -import the gladevcp.persistence module -\end_layout - -\begin_layout Itemize -decide which instance attributes, and their default values you want to have - retained, if any -\end_layout - -\begin_layout Itemize -decide which widgets should have their state retained -\end_layout - -\begin_layout Itemize -describe these decisions in your handler class' __init__() method through - a nested dictionary as follows: -\end_layout - -\begin_layout LyX-Code -def __init__(self, halcomp,builder,useropts): -\end_layout - -\begin_layout LyX-Code -self.halcomp = halcomp -\end_layout - -\begin_layout LyX-Code -self.builder = builder -\end_layout - -\begin_layout LyX-Code -self.useropts = useropts -\end_layout - -\begin_layout LyX-Code -self.defaults = { -\end_layout - -\begin_layout LyX-Code - # the following names will be saved/restored as method attributes -\end_layout - -\begin_layout LyX-Code - # the save/restore mechanism is strongly typed - the variables type - will be derived from the type of the -\end_layout - -\begin_layout LyX-Code - # initialization value. - Currently supported types are: int, float, bool, string -\end_layout - -\begin_layout LyX-Code - IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"}, -\end_layout - -\begin_layout LyX-Code - # to save/restore all widget's state which might remotely make sense, - add this: -\end_layout - -\begin_layout LyX-Code - IniFile.widgets : widget_defaults(builder.get_objects()) -\end_layout - -\begin_layout LyX-Code - # a sensible alternative might be to retain only all HAL output widgets' - state: -\end_layout - -\begin_layout LyX-Code - # IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), - hal_only=True,output_only = True)), -\end_layout - -\begin_layout LyX-Code -} -\end_layout - -\begin_layout Standard -and associate an .ini file with this descriptor: -\end_layout - -\begin_layout LyX-Code -self.ini_filename = __name__ + '.ini' -\end_layout - -\begin_layout LyX-Code -self.ini = IniFile(self.ini_filename,self.defaults,self.builder) -\end_layout - -\begin_layout LyX-Code -self.ini.restore_state(self) -\end_layout - -\begin_layout Standard -after restore_state(), self will have attributes set if as running the following -: -\end_layout - -\begin_layout LyX-Code -self.nhits = 0 -\end_layout - -\begin_layout LyX-Code -self.a = 1.67 -\end_layout - -\begin_layout LyX-Code -self.d = True -\end_layout - -\begin_layout LyX-Code -self.c = "a string" -\end_layout - -\begin_layout Standard -Note that types are saved and preserved on restore. - This example assumes that the ini file didn't exist or had the default - values from self.defaults. -\end_layout - -\begin_layout Standard -After this incantation, you can use the following IniFil methods: -\end_layout - -\begin_layout Itemize -ini.save_state(obj) - saves objs's attributes as per IniFil.vars dictionary - and the widget state as described in IniFile.widgets in self.defaults -\end_layout - -\begin_layout Itemize -ini.create_default_ini() - create a .ini file with default values -\end_layout - -\begin_layout Itemize -ini.restore_state(obj) - restore HAL out pins and obj's attributes as saved/initi -alized to default as above -\end_layout - -\begin_layout Standard -To save the widget and/or variable state on exit, connect a signal handler - to the window1 (toplevel) destroy event: -\end_layout - -\begin_layout LyX-Code -def on_destroy(self,obj,data=None): -\end_layout - -\begin_layout LyX-Code - self.ini.save_state(self) -\end_layout - -\begin_layout Standard -Next time you start the gladevcp application, the widgets should come up - in the state when the application was closed. -\end_layout - -\begin_layout Subsection* -Hand-editing .ini files -\end_layout - -\begin_layout Standard -You can do that, but note that the values in self.defaults override your - edits if there is a syntax or type error in your edit. - The error is detected, a console message will hint about that happened, - and the bad inifile will be renamed to have the .BAD suffix. - Subsequent bad ini files overwrite earlier .BAD files. -\end_layout - -\begin_layout Subsection* -Adding HAL pins -\end_layout - -\begin_layout Standard -If you need HAL pins which are not associated with a specific HAL widget, - add them as follows: -\end_layout - -\begin_layout LyX-Code -import hal_glib -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -# in your handler class __init__(): -\end_layout - -\begin_layout LyX-Code -self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_BIT, - hal.HAL_IN)) -\end_layout - -\begin_layout Standard -To get a callback when this pin's value changes, associate a -\series bold -value-change -\series default - callback with this pin, add: -\end_layout - -\begin_layout LyX-Code -self.example_trigger.connect('value-changed', self._on_example_trigger_change) -\end_layout - -\begin_layout Standard -and define a callback method (or function, in this case leave out the 'self' - parameter): -\end_layout - -\begin_layout LyX-Code -# note '_' - this method will not be visible to the widget tree -\end_layout - -\begin_layout LyX-Code -def _on_example_trigger_change(self,pin,userdata=None): -\end_layout - -\begin_layout LyX-Code -print "pin value changed to:" % (pin.get()) -\end_layout - -\begin_layout Subsection* -Adding timers -\end_layout - -\begin_layout Standard -Since gladevcp uses GTK widgets which rely on the GObject base class, the - full glib functionally is available. - Here is an example for a timer callback: -\end_layout - -\begin_layout LyX-Code -def _on_timer_tick(self,userdata=None): -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -return True # to restart the timer; return False for on-shot -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -# demonstrate a slow background timer - granularity is one second -\end_layout - -\begin_layout LyX-Code -# for a faster timer (granularity 1msec), use this: -\end_layout - -\begin_layout LyX-Code -# glib.timeout_add(100, self._on_timer_tick,userdata) # 10Hz -\end_layout - -\begin_layout LyX-Code -glib.timeout_add_seconds(1, self._on_timer_tick) -\end_layout - -\begin_layout Subsection* -Implementation note: Key handling in Axis -\end_layout - -\begin_layout Standard -We believe key handling works OK, but since it is new code, we're telling - about it you so you can watch out for problems; please let us know of errors - or odd behavior. - This is the story: -\end_layout - -\begin_layout Standard -Axis uses the TkInter widget set. - GladeVCP applications use Gtk widgets and run in a separate process context. - They are hooked into Axis with the Xembed protocol. - This allows a child application like gladevcp to properly fit in a parent's - window, and - in theory - have integrated event handling. -\end_layout - -\begin_layout Standard -However, this assumes that both parent and child application properly support - the Xembed protocol, which Gtk does, but TkInter doesn't. - A consequence of this is that certain keys would not be forwarded from - a gladevcp panel to Axis properly under all circumstances. - One of these situations was the case when an Entry, or SpinButton widget - had focus: in this case, for instance an Escape key would not have been - forwarded to Axis and cause an abort as it should, with potentially disastrous - consequences. -\end_layout - -\begin_layout Standard -Therefore, key events in gladevcp are explicitly handled, and selectively - forwarded to Axis, to assure that such situations cannot arise. - For details, see the keyboard_forward() function in lib/python/gladevcp/xembed.p -y. -\end_layout - -\begin_layout Subsection* -FAQ -\end_layout - -\begin_layout Itemize -I get an unexpected unmap event in my handler function right after startup. - What's this?: This is a consequence of your glade UI file having the window1 - Visible property set to True, together with re-parenting the gladevcp window - into Axis or touchy. - The gladevcp widget tree is created, including a top level window, and - then 'reparented into Axis', leaving that toplevel window laying around - orphaned. - To avoid having this useless empty window hanging around, it is unmapped - (made invisible), which is the cause of the unmap signal you get. - Suggested fix: set window1.visible to False, and ignore an initial unmap - event. -\end_layout - -\begin_layout Itemize -my gladevcp program starts, but no window appears where I expect it to be?: - The window Axis allocates for gladevcp will obtain the 'natural size' of - all its child widgets combined. - It's the child widget's job to request a size (width and/or height). - However, not all widgets do request a width greater than 0, for instance - the Graph widget in its current form. - If there's such a widget in your glade file and it's the one which defines - the layout you might want to set its width explicitly. - Note that setting the window1 width and height properties in glade does - not make sense because this window will be orphaned during re-parenting - and hence its geometry will have no impact on layout (see above). - The general rule is: if you manually run a UI file with 'gladevcp ' - and its window has reasonable geometry, it should come up in Axis properly - as well. -\end_layout - -\begin_layout Subsection* -Examples, and rolling your own gladevcp application -\end_layout - -\begin_layout Standard -Visit emc2/configs/gladevcp for running examples. - The templates subdirectory has starters for your own projects. -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/halui.lyx b/docs/src/gui/halui.lyx deleted file mode 100644 index d604c389b..000000000 --- a/docs/src/gui/halui.lyx +++ /dev/null @@ -1,695 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Hal User Interface -\begin_inset LatexCommand label -name "cha:Hal-User-Interface" - -\end_inset - - -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:HaluiIntroduction" - -\end_inset - -Introduction -\end_layout - -\begin_layout Standard -Halui is a HAL based user interface for EMC, it connects HAL pins to NML - commands. - Most of the functionality (buttons, indicators etc.) that is provided by - a traditional GUI (mini, Axis, etc.), is provided by HAL pins in Halui. -\end_layout - -\begin_layout Standard -The easiest way to add halui is to add the following to the [HAL] section - of the ini file. -\end_layout - -\begin_layout Quote -HALUI = halui -\end_layout - -\begin_layout Standard -An alternate way to invoke it (especially when using a stepconf generated - config file) is to include the following in your custom.hal file. - Make sure you use the actual path to your ini file. -\end_layout - -\begin_layout Quote -loadusr halui -ini /path/to/inifile.ini -\end_layout - -\begin_layout Standard -in your custom.hal file. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Halui-pin-reference" - -\end_inset - -Halui pin reference -\end_layout - -\begin_layout Subsection -Abort -\end_layout - -\begin_layout Itemize -halui.abort (bit, in) - pin to send an abort message (clears out most errors) -\end_layout - -\begin_layout Subsection -Axis -\end_layout - -\begin_layout Itemize -halui.axis.n.pos-commanded (float, out) - Commanded axis position in machine - coordinates -\end_layout - -\begin_layout Itemize -halui.axis.n.pos-feedback (float, out) - Feedback axis position in machine - coordinates -\end_layout - -\begin_layout Itemize -halui.axis.n.pos-relative (float, out) - Commanded axis position in relative - coordinates -\end_layout - -\begin_layout Subsection -E-Stop -\end_layout - -\begin_layout Itemize -halui.estop.activate (bit, in) - pin for requesting E-Stop -\end_layout - -\begin_layout Itemize -halui.estop.is-activated (bit, out)- indicates E-stop reset -\end_layout - -\begin_layout Itemize -halui.estop.reset (bit, in) - pin for requesting E-Stop reset -\end_layout - -\begin_layout Subsection -Feed Override -\end_layout - -\begin_layout Itemize -halui.feed-override.count-enable (bit, in) - must be true for counts to work. -\end_layout - -\begin_layout Itemize -halui.feed-override.counts (s32, in) - counts * scale = FO percentage -\end_layout - -\begin_layout Itemize -halui.feed-override.decrease (bit, in) - pin for decreasing the FO (-=scale) -\end_layout - -\begin_layout Itemize -halui.feed-override.direct-value (bit, in) - false when using encoder to change - counts, true when setting counts directly. - The -\family typewriter -count-enable -\family default - pin must be true. -\end_layout - -\begin_layout Itemize -halui.feed-override.increase (bit, in) - pin for increasing the FO (+=scale) -\end_layout - -\begin_layout Itemize -halui.feed-override.scale (float, in) - pin for setting the scale for increase - and decrease -\end_layout - -\begin_layout Itemize -halui.feed-override.value (float, out) - current FO value -\end_layout - -\begin_layout Subsection -Flood -\end_layout - -\begin_layout Itemize -halui.flood.is-on (bit, out) - indicates flood is on -\end_layout - -\begin_layout Itemize -halui.flood.off (bit, in) - pin for requesting flood off -\end_layout - -\begin_layout Itemize -halui.flood.on (bit, in) - pin for requesting flood on -\end_layout - -\begin_layout Subsection -Homing -\end_layout - -\begin_layout Itemize -halui.home-all (bit, in) - pin for requesting all axis to home. - This pin will only be there is HOME_SEQUENCE is set in the ini file. -\end_layout - -\begin_layout Itemize - -\end_layout - -\begin_layout Subsection -Jog -\end_layout - -\begin_layout Standard - is a number between 0 and 8 and 'selected'. -\end_layout - -\begin_layout Itemize -halui.jog-deadband (float, in) - deadband for analog jogging (smaller jogging - speed requests are not performed) -\end_layout - -\begin_layout Itemize -halui.jog-speed (float, in) - pin for setting jog speed for minus/plus jogging -\end_layout - -\begin_layout Itemize -halui.jog..analog (float, in) - analog velocity input for jogging (usefull - with joysticks or other analog devices) -\end_layout - -\begin_layout Itemize -halui.jog..minus (bit, in)- pin for jogging axis in negative direction - at the halui.jog.speed velocity -\end_layout - -\begin_layout Itemize -halui.jog..plus (bit, in) - pin for jogging axis in positive direction - at the halui.jog.speed velocity -\end_layout - -\begin_layout Itemize -halui.jog.selected.minus (bit, in) - pin for jogging the selected axis in negative - direction at the halui.jog.speed velocity -\end_layout - -\begin_layout Itemize -halui.jog.selected.plus (bit, in) - pin for jogging the selected axis in positive - direction at the halui.jog.speed velocity -\end_layout - -\begin_layout Subsection -Joint -\end_layout - -\begin_layout Standard - is a number between 0 and 8 and 'selected'. -\end_layout - -\begin_layout Itemize -halui.joint..has-fault (bit, out) - status pin telling the joint has a fault -\end_layout - -\begin_layout Itemize -halui.joint..home (bit, in) - pin for homing the specific joint -\end_layout - -\begin_layout Itemize -halui.joint..is-homed (bit, out) - status pin telling that the joint is - homed -\end_layout - -\begin_layout Itemize -halui.joint..is-selected bit (bit, out) - status pin a joint is selected - - internal halui -\end_layout - -\begin_layout Itemize -halui.joint..on-hard-max-limit (bit, out) - status pin telling joint - is on the positive hardware limit switch -\end_layout - -\begin_layout Itemize -halui.joint..on-hard-min-limit (bit, out) - status pin telling joint - is on the negative hardware limit switch -\end_layout - -\begin_layout Itemize -halui.joint..on-soft-max-limit (bit, out) - status pin telling joint - is at the positive software limit -\end_layout - -\begin_layout Itemize -halui.joint..on-soft-min-limit (bit, out) - status pin telling joint - is at the negative software limit -\end_layout - -\begin_layout Itemize -halui.joint..select (bit, in) - select joint (0..7) - internal halui -\end_layout - -\begin_layout Itemize -halui.joint..unhome (bit, in) - unhomes this joint -\end_layout - -\begin_layout Itemize -halui.joint.selected (u32, out) - selected joint (0..7) - internal halui -\end_layout - -\begin_layout Itemize -halui.joint.selected.has-fault (bit, out) - status pin telling that the joint - has a fault -\end_layout - -\begin_layout Itemize -halui.joint.selected.home (bit, in) - pin for homing the selected joint -\end_layout - -\begin_layout Itemize -halui.joint.selected.is-homed (bit, out) - status pin telling that the selected - joint is homed -\end_layout - -\begin_layout Itemize -halui.joint.selected.on-hard-max-limit (bit, out) - status pin telling that - the selected joint is on the positive hardware limit -\end_layout - -\begin_layout Itemize -halui.joint.selected.on-hard-min-limit (bit, out) - status pin telling that - the selected joint is on the negative hardware limit -\end_layout - -\begin_layout Itemize -halui.joint.selected.on-soft-max-limit (bit, out) - status pin telling that - the selected joint is on the positive software limit -\end_layout - -\begin_layout Itemize -halui.joint.selected.on-soft-min-limit (bit, out) - status pin telling that - the selected joint is on the negative software limit -\end_layout - -\begin_layout Itemize -halui.joint.selected.unhome (bit, in) - pin for unhoming the selected joint -\end_layout - -\begin_layout Subsection -Lube -\end_layout - -\begin_layout Itemize -halui.lube.is-on (bit, out) - indicates lube is on -\end_layout - -\begin_layout Itemize -halui.lube.off (bit, in) - pin for requesting lube off -\end_layout - -\begin_layout Itemize -halui.lube.on (bit, in) - pin for requesting lube on -\end_layout - -\begin_layout Subsection -Machine -\end_layout - -\begin_layout Itemize -halui.machine.is-on (bit, out) - indicates machine on -\end_layout - -\begin_layout Itemize -halui.machine.off (bit, in) - pin for requesting machine off -\end_layout - -\begin_layout Itemize -halui.machine.on (bit, in) - pin for requestiong machine on -\end_layout - -\begin_layout Subsection -Max Velocity -\end_layout - -\begin_layout Standard -The maximum linear velocity can be adjusted from 0 to the MAX_VELOCITY that - is set in the [TRAJ] section of the ini file. -\end_layout - -\begin_layout Itemize -halui.max-velocity.count-enable (bit, in) - when TRUE, modify max velocity - when counts changes -\end_layout - -\begin_layout Itemize -halui.max-velocity.counts (s32, in) - lets you hook up an encoder to change - the max velocity -\end_layout - -\begin_layout Itemize -halui.max-velocity.decrease (bit, in) - pin for decreasing max velocity -\end_layout - -\begin_layout Itemize -halui.max-velocity.increase (bit, in) - pin for increasing max velocity -\end_layout - -\begin_layout Itemize -halui.max-velocity.scale (float, in) - the amount applied to the current maximum - velocity with each transition from off to on of the increase or decrease - pin in machine units per second. -\end_layout - -\begin_layout Itemize -halui.max-velocity.value (float, out) - is the maximum linear velocity in - machine units per second. -\end_layout - -\begin_layout Subsection -MDI -\begin_inset LatexCommand label -name "sub:MDI" - -\end_inset - - -\end_layout - -\begin_layout Standard -Sometimes the user wants to add more complicated tasks to be performed by - the activation of a HAL pin. - This is possible using the following MDI commands scheme: -\end_layout - -\begin_layout Itemize -The MDI_COMMAND is added to the ini file in the [HALUI] section. - -\end_layout - -\begin_layout Quote -[HALUI] -\newline -MDI_COMMAND = G0 X0 -\end_layout - -\begin_layout Itemize -When halui starts it will read the MDI_COMMAND fields in the ini, and export - pins from 00 to the number of MDI_COMMAND's found in the ini up to a maximum - of 64 commands. -\end_layout - -\begin_layout Itemize -halui.mdi-command- (bit, in) - halui will try to send the MDI command - defined in the ini. - This will not always succeed, depending on the operating mode emc2 is in - (e.g. - while in AUTO halui can't successfully send MDI commands). - If the command succeeds then it will place EMC in the MDI mode and then - back to Manual mode. -\end_layout - -\begin_layout Subsection -Mist -\end_layout - -\begin_layout Itemize -halui.mist.is-on (bit, out) - indicates mist is on -\end_layout - -\begin_layout Itemize -halui.mist.off (bit, in) - pin for requesting mist off -\end_layout - -\begin_layout Itemize -halui.mist.on (bit, in) - pin for requesting mist on -\end_layout - -\begin_layout Subsection -Mode -\end_layout - -\begin_layout Itemize -halui.mode.auto (bit, in) - pin for requesting auto mode -\end_layout - -\begin_layout Itemize -halui.mode.is-auto (bit, out) - indicates auto mode is on -\end_layout - -\begin_layout Itemize -halui.mode.is-joint (bit, out) - pin showing joint by joint jog mode is on -\end_layout - -\begin_layout Itemize -halui.mode.manual (bit, in) - pin for requesting manual mode -\end_layout - -\begin_layout Itemize -halui.mode.is-manual (bit, out) - indicates manual mode is on -\end_layout - -\begin_layout Itemize -halui.mode.is-mdi (bit, out) - indicates mdi mode is on -\end_layout - -\begin_layout Itemize -halui.mode.is-teleop (bit, out) - pin showing coordinated jog mode is on -\end_layout - -\begin_layout Itemize -halui.mode.joint (bit, in) - pin for requesting joint by joint jog mode -\end_layout - -\begin_layout Itemize -halui.mode.manual (bit, in) - pin for requesting manual mode -\end_layout - -\begin_layout Itemize -halui.mode.mdi (bit, in) - pin for requesting mdi mode -\end_layout - -\begin_layout Subsection -Program -\end_layout - -\begin_layout Itemize -halui.program.block-delete.is-on (bit, out) - -\end_layout - -\begin_layout Itemize -halui.program.block-delete.off (bit, in) - -\end_layout - -\begin_layout Itemize -halui.program.block-delete.on (bit, in) - -\end_layout - -\begin_layout Itemize -halui.program.is-idle (bit, out) - status pin telling that no program is running -\end_layout - -\begin_layout Itemize -halui.program.is-paused (bit, out) - status pin telling that a program is - paused -\end_layout - -\begin_layout Itemize -halui.program.is-running (bit, out) - status pin telling that a program is - running -\end_layout - -\begin_layout Itemize -halui.program.optional-stop.is-on (bit, out) - -\end_layout - -\begin_layout Itemize -halui.program.optional-stop.off (bit, in) - -\end_layout - -\begin_layout Itemize -halui.program.optional-stop.on (bit, in) - -\end_layout - -\begin_layout Itemize -halui.program.pause (bit, in) - pin for pausing a program -\end_layout - -\begin_layout Itemize -halui.program.resume (bit, in) - pin for resuming a paused program -\end_layout - -\begin_layout Itemize -halui.program.run (bit, in) - pin for running a program -\end_layout - -\begin_layout Itemize -halui.program.step (bit, in) - pin for stepping in a program -\end_layout - -\begin_layout Itemize -halui.program.stop (bit, in) - pin for stopping a program -\end_layout - -\begin_layout Subsection -Spindle Override -\end_layout - -\begin_layout Itemize -halui.spindle-override.count-enable (bit, in) - when TRUE, modify spindle - override when counts changes. -\end_layout - -\begin_layout Itemize -halui.spindle-override.counts (s32, in) - counts * scale = SO percentage -\end_layout - -\begin_layout Itemize -halui.spindle-override.decrease (bit, in)- pin for decreasing the SO (-=scale) -\end_layout - -\begin_layout Itemize -halui.spindle-override.direct-value (bit, in) - false when using encoder to - change counts, true when setting counts directly. - The -\family typewriter -count-enable -\family default - pin must be true. -\end_layout - -\begin_layout Itemize -halui.spindle-override.increase (bit, in) - pin for increasing the SO (+=scale) -\end_layout - -\begin_layout Itemize -halui.spindle-override.scale (float, in) - pin for setting the scale on changing - the SO -\end_layout - -\begin_layout Itemize -halui.spindle-override.value (float, out) - current SO value -\end_layout - -\begin_layout Subsection -Spindle -\end_layout - -\begin_layout Itemize -halui.spindle.brake-is-on (bit, out) - indicates brake is on -\end_layout - -\begin_layout Itemize -halui.spindle.brake-off (bit, in) - pin for deactivating spindle/brake -\end_layout - -\begin_layout Itemize -halui.spindle.brake-on (bit, in) - pin for activating spindle-brake -\end_layout - -\begin_layout Itemize -halui.spindle.decrease (bit, in) - decreases spindle speed -\end_layout - -\begin_layout Itemize -halui.spindle.forward (bit, in) - starts the spindle with CW motion -\end_layout - -\begin_layout Itemize -halui.spindle.increase (bit, in)- increases spindle speed -\end_layout - -\begin_layout Itemize -halui.spindle.is-on (bit, out) - -\end_layout - -\begin_layout Itemize -halui.spindle.reverse (bit, in)- starts the spindle with a CCW motion -\end_layout - -\begin_layout Itemize -halui.spindle.runs-backward (bit, out) - -\end_layout - -\begin_layout Itemize -halui.spindle.runs-forward (bit, out) - -\end_layout - -\begin_layout Itemize -halui.spindle.start (bit, in) - starts the spindle -\end_layout - -\begin_layout Itemize -halui.spindle.stop (bit, in) - stops the spindle -\end_layout - -\begin_layout Subsection -Tool -\end_layout - -\begin_layout Itemize -halui.tool.length-offset (float, out) - indicates current applied tool-length-offs -et -\end_layout - -\begin_layout Itemize -halui.tool.number (u32, out) - indicates current selected tool -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/halui_fr.lyx b/docs/src/gui/halui_fr.lyx deleted file mode 100644 index fbff4acb3..000000000 --- a/docs/src/gui/halui_fr.lyx +++ /dev/null @@ -1,1156 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 1 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - - -\begin_inset LatexCommand \label{cha:Halui} - -\end_inset - -Halui -\layout Section - - -\begin_inset LatexCommand \label{sec:HaluiIntroduction} - -\end_inset - -Introduction -\layout Standard - -Halui est une interface utilisateur pour EMC s'appuyant sur HAL, elle connecte - les pins de HAL des commandes NML. - La plupart des fonctionnalits (boutons, indicateurs etc.) utilises par - les interfaces graphiques traditionnelles (mini, Axis, etc.), sont fournies - par des pins de HAL dans Halui. -\layout Standard - -La faon la plus facile pour utiliser halui est de modifier votre dossier - d'ini pour inclure -\layout LyX-Code - -HALUI = halui -\layout Standard - -dans la section [HAL]. -\layout Standard - -Une solution alternative pour l'invoquer (surtout si vous gnrez la config - avec stepconf) est d'inclure -\layout LyX-Code - -loadusr halui -ini /path/to/inifile.ini -\layout Standard - -dans votre fichier custom.hal. -\layout Section - - -\begin_inset LatexCommand \label{sec:Halui-pin-reference} - -\end_inset - -Nomenclature des pins d'Halui -\layout Subsection - -Abandon (abort) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.abort (in) - pin de requte d'abandon (efface les erreurs) -\layout Subsection - -Axes (axis) -\layout Itemize - -( -\noun on -float -\noun default -) halui.axis.n.pos-commanded (out) - Position de l'axe commande, en coordonnes - machine -\layout Itemize - -( -\noun on -float -\noun default -) halui.axis.n.pos-feedback (out) - Position de l'axe lue, en coordonnes machine -\layout Itemize - -( -\noun on -float -\noun default -) halui.axis.n.pos-relative (out) - Position de l'axe, en coordonnes relatives -\layout Subsection - -Arrt d'urgence (E-Stop) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.estop.activate - pin de requte d'arrt d'urgence (E-Stop) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.estop.reset - pin de requte de relchement de l'arrt d'urgence (E-Stop - reset) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.estop.is-activated - indique si l'arrt d'urgence est actif -\layout Subsection - -Correcteur de vitesse d'avance (Feed override) -\layout Itemize - -( -\noun on -bit -\noun default -) halui.feed-override.count-enable (in) - doit tre vraie pour activer le - comptage. -\layout Itemize - -( -\noun on -float -\noun default -) halui.feed-override.value - Valeur de la correction courante de vitesse - d'avance -\layout Itemize - -( -\noun on -float -\noun default -) halui.feed-override.scale - pin pour positionner l'chelle des corrections - possibles -\layout Itemize - -( -\noun on -s32 -\noun default -) halui.feed-override.counts - comptage depuis un codeur, par exemple pour - modifier la correction de vitesse d'avance -\layout Itemize - -( -\noun on -bit -\noun default -) halui.feed-override.increase - pin pour augmenter la correction (+=scale) -\layout Itemize - -( -\noun on -bit -\noun default -) halui.feed-override.decrease - pin pour diminuer la correction (-=scale) -\layout Subsection - -Brouillard (Mist) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mist.on - pin de requte du brouillard -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mist.is-on - indique si le brouillard est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mist.off - pin de requte d'arrt du brouillard -\layout Subsection - -Arrosage (Flood) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.flood.on - pin de requte d'arrosage -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.flood.is-on - indique si l'arrosage est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.flood.off - pin de requte d'arrt d'arrosage -\layout Subsection - -Lubrifiant (Lube) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.lube.on - pin de requte de graissage -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.lube.is-on - indique si le graissage est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.lube.off - pin de requte d'arrt du graissage -\layout Subsection - -Jog -\layout Standard - - est un nombre compris entre 0 et 7, ou . -\layout Itemize - -( -\noun on -float -\noun default -) halui.jog.speed - positionne la vitesse de jog -\layout Itemize - -( -\noun on -float -\noun default -) halui.jog-deadband - bande morte pour le jogging analogique (les petites - vitesses de jog sont sans effet) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.jog..minus - jog en direction ngative -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.jog..plus - jog en direction positive -\layout Itemize - -( -\noun on -bit -\noun default -) halui.jog..analog - entre analogique de vitesse de jog (utilis avec - les joysticks ou autres matriels analogiques) -\layout Itemize - -( -\noun on -bit -\noun default -) halui.jog..minus (in) - jog l'axe -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - en direction ngative et la vitesse de halui.jog.speed velocity -\layout Itemize - -( -\noun on -bit -\noun default -) halui.jog..plus (in) - jog l'axe -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - en direction positive et la vitesse de halui.jog.speed velocity -\layout Subsection - -Joints -\layout Standard - - est un nombre compris entre 0 et 7, ou 'selected'. -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..home (out) - pin pour la prise d'origine d'un joint spcifique - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..on-soft-min-limit - pin de status indiquant que le joint - est sur sa limite logicielle ngative -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..on-soft-max-limit - pin de status indiquant que le joint - est sur sa limite logicielle positive -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..on-hard-min-limit - pin de status indiquant que le joint - est sur son fin de course de limite ngative -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..on-hard-max-limit - pin de status indiquant que le joint - est sur son fin de course de limite positive -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..has-fault (out) - pin de status indiquant que le joint est - en dfaut -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..is-homed (out) - pin de status indiquant que le joint est - rfrenc -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..is-selected bit (out) - pin indiquant que le joint est -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - - interne halui -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint..select (in) - select joint (0..7) - interne halui -\layout Itemize - -( -\family typewriter -\noun on -u32 -\family default -\noun default -) halui.joint.selected (out) - selected joint (0..7) - interne halui -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.has-fault (out) - pin de status indiquant que le joint - est en dfaut -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.home (in) - pin pour la prise d'origine du joint -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.is-homed (out) - pin de status indiquant que le joint - -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - est rfrenc -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.on-hard-max-limit (out) - status pin telling that the - selected joint is on the positive hardware limit -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.on-hard-min-limit (out) - pin de status indiquant que - le joint -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - est sur son fin de course de limite ngative -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.on-soft-max-limit (out) - pin de status indiquant que - le joint -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - est sur sa limite logicielle positive -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.joint.selected.on-soft-min-limit (out) - pin de status indiquant que - le joint -\begin_inset Quotes fld -\end_inset - -selected -\begin_inset Quotes frd -\end_inset - - est sur sa limite logicielle ngative -\layout Subsection - -Marche machine -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.machine.on - pin de requte de marche machine -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.machine.off - pin de requte d'arrt machine -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.machine.is-on - indique que la machine est en marche -\layout Subsection - -Vitesse maximum -\layout Standard - -La vitesse linaire maximum peut tre ajuste entre 0 et la valeur de la - variable MAX_VELOCITY dans la section [TRAJ] du fichier ini. -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.max-velocity.count-enable (in) - Si TRUE, la vitesse max est modifie - quand le comptage change -\layout Itemize - -( -\noun on -s32 -\noun default -) halui.max-velocity.counts (in) - vous permet, en agissant sur un codeur, - de modifier la vitesse max -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.max-velocity.decrease (in) - pin pour diminuer la vitesse max -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.max-velocity.increase (in) - pin pour augmenter la vitesse max -\layout Itemize - -( -\noun on -float -\noun default -) halui.max-velocity.scale (in) - Valeur applique sur le nombre de fronts - montants des pins increase ou decrease en units machine par seconde. -\layout Itemize - -( -\noun on -float -\noun default -) halui.max-velocity.value (out) - Valeur de la vitesse linaire maximum en - units machine par seconde. -\layout Subsection - -Donnes manuelles (MDI) -\begin_inset LatexCommand \label{sub:MDI} - -\end_inset - - -\layout Standard - -Il arrive que l'utilisateur veuille ajouter des tches plus complexes devant - tre effectues par l'activation d'une pin de HAL. - C'est possible en utilisant le schma de commande en donnes manuelles - (MDI) suivant: -\layout Itemize - -Une MDI_COMMAND est ajoute dans la section [HALUI] du fichier ini, par - exemple [HALUI] MDI_COMMAND = G0 X0 -\layout Itemize - -Quand halui dmarre il va lire/dtecter le champ MDI_COMMAND dans le fichier - ini et exporter les pins de type ( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mdi-command-, est un nombre compris entre 00 et le nombre - de MDI_COMMAND trouves dans le fichier ini, avec un maximum de 64 commandes. -\layout Itemize - -Quand la pin halui.mdi-command- est active, halui va essayer d'envoyer - au MDI la commande dfinie dans le fichier ini. - Ca ne fonctionnera pas dans tous les modes de fonctionnement o se trouve - emc2, par exemple, tant qu'il est en AUTO halui ne peut pas envoyer de - commande MDI. -\layout Subsection - -Mode de fonctionnement -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.manual (in) - pin de requte du mode manuel -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.is_manual (out) - indique si le mode manuel est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.auto (in) - pin de requte du mode auto -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.is_auto (out)- indique si le mode auto est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.mdi (in) - pin de requte du mode donnes manuelles -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.is_mdi (out) - indique si le mode donnes manuelles est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.joint (in) - pin de requte du mode jog joint par joint -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.is-joint (out) - pin indiquant si le mode joint par joint est - actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.mode.is-teleop (out) - pin indiquant que le mode jog coordonn est - actif -\layout Subsection - -Broche (Spindle) -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.start (in) - Marche de la broche -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.is-on (out) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.stop (in) - Arrt de la broche -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.forward (in) - Marche broche en sens horaire -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.runs-forward (out) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.reverse (in) - Marche broche en sens anti-horaire -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.runs-backward (out) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.increase (in) - Augmente la vitesse de broche -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.decrease (in) - Diminue la vitesse de broche -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.brake-on (in) - pin d'activation du frein de broche -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.brake-is-on (out) - indique si le frein est actif -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.spindle.brake-off (in) - pin de dsactivation du frein de broche -\layout Subsection - -Slection d'un joint -\layout Itemize - -( -\noun on -u32 -\noun default -) halui.joint.select - slectionne le joint (0..7) - internal halui -\layout Itemize - -( -\noun on -u32 -\noun default -) halui.joint.selected - joint (0..7) slectionn - internal halui -\layout Itemize - -( -\noun on -bit -\noun default -) halui.joint.x.select bit - pins pour slectinner un joint - internal halui -\layout Itemize - -( -\noun on -bit -\noun default -) halui.joint.x.is-selected bit - pin de status indiquant un joint slectionn - - internal halui -\layout Subsection - -Correcteur de vitesse de broche (Spindle override) -\layout Itemize - -( -\noun on -float -\noun default -) halui.spindle-override.value (out) - Valeur courante de la correction de - vitesse de broche -\layout Itemize - -( -\noun on -float -\noun default -) halui.spindle-override.scale (in) - pin pour positionner l'chelle des correctio -ns de vitesse de broche possibles -\layout Itemize - -( -\noun on -s32 -\noun default -) halui.spindle-override.counts (in) - comptage depuis un codeur, par exemple - pour modifier la correction de vitesse de broche -\layout Itemize - -( -\noun on -bit -\noun default -) halui.spindle-override.increase (in) - pin pour augmenter la correction - de vitesse de broche (+=scale) -\layout Itemize - -( -\noun on -bit -\noun default -) halui.spindle-override.decrease (in) - pin pour diminuer la correction de - vitesse de broche (-=scale) -\layout Itemize - -( -\noun on -bit -\noun default -) halui.spindle-override.count-enable (in) - Si TRUE, la correction de vitesse - broche varie quand le comptage change. -\layout Subsection - -Outil (Tool) -\layout Itemize - -( -\noun on -u32 -\noun default -) halui.tool.number (out) - indique l'outil courant slectionn -\layout Itemize - -( -\noun on -float -\noun default -) halui.tool.length-offset (out) - indique la correction de longueur d'outil - applique -\layout Subsection - -Programme -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.is-idle (out) - pin de status indiquant qu'aucun programme - n'est lanc -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.is-running (out) - pin de status indiquant qu'un programme - est lanc -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.is-paused (out) - pin de status indiquant qu'un programme - est en pause -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.run (in) - pin de lancement d'un programme -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.pause (in) - pin pour passer un programme en pause -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.resume (in) - pin pour lancer la reprise d'un programme -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.step (in) - pin pour avancer d'une ligne de programme -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.block-delete.is-on (out) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.block-delete.off (in) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.block-delete.on (in) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.optional-stop.is-on (out) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.optional-stop.off (in) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.optional-stop.on (in) - -\layout Itemize - -( -\family typewriter -\noun on -bit -\family default -\noun default -) halui.program.stop (in) - pin pour stopper un programme -\layout Subsection - -Gnral -\layout Itemize - -( -\noun on -bit -\noun default -) halui.abort - pin pour envoyer un message d'abandon (efface les autres - messages d'erreur) -\the_end diff --git a/docs/src/gui/image-to-gcode.lyx b/docs/src/gui/image-to-gcode.lyx deleted file mode 100644 index 76dc48d29..000000000 --- a/docs/src/gui/image-to-gcode.lyx +++ /dev/null @@ -1,566 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Image-to-gcode: Milling -\begin_inset Quotes eld -\end_inset - -depth maps -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename image-to-gcode.png - lyxscale 50 - width 100text% - -\end_inset - - -\end_layout - -\begin_layout Section -What is a depth map? -\end_layout - -\begin_layout Standard -A depth map is a greyscale image where the brightness of each pixel corresponds - to the depth (or height) of the object at each point. -\end_layout - -\begin_layout Section -Integrating image-to-gcode with the AXIS user interface -\end_layout - -\begin_layout Standard -Add the following lines to the -\family typewriter -[FILTER] -\family default - section of your .ini file to make AXIS automatically invoke image-to-gcode - when you open a .png, .gif, or .jpg image: -\end_layout - -\begin_layout Quote -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image -\newline -png = image-to-gcode -\newline -gif - = image-to-gcode -\newline -jpg = image-to-gcode -\end_layout - -\begin_layout Standard -The standard -\family typewriter -sim/axis.ini -\family default - configuration file is already configured this way. -\end_layout - -\begin_layout Section -Using image-to-gcode -\end_layout - -\begin_layout Standard -Start image-to-gcode either by opening an image file in AXIS, or by invoking - image-to-gcode from the terminal, as follows: -\end_layout - -\begin_layout Quote -image-to-gcode torus.png > torus.ngc -\end_layout - -\begin_layout Standard -Verify all the settings in the right-hand column, then press OK to create - the gcode. - Depending on the image size and options chosen, this may take from a few - seconds to a few minutes. - If you are loading the image in AXIS, the gcode will automatically be loaded - and previewed once image-to-gcode completes. - In AXIS, hitting reload will show the image-to-gcode option screen again, - allowing you to tweak them. -\end_layout - -\begin_layout Section -Option Reference -\end_layout - -\begin_layout Subsection -Units -\end_layout - -\begin_layout Standard -Specifies whether to use G20 (inches) or G21 (mm) in the generated g-code - and as the units for each option labeled -\series bold -(units) -\series default -. -\end_layout - -\begin_layout Subsection -Invert Image -\end_layout - -\begin_layout Standard -If -\begin_inset Quotes eld -\end_inset - -no -\begin_inset Quotes erd -\end_inset - -, the black pixel is the lowest point and the white pixel is the highest - point. - If -\begin_inset Quotes eld -\end_inset - -yes -\begin_inset Quotes erd -\end_inset - -, the black pixel is the highest point and the white pixel is the lowest - point. -\end_layout - -\begin_layout Subsection -Normalize Image -\end_layout - -\begin_layout Standard -If -\begin_inset Quotes eld -\end_inset - -yes -\begin_inset Quotes erd -\end_inset - -, the darkest pixel is remapped to black, the lightest pixel is remapped - to white. -\end_layout - -\begin_layout Subsection -Expand Image Border -\end_layout - -\begin_layout Standard -If -\begin_inset Quotes eld -\end_inset - -None -\begin_inset Quotes erd -\end_inset - -, the input image is used as-is, and details which are at the very edges - of the image may be cut off. - If -\begin_inset Quotes eld -\end_inset - -White -\begin_inset Quotes erd -\end_inset - - or -\begin_inset Quotes eld -\end_inset - -Black -\begin_inset Quotes erd -\end_inset - -, then a border of pixels equal to the tool diameter is added on all sides, - and details which are at the very edges of the images will not be cut off. -\end_layout - -\begin_layout Subsection -Tolerance (units) -\end_layout - -\begin_layout Standard -When a series of points are within -\series bold -tolerance -\series default - of being a straight line, they are output as a straight line. - Increasing tolerance can lead to better contouring performance in emc, - but can also remove or blur small details in the image. -\end_layout - -\begin_layout Subsection -Pixel Size (units) -\end_layout - -\begin_layout Standard -One pixel in the input image will be this many units--usually this number - is much smaller than 1.0. - For instance, to mill a 2.5x2.5-inch object from a 400x400 image file, use - a pixel size of .00625, because 2.5 / 400 = .00625. -\end_layout - -\begin_layout Subsection -Plunge Feed Rate (units per minute) -\end_layout - -\begin_layout Standard -The feed rate for the initial plunge movement -\end_layout - -\begin_layout Subsection -Feed Rate (units per minute) -\end_layout - -\begin_layout Standard -The feed rate for other parts of the path -\end_layout - -\begin_layout Subsection -Spindle Speed (RPM) -\end_layout - -\begin_layout Subsection -Scan Pattern -\end_layout - -\begin_layout Standard -Possible scan patterns are: -\end_layout - -\begin_layout Itemize -Rows -\end_layout - -\begin_layout Itemize -Columns -\end_layout - -\begin_layout Itemize -Rows, then Columns -\end_layout - -\begin_layout Itemize -Columns, then Rows -\end_layout - -\begin_layout Subsection -Scan Direction -\end_layout - -\begin_layout Standard -Possible scan directions are: -\end_layout - -\begin_layout Itemize -Positive: Start milling at a low X or Y axis value, and move towards a high - X or Y axis value -\end_layout - -\begin_layout Itemize -Negative: Start milling at a high X or Y axis value, and move towards a - low X or Y axis value -\end_layout - -\begin_layout Itemize -Alternating: Start on the same end of the X or Y axis travel that the last - move ended on. - This reduces the amount of traverse movements -\end_layout - -\begin_layout Itemize -Up Milling: Start milling at low points, moving towards high points -\end_layout - -\begin_layout Itemize -Down Milling: Start milling at high points, moving towards low points -\end_layout - -\begin_layout Subsection -Depth (units) -\end_layout - -\begin_layout Standard -The top of material is always at -\series bold -Z=0 -\series default -. - The deepest cut into the material is -\series bold -Z=-depth. -\end_layout - -\begin_layout Subsection -Step Over (pixels) -\end_layout - -\begin_layout Standard -The distance between adjacent rows or columns. - To find the number of pixels for a given units distance, compute -\series bold -distance/pixel size -\series default - and round to the nearest whole number -\series bold -\emph on -. - -\series default -\emph default - For example, if -\series bold -pixel size=.006 -\series default - and the desired step over -\series bold -distance=.015 -\series default -, then use a Step Over of 2 or 3 pixels, because -\series bold -.015/.006=2.5 -\emph on -. -\end_layout - -\begin_layout Subsection -Tool Diameter -\end_layout - -\begin_layout Standard -The diameter of the cutting part of the tool. -\end_layout - -\begin_layout Subsection -Safety Height -\end_layout - -\begin_layout Standard -The height to move to for traverse movements. - image-to-gcode always assumes the top of material is at -\series bold -Z=0 -\series default -. -\end_layout - -\begin_layout Subsection -Tool Type -\end_layout - -\begin_layout Standard -The shape of the cutting part of the tool. - Possible tool shapes are: -\end_layout - -\begin_layout Itemize -Ball End -\end_layout - -\begin_layout Itemize -Flat End -\end_layout - -\begin_layout Itemize -45 degree -\begin_inset Quotes eld -\end_inset - -vee -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Itemize -60 degree -\begin_inset Quotes eld -\end_inset - -vee -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Subsection -Lace bounding -\end_layout - -\begin_layout Standard -This controls whether areas that are relatively flat along a row or column - are skipped. - This option only makes sense when both rows and columns are being milled. - Possible bounding options are: -\end_layout - -\begin_layout Itemize -None: Rows and columns are both fully milled. -\end_layout - -\begin_layout Itemize -Secondary: When milling in the second direction, areas that do not strongly - slope in that direction are skipped. -\end_layout - -\begin_layout Itemize -Full: When milling in the first direction, areas that strongly slope in - the second direction are skipped. - When milling in the second direction, areas that do not strongly slope - in that direction are skipped. -\end_layout - -\begin_layout Subsection -Contact angle -\end_layout - -\begin_layout Standard -When -\series bold -Lace bounding -\series default - is not None, slopes greater than -\series bold -Contact angle -\series default - are considered to be -\begin_inset Quotes eld -\end_inset - -strong -\begin_inset Quotes erd -\end_inset - - slopes, and slopes less than that angle are considered to be weak slopes. -\end_layout - -\begin_layout Subsection -Roughing offset and depth per pass -\end_layout - -\begin_layout Standard -Image-to-gcode can optionally perform rouging passes. - The depth of successive roughing passes is given by -\begin_inset Quotes eld -\end_inset - -Roughing depth per pass -\begin_inset Quotes erd -\end_inset - -. - For instance, entering 0.2 will perform the first roughing pass with a depth - of 0.2, the second roughing pass with a depth of 0.4, and so on until the - full Depth of the image is reached. - No part of any roughing pass will cut closer than Roughing Offset to the - final part. - Figure -\begin_inset LatexCommand ref -reference "cap:Roughing-passes-and" - -\end_inset - - shows a tall vertical feature being milled. - In this image, Roughing depth per pass is 0.2 inches and roughing offset - is 0.1 inches. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Roughing passes and final pass -\begin_inset LatexCommand label -name "cap:Roughing-passes-and" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename i2g-roughing.png - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/image-to-gcode_fr.lyx b/docs/src/gui/image-to-gcode_fr.lyx deleted file mode 100644 index a144153f9..000000000 --- a/docs/src/gui/image-to-gcode_fr.lyx +++ /dev/null @@ -1,498 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language frenchb -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !h -\paperfontsize 10 -\spacing single -\papersize Custom -\paperpackage a4 -\use_geometry 1 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language swedish -\quotes_times 2 -\papercolumns 1 -\papersides 2 -\paperpagestyle default - -\layout Chapter - -Image-to-gcode: Usiner un -\begin_inset Quotes eld -\end_inset - -depth maps -\begin_inset Quotes erd -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename image-to-gcode.png - lyxscale 50 - width 100text% - -\end_inset - - -\layout Section - -Qu'est-ce qu'un -\begin_inset Quotes eld -\end_inset - -depth map -\begin_inset Quotes erd -\end_inset - -? -\layout Standard - -Il s'agit d'une image en chelle de gris dont la luminosit de chaque pixel - corresponds la profondeur (ou hauteur) de chaque point de l'objet. -\layout Section - -Intgrer image-to-gcode dans l'interface utilisateur d'AXIS -\layout Standard - -Ajoutez les lignes suivantes dans la section: -\family typewriter -[FILTER] -\family default - de votre fichier .ini pour qu'AXIS invoque automatiquement image-to-gcode - l'ouverture d'une image .png, .gif, ou .jpg: -\layout LyX-Code - -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image -\newline -png = image-to-gcode -\newline -gif = image-to-gcode -\newline -jpg = image-to-gcode -\layout Standard - -Le fichier de configuration: -\family typewriter -sim/axis.ini -\family default - est dj configur de cette faon. -\layout Section - -Utilisation d'image-to-gcode -\layout Standard - -image-to-gcode peut tre dmarr soit en ouvrant une image dans AXIS, soit - en invoquant image-to-gcode dans une console, de la manire suivante: -\layout LyX-Code - -image-to-gcode torus.png > torus.ngc -\layout Standard - -Ajustez les rglages dans la colonne de droite, puis pressez OK pour crer - le g-code. - Selon la taille de l'image et les options choisies, le traitement peut - durer de quelques secondes quelques minutes. - Quand une image est appele, le gcode sera automatiquement charg et visualis - dans AXIS une fois le traitement termin. - Dans AXIS, faites -\begin_inset Quotes sld -\end_inset - -Recharger -\begin_inset Quotes srd -\end_inset - - pour afficher de nouveau l'cran d'options d' image-to-gcode, vous pourrez - ainsi travailler en boucle. -\layout Section - -Les diffrentes options -\layout Subsection - -Units -\layout Standard - -Spcifie quelle unit sera utilise dans le g-code gnr G20 (pouces) ou - G21 (mm), ce sera galement l'unit utilise par toutes les options marques: - -\series bold -(units) -\series default -. -\layout Subsection - -Invert Image -\layout Standard - -Si -\begin_inset Quotes eld -\end_inset - -no -\begin_inset Quotes erd -\end_inset - -, le pixel noir sera le point le plus bas et le pixel blanc le point le - plus haut. - Si -\begin_inset Quotes eld -\end_inset - -yes -\begin_inset Quotes erd -\end_inset - -, le pixel noir sera le point le plus haut et le pixel blanc le point le - plus bas. -\layout Subsection - -Normalize Image -\layout Standard - -Si -\begin_inset Quotes eld -\end_inset - -yes -\begin_inset Quotes erd -\end_inset - -, le pixel le plus sombre est ramen au noir, le pixel le plus lumineux - est ramen au blanc. -\layout Subsection - -Expand Image Border -\layout Standard - -Si -\begin_inset Quotes eld -\end_inset - -None -\begin_inset Quotes erd -\end_inset - -, l'image entre sera utilise telle-quelle, les dtails les plus aux bords - de l'image pourraient tre coups. - Si -\begin_inset Quotes eld -\end_inset - -White -\begin_inset Quotes erd -\end_inset - - ou -\begin_inset Quotes eld -\end_inset - -Black -\begin_inset Quotes erd -\end_inset - -, alors une bordure de pixels gale au diamtre de l'outil sera ajoute - sur tout le pourtour pour viter ce risque. -\layout Subsection - -Tolerance (units) -\layout Standard - -Quand une srie de points est proche d'une ligne droite au point d'tre - dans la -\series bold -tolerance -\series default -, elle sera traite comme une ligne droite en sortie. - Augmenter la tolrance peut donner de meilleures performances de contourage - avec emc, mais peut aussi estomper ou gommer les dtails les plus fins - de l'image. -\layout Subsection - -Pixel Size (units) -\layout Standard - -Il y a beaucoup d'units pour un pixel dans l'image entre. - Habituellement ce nombre est beaucoup plus petit que 1.0. - Par exemple, pour usiner un objet de 50x50mm depuis une image de 400x400 - pixels, utiliser un -\begin_inset Quotes sld -\end_inset - -pixel size -\begin_inset Quotes srd -\end_inset - - de 0.125, parce que 50 / 400 = 0.125. -\layout Subsection - -Plunge Feed Rate (units par minute) -\layout Standard - -Vitesse du mouvement de plonge initial. -\layout Subsection - -Feed Rate (units par minute) -\layout Standard - -Vitesse d'avance pour le reste de l'usinage. -\layout Subsection - -Spindle Speed (RPM) -\layout Standard - -Vitesse de rotation de la broche, en tours/mn -\layout Subsection - -Scan Pattern -\layout Standard - -Modles de balayage possibles: -\layout Itemize - -Ranges -\layout Itemize - -Colonnes -\layout Itemize - -Ranges puis colonnes -\layout Itemize - -Colonnes puis ranges -\layout Subsection - -Scan Direction -\layout Standard - -Directions de balayage possibles: -\layout Itemize - -Positive: le fraisage commence de petites valeurs de X ou Y et se poursuit - avec des valeurs croissantes. -\layout Itemize - -Ngative: le fraisage commence des valeurs leves de X ou Y et se poursuit - avec des valeurs dcroissantes. -\layout Itemize - -Alternative: le fraisage commence aux valeurs de X ou Y o s'est termin - le dernier mouvement. - Cela rduit les dplacements -\begin_inset Quotes sld -\end_inset - -en l'air -\begin_inset Quotes srd -\end_inset - -. -\layout Itemize - -Up Milling: le fraisage commence en points bas et se poursuit vers les points - hauts. -\layout Itemize - -Down Milling: le fraisage commence en points hauts et se poursuit vers les - points bas. -\layout Subsection - -Depth (units) -\layout Standard - -Le dessus du bloc est toujours -\series bold -Z=0 -\series default -. - La profondeur d'usinage dans le matriau est de -\series bold -Z=-depth. -\layout Subsection - -Step Over (pixels) -\layout Standard - -Distance entre ranges ou colonnes adjacentes. - Pour trouver le nombre en pixels pour une distance donne en units, calculez: - -\series bold -distance/pixel size -\series default - et arrondissez au nombre le plus proche -\series bold -\emph on -. - -\series default -\emph default - Par exemple: si -\series bold -pixel size=.006 -\series default - et le pas souhait sur la -\series bold -distance=.015 -\series default -, alors utilisez un Step Over de 2 ou 3 pixels, parce que -\series bold -.015/.006=2.5 -\emph on -. -\layout Subsection - -Tool Diameter -\layout Standard - -Le diamtre du taillant de l'outil. -\layout Subsection - -Safety Height -\layout Standard - -La hauteur laquelle les mouvements de traverse. - image-to-gcode considre toujours le dessus du matriau comme tant: -\series bold -Z=0 -\series default -. -\layout Subsection - -Tool Type -\layout Standard - -La forme du taillant de l'outil. - Les formes possibles sont: -\layout Itemize - -Hmisphrique -\layout Itemize - -Plate -\layout Itemize - -V 45 degrs -\layout Itemize - -V 60 degrs -\layout Subsection - -Lace bounding -\layout Standard - -Contrle si les zones relativement plates le long d'une colonne ou d'une - range peuvent tre ignores. - Ces options n'ont de sens que pour un fraisage dans les deux directions. - Trois choix sont possibles: -\layout Itemize - -None: toutes les ranges et les colonnes seront entirement fraises. -\layout Itemize - -Secondary: lors du fraisage dans la deuxime direction, les zones qui ne - prsentent pas une forte pente dans cette direction seront ignores. -\layout Itemize - -Full: lors du fraisage dans la premire direction, les zones qui prsentent - une forte pente dans la deuxime direction seront ignores. - Lors du fraisage dans la deuxime direction, les zones qui ne prsentent - pas une forte pente dans cette direction seront ignores. -\layout Subsection - -Contact angle -\layout Standard - -Quand -\series bold -Lace bounding -\series default - n'est pas None, les pentes qui prsentent une pente suprieure -\series bold -Contact angle -\series default - seront considres comme de -\begin_inset Quotes eld -\end_inset - -fortes -\begin_inset Quotes erd -\end_inset - - pentes et celles en dessous de cet angle considres comme de faible pentes. -\layout Subsection - -Offset d'bauche et profondeur par passe d'bauche -\layout Standard - -Image-to-gcode peut optionnellement produire des passes d'bauche. - La profondeur des passes d'bauche successives est fixe par -\begin_inset Quotes eld -\end_inset - -Roughing depth per pass -\begin_inset Quotes erd -\end_inset - -. - Par exemple, entrer 0.2 pour une premire passe d'bauche d'une profondeur - de 0.2, la seconde passe d'bauche aura une profondeur de 0.4 et ainsi de - suite, jusqu'-ce que la profondeur totale Depth de l'image soit atteinte. - Aucune des passes d'bauche n'usinera plus prs de la partie finale que - Roughing Offset. - La figure -\begin_inset LatexCommand \ref{cap:Passes d'ebauche} - -\end_inset - - montre une grande profondeur verticale usiner. - Sur cette image, la profondeur des passes d'bauche est de 0.2 pouces et - Roughing Offset de 0.1 pouces. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Passes d'bauche -\begin_inset LatexCommand \label{cap:Passes d'ebauche} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename i2g-roughing.png - -\end_inset - - -\end_inset - - -\the_end diff --git a/docs/src/gui/keystick.lyx b/docs/src/gui/keystick.lyx deleted file mode 100644 index 2f08c6250..000000000 --- a/docs/src/gui/keystick.lyx +++ /dev/null @@ -1,143 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 1in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -KEYSTICK -\begin_inset LatexCommand index -name "KEYSTICK" - -\end_inset - - -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/keystick.png - display color - width 80text% - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:startmini" - -\end_inset - -The Mini Graphical Interface -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Keystick is a minimal text based interface. - -\end_layout - -\begin_layout Section -Installing -\end_layout - -\begin_layout Standard -To use keystick change the DISPLAY ini file setting to: -\end_layout - -\begin_layout Standard -[DISPLAY] -\end_layout - -\begin_layout Standard -DISPLAY = keystick -\end_layout - -\begin_layout Section -Using -\end_layout - -\begin_layout Standard -Keystick is very simple to use. - In the MDI Mode you simply start typing the g code and it shows up in the - bottom text area. - The -\begin_inset Quotes eld -\end_inset - -? -\begin_inset Quotes erd -\end_inset - - key toggles help. -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/keystick_fr.lyx b/docs/src/gui/keystick_fr.lyx deleted file mode 100644 index 0410b73a8..000000000 --- a/docs/src/gui/keystick_fr.lyx +++ /dev/null @@ -1,129 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 1in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -L'interface KEYSTICK -\begin_inset LatexCommand \index{KEYSTICK} - -\end_inset - - -\layout Section - -Introduction -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename images/keystick.png - display color - width 80text% - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:startkeystick} - -\end_inset - -L'interface utilisateur minimale -\end_inset - - -\layout Standard - -Keystick est une interface minimaliste textuelle. - -\layout Section - -Installation -\layout Standard - -Pour utiliser -\begin_inset Quotes fld -\end_inset - -keystick -\begin_inset Quotes frd -\end_inset - - modifier la section DISPLAY du fichier ini de la manire suivante: -\layout Standard - -[DISPLAY] -\layout Standard - -DISPLAY = keystick -\layout Section - -Utilisation -\layout Standard - -Keystick est extrmement simple utiliser. - Dans le mode MDI vous pouvez directement taper le G-code et il sera visible - dans la partie suprieur. - La touche -\begin_inset Quotes fld -\end_inset - -? -\begin_inset Quotes frd -\end_inset - - bascule avec ou sans aide. -\layout Standard - - -\begin_inset Foot -collapsed false - -\layout Standard - -ndt: keystick a t conu pour tre minimaliste, par consquent son interface - n'est pas traductible. - -\end_inset - - -\the_end diff --git a/docs/src/gui/mini.lyx b/docs/src/gui/mini.lyx deleted file mode 100644 index 1f7561301..000000000 --- a/docs/src/gui/mini.lyx +++ /dev/null @@ -1,1492 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 1in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -MINI -\end_layout - -\begin_layout Section -Introduction -\begin_inset Foot -status collapsed - -\begin_layout Standard -Much of this chapter quotes from a chapater of the Sherline CNC operators - manual. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:startmini" - -\end_inset - -The Mini Graphical Interface -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename mini01.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Mini -\begin_inset LatexCommand index -name "mini" - -\end_inset - - was designed to be a full screen graphical interface. - It was first written for the Sherline -\begin_inset LatexCommand index -name "Sherline" - -\end_inset - - CNC -\begin_inset LatexCommand index -name "CNC" - -\end_inset - - but is available for anyone to use, copy, and distribute under the terms - of the GPL copyright. -\end_layout - -\begin_layout Standard -Rather than popup new windows for each thing that an operator might want - to do, Mini allows you to display these within the regular screen. - Parts of this chapter are copied from the instructions that were written - for that mill by Joe Martin and Ray Henry. -\end_layout - -\begin_layout Section -Screen layout -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:runmini" - -\end_inset - -Mini Display for a Running EMC -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename mini02.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - -The Mini screen is laid out in several sections. - (See Figure -\begin_inset LatexCommand ref -reference "fig:startmini" - -\end_inset - - ) These include a menu across the top, a set of main control buttons just - below the menu and two rather large columns of information that show the - state of your machine and allow you to enter commands or programs. -\end_layout - -\begin_layout Standard -When you compare figure -\begin_inset LatexCommand ref -reference "fig:startmini" - -\end_inset - - with figure -\begin_inset LatexCommand ref -reference "fig:runmini" - -\end_inset - - you will see many differences. - In the second figure -\end_layout - -\begin_layout Itemize -each axis has been homed -- the display numbers are dark green -\end_layout - -\begin_layout Itemize -the EMC mode is auto -\begin_inset LatexCommand index -name "Auto" - -\end_inset - - -- the auto button has a light green background -\end_layout - -\begin_layout Itemize -the backplotter has been turned on -- backplot -\begin_inset LatexCommand index -name "backplot" - -\end_inset - - is visible in the pop-in window -\end_layout - -\begin_layout Itemize -the tool path from the program is showing in the display. - -\end_layout - -\begin_layout Standard -Once you start working with Mini you will quickly discover how easily it - shows the conditions of the EMC and allows you to make changes to it. -\end_layout - -\begin_layout Section -Menu Bar -\end_layout - -\begin_layout Standard -The first row is the menu bar across the top. - Here you can configure the screen to display additional information. - Some of the items in this menu are very different from what you may be - acustomed to with other programs. - You should take a few minutes and look under each menu item in order to - familiarize yourself with the features that are there. - -\end_layout - -\begin_layout Standard -The menu includes each of the following sections and subsections. - -\end_layout - -\begin_layout Description -Program This menu includes both reset and exit functions. - Reset will return the EMC to the condition that it was in when it started. - Some startup configuration items like the normal program units can be specified - in the ini file. - -\end_layout - -\begin_layout Description -View This menu includes several screen elements that can be added so that - you can see additional information during a run. - These include -\end_layout - -\begin_deeper -\begin_layout Description -Position_Type This menu item adds a line above the main position displays - that shows whether the displays are in inches or metric and whether they - are Machine or Relative location and if they are Actual positions or Commanded - positions. - These can be changed using the Settings menu described below. -\end_layout - -\begin_layout Description -Tool_Info This adds a line immediately below the main position displays - that shows which tool has been selected and the length of offset applied. -\end_layout - -\begin_layout Description -Offset_Info adds a line immediately below the tool info that shows what - offsets have been applied. - This is a total distance for each axis from machine zero. -\end_layout - -\begin_layout Description -Show_Restart adds a block of buttons to the right of the program display - in auto mode. - These allow the operator to restart a program after an abort or estop. - These will pop in whenever estop or abort is pressed but can be shows by - the operator anytime auto mode is active by selecting this menu item. -\end_layout - -\begin_layout Description -Hide_Restart removes the block of buttons that control the restart of a - program that has been aborted or estopped. -\end_layout - -\begin_layout Description -Show_Split_Right changes the nature of the right hand column so that it - shows both mode and pop-in information. -\end_layout - -\begin_layout Description -Show_Mode_Full changes the right hand column so that the mode buttons or - displays fill the entire right side of the screen. - In manual mode, running with mode full you will see spindle and lube control - buttons as well as the motion buttons. -\end_layout - -\begin_layout Description -Show_Popin_Full changes the right hand column so that the popin fills the - entire right side of the screen. -\end_layout - -\end_deeper -\begin_layout Description -Settings These menu items allow the operator to control certain parameters - during a run. -\end_layout - -\begin_deeper -\begin_layout Description -Actual_Position sets the main position displays to actual(machine based) - values. -\end_layout - -\begin_layout Description -Commanded_Position sets the main position displays to the values that they - were commanded to. -\end_layout - -\begin_layout Description -Machine_Position sets the main position displays to the absolute distance - from where the machine was homed. -\end_layout - -\begin_layout Description -Relative_Position sets the main position displays to show the current position - including any offsets like part zeros that are active. - For more information on offsets see the chapter on coordinate systems. -\end_layout - -\end_deeper -\begin_layout Description -Info lets you see a number of active things by writing their values into - the MESSAGE pad. -\end_layout - -\begin_deeper -\begin_layout Description -Program_File will write the currently active program file name. -\end_layout - -\begin_layout Description -Editor_File will write the currently active file if the editor pop in is - active and a file has been selected for editing. -\end_layout - -\begin_layout Description -Parameter_File will write the name of the file being used for program parameters. - You can find more on this in the chapters on offsets and using variables - for programming. -\end_layout - -\begin_layout Description -Tool_File will write the name of the tool file that is being used during - this run. -\end_layout - -\begin_layout Description -Active_G-Codes will write a list of all of the modal program codes that - are active whenever this item is selected. - For more information about modal codes see the introductory part programming - chapter. -\end_layout - -\end_deeper -\begin_layout Description -Help opens a text window pop in that displays the contents of the help file. -\end_layout - -\begin_layout Standard -You will notice between the info menu and the help menu there are a set - of four buttons. - These are called check buttons because they have a small box that shows - red if they have been selected. - These four buttons, Editor, Backplot, Tools, and Offsets pop in each of - these screens. - If more than one pop-in is active (button shown as red) you can toggle - between these pop-ins by right clicking your mouse. - -\end_layout - -\begin_layout Section -Control Button Bar -\end_layout - -\begin_layout Standard -Below the menu line is a horizontal line of control buttons. - These are the primary control buttons for the interface. - Using these buttons you can change mode from [MANUAL] to [AUTO] to [MDI] - (Manual Data Input). - These buttons show a light green background whenever that mode is active. - -\end_layout - -\begin_layout Standard -You can also use the [FEEDHOLD], [ABORT], and [ESTOP] buttons to control - a programmed move. - -\end_layout - -\begin_layout Subsection -MANUAL -\begin_inset LatexCommand index -name "Manual" - -\end_inset - - -\end_layout - -\begin_layout Standard -This button or pressing sets the EMC to Manual mode and displays an - abreviated set of buttons the operator can use to issue manual motion commands. - The labels of the jog buttons change to match the active axis. - Whenever Show_Mode_Full is active in in manual mode, you will see spindle - and lube control buttons as well as the motion buttons. - A keyboard or will switch from continuous jog to incremental jog. - Pressing that key again will toggle the increment size through the available - sizes. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Manual Mode Buttons -\begin_inset LatexCommand label -name "cap:Manual-Mode-Buttons" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename miniman.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Quotation -A button has been added to designate the present position as the home position. - We felt that a machine of this type (Sherline 5400) would be simpler to - operate if it didn't use a machine home position. - This button will zero out any offsets and will home all axes right where - they are. -\end_layout - -\begin_layout Quotation -Axis focus is important here. - Notice (in figure -\begin_inset LatexCommand ref -reference "fig:startmini" - -\end_inset - -) that in manual mode you see a line or -\emph on -groove -\emph default - around the X axis to highlight its position display. - This groove says that X is the active axis. - It will be the target for jog moves made with the -\emph on -plus -\emph default - and -\emph on -minus -\emph default - jog buttons. - You can change axis focus by clicking on any other axis display. - You can also change axis focus in manual mode if you press its name key - on your keyboard. - Case is not important here. - [Y] or [y] will shift the focus to the Y axis. - [A] or [a] will shift the focus to the A axis. - To help you remember which axis will jog when you press the jog buttons, - the active axis name is displayed on them. - -\end_layout - -\begin_layout Quotation -The EMC can jog (move a particular axis) as long as you hold the button - down when it is set for -\emph on -continuous -\emph default -, or it can jog for a preset distance when it is set for -\emph on -incremental -\emph default -. - You can also jog the active axis by pressing the plus [+] or minus [-] - keys on the keyboard. - Again, case is not important for keyboard jogs. - The two small buttons between the large jog buttons let you set which kind - of jog you want. - When you are in incremental mode, the distance buttons come alive. - You can set a distance by pressing it with the mouse. - You can toggle between distances by pressing [i] or [I] on the keyboard. - Incremental jog has an interesting and often unexpected effect. - If you press the jog button while a jog is in progress, it will add the - distance to the position it was at when the second jog command was issued. - Two one-inch jog presses in close succession will not get you two inches - of movement. - You have to wait until the first one is complete before jogging again. - -\end_layout - -\begin_layout Quotation -Jog speed is displayed above the slider. - It can be set using the slider by clicking in the slider's open slot on - the side you want it to move toward, or by clicking on the [Default] or - [Rapid] buttons. - This setting only affects the jog move while in manual mode. - Once a jog move is initiated, jog speed has no effect on the jog. - As an example of this, say you set jog mode to -\emph on -incremental -\emph default - and the increment to 1 inch. - Once you press the [Jog] button it will travel that inch at the rate at - which it started. - -\end_layout - -\begin_layout Subsection -AUTO -\begin_inset LatexCommand index -name "Auto" - -\end_inset - - -\end_layout - -\begin_layout Standard -When the Auto button is pressed, or on the keyboard, the EMC is changed - into that mode, a set of the traditional auto operation buttons is displayed, - and a small text window opens to show a part program. - During run the active line will be displayed as white lettering on a red - background. - -\end_layout - -\begin_layout Standard -In the auto mode, many of the keyboard keys are bound to controls. - For example the numbers above the querty keys are bound to feed rate override. - The 0 sets 100%, 9 sets 90% and such. - Other keys work much the same as they do with the tkemc graphical interface. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Auto Mode -\begin_inset LatexCommand label -name "cap:Auto-Mode" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename miniauto.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Auto mode does not normally display the active or modal codes. - If the operator wishes to check these, use menu Info -> Active_G-Codes. - This will write all modal codes onto the message scratch pad. - -\end_layout - -\begin_layout Standard -If abort or estop is pressed during a run a set of buttons displays to the - right of the text that allows the operator to shift the restart line forward - or backwards. - If the restart line is not the last active line, it will be highlighted - as white letters on a blue background. - Caution, a very slow feed rate, and a finger poised over the pause button - is advised during any program restart. -\end_layout - -\begin_layout Quotation -The real heart of CNC machine tool work is the auto mode. - Sherline's auto mode displays the typical functions that people have come - to expect from the EMC. - Along the top are a set of buttons which control what is happening in auto - mode. - Below them is the window that shows the part of the program currently being - executed. - As the program runs, the active line shows in white letters on a red background. - The first three buttons, [Open], [Run], and [Pause] do about what you'd - expect. - [Pause] will stop the run right where it is. - The next button, [Resume], will restart motion. - They are like feedhold if used this way. - Once [Pause] is pressed and motion has stopped, [Step] will resume motion - and continue it to the end of the current block. - Press [Step] again to get the motion of the next block. - Press [Resume] and the interpreter goes back to reading ahead and running - the program. - The combination of [Pause] and [Step] work a lot like single block mode - on many controllers. - The difference is that [Pause] does not let motion continue to the end - of the current block. - Feed rate Override ... - can be very handy as you approach a first cut. - Move in quickly at 100 percent, throttle back to 10% and toggle between - [Feedhold] and 10% using the pause button. - When you are satisfied that you've got it right, hit the zero to the right - of nine and go. - -\end_layout - -\begin_layout Quotation -The [Verify] button runs the interpreter through the code without initiating - any motion. - If Verify finds a problem it will stop the read near the problem block - and put up some sort of message. - Most of the time you will be able to figure out the problem with your program - by reading the message and looking in the program window at the highlighted - line. - Some of the messages are not very helpful. - Sometimes you will need to read a line or two ahead of the highlight to - see the problem. - Occasionally the message will refer to something well ahead of the highlight - line. - This often happens if you forget to end your program with an acceptable - code like %, m2, m30, or m60. - -\end_layout - -\begin_layout Subsection -MDI -\begin_inset LatexCommand index -name "MDI" - -\end_inset - - -\end_layout - -\begin_layout Standard -The MDI button or sets the Manual Data Input mode. - This mode displays a single line of text for block entry and shows the - currently active modal codes for the interpreter. -\end_layout - -\begin_layout Quotation -MDI mode allows you to enter single blocks and have the interpreter execute - them as if they were part of a program (kind of like a one-line program). - You can execute circles, arcs, lines and such. - You can even test sets of program lines by entering one block, waiting - for that motion to end, and then enter the next block. - Below the entry window, there is a listing of all of the current modal - codes. - This listing can be very handy. - I often forget to enter a g00 before I command a motion. - If nothing happens I look down there to see if g80 is in effect. - G80 stops any motion. - If it's there I remember to issue a block like g00 x0 y0 z0. - In MDI you are entering text from the keyboard so none of the main keys - work for commands to the running machine. - [F1] will Estop the control. - -\end_layout - -\begin_layout Standard -Since many of the keyboard keys are needed for entry, most of the bindings - that were available in auto mode are not available here. -\end_layout - -\begin_layout Subsection -[FEEDHOLD] -- [CONTINUE] -\end_layout - -\begin_layout Standard -Feedhold is a toggle. - When the EMC is ready to handle or is handling a motion command this button - shows the feedhold label on a red backgrouund. - If feedhold has been pressed then it will show the continue label. - Using it to pause motion has the advantage of being able to restart the - program from where you stopped it. - Feedhold will toggle between zero speed and whatever feed rate override - was active before it was pressed. - This button and the function that it activates is also bound to the pause - button on most keyboards. -\end_layout - -\begin_layout Subsection -[ABORT] -\end_layout - -\begin_layout Standard -The abort button stops any motion when it is pressed. - It also removes the motion command from the EMC. - No further motions are cued up after this button is pressed. - If you are in auto mode, this button removes the rest of the program from - the motion cue. - It also records the number of the line that was executing when it was pressed. - You can use this line number to restart the program after you have cleared - up the reasons for pressing it. -\end_layout - -\begin_layout Subsection -[ESTOP -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - -] -\end_layout - -\begin_layout Standard -The estop button is also a toggle but it works in three possible settings. - -\end_layout - -\begin_layout Itemize -When Mini starts up it will show a raised button with red background with - black letters that say -\begin_inset Quotes eld -\end_inset - -ESTOP PUSH. -\begin_inset Quotes erd -\end_inset - - This is the correct state of the machine when you want to run a program - or jog an axis. - Estop is ready to work for you when it looks like this. -\end_layout - -\begin_layout Itemize -If you push the estop button while a motion is being executed, you will - see a recessed gray button that says -\begin_inset Quotes eld -\end_inset - -ESTOPPED. -\begin_inset Quotes erd -\end_inset - - You will not be able to move an axis or do any work from the Mini gui when - the estop button displays this way. - Pressing it with your mouse will return Mini to normal ready condition. -\end_layout - -\begin_layout Itemize -A third view is possible here. - A recessed green button means that estop has been take off but the machine - has not been turned on. - Normally this only happens when estop has been pressed but has - not been pressed. -\end_layout - -\begin_layout Standard -Joe Martin says, -\begin_inset Quotes eld -\end_inset - -When all else fails press a software [ESTOP]. -\begin_inset Quotes erd -\end_inset - - This does everything that abort does but adds in a reset so that the EMC - returns to the standard settings that it wakes up on. - If you have an external estop circuit that watches the relevant parallel - port or DIO pin, a software estop can turn off power to the motors. -\end_layout - -\begin_layout Quotation -Most of the time, when we abort or E-Stop it's because something went wrong. - Perhaps we broke a tool and want to change it. - We switch to manual mode and raise the spindle, change tools, and assuming - that we got the length the same, get ready to go on. - If we return the tool to the same place where the abort was issued, the - EMC will work perfectly. - It is possible to move the restart line back or ahead of where the abort - happened. - If you press the [Back] or [Ahead] buttons you will see a blue highlight - that shows the relationship between the abort line and the one on which - the EMC will start up again. - By thinking through what is happening at the time of the restart you can - place the tool tip where it will resume work in an acceptable manner. - You will need to think through things like tool offsets barriers to motion - along a diagonal line and such before you press the [Restart] button. - -\end_layout - -\begin_layout Section -Left Column -\end_layout - -\begin_layout Standard -There are two columns below the control line. - The left side of the screen displays information of interest to the operator. - There are very few buttons to press here. -\end_layout - -\begin_layout Subsection -Axis Position Displays -\end_layout - -\begin_layout Standard -The axis position displays work exactly like they do with tkemc. - The color of the letters is important. -\end_layout - -\begin_layout Itemize -Red indicates that the machine is sitting on a limit switch or the polarity - of a min or max limit is set wrong in the ini file. -\end_layout - -\begin_layout Itemize -Yellow indicates that the machine is ready to be homed. -\end_layout - -\begin_layout Itemize -Green indicates that the machine has been homed. -\end_layout - -\begin_layout Standard -The position can be changed to display any one of several values by using - the menu settings. - The startup or default settings can be changed in the ini file so these - displays wake up just the way that you want them. -\end_layout - -\begin_layout Subsection -Feed rate Override -\begin_inset LatexCommand index -name "feed override" - -\end_inset - - -\end_layout - -\begin_layout Standard -Immediately below the axis position displays is the feed rate override slider. - You can operate feed rate override and feedhold in any mode of operation. - Override will change the speed of jogs or feed rate in manual or MDI modes. - You can adjust feed rate override by grabbing the slider with your mouse - and dragging it along the groove. - You can also change feed rate a percent at a time by clicking in the slider's - groove. - In auto mode you can also set feed override in 10% increments by pressing - the top row of numbers. - This slider is a handy visual reference to how much override is being applied - to programmed feed rate. -\end_layout - -\begin_layout Subsection -Messages -\end_layout - -\begin_layout Standard -The message display located under the axis positions is a sort of scratch - pad for the EMC. - If there are problems it will report them there. - If you try to home or move an axis when the [ESTOP] button is pressed, - you'll get a message that says something about commanding motion when the - EMC is not ready. - If an axis faults out for something like falling behind, the message pad - will show what happened. - If you want to remind an operator to change a tool, for example, you can - add a line of code to your program that will display in the message box. - An example might be (msg, change to tool #3 and press resume). - This line of code, included in a program, will display -\begin_inset Quotes eld -\end_inset - -change to tool #3 and press resume -\begin_inset Quotes erd -\end_inset - - in the message box. - The word msg, (with comma included) is the command to make this happen; - without -\emph on -msg, -\emph default - the message wouldn't be displayed. - It will still show in the auto modes' display of the program file. - -\end_layout - -\begin_layout Standard -To erase messages simply click the message button at the top of the pad - or on the keyboard hold down the [Alt] key and press the [m] key. - -\end_layout - -\begin_layout Section -Right Column -\end_layout - -\begin_layout Standard -The right column is a general purpose place to display and work. - Here you can see the modal buttons and text entry or displays. - Here you can view a plot of the tool path that will be commanded by your - program. - You can also write programs and control tools and offsets here. - The modal screens have been described above. - Each of the popin displays are described in detail below. -\end_layout - -\begin_layout Subsection -Program Editor -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mini Text Editor -\begin_inset LatexCommand label -name "cap:Mini-Text-Editor" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename miniedit.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The editor is rather limited compared to many modern text editors. - It does not have -\emph on -undo -\emph default - nor -\emph on -paste -\emph default - between windows with the clipboard.These were eliminated because of interaction - with a running program. - Future releases will replace these functions so that it will work the way - you've come to expect from a text editor. - It is included because it has the rather nice feature of being able to - number and renumber lines in the way that the interpreter expects of a - file. - It will also allow you to cut and paste from one part of a file to another. - In addition, it will allow you to save your changes and submit them to - the EMC interpreter with the same menu click. - You can work on a file in here for a while and then save and load if the - EMC is in Auto mode. - If you have been running a file and find that you need to edit it, that - file will be placed in the editor when you click on the editor button on - the top menu. - -\end_layout - -\begin_layout Subsection -Backplot -\begin_inset LatexCommand index -name "backplot" - -\end_inset - - Display -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mini's Backplotter -\begin_inset LatexCommand label -name "cap:Mini's-Backplotter" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename minibkplot.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - -Backplot [Backplot] will show the tool path that can be viewed from a chosen - direction. - '3-D' is the default. - Other choices and controls are displayed along the top and right side of - the pop-in. - If you are in the middle of a cut when you press one of these control buttons - the machine will pause long enough to re-compute the view. -\end_layout - -\begin_layout Standard -Along the right side of the pop-in there is a small pyramid shaped graphic - that tries to show the angle you are viewing the tool path from. - Below it are a series of sliders that allow you to change the angle of - view and the size of the plot. - You can rotate the little position angle display with these. - They take effect when you press the [Refresh] button. - The [Reset] button removes all of the paths from the display and readies - it for a new run of the program but retains your settings for that session. - -\end_layout - -\begin_layout Standard -If backplot is started before a program is started, it will try to use some - color lines to indicate the kind of motion that was used to make it. - A green line is a rapid move. - A black line is a feed rate move. - Blue and red indicate arcs in counterclockwise and clockwise directions. -\end_layout - -\begin_layout Standard -The backplotter with Mini allows you to zoom and rotate views after you - have run your program but it is not intended to store a tool path for a - long period of time. - -\end_layout - -\begin_layout Subsection -Tool Page -\end_layout - -\begin_layout Standard -The tool page is pretty much like the others. - You can set length and diameter values here and they become effective when - you press the [Enter] key. - You will need to set up your tool information before you begin to run a - program. - You can't change tool offsets while the program is running or when the - program is paused. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mini Tool Display -\begin_inset LatexCommand label -name "cap:Mini-Tool-Display" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename minitool.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The [Add Tools] and [Remove Tools] buttons work on the bottom of the tool - list so you will want to fill in tool information in decending order. - Once a new tool has been added, you can use it in a program with the usual - G-code commands. - There is a 32 tool limit in the current EMC configuration files but you - will run out of display space in Mini long before you get there. - (Hint You can use menu -> view -> show popin full to see more tools if - you need.) -\end_layout - -\begin_layout Subsection -Offset Page -\end_layout - -\begin_layout Standard -The offset page can be used to display and setup work offsets. - The coordinate system is selected along the left hand side of the window. - Once you have selected a coordinate system you can enter values or move - an axis to a teach position. - -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Mini Offset Display -\begin_inset LatexCommand label -name "cap:Mini-Offset-Display" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename minioffsets.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - -You can also teach using an edgefinder by adding the radius and length to - the offset_by widgets. - When you do this you may need to add or subtract the radius depending upon - which surface you choose to touch from. - This is selected with the add or subtract radiobuttons below the offset - windows. -\end_layout - -\begin_layout Standard -The zero all for the active coordinate system button will remove any offsets - that you have showing but they are not set to zero in the variable file - until you press the write and load file button as well. - This write and load file button is the one to use when you have set all - of the axis values that you want for a coordinate system. -\end_layout - -\begin_layout Section -Keyboard Bindings -\end_layout - -\begin_layout Standard -A number of the bindings used with tkemc have been preserved with mini. - A few of the bindings have been changed to extend that set or to ease the - operation of a machine using this interface. - Some keys operate the same regradless of the mode. - Others change with the mode that EMC is operating in. - -\end_layout - -\begin_layout Subsection -Common Keys -\end_layout - -\begin_layout Description -Pause Toggle feedhold -\end_layout - -\begin_layout Description -Escape abort motion -\end_layout - -\begin_layout Description -F1 toggle estop/estop reset state -\end_layout - -\begin_layout Description -F2 toggle machine off/machine on state -\end_layout - -\begin_layout Description -F3 manual mode -\end_layout - -\begin_layout Description -F4 auto mode -\end_layout - -\begin_layout Description -F5 MDI mode -\end_layout - -\begin_layout Description -F6 reset interpreter -\end_layout - -\begin_layout Standard -The following only work for machines using auxiliary I/O -\end_layout - -\begin_layout Description -F7 toggle mist on/mist off -\end_layout - -\begin_layout Description -F8 toggle flood on/flood off -\end_layout - -\begin_layout Description -F9 toggle spindle forward/off -\end_layout - -\begin_layout Description -F10 toggle spindle reverse/off -\end_layout - -\begin_layout Description -F11 decrease spindle speed -\end_layout - -\begin_layout Description -F12 increase spindle speed -\end_layout - -\begin_layout Subsection -Manual Mode -\begin_inset LatexCommand index -name "Manual" - -\end_inset - - -\end_layout - -\begin_layout Description -1-9\InsetSpace ~ -0 set feed override to 10%-90%, 0 is 100% -\end_layout - -\begin_layout Description -~ set feed override to 0 or feedhold -\end_layout - -\begin_layout Description -x select X axis -\end_layout - -\begin_layout Description -y select Y axis -\end_layout - -\begin_layout Description -z select Z axis -\end_layout - -\begin_layout Description -a select A axis -\end_layout - -\begin_layout Description -b select B axis -\end_layout - -\begin_layout Description -c select C axis -\end_layout - -\begin_layout Description -Left\InsetSpace ~ -Right\InsetSpace ~ -Arrow jog X axis -\end_layout - -\begin_layout Description -Up\InsetSpace ~ -Down\InsetSpace ~ -Arrow jog Y axis -\end_layout - -\begin_layout Description -Page\InsetSpace ~ -Up\InsetSpace ~ -Down jog Z axis -\end_layout - -\begin_layout Description --\InsetSpace ~ -_ jog the active axis in the minus direction -\end_layout - -\begin_layout Description -+\InsetSpace ~ -= jog the active axis in the plus direction. -\end_layout - -\begin_layout Description -Home home selected axis -\end_layout - -\begin_layout Description -i\InsetSpace ~ -I toggle through jog increments -\end_layout - -\begin_layout Standard -The following only work with a machine using auxiliary I/O -\end_layout - -\begin_layout Description -b take spindle brake off -\end_layout - -\begin_layout Description -Alt-b put spindle brake on -\end_layout - -\begin_layout Subsection -Auto Mode -\begin_inset LatexCommand index -name "Auto" - -\end_inset - - -\end_layout - -\begin_layout Description -1-9,0 set feed override to 10%-90%, 0 is 100% -\end_layout - -\begin_layout Description -~ set feed override to 0 or feedhold -\end_layout - -\begin_layout Description -o/O open a program -\end_layout - -\begin_layout Description -r/R run an opened program -\end_layout - -\begin_layout Description -p/P pause an executing program -\end_layout - -\begin_layout Description -s/S resume a paused program -\end_layout - -\begin_layout Description -a/A step one line in a paused program -\end_layout - -\begin_layout Section -Misc -\end_layout - -\begin_layout Standard -One of the features of Mini is that it displays any axis above number 2 - as a rotary and will display degree units for it. - It also converts to degree units for incremental jogs when a rotary axis - has the focus. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/mini_fr.lyx b/docs/src/gui/mini_fr.lyx deleted file mode 100644 index f9239e9a4..000000000 --- a/docs/src/gui/mini_fr.lyx +++ /dev/null @@ -1,1832 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 1in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -L'interface MINI -\layout Section - -Introduction -\begin_inset Foot -collapsed true - -\layout Standard - -Much of this chapter quotes from a chapater of the Sherline CNC operators - manual. -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename mini01_fr.png - display color - width 80text% - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:startmini} - -\end_inset - -L'interface graphique Mini -\end_inset - - -\layout Standard - -Mini -\begin_inset LatexCommand \index{mini} - -\end_inset - - a t prvu pour tre une interface graphique plein cran. - Il a t crit initialement pour Sherline -\begin_inset LatexCommand \index{Sherline} - -\end_inset - - CNC -\begin_inset LatexCommand \index{CNC} - -\end_inset - - mais est disponible pour ceux qui veulent l'utiliser, le copier le distribuer - selon les termes de la GPL. -\layout Standard - -Au lieu d'ouvrir une nouvelle fentre pour chaque chose que l'oprateur - veux faire, Mini permet de les afficher toutes dans la mme fentre. - Certaines parties de ce chapitre sont des copies des instructions crites - par Joe Martin et Ray Henry. -\layout Section - -L'cran -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename ../common/mini_fr.jpg - display color - width 80text% - keepAspectRatio - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:runmini} - -\end_inset - -Affichage de Mini lors du fonctionnement d'EMC -\end_inset - -L'cran de Mini est visible dans plusieurs sections, voir la figure -\begin_inset LatexCommand \ref{fig:startmini} - -\end_inset - -. - Il inclu une barre de menu, un jeu de boutons de contrle juste en dessous - et deux larges colonnes d'information montrant l'tat de la machine et - permettant l'oprateur d'entrer des commandes ou des programmes. -\layout Standard - -Quand on compare entre la figure -\begin_inset LatexCommand \ref{fig:startmini} - -\end_inset - - et la figure -\begin_inset LatexCommand \ref{fig:runmini} - -\end_inset - - des diffrences apparaissent. - Dans la seconde figure: -\layout Itemize - -Chaque axe a t rfrenc sur son origine -- L'affichage est vert sombre -\layout Itemize - -EMC est en mode auto -\begin_inset LatexCommand \index{Auto} - -\end_inset - - -- le bouton est vert clair -\layout Itemize - -Le parcours d'outil a t activ -- le parcours -\begin_inset LatexCommand \index{parcours outil} - -\end_inset - - est visible dans la fentre -\layout Itemize - -Le bloc de G-code en cours est en surbrillance blanche sur fond rouge parmi - les lignes dfilantes du programme. - -\layout Standard - -Ds le dbut de l'utilisation de Mini on dcouvre combien il est facile - de visualiser le fonctionnement d'EMC et d'agir sur lui. -\layout Section - -Barre de menu -\layout Standard - -La premire ligne est occupe par la barre de menu. - Elle permet de configurer les informations optionnelles que l'cran doit - afficher. - Certains des items du menu sont trs diffrents de ce qu'il est coutume - de rencontrer avec d'autres programmes. - Il faut prendre quelques minutes pour regarder chaque item du menu et se - familiariser avec les possibilits qu'il offre. - -\layout Standard - -Le menu inclus chacune des sections et sous-sections suivantes: -\layout Description - -Programme ce menu inclus les deux fonctions -\begin_inset Quotes fld -\end_inset - -reset -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -quitter -\begin_inset Quotes frd -\end_inset - -. - Reset renvoie EMC dans l'tat dans lequel il tait quand il dmarr. - Certains items de conditions de dmarrage comme les units du programme - peuvent tre spcifis dans le fichier ini. - -\layout Description - -Vues ce menu inclus plusieurs lments d'affichage pouvant tre ajouts - pendant qu'un programme s'excute, pour donner des information supplmentaires. - Ce qui inclus: -\begin_deeper -\layout Description - -Type_de_position cet item ajoute une ligne, au dessus de l'afficheur principal - de position, qui indique si la position affiche est en coordonnes machine - (absolues) ou en coordonnes pice (relatives), si la position affiche - est actuelle ou commande et si l'unit et le pouce le millimtre. - Ce qui peut tre modifi en agissant sur le menu -\begin_inset Quotes fld -\end_inset - -Rglages -\begin_inset Quotes frd -\end_inset - - dcrit plus loin. -\layout Description - -Informations_outil cet item ajoute une ligne immdiatement sous l'afficheur - principal, elle affiche quel outil est selectionn et la valeur de l'offset - appliqu. -\layout Description - -Informations_offset ajoute une ligne immdiatement sous celle des informations - outil, elle affiche les offsets de travail actuellement appliqus. - C'est la distance totale pour chaque axe depuis son point d'origine machine. -\layout Description - -Afficher_Reprise ajoute, en mode Auto, un bloc de boutons en bas droite - de l'affichage du programme. - Ces boutons permettent l'oprateur de relancer un programme aprs un - A/U ou un Abandon. - Le programme est fig lorsqu'un A/U ou un Abandon est engag, mais l'oprateur - peut ici choisir le bloc sur lequel redmarrer dans le mode Auto, en activant - cet item de menu. -\layout Description - -Masquer_Reprise enlve le bloc de boutons contrlant la reprise d'un programme - stopp par Abandon ou Arrt d'Urgence. -\layout Description - -Diviser_la_vue_droite modifie la nature de l'affichage de la colonne de - droite pour qu'il montre plus d'informations. -\layout Description - -Afficher_en_mode_complet modifie l'affichage de la colonne de droite, soit - en mode boutons et la colonne divise, soit affichage sur la colonne entire. - En mode manuel et en utilisant ce mode entier, les boutons de la broche - et du lubrifiant sont visibles en plus des boutons de mouvement. -\layout Description - -Afficher_dans_toute_la_fentre modifie l'affichage dans la colonne de droite - pour qu'elle soit remplie entirement. -\end_deeper -\layout Description - -Rglages Les items de ce menu permettent l'oprateur de contrler certains - paramtres en cours d'usinage. -\begin_deeper -\layout Description - -Position_Actuelle rgle l'afficheur principal sur des valeurs de position - actuelle (bases sur la machine). -\layout Description - -Position_Commande rgle l'afficheur principal sur des valeurs de position - commande (positions cibles). -\layout Description - -Position_Machine rgle l'afficheur principal sur des valeurs de position - absolue, distance depuis le point d'origine machine. -\layout Description - -Position_Relative rgle l'affichage principal pour qu'il affiche les valeurs - de la position courante en incluant tous les offsets comme les origines - pices qui seraient actives. - Pour plus de dtails voir le chapitre sur les -\begin_inset Quotes fld -\end_inset - -Systmes de coordonnes -\begin_inset Quotes frd -\end_inset - - . -\end_deeper -\layout Description - -Informations Indique diverses activits en affichant des valeurs dans la - zne MESSAGES. -\begin_deeper -\layout Description - -Fichier_programme Indique le nom du fichier programme actif. -\layout Description - -Editeur_de_Fichiers Indique le nom de l'diteur de texte lanc quand un - fichier est choisi pour tre dit. -\layout Description - -Fichier_de_paramtres Indique le nom du fichier devant tre utilis pour - enregistrer les paramtres du programme. - Il est possible d'avoir plus d'informations dans le chapitre sur les offsets - et l'utilisation des paramtres dans les programmes. -\layout Description - -Fichiers_d'outils Indique le nom du fichier d'outils utilis pour l'usinage - en cours. -\layout Description - -G-Codes_actifs Indique la liste des G-codes modaux actifs au moment ou cet - item a t slectionn. - Pour plus d'informations sur les codes modaux, se reporter aux chapitres - sur la programmation. -\end_deeper -\layout Description - -Aide Ouvre une fentre de texte contenant un fichier d'aide. -\layout Standard - -Noter que entre le menu informations et le menu d'aide il y a un jeu de - quatre cases cocher. - Elles sont appeles cases slectionnables car elles passent au rouge si - elles sont slectionnes. - Ces quatre cases, Editeur, Parcours d'outil, Outils et Offsets activent - les diffrents crans. - Si plus d'une de ces cases est valide (case en rouge) il est possible - de passer de l'un l'autre des crans surgissant par un clic droit de - la souris. - -\layout Section - -Barre de boutons de contrle -\layout Standard - -Sous la ligne de menu se trouve une ligne de boutons de contrle. - Ce sont les boutons principaux de l'interface. - En utilisant ces boutons il est possible de changer de mode cycliquement - entre -\begin_inset Quotes fld -\end_inset - -MANUEL -\begin_inset Quotes frd -\end_inset - - puis -\begin_inset Quotes fld -\end_inset - -AUTO -\begin_inset Quotes frd -\end_inset - - puis -\begin_inset Quotes fld -\end_inset - -MDI -\begin_inset Quotes frd -\end_inset - - (Manual Data Input). - Ces boutons ont un fond vert clair quand le mode correspondant est actif. - -\layout Standard - -Il est galement possible d'utiliser les boutons -\begin_inset Quotes fld -\end_inset - -VITESSE-0 -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -ABANDON -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -A/U -\begin_inset Quotes frd -\end_inset - - pour contrler les mouvements du programme. - -\layout Subsection - -MANUEL -\begin_inset LatexCommand \index{Manuel} - -\end_inset - - -\layout Standard - -Ce bouton, ou la touche -\begin_inset Quotes fld -\end_inset - -F3 -\begin_inset Quotes frd -\end_inset - - placent EMC en mode Manuel et affiche un jeu condens de boutons que l'oprateu -r peut utiliser pour effectuer des commandes de mouvements manuels. - Les labels des boutons de jog varient pour reflter l'axe actif. - Quand en plus de ce mode manuel, la vue en mode complet est active, les - boutons de la broche et du lubrifiant sont visibles en plus de ceux de - mouvement. - La touche -\begin_inset Quotes fld -\end_inset - -i -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -I -\begin_inset Quotes frd -\end_inset - - basculera entre jog en continu et jog par incrments. - Presser cette touche plusieurs fois provoquera le changement cyclique de - la taille de l'incrment de jog. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename miniman_fr.png - display color - width 80text% - -\end_inset - - -\layout Caption - -Boutons du mode Manuel -\end_inset - - -\layout Quotation - -Un bouton t ajout pour dsigner la position actuelle comme tant la - position d'origine. - Une machine simple telle que la Sherline 5400 serait facile utiliser - sans avoir de position d'origine. - Ce bouton met les offsets de tous les axes zro et place l'origine de - tous les axes au point courant. -\layout Quotation - -Ce concentrer sur les axes est important ici. - Noter que sur la capture -\begin_inset LatexCommand \ref{fig:startmini} - -\end_inset - - qui est en mode manuel, on voit un cadre autour de l'axe X pour mettre - son affichage en vidence. - Ce cadre (le focus) indique que l'axe X est l'axe actif. - Il est l'axe cible pour les mouvements de jog faits par appui sur les boutons - -\emph on -plus -\emph default - ou -\emph on -moins -\emph default -. - Il est possible de changer l'axe actif en cliquant sur l'affichage d'un - autre axe. - C'est galement possible en mode manuel en pressant la touche de son nom - sur le clavier. - La casse n'a pas d'importance -\begin_inset Quotes fld -\end_inset - -Y -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -y -\begin_inset Quotes frd -\end_inset - - donneront le focus l'axe Y. - -\begin_inset Quotes fld -\end_inset - -A -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -a -\begin_inset Quotes frd -\end_inset - - le donneront l'axe A. - Pour aider se rappeller quel est l'axe actif avant de faire un jog, son - nom est indiqu sur les boutons de jog. - -\layout Quotation - -EMC peut faire un jog (mouvement d'un axe particulier) aussi longtemps que - le bouton est maintenu press, si le jog est rgl sur -\emph on -continu -\emph default -, ou il peut se dplacer d'une valeur prdfinie, quand il est rgl sur - -\emph on -incrment -\emph default -s. - Il est aussi possible de faire un jog de l'axe actif en pressant les touches - -\begin_inset Quotes fld -\end_inset - -+ -\begin_inset Quotes frd -\end_inset - - ou moins -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - du clavier. - De nouveau, la casse n'a pas d'importance pour les jogs au clavier. - Les deux petits boutons situs entre les deux gros du jog, permettent de - choisir quel type de jog est souhat. - Quand on est en mode incrments, les boutons de taille d'incrments sont - accessibles. - La slection d'une taille d'incrment se fait par clic sur la case cocher - avec la souris ou cycliquement en pressant la touche -\begin_inset Quotes fld -\end_inset - -i -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -I -\begin_inset Quotes frd -\end_inset - - sur le clavier. - Le jog par incrments prsente quelques effets intressants autant qu'inattendu -s. - Si vous pressez le bouton de jog alors qu'un mouvement de jog est dj - en cours, la distance laquelle il tait lorsqu'est arrive la commande - du second jog, sera ajoute la position. - Deux pressions successives rapides de 10mm d'incrment ne donneront pas - 20mm de mouvement. - Vous devez attendre que le premier soit termin avant d'envoyer le second. -\layout Quotation - -La vitesse de jog est affiche au dessus du curseur. - Il est possible de rgler le curseur en cliquant dans la glissire du curseur, - du ct o vous voulez son dplacement, ou en cliquant sur les boutons - -\begin_inset Quotes fld -\end_inset - -Dfault -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -Rapide -\begin_inset Quotes frd -\end_inset - -. - Ces rglages n'affectent que les mouvements de jog en mode manuel. - Tant qu'un mouvement de jog est en cours, un changement de la vitesse de - jog est sans effet sur le jog. - Par exemple, disons que vous avez rgl le jog par incrments de 10mm. - Mme si vous pressez le bouton -\begin_inset Quotes fld -\end_inset - -Jog -\begin_inset Quotes frd -\end_inset - -, le dplacement de dix millimtres se finira la vitesse laquelle il - a commenc. - -\layout Subsection - -AUTO -\begin_inset LatexCommand \index{Auto} - -\end_inset - - -\layout Standard - -Quand le bouton Auto est press, ou -\begin_inset Quotes fld -\end_inset - -F4 -\begin_inset Quotes frd -\end_inset - - sur le clavier, EMC passe dans ce mode, un jeu de boutons traditionnels - des oprations en auto est affich et une petite fentre textuelle s'ouvre, - montrant une partie du programme. - Durant un usinage, la ligne active est affiche en surbrillance blanche - sur fond rouge. - -\layout Standard - -Dans le mode auto, beaucoup de touches sont lies aux contrles. - Par exemple, les touches numrotes au dessus du clavier sont lies aux - rglages du correcteur de vitesse d'avance travail. - Le -\begin_inset Quotes fld -\end_inset - -0 -\begin_inset Quotes frd -\end_inset - - l'ajuste 100%, le -\begin_inset Quotes fld -\end_inset - -9 -\begin_inset Quotes frd -\end_inset - - l'ajuste 90% etc. - D'autres touches fonctionnent de la mme manire qu'avec l'interface TkEMC. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename miniauto_fr.png - display color - width 80text% - keepAspectRatio - -\end_inset - - -\layout Caption - -Mode Auto -\end_inset - - -\layout Standard - -Le mode Auto n'affiche normalement pas les G-codes actifs ou modaux. - Si l'oprateur veut les voir, il doit utiliser le menu -\begin_inset Quotes fld -\end_inset - -Informations -> G-codes actifs -\begin_inset Quotes frd -\end_inset - - et afficher ainsi la liste des codes modaux dans la zne de texte MESSAGES. - -\layout Standard - -Si un Arrt d'Urgence ou un Abandon est press pendant un usinage, un jeu - de boutons s'affiche en bas et droite, ils permettent l'oprateur de - dcaler la ligne de reprise vers l'avant ou vers l'arrire. - Si la ligne de reprise n'est pas la dernire ligne active, elle sera mise - en surbrillance blanche sur fond bleu. - ATTENTION, une vitesse trs faible et un doigt coll sur le bouton de pause - est prudent pendant toute reprise de programme! -\layout Quotation - -Ce qui est le mieux avec une machine CNC, c'est le mode auto. - Le mode auto affiche les fonctions typiques que tout le monde espre utiliser - avec EMC. - Au dessus de la fentre un jeu de boutons qui contrlent ce qui se passe - en mode auto. - En dessous, la fentre montrant la partie du programme en cours d'excution. - Quand le programme est lanc, la ligne active s'affiche en surbrillance - blanche sur fond rouge. - Les trois premiers boutons, -\begin_inset Quotes fld -\end_inset - -Ouvrir -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -Lancer -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - - font ce que leurs noms indiquent. - -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - - stoppe le programme en cours d'excution l o il est. - Le bouton suivant, -\begin_inset Quotes fld -\end_inset - -Reprise -\begin_inset Quotes frd -\end_inset - -, reprend le mouvement. - Le rsultat est le mme si le bouton -\begin_inset Quotes fld -\end_inset - -Vitesse-0 -\begin_inset Quotes frd -\end_inset - - tait press au lieu du bouton -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - -, le mouvement est stopp, -\begin_inset Quotes fld -\end_inset - -Pas pas -\begin_inset Quotes frd -\end_inset - - reprend aussi le mouvement, mais il ne continue que jusqu' la fin du bloc - courant. - Presser une nouvelle fois -\begin_inset Quotes fld -\end_inset - -Pas pas -\begin_inset Quotes frd -\end_inset - - excutera le mouvement du bloc suivant. - Presser -\begin_inset Quotes fld -\end_inset - -Reprise -\begin_inset Quotes frd -\end_inset - - ce moment l et l'interprteur reviendra en arrire lire et relancer - le programme. - La combinaison entre -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Pas pas -\begin_inset Quotes frd -\end_inset - - marche un peu comme un seul bloc dans plusieurs interprteurs. - Avec la diffrence que -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - - ne laisse pas le mouvement se poursuivre jusqu' la fin du bloc courant. - Le correcteur de vitesse d'avance travail peut se rvler trs pratique - pour s'approchez de la matire pour un premir usinage. - Le placer sur 100% pour les dplacements rapides, le rgler sur 10% et - basculez entre -\begin_inset Quotes fld -\end_inset - -Vitesse-0 -\begin_inset Quotes frd -\end_inset - - et 10% en utilisant le bouton -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset Quotes frd -\end_inset - -. - Quand vous tes satisfait et que les choses se prsentent bien, pressez - le zro la droite du neuf en haut du clavier, et c'est parti. - -\layout Quotation - -Le bouton -\begin_inset Quotes fld -\end_inset - -Vrifier -\begin_inset Quotes frd -\end_inset - - passe le code dans l'interprteur sans production de mouvements. - Si Vrifier trouve un problme il stoppe la lecture juste derrire le bloc - posant problme et affiche un message. - La plupart du temps vous serez en mesure de rgler le problme avec votre - programme par la lecture du message et en vrifiant la ligne de code en - surbrillance dans la fentre du programme. - Certains messages, toutefois, ne sont pas d'un grand secours. - Parfois vous devrez lire une ou deux lignes en avant de celle en surbrillance - pour voir le problme. - Occasionnellement le message fait rfrence quelque chose trs en avant - de la ligne en surbrillance. - Le plus souvent a se produit si vous oubliez de terminer votre programme - par un code correct comme %, M2, M30, ou M60. - -\layout Subsection - -MDI -\begin_inset LatexCommand \index{MDI} - -\end_inset - - -\layout Standard - -Le bouton MDI ou la touche -\begin_inset Quotes fld -\end_inset - -F5 -\begin_inset Quotes frd -\end_inset - - activent le mode d'entre de donnes en manuel (Manual Data Input). - Ce mode affiche un simple champ de saisie d'une ligne de texte et montre - les codes modaux actuellement actifs dans l'interprteur. -\layout Quotation - -Le mode MDI vous permet d'entrer de simples blocs et de les faire excuter - par l'interprteur comme si ils taient une partie d'un programme (Une - sorte de programme d'une seule ligne). - Vous pouvez excuter des cercles, des arcs, des lignes et autres. - Vous pouvez aussi mettre au point une ligne de programme en entrant cette - ligne comme un seul bloc, attendre que le mouvement se termine et entrer - le bloc suivant. - Sous la fentre d'entre, se trouve une liste des codes modaux courants. - Cette liste peut tre trs pratique. - J'oublie parfois d'entrer un G0 avant une commande de mouvement. - Si rien ne se passe je regarde dans la liste si G80 est actif. - G80 stoppe tous les mouvements. - Si il y est je me rappelle de mettre un bloc comme G00 X0 Y0 Z0. - Dans le MDI, vous entrez du texte depuis le clavier, ainsi toutes les touches - principales ne fonctionnent pas comme raccourcis clavier pour les commandes - machine. - -\begin_inset Quotes fld -\end_inset - -F1 -\begin_inset Quotes frd -\end_inset - - engage l'Arrt d'Urgence. - -\layout Standard - -Puisque les touches du clavier sont ncessaires la saisie du texte, beaucoup - des raccourcis clavier disponibles en mode auto ne le sont pas ici. -\layout Subsection - - -\begin_inset Quotes fld -\end_inset - -VITESSE-0 -\begin_inset Quotes frd -\end_inset - - -- -\begin_inset Quotes fld -\end_inset - -CONTINUER -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Vitesse-0 est une bascule. - Quand EMC est prt pour excuter, ou qu'il excute une commande de mouvement, - ce bouton affiche son label -\begin_inset Quotes fld -\end_inset - -VITESSE-0 -\begin_inset Quotes frd -\end_inset - - sur fond rouge. - Si Vitesse-0 a t press il affiche le label -\begin_inset Quotes fld -\end_inset - -CONTINUER -\begin_inset Quotes frd -\end_inset - -. - Utiliser ce bouton pour faire une pause dans un mouvement prsente l'avantage - d'tre capable de relancer le programme d'o il a t stopp. - Vitesse-0 bascule simplement entre vitesse zro et la vitesse d'avance - travail avec l'ventuel correcteur qui tait actif au moment de l'arrt. - Ce bouton et la fonction qu'il active sont galement lis la touche pause - de la plupart des claviers. -\layout Subsection - - -\begin_inset Quotes fld -\end_inset - -ABANDON -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Le bouton Abandon stoppe tous les mouvements quand il est press. - Il dsactive aussi la commande de marche d'EMC. - Plus aucun mouvement ne survient aprs l'appui sur ce bouton. - Si vous tes en mode auto, ce bouton enlve le reste du programme du planificat -eur de mouvements. - Il enregistre aussi le numro de la ligne qui s'excutait quand il a t - press. - Vous pouvez vous servir de ce numro de ligne pour redmarrer le programme - aprs avoir supprim la raison de l'appui... -\layout Subsection - - -\begin_inset Quotes fld -\end_inset - -A/U -\begin_inset LatexCommand \index{ESTOP} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - -\layout Standard - -Le bouton d'Arrt d'Urgence est une bascule mais il a trois fonctionnements - possibles. - -\layout Itemize - -Au dmarrage de Mini c'est un bouton avec le texte -\begin_inset Quotes fld -\end_inset - -A/U -\begin_inset Quotes frd -\end_inset - - crit en noir sur fond rouge. - C'est tat de la machine est correct pour charger un programme ou faire - un jog sur un axe. - L'Arrt d'Urgence est libr quand il s'affiche dans cet tat. -\layout Itemize - -Si vous pressez sur le bouton d'Arrt d'Urgence pendant qu'un mouvement - est excut, le texte sur le bouton devient -\begin_inset Quotes fld -\end_inset - -A/U Engag -\begin_inset Quotes frd -\end_inset - - sur fond gris et le bouton s'enfonce. - Plus aucun mouvement n'est possible et plus rien ne ragi sur l'interface - Mini tant que l'Arrt d'Urgence est dans cet tat. - Le presser nouveau la souris le fera repasser en conditions normales - de fonctionnement. -\layout Itemize - -Un troisime tat est encore possible. - Un bouton enfonc portant le texte -\begin_inset Quotes fld -\end_inset - -A/U Libr -\begin_inset Quotes frd -\end_inset - - sur fond vert signifie que l'A/U a bien t libr mais que la machine - n'a pas t mise en marche. - Normalement cet tat apparat quand l'A/U tait libr mais que la touche - Marche Machine -\begin_inset Quotes fld -\end_inset - -F2 -\begin_inset Quotes frd -\end_inset - - a t presse. -\layout Standard - -Joe Martin disait, -\begin_inset Quotes eld -\end_inset - -Quand tout le reste a chou, pressez un -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence -\begin_inset Quotes frd -\end_inset - - software. -\begin_inset Quotes erd -\end_inset - - Si vous avez un circuit externe qui gre l'A/U en surveillant une broche - du port parallle ou celle d'une carte d'entres/sorties, un arrt d'urgence - software pourra couper la puissance sur les moteurs. -\layout Quotation - -La plupart du temps, quand un Abandon ou un Arrt d'Urgence est engag c'est - parce que quelque chose se passe mal. - Peut tre un outil cass et qui doit tre chang. - On passe alors en mode manual et on arrte la broche, on change l'outil - et en supposant que sa longueur reste la mme, on est prt pour relancer - le programme. - Si on renvoie l'outil la mme place ou il tait avant, EMC va fonctionner - parfaitement. - Il est aussi possible de se dplacer sur la ligne suivante ou prcdente - de celle ou c'est produit l'abandon. - Si vous pressez le bouton -\begin_inset Quotes fld -\end_inset - -Arrire -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -Avant -\begin_inset Quotes frd -\end_inset - - vous voyez une ligne en surbrillance bleue montrant l'cart entre la ligne - sur laquelle l'abandon s'est produit (reste en surbrillance rouge) et - la ligne laquelle EMC va redmarrer. - En rflchissant ce qui va se produire au moment de la reprise vous serez - en mesure de placer l'arte de l'outil l o la reprise pourra se faire - de manire acceptable. - Vous aurez peut tre solutionner certaines difficults comme celles cres - par les compensations de rayon d'outil le long d'une ligne diagonale et - vous devrez tre sr de vous avant de presser sur le bouton -\begin_inset Quotes fld -\end_inset - -Reprise -\begin_inset Quotes frd -\end_inset - -. - -\layout Section - -Colonne de gauche -\layout Standard - -Il y a deux colonnes sous la barre de contrle. - La colonne de gauche affiche les informations intressant l'oprateur. - Il y a seulement deux boutons dans cette zne. -\layout Subsection - -Afficheurs de position des axes -\layout Standard - -Ces afficheurs se comportent exactement comme ceux de TkeEMC. - La couleur des afficheurs est importante. -\layout Itemize - -Rouge, elle indique que la machine est en appui sur un contact de fin de - course ou que la polarit d'une limite est mal positionne dans le fichier - ini. -\layout Itemize - -Jaune, elle indique que la machine est prte pour faire ses prises d'origine. -\layout Itemize - -Verte, elle indique que la machine a bien t rfrence sur ses points - d'origine. -\layout Standard - -Le type de position affiche peut varier, selon les options choisies dans - le menus -\begin_inset Quotes fld -\end_inset - -Rglages -\begin_inset Quotes frd -\end_inset - -. - Les rglages par dfaut, ou de dmarrage, peuvent tre changs dans le - fichier ini pour correspondre vos besoins. -\layout Subsection - -Correcteur de vitesse travail -\begin_inset LatexCommand \index{correcteur vitesse} - -\end_inset - - -\layout Standard - -Immdiatement sous les afficheurs de position on trouve un curseur, c'est - le correcteur de vitesse travail. - Vous pouvez agir sur le correcteur de vitesse et sur le bouton Vitesse-0 - dans tous les modes de marche. - Le correcteur agit sur la vitesse de jog et sur la vitesse d'avance travail - dans les modes manuel ou MDI. - Il est possible de modifier la position du curseur en le dplaant la - souris le long de sa glissire. - Il est galement possible de modifier le correcteur de 1% chaque fois - qu'un clic de souris est fait dans la glissire du curseur. - En mode Manuel il est possible d'ajuster le correcteur par incrments de - 10% avec les touches chiffres du haut du clavier. - Le curseur est une rfrence visuelle trs pratique pour estimer la correction - applique sur la vitesse d'avance programme. -\layout Subsection - -Messages -\layout Standard - -L'affichage des messages situ sous le curseur du correcteur de vitesse - est une sorte de bloc-notes pour EMC. - Si un problme survient, il est report sur ce bloc-notes. - Si vous essayez de dplacer un axe alors que l'Arrt d'Urgence est engag, - vous recevez un message qui dit quelques choses propos des conditions - de marche empchant EMC de rpondre la commande de mouvement. - Si un axe est en dfaut, par exemple un dpassement de limite, le message - affich sur le bloc-notes indiquera ce qui se passe. - Pour demander l'oprateur de changer d'outil par exemple, vous pouvez - aussi ajouter une ligne de code dans le programme qui s'affichera sur l'cran, - dans la bote de messages. - Un exemple pourrait tre: (msg, Montez l'outil N3 puis pressez Reprise). - Cette ligne de code, incluse dans un programme, va afficher -\begin_inset Quotes fld -\end_inset - -Montez l'outil N3 puis pressez Reprise -\begin_inset Quotes frd -\end_inset - - dans la bote de messages. - Le mot msg, (avec la virgule) est la commande qui fait apparatre le commentair -e, sans -\emph on -msg, -\emph default - le message ne serait pas affich. -\layout Standard - -Pour effacer les messages cliquer simplement sur le bandeau --MESSAGES-- - au dessus du bloc-notes ou au clavier, presser -\begin_inset Quotes fld -\end_inset - -m -\begin_inset Quotes frd -\end_inset - - tout en maintenant la touche -\begin_inset Quotes fld -\end_inset - -Alt -\begin_inset Quotes frd -\end_inset - - appuye. - -\layout Section - -Colonne de droite -\layout Standard - -La colonne de droite est l'emplacement sur lequel seront affichs les diffrents - lments rsultants des choix de l'utilisateur. - C'est ici que seront visibles les diffrentes entres de texte, les diffrents - affichages et les boutons du mode manuel. - C'est ici que le parcours d'outil sera affich pendant l'excution d'un - programme. - C'est galement ici que l'diteur de texte s'ouvrira pour permettre l'dition - des programmes, l'dition des tables d'outils ou d'offsets. - L'cran du mode manuel a dj t dcrit prcdemment. - Chaque cran surgissant va tre dcrit en dtail ci-dessous. -\layout Subsection - -Editeur de texte -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename miniedit_fr.png - display color - width 60text% - keepAspectRatio - -\end_inset - - -\layout Caption - -Editeur de texte de Mini -\end_inset - - -\layout Standard - -L'diteur de texte de Mini peut sembler un peu limit par rapport aux diteurs - de texte modernes. - Il a t inclus parce qu'il comporte l'excellente possibilit de numroter - et renumroter un programme de la mme manire que l'interprteur le fait - avec un fichier. - Il permet galement le couper/coller d'une partie vers une autre du fichier. - En plus, il permet d'enregistrer les changements faits dans le programme - et de soumettre celui-ci l'interprteur d'EMC depuis le mme menu. - Il est possible de travailler sur un fichier ouvert dans cet diteur puis - de l'enregistrer et de le recharger si EMC est en mode Auto. - Si vous avez lanc un fichier et que vous avez besoin de l'diter, ce fichier - sera plac dans l'diteur quand vous cliquez sur le bouton -\begin_inset Quotes fld -\end_inset - -Editeur -\begin_inset Quotes frd -\end_inset - - du menu. - -\layout Subsection - -Parcours d'outil -\begin_inset LatexCommand \index{trace d'outil } - -\end_inset - - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename minibkplot_fr.png - display color - width 60text% - keepAspectRatio - -\end_inset - - -\layout Caption - -Parcours d'outil de Mini -\end_inset - -Le bouton -\begin_inset Quotes fld -\end_inset - -Parcours d'outil -\begin_inset Quotes frd -\end_inset - - du menu, affiche un trac produit par le cheminement de l'outil pendant - l'usinage. - Cette trace est affichable selon plusieurs plans et en -\begin_inset Quotes fld -\end_inset - -3-D -\begin_inset Quotes frd -\end_inset - - qui est le mode par dfaut. - Les choix sont affichs au dessus et droite de cette fentre. - Si l'usinage est dj en cours depuis un certain temps quand cette fentre - est active, il lui faudra un peu de temps pour recalculer la vue du parcours. -\layout Standard - -Sur le ct droit de la fentre une petite pyramide graphique montre l'angle - depuis lequel l'oprateur voit le trac du parcours d'outil. - En dessous, une srie de curseurs permettent de modifier les angles et - la taille de la vue. - Il est possible de contrler les modifications en regardant l'attitude - de la petite pyramide. - Les modifications ne prendront effet qu'aprs appui sur le bouton -\begin_inset Quotes fld -\end_inset - -Rafrachir -\begin_inset Quotes frd -\end_inset - -. - Le bouton -\begin_inset Quotes fld -\end_inset - -Reset -\begin_inset Quotes frd -\end_inset - - efface toutes les traces du parcours affich et prpare la fentre pour - un nouveau lancement du programme, il conserve toutefois les orientations - et le niveau de zoom actuellement dfinis. - -\layout Standard - -Si un parcours d'outil est lanc avant qu'un programme ne soit dmarr, - il va afficher quelques lignes de couleur pour indiquer le type de trac - qui sera utilis. - Une ligne verte reprsente un mouvement en vitesse d'avance rapide. - Une ligne noire, un mouvement en vitesse d'avance travail. - Une ligne bleue et une ligne rouge indiquent respectivement un arc en sens - anti-horaire et un arc en sens horaire. -\layout Standard - -Le trac du parcours d'outil de Mini permet de zoomer et d'orienter les - vues du programme en cours d'excution mais il n'est pas conu pour enregistrer - un chemin d'outil sur une longue priode de temps. - -\layout Subsection - -Page des outils -\layout Standard - -La page des outils permet d'ajuster la longueur et le diamtre des outils, - ces valeurs deviennent effectives ds l'appui sur la touche -\begin_inset Quotes fld -\end_inset - -Entre -\begin_inset Quotes frd -\end_inset - -. - Il est ncessaire de dfinir les paramtres des outils avant de lancer - le programme. - Les offsets d'outils ne peuvent pas tre modifis une fois le programme - dmarr ni quand il est en pause. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename minitool_fr.png - display color - width 60text% - keepAspectRatio - -\end_inset - - -\layout Caption - -Affichage de la table d'outils de Mini -\end_inset - - -\layout Standard - -Les boutons -\begin_inset Quotes fld -\end_inset - -Ajouter un outil -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Enlever le dernier outil -\begin_inset Quotes frd -\end_inset - - portent sur la fin de la liste des outils de sorte que l'ajout d'outils - s'effectuent vers le bas. - Quand un nouvel outil est ajout, il est utilisable dans le programme avec - la commande G-code habituelle. - Le nombre maximum d'outils est de 32 dans le fichier de configuration d'EMC - mais vous serez arriv au bout des possibilits d'affichage de Mini bien - avant cel. - A la place vous pouvez utiliser le -\begin_inset Quotes fld -\end_inset - -menu -\begin_inset Quotes frd -\end_inset - - -> -\begin_inset Quotes fld -\end_inset - -Vues -\begin_inset Quotes frd -\end_inset - - -> -\begin_inset Quotes fld -\end_inset - -Afficher dans toute la fentre -\begin_inset Quotes frd -\end_inset - - pour voir plus d'outils si ncessaire. - -\layout Subsection - -Page des offsets -\layout Standard - -La page des offsets peut tre utilise pour afficher et ajuster les dcalages - d'origine des diffrents systmes de coordonnes. - Le systme de coordonnes est choisi dans la colonne de gauche, par slection - d'une case cocher. - Quand un systme de coordonnes est choisi il est possible d'entrer directement - les valeurs ou de dplacer l'axe une position d'apprentissage. - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename minioffsets_fr.png - display color - width 60text% - keepAspectRatio - -\end_inset - - -\layout Caption - -Mini Offset Display -\end_inset - -Il est galement possible d'utiliser une pinnule puis d'ajouter le rayon - et la longueur par le bouton -\begin_inset Quotes fld -\end_inset - -Apprentissage -\begin_inset Quotes frd -\end_inset - -. - Pour cel, il peur tre ncessaire d'ajouter ou de soustraire le rayon - de la pinnule selon la surface qui est touche. - C'est la case cocher -\begin_inset Quotes fld -\end_inset - -Soustraire -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -Ajouter -\begin_inset Quotes frd -\end_inset - - qui permet ce choix. -\layout Standard - -Le bouton -\begin_inset Quotes fld -\end_inset - -Tous les Gxx zro -\begin_inset Quotes frd -\end_inset - - enlve tous les dcalages du systme courant visibles sur l'cran mais - ne modifie pas les variables dans le fichier tant que le bouton -\begin_inset Quotes fld -\end_inset - -crire et recharger -\begin_inset Quotes frd -\end_inset - - n'est pas press. - Le bouton -\begin_inset Quotes fld -\end_inset - -crire et recharger -\begin_inset Quotes frd -\end_inset - - est presser pour valider et recharger tous les changements effectus - sur les valeurs des systmes de coordonnes. -\layout Section - -Raccourcis clavier -\layout Standard - -Un certain nombre de raccourcis clavier utiliss avec TkEMC ont t conservs - avec Mini. - Quelques uns ont chang pour tendre leurs fonctions ou pour faciliter - les oprations sur une machine utilisant cette interface. - Certaines touches oprent de la mme manire quelque soit le mode. - D'autres change en fonction du mode de travail d'EMC. - -\layout Subsection - -Touches courantes -\layout Description - -Pause Bascule du correcteur de vitesse travail -\layout Description - -Echap Abandonne le mouvement -\layout Description - -F1 Bascule l'tat de l'Arrt d'Urgence -\layout Description - -F2 Marche/Arrt machine -\layout Description - -F3 Mode manuel -\layout Description - -F4 Mode Auto -\layout Description - -F5 Mode MDI -\layout Description - -F6 Rinitialise l'interprteur -\layout Standard - -Ces touches fonctionnent seulement pour une machine utilisant des entres - sorties auxiliaires -\layout Description - -F7 Marche/Arrt du brouillard -\layout Description - -F8 Marche/Arrt arrosage -\layout Description - -F9 Marche/Arrt broche sens horaire -\layout Description - -F10 Marche/Arrt broche sens anti-horaire -\layout Description - -F11 Diminue la vitesse de broche -\layout Description - -F12 Augmente la vitesse de broche -\layout Subsection - -Mode Manuel -\begin_inset LatexCommand \index{Manuel} - -\end_inset - - -\layout Description - -1-9\SpecialChar ~ -0 Positionne le correcteur de vitesse d'avance travail de 10% en 10%, - de 0 100% -\layout Description - -~ Positionne le correcteur de vitesse 0 -\layout Description - -x Slectionne l'axe X -\layout Description - -y Slectionne l'axe Y -\layout Description - -z Slectionne l'axe Z -\layout Description - -a Slectionne l'axe A -\layout Description - -b Slectionne l'axe B -\layout Description - -c Slectionne l'axe C -\layout Description - -Gauche\SpecialChar ~ -Droite jog de l'axe X -\layout Description - -Haut\SpecialChar ~ -Bas jog de l'axe Y -\layout Description - -Pg.prc\SpecialChar ~ -Pg.suiv jog de l'axe Z -\layout Description - --\SpecialChar ~ -_ jog de l'axe actif dans la direction moins -\layout Description - -+\SpecialChar ~ -= jog l'axe actif dans la direction plus -\layout Description - -Origine POM de l'axe actif -\layout Description - -i\SpecialChar ~ -I Bascule cyclique des incrments de jog -\layout Standard - -Les touches suivantes ne fonctionnent que sur les machines utilisant des - entres sorties auxiliaires -\layout Description - -b Relcher le frein de broche -\layout Description - -Alt-b Engager le frein de broche -\layout Subsection - -Mode Auto -\begin_inset LatexCommand \index{Auto} - -\end_inset - - -\layout Description - -1-9,0 Positionne le correcteur de vitesse d'avance travail de 10% en 10%, - de 0 100% -\layout Description - -~ Positionne le correcteur de vitesse 0 -\layout Description - -o/O Ouvre un programme -\layout Description - -r/R Lance le programme ouvert -\layout Description - -p/P Met le programme en pause -\layout Description - -s/S Reprise d'un programme en pause -\layout Description - -a/A Avance d'une ligne dans un programme en pause -\layout Section - -Divers -\layout Standard - -Une des possibilits de Mini est d'afficher n'importe quel axe, au del - de 2, comme tant un axe rotatif, il affiche alors des degrs pour celui-ci. - Il converti galement les units en degrs quand un axe rotatif a le focus. - -\the_end diff --git a/docs/src/gui/tkemc.lyx b/docs/src/gui/tkemc.lyx deleted file mode 100644 index 33e3225c4..000000000 --- a/docs/src/gui/tkemc.lyx +++ /dev/null @@ -1,1481 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize custom -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 2 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -TkEMC -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -TkEMC -\begin_inset LatexCommand index -name "tkemc" - -\end_inset - - is one of the most traditional graphical front-ends for EMC. - It is written in Tcl -\begin_inset LatexCommand index -name "Tcl" - -\end_inset - - and uses the Tk -\begin_inset LatexCommand index -name "Tk" - -\end_inset - - toolkit for the display. - Being written in TCL makes it very portable (runs on a multitude of platforms). - A separate backplot window can be displayed as shown in Figure( -\begin_inset LatexCommand ref -reference "cap:TkEMC-Window" - -\end_inset - -). -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -TkEMC Window -\begin_inset LatexCommand label -name "cap:TkEMC-Window" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename ../common/tkemc.png - lyxscale 80 - width 80page% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Getting Started -\end_layout - -\begin_layout Standard -To select TkEMC as the front-end for EMC2, edit the .ini file. - In the section -\family typewriter -[DISPLAY] -\family default - change the -\family typewriter -DISPLAY -\family default - line to read -\end_layout - -\begin_layout Quote -DISPLAY = tkemc -\end_layout - -\begin_layout Standard -Then, start EMC2 and select that ini file. - The sample configuration -\family typewriter -sim/tkemc.ini -\family default - is already configured to use TkEMC as its front-end. -\end_layout - -\begin_layout Standard -When you start EMC2 with TkEMC, a window like the one in Figure -\begin_inset LatexCommand ref -reference "cap:TkEMC-Window" - -\end_inset - - is shown. -\end_layout - -\begin_layout Subsection -A typical session with TkEMC -\end_layout - -\begin_layout Enumerate -Start EMC2 and select a configuration file. -\end_layout - -\begin_layout Enumerate -Clear the -\begin_inset Quotes eld -\end_inset - -E-STOP -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - condition and turn the machine on (by pressing F1 then F2). -\end_layout - -\begin_layout Enumerate -\begin_inset Quotes eld -\end_inset - -Home -\begin_inset LatexCommand index -name "home" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - each axis. -\end_layout - -\begin_layout Enumerate -Load the file to be milled. -\end_layout - -\begin_layout Enumerate -Put the stock to be milled on the table. -\end_layout - -\begin_layout Enumerate -Set the proper offsets for each axis by jogging and either homing again - or right-clicking an axis name and entering an offset value. - -\begin_inset Foot -status collapsed - -\begin_layout Standard -for some of these actions it might be needed to change the mode emc2 currently - is in. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Enumerate -Run the program. -\end_layout - -\begin_layout Enumerate -To mill the same file again, return to step 6. - To mill a different file, return to step 4. - When you're done, exit EMC2. -\end_layout - -\begin_layout Section -Elements of the TkEMC window -\end_layout - -\begin_layout Standard -The TkEMC window contains the following elements: -\end_layout - -\begin_layout Itemize -A menubar that allows you to perform various actions ; -\end_layout - -\begin_layout Itemize -A set of buttons that allow you to change the current working mode, start/stop - spindle and other relevant I/O ; -\end_layout - -\begin_layout Itemize -Status bar for various offset related displays ; -\end_layout - -\begin_layout Itemize -Coordinate display area ; -\end_layout - -\begin_layout Itemize -A set of sliders which control -\begin_inset Quotes eld -\end_inset - -Jogging speed -\begin_inset LatexCommand index -name "jog speed" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - -, -\begin_inset Quotes eld -\end_inset - -Feed Override -\begin_inset LatexCommand index -name "feed override" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - -, and -\begin_inset Quotes eld -\end_inset - -Spindle speed Override -\begin_inset LatexCommand index -name "spindle speed override" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - which allow you to increase or decrease those settings ; -\end_layout - -\begin_layout Itemize -Manual data input text box -\begin_inset LatexCommand index -name "MDI" - -\end_inset - -; -\end_layout - -\begin_layout Itemize -Status bar display with active G-codes, M-codes, F- and S-words ; -\end_layout - -\begin_layout Itemize -Interpreter related buttons ; -\end_layout - -\begin_layout Itemize -A text display area that shows the G-code source of the loaded file. -\end_layout - -\begin_layout Subsection -Main buttons -\end_layout - -\begin_layout Standard -From left to right, the buttons are: -\end_layout - -\begin_layout Enumerate -Machine enable: -\begin_inset Quotes eld -\end_inset - -ESTOP -\begin_inset LatexCommand index -name "ESTOP" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -ESTOP RESET -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -ON -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Enumerate -Toggle mist -\begin_inset LatexCommand index -name "MIST" - -\end_inset - - -\end_layout - -\begin_layout Enumerate -Decrease spindle speed -\end_layout - -\begin_layout Enumerate -Set spindle -\begin_inset LatexCommand index -name "spindle" - -\end_inset - - direction -\begin_inset Quotes eld -\end_inset - -SPINDLE OFF -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -SPINDLE FORWARD -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -SPINDLE REVERSE -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Enumerate -Increase spindle speed -\end_layout - -\begin_layout Enumerate -Abort -\end_layout - -\begin_layout Standard -then on the second line: -\end_layout - -\begin_layout Enumerate -Operation mode: -\begin_inset Quotes eld -\end_inset - -MANUAL -\begin_inset LatexCommand index -name "Manual" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -MDI -\begin_inset LatexCommand index -name "MDI" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -AUTO -\begin_inset LatexCommand index -name "Auto" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Enumerate -Toggle flood -\end_layout - -\begin_layout Enumerate -Toggle spindle brake control -\end_layout - -\begin_layout Subsection -Offset display status bar -\end_layout - -\begin_layout Standard -The Offset display status bar displays the currently selected tool (selected - with Txx M6), the tool length offset (if active), and the work offsets - (set by right clicking the coordinates). -\end_layout - -\begin_layout Subsection -Coordinate Display Area -\end_layout - -\begin_layout Standard -The main part of the display shows the current position of the tool. - The colour of the position readout depends on the state of the axis. - If the axis is unhomed the axis will be displayed in yellow letters. - Once homed it will be displayed in green letters. - If there is an error with the current axis TkEMC will use red letter to - show that. - (for example if an hardware limit switch is tripped). -\end_layout - -\begin_layout Standard -To properly interpret these numbers, refer to the radio boxes on the right. - If the position is -\begin_inset Quotes eld -\end_inset - -Machine -\begin_inset Quotes erd -\end_inset - -, then the displayed number is in the machine coordinate system. - If it is -\begin_inset Quotes eld -\end_inset - -Relative -\begin_inset Quotes erd -\end_inset - -, then the displayed number is in the offset coordinate system. - Further down the choices can be -\begin_inset Quotes eld -\end_inset - -actual -\begin_inset Quotes erd -\end_inset - - or -\begin_inset Quotes eld -\end_inset - -commanded -\begin_inset Quotes erd -\end_inset - -. - Actual refers to the feedback coming from encoders (if you have a servo - machine), and the -\begin_inset Quotes eld -\end_inset - -commanded -\begin_inset Quotes erd -\end_inset - - refers to the position command send out to the motors. - These values can differ for several reasons: Following error, deadband, - encoder resolution, or step size. - For instance, if you command a movement to X 0.0033 on your mill, but one - step of your stepper motor is 0.00125, then the -\begin_inset Quotes eld -\end_inset - -Commanded -\begin_inset Quotes erd -\end_inset - - position will be 0.0033 but the -\begin_inset Quotes eld -\end_inset - -Actual -\begin_inset Quotes erd -\end_inset - - position will be 0.0025 (2 steps) or 0.00375 (3 steps). -\end_layout - -\begin_layout Standard -Another set of radio buttons allows you to choose between -\begin_inset Quotes eld -\end_inset - -joint -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -world -\begin_inset Quotes erd -\end_inset - - view. - These make little sense on a normal type of machine (e.g. - trivial kinematics), but helps on machines with non-trivial kinematics - like robots or stewart platforms. - (you can read more about kinematics in the Integrators Handbook). -\end_layout - -\begin_layout Subsubsection -Backplot -\end_layout - -\begin_layout Standard -When the machine moves, it leaves a trail called the backplot. - You can start the backplot window by selecting View->Backplot. -\end_layout - -\begin_layout Subsection -Automatic control -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -TkEMC Interpreter / program control -\begin_inset LatexCommand label -name "cap:TkEMC-Interpreter" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename tkemc_interp.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Buttons for control -\end_layout - -\begin_layout Standard -The buttons in the lower part of TkEMC (seen in Figure -\begin_inset LatexCommand ref -reference "cap:TkEMC-Interpreter" - -\end_inset - -) are used to control the execution of a program: -\begin_inset Quotes eld -\end_inset - -Open -\begin_inset LatexCommand index -name "open" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to load a program, -\begin_inset Quotes eld -\end_inset - -Verify -\begin_inset LatexCommand index -name "verify" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to check it for errors, -\begin_inset Quotes eld -\end_inset - -Run -\begin_inset LatexCommand index -name "run" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to start the actual cutting, -\begin_inset Quotes eld -\end_inset - -Pause -\begin_inset LatexCommand index -name "pause" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to stop it while running, -\begin_inset Quotes eld -\end_inset - -Resume -\begin_inset LatexCommand index -name "resume" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to resume an already paused program, -\begin_inset Quotes eld -\end_inset - -Step -\begin_inset LatexCommand index -name "step" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to advance one line in the program and -\begin_inset Quotes eld -\end_inset - -Optional Stop -\begin_inset LatexCommand index -name "optional stop" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - to toggle the optional stop switch (if the button is green the program - execution will be stopped on any M1 encountered). -\end_layout - -\begin_layout Subsubsection -Text Program Display Area -\end_layout - -\begin_layout Standard -When the program is running, the line currently being executed is highlighted - in white. - The text display will automatically scroll to show the current line. -\end_layout - -\begin_layout Subsection -Manual Control -\end_layout - -\begin_layout Subsubsection -Implicit keys -\end_layout - -\begin_layout Standard -TkEMC allows you to manually move the machine. - This action is known as -\begin_inset Quotes eld -\end_inset - -jogging -\begin_inset Quotes erd -\end_inset - -. - First, select the axis to be moved by clicking it. - Then, click and hold the -\begin_inset Quotes eld -\end_inset - -+ -\begin_inset Quotes erd -\end_inset - - or -\begin_inset Quotes eld -\end_inset - -- -\begin_inset Quotes erd -\end_inset - - button depending on the desired direction of motion. - The first four axes can also be moved by the arrow keys (X and Y), PAGE - UP and PAGE DOWN keys (Z) and the [ and ] keys (A). -\end_layout - -\begin_layout Standard -If -\begin_inset Quotes eld -\end_inset - -Continuous -\begin_inset Quotes erd -\end_inset - - is selected, the motion will continue as long as the button or key is pressed. - If another value is selected, the machine will move exactly the displayed - distance each time the button is clicked or the key is pressed. - The available values are: -\end_layout - -\begin_layout Quotation -1.0000 0.1000 0.0100 0.0010 0.0001 -\end_layout - -\begin_layout Standard -By pressing -\begin_inset Quotes eld -\end_inset - -Home -\begin_inset Quotes erd -\end_inset - - or the HOME key, the selected axis will be homed. - Depending on your configuration, this may just set the axis value to be - the absolute position 0.0, or it may make the machine move to a specific - home location through use of -\begin_inset Quotes eld -\end_inset - -home switches -\begin_inset Quotes erd -\end_inset - -. - See the Integrators Manual for more information on homing. -\end_layout - -\begin_layout Standard -By pressing -\begin_inset Quotes eld -\end_inset - -Override Limits -\begin_inset Quotes erd -\end_inset - -, the machine will temporarily be permitted to jog outside the limits defined - in the .ini file. - (Note: if -\begin_inset Quotes eld -\end_inset - -Override Limits -\begin_inset Quotes erd -\end_inset - - is active the button will be displayed using a red colour). -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -TkEMC Override Limits & Jogging increments example -\begin_inset LatexCommand label -name "cap:Override-Limits" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename tkemc_override_limits.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -The -\begin_inset Quotes eld -\end_inset - -Spindle -\begin_inset LatexCommand index -name "spindle" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - group -\end_layout - -\begin_layout Standard -The button on the first row select the direction for the spindle to rotate: - Counterclockwise, Stopped, Clockwise. - The buttons next to it allow the user to increase or decrease the rotation - speed. - The button on the second row allows the spindle brake to be engaged or - released. - Depending on your machine configuration, not all the items in this group - may have an effect. -\end_layout - -\begin_layout Subsubsection -The -\begin_inset Quotes eld -\end_inset - -Coolant -\begin_inset LatexCommand index -name "coolant" - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - group -\end_layout - -\begin_layout Standard -The two buttons allow the -\begin_inset Quotes eld -\end_inset - -Mist -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -Flood -\begin_inset Quotes erd -\end_inset - - coolants to be turned on and off. - Depending on your machine configuration, not all the items in this group - may appear. -\end_layout - -\begin_layout Subsection -Code Entry -\end_layout - -\begin_layout Standard -Manual Data Input (also called MDI), allows G-code programs to be entered - manually, one line at a time. - When the machine is not turned on, and not set to MDI mode, the code entry - controls are unavailable. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -The Code Entry tab -\begin_inset LatexCommand label -name "cap:The-Code-Entry" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename tkemc_mdi.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -MDI: -\end_layout - -\begin_layout Standard -This allows you to enter a g-code command to be executed. - Execute the command by pressing Enter. -\end_layout - -\begin_layout Subsubsection -Active G-Codes -\end_layout - -\begin_layout Standard -This shows the -\begin_inset Quotes eld -\end_inset - -modal codes -\begin_inset Quotes erd -\end_inset - - that are active in the interpreter. - For instance, -\begin_inset Quotes eld -\end_inset - -G54 -\begin_inset Quotes erd -\end_inset - - indicates that the -\begin_inset Quotes eld -\end_inset - -G54 offset -\begin_inset Quotes erd -\end_inset - - is applied to all coordinates that are entered. -\end_layout - -\begin_layout Subsection -Jog Speed -\end_layout - -\begin_layout Standard -By moving this slider, the speed of jogs can be modified. - The numbers above refer to axis units / second. - The text box with the number is clickable. - Once clicked a popup window will appear, allowing for a number to be entered. -\end_layout - -\begin_layout Subsection -Feed Override -\end_layout - -\begin_layout Standard -By moving this slider, the programmed feed rate can be modified. - For instance, if a program requests -\family typewriter -F60 -\family default - and the slider is set to 120%, then the resulting feed rate will be 72. - The text box with the number is clickable. - Once clicked a popup window will appear, allowing for a number to be entered. -\end_layout - -\begin_layout Subsection -Spindle speed Override -\end_layout - -\begin_layout Standard -The spindle speed override slider works exactly like the feed override slider, - but it controls to the spindle speed. - If a program requested S500 (spindle speed 500 RPM), and the slider is - set to 80%, then the resulting spindle speed will be 400 RPM. - This slider has a minimum and maximum value defined in the ini file. - If those are missing the slider is stuck at 100%. - The text box with the number is clickable. - Once clicked a popup window will appear, allowing for a number to be entered. -\end_layout - -\begin_layout Section -Keyboard Controls -\end_layout - -\begin_layout Standard -Almost all actions in TkEMC can be accomplished with the keyboard. - Many of the shortcuts are unavailable when in MDI mode. -\end_layout - -\begin_layout Standard -The most frequently used keyboard shortcuts are shown in Table -\begin_inset LatexCommand ref -reference "cap:Most-Common-Keyboard" - -\end_inset - -. -\end_layout - -\begin_layout Standard -\begin_inset Float table -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Most Common Keyboard Shortcuts -\begin_inset LatexCommand label -name "cap:Most-Common-Keyboard" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -Keystroke -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Action Taken -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Toggle Emergency Stop -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -F2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Turn machine on/off -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -`, 1 .. - 9, 0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set feed override from 0% to 100% -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -X, ` -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate first axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Y, 1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate second axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Z, 2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate third axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -A, 3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Activate fourth axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Home -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Send active axis Home -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Left, Right -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog first axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Up, Down -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog second axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Pg Up, Pg Dn -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog third axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -[, ] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jog fourth axis -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -ESC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Stop execution -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/gui/tkemc_fr.lyx b/docs/src/gui/tkemc_fr.lyx deleted file mode 100644 index aae38c33d..000000000 --- a/docs/src/gui/tkemc_fr.lyx +++ /dev/null @@ -1,1270 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\paperwidth 8.5in -\paperheight 11in -\leftmargin 1.2in -\topmargin 1in -\rightmargin 0.6in -\bottommargin 0.6in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -L'interface TkEMC -\layout Section - -Introduction -\layout Standard - -TkEMC -\begin_inset LatexCommand \index{tkemc} - -\end_inset - - est l'interface utilisateur graphique la plus populaire aprs Axis, c'est - l'interface traditionelle d'EMC. - Elle est crite en Tcl -\begin_inset LatexCommand \index{Tcl} - -\end_inset - - et utilise le toolkit Tk -\begin_inset LatexCommand \index{Tk} - -\end_inset - - pour l'affichage. - Le fait d'tre crite en TCL la rend vraiment trs portable (elle fonctionne - sur une multitude de plateformes). -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -L'affichage de TkEMC -\begin_inset LatexCommand \label{cap:affichage-TkEMC} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename tkemc_fr.png - width 80page% - keepAspectRatio - -\end_inset - - -\end_inset - - -\layout Section - -Utiliser TkEMC -\layout Standard - -Pour slectionner l'interface graphique TkEMC avec EMC2, diter le fichier - .ini et dans la section -\family typewriter -[DISPLAY] -\family default - modifier l'affichage comme ci-dessous: -\layout LyX-Code - -DISPLAY = tkemc -\layout Standard - -Puis, lancer EMC2 et choisir ce fichier ini. - La configuration -\family typewriter -qui se trouve dans sim/tkemc.ini est -\family default - dj configure pour utiliser TkEMC comme interface utilisateur. -\layout Standard - -Quand EMC2 est lanc avec TkEMC, une fentre comme celle de la figure -\begin_inset LatexCommand \ref{cap:affichage-TkEMC} - -\end_inset - - s'affiche. -\layout Subsection - -Une session typique avec TkEMC -\layout Enumerate - -Lancer EMC2 et slectionner un fichier de configuration. -\layout Enumerate - -Librer l' -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{A/U} - -\end_inset - - et mettre la machine en marche (en pressant F1 puis F2). -\layout Enumerate - -Faire l' -\begin_inset Quotes fld -\end_inset - -Origine -\begin_inset LatexCommand \index{Origine Machine} - -\end_inset - - Machine -\begin_inset Quotes frd -\end_inset - - de chacun des axes. -\layout Enumerate - -Charger un fichier d'usinage. -\layout Enumerate - -Brider le brut usiner sur la table. -\layout Enumerate - -Faire l' -\begin_inset Quotes fld -\end_inset - -Origine -\begin_inset LatexCommand \index{Origine Piece} - -\end_inset - -Pice -\begin_inset Quotes frd -\end_inset - - de chacun des axes, l'aide du jog ou en introduisant une valeur de dcalage - d'origine aprs un clic droit sur le nom d'un axe. -\layout Enumerate - -Lancer le programme. -\layout Enumerate - -Pour refaire une autre pice identique, reprendre l'tape 6. - Pour usiner une pice diffrente, reprendre l'tape 4. - Quand c'est termin, quitter EMC2. -\layout Section - -Elments affichs par TkEMC -\layout Standard - -La fentre TkEMC contient les lments suivants: -\layout Itemize - -Une barre de menu permettant diverses actions; -\layout Itemize - -Un jeu de boutons pemettant d'agir sur le mode de travail, Marche/Arrt - de la broche et autres lments; -\layout Itemize - -Une barre de status pour l'affichage des diffrents offsets; -\layout Itemize - -Une zne d'affichage des coordonnes; -\layout Itemize - -Un jeu de curseurs pour contrler la -\begin_inset Quotes fld -\end_inset - -vitesse de jog -\begin_inset LatexCommand \index{vitesse de jog} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - -, le -\begin_inset Quotes fld -\end_inset - -Correcteur de vitesse d'avance -\begin_inset LatexCommand \index{correcteur de vitesse} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - et le -\begin_inset Quotes fld -\end_inset - -Correcteur de vitesse broche -\begin_inset LatexCommand \index{correcteur vitesse broche} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - qui permettent d'augmenter ou de diminuer ces vitesses ; -\layout Itemize - -Une bote d'entre de donnes manuelles -\begin_inset LatexCommand \index{MDI} - -\end_inset - -; -\layout Itemize - -Une barre de status affichant le bloc de programme actif, G-codes, M-codes, - mots F et S; -\layout Itemize - -Les boutons relatifs l'interprteur; -\layout Itemize - -Une zne d'affichage de texte montrant le G-code du programme charg. -\layout Subsection - -Boutons principaux -\layout Standard - -Dans la premire ligne de la gauche vers la droite et cycliquement: -\layout Enumerate - -Marche Machine: -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence -\begin_inset LatexCommand \index{A/U} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - / -\begin_inset Quotes fld -\end_inset - -Arrt d'Urgence relch -\begin_inset Quotes frd -\end_inset - - / -\begin_inset Quotes fld -\end_inset - -Marche -\begin_inset Quotes frd -\end_inset - - -\layout Enumerate - -Bascule brouillard -\begin_inset LatexCommand \index{Brouillard} - -\end_inset - - -\layout Enumerate - -Broche moins vite -\layout Enumerate - -Direction de rotation de la broche -\begin_inset LatexCommand \index{broche} - -\end_inset - - -\begin_inset Quotes fld -\end_inset - -Arrt broche -\begin_inset Quotes frd -\end_inset - - / -\begin_inset Quotes fld -\end_inset - -Broche sens horaire -\begin_inset Quotes frd -\end_inset - - / -\begin_inset Quotes fld -\end_inset - -Broche sens anti-horaire -\begin_inset Quotes frd -\end_inset - - -\layout Enumerate - -Broche plus vite -\layout Enumerate - -Annuler -\layout Standard - -puis dans la deuxime ligne: -\layout Enumerate - -Mode de marche: -\begin_inset Quotes eld -\end_inset - -MANUEL -\begin_inset LatexCommand \index{Manuel} - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -MDI -\begin_inset LatexCommand \index{MDI} - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - / -\begin_inset Quotes eld -\end_inset - -AUTO -\begin_inset LatexCommand \index{Auto} - -\end_inset - - -\begin_inset Quotes erd -\end_inset - - -\layout Enumerate - -Bascule d'arrosage -\layout Enumerate - -Bascule du contrle frein de broche -\layout Subsection - -Barre de status des diffrents offsets -\layout Standard - -Elle affiche, l'offset de rayon de l'outil courant (slectionn avec Txx - M6), l'offset ventuel de longueur d'outil si il est actif et les offsets - de travail (ajustables par un clic droit sur les coordonnes). -\layout Subsection - -Zne d'affichage des coordonnes -\layout Standard - -La partie principale affiche la position courante de l'outil. - La couleur varie selon l'tat de l'axe. - Si l'axe n'est pas rfrenc il est affich en caractres jaunes. - Si il est rfrenc il s'affiche en vert. - Si il est en erreur, TkEMC l'affiche en rouge pour montrer un dfaut. - (par exemple si un contact de fin de course est activ). -\layout Standard - -Pour interprter correctement les diffrentes valeurs, se rfrer aux boutons - de droite. - Si la position est -\begin_inset Quotes fld -\end_inset - -Machine -\begin_inset Quotes frd -\end_inset - -, alors la valeur affiche est en coordonnes machine. - Si elle est -\begin_inset Quotes fld -\end_inset - -Relative -\begin_inset Quotes frd -\end_inset - -, la valeur affiche est en coordonnes pice. - Deux autres en dessous indiquent -\begin_inset Quotes fld -\end_inset - -actuel -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -command -\begin_inset Quotes frd -\end_inset - -. - Actuel fait rfrence aux valeurs retournes par les codeurs (si la machine - est quipe de servomoteurs) et -\begin_inset Quotes fld -\end_inset - -command -\begin_inset Quotes frd -\end_inset - - fait rfrence la position atteindre envoye aux moteurs. - Ces valeurs peuvent diffrer pour certaines raisons: Erreur de suivi, bande - morte, rsolution d'encodeur ou taille de pas. - Par exemple, si un mouvement est command vers X0.08 sur une fraiseuse, - mais qu'un pas moteur fait 0.03, alors la position -\begin_inset Quotes fld -\end_inset - -Commande -\begin_inset Quotes frd -\end_inset - - sera 0.03 mais la position -\begin_inset Quotes fld -\end_inset - -Actuelle -\begin_inset Quotes frd -\end_inset - - sera soit 0.06 (2 pas) soit 0.09 (3 pas). -\layout Standard - -Deux autres boutons permettent de choisir entre la vue -\begin_inset Quotes fld -\end_inset - -Jointure -\begin_inset Quotes frd -\end_inset - - et la vue -\begin_inset Quotes fld -\end_inset - -Global -\begin_inset Quotes frd -\end_inset - -. - Cel a peu de sens avec les machines de type normal (cinmatiques triviales), - mais se rvle trs utile sur les machines avec des cinmatiques non triviales - telles que les robots ou plateforme de Stewart. - (Des informations plus compltes se trouvent dans le manuel de l'intgrateur). -\layout Subsubsection - -Parcours d'outil -\layout Standard - -Quand la machine se dplace, elle laisse un trac appel parcours d'outil. - La fentre d'affichage du parcours d'outil s'active via le menu Vues->Parcours - d'outil. -\layout Subsection - -Contrle en automatique -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Interprteur de TkEMC -\begin_inset LatexCommand \label{cap:TkEMC-Interpreteur} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename tkemc_interp_fr.png - scale 50 - -\end_inset - - -\end_inset - - -\layout Subsubsection - -Boutons de contrle -\layout Standard - -Les boutons de contrle de la partie infrieure de TkEMC, voir la figure - -\begin_inset LatexCommand \ref{cap:TkEMC-Interpreteur} - -\end_inset - -, sont utiliss pour l'excution du programme: -\begin_inset Quotes fld -\end_inset - -Ouvrir -\begin_inset LatexCommand \index{ouvrir} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour charger un fichier, -\begin_inset Quotes fld -\end_inset - -Vrifier -\begin_inset LatexCommand \index{verifie} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour vrifier si il contient des erreurs, -\begin_inset Quotes fld -\end_inset - -Lancer -\begin_inset LatexCommand \index{lancer} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour commencer l'usinage, -\begin_inset Quotes fld -\end_inset - -Pause -\begin_inset LatexCommand \index{pause} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour pour stopper temporairement l'usinage, -\begin_inset Quotes fld -\end_inset - -Reprise -\begin_inset LatexCommand \index{reprise} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour reprendre un programme mis en pause, -\begin_inset Quotes fld -\end_inset - -Pas pas -\begin_inset LatexCommand \index{pas a pas} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour avancer d'une seule ligne de programme et -\begin_inset Quotes fld -\end_inset - -Arrt optionnel -\begin_inset LatexCommand \index{arret optionnel} - -\end_inset - - -\begin_inset Quotes frd -\end_inset - - pour basculer l'arrt optionnel, si ce bouton est vert l'excution du programme - est stoppe quand un code M1 est rencontr. -\layout Subsubsection - -Zne texte d'affichage du programme -\layout Standard - -Quand un programme est lanc, la ligne courante est affiche en surbrillance - blanche. - L'affichage du texte dfile automatiquement pour montrer la ligne courante. -\layout Subsection - -Contrle en manuel -\layout Subsubsection - -Touches implicites -\layout Standard - -TkEMC permet les dplacements manuels de la machine. - Cette action s'appelle le -\begin_inset Quotes fld -\end_inset - -jogging -\begin_inset Quotes frd -\end_inset - -. - Premirement, slctionner l'axe dplacer en cliquant dessus. - Puis, cliquer et maintenir les boutons -\begin_inset Quotes fld -\end_inset - -+ -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - selon la direction du mouvement souhat. - Les quatres premiers axes peuvent aussi tre dplacs l'aide des touches - flches pour les axes X et Y, Pg.prc et Pg.suiv pour l'axe Z et les touches - [ et ] pour l'axe A. -\layout Standard - -Si -\begin_inset Quotes fld -\end_inset - -Continu -\begin_inset Quotes frd -\end_inset - - est activ, le mouvement sera continu tant que la touche sera presse, - si une valeur d'incrment est slectionne, le mobile se dplacera exactement - de cette valeur chaque appui sur la touche ou chaque clic. - Les valeurs disponibles sont: -\layout Quotation - -1.0000 0.1000 0.0100 0.0010 0.0001 -\layout Standard - -En cliquant le bouton -\begin_inset Quotes fld -\end_inset - -Origine -\begin_inset Quotes frd -\end_inset - - ou en pressant la touche Origine, l'axe actif est rfrenc sur son origine - machine. - Selon la configuration, la valeur de l'axe peut tre simplement mise - la position absolue 0.0, ou la machine peut se dplacer vers un point spcifique - matrialis par le -\begin_inset Quotes fld -\end_inset - -contact d'origine -\begin_inset Quotes frd -\end_inset - -. - Voir le manuel de l'intgrateur pour plus de dtails sur les prises d'origine. -\layout Standard - -En cliquant le bouton -\begin_inset Quotes fld -\end_inset - -Dpassement de limite -\begin_inset Quotes frd -\end_inset - -, la machine permet un jog temporaire pour mme si l'axe franchi une limite - d'axe fixe dans le fichier .ini. - Noter que si -\begin_inset Quotes fld -\end_inset - -Dpassement de limite -\begin_inset Quotes frd -\end_inset - - est activ il s'affiche en rouge. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Exemple de dpassement de limite et incrments de jog -\begin_inset LatexCommand \label{cap:Override-Limits} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename tkemc_override_limits.png - scale 80 - -\end_inset - - -\end_inset - - -\layout Subsubsection - -Le groupe de boutons -\begin_inset Quotes fld -\end_inset - -Broche -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{broche} - -\end_inset - - -\layout Standard - -Le bouton central du dessus slectionne le sens de rotation de la broche: - Anti-horaire, Arrt, Horaire. - Les boutons flchs augmentent ou diminuent la vitesse de rotation. - Le bouton central du dessous permet d'engager ou de relcher le frein de - broche. - Selon la configuration de la machine, les items de ce groupe ne sont peut - tre pas tous visibles. -\layout Subsubsection - -Le groupe de boutons -\begin_inset Quotes fld -\end_inset - -Arrosage -\begin_inset Quotes frd -\end_inset - - -\begin_inset LatexCommand \index{arrosage} - -\end_inset - - -\layout Standard - -Ces deux boutons permettent d'activer ou non les lubrifiants -\begin_inset Quotes fld -\end_inset - -brouillard -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -Arrrosage -\begin_inset Quotes frd -\end_inset - -. - Selon la configuration de la machine, les items de ce groupe ne sont peut - tre pas tous visibles. -\layout Subsection - -Entre manuelle de G-code (MDI) -\layout Standard - -L'entre manuelle de donnes (aussi appele MDI), permet d'entrer et d'excuter - des lignes de G-code, une la fois. - Quand la machine n'est pas en marche ni mise en mode MDI, l'entre de code - n'est pas possible. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Le champ de saisie des entres manuelles -\layout Standard -\align center - -\begin_inset Graphics - filename tkemc_mdi.png - scale 60 - -\end_inset - - -\end_inset - - -\layout Subsubsection - -MDI: -\layout Standard - -Le mode MDI permet d'excuter une commande en G-code en pressant la touche - -\begin_inset Quotes fld -\end_inset - -Entre -\begin_inset Quotes frd -\end_inset - -. -\layout Subsubsection - -G-Codes actifs -\layout Standard - -Ce champs montre les -\begin_inset Quotes fld -\end_inset - -codes modaux -\begin_inset Quotes frd -\end_inset - - actuellement actifs dans l'interprteur. - Par exemple, -\begin_inset Quotes fld -\end_inset - -G54 -\begin_inset Quotes frd -\end_inset - - indique que le systme de coordonnes courant est celui de G54 et qu'il - s'applique toutes les coordonnes entres. -\layout Subsection - -Vitesse de Jog -\layout Standard - -En dplaant ce curseur, la vitesse de jog peut tre modifie. - Le nombre indique une vitesse en units par minute. - Le champs de texte est cliquable. - Un clic ouvre un dialogue permettant d'entrer un nombre. -\layout Subsection - -Correcteur de vitesse d'avance travail -\layout Standard - -En dplaant ce curseur, la vitesse d'avance travail peut tre modifie. - Par exemple, si la vitesse d'avance travail du programme est -\family typewriter -F600 -\family default - et que le curseur est plac sur 120%, alors la vitesse d'avance travail - sera de 720. - Le champs de texte est cliquable. - Un clic ouvre un dialogue permettant d'entrer un nombre. -\layout Subsection - -Correcteur de vitesse de broche -\layout Standard - -Le fonctionnement de ce curseur est le mme que celui de la vitesse d'avance, - mais il contrle la vitesse de rotation de la broche. - Si le programme demande S500 (broche 500 tr/mn) et que le curseur est - plac sur 80%, alors la vitesse de broche rsultante sera de 400 tr/mn. - Le minimum et le maximum pour ce curseur sont dfinis dans le fichier ini. - Par dfaut le curseur est plac sur 100%. - Le champs de texte est cliquable. - Un clic ouvre un dialogue permettant d'entrer un nombre. -\layout Section - -Raccourcis clavier -\layout Standard - -La plupart des actions de TkEMC peuvent tre accomplies au clavier. - Beaucoup des raccourcis clavier ne sont pas accessibles en mode MDI. -\layout Standard - -Les raccourcis clavier les plus frquamment utiliss sont montrs dans la - table -\begin_inset LatexCommand \ref{cap:Raccourcis-clavier-frequents} - -\end_inset - -. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -Les raccourcis clavier les plus utiliss -\begin_inset LatexCommand \label{cap:Raccourcis-clavier-frequents} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -Touche -\end_inset - - -\begin_inset Text - -\layout Standard - -Action -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Bascule de l'Arrt d'Urgence -\end_inset - - - - -\begin_inset Text - -\layout Standard - -F2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Marche/Arrt machine -\end_inset - - - - -\begin_inset Text - -\layout Standard - -`, 1 .. - 9, 0 -\end_inset - - -\begin_inset Text - -\layout Standard - -Correcteur vitesse d'avance 0% 100% -\end_inset - - - - -\begin_inset Text - -\layout Standard - -X, ` -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le premier axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Y, 1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le deuxime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Z, 2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le troisime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -A, 3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Active le quatrime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Origine -\end_inset - - -\begin_inset Text - -\layout Standard - -POM de l'axe actif -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Gauche, Droite -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du premier axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Haut, Bas -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du deuxime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Pg.prec, Pg.suiv -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du troisime axe -\end_inset - - - - -\begin_inset Text - -\layout Standard - -[, ] -\end_inset - - -\begin_inset Text - -\layout Standard - -Jog du quatrime ax -\end_inset - - - - -\begin_inset Text - -\layout Standard - -Echap -\end_inset - - -\begin_inset Text - -\layout Standard - -Arrte l'excution -\end_inset - - - - -\end_inset - - -\end_inset - - -\the_end diff --git a/docs/src/gui/touchy.lyx b/docs/src/gui/touchy.lyx deleted file mode 100644 index 7a2c8754f..000000000 --- a/docs/src/gui/touchy.lyx +++ /dev/null @@ -1,194 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Touchy -\end_layout - -\begin_layout Standard -Touchy is a GUI for touch screens. - It needs no mouse or keyboard. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Touchy -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/touchy.png - scale 70 - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Hard Controls -\end_layout - -\begin_layout Subsection* -Required Controls -\end_layout - -\begin_layout Itemize -Abort button (momentary contact) connected to the hal pin touchy.abort -\end_layout - -\begin_layout Itemize -Cycle start button (momentary contact) connected to touchy.cycle-start -\end_layout - -\begin_layout Itemize -Wheel/mpg, connected to touchy.wheel-counts -\end_layout - -\begin_layout Itemize -Single block (toggle switch) connected to touchy.single-block -\end_layout - -\begin_layout Subsection* -Recommended for any setup -\end_layout - -\begin_layout Itemize -Estop button hardwired in the estop chain -\end_layout - -\begin_layout Subsection* -Optional Controls -\end_layout - -\begin_layout Itemize -Continuous Jog needs three center-off bidirectional momentary toggles (or - worse, six buttons), hooked to touchy.jog.continuous.x.negative, ....x.positive, - ... - y ..., ... - z ... -\end_layout - -\begin_layout Itemize -If a quill up button is wanted (to jog Z to the top of travel at top speed), - a momentary button connected to touchy.quill-up -\end_layout - -\begin_layout Itemize -Optional indicator output: touchy.jog.active can be connected to a panel lamp - to show when the panel jogging controls are live -\end_layout - -\begin_layout Itemize -Touchy has several output pins that are meant to be connected to the motion - controller to control wheel jogging. - They are: -\end_layout - -\begin_layout Itemize -touchy.jog.wheel.increment => axis.N.jog-scale (for all relevant N) touchy.jog.wheel.x - => axis.0.jog-enable ... - y ... - => ... - 1 ..., ... - z ... -\end_layout - -\begin_layout Itemize -Also be sure to connect the wheel/mpg to axis.N.jog-counts as well as to touchy.whe -el-counts. - If you use ilowpass to smooth wheel jogging, be sure to smooth only axis.N.jog-co -unts and not touchy.wheel-counts. -\end_layout - -\begin_layout Section -Configuration -\end_layout - -\begin_layout Standard -Touchy requires you to create a file named "touchy.hal" in the same folder - as your ini file to make these connections. - Touchy executes the hal commands in this file after it has made its pins - available for connection. - -\end_layout - -\begin_layout Standard -To use Touchy in the [DISPLAY] section of your ini file change the DISPLAY - = touchy -\end_layout - -\begin_layout Standard -Font Configuration is done on the Preferences Tab. - Changes will be saved to the current computer in a hidden file. -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/basic_hal.lyx b/docs/src/hal/basic_hal.lyx deleted file mode 100644 index 429fe6fd6..000000000 --- a/docs/src/hal/basic_hal.lyx +++ /dev/null @@ -1,1506 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Getting Started -\end_layout - -\begin_layout Section -Hal Commands -\begin_inset LatexCommand label -name "sec:Hal-Commands" - -\end_inset - - -\end_layout - -\begin_layout Standard -More detailed information can be found in the man page for halcmd "man halcmd" - in a terminal window. - To see the HAL configuration and check the status of pins and parameters - use the HAL Configuration window on the Machine menu in AXIS. - To watch a pin status open the Watch tab and click on each pin you wish - to watch and it will be added to the watch window. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -HAL Configuration Window -\begin_inset LatexCommand label -name "cap:HAL-Configuration-Window" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/HAL_Configuration.png - scale 60 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -loadrt -\end_layout - -\begin_layout Standard -The command "loadrt" loads a real time HAL component. - Real time component functions need to be added to a thread to be updated - at the rate of the thread. - You cannot load a user space component into the real time space. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout LyX-Code -loadrt -\end_layout - -\begin_layout LyX-Code -loadrt mux4 count=1 -\end_layout - -\begin_layout Subsection -addf -\end_layout - -\begin_layout Standard -The command "addf" adds a real time component function to a thread. - You have to add a function from a HAL real time component to a thread to - get the function to update at the rate of the thread. - -\end_layout - -\begin_layout Standard -If you used the Stepper Config Wizard to generate your config you will have - two threads. -\end_layout - -\begin_layout Itemize -base-thread (the high-speed thread): this thread handles items that need - a fast response, like making step pulses, and reading and writing the parallel - port. -\end_layout - -\begin_layout Itemize -servo-thread (the slow-speed thread): this thread handles items that can - tolerate a slower response, like the motion controller, ClassicLadder, - and the motion command handler. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout LyX-Code -addf -\end_layout - -\begin_layout LyX-Code -addf mux4 servo-thread -\end_layout - -\begin_layout Subsection -loadusr -\end_layout - -\begin_layout Standard -The command "loadusr" loads a user space HAL component. - User space programs are their own separate processes, which optionally - talk to other HAL components via pins and parameters. - You cannot load real time components into user space. -\end_layout - -\begin_layout Standard -Flags may be one or more of the following: -\end_layout - -\begin_layout Description --W to wait for the component to become ready. - The component is assumed to have the same name as the first argument of - the command. -\end_layout - -\begin_layout Description --Wn\InsetSpace ~ - to wait for the component, which will have the given . -\end_layout - -\begin_layout Description --w to wait for the program to exit -\end_layout - -\begin_layout Description --i to ignore the program return value (with -w) -\end_layout - -\begin_layout Standard -The syntax and examples: -\end_layout - -\begin_layout LyX-Code -loadusr -\end_layout - -\begin_layout LyX-Code -loadusr halui -\end_layout - -\begin_layout LyX-Code -loadusr -Wn spindle gs2_vfd -n spindle -\end_layout - -\begin_layout LyX-Code -in English it means "loadusr wait for name spindle component gs2_vfd name - spindle." -\newline -the -n spindle is part of the gs2_vfd component not the loadusr - command. -\end_layout - -\begin_layout Subsection -net -\end_layout - -\begin_layout Standard -The command "net" creates a "connection" between a signal and and one or - more pins. - If the signal does not exist net creates the new signal. - This replaces the need to use the command newsig. - The direction indicators "<= and =>" are only to make it easier for humans - to follow the logic and are not used by the net command. - -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout LyX-Code -net -\end_layout - -\begin_layout LyX-Code -net both-home-y <= parport.0.pin-11-in -\end_layout - -\begin_layout Standard -Each signal can only have one source (a HAL "Dir out -\begin_inset Quotes erd -\end_inset - - pin) and as many readers (a HAL "Dir in" pin) as you like. - In the Dir column of the HAL Configuration window you can see which pins - are "in" and which are "out". - The following figure shows the "direction" of the signal from the source, - through the signal, and then out to the reader(s). - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Signal Direction -\begin_inset LatexCommand label -name "cap:Signal-Direction" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/signal-direction.png - scale 80 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This example shows the signal xStep with the source being stepgen.0.out and - with two readers, parport.0.pin-02-out and parport.0.pin-08-out. - Basically the value of stepgen.0.out is send to the signal xStep and that - value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. -\end_layout - -\begin_layout LyX-Code - signal source destination destination -\end_layout - -\begin_layout LyX-Code -net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out -\end_layout - -\begin_layout Standard -Since the signal xStep contains the value of stepgen.0.out (the source) you - can use the same signal again to send the value to another reader. - To do this just use the signal with the readers on another line. -\end_layout - -\begin_layout LyX-Code -net xStep <= stepgen.0.out => parport.0.pin-02-out -\newline -net xStep => parport.0.pin-08-out -\end_layout - -\begin_layout Standard -The so called I/O pins like index-enable do not follow this rule. -\end_layout - -\begin_layout Subsection -setp -\begin_inset LatexCommand index -name "setp" - -\end_inset - - -\begin_inset LatexCommand label -name "sub:setp" - -\end_inset - - -\end_layout - -\begin_layout Standard -The command "setp" sets the value of a pin or parameter. - The valid values will depend on the type of the pin or parameter. - It is an error if the data types do not match. -\end_layout - -\begin_layout Standard -Some components have parameters that need to be set before use. - Parameters can be set before use or while running as needed. - You cannot use setp on a pin that is connected to a signal. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout LyX-Code -setp -\end_layout - -\begin_layout LyX-Code -setp parport.0.pin-08-out TRUE -\end_layout - -\begin_layout Subsection -unlinkp -\end_layout - -\begin_layout Standard -The command "unlinkp" unlinks a pin from the connected signal. - If no signal was connected to the pin prior running the command, nothing - happens. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout Quote -unlinkp -\end_layout - -\begin_layout Quote -unlinkp parport.0.pin-02-out -\end_layout - -\begin_layout Subsection -Obsolete Commands -\end_layout - -\begin_layout Subsubsection -linksp -\end_layout - -\begin_layout Standard -The command "linksp" creates a "connection" between a signal and one pin. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout Quote -linksp -\end_layout - -\begin_layout Quote -linksp X-step parport.0.pin-02-out -\end_layout - -\begin_layout Standard -The "linksp" command has been superseded by the "net" command. -\end_layout - -\begin_layout Subsubsection -linkps -\end_layout - -\begin_layout Standard -The command "linkps" creates a "connection" between one pin and one signal. - It is the same as linksp but the arguments are reversed. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout Quote -linkps -\end_layout - -\begin_layout Quote -linkps parport.0.pin-02-out X-Step -\end_layout - -\begin_layout Standard -The "linkps" command has been superseded by the "net" command. -\end_layout - -\begin_layout Subsubsection -newsig -\end_layout - -\begin_layout Standard -the command "newsig" creates a new HAL signal by the name and - the data type of . - Type must be "bit", "s32", "u32" or "float". - Error if all ready exists. -\end_layout - -\begin_layout Standard -The syntax and an example: -\end_layout - -\begin_layout Quote -newsig -\end_layout - -\begin_layout Quote -newsig Xstep bit -\end_layout - -\begin_layout Standard -More information can be found in the HAL manual or the man pages for halrun. -\end_layout - -\begin_layout Section -Hal Data -\begin_inset LatexCommand label -name "sec:Hal-Data" - -\end_inset - - -\end_layout - -\begin_layout Subsection -Bit -\begin_inset LatexCommand index -name "Bit" - -\end_inset - - -\end_layout - -\begin_layout Standard -A bit value is an on or off. -\end_layout - -\begin_layout Itemize -bit values = true or 1 and false or 0 (True, TRUE, true are all valid) -\end_layout - -\begin_layout Subsection -Float -\begin_inset LatexCommand index -name "Float" - -\end_inset - - -\end_layout - -\begin_layout Standard -A "float" is a floating point number. - In other words the decimal point can move as needed. -\end_layout - -\begin_layout Itemize -float values = a 32 bit floating point value, with approximately 24 bits - of resolution and over 200 bits of dynamic range. -\end_layout - -\begin_layout Standard -For more information on floating point numbers see: -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand url -target "http://en.wikipedia.org/wiki/Floating_point" - -\end_inset - - -\end_layout - -\begin_layout Subsection -s32 -\begin_inset LatexCommand index -name "s32" - -\end_inset - - -\end_layout - -\begin_layout Standard -An "s32" number is a whole number that can have a negative or positive value. -\end_layout - -\begin_layout Itemize -s32 values = integer numbers -2147483648 to 2147483647 -\end_layout - -\begin_layout Subsection -u32 -\begin_inset LatexCommand index -name "u32" - -\end_inset - - -\end_layout - -\begin_layout Standard -A "u32" number is a whole number that is positive only. -\end_layout - -\begin_layout Itemize -u32 values = integer numbers 0 to 4294967295 -\end_layout - -\begin_layout Section -Hal Files -\end_layout - -\begin_layout Standard -If you used the Stepper Config Wizard to generate your config you will have - up to three HAL files in your config directory. -\end_layout - -\begin_layout Itemize -my-mill.hal (if your config is named "my-mill") This file is loaded first - and should not be changed if you used the Stepper Config Wizard. -\end_layout - -\begin_layout Itemize -custom.hal This file is loaded next and before the GUI loads. - This is where you put your custom HAL commands that you want loaded before - the GUI is loaded. - -\end_layout - -\begin_layout Itemize -custom_postgui.hal This file is loaded after the GUI loads. - This is where you put your custom HAL commands that you want loaded after - the GUI is loaded. - Any HAL commands that use pyVCP widgets need to be placed here. - -\end_layout - -\begin_layout Section -HAL Components -\end_layout - -\begin_layout Standard -Two parameters are automatically added to each HAL component when it is - created. - These parameters allow you to scope the execution time of a component. -\end_layout - -\begin_layout Quote -.time -\begin_inset LatexCommand index -name "time" - -\end_inset - - -\newline -.tmax -\begin_inset LatexCommand index -name "tmax" - -\end_inset - - -\end_layout - -\begin_layout Standard -Time is the number of CPU cycles it took to execute the function. -\end_layout - -\begin_layout Standard -Tmax is the maximum number of CPU cycles it took to execute the function. - Tmax is a read/write parameter so the user can set it to 0 to get rid of - the first time initialization on the function's execution time. -\end_layout - -\begin_layout Section -Logic Components -\end_layout - -\begin_layout Standard -Hal contains several real time logic components. - Logic components follow a "Truth Table" that states what the output is - for any given input. - Typically these are bit manipulators and follow electrical logic gate truth - tables. -\end_layout - -\begin_layout Subsection -and2 -\end_layout - -\begin_layout Standard -The "and2" component is a two input "and" gate. - The truth table below shows the output based on each combination of input. -\end_layout - -\begin_layout Standard -Syntax -\end_layout - -\begin_layout Quote -and2 [count=N] or [names=name1[,name2...]] -\end_layout - -\begin_layout Standard -Functions -\end_layout - -\begin_layout Quote -and2.n -\end_layout - -\begin_layout Standard -Pins -\end_layout - -\begin_layout Quote -and2.N.in0 (bit, in) -\newline -and2.N.in1 (bit, in) -\newline -and2.N.out (bit, out) -\end_layout - -\begin_layout Standard -\align center -Truth Table -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -in0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -not -\end_layout - -\begin_layout Standard -The "not" component is a bit inverter. - -\end_layout - -\begin_layout Standard -Syntax -\end_layout - -\begin_layout Quote -not [count=n] or [names=name1[,name2...]] -\end_layout - -\begin_layout Standard -Functions -\end_layout - -\begin_layout Quote -not.all -\newline -not.n -\end_layout - -\begin_layout Standard -Pins -\end_layout - -\begin_layout Quote -not.n.in (bit, in) -\newline -not.n.out (bit, out) -\end_layout - -\begin_layout Standard -\align center -Truth Table -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Standard -in -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -or2 -\end_layout - -\begin_layout Standard -The "or2" component is a two input OR gate. -\end_layout - -\begin_layout Standard -Syntax -\end_layout - -\begin_layout Quote -or2[count=n] or [names=name1[,name2...]] -\end_layout - -\begin_layout Standard -Functions -\end_layout - -\begin_layout Quote -or2.n -\end_layout - -\begin_layout Standard -Pins -\end_layout - -\begin_layout Quote -or2.n.in0 (bit, in) -\newline -or2.n.in1 (bit, in) -\newline -or2.n.out (bit, out) -\end_layout - -\begin_layout Standard -\align center -Truth Table -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -in0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -xor2 -\end_layout - -\begin_layout Standard -The "xor2" component is a two input XOR (exclusive OR)gate. -\end_layout - -\begin_layout Standard -Syntax -\end_layout - -\begin_layout Quote -xor2[count=n] or [names=name1[,name2...]] -\end_layout - -\begin_layout Standard -Functions -\end_layout - -\begin_layout Quote -xor2.n -\end_layout - -\begin_layout Standard -Pins -\end_layout - -\begin_layout Quote -xor2.n.in0 (bit, in) -\newline -xor2.n.in1 (bit, in) -\newline -xor2.n.out (bit, out) -\end_layout - -\begin_layout Standard -\align center -Truth Table -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -in0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -in1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -out -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -True -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -False -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsection -Logic Examples -\end_layout - -\begin_layout Standard -An "and2" example connecting two inputs to one output. -\end_layout - -\begin_layout Quote -loadrt and2 count=1 -\newline -addf and2.0 servo-thread -\newline -net my-sigin1 and2.0.in0 <= parport.0.pin- -11-in -\newline -net my-sigin2 and2.0.in1 <= parport.0.pin-12-in -\newline -net both-on parport.0.pin-14-out - <= and2.0.out -\end_layout - -\begin_layout Standard -In the above example one copy of and2 is loaded into real time space and - added to the servo thread. - Next pin 11 of the parallel port is connected to the in0 bit of the and - gate. - Next pin 12 is connected to the in1 bit of the and gate. - Last we connect the and2 out bit to the parallel port pin 14. - So following the truth table for and2 if pin 11 and pin 12 are on then - the output pin 14 will be on. -\end_layout - -\begin_layout Section -Conversion Components -\end_layout - -\begin_layout Subsection -weighted_sum -\end_layout - -\begin_layout Standard -The weighted_sum converts a group of bits to an integer. - The conversion is the sum of the "weights" of the bits that are on plus - any offset. - This is similar to a binary coded decimal but with more options. - The "hold" bit stops processing the input changes so the "sum" will not - change. -\end_layout - -\begin_layout Standard -The following syntax is used to load the weighted_sum component. -\end_layout - -\begin_layout LyX-Code -loadrt weighted_sum wsum_sizes=size[,size,...] -\end_layout - -\begin_layout Standard -Creates weighted sum groups each with the given number of input bits (size). -\end_layout - -\begin_layout Standard -To update the weighted_sum you need to attach process_wsums to a thread. -\end_layout - -\begin_layout LyX-Code -addf process_wsums servo-thread -\end_layout - -\begin_layout Standard -This updates the weighted_sum component. -\end_layout - -\begin_layout Standard -In the following example clipped from the HAL Configuration window in Axis - the bits "0" and "2" are true and there is no offset. - The "weight" of 0 is 1 and the "weight" of 2 is 4 so the sum is 5. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -weighted_sum -\begin_inset LatexCommand label -name "fig:weighted_sum" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/wsum01.png - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/basic_hal_fr.lyx b/docs/src/hal/basic_hal_fr.lyx deleted file mode 100644 index 107226564..000000000 --- a/docs/src/hal/basic_hal_fr.lyx +++ /dev/null @@ -1,1122 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 11 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Les bases de HAL -\layout Section - -Commandes de Hal -\layout Standard - -Des informations plus dtailles peuvent tre trouves dans la man page - en tapant "man halcmd" dans une console. - Pour voir la configuration de HAL ainsi que le status de ses pins et paramtres - utiliser la fentre HAL Configuration dans le menu -\begin_inset Quotes fld -\end_inset - -Machine -\begin_inset Quotes frd -\end_inset - - d'AXIS. - Pour visualiser le status des pins, ouvrir l'onglet -\begin_inset Quotes fld -\end_inset - -Watch -\begin_inset Quotes frd -\end_inset - - puis cliquer dans l'arborescence sur les pins qui doivent tre visualises - dans la fentre watch. -\layout Standard - - -\begin_inset Float figure -placement H -wide false -collapsed false - -\layout Caption - -Fentre de configuration de HAL -\layout Standard -\align center - -\begin_inset Graphics - filename images/HAL_Configuration.png - scale 60 - -\end_inset - - -\end_inset - - -\layout Subsection - -loadrt -\layout Standard - -La commande "loadrt" charge un composant temps rel de HAL. - Les composants temps rel doivent tre ajouts au thread temps rel pour - tre fonctionnels. - Il n'est pas possible de charger un composant de l'espace utilisateur dans - l'espace temps rel. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -loadrt -\layout Quote - - -\series bold -loadrt mux4 count=1 -\layout Subsection - -addf -\layout Standard - -La commande "addf" ajoute une fonction un thread temps rel. - Si l'assistant StepConf a t utilis pour crer la configuration, deux - threads ont t crs. -\layout Itemize - -base-thread (le thread haute vitesse) ce thread prends en main les items - ncessitant une rponse trs rapide comme la gnration d'impulsions, la - lecture et l'criture sur le port parallle. -\layout Itemize - -servo-thread (le thread basse vitesse) ce thread prends en main les items - n'tant pas influencs par la vitesse comme le contrleur de mouvement, - l'API ClassicLadder et les commandes manuelles. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -addf -\layout Quote - - -\series bold -addf mux4 servo-thread -\layout Subsection - -loadusr -\layout Standard - -La commande "loadusr" charge un composant de HAL de l'espace utilisateur. - Les programmes de l'espace utilisateur ont leur propre process spar qui - optionellement communique avec les autres composants de HAL via leurs pins - et paramtres. - Il n'est pas possible de charger un composant temps rel dans l'espace - utilisateur. -\layout Standard - -Les drapeaux peuvent tre un ou plusieurs parmis les suivants: -\layout Description - --W pour attendre que le composant soit prt. - Le composant est suppos avoir le mme nom que le premier argument de la - commande. -\layout Description - --Wn\SpecialChar ~ - pour attendre un composant, qui porte le nom donn sous la forme - . -\layout Description - --w pour attendre la fin du programme -\layout Description - --i pour ignorer la valeur retourne par le programme (avec -w) -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -loadusr -\layout Quote - - -\series bold -loadusr halui -\layout Quote - - -\series bold -loadusr -Wn spindle gs2_vfd -n spindle -\layout Quote - -En anglais a donne "loadusr wait for name spindle component gs2_vfd name - spindle." -\newline -Le -n spindle est une partie du composant gs2_vfd et non de la commande - loadusr. -\layout Subsection - -net -\layout Standard - -La commande "net" cre une "connection" entre un signal et une ou plusieurs - pins. - Les indicateurs de direction "<= et =>" sont seulement des aides la lecture, - ils n'ont pas d'autre utilit. - -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -net -\layout Quote - - -\series bold -net both-home-y <= parport.0.pin-11-in -\layout Standard - -Chaque signal ne peut avoir qu'une seule source (une seule pin de HAL "out -\begin_inset Quotes erd -\end_inset - -) et autant de -\begin_inset Quotes fld -\end_inset - -lecteurs -\begin_inset Quotes frd -\end_inset - - (des pins de HAL "in") que souhait. - Dans la colonne Dir de la fentre de configuration de HAL il est possible - de voir quelles pins sont "in" et quelles pins sont "out". -\layout Standard - -Pour faire cel en une ligne: -\layout Quote - - -\series bold -net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out -\layout Standard - -Ou pour le faire en plusieurs lignes, utiliser simplement le signal avec - les lecteurs des lignes suivantes: -\layout Quote - - -\series bold -net xStep stepgen.0.out => parport.0.pin-02-out -\newline -net xStep => parport.0.pin-02-out -\layout Standard - -Les pins appeles I/O pins comme -\begin_inset Quotes fld -\end_inset - -index-enable -\begin_inset Quotes frd -\end_inset - -, ne suivent pas cette rgle. -\layout Subsection - -setp -\layout Standard - -La commande "setp" ajuste la valeur d'une pin ou d'un paramtre. - Les valeurs valides dpendront du type de la pin ou du paramtre. - -\layout Itemize - -bit = true ou 1 et false ou 0 (True, TRUE, true sont toutes valides) -\layout Itemize - -float = un flottant sur 32 bits, avec approximativement 24 bits de rsolution - et au plus 200 bits d'tendue dynamique. -\layout Itemize - -s32 = un nombre entier compris entre -2147483648 et 2147483647 -\layout Itemize - -u32 = un nombre entier compris entre 0 et 4294967295 -\layout Standard - -Pour des informations sur les flottants voir ici (en anglais): -\layout Standard - - -\begin_inset LatexCommand \url{http://en.wikipedia.org/wiki/Floating_point} - -\end_inset - - -\layout Standard - -Les paramtres peuvent tre positionns avant utilisation ou pendant l'utilisati -on, toutefois certains composants ont des paramtres qui doivent tre positionn -s avant utilisation. - Il n'est pas possible d'utiliser -\begin_inset Quotes fld -\end_inset - -setp -\begin_inset Quotes frd -\end_inset - - sur une pin connecte un signal. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -setp -\layout Quote - - -\series bold -setp paraport.0.pin-08-out TRUE -\layout Subsection - -Quatre commandes obsoltes -\layout Subsubsection - -linksp -\layout Standard - -The command "linksp" creates a "connection" between a signal and one pin. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -linksp -\layout Quote - - -\series bold -linksp X-step parport.0.pin-02-out -\layout Standard - -La commande "linksp" a t incluse dans la commande "net". -\layout Subsubsection - -linkps -\layout Standard - -The command "linkps" creates a "connection" between one pin and one signal. - It is the same as linksp but the arguments are reversed. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -linkps -\layout Quote - - -\series bold -linkps parport.0.pin-02-out X-Step -\layout Standard - -La commande "linkps" a t incluse dans la commande "net". -\layout Subsubsection - -unlinkp -\layout Standard - -The command "unlinkp" unlinks a pin from the connected signal. - If no signal was connected to the pin prior running the command, nothing - happens. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -unlinkp -\layout Quote - - -\series bold -unlinkp parport.0.pin-02-out -\layout Subsubsection - -newsig -\layout Standard - -the command "newsig" creates a new HAL signal by the name and - the data type of . - Type must be "bit", "s32", "u32" or "float". - Error if all ready exists. -\layout Standard - -Syntaxe et exemple: -\layout Quote - - -\series bold -newsig -\layout Quote - - -\series bold -newsig Xstep bit -\layout Standard - -D'autres informations peuvent tre trouves dans le manuel de HAL ou la - man page de -\begin_inset Quotes fld -\end_inset - -halrun -\begin_inset Quotes frd -\end_inset - -. -\layout Section - -Fichiers Hal -\layout Standard - -Si l'assistant StepConf a t utilis pour gnrer la configuration trois - fichiers HAL ont d tre crs dans le rpertoire de la configuration. -\layout Itemize - -ma-fraiseuse.hal (si ne nom de la config est nome "ma-fraiseuse") Ce fichier - est charg en premier, il ne doit pas tre modifi sous peine de ne plus - pouvoir l'utiliser avec l'assistant StepConf. -\layout Itemize - -custom.hal Ce fichier est le deuxime tre charg et il l'est avant l'interface - utilisateur graphique (GUI). - C'est dans ce fichier que ce trouvent les commandes personnalises de l'utilisa -teur devant tre charges avant la GUI. - -\layout Itemize - -custom_postgui.hal Ce fichier est charg aprs la GUI. - C'est dans ce fichier que se trouvent les commandes personnalises de l'utilisa -teur devant tre charges aprs la GUI. - Toutes les commandes relatives aux widgets de pyVCP doivent tre places - ici. - -\layout Section - -Composants de logiques combinatoire -\layout Standard - -Hal contient plusieurs composants logiques temps rel. - Les composants logiques suivent une tables de vrit montrant les tats - logiques des sorties en fonction de l'tat des entres. - Typiquement, la manipulation des bits d'entre dtermine l'tat lectrique - des sorties selon la table de vrit des portes. -\layout Subsection - -and2 -\layout Standard - -Le composant "and2" est une porte "and" deux entres. - Sa table de vrit montre la sortie pour chaque combinaison des entres. -\layout Standard - -Syntaxe -\layout Quote - - -\series bold -and2 [count=N|names=name1[,name2...]] -\layout Standard - -Fonctions -\layout Quote - -and2.n -\layout Standard - -Pins -\layout Quote - -and2.N.in0 (bit, in) -\newline -and2.N.in1 (bit, in) -\newline -and2.N.out (bit, out) -\layout Standard -\align center -Table de vrit -\layout Standard -\align center - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -in0 -\end_inset - - -\begin_inset Text - -\layout Standard - -in1 -\end_inset - - -\begin_inset Text - -\layout Standard - -out -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\end_inset - - -\layout Subsection - -not -\layout Standard - -Le composant "not" est un simple inverseur d'tat. - -\layout Standard - -Syntaxe -\layout Quote - - -\series bold -not [count=n|names=name1[,name2...]] -\layout Standard - -Fonctions -\layout Quote - -not.all -\newline -not.n -\layout Standard - -Pins -\layout Quote - -not.n.in (bit, in) -\newline -not.n.out (bit, out) -\layout Standard -\align center -Table de vrit -\layout Standard -\align center - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -in -\end_inset - - -\begin_inset Text - -\layout Standard - -out -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\end_inset - - -\layout Subsection - -or2 -\layout Standard - -Le composant "or2" est une porte OR deux entres. -\layout Standard - -Syntaxe -\layout Quote - - -\series bold -or2[count=,|names=name1[,name2...]] -\layout Standard - -Fonctions -\layout Quote - -or2.n -\layout Standard - -Pins -\layout Quote - -or2.n.in0 (bit, in) -\newline -or2.n.in1 (bit, in) -\newline -or2.n.out (bit, out) -\layout Standard -\align center -Table de vrit -\layout Standard -\align center - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -in0 -\end_inset - - -\begin_inset Text - -\layout Standard - -in1 -\end_inset - - -\begin_inset Text - -\layout Standard - -out -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\end_inset - - -\layout Subsection - -xor2 -\layout Standard - -Le composant "xor2" est une porte XOR deux entres (OU exclusif). -\layout Standard - -Syntaxe -\layout Quote - - -\series bold -xor2[count=,|names=name1[,name2...]] -\layout Standard - -Fonctions -\layout Quote - -xor2.n -\layout Standard - -Pins -\layout Quote - -xor2.n.in0 (bit, in) -\newline -xor2.n.in1 (bit, in) -\newline -xor2.n.out (bit, out) -\layout Standard -\align center -Table de vrit -\layout Standard -\align center - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -in0 -\end_inset - - -\begin_inset Text - -\layout Standard - -in1 -\end_inset - - -\begin_inset Text - -\layout Standard - -out -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - -\begin_inset Text - -\layout Standard - -True -\end_inset - - - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - -\begin_inset Text - -\layout Standard - -False -\end_inset - - - - -\end_inset - - -\layout Subsection - -Exemples de logique combinatoire -\layout Standard - -Un exemple de connection avec un "and2", deux entres vers une sortie. -\layout Quote - - -\series bold -loadrt and2 count=1 -\newline -addf and2.0 servo-thread -\newline -net my-sigin1 and2.0.in0 <= parport.0.pin-11-in -\newline -net my-sigin2 and2.0.in.1 <= parport.0.pin-12-in -\newline -net both-on parport.0.pin-14-out <= and2.0.out -\layout Standard - -Dans cet exemple un and2 est charg dans l'espace temps rel, puis ajout - servo thread. - Ensuite la broche d'entre 11 du port parallle est connecte l'entre - in0 de la porte. - Puis la broche d'entre 12 du port est connecte l'entre in1 de la porte. - Enfin la sortie and2.0.out de la porte est connecte la broche de sortie - 14 du port parallle. - Ainsi en suivant la table de vrit du and2, si les broches 11 et 12 du - port sont 1, alors sa sortie 14 est 1 aussi. -\the_end diff --git a/docs/src/hal/comp.lyx b/docs/src/hal/comp.lyx deleted file mode 100644 index c1d825406..000000000 --- a/docs/src/hal/comp.lyx +++ /dev/null @@ -1,2324 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter - -\emph on -comp -\emph default -: a tool for creating HAL modules -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -Writing a HAL component can be a tedious process, most of it in setup calls - to -\family typewriter -rtapi_ -\family default - and -\family typewriter -hal_ -\family default - functions and associated error checking. - -\emph on -comp -\emph default - will write all this code for you, automatically. -\end_layout - -\begin_layout Standard -Compiling a HAL component is also much easier when using -\emph on -comp -\emph default -, whether the component is part of the emc2 source tree, or outside it. -\end_layout - -\begin_layout Standard -For instance, the "ddt" portion of -\family typewriter -blocks -\family default - is around 80 lines of code. - The equivalent component is very short when written using the -\emph on -comp -\emph default - preprocessor: -\end_layout - -\begin_layout LyX-Code -component ddt "Compute the derivative of the input function"; -\newline -pin in float - in; -\newline -pin out float out; -\newline -variable float old; -\newline -function _; -\newline -license "GPL"; -\newline -;; -\newline -float - tmp = in; -\newline -out = (tmp - old) / fperiod; -\newline -old = tmp; -\end_layout - -\begin_layout Standard -and it can be compiled and installed very easily: by simply placing -\family typewriter -ddt.comp -\family default - in -\family typewriter -src/hal/components -\family default - and running -\family typewriter - "make -\family default -", or by placing it anywhere on the system and running -\family typewriter -comp --install ddt.comp -\end_layout - -\begin_layout Section -Definitions -\end_layout - -\begin_layout Description -component A component is a single real-time module, which is loaded with - -\family typewriter -halcmd loadrt -\family default -. - One -\family typewriter -.comp -\family default - file specifies one component. -\end_layout - -\begin_layout Description -instance A component can have zero or more instances. - Each instance of a component is created equal (they all have the same pins, - parameters, functions, and data) but behave independently when their pins, - parameters, and data have different values. -\end_layout - -\begin_layout Description -singleton It is possible for a component to be a "singleton", in which case - exactly one instance is created. - It seldom makes sense to write a -\family typewriter -singleton -\family default - component, unless there can literally only be a single object of that kind - in the system (for instance, a component whose purpose is to provide a - pin with the current UNIX time, or a hardware driver for the internal PC - speaker) -\end_layout - -\begin_layout Section -Instance creation -\end_layout - -\begin_layout Standard -For a singleton, the one instance is created when the component is loaded. -\end_layout - -\begin_layout Standard -For a non-singleton, the -\family typewriter -"count -\family default -" module parameter determines how many numbered instances are created. -\end_layout - -\begin_layout Section -Parameters -\end_layout - -\begin_layout Standard -Comp's are passed the -\family typewriter -"period" -\family default - parameter which is the time in nanoseconds of the last period to execute - the comp. - This can be useful in comps that need the timing information. - -\end_layout - -\begin_layout Section -Syntax -\end_layout - -\begin_layout Standard -A -\family typewriter -.comp -\family default - file consists of a number of declarations, followed by -\family typewriter -;; -\family default - on a line of its own, followed by C code implementing the module's functions. -\end_layout - -\begin_layout Standard -Declarations include: -\end_layout - -\begin_layout Itemize - -\family typewriter -component -\family default - -\family typewriter -\emph on -HALNAME -\family default -\emph default - -\family typewriter -\emph on -(DOC -\emph default -); -\end_layout - -\begin_layout Itemize - -\family typewriter -pin -\family default - -\family typewriter -\emph on -PINDIRECTION -\family default -\emph default - -\family typewriter -\emph on -TYPE -\family default -\emph default - -\family typewriter -\emph on -HALNAME -\family default -\emph default - -\family typewriter -([ -\emph on -SIZE -\emph default -]|[ -\emph on -MAXSIZE -\family default -\emph default - -\family typewriter -: -\family default - -\family typewriter -\emph on -CONDSIZE] -\emph default -) (if -\family default - -\family typewriter -\emph on -CONDITION -\emph default -) (= -\family default - -\family typewriter -\emph on -STARTVALUE -\emph default -) ( -\emph on -DOC -\emph default -); -\end_layout - -\begin_layout Itemize - -\family typewriter -param -\family default - -\family typewriter -\emph on -PARAMDIRECTION -\family default -\emph default - -\family typewriter -\emph on -TYPE -\family default -\emph default - -\family typewriter -\emph on -HALNAME -\family default -\emph default - -\family typewriter -([ -\emph on -SIZE -\emph default -]|[ -\emph on -MAXSIZE -\family default -\emph default - -\family typewriter -: -\family default - -\family typewriter -\emph on -CONDSIZE] -\emph default -) (if -\family default - -\family typewriter -\emph on -CONDITION) -\family default -\emph default - -\family typewriter -(= -\family default - -\family typewriter -\emph on -STARTVALUE -\emph default -) ( -\emph on -DOC -\emph default -) ; -\end_layout - -\begin_layout Itemize - -\family typewriter -function -\family default - -\family typewriter -\emph on -HALNAME -\family default -\emph default - -\family typewriter -(fp | nofp) ( -\emph on -DOC -\emph default -); -\end_layout - -\begin_layout Itemize - -\family typewriter -option -\family default - -\family typewriter -\emph on -OPT -\family default -\emph default - -\family typewriter -( -\emph on -VALUE -\emph default -); -\end_layout - -\begin_layout Itemize - -\family typewriter -variable -\family default - -\family typewriter -\emph on -CTYPE NAME -\family default -\emph default - -\family typewriter -([ -\emph on -SIZE -\emph default -]); -\end_layout - -\begin_layout Itemize - -\family typewriter -description -\family default - -\family typewriter -\emph on -DOC -\emph default -; -\end_layout - -\begin_layout Itemize - -\family typewriter -see_also -\family default - -\family typewriter -\emph on -DOC -\emph default -; -\end_layout - -\begin_layout Itemize - -\family typewriter -license -\family default - -\family typewriter -\emph on -LICENSE -\emph default -; -\end_layout - -\begin_layout Itemize - -\family typewriter -author -\family default - -\family typewriter -\emph on -AUTHOR -\emph default -; -\end_layout - -\begin_layout Standard -Parentheses indicate optional items. - A vertical bar indicates alternatives. - Words in -\emph on -CAPITALS -\emph default - indicate variable text, as follows: -\end_layout - -\begin_layout Description -HALNAME An identifier. -\end_layout - -\begin_deeper -\begin_layout Standard -When used to create a HAL identifier, any underscores are replaced with - dashes, and any trailing dash or period is removed, so that "this_name_" - will be turned into "this-name", and if the name is " -\family typewriter -_ -\family default -", then a trailing period is removed as well, so that " -\family typewriter -function _ -\family default -" gives a HAL function name like -\family typewriter -component. -\family default - instead of -\family typewriter -component.. -\end_layout - -\begin_layout Standard -If present, the prefix -\family typewriter -hal_ -\family default - is removed from the beginning of the component name when creating pins, - parameters and functions. -\end_layout - -\begin_layout Standard -In the HAL identifier for a pin or parameter, # denotes an array item, and - must be used in conjunction with a -\family typewriter -[SIZE] -\family default - declaration. - The hash marks are replaced with a 0-padded number with the same length - as the number of # characters. -\end_layout - -\begin_layout Standard -When used to create a C identifier, the following changes are applied to - the HALNAME: -\end_layout - -\begin_layout Enumerate -Any # characters, and any ".", "_" or "-" characters immediately before them, - are removed. -\end_layout - -\begin_layout Enumerate -Any remaining "." and "-" characters are replaced with "_" -\end_layout - -\begin_layout Enumerate -Repeated "_" characters are changed to a single "_" character. -\end_layout - -\begin_layout Standard -A trailing _ is retained, so that HAL identifiers which would otherwise - collide with reserved names or keywords (e.g., 'min') can be used. -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\begin_layout Standard -HALNAME -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C Identifier -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL Identifier -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -x_y_z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x_y_z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x-y-z -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -x-y.z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x_y_z -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x-y.z -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -x_y_z_ -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x_y_z_ -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x-y-z -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -x.##.y -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x_y(MM) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x.MM.z -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -x.## -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x(MM) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -x.MM -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_deeper -\begin_layout Description -if\InsetSpace ~ -CONDITION An expression involving the variable -\emph on -personality -\emph default - which is nonzero when the pin or parameter should be created -\end_layout - -\begin_layout Description -SIZE A number that gives the size of an array. - The array items are numbered from 0 to -\emph on -SIZE -\emph default --1. -\end_layout - -\begin_layout Description -MAXSIZE\InsetSpace ~ -:\InsetSpace ~ -CONDSIZE A number that gives the maximum size of the array followed - by an expression involving the variable -\emph on -personality -\emph default - and which always evaluates to less than -\emph on -MAXSIZE -\emph default -. - When the array is created its size will be -\emph on -CONDSIZE -\emph default -. -\end_layout - -\begin_layout Description -DOC A string that documents the item. - String can be a C-style "double quoted" string, like -\family typewriter -"Selects the desired edge: TRUE means falling, FALSE means rising" -\family default - or a Python-style "triple quoted" string, which may include embedded newlines - and quote characters, such as: -\end_layout - -\begin_deeper -\begin_layout Quote - -\family typewriter -param rw bit zot=TRUE -\newline -"""The effect of this parameter, also known as "the - orb of zot", -\newline -will require at least two paragraphs to explain. -\newline - -\newline -Hopefully these - paragraphs have allowed you to understand "zot" -\newline -better."""; -\end_layout - -\begin_layout Standard -The documentation string is in "groff -man" format. - For more information on this markup format, see -\family typewriter -groff_man(7) -\family default -. - Remember that comp interprets backslash escapes in strings, so for instance - to set the italic font for the word -\emph on -example -\emph default -, write -\family typewriter -" -\backslash - -\backslash -fIexample -\backslash - -\backslash -fB" -\family default -. -\end_layout - -\end_deeper -\begin_layout Description -TYPE One of the HAL types: -\family typewriter -bit -\family default -, -\family typewriter -signed -\family default -, -\family typewriter -unsigned -\family default -, or -\family typewriter -float -\family default -. - The old names -\family typewriter -s32 -\family default - and -\family typewriter -u32 -\family default - may also be used, but -\family typewriter -signed -\family default - and -\family typewriter -unsigned -\family default - are preferred. -\end_layout - -\begin_layout Description -PINDIRECTION One of the following: -\family typewriter -in -\family default -, -\family typewriter -out -\family default -, or -\family typewriter -io -\family default -. - A component sets a value for an -\family typewriter -out -\family default - pin, it reads a value from an -\family typewriter -in -\family default - pin, and it may read or set the value of an -\family typewriter -io -\family default - pin. -\end_layout - -\begin_layout Description -PARAMDIRECTION One of the following: -\family typewriter -r -\family default - or -\family typewriter -rw -\family default -. - A component sets a value for a -\family typewriter -r -\family default - parameter, and it may read or set the value of a -\family typewriter -rw -\family default - parameter. -\end_layout - -\begin_layout Description -STARTVALUE Specifies the initial value of a pin or parameter. - If it is not specified, then the default is -\family typewriter -0 -\family default - or -\family typewriter -FALSE -\family default -, depending on the type of the item. -\end_layout - -\begin_layout Description -fp Indicates that the function performs floating-point calculations. -\end_layout - -\begin_layout Description -nofp Indicates that it only performs integer calculations. - If neither is specified, -\family typewriter -fp -\family default - is assumed. - Neither comp nor gcc can detect the use of floating-point calculations - in functions that are tagged -\family typewriter -nofp -\family default -. -\end_layout - -\begin_layout Description -OPT,\InsetSpace ~ -VALUE Depending on the option name OPT, the valid VALUEs vary. - The currently defined options are: -\end_layout - -\begin_deeper -\begin_layout Description -option\InsetSpace ~ -singleton\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -Do not create a -\family typewriter -count -\family default - module parameter, and always create a single instance. - With -\family typewriter -singleton -\family default -, items are named -\family typewriter -component-name.item-name -\family default - and without -\family typewriter -singleton -\family default -, items for numbered instances are named -\family typewriter -component-name..item-name -\family default -. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -default_count\InsetSpace ~ - -\emph on -number -\emph default - (default: 1) -\end_layout - -\begin_deeper -\begin_layout Standard -Normally, the module parameter -\family typewriter -count -\family default - defaults to 0. - If specified, the -\family typewriter -count -\family default - will default to this value instead. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -count_function\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -Normally, the number of instances to create is specified in the module parameter - -\family typewriter -count -\family default -; if -\family typewriter -count_function -\family default - is specified, the value returned by the function -\family typewriter -int get_count(void) -\family default - is used instead, and the -\family typewriter -count -\family default - module parameter is not defined. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -rtapi_app\InsetSpace ~ -no (default: yes) -\end_layout - -\begin_deeper -\begin_layout Standard -Normally, the functions -\family typewriter -rtapi_app_main -\family default - and -\family typewriter -rtapi_app_exit -\family default - are automatically defined. - With -\family typewriter -option rtapi_app no -\family default -, they are not, and must be provided in the C code. -\end_layout - -\begin_layout Standard -When implementing your own -\family typewriter -rtapi_app_main -\family default -, call the function -\family typewriter -int export(char *prefix, long extra_arg) -\family default - to register the pins, parameters, and functions for -\family typewriter -prefix -\family default -. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -data\InsetSpace ~ - -\emph on -type -\emph default - (default: none) -\series bold -\noun on -deprecated -\end_layout - -\begin_deeper -\begin_layout Standard -If specified, each instance of the component will have an associated data - block of -\emph on -type -\emph default - (which can be a simple type like -\family typewriter -float -\family default - or the name of a type created with -\family typewriter -typedef -\family default -). -\end_layout - -\begin_layout Standard -In new components, -\emph on -variable -\emph default - should be used instead. -\end_layout - -\end_deeper -\end_deeper -\begin_layout Description -option\InsetSpace ~ -extra_setup\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -If specified, call the function defined by -\family typewriter -EXTRA_SETUP -\family default - for each instance. - If using the automatically defined -\family typewriter -rtapi_app_main -\family default -, -\family typewriter -extra_arg -\family default - is the number of this instance. - -\end_layout - -\begin_layout Description -option\InsetSpace ~ -extra_cleanup\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -If specified, call the function defined by -\family typewriter -EXTRA_CLEANUP -\family default - from the automatically defined -\family typewriter -rtapi_app_exit -\family default -, or if an error is detected in the automatically defined -\family typewriter -rtapi_app_main -\family default -. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -userspace\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -If specified, this file describes a userspace component, rather than a real - one. - A userspace component may not have functions defined by the -\family typewriter -function -\family default - directive. - Instead, after all the instances are constructed, the C function -\family typewriter -user_mainloop() -\family default - is called. - When this function returns, the component exits. - Typically, -\family typewriter -user_mainloop() -\family default - will use -\family typewriter -FOR_ALL_INSTS() -\family default - to perform the update action for each instance, then sleep for a short - time. - Another common action in -\family typewriter -user_mainloop() -\family default - may be to call the event handler loop of a GUI toolkit. -\end_layout - -\end_deeper -\begin_layout Description -option\InsetSpace ~ -userinit\InsetSpace ~ -yes (default: no) -\end_layout - -\begin_deeper -\begin_layout Standard -If specified, the function -\family typewriter -userinit(argc,argv) -\family default - is called before -\family typewriter -rtapi_app_main() -\family default - (and thus before the call to -\family typewriter -hal_init() -\family default -). - This function may process the commandline arguments or take other actions. - Its return type is -\family typewriter -void -\family default -; it may call -\family typewriter -exit() -\family default - if it wishes to terminate rather than create a hal component (for instance, - because the commandline arguments were invalid). -\end_layout - -\end_deeper -\begin_layout Standard -If an option's VALUE is not specified, then it is equivalent to specifying - -\family typewriter -option \SpecialChar \ldots{} - yes -\family default -. - The result of assigning an inappropriate value to an option is undefined. - The result of using any other option is undefined. -\end_layout - -\end_deeper -\begin_layout Description -LICENSE Specify the license of the module for the documentation and for - the MODULE_LICENSE() module declaration. - For example, to specify that the module's license is GPL, -\end_layout - -\begin_deeper -\begin_layout LyX-Code -license "GPL"; -\end_layout - -\begin_layout Standard -For additional information on the meaning of MODULE_LICENSE() and additional - license identifiers, see -\family typewriter - -\family default -. -\end_layout - -\begin_layout Standard -Starting in emc 2.3, this declaration is required. -\end_layout - -\end_deeper -\begin_layout Description -AUTHOR Specify the author of the module for the documentation. -\end_layout - -\begin_layout Section -Per-instance data storage -\end_layout - -\begin_layout Description -variable\InsetSpace ~ - -\emph on -CTYPE\InsetSpace ~ -NAME -\emph default -; -\end_layout - -\begin_layout Description -variable\InsetSpace ~ - -\emph on -CTYPE\InsetSpace ~ -NAME -\emph default -[ -\emph on -SIZE -\emph default -]; -\end_layout - -\begin_layout Description -variable\InsetSpace ~ - -\emph on -CTYPE\InsetSpace ~ -NAME -\emph default -\InsetSpace ~ -=\InsetSpace ~ - -\emph on -DEFAULT -\emph default -; -\end_layout - -\begin_layout Description -variable\InsetSpace ~ - -\emph on -CTYPE\InsetSpace ~ -NAME -\emph default -[ -\emph on -SIZE -\emph default -]\InsetSpace ~ -=\InsetSpace ~ - -\emph on -DEFAULT -\emph default -; -\end_layout - -\begin_deeper -\begin_layout Standard -Declare a per-instance variable -\emph on -NAME -\emph default - of type -\emph on -CTYPE -\emph default -, optionally as an array of -\emph on -SIZE -\emph default - items, and optionally with a default value -\emph on -DEFAULT -\emph default -. - Items with no -\emph on -DEFAULT -\emph default - are initialized to all-bits-zero. - -\emph on -CTYPE -\emph default - is a simple one-word C type, such as -\family typewriter -float -\family default -, -\family typewriter -u32 -\family default -, -\family typewriter -s32 -\family default -, int, etc. -\newline -Access to array variables uses square brackets. -\end_layout - -\end_deeper -\begin_layout Standard -C++-style one-line comments ( -\family typewriter -// \SpecialChar \ldots{} - -\family default -) and C-style multi-line comments ( -\family typewriter -/* \SpecialChar \ldots{} - */ -\family default -) are both supported in the declaration section. -\end_layout - -\begin_layout Section -Other restrictions on comp files -\end_layout - -\begin_layout Standard -Though HAL permits a pin, a parameter, and a function to have the same name, - comp does not. -\end_layout - -\begin_layout Section -Convenience Macros -\end_layout - -\begin_layout Standard -Based on the items in the declaration section, -\emph on -comp -\emph default - creates a C structure called -\family typewriter -struct state -\family default -. - However, instead of referring to the members of this structure (e.g., -\family typewriter -*(inst->name) -\family default -), they will generally be referred to using the macros below. - The details of -\family typewriter -struct state -\family default - and these macros may change from one version of -\emph on -comp -\emph default - to the next. -\end_layout - -\begin_layout Description -FUNCTION(name) Use this macro to begin the definition of a realtime function - which was previously declared with -\family typewriter -"function NAME -\family default -". - The function includes a parameter -\family typewriter -"period -\family default -" which is the integer number of nanoseconds between calls to the function. -\end_layout - -\begin_layout Description -EXTRA_SETUP() Use this macro to begin the definition of the function called - to perform extra setup of this instance. - Return a negative Unix -\family typewriter -errno -\family default - value to indicate failure (e.g., -\family typewriter -return -EBUSY -\family default - on failure to reserve an I/O port), or 0 to indicate success. -\end_layout - -\begin_layout Description -EXTRA_CLEANUP() Use this macro to begin the definition of the function called - to perform extra cleanup of the component. - Note that this function must clean up all instances of the component, not - just one. - The "pin_name", "parameter_name", and "data" macros may not be used here. -\end_layout - -\begin_layout Description - -\emph on -pin_name -\end_layout - -\begin_layout Description - -\emph on -parameter_name -\emph default - For each pin -\family typewriter -pin_name -\family default - or param -\family typewriter -parameter_name -\family default - there is a macro which allows the name to be used on its own to refer to - the pin or parameter. -\end_layout - -\begin_deeper -\begin_layout Standard -When -\family typewriter -pin_name -\family default - or -\family typewriter -parameter_name -\family default - is an array, the macro is of the form -\emph on -pin_name(idx) -\emph default - or -\emph on -param_name(idx) -\emph default - where -\emph on -idx -\emph default - is the index into the pin array. - When the array is a variable-sized array, it is only legal to refer to - items up to its -\emph on -condsize -\emph default -. -\end_layout - -\begin_layout Standard -When the item is a conditional item, it is only legal to refer to it when - its -\emph on -condition -\emph default - evaluated to a nonzero value. -\end_layout - -\end_deeper -\begin_layout Description - -\emph on -variable_name -\emph default - For each variable -\family typewriter -variable_name -\family default - there is a macro which allows the name to be used on its own to refer to - the variable. - When -\family typewriter -variable_name -\family default - is an array, the normal C-style subscript is used: -\emph on -variable_name[idx] -\end_layout - -\begin_layout Description -data If "option data" is specified, this macro allows access to the instance - data. -\end_layout - -\begin_layout Description -fperiod The floating-point number of seconds between calls to this realtime - function. -\end_layout - -\begin_layout Description -FOR_ALL_INSTS()\InsetSpace ~ -{ -\family typewriter -\SpecialChar \ldots{} - -\family default -} For userspace components. - This macro uses the variable -\family typewriter -struct state *inst -\family default - to iterate over all the defined instances. - Inside the body of the loop, the -\series bold -\emph on -pin_name -\series default -\emph default -, -\series bold -\emph on -parameter_name -\series default -\emph default -, and -\series bold -data -\series default - macros work as they do in realtime functions. -\end_layout - -\begin_layout Section -Components with one function -\end_layout - -\begin_layout Standard -If a component has only one function and the string "FUNCTION" does not - appear anywhere after -\family typewriter -;; -\family default -, then the portion after -\family typewriter -;; -\family default - is all taken to be the body of the component's single function. -\end_layout - -\begin_layout Section -Component Personality -\end_layout - -\begin_layout Standard -If a component has any pins or parameters with an "if -\emph on -condition -\emph default -" or "[ -\emph on -maxsize : condsize -\emph default -]", it is called a component with " -\emph on -personality -\emph default -". - The "personality" of each instance is specified when the module is loaded. - "Personality" can be used to create pins only when needed. - For instance, personality is used in the -\family typewriter -logic -\family default - component, to allow for a variable number of input pins to each logic gate - and to allow for a selection of any of the basic boolean logic functions - -\series bold -and -\series default -, -\series bold -or -\series default -, and -\series bold -xor -\series default -. -\end_layout - -\begin_layout Section -Compiling -\family typewriter -.comp -\family default - files in the source tree -\end_layout - -\begin_layout Standard -Place the -\family typewriter -.comp -\family default - file in the source directory -\family typewriter -emc2/src/hal/components -\family default - and re-run -\family typewriter -make -\family default -. - -\family typewriter -Comp -\family default - files are automatically detected by the build system. -\end_layout - -\begin_layout Standard -If a -\family typewriter -.comp -\family default - file is a driver for hardware, it may be placed in -\family typewriter -emc2/src/hal/components -\family default - and will be built except if emc2 is configured as a userspace simulator. -\end_layout - -\begin_layout Section -Compiling realtime components outside the source tree -\begin_inset LatexCommand label -name "sec:Compiling-realtime-components" - -\end_inset - - -\end_layout - -\begin_layout Standard - -\family typewriter -comp -\family default - can process, compile, and install a realtime component in a single step, - placing -\family typewriter -rtexample.ko -\family default - in the emc2 realtime module directory: -\end_layout - -\begin_layout LyX-Code -comp --install rtexample.comp -\end_layout - -\begin_layout Standard -Or, it can process and compile in one step, leaving -\family typewriter -example.ko -\family default - (or -\family typewriter -example.so -\family default - for the simulator) in the current directory: -\end_layout - -\begin_layout LyX-Code -comp --compile rtexample.comp -\end_layout - -\begin_layout Standard -Or it can simply process, leaving -\family typewriter -example.c -\family default - in the current directory: -\end_layout - -\begin_layout LyX-Code -comp rtexample.comp -\end_layout - -\begin_layout Standard - -\family typewriter -comp -\family default - can also compile and install a component written in C, using the -\family typewriter ---install -\family default - and -\family typewriter ---compile -\family default - options shown above: -\end_layout - -\begin_layout LyX-Code -comp --install rtexample2.c -\end_layout - -\begin_layout Standard -man-format documentation can also be created from the information in the - declaration section: -\end_layout - -\begin_layout LyX-Code -comp --document rtexample.comp -\end_layout - -\begin_layout Standard -The resulting manpage, -\family typewriter -example.9 -\family default - can be viewed with -\end_layout - -\begin_layout LyX-Code -man ./example.9 -\end_layout - -\begin_layout Standard -or copied to a standard location for manual pages. -\end_layout - -\begin_layout Section -Compiling userspace components outside the source tree -\end_layout - -\begin_layout Standard - -\family typewriter -comp -\family default - can process, compile, install, and document userspace components: -\end_layout - -\begin_layout LyX-Code -comp usrexample.comp -\newline -comp --compile usrexample.comp -\newline -comp --install usrexample.comp -\newline -com -p --document usrexample.comp -\end_layout - -\begin_layout Standard -This only works for -\family typewriter -.comp -\family default - files, not for -\family typewriter -.c -\family default - files. -\end_layout - -\begin_layout Section -Examples -\end_layout - -\begin_layout Subsection -constant -\end_layout - -\begin_layout Standard -This component functions like the one in "blocks", including the default - value of 1.0. - The declaration "function _" creates functions named "constant.0", etc. -\end_layout - -\begin_layout LyX-Code -component constant; -\newline -pin out float out; -\newline -param r float value = 1.0; -\newline -function _; -\newline -license - "GPL"; -\newline -;; -\newline -FUNCTION(_) { out = value; } -\end_layout - -\begin_layout Subsection -sincos -\end_layout - -\begin_layout Standard -This component computes the sine and cosine of an input angle in radians. - It has different capabilities than the "sine" and "cosine" outputs of siggen, - because the input is an angle, rather than running freely based on a "frequency -" parameter. -\end_layout - -\begin_layout Standard -The pins are declared with the names -\family typewriter -sin_ -\family default - and -\family typewriter -cos_ -\family default - in the source code so that they do not interfere with the functions -\family typewriter -sin() -\family default - and -\family typewriter -cos() -\family default -. - The HAL pins are still called -\family typewriter -sincos..sin -\family default -. -\end_layout - -\begin_layout LyX-Code -component sincos; -\newline -pin out float sin_; -\newline -pin out float cos_; -\newline -pin in float theta; -\newline -functi -on _; -\newline -license "GPL"; -\newline -;; -\newline -#include -\newline -FUNCTION(_) { sin_ = sin(theta); - cos_ = cos(theta); } -\end_layout - -\begin_layout Subsection -out8 -\end_layout - -\begin_layout Standard -This component is a driver for a -\emph on -fictional -\emph default - card called "out8", which has 8 pins of digital output which are treated - as a single 8-bit value. - There can be a varying number of such cards in the system, and they can - be at various addresses. - The pin is called -\family typewriter -out_ -\family default - because -\family typewriter -out -\family default - is an identifier used in -\family typewriter - -\family default -. - It illustrates the use of -\family typewriter -EXTRA_SETUP -\family default - and -\family typewriter -EXTRA_CLEANUP -\family default - to request an I/O region and then free it in case of error or when the - module is unloaded. -\end_layout - -\begin_layout LyX-Code -component out8; -\end_layout - -\begin_layout LyX-Code -pin out unsigned out_ "Output value; only low 8 bits are used"; -\end_layout - -\begin_layout LyX-Code -param r unsigned ioaddr; -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -function _; -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -option count_function; -\end_layout - -\begin_layout LyX-Code -option extra_setup; -\end_layout - -\begin_layout LyX-Code -option extra_cleanup; -\end_layout - -\begin_layout LyX-Code -option constructable no; -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -license "GPL"; -\end_layout - -\begin_layout LyX-Code -;; -\end_layout - -\begin_layout LyX-Code -#include -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -#define MAX 8 int io[MAX] = {0,}; -\end_layout - -\begin_layout LyX-Code -RTAPI_MP_ARRAY_INT(io, MAX, "I/O addresses of out8 boards"); -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout LyX-Code -int get_count(void) { -\end_layout - -\begin_layout LyX-Code - int i = 0; -\end_layout - -\begin_layout LyX-Code - for(i=0; i0; i--) out(i) = - out(i-1); -\newline -out(0) = in; -\end_layout - -\begin_layout Subsection -rand -\end_layout - -\begin_layout Standard -This userspace component changes the value on its output pin to a new random - value in the range -\begin_inset Formula $[0,1)$ -\end_inset - - about once every 1ms. -\end_layout - -\begin_layout LyX-Code -\begin_inset Include \verbatiminput{rand.comp} -preview false - -\end_inset - - -\end_layout - -\begin_layout Subsection -logic -\end_layout - -\begin_layout Standard -This realtime component shows how to use "personality" to create variable-size - arrays and optional pins. -\end_layout - -\begin_layout LyX-Code -\begin_inset Include \verbatiminput{../../../src/hal/components/logic.comp} -preview false - -\end_inset - - -\end_layout - -\begin_layout Standard -A typical load line for this component might be -\end_layout - -\begin_layout Quote -loadrt logic count=3 personality=0x102,0x305,0x503 -\end_layout - -\begin_layout Standard -which creates the following pins: -\end_layout - -\begin_layout Itemize -A 2-input AND gate: logic.0.and, logic.0.in-00, logic.0.in-01 -\end_layout - -\begin_layout Itemize -5-input AND and OR gates: logic.1.and, logic.1.or, logic.1.in-00, logic.1.in-01, - logic.1.in-02, logic.1.in-03, logic.1.in-04, -\end_layout - -\begin_layout Itemize -3-input AND and XOR gates: logic.2.and, logic.2.xor, logic.2.in-00, logic.2.in-01, - logic.2.in-02 -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/comp_fr.lyx b/docs/src/hal/comp_fr.lyx deleted file mode 100644 index 5135377c0..000000000 --- a/docs/src/hal/comp_fr.lyx +++ /dev/null @@ -1,2134 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 1 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - - -\emph on -comp -\emph default -: un outil pour crer les modules HAL -\layout Section - -Introduction -\layout Standard - -Ecrire un composant de HAL peut se rvler tre une tche ennuyeuse, la - plupart de cette tche consiste appeler des fonctions -\family typewriter -rtapi_ -\family default - et -\family typewriter -hal_ -\family default - et contrler les erreurs associes ces fonctions. - -\emph on -comp -\emph default - va crire tout ce code pour vous, automatiquement. -\layout Standard - -Compiler un composant de HAL est galement beaucoup plus simple en utilisant - -\emph on -comp -\emph default -, que le composant fasse partie de l'arborescence d'emc2, ou qu'il en soit - extrieur. -\layout Standard - -Par exemple, cette portion des blocks -\begin_inset Quotes fld -\end_inset - -ddt -\begin_inset Quotes frd -\end_inset - - fait environ 80 lignes de code. - Le composant quivalent est vraiment trs court quand il est crit en utilisant - le prprocesseur -\emph on -comp -\emph default -: -\layout LyX-Code - -component ddt "Calcule la drive de la fonction d'entre"; -\newline -pin in float in; -\newline -pin out float out; -\newline -variable float old; -\newline -function _; -\newline -license "GPL"; -\newline -;; -\newline -float tmp = in; -\newline -out = (tmp - old) / fperiod; -\newline -old = tmp; -\layout Standard - -et il peut tre compil et install trs facilement en plaant simplement - -\family typewriter -ddt.comp -\family default - dans -\family typewriter - -\begin_inset Quotes fld -\end_inset - -src/hal/components -\begin_inset Quotes frd -\end_inset - - -\family default - puis en lanant -\family typewriter - -\begin_inset Quotes fld -\end_inset - -make -\family default - -\begin_inset Quotes frd -\end_inset - -, ou en le plaant quelque part sur le systme et en lanant -\family typewriter - -\begin_inset Quotes fld -\end_inset - -comp --install ddt.comp -\begin_inset Quotes frd -\end_inset - - -\layout Section - -Dfinitions -\layout Description - -component Un composant est un simple module temps rel, qui se charge avec - -\family typewriter - -\begin_inset Quotes fld -\end_inset - -halcmd loadrt -\family default - -\begin_inset Quotes frd -\end_inset - -. - Un fichier -\family typewriter -.comp -\family default - spcifie un seul composant. -\layout Description - -instance Un composant peut avoir zro ou plusieurs instances. - Chaque instance d'un composant est cre gale (elles ont toutes les mmes - pins, les mmes paramtres, les mmes fonctions et les mmes donnes) mais - elle se comporte de manire diffrente quand leurs pins, leurs paramtres - et leur donnes ont des valeurs diffrentes. -\layout Description - -singleton Il est possible pour un composant d'tre un 'singleton' (composant - dont il n'existe qu'une seule instance), dans ce cas, exactement une seule - instance est cre. - Il est rarement logique d'crire un composant -\family typewriter -singleton -\family default -, moins qu'il n'y ait qu'un seul objet de ce type dans le systme (par - exemple, un composant ayant pour but de fournir une pin avec le temps Unix - courant, ou un pilote matriel pour le haut parleur interne du PC) -\layout Section - -Cration d'instance -\layout Standard - -Pour un singleton, une seule instance est cre quand le composant est charg. -\layout Standard - -Pour un non-singleton, le paramtre ' -\family typewriter -count -\family default -' du module dtermine combien d'instances seront cres. -\layout Section - -Syntaxe -\layout Standard - -Un fichier -\family typewriter -.comp -\family default - commence par un certain nombre de dclarations, puis par un -\family typewriter - -\begin_inset Quotes fld -\end_inset - -;; -\begin_inset Quotes frd -\end_inset - - -\family default - seul sur sa propre ligne. - Il se termin par le code C implmentant les fonctions du module. -\layout Standard - -Dclarations d'include: -\layout Itemize - - -\family typewriter -component -\emph on -HALNAME -\emph default - -\emph on -(DOC -\emph default -); -\layout Itemize - - -\family typewriter -pin -\emph on -PINDIRECTION -\emph default - -\emph on -TYPE -\emph default - -\emph on -HALNAME -\emph default - ([ -\emph on -SIZE -\emph default -]|[ -\emph on -MAXSIZE -\emph default -: -\emph on -CONDSIZE] -\emph default -) (if -\emph on -CONDITION -\emph default -) (= -\emph on -STARTVALUE -\emph default -) ( -\emph on -DOC -\emph default -); -\layout Itemize - - -\family typewriter -param -\emph on -PARAMDIRECTION -\emph default - -\emph on -TYPE -\emph default - -\emph on -HALNAME -\emph default - ([ -\emph on -SIZE -\emph default -]|[ -\emph on -MAXSIZE -\emph default -: -\emph on -CONDSIZE] -\emph default -) (if -\emph on -CONDITION) -\emph default -(= -\emph on -STARTVALUE -\emph default -) ( -\emph on -DOC -\emph default -) ; -\layout Itemize - - -\family typewriter -function -\emph on -HALNAME -\emph default - (fp | nofp) ( -\emph on -DOC -\emph default -); -\layout Itemize - - -\family typewriter -option -\emph on -OPT -\emph default - ( -\emph on -VALUE -\emph default -); -\layout Itemize - - -\family typewriter -variable -\emph on -CTYPE NAME -\emph default -([ -\emph on -SIZE -\emph default -]); -\layout Itemize - - -\family typewriter -description DOC; -\layout Itemize - - -\family typewriter -see_also DOC; -\layout Itemize - - -\family typewriter -license LICENSE; -\layout Itemize - - -\family typewriter -author AUTHOR; -\layout Standard - -Les parenthses indiquent un item optionnel. - Une barre verticale indique une alternative. - Les mots en -\emph on -CAPITALES -\emph default - indiquent une variable texte, comme ci-dessous: -\layout Description - -HALNAME Un identifiant. -\begin_deeper -\layout Standard - -Lorsqu'ils sont utiliss pour crer un identifiant de HAL, tous les caractres - souligns sont remplacs par des tirets, tous les points et les virgules - de fin, sont supprims, ainsi -\begin_inset Quotes fld -\end_inset - -ce_nom_ -\begin_inset Quotes frd -\end_inset - - est remplac par -\begin_inset Quotes fld -\end_inset - -ce-nom -\begin_inset Quotes frd -\end_inset - - et si le nom -\family typewriter - -\begin_inset Quotes fld -\end_inset - -_ -\family default - -\begin_inset Quotes frd -\end_inset - -, alors le point final est enlev aussi, ainsi -\family typewriter - -\begin_inset Quotes fld -\end_inset - -function _ -\family default - -\begin_inset Quotes frd -\end_inset - - donne un nom de fonction HAL tel que -\family typewriter -component. -\family default - au lieu de -\family typewriter -component.. -\layout Standard - -S'il est prsent, le prfixe -\family typewriter -hal_ -\family default - est enlev du dbut d'un nom de composant pour la cration des pins des - paramtres et des fonctions. -\layout Standard - -Dans l'identifiant de HAL pour une pin ou un paramtre, # indique un membre - de tableau, il doit tre utilis conjointement avec une dclaration -\family typewriter -[SIZE] -\family default -. - Les -\begin_inset Quotes fld -\end_inset - -hash marks -\begin_inset Quotes frd -\end_inset - - sont remplaces par des nombres de 0-barrs quivalents aux nombres de - caractres #. -\layout Standard - -Quand ils sont utiliss pour crer des identifiants C, les changements de - caractres suivants sont appliqus au HALNAME: -\layout Enumerate - -Tous les caractres # sont enlevs ainsi que tous les caractres -\begin_inset Quotes fld -\end_inset - -. -\begin_inset Quotes frd -\end_inset - -, -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - immdiatement devant eux. -\layout Enumerate - -Dans un nom, tous les carcatres -\begin_inset Quotes fld -\end_inset - -. -\begin_inset Quotes frd -\end_inset - - et -\begin_inset Quotes fld -\end_inset - -- -\begin_inset Quotes frd -\end_inset - - sont remplacs par -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - - -\layout Enumerate - -Les caractres -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - - rptitifs sont remplacs par un seul caractre -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - -. -\layout Standard - -Un -\begin_inset Quotes fld -\end_inset - -_ -\begin_inset Quotes frd -\end_inset - - final est maintenu, de sorte que les identifiants de HAL, qui autrement - seraient en conflit avec les noms ou mots cl rservs (par exemple: -\begin_inset Quotes fld -\end_inset - -min -\begin_inset Quotes frd -\end_inset - -), puissent tre utiliss. -\layout Standard - - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -HALNAME -\end_inset - - -\begin_inset Text - -\layout Standard - -Identifiant C -\end_inset - - -\begin_inset Text - -\layout Standard - -Identifiant HAL -\end_inset - - - - -\begin_inset Text - -\layout Standard - -x_y_z -\end_inset - - -\begin_inset Text - -\layout Standard - -x_y_z -\end_inset - - -\begin_inset Text - -\layout Standard - -x-y-z -\end_inset - - - - -\begin_inset Text - -\layout Standard - -x-y.z -\end_inset - - -\begin_inset Text - -\layout Standard - -x_y_z -\end_inset - - -\begin_inset Text - -\layout Standard - -x-y.z -\end_inset - - - - -\begin_inset Text - -\layout Standard - -x_y_z_ -\end_inset - - -\begin_inset Text - -\layout Standard - -x_y_z_ -\end_inset - - -\begin_inset Text - -\layout Standard - -x-y-z -\end_inset - - - - -\begin_inset Text - -\layout Standard - -x.##.y -\end_inset - - -\begin_inset Text - -\layout Standard - -x_y(MM) -\end_inset - - -\begin_inset Text - -\layout Standard - -x.MM.z -\end_inset - - - - -\begin_inset Text - -\layout Standard - -x.## -\end_inset - - -\begin_inset Text - -\layout Standard - -x(MM) -\end_inset - - -\begin_inset Text - -\layout Standard - -x.MM -\end_inset - - - - -\end_inset - - -\end_deeper -\layout Description - -if\SpecialChar ~ -CONDITION Une expression impliquant la -\emph on -personnalit -\emph default - d'une variable non nulle quand la variable ou le paramtre doit tre cr. -\layout Description - -SIZE Un nombre donnant la taille d'un tableau. - Les items des tableaus sont numrots de 0 -\emph on -SIZE -\emph default --1. -\layout Description - -MAXSIZE\SpecialChar ~ -:\SpecialChar ~ -CONDSIZE Un nombre donnant la taille maximum d'un tableau, suivi - d'une expression impliquant la -\emph on -personnalit -\emph default - d'une variable et qui aura toujours une valeur infrieure -\emph on -MAXSIZE -\emph default -. - Quand le tableau est cr sa taille est gale -\emph on -CONDSIZE -\emph default -. -\layout Description - -DOC Une chaine qui documente l'item. - La chaine doit tre au format C, -\begin_inset Quotes fld -\end_inset - -entre guillemets -\begin_inset Quotes frd -\end_inset - -, comme -\family typewriter -"Slectionnez le front dsir: TRUE pour descendant, FALSE pour montant" -\family default - ou au format Python -\begin_inset Quotes fld -\end_inset - -triples guillemets -\begin_inset Quotes frd -\end_inset - -, pouvant inclure des caractres newlines et des guillements, comme: -\begin_deeper -\layout LyX-Code - -param rw bit zot=TRUE -\newline -"""L'effet de ce paramtre, galement connu comme "the orb of zot", -\newline -requiert au moins deux paragraphes d'explications. -\newline - -\newline -J'espre que ces paragraphes vous ont permis de comprendre "zot" -\newline -plus profondment."""; -\layout Standard - -La chaine documentation est en format -\begin_inset Quotes fld -\end_inset - -groff -man -\begin_inset Quotes frd -\end_inset - -. - Pour plus d'informations sur ce format de markup, voyez -\family typewriter -groff_man(7) -\family default -. - Souvenez vous que comp interprte backslash comme Echap dans les chaines, - ainsi par exemple pour passer le mot -\emph on -example -\emph default - en font italique, ecrivez -\family typewriter - -\begin_inset Quotes fld -\end_inset - - -\backslash - -\backslash -fIexample -\backslash - -\backslash -fB -\family default - -\begin_inset Quotes frd -\end_inset - -. -\end_deeper -\layout Description - -TYPE Un des types de HAL: -\family typewriter -bit -\family default -, -\family typewriter -signed (sign -\family default -), -\family typewriter -unsigned (non sign -\family default -) ou -\family typewriter -float (flott -\family default -ant). - Les anciens noms -\family typewriter -s32 -\family default - et -\family typewriter -u32 -\family default - peuvent encore tre utiliss, mais -\family typewriter -signed -\family default - et -\family typewriter -unsigned -\family default - sont prfrables. -\layout Description - -PINDIRECTION Une des ces directions: -\family typewriter -in -\family default -, -\family typewriter -out -\family default -, ou -\family typewriter -io -\family default -. - Le composant pourra positionner la valeur d'une pin de sortie, il pourra - lire la valeur sur une pin d'entre et il pourra lire ou positionner la - valeur d'une pin -\family typewriter -io -\family default -. -\layout Description - -PARAMDIRECTION Une des valeurs suivantes: -\family typewriter -r -\family default - ou -\family typewriter -rw -\family default -. - Le composant pourra positionner la valeur d'un paramtre -\family typewriter -r -\family default - et il pourra positionner ou lire la valeur d'un paramtre rw. -\layout Description - -STARTVALUE Spcifie la valeur initiale d'une pin ou d'un paramtre. - Si il n'est pas spcifi, alors la valeur par dfaut est -\family typewriter -0 -\family default - ou -\family typewriter -FALSE -\family default -, selon le type de l'item. -\layout Description - -fp Indique que la fonction effectuera ses calculs en virgule flottante. -\layout Description - -nofp Indique que la fonction effectuera ses calculs sur des entiers. - Si il n'est pas spcifi, -\family typewriter -fp -\family default - est utilis. - Ni comp ni gcc ne peuvent dtecter l'utilisation de calculs en virgule - flottante dans les fonctions marques -\family typewriter -nofp -\family default -. -\layout Description - -OPT,\SpecialChar ~ -VALUE Selon le nom de l'option OPT, les valeurs VALUE varient. - Les options actuellement dfinies sont les suivantes: -\begin_deeper -\layout Description - -option\SpecialChar ~ -singleton\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\layout Standard - -Ne cre pas le paramtre numro de module et cre toujours une seule instance. - Avec -\family typewriter -singleton -\family default -, les items sont nomms -\family typewriter -composant-name.item-name -\family default - et sans -\family typewriter -singleton -\family default -, les items des diffrentes instances sont nomms -\family typewriter -composant-name..item-name -\family default -. -\end_deeper -\layout Description - -option\SpecialChar ~ -default_count\SpecialChar ~ - -\emph on -number -\emph default - (dfaut: 1) -\begin_deeper -\layout Standard - -Normalement, le paramtre -\family typewriter -count par -\family default - dfaut est 0. - Si spcifi, -\family typewriter -count -\family default - remplace la valeur par dfaut. -\end_deeper -\layout Description - -option\SpecialChar ~ -count_function\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\layout Standard - -Normalement, le numro des instances crer est specifi dans le paramtre - -\family typewriter -count -\family default - du module, si -\family typewriter -count_function -\family default - est spcifi, la valeur retourne par la fonction -\family typewriter -int get_count(void) -\family default - est utilise la place de la valeur par dfaut et le paramtre -\family typewriter -count -\family default - du module n'est pas dfini. -\end_deeper -\layout Description - -option\SpecialChar ~ -rtapi_app\SpecialChar ~ -no (dfaut: yes) -\begin_deeper -\layout Standard - -Normalement, les fonctions -\family typewriter -rtapi_app_main -\family default - et -\family typewriter -rtapi_app_exit -\family default - sont dfinies automatiquement. - Avec -\family typewriter -option rtapi_app no -\family default -, elles ne le seront pas et doivent tre fournies dans le code C. -\layout Standard - -Quand vous implmentez votre propre -\family typewriter -rtapi_app_main -\family default -, appellez la fonction -\family typewriter -int export(char *prefix, long extra_arg) -\family default - pour enregistrer les pins, paramtres et fonctions pour -\family typewriter -prfix -\family default -er. -\end_deeper -\layout Description - -option\SpecialChar ~ -data\SpecialChar ~ - -\emph on -type -\emph default - (dfaut: none) -\series bold -\noun on -deprecated -\begin_deeper -\layout Standard - -If specified, each instance of the component will have an associated data - block of -\emph on -type -\emph default - (which can be a simple type like -\family typewriter -float -\family default - or the name of a type created with -\family typewriter -typedef -\family default -). -\layout Standard - -In new components, -\emph on -variable -\emph default - should be used instead. -\end_deeper -\end_deeper -\layout Description - -option\SpecialChar ~ -extra_setup\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\begin_deeper -\layout Standard - -Si spcifi, appelle la fonction dfinie par -\family typewriter -EXTRA_SETUP -\family default - pour chaque instance. - Si la dfinition automatique -\family typewriter -rtapi_app_main -\family default - est utilise, -\family typewriter -extra_arg -\family default - est le numro de cette instance. - -\end_deeper -\layout Description - -option\SpecialChar ~ -extra_cleanup\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\layout Standard - -Si spcifi, appelle la fonction dfinie par -\family typewriter -EXTRA_CLEANUP -\family default - depuis la fonction dfinie automatiquement -\family typewriter -rtapi_app_exit -\family default -, ou une erreur est dtecte dans la fonction automatiquement dfinie -\family typewriter -rtapi_app_main -\family default -. -\end_deeper -\layout Description - -option\SpecialChar ~ -userspace\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\layout Standard - -Si spcifi, ce fichier dcrit un composant d'espace utilisateur, plutt - que le rel. - Un composant d'espace utilisateur peut ne pas avoir de fonction dfinie - par la directive de fonction. - Au lieu de cela, aprs que toutes les instances soient construites, la - fonction C -\family typewriter -user_mainloop() -\family default - est appele. - Ds la fin de cette fonction, le composant se termine. - En rgle gnrale, -\family typewriter -user_mainloop() -\family default - va utiliser -\family typewriter -FOR_ALL_INSTS() -\family default - pour effectuer la mise jour pour chaque action, puis attendre un court - instant. - Une autre action commune dans -\family typewriter -user_mainloop() -\family default - peut tre d'appeler le gestionnaire de boucles d'vnements d'une interface - graphique. -\end_deeper -\layout Description - -option\SpecialChar ~ -userinit\SpecialChar ~ -yes (dfaut: no) -\begin_deeper -\layout Standard - -Si spcifie, la fonction -\family typewriter -userinit(argc,argv) -\family default - est appele avant -\family typewriter -rtapi_app_main() -\family default - (et cela avant l'appel de -\family typewriter -hal_init() -\family default -). - Cette fonction peut traiter les arguments de la ligne de commande ou excuter - d'autres actions. - Son type de retour est -\family typewriter -void -\family default -; elle peut appeler -\family typewriter -exit() -\family default - et si elle le veut, se terminer sans crer de composant HAL (par exemple, - parce que les arguments de la ligne de commande sont invalides). -\end_deeper -\layout Standard - -Si aucune option VALUE n'est spcifie, alors c'est quivalent spcifier - la valeur -\family typewriter -\SpecialChar \ldots{} - yes -\family default -. - Le rsultat conscutif l'assignation d'une valeur inapproprie une - option est indtermin. - Le rsultat conscutif n'utiliser aucune autre option est indfini. -\end_deeper -\layout Description - -LICENSE Spcifie la license du module, pour la documentation et pour le - module dclar dans MODULE_LICENSE(). -\layout Description - -AUTHOR Spcifie l'auteur du module, pour la documentation -\layout Section - -Stockage des donnes -\begin_inset Quotes fld -\end_inset - -par-instance -\begin_inset Quotes frd -\end_inset - - -\layout Description - -variable\SpecialChar ~ - -\emph on -CTYPE\SpecialChar ~ -NAME -\emph default -; -\layout Description - -variable\SpecialChar ~ - -\emph on -CTYPE\SpecialChar ~ -NAME -\emph default -[ -\emph on -SIZE -\emph default -]; -\layout Description - -variable\SpecialChar ~ - -\emph on -CTYPE\SpecialChar ~ -NAME -\emph default -\SpecialChar ~ -=\SpecialChar ~ - -\emph on -default -\emph default -; -\layout Description - -variable\SpecialChar ~ - -\emph on -CTYPE\SpecialChar ~ -NAME -\emph default -[ -\emph on -SIZE -\emph default -]\SpecialChar ~ -=\SpecialChar ~ - -\emph on -default -\emph default -; -\begin_deeper -\layout Standard - -Dclare la variable -\begin_inset Quotes fld -\end_inset - -par-instance -\begin_inset Quotes frd -\end_inset - - -\emph on -NAME -\emph default - de type -\emph on -CTYPE -\emph default -, optionnellement comme un tableau de -\emph on -SIZE -\emph default - items et optionnellement avec une valeur default. - Les items sans -\emph on -default -\emph default - sont initialiss -\begin_inset Quotes fld -\end_inset - -all-bits-zero -\begin_inset Quotes frd -\end_inset - -. - -\emph on -CTYPE -\emph default - est un simple mot de type C, comme -\family typewriter -float -\family default -, -\family typewriter -u32 -\family default -, -\family typewriter -s32 -\family default -, etc. -\newline -Les variables d'un tableau sont mises entre crochets. -\end_deeper -\layout Standard - -Les commentaires de style C++ une ligne ( -\family typewriter -// \SpecialChar \ldots{} - -\family default -) et de style C multi-lignes ( -\family typewriter -/* \SpecialChar \ldots{} - */ -\family default -) sont supports tous les deux dans la section dclaration. -\layout Section - -Autres restrictions sur les fichiers comp -\layout Standard - -Bien que HAL permette une pin, un paramtre et une fonction d'avoir le - mme nom, comp ne le permet pas. -\layout Section - -Conventions des macros -\layout Standard - -En se basant sur les dclarations des items de section, -\emph on -comp -\emph default - cre une structure C appelle -\family typewriter -structure d'tat -\family default -. - Cependant, au lieu de faire rfrence aux membres de cette structure (par - exemple: -\family typewriter -*(inst->name) -\family default -), il leur sera gnralement fait rfrence en utilisant les macros ci-dessous. - Certains dtails de la structure d'tat et de ces macros peuvent diffrer - d'une version de -\emph on -comp -\emph default - la suivante. -\layout Description - -FUNCTION(name) Cette macro s'utilise au dbut de la dfinition d'une fonction - temps rel qui aura t prcdemment dclare avec ' -\family typewriter -function NAME -\family default -'. - function inclus un paramtre ' -\family typewriter -period -\family default -' qui est le nombre entier de nanosecondes entre les appels la fonction. -\layout Description - -EXTRA_SETUP() Cette macro s'utilise au dbut de la dfinition de la fonction - appele pour excuter les rglages complmentaires cette instance. - Une valeur de retour ngative (Unix -\family typewriter -errno) -\family default - indique un dfaut (par exemple: -\family typewriter -elle retourne -EBUSY -\family default - comme dfaut la rservation d'un port d'entres/sorties), une valeur - gale 0 indique le succs. -\layout Description - -EXTRA_CLEANUP() Cette macro s'utilise au dbut de la dfinition de la fonction - appele pour excuter un nettoyage (cleanup) du composant. - Noter que cette fonction doit nettoyer toutes les instances du composant, - pas juste un. - Les macros 'pin_name', 'parameter_name' et 'data' ne doivent pas tre utilises - ici. -\layout Description - - -\emph on -pin_name -\layout Description - - -\emph on -parameter_name -\emph default - Pour chaque pin, -\family typewriter -pin_name -\family default - ou pour chaque paramtre, -\family typewriter -parameter_name -\family default - il y a une macro qui permet d'utiliser le nom seul pour faire rfrence - la pin ou au paramtre. -\begin_deeper -\layout Standard - -Quand -\family typewriter -pin_name -\family default - ou -\family typewriter -parameter_name -\family default - sont des tableaux, la macro est de la forme -\emph on -pin_name(idx) -\emph default - ou -\emph on -param_name(idx) -\emph default -dans laquelle -\emph on -idx -\emph default - est l'index dans le tableau de pins. - Quand le tableau est de taille variable, il est seulement lgal de faire - rfrence aux items par leurs -\emph on -condsize -\emph default -. -\layout Standard - -Quand un item est conditionnel, il est seulement lgal de faire rfrence - cet item quand ses -\emph on -conditions -\emph default -sont values -\emph on - -\emph default - des valeurs diffrentes de zro. -\end_deeper -\layout Description - - -\emph on -variable_name -\emph default -Pour chaque variable, -\family typewriter -il y a une macro variable_name -\family default - qui permet au nom seul d'tre utilis pour faire rfrence la variable. - Quand -\family typewriter -variable_name -\family default - est un tableau, le style normal de C est utilis: -\emph on -variable_name[idx] -\layout Description - -data Si l' -\begin_inset Quotes fld -\end_inset - -option data -\begin_inset Quotes frd -\end_inset - - est spcifie, cette macro permet l'accs l'instance de la donne. -\layout Description - -fperiod Le nombre de secondes en virgule flottante entre les appels cette - fonction temps rel. -\layout Description - -FOR_ALL_INSTS()\SpecialChar ~ -{ -\family typewriter -\SpecialChar \ldots{} - -\family default -} Pour les composants de l'espace utilisateur. - Cette macro utilise la variable -\family typewriter -struct state *inst -\family default - pour itrer au dessus de toutes les instances dfinies. - Dans le corps de la boucle, les macros -\series bold -\emph on -pin_name -\series default -\emph default -, -\series bold -\emph on -parameter_name -\series default -\emph default - et -\series bold -data -\series default - travaillent comme elles le font dans les fonctions temps rel. -\layout Section - -Composants avec une seule fonction -\layout Standard - -Si un composant a seulement une fonction et que la chaine -\begin_inset Quotes fld -\end_inset - -FUNCTION -\begin_inset Quotes frd -\end_inset - - n'apparat nulle part aprs -\family typewriter -;; -\family default -, alors la portion aprs -\family typewriter -;; -\family default - est considre comme tant le corps d'un composant simple fonction. -\layout Section - - -\begin_inset Quotes fld -\end_inset - -Personnalit -\begin_inset Quotes frd -\end_inset - - du composant -\layout Standard - -Si un composant a n'importe combien de pins ou de paramtres avec un -\begin_inset Quotes fld -\end_inset - -if -\emph on -condition -\emph default - -\begin_inset Quotes frd -\end_inset - - ou -\begin_inset Quotes fld -\end_inset - -[ -\emph on -maxsize : condsize -\emph default -] -\begin_inset Quotes frd -\end_inset - -, il est appel un composant avec -\emph on - -\begin_inset Quotes fld -\end_inset - -personnalit -\emph default - -\begin_inset Quotes frd -\end_inset - -. - La -\begin_inset Quotes fld -\end_inset - -personnalit -\begin_inset Quotes frd -\end_inset - - de chaque instance est spcifie quand le module est charg. - La -\begin_inset Quotes fld -\end_inset - -Personnalit -\begin_inset Quotes frd -\end_inset - - peut tre utilise pour crer les pins seulement quand c'est ncessaire. - Par exemple, la personnalit peut tre utilise dans un composant logique, - pour donner un nombre variable de broches d'entre chaque porte logique - et permettre la slection de n'importe quelle fonction de logique boolenne - de base -\series bold -and -\series default -, -\series bold -or -\series default - et -\series bold -xor -\series default -. -\layout Section - -Compiler un fichier -\family typewriter -.comp -\family default - dans l'arborescence -\layout Standard - -Placer le fichier -\family typewriter -.comp -\family default - dans le rpertoire -\family typewriter -emc2/src/hal/components -\family default - et lancer/relancer -\family typewriter - -\begin_inset Quotes fld -\end_inset - -make -\family default - -\begin_inset Quotes frd -\end_inset - -. - -\family typewriter -Les fichiers Comp -\family default - sont automatiquement dtects par le systme de compilation. -\layout Standard - -Si un fichier -\family typewriter -.comp -\family default - est un pilote de priphrique, il peut tre plac dans -\family typewriter -emc2/src/hal/components -\family default - et il y sera construit except si emc2 est configur en mode simulation. -\layout Section - -Compiler un composant temps rel hors de l'arborescence -\begin_inset LatexCommand \label{sec:Compiler-composants-rt} - -\end_inset - - -\layout Standard - - -\family typewriter -comp -\family default - peut traiter, compiler et installer un composant temps rel en une seule - tape, en plaant -\family typewriter -rtexample.ko -\family default - dans le rpertoire du module temps rel d'emc2: -\layout LyX-Code - -comp --install rtexample.comp -\layout Standard - -Ou il peut aussi tre trait et compil en une seule tape en laissant -\family typewriter -example.ko -\family default - (ou -\family typewriter -example.so -\family default - pour la simulation) dans le rpertoire courant: -\layout LyX-Code - -comp --compile rtexample.comp -\layout Standard - -Ou il peut simplement tre trait en laissant -\family typewriter -example.c -\family default - dans le rpertoire courant: -\layout LyX-Code - -comp rtexample.comp -\layout Standard - - -\family typewriter -comp -\family default - peut aussi compiler et installer un composant crit en C, en utilisant - -\family typewriter -les options --install -\family default - et -\family typewriter ---compile -\family default - comme ci-dessous: -\layout LyX-Code - -comp --install rtexample2.c -\layout Standard - -La documentation au format man peut tre cre partir des informations - de la section -\begin_inset Quotes fld -\end_inset - -declaration -\begin_inset Quotes frd -\end_inset - -: -\layout LyX-Code - -comp --document rtexample.comp -\layout Standard - -La manpage rsultante, -\family typewriter -exemple.9 -\family default - peut tre lue avec: -\layout LyX-Code - -man ./exemple.9 -\layout Standard - -ou copie un emplacement standard pour une page de manuel. -\layout Section - -Compiler un composant de l'espace utilisateur hors de l'arborescence -\layout Standard - - -\family typewriter -comp -\family default - peut traiter, compiler et installer un document de l'espace utilisateur: -\layout LyX-Code - -comp usrexample.comp -\newline -comp --compile usrexample.comp -\newline -comp --install usrexample.comp -\newline -comp --document usrexample.comp -\layout Standard - -Cela fonctionne seulement pour les fichiers -\family typewriter -.comp -\family default - mais pas pour les fichiers -\family typewriter -.c -\family default -. -\layout Section - -Exemples -\layout Subsection - -constant -\layout Standard - -Ce composant fonctionne comme dans 'blocks', y compris la valeur par dfaut - 1.0. - La dclaration -\begin_inset Quotes fld -\end_inset - -function _ -\begin_inset Quotes frd -\end_inset - - cre les fonctions nommes 'constant.0', etc. -\layout LyX-Code - -component constant; -\newline -pin out float out; -\newline -param r float value = 1.0; -\newline -function _; -\newline -;; -\newline -FUNCTION(_) { out = value; } -\layout Subsection - -sincos -\layout Standard - -Ce composant calcule le sinus et le cosinus d'un angle entr en radians. - Il a diffrentes possibilits comme les sorties 'sinus' et 'cosinus' de - siggen, parceque l'entre est un angle au lieu d'tre librement bas sur - un paramtre 'frequency'. -\layout Standard - -Les pins sont dclares avec les noms -\family typewriter -sin_ -\family default - et -\family typewriter -cos_ -\family default - dans le code source pour que a n'interfre pas avec les fonctions -\family typewriter -sin() -\family default - et -\family typewriter -cos() -\family default -. - Les pins de HAL sont toujours appeles -\family typewriter -sincos..sin -\family default -. -\layout LyX-Code - -component sincos; -\newline -pin out float sin_; -\newline -pin out float cos_; -\newline -pin in float theta; -\newline -function _; -\newline -;; -\newline -#include -\newline -FUNCTION(_) { sin_ = sin(theta); cos_ = cos(theta); } -\layout Subsection - -out8 -\layout Standard - -Ce composant est un pilote pour une carte imaginaire appele -\begin_inset Quotes fld -\end_inset - -out8 -\begin_inset Quotes frd -\end_inset - -, qui a 8 pins de sortie digitales qui sont traites comme une simple valeur - sur 8 bits. - Il peut y avoir un nombre quelconque de ces cartes dans le systme et elles - peuvent avoir des adresses varies. - La pin est appele -\family typewriter -out_ -\family default - parceque -\family typewriter -out -\family default - est un identifiant utilis dans -\family typewriter - -\family default -. - Il illustre l'utilisation de -\family typewriter -EXTRA_SETUP -\family default - et de -\family typewriter -EXTRA_CLEANUP -\family default - pour sa requte de rgion d'entres/sorties et libre cette rgion en cas - d'erreur ou quand le module est dcharg. -\layout LyX-Code - - -\begin_inset Include \verbatiminput{out8.comp} -preview false - -\end_inset - - -\layout Subsection - -hal_loop -\layout LyX-Code - -component hal_loop; -\newline -pin out float example; -\layout Standard - -Ce fragment de composant illustre l'utilisation du prfixe -\family typewriter -hal_ -\family default - dans un nom de composant. - -\family typewriter -loop -\family default - est le nom d'un module standard du kernel Linux, donc un composant -\family typewriter -loop -\family default - ne pourrait pas tre charg si le module loop de Linux est galement prsent. -\layout Standard - -Quand il le charge, -\family typewriter -halcmd montre un -\family default - composant appel -\family typewriter -hal_loop -\family default -. - Cependant, les pins affiches par -\family typewriter -halcmd -\family default - sont -\family typewriter -loop.0.example -\family default - et non -\family typewriter -hal-loop.0.example -\family default -. -\layout Subsection - -arraydemo -\layout Standard - -Ce composant temps rel illustre l'utilisation d'un tableau de taille fixe: -\layout LyX-Code - -component arraydemo "Registre dcalage 4-bits"; -\newline -pin in bit in; -\newline -pin out bit out-# [4]; -\newline -function _ nofp; -\newline -;; -\newline -int i; -\newline -for(i=3; i>0; i--) out(i) = out(i-1); -\newline -out(0) = in; -\layout Subsection - -rand -\layout Standard - -Ce composant de l'espace utilisateur modifie la valeur de ses pins de sortie - vers une nouvelle valeur alatoire dans l'tendue -\begin_inset Formula $[0,1)$ -\end_inset - - chaque ms. -\layout LyX-Code - - -\begin_inset Include \verbatiminput{rand.comp} -preview false - -\end_inset - - -\layout Subsubsection - -logic -\layout Standard - -Ce composant temps rel montre l'utilisation de la -\begin_inset Quotes fld -\end_inset - -personnalit -\begin_inset Quotes frd -\end_inset - - pour crer un tableau de taille variable et des pins optionnelles. -\layout LyX-Code - - -\begin_inset Include \verbatiminput{../../../src/hal/components/logic.comp} -preview false - -\end_inset - - -\layout Standard - -Une ligne de chargement typique pourrait tre: -\layout LyX-Code - -loadrt logic count=3 personality=0x102,0x305,0x503 -\layout Standard - -qui crerait les pins suivantes: -\layout Itemize - -Une porte AND 2 entres: logic.0.and, logic.0.in-00, logic.0.in-01 -\layout Itemize - -des portes AND et OR 5 entres: logic.1.and, logic.1.or, logic.1.in-00, logic.1.in-01, - logic.1.in-02, logic.1.in-03, logic.1.in-04, -\layout Itemize - -des portes AND et XOR 3 entres: logic.2.and, logic.2.xor, logic.2.in-00, logic.2.in-0 -1, logic.2.in-02 -\the_end diff --git a/docs/src/hal/components.lyx b/docs/src/hal/components.lyx deleted file mode 100644 index 11fd1793f..000000000 --- a/docs/src/hal/components.lyx +++ /dev/null @@ -1,2030 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -HAL Components -\begin_inset LatexCommand label -name "cha:HAL-Components" - -\end_inset - - -\end_layout - -\begin_layout Section -Commands and Userspace Components -\begin_inset LatexCommand label -name "sec:Commands-and-Userspace-Components" - -\end_inset - - -\end_layout - -\begin_layout Standard -Some of these will have expanded descriptions from the man pages. - Some will have limited descriptions. - All of the components have man pages. - From this list you know what components exist and can use man n name to - get additional information. - For example in a terminal window type -\end_layout - -\begin_layout LyX-Code -man 1 axis -\end_layout - -\begin_layout Standard -to view the information in the man page. -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -axis-remote.1 = AXIS Remote Interface -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -axis.1 = AXIS EMC (The Enhanced Machine Controller) Graphical User Interface -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -bfload.1 = A program for loading a Xilinx Bitfile program into the FPGA of - an Anything I/O board from Mesa -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -comp.1 = Build, compile and install EMC HAL components -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -emc.1 = EMC (The Enhanced Machine Controller) -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -hal_input.1 = control HAL pins with any Linux input device, including USB - HID devices -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halcmd.1 = manipulate the Enhanced Machine Controller HAL from the command - line -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halmeter.1 = observe HAL pins, signals, and parameters -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halrun.1 = manipulate the Enhanced Machine Controller HAL from the command - line -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halsampler.1 = sample data from HAL in realtime -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halstreamer.1 = stream file data into HAL in real time -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -halui.1 = observe HAL pins and command EMC through NML -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -io.1 = accepts NML I/O commands, interacts with HAL in userspace -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -iocontrol.1 = accepts NML I/O commands, interacts with HAL in userspace -\end_layout - -\begin_layout List -\labelwidthstring 00.00.0000 -pyvcp.1 = Virtual Control Panel for EMC2 -\end_layout - -\begin_layout Section -Realtime Components -\begin_inset LatexCommand label -name "sec:Realtime-Components" - -\end_inset - - -\end_layout - -\begin_layout Standard -Some of these will have expanded descriptions from the man pages. - Some will have limited descriptions. - All of the components have man pages. - From this list you know what components exist and can use man n name to - get additional information in a terminal window. -\end_layout - -\begin_layout Subsection -abs -\begin_inset LatexCommand index -name "abs" - -\end_inset - - -\end_layout - -\begin_layout Standard -Compute the absolute value and sign of the input signal -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt abs [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf abs.N|name thread-name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -abs.N.in (float in) Input value -\end_layout - -\begin_layout LyX-Code -abs.N.out (float out) Output Value, always positive -\end_layout - -\begin_layout LyX-Code -abs.N.sign (bit out) Sign of Input, false = positive, true = negative -\end_layout - -\begin_layout Standard -The first abs loaded will be abs.0 and each one after that the "N" number - will increment. -\end_layout - -\begin_layout Subsection -and2 -\begin_inset LatexCommand index -name "and2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two-input AND gate. - For out to be true both inputs must be true -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt and2 [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf and2.N|name thread-name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -and2.N.in0 (bit in) Input 0 -\end_layout - -\begin_layout LyX-Code -and2.N.in1 (bit in) Input 1 -\end_layout - -\begin_layout LyX-Code -and2.N.out (bit out) Output -\end_layout - -\begin_layout Subsection -at_pid -\begin_inset LatexCommand index -name "at\\_pid" - -\end_inset - - -\end_layout - -\begin_layout Standard -proportional/integral/derivative controller with auto tuning -\end_layout - -\begin_layout Subsection -axis -\begin_inset LatexCommand index -name "axis" - -\end_inset - - -\end_layout - -\begin_layout Standard -accepts NML motion commands, interacts with HAL in realtime -\end_layout - -\begin_layout Subsection -biquad -\begin_inset LatexCommand index -name "biquad" - -\end_inset - - -\end_layout - -\begin_layout Standard -Biquad IIR filter -\end_layout - -\begin_layout Subsection -bldc_hall3 -\begin_inset LatexCommand index -name "bldc\\_hall3" - -\end_inset - - -\end_layout - -\begin_layout Standard -3-wire Bipolar trapezoidal commutation BLDC motor driver using Hall sensors -\end_layout - -\begin_layout Subsection -blend -\begin_inset LatexCommand index -name "blend" - -\end_inset - - -\end_layout - -\begin_layout Standard -Perform linear interpolation between two values -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt blend [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf blend.N|name thread-name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -blend.N.in1 (float in) First input. -\end_layout - -\begin_layout LyX-Code -blend.N.in2 (float in) Second input. -\end_layout - -\begin_layout LyX-Code -blend.N.select (float in) Select input. -\end_layout - -\begin_layout LyX-Code -blend.N.out (float out) Output value. -\end_layout - -\begin_layout Subparagraph -Parameters -\end_layout - -\begin_layout LyX-Code -blend.N.open (bit r/w) -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\begin_layout Standard -If select is equal to 0.0 output is equal to in1. - -\end_layout - -\begin_layout Standard -If select is equal to 1.0, the output is equal to in2. -\end_layout - -\begin_layout Standard -For select values between 0.0 and 1.0, the output changes linearly from in1 - to in2. -\end_layout - -\begin_layout Standard -If blend.N.open is true, select values outside the range 0.0 to 1.0 give values - outside the range in1 to in2. - If false, outputs are clamped to the the range in1 to in2 -\end_layout - -\begin_layout Subsection -charge_pump -\begin_inset LatexCommand index -name "charge\\_pump" - -\end_inset - - -\end_layout - -\begin_layout Standard -Create a square-wave for the "charge pump" input of some controller boards -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt charge_pump -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf charge-pump -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -charge-pump.out (bit out) -\end_layout - -\begin_layout LyX-Code -charge-pump.enable (bit in) default = TRUE -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\begin_layout Standard -Outputs a square wave if enable is TRUE or unconnected, low if enable is - FALSE -\end_layout - -\begin_layout Subsection -clarke2 -\begin_inset LatexCommand index -name "clarke2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two input version of Clarke transform -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt clarke2 [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf clarke2.N | name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -clarke2.N.a (float in) phase a input -\end_layout - -\begin_layout LyX-Code -clarke2.N.b (float in) phase b input -\end_layout - -\begin_layout LyX-Code -clarke2.N.x (float out) cartesian components of output -\end_layout - -\begin_layout LyX-Code -clarke2.N.y (float out) cartesian components of output -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\begin_layout Standard -The Clarke transform can be used to translate a vector quantity from a three - phase system (three components 120 degrees apart) to a two phase Cartesian - system. -\end_layout - -\begin_layout Standard -clarke2 implements a special case of the Clarke transform, which only needs - two of the three input phases. - In a three wire three phase system, the sum of the three phase currents - or voltages must always be zero. - As a result only two of the three are needed to completely define the current - or voltage. - clarke2 assumes that the sum is zero, so it only uses phases A and B of - the input. - Since the H (homopolar) output will always be zero in this case, it is - not generated. -\end_layout - -\begin_layout Subsection -clarke3 -\begin_inset LatexCommand index -name "clarke3" - -\end_inset - - -\end_layout - -\begin_layout Standard -Clarke (3 phase to cartesian) transform -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt clarke3 [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf clarke3.N | name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -clarke3.N.a (float in) three phase input vector -\end_layout - -\begin_layout LyX-Code -clarke3.N.b (float in) three phase input vector -\end_layout - -\begin_layout LyX-Code -clarke3.N.c (float in) three phase input vector -\end_layout - -\begin_layout LyX-Code -clarke3.N.x (float out) cartesian components of output -\end_layout - -\begin_layout LyX-Code -clarke3.N.y (float out) cartesian components of output -\end_layout - -\begin_layout LyX-Code -clarke3.N.h (float out) homopolar component of output -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\begin_layout Standard -The Clarke transform can be used to translate a vector quantity from a three - phase system (three components 120 degrees apart) to a two phase Cartesian - system (plus a homopolar component if the three phases don't sum to zero). -\end_layout - -\begin_layout Standard -clarke3 implements the general case of the transform, using all three phases. - If the three phases are known to sum to zero, see clarke2 for a simpler - version. -\end_layout - -\begin_layout Subsection -clarkeinv -\begin_inset LatexCommand index -name "clarkeinv" - -\end_inset - - -\end_layout - -\begin_layout Standard -Inverse Clarke transform -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout LyX-Code -loadrt clarkeinv [count=N|names=name1[,name2...]] -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout LyX-Code -addf clarkeinv.N | name -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.x (float in) cartesian components of input -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.y (float in) cartesian components of input -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.h (float in) homopolar component of input (usually zero) -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.a (float out) three phase output vector -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.b (float out) three phase output vector -\end_layout - -\begin_layout LyX-Code -clarkeinv.N.c (float out) three phase output vector -\end_layout - -\begin_layout Subparagraph -Parameters -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\begin_layout Standard -The inverse Clarke transform can be used to translate a vector quantity - from Cartesian coordinate system to a three phase system (three components - 120 degrees apart). -\end_layout - -\begin_layout Subsection -classicladder -\begin_inset LatexCommand index -name "classicladder" - -\end_inset - - -\end_layout - -\begin_layout Standard -Realtime software plc based on ladder logic -\end_layout - -\begin_layout Subsection -comp -\begin_inset LatexCommand index -name "comp" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two input comparator with hysteresis -\end_layout - -\begin_layout Subsection -constant -\begin_inset LatexCommand index -name "constant" - -\end_inset - - -\end_layout - -\begin_layout Standard -Use a parameter to set the value of a pin -\end_layout - -\begin_layout Subsection -conv_bit_s32 -\begin_inset LatexCommand index -name "conv\\_bit\\_s32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from bit to s32 -\end_layout - -\begin_layout Subsection -conv_bit_u32 -\begin_inset LatexCommand index -name "conv\\_bit\\_u32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from bit to u32 -\end_layout - -\begin_layout Subsection -conv_float_s32 -\begin_inset LatexCommand index -name "conv\\_float\\_s32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from float to s32 -\end_layout - -\begin_layout Subsection -conv_float_u32 -\begin_inset LatexCommand index -name "conv\\_float\\_u32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from float to u32 -\end_layout - -\begin_layout Subsection -conv_s32_bit -\begin_inset LatexCommand index -name "conv\\_s32\\_bit" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from s32 to bit -\end_layout - -\begin_layout Subsection -conv_s32_float -\begin_inset LatexCommand index -name "conv\\_s32\\_float" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from u32 to bit -\end_layout - -\begin_layout Subsection -conv_s32_u32 -\begin_inset LatexCommand index -name "conv\\_s32\\_u32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from s32 to u32 -\end_layout - -\begin_layout Subsection -conv_u32_bit -\begin_inset LatexCommand index -name "conv\\_u32\\_bit" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from u32 to bit -\end_layout - -\begin_layout Subsection -conv_u32_float -\begin_inset LatexCommand index -name "conv\\_u32\\_float" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from u32 to float -\end_layout - -\begin_layout Subsection -conv_u32_s32 -\begin_inset LatexCommand index -name "conv\\_u32\\_s32" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert a value from u32 to s32 -\end_layout - -\begin_layout Subsection -counter -\begin_inset LatexCommand index -name "counter" - -\end_inset - - -\end_layout - -\begin_layout Standard -counts input pulses (deprecated) -\end_layout - -\begin_layout Subsection -ddt -\begin_inset LatexCommand index -name "ddt" - -\end_inset - - -\end_layout - -\begin_layout Standard -Compute the derivative of the input function -\end_layout - -\begin_layout Subsection -deadzone -\begin_inset LatexCommand index -name "deadzone" - -\end_inset - - -\end_layout - -\begin_layout Standard -Return the center if within the threshold -\end_layout - -\begin_layout Subsection -debounce -\begin_inset LatexCommand index -name "debounce" - -\end_inset - - -\end_layout - -\begin_layout Standard -filter noisy digital inputs, for more information see -\begin_inset LatexCommand ref -reference "sec:Debounce" - -\end_inset - - -\end_layout - -\begin_layout Subsection -edge -\begin_inset LatexCommand index -name "edge" - -\end_inset - - -\end_layout - -\begin_layout Standard -Edge detector -\end_layout - -\begin_layout Subsection -encoder -\begin_inset LatexCommand index -name "encoder" - -\end_inset - - -\end_layout - -\begin_layout Standard -software counting of quadrature encoder signals, for more information see - -\begin_inset LatexCommand ref -reference "sec:Encoder" - -\end_inset - - -\end_layout - -\begin_layout Subsection -encoder_ratio -\begin_inset LatexCommand index -name "encoder\\_ratio" - -\end_inset - - -\end_layout - -\begin_layout Standard -an electronic gear to synchronize two axes -\end_layout - -\begin_layout Subsection -estop_latch -\begin_inset LatexCommand index -name "estop\\_latch" - -\end_inset - - -\end_layout - -\begin_layout Standard -ESTOP latch -\end_layout - -\begin_layout Subsection -feedcomp -\begin_inset LatexCommand index -name "feedcomp" - -\end_inset - - -\end_layout - -\begin_layout Standard -Multiply the input by the ratio of current velocity to the feed rate -\end_layout - -\begin_layout Subsection -flipflop -\begin_inset LatexCommand index -name "flipflop" - -\end_inset - - -\end_layout - -\begin_layout Standard -D type flip-flop -\end_layout - -\begin_layout Subsection -freqgen -\begin_inset LatexCommand index -name "freqgen" - -\end_inset - - -\end_layout - -\begin_layout Standard -software step pulse generation -\end_layout - -\begin_layout Subsection -gantrykins -\end_layout - -\begin_layout Standard -A kinematics module that maps one axis to multiple joints -\end_layout - -\begin_layout Subsection -gearchange -\begin_inset LatexCommand index -name "gearchange" - -\end_inset - - -\end_layout - -\begin_layout Standard -Select from one two speed ranges -\end_layout - -\begin_layout Subsection -genhexkins -\begin_inset LatexCommand index -name "genhexkins" - -\end_inset - - -\end_layout - -\begin_layout Standard -Gives six degrees of freedom in position and orientation (XYZABC). - The location of the motors is defined at compile time. -\end_layout - -\begin_layout Subsection -genserkins -\end_layout - -\begin_layout Standard -Kinematics that can model a general serial-link manipulator with up to 6 - angular joints. -\end_layout - -\begin_layout Subsection -hm2_7i43 -\begin_inset LatexCommand index -name "hm2\\_7i43" - -\end_inset - - -\end_layout - -\begin_layout Standard -HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with HostMot2 -\end_layout - -\begin_layout Subsection -hm2_pci -\begin_inset LatexCommand index -name "hm2\\_pci" - -\end_inset - - -\end_layout - -\begin_layout Standard -HAL driver for the Mesa Electronics 5i20, 5i22, 5i23, 4i65, and 4i68 Anything - IO boards, with HostMot2 firmware -\end_layout - -\begin_layout Subsection -hostmot2 -\begin_inset LatexCommand index -name "hostmot2" - -\end_inset - - -\end_layout - -\begin_layout Standard -HAL driver for the Mesa Electronics HostMot2 firmware -\end_layout - -\begin_layout Subsection -hypot -\begin_inset LatexCommand index -name "hypot" - -\end_inset - - -\end_layout - -\begin_layout Standard -Three-input hypotenuse (Euclidean distance) calculator -\end_layout - -\begin_layout Subsection -ilowpass -\begin_inset LatexCommand index -name "ilowpass" - -\end_inset - - -\end_layout - -\begin_layout Standard -Low-pass filter with integer inputs and outputs -\end_layout - -\begin_layout Subsection -integ -\begin_inset LatexCommand index -name "integ" - -\end_inset - - -\end_layout - -\begin_layout Standard -Integrator -\end_layout - -\begin_layout Subsection -invert -\begin_inset LatexCommand index -name "invert" - -\end_inset - - -\end_layout - -\begin_layout Standard -Compute the inverse of the input signal -\end_layout - -\begin_layout Subsection -joyhandle -\begin_inset LatexCommand index -name "joyhandle" - -\end_inset - - -\end_layout - -\begin_layout Standard -sets nonlinear joypad movements, deadbands and scales -\end_layout - -\begin_layout Subsection -kins -\begin_inset LatexCommand index -name "kins" - -\end_inset - - -\end_layout - -\begin_layout Standard -kinematics definitions for emc2 -\end_layout - -\begin_layout Subsection -knob2float -\begin_inset LatexCommand index -name "knob2float" - -\end_inset - - -\end_layout - -\begin_layout Standard -Convert counts (probably from an encoder) to a float value -\end_layout - -\begin_layout Subsection -limit1 -\begin_inset LatexCommand index -name "limit1" - -\end_inset - - -\end_layout - -\begin_layout Standard -Limit the output signal to fall between min and max -\end_layout - -\begin_layout Subsection -limit2 -\begin_inset LatexCommand index -name "limit2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Limit the output signal to fall between min and max -\end_layout - -\begin_layout Subsection -limit3 -\begin_inset LatexCommand index -name "limit3" - -\end_inset - - -\end_layout - -\begin_layout Standard -Limit the output signal to fall between min and max -\end_layout - -\begin_layout Subsection -logic -\begin_inset LatexCommand index -name "logic" - -\end_inset - - -\end_layout - -\begin_layout Standard -Experimental general logic function component -\end_layout - -\begin_layout Subsection -lowpass -\begin_inset LatexCommand index -name "lowpass" - -\end_inset - - -\end_layout - -\begin_layout Standard -Low-pass filter -\end_layout - -\begin_layout Subsection -lut5 -\begin_inset LatexCommand index -name "lut5" - -\end_inset - - -\end_layout - -\begin_layout Standard -Arbitrary 5-input logic function based on a look-up table -\end_layout - -\begin_layout Subsection -maj3 -\begin_inset LatexCommand index -name "maj3" - -\end_inset - - -\end_layout - -\begin_layout Standard -Compute the majority of 3 inputs -\end_layout - -\begin_layout Subsection -match8 -\begin_inset LatexCommand index -name "match8" - -\end_inset - - -\end_layout - -\begin_layout Standard -8-bit binary match detector -\end_layout - -\begin_layout Subsection -maxkins -\begin_inset LatexCommand index -name "maxkins" - -\end_inset - - -\end_layout - -\begin_layout Standard -Kinematics for a tabletop 5 axis mill named "max" with tilting head (B axis) - and horizintal rotary mounted to the table (C axis). - Provides UVW motion in the rotated coordinate system. - The source file, maxkins.c, may be a useful starting point for other 5-axis - systems. -\end_layout - -\begin_layout Subsection -minmax -\begin_inset LatexCommand index -name "minmax" - -\end_inset - - -\end_layout - -\begin_layout Standard -Track the minimum and maximum values of the input to the outputs -\end_layout - -\begin_layout Subsection -motion -\begin_inset LatexCommand index -name "motion" - -\end_inset - - -\end_layout - -\begin_layout Standard -accepts NML motion commands, interacts with HAL in realtime -\end_layout - -\begin_layout Subsection -mult2 -\begin_inset LatexCommand index -name "mult2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Product of two inputs -\end_layout - -\begin_layout Subsection -mux2 -\begin_inset LatexCommand index -name "mux2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Select from one of two input values -\end_layout - -\begin_layout Subsection -mux4 -\begin_inset LatexCommand index -name "mux4" - -\end_inset - - -\end_layout - -\begin_layout Standard -Select from one of four input values -\end_layout - -\begin_layout Subsection -mux8 -\begin_inset LatexCommand index -name "mux8" - -\end_inset - - -\end_layout - -\begin_layout Standard -Select from one of eight input values -\end_layout - -\begin_layout Subsection -near -\begin_inset LatexCommand index -name "near" - -\end_inset - - -\end_layout - -\begin_layout Standard -Determine whether two values are roughly equal -\end_layout - -\begin_layout Subsection -not -\begin_inset LatexCommand index -name "not" - -\end_inset - - -\end_layout - -\begin_layout Standard -Inverter -\end_layout - -\begin_layout Subsection -offset -\begin_inset LatexCommand index -name "offset" - -\end_inset - - -\end_layout - -\begin_layout Standard -Adds an offset to an input, and subtracts it from the feedback value -\end_layout - -\begin_layout Subsection -oneshot -\begin_inset LatexCommand index -name "oneshot" - -\end_inset - - -\end_layout - -\begin_layout Standard -one-shot pulse generator -\end_layout - -\begin_layout Subsection -or2 -\begin_inset LatexCommand index -name "or2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two-input OR gate -\end_layout - -\begin_layout Subsection -pid -\begin_inset LatexCommand index -name "pid" - -\end_inset - - -\end_layout - -\begin_layout Standard -proportional/integral/derivative controller, for more information see -\begin_inset LatexCommand ref -reference "sec:PID" - -\end_inset - - -\end_layout - -\begin_layout Subsection -pluto_servo -\begin_inset LatexCommand index -name "pluto\\_servo" - -\end_inset - - -\end_layout - -\begin_layout Standard -Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use - with servos -\end_layout - -\begin_layout Subsection -pluto_step -\begin_inset LatexCommand index -name "pluto\\_step" - -\end_inset - - -\end_layout - -\begin_layout Standard -Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use - with steppers -\end_layout - -\begin_layout Subsection -pwmgen -\begin_inset LatexCommand index -name "pwmgen" - -\end_inset - - -\end_layout - -\begin_layout Standard -software PWM/PDM generation, for more information see -\begin_inset LatexCommand ref -reference "sec:PWMgen" - -\end_inset - - -\end_layout - -\begin_layout Subsection -rotatekins -\begin_inset LatexCommand index -name "rotatekins" - -\end_inset - - -\end_layout - -\begin_layout Standard -The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. -\end_layout - -\begin_layout Subsection -sample_hold -\begin_inset LatexCommand index -name "sample\\_hold" - -\end_inset - - -\end_layout - -\begin_layout Standard -Sample and Hold -\end_layout - -\begin_layout Subsection -sampler -\begin_inset LatexCommand index -name "sampler" - -\end_inset - - -\end_layout - -\begin_layout Standard -sample data from HAL in real time -\end_layout - -\begin_layout Subsection -scale -\begin_inset LatexCommand index -name "scale" - -\end_inset - - -\end_layout - -\begin_layout Standard -applies a scale and offset to its input -\end_layout - -\begin_layout Subsection -scarakins -\begin_inset LatexCommand index -name "scarakins" - -\end_inset - - -\end_layout - -\begin_layout Standard -kinematics for SCARA-type robots -\end_layout - -\begin_layout Subsection -select8 -\begin_inset LatexCommand index -name "select8" - -\end_inset - - -\end_layout - -\begin_layout Standard -8-bit binary match detector -\end_layout - -\begin_layout Subsection -serport -\begin_inset LatexCommand index -name "serport" - -\end_inset - - -\end_layout - -\begin_layout Standard -Hardware driver for the digital I/O bits of the 8250 and 16550 serial port -\end_layout - -\begin_layout Subsection -siggen -\begin_inset LatexCommand index -name "siggen" - -\end_inset - - -\end_layout - -\begin_layout Standard -signal generator, for more information see -\begin_inset LatexCommand ref -reference "sec:Siggen" - -\end_inset - - -\end_layout - -\begin_layout Subsection -sim_encoder -\begin_inset LatexCommand index -name "sim\\_encoder" - -\end_inset - - -\end_layout - -\begin_layout Standard -simulated quadrature encoder, for more information see -\begin_inset LatexCommand ref -reference "sec:Simulated-Encoder" - -\end_inset - - -\end_layout - -\begin_layout Subsection -sphereprobe -\begin_inset LatexCommand index -name "sphereprobe" - -\end_inset - - -\end_layout - -\begin_layout Standard -Probe a pretend hemisphere -\end_layout - -\begin_layout Subsection -stepgen -\begin_inset LatexCommand index -name "stepgen" - -\end_inset - - -\end_layout - -\begin_layout Standard -software step pulse generation, for more information see -\begin_inset LatexCommand ref -reference "sec:Stepgen" - -\end_inset - - -\end_layout - -\begin_layout Subsection -steptest -\begin_inset LatexCommand index -name "steptest" - -\end_inset - - -\end_layout - -\begin_layout Standard -Used by Stepconf to allow testing of acceleration and velocity values for - an axis -\end_layout - -\begin_layout Subsection -streamer -\begin_inset LatexCommand index -name "streamer" - -\end_inset - - -\end_layout - -\begin_layout Standard -stream file data into HAL in real time -\end_layout - -\begin_layout Subsection -sum2 -\begin_inset LatexCommand index -name "sum2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Sum of two inputs (each with a gain) and an offset -\end_layout - -\begin_layout Subsection -supply -\begin_inset LatexCommand index -name "supply" - -\end_inset - - -\end_layout - -\begin_layout Standard -set output pins with values from parameters (deprecated) -\end_layout - -\begin_layout Subsection -thc -\end_layout - -\begin_layout Standard -Torch Height Control using a Mesa THC card. -\end_layout - -\begin_layout Subsection -threads -\begin_inset LatexCommand index -name "threads" - -\end_inset - - -\end_layout - -\begin_layout Standard -creates hard realtime HAL threads -\end_layout - -\begin_layout Subsection -threadtest -\begin_inset LatexCommand index -name "threadtest" - -\end_inset - - -\end_layout - -\begin_layout Standard -component for testing thread behavior -\end_layout - -\begin_layout Subsection -timedelay -\begin_inset LatexCommand index -name "timedelay" - -\end_inset - - -\end_layout - -\begin_layout Standard -The equivalent of a time-delay relay -\end_layout - -\begin_layout Subsection -timedelta -\begin_inset LatexCommand index -name "timedelta" - -\end_inset - - -\end_layout - -\begin_layout Standard -component that measures thread scheduling timing behavior -\end_layout - -\begin_layout Subsection -toggle -\begin_inset LatexCommand index -name "toggle" - -\end_inset - - -\end_layout - -\begin_layout Standard -push-on, push-off from momentary pushbuttons -\end_layout - -\begin_layout Subsection -toggle2nist -\begin_inset LatexCommand index -name "toggle2nist" - -\end_inset - - -\end_layout - -\begin_layout Standard -toggle button to nist logic -\end_layout - -\begin_layout Subsection -tripodkins -\begin_inset LatexCommand index -name "tripodkins" - -\end_inset - - -\end_layout - -\begin_layout Standard -The joints represent the distance of the controlled point from three predefined - locations (the motors), giving three degrees of freedom in position (XYZ) -\end_layout - -\begin_layout Subsection -tristate_bit -\begin_inset LatexCommand index -name "tristate\\_bit" - -\end_inset - - -\end_layout - -\begin_layout Standard -Place a signal on an I/O pin only when enabled, similar to a tristate buffer - in electronics -\end_layout - -\begin_layout Subsection -tristate_float -\begin_inset LatexCommand index -name "tristate\\_float" - -\end_inset - - -\end_layout - -\begin_layout Standard -Place a signal on an I/O pin only when enabled, similar to a tristate buffer - in electronics -\end_layout - -\begin_layout Subsection -trivkins -\begin_inset LatexCommand index -name "trivkins" - -\end_inset - - -\end_layout - -\begin_layout Standard -There is a 1:1 correspondence between joints and axes. - Most standard milling machines and lathes use the trivial kinematics module. -\end_layout - -\begin_layout Subsection -updown -\begin_inset LatexCommand index -name "updown" - -\end_inset - - -\end_layout - -\begin_layout Standard -Counts up or down, with optional limits and wraparound behavior -\end_layout - -\begin_layout Subsection -wcomp -\begin_inset LatexCommand index -name "wcomp" - -\end_inset - - -\end_layout - -\begin_layout Standard -Window comparator -\end_layout - -\begin_layout Subsection -weighted_sum -\begin_inset LatexCommand index -name "weighted\\_sum" - -\end_inset - - -\end_layout - -\begin_layout Standard -convert a group of bits to an integer -\end_layout - -\begin_layout Subsection -xor2 -\begin_inset LatexCommand index -name "xor2" - -\end_inset - - -\end_layout - -\begin_layout Standard -Two-input XOR (exclusive OR) gate -\end_layout - -\begin_layout Subparagraph -Loading -\end_layout - -\begin_layout Subparagraph -Functions -\end_layout - -\begin_layout Subparagraph -Pins -\end_layout - -\begin_layout Subparagraph -Parameters -\end_layout - -\begin_layout Subparagraph -Description -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/components_fr.lyx b/docs/src/hal/components_fr.lyx deleted file mode 100644 index a67ad63cc..000000000 --- a/docs/src/hal/components_fr.lyx +++ /dev/null @@ -1,518 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Les composants de HAL -\layout Section - -Composants de commandes et composants de l'espace utilisateur -\layout Standard - -Certaines de ces descriptions sont plus approfondies dans leurs pages man. - Certaines auront juste une description limite. - Chaque composant a sa page man. - A partir de cette liste vous connatrez quels composants existent avec - le nom et le N de leur page man permettant d'avoir plus de dtails. - Par exemple dans une fentre de terminal tapez -\family typewriter -\series bold -man 1 axis -\family default -\series default -pour accder aux informations de cette page man. -\layout List -\labelwidthstring 00.00.0000 - -axis-remote.1 = Interface de tlcommande d'AXIS -\layout List -\labelwidthstring 00.00.0000 - -axis.1 = AXIS EMC (The Enhanced Machine Controller) Interface Graphique Utilisate -ur -\layout List -\labelwidthstring 00.00.0000 - -bfload.1 = Pour charger un programme -\begin_inset Quotes fld -\end_inset - -Xilinx Bitfile -\begin_inset Quotes frd -\end_inset - - dans le FPGA de n'importe quelle carte d'entres/sorties de Mesa -\layout List -\labelwidthstring 00.00.0000 - -comp.1 = Crer, compiler et installer des composants de EMC HAL -\layout List -\labelwidthstring 00.00.0000 - -emc.1 = EMC (The Enhanced Machine Controller) -\layout List -\labelwidthstring 00.00.0000 - -hal_input.1 = Contrler des pins d'entre de HAL avec n'importe quel matriel - y compris les matriels USB HID -\layout List -\labelwidthstring 00.00.0000 - -halcmd.1 = Manipuler HAL depuis la ligne de commandes -\layout List -\labelwidthstring 00.00.0000 - -halmeter.1 = Observer les pins de HAL, ses signaux et ses paramtres -\layout List -\labelwidthstring 00.00.0000 - -halrun.1 = Manipuler HAL depuis la ligne de commandes -\layout List -\labelwidthstring 00.00.0000 - -halsampler.1 = Echantillonner des donnes temps rel depuis HAL -\layout List -\labelwidthstring 00.00.0000 - -halstreamer.1 = Crer un flux de donnes temps rel dans HAL depuis un fichier -\layout List -\labelwidthstring 00.00.0000 - -halui.1 = Observer des pins de HAL et commander EMC au travers d'NML -\layout List -\labelwidthstring 00.00.0000 - -io.1 = Commandes NML I/O acceptes et interactions avec HAL dans l'espace - utilisateur -\layout List -\labelwidthstring 00.00.0000 - -iocontrol.1 = Commandes NML I/O acceptes et interactions avec HAL dans l'espace - utilisateur -\layout List -\labelwidthstring 00.00.0000 - -pyvcp.1 = Virtual Control Panel (Panneau de Contrle Virtuel) pour EMC2 -\layout Section - -Composants temps rel et modules du noyau -\layout Standard - -Certaines de ces descriptions sont plus approfondies dans leur man page. - Certaines auront juste une description limite. - Chaque composant a sa man page. - A partir de cette liste vous connatrez quels composants existent avec - le nom et le N de leur man page permettant d'avoir plus de dtails. -\layout List -\labelwidthstring 00.00.0000 - -abs.9 = Calcule la valeur absolue et le signe d'un signal d'entre -\layout List -\labelwidthstring 00.00.0000 - -and2.9 = Porte AND (ET) deux entres -\layout List -\labelwidthstring 00.00.0000 - -at_pid.9 = Contrleur Proportionelle/Intgrale/drive avec rglage automatique -\layout List -\labelwidthstring 00.00.0000 - -axis.9 = Commandes de mouvement NML acceptes, intractions en temps rel - avec HAL -\layout List -\labelwidthstring 00.00.0000 - -biquad.9 = Filtre biquad IIR -\layout List -\labelwidthstring 00.00.0000 - -blend.9 = Provoque une interpolation linaire entre deux valeurs -\layout List -\labelwidthstring 00.00.0000 - -blocks.9 = Old style HAL blocks (deprecated) -\layout List -\labelwidthstring 00.00.0000 - -charge_pump.9 = Cre un signal carr destin l'entre -\begin_inset Quotes fld -\end_inset - -pompe de charge -\begin_inset Quotes frd -\end_inset - - de certaines cartes de contrle -\layout List -\labelwidthstring 00.00.0000 - -clarke2.9 = Transformation de Clarke, version deux entres -\layout List -\labelwidthstring 00.00.0000 - -clarke3.9 = Transformation de Clarke (3 triphas/cartsien) -\layout List -\labelwidthstring 00.00.0000 - -clarkeinv.9 = Transformation de Clarke inverse -\layout List -\labelwidthstring 00.00.0000 - -classicladder.9 = Automate temps rel programmable en logique Ladder -\layout List -\labelwidthstring 00.00.0000 - -comp.9 = Comparateur deux entres avec hystrsis -\layout List -\labelwidthstring 00.00.0000 - -constant.9 = Utilise un paramtre pour positionner une pin -\layout List -\labelwidthstring 00.00.0000 - -conv_bit_s32.9 = Converti une valeur de bit vers s32 -\layout List -\labelwidthstring 00.00.0000 - -conv_bit_u32.9 = Converti une valeur de bit vers u32 -\layout List -\labelwidthstring 00.00.0000 - -conv_float_s32.9 = Converti la valeur d'un flottant vers s32 -\layout List -\labelwidthstring 00.00.0000 - -conv_float_u32.9 = Converti la valeur d'un flottant vers u32 -\layout List -\labelwidthstring 00.00.0000 - -conv_s32_bit.9 = Converti une valeur de s32 en bit -\layout List -\labelwidthstring 00.00.0000 - -conv_s32_float.9 = Converti une valeur de u32 en bit -\layout List -\labelwidthstring 00.00.0000 - -conv_s32_u32.9 = Converti une valeur de s32 en u32 -\layout List -\labelwidthstring 00.00.0000 - -conv_u32_bit.9 = Converti une valeur de u32 en bit -\layout List -\labelwidthstring 00.00.0000 - -conv_u32_float.9 = Converti une valeur de u32 en flottant -\layout List -\labelwidthstring 00.00.0000 - -conv_u32_s32.9 = Converti une valeur de u32 en s32 -\layout List -\labelwidthstring 00.00.0000 - -counter.9 = counts input pulses (deprecated) -\layout List -\labelwidthstring 00.00.0000 - -ddt.9 = Calcule la drive de la fonction d'entre -\layout List -\labelwidthstring 00.00.0000 - -deadzone.9 = Retourne le centre si il est dans le seuil -\layout List -\labelwidthstring 00.00.0000 - -debounce.9 = Filtre une entre digitale bruite -\layout List -\labelwidthstring 00.00.0000 - -edge.9 = Dtecteur de front -\layout List -\labelwidthstring 00.00.0000 - -encoder.9 = Comptage logiciel des signaux en quadrature d'un codeur -\layout List -\labelwidthstring 00.00.0000 - -encoder_ratio.9 = Un engrenage lectronique pour synchroniser deux axes -\layout List -\labelwidthstring 00.00.0000 - -estop_latch.9 = Verrou d'Arrt d'Ugence -\layout List -\labelwidthstring 00.00.0000 - -flipflop.9 = Bascule D -\layout List -\labelwidthstring 00.00.0000 - -freqgen.9 = Gnrateur logiciel d'impulsions de pas -\layout List -\labelwidthstring 00.00.0000 - -genhexkins.9 = Dfinition de cinmatique pour emc2 -\layout List -\labelwidthstring 00.00.0000 - -hypot.9 = Calculateur d'hypotnuse trois entres (distance Euclidienne) -\layout List -\labelwidthstring 00.00.0000 - -integ.9 = Intgrateur -\layout List -\labelwidthstring 00.00.0000 - -kins.9 = Dfinition de cinmatique pour emc2 -\layout List -\labelwidthstring 00.00.0000 - -knob2float.9 = Convertisseur de comptage (probablement d'un codeur) vers - une valeur en virgule flottante -\layout List -\labelwidthstring 00.00.0000 - -limit1.9 = Limite le signal de sortie pour qu'il soit entre min et max -\layout List -\labelwidthstring 00.00.0000 - -limit2.9 = Limite le signal de sortie pour qu'il soit entre min et max -\layout List -\labelwidthstring 00.00.0000 - -limit3.9 = Limite le signal de sortie pour qu'il soit entre min et max -\layout List -\labelwidthstring 00.00.0000 - -logic.9 = -\layout List -\labelwidthstring 00.00.0000 - -lowpass.9 = Filtre passe-bas -\layout List -\labelwidthstring 00.00.0000 - -lut5.9 = Cinq fonctions logiques arbitraires base sur une table de recherche -\layout List -\labelwidthstring 00.00.0000 - -m7i43_hm2.9 = RTAI driver for the Mesa 7i43 EPP Anything IO board with HostMot2 - firmware -\layout List -\labelwidthstring 00.00.0000 - -maj3.9 = Calcule la majorit parmis 3 entres -\layout List -\labelwidthstring 00.00.0000 - -match8.9 = Dtecteur de concidence binaire sur 8 bits -\layout List -\labelwidthstring 00.00.0000 - -minmax.9 = Suiveur de valeur minimum et maximum de l'entre vers les sorties -\layout List -\labelwidthstring 00.00.0000 - -motion.9 = Commandes de mouvement NML acceptes, intractions en temps rel - avec HAL -\layout List -\labelwidthstring 00.00.0000 - -mult2.9 = Le produit de deux entres -\layout List -\labelwidthstring 00.00.0000 - -mux2.9 = Slection d'une valeur d'entre sur deux -\layout List -\labelwidthstring 00.00.0000 - -mux4.9 = Slection d'une valeur d'entre sur quatre -\layout List -\labelwidthstring 00.00.0000 - -not.9 = Inverseur -\layout List -\labelwidthstring 00.00.0000 - -offset.9 = Additionne un offset une entre et la soustrait la valeur - de retour -\layout List -\labelwidthstring 00.00.0000 - -oneshot.9 = Gnrateur d'impulsion monostable -\layout List -\labelwidthstring 00.00.0000 - -or2.9 = Porte OR (OU) deux entres -\layout List -\labelwidthstring 00.00.0000 - -pid.9 = Contrleur Proportionelle/Intgrale/drive, pour plus de dtails - voir (???) -\layout List -\labelwidthstring 00.00.0000 - -pluto_servo.9 = Pilote matriel et microprogramme pour le -\begin_inset Quotes fld -\end_inset - -Pluto-P parallel-port FPGA -\begin_inset Quotes frd -\end_inset - -, utilisation avec servomoteurs -\layout List -\labelwidthstring 00.00.0000 - -pluto_step.9 = Pilote matriel et microprogramme pour le -\begin_inset Quotes fld -\end_inset - -Pluto-P parallel-port FPGA -\begin_inset Quotes frd -\end_inset - -, utilisation avec moteurs pas pas -\layout List -\labelwidthstring 00.00.0000 - -pwmgen.9 = Gnrateur logiciel de PWM/PDM, pour plus de dtails voir (???) -\layout List -\labelwidthstring 00.00.0000 - -rotatekins.9 = Dfinition de cinmatique pour emc2 -\layout List -\labelwidthstring 00.00.0000 - -sample_hold.9 = Echantillonneur bloqueur -\layout List -\labelwidthstring 00.00.0000 - -sampler.9 = Echantillonneur de donnes de HAL en temps rel -\layout List -\labelwidthstring 00.00.0000 - -scale.9 = -\layout List -\labelwidthstring 00.00.0000 - -select8.9 = Dtecteur de concidence binaire sur 8 bits -\layout List -\labelwidthstring 00.00.0000 - -serport.9 = Pilote matriel pour les circuits d'entres/sorties digitales - de port srie 8250 et 16550 -\layout List -\labelwidthstring 00.00.0000 - -siggen.9 = Gnrateur de signal -\begin_inset LatexCommand \ref{sec:Siggen} - -\end_inset - - -\layout List -\labelwidthstring 00.00.0000 - -sim_encoder.9 = Simulation d'un codeur en quadrature, pour plus de dtails - voir (???) -\layout List -\labelwidthstring 00.00.0000 - -stepgen.9 = Gnrateur d'impulsions de pas logiciel -\begin_inset LatexCommand \ref{sec:Stepgen} - -\end_inset - - -\layout List -\labelwidthstring 00.00.0000 - -steptest.9 = Utilis par Stepconf pour permettre de tester les valeurs d'acclra -tion et de vitesse d'un axe -\layout List -\labelwidthstring 00.00.0000 - -streamer.9 = Flux temps rel depuis un fichier vers HAL -\layout List -\labelwidthstring 00.00.0000 - -sum2.9 = La somme de deux entres (chacune avec un gain) et l'cart -\layout List -\labelwidthstring 00.00.0000 - -supply.9 = set output pins with values from parameters (deprecated) -\layout List -\labelwidthstring 00.00.0000 - -threads.9 = Crer des threads temps rel de HAL -\layout List -\labelwidthstring 00.00.0000 - -threadtest.9 = -\layout List -\labelwidthstring 00.00.0000 - -timedelta.9 = -\layout List -\labelwidthstring 00.00.0000 - -toggle.9 = Bouton bascule NO/NF -\layout List -\labelwidthstring 00.00.0000 - -tripodkins.9 = Dfinition de cinmatique pour emc2 -\layout List -\labelwidthstring 00.00.0000 - -tristate_bit.9 = Place un signal sur une pin d'I/O seulement quand elle est - valide, similaire un tampon trois tats en lectronique -\layout List -\labelwidthstring 00.00.0000 - -tristate_float.9 = Place un signal sur une pin d'I/O seulement quand elle - est valide, similaire un tampon trois tats en lectronique -\layout List -\labelwidthstring 00.00.0000 - -trivkins.9 = Dfinition de cinmatique pour emc2 -\layout List -\labelwidthstring 00.00.0000 - -updown.9 = Compteur/dcompteur avec limites optionnelles et wraparound behavior -\layout List -\labelwidthstring 00.00.0000 - -wcomp.9 = Comparateur fentre -\layout List -\labelwidthstring 00.00.0000 - -weighted_sum.9 = Convertir un groupe de bits en un entier -\layout List -\labelwidthstring 00.00.0000 - -xor2.9 = Porte XOR (OU exclusif) deux entres -\the_end diff --git a/docs/src/hal/drivers_fr.lyx b/docs/src/hal/drivers_fr.lyx deleted file mode 100644 index 94262e985..000000000 --- a/docs/src/hal/drivers_fr.lyx +++ /dev/null @@ -1,6384 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Pilotes de priphriques -\layout Section - - -\begin_inset LatexCommand \label{sec:Parport} - -\end_inset - -Parport -\begin_inset LatexCommand \index{parallel port} - -\end_inset - - -\layout Standard - -Parport est un pilote pour le port parallle traditionnel des PC. - Le port dispose d'un total de 17 broches physiques. - Le port parallle originel a divis ces broches en trois groupes: donnes, - contrles et tats. - Le groupe -\begin_inset Quotes eld -\end_inset - -donnes -\begin_inset Quotes erd -\end_inset - - consiste en 8 broches de sortie, le groupe -\begin_inset Quotes eld -\end_inset - -contrles -\begin_inset Quotes erd -\end_inset - - consiste en 4 broches et le groupe -\begin_inset Quotes eld -\end_inset - -tats -\begin_inset Quotes erd -\end_inset - - consiste en 5 broches d'entre. -\layout Standard - -Au dbut des annes 1990, le port parallle bidirectionnel est arriv, ce - qui a permis l'utilisateur d'ajuster le groupe des donnes comme tant - des sorties ou comme tant des entres. - Le pilote de HAL supporte le port bidirectionnel et permet l'utilisateur - de configurer le groupe des donnes en entres ou en sorties. - Si il est configur en sorties, un port fournit un total de 12 sorties - et 5 entres. - Si il est configur en entres, il fournit 4 sorties et 13 entres. - -\layout Standard - -Dans certains ports parallles, les broches du groupe contrle sont des - collecteurs ouverts, ils peuvent aussi tre mis l'tat bas par une porte - extrieure. - Sur une carte avec les broches de contrle en collecteurs ouverts, le mode - -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - - de HAL permet un usage plus flexible avec 8 sorties ddies, 5 entres - ddies et 4 broches en collecteurs ouverts. - Dans d'autres ports parallles, les broches du groupe contrles sont en - push-pull et ne peuvent pas tre utilises comme des entres. -\begin_inset Foot -collapsed false - -\layout Standard - -HAL ne peut pas dterminer automatiquement si les broches en mode bidirectionnel - -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - - sont effectivement en collecteurs ouverts (OC). - Si elles n'y sont pas, -\bar under -elles ne peuvent pas tre utilises comme des entres -\bar default -. - Essayer de les passer l'tat BAS par une source extrieure peut dtriorer - le matriel. -\layout Standard - -Pour dterminer si votre port a des broches de contrle en -\begin_inset Quotes eld -\end_inset - -collecteur ouvert -\begin_inset Quotes erd -\end_inset - -, charger hal_parport en mode -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - -, positionner les broches de contrle une valeur HAUTE. - HAL doit lire des pins l'tat VRAI. - Ensuite, insrer une rsistance de 470 -\begin_inset Formula $\Omega$ -\end_inset - - entre une des broches de contrle et GND du port parallle. - Si la tension de cette broche de contrle est maintenant proche de 0V et - que HAL la lit comme une pin FAUSSE, alors vous avez un port OC. - Si la tension rsultante est loin de 0V ou que HAL ne la lit pas comme - tant FAUSSE, votre port ne ne peut pas tre utilis en mode -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - -. -\layout Standard - -Le matriel extrieur qui pilote les broches de contrle devrait galement - utiliser des portes en collecteur ouvert (ex: 74LS05...). - Gnralement, une pin de HAL -out devrait tre VRAIE quand la pin physique - est utilise comme une entre. -\layout Standard - -Sur certaines machines, les paramtres du BIOS peuvent affecter la possibilit - d'utiliser le mode -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - -. - Le mode -\begin_inset Quotes eld -\end_inset - -SPP -\begin_inset Quotes erd -\end_inset - - est le mode qui fonctionne le plus frquemment. -\end_inset - - -\layout Standard - -Aucune autre combinaison n'est supporte. - Un port ne peut plus tre modifi pour passer d'entres en sorties ds - que le pilote est install. - La figure -\begin_inset LatexCommand \ref{fig:Parport-block-diag} - -\end_inset - - montre deux diagrammes, un montre le pilote quand le groupe de donnes - est configur en sorties et le second le montre configur en entres. -\layout Standard - -Le pilote parport peut contrler au maximum 8 ports (dfinis par MAX_PORTS - dans le fichier hal_parport.c). - Les ports sont numrots partir de zro. -\layout Subsection - -Installation -\layout LyX-Code - -loadrt hal_parport cfg="" -\layout Standard - -La chaine config-string reprsente l'adresse hexadcimale du port, suivie - optionnellement par une direction, le tout rpt pour chaque port. - Les directions sont -\begin_inset Quotes eld -\end_inset - -in -\begin_inset Quotes erd -\end_inset - -, -\begin_inset Quotes eld -\end_inset - -out -\begin_inset Quotes erd -\end_inset - -, ou -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - -, elles dterminent la direction des broches physiques 2 9 et s'il y a - lieu de crer des pins d'entre de HAL pour les broches de contrle physiques. - Si la direction n'est pas prcise, le groupe donnes sera par dfault - en sortie. - Par exemple: -\layout LyX-Code - -loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" -\layout Standard - -Cet exemple installe les pilotes pour un port 0x0278, avec les broches 2 - 9 en sorties (par dfaut, puisque ni -\begin_inset Quotes eld -\end_inset - - in -\begin_inset Quotes erd -\end_inset - -, ni -\begin_inset Quotes eld -\end_inset - -out -\begin_inset Quotes erd -\end_inset - - n'est spcifi), un port 0x0378, avec les broches 2 9 en entres et un - port 0x20A0, avec les broches 2 9 explicitement spcifies en sorties. - Notez que vous devez connatre l'adresse de base des ports parallles pour - configurer correctement les pilotes. - Pour les ports sur bus ISA, ce n'est gnralement pas un problme, tant - donn que les ports sont presque toujours une adresse -\begin_inset Quotes eld -\end_inset - -bien connue -\begin_inset Quotes erd -\end_inset - -, comme 0x278 ou 0x378 qui sont typiquement configures dans le BIOS. - Les adresses des cartes sur bus PCI sont habituellement trouves avec -\begin_inset Quotes eld -\end_inset - -lspci -v -\begin_inset Quotes erd -\end_inset - - dans une ligne -\begin_inset Quotes eld -\end_inset - -I/O ports -\begin_inset Quotes erd -\end_inset - -, ou dans un message du kernel aprs l'excution de -\family typewriter - -\begin_inset Quotes eld -\end_inset - -sudo modprobe -a parport_pc -\family default - -\begin_inset Quotes erd -\end_inset - -. - Il n'y a pas d'adresse par dfaut, si -\family typewriter - -\family default - ne contient pas au moins une adresse, un message d'erreur s'affichera. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Standard -\align center - -\begin_inset Graphics - filename parport-block-diag.eps - width 8in - height 10in - keepAspectRatio - rotateAngle 90 - rotateOrigin center - -\end_inset - - -\layout Caption - - -\begin_inset LatexCommand \label{fig:Parport-block-diag} - -\end_inset - -Diagrammes blocs de Parport -\end_inset - - -\layout Subsection - -Pins -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out -\family default - -- Pilote une pin de sortie physique. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in -\family default - -- Suit une pin d'entre physique. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in-not -\family default - -- Suit une pin d'entre physique, mais inverse. -\layout Standard - -Pour chaque pin, -\family typewriter - -\family default - est le numro du port et -\family typewriter - -\family default - est le numro de la broche physique du connecteur DB-25. -\layout Standard - -Pour chaque broche de sortie physique, le pilote cre une simple pin de - HAL, par exemple -\family typewriter -parport.0.pin-14-out -\family default -. - Les pins 2 jusqu' 9 font partie du groupe donnes, elles sont des pins - de sortie si le port est dfini comme un port de sorties (par dfaut en - sortie). - Les broches 1, 14, 16 et 17 sont des sorties dans tous les modes. - Ces pins de HAL contrlent l'tat des pins physiques correspondantes. -\layout Standard - -Pour chaque pin d'entre physique, le pilote cre deux pins de HAL, par - exemple -\family typewriter -parport.0.pin-12-in -\family default - et -\family typewriter -parport.0.pin-12-in-not -\family default -. - Les pins 10, 11, 12, 13 et 15 sont toujours des sorties. - Les pins 2 jusqu' 9 sont des pins d'entre seulement si le port est dfini - comme un port d'entres. - Une pin de HAL -\family typewriter --in -\family default - est VRAIE si la pin physique est haute et FAUSSE si la pin physique est - basse. - Une pin de HAL -\family typewriter --in-not -\family default - est inverse, elle est FAUSSE si la pin physique est haute. - En connectant un signal l'une ou l'autre, l'utilisateur peut dcider - de la logique de l'entre. - En mode -\begin_inset Quotes eld -\end_inset - -x -\begin_inset Quotes erd -\end_inset - -, les pins 1, 14, 16 et 17 sont galement des pins d'entre. -\layout Subsection - -Paramtres -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out-invert -\family default - -- Inverse une pin de sortie. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out-reset -\family default -(seulement les pins 2..9) -- VRAIE si cette pin doit tre rinitialise quand - la fonction de rinitialisation est excute. -\layout Itemize - - -\family typewriter -(U32) parport..reset-time -\family default - -- Le temps (en nanosecondes) entre le moment ou la broche est crite et - le moment ou elle est rititialise par les fonctions de rinitialisation - de HAL. -\layout Standard - -Le paramtre -\family typewriter --invert -\family default - dtermine si une pin de sortie est active haute ou active basse. - Si -\family typewriter --invert -\family default - est FAUX, mettre la pin HAL -\family typewriter --out -\family default - VRAIE placera la pin physique l'tat haut et mettre la pin HAL FAUSSE - placera la pin physique l'tat bas. - Si -\family typewriter --invert -\family default - est VRAI, mettre la pin HAL -\family typewriter --out -\family default - VRAIE va mettre la pin physique l'tat bas. -\layout Standard - -Si -\family typewriter --reset -\family default - est VRAI, la fonction de rinitialisation va passer la pin la valeur - de -\family typewriter --out-invert -\family default -. - Ceci peut tre utilis en conjonction avec -\begin_inset Quotes eld -\end_inset - -stepgen -\family typewriter -doublefreq -\begin_inset Quotes erd -\end_inset - - -\family default - pour produire un pas par priode. -\layout Subsection - -Fonctions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -parport..read -\family default - -- Lit les pins physiques du port -\family typewriter - -\family default - et met jour les pins de HAL -\family typewriter - -in -\family default - et -\family typewriter - -in-not -\family default -. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -parport.read-all -\family default - -- Lit les pins physiques de tous les ports et met jour les pins de HAL - -\family typewriter --in -\family default - et -\family typewriter --in-not -\family default -. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -parport..write -\family default - -- Lit les pins de HAL -\family typewriter --out -\family default - du port -\family typewriter - -\family default - et met jour les pins de sortie physiques correspondantes. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -parport.write-all -\family default - -- Lit les pins de HAL -\family typewriter --out -\family default - de tous les ports et met jour toutes les pins de sortie physiques. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -parport..reset -\family default - -- Attends que le dlai de mise jour soit coul depuis le dernire criture, - remet jour les pins aux valeurs indiques par -\family typewriter --out-invert -\family default - et les paramtres de -\family typewriter --out-invert -\family default -. - -\family typewriter -La rinitialisation -\family default - doit tre plus tard dans le mme thread que l'criture. -\layout Standard - -Les diffrentes fonctions sont prvues pour les situations o un port doit - tre mis jour dans un thread trs rapide, mais d'autres ports peuvent - tre mis jour dans un thread plus lent pour gagner du temps CPU. - Ce n'est probablement pas une bonne ide d'utiliser en mme temps, les - fonctions -\family typewriter --all -\family default - et une fonction individuelle. -\layout Subsection - -Problmes courants -\layout Standard - -Si le chargement du module le message suivant: -\layout LyX-Code - -insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': -\newline --1 Device or resource busy -\layout Standard - -s'assurer que le noyau du kernel standard, -\family typewriter -parport_pc, -\family default - n'est pas charg -\begin_inset Foot -collapsed true - -\layout Standard - -In the emc packages for Ubuntu, the file /etc/modprobe.d/emc2 generally prevents - -\family typewriter -parport_pc -\family default - from being automatically loaded. -\end_inset - - et qu'aucun priphrique dans le systme ne revendique les ports concerns. -\layout Standard - -SI le module est charg mais ne semble pas fonctionner, l'adresse du port - est incorrecte ou le module -\family typewriter -probe_parport -\family default - est requis. -\layout Section - - -\begin_inset LatexCommand \label{sec:probe_parport} - -\end_inset - -probe_parport -\layout Standard - -Dans les PC rcents, le port parallle peut exiger une configuration plug - and play (PNP) avant d'tre utilisable. - Le module -\family typewriter -probe_parport -\family default - effectue la configuration de tous les ports PNP prsents et devrait tre - charg avant -\family typewriter -hal_parport -\family default -. - Sur les machines sans ports PNP, il peut tre charg mais n'a aucun effet. -\layout Subsection - -Installation -\layout LyX-Code - -loadrt probe_parport -\newline -loadrt hal_parport ... -\layout Standard - -Si le kernel Linux affiche un message similaire : -\layout LyX-Code - -parport: PnPBIOS parport detected. -\layout Standard - -Quand le module parport_pc est charg, avec la commande: -\family typewriter -sudo modprobe -a parport_pc; sudo rmmod parport_pc, -\family default - l'utilisation de ce module sera probablement ncessaire. -\layout Standard - -. -\layout Standard - -Les modules commerciaux ci-dessous pouront tres traduits en franais sur - demande. -\layout Standard - -The commercial modules below could be translated into French on request. -\layout Standard - -. -\layout Section - - -\begin_inset LatexCommand \label{sec:AX5214} - -\end_inset - -AX5214H -\layout Standard - -The Axiom Measurement & Control AX5214H is a 48 channel digital I/O board. - It plugs into an ISA bus, and resembles a pair of 8255 chips. -\begin_inset Foot -collapsed true - -\layout Standard - -In fact it may be a pair of 8255 chips, but I'm not sure. - If/when someone starts a driver for an 8255 they should look at the ax5214 - code, much of the work is already done. -\end_inset - - -\layout Subsection - -Installing -\layout LyX-Code - -loadrt hal_ax5214h cfg="" -\layout Standard - -The config string consists of a hex port address, followed by an 8 character - string of -\begin_inset Quotes eld -\end_inset - -I -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -O -\begin_inset Quotes erd -\end_inset - - which sets groups of pins as inputs and outputs. - The first two character set the direction of the first two 8 bit blocks - of pins (0-7 and 8-15). - The next two set blocks of 4 pins (16-19 and 20-23). - The pattern then repeats, two more blocks of 8 bits (24-31 and 32-39) and - two blocks of 4 bits (40-43 and 44-47). - If more than one board is installed, the data for the second board follows - the first. - As an example, the string -\family typewriter -\series bold -"0x220 IIIOIIOO 0x300 OIOOIOIO" -\family default -\series default - installs drivers for two boards. - The first board is at address 0x220, and has 36 inputs (0-19 and 24-39) - and 12 outputs (20-23 and 40-47). - The second board is at address 0x300, and has 20 inputs (8-15, 24-31, and - 40-43) and 28 outputs (0-7. - 16-23, 32-39, and 44-47). - Up to 8 boards may be used in one system. -\layout Subsection - -Pins -\layout Itemize - - -\family typewriter -\noun on -(bit -\noun default -) ax5214..out- -\family default --- Drives a physical output pin. -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) ax5214..in- -\family default - -- Tracks a physical input pin. -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) ax5214..in--not -\family default - -- Tracks a physical input pin, inverted. -\layout Standard - -For each pin, -\family typewriter - -\family default - is the board number (starts at zero), and -\family typewriter - -\family default - is the I/O channel number (0 to 47). -\layout Standard - -Note that the driver assumes active LOW signals. - This is so that modules such as OPTO-22 will work correctly (TRUE means - output ON, or input energized). - If the signals are being used directly without buffering or isolation the - inversion needs to be accounted for. - The -\family typewriter -in- -\family default - HAL pin is TRUE if the physical pin is low (OPTO-22 module energized), - and FALSE if the physical pin is high (OPTO-22 module off). - The -\family typewriter -in--not -\family default - HAL pin is inverted -- it is FALSE if the physical pin is low (OPTO-22 - module energized). - By connecting a signal to one or the other, the user can determine the - state of the input. -\layout Subsection - -Parameters -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) ax5214..out--invert -\family default - -- Inverts an output pin. -\layout Standard - -The -\family typewriter --invert -\family default - parameter determines whether an output pin is active high or active low. - If -\family typewriter --invert -\family default - is FALSE, setting the HAL -\family typewriter -out- -\family default - pin TRUE drives the physical pin low, turning ON an attached OPTO-22 module, - and FALSE drives it high, turning OFF the OPTO-22 module. - If -\family typewriter --invert -\family default - is TRUE, then setting the HAL -\family typewriter -out- -\family default - pin TRUE will drive the physical pin high and turn the module OFF. -\layout Subsection - -Functions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -ax5214..read -\family default - -- Reads all digital inputs on one board. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -ax5214..write -\family default --- Writes all digital outputs on one board. -\layout Section - - -\begin_inset LatexCommand \label{sec:Servo-To-Go} - -\end_inset - -Servo-To-Go -\layout Standard - -The Servo-To-Go is one of the first PC motion control cards -\begin_inset Foot -collapsed true - -\layout Standard - -a motion control card usually is a board containing devices to control one - or more axes (the control devices are usually DAC's to set an analog voltage, - encoder counting chips for feedback, etc.) -\end_inset - - supported by EMC. - It is an ISA card and it exists in different flavours (all supported by - this driver). - The board includes up to 8 channels of quadrature encoder input, 8 channels - of analog input and output, 32 bits digital I/O, an interval timer with - interrupt and a watchdog. -\layout Subsection - -Installing: -\layout LyX-Code - -loadrt hal_stg [base=
] [num_chan=] [dio=""] [model=] -\layout Standard - -The base address field is optional; if it's not provided the driver attempts - to autodetect the board. - The num_chan field is used to specify the number of channels available - on the card, if not used the 8 axis version is assumed. - The digital inputs/outputs configuration is determined by a config string - passed to insmod when loading the module. - The format consists of a four character string that sets the direction - of each group of pins. - Each character of the direction string is either "I" or "O". - The first character sets the direction of port A (Port A - DIO.0-7), the - next sets port B (Port B - DIO.8-15), the next sets port C (Port C - DIO.16-23), - and the fourth sets port D (Port D - DIO.24-31). - The model field can be used in case the driver doesn't autodetect the right - card version -\begin_inset Foot -collapsed true - -\layout Standard - -hint: after starting up the driver, 'dmesg' can be consulted for messages - relevant to the driver (e.g. - autodetected version number and base address) -\end_inset - -. - For example: -\layout LyX-Code - -loadrt hal_stg base=0x300 num_chan=4 dio="IOIO" -\layout Standard - -This example installs the stg driver for a card found at the base address - of 0x300, 4 channels of encoder feedback, DAC's and ADC's, along with 32 - bits of I/O configured like this: the first 8 (Port A) configured as Input, - the next 8 (Port B) configured as Output, the next 8 (Port C) configured - as Input, and the last 8 (Port D) configured as Output -\layout LyX-Code - -loadrt hal_stg -\layout Standard - -This example installs the driver and attempts to autodetect the board address - and board model, it installs 8 axes by default along with a standard I/O - setup: Port A & B configured as Input, Port C & D configured as Output. -\layout Subsection - -Pins -\layout Itemize - - -\family typewriter -\noun on -(s32 -\noun default -) stg..counts -\family default --- Tracks the counted encoder ticks. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..position -\family default - -- Outputs a converted position. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..dac-value -\family default --- Drives the voltage for the corresponding DAC. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..adc-value -\family default - -- Tracks the measured voltage from the corresponding ADC. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -stg.in- -\family default - -- Tracks a physical input pin. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -stg.in--not -\family default - -- Tracks a physical input pin, but inverted. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -stg.out- -\family default - -- Drives a physical output pin -\layout Standard - -For each pin, -\family typewriter - -\family default - is the axis number, and -\family typewriter - -\family default - is the logic pin number of the STG -\begin_inset Foot -collapsed true - -\layout Standard - -if IIOO is defined, there are 16 input pins (in-00 .. - in-15) and 16 output pins (out-00 .. - out-15), and they correspond to PORTs ABCD (in-00 is PORTA.0, out-15 is - PORTD.7) -\end_inset - -. -\layout Standard - -The -\family typewriter -in- -\family default - HAL pin is TRUE if the physical pin is high, and FALSE if the physical - pin is low. - The -\family typewriter -in--not -\family default - HAL pin is inverted -- it is FALSE if the physical pin is high. - By connecting a signal to one or the other, the user can determine the - state of the input. -\layout Subsection - -Parameters -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -stg..position-scale -\family default - -- The number of counts / user unit (to convert from counts to units). -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..dac-offset -\family default --- Sets the offset for the corresponding DAC. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..dac-gain -\family default - -- Sets the gain of the corresponding DAC. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..adc-offset -\family default - -- Sets the offset of the corresponding ADC. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) stg..adc-gain -\family default - -- Sets the gain of the corresponding ADC. -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) stg.out--invert -\family default - -- Inverts an output pin. -\layout Standard - -The -\family typewriter --invert -\family default - parameter determines whether an output pin is active high or active low. - If -\family typewriter --invert -\family default - is FALSE, setting the HAL -\family typewriter -out- -\family default - pin TRUE drives the physical pin high, and FALSE drives it low. - If -\family typewriter --invert -\family default - is TRUE, then setting the HAL -\family typewriter -out- -\family default - pin TRUE will drive the physical pin low. -\layout Subsection - -Functions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -stg.capture-position -\family default - -- Reads the encoder counters from the axis -\family typewriter - -\family default -. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -stg.write-dacs -\family default --- Writes the voltages to the DACs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -stg.read-adcs -\family default - -- Reads the voltages from the ADCs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -stg.di-read -\family default - -- Reads physical -\family typewriter -in- -\family default - pins of all ports and updates all HAL -\family typewriter -in- -\family default - and -\family typewriter -in--not -\family default - pins. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -stg.do-write -\family default - -- Reads all HAL -\family typewriter -out- -\family default - pins and updates all physical output pins. -\layout Section - -Mesa Electronics m5i20 -\begin_inset Quotes eld -\end_inset - -Anything I/O Card -\begin_inset Quotes erd -\end_inset - - -\layout Standard - -The Mesa Electronics m5i20 card consists of an FPGA that can be loaded with - a wide variety of configurations, and has 72 pins that leave the PC. - The assignment of the pins depends on the FPGA configuration. - Currently there is a HAL driver for the -\begin_inset Quotes eld -\end_inset - -4 axis host based motion control -\begin_inset Quotes erd -\end_inset - - configuration, and this FPGA configurations is also provided with EMC2. - It provides 8 encoder counters, 4 PWM outputs (normally used as DACs) and - up to 48 digital I/O channels, 32 inputs and 16 outputs. -\begin_inset Foot -collapsed true - -\layout Standard - -Ideally the encoders, -\begin_inset Quotes eld -\end_inset - -DACs -\begin_inset Quotes erd -\end_inset - -, and digital I/O would comply with the canonical interfaces defined earlier, - but they don't. - Fixing that is on the things-to-do list. -\end_inset - - -\layout Standard - -Installing: -\layout LyX-Code - -loadrt hal_m5i20 [loadFpga=1|0] [dacRate=] -\layout Standard - -If -\family typewriter -\series bold -loadFpga -\family default -\series default - is 1 (the default) the driver will load the FPGA configuration on startup. - If it is 0, the driver assumes the configuration is already loaded. - -\family typewriter -\series bold -dacRate -\family default -\series default - sets the carrier frequency for the PWM outputs, in Hz. - The default is 32000, for 32KHz PWM. - Valid values are from 1 to 32226. - The driver prints some useful debugging message to the kernel log, which - can be viewed with -\family typewriter -\series bold -dmesg -\family default -\series default -. -\layout Standard - -Up to 4 boards may be used in one system. -\layout Subsection - -Pins -\layout Standard - -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero, however this driver uses the PCI board ID, so it may be - non-zero even if there is only one board. -\layout Itemize - - -\family typewriter -\noun on -(s32 -\noun default -) m5i20..enc--count -\family default --- Encoder position, in counts. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) m5i20..enc--position -\family default --- Encoder position, in user units. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..enc--index -\family default - -- Current status of index pulse input? -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default - m5i20..enc--index-enable -\family default --- when -\noun on -true -\noun default -, and an index pulse appears on the encoder input, reset counter to zero - and clear -\family typewriter -index-enable -\family default -. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..enc--reset -\family default - -- When true, counter is forced to zero. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..dac--enable -\family default - -- Enables DAC if true. - DAC outputs zero volts if false? -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -m5i20..dac--value -\family default - -- Analog output value for PWM -\begin_inset Quotes eld -\end_inset - -DAC -\begin_inset Quotes erd -\end_inset - - (in user units, see -\family typewriter --scale -\family default - and -\family typewriter --offset -\family default -) -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..in- -\family default - -- State of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..in--not -\family default - -- Inverted state of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..out- -\family default - -- Value to be written to digital output, see canonical digital output. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..estop-in -\family default - -- Dedicated estop input, more details needed. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..estop-in-not -\family default - -- Inverted state of dedicated estop input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -m5i20..watchdog-reset -\family default - -- Bidirectional, - Set TRUE to reset watchdog once, is automatically cleared. - If bit value 16 is set in -\family typewriter -watchdog-control -\family default - then this value is not used, and the hardware watchdog is cleared every - time the -\family typewriter -dac-write -\family default - function is executed. -\layout Subsection - -Parameters -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -m5i20..enc--scale -\family default - -- The number of counts / user unit (to convert from counts to units). -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) m5i20..dac--offset -\family default --- Sets the DAC offset. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) m5i20..dac--gain -\family default --- Sets the DAC gain (scaling). -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) m5i20..dac--interlaced -\family default --- Sets the DAC to interlaced mode. - Use this mode if you are filtering the PWM to generate an anaolg voltage. -\begin_inset Foot -collapsed true - -\layout Standard - -With normal 10 bit PWM, 50% duty cycle would be 512 cycles on and 512 cycles - off = ca 30 kHz with 33 MHz reference counter. - With fully interleaved PWM this would be 1 cycle on, 1 cycle off for 1024 - cycles (16.66 MHz if the PWM reference counter runs at 33 MHz) = much easier - to filter. - The 5I20 configuration interlace is somewhat between non and fully interlaced - (to make it easy to filter but not have as many transistions as fully interleav -ed). -\end_inset - - -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) m5i20..out--invert -\family default --- Inverts a digital output, see canonical digital output. -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) m5i20..watchdog-control -\family default - -- Configures the watchdog. - The value may be a bitwise OR of the following values: -\newline - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -Bit # -\end_inset - - -\begin_inset Text - -\layout Standard - -Value -\end_inset - - -\begin_inset Text - -\layout Standard - -Meaning -\end_inset - - - - -\begin_inset Text - -\layout Standard - -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Watchdog is enabled -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Watchdog is automatically reset by DAC writes (the HAL -\family typewriter -dac-write -\family default - function) -\end_inset - - - - -\end_inset - - Typically, the useful values are 0 (watchdog disabled) or 3 (watchdog enabled, - cleared by -\family typewriter -dac-write -\family default -). -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) m5i20..led-view -\family default - -- Maps some of the I/O to onboard LEDs. - See table below. -\layout Subsection - -Functions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -m5i20..encoder-read -\family default - -- Reads all encoder counters. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default - m5i20..digital-in-read -\family default --- Reads digital inputs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -m5i20..dac-write -\family default --- Writes the voltages (PWM duty cycles) to the -\begin_inset Quotes eld -\end_inset - -DACs -\begin_inset Quotes erd -\end_inset - -. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default - m5i20..digital-out-write -\family default --- Writes digital outputs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -m5i20..misc-update -\family default - -- Writes watchdog timer configuration to hardware. - Resets watchdog timer. - Updates E-stop pin (more info needed). - Updates onboard LEDs. - -\layout Subsection - -Connector pinout -\layout Standard - -The Hostmot-4 FPGA configuration has the following pinout. - There are three 50-pin ribbon cable connectors on the card: P2, P3, and - P4. - There are also 8 status LEDs. -\layout Subsubsection - -Connector P2 -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -m5i20 card connector P2 -\end_inset - - -\begin_inset Text - -\layout Standard - -Function/HAL-pin -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-01 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -3 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-01 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-00 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -7 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-00 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -9 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-01 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -11 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-00 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -13 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-01 output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -15 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-00 output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -17 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR output for dac-01 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -19 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR output for dac-00 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -21 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-01-enable output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -23 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-00-enable output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -25 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-03 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -27 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-03 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -29 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-02 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -31 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-02 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -33 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-03 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -35 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-02 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -37 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-03 output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -39 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-02 output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -41 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR output for dac-03 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -43 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR output for dac-02 -\end_inset - - - - -\begin_inset Text - -\layout Standard - -45 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-03-enable output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -47 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac-02-enable output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -49 -\end_inset - - -\begin_inset Text - -\layout Standard - -Power +5 V (or +3.3V ?) -\end_inset - - - - -\begin_inset Text - -\layout Standard - -all even pins -\end_inset - - -\begin_inset Text - -\layout Standard - -Ground -\end_inset - - - - -\end_inset - - -\layout Subsubsection - -Connector P3 -\layout Standard - -Encoder counters 4 - 7 work simultaneously with in-00 to in-11. - -\layout Standard - -If you are using in-00 to in-11 as general purpose IO then reading enc-<4-7> - will produce some random junk number. -\layout Standard - - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -m5i20 card connector P3 -\end_inset - - -\begin_inset Text - -\layout Standard - -Function/HAL-pin -\end_inset - - -\begin_inset Text - -\layout Standard - -Secondary Function/HAL-pin -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-00 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-04 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -3 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-01 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-04 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-02 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-04 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -7 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-03 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-05 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -9 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-04 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-05 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -11 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-05 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-05 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -13 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-06 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-06 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -15 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-07 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-06 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -17 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-08 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-06 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -19 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-09 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-07 A input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -21 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-10 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-07 B input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -23 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-11 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-07 index input -\end_inset - - - - -\begin_inset Text - -\layout Standard - -25 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-12 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -27 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-13 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -29 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-14 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -31 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-15 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -33 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-00 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -35 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-01 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -37 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-02 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -39 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-03 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -41 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-04 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -43 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-05 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -45 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-06 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -47 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-07 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -49 -\end_inset - - -\begin_inset Text - -\layout Standard - -Power +5 V (or +3.3V ?) -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -all even pins -\end_inset - - -\begin_inset Text - -\layout Standard - -Ground -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\end_inset - - -\layout Subsubsection - -Connector P4 -\layout Standard - -The index mask masks the index input of the encoder so that the encoder - index can be combined with a mechanical switch or opto detector to clear - or latch the encoder counter only when the mask input bit is in proper - state (selected by mask polarity bit) and encoder index occurs. - This is useful for homing. - The behaviour of these pins is controlled by the Counter Control Register - (CCR), however there is currently no function in the driver to change the - CCR. - See REGMAP4 -\begin_inset Foot -collapsed false - -\layout Standard - -emc2/src/hal/drivers/m5i20/REGMAP4E -\end_inset - - for a description of the CCR. -\layout Standard - - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -m5i20 card connector P4 -\end_inset - - -\begin_inset Text - -\layout Standard - -Function/HAL-pin -\end_inset - - -\begin_inset Text - -\layout Standard - -Secondary Function/HAL-pin -\end_inset - - - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-16 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-00 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -3 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-17 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-01 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -5 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-18 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-02 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -7 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-19 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-03 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -9 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-20 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -11 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-21 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -13 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-22 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -15 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-23 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -17 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-24 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-04 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -19 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-25 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-05 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -21 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-26 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-06 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -23 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-27 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc-07 index mask -\end_inset - - - - -\begin_inset Text - -\layout Standard - -25 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-28 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -27 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-29 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -29 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-30 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -31 -\end_inset - - -\begin_inset Text - -\layout Standard - -in-31 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -33 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-08 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -35 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-09 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -37 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-10 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -39 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-11 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -41 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-12 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -43 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-13 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -45 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-14 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -47 -\end_inset - - -\begin_inset Text - -\layout Standard - -out-15 -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -49 -\end_inset - - -\begin_inset Text - -\layout Standard - -Power +5 V (or +3.3V ?) -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - -all even pins -\end_inset - - -\begin_inset Text - -\layout Standard - -Ground -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\end_inset - - -\layout Subsubsection - -LEDs -\layout Standard - -The status LEDs will monitor one motion channel set by the -\family typewriter - m5i20..led-view -\family default -parameter. - A call to -\family typewriter -m5i20..misc-update -\family default - is required to update the viewed channel. -\layout Standard - - -\begin_inset Tabular - - - - - - -\begin_inset Text - -\layout Standard - -LED name -\end_inset - - -\begin_inset Text - -\layout Standard - -Output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED0 -\end_inset - - -\begin_inset Text - -\layout Standard - -IRQLatch ? -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED1 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc- A -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED2 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc- B -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED3 -\end_inset - - -\begin_inset Text - -\layout Standard - -enc- index -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED4 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac- DIR -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED5 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac- -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED6 -\end_inset - - -\begin_inset Text - -\layout Standard - -dac--enable -\end_inset - - - - -\begin_inset Text - -\layout Standard - -LED7 -\end_inset - - -\begin_inset Text - -\layout Standard - -watchdog timeout ? -\end_inset - - - - -\end_inset - - -\layout Section - -Vital Systems Motenc-100 and Motenc-LITE -\layout Standard - -The Vital Systems Motenc-100 and Motenc-LITE are 8- and 4-channel servo - control boards. - The Motenc-100 provides 8 quadrature encoder counters, 8 analog inputs, - 8 analog outputs, 64 (68?) digital inputs, and 32 digital outputs. - The Motenc-LITE has only 4 encoder counters, 32 digital inputs and 16 digital - outputs, but it still has 8 analog inputs and 8 analog outputs. - The driver automatically identifies the installed board and exports the - appropriate HAL objects. -\begin_inset Foot -collapsed true - -\layout Standard - -Ideally the encoders, DACs, ADCs, and digital I/O would comply with the - canonical interfaces defined earlier, but they don't. - Fixing that is on the things-to-do list. -\end_inset - - -\layout Standard - -Installing: -\layout LyX-Code - -loadrt hal_motenc -\layout Standard - -During loading (or attempted loading) the driver prints some usefull debugging - message to the kernel log, which can be viewed with -\family typewriter -\series bold -dmesg -\family default -\series default -. -\layout Standard - -Up to 4 boards may be used in one system. -\layout Subsection - -Pins -\layout Standard - -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero. - However this driver sets the ID based on a pair of jumpers on the baord, - so it may be non-zero even if there is only one board. -\layout Itemize - - -\family typewriter -\noun on -(s32 -\noun default -) motenc..enc--count -\family default --- Encoder position, in counts. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) motenc..enc--position -\family default --- Encoder position, in user units. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..enc--index -\family default - -- Current status of index pulse input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..enc--idx-latch -\family default - -- Driver sets this pin true when it latches an index pulse (enabled by - -\family typewriter -latch-index -\family default -). - Cleared by clearing -\family typewriter - latch-index -\family default -. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..enc--latch-index -\family default - -- If this pin is true, the driver will reset the counter on the next index - pulse. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..enc--reset-count -\family default - -- If this pin is true, the counter will immediately be reset to zero, - and the pin will be cleared. -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -motenc..dac--value -\family default - -- Analog output value for DAC (in user units, see -\family typewriter --gain -\family default - and -\family typewriter --offset -\family default -) -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -motenc..adc--value -\family default - -- Analog input value read by ADC (in user units, see -\family typewriter --gain -\family default - and -\family typewriter --offset -\family default -) -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..in- -\family default - -- State of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..in--not -\family default - -- Inverted state of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..out- -\family default - -- Value to be written to digital output, seen canonical digital output. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..estop-in -\family default - -- Dedicated estop input, more details needed. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..estop-in-not -\family default - -- Inverted state of dedicated estop input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -motenc..watchdog-reset -\family default - -- Bidirectional, - Set TRUE to reset watchdog once, is automatically cleared. -\layout Subsection - -Parameters -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -motenc..enc--scale -\family default - -- The number of counts / user unit (to convert from counts to units). -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) motenc..dac--offset -\family default --- Sets the DAC offset. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) motenc..dac--gain -\family default --- Sets the DAC gain (scaling). -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) motenc..adc--offset -\family default --- Sets the ADC offset. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) motenc..adc--gain -\family default --- Sets the ADC gain (scaling). -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) motenc..out--invert -\family default --- Inverts a digital output, see canonical digital output. -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) motenc..watchdog-control -\family default - -- Configures the watchdog. - The value may be a bitwise OR of the following values: -\newline - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -Bit # -\end_inset - - -\begin_inset Text - -\layout Standard - -Value -\end_inset - - -\begin_inset Text - -\layout Standard - -Meaning -\end_inset - - - - -\begin_inset Text - -\layout Standard - -0 -\end_inset - - -\begin_inset Text - -\layout Standard - -1 -\end_inset - - -\begin_inset Text - -\layout Standard - -Timeout is 16ms if set, 8ms if unset -\end_inset - - - - -\begin_inset Text - -\layout Standard - -2 -\end_inset - - -\begin_inset Text - -\layout Standard - -4 -\end_inset - - -\begin_inset Text - -\layout Standard - -Watchdog is enabled -\end_inset - - - - -\begin_inset Text - -\layout Standard - -4 -\end_inset - - -\begin_inset Text - -\layout Standard - -16 -\end_inset - - -\begin_inset Text - -\layout Standard - -Watchdog is automatically reset by DAC writes (the HAL -\family typewriter -dac-write -\family default - function) -\end_inset - - - - -\end_inset - - Typically, the useful values are 0 (watchdog disabled) or 20 (8ms watchdog - enabled, cleared by -\family typewriter -dac-write -\family default -). -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) motenc..led-view -\family default - -- Maps some of the I/O to onboard LEDs? -\layout Subsection - -Functions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -motenc..encoder-read -\family default - -- Reads all encoder counters. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -motenc..adc-read -\family default --- Reads the analog-to-digital converters. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default - motenc..digital-in-read -\family default --- Reads digital inputs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -motenc..dac-write -\family default --- Writes the voltages to the DACs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default - motenc..digital-out-write -\family default --- Writes digital outputs. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -motenc..misc-update -\family default - -- Updates misc stuff. -\layout Section - -Pico Systems PPMC (Parallel Port Motion Control) -\layout Standard - -Pico Systems has a family of boards for doing servo, stepper, and pwm control. - The boards connect to the PC through a parallel port working in EPP mode. - Although most users connect one board to a parallel port, in theory any - mix of up to 8 or 16 boards can be used on a single parport. - One driver serves all types of boards. - The final mix of I/O depends on the connected board(s). - The driver doesn't distinguish between boards, it simply numbers I/O channels - (encoders, etc) starting from 0 on the first card. -\layout Standard - -Installing: -\layout LyX-Code - -loadrt hal_ppmc port_addr=[,[,...]] -\layout Standard - -The -\family typewriter -\series bold -port_addr -\family default -\series default - parameter tells the driver what parallel port(s) to check. - By default, -\family typewriter -\series bold - -\family default -\series default - is 0x0378, and -\family typewriter -\series bold - -\family default -\series default - and following are not used. - The driver searches the entire address space of the enhanced parallel port(s) - at -\family typewriter -\series bold -port_addr -\family default -\series default -, looking for any board(s) in the PPMC family. - It then exports HAL pins for whatever it finds. - During loading (or attempted loading) the driver prints some usefull debugging - message to the kernel log, which can be viewed with -\family typewriter -\series bold -dmesg -\family default -\series default -. -\layout Standard - -Up to 3 parport busses may be used, and each bus may have up to 8 devices - on it. -\layout Subsection - -Pins -\layout Standard - -In the following pins, parameters, and functions, is the board ID. - According to the naming conventions the first board should always have - an ID of zero. - However this driver sets the ID based on a pair of jumpers on the baord, - so it may be non-zero even if there is only one board. -\layout Itemize - - -\family typewriter -\noun on -(s32 -\noun default -) ppmc..encoder..count -\family default --- Encoder position, in counts. -\layout Itemize - - -\family typewriter -\noun on -(s32 -\noun default -) ppmc..encoder..delta -\family default --- Change in counts since last read. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..encoder..position -\family default --- Encoder position, in user units. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..encoder..index -\family default - -- Something to do with index pulse. -\begin_inset Foot -collapsed true - -\layout Standard - -Index handling does _not_ comply with the canonical encoder interface, and - should be changed. -\end_inset - - -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..pwm..enable -\family default - -- Enables a PWM generator. -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -ppmc..pwm..value -\family default - -- Value which determines the duty cycle of the PWM waveforms. - The value is divided by -\family typewriter -pwm..scale -\family default -, and if the result is 0.6 the duty cycle will be 60%, and so on. - Negative values result in the duty cycle being based on the absolute value, - and the direction pin is set to indicate negative. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..stepgen..enable -\family default - -- Enables a step pulse generator. -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -ppmc..stepgen..velocity -\family default - -- Value which determines the step frequency. - The value is multiplied by -\family typewriter -stepgen..scale -\family default -, and the result is the frequency in steps per second. - Negative values result in the frequency being based on the absolute value, - and the direction pin is set to indicate negative. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..in- -\family default - -- State of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..in..not -\family default - -- Inverted state of digital input pin, see canonical digital input. -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -ppmc..out- -\family default - -- Value to be written to digital output, seen canonical digital output. -\layout Subsection - -Parameters -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -ppmc..enc..scale -\family default - -- The number of counts / user unit (to convert from counts to units). -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default -ppmc..pwm..freq -\family default - -- The PWM carrier frequency, in Hz. - Applies to a group of four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. - Minimum is 153Hz, maximum is 500KHz. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..pwm..scale -\family default --- Scaling for PWM generator. - If -\family typewriter -scale -\family default - is X, then the duty cycle will be 100% when the -\family typewriter -value -\family default - pin is X (or -X). -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..pwm..max-dc -\family default --- Maximum duty cycle, from 0.0 to 1.0. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..pwm..min-dc -\family default --- Minimum duty cycle, from 0.0 to 1.0. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..pwm..duty-cycle -\family default --- Actual duty cycle (used mostly for troubleshooting.) -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) ppmc..pwm..bootstrap -\family default --- If true, the PWM generator will generate a short sequence of pulses of - both polarities when it is enabled, to charge the bootstrap capacators - used on some MOSFET gate drivers. -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) ppmc..stepgen..setup-time -\family default --- Sets minimum time between direction change and step pulse, in units of - 100nS. - Applies to a group fof four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) ppmc..stepgen..pulse-width -\family default --- Sets width of step pulses, in units of 100nS. - Applies to a group fof four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\layout Itemize - - -\family typewriter -( -\noun on -u32 -\noun default -) ppmc..stepgen..pulse-space-min -\family default --- Sets minimum time between pulses, in units of 100nS. - The maximum step rate is 1/( 100nS * ( -\family typewriter - pulse-width -\family default - + -\family typewriter - pulse-space-min -\family default - )). - Applies to a group fof four consecutive PWM generators, as indicated by - -\family typewriter - -\family default -. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..stepgen..scale -\family default --- Scaling for step pulse generator. - The step frequency in Hz is the absolute value of -\family typewriter -velocity -\family default - * -\family typewriter -scale -\family default -. -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..stepgen..max-vel -\family default --- The maximum value for -\family typewriter -velocity -\family default -. - Commands greater than -\family typewriter -max-vel -\family default - will be clamped. - Also applies to negative values. - (The absolute value is clamped.) -\layout Itemize - - -\family typewriter -( -\noun on -float -\noun default -) ppmc..stepgen..frequency -\family default --- Actual step pulse frequency in Hz (used mostly for troubleshooting.) -\layout Itemize - - -\family typewriter -( -\noun on -bit -\noun default -) ppmc..out..invert -\family default --- Inverts a digital output, see canonical digital output. -\layout Subsection - -Functions -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -ppmc..read -\family default - -- Reads all inputs (digital inputs and encoder counters) on one port. -\layout Itemize - - -\family typewriter -\noun on -(funct) -\noun default -ppmc..write -\family default --- Writes all outputs (digital outputs, stepgens, PWMs) on one port. -\layout Section - - -\begin_inset LatexCommand \label{sec:Pluto-P:-generalities} - -\end_inset - -Pluto-P -\begin_inset LatexCommand \index{Pluto-P} - -\end_inset - -: generalities -\layout Standard - -The Pluto-P is an inexpensive ($60) FPGA board featuring the ACEX1K -\begin_inset LatexCommand \index{ACEX1K} - -\end_inset - - chip from Altera. -\layout Subsection - -Requirements -\layout Enumerate - -A Pluto-P board -\layout Enumerate - -An EPP-compatible parallel port, configured for EPP mode in the system BIOS -\layout Subsection - -Connectors -\layout Itemize - -The Pluto-P board is shipped with the left connector presoldered, with the - key in the indicated position. - The other connectors are unpopulated. - There does not seem to be a standard 12-pin IDC connector, but some of - the pins of a 16P connector can hang off the board next to QA3/QZ3. -\layout Itemize - -The bottom and right connectors are on the same .1" grid, but the left connector - is not. - If OUT2\SpecialChar \ldots{} -OUT9 are not required, a single IDC connector can span the bottom - connector and the bottom two rows of the right connector. - -\layout Subsection - -Physical Pins -\layout Itemize - -Read the ACEX1K datasheet for information about input and output voltage - thresholds. - The pins are all configured in "LVTTL/LVCMOS" mode and are generally compatible - with 5V TTL logic. -\layout Itemize - -Before configuration and after properly exiting emc2, all Pluto-P pins are - tristated with weak pull-ups (20k -\begin_inset Formula $\Omega$ -\end_inset - - min, 50k -\begin_inset Formula $\Omega$ -\end_inset - - max). - If the watchdog timer is enabled (the default), these pins are also tristated - after an interruption of communication between emc2 and the board. - The watchdog timer takes approximately 6.5ms to activate. - However, software bugs in the pluto_servo firmware or emc2 can leave the - Pluto-P pins in an undefined state. -\layout Itemize - -In pwm+dir mode, by default dir is HIGH for negative values and LOW for - positive values. - To select HIGH for positive values and LOW for negative values, set the - corresponding dout-NN-invert parameter TRUE to invert the signal. -\layout Itemize - -The index input is triggered on the rising edge. - Initial testing has shown that the QZx inputs are particularly noise sensitive, - due to being polled every 25ns. - Digital filtering has been added to filter pulses shorter than 175ns (seven - polling times). - Additional external filtering on all input pins, such as a Schmitt buffer - or inverter, RC filter, or differential receiver (if applicable) is recommended. -\layout Itemize - -The IN1\SpecialChar \ldots{} -IN7 pins have 22-ohm series resistors to their associated FPGA pins. - No other pins have any sort of protection for out-of-spec voltages or currents. - It is up to the integrator to add appropriate isolation and protection. - Traditional parallel port optoisolator boards do not work with pluto_servo - due to the bidirectional nature of the EPP protocol. - -\layout Subsection - -LED -\layout Itemize - -When the device is unprogrammed, the LED glows faintly. - When the device is programmed, the LED glows according to the duty cycle - of PWM0 ( -\series bold -LED -\series default - = -\series bold -UP0 -\series default - -\emph on -xor -\emph default - -\series bold -DOWN0 -\series default -) or STEPGEN0 ( -\series bold -LED -\series default - = -\series bold -STEP0 -\series default - -\emph on -xor -\emph default - -\series bold -DIR0 -\series default -). -\layout Subsection - -Power -\layout Itemize - -A small amount of current may be drawn from VCC. - The available current depends on the unregulated DC input to the board. - Alternately, regulated +3.3VDC may be supplied to the FPGA through these - VCC pins. - The required current is not yet known, but is probably around 50mA plus - I/O current. -\layout Itemize - -The regulator on the Pluto-P board is a low-dropout type. - Supplying 5V at the power jack will allow the regulator to work properly. -\layout Subsection - -PC interface -\layout Itemize - -At present, only a single pluto_servo or pluto_step board is supported. - At present there is no provision for multiple boards on one parallel port - (because all boards reside at the same EPP address) but supporting one - board per parallel port should be possible. -\layout Subsection - -Rebuilding the FPGA firmware -\layout Standard - -The -\family typewriter -src/hal/drivers/pluto_servo_firmware/ -\family default - and -\family typewriter -src/hal/drivers/pluto_step_firmware/ -\series bold - -\family default -\series default -subdirectories contain the Verilog source code plus additional files used - by Quartus for the FPGA firmwares. - Altera's Quartus II software is required to rebuild the FPGA firmware. - To rebuild the firmware from the .hdl and other source files, open the -\family typewriter -.qpf -\family default - file and press CTRL-L. - Then, recompile emc2. -\layout Standard - -Like the HAL hardware driver, the FPGA firmware is licensed under the terms - of the GNU General Public License. -\layout Standard - -The gratis version of Quartus II runs only on Microsoft Windows, although - there is apparently a paid version that runs on Linux. - -\layout Subsection - -For more information -\layout Standard - -The Pluto-P board may be ordered from -\begin_inset LatexCommand \htmlurl{http://www.knjn.com/ShopBoards_Parallel.html} - -\end_inset - - (US based, international shipping is available). - Some additional information about it is available from -\begin_inset LatexCommand \htmlurl{http://www.fpga4fun.com/board_pluto-P.html} - -\end_inset - - and from -\begin_inset LatexCommand \htmlurl[the developer's blog]{http://emergent.unpy.net/01165081407} - -\end_inset - -. -\layout Section - - -\begin_inset LatexCommand \label{sec:pluto-servo} - -\end_inset - -pluto-servo -\begin_inset LatexCommand \index{pluto-servo} - -\end_inset - -: Hardware PWM and quadrature counting -\layout Standard - -The pluto_servo system is suitable for control of a 4-axis CNC mill with - servo motors, a 3-axis mill with PWM spindle control, a lathe with spindle - encoder, etc. - The large number of inputs allows a full set of limit switches. -\layout Standard - -This driver features: -\layout Itemize - -4 quadrature channels with 40MHz sample rate. - The counters operate in "4x" mode. - The maximum useful quadrature rate is 8191 counts per emc2 servo cycle, - or about 8MHz for EMC2's default 1ms servo rate. -\layout Itemize - -4 PWM channels, "up/down" or "pwm+dir" style. - 4095 duty cycles from -100% to +100%, including 0%. - The PWM period is approximately 19.5kHz (40MHz / 2047). - A PDM-like mode is also available. - -\layout Itemize - -18 digital outputs: 10 dedicated, 8 shared with PWM functions. - (Example: A lathe with unidirectional PWM spindle control may use 13 total - digital outputs) -\layout Itemize - -20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. - (Example: A lathe with index pulse only on the spindle may use 13 total - digital inputs) -\layout Itemize - -EPP communication with the PC. - The EPP communication typically takes around 100uS on machines tested so - far, enabling servo rates above 1kHz. - -\layout Subsection - -Pinout -\layout Description - -UPx The "up" (up/down mode) or -\begin_inset Quotes eld -\end_inset - -pwm -\begin_inset Quotes erd -\end_inset - - (pwm+direction mode) signal from PWM generator X. - May be used as a digital output if the corresponding PWM channel is unused, - or the output on the channel is always negative. - The corresponding digital output invert may be set to TRUE to make UPx - active low rather than active high. -\layout Description - -DNx The "down" (up/down mode) or -\begin_inset Quotes eld -\end_inset - -direction -\begin_inset Quotes erd -\end_inset - - (pwm+direction mode) signal from PWM generator X. - May be used as a digital output if the corresponding PWM channel is unused, - or the output on the channel is never negative. - The corresponding digital ouput invert may be set to TRUE to make DNx active - low rather than active high. - -\layout Description - -QAx,\SpecialChar ~ -QBx The A and B signals for Quadrature counter X. - May be used as a digital input if the corresponding quadrature channel - is unused. -\layout Description - -QZx The Z (index) signal for quadrature counter X. - May be used as a digital input if the index feature of the corresponding - quadrature channel is unused. - -\layout Description - -INx Dedicated digital input #x -\layout Description - -OUTx Dedicated digital output #x -\layout Description - -GND Ground -\layout Description - -VCC +3.3V regulated DC -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - -Pluto-Servo Pinout -\begin_inset LatexCommand \index{pluto-servo pinout} - -\end_inset - - -\begin_inset LatexCommand \label{fig:Pluto-Servo-Pinout} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename pluto-pinout.eps - -\end_inset - - -\end_inset - - -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{table:Pluto-Servo-Alternate-Pin} - -\end_inset - -Pluto-Servo Alternate Pin Functions -\begin_inset LatexCommand \index{pluto-servo alternate pin functions} - -\end_inset - - -\layout Standard - - -\begin_inset Tabular - - - - - - - -\begin_inset Text - -\layout Standard - -Primary function -\end_inset - - -\begin_inset Text - -\layout Standard - -Alternate Function -\end_inset - - -\begin_inset Text - -\layout Standard - -Behavior if both functions used -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -UP0 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM0 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-0-pwmdir is TRUE, this pin is the PWM output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT10 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with UP0 or PWM0 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -UP1 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM1 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-1-pwmdir is TRUE, this pin is the PWM output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT12 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with UP1 or PWM1 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -UP2 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM2 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-2-pwmdir is TRUE, this pin is the PWM output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT14 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with UP2 or PWM2 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -UP3 -\end_inset - - -\begin_inset Text - -\layout Standard - -PWM3 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-3-pwmdir is TRUE, this pin is the PWM output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT16 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with UP3 or PWM3 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -DN0 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR0 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-0-pwmdir is TRUE, this pin is the DIR output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT11 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with DN0 or DIR0 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -DN1 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR1 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-1-pwmdir is TRUE, this pin is the DIR output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT13 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with DN1 or DIR1 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -DN2 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR2 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-2-pwmdir is TRUE, this pin is the DIR output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT15 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with DN2 or DIR2 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -DN3 -\end_inset - - -\begin_inset Text - -\layout Standard - -DIR3 -\end_inset - - -\begin_inset Text - -\layout Standard - -When pwm-3-pwmdir is TRUE, this pin is the DIR output -\end_inset - - - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -OUT17 -\end_inset - - -\begin_inset Text - -\layout Standard - -XOR'd with DN3 or DIR3 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QZ0 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN8 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QZ1 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN9 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QZ2 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN10 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QZ3 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN11 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QA0 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN12 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QA1 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN13 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QA2 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN14 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QA3 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN15 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QB0 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN16 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QB1 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN17 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QB2 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN18 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -QB3 -\end_inset - - -\begin_inset Text - -\layout Standard - -IN19 -\end_inset - - -\begin_inset Text - -\layout Standard - -Read same value -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Subsection - -Input latching and output updating -\layout Itemize - -PWM duty cycles for each channel are updated at different times. -\layout Itemize - -Digital outputs OUT0 through OUT9 are all updated at the same time. - Digital outputs OUT10 through OUT17 are updated at the same time as the - pwm function they are shared with. -\layout Itemize - -Digital inputs IN0 through IN19 are all latched at the same time. -\layout Itemize - -Quadrature positions for each channel are latched at different times. - -\layout Subsection - -HAL Functions, Pins and Parameters -\layout Standard - -A list of all 'loadrt' arguments, HAL function names, pin names and parameter - names is in the manual page, -\emph on -pluto_servo.9 -\emph default -. -\layout Subsection - -Compatible driver hardware -\layout Standard - -A schematic for a 2A, 2-axis PWM servo amplifier board is available ( -\begin_inset LatexCommand \htmlurl{http://emergent.unpy.net/projects/01148303608} - -\end_inset - -). - The L298 H-Bridge ( -\begin_inset LatexCommand \htmlurl[L298 H-bridge]{http://www.st.com/stonline/books/pdf/docs/1773.pdf} - -\end_inset - -) is inexpensive and can easily be used for motors up to 4A (one motor per - L298) or up to 2A (two motors per L298) with the supply voltage up to 46V. - However, the L298 does not have built-in current limiting, a problem for - motors with high stall currents. - For higher currents and voltages, some users have reported success with - International Rectifier's integrated high-side/low-side drivers. - ( -\begin_inset LatexCommand \url{http://www.cnczone.com/forums/showthread.php?t=25929} - -\end_inset - -) -\layout Section - - -\begin_inset LatexCommand \label{sec:Pluto-step:-Hardware-step} - -\end_inset - -Pluto-step -\begin_inset LatexCommand \index{pluto-step} - -\end_inset - -: 300kHz Hardware Step Generator -\layout Standard - -Pluto-step is suitable for control of a 3- or 4-axis CNC mill with stepper - motors. - The large number of inputs allows for a full set of limit switches. -\layout Standard - -The board features: -\layout Itemize - -4 -\begin_inset Quotes eld -\end_inset - -step+direction -\begin_inset Quotes erd -\end_inset - - channels with 312.5kHz maximum step rate, programmable step length, space, - and direction change times -\layout Itemize - -14 dedicated digital outputs -\layout Itemize - -16 dedicated digital inputs -\layout Itemize - -EPP communuication with the PC -\layout Subsection - -Pinout -\layout Description - -STEPx The -\begin_inset Quotes eld -\end_inset - -step -\begin_inset Quotes erd -\end_inset - - (clock) output of stepgen channel -\series bold -x -\layout Description - -DIRx The -\begin_inset Quotes eld -\end_inset - -direction -\begin_inset Quotes erd -\end_inset - - output of stepgen channel -\series bold -x -\layout Description - -INx Dedicated digital input #x -\layout Description - -OUTx Dedicated digital output #x -\layout Description - -GND Ground -\layout Description - -VCC +3.3V regulated DC -\layout Standard - -While the -\begin_inset Quotes eld -\end_inset - -extended main connector -\begin_inset Quotes erd -\end_inset - - has a superset of signals usually found on a Step & Direction DB25 connector--4 - step generators, 9 inputs, and 6 general-purpose outputs--the layout on - this header is different than the layout of a standard 26-pin ribbon cable - to DB25 connector. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{fig:Pluto-Step-Pinout} - -\end_inset - -Pluto-Step Pinout -\begin_inset LatexCommand \index{pluto-step pinout} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename pluto-step-pinout.eps - -\end_inset - - -\end_inset - - -\layout Subsection - -Input latching and output updating -\layout Itemize - -Step frequencies for each channel are updated at different times. -\layout Itemize - -Digital outputs are all updated at the same time. -\layout Itemize - -Digital inputs are all latched at the same time. -\layout Itemize - -Feedback positions for each channel are latched at different times. - -\layout Subsection - -Step Waveform Timings -\layout Standard - -The firmware and driver enforce step length, space, and direction change - times. - Timings are rounded up to the next multiple of -\begin_inset Formula $1.6\mu s$ -\end_inset - -, with a maximum of -\begin_inset Formula $49.6\mu s$ -\end_inset - -. - The timings are the same as for the software stepgen component, except - that -\begin_inset Quotes eld -\end_inset - -dirhold -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -dirsetup -\begin_inset Quotes erd -\end_inset - - have been merged into a single parameter -\begin_inset Quotes eld -\end_inset - -dirtime -\begin_inset Quotes erd -\end_inset - - which should be the maximum of the two, and that the same step timings - are always applied to all channels. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{fig:Pluto-Step-Timings} - -\end_inset - -Pluto-Step Timings -\begin_inset LatexCommand \index{pluto-step timings} - -\end_inset - - -\layout Standard -\align center - -\begin_inset Graphics - filename pluto_step_waveform.eps - width 50page% - keepAspectRatio - -\end_inset - - -\end_inset - - -\layout Subsection - -HAL Functions, Pins and Parameters -\layout Standard - -A list of all 'loadrt' arguments, HAL function names, pin names and parameter - names is in the manual page, -\emph on -pluto_step.9 -\emph default -. -\the_end diff --git a/docs/src/hal/general_ref.lyx b/docs/src/hal/general_ref.lyx deleted file mode 100644 index 2e591d0be..000000000 --- a/docs/src/hal/general_ref.lyx +++ /dev/null @@ -1,1223 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -General Reference Information -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:GR-Notation" - -\end_inset - -Notation -\end_layout - -\begin_layout Subsection -Typographical Conventions -\end_layout - -\begin_layout Standard -Command line examples are presented in -\family typewriter -\series bold -bold typewriter -\family default -\series default - font. - Responses from the computer will be in -\family typewriter -typewriter -\family default - font. - As of early 2006, there are no longer commands that require root privileges, - so all examples will be preceded by the normal user prompt, -\family typewriter -$ -\family default -. - Text inside square brackets -\family typewriter -[like-this] -\family default - is optional. - Text inside angle brackets -\family typewriter - -\family default - represents a field that can take on different values, and the adjacent - paragraph will explain the appropriate values. - Text items separated by a vertical bar means that one or the other, but - not both, should be present. - All command line examples assume that you are in the -\family typewriter -emc2/ -\family default - directory, and you configured/compiled emc2 for the run-in-place scenario. - Paths will be shown accordingly when needed. -\end_layout - -\begin_layout Subsection -Names -\end_layout - -\begin_layout Standard -All HAL entities are accessed and manipulated by their names, so documenting - the names of pins, signals, parameters, etc, is very important. - HAL names are a maximum of 41 characters long (as defined by HAL_NAME_LEN - in hal.h). - Many names will be presented in a general form, with text inside angle - brackets -\family typewriter - -\family default - representing fields that can take on different values. -\end_layout - -\begin_layout Standard -When pins, signals, or parameters are described for the first time, their - names will be preceeded by their type in -\shape smallcaps -(small caps) -\shape default - and followed by a brief description. - A typical pin definition will look something like these examples: -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in -\family default - -- The HAL pin associated with the physical input pin -\family typewriter - -\family default - on the 25 pin D-shell connector. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(float) -\noun default - pid..output -\family default - -- The output of the PID loop. -\end_layout - -\begin_layout Standard -At times, a shortened version of a name may be used - for example the second - pin above might be referred to simply as -\family typewriter -.output -\family default - when it can be done without causing confusion. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:GR-Naming-Conventions" - -\end_inset - -General Naming Conventions -\end_layout - -\begin_layout Standard -Consistent naming conventions would make HAL much easier to use. - For example, if every encoder driver provided the same set of pins and - named them the same way it would be easy to change from one type of encoder - driver to another. - Unfortunately, like many open-source projects, HAL is a combination of - things that were designed, and things that simply evolved. - As a result, there are many inconsistencies. - This section attempts to address that problem by defining some conventions, - but it will probably be a while before all the modules are converted to - follow them. -\end_layout - -\begin_layout Standard -Halcmd and other low-level HAL utilities treat HAL names as single entities, - with no internal structure. - However, most modules do have some implicit structure. - For example, a board provides several functional blocks, each block might - have several channels, and each channel has one or more pins. - This results in a structure that resembles a directory tree. - Even though halcmd doesn't recognize the tree structure, proper choice - of naming conventions will let it group related items together (since it - sorts the names). - In addition, higher level tools can be designed to recognize such structure, - if the names provide the neccessary information. - To do that, all HAL modules should follow these rules: -\end_layout - -\begin_layout Itemize -Dots ( -\begin_inset Quotes eld -\end_inset - -. -\begin_inset Quotes erd -\end_inset - -) separate levels of the heirarchy. - This is analogous to the slash ( -\begin_inset Quotes eld -\end_inset - -/ -\begin_inset Quotes erd -\end_inset - -) in a filename. -\end_layout - -\begin_layout Itemize -Hypens ( -\begin_inset Quotes eld -\end_inset - -- -\begin_inset Quotes erd -\end_inset - -) separate words or fields in the same level of the heirarchy. -\end_layout - -\begin_layout Itemize -HAL modules should not use underscores or -\begin_inset Quotes eld -\end_inset - -MixedCase -\begin_inset Quotes erd -\end_inset - -. - -\begin_inset Foot -status collapsed - -\begin_layout Standard -Underscores have all been removed, but there are still a few instances of - mixed case, for example -\begin_inset Quotes eld -\end_inset - -pid.0.Pgain -\begin_inset Quotes erd -\end_inset - - instead of -\begin_inset Quotes eld -\end_inset - -pid.0.p-gain -\begin_inset Quotes erd -\end_inset - -. - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -Use only lowercase letters and numbers in names. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:GR-Driver-Naming" - -\end_inset - -Hardware Driver Naming Conventions -\begin_inset Foot -status collapsed - -\begin_layout Standard -Most drivers do not follow these conventions as of version 2.0. - This chapter is really a guide for future development. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Pin/Parameter names -\end_layout - -\begin_layout Standard -Hardware drivers should use five fields (on three levels) to make up a pin - or parameter name, as follows: -\end_layout - -\begin_layout Quote - -\series bold -.... -\end_layout - -\begin_layout Standard -The individual fields are: -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - The device that the driver is intended to work with. - This is most often an interface board of some type, but there are other - possibilities. - -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - It is possible to install more than one servo board, parallel port, or - other hardware device in a computer. - The device number identifies a specific device. - Device numbers start at 0 and increment. -\begin_inset Foot -status collapsed - -\begin_layout Standard -Some devices use jumpers or other hardware to attach a specific ID to each - board. - Ideally, the driver provides a way for the user to specifically say -\begin_inset Quotes eld -\end_inset - -device-num 0 is the board with ID XXX -\begin_inset Quotes erd -\end_inset - -, and the device numbers always start at 0. - However at present some drivers use the board ID directly as the device - number. - That means it is possible to have a device number 2, without a device 0. - This is a bug and will be fixed in version 2.1. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - Most devices provide more than one type of I/O. - Even the simple parallel port has both digital inputs and digital outputs. - More complex boards can have digital inputs and outputs, encoder counters, - pwm or step pulse generators, analog-to-digital converters, digital-to-analog - converters, or other unique capabilities. - The I/O type is used to identify the kind of I/O that a pin or parameter - is associated with. - Ideally, drivers that implement the same I/O type, even if for very different - devices, should provide a consistent set of pins and parameters and identical - behavior. - For example, all digital inputs should behave the same when seen from inside - the HAL, regardless of the device. -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - Virtually every I/O device has multiple channels, and the channel number - identifies one of them. - Like device numbers, channel numbers start at zero and increment. -\begin_inset Foot -status collapsed - -\begin_layout Standard -One glaring exception to the -\begin_inset Quotes eld -\end_inset - -channel numbers start at zero -\begin_inset Quotes erd -\end_inset - - rule is the parallel port. - Its HAL pins are numbered with the corresponding pin number on the DB-25 - connector. - This is convenient for wiring, but inconsistent with other drivers. - There is some debate over whether this is a bug or a feature. -\end_layout - -\end_inset - - If more than one device is installed, the channel numbers on additional - devices start over at zero. - If it is possible to have a channel number greater than 9, then channel - numbers should be two digits, with a leading zero on numbers less than - 10 to preserve sort ordering. - Some modules have pins and/or parameters that affect more than one channel. - For example a PWM generator might have four channels with four independent - -\begin_inset Quotes eld -\end_inset - -duty-cycle -\begin_inset Quotes erd -\end_inset - - inputs, but one -\begin_inset Quotes eld -\end_inset - -frequency -\begin_inset Quotes erd -\end_inset - - parameter that controls all four channels (due to hardware limitations). - The frequency parameter should use -\begin_inset Quotes eld -\end_inset - -0-3 -\begin_inset Quotes erd -\end_inset - - as the channel number. - -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - An individual I/O channel might have just a single HAL pin associated with - it, but most have more than one. - For example, a digital input has two pins, one is the state of the physical - pin, the other is the same thing inverted. - That allows the configurator to choose between active high and active low - inputs. - For most io-types, there is a standard set of pins and parameters, (referred - to as the -\begin_inset Quotes eld -\end_inset - -canonical interface -\begin_inset Quotes erd -\end_inset - -) that the driver should implement. - The canonical interfaces are described in chapter -\begin_inset LatexCommand ref -reference "cha:Canonical-Device-Interfaces" - -\end_inset - -. -\end_layout - -\begin_layout Subsubsection -Examples -\end_layout - -\begin_layout Description - -\family typewriter -motenc.0.encoder.2.position -\family default - -- the position output of the third encoder channel on the first Motenc - board. -\end_layout - -\begin_layout Description - -\family typewriter -stg.0.din.03.in -\family default - -- the state of the fourth digital input on the first Servo-to-Go board. -\end_layout - -\begin_layout Description - -\family typewriter -ppmc.0.pwm.00-03.frequency -\family default - -- the carrier frequency used for PWM channels 0 through 3. -\end_layout - -\begin_layout Subsection -Function Names -\end_layout - -\begin_layout Standard -Hardware drivers usually only have two kinds of HAL functions, ones that - read the hardware and update HAL pins, and ones that write to the hardware - using data from HAL pins. - They should be named as follows: -\end_layout - -\begin_layout Quote - -\series bold --[.[-]].read|write -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - The same as used for pins and parameters. -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - The specific device that the function will access. -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - Optional. - A function may access all of the I/O on a board, or it may access only - a certain type. - For example, there may be independent functions for reading encoder counters - and reading digital I/O. - If such independent functions exist, the field identifies the - type of I/O they access. - If a single function reads all I/O provided by the board, is - not used. -\begin_inset Foot -status collapsed - -\begin_layout Standard -Note to driver programmers: do NOT implement separate functions for different - I/O types unless they are interruptable and can work in independent threads. - If interrupting an encoder read, reading digital inputs, and then resuming - the encoder read will cause problems, then implement a single function - that does everything. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description - -\family typewriter - -\family default - Optional. - Used only if the I/O is broken into groups and accessed by different - functions. -\end_layout - -\begin_layout Description - -\family typewriter -read|write -\family default - Indicates whether the function reads the hardware or writes to it. -\end_layout - -\begin_layout Subsubsection -Examples -\end_layout - -\begin_layout Description - -\family typewriter -motenc.0.encoder.read -\family default - -- reads all encoders on the first motenc board -\end_layout - -\begin_layout Description - -\family typewriter -generic8255.0.din.09-15.read -\family default - -- reads the second 8 bit port on the first generic 8255 based digital - I/O board -\end_layout - -\begin_layout Description - -\family typewriter -ppmc.0.write -\family default - -- writes all outputs (step generators, pwm, DACs, and digital) on the - first ppmc board -\end_layout - -\begin_layout Chapter -\begin_inset LatexCommand label -name "cha:Canonical-Device-Interfaces" - -\end_inset - -Canonical Device Interfaces -\begin_inset Foot -status collapsed - -\begin_layout Standard -As of version 2.0, most of the HAL drivers don't quite match up to the canonical - interfaces defined here. - In version 2.1, the drivers will be changed to match these specs. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The following sections show the pins, parameters, and functions that are - supplied by -\begin_inset Quotes eld -\end_inset - -canonical devices -\begin_inset Quotes erd -\end_inset - -. - All HAL device drivers should supply the same pins and parameters, and - implement the same behavior. -\end_layout - -\begin_layout Standard -Note that the only the -\family typewriter - -\family default - and -\family typewriter - -\family default - fields are defined for a canonical device. - The -\family typewriter - -\family default -, -\family typewriter - -\family default -, and -\family typewriter - -\family default - fields are set based on the characteristics of the real device. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:CanonDigIn" - -\end_inset - -Digital Input -\end_layout - -\begin_layout Standard -The canonical digital input (I/O type field: -\family typewriter -\series bold -digin -\family default -\series default -) is quite simple. -\end_layout - -\begin_layout Subsection -Pins -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -in -\family default -\series default - -- State of the hardware input. -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -in-not -\family default -\series default - -- Inverted state of the input. -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize -None -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(funct) -\shape default - -\family typewriter -\series bold -read -\family default -\series default - -- Read hardware and set -\family typewriter -\series bold -in -\family default -\series default - and -\family typewriter -\series bold -in-not -\family default -\series default - HAL pins. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:CanonDigOut" - -\end_inset - -Digital Output -\end_layout - -\begin_layout Standard -The canonical digital output (I/O type field: -\family typewriter -\series bold -digout -\family default -\series default -) is also very simple. -\end_layout - -\begin_layout Subsection -Pins -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -out -\family default -\series default - -- Value to be written (possibly inverted) to the hardware output. -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -invert -\family default -\series default - -- If TRUE, -\family typewriter -\series bold -out -\family default -\series default - is inverted before writing to the hardware. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize - -\shape smallcaps -(funct) -\shape default - -\family typewriter -\series bold -write -\family default -\series default - -- Read -\family typewriter -\series bold -out -\family default -\series default - and -\family typewriter -\series bold -invert -\family default -\series default -, and set hardware output accordingly. -\end_layout - -\begin_layout Section -Analog Input -\end_layout - -\begin_layout Standard -The canonical analog input (I/O type: -\family typewriter -\series bold -adcin -\family default -\series default -). - This is expected to be used for analog to digital converters, which convert - e.g. - voltage to a continuous range of values. -\end_layout - -\begin_layout Subsection -Pins -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -value -\series default - -- The hardware reading, scaled according to the -\series bold -scale -\series default - and -\series bold -offset -\series default - parameters. - -\series bold -Value -\series default - = ((input reading, in hardware-dependent units) * -\series bold -scale -\series default -) - -\series bold -offset -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -scale -\series default - -- The input voltage (or current) will be multiplied by -\series bold -scale -\series default - before being output to -\series bold -value -\series default -. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -offset -\series default - -- This will be subtracted from the hardware input voltage (or current) - after the scale multiplier has been applied. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -bit_weight -\series default - -- The value of one least significant bit (LSB). - This is effectively the granularity of the input reading. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -hw_offset -\series default - -- The value present on the input when 0 volts is applied to the input - pin(s). -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -funct -\shape default -) -\series bold -read -\series default - -- Read the values of this analog input channel. - This may be used for individual channel reads, or it may cause all channels - to be read -\end_layout - -\begin_layout Section -Analog Output -\end_layout - -\begin_layout Standard -The canonical analog output (I/O Type: -\family typewriter -\series bold -adcout -\family default -\series default -). - This is intended for any kind of hardware that can output a more-or-less - continuous range of values. - Examples are digital to analog converters or PWM generators. -\end_layout - -\begin_layout Subsection* -Pins -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -value -\series default - -- The value to be written. - The actual value output to the hardware will depend on the scale and offset - parameters. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -bit -\shape default -) -\series bold -enable -\series default - -- If false, then output 0 to the hardware, regardless of the -\series bold -value -\series default - pin. -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -offset -\series default - -- This will be added to the -\series bold -value -\series default - before the hardware is updated -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -scale -\series default - -- This should be set so that an input of 1 on the -\series bold -value -\series default - pin will cause 1V -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -high_limit -\series default - (optional) -- When calculating the value to output to the hardware, if - -\series bold -value -\series default - + -\series bold -offset -\series default - is greater than -\series bold -high_limit -\series default -, then -\series bold -high_limit -\series default - will be used instead. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -low_limit -\series default - (optional) -- When calculating the value to output to the hardware, if - -\series bold -value -\series default - + -\series bold -offset -\series default - is less than -\series bold -low_limit -\series default -, then -\series bold -low_limit -\series default - will be used instead. -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -bit_weight -\series default - (optional) -- The value of one least significant bit (LSB), in volts (or - mA, for current outputs) -\end_layout - -\begin_layout Itemize -( -\shape smallcaps -float -\shape default -) -\series bold -hw_offset -\series default - (optional) -- The actual voltage (or current) that will be output if 0 - is written to the hardware. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Standard -( -\shape smallcaps -funct -\shape default -) -\series bold -write -\series default - -- This causes the calculated value to be output to the hardware. - If enable is false, then the output will be 0, regardles of -\series bold -value -\series default -, -\series bold -scale -\series default -, and -\series bold -offset -\series default -. - The meaning of -\begin_inset Quotes eld -\end_inset - -0 -\begin_inset Quotes erd -\end_inset - - is dependent on the hardware. - For example, a bipolar 12-bit A/D may need to write 0x1FF (mid scale) to - the D/A get 0 volts from the hardware pin. - If enable is true, read scale, offset and value and output to the adc ( -\series bold -scale -\series default - * -\series bold -value -\series default -) + -\series bold -offset -\series default -. - If enable is false, then output 0. -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/general_ref_fr.lyx b/docs/src/hal/general_ref_fr.lyx deleted file mode 100644 index 40c8e516c..000000000 --- a/docs/src/hal/general_ref_fr.lyx +++ /dev/null @@ -1,1448 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Informations gnrales -\layout Section - - -\begin_inset LatexCommand \label{sec:GR-Notation} - -\end_inset - -Notation -\layout Subsection - -Conventions typographiques -\layout Standard - -Les lignes de commandes sont reprsentes en police -\family typewriter -\series bold -bold typewriter -\family default -\series default -. - Les rponses de l'ordinateur sont en police -\family typewriter -typewriter -\family default -. - Depuis dbut 2006, plus aucune commande ne ncessite les privilges du - root, de sorte que tous les exemples seront prcds par le prompt utilisateur - normal, -\family typewriter -$ -\family default -. - Le texte entre crochets est un texte optionnel -\family typewriter -[comme-cela] -\family default -. - Le texte entre crochets -\family typewriter - -\family default - reprsente un champ qui peut prendre diffrentes valeurs, le paragraphe - suivant explique les valeurs appropries. - Les items de texte spars par une barre verticale signifie que l'un ou - l'autre, mais pas plus, doit tre prsent. - Toutes les lignes de commandes des exemples supposent que vous tes dans - le rpertoire -\family typewriter -d'emc2/ -\family default - ou vous avez configur ou compil emc2 avec l'option --run-in-place. - Les chemins seront par consquent, affichs en accord avec cet emplacement. -\layout Subsection - -Noms -\layout Standard - -Toutes les entits de HAL sont accessibles et manipules par leurs noms, - donc, documenter les noms des pins, signaux, paramtres, etc, est trs - important. - Les noms dans HAL ont un maximum de 41 caractres de long (comme dfini - par HAL_NAME_LEN dans hal.h). - De nombreux noms seront prsents dans la forme gnrale, avec un texte - entre crochets -\family typewriter - -\family default - reprsentant les champs de valeurs diverses. -\layout Standard - -Quand les pins, signaux, ou paramtres sont dcrits pour la premire fois, - leur nom sera prcd par leur type en -\shape smallcaps -( -\family typewriter -\size footnotesize -PETITES CAPITALES -\family default -\size default -) -\shape default - et suivi par une brve description. - Les dfinitions typiques de pins ressemblent ces exemples: -\layout Itemize - - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in -\family default - -- La HAL pin associe avec la broche physique d'entre -\family typewriter - -\family default - du connecteur db25. -\layout Itemize - - -\family typewriter -\noun on -(float) -\noun default - pid..output -\family default - -- La sortie de la boucle PID. -\layout Standard - -De temps en temps, une version abrge du nom peut tre utilise, par exemple - la deuxime pin ci-dessus pourrait tre appele simplement -\family typewriter -avec .output -\family default - quand cela peut tre fait sans prter confusion. -\layout Section - - -\begin_inset LatexCommand \label{sec:GR-Conventions-nommage} - -\end_inset - -Conventions gnrales de nommage -\layout Standard - -Le but des conventions de nommage est de rendre l'utilisation de HAL plus - facile. - Par exemple, si plusieurs interfaces de codeur fournissent le mme jeu - de pins et qu'elles sont nommes de la mme faon, il serait facile de - changer l'interface d'un codeur un autre. - Malheureusement, comme tout projet open-source, HAL est la combinaison - de choses diversement conues et comme les choses simples voluent. - Il en rsulte de nombreuses incohrences. - Cette section vise remdier ce problme en dfinissant certaines convention -s, mais il faudra certainement un certain temps avant que tous les modules - soient convertis pour les suivre. -\layout Standard - -Halcmd et d'autres utilitaires HAL de bas niveau, traitent les noms HAL - comme de simples entits, sans structure. - Toutefois, la plupart des modules ont une certaine structure implicite. - Par exemple, une carte fournit plusieurs blocs fonctionnels, chaque bloc - peut avoir plusieurs canaux et chaque canal, une ou plusieurs broches. - La structure qui en rsulte ressemble une arborescence de rpertoires. - Mme si halcmd ne reconnait pas la structure arborescente, la convention - de nommage est un bon choix, elles lui permettra de regrouper ensemble, - les items du mme groupe, car il trie les noms. - En outre, les outils de haut niveau peuvent tre conus pour reconnaitre - de telles structures si les noms fournissent les informations ncessaires. - Pour cela, tous les modules de HAL devraient suivrent les rgles suivantes: -\layout Itemize - -Les points ( -\begin_inset Quotes eld -\end_inset - -. -\begin_inset Quotes erd -\end_inset - -) sparent les niveaux hirarchiques. - C'est analogue la barre de fraction ( -\begin_inset Quotes eld -\end_inset - -/ -\begin_inset Quotes erd -\end_inset - -) dans les noms de fichiers. -\layout Itemize - -Le tiret ( -\begin_inset Quotes eld -\end_inset - -- -\begin_inset Quotes erd -\end_inset - -) spare les mots ou les champs dans la mme hirarchie. -\layout Itemize - -Les modules HAL ne doivent pas utiliser le caractre soulign ou les casses - mlanges. - -\begin_inset Foot -collapsed false - -\layout Standard - -Les caractres sousligns ont t enlevs, mais il reste quelques cas de - mlange de casses, par exemple -\begin_inset Quotes eld -\end_inset - -pid.0.Pgain -\begin_inset Quotes erd -\end_inset - - au lieux de -\begin_inset Quotes eld -\end_inset - -pid.0.p-gain -\begin_inset Quotes erd -\end_inset - -. - -\end_inset - - -\layout Itemize - -Utiliser seulement des caractres minuscules, lettres et chiffres. -\layout Section - - -\begin_inset LatexCommand \label{sec:GR-Nommage-pilotes-matériel} - -\end_inset - -Conventions de nommage des pilotes de matriels -\begin_inset Foot -collapsed false - -\layout Standard - -La plupart des pilotes ne suivent pas ces conventions dans la version 2.0. - Ce chapitre est rellement un guide pour les dveloppements futurs. -\end_inset - - -\layout Subsection - -Noms de pin/paramtre -\layout Standard - -Les pilotes matriels devraient utiliser cinq champs (sur trois niveaux) - pour obtenir un nom de pin ou de paramtre, comme le suivant: -\layout LyX-Code - - -\series bold -.... -\layout Standard - -Les champs individuels sont: -\layout Description - - -\family typewriter - -\family default - Le matriel avec lequel le pilote est sens travailler. - Il s'agit le plus souvent d'une carte d'interface d'un certain type, mais - il existe d'autres possibilits. - -\layout Description - - -\family typewriter - -\family default - Il est possible d'installer plusieurs cartes servo, ports parallles ou - autre priphrique matriel dans un ordinateur. - Le numro du priphrique identifie un priphrique spcifique. - Les numros de priphriques commencent 0 et s'incrmentent. -\begin_inset Foot -collapsed true - -\layout Standard - -Certains matriels utilisent des cavaliers ou d'autres dispositifs pour - dfinir une identification spcifique chacun. - Idalement, le pilote fournit une manire l'utilisateur de dire, le -\begin_inset Quotes eld -\end_inset - -device-num 0 est spcifique au priphrique qui a l'ID XXX -\begin_inset Quotes erd -\end_inset - -, ses sous-ensembles porterons tous un numro commenant par 0. - Mais l'heure actuelle, certains pilotes utilisent l'ID directement comme - numro de priphrique. - Ce qui signifie qu'il est possible d'avoir un priphrique Numro 2, sans - en avoir en Numro 0. - C'est un bug qui devrait disparatre en version 2.1. -\end_inset - - -\layout Description - - -\family typewriter - -\family default - La plupart des priphriques fournissent plus d'un type d'I/O. - Mme le simple port parallle a, la fois plusieurs entres et plusieurs - sorties numriques. - Les cartes commerciales plus complexes peuvent avoir des entres et des - sorties numriques, des compteurs de codeurs, des gnrateurs d'impulsions - de pas ou de PWM, des convertisseurs numrique/analogique, analogique/numrique - et d'autres possibilits plus spcifiques. - Le -\begin_inset Quotes eld -\end_inset - -I/O type -\begin_inset Quotes erd -\end_inset - - est utilis pour identifier le type d'I/O avec lequel la pin ou le paramtre - est associ. - Idalement, les pilotes qui implmentent les mmes type d'I/O, mme sur - des dispositifs trs diffrents, devraient fournir un jeu de pins et de - paramtres cohrents et de comportements identiques. - Par exemple, toutes les entres numriques doivent se comporter de la mme - manire quand elles sont vues de l'intrieur de HAL, indpendamment du - priphrique. -\layout Description - - -\family typewriter - -\family default - Quasiment tous les priphriques d'I/O ont plusieurs canaux, le numro - de canal -\begin_inset Quotes eld -\end_inset - -chan-num -\begin_inset Quotes erd -\end_inset - - identifie un de ceux ci. - Comme les numros de priphriques -\begin_inset Quotes eld -\end_inset - -device-num -\begin_inset Quotes erd -\end_inset - -, les numros de canaux, -\begin_inset Quotes eld -\end_inset - -chan-num -\begin_inset Quotes erd -\end_inset - -, commencent zro et s'incrmentent. -\begin_inset Foot -collapsed true - -\layout Standard - -Une exception la rgle du -\begin_inset Quotes eld -\end_inset - -numro de canal commenant zro -\begin_inset Quotes erd -\end_inset - - est le port parallle. - Ses -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - sont numrotes avec le numro de la broche correspondante du connecteur - DB-25. - C'est plus pratique pour le cblage, mais non cohrent avec les autres - pilotes. - Il y a dbat pour savoir si c'est un bogue ou une fonctionnalit. -\end_inset - - Si plusieurs priphriques sont installs, les numro de canaux des priphriqu -es supplmentaires recommencent zro. - Comme il est possible d'avoir un numro de canal suprieur 9, les numros - de canaux doivent avoir deux chiffres, avec un zro en tte pour les nombres - infrieur 10 pour prserver l'ordre des tris. - Certains modules ont des pins et/ou des paramtres qui affectent plusieurs - canaux. - Par exemple un gnrateur de PWM peut avoir quatre canaux avec quatre entres - -\begin_inset Quotes eld -\end_inset - -duty-cycle -\begin_inset Quotes erd -\end_inset - - indpendantes, mais un seul paramtre -\begin_inset Quotes eld -\end_inset - -frequency -\begin_inset Quotes erd -\end_inset - - qui contrle les quatres canaux ( cause de limitations matrielles). - Le paramtre -\begin_inset Quotes eld -\end_inset - -frequency -\begin_inset Quotes erd -\end_inset - - doit utiliser les numros de canaux de -\begin_inset Quotes eld -\end_inset - -00-03 -\begin_inset Quotes erd -\end_inset - -. - -\layout Description - - -\family typewriter - -\family default - Un canal individuel d'I/O peut avoir une seule HAL pin associe avec lui, - mais la plupart en ont plus. - Par exemple, une entre numrique a deux pins, une qui est l'tat de la - broche physique, l'autre qui est la mme chose mais inverse. - Cela permet au configurateur de choisir entre les deux tats de l'entre, - active haute ou active basse. - Pour la plupart des types d' entre/sortie, il existe un jeu standard de - broches et de paramtres, (appel l' -\begin_inset Quotes eld -\end_inset - -interface canonique -\begin_inset Quotes erd -\end_inset - -) que le pilote doit implmenter. - Les interfaces canoniques sont dcrites au chapitre -\begin_inset LatexCommand \ref{cha:Périphériques-canoniques} - -\end_inset - -. -\layout Subsubsection - -Exemples -\layout Description - - -\family typewriter -motenc.0.encoder.2.position -\family default - -- la sortie position du troisime canal codeur sur la premire carte Motenc. -\layout Description - - -\family typewriter -stg.0.din.03.in -\family default - -- l'tat de la quatrime entre numrique sur la premire carte Servo-to-Go. -\layout Description - - -\family typewriter -ppmc.0.pwm.00-03.frequency -\family default - -- la frquence porteuse utilise sur les canaux PWM de 0 3. -\layout Subsection - -Noms des fonctions -\layout Standard - -Les pilotes matriels ont gnralement seulement deux types de fonctions - HAL, une qui lit l'tat du matriel et met jour les pins HAL, l'autre - qui crit sur le matriel en utilisant les donnes fournies sur les pins - HAL. - Ce qui devrait tre nomm de la faon suivante: -\layout LyX-Code - - -\series bold --[.[-]].read|write -\layout Description - - -\family typewriter - -\family default - Le mme que celui utilis pour les pins et les paramtres. -\layout Description - - -\family typewriter - -\family default - Le priphrique spcifique auquel la fonction aura accs. -\layout Description - - -\family typewriter - -\family default - Optionnel. - Une fonction peut accder toutes les d'entres/sorties d'une carte ou, - elle peut accder seulement un certain type. - Par exemple, il peut y avoir des fonctions indpendantes pour lire les - compteurs de codeurs et lire les entres/sorties numriques. - Si de telles fonctions indpendantes existent, le champ identifie - le type d'I/O auquelles elles auront accs. - Si une simple fonction lit toutes les entrs/sorties fournies par la carte, - n'est pas utilis. -\begin_inset Foot -collapsed true - -\layout Standard - -Note aux programmeurs de pilotes: ne PAS implmenter des fonctions spares - pour diffrents types d'I/O moins qu'elles ne soient interruptibles et - puissent marcher dans des threads indpendants. - Si l'interruption de la lecture d'un codeur pour lire des entres numriques, - puis reprendre la lecture du codeur peut poser problme, alors implmentez - une fonction unique qui fera tout. -\end_inset - - -\layout Description - - -\family typewriter - -\family default - Optionnel. - Utilis seulement si l'entre/sortie est casse dans des groupes - et est accde par diffrentes fonctions. -\layout Description - - -\family typewriter -read|write -\family default - Indique si la fonction lit le matriel ou lui crit. -\layout Subsubsection - -Exemples -\layout Description - - -\family typewriter -motenc.0.encoder.read -\family default - -- lit tous les codeurs sur la premire carte motenc. -\layout Description - - -\family typewriter -generic8255.0.din.09-15.read -\family default - -- lit le deuxime port 8 bits sur la premire carte d'entres/sorties - base de 8255. -\layout Description - - -\family typewriter -ppmc.0.write -\family default - -- crit toutes les sorties (gnrateur de pas, pwm, DAC et ADC) sur la - premire carte ppmc. -\layout Chapter - - -\begin_inset LatexCommand \label{cha:Périphériques-canoniques} - -\end_inset - -Priphriques d'interfaces canoniques -\layout Standard - -Les sections qui suivent expliquent les pins, paramtres et functions qui - sont fournies par les -\begin_inset Quotes eld -\end_inset - -priphriques canoniques -\begin_inset Quotes erd -\end_inset - -. - Tous les pilotes de priphriques HAL devraient fournir les mmes pins - et paramtres et implmenter les mmes comportements. -\layout Standard - -Noter que seuls les champs -\family typewriter - -\family default - et -\family typewriter - -\family default - sont dfinis pour un priphrique canonique. - Les champs -\family typewriter - -\family default -, -\family typewriter - -\family default - et -\family typewriter - -\family default - sont dfinis en fonction des caractristiques du priphrique rel. -\layout Section - - -\begin_inset LatexCommand \label{sec:CanonDigIn} - -\end_inset - -Entre numrique (Digital Input) -\layout Standard - -L'entre numrique canonique (I/O type: -\family typewriter -\series bold -digin -\family default -\series default -) est assez simple. -\layout Subsection - -Pins -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -in -\family default -\series default - -- tat de l'entre matrielle. -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -in-not -\family default -\series default - -- tat invers de l'entre matrielle. -\layout Subsection - -Paramtres -\layout Itemize - -Aucun -\layout Subsection - -Fonctions -\layout Itemize - - -\shape smallcaps -(funct) -\shape default - -\family typewriter -\series bold -read -\family default -\series default - -- lire le matriel et ajuster les HAL pins -\family typewriter -\series bold -in -\family default -\series default - et -\family typewriter -\series bold -in-not -\family default -\series default -. -\layout Section - - -\begin_inset LatexCommand \label{sec:CanonDigOut} - -\end_inset - -Sortie numrique (Digital Output) -\layout Standard - -La sortie numrique canonique est galement trs simple (I/O type: -\family typewriter -\series bold -digout -\family default -\series default -). -\layout Subsection - -Pins -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -out -\family default -\series default - -- Valeur crire (ventuellement inverse) sur une sortie matrielle. -\layout Subsection - -Paramtres -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -invert -\family default -\series default - -- Si TRUE, -\family typewriter -\series bold -out -\family default -\series default - est inverse avant criture sur la matriel. -\layout Subsection - -Fonctions -\layout Itemize - - -\shape smallcaps -(funct) -\shape default - -\family typewriter -\series bold -write -\family default -\series default - -- Lit -\family typewriter -\series bold -out -\family default -\series default - et -\family typewriter -\series bold -invert -\family default -\series default - et ajuste la sortie en consquence. -\layout Section - -Entre analogique (Analog Input) -\layout Standard - -L'entre analogique canonique (I/O type: -\family typewriter -\series bold -adcin -\family default -\series default -). - Devrait tre utilise pour les convertisseurs analogiques/numriques, qui - convertissent par exemple, les tensions en une chelle continue de valeurs. -\layout Subsection - -Pins -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -value -\series default - -- Lecture du matriel, avec mise l'chelle ajuste par les paramtres - -\series bold -scale -\series default - et -\series bold -offset -\series default -. - -\series bold -Value -\series default - = ((lecture entre, en units dpendantes du matriel) * -\series bold -scale -\series default -) - -\series bold -offset -\layout Subsection - -Paramtres -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -scale -\series default - -- La tension d'entre (ou l'intensit) sera multiplie par -\series bold -scale -\series default - avant d'tre place dans -\series bold -value -\series default -. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -offset -\series default - -- Sera soustrait la tension d'entre (ou l'intensit) aprs que la mise - l'chelle par scale ait t applique. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -bit_weight -\series default - -- Valeur du bit le moins significatif (LSB). - C'est effectivement, la granularit de lecture en entre. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -hw_offset -\series default - -- Valeur prsente sur l'entre quand 0 volts sont appliqus sur la pin - d'entre. -\layout Subsection - -Fonctions -\layout Itemize - -( -\shape smallcaps -funct -\shape default -) -\series bold -read -\series default - -- Lit les valeurs de ce canal d'entre analogique. - Peut tre utilis pour lire un canal individuellement, ou pour lire tous - les canaux la fois. -\layout Section - -Sortie analogique (Analog Output) -\layout Standard - -La sortie analogique canonique (I/O Type: -\family typewriter -\series bold -adcout -\family default -\series default -). - Elle est destine tout type de matriel capable de sortir une chelle - plus ou moins tendue de valeurs. - Comme par exemple les convertisseurs numrique/analogique ou les gnrateurs - de PWM. -\layout Subsection* - -Pins -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -value -\series default - -- La valeur crire. - La valeur relle sur la sortie matrielle dpends de la mise l'chelle - des paramtres d'offset. -\layout Itemize - -( -\shape smallcaps -bit -\shape default -) -\series bold -enable -\series default - -- Si fausse, la sortie matrielle passera 0, indpendamment de la pin - -\series bold -value -\series default -. -\layout Subsection - -Paramtres -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -offset -\series default - -- Sera ajout -\series bold -value -\series default - avant l'actualisation du matriel. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -scale -\series default - -- Doit tre dfini de sorte qu'une entre avec 1 dans -\series bold -value -\series default - produira 1V -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -high_limit -\series default - (optionnel) -- Quand la valeur en sortie matrielle est calcule, si -\series bold -value -\series default - + -\series bold -offset -\series default - est plus grande que -\series bold -high_limit -\series default -, alors -\series bold -high_limit -\series default - lui sera substitu. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -low_limit -\series default - (optionnel) -- Quand la valeur en sortie matrielle est calcule, si -\series bold -value -\series default - + -\series bold -offset -\series default - est plus petite que -\series bold -low_limit -\series default -, alors -\series bold -low_limit -\series default - lui sera substitu. -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -bit_weight -\series default - (optionnel) -- La valeur du bit le moins significatif (LSB), en Volts (ou - mA, pour les sorties courant) -\layout Itemize - -( -\shape smallcaps -float -\shape default -) -\series bold -hw_offset -\series default - (optionnel) -- La tension actuelle (ou l'intensit) prsente sur la sortie - quand 0 est crit sur le matriel. -\layout Subsection - -Fonctions -\layout Standard - -( -\shape smallcaps -funct -\shape default -) -\series bold -write -\series default - -- Ecrit la valeur calcule sur la sortie matrielle. - Si enable est fausse, la sortie passera 0, indpendamment des valeurs - de -\series bold -value -\series default -, -\series bold -scale -\series default - et -\series bold -offset -\series default -. - La signification de -\begin_inset Quotes eld -\end_inset - -0 -\begin_inset Quotes erd -\end_inset - - dpend du matriel. - Par exemple, un convertisseur A/D 12 bits peut vouloir crire 0x1FF (milieu - d'chelle) alors que le convertisseur D/A reoit 0 Volt de la broche matrielle. - Si enable est vraie, l'chelle, l'offset et la valeur sont traits et ( -\series bold -scale -\series default - * -\series bold -value -\series default -) + -\series bold -offset -\series default - sont envoys en sortie de l'adc . - Si enable est faux, la sortie passe 0. -\layout Section - - -\begin_inset LatexCommand \label{sec:CanonEncoder} - -\end_inset - -Codeur -\layout Standard - -L'interface de codeur canonique(I/O type: -\family typewriter -\series bold -encoder -\family default -\series default - ) fournit les fonctionnalits ncessaires pour une prise d'origine sur - une impulsion d'index et pour la synchronisation avec la vitesse de broche, - ainsi que de base pour le positionnement et/ou le contrle de vitesse. - Cette interface devrait tre implmentable quel que soit le matriel sous-jacen -t, mme si certains matriels donnent de -\begin_inset Quotes eld -\end_inset - -meilleurs -\begin_inset Quotes erd -\end_inset - - rsultats que d'autres. - (Par exemple, pour capturer un index de position +/- 1 impulsion lors - d'un mouvement rapide, ou avoir moins de fluctuation sur la pin de vitesse). -\layout Subsection - -Pins -\layout Itemize - - -\shape smallcaps -(s32) -\shape default - -\family typewriter -\series bold -count -\family default -\series default - -- Valeur de comptage du codeur. -\layout Itemize - - -\shape smallcaps -(float) -\shape default - -\family typewriter -\series bold -position -\family default -\series default - -- Valeur de position en units de longueur (voir paramtre -\begin_inset Quotes eld -\end_inset - -scale -\begin_inset Quotes erd -\end_inset - -). - -\layout Itemize - - -\shape smallcaps -(float) -\shape default - -\family typewriter -\series bold -velocity -\family default -\series default - -- Vitesse en units de longueur par seconde. -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -reset -\family default -\series default - -- Quand il est vrai, force le compteur zro. -\layout Itemize - - -\shape smallcaps -(bit) -\shape default - -\family typewriter -\series bold -index-enable -\family default -\series default - -- (bidirectionnel) Quand il est vrai, remise zro la prochaine impulsion - d'index et passe les pins sur faux. -\layout Standard - -La pin -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - est bi-directionnelle, elle exige un peu plus d'explications. - Si -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - est faux, le canal d'index du codeur sera ignor et le compteur comptera - normalement. - Le pilote du codeur ne passera jamais -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - sur vrai. - Cependant, un autre composant peut le faire. - Si -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - est vrai, alors quand la prochaine impulsion d'index arrivera, le compteur - du codeur sera remis zro et le pilote passera -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - sur faux. - Ce qui permettra l'autre composant de savoir qu'une impulsion d'index - est arrive. - C'est une forme de poigne de main, l'autre composant passe -\begin_inset Quotes eld -\end_inset - -index-enable -\begin_inset Quotes erd -\end_inset - - sur vrai pour requrir une remise zro du comptage d'impulsion d'index - et le pilote le repasse sur faux quand la requte t satisfaite. -\layout Subsection - -Paramtres -\layout Itemize - - -\shape smallcaps -(float) -\shape default - -\family typewriter -\series bold -scale -\family default -\series default - -- Le facteur d'chelle utiliser pour convertir la valeur de comptage - (count) en units de longueur. - Il se trouve dans -\begin_inset Quotes eld -\end_inset - -counts par unit de longueur -\begin_inset Quotes erd -\end_inset - -. - Par exemple, si vous avez un codeur qui fournit 512 impulsions par tour - de codeur sur une vis qui fait 5 tours par pouce, l'chelle (scale) devra - tre de 512*5 = 2560 counts par pouce, ce qui se traduira par la -\begin_inset Quotes eld -\end_inset - -position -\begin_inset Quotes erd -\end_inset - - en pouces et la -\begin_inset Quotes eld -\end_inset - -vitesse -\begin_inset Quotes erd -\end_inset - - en pouces par seconde. -\layout Itemize - - -\shape smallcaps -(float) -\shape default - -\family typewriter -\series bold -max-index-vel -\family default -\series default - -- (optionnel) La vitesse maximale (en units de longueur par seconde) - laquelle le codeur peut remettre le comptage zro avec une prcision - de +/- 1 impulsion. - Il s'agit d'une sortie du pilote du codeur, elle est destine informer - l'utilisateur des capacits du codeur. - Certains codeurs peuvent remettre le comptage zro exactement l'apparition - de l'impulsion d'index. - D'autres peuvent seulement dire qu'une impulsion d'index s'est produite - depuis la dernire fois que la fonction de lecture t appele. - Pour ces derniers, une prcision de +/- 1 impulsion ne peut tre atteinte - que si le codeur avance d'une impulsion ou moins entre deux appels la - fonction de lecture. -\layout Itemize - - -\shape smallcaps -(float) -\shape default - -\family typewriter -\series bold -velocity-resolution -\family default -\series default - -- (optionnel) La rsolution de la sortie vitesse, en units de longueur - par seconde. - Il s'agit d'une sortie du pilote du codeur, elle est destine informer - l'utilisateur des capacits du codeur. - L'implmentation la plus simple de la sortie vitesse est le changement - de position entre deux appels la fonction de lecture, divis par le temps - entre ces appels. - Cela permet d'obtenir un signal de vitesse grossier avec des fluctuations - values entre deux valeurs aussi loignes que possible (erreur de quantificat -ion). - Cependant, certains matriels capturent le comptage et le temps exact quand - une impulsion arrive (ventuellement avec une haute rsolution d'horloge). - Ces donnes permettent au pilote de calculer une vitesse avec une rsolution - plus fine et moins de fluctuations. - -\layout Subsection - -Fonctions -\layout Standard - -Il n'y a qu'une fonction pour lire les codeurs. - -\layout Itemize - - -\family typewriter -\noun on -(funct) -\family default -\noun default - -\family typewriter -\series bold -read -\family default -\series default - -- Capture le comptage (counts) et mets jour la position et la vitesse. -\the_end diff --git a/docs/src/hal/hal-examples.lyx b/docs/src/hal/hal-examples.lyx deleted file mode 100644 index 94a17a223..000000000 --- a/docs/src/hal/hal-examples.lyx +++ /dev/null @@ -1,473 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -HAL Examples -\end_layout - -\begin_layout Standard -All of these examples assume you are starting with a stepconf based configuratio -n and have two threads base-thread and servo-thread. - The stepconf wizard will create an empty custom.hal and a custom_postgui.hal - file. - The custom.hal file will be loaded after the configuration hal file and - the custom_postgui.hal file is loaded after the GUI has been loaded. - -\end_layout - -\begin_layout Section -Manual Toolchange -\end_layout - -\begin_layout Standard -In this example it is assumed that your "rolling your own" configuration - and wish to add the HAL Manual Toolchange window. - The HAL Manual Toolchange is primarily useful if you have presettable tools - and you store the offsets in the tool table. - If you need to touch off for each tool change then it is best just to split - up your g code. - To use the HAL Manual Toolchange window you basically have to load the - hal manualtoolchange component then send the iocontrol "tool change" to - the hal manualtoolchange "change" and send the hal manualtoolchange "changed" - back to the iocontrol "tool changed". -\end_layout - -\begin_layout Standard -This is an example of -\series bold -with -\series default - the HAL Manual Toolchange from the stepconf wizard -\end_layout - -\begin_layout LyX-Code -loadusr -W hal_manualtoolchange -\end_layout - -\begin_layout LyX-Code -net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change -\end_layout - -\begin_layout LyX-Code -net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed -\end_layout - -\begin_layout LyX-Code -net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number - -\end_layout - -\begin_layout LyX-Code -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared -\end_layout - -\begin_layout Standard -This is an example of -\series bold -without -\series default - the HAL Manual Toolchange from the stepconf wizard -\end_layout - -\begin_layout LyX-Code -net tool-number <= iocontrol.0.tool-prep-number -\end_layout - -\begin_layout LyX-Code -net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed -\end_layout - -\begin_layout LyX-Code -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared -\end_layout - -\begin_layout Section -Compute Velocity -\end_layout - -\begin_layout Standard -This example uses "ddt", "mult2" and "abs" to compute the velocity of a - single axis. - For more information on the real time components see the man pages or the - Realtime Components section ( -\begin_inset LatexCommand ref -reference "sec:Realtime-Components" - -\end_inset - -). -\end_layout - -\begin_layout Standard -The first thing is to check your configuration to make sure you are not - using any of the real time components all ready. - You can do this by opening up the HAL Configuration window and look for - the components in the pin section. - If you are then find the .hal file that they are being loaded in and increase - the counts and adjust the instance to the correct value. - Add the following to your custom.hal file. - -\end_layout - -\begin_layout Standard -Load the realtime components. - -\end_layout - -\begin_layout Quote -loadrt ddt count=1 -\newline -loadrt mult2 count =1 -\newline -loadrt abs count=1 -\end_layout - -\begin_layout Standard -Add the functions to a thread so it will get updated. -\end_layout - -\begin_layout Quote -addf ddt.0 servo-thread -\newline -addf mult2.0 servo-thread -\newline -addf abs.0 servo-thread -\end_layout - -\begin_layout Standard -Make the connections. -\end_layout - -\begin_layout Quote -setp mult2.in1 60 -\newline -net xpos-cmd ddt.0.in -\newline -net X-IPS mult2.0.in0 <= ddt.0.out -\newline -net X-ABS - abs.0.in <= mult2.0.out -\newline -net X-IPM abs.0.out -\end_layout - -\begin_layout Standard -In this last section we are setting the mult2.0.in1 to 60 to convert the inch - per second to inch per minute that we get from the ddt.0.out. - -\end_layout - -\begin_layout Standard -The xpos-cmd sends the comanded position to the ddt.0.in. - The ddt computes the derivative of the change of the input. - -\end_layout - -\begin_layout Standard -The ddt2.0.out is multiplyed by 60 to give IPM. - -\end_layout - -\begin_layout Standard -The mult2.0.out is sent to the abs to get the absolute value. - -\end_layout - -\begin_layout Standard -The following figure shows the result when the X axis is moving at 15 IPM - in the minus direction. - Notice that we can get the absolute value from either the abs.0.out pin or - the X-IPM signal. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Velocity Example -\begin_inset LatexCommand label -name "cap:Velocity-Example" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/velocity-01.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Soft Start -\end_layout - -\begin_layout Standard -This example shows how the HAL components "lowpass", "limit2" or "limit3" - can be used to limit how fast a signal changes. - -\end_layout - -\begin_layout Standard -In this example we have a servo motor driving a lathe spindle. - If we just used the commanded spindle speeds on the servo it will try and - go from present speed to commanded speed as fast as it can. - This could cause a problem or damage the drive. - To slow the rate of change we can send the motion.spindle-speed-out through - a limiter before the PID, so that the PID command value varies slowly. - -\end_layout - -\begin_layout Standard -Three built-in components that limit a signal are: -\end_layout - -\begin_layout Description -limit2 limits the range and first derivative of a signal. - -\end_layout - -\begin_layout Description -limit3 limits the range, first and second derivatives of a signal. - -\end_layout - -\begin_layout Description -lowpass uses an exponentially-weighted moving average to track an input - signal. - -\end_layout - -\begin_layout Standard -To find more information on these HAL components check the man pages. -\end_layout - -\begin_layout Standard -Place the following in a text file called softstart.hal. - If you're not familiar with Linux place the file in your home directory. -\end_layout - -\begin_layout Quote -############################## -\newline -loadrt threads period1=1000000 name1=thread - -\newline -loadrt siggen -\newline -loadrt lowpass -\newline -loadrt limit2 -\newline -loadrt limit3 -\newline -net square siggen.0.squa -re => lowpass.0.in limit2.0.in limit3.0.in -\newline -net lowpass <= lowpass.0.out -\newline -net limit2 - <= limit2.0.out -\newline -net limit3 <= limit3.0.out -\newline -setp siggen.0.frequency .1 -\newline -setp lowpass.0.gai -n .01 -\newline -setp limit2.0.maxv 2 -\newline -setp limit3.0.maxv 2 -\newline -setp limit3.0.maxa 10 -\newline -addf siggen.0.updat -e thread -\newline -addf lowpass.0 thread -\newline -addf limit2.0 thread -\newline -addf limit3.0 thread -\newline -start - -\newline -loadusr halscope -\newline -############################## -\end_layout - -\begin_layout Standard -Open a terminal window and run the file with the following command. -\end_layout - -\begin_layout Quote -halrun -I softstart.hal -\end_layout - -\begin_layout Standard -When the HAL Oscilloscope first starts up click "OK" to accept the default - thread. - -\end_layout - -\begin_layout Standard -Next you have to add the signals to the channels. - Click on channel 1 then select "square" from the Signals tab. - Repeat for channels 2-4 and add lowpass, limit2, and limit3. -\end_layout - -\begin_layout Standard -Next to set up a trigger signal click on the Source None button and select - square. - The button will change to Source Chan 1. -\end_layout - -\begin_layout Standard -Next click on Single in the Run Mode radio buttons box. - This will start a run and when it finishes you will see your traces. -\end_layout - -\begin_layout Standard -To separate the signals so you can see them better click on a channel then - use the Pos slider in the Vertical box to set the positions. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Softstart -\begin_inset LatexCommand label -name "cap:Softstart" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/softstart-scope.png - scale 70 - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -To see the effect of changing the set point values of any of the components - you can change them in the terminal window. - To see what different gain settings do for lowpass just type the following - in the terminal window and try different settings. -\end_layout - -\begin_layout Quote -setp lowpass.0.gain .01 -\end_layout - -\begin_layout Standard -After changing a setting run the oscilloscope again to see the change. -\end_layout - -\begin_layout Standard -When you're finished type "exit" in the terminal window to shut down halrun - and close the halscope. - Don't close the terminal window with halrun running as it might leave some - things in memory that could prevent EMC from loading. -\end_layout - -\begin_layout Standard -For more information on HalScope see the HAL manual. -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/hal-examples_fr.lyx b/docs/src/hal/hal-examples_fr.lyx deleted file mode 100644 index bb4ede82f..000000000 --- a/docs/src/hal/hal-examples_fr.lyx +++ /dev/null @@ -1,79 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -Exemples pour HAL -\layout Standard - -NOTE: En cours de construction. -\layout Standard - -Tous ces exemples impliquent la disponibilit de deux -\begin_inset Quotes eld -\end_inset - -threads base -\begin_inset Quotes erd -\end_inset - - et de -\begin_inset Quotes eld -\end_inset - -servo-thread -\begin_inset Quotes erd -\end_inset - -. -\layout Section - -Calculer la vitesse -\layout Standard - -Cet exemple utilise "ddt" pour calculer la vitesse d'un axe. -\layout Quote - - -\series bold -loadrt ddt count=1 -\newline -loadrt hypot count =1 -\layout Quote - - -\series bold -addf ddt.0 servo-thread -\newline -addf hypot.0 servo-thread -\layout Quote - - -\series bold -net X-vel ddt.0.out => ddt.1.in -\layout Standard - -\the_end diff --git a/docs/src/hal/halmodule.lyx b/docs/src/hal/halmodule.lyx deleted file mode 100644 index cef81cdbe..000000000 --- a/docs/src/hal/halmodule.lyx +++ /dev/null @@ -1,617 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Creating Userspace Python Components with the 'hal' module -\end_layout - -\begin_layout Section -Basic usage -\end_layout - -\begin_layout Standard -A userspace component begins by creating its pins and parameters, then enters - a loop which will periodically drive all the outputs from the inputs. - The following component copies the value seen on its input pin ( -\family typewriter -passthrough.in -\family default -) to its output pin ( -\family typewriter -passthrough.out -\family default -) approximately once per second. -\end_layout - -\begin_layout LyX-Code -#!/usr/bin/python -\newline -import hal, time -\newline -h = hal.component("passthrough") -\newline -h.newpin("in", - hal.HAL_FLOAT, hal.HAL_IN) -\newline -h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) -\newline -h.ready() -\newline -try: -\newline - - while 1: -\newline - time.sleep(1) -\newline - h['out'] = h['in'] -\newline -except KeyboardInterru -pt: -\newline - raise SystemExit -\end_layout - -\begin_layout Standard -Copy the above listing into a file named -\begin_inset Quotes eld -\end_inset - -passthrough -\begin_inset Quotes erd -\end_inset - -, make it executable ( -\family typewriter -chmod +x), -\family default - and place it on your -\family typewriter -$PATH -\family default -. - Then try it out: -\end_layout - -\begin_layout LyX-Code -$ halrun -\newline -halcmd: loadusr passthrough -\newline -halcmd: show pin -\newline -Component Pins: -\newline -Owner - Type Dir Value Name -\newline - 03 float IN 0 passthrough.in -\newline - - 03 float OUT 0 passthrough.out -\newline -halcmd: setp passthrough.in - 3.14 -\newline -halcmd: show pin -\newline -Component Pins: -\newline -Owner Type Dir Value Name -\newline - - 03 float IN 3.14 passthrough.in -\newline - 03 float OUT 3.14 - passthrough.out -\end_layout - -\begin_layout Section -Userspace components and delays -\end_layout - -\begin_layout Standard -If you typed -\begin_inset Quotes eld -\end_inset - -show pin -\begin_inset Quotes erd -\end_inset - - quickly, you may see that -\family typewriter -passthrough.out -\family default - still had its old value of 0. - This is because of the call to 'time.sleep(1)', which makes the assignment - to the output pin occur at most once per second. - Because this is a userspace component, the actual delay between assignments - can be much longer--for instance, if the memory used by the passthrough - component is swapped to disk, the assignment could be delayed until that - memory is swapped back in. -\end_layout - -\begin_layout Standard -Thus, userspace components are suitable for user-interactive elements such - as control panels (delays in the range of milliseconds are not noticed, - and longer delays are acceptable), but not for sending step pulses to a - stepper driver board (delays must always be in the range of microseconds, - no matter what). -\end_layout - -\begin_layout Section -Create pins and parameters -\end_layout - -\begin_layout LyX-Code -h = hal.component("passthrough") -\end_layout - -\begin_layout Standard -The component itself is created by a call to the constructor ' -\family typewriter -hal.component -\family default -'. - The arguments are the HAL component name and (optionally) the prefix used - for pin and parameter names. - If the prefix is not specified, the component name is used. -\end_layout - -\begin_layout LyX-Code -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -\end_layout - -\begin_layout Standard -Then pins are created by calls to methods on the component object. - The arguments are: pin name suffix, pin type, and pin direction. - For parameters, the arguments are: parameter name suffix, parameter type, - and parameter direction. -\end_layout - -\begin_layout Standard -\begin_inset Float table -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -HAL Option Names -\begin_inset LatexCommand label -name "cap:HAL-Option-Names" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -Pin and Parameter Types: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_BIT -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_FLOAT -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_S32 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_U32 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -Pin Directions: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_IN -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_OUT -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_IO -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\series bold -Parameter Directions: -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_RO -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HAL_RW -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The full pin or parameter name is formed by joining the prefix and the suffix - with a -\begin_inset Quotes eld -\end_inset - -. -\begin_inset Quotes erd -\end_inset - -, so in the example the pin created is called -\family typewriter -passthrough.in -\family default -. -\end_layout - -\begin_layout LyX-Code -h.ready() -\end_layout - -\begin_layout Standard -Once all the pins and parameters have been created, call the -\family typewriter -.ready() -\family default - method. -\end_layout - -\begin_layout Subsection -Changing the prefix -\end_layout - -\begin_layout Standard -The prefix can be changed by calling the -\family typewriter -.setprefix() -\family default - method. - The current prefix can be retrieved by calling the -\family typewriter -.getprefix() -\family default - method. -\end_layout - -\begin_layout Section -Reading and writing pins and parameters -\end_layout - -\begin_layout Standard -For pins and parameters which are also proper Python identifiers, the value - may be accessed or set using the attribute syntax: -\end_layout - -\begin_layout LyX-Code -h.out = h.in -\end_layout - -\begin_layout Standard -For all pins, whether or not they are also proper Python identifiers, the - value may be accessed or set using the subscript syntax: -\end_layout - -\begin_layout LyX-Code -h['out'] = h['in'] -\end_layout - -\begin_layout Subsection -Driving output (HAL_OUT) pins -\end_layout - -\begin_layout Standard -Periodically, usually in response to a timer, all HAL_OUT pins should be - -\begin_inset Quotes eld -\end_inset - -driven -\begin_inset Quotes erd -\end_inset - - by assigning them a new value. - This should be done whether or not the value is different than the last - one assigned. - When a pin is connected to a signal, its old output value is not copied - into the signal, so the proper value will only appear on the signal once - the component assigns a new value. -\end_layout - -\begin_layout Subsection -Driving bidirectional (HAL_IO) pins -\end_layout - -\begin_layout Standard -The above rule does not apply to bidirectional pins. - Instead, a bidirectional pin should only be driven by the component when - the component wishes to change the value. - For instance, in the canonical encoder interface, the encoder component - only sets the -\series bold -index-enable -\series default - pin to -\series bold -FALSE -\series default - (when an index pulse is seen and the old value is -\series bold -TRUE -\series default -), but never sets it to -\series bold -TRUE -\series default -. - Repeatedly driving the pin -\series bold -FALSE -\series default - might cause the other connected component to act as though another index - pulse had been seen. -\end_layout - -\begin_layout Section -Exiting -\end_layout - -\begin_layout Standard -A -\begin_inset Quotes eld -\end_inset - - -\family typewriter -halcmd unload -\family default - -\begin_inset Quotes erd -\end_inset - - request for the component is delivered as a -\family typewriter -KeyboardInterrupt -\family default - exception. - When an unload request arrives, the process should either exit in a short - time, or call the -\family typewriter -.exit() -\family default - method on the component if substantial work (such as reading or writing - files) must be done to complete the shutdown process. -\end_layout - -\begin_layout Section -Project ideas -\end_layout - -\begin_layout Itemize -Create an external control panel with buttons, switches, and indicators. - Connect everything to a microcontroller, and connect the microcontroller - to the PC using a serial interface. - Python has a very capable serial interface module called -\begin_inset LatexCommand url -name "pyserial" -target "http://pyserial.sourceforge.net/" - -\end_inset - - (Ubuntu package name -\begin_inset Quotes eld -\end_inset - -python-serial -\begin_inset Quotes erd -\end_inset - -, in the universe repository) -\end_layout - -\begin_layout Itemize -Attach a -\begin_inset LatexCommand url -name "LCDProc" -target "http://lcdproc.omnipotent.net/" - -\end_inset - --compatible LCD module and use it to display a digital readout with information - of your choice (Ubuntu package name -\begin_inset Quotes eld -\end_inset - -lcdproc -\begin_inset Quotes erd -\end_inset - -, in the universe repository) -\end_layout - -\begin_layout Itemize -Create a virtual control panel using any GUI library supported by Python - (gtk, qt, wxwindows, etc) -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/halmodule_fr.lyx b/docs/src/hal/halmodule_fr.lyx deleted file mode 100644 index fb32fe94b..000000000 --- a/docs/src/hal/halmodule_fr.lyx +++ /dev/null @@ -1,533 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 1 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Cration de composants de l'espace utilisateur Python avec les modules de - 'hal' -\layout Section - -Utilisation de base -\layout Standard - -Un composant de l'espace utilisateur commence par crer ses pins et ses - paramtres, puis il entre dans une boucle de laquelle il va positionner - priodiquement toutes ses sorties en fonction de ses entres. - Le composant suivant, un passe-tout, copie la valeur vue sur ses pins d'entre - ( -\family typewriter -passthrough.in -\family default -) vers ses pins de sortie ( -\family typewriter -passthrough.out -\family default -) approximativement une fois par seconde. -\layout LyX-Code - -#!/usr/bin/python -\newline -import hal, time -\newline -h = hal.component("passthrough") -\newline -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -\newline -h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) -\newline -h.ready() -\newline -try: -\newline - while 1: -\newline - time.sleep(1) -\newline - h['out'] = h['in'] -\newline -except KeyboardInterrupt: -\newline - raise SystemExit -\layout Standard - -Copier le listing prcdent dans un fichier nomm -\begin_inset Quotes fld -\end_inset - -passthrough -\begin_inset Quotes frd -\end_inset - -, le rendre excutable par un -\family typewriter - -\begin_inset Quotes fld -\end_inset - -chmod +x -\begin_inset Quotes frd -\end_inset - - -\family default -et le placer dans son -\family typewriter -$PATH -\family default -. - On peut alors l'essayer en faisant: -\layout LyX-Code - -$ halrun -\newline -halcmd: loadusr passthrough -\newline -halcmd: show pin -\newline -Component Pins: -\newline -Owner Type Dir Value Name -\newline - 03 float IN 0 passthrough.in -\newline - 03 float OUT 0 passthrough.out -\newline -halcmd: setp passthrough.in 3.14 -\newline -halcmd: show pin -\newline -Component Pins: -\newline -Owner Type Dir Value Name -\newline - 03 float IN 3.14 passthrough.in -\newline - 03 float OUT 3.14 passthrough.out -\layout Section - -Composants de l'espace utilisateur et dlais -\layout Standard - -Si vous tapez rapidement -\begin_inset Quotes fld -\end_inset - -show pin -\begin_inset Quotes frd -\end_inset - -, vous pourrez voir que -\family typewriter -passthrough.out -\family default - conserve un moment son ancienne valeur de 0. - Ceci est d l'appel de la fonction 'time.sleep(1)', qui fait que les pins - de sortie changent d'tat, au plus, une fois par seconde. - Parceque ce composant appartient l'espace utilisateur, ce dlai peut - apparatre plus long, par exemple si la mmoire utilise par le composant - passthrough est change avec le disque dur, le dlai peut tre allong - jusqu'au raffrachissement de la mmoire. -\layout Standard - -Ces composants de l'espace utilisateur conviennent parfaitement pour des - lments tels que des panneaux de contrle pour lesquels des dlais de - l'ordre de quelques millisecondes sont imperceptibles. - Ils ne conviennent pas, en revanche, pour envoyer des impulsions de pas - vers une carte de pilotage de priphriques pour lesquelles les dlais - doivent rester de l'ordre de quelques microsecondes, dans tous les cas). -\layout Section - -Crer les pins et les paramtres -\layout LyX-Code - -h = hal.component("passthrough") -\layout Standard - -Le composant lui-mme est cr par l'appel du constructeur ' -\family typewriter -hal.component -\family default -'. - Les arguments sont le nom du composant HAL et optionnellement, le prfixe - utilis pour les noms de pin et de paramtre. - Si le prfixe n'est pas spcifi, le nom du composant est utilis. -\layout LyX-Code - -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -\layout Standard - -Puis les pins sont cres par appels des mthodes sur l'objet composant. - Les arguments sont: pin nom suffixe, type de pin et direction de la pin. - Pour les paramtres, les arguments sont: paramtre nom suffixe, type de - paramtre et direction du paramtre. -\layout Standard - - -\begin_inset Float table -wide false -collapsed false - -\layout Caption - -HAL Option Names -\layout Standard - - -\begin_inset Tabular - - - - - - - - - -\begin_inset Text - -\layout Standard - - -\series bold -Types de Pin et Paramtre: -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_BIT -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_FLOAT -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_S32 -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_U32 -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -Directions des pins: -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_IN -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_OUT -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_IO -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\begin_inset Text - -\layout Standard - - -\series bold -Directions des paramtres: -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_RO -\end_inset - - -\begin_inset Text - -\layout Standard - -HAL_RW -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - -\begin_inset Text - -\layout Standard - -\end_inset - - - - -\end_inset - - -\end_inset - - -\layout Standard - -Le nom complet d'une pin ou d'un paramtre est form en joignant le prfixe - avec le suffixe par un -\begin_inset Quotes fld -\end_inset - -. -\begin_inset Quotes frd -\end_inset - -, comme dans l'exemple o la pin cre est appele -\family typewriter -passthrough.in -\family default -. -\layout LyX-Code - -h.ready() -\layout Standard - -Une fois toutes les pins et les paramtres crs, la mthode -\family typewriter -.ready() est appele -\family default -. -\layout Subsection - -Changer le prfixe -\layout Standard - -Le prfixe peut tre chang en appelant la mthode -\family typewriter -.setprefix() -\family default -. - Le prfixe courant peut tre retrouv en appelant la mthode -\family typewriter -.getprefix() -\family default -. -\layout Section - -Lire et crire les pins et les paramtres -\layout Standard - -Pour les pins et les paramtres qui sont aussi des identifiants Python, - la valeur est accessible ou ajustable en utilisant la syntaxe des attributs - suivante: -\layout LyX-Code - -h.out = h.in -\layout Standard - -Pour les pins et les paramtres qui sont aussi des identifiants Python, - la valeur est accessible ou ajustable en utilisant la syntaxe de sous-script - suivante: -\layout LyX-Code - -h['out'] = h['in'] -\layout Subsection - -Pilotage des pins de sortie (HAL_OUT) -\layout Standard - -Priodiquement, habituellement dans le temps de rponse de l'horloge, toutes - les pins HAL_OUT doivent tre -\begin_inset Quotes fld -\end_inset - -pilotes -\begin_inset Quotes frd -\end_inset - - en leur assignant une nouvelle valeur. - Ceci doit tre fait que la valeur soit diffrente ou non de la valeur prcdemm -ent assigne. - Quand la pin est connecte au signal, l'ancienne valeur de sortie n'est - pas copie vers le signal, la valeur correcte n'apparatra donc sur le - signal qu'une fois que le composant lui aura assign une nouvelle valeur. -\layout Subsection - -Pilotage des pins bidirectionelles (HAL_IO) -\layout Standard - -La rgle mentionne ci-dessus ne s'applique pas aux pins bidirectionnelles. - Au lieux de cel, une pin bidirectionnelle doit seulement tre pilote - par le composant et quand le composant souhate changer sa valeur. - Par exemple, dans l'interface codeur, le composant codeur positionne seulement - la pin -\series bold -index-enable -\series default - -\series bold -FALSE -\series default - quand une impulsion d'index est vue et que l'ancienne valeur est -\series bold -TRUE -\series default -, mais ne la positionne jamais -\series bold -TRUE -\series default -. - Piloter rptitivement la pin -\series bold -FALSE -\series default - pourrait faire qu'un autre composant connect agisse comme si une nouvelle - impulsion d'index avait t vue. -\layout Section - -Quitter -\layout Standard - -Une requte -\family typewriter - -\begin_inset Quotes fld -\end_inset - -halcmd unload -\family default - -\begin_inset Quotes frd -\end_inset - - pour le composant est dlivre comme une exception -\family typewriter -KeyboardInterrupt -\family default -. - Quand une requte de dchargement arrive, le processus doit quitter dans - un court laps de temps ou appeler la mthode -\family typewriter -.exit() -\family default - sur le composant si un travail substentiel, comme la lecture ou l'criture - de fichiers, doit tre fourni pour terminer le processus d'arrt. -\layout Section - -Ides de projets -\layout Itemize - -Crer un panneau de contrle extrieur avec boutons poussoirs, interrupteurs - et voyants. - Connecter le tout un microcontrolleur et raccorder le microcontrolleur - un PC en utilisant une liaison srie. - Python est vraiment capable d'interfacer une liaison srie grce son - module -\begin_inset LatexCommand \url[pyserial]{http://pyserial.sourceforge.net/} - -\end_inset - - (Paquet -\begin_inset Quotes fld -\end_inset - -python-serial,dans les dpots universe d'Ubuntu) -\layout Itemize - -Relier un module d'affichage LCD -\begin_inset LatexCommand \url[LCDProc]{http://lcdproc.omnipotent.net/} - -\end_inset - - et l'utiliser pour afficher les informations de votre choix (Paquet -\begin_inset Quotes fld -\end_inset - -lcdproc -\begin_inset Quotes frd -\end_inset - -, dans les dpots universe d'Ubuntu) -\layout Itemize - -Crer un panneau de contrle virtuel utilisant n'importe quelle librairie - d'interface graphique supporte par Python (gtk, qt, wxwindows, etc) -\the_end diff --git a/docs/src/hal/halshow.lyx b/docs/src/hal/halshow.lyx deleted file mode 100644 index 5ae5af68a..000000000 --- a/docs/src/hal/halshow.lyx +++ /dev/null @@ -1,627 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Section -Halshow -\end_layout - -\begin_layout Standard -The script halshow can help you find your way around a running HAL. - This is a very specialized system and it must connect to a working HAL. - It cannot run standalone because it relies on the ability of HAL to report - what it knows of itself through the halcmd interface library. - It is discovery based. - Each time halshow runs with a different EMC configuration it will be different. -\end_layout - -\begin_layout Standard -As we will soon see, this ability of HAL to document itself is one key to - making an effective CNC system. - -\end_layout - -\begin_layout Subsection -Starting Halshow -\end_layout - -\begin_layout Standard -Halshow is in the AXIS menu under Machine/Show Hal Configuration. -\end_layout - -\begin_layout Standard -Halshow is in the TkEMC menu under Scripts/Hal Show. -\end_layout - -\begin_layout Subsection -Hal Tree Area -\end_layout - -\begin_layout Standard -At the left of its display as shown in figure\InsetSpace ~ - -\begin_inset LatexCommand ref -reference "cap:Halshow-Layout" - -\end_inset - - is a tree view, somewhat like you might see with some file browsers. - At the right is a tabbed notebook with tabs for show and watch. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:Halshow-Layout" - -\end_inset - -Halshow Layout -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename halshow-1.png - width 100col% - keepAspectRatio - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The tree shows all of the major parts of a HAL. - In front of each is a small plus (+) or minus (-) sign in a box. - Clicking the plus will expand that tree node to display what is under it. - If that box shows a minus sign, clicking it will collapse that section - of the tree. - -\end_layout - -\begin_layout Standard -You can also expand or collapse the tree display using the Tree View menu - at the upper left edge of the display. - Under Tree View you will find: Expand Tree, Collapse Tree; Expand Pins, - Expand Parameters, Expand Signals; and Erase Watch. - (Note that Erase Watch erases -\emph on -all -\emph default - previously set watches, you cannot erase just one watch.) -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:Show-Menu" - -\end_inset - -Show Menu -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename halshow-3.png - width 50col% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Hal Show Area -\end_layout - -\begin_layout Standard -Clicking on the node name, the word "Components" for example, will show - you (under the "Show" tab) all that hal knows about the contents of that - node. - Figure\InsetSpace ~ - -\begin_inset LatexCommand ref -reference "cap:Halshow-Layout" - -\end_inset - - shows a list exactly like you will see if you click the "Components" name - while you are running a standard m5i20 servo card. - The information display is exactly like those shown in traditional text - based HAL analysis tools. - The advantage here is that we have mouse click access, access that can - be as broad or as focused as you need. -\end_layout - -\begin_layout Standard -If we take a closer look at the tree display we can see that the six major - parts of a HAL can all be expanded at least one level. - As these levels are expanded you can get more focused with the reply when - you click on the rightmost tree node. - You will find that there are some hal pins and parameters that show more - than one reply. - This is due to the nature of the search routines in halcmd itself. - If you search one pin you may get two, like this: -\end_layout - -\begin_layout Quote -Component Pins: -\newline -Owner Type Dir Value Name -\newline -06 bit -W TRUE parport.0.pin-10-in -\newline -06 - bit -W FALSE parport.0.pin-10-in-not -\end_layout - -\begin_layout Standard -The second pin's name contains the complete name of the first. - -\end_layout - -\begin_layout Standard -Below the show area on the right is a set of widgets that will allow you - to play with the running HAL. - The commands you enter here and the effect that they have on the running - HAL are not saved. - They will persist as long as EMC remains up but are gone as soon as EMC - is. -\end_layout - -\begin_layout Standard -The entry box labeled "Test Hal Command:" will accept any of the commands - listed for halcmd. - These include: -\end_layout - -\begin_layout Itemize -loadrt, unloadrt (load/unload real-time module) -\end_layout - -\begin_layout Itemize -loadusr, unloadusr (load/unload user-space component) -\end_layout - -\begin_layout Itemize -addf, delf (add/delete a function to/from a real-time thread) -\end_layout - -\begin_layout Itemize -net (create a connection between two or more items) -\end_layout - -\begin_layout Itemize -setp (set parameter (or pin) to a value) -\end_layout - -\begin_layout Standard -This little editor will enter a command any time you press or push - the execute button. - An error message from halcmd will show below this entry widget when these - commands are not properly formed. - If you are not certain how to set up a proper command you'll need to read - again the documentation on halcmd and the specific modules that you are - working with. - -\end_layout - -\begin_layout Standard -Let's use this editor to add a differential module to a hal and connect - it to axis position so that we could see the rate of change in position, - i.e., acceleration. - We first need to load a hal module named blocks, add it to the servo thread, - then connect it to the position pin of an axis. - Once that is done we can find the output of the differentiator in halscope. - So let's go. - (Yes, I looked this one up.) -\end_layout - -\begin_layout Quote -loadrt blocks ddt=1 -\end_layout - -\begin_layout Standard -Now look at the components node and you should see blocks in there someplace. - -\end_layout - -\begin_layout Quote -Loaded HAL Components: -\newline -ID Type Name -\newline -10 User halcmd29800 -\newline -09 User halcmd29374 -\newline -08 - RT blocks -\newline -06 RT hal_parport -\newline -05 RT scope_rt -\newline -04 RT stepgen -\newline -03 RT motmod -\newline -02 User - iocontrol -\end_layout - -\begin_layout Standard -Sure enough there it is. - Notice that its ID is 08. - Next we need to find out what functions are available with it so we look - at functions: -\end_layout - -\begin_layout Quote -Exported Functions: -\newline -Owner CodeAddr Arg FP Users Name -\newline -08 E0B97630 E0DC7674 - YES 0 ddt.0 -\newline -03 E0DEF83C 00000000 YES 1 motion-command-handler -\newline -03 E0DF0BF3 - 00000000 YES 1 motion-controller -\newline -06 E0B541FE E0DC75B8 NO 1 parport.0.read -\newline -06 - E0B54270 E0DC75B8 NO 1 parport.0.write -\newline -06 E0B54309 E0DC75B8 NO 0 parport.read-all -\newline -06 - E0B5433A E0DC75B8 NO 0 parport.write-all -\newline -05 E0AD712D 00000000 NO 0 scope.sample -\newline -04 - E0B618C1 E0DC7448 YES 1 stepgen.capture-position -\newline -04 E0B612F5 E0DC7448 NO - 1 stepgen.make-pulses -\newline -04 E0B614AD E0DC7448 YES 1 stepgen.update-freq -\end_layout - -\begin_layout Standard -Here we look for owner #08 and see that blocks has exported a function named - ddt.0. - We should be able to add ddt.0 to the servo thread and it will do its math - each time the servo thread is updated. - Once again we look up the addf command and find that it uses three arguments - like this: -\end_layout - -\begin_layout Quote -addf [] -\end_layout - -\begin_layout Standard -We already know the functname=ddt.0 so let's get the thread name right by - expanding the thread node in the tree. - Here we see two threads, servo-thread and base-thread. - The position of ddt.0 in the thread is not critical. - So we add the function ddt.0 to the servo-thread: -\end_layout - -\begin_layout Quote -addf ddt.0 servo-thread -\end_layout - -\begin_layout Standard -This is just for viewing, so we leave position blank and get the last position - in the thread. - Figure\InsetSpace ~ - -\begin_inset LatexCommand ref -reference "cap:Addf-Command" - -\end_inset - - shows the state of halshow after this command has been issued. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:Addf-Command" - -\end_inset - -Addf Command -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename halshow-2.png - width 100col% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Next we need to connect this block to something. - But how do we know what pins are available? The answer is to look under - pins. - There we find ddt and see this: -\end_layout - -\begin_layout Quote -Component Pins: -\newline -Owner Type Dir Value Name -\newline -08 float R- 0.00000e+00 ddt.0.in -\newline -08 - float -W 0.00000e+00 ddt.0.out -\end_layout - -\begin_layout Standard -That looks easy enough to understand, but what signal or pin do we want - to connect to it? It could be an axis pin, a stepgen pin, or a signal. - We see this when we look at axis.0: -\end_layout - -\begin_layout Quote -Component Pins: -\newline -Owner Type Dir Value Name -\newline -03 float -W 0.00000e+00 axis.0.motor-pos-cm -d ==> Xpos-cmd -\end_layout - -\begin_layout Standard -So it looks like Xpos-cmd should be a good signal to use. - Back to the editor where we enter the following command: -\end_layout - -\begin_layout Quote -linksp Xpos-cmd ddt.0.in -\end_layout - -\begin_layout Standard -Now if we look at the Xpos-cmd signal using the tree node we'll see what - we've done: -\end_layout - -\begin_layout Quote -Signals: -\newline -Type Value Name -\newline -float 0.00000e+00 Xpos-cmd -\newline -<== axis.0.motor-pos-cmd -\newline -==> - ddt.0.in -\newline -==> stepgen.0.position-cmd -\end_layout - -\begin_layout Standard -We see that this signal comes from axis.o.motor-pos-cmd and goes to both ddt.0.in - and stepgen.0.position-cmd. - By connecting our block to the signal we have avoided any complications - with the normal flow of this motion command. -\end_layout - -\begin_layout Standard -The Hal Show Area uses halcmd to discover what is happening in a running - HAL. - It gives you complete information about what it has discovered. - It also updates as you issue commands from the little editor panel to modify - that HAL. - There are times when you want a different set of things displayed without - all of the information available in this area. - That is where the Hal Watch Area is of value. -\end_layout - -\begin_layout Subsection -Hal Watch Area -\end_layout - -\begin_layout Standard -Clicking the watch tab produces a blank canvas. - You can add signals and pins to this canvas and watch their values. -\begin_inset Foot -status collapsed - -\begin_layout Standard -The refresh rate of the watch display is much lower than Halmeter or Halscope. - If you need good resolution of the timing of signals those tools are much - more effective. -\end_layout - -\end_inset - - You can add signals or pins when the watch tab is displayed by clicking - on the name of it. - Figure -\begin_inset LatexCommand ref -reference "cap:Watch-Display" - -\end_inset - - shows this canvas with several "bit" type signals. - These signals include enable-out for the first three axes and two of the - three iocontrol "estop" signals. - Notice that the axes are not enabled even though the estop signals say - that EMC is not in estop. - A quick look at TkEMC shows that the condition of EMC is ESTOP RESET. - The amp enables do not turn true until the machine has been turned on. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "cap:Watch-Display" - -\end_inset - -Watch Display -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename halshow-4.png - width 100col% - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Watch displays bit type (binary) values using colored circles representing - LEDs. - They show as dark brown when a bit signal or pin is false, and as light - yellow whenever that signal is true. - If you select a pin or signal that is not a bit type (binary) signal, watch - will show it as a numerical value. -\end_layout - -\begin_layout Standard -Watch will quickly allow you to test switches or see the effect of changes - that you make to EMC while using the graphical interface. - Watch's refresh rate is a bit slow to see stepper pulses, but you can use - it for these if you move an axis very slowly or in very small increments - of distance. - If you've used IO_Show in EMC, the watch page in halshow can be set up - to watch a parport much as IO_Show did. - -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/halshow_fr.lyx b/docs/src/hal/halshow_fr.lyx deleted file mode 100644 index f51ae3b2c..000000000 --- a/docs/src/hal/halshow_fr.lyx +++ /dev/null @@ -1,589 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Section - -Halshow -\layout Standard - -Le script halshow peut vous aider retrouver votre chemin dans un HAL en - fonctionnement. - Il s'agit d'un systme trs spcialis qui doit se connecter un HAL en - marche. - Il ne peut pas fonctionner seul car il repose sur la capacit de HAL de - rapporter ce qu'il connat de lui mme par la librairie d'interface de - halcmd. - Chaque fois que halshow fonctionne avec une configuration d'EMC diffrente, - il sera diffrent. -\layout Standard - -Comme nous le verrons bientt, cette capacit de HAL de se documenter lui - mme est un des facteurs cls pour arriver un systme CNC optimum. - -\layout Standard - -On peut accder Halshow depuis Axis, pour cela, aller dans le menu -\begin_inset Quotes eld -\end_inset - -Machine -\begin_inset Quotes erd -\end_inset - - puis choisir -\begin_inset Quotes eld -\end_inset - -Afficher la configuration de HAL -\begin_inset Quotes erd -\end_inset - -. -\layout Subsection - -Zone de l'arborescence de Hal -\layout Standard - -La gauche de l'cran que montre la figure\SpecialChar ~ - -\begin_inset LatexCommand \ref{cap:-Fenêtre-Halshow} - -\end_inset - - est une arborescence, un peu comme vous pouvez le voir avec certains navigateur -s de fichiers. - Sur la droite, une zone avec deux onglets: MONTRER et WATCH. -\layout Standard - - -\begin_inset Float figure -placement H -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{cap:-Fenêtre-Halshow} - -\end_inset - -Ecran de Halshow -\layout Standard - - -\begin_inset Graphics - filename halshow-1.png - width 100col% - keepAspectRatio - -\end_inset - - -\end_inset - - -\layout Standard - -L'arborescence montre toutes les parties principales de HAL. - En face de chacune d'entre elles, se trouve un petit signe + ou - dans - une case. - Cliquer sur le signe plus pour dployer cette partie de l'arborescence - et affichera son contenu. - Si cette case affiche un signe moins, cliquer dessus repliera cette section - de l'arborescence. - -\layout Standard - -Il est galement possible de dployer et de replier l'arborescence complte - depuis le menu -\begin_inset Quotes eld -\end_inset - -Arborescence -\begin_inset Quotes erd -\end_inset - -. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{cap:-L'onglet-Montrer} - -\end_inset - -L'onglet Montrer -\layout Standard -\align center - -\begin_inset Graphics - filename halshow-3.png - width 50col% - -\end_inset - - -\end_inset - - -\layout Subsection - -Zone de l'onglet MONTRER -\layout Standard - -En cliquant sur un nom dans l'arborescence plutt que sur son signe plus - ou moins, par exemple le mot -\begin_inset Quotes eld -\end_inset - -Components -\begin_inset Quotes erd -\end_inset - -, HAL affichera tout ce qu'il connait du contenu de celui-ci. - La figure\SpecialChar ~ - -\begin_inset LatexCommand \ref{cap:-Fenêtre-Halshow} - -\end_inset - - montre une liste comme celle que vous verrez si vous cliquez sur -\begin_inset Quotes eld -\end_inset - -Components -\begin_inset Quotes erd -\end_inset - - avec une carte servo standard m5i20 en fonctionnement. - L'affichage des informations est exactement le mme que celui des traditionnels - outils d'analyse de HAL en mode texte. - L'avantage ici, c'est que nous y avons accs d'un clic de souris. - Accs qui peut tre aussi large ou aussi focalis que vous le voulez. -\layout Standard - -Si nous examinons de plus prs l'affichage de l'arborescence, nous pouvons - voir que les six lments principaux peuvent tous tre dploys d'au moins - un niveau. - Quand ces niveaux sont leur tour dploys vous obtenez une information - de plus en plus focalise en cliquant sur le nom des lments dans l'arborescen -ce. - Vous trouverez que certaines hal pins et certains paramtres affichent - plusieurs rponses. - C'est d la nature des routines de recherche dans halcmd lui mme. - Si vous cherchez une pin, vous pouvez en trouver deux comme cela: -\layout LyX-Code - -Component Pins: -\newline -Owner Type Dir Value Name -\newline -06 bit -W TRUE parport.0.pin-10-in -\newline -06 bit -W FALSE parport.0.pin-10-in-not -\layout Standard - -Le deuxime nom de pin contient le nom complment du premier. - -\layout Standard - -Dans le bas de l'onglet Montrer, un champ de saisie permet de jouer sur - le fonctionnement de HAL. - Les commandes que vous entrez ici et leur effet sur HAL, ne sont pas enregistr -s. - Elles persisteront tant qu'EMC tournera, mais disparatront ds son arrt. -\layout Standard - -Le champ de saisie marqu -\begin_inset Quotes eld -\end_inset - -Tester une commande HAL: -\begin_inset Quotes erd -\end_inset - - acceptera n'importe quelle commande valide pour halcmd. - Elles incluent: -\layout Itemize - -loadrt, unloadrt -\layout Itemize - -addf, delf -\layout Itemize - -newsig, delsig -\layout Itemize - -linkpp, linksp, linkps, unlinkp -\layout Itemize - -setp, sets -\layout Standard - -Ce petit diteur entrera une commande chaque fois que vous presserez - ou que vous cliquerez sur le bouton -\begin_inset Quotes eld -\end_inset - -Excuter -\begin_inset Quotes erd -\end_inset - -. - Si une commande y est mal forme, un dialogue d'erreur s'affichera. - Si vous n'tes pas sr de savoir comment formuler une commande, vous trouverez - la rponse dans la documentation de halcmd et des modules spcifiques avec - lesquels vous travaillez. - -\layout Standard - -Nous allons utiliser cet diteur pour ajouter un module diffrentiel HAL - et le connecter la position d'un axe pour voir le ratio de changement - de position, par exemple, l'acclration. - Il faut d'abord charger un module de HAL nomm blocks, l'ajouter au thread - servo et le connectet la pin position d'un axe. - Une fois cela fait, nous pourrons retrouver la sortie du diffrentiateur - dans halscope. - Alors allons-y. - (oui j'ai vrifi). -\layout Standard - - -\begin_inset Note -collapsed true - -\layout Standard - -Ndt: le message qui s'affiche au chargement de blocks ne l'empche pas de - fonctionner. -\end_inset - - -\layout LyX-Code - -loadrt blocks ddt=1 -\layout Standard - -Maintenant, regardez dans components, vous devriez y voir blocks. - -\layout LyX-Code - -Loaded HAL Components: -\newline -ID Type Name -\newline -10 User halcmd29800 -\newline -09 User halcmd29374 -\newline -08 RT blocks -\newline -06 RT hal_parport -\newline -05 RT scope_rt -\newline -04 RT stepgen -\newline -03 RT motmod -\newline -02 User iocontrol -\layout Standard - -Effectivement, il est l. - Dans notre cas l'id est 08. - Ensuite nous devons savoir quelles fonctions sont disponibles avec lui, - nous regardons dans Functions. -\layout LyX-Code - -Exported Functions: -\newline -Owner CodeAddr Arg FP Users Name -\newline -08 E0B97630 E0DC7674 YES 0 ddt.0 -\newline -03 E0DEF83C 00000000 YES 1 motion-command-handler -\newline -03 E0DF0BF3 00000000 YES 1 motion-controller -\newline -06 E0B541FE E0DC75B8 NO 1 parport.0.read -\newline -06 E0B54270 E0DC75B8 NO 1 parport.0.write -\newline -06 E0B54309 E0DC75B8 NO 0 parport.read-all -\newline -06 E0B5433A E0DC75B8 NO 0 parport.write-all -\newline -05 E0AD712D 00000000 NO 0 scope.sample -\newline -04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position -\newline -04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses -\newline -04 E0B614AD E0DC7448 YES 1 stepgen.update-freq -\layout Standard - -Ici, nous cherchons owner #08 et voyons que blocks a export une fonction - nomme ddt.0. - Nous devrions tre en mesure d'ajouter ddt.0 au thread servo et il fera - ses calculs chaque fois que le thread sera mis jour. - Encore une fois recherchons la commande addf et on voit qu'elle utilise - trois arguments comme cela: -\layout LyX-Code - -addf [] -\layout Standard - -Nous connaissons dj functname=ddt.0, pour trouver le nom du thread, dployons - l'arborescence des Threads. - Nous y trouvons deux threads, servo-thread et base-thread. - La position de ddt.0 dans le thread n'est pas critique. - Passons la commande: -\layout LyX-Code - -addf ddt.0 servo-thread -\layout Standard - -Comme c'est juste pour visualiser, nous laissons la position en blanc pour - obtenir la dernire position dans le thread. - La figure\SpecialChar ~ - -\begin_inset LatexCommand \ref{cap:-Commande-addf} - -\end_inset - - montre l'tat de halshow aprs que cette commande a t excute. - -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{cap:-Commande-addf} - -\end_inset - -Commande Addf -\layout Standard - - -\begin_inset Graphics - filename halshow-2.png - width 100col% - -\end_inset - - -\end_inset - - -\layout Standard - -Ensuite, nous devons connecter ce block quelque chose. - Mais comment savoir quelles pins sont disponibles? La rponse se trouve - dans l'arbre, en regardant sous Pins. - On y trouve ddt et on voit: -\layout LyX-Code - -Component Pins: -\newline -Owner Type Dir Value Name -\newline -08 float R- 0.00000e+00 ddt.0.in -\newline -08 float -W 0.00000e+00 ddt.0.out -\layout Standard - -Cela semble assez facile comprendre, mais quel signal ou pin voulons-nous - nous connecter, a pourrait tre une pin d'axe, une pin de stepgen, ou - un signal. - On vois cela en regardant dans axis.0. -\layout LyX-Code - -Component Pins: -\newline -Owner Type Dir Value Name -\newline -03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd -\layout Standard - -Donc, il semble que Xpos-cmd devrait tre un bon signal utiliser. - Retour l'diteur et entrons la commande suivante: -\layout LyX-Code - -linksp Xpos-cmd ddt.0.in -\layout Standard - -Maintenant si on regarde le signal Xpos-cmd dans l'arbre, on voit ce qu'on - a fait. -\layout LyX-Code - -Signals: -\newline -Type Value Name -\newline -float 0.00000e+00 Xpos-cmd -\newline -<== axis.0.motor-pos-cmd -\newline -==> ddt.0.in -\newline -==> stepgen.0.position-cmd -\layout Standard - -Nous voyons que ce signal provient de axis.0.motor-pos-cmd et va, la fois, - sur ddt.0.in et sur stepgen.0.position-cmd. - En connectant notre block au signal nous avons vit les complications - avec le flux normal de cette commande de mouvement. -\layout Standard - -La zone de l'onglet -\begin_inset Quotes eld -\end_inset - -Montrer -\begin_inset Quotes erd -\end_inset - - utilise halcmd pour dcouvrir ce qui se passe l'intrieur de HAL pendant - son fonctionnement. - Il vous donne une information complte de ce qu'il dcouvre. - Il met aussi jour ds qu'une commande est envoye depuis le petit diteur - pour modifier ce HAL. - Il arrive un temps ou vous voulez autre chose d'affich, sans la totalit - des informations disponibles dans cette zone. - C'est la grande valeur de l'onglet WATCH d'offrir cela. -\layout Subsection - -Zone de l'onglet WATCH -\layout Standard - -En cliquant sur l'onglet WATCH une zone vide s'affichera. - Vous pouvez ajouter des signaux et des pins dans cette zone et visualiser - leurs valeurs. -\begin_inset Foot -collapsed false - -\layout Standard - -Le taux de rafrachissement de la zone Watch est plus lent que celui de - Halmeter ou de Halscope. - Si vous avez besoin d'une bonne rsolution dans le timming des signaux, - ces outils sont plus efficaces. -\end_inset - - Vous pouvez ajouter des pins ou des signaux quand l'onglet Watch est ouvert, - en cliquant sur leurs noms. - La figure -\begin_inset LatexCommand \ref{cap:-L'onglet-Watch} - -\end_inset - - Montre cette zone avec plusieurs signaux de type -\begin_inset Quotes eld -\end_inset - -bit -\begin_inset Quotes erd -\end_inset - -. - Parmis ces signaux, les enable-out pour les trois premiers axes et deux - de la branche iocontrol, les signaux -\begin_inset Quotes eld -\end_inset - -estop -\begin_inset Quotes erd -\end_inset - -. - Notez que les axes ne sont pas activs mme si les signaux estop disent - qu'EMC n'est pas en estop. - Un bref regard sur themc en arrire plan, montre que l'tat d'EMC est ESTOP - RESET. - L'activation des amplis ne deviendra pas vraie tant que la machine ne sera - pas mise en marche. -\layout Standard - - -\begin_inset Float figure -wide false -collapsed false - -\layout Caption - - -\begin_inset LatexCommand \label{cap:-L'onglet-Watch} - -\end_inset - -L'onglet Watch -\layout Standard - - -\begin_inset Graphics - filename halshow-4.png - width 100col% - -\end_inset - - -\end_inset - - -\layout Standard - -Les cercles de deux couleurs, simili leds, sont toujours bruns fonc quand - un signal est faux. - Elle sont jaunes quand le signal est vrai. - Quand une pin ou un signal est slectionn mais n'est pas de type bit, - sa valeur numrique s'affiche. -\layout Standard - -Watch permet de visualiser rapidement le rsultat de tests sur des contacts - ou de voir l'effet d'un changement que vous faites dans EMC en utilisant - l'interface graphique. - Le taux de rafrachissement de Watch est un peu trop lent pour visualiser - les impulsions de pas d'un moteur mais vous pouvez l'utiliser si vous dplacez - un axe trs lentement ou par trs petits incrments de distance. - Si vous avez dj utilis IO_Show dans EMC, la page de Watch de halshow - peut tre rgle pour afficher ce que fait le port parallle. - -\the_end diff --git a/docs/src/hal/halui_examples.lyx b/docs/src/hal/halui_examples.lyx deleted file mode 100644 index f2bd762d9..000000000 --- a/docs/src/hal/halui_examples.lyx +++ /dev/null @@ -1,241 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Halui Examples -\end_layout - -\begin_layout Standard -For any Halui examples to work you need to add the following line to the - [HAL] section of the ini file. -\end_layout - -\begin_layout Quote -HALUI = halui -\end_layout - -\begin_layout Section -Remote Start -\end_layout - -\begin_layout Standard -To connect a remote program start button to EMC you use the halui.program.run - pin and the halui.mode.auto pin. - You have to insure that it is Ok to run first by using the halui.mode.is-auto - pin. - You do this with an and2 component. - The following figure shows how this is done. - When the Remote Run Button is pressed it is connected to both halui.mode.auto - and and2.0.in0. - If it is ok for auto mode the pin halui.mode.is-auto will be on. - If both the inputs to the and2.0 component are on the and2.0.out will be on - and this will start the program. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Standard - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -Remote Start Example -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\noindent -\align center -\begin_inset Graphics - filename images/remote-start.png - -\end_inset - - -\end_layout - -\begin_layout Standard - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The hal commands needed to accomplish the above are: -\end_layout - -\begin_layout LyX-Code -net program-start-btn halui.mode.auto and2.0.in0 <= -\end_layout - -\begin_layout LyX-Code -net program-run-ok and2.0.in1 <= halui.mode.is-auto -\end_layout - -\begin_layout LyX-Code -net remote-program-run halui.program.run <= and2.0.out -\end_layout - -\begin_layout Standard -Notice on line one that there are two reader pins, this can also be split - up to two lines like this: -\end_layout - -\begin_layout LyX-Code -net program-start-btn halui.mode.auto <= -\end_layout - -\begin_layout LyX-Code -net program-start-btn and2.0.in0 -\end_layout - -\begin_layout Section -Paused & Resume -\end_layout - -\begin_layout Standard -This example developed from the need of EMC2 to move a rotary axis when - told to do so by another machine. - To coordinate between two control systems using Halui we take advantage - of two components of Halui. -\end_layout - -\begin_layout Itemize -halui.program.is-paused -\end_layout - -\begin_layout Itemize -halui.program.resume -\end_layout - -\begin_layout Standard -In your custom.hal file we can add a couple of lines that when connected - to your I/O can tell the other control system that the program is paused - and to resume the program when the other control system wants EMC2 to resume. -\end_layout - -\begin_layout Quote -net ispaused halui.program.is-paused => "your out pin" -\end_layout - -\begin_layout Quote -net resume halui.program.resume <= "your in pin" -\end_layout - -\begin_layout Standard -Your "in" and "out -\begin_inset Quotes erd -\end_inset - - pin is what is connected to the other controller. - It could be a parallel port pin or any other pin you have access to. - -\end_layout - -\begin_layout Standard -How this works is when a M0 is encountered in your g code halui.program.is-paused - goes true. - This turns on your "out" pin so the other controller knows EMC2 is finished. - -\end_layout - -\begin_layout Standard -To resume the g code the other controller makes your "in" pin go true. - This will then run the EMC2 g code up to the next M0. -\end_layout - -\begin_layout Standard -Timing requirements -\end_layout - -\begin_layout Itemize -Resume must not be true longer that it takes to run the g code -\end_layout - -\begin_layout Itemize -Is Paused must not be on when next resume arrives -\end_layout - -\begin_layout Standard -Timing issues that could foul up a good plan is when the other controller - sends a resume out and sees the is paused bit on and thinks that EMC2 was - very fast at completing the requested command. - The second issue is the other controller sending out a resume that is longer - than it takes to execute the program. - -\end_layout - -\begin_layout Standard -This could be over come using ClassicLadder to turn on the is paused bit - for a limited amount of time then turning it back off. - Also the resume could be on a one shot or a very short timer. -\end_layout - -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Standard -add ClassicLadder example -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/halui_examples_fr.lyx b/docs/src/hal/halui_examples_fr.lyx deleted file mode 100644 index feebe2387..000000000 --- a/docs/src/hal/halui_examples_fr.lyx +++ /dev/null @@ -1,149 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\language french -\inputencoding auto -\fontscheme bookman -\graphics default -\paperfontsize 11 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - -Exemples avec Halui -\layout Standard - -Pour que ces exemples fonctionnent, vous devez ajouter la ligne suivante - dans la section [HAL] du fichier ini. -\layout Quote - -HALUI = halui -\layout Section - -Pause et Reprise -\layout Standard - -Cet exemple a t developp pour permettre EMC2 de dplacer un axe rotatif - selon un signal provenant d'une machine extrieure. - La coordination entre les deux systmes sera assure par deux composants - de Halui. -\layout Itemize - -halui.program.is-paused -\layout Itemize - -halui.program.resume -\layout Standard - -Dans votre fichier custom.hal, ajoutez les deux lignes suivantes qui seront - connectes vos entres/sorties pour mettre le programme en pause ou pour - le reprendre quand l'autre systme veut qu'EMC2 soit relanc. -\layout Quote - -net ispaused halui.program.is-paused => "votre broche en sortie" -\layout Quote - -net resume halui.program.resume <= "votre broche en entre" -\layout Standard - -Vos broches "entre" et "sortie" correspondent celles qui sont cbles - vers l'autre contrleur. - Elles peuvent tre des broches du port parallle ou toutes autres broches - auquelles vous avez accs. - -\layout Standard - -Le fonctionnement est le suivant, quand un M0 est rencontr dans le programme - g-code, halui.program.is-paused devient -\begin_inset Quotes fld -\end_inset - -vrai -\begin_inset Quotes frd -\end_inset - -. - Ce qui rend votre broche "sortie" galement -\begin_inset Quotes fld -\end_inset - -vraie -\begin_inset Quotes frd -\end_inset - - de sorte que l'autre contrleur sait qu'EMC2 est arrt. - -\layout Standard - -Pour reprendre le cours du g-code l'autre contrleur devra rendre votre - "entre" -\begin_inset Quotes fld -\end_inset - -vraie -\begin_inset Quotes frd -\end_inset - -. - Ce qui relancera EMC2 jusqu'au prochain M0. -\layout Standard - -Difficults de timing -\layout Itemize - -Le signal de reprise ne doit pas tre plus long que le temps ncessaire - pour excuter le g-code -\layout Itemize - -Le signal -\begin_inset Quotes fld -\end_inset - -Is Paused -\begin_inset Quotes frd -\end_inset - - ne doit plus tre actif quand le signal suivant de reprise arrive -\layout Standard - -Ces problmes de timming pourraient tre vits en utilisant ClassicLadder - pour activer le signal -\begin_inset Quotes fld -\end_inset - -is paused -\begin_inset Quotes frd -\end_inset - - avec une tempo et le dsactiver en fin de tempo. - La reprise pourrait galement tre fournie par un signal monostable trs - court. -\layout Standard - - -\begin_inset Note -collapsed true - -\layout Standard - -add ClassicLadder example -\end_inset - - -\the_end diff --git a/docs/src/hal/intro.lyx b/docs/src/hal/intro.lyx deleted file mode 100644 index 9b4ea4764..000000000 --- a/docs/src/hal/intro.lyx +++ /dev/null @@ -1,1184 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 1 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -\begin_inset LatexCommand label -name "cha:Introduction" - -\end_inset - -Introduction -\end_layout - -\begin_layout Standard -This manual is for the person who wants to know more about HAL than is needed - to just set up an EMC configuration file. - HAL can run without EMC so this manual focuses on the stand alone HAL. - For information on EMC related HAL see the Integrators manual. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:What-is-HAL?" - -\end_inset - -What is HAL? -\end_layout - -\begin_layout Standard -HAL -\begin_inset LatexCommand index -name "HAL" - -\end_inset - - stands for Hardware Abstraction Layer. - At the highest level, it is simply a way to allow a number of -\begin_inset Quotes eld -\end_inset - -building blocks -\begin_inset Quotes erd -\end_inset - - to be loaded and interconnected to assemble a complex system. - The -\begin_inset Quotes eld -\end_inset - -Hardware -\begin_inset Quotes erd -\end_inset - - part is because HAL was originally designed to make it easier to configure - EMC for a wide variety of hardware devices. - Many of the building blocks are drivers for hardware devices. - However, HAL can do more than just configure hardware drivers. -\end_layout - -\begin_layout Subsection -HAL is based on traditional system design techniques -\end_layout - -\begin_layout Standard -HAL is based on the same principles that are used to design hardware circuits - and systems, so it is useful to examine those principles first. -\end_layout - -\begin_layout Standard -Any system (including a CNC -\begin_inset LatexCommand index -name "CNC" - -\end_inset - - machine), consists of interconnected components. - For the CNC machine, those components might be the main controller, servo - amps or stepper drives, motors, encoders, limit switches, pushbutton pendants, - perhaps a VFD for the spindle drive, a PLC to run a toolchanger, etc. - The machine builder must select, mount and wire these pieces together to - make a complete system. -\end_layout - -\begin_layout Subsubsection -Part Selection -\end_layout - -\begin_layout Standard -The machine builder does not need to worry about how each individual part - works. - He treats them as black boxes. - During the design stage, he decides which parts he is going to use - steppers - or servos, which brand of servo amp, what kind of limit switches and how - many, etc. - The integrator's decisions about which specific components to use is based - on what that component does and the specifications supplied by the manufacturer - of the device. - The size of a motor and the load it must drive will affect the choice of - amplifier needed to run it. - The choice of amplifier may affect the kinds of feedback needed by the - amp and the velocity or position signals that must be sent to the amp from - a control. - -\end_layout - -\begin_layout Standard -In the HAL world, the integrator must decide what HAL components are needed. - Usually every interface card will require a driver. - Additional components may be needed for software generation of step pulses, - PLC functionality, and a wide variety of other tasks. -\end_layout - -\begin_layout Subsubsection -Interconnection Design -\end_layout - -\begin_layout Standard -The designer of a hardware system not only selects the parts, he also decides - how those parts will be interconnected. - Each black box has terminals, perhaps only two for a simple switch, or - dozens for a servo drive or PLC. - They need to be wired together. - The motors connect to the servo amps, the limit switches connect to the - controller, and so on. - As the machine builder works on the design, he creates a large wiring diagram - that shows how all the parts should be interconnected. -\end_layout - -\begin_layout Standard -When using HAL, components are interconnected by signals. - The designer must decide which signals are needed, and what they should - connect. -\end_layout - -\begin_layout Subsubsection -Implementation -\end_layout - -\begin_layout Standard -Once the wiring diagram is complete it is time to build the machine. - The pieces need to be acquired and mounted, and then they are interconnected - according to the wiring diagram. - In a physical system, each interconnection is a piece of wire that needs - to be cut and connected to the appropriate terminals. -\end_layout - -\begin_layout Standard -HAL provides a number of tools to help -\begin_inset Quotes eld -\end_inset - -build -\begin_inset Quotes erd -\end_inset - - a HAL system. - Some of the tools allow you to -\begin_inset Quotes eld -\end_inset - -connect -\begin_inset Quotes erd -\end_inset - - (or disconnect) a single -\begin_inset Quotes eld -\end_inset - -wire -\begin_inset Quotes erd -\end_inset - -. - Other tools allow you to save a complete list of all the parts, wires, - and other information about the system, so that it can be -\begin_inset Quotes eld -\end_inset - -rebuilt -\begin_inset Quotes erd -\end_inset - - with a single command. -\end_layout - -\begin_layout Subsubsection -Testing -\end_layout - -\begin_layout Standard -Very few machines work right the first time. - While testing, the builder may use a meter to see whether a limit switch - is working or to measure the DC voltage going to a servo motor. - He may hook up an oscilloscope to check the tuning of a drive, or to look - for electrical noise. - He may find a problem that requires the wiring diagram to be changed; perhaps - a part needs to be connected differently or replaced with something completely - different. -\end_layout - -\begin_layout Standard -HAL provides the software equivalents of a voltmeter, oscilloscope, signal - generator, and other tools needed for testing and tuning a system. - The same commands used to build the system can be used to make changes - as needed. -\end_layout - -\begin_layout Subsection -Summary -\end_layout - -\begin_layout Standard -This document is aimed at people who already know how to do this kind of - hardware system integration, but who do not know how to connect the hardware - to EMC. -\end_layout - -\begin_layout Standard -The traditional hardware design as described above ends at the edge of the - main control. - Outside the control are a bunch of relatively simple boxes, connected together - to do whatever is needed. - Inside, the control is a big mystery -- one huge black box that we hope - works. -\end_layout - -\begin_layout Standard -HAL extends this traditional hardware design method to the inside of the - big black box. - It makes device drivers and even some internal parts of the controller - into smaller black boxes that can be interconnected and even replaced just - like the external hardware. - It allows the -\begin_inset Quotes eld -\end_inset - -system wiring diagram -\begin_inset Quotes erd -\end_inset - -to show part of the internal controller, rather than just a big black box. - And most importantly it allows the integrator to test and modify the controller - using the same methods he would use on the rest of the hardware. -\end_layout - -\begin_layout Standard -Terms like motors, amps, and encoders are familiar to most machine integrators. - When we talk about using extra flexible eight conductor shielded cable - to connect an encoder to the servo input board in the computer, the reader - immediately understands what it is and is led to the question, -\begin_inset Quotes eld -\end_inset - -what kinds of connectors will I need to make up each end. -\begin_inset Quotes erd -\end_inset - - The same sort of thinking is essential for the HAL but the specific train - of thought may take a bit to get on track. - Using HAL words may seem a bit strange at first, but the concept of working - from one connection to the next is the same. -\end_layout - -\begin_layout Standard -This idea of extending the wiring diagram to the inside of the controller - is what HAL is all about. - If you are comfortable with the idea of interconnecting hardware black - boxes, you will probably have little trouble using HAL to interconnect - software black boxes. -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:HAL-Concepts" - -\end_inset - -HAL Concepts -\end_layout - -\begin_layout Standard -This section is a glossary that defines key HAL terms but it is a bit different - than a traditional glossary because these terms are not arranged in alphabetica -l order. - They are arranged by their relationship or flow in the HAL way of things. - -\end_layout - -\begin_layout Description -Component -\begin_inset LatexCommand index -name "HAL Component" - -\end_inset - -: When we talked about hardware design, we referred to the individual pieces - as "parts", "building blocks", "black boxes", etc. - The HAL equivalent is a "component" or "HAL component". - (This document uses "HAL component" when there is likely to be confusion - with other kinds of components, but normally just uses "component".) A HAL - component is a piece of software with well-defined inputs, outputs, and - behavior, that can be installed and interconnected as needed. - -\end_layout - -\begin_layout Description -Parameter -\begin_inset LatexCommand index -name "HAL Parameter" - -\end_inset - -: Many hardware components have adjustments that are not connected to any - other components but still need to be accessed. - For example, servo amps often have trim pots to allow for tuning adjustments, - and test points where a meter or scope can be attached to view the tuning - results. - HAL components also can have such items, which are referred to as "parameters". - There are two types of parameters: Input parameters are equivalent to trim - pots - they are values that can be adjusted by the user, and remain fixed - once they are set. - Output parameters cannot be adjusted by the user - they are equivalent - to test points that allow internal signals to be monitored. -\end_layout - -\begin_layout Description -Pin -\begin_inset LatexCommand index -name "HAL Pin" - -\end_inset - -: Hardware components have terminals which are used to interconnect them. - The HAL equivalent is a "pin" or "HAL pin". - ("HAL pin" is used when needed to avoid confusion.) All HAL pins are named, - and the pin names are used when interconnecting them. - HAL pins are software entities that exist only inside the computer. - -\end_layout - -\begin_layout Description -Physical_Pin -\begin_inset LatexCommand index -name "HAL Physical-Pin" - -\end_inset - -: Many I/O devices have real physical pins or terminals that connect to - external hardware, for example the pins of a parallel port connector. - To avoid confusion, these are referred to as "physical pins". - These are the things that -\begin_inset Quotes eld -\end_inset - -stick out -\begin_inset Quotes erd -\end_inset - - into the real world. -\begin_inset Note Note -status open - -\begin_layout Standard -Might need some explanation how HAL_pins and Physical pin relates to something - like an encoder chip or an stg card. - We are dealing in data type interface and data type translation/conversion - here. - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -Signal -\begin_inset LatexCommand index -name "HAL Signal" - -\end_inset - -: In a physical machine, the terminals of real hardware components are interconn -ected by wires. - The HAL equivalent of a wire is a "signal" or "HAL signal". - HAL signals connect HAL pins together as required by the machine builder. - HAL signals can be disconnected and reconnected at will (even while the - machine is running). -\end_layout - -\begin_layout Description -Type -\begin_inset LatexCommand index -name "HAL Type" - -\end_inset - -: When using real hardware, you would not connect a 24 volt relay output - to the +/-10V analog input of a servo amp. - HAL pins have the same restrictions, which are based upon their type. - Both pins and signals have types, and signals can only be connected to - pins of the same type. - Currently there are 4 types, as follows: -\end_layout - -\begin_layout Itemize - -\noun on -bit -\noun default - - a single TRUE/FALSE or ON/OFF value -\end_layout - -\begin_layout Itemize - -\noun on -float -\noun default - - a 64 bit floating point value, with approximately 53 bits of resolution - and over 1000 bits of dynamic range. -\end_layout - -\begin_layout Itemize - -\noun on -u32 -\noun default - - a 32 bit unsigned integer, legal values are 0 to +4294967295 -\end_layout - -\begin_layout Itemize - -\noun on -s32 -\noun default - - a 32 bit signed integer, legal values are -2147483648 to +2147483647 -\end_layout - -\begin_layout Description -\begin_inset LatexCommand label -name "des:Function" - -\end_inset - -Function -\begin_inset LatexCommand index -name "HAL Function" - -\end_inset - -: Real hardware components tend to act immediately on their inputs. - For example, if the input voltage to a servo amp changes, the output also - changes automatically. - However software components cannot act "automatically". - Each component has specific code that must be executed to do whatever that - component is supposed to do. - In some cases, that code simply runs as part of the component. - However in most cases, especially in realtime components, the code must - run in a specific sequence and at specific intervals. - For example, inputs should be read before calculations are performed on - the input data, and outputs should not be written until the calculations - are done. - In these cases, the code is made available to the system in the form of - one or more "functions". - Each function is a block of code that performs a specific action. - The system integrator can use "threads" to schedule a series of functions - to be executed in a particular order and at specific time intervals. -\end_layout - -\begin_layout Description -\begin_inset LatexCommand label -name "des:Thread" - -\end_inset - -Thread -\begin_inset LatexCommand index -name "HAL Thread" - -\end_inset - -: A "thread" is a list of functions that runs at specific intervals as part - of a realtime task. - When a thread is first created, it has a specific time interval (period), - but no functions. - Functions can be added to the thread, and will be executed in order every - time the thread runs. -\end_layout - -\begin_layout Standard -As an example, suppose we have a parport component named hal_parport. - That component defines one or more HAL pins for each physical pin. - The pins are described in that component's doc section: their names, how - each pin relates to the physical pin, are they inverted, can you change - polarity, etc. - But that alone doesn't get the data from the HAL pins to the physical pins. - It takes code to do that, and that is where functions come into the picture. - The parport component needs at least two functions: one to read the physical - input pins and update the HAL pins, the other to take data from the HAL - pins and write it to the physical output pins. - Both of these functions are part of the parport driver. - -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Intro-HAL-components" - -\end_inset - -HAL components -\end_layout - -\begin_layout Standard -Each HAL component is a piece of software with well-defined inputs, outputs, - and behavior, that can be installed and interconnected as needed. - This section lists some of the available components and a brief description - of what each does. - Complete details for each component are available later in this document. -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:ExternalPrograms" - -\end_inset - -External Programs with HAL hooks -\end_layout - -\begin_layout Description -motion -\begin_inset LatexCommand index -name "motion" - -\end_inset - - A realtime module that accepts NML motion commands and interacts with HAL - -\end_layout - -\begin_layout Description -iocontrol -\begin_inset LatexCommand index -name "iocontrol" - -\end_inset - - A user space module that accepts NML I/O commands and interacts with HAL - -\end_layout - -\begin_layout Description -classicladder -\begin_inset LatexCommand index -name "ClassicLadder" - -\end_inset - - A PLC using HAL for all I/O -\end_layout - -\begin_layout Description -halui -\begin_inset LatexCommand index -name "halui" - -\end_inset - - A user space program that interacts with HAL and sends NML commands, it - is intended to work as a full User Interface using external knobs & switches - -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:InternalComponents" - -\end_inset - -Internal Components -\end_layout - -\begin_layout Description -stepgen -\begin_inset LatexCommand index -name "stepgen" - -\end_inset - - Software step pulse generator with position loop. - See section -\begin_inset LatexCommand ref -reference "sec:Stepgen" - -\end_inset - - -\end_layout - -\begin_layout Description -encoder -\begin_inset LatexCommand index -name "encoder" - -\end_inset - - Software based encoder counter. - See section -\begin_inset LatexCommand ref -reference "sec:Encoder" - -\end_inset - - -\end_layout - -\begin_layout Description -pid -\begin_inset LatexCommand index -name "pid" - -\end_inset - - Proportional/Integral/Derivative control loops. - See section -\begin_inset LatexCommand ref -reference "sec:PID" - -\end_inset - - -\end_layout - -\begin_layout Description -siggen -\begin_inset LatexCommand index -name "siggen" - -\end_inset - - A sine/cosine/triangle/square wave generator for testing. - See section -\begin_inset LatexCommand ref -reference "sec:Siggen" - -\end_inset - - -\end_layout - -\begin_layout Description -supply -\begin_inset LatexCommand index -name "supply" - -\end_inset - - a simple source for testing -\end_layout - -\begin_layout Description -blocks -\begin_inset LatexCommand index -name "blocks" - -\end_inset - - assorted useful components (mux, demux, or, and, integ, ddt, limit, wcomp, - etc.) -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:HardwareDrivers" - -\end_inset - -Hardware Drivers -\end_layout - -\begin_layout Description -hal_ax5214h -\begin_inset LatexCommand index -name "hal-ax5214h" - -\end_inset - - A driver for the Axiom Measurement & Control AX5241H digital I/O board -\end_layout - -\begin_layout Description -hal_m5i20 -\begin_inset LatexCommand index -name "hal-m5i20" - -\end_inset - - Mesa Electronics 5i20 board -\end_layout - -\begin_layout Description -hal_motenc -\begin_inset LatexCommand index -name "hal-motenc" - -\end_inset - - Vital Systems MOTENC-100 board -\end_layout - -\begin_layout Description -hal_parport -\begin_inset LatexCommand index -name "hal-parport" - -\end_inset - - PC parallel port. - See section -\begin_inset LatexCommand ref -reference "sec:Parport" - -\end_inset - - -\end_layout - -\begin_layout Description -hal_ppmc -\begin_inset LatexCommand index -name "hal-ppmc" - -\end_inset - - Pico Systems family of controllers (PPMC, USC and UPC) -\end_layout - -\begin_layout Description -hal_stg -\begin_inset LatexCommand index -name "hal-stg" - -\end_inset - - Servo To Go card (version 1 & 2) -\end_layout - -\begin_layout Description -hal_vti -\begin_inset LatexCommand index -name "hal-vti" - -\end_inset - - Vigilant Technologies PCI ENCDAC-4 controller -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:ToolsUtilities" - -\end_inset - -Tools and Utilities -\end_layout - -\begin_layout Description -halcmd -\begin_inset LatexCommand index -name "halcmd" - -\end_inset - - Command line tool for configuration and tuning. - See section -\begin_inset LatexCommand ref -reference "sec:Halcmd" - -\end_inset - - -\end_layout - -\begin_layout Description -halgui GUI tool for configuration and tuning (not implemented yet). -\end_layout - -\begin_layout Description -halmeter -\begin_inset LatexCommand index -name "halmeter" - -\end_inset - - A handy multimeter for HAL signals. - See section -\begin_inset LatexCommand ref -reference "sec:Halmeter" - -\end_inset - - -\end_layout - -\begin_layout Description -halscope -\begin_inset LatexCommand index -name "halscope" - -\end_inset - - A full featured digital storage oscilloscope for HAL signals. - See section -\begin_inset LatexCommand ref -reference "sec:Halscope" - -\end_inset - - -\end_layout - -\begin_layout Standard -Each of these building blocks is described in detail in later chapters. - -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Tinkertoys" - -\end_inset - -Tinkertoys, Erector Sets, Legos and the HAL -\end_layout - -\begin_layout Standard -A first introduction to HAL concepts can be mind boggling. - Building anything with blocks can be a challenge but some of the toys that - we played with as kids can be an aid to building things with the HAL. -\end_layout - -\begin_layout Subsection -Tower -\end_layout - -\begin_layout Quote -I'm watching as my son and his six year old daughter build a tower from - a box full of random sized blocks, rods, jar lids and such. - The aim is to see how tall they can make the tower. - The narrower the base the more blocks left to stack on top. - But the narrower the base, the less stable the tower. - I see them studying both the next block and the shelf where they want to - place it to see how it will balance out with the rest of the tower. - -\end_layout - -\begin_layout Standard -The notion of stacking cards to see how tall you can make a tower is a very - old and honored way of spending spare time. - At first read, the integrator may have gotten the impression that building - a HAL was a bit like that. - It can be but with proper planning an integrator can build a stable system - as complex as the machine at hand requires. - -\end_layout - -\begin_layout Subsection -Erector Sets -\begin_inset Foot -status open - -\begin_layout Standard -The Erector Set was an invention of AC Gilbert -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -What was great about the sets was the building blocks, metal struts and - angles and plates, all with regularly spaced holes. - You could design things and hold them together with the little screws and - nuts. - -\end_layout - -\begin_layout Quote -I got my first erector set for my fourth birthday. - I know the box suggested a much older age than I was. - Perhaps my father was really giving himself a present. - I had a hard time with the little screws and nuts. - I really needed four arms, one each for the screwdriver, screw, parts to - be bolted together, and nut. - Perseverance, along with father's eventual boredom, got me to where I had - built every project in the booklet. - Soon I was lusting after the bigger sets that were also printed on that - paper. - Working with those regular sized pieces opened up a world of construction - for me and soon I moved well beyond the illustrated projects. - -\end_layout - -\begin_layout Standard -Hal components are not all the same size and shape but they allow for grouping - into larger units that will do useful work.In this sense they are like the - parts of an Erector set. - Some components are long and thin. - They essentially connect high level commands to specific physical pins. - Other components are more like the rectangular platforms upon which whole - machines could be built. - An integrator will quickly get beyond the brief examples and begin to bolt - together components in ways that are unique to them. -\end_layout - -\begin_layout Subsection -Tinkertoys -\begin_inset Foot -status open - -\begin_layout Standard -Tinkertoy is now a registered trademark of the Hasbro company. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Quote -Wooden Tinker toys had a more humane feel that the cold steel of Erector - Sets. - The heart of construction with Tinker Toys was a round connector with eight - holes equally spaced around the circumference. - It also had a hole in the center that was perpendicular to all the holes - around the hub. -\end_layout - -\begin_layout Quote -Hubs were connected with rods of several different lengths. - Builders would make large wheels by using these rods as spokes sticking - out from the center hub. - -\end_layout - -\begin_layout Quote -My favorite project was a rotating space station. - Short spokes radiated from all the holes in the center hub and connected - with hubs on the ends of each spoke. - These outer hubs were connected to each other with longer spokes. - I'd spend hours dreaming of living in such a device, walking from hub to - hub around the outside as it slowly rotated producing near gravity in weightles -s space. - Supplies traveled through the spokes in elevators that transferred them - to an from rockets docked at the center hub while they transferred their - precious cargoes. -\end_layout - -\begin_layout Standard -The idea of one pin or component being the hub for many connections is also - an easy concept within the HAL. - Examples two and four (see section -\begin_inset LatexCommand ref -reference "cha:HAL-Tutorial" - -\end_inset - -) connect the meter and scope to signals that are intended to go elsewhere. - Less easy is the notion of a hub for several incoming signals but that - is also possible with proper use of functions within that hub component - that handle those signals as they arrive from other components. -\end_layout - -\begin_layout Standard -Another thought that comes forward from this toy is a mechanical representation - of HAL threads. - A thread might look a bit like a centipede, caterpillar, or earwig. - A backbone of hubs, HAL components, strung together with rods, HAL signals. - Each component takes in it own parameters and input pins and passes on - output pins and parameters to the next component. - Signals travel along the backbone from end to end and are added to or modified - by each component in turn. - -\end_layout - -\begin_layout Standard -Threads are all about timing and doing a set of tasks from end to end. - A mechanical representation is available with Tinkertoys also when we think - of the length of the toy as a measure of the time taken to get from one - end to the other. - A very different thread or backbone is created by connecting the same set - of hubs with different length rods. - The total length of the backbone can be changed by the length of rods used - to connect the hubs. - The order of operations is the same but the time to get from beginning - to end is very different. - -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand label -name "sub:A-Lego-Example" - -\end_inset - -A Lego Example -\begin_inset Foot -status open - -\begin_layout Standard -The Lego name is a trademark of the Lego company. - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -When Lego blocks first arrived in our stores they were pretty much all the - same size and shape. - Sure there were half sized one and a few quarter sized as well but that - rectangular one did most of the work. - Lego blocks interconnected by snapping the holes in the underside of one - onto the pins that stuck up on another. - By overlapping layers, the joints between could be made very strong, even - around corners or tees. - -\end_layout - -\begin_layout Quote -I watched my children and grandchildren build with legos -- the same legos. - There are a few thousand of them in an old ratty but heavy duty cardboard - box that sits in a corner of the recreation room. - It stays there in the open because it was too much trouble to put the box - away and then get it back out for every visit and it is always used during - a visit. - There must be Lego parts in there from a couple dozen different sets. - The little booklets that came with them are long gone but the magic of - building with interlocking pieces all the same size is something to watch. - -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Timing-Issues" - -\end_inset - -Timing Issues In HAL -\end_layout - -\begin_layout Standard -Unlike the physical wiring models between black boxes that we have said - that HAL is based upon, simply connecting two pins with a hal-signal falls - far short of the action of the physical case. - -\end_layout - -\begin_layout Standard -True relay logic consists of relays connected together, and when a contact - opens or closes, current flows (or stops) immediately. - Other coils may change state, etc, and it all just "happens". - But in PLC style ladder logic, it doesn't work that way. - Usually in a single pass through the ladder, each rung is evaluated in - the order in which it appears, and only once per pass. - A perfect example is a single rung ladder, with a NC contact in series - with a coil. - The contact and coil belong to the same relay. - -\end_layout - -\begin_layout Standard -If this were a conventional relay, as soon as the coil is energized, the - contacts begin to open and de-energize it. - That means the contacts close again, etc, etc. - The relay becomes a buzzer. -\end_layout - -\begin_layout Standard -With a PLC, if the coil is OFF and the contact is closed when the PLC begins - to evaluate the rung, then when it finishes that pass, the coil is ON. - The fact that turning on the coil opens the contact feeding it is ignored - until the next pass. - On the next pass, the PLC sees that the contact is open, and de-energizes - the coil. - So the relay still switches rapidly between on and off, but at a rate determine -d by how often the PLC evaluates the rung. - -\end_layout - -\begin_layout Standard -In HAL, the function is the code that evaluates the rung(s). - In fact, the HAL-aware realtime version of ClassicLadder exports a function - to do exactly that. - Meanwhile, a thread is the thing that runs the function at specific time - intervals. - Just like you can choose to have a PLC evaluate all its rungs every 10mS, - or every second, you can define HAL threads with different periods. -\end_layout - -\begin_layout Standard -What distinguishes one thread from another is -\emph on -not -\emph default - what the thread does - that is determined by which functions are connected - to it. - The real distinction is simply how often a thread runs. -\end_layout - -\begin_layout Standard -In EMC you might have a 50 -\begin_inset Formula $\mu$ -\end_inset - -s thread and a 1ms thread. - These would be created based on BASE_PERIOD and SERVO_PERIOD--the actual - times depend on the ini. -\end_layout - -\begin_layout Standard -The next step is to decide what each thread needs to do. - Some of those decisions are the same in (nearly) any EMC system--For instance, - motion-command-handler is always added to servo-thread. -\end_layout - -\begin_layout Standard -Other connections would be made by the integrator. - These might include hooking the STG driver's encoder read and DAC write - functions to the servo thread, or hooking stepgen's function to the base-thread -, along with the parport function(s) to write the steps to the port. -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/intro_fr.lyx b/docs/src/hal/intro_fr.lyx deleted file mode 100644 index 79d41bdc1..000000000 --- a/docs/src/hal/intro_fr.lyx +++ /dev/null @@ -1,1361 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language french -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !!h -\paperfontsize 10 -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 5 -\tocdepth 3 -\paragraph_separation skip -\defskip smallskip -\quotes_language french -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle headings - -\layout Chapter - - -\begin_inset LatexCommand \label{cha:Introduction} - -\end_inset - -Introduction -\layout Section - - -\begin_inset LatexCommand \label{sec:Qu'est-ce que HAL} - -\end_inset - -Qu'est-ce que HAL ? -\layout Standard - -HAL -\begin_inset LatexCommand \index{HAL} - -\end_inset - - est le sigle de Hardware Abstraction Layer, le terme Anglais pour Couche - d'Abstraction Matriel -\begin_inset Foot -collapsed false - -\layout Standard - -Note du traducteur: nous garderons le sigle HAL dans toute la documentation. -\end_inset - -. - Au plus haut niveau, il s'agit simplement d'une mthode pour permettre - un grand nombre de -\begin_inset Quotes eld -\end_inset - -modules -\begin_inset Quotes erd -\end_inset - - d'tre chargs et interconnects pour assembler un systme complexe. - La partie -\begin_inset Quotes eld -\end_inset - -matriel -\begin_inset Quotes erd -\end_inset - - devient abstraite parce que HAL a t conu l'origine pour faciliter - la configuration d'EMC pour une large gamme de matriels. - Bon nombre de ces modules sont des pilotes de priphriques. - Cependant, HAL peut faire beaucoup plus que configurer les pilotes du matriel. -\layout Subsection - -HAL est bas sur le systme traditionnel d'tude des projets techniques -\layout Standard - -HAL est bas sur le mme principe que celui utilis pour l'tude des circuits - et des systmes techniques, il va donc tre utile d'examiner d'abord ces - principes. -\layout Standard - -N'importe quel systme, y compris les machines CNC -\begin_inset LatexCommand \index{CNC} - -\end_inset - -, est fait de composants interconnects. - Pour les machines CNC, ces composants pourraient tre le contrleur principal, - les amplis de servomoteurs, les amplis ou les commandes de puissance des - moteurs pas pas, les moteurs, les codeurs, les interrupteurs de fin de - course, les panneaux de boutons de commande, les manivelles, peut tre - aussi un variateur de frquence pour le moteur de broche, un automate programma -ble pour grer le changeur d'outils, etc. - Le constructeur de machine doit choisir les lments, les monter et les - cbler entre eux pour obtenir un systme complet et fonctionnel. -\layout Subsubsection - -Choix des organes -\layout Standard - -Il ne sera pas ncessaire au constructeur de machine de se soucier du fonctionne -ment de chacun des organes, il les traitera comme des botes noires. - Durant la phase de conception, il dcide des lments qu'il va utiliser, - par exemple, moteurs pas pas ou servomoteurs, quelle marque pour les - amplis de puissance, quels types d'interrupteurs de fin de course et combien - il en faudra, etc. - La dcision d'intgrer tel ou tel lment spcifique plutt qu'un autre, - repose sur ce que doit faire cet lment et sur ses caractristiques fournies - par le fabricant. - La taille des moteurs et la charge qu'ils doivent supporter affectera le - choix des interfaces de puissance ncessaires pour les piloter. - Le choix de l'ampli affectera le type des signaux de retour demands ainsi - que le type des signaux de vitesse et de position qui doivent lui tre - transmis. - -\layout Standard - -Dans le monde de HAL, l'intgrateur doit dcider quels composants de HAL - sont ncessaires. - Habituellement, chaque carte d'interface ncessite un pilote. - Des composants supplmentaires peuvent tre demands, par exemple, pour - la gnration logicielle des impulsions d'avance, les fonctionnalits des - automates programmables, ainsi qu'une grande varit d'autres tches. -\layout Subsubsection - -tude des interconnections -\layout Standard - -Le crateur d'un systme matriel, ne slectionnera pas seulement les lments, - il devra aussi tudier comment ils doivent tre interconnects. - Chaque bote noire dispose de bornes, deux seulement pour un simple contact, - ou plusieurs douzaines pour un pilote de servomoteur ou un automate. - Elles doivent tre cbles entre elles. - Les moteurs cbls leurs interfaces de puissance, les fins de course - cbls au contrleur et ainsi de suite. - Quand le constructeur de machine commence travailler sur le cblage, - il cre un grand plan de cblage reprsentant tous les lments de la machine - ainsi que les connections qui les relient entre eux. -\layout Standard - -En utilisant HAL, les -\emph on -composants -\emph default - sont interconnects par des -\emph on -signaux -\emph default -. - Le concepteur peut dcider quels signaux sont ncessaires et quoi ils - doivent tre connects. -\layout Subsubsection - -Implmentation -\layout Standard - -Une fois que le plan de cblage est complet, il est possible de construire - la machine. - Les pices sont achetes et montes, elles peuvent alors tre cbles et - interconnectes selon le plan de cblage. - Dans un systme physique, chaque interconnection est un morceau de fil - qui doit tre coup et raccord aux bornes appropries. -\layout Standard - -HAL fournit un bon nombre d'outils d'aide la -\begin_inset Quotes eld -\end_inset - -construction -\begin_inset Quotes erd -\end_inset - - d'un systme HAL. - Certains de ces outils permettent de -\begin_inset Quotes eld -\end_inset - -connecter -\begin_inset Quotes erd -\end_inset - - (ou dconnecter) un simple -\begin_inset Quotes eld -\end_inset - -fil -\begin_inset Quotes erd -\end_inset - -. - D'autres permettent d'enregistrer une liste complte des organes, du cblage - et d'autres informations propos du systme, de sorte qu'il puisse tre - -\begin_inset Quotes eld -\end_inset - -reconstruit -\begin_inset Quotes erd -\end_inset - - d'une simple commande. -\layout Subsubsection - -Mise au point -\layout Standard - -Trs peu de machines marchent bien ds la premire fois. - Lors des tests, le technicien peut utiliser un appareil de mesure pour - voir si un fin de course fonctionne correctement ou pour mesurer la tension - fournie aux servomoteurs. - Il peut aussi brancher un oscilloscope pour examiner le rglage d'une interface - ou pour rechercher des interfrences lectriques et dterminer leurs sources. - En cas de problme, il peut s'avrer indispensable de modifier le plan - de cblage, peut tre que certaines pices devront tre recbles diffremment, - voir mme remplaces par quelque chose de totalement diffrent. -\layout Standard - -HAL fournit les quivalents logiciels du voltmtre, de l'oscilloscope, du - gnrateur de signaux et les autres outils ncessaires la mise au point - et aux rglages d'un systme. - Les mme commandes utilises pour construire le systme, seront utilises - pour faire les changements indispensables. -\layout Subsection - -En rsum -\layout Standard - -Ce document est destin aux personnes dj capables de concevoir ce type - de ralisation matrielle, mais qui ne savent pas comment connecter le - matriel EMC. -\layout Standard - -La conception de matriel, telle que dcrite prcdemment, s'arrte l'interfac -e de contrle. - Au del, il y a un tas de botes noires, relativement simples, relies - entre elles pour faire ce qui est demand. - l'intrieur, un grand mystre, c'est juste une grande bote noire qui - fonctionne, nous osons l'esprer. -\layout Standard - -HAL tend cette mthode traditionnelle de conception de matriel l'intrieur - de la grande bote noire. - Il transforme les pilotes de matriels et mme certaines parties internes - du matriel, en petites botes noires pouvant tre interconnectes, elles - peuvent alors remplacer le matriel externe. - Il permet au -\begin_inset Quotes eld -\end_inset - -plan de cblage -\begin_inset Quotes erd -\end_inset - - de faire voir une partie du contrleur interne et non plus, juste une grosse - bote noire. - Plus important encore, il permet l'intgrateur de tester et de modifier - le contrleur en utilisant les mmes mthodes que celles utilises pour - le reste du matriel. -\layout Standard - -Les termes tels que moteurs, amplis et codeurs sont familiers aux intgrateurs - de machines. - Quand nous parlons d'utiliser un cble extra souple huit conducteurs - blinds pour raccorder un codeur de position sa carte d'entres place - dans l'ordinateur. - Le lecteur comprend immdiatement de quoi il s'agit et se pose la question, - -\begin_inset Quotes eld -\end_inset - -quel type de connecteurs vais-je devoir monter de chaque ct de ce cble - ? -\begin_inset Quotes erd -\end_inset - - Le mme genre de rflexion est indipensable pour HAL mais le cheminement - de la pense est diffrent. - Au dbut les mots utiliss par HAL pourront sembler un peu tranges, mais - ils sont identiques au concept de travail voluant d'une connection la - suivante. -\layout Standard - -HAL repose sur une seule ide, l'ide d'tendre le plan de cblage l'intrieur - du contrleur. - Si vous tes l'aise avec l'ide d'interconnecter des botes noires matrielle -s, vous n'aurez sans doute aucune difficult utiliser HAL pour interconnecter - des boites noires logicielles. -\layout Section - - -\begin_inset LatexCommand \label{sec:Concept de HALL} - -\end_inset - -Concept de HAL -\layout Standard - -Cette section est un glossaire qui dfinit les termes cls de HAL mais il - est diffrent d'un glossaire traditionnel en ce sens que les termes ne - sont pas classs par ordre alphabtique. - Ils sont classs par leur relation ou par le sens du flux l'intrieur - de HAL. - -\layout Description - -Component -\begin_inset LatexCommand \index{HAL Composant} - -\end_inset - -: (Composant) Lorsque nous avons parl de la conception du matriel, nous - avons voqu les diffrents lments individuels comme "pices", "modules", - "botes noires", etc. - L'quivalent HAL est un "component" ou "HAL component". - (ce document utilisera: "HAL component" quand la confusion avec un autre - type de composant est possible, mais normalement, utilisez juste: "component".) - Un HAL component est une pice logicielle avec, bien dfinis, des entres, - des sorties, un comportement, qui peuvent ventuellement tre interconnects. - -\layout Description - -Parameter -\begin_inset LatexCommand \index{HAL Paramtre} - -\end_inset - -: (Paramtre) De nombreux composants matriels ont des rglages qui ne sont - raccords aucun autre composant mais qui sont accessibles. - Par exemple, un ampli de servomoteur a souvent des potentiomtres de rglage - et des points tests sur lesquels on peut poser une pointe de touche de - voltmtre ou une sonde d'oscilloscope pour visualiser le rsultat des rglages. - Les HAL components aussi peuvent avoir de tels lments, ils sont appels - "parameters". - Il y a deux types de paramtres: -\begin_inset Quotes eld -\end_inset - -Input parameters -\begin_inset Quotes erd -\end_inset - - qui sont des quivalents des potentiomtres. - Ce sont des valeurs qui peuvent tre rgles par l'utilisateur, elles gardent - leur valeur jusqu' un nouveau rglage. - -\begin_inset Quotes eld -\end_inset - -Output parameters -\begin_inset Quotes erd -\end_inset - - qui ne sont pas ajustables. - Ils sont quivalents aux points tests qui permettent de mesurer la valeur - d'un signal interne. -\layout Description - -Pin -\begin_inset LatexCommand \index{HAL Broche} - -\end_inset - -: (Broche) Les composants matriels ont des broches qui peuvent tre interconnec -tes entre elles. - L'quivalent HAL est une "pin" ou "HAL pin". - ("HAL pin" est utilis quand c'est ncessaire pour viter la confusion.) - Toutes les HAL pins sont nommes et les noms des pins sont utiliss lors - des interconnexions entre elles. - Les HAL pins sont des entits logicielles qui n'existent qu' l'intrieur - de l'ordinateur. - -\layout Description - -Physical_Pin -\begin_inset LatexCommand \index{HAL: Broche physique} - -\end_inset - -: (Broche physique) La plupart des interfaces d'entres/sorties ont des - broches physiques relles pour leur connection avec l'extrieur, par exemple, - les broches du port parallle. - Pour viter la confusion, elles sont appeles "physical_pins". - Ce sont des repres pour faire penser au monde physique rel. -\begin_inset Note -collapsed false - -\layout Standard - -Vous vous demandez peut tre quelle relation il y a entre les HAL_pins, - les Physical_pins et les lments extrieurs comme les codeurs ou une carte - stg. - Nous avons ici, affaire des interfaces de type translation/conversion - de donnes. - -\end_inset - - -\layout Description - -Signal -\begin_inset LatexCommand \index{HAL Signal} - -\end_inset - -: Dans une machine physique relle, les terminaisons des diffrents organes - sont relies par des fils. - L'quivalent HAL d'un fil est un "signal" ou "HAL signal". - Ces signaux connectent les -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - entre elles comme le requiert le concepteur de la machine. - Les -\begin_inset Quotes eld -\end_inset - -HAL signals -\begin_inset Quotes erd -\end_inset - - peuvent tre connects et dconnects volont (mme avec la machine en - marche). -\layout Description - -Type -\begin_inset LatexCommand \index{HAL Type} - -\end_inset - -: Quand on utilise un matriel rel, il ne viendrait pas l'ide de connecter - la sortie 24V d'un relais l'entre analogique +/-10V de l'ampli d'un - servomoteur. - Les -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - ont les mme restrictions, qui sont fondes sur leur type. - Les -\begin_inset Quotes eld -\end_inset - -pins -\begin_inset Quotes erd -\end_inset - - et les -\begin_inset Quotes eld -\end_inset - -signals -\begin_inset Quotes erd -\end_inset - - ont tous un type, un -\begin_inset Quotes eld -\end_inset - -signals -\begin_inset Quotes erd -\end_inset - - ne peux tre connect qu' une -\begin_inset Quotes eld -\end_inset - -pins -\begin_inset Quotes erd -\end_inset - - de mme type. - Il y a actuellement les 4 types suivants: -\layout Itemize - - -\noun on -bit -\noun default - - une simple valeur vraie ou fausse TRUE/FALSE ou ON/OFF -\layout Itemize - - -\noun on -float -\noun default - - un flottant de 32 bits, avec approximativement 24 bits de rsolution - et plus de 200 bits d'chelle dynamique. -\layout Itemize - - -\noun on -u32 -\noun default - - un entier non sign de 32 bits, les valeurs lgales vont de 0 +4294967295 -\layout Itemize - - -\noun on -s32 -\noun default - - un entier sign de 32 bits, les valeurs lgales vont de -2147483648 - +2147483647 -\layout Description - - -\begin_inset LatexCommand \label{des:Function} - -\end_inset - -Function -\begin_inset LatexCommand \index{HAL Fonction} - -\end_inset - -: (Fonction) Les composants matriels rels ont tendance ragir immdiatement - leurs signaux d'entre. - Par exemple, si la tension d'entre d'un ampli de servo varie, la sortie - varie aussi automatiquement. - Les composants logiciels ne peuvent pas ragir immdiatement. - Chaque composant a du code spcifique qui doit tre excut pour faire - ce que le composant est sens faire. - Dans certains cas, ce code tourne simplement comme une partie du composant. - Cependant dans la plupart des cas, notamment dans les composants temps - rel, le code doit tre excut selon un ordre bien prcis et des intervalles - trs prcis. - Par exemple, les donnes en entre doivent d'abord tre lues avant qu'un - calcul ne puisse tre effectu sur elles et les donnes en sortie ne peuvent - pas tre crites tant que le calcul sur les donnes d'entre n'est pas - termin. - Dans ces cas, le code est confi au systme sous forme de "functions". - Chaque -\begin_inset Quotes eld -\end_inset - -function -\begin_inset Quotes erd -\end_inset - - est un bloc de code qui effectue une action spcifique. - L'intgrateur peut utiliser des "threads" pour combiner des sries de -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - - qui seront excutes dans un ordre particulier et selon des intervalles - de temps spcifiques. -\layout Description - - -\begin_inset LatexCommand \label{des:Thread} - -\end_inset - -Thread -\begin_inset LatexCommand \index{HAL Fil} - -\end_inset - -: (Fil) Un "thread" est une liste de -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - - qui sont lances intervalles spcifiques par une tche temps rel. - Quand un -\begin_inset Quotes eld -\end_inset - -thread -\begin_inset Quotes erd -\end_inset - - est cr pour la premire fois, il a son cadencement spcifique (priode), - mais pas de -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - -. - Les -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - - seront ajoutes au -\begin_inset Quotes eld -\end_inset - -thread -\begin_inset Quotes erd -\end_inset - - et elle seront excutes dans le mme ordre, chaque fois que le -\begin_inset Quotes eld -\end_inset - -tread -\begin_inset Quotes erd -\end_inset - - tournera. -\layout Standard - -Prenons un exemple, supposons que nous avons un composant de port parallle - nomm -\begin_inset Quotes eld -\end_inset - -hal_parport -\begin_inset Quotes erd -\end_inset - -. - Ce composant dfini une ou plusieurs -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - pour chaque -\begin_inset Quotes eld -\end_inset - -physical pin -\begin_inset Quotes erd -\end_inset - -. - Les -\begin_inset Quotes eld -\end_inset - -pins -\begin_inset Quotes erd -\end_inset - - sont dcrites dans ce composant, comme expliqu dans la section -\begin_inset Quotes eld -\end_inset - -component -\begin_inset Quotes eld -\end_inset - -de cette doc, par: leurs noms, comment chaque -\begin_inset Quotes eld -\end_inset - -pin -\begin_inset Quotes erd -\end_inset - - est en relation avec la -\begin_inset Quotes eld -\end_inset - -physical pin -\begin_inset Quotes erd -\end_inset - -, est-elle inverse, peut-on changer sa polarit, etc. - Mais a ne permet pas d'obtenir les donnes des -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - aux -\begin_inset Quotes eld -\end_inset - -physical pins -\begin_inset Quotes erd -\end_inset - -. - Le code est utilis pour faire a, et c'est la o les -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - - entrent en oeuvre. - Le composant parport ncessite deux -\begin_inset Quotes eld -\end_inset - -functions -\begin_inset Quotes erd -\end_inset - -: une pour lire les broches d'entre et mettre jour les -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - -, l'autre pour prendre les donnes des -\begin_inset Quotes eld -\end_inset - -HAL pins -\begin_inset Quotes erd -\end_inset - - et les crire sur les broches de sortie -\begin_inset Quotes eld -\end_inset - -physical pins -\begin_inset Quotes erd -\end_inset - -. - Ce deux fonctions font partie du pilote -\begin_inset Quotes eld -\end_inset - -hal_parport -\begin_inset Quotes erd -\end_inset - -. - -\layout Section - - -\begin_inset LatexCommand \label{sec:Intro-Composants-HAL} - -\end_inset - -Composants HAL -\layout Standard - -Chaque composant HAL est un morceau de logiciel avec, bien dfinis, des - entres, des sorties et un comportement. - Ils peuvent tre installs et interconnects selon les besoins. - Cette section liste certains des composants actuellement disponibles et - dcrit brivement ce que chacun fait. - Les dtails complets sur chacun seront donns plus loin dans ce document. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Programmes-externes} - -\end_inset - -Programmes externes attachs HAL -\layout Description - -motion -\begin_inset LatexCommand \index{motion} - -\end_inset - - Un module temps rel qui accepte les commandes de mouvement en NML et inter-agi -t avec HAL -\layout Description - -iocontrol -\begin_inset LatexCommand \index{iocontrol} - -\end_inset - - Un module d'espace utilisateur qui accepte les commandes d'entre/sortie - (I/O) en NML et inter-agit avec HAL -\layout Description - -classicladder -\begin_inset LatexCommand \index{ClassicLadder} - -\end_inset - - Un automate programmable en langage contacts utilisant HAL pour les entres/s -orties (I/O) -\layout Description - -halui -\begin_inset LatexCommand \index{halui} - -\end_inset - - Un espace de utilisateur de programmation qui inter-agit avec HAL et envoie - des commandes NML, Il est destin fonctionner comme une interface utilisateur - en utilisant les boutons et interrupteurs externes. -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Composants-internes} - -\end_inset - -Composants internes -\layout Description - -stepgen -\begin_inset LatexCommand \index{stepgen} - -\end_inset - - Gnrateur d'impulsions de pas avec boucle de position. - -\layout Description - -encoder -\begin_inset LatexCommand \index{encoder} - -\end_inset - - Codeur/compteur logiciel. - -\layout Description - -pid -\begin_inset LatexCommand \index{pid} - -\end_inset - - Boucle de contrle Proportionnelle/Intgrale/Drive. - -\layout Description - -siggen -\begin_inset LatexCommand \index{siggen} - -\end_inset - - Gnrateur d'ondes: sinusodale/cosinusodale/triangle/carre, pour la - mise au point. - -\layout Description - -supply -\begin_inset LatexCommand \index{supply} - -\end_inset - - Une simple alimentation, pour la mise au point -\layout Description - -blocks -\begin_inset LatexCommand \index{blocks} - -\end_inset - - Un assortiment de composants (mux, demux, or, and, integ, ddt, limit, wcomp, - etc.) -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Pilotes de materiels} - -\end_inset - -Pilotes de matriels -\layout Description - -hal_ax5214h -\begin_inset LatexCommand \index{hal-ax5214h} - -\end_inset - - Un pilote pour la carte d'entres/sorties Axiom Measurement & Control AX5241H -\layout Description - -hal_m5i20 -\begin_inset LatexCommand \index{hal-m5i20} - -\end_inset - - Un pilote pour la carte Mesa Electronics 5i20 -\layout Description - -hal_motenc -\begin_inset LatexCommand \index{hal-motenc} - -\end_inset - - Un pilote pour la carte Vital Systems MOTENC-100 -\layout Description - -hal_parport -\begin_inset LatexCommand \index{hal-parport} - -\end_inset - - Pilote pour le(ou les) port(s) parallle(s). - -\layout Description - -hal_ppmc -\begin_inset LatexCommand \index{hal-ppmc} - -\end_inset - - Un pilote pour la famille de contrleurs Pico Systems (PPMC, USC et UPC) -\layout Description - -hal_stg -\begin_inset LatexCommand \index{hal-stg} - -\end_inset - - Un pilote pour la carte Servo To Go (versions 1 & 2) -\layout Description - -hal_vti -\begin_inset LatexCommand \index{hal-vti} - -\end_inset - - Un pilote pour le contrleur Vigilant Technologies PCI ENCDAC-4 -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Outils-Utilitaires} - -\end_inset - -Outils-Utilitaires -\layout Description - -halcmd -\begin_inset LatexCommand \index{halcmd} - -\end_inset - - Ligne de commande pour la configuration et les rglages. - -\layout Description - -halgui Outil graphique pour la configuration et les rglages. - (pas encore implment). -\layout Description - -halmeter -\begin_inset LatexCommand \index{halmeter} - -\end_inset - - Un multimtre pour les signaux HAL. - -\layout Description - -halscope -\begin_inset LatexCommand \index{halscope} - -\end_inset - - Un oscilloscope digital mmoire, compltement fonctionnel pour les signaux - HAL. - -\layout Standard - -Chacun de ces modules est dcrit en dtail dans les chapitres suivants. -\layout Section - - -\begin_inset LatexCommand \label{sec:Legos} - -\end_inset - -Tinkertoys, Erector Sets, Legos et le HAL -\layout Standard - -Cette premire introduction au concept de HAL peut tre un peu dconcertante - pour l'esprit. - Construire quelque chose avec des blocs peut tre un dfi, pourtant certains - jeux de construction avec lesquels nous avons jou tant enfants peuvent - nous aider construire un systme HAL. -\layout Subsection - -Une tour -\layout Quote - -Je regardais mon fils et sa petite fille de six ans construire une tour - partir d'une bote pleine de blocs de diffrentes tailles, de barres - et de pices rondes, des sortes de couvercles. - L'objectif tait de voir jusqu'o la tour pouvait monter. - Plus la base tait troite plus il restait de pices pour monter. - Mais plus la base tait troite, moins la tour tait stable. - Je les voyais tudier combien de blocs ils pouvaient poser et o ils devaient - les poser pour conserver l'quilibre avec le reste de la tour. - -\layout Standard - -La notion d'empilage de cartes pour voir jusqu'o on peut monter est une - trs vieille et honorable manire de passer le temps. - En premire lecture, l'intgrateur pourra avoir l'impression que construire - un HAL est un peu comme a. - C'est possible avec une bonne planification, mais l'intgrateur peut avoir - construire un systme stable aussi complexe qu'une machine actuelle l'exige. - -\layout Subsection - -Erector Sets -\begin_inset Foot -collapsed true - -\layout Standard - -Le jeu Erector Set est une invention de AC Gilbert -\end_inset - - (Meccano en France) -\layout Standard - -C'tait une grande srie de boites de construction en mtal, des tles perfores -, plates ou en cornires, toutes avaient des trous rgulierements espacs. - Vous pouviez concevoir des tas de choses et les monter avec ces lments - maintenus entre eux par des petits boulons. - -\layout Quote - -J'ai eu ma premire bote Erector pour mon quatrime anniversaire. - Je sais que la bote tait prvue pour des enfants beaucoup plus ags que - moi. - Peut tre que mon pre se faisait vraiment un cadeau lui mme. - J'ai eu une priode difficile avec les petites vis et les petits crous. - J'ai vraiment eu envie d'avoir quatre bras, un pour visser avec le tournevis, - un pour tenir la vis, les pices et l'crou. - En persvrant, de mme qu'en agaant mon pre, j'ai fini par avoir fait - tous les montages du livret. - Bientt, je lorgnais vers les plus grandes botes qui taient imprimes - sur ce livret. - Travailler avec ces pices de taille standard m'a ouvert le monde de la - construction et j'ai bientt t au del des projets illustrs. - -\layout Standard - -Les composants Hal ne sont pas tous de mme taille ni de mme forme mais - ils permettent d'tre regroups en larges units qui feront bien du travail. - C'est dans ce sens qu'ils sont comme les pices d'un jeu Erector. - Certains composants sont longs et minces. - Ils connectent essentiellement les commandes de niveau suprieur aux -\begin_inset Quotes eld -\end_inset - -physical pins -\begin_inset Quotes erd -\end_inset - -. - D'autres composants sont plus comme les plateformes rectangulaires sur - lesquelles des machines entires pourraient tre construites. - Un intgrateur parviendra rapidement au del des brefs exemples et commencera - assembler des composants entre eux d'une manire qui lui sera propre. -\layout Subsection - -Tinkertoys -\begin_inset Foot -collapsed false - -\layout Standard - -Tinkertoy est maintenant registered trademark of the Hasbro company. -\end_inset - - -\layout Quote - -Le jouet en bois Tinkertoys est plus humain que l'acier froid de l'Erector. - Le coeur de la construction avec TinkerToys est un connecteur rond avec - huit trous quidistants sur la circonfrence. - Il a aussi un trou au centre, perpendiculaire aux autres trous rpartis - autour du moyeu. -\layout Quote - -Les moyeux pouvaient tre connects avec des tiges rondes de diffrentes - longueurs. - Le constructeur pouvait faire une grosse roue l'aide de rayons qui partaient - du centre. - -\layout Quote - -Mon projet favori tait une station spaciale rotative. - De courtes tiges rayonnaient depuis les trous du moyeu central et taient - connectes avec d'autres moyeux aux extrmits des rayons. - Ces moyeux extrieurs taient raccords entre eux avec d'autres rayons. - Je passais des heures rver de vivre dans un tel dispositif, marchant - de moyeu en moyeu et sur la passerelle extrieure qui tournait lentement - cause de la gravit dans l'espace en tat d'apesanteur. - Les provisions circulaient par les rayons et les ascenceurs qui les transfraie -nt dans la fuse arrime sur le rayon central pendant qu'on dchargeait - sa prcieuse cargaison. -\layout Standard - -L'ide qu'une -\begin_inset Quotes eld -\end_inset - -pin -\begin_inset Quotes erd -\end_inset - - ou qu'un -\begin_inset Quotes eld -\end_inset - -component -\begin_inset Quotes erd -\end_inset - - est la plaque centrale pour de nombreuses connections est aussi une notion - facile avec le HAL. - Les exemples deux quatre (voir section -\begin_inset LatexCommand \ref{cha:Tutoriel-HAL} - -\end_inset - -) connectent le multimtre et l'oscilloscope aux signaux qui sont prvus - pour aller ailleurs. - Moins facile, la notion d'un moyeu pour plusieurs signaux entrants. - Mais, c'est galement possible avec l'utilisation approprie des fonctions - dans ce composant de moyeu qui manipulent les signaux quand ils arrivent, - venant d'autres composants. -\layout Standard - -Une autre rflexion qui vient partir de ce jouet mcanique est une reprsentat -ion de -\begin_inset Quotes eld -\end_inset - -HAL threads -\begin_inset Quotes erd -\end_inset - -. - Un -\begin_inset Quotes eld -\end_inset - -thread -\begin_inset Quotes erd -\end_inset - - pourrait ressembler un peu un chilopode, une chenille, ou un perce-oreille. - Une pine dorsale, des -\begin_inset Quotes eld -\end_inset - -HAL components -\begin_inset Quotes erd -\end_inset - -, raccords entre eux par des tiges, les -\begin_inset Quotes eld -\end_inset - -HAL signals -\begin_inset Quotes erd -\end_inset - -. - Chaque composant prend dans ses propres paramtres et selon l'tat de ses - broches d'entre, les passe sur ses broches de sortie l'intention du - composant suivant. - Les signaux voyagent ainsi de bout en bout, le long de l'pine dorsale - o ils sont ajouts ou modifis par chaque composant son tour venu. - -\layout Standard - -Les -\begin_inset Quotes eld -\end_inset - -Threads -\begin_inset Quotes erd -\end_inset - - sont tous synchroniss et excutent une srie de tches de bout en bout. - Une reprsentation mcanique est possible avec Thinkertoys si on pense - la longueur du jouet comme tant la mesure du temps mis pour aller d'un - bout l'autre. - Un thread, ou pine dorsale, trs diffrent est cr en connectant le mme - ensemble de modules avec des tiges de longueur diffrente. - La longueur totale de l'pine dorsale peut aussi tre change en jouant - sur la longueur des tiges pour connecter les modules. - L'ordre des oprations est le mme mais le temps mis pour aller d'un bout - l'autre est trs diffrent. - -\layout Subsection - - -\begin_inset LatexCommand \label{sub:Un-Exemple-en-Lego} - -\end_inset - -Un exemple en Lego -\begin_inset Foot -collapsed true - -\layout Standard - -The Lego name is a trademark of the Lego company. - -\end_inset - - -\layout Standard - -Lorsque les blocs de Lego sont arrivs dans nos magasins, ils taient - peu prs tous de la mme taille et de la mme forme. - Bien sr il y avait les demi taille et quelques uns en quart de taille - mais tous rectangulaires. - Les blocs de Lego se relient ensembles en enfonant les broches mles d'une - pice dans les trous femelles de l'autre. - En superposant les couches, les jonctions peuvent tre rendues trs solides, - mme aux coins et aux ts. - -\layout Quote - -J'ai vu mes enfants et mes petits-enfants construire avec des pices Lego - (les mmes Lego). - Il y en a encore quelques milliers dans une vieille et lourde bote en - carton qui dort dans un coin de la salle de jeux. - Ils sont stocks dans cette bote car c'tait trop long de les ranger et - de les ressortir chacune de leur visite et ils taient utiliss chaque - fois. - Il doit bien y avoir les pices de deux douzaines de botes diffrentes - de Lego. - Les petits livrets qui les accompagnaient ont t perdus depuis longtemps, - mais la magie de la construction avec l'imbrication de ces pices toutes - de la mme taille est quelque chose observer. - -\layout Section - - -\begin_inset LatexCommand \label{sec:Problemes-de-Timing-dans-HALL} - -\end_inset - -Problmes de timming dans HAL -\layout Standard - -Contrairement aux modles physiques du cblage entre les botes noires sur - lequel, nous l'avons dit, HAL est bas, il suffit de relier deux broches - avec un signal hal, on est loin de l'action physique. -\layout Standard - -La vraie logique relais consiste en relais connects ensembles, quand - un relais s'ouvre ou se ferme, le courant passe (ou s'arrte) immdiatement. - D'autres bobines peuvent changer d'tat etc. - Dans le style langage contacts d'automate comme le Ladder a ne marche - pas de cette faon. - Habituellement dans un Ladder simple passe, chaque barreau de l'chelle - est valu dans l'ordre o il se prsente et seulement une fois par passe. - Un exemple parfait est un simple Ladder avec un contact en srie avec une - bobine. - Le contact et la bobine actionnent le mme relais. - -\layout Standard - -Si c'tait un relais conventionnel, ds que la bobine est sous tension, - le contact s'ouvre et coupe la bobine, le relais retombe etc. - Le relais devient un buzzer. -\layout Standard - -Avec un automate programmable, si la bobine est OFF et que le contact est - ferm quand l'automate commence valuer le programme, alors la fin - de la passe, la bobine sera ON. - Le fait que la bobine ouvre le contact qui la prive de courant est ignor - jusqu' la prochaine passe. - la passe suivante, l'automate voit que le contact est ouvert et dsactive - la bobine. - Donc, le relais va battre rapidement entre on et off la vitesse laquelle - l'automate value le programme. - -\layout Standard - -Dans HAL, c'est le code qui value. - En fait, la version Ladder HAL temps rel de ClassicLadder exporte une - fonction pour faire exactement cela. - Pendant ce temps, un thread excute les fonctions spcifiques intervalle - rgulier. - Juste comme on peut choisir de rgler la dure de la boucle de programme - d'un automate programmable 10ms, ou 1 seconde, on peut dfinir des - -\begin_inset Quotes eld -\end_inset - -HAL threads -\begin_inset Quotes erd -\end_inset - - avec des priodes diffrentes. -\layout Standard - -Ce qui distingue un thread d'un autre n'est pas ce qu'il fait mais quelles - fonctions lui sont attaches. - La vraie distinction est simplement combien de fois un thread tourne. - -\layout Standard - -Dans EMC on peut avoir un thread 50 -\begin_inset Formula $\mu$ -\end_inset - -s et un thread 1ms. - En se basant sur les valeurs de BASE_PERIOD et de SERVO_PERIOD. - Valeurs fixes dans le fichier ini. -\layout Standard - -La prochaine tape consiste dcider de ce que chaque thread doit faire. - Certaines de ces dcisions sont les mmes dans (presque) tous les systmes - emc. - Par exemple, le gestionnaire de mouvement est toujours ajout au servo-thread. -\layout Standard - -D'autres connections seront faites par l'intgrateur. - Il pourrait s'agir de brancher la lecture d'un codeur par une carte STG - un DAC pour crire les valeurs dans le servo thread, ou de brancher une - fonction stepgen au base-thread avec la fonction parport pour crire les - valeurs sur le port. -\the_end diff --git a/docs/src/hal/opto22.lyx b/docs/src/hal/opto22.lyx deleted file mode 100644 index 68e0ee2b7..000000000 --- a/docs/src/hal/opto22.lyx +++ /dev/null @@ -1,254 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass book -\begin_preamble -\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} -\end_preamble -\language english -\inputencoding default -\fontscheme bookman -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\paperpackage a4 -\use_geometry 1 -\use_amsmath 1 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Chapter - -OPTO22 PCI -\layout Standard - -PCI AC5 ADAPTER CARD / HAL DRIVER This page is considered current as of - November 2008. - -\layout Section - -The Adapter Card -\layout Standard - -This is a card made by OPTO22 for adapting the PCI port to solid state relay - racks such as their standard or G4 series. - It has 2 ports that can control up to 24 points each and has 4 on board - LEDS. - The ports use 50 pin connectors the same as Mesa boards. - Any relay racks/breakout boards thats work with Mesa Cards should work - with this card with the understanding any encoder counters, pwm etc would - have to be done in software- The AC5 does not have any 'smart' logic on - board it just an adapter. - -\layout Standard - -See the manufacturer's website for more info: -\layout Standard - -http://www.opto22.com/site/pr_details.aspx?item=PCI-AC5&qs=100110021011,,,1,3 -\layout Standard - -I would like to thank OPTO22 for releasing info in their manual, easing - the writing of this driver! -\layout Section - -The Driver -\layout Standard - -This driver is for the PCI ac5 card and will not work with the ISA ac5 card. - The HAL driver is a realtime module. - It will support 4 cards as is (more cards are possible with a change in - the source code). - Load the basic driver like so: -\layout LyX-Code - -loadrt opto_ac5 -\layout Standard - -This will load the driver which will search for max 4 boards.It will set - i/o of each board's 2 ports to a default setting. - The default configuration is for 12 inputs then 12 outputs. - The pin name numbers correspond to the position on the relay rack. - For example the pin names for the default i/o setting of port 0 would be: -\layout Standard - -opto_ac5.0.port0.in-00 They would be numbered from 00 to 11 -\layout Standard - -opto_ac5.0.port0.out-12 They would be numbered 12 to 23 port 1 would be the - same. -\layout Section - -PINS -\layout Standard - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER] OUT bit -\layout Standard - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER]-not OUT bit -\layout Standard - -Connect a hal bit signal to this pin to read an I/O point from the card. - The PINNUMBER represents the position in the relay rack. - Eg. - PINNUMBER 0 is position 0 in a opto22 relay rack and would be pin 47 on - the 50 pin header connector. - The -not pin is inverted so that LOW gives TRUE and HIGH gives FALSE. - -\layout Standard - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER] IN bit -\layout Standard - -Connect a hal bit signal to this pin to write to an I/O point of the card. - The PINNUMBER represents the position in the relay rack.Eg. - PINNUMBER 23 is position 23 in a opto22 relay rack and would be pin 1 on - the 50 pin header connector. - -\layout Standard - -opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit -\layout Standard - -Turns one of the 4 onboard LEDS on/off. - LEDS are numbered 0 to 3. -\layout Standard - -BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. - Port 0 is closest to the card bracket. - -\layout Section - -PARAMETERS -\layout Standard - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit -\layout Standard - -When TRUE, invert the meaning of the corresponding -out pin so that TRUE - gives LOW and FALSE gives HIGH. -\layout Section - -FUNCTIONS -\layout Standard - -opto_ac5.0.digital-read Add this to a thread to read all the input points. - -\layout Standard - -opto_ac5.0.digital-write Add this to a thread to write all the output points - and LEDS. -\layout Standard - -For example the pin names for the default I/O setting of port 0 would be: -\layout Standard - -opto_ac5.0.port0.in-00 -\layout Standard - -They would be numbered from 00 to 11 -\layout Standard - -opto_ac5.0.port0.out-12 -\layout Standard - -They would be numbered 12 to 23 port 1 would be the same. -\layout Section - -Configuring I/O Ports -\layout Standard - -To change the default setting load the driver something like so: -\layout Quote - -loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000 -\layout Standard - -Of course changing the numbers to match the i/o you would like. - Each port can be set up different. - -\layout Standard - -Heres how to figure out the number: The configuration number represents - a 32 bit long code to tell the card which i/o points are output vrs input. - The lower 24 bits are the i/o points of one port. - The 2 highest bits are for 2 of the on board LEDS. - A one in any bit position makes the i/o point an output. - The two highest bits must be output for the LEDS to work. - The driver will automatically set the two highest bits for you, we won't - talk about them. - -\layout Standard - -The easiest way to do this is to fire up the calculator under APPLICATIONS/ACCES -SORIES. - Set it to scientific (click view). - Set it BINARY (radio button Bin). - Press 1 for every output you want and/or zero for every input. - Remember that HAL pin 00 corresponds to the rightmost bit. - 24 numbers represent the 24 i/o points of one port. - So for the default setting (12 inputs then 12 outputs) you would push 1 - twelve times (thats the outputs) then 0 twelve times (thats the inputs). - Notice the first i/0 point is the lowest (right most) bit. - (that bit corresponds to HAL pin 00 .looks backwards) You should have 24 - digits on the screen. - Now push the Hex radio button. - The displayed number (fff000) is the configport number ( put a '0x' in - front of it designating it a HEX number). -\layout Standard - -Another example : to set the port for 8 outputs and 16 inputs (the same - as a Mesa card). - Here is the 24 bits represented in a BINARY number. - Bit 1 is the rightmost number. -\layout Standard - -000000000000000011111111 -\layout Standard - -16 zeros for the 16 inputs 8 ones for the 8 outputs -\layout Standard - -Which converts to FF on the calculator so 0xff is the number to use for - portconfig0 and/or portconfig1 when loading the driver. -\layout Section - -Pin Numbering -\layout Standard - -HAL pin 00 corresponds to bit 1 (the rightmost) which represents position - 0 on an opto22 relay rack. - HAL pin 01 corresponds to bit 2 (one spot to the left of the rightmost) - which represents position 1 on an opto22 relay rack. - etc. - HAL pin 23 corresponds to bit 24 (the leftmost) which represents position - 23 on an opto22 relay rack. -\layout Standard - -Hal pin 00 connects to pin 47 on the 50 pin connector of each port. - Hal pin 01 connects to pin 45 on the 50 pin connector of each port. - etc. - Hal pin 23 connects to pin 1 on the 50 pin connector of each port. -\layout Standard - -Note that opto22 and Mesa use opposite numbering systems: opto22 position - 23 = connector pin 1. - and the position goes down as the connector pin number goes up Mesa Hostmot4 - position 1 = connector pin 1. - and the position number goes up as the connector pin number goes up -\the_end diff --git a/docs/src/hal/parallel_port.lyx b/docs/src/hal/parallel_port.lyx deleted file mode 100644 index aeb3d0bcd..000000000 --- a/docs/src/hal/parallel_port.lyx +++ /dev/null @@ -1,734 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Parallel Port -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:Parport" - -\end_inset - -Parport -\begin_inset LatexCommand index -name "parallel port" - -\end_inset - - -\end_layout - -\begin_layout Standard -Parport is a driver for the traditional PC parallel port. - The port has a total of 17 physical pins. - The original parallel port divided those pins into three groups: data, - control, and status. - The data group consists of 8 output pins, the control group consists of - 4 pins, and the status group consists of 5 input pins. -\end_layout - -\begin_layout Standard -In the early 1990's, the bidirectional parallel port was introduced, which - allows the data group to be used for output or input. - The HAL driver supports the bidirectional port, and allows the user to - set the data group as either input or output. - If configured as output, a port provides a total of 12 outputs and 5 inputs. - If configured as input, it provides 4 outputs and 13 inputs. - -\end_layout - -\begin_layout Standard -In some parallel ports, the control group pins are open collectors, which - may also be driven low by an external gate. - On a board with open collector control pins, the "x" mode allows a more - flexible mode with 8 outputs, and 9 inputs. - In other parallel ports, the control group has push-pull drivers and cannot - be used as an input. -\begin_inset Foot -status open - -\begin_layout Standard -HAL cannot automatically determine if the "x" mode bidirectional pins are - actually open collectors (OC). - If they are not, they cannot be used as inputs, and attempting to drive - them LOW from an external source can damage the hardware. -\end_layout - -\begin_layout Standard -To determine whether your port has "open collector" pins, load hal_parport - in "x" mode. - With no device attached, HAL should read the pin as TRUE. - Next, insert a 470 -\begin_inset Formula $\Omega$ -\end_inset - - resistor from one of the control pins to GND. - If the resulting voltage on the control pin is close to 0V, and HAL now - reads the pin as FALSE, then you have an OC port. - If the resulting voltage is far from 0V, or HAL does not read the pin as - FALSE, then your port cannot be used in "x" mode. -\end_layout - -\begin_layout Standard -The external hardware that drives the control pins should also use open - collector gates (e.g., 74LS05). -\end_layout - -\begin_layout Standard -On some machines, BIOS settings may affect whether "x" mode can be used. - "SPP" mode is most most likely to work. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -No other combinations are supported, and a port cannot be changed from input - to output once the driver is installed. - Figure -\begin_inset LatexCommand ref -reference "fig:Parport-block-diag" - -\end_inset - - shows two block diagrams, one showing the driver when the data group is - configured for output, and one showing it configured for input. - For "x" mode, refer to the pin listing of "halcmd show pin" for pin direction - assignment. -\end_layout - -\begin_layout Standard -The parport driver can control up to 8 ports (defined by MAX_PORTS in hal_parpor -t.c). - The ports are numbered starting at zero. -\end_layout - -\begin_layout Subsection -Installing -\end_layout - -\begin_layout LyX-Code -loadrt hal_parport cfg="" -\end_layout - -\begin_layout Subsubsection* -Using the Port Index -\end_layout - -\begin_layout Standard -I/O addresses below 16 are treated as port indexes. - This is the simplest way to install the parport driver and cooperates with - the Linux parport_pc driver if it is loaded. -\end_layout - -\begin_layout LyX-Code -loadrt hal_parport cfg="0" -\end_layout - -\begin_layout Standard -Will use the address Linux has detected for parport0. -\end_layout - -\begin_layout Subsubsection* -Using the Port Address -\end_layout - -\begin_layout Standard -The configure string consists of a hex port address, followed by an optional - direction, repeated for each port. - The direction is "in", "out", or "x" and determines the direction of the - physical pins 2 through 9, and whether to create input HAL pins for the - physical control pins. - If the direction is not specified, the data group defaults to output. - For example: -\end_layout - -\begin_layout LyX-Code -loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" -\end_layout - -\begin_layout Standard -This example installs drivers for one port at 0x0278, with pins 2-9 as outputs - (by default, since neither "in" nor "out" was specified), one at 0x0378, - with pins 2-9 as inputs, and one at 0x20A0, with pins 2-9 explicitly specified - as outputs. - Note that you must know the base address of the parallel port to properly - configure the driver. - For ISA bus ports, this is usually not a problem, since the port is almost - always at a "well known" address, like 0278 or 0378 which is typically - configured in the system BIOS. - The address for a PCI card is usually shown in "lspci -v" in an "I/O ports" - line, or in the kernel message log after executing -\family typewriter -"sudo modprobe -a parport_pc -\family default -". - There is no default address; if -\family typewriter - -\family default - does not contain at least one address, it is an error. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status open - -\begin_layout Standard -\align center -\begin_inset Graphics - filename parport-block-diag.eps - width 8in - height 10in - keepAspectRatio - scaleBeforeRotation - rotateAngle 90 - rotateOrigin center - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Caption - -\begin_layout Standard -\begin_inset LatexCommand label -name "fig:Parport-block-diag" - -\end_inset - -Parport Block Diagram -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Pins -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out -\family default - -- Drives a physical output pin. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in -\family default - -- Tracks a physical input pin. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--in-not -\family default - -- Tracks a physical input pin, but inverted. -\end_layout - -\begin_layout Standard -For each pin, -\family typewriter - -\family default - is the port number, and -\family typewriter - -\family default - is the physical pin number in the 25 pin D-shell connector. -\end_layout - -\begin_layout Standard -For each physical output pin, the driver creates a single HAL pin, for example - -\family typewriter -parport.0.pin-14-out -\family default -. - Pins 2 through 9 are part of the data group and are output pins if the - port is defined as an output port. - (Output is the default.) Pins 1, 14, 16, and 17 are outputs in all modes. - These HAL pins control the state of the corresponding physical pins. -\end_layout - -\begin_layout Standard -For each physical input pin, the driver creates two HAL pins, for example - -\family typewriter -parport.0.pin-12-in -\family default - and -\family typewriter -parport.0.pin-12-in-not -\family default -. - Pins 10, 11, 12, 13, and 15 are always input pins. - Pins 2 through 9 are input pins only if the port is defined as an input - port. - The -\family typewriter --in -\family default - HAL pin is TRUE if the physical pin is high, and FALSE if the physical - pin is low. - The -\family typewriter --in-not -\family default - HAL pin is inverted -- it is FALSE if the physical pin is high. - By connecting a signal to one or the other, the user can determine the - state of the input. - In "x" mode, pins 1, 14, 16, and 17 are also input pins. -\end_layout - -\begin_layout Subsection -Parameters -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out-invert -\family default - -- Inverts an output pin. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(bit) -\noun default -parport..pin--out-reset -\family default - (only for "out" pins) -- TRUE if this pin should be reset when the -\family typewriter --reset -\family default - function is executed. -\end_layout - -\begin_layout Itemize - -\family typewriter -(U32) parport..reset-time -\family default - -- The time (in nanoseconds) between a pin is set by -\family typewriter -write -\family default - and reset by the -\family typewriter -reset -\family default - function if it is enabled. -\end_layout - -\begin_layout Standard -The -\family typewriter --invert -\family default - parameter determines whether an output pin is active high or active low. - If -\family typewriter --invert -\family default - is FALSE, setting the HAL -\family typewriter --out -\family default - pin TRUE drives the physical pin high, and FALSE drives it low. - If -\family typewriter --invert -\family default - is TRUE, then setting the HAL -\family typewriter --out -\family default - pin TRUE will drive the physical pin low. -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(funct) -\noun default -parport..read -\family default --- Reads physical input pins of port -\family typewriter - -\family default - and updates HAL -\family typewriter --in -\family default - and -\family typewriter --in-not -\family default - pins. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(funct) -\noun default -parport.read-all -\family default - -- Reads physical input pins of all ports and updates HAL -\family typewriter --in -\family default - and -\family typewriter --in-not -\family default - pins. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(funct) -\noun default -parport..write -\family default - -- Reads HAL -\family typewriter --out -\family default - pins of port -\family typewriter - -\family default - and updates that port's physical output pins. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(funct) -\noun default -parport.write-all -\family default - -- Reads HAL -\family typewriter --out -\family default - pins of all ports and updates all physical output pins. -\end_layout - -\begin_layout Itemize - -\family typewriter -\noun on -(funct) -\noun default -parport..reset -\family default - -- Waits until -\family typewriter -reset-time -\family default - has elapsed since the associated -\family typewriter -write -\family default -, then resets pins to values indicated by -\family typewriter --out-invert -\family default - and -\family typewriter --out-invert -\family default - settings. - -\family typewriter -reset -\family default - must be later in the same thread as -\family typewriter -write. - -\family default -If -\family typewriter --reset -\family default - is TRUE, then the -\family typewriter -reset -\family default - function will set the pin to the value of -\family typewriter --out-invert -\family default -. - This can be used in conjunction with stepgen's -\family typewriter -doublefreq -\family default - to produce one step per period. - The stepgen stepspace for that pin must be set to 0 to enable doublefreq. -\end_layout - -\begin_layout Standard -The individual functions are provided for situations where one port needs - to be updated in a very fast thread, but other ports can be updated in - a slower thread to save CPU time. - It is probably not a good idea to use both an -\family typewriter --all -\family default - function and an individual function at the same time. -\end_layout - -\begin_layout Subsection -Common problems -\end_layout - -\begin_layout Standard -If loading the module reports -\end_layout - -\begin_layout Quote -insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': -\newline --1 Device - or resource busy -\end_layout - -\begin_layout Standard -then ensure that the standard kernel module -\family typewriter -parport_pc -\family default - is not loaded -\begin_inset Foot -status open - -\begin_layout Standard -In the EMC packages for Ubuntu, the file /etc/modprobe.d/emc2 generally prevents - -\family typewriter -parport_pc -\family default - from being automatically loaded. -\end_layout - -\end_inset - - and that no other device in the system has claimed the I/O ports. -\end_layout - -\begin_layout Standard -If the module loads but does not appear to function, then the port address - is incorrect or the -\family typewriter -probe_parport -\family default - module is required. -\end_layout - -\begin_layout Subsection -Using DoubleStep -\end_layout - -\begin_layout Standard -To setup DoubleStep on the parallel port you must add the function parport.n.reset - after parport.n.write and configure stepspace to 0 and the reset time wanted. - So that step can be asserted on every period in HAL and then toggled off - by parport after being asserted for time specificed by parport.n.reset-time. -\end_layout - -\begin_layout Standard -For example: -\end_layout - -\begin_layout LyX-Code -loadrt hal_parport cfg="0x378 out" -\end_layout - -\begin_layout LyX-Code -setp parport.0.reset-time 5000 -\end_layout - -\begin_layout LyX-Code -loadrt stepgen step_type=0,0,0 -\end_layout - -\begin_layout LyX-Code -addf parport.0.read base-thread -\end_layout - -\begin_layout LyX-Code -addf stepgen.make-pulses base-thread -\end_layout - -\begin_layout LyX-Code -addf parport.0.write base-thread -\end_layout - -\begin_layout LyX-Code -addf parport.0.reset base-thread -\end_layout - -\begin_layout LyX-Code -addf stepgen.capture-position servo-thread -\end_layout - -\begin_layout LyX-Code -... -\end_layout - -\begin_layout LyX-Code -setp stepgen.0.steplen 1 -\end_layout - -\begin_layout LyX-Code -setp stepgen.0.stepspace 0 -\end_layout - -\begin_layout Section -\begin_inset LatexCommand label -name "sec:probe_parport" - -\end_inset - -probe_parport -\end_layout - -\begin_layout Standard -In modern PCs, the parallel port may require plug and play (PNP) configuration - before it can be used. - The -\family typewriter -probe_parport -\family default - module performs configuration of any PNP ports present, and should be loaded - before -\family typewriter -hal_parport -\family default -. - On machines without PNP ports, it may be loaded but has no effect. -\end_layout - -\begin_layout Subsection -Installing -\end_layout - -\begin_layout Quote -loadrt probe_parport -\end_layout - -\begin_layout Quote -loadrt hal_parport ... -\end_layout - -\begin_layout Standard -If the Linux kernel prints a message similar to -\end_layout - -\begin_layout Quote -parport: PnPBIOS parport detected. -\end_layout - -\begin_layout Standard -when the parport_pc module is loaded ( -\family typewriter -sudo modprobe -a parport_pc; sudo rmmod parport_pc) -\family default - then use of this module is probably required. -\end_layout - -\end_body -\end_document diff --git a/docs/src/hal/pyvcp.lyx b/docs/src/hal/pyvcp.lyx deleted file mode 100644 index 90d8197bb..000000000 --- a/docs/src/hal/pyvcp.lyx +++ /dev/null @@ -1,2019 +0,0 @@ -#LyX 1.5.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 276 -\begin_document -\begin_header -\textclass book -\language english -\inputencoding default -\font_roman bookman -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\float_placement !htbp -\paperfontsize default -\spacing single -\papersize letterpaper -\use_geometry true -\use_amsmath 2 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\leftmargin 1in -\topmargin 1in -\rightmargin 0.8in -\bottommargin 0.8in -\secnumdepth 3 -\tocdepth 5 -\paragraph_separation skip -\defskip smallskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Chapter -Virtual Control Panel -\begin_inset LatexCommand index -name "Virtual Control Panel" - -\end_inset - - -\begin_inset LatexCommand label -name "cha:Virtual-Control-Panel" - -\end_inset - - -\end_layout - -\begin_layout Standard -Python Virtual Control Panel -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -The pyVCP (python Virtual Control Panel) is designed to give the integrator - the ability to customize the AXIS interface with buttons and indicators - to do special tasks. - -\end_layout - -\begin_layout Standard -Hardware machine control panels can use up a lot of I/O pins and can be - expensive. - That is where Virtual Control Panels have the advantage as well as it cost - nothing to build a pyVCP. - -\end_layout - -\begin_layout Standard -Virtual control panels can be used for testing or monitoring things to temporari -ly replace real I/O devices while debugging ladder logic, or to simulate - a physical panel before you build it and wire it to an I/O board. -\end_layout - -\begin_layout Standard -The following graphic displays many of the pyVCP widgets. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pyvcp_group.png - scale 70 - -\end_inset - - -\end_layout - -\begin_layout Section -Panel Construction -\end_layout - -\begin_layout Standard -The layout of a pyVCP panel is specified with an XML file that contains - widget tags between and . - For example: -\end_layout - -\begin_layout LyX-Code - -\newline - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pyvcp_mypanel.png - -\end_inset - - -\end_layout - -\begin_layout Standard -If you place this text in a file called tiny.xml, and run -\end_layout - -\begin_layout LyX-Code -halrun -I loadusr pyvcp -c mypanel tiny.xml -\end_layout - -\begin_layout Standard -pyVCP will create the panel for you, which includes two widgets, a Label - with the text "This is a LED indicator", and a LED, used for displaying - the state of a HAL BIT signal. - It will also create a HAL component named "mypanel" (all widgets in this - panel are connected to pins that start with "mypanel."). - Since no tag was present inside the tag, pyVCP will automaticall -y name the HAL pin for the LED widget mypanel.led.0 -\end_layout - -\begin_layout Standard -For a list of widgets and their tags and options, see the widget reference - below. -\end_layout - -\begin_layout Standard -Once you have created your panel, connecting HAL signals to and from the - pyVCP pins is done with the halcmd: -\end_layout - -\begin_layout LyX-Code -net signal-name - -\end_layout - -\begin_layout Standard -If you are new to HAL, the HAL basics chapter in the Integrators Manual - is a good place to start. -\end_layout - -\begin_layout Section -Security -\end_layout - -\begin_layout Standard -Parts of pyVCP files are evaluated as Python code, and can take any action - available to Python programs. - Only use pyVCP .xml files from a source that you trust. -\end_layout - -\begin_layout Section -AXIS -\begin_inset LatexCommand label -name "sec:pyvcp-with-axis" - -\end_inset - - -\end_layout - -\begin_layout Standard -Since AXIS uses the same GUI toolkit (Tkinter) as pyVCP, it is possible - to include a pyVCP panel on the right side of the normal AXIS user interface. - A typical example is explained below. -\end_layout - -\begin_layout Standard -Place your pyVCP XML file describing the panel in the same directory where - your .ini file is. - Say we we want to display the current spindle speed using a Bar widget. - Place the following in a file called spindle.xml: -\end_layout - -\begin_layout LyX-Code - -\newline - -\newline - -\newline - - "spindle-speed" -\newline - 5000 -\newline - -\newline - -\end_layout - -\begin_layout Standard -Here we've made a panel with a Label and a Bar widget, specified that the - HAL pin connected to the Bar should be named "spindle-speed", and set the - maximum value of the bar to 5000 (see widget reference below for all options). - To make AXIS aware of this file, and call it at start up, we need to specify - the following in the [DISPLAY] section of the .ini file: -\end_layout - -\begin_layout LyX-Code -PYVCP = spindle.xml -\end_layout - -\begin_layout Standard -To make our widget actually display the spindle-speed it needs to be hooked - up to the appropriate HAL signal. - A .hal file that will be run once AXIS and pyVCP have started can be specified - in the [HAL] section of the .ini file: -\end_layout - -\begin_layout LyX-Code -POSTGUI_HALFILE = spindle_to_pyvcp.hal -\end_layout - -\begin_layout Standard -This change will run the HAL commands specified in "spindle_to_pyvcp.hal". - In our example the contents could look like this: -\end_layout - -\begin_layout LyX-Code -net spindle-rpm-filtered => pyvcp.spindle-speed -\end_layout - -\begin_layout Standard -assuming that a signal called "spindle-rpm-filtered" already exists. - Note that when running together with AXIS, all pyVCP widget HAL pins have - names that start with "pyvcp.". -\end_layout - -\begin_layout Standard -\align center -\begin_inset Graphics - filename images/pyvcp_axis_lathe.png - lyxscale 80 - scale 50 - -\end_inset - - -\end_layout - -\begin_layout Standard -This is what the newly created pyVCP panel should look like in AXIS. - The -\family typewriter -sim/lathe -\family default - configuration is already configured this way. -\end_layout - -\begin_layout Section -Stand Alone -\end_layout - -\begin_layout Standard -This section describes how pyVCP panels can be displayed on their own with - or without EMC's machine controller. -\end_layout - -\begin_layout Standard -To load a stand alone pyVCP panel with EMC use these commands: -\end_layout - -\begin_layout LyX-Code -loadusr -Wn mypanel pyvcp -g WxH+X+Y -c mypanel panel_file.xml -\end_layout - -\begin_layout Standard -You would use this if you wanted a floating panel or a panel with a GUI - other than AXIS. - -\end_layout - -\begin_layout Description --Wn\InsetSpace ~ -panelname makes HAL wait for the component "panelname" to finish loading - ("become ready" in HAL speak) before processing more HAL commands. - This is important because pyVCP panels export HAL pins and other HAL components - will need them present to connect to them. - Note the capital W and lowercase n. - If you use the -Wn option you must use the -c option to name the panel. -\end_layout - -\begin_layout Description -pyvcp\InsetSpace ~ -<-g>\InsetSpace ~ -<-c>\InsetSpace ~ -panel.xml builds the panel with the optional geometry and/or - panelname from the xml panel file. - The panel.xml can be any name that ends in .xml. - The .xml file is the file that describes how to build the panel. - You must add the path name if the panel is not in the directory that the - HAL script is in. - -\end_layout - -\begin_layout Description --g\InsetSpace ~ -<+X+Y> specifies the geometry to be used when constructing the panel. - The syntax is "Width"x"Height"+"X Anchor"+"Y Anchor". - You can set the size or position or both. - The anchor point is the upper left corner of the panel. - An example is -g 250x500+800+0 This sets the panel at 250 pixels wide, - 500 pixels tall, and anchors it at X800 Y0. -\end_layout - -\begin_layout Description --c\InsetSpace ~ -panelname tells pyVCP what to call the component and also the title of - the window. - The panelname can be any name without spaces. - -\end_layout - -\begin_layout Standard -To load a "stand alone" pyVCP panel without EMC use this command: -\end_layout - -\begin_layout LyX-Code -loadusr -Wn mypanel pyvcp -g 250x500+800+0 -c mypanel mypanel.xml -\end_layout - -\begin_layout Standard -The minimum command to load a pyvcp panel is: -\end_layout - -\begin_layout LyX-Code -loadusr pyvcp mypanel.xml -\end_layout - -\begin_layout Standard -You would use this if you want a panel without EMC's machine controller - such as for testing or a standalone DRO. - -\end_layout - -\begin_layout Standard -The loadusr command is used when you also load a component that will stop - HAL from closing until it's done. - If you loaded a panel and then loaded ClassicLadder using -w ClassicLadder - CL would hold HAL open (and the panel)  until you closed CL -Wn means wait - for the component "panelname" to become ready. - "panelname" can be any name. - note the capital W and lowercase n. - The -c tells pyVCP to build a panel with the name "panelname" using the - info in "panel_file_name.xml" "panel_file_name.xml" can be any name but must - end in .xml - it is the file that describes how to build the panel. - You must add the path name if the panel is not in the directory that the - HAL script is in. - -\end_layout - -\begin_layout Standard -An optional command to use if you want the panel to stop HAL from continuing - commands / shutting down. - After loading any other components you want the last HAL command to be: - -\end_layout - -\begin_layout LyX-Code -  waituser panelname -\end_layout - -\begin_layout Standard -This tells HAL to wait for component "panelname" to close before continuing - HAL commands This is usually set as the last command so that HAL shuts - down when the panel is closed. -\end_layout - -\begin_layout Section -Widgets -\end_layout - -\begin_layout Standard -HAL signals come in two variants, bits and numbers. - Bits are off/on signals. - Numbers can be "float", "s32" or "u32". - For more information on HAL data types see the -\begin_inset LatexCommand ref -reference "sec:Hal-Data" - -\end_inset - - section. - The pyVCP widget can either display the value of the signal with an indicator - widget, or modify the signal value with a control widget. - Thus there are four classes of pyVCP widgets that you can connect to a - HAL signal. - A fifth class of helper widgets allow you to organize and label your panel. -\end_layout - -\begin_layout Enumerate -Widgets for indicating "bit" signals: led, rectled -\end_layout - -\begin_layout Enumerate -Widgets for controlling "bit" signals: button, checkbutton, radiobutton -\end_layout - -\begin_layout Enumerate -Widgets for indicating "number" signals: number, s32, u32, bar, meter -\end_layout - -\begin_layout Enumerate -Widgets for controlling "number" signals: spinbox, scale, jogwheel -\end_layout - -\begin_layout Enumerate -Helper widgets: hbox, vbox, table, label, labelframe -\end_layout - -\begin_layout Subsubsection* -Syntax -\end_layout - -\begin_layout Standard -Each widget is described briefly, followed by the markup used, and a screen - shot. - All tags inside the main widget tag are optional. -\end_layout - -\begin_layout Subsubsection* -General Notes -\end_layout - -\begin_layout Standard -At the present time, both a tag-based and an attribute-based syntax are - supported. - For instance, the following XML fragments are treated identically: -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout Standard -and -\end_layout - -\begin_layout LyX-Code -"my-led" -\end_layout - -\begin_layout Standard -When the attribute-based syntax is used, the following rules are used to - turn the attributes value into a Python value: -\end_layout - -\begin_layout Enumerate -If the first character of the attribute is one of the following, it is evaluated - as a Python expression: -\family typewriter -{(["' -\end_layout - -\begin_layout Enumerate -If the string is accepted by int(), the value is treated as an integer -\end_layout - -\begin_layout Enumerate -If the string is accepted by float(), the value is treated as floating-point -\end_layout - -\begin_layout Enumerate -Otherwise, the string is accepted as a string. -\end_layout - -\begin_layout Standard -When the tag-based syntax is used, the text within the tag is always evaluated - as a Python expression. -\end_layout - -\begin_layout Standard -The examples below show a mix of formats. -\end_layout - -\begin_layout Subsubsection* -Comments -\end_layout - -\begin_layout Standard -To add a comment use the xml syntax for a comment. - -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout Subsubsection* -Editing the XML file -\end_layout - -\begin_layout Standard -Edit the XML file with a text editor. - In most cases you can right click on the file and select "open with text - editor" or similar. -\end_layout - -\begin_layout Subsubsection* -Colors -\end_layout - -\begin_layout Standard -Colors can be specified using the X11 rgb colors by name "gray75" or hex - "#0000ff -\begin_inset Quotes erd -\end_inset - -. - A complete list is located here -\begin_inset LatexCommand url -target "http://sedition.com/perl/rgb.html" - -\end_inset - -. -\end_layout - -\begin_layout Standard -Common Colors (colors with numbers indicate shades of that color) -\end_layout - -\begin_layout Itemize -white -\end_layout - -\begin_layout Itemize -black -\end_layout - -\begin_layout Itemize -blue and blue1 - 4 -\end_layout - -\begin_layout Itemize -cyan and cyan1 - 4 -\end_layout - -\begin_layout Itemize -green and green1 - 4 -\end_layout - -\begin_layout Itemize -yellow and yellow1 - 4 -\end_layout - -\begin_layout Itemize -red and red1 - 4 -\end_layout - -\begin_layout Itemize -purple and purple1 - 4 -\end_layout - -\begin_layout Itemize -gray and gray0 - 100 -\end_layout - -\begin_layout Subsubsection* -HAL Pins -\end_layout - -\begin_layout Standard -HAL pins provide a means to "connect" the widget to something. - Once you create a HAL pin for your widget you can "connect" it to another - HAL pin with a "net" command in a .hal file. - For more information on the "net" command see the HAL Commands section - ( -\begin_inset LatexCommand ref -reference "sec:Hal-Commands" - -\end_inset - -). -\end_layout - -\begin_layout Subsection -Label -\end_layout - -\begin_layout Standard -A label is a piece of text on your panel. -\end_layout - -\begin_layout Standard -The label has an optional disable pin that is created when you add -True. -\end_layout - -\begin_layout LyX-Code -