diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 60c21b183e3..b63d54843ad 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,10 +24,11 @@ jobs:
- name: Build RIP & test
run: |
./scripts/travis-install-build-deps.sh
+ sudo apt-get install -y eatmydata
cd src
- ./autogen.sh
- ./configure --with-realtime=uspace --disable-check-runtime-deps
- make -O -j$((1+$(nproc))) default pycheck V=1
+ eatmydata ./autogen.sh
+ eatmydata ./configure --with-realtime=uspace --disable-check-runtime-deps
+ eatmydata make -O -j$((1+$(nproc))) default pycheck V=1
# Note that the package build covers html docs
../scripts/rip-environment runtests -p
@@ -46,10 +47,11 @@ jobs:
- name: Build HTML docmentation
run: |
./scripts/travis-install-build-deps.sh
+ sudo apt-get install -y eatmydata
cd src
- ./autogen.sh
- ./configure --with-realtime=uspace --disable-check-runtime-deps --enable-build-documentation=html
- make -O -j$((1+$(nproc))) docs
+ eatmydata ./autogen.sh
+ eatmydata ./configure --with-realtime=uspace --disable-check-runtime-deps --enable-build-documentation=html
+ eatmydata make -O -j$((1+$(nproc))) docs
# Note that the package build covers html docs
package:
@@ -68,9 +70,10 @@ jobs:
set -x
git fetch --recurse-submodules=no https://github.com/linuxcnc/linuxcnc refs/tags/*:refs/tags/*
./scripts/travis-install-build-deps.sh
+ sudo apt-get install -y eatmydata
codename=$(grep VERSION_CODENAME /etc/os-release | cut -d = -f 2)
dch --maintmaint --distribution $codename "GitHub test package."
fakeroot ./debian/rules binary
sudo apt-get install ../*.deb
- ./scripts/runtests -p tests/
- lintian --info --display-info --pedantic --display-experimental ../*.deb
+ eatmydata ./scripts/runtests -p tests/
+ eatmydata lintian --info --display-info --pedantic --display-experimental ../*.deb
diff --git a/debian/copyright b/debian/copyright
index e91ad1475d9..42a51aacd7a 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -484,7 +484,7 @@ License: LGPL-2
with this program. If not, see
.
On Debian systems, the complete text of the GNU Lesser General Public
- License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2’.
+ License version 2.1 can be found in '/usr/share/common-licenses/LGPL-2'.
License: LGPL-2.1+
This program is free software; you can redistribute it and/or modify
@@ -501,7 +501,7 @@ License: LGPL-2.1+
with this program. If not, see
.
On Debian systems, the complete text of the GNU Lesser General Public
- License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’.
+ License version 2.1 can be found in '/usr/share/common-licenses/LGPL-2.1'.
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/docs/README.adoc b/docs/README.adoc
index b1c71d5e054..f7aa97d8e46 100644
--- a/docs/README.adoc
+++ b/docs/README.adoc
@@ -122,6 +122,87 @@ Drawings from QCAD
- Export the image as 480 x 480 Resolution Auto .png
+Dealing with translations
+-------------------------
+
+Translation of our documentation is in transition at the moment.
+
+We have some old-style translations that are separate asciidoc .adoc files
+checked into git. These started out as copies of the english master
+docs at some point, and diverged from there over time. This turned out
+not to be an ideal situation.
+
+We are experimenting with a new system using
+[po4a](https://po4a.alioth.debian.org/). With po4a, the English text
+is the master document, and each paragraph is translated using
+gettext, just like the strings in our software.
+
+Some documentation of po4a is available in the po4a(7) manpage, and
+online here:
+
+ https://po4a.alioth.debian.org/man/man7/po4a.7.php
+
+We are using po4a version 0.62, available in Debian Bullseye.
+
+
+To transition a translated file to po4a
+---------------------------------------
+
+If there is a pre-existing translation of the file to your language,
+create a .po translation database seeded by the old translation.
+
+If the english file is called "file.adoc" then the old pre-existing
+translated file is probably called "file_fr.adoc" (for the french
+translation, as an example), and the translation database should be
+called "file.fr.po". Creating PO file from adoc can be done by
+running this command:
+
+ (f=getting-linuxcnc; l=cn; po4a-gettextize --format asciidoc -m ${f}.adoc -M utf8 -l ${f}_${l}.adoc -L utf8 -p ${f}.${l}.po)
+
+Similarly, for translated manual pages:
+
+ (f=elbpcom.1; l=es; po4a-gettextize --format asciidoc -m man/man1/${f} -M utf8 -l man/${l}/man1/${f} -L utf8 -p ${f}.${l}.po)
+
+
+To append the extracted translations to the combined PO file, do
+something like this:
+
+ msgcat --use-first po/Documentation.es.po elbpcom.1.es.po \
+ > po/Documentation.es.po
+
+To create a new po4a translation of an untranslated file
+--------------------------------------------------------
+
+If there is no pre-existing translation of the file to your language,
+create an empty .po file to start with. If the english file is called
+"file.adoc" then the translation database should be called "file.se.po"
+(for the swedish translation, as an example). It is created by running
+this command:
+
+ po4a-gettextize --format text -m file.adoc -M utf8 -p file.se.po
+
+
+Improving the translation of a po4a-managed file
+------------------------------------------------
+
+Translations are done paragraph by paragraph.
+
+You can use a GUI tool like poedit or gtranslator or others, or you can
+(carefully!) edit the .po file by hand.
+
+The next time the translated document gets rebuilt, the updated
+translations will be used.
+
+
+When the master document (english) changes
+------------------------------------------
+
+When the master document (english) file has changed, use the po4a-updatepo
+to update the .po files:
+
+ po4a-updatepo -f text -m file.adoc -p file.fr.po
+
+
How to add a new translation language
-------------------------------------
@@ -134,8 +215,10 @@ Add the asciidoc source files containing your new translation. Usually
that means copying the language files from one of the existing languages,
probably English since that's usually the most up-to-date.
-Add the new files to the proper place in docs/src/Submakefile, to ensure
-they get built.
+Copy the docs/po/Documentation.pot todocs/po/Documentation.$LANG.po.
+where $LANG is a two letter language code according to ISO 639-1, or
+three letter code according to ISO 639-2 if no two letter code exist.
+Add the new language code to the proper place in docs/po4a.conf.
Edit debian/control.in to add the new linuxcnc-doc-$NEWLANG package.
Add the new doc package to the or-list of the "Recommends" line of the
diff --git a/docs/html/gcode_fr.html b/docs/html/gcode_fr.html
index 4fa216366db..96984d9aafc 100644
--- a/docs/html/gcode_fr.html
+++ b/docs/html/gcode_fr.html
@@ -48,79 +48,79 @@
Codes | Paramètres | Description |
Mouvements | (X Y Z A B C U V W s'appliquent à tous les mouvements) |
- G0 | | Interpolation linéaire en vitesse rapide |
- G1 | | Interpolation linéaire en vitesse programmée |
- G2, G3 | I J K ou R, P | Interpolation circulaire ("ou hélicoïdale") sens horaire, sens anti-horaire |
- G4 | P | Temporisation (secondes) |
- G5 | I J P Q | Spline cubique |
- G5.1 | I J | B-spline quadratique |
- G5.2 | P L | NURBS, ajout point de contrôle |
- G5.3 | | NURBS, Exécute |
- G38.2…G38.5 | | Mesure au palpeur |
- G80 | | Révocation des codes modaux |
- G81 | R L P | Cycle de perçage |
- G73,G82…G89 | R L P Q | Autres cycles préprogrammés |
- G33 | K | Filetage avec broche synchronisée |
- G33.1 | K | Taraudage rigide |
- G76 | P Z I J R K Q H L E | Cycle de filetage préprogrammé (tour) |
+ G0 | | Interpolation linéaire en vitesse rapide |
+ G1 | | Interpolation linéaire en vitesse programmée |
+ G2, G3 | I J K ou R, P | Interpolation circulaire ("ou hélicoïdale") sens horaire, sens anti-horaire |
+ G4 | P | Temporisation (secondes) |
+ G5 | I J P Q | Spline cubique |
+ G5.1 | I J | B-spline quadratique |
+ G5.2 | P L | NURBS, ajout point de contrôle |
+ G5.3 | | NURBS, Exécute |
+ G38.2…G38.5 | | Mesure au palpeur |
+ G80 | | Révocation des codes modaux |
+ G81 | R L P | Cycle de perçage |
+ G73,G82…G89 | R L P Q | Autres cycles préprogrammés |
+ G33 | K | Filetage avec broche synchronisée |
+ G33.1 | K | Taraudage rigide |
+ G76 | P Z I J R K Q H L E | Cycle de filetage préprogrammé (tour) |
Types de déplacements |
- G90 | | Déplacements en coordonnées absolues (par rapport à l'origine) |
- G91 | | Déplacements en coordonnées relatives (incrémentales) |
- G90.1 | | Arc centers I,J,K are absolute |
- G91.1 | | Arc centers I,J,K are relative to the arc's starting point |
- G7 | | X en mode diamètre (tour) |
- G8 | | X en mode rayon (tour) |
+ G90 | | Déplacements en coordonnées absolues (par rapport à l'origine) |
+ G91 | | Déplacements en coordonnées relatives (incrémentales) |
+ G90.1 | | Arc centers I,J,K are absolute |
+ G91.1 | | Arc centers I,J,K are relative to the arc's starting point |
+ G7 | | X en mode diamètre (tour) |
+ G8 | | X en mode rayon (tour) |
Modes de vitesses |
- G93 | | Vitesse inverse du temps (vitesse/distance) |
- G94 | | Vitesse en unités par minute |
- G95 | | Vitesse en unités par tour |
+ G93 | | Vitesse inverse du temps (vitesse/distance) |
+ G94 | | Vitesse en unités par minute |
+ G95 | | Vitesse en unités par tour |
Contrôle de broche |
- M3, M4 | S | Marche broche sens horaire, sens anti-horaire |
- M5 | | Arrêt de la broche |
- M19 | | Orientation de la broche |
- G96 | D S | Vitesse de coupe constante (pieds par minute ou mètres par minute) |
- G97 | | Vitesse en tours par minute |
+ M3, M4 | S | Marche broche sens horaire, sens anti-horaire |
+ M5 | | Arrêt de la broche |
+ M19 | | Orientation de la broche |
+ G96 | D S | Vitesse de coupe constante (pieds par minute ou mètres par minute) |
+ G97 | | Vitesse en tours par minute |
Arrosages |
- M7 | | Marche gouttelettes |
- M8 | | Marche arrosage |
- M9 | | Arrêt des arrosages |
+ M7 | | Marche gouttelettes |
+ M8 | | Marche arrosage |
+ M9 | | Arrêt des arrosages |
Correcteurs de longueur d'outil |
- G43 | H | Compensation de longueur d'outil depuis une table d'outils |
- G43.1 | I K | Compensation dynamique de longueur d'outil |
- G49 | | Révocation de la compensation de longueur d'outil |
+ G43 | H | Compensation de longueur d'outil depuis une table d'outils |
+ G43.1 | I K | Compensation dynamique de longueur d'outil |
+ G49 | | Révocation de la compensation de longueur d'outil |
Arrêts de programme |
- M0 | | Pause dans le programme |
- M1 | | Pause optionnelle dans le programme |
- M2, M30 | | Fin de programme |
- M60 | Pause pour changement de pièce |
+ M0 | | Pause dans le programme |
+ M1 | | Pause optionnelle dans le programme |
+ M2, M30 | | Fin de programme |
+ M60 | Pause pour changement de pièce |
Unités machine |
- G20 | | Unité machine: Pouce |
- G21 | | Unité machine: Millimètre |
+ G20 | | Unité machine: Pouce |
+ G21 | | Unité machine: Millimètre |
Choix du plan de travail (affecte G2, G3, G81…G89, G40…G42) |
- G17 | | Plan de travail XY |
- G18 | | Plan de travail XZ |
- G19 | | Plan de travail YZ |
+ G17 | | Plan de travail XY |
+ G18 | | Plan de travail XZ |
+ G19 | | Plan de travail YZ |
Compensation de rayon d'outil |
- G41, G42 | D | Compensation de rayon d'outil, à gauche ou à droite du profil |
- G41.1, G42.1 | D L | Compensation dynamique de rayon d'outil, à gauche ou à droite du profil |
- G40 | | Révocation de la compensation de rayon d'outil |
+ G41, G42 | D | Compensation de rayon d'outil, à gauche ou à droite du profil |
+ G41.1, G42.1 | D L | Compensation dynamique de rayon d'outil, à gauche ou à droite du profil |
+ G40 | | Révocation de la compensation de rayon d'outil |
Types de contrôle des trajectoires |
- G61 | | Mode trajectoire exacte |
- G61.1 | | Mode arrêt exact |
- G64 | P | Mode trajectoire continue avec tolérance optionnelle |
+ G61 | | Mode trajectoire exacte |
+ G61.1 | | Mode arrêt exact |
+ G64 | P | Mode trajectoire continue avec tolérance optionnelle |
Options de retrait des cycles de perçage |
- G98 | | Retrait au point initial |
- G99 | | Retrait sur R |
+ G98 | | Retrait au point initial |
+ G99 | | Retrait sur R |
Autres codes modaux |
F | | Réglage vitesse travail |
S | | Réglage vitesse broche |
T | | Choix de l'outil |
- M48, M49 | | Contrôle des correcteurs de vitesse |
- M50 | P0 (sans) ou P1 (avec) | Correcteur de vitesse travail |
- M51 | P0 (sans) ou P1 (avec) | Correcteur de vitesse broche |
- M52 | P0 (sans) ou P1 (avec) | Contrôle de vitesse adaptative |
- M53 | P0 (sans) ou P1 (avec) | Contrôle de la coupure de vitesse |
- G54…G59, G59.1…G59.3 | Choix du système de coordonnées (1 à 9) |
+ M48, M49 | | Contrôle des correcteurs de vitesse |
+ M50 | P0 (sans) ou P1 (avec) | Correcteur de vitesse travail |
+ M51 | P0 (sans) ou P1 (avec) | Correcteur de vitesse broche |
+ M52 | P0 (sans) ou P1 (avec) | Contrôle de vitesse adaptative |
+ M53 | P0 (sans) ou P1 (avec) | Contrôle de la coupure de vitesse |
+ G54…G59, G59.1…G59.3 | Choix du système de coordonnées (1 à 9) |
Instructions de contrôle |
O … | sub/endsub, while/endwhile, if/else/endif, do/while, call, break/continue/return |
@@ -129,33 +129,33 @@
O- while | | Boucles, while/endwhile do/while |
O- if | | Conditionnels, if/else/endif |
O- repeat | | Répète n fois l'exécution de blocs de code |
- M70 | | Enregistre l'état modal |
- M71 | | Invalide l'état modal enregistré |
- M72 | | Restaure l'état modal enregistré |
- M73 | | Enregistre et auto-restaure l'état modal |
+ M70 | | Enregistre l'état modal |
+ M71 | | Invalide l'état modal enregistré |
+ M72 | | Restaure l'état modal enregistré |
+ M73 | | Enregistre et auto-restaure l'état modal |
Codes d'entrée/sortie |
- M62…M65 | P | Contrôle de sortie numérique |
- M66 | P E L Q | Contrôle d'entrée numérique et analogique |
- M67 | T | Sortie analogique synchronisée au mouvement |
- M68 | T | Sortie analogique directe |
+ M62…M65 | P | Contrôle de sortie numérique |
+ M66 | P E L Q | Contrôle d'entrée numérique et analogique |
+ M67 | T | Sortie analogique synchronisée au mouvement |
+ M68 | T | Sortie analogique directe |
Codes non modaux |
- M6 | T | Appel d'outil |
- M61 | Q | Fixe le numéro de l'outil courant |
+ M6 | T | Appel d'outil |
+ M61 | Q | Fixe le numéro de l'outil courant |
- G10 L1 | P Q R X W Z | Entrée longueur, rayon, orientation de l'outil dans la table d'outils |
- G10 L10 | P axes | Modifie les offsets d'outil dans la table d'outils, selon les coordonnées pièce |
- G10 L11 | P axes | Modifie les offsets d'outil dans la table d'outils, selon les coordonnées du porte-pièce |
- G10 L2 | P X Y Z A B C | Établissement de l'origine d'un systéme de coordonnées (1 à 9) |
- G10 L20 | P axes | Place le système de coordonnées courant à des valeurs calculées |
- G28, G28.1 | | Aller à une position prédéfinie, enregistrement du point courant |
- G30, G30.1 | | Aller à une position prédéfinie, enregistrement du point courant |
- G53 | | Déplacements en coordonnées machine |
- G92 | X Y Z A B C | Décalages d'origines avec mise à jour des paramétres |
- G92.1 | | Révocation des décalages d'origine avec remise à zéro des paramètres |
- G92.2 | | Révocation des décalages d'origine sans remise à zero des paramètres |
- G92.3 | | Applique le contenu des paramétres aux décalages d'origine |
- M101…M199 | P Q | M-codes définis par l'opérateur |
+ G10 L1 | P Q R X W Z | Entrée longueur, rayon, orientation de l'outil dans la table d'outils |
+ G10 L10 | P axes | Modifie les offsets d'outil dans la table d'outils, selon les coordonnées pièce |
+ G10 L11 | P axes | Modifie les offsets d'outil dans la table d'outils, selon les coordonnées du porte-pièce |
+ G10 L2 | P X Y Z A B C | Établissement de l'origine d'un systéme de coordonnées (1 à 9) |
+ G10 L20 | P axes | Place le système de coordonnées courant à des valeurs calculées |
+ G28, G28.1 | | Aller à une position prédéfinie, enregistrement du point courant |
+ G30, G30.1 | | Aller à une position prédéfinie, enregistrement du point courant |
+ G53 | | Déplacements en coordonnées machine |
+ G92 | X Y Z A B C | Décalages d'origines avec mise à jour des paramétres |
+ G92.1 | | Révocation des décalages d'origine avec remise à zéro des paramètres |
+ G92.2 | | Révocation des décalages d'origine sans remise à zero des paramètres |
+ G92.3 | | Applique le contenu des paramétres aux décalages d'origine |
+ M101…M199 | P Q | M-codes définis par l'opérateur |
Commentaires et messages |
(…) | | Un commentaire "…" pour l'opérateur |
(MSG,…) | | Affiche le message "…" pour l'opérateur (ex: dans une fenêtre) |
diff --git a/docs/man/man1/hal_parport.1 b/docs/man/man1/hal_parport.1
index 1437258fab9..628b8f1c0af 100644
--- a/docs/man/man1/hal_parport.1
+++ b/docs/man/man1/hal_parport.1
@@ -90,17 +90,17 @@ The following lists the input and output pins by the type setting used in the cf
Reads physical input pins of all ports and updates HAL \-in and \-in\-not pins.
.TP
\fBparport..write (funct)
-Reads HAL \-out pins of port
and updates that port’s physical output pins.
+Reads HAL \-out pins of port
and updates that port's physical output pins.
.TP
\fBparport.write\-all (funct)
Reads HAL \-out pins of all ports and updates all physical output pins.
.TP
\fBparport.
.reset (funct)
-Waits until \fIreset\-time \fRhas elapsed since the associated write, then resets pins to values indicated by \fI\-out\-reset \fRand \fI\-out\-invert \fRsettings. reset must be later in the same thread as write. 'If '\fI\-out\-reset \fRis TRUE, then the reset function will set the pin to the value of \fI\-out\-invert\fR. This can be used in conjunction with stepgen’s doublefreq to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq.
+Waits until \fIreset\-time \fRhas elapsed since the associated write, then resets pins to values indicated by \fI\-out\-reset \fRand \fI\-out\-invert \fRsettings. reset must be later in the same thread as write. 'If '\fI\-out\-reset \fRis TRUE, then the reset function will set the pin to the value of \fI\-out\-invert\fR. This can be used in conjunction with stepgen's doublefreq to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq.
.SH USAGE
The hal_parport component is a driver for the traditional PC parallel port. The port has a total of 25 physical pins of which 17 are used for signals. 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 output pins, and the status group consists of 5 input pins.
-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 \fIout\fR, a port provides a total of 12 outputs and 5 inputs. If configured as \fIin\fR, it provides 4 outputs and 13 inputs.
+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 \fIout\fR, a port provides a total of 12 outputs and 5 inputs. If configured as \fIin\fR, it provides 4 outputs and 13 inputs.
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, if configured as \fIx\fR, it provides 8 outputs, and 9 inputs.
@@ -147,7 +147,7 @@ For each parallel port handled by the hal_parport driver, a type can optionally
If the type is not specified, the default is out.
-A type of epp is the same as out, but the hal_parport driver requests that the port switch into EPP mode. The hal_parport driver does not use the EPP bus protocol, but on some systems EPP mode changes the electrical characteristics of the port in a way that may make some marginal hardware work better. The Gecko G540’s charge pump is known to require this on some parallel ports.
+A type of epp is the same as out, but the hal_parport driver requests that the port switch into EPP mode. The hal_parport driver does not use the EPP bus protocol, but on some systems EPP mode changes the electrical characteristics of the port in a way that may make some marginal hardware work better. The Gecko G540's charge pump is known to require this on some parallel ports.
See the Note above about mode x.
.TP
diff --git a/docs/man/man9/motion.9 b/docs/man/man9/motion.9
index 47d16f4183a..6c9f483457a 100644
--- a/docs/man/man9/motion.9
+++ b/docs/man/man9/motion.9
@@ -194,6 +194,10 @@ If this bit is TRUE, initiation of any joint homing move (including "Home All")
is disallowed and an error is reported. By default, homing is allowed in joint
mode whenever motion is enabled.
+.TP
+\fBmotion.is\-all\-homed\fR OUT BIT
+TRUE if all active joints is homed.
+
.TP
\fBmotion.jog\-inhibit\fR IN BIT
If this bit is TRUE, jogging of any joint or axis is disallowed and an error
diff --git a/docs/src/Master_Developer.adoc b/docs/src/Master_Developer.adoc
index 345513acf13..570b2bcf224 100644
--- a/docs/src/Master_Developer.adoc
+++ b/docs/src/Master_Developer.adoc
@@ -1,37 +1,25 @@
+:lang: en
:lversion: {sys: cat ../VERSION}
:date: {sys: LANG=C date --date="@$(dpkg-parsechangelog --file ../debian/changelog -S timestamp)" '+%d %b %Y'}
-Developer Manual V{lversion}, {date}
-====================================
-
-:lang: en
+:ascii-ids:
:masterdir: {indir}
:revdate: 2021-10-28
-
-
+= Developer Manual V{lversion}, {date}
== Introduction
image::common/images/emc2-intro.png[]
include::common/overleaf.adoc[]
-
:leveloffset: 1
include::code/code-notes.adoc[]
-
include::code/nml-messages.adoc[]
-
include::code/style-guide.adoc[]
-
include::code/building-linuxcnc.adoc[]
-
include::code/adding-configs.adoc[]
-
include::code/contributing-to-linuxcnc.adoc[]
-
include::common/glossary.adoc[]
-
include::common/gpld-copyright.adoc[]
// vim: set syntax=asciidoc:
-
diff --git a/docs/src/Master_Documentation.adoc b/docs/src/Master_Documentation.adoc
index 180af613018..e5d49f72849 100644
--- a/docs/src/Master_Documentation.adoc
+++ b/docs/src/Master_Documentation.adoc
@@ -1,8 +1,8 @@
+:lang: en
:lversion: {sys: cat ../VERSION}
:date: {sys: LANG=C date --date="@$(dpkg-parsechangelog --file ../debian/changelog -S timestamp)" '+%d %b %Y'}
LinuxCNC V{lversion}, {date}
============================
-:lang: en
:revdate: 2021-10-28
= Contents
@@ -59,6 +59,7 @@ include::plasma/plasma-cnc-primer.adoc[]
:leveloffset: 1
+
= User Interfaces
:leveloffset: 2
diff --git a/docs/src/Master_Getting_Started.adoc b/docs/src/Master_Getting_Started.adoc
index 405a4a4e8aa..8fd67c6a880 100644
--- a/docs/src/Master_Getting_Started.adoc
+++ b/docs/src/Master_Getting_Started.adoc
@@ -1,8 +1,7 @@
+:lang: en
:lversion: {sys: cat ../VERSION}
:date: {sys: LANG=C date --date="@$(dpkg-parsechangelog --file ../debian/changelog -S timestamp)" '+%d %b %Y'}
-Getting Started V{lversion}, {date}
-===================================
-:lang: en
+= Getting Started V{lversion}, {date}
:masterdir: {indir}
:revdate: 2021-10-28
diff --git a/docs/src/Master_Getting_Started_fr.adoc b/docs/src/Master_Getting_Started_fr.adoc
index 1f50221a04f..2de86859587 100644
--- a/docs/src/Master_Getting_Started_fr.adoc
+++ b/docs/src/Master_Getting_Started_fr.adoc
@@ -27,6 +27,6 @@ include::common/overleaf_fr.adoc[]
include::getting-started/Getting-Started-with-LinuxCNC.contents_fr.adoc[]
-include::common/GPLD_Copyright_fr.adoc[]
+include::common/gpld-copyright_fr.adoc[]
// vim: set syntax=asciidoc:
diff --git a/docs/src/Master_Getting_Started_zh_CN.adoc b/docs/src/Master_Getting_Started_zh_CN.adoc
index d1b76a88983..296b78117a1 100644
--- a/docs/src/Master_Getting_Started_zh_CN.adoc
+++ b/docs/src/Master_Getting_Started_zh_CN.adoc
@@ -1,8 +1,7 @@
+:lang: zh_CN
:lversion: {sys: cat ../VERSION}
:date: {sys: LANG=C date --date="@$(dpkg-parsechangelog --file ../debian/changelog -S timestamp)" '+%d %b %Y'}
-Getting Started V{lversion}, {date}
-===================================
-:lang: zh_CN
+= Getting Started V{lversion}, {date}
:masterdir: {indir}
:revdate: 2021-10-28
diff --git a/docs/src/Master_HAL_fr.adoc b/docs/src/Master_HAL_fr.adoc
index 70a8612cdda..050653da919 100644
--- a/docs/src/Master_HAL_fr.adoc
+++ b/docs/src/Master_HAL_fr.adoc
@@ -20,8 +20,8 @@ include::common/outdated-notice_fr.adoc[]
= HAL
:leveloffset: 1
include::hal/intro_fr.adoc[]
-include::hal/general_ref_fr.adoc[]
-include::hal/basic_hal_fr.adoc[]
+include::hal/general-ref_fr.adoc[]
+include::hal/basic-hal_fr.adoc[]
include::hal/tutorial_fr.adoc[]
include::hal/halshow_fr.adoc[]
include::hal/components_fr.adoc[]
@@ -35,4 +35,3 @@ include::hal/halmodule_fr.adoc[]
// vim: set syntax=asciidoc:
-
diff --git a/docs/src/Master_Integrator.adoc b/docs/src/Master_Integrator.adoc
index 15fc1ccb46d..a08f752f16d 100644
--- a/docs/src/Master_Integrator.adoc
+++ b/docs/src/Master_Integrator.adoc
@@ -1,8 +1,7 @@
+:lang: en
:lversion: {sys: cat ../VERSION}
:date: {sys: LANG=C date --date="@$(dpkg-parsechangelog --file ../debian/changelog -S timestamp)" '+%d %b %Y'}
-Integrator Information V{lversion}, {date}
-==========================================
-:lang: en
+= Integrator Information V{lversion}, {date}
:masterdir: {indir}
:revdate: 2021-10-28
diff --git a/docs/src/Master_Integrator_fr.adoc b/docs/src/Master_Integrator_fr.adoc
index 7d2d69fa83a..67e40e58540 100644
--- a/docs/src/Master_Integrator_fr.adoc
+++ b/docs/src/Master_Integrator_fr.adoc
@@ -16,14 +16,14 @@ The LinuxCNC Team
include::common/overleaf_fr.adoc[]
include::common/outdated-notice_fr.adoc[]
-include::common/Integrator_Concepts_fr.adoc[]
+include::common/integrator-concepts_fr.adoc[]
:leveloffset: 0
= Configuration de LinuxCNC
:leveloffset: 1
-include::install/Latency_Test_fr.adoc[]
-include::config/ini_config_fr.adoc[]
-include::config/ini_homing_fr.adoc[]
-include::config/lathe_config_fr.adoc[]
+include::install/latency-test_fr.adoc[]
+include::config/ini-config_fr.adoc[]
+include::config/ini-homing_fr.adoc[]
+include::config/lathe-config_fr.adoc[]
include::hal/haltcl_fr.adoc[]
include::config/linuxcnc2hal_fr.adoc[]
include::config/stepper_fr.adoc[]
@@ -31,7 +31,7 @@ include::config/stepper_fr.adoc[]
= Interfaces graphiques utilisateur
:leveloffset: 1
include::gui/pyvcp_fr.adoc[]
-include::gui/pyvcp_examples_fr.adoc[]
+include::gui/pyvcp-examples_fr.adoc[]
include::gui/gladevcp_fr.adoc[]
:leveloffset: 0
@@ -39,26 +39,26 @@ include::gui/gladevcp_fr.adoc[]
:leveloffset: 1
include::config/python-interface.adoc[]
include::motion/kinematics_fr.adoc[]
-include::motion/tweaking_steppers_fr.adoc[]
-include::motion/pid_theory_fr.adoc[]
+include::motion/tweaking-steppers_fr.adoc[]
+include::motion/pid-theory_fr.adoc[]
:leveloffset: 0
= La logique Ladder
:leveloffset: 1
-include::ladder/ladder_intro_fr.adoc[]
-include::ladder/classic_ladder_fr.adoc[]
-include::ladder/ladder_examples_fr.adoc[]
+include::ladder/ladder-intro_fr.adoc[]
+include::ladder/classic-ladder_fr.adoc[]
+include::ladder/ladder-examples_fr.adoc[]
:leveloffset: 0
= Exemples d'utilisation
:leveloffset: 1
-include::examples/pci_parallel_port_fr.adoc[]
+include::examples/pci-parallel-port_fr.adoc[]
include::examples/spindle_fr.adoc[]
include::examples/mpg_fr.adoc[]
-include::examples/gs2_example_fr.adoc[]
+include::examples/gs2-example_fr.adoc[]
:leveloffset: 0
= Diagnostics
:leveloffset: 1
-include::common/Stepper_Diagnostics_fr.adoc[]
-include::common/Glossary_fr.adoc[]
+include::config/stepper-diagnostics_fr.adoc[]
+include::common/glossary_fr.adoc[]
include::common/gpld-copyright.adoc[]
// = Index
diff --git a/docs/src/Master_User_fr.adoc b/docs/src/Master_User_fr.adoc
index ffcb1378429..216773e6c17 100644
--- a/docs/src/Master_User_fr.adoc
+++ b/docs/src/Master_User_fr.adoc
@@ -38,11 +38,11 @@ include::gui/tklinuxcnc_fr.adoc[]
= L'utilisation de LinuxCNC
:leveloffset: 1
include::user/user-concepts_fr.adoc[]
-include::gcode/machining_center_fr.adoc[]
+include::gcode/machining-center_fr.adoc[]
include::gcode/coordinates_fr.adoc[]
-include::gcode/tool_compensation_fr.adoc[]
+include::gcode/tool-compensation_fr.adoc[]
include::gcode/overview_fr.adoc[]
-include::gcode/gcode_fr.adoc[]
+include::gcode/g-code_fr.adoc[]
include::gcode/m-code_fr.adoc[]
include::gcode/o-code_fr.adoc[]
include::gcode/other-code_fr.adoc[]
@@ -50,11 +50,10 @@ include::examples/gcode_fr.adoc[]
include::lathe/lathe-user_fr.adoc[]
include::gcode/rs274ngc_fr.adoc[]
include::gui/image-to-gcode_fr.adoc[]
-include::common/Glossary_fr.adoc[]
+include::common/glossary_fr.adoc[]
include::common/gpld-copyright.adoc[]
// = Index
// vim: set syntax=asciidoc:
-
diff --git a/docs/src/Submakefile b/docs/src/Submakefile
index 77297a10c9a..93bd6487cae 100644
--- a/docs/src/Submakefile
+++ b/docs/src/Submakefile
@@ -62,7 +62,7 @@ DOC_SRCS_EN := \
config/stepper-quickstart.adoc \
drivers/ax5214h.adoc \
drivers/vfs11.adoc \
- drivers/mitsub_vfd.adoc \
+ drivers/mitsub-vfd.adoc \
drivers/gm.adoc \
drivers/gs2.adoc \
drivers/hostmot2.adoc \
@@ -95,19 +95,19 @@ DOC_SRCS_EN := \
getting-started/system-requirements.adoc \
getting-started/updating-linuxcnc.adoc \
gui/axis.adoc \
- gui/filter_programs.adoc \
+ gui/filter-programs.adoc \
gui/gladevcp.adoc \
gui/gmoccapy.adoc \
gui/gscreen.adoc \
gui/qtdragon.adoc \
gui/qtvcp.adoc \
- gui/qtvcp_VCPpanels.adoc \
- gui/qtvcp_widgets.adoc \
- gui/qtvcp_libraries.adoc \
- gui/qtvcp_vismach.adoc \
- gui/qtvcp_custom_widgets.adoc \
- gui/qtvcp_code_snippets.adoc \
- gui/qtvcp_development.adoc \
+ gui/qtvcp-VCPpanels.adoc \
+ gui/qtvcp-widgets.adoc \
+ gui/qtvcp-libraries.adoc \
+ gui/qtvcp-vismach.adoc \
+ gui/qtvcp-custom-widgets.adoc \
+ gui/qtvcp-code-snippets.adoc \
+ gui/qtvcp-development.adoc \
gui/panelui.adoc \
gui/halui.adoc \
gui/image-to-gcode.adoc \
diff --git a/docs/src/code/adding-configs.adoc b/docs/src/code/adding-configs.adoc
index cf4305d51d7..f0921149b69 100644
--- a/docs/src/code/adding-configs.adoc
+++ b/docs/src/code/adding-configs.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Adding Configuration Selection Items
Example Configurations can be added to the Configuration Selector
@@ -24,3 +26,5 @@ by two methods:
====
export LINUXCNC_AUX_CONFIGS=~/myconfigs:/opt/otherconfigs
====
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/adding-configs_es.adoc b/docs/src/code/adding-configs_es.adoc
index 8f0d8ebbef4..68f6e9d1676 100644
--- a/docs/src/code/adding-configs_es.adoc
+++ b/docs/src/code/adding-configs_es.adoc
@@ -26,3 +26,5 @@ por dos métodos:
====
export LINUXCNC_AUX_CONFIGS=~/myconfigs:/opt/otherconfigs
====
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/building-linuxcnc.adoc b/docs/src/code/building-linuxcnc.adoc
index ec5b3e160ef..c4a00708d54 100644
--- a/docs/src/code/building-linuxcnc.adoc
+++ b/docs/src/code/building-linuxcnc.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Building LinuxCNC
== Introduction
@@ -9,7 +11,6 @@ a user who is testing developer branches, though then you also have
the option of just installing Debian packages from the buildbot:
http://buildbot.linuxcnc.org
-
[[Quick-Start]]
=== Quick Start
@@ -352,7 +353,6 @@ missing packages.
This section describes the special steps needed to set up a machine to
run the LinuxCNC programs, including the tests.
-
=== Increase the locked memory limit
LinuxCNC tries to improve its realtime latency by locking the memory it
@@ -391,7 +391,6 @@ the memory lock limit is raised using the following command:
> ulimit -l
-----
-
== Options for checking out the git repo
The <> instructions at the top of this
@@ -399,7 +398,6 @@ document clone our git repo at
https://github.com/LinuxCNC/linuxcnc.git. This is the quickest, easiest
way to get started. However, there are other options to consider.
-
=== Fork us on Github
The LinuxCNC project git repo is at http://github.com/LinuxCNC/linuxcnc.
@@ -414,3 +412,5 @@ We of the LinuxCNC project hope that you will share your changes with
us, so that the community can benefit from your work. Github makes this
sharing very easy: after you polish your changes and push them to your
github fork, send us a Pull Request.
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/building-linuxcnc_es.adoc b/docs/src/code/building-linuxcnc_es.adoc
index 29fb0eda2e1..e6ff4d26993 100644
--- a/docs/src/code/building-linuxcnc_es.adoc
+++ b/docs/src/code/building-linuxcnc_es.adoc
@@ -11,7 +11,6 @@ un usuario que está probando ramas de desarrollo, aunque también se tiene
la opción de instalar paquetes unicos Debian desde buildboot:
http://buildbot.linuxcnc.org
-
[[Quick-Start]]
=== Inicio rápido
@@ -48,7 +47,6 @@ Después de haber compilado con éxito LinuxCNC, es hora de ejecutar las pruebas
¡Esto también podría fallar!. Lea todo este documento, pero especialmente la sección.
en <>.
-
== Plataformas compatibles
El proyecto LinuxCNC apunta a distribuciones modernas basadas en Debian, que incluyen
@@ -61,7 +59,6 @@ LinuxCNC compila en la mayoría de las otras distribuciones de Linux, aunque la
de dependencias será más manual. Siempre son bienvenidos parches para mejorar
la portabilidad a nuevas plataformas .
-
=== Realtime
LinuxCNC es un controlador de máquina herramienta, y requiere una plataforma en tiempo real
@@ -93,7 +90,6 @@ partes, ejecute este comando adicional después del `make` que construye LinuxCN
> sudo make setuid
-----
-
=== Sin Tiempo Real
LinuxCNC también se puede construir y ejecutar en plataformas que no son de tiempo real, como
@@ -109,7 +105,6 @@ tipos de componentes y controladores de dispositivos).
Hay dos formas de tener LinuxCNCen una maquina: "ejecución en
el sitio” (run-in-place o RIP, el modo de mayor libertad) y el modo “empaquetado Debian”, fácil de usar para el usuario (pero difícilmente modificable).
-
=== Compilacion Run-In-Place
En una compilación Run-In-Place, los programas LinuxCNC se compilan desde las fuentes
@@ -245,7 +240,6 @@ el directorio `linuxcnc-dev`, *no* desde `linuxcnc-dev/debian`):
> dpkg-buildpackage -b -uc
-----
-
[[debian-configure-arguments]]
==== Argumentos `debian/configure`
@@ -294,7 +288,6 @@ Los valores normales para este argumento son:
kernel RTAI coincidente, no podrá ejecutar LinuxCNC, incluyendo
el conjunto de pruebas.
-
[[Satisfying-Build-Dependencies]]
== Satisfacer Dependencias de Construcción
@@ -338,14 +331,12 @@ en su sistema, pero que aún no están instalados. Instalelos todos con
Puede volver a ejecutar `dpkg-checkbuilddeps`, en el momento que desee, para enumerar cualquier
paquete faltante.
-
[[Setting-up-the-environment]]
== Configuración del entorno
Esta sección describe los pasos especiales necesarios para configurar una máquina para
ejecutar los programas LinuxCNC, incluidas las pruebas.
-
=== Aumentar el límite de memoria bloqueada
LinuxCNC intenta mejorar su latencia en tiempo real bloqueando la memoria que
@@ -384,7 +375,6 @@ que el límite de bloqueo de memoria se aumentó con el siguiente comando:
> ulimit -l
-----
-
== Opciones para ver el repositorio de git
Las instrucciones <> en la parte superior de este
@@ -408,3 +398,4 @@ la comunidad pueda beneficiarse de su trabajo. Github hace que
compartir sea muy fácil; después de pulir sus cambios y añadirlos a su
bifurcacion github, envíenos una solicitud de extracción.
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/code-notes.adoc b/docs/src/code/code-notes.adoc
index b022366dce2..363fb1aa93f 100644
--- a/docs/src/code/code-notes.adoc
+++ b/docs/src/code/code-notes.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Code Notes
== Intended audience
@@ -17,48 +19,48 @@ very much a work in progress, and its layout may change in the future.
== Terms and definitions
* 'AXIS' - An axis is one of the nine degrees of freedom that define a tool
- position in three-dimensional Cartesian space. Those nine axes are
- referred to as X, Y, Z, A, B, C, U, V, and W. The linear orthogonal
- coordinates X, Y, and Z determine where the tip of the tool is
- positioned. The angular coordinates A, B, and C determine the tool
- orientation. A second set of linear orthogonal coordinates U, V, and W
- allows tool motion (typically for cutting actions) relative to the
- previously offset and rotated axes.
- Unfortunately “axis” 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 'joints', not axes. (The GUIs and some other parts of
- the code may not always follow this distinction, but the internals of
- the motion controller do.)
+ position in three-dimensional Cartesian space. Those nine axes are
+ referred to as X, Y, Z, A, B, C, U, V, and W. The linear orthogonal
+ coordinates X, Y, and Z determine where the tip of the tool is
+ positioned. The angular coordinates A, B, and C determine the tool
+ orientation. A second set of linear orthogonal coordinates U, V, and W
+ allows tool motion (typically for cutting actions) relative to the
+ previously offset and rotated axes.
+ Unfortunately "axis" 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 'joints', not axes. (The GUIs and some other parts of
+ the code may not always follow this distinction, but the internals of
+ the motion controller do.)
* '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 LinuxCNC, 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 'joint' and
- 'axis' 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 'axis' for data that would more accurately
- be described as joint data, such as input and output scaling, etc.
+ distinct from axes, although the two terms are sometimes (mis)used to
+ mean the same thing. In LinuxCNC, 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 'joint' and
+ 'axis' 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 'axis' for data that would more accurately
+ be described as joint data, such as input and output scaling, etc.
* 'POSE' - A pose is a fully specified position in 3-D Cartesian space. In
- the LinuxCNC motion controller, when we refer to a pose we mean an
- EmcPose structure, containing six linear coordinates (X, Y, Z, U,
- V, and W) and three angular ones (A, B, and C).
+ the LinuxCNC motion controller, when we refer to a pose we mean an
+ EmcPose structure, containing six linear coordinates (X, Y, Z, U,
+ V, and W) and three angular ones (A, B, and C).
== Architecture overview
@@ -707,7 +709,6 @@ 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.
-
== Backlash and Screw Error Compensation
+
@@ -723,29 +724,25 @@ image::task-state-transitions.svg[align="center"]
== IO controller (EMCIO)
-The I/O Controller is separate module that accepts NML commands from TASK. +
-It interacts with external I/O using HAL pins. +
-iocontrol.cc is loaded via the linuxcnc script before TASK is. +
-There are currently two versions of iocontrol. The second version handles toolchange hardware errors +
- +
+The I/O Controller is separate module that accepts NML commands from TASK.
+It interacts with external I/O using HAL pins.
+iocontrol.cc is loaded via the linuxcnc script before TASK is.
+There are currently two versions of iocontrol. The second version handles toolchange hardware errors.
-Currently ESTOP/Enable, coolant, lube, and tool changing are handled by +
-iocontrol. These are relatively low speed events, high speed coordinated I/O is handled in motion. +
- +
+Currently ESTOP/Enable, coolant, lube, and tool changing are handled by
+iocontrol. These are relatively low speed events, high speed coordinated I/O is handled in motion.
-emctaskmain.cc sends I/O commands via taskclass.cc +
-Taskclass's functions send NML messages out to iocontrol.cc +
-taskclass either uses the commands defined in c++ in it's file or, +
-if defined, runs python based commands defined in files provided by the user. +
- +
+emctaskmain.cc sends I/O commands via taskclass.cc
+Taskclass's functions send NML messages out to iocontrol.cc
+taskclass either uses the commands defined in c++ in it's file or,
+if defined, runs python based commands defined in files provided by the user.
iocontrol main loop process:
-- registers for SIGTERM and SIGINT signals from the OS. +
-- checks to see it HAL inputs have changed +
-- checks if read_tool_inputs() indicates the tool change is finished and set emcioStatus.status +
-- checks for I/O related NML messages +
- +
+- registers for SIGTERM and SIGINT signals from the OS.
+- checks to see it HAL inputs have changed
+- checks if read_tool_inputs() indicates the tool change is finished and set emcioStatus.status
+- checks for I/O related NML messages
nml message numbers: from emc.hh:
@@ -872,7 +869,7 @@ and rcslib code.
Much of this needs to be edited and re-written in a coherent manner
before publication.
-///////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
== Configuration file format
@@ -891,7 +888,7 @@ The original NIST format of the buffer line is:
* 'host' - is either an IP address or host name for the NML server
* 'size' - is the size of the buffer
* 'neut' - a boolean to indicate if the data in the buffer is encoded in a
- machine independent format, or raw.
+ machine independent format, or raw.
* 'RPC#' - Obsolete - Place holder retained for backward compatibility only.
* 'buffer#' - A unique ID number used if a server controls multiple buffers.
* 'max_procs' - is the maximum processes allowed to connect to this buffer.
@@ -909,16 +906,16 @@ buffer type will be covered.
* 'mutex=no_interrupts' - not applicable on a Linux system
* 'mutex=no_switching' - not applicable on a Linux system
* '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.
+ one process to access part of the buffer whilst a second process is
+ writing to another part.
* 'TCP=(port number)' - Specifies which network port to use.
* 'UDP=(port number)' - ditto
* 'STCP=(port number)' - ditto
* 'serialPortDevName=(serial port)' - Undocumented.
* 'passwd=file_name.pwd' - Adds a layer of security to the buffer by
- requiring each process to provide a password.
+ requiring each process to provide a password.
* 'bsem' - NIST documentation implies a key for a blocking semaphore,
- and if bsem=-1, blocking reads are prevented.
+ and if bsem=-1, blocking reads are prevented.
* 'queue' - Enables queued message passing.
* 'ascii' - Encode messages in a plain text format
* 'disp' - Encode messages in a format suitable for display (???)
@@ -971,8 +968,8 @@ 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.
-The mutex types boil down to one of two, the default “os_sem” or “mao
-split”. Most of the NML messages are relatively short and can be copied
+The mutex types boil down to one of two, the default "os_sem" or "mao
+split". 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.
@@ -1099,14 +1096,12 @@ 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.
-
== The Tool Table and Toolchanger
LinuxCNC interfaces with toolchanger hardware, and has an internal
toolchanger abstraction. LinuxCNC manages tool information in a tool
table file.
-
=== Toolchanger abstraction in LinuxCNC
LinuxCNC supports two kinds of toolchanger hardware,
@@ -1114,7 +1109,6 @@ called _nonrandom_ and _random_. The ini setting
<> controls which of
these kinds of hardware LinuxCNC thinks it's connected to.
-
==== Nonrandom Toolchangers
Nonrandom toolchanger hardware puts each tool back in the pocket it was
@@ -1169,12 +1163,12 @@ tool number::
nonrandom toolchangers:
* When LinuxCNC is configured for a nonrandom toolchanger this
- number must be positive. T0 gets special handling and is not
- allowed to appear in the tool table.
+ number must be positive. T0 gets special handling and is not
+ allowed to appear in the tool table.
* When LinuxCNC is configured for a random toolchanger this number
- must be non-negative. T0 is allowed in the tool table, and is
- usually used to represent "no tool", ie the empty pocket.
+ must be non-negative. T0 is allowed in the tool table, and is
+ usually used to represent "no tool", ie the empty pocket.
pocket number::
@@ -1184,15 +1178,15 @@ pocket number::
toolchangers:
* When LinuxCNC is configured for a nonrandom toolchanger, the pocket
- number in the tool file can be any positive integer (pocket
- 0 is not allowed). LinuxCNC silently compactifies the pocket
- numbers when it loads the tool file, so there may be a difference
- between the pocket numbers in the tool file and the internal
- pocket numbers used by LinuxCNC-with-nonrandom-toolchanger.
+ number in the tool file can be any positive integer (pocket
+ 0 is not allowed). LinuxCNC silently compactifies the pocket
+ numbers when it loads the tool file, so there may be a difference
+ between the pocket numbers in the tool file and the internal
+ pocket numbers used by LinuxCNC-with-nonrandom-toolchanger.
* When LinuxCNC is configured for a random toolchanger, the pocket
- numbers in the tool file must be between 0 and 1000, inclusive.
- Pockets 1-1000 are in the toolchanger, pocket 0 is the spindle.
+ numbers in the tool file must be between 0 and 1000, inclusive.
+ Pockets 1-1000 are in the toolchanger, pocket 0 is the spindle.
diameter::
@@ -1203,12 +1197,10 @@ tool length offset::
Tool length offset (also called TLO), in up to 9 axes, in machine
units. Axes that don't have a specified TLO get 0.
-
=== G-codes affecting tools
The G-codes that use or affect tool information are:
-
==== Txxx
Tells the toolchanger hardware to prepare to switch to a specified
@@ -1216,25 +1208,25 @@ tool +xxx+.
Handled by +Interp::convert_tool_select()+.
-. The machine is asked to prepare to switch to the selected tool by
- calling the Canon function +SELECT_TOOL()+ with the tool number
- of the requested tool.
+. The machine is asked to prepare to switch to the selected tool by
+ calling the Canon function +SELECT_TOOL()+ with the tool number
+ of the requested tool.
- .. (saicanon) No-op.
+ .. (saicanon) No-op.
- .. (emccanon) Builds an +EMC_TOOL_PREPARE+ message with the requested
- pocket number and sends it to Task, which sends it on
- to IO. IO gets the message and asks HAL to prepare
- the pocket by setting +iocontrol.0.tool-prep-pocket+,
- +iocontrol.0.tool-prep-number+, and +iocontrol.0.tool-prepare+.
- IO then repeatedly calls +read_tool_inputs()+ to poll the HAL pin
- +iocontrol.0.tool-prepared+, which signals from the toolchanger
- hardware, via HAL, to IO that the requested tool prep is complete.
- When that pin goes True, IO sets +emcioStatus.tool.pocketPrepped+
- to the requested tool's pocket number.
+ .. (emccanon) Builds an +EMC_TOOL_PREPARE+ message with the requested
+ pocket number and sends it to Task, which sends it on
+ to IO. IO gets the message and asks HAL to prepare
+ the pocket by setting +iocontrol.0.tool-prep-pocket+,
+ +iocontrol.0.tool-prep-number+, and +iocontrol.0.tool-prepare+.
+ IO then repeatedly calls +read_tool_inputs()+ to poll the HAL pin
+ +iocontrol.0.tool-prepared+, which signals from the toolchanger
+ hardware, via HAL, to IO that the requested tool prep is complete.
+ When that pin goes True, IO sets +emcioStatus.tool.pocketPrepped+
+ to the requested tool's pocket number.
-. Back in interp, +settings->selected_pocket+ is assigned the tooldata
- index of the requested tool _xxx_.
+. Back in interp, +settings->selected_pocket+ is assigned the tooldata
+ index of the requested tool _xxx_.
[NOTE]
The legacy names *selected_pocket* and *current_pocket* actually reference
@@ -1248,39 +1240,39 @@ by the previous Txxx command).
Handled by +Interp::convert_tool_change()+.
-. The machine is asked to change to the selected tool
- by calling the Canon function +CHANGE_TOOL()+ with
- +settings->selected_pocket+ (a tooldata index).
-
- .. (saicanon) Sets sai's +_active_slot+ to the passed-in pocket
- number. Tool information is copied from the selected pocket
- of of the tool table (ie, from sai's +_tools[_active_slot]+)
- to the spindle (aka sai's +_tools[0]+).
-
- .. (emccanon) Sends an +EMC_TOOL_LOAD+ message to Task, which
- sends it to IO. IO sets +emcioStatus.tool.toolInSpindle+
- to the tool number of the tool in the pocket identified
- by +emcioStatus.tool.pocketPrepped+ (set by +Txxx+
- aka +SELECT_TOOL()+). It then requests that the
- toolchanger hardware perform a tool change, by setting
- the HAL pin +iocontrol.0.tool-change+ to True. Later,
- IO's +read_tool_inputs()+ will sense that the HAL pin
- +iocontrol.0.tool_changed+ has been set to True, indicating the
- toolchanger has completed the tool change. When this happens,
- it calls +load_tool()+ to update the machine state.
-
- ... +load_tool()+ with a nonrandom toolchanger
- config copies the tool information from the selected pocket
- to the spindle (pocket 0).
-
- ... +load_tool()+ with a random toolchanger config swaps tool
- information between pocket 0 (the spindle) and the selected
- pocket, then saves the tool table.
-
-. Back in interp, +settings->current_pocket+ is assigned the new
- tooldata index from +settings->selected_pocket+ (set by +Txxx+). The relevant
- numbered parameters (<>) are
- updated with the new tool information from pocket 0 (spindle).
+. The machine is asked to change to the selected tool
+ by calling the Canon function +CHANGE_TOOL()+ with
+ +settings->selected_pocket+ (a tooldata index).
+
+ .. (saicanon) Sets sai's +_active_slot+ to the passed-in pocket
+ number. Tool information is copied from the selected pocket
+ of of the tool table (ie, from sai's +_tools[_active_slot]+)
+ to the spindle (aka sai's +_tools[0]+).
+
+ .. (emccanon) Sends an +EMC_TOOL_LOAD+ message to Task, which
+ sends it to IO. IO sets +emcioStatus.tool.toolInSpindle+
+ to the tool number of the tool in the pocket identified
+ by +emcioStatus.tool.pocketPrepped+ (set by +Txxx+
+ aka +SELECT_TOOL()+). It then requests that the
+ toolchanger hardware perform a tool change, by setting
+ the HAL pin +iocontrol.0.tool-change+ to True. Later,
+ IO's +read_tool_inputs()+ will sense that the HAL pin
+ +iocontrol.0.tool_changed+ has been set to True, indicating the
+ toolchanger has completed the tool change. When this happens,
+ it calls +load_tool()+ to update the machine state.
+
+ ... +load_tool()+ with a nonrandom toolchanger
+ config copies the tool information from the selected pocket
+ to the spindle (pocket 0).
+
+ ... +load_tool()+ with a random toolchanger config swaps tool
+ information between pocket 0 (the spindle) and the selected
+ pocket, then saves the tool table.
+
+. Back in interp, +settings->current_pocket+ is assigned the new
+ tooldata index from +settings->selected_pocket+ (set by +Txxx+). The relevant
+ numbered parameters (<>) are
+ updated with the new tool information from pocket 0 (spindle).
==== G43/G43.1/G49
@@ -1292,26 +1284,26 @@ the offset for all axes).
Handled by +Interp::convert_tool_length_offset()+.
-. It starts by building an +EmcPose+ containing the 9-axis offsets
- to use. For +G43.1+, these tool offsets come from axis words in the
- current block. For +G43+ these offsets come from the current tool
- (the tool in pocket 0), or from the tool specified by the H-word in
- the block. For G49, the offsets are all 0.
+. It starts by building an +EmcPose+ containing the 9-axis offsets
+ to use. For +G43.1+, these tool offsets come from axis words in the
+ current block. For +G43+ these offsets come from the current tool
+ (the tool in pocket 0), or from the tool specified by the H-word in
+ the block. For G49, the offsets are all 0.
-. The offsets are passed to Canon's +USE_TOOL_LENGTH_OFFSET()+ function.
+. The offsets are passed to Canon's +USE_TOOL_LENGTH_OFFSET()+ function.
- .. (saicanon) Records the TLO in +_tool_offset+.
+ .. (saicanon) Records the TLO in +_tool_offset+.
- .. (emccanon) Builds an +EMC_TRAJ_SET_OFFSET+ message containing the
- offsets and sends it to Task. Task copies the offsets to
- +emcStatus->task.toolOffset+ and sends them on to Motion via
- an +EMCMOT_SET_OFFSET+ command. Motion copies the offsets
- to +emcmotStatus->tool_offset+, where it gets used to offset
- future motions.
+ .. (emccanon) Builds an +EMC_TRAJ_SET_OFFSET+ message containing the
+ offsets and sends it to Task. Task copies the offsets to
+ +emcStatus->task.toolOffset+ and sends them on to Motion via
+ an +EMCMOT_SET_OFFSET+ command. Motion copies the offsets
+ to +emcmotStatus->tool_offset+, where it gets used to offset
+ future motions.
-. Back in interp, the offsets are recorded in +settings->tool_offset+.
- The effective pocket is recorded in +settings->tool_offset_index+,
- though this value is never used.
+. Back in interp, the offsets are recorded in +settings->tool_offset+.
+ The effective pocket is recorded in +settings->tool_offset_index+,
+ though this value is never used.
==== G10 L1/L10/L11
@@ -1320,60 +1312,59 @@ Modifies the tool table.
Handled by +Interp::convert_setup_tool()+.
-. Picks the tool number out of the P-word in the block and finds the
- pocket for that tool:
-
- .. With a nonrandom toolchanger config this is always the
- pocket number in the toolchanger (even when the tool is in
- the spindle).
-
- .. With a random toolchanger config, if the tool is currently
- loaded it uses pocket 0 (pocket 0 means "the spindle"),
- and if the tool is not loaded it uses the pocket number in
- the tool changer. (This difference is important.)
-
-. Figures out what the new offsets should be.
-
-. The new tool information (diameter, offsets, angles, and orientation),
- along with the tool number and pocket number, are passed to the Canon
- call SET_TOOL_TABLE_ENTRY().
-
- .. (saicanon) Copy the new tool information to the specified pocket
- (in sai's internal tool table, +_tools+).
-
- .. (emccanon) Build an +EMC_TOOL_SET_OFFSET+ message with the new
- tool information, and send it to Task, which passes it
- to IO. IO updates the specified pocket in its internal
- copy of the tool table (+emcioStatus.tool.toolTable+), and
- if the specified tool is currently loaded (it is compared to
- +emcioStatus.tool.toolInSpindle+) then the new tool information
- is copied to pocket 0 (the spindle) as well. (FIXME: that's a
- buglet, should only be copied on nonrandom machines.) Finally IO
- saves the new tool table.
-
-. Back in interp, if the modified tool is currently loaded in the
- spindle, and if the machine is a non-random toolchanger, then
- the new tool information is copied from the tool's home pocket
- to pocket 0 (the spindle) in interp's copy of the tool table,
- +settings->tool_table+. (This copy is not needed on random tool
- changer machines because there, tools don't have a home pocket and
- instead we just updated the tool in pocket 0 directly.)
-
-. The relevant numbered parameters
- (<>) are updated from the tool
- information in the spindle (by copying the information from interp's
- +settings->tool_table+ to +settings->parameters+). (FIXME: this is
- a buglet, the params should only be updated if it was the current
- tool that was modified).
-
-. If the modified tool is currently loaded in the
- spindle, and if the config is for a nonrandom toolchanger, then the
- new tool information is written to the tool table's pocket 0 as well,
- via a second call to SET_TOOL_TABLE_ENTRY(). (This second tool-table
- update is not needed on random toolchanger machines because there,
- tools don't have a home pocket and instead we just updated the tool
- in pocket 0 directly.)
-
+. Picks the tool number out of the P-word in the block and finds the
+ pocket for that tool:
+
+ .. With a nonrandom toolchanger config this is always the
+ pocket number in the toolchanger (even when the tool is in
+ the spindle).
+
+ .. With a random toolchanger config, if the tool is currently
+ loaded it uses pocket 0 (pocket 0 means "the spindle"),
+ and if the tool is not loaded it uses the pocket number in
+ the tool changer. (This difference is important.)
+
+. Figures out what the new offsets should be.
+
+. The new tool information (diameter, offsets, angles, and orientation),
+ along with the tool number and pocket number, are passed to the Canon
+ call SET_TOOL_TABLE_ENTRY().
+
+ .. (saicanon) Copy the new tool information to the specified pocket
+ (in sai's internal tool table, +_tools+).
+
+ .. (emccanon) Build an +EMC_TOOL_SET_OFFSET+ message with the new
+ tool information, and send it to Task, which passes it
+ to IO. IO updates the specified pocket in its internal
+ copy of the tool table (+emcioStatus.tool.toolTable+), and
+ if the specified tool is currently loaded (it is compared to
+ +emcioStatus.tool.toolInSpindle+) then the new tool information
+ is copied to pocket 0 (the spindle) as well. (FIXME: that's a
+ buglet, should only be copied on nonrandom machines.) Finally IO
+ saves the new tool table.
+
+. Back in interp, if the modified tool is currently loaded in the
+ spindle, and if the machine is a non-random toolchanger, then
+ the new tool information is copied from the tool's home pocket
+ to pocket 0 (the spindle) in interp's copy of the tool table,
+ +settings->tool_table+. (This copy is not needed on random tool
+ changer machines because there, tools don't have a home pocket and
+ instead we just updated the tool in pocket 0 directly.)
+
+. The relevant numbered parameters
+ (<>) are updated from the tool
+ information in the spindle (by copying the information from interp's
+ +settings->tool_table+ to +settings->parameters+). (FIXME: this is
+ a buglet, the params should only be updated if it was the current
+ tool that was modified).
+
+. If the modified tool is currently loaded in the
+ spindle, and if the config is for a nonrandom toolchanger, then the
+ new tool information is written to the tool table's pocket 0 as well,
+ via a second call to SET_TOOL_TABLE_ENTRY(). (This second tool-table
+ update is not needed on random toolchanger machines because there,
+ tools don't have a home pocket and instead we just updated the tool
+ in pocket 0 directly.)
==== M61
@@ -1388,7 +1379,6 @@ Canon: +CHANGE_TOOL_NUMBER()+
settings->current_pocket is assigned the tooldata index currently
holding the tool specified by the Q-word argument.
-
==== G41/G41.1/G42/G42.1
Enable cutter radius compensation (usually called _cutter comp_).
@@ -1400,7 +1390,6 @@ table in the expected way: if a D-word tool number is supplied it looks
up the pocket number of the specified tool number in the table, and if
no D-word is supplied it uses pocket 0 (the spindle).
-
==== G40
Cancel cutter radius compensation.
@@ -1410,13 +1399,11 @@ Handled by +Interp::convert_cutter_compensation_off()+.
No Canon call, cutter comp happens in the interpreter. Does not use
the tool table.
-
=== Internal state variables
This is not an exhaustive list! Tool information is spread through
out LinuxCNC.
-
==== IO
+emcioStatus+ is of type +EMC_IO_STAT+
@@ -1443,7 +1430,6 @@ emcioStatus.tool.toolTable[]::
of the tool information, maintained separately from Interp's
+settings.tool_table+.
-
==== interp
+settings+ is of type +settings+, which is +struct setup_struct+.
@@ -1493,10 +1479,10 @@ settings.tool_offset::
* Used to compute position in various places.
* Sent to Motion via the +EMCMOT_SET_OFFSET+ message.
- All motion does with the offsets is export them to the HAL pins
- +motion.0.tooloffset.[xyzabcuvw]+. FIXME: export these from
- someplace closer to the tool table (io or interp, probably)
- and remove the EMCMOT_SET_OFFSET message.
+ All motion does with the offsets is export them to the HAL
+ pins +motion.0.tooloffset.[xyzabcuvw]+. FIXME: export these from
+ someplace closer to the tool table (io or interp, probably)
+ and remove the EMCMOT_SET_OFFSET message.
settings.pockets_max::
@@ -1522,7 +1508,6 @@ settings.tool_change_with_spindle_on::
These are set from ini variables in the +[EMCIO]+ section, and
control how tool changes are performed.
-
== Reckoning of joints and axes
=== In the status buffer
@@ -1575,7 +1560,6 @@ a bug, see the treatment of axes in src/emc/ini/initraj.cc:loadTraj().
There are undoubtedly more, and I need your help to find them and
fix them.
-
=== In Motion
The Motion controller realtime component first gets the number of joints
@@ -1587,3 +1571,5 @@ Motion's number of joints can be changed at runtime using the
The Motion controller always operates on `EMCMOT_MAX_AXIS` axes.
It always creates nine sets of `axis.*.*` pins.
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/code-notes_es.adoc b/docs/src/code/code-notes_es.adoc
index 0e283dc8f85..8e467cac8a2 100644
--- a/docs/src/code/code-notes_es.adoc
+++ b/docs/src/code/code-notes_es.adoc
@@ -1,6 +1,6 @@
-[[cha:code-notes]]
:lang: es
+[[cha:code-notes]]
= Notas sobre el código
== Audiencia
@@ -20,71 +20,71 @@ un trabajo en progreso y su diseño puede cambiar en el futuro.
== Términos y definiciones
* 'EJE': un eje es uno de los nueve grados de libertad que define la posición
- de una herramienta en el espacio cartesiano tridimensional. Los nueve ejes son
- referidos como X, Y, Z, A, B, C, U, V y W. Las coordenadas lineales ortogonales
- X, Y y Z determinan dónde está posicionada la punta de la herramienta.
- Las coordenadas angulares A, B y C determinan la orientación de la herramienta.
- Un segundo conjunto de coordenadas lineales ortogonales U, V y W
- permite el movimiento de la herramienta (generalmente para acciones de corte) en relación con los
- ejes previamente desplazados y rotados.
- Lamentablemente, "eje" se usa a veces para significar un grado de libertad de la máquina en sí,
- como los carros longitudinal y transversal o el avance fino del husillo de una fresadora vertical.
- En estas maquinas, esto no causa confusión ya que, por ejemplo, el movimiento de la mesa
- corresponde directamente al movimiento a lo largo del eje X. Sin embargo, las
- articulaciones de hombro y codo de un brazo robótico y los actuadores lineales de un
- hexápodo no se corresponde al movimiento a lo largo de ningún eje cartesiano y en
- en general es importante hacer la distinción entre el eje cartesiano
- y grados de libertad de la máquina. En este documento, esto último
- se llamarán 'articulaciones', no ejes. (Las GUI y algunas otras partes de
- el código no siempre sigue esta distinción, pero las partes internas de
- el controlador de movimiento si lo hacen.)
+ de una herramienta en el espacio cartesiano tridimensional. Los nueve ejes son
+ referidos como X, Y, Z, A, B, C, U, V y W. Las coordenadas lineales ortogonales
+ X, Y y Z determinan dónde está posicionada la punta de la herramienta.
+ Las coordenadas angulares A, B y C determinan la orientación de la herramienta.
+ Un segundo conjunto de coordenadas lineales ortogonales U, V y W
+ permite el movimiento de la herramienta (generalmente para acciones de corte) en relación con los
+ ejes previamente desplazados y rotados.
+ Lamentablemente, "eje" se usa a veces para significar un grado de libertad de la máquina en sí,
+ como los carros longitudinal y transversal o el avance fino del husillo de una fresadora vertical.
+ En estas maquinas, esto no causa confusión ya que, por ejemplo, el movimiento de la mesa
+ corresponde directamente al movimiento a lo largo del eje X. Sin embargo, las
+ articulaciones de hombro y codo de un brazo robótico y los actuadores lineales de un
+ hexápodo no se corresponde al movimiento a lo largo de ningún eje cartesiano y en
+ en general es importante hacer la distinción entre el eje cartesiano
+ y grados de libertad de la máquina. En este documento, esto último
+ se llamarán 'articulaciones', no ejes. (Las GUI y algunas otras partes de
+ el código no siempre sigue esta distinción, pero las partes internas de
+ el controlador de movimiento si lo hacen.)
* 'ARTICULACIÓN': una articulación es cada una de las partes móviles de la máquina. Las articulaciones son
- distintas de los ejes, aunque los dos términos a veces se usan (incorrectamente) para
- significa lo mismo. En LinuxCNC, una articulación es un objeto físico que puede ser
- movido, no una coordenada en el espacio. Por ejemplo, todos los carros, la palanca del husillo o un plato giratorio
- de una fresadora vertical son articulaciones. El hombro, el codo y
- la muñeca de un brazo robótico son articulaciones, al igual que los actuadores lineales de un
- hexápodo. Cada articulación tiene un motor o actuador de algún tipo asociado
- con ella. Las articulaciones no corresponden necesariamente a los ejes X, Y y Z,
- aunque para máquinas con cinemática trivial, puede ser el caso.
- Incluso en esas máquinas, la posición articular y la posición del eje son
- cosas inherentemente diferentes. En este documento, los términos 'articulación' y 'eje'
- se utilizan con cuidado para respetar sus distintos significados.
- Desafortunadamente, eso no es necesariamente cierto en ningún otro lado. En
- en particular, las GUI para máquinas con cinemática trivial pueden pasar por alto o
- oculta completamente la distinción entre articulaciones y ejes. Adicionalmente,
- el archivo ini usa el término 'eje' para datos que serían más precisos
- describirse como datos de articulaciones, como las escalas de entrada y salida, etc.
-
- N.T. En la version 2.8 de Linuxcnc ya se hace esta distinción.
- El archivo .ini cuenta con la nueva sección [JOINT_]. Muchos de los parámetros que antes
- eran propios de la sección [AXIS_] están ahora en la nueva sección. Otras secciones,
- como por ejemplo [KINS], también adquieren nuevos parámetros para ajustarse a esto.
- Se ha previsto un mecanismo para transformar archivos .ini antiguos a la nueva configuración
- ejes/articulaciones.
+ distintas de los ejes, aunque los dos términos a veces se usan (incorrectamente) para
+ significa lo mismo. En LinuxCNC, una articulación es un objeto físico que puede ser
+ movido, no una coordenada en el espacio. Por ejemplo, todos los carros, la palanca del husillo o un plato giratorio
+ de una fresadora vertical son articulaciones. El hombro, el codo y
+ la muñeca de un brazo robótico son articulaciones, al igual que los actuadores lineales de un
+ hexápodo. Cada articulación tiene un motor o actuador de algún tipo asociado
+ con ella. Las articulaciones no corresponden necesariamente a los ejes X, Y y Z,
+ aunque para máquinas con cinemática trivial, puede ser el caso.
+ Incluso en esas máquinas, la posición articular y la posición del eje son
+ cosas inherentemente diferentes. En este documento, los términos 'articulación' y 'eje'
+ se utilizan con cuidado para respetar sus distintos significados.
+ Desafortunadamente, eso no es necesariamente cierto en ningún otro lado. En
+ en particular, las GUI para máquinas con cinemática trivial pueden pasar por alto o
+ oculta completamente la distinción entre articulaciones y ejes. Adicionalmente,
+ el archivo ini usa el término 'eje' para datos que serían más precisos
+ describirse como datos de articulaciones, como las escalas de entrada y salida, etc.
+
+ N.T. En la version 2.8 de Linuxcnc ya se hace esta distinción.
+ El archivo .ini cuenta con la nueva sección [JOINT_]. Muchos de los parámetros que antes
+ eran propios de la sección [AXIS_] están ahora en la nueva sección. Otras secciones,
+ como por ejemplo [KINS], también adquieren nuevos parámetros para ajustarse a esto.
+ Se ha previsto un mecanismo para transformar archivos .ini antiguos a la nueva configuración
+ ejes/articulaciones.
* 'POSE'- una pose es una posición completamente especificada en un espacio cartesiano 3-D. En
- el controlador de movimiento LinuxCNC, cuando nos referimos a una pose nos referimos a una
- estructura EmcPose, que contiene seis coordenadas lineales (X, Y, Z, U,
- V y W) y tres angulares (A, B y C).
+ el controlador de movimiento LinuxCNC, cuando nos referimos a una pose nos referimos a una
+ estructura EmcPose, que contiene seis coordenadas lineales (X, Y, Z, U,
+ V y W) y tres angulares (A, B y C).
* 'coord', o modo coordinado, significa que todas las articulaciones están sincronizadas y se
- mueven juntas según lo ordenado por el código de nivel superior. Es el modo normal al mecanizar.
- En el modo coordinado, se supone que los comandos se dan en el marco de referencia cartesiano,
- y si la máquina no es cartesiana, los comandos son traducidos por la cinemática para impulsar
- cada articulación en el espacio articular según sea necesario.
+ mueven juntas según lo ordenado por el código de nivel superior. Es el modo normal al mecanizar.
+ En el modo coordinado, se supone que los comandos se dan en el marco de referencia cartesiano,
+ y si la máquina no es cartesiana, los comandos son traducidos por la cinemática para impulsar
+ cada articulación en el espacio articular según sea necesario.
* 'free', o modo libre, significa que los comandos se interpretan en el espacio articular.
- Se usa para mover manualmente (jog) articulaciones individuales, aunque no impide que se muevan
- múltiples articulaciones a la vez (creo).
- El homing también se realiza en modo libre; de hecho, las máquinas con cinemática no trivial
- deben ser homeadas antes de que puedan pasar al modo coord o teleop.
+ Se usa para mover manualmente (jog) articulaciones individuales, aunque no impide que se muevan
+ múltiples articulaciones a la vez (creo).
+ El homing también se realiza en modo libre; de hecho, las máquinas con cinemática no trivial
+ deben ser homeadas antes de que puedan pasar al modo coord o teleop.
* 'teleop' es el modo que probablemente necesite si está haciendo 'jogging' con un hexápodo.
- Los comandos de jog implementados por el controlador de movimiento son jogs articulares, que
- funcionan en modo free. Pero si desea mover un hexápodo o una máquina similar a lo largo de un
- eje cartesiano en particular, debe operar más de una articulación. Para eso está 'teleop'.
+ Los comandos de jog implementados por el controlador de movimiento son jogs articulares, que
+ funcionan en modo free. Pero si desea mover un hexápodo o una máquina similar a lo largo de un
+ eje cartesiano en particular, debe operar más de una articulación. Para eso está 'teleop'.
== Descripción general de la arquitectura
@@ -144,45 +144,45 @@ siete conjuntos de información de posición que forman el flujo principal de da
controlador de movimiento. Las siete formas de datos de posición son las siguientes:
. 'emcmotStatus\->carte_pos_cmd' - Esta es la posición deseada, en
- coordenadas cartesianas. Se actualiza a tasa traj, no a tasa servo.
- En modo coord, se determina por el planificador traj. En modo teleop, está
- determinado por el planificador traj?. En modo libre, es
- copiado de actualPos, o generado mediante la aplicación de cinemática directa a (2) o (3)
+ coordenadas cartesianas. Se actualiza a tasa traj, no a tasa servo.
+ En modo coord, se determina por el planificador traj. En modo teleop, está
+ determinado por el planificador traj?. En modo libre, es
+ copiado de actualPos, o generado mediante la aplicación de cinemática directa a (2) o (3)
. 'emcmotStatus\->joints[n].coarse_pos' - Esta es la posición deseada, en
- coordenadas articulares, pero antes de interpolación. Se actualiza a tasa traj,
- no a tasa servo. En modo coord, se genera aplicando
- cinematica inversa a (1). En modo teleop, se genera aplicando cinemática inversa a (1).
- En modo libre, creo que se copia de (3).
+ coordenadas articulares, pero antes de interpolación. Se actualiza a tasa traj,
+ no a tasa servo. En modo coord, se genera aplicando
+ cinematica inversa a (1). En modo teleop, se genera aplicando cinemática inversa a (1).
+ En modo libre, creo que se copia de (3).
. 'emcmotStatus\->joints[n].pos_cmd' - Esta es la posición deseada, en
- coordenadas articulares, después de interpolación. En cada período servo, se genera
- un nuevo conjunto de estas coordenadas. En modo coord, se genera a partir de (2)
- por el interpolador. En modo teleop, se genera a partir de (2) por el
- interpolador. En modo libre, es generado por el planificador traj de modo libre.
+ coordenadas articulares, después de interpolación. En cada período servo, se genera
+ un nuevo conjunto de estas coordenadas. En modo coord, se genera a partir de (2)
+ por el interpolador. En modo teleop, se genera a partir de (2) por el
+ interpolador. En modo libre, es generado por el planificador traj de modo libre.
. 'emcmotStatus\->joints[n].motor_pos_cmd' - Esta es la posición deseada,
- en coordenadas de motor. Las coordenadas del motor se generan agregando
- compensación backlash, compensación de error del tornillo de avance y offset (para homing) a
- (3). Se genera de la misma manera independientemente del modo, y es la
- salida al lazo PID u otro bucle de posición.
+ en coordenadas de motor. Las coordenadas del motor se generan agregando
+ compensación backlash, compensación de error del tornillo de avance y offset (para homing) a
+ (3). Se genera de la misma manera independientemente del modo, y es la
+ salida al lazo PID u otro bucle de posición.
. 'emcmotStatus\->joints[n].motor_pos_fb' - Esta es la posición real, en
- en coordenadas de motor. Es la entrada de codificadores u otro dispositivo de retroalimentación
- (o desde codificadores virtuales en máquinas de bucle abierto). Es "generado" por
- la lectura del dispositivo de retroalimentación.
+ en coordenadas de motor. Es la entrada de codificadores u otro dispositivo de retroalimentación
+ (o desde codificadores virtuales en máquinas de bucle abierto). Es "generado" por
+ la lectura del dispositivo de retroalimentación.
. 'emcmotStatus\->joints[n].pos_fb': esta es la posición real, en
- coordenadas articulares. Se genera restando offsets, compensación de error del tornillo de avance
- y compensación de backlash de (5). Se genera
- del mismo modo, independientemente del modo operativo.
+ coordenadas articulares. Se genera restando offsets, compensación de error del tornillo de avance
+ y compensación de backlash de (5). Se genera
+ del mismo modo, independientemente del modo operativo.
. 'emcmotStatus\->carte_pos_fb' - Esta es la posición real, en coordenadas cartesianas.
- Se actualiza a tasa traj, no a tasa servo.
- Idealmente, actualPos siempre se calcularía aplicando
- cinemática directa a (6). Sin embargo, la cinemática directa puede no estar disponible, o
- pueden ser inutilizable porque uno o más ejes no están homeados. En ese
- caso, las opciones son: A) fingirla, copiando (1), o B) admitir que
- realmente no se conocen las coordenadas cartesianas, y simplemente no actualizar
- actualPos. Cualquiera que sea el enfoque utilizado, no veo ninguna razón para no hacerlo
- de la misma manera, independientemente del modo de operación. Yo propondría lo
- siguiente; si hay cinemática directa, usarla, a menos que no funcionen
- debido a ejes sin home u otros problemas, en cuyo caso hacer (B). Si no hay cinemática directa,
- hacer (A), ya que de lo contrario actualPos _nunca_ obtendrá actualización.
+ Se actualiza a tasa traj, no a tasa servo.
+ Idealmente, actualPos siempre se calcularía aplicando
+ cinemática directa a (6). Sin embargo, la cinemática directa puede no estar disponible, o
+ pueden ser inutilizable porque uno o más ejes no están homeados. En ese
+ caso, las opciones son: A) fingirla, copiando (1), o B) admitir que
+ realmente no se conocen las coordenadas cartesianas, y simplemente no actualizar
+ actualPos. Cualquiera que sea el enfoque utilizado, no veo ninguna razón para no hacerlo
+ de la misma manera, independientemente del modo de operación. Yo propondría lo
+ siguiente; si hay cinemática directa, usarla, a menos que no funcionen
+ debido a ejes sin home u otros problemas, en cuyo caso hacer (B). Si no hay cinemática directa,
+ hacer (A), ya que de lo contrario actualPos _nunca_ obtendrá actualización.
== Homing
@@ -720,36 +720,31 @@ casi idéntico para cada parámetro.
=== Estado
-Task tiene tres estados internos posibles: *E-stop*, *E-stop Reset*,
-y *Machine on*.
+Task tiene tres estados internos posibles: *E-stop*, *E-stop Reset*, y *Machine on*.
image::task-state-transitions.svg[align="center"]
== Controlador IO (EMCIO)
-El controlador de E/S es un módulo separado que acepta comandos NML de TASK. +
-Interactúa con E/S externas utilizando pines HAL. +
-iocontrol.cc se carga a través del script linuxcnc antes de TASK. +
-Actualmente hay dos versiones de iocontrol. La segunda versión maneja los errores de hardware de cambio de herramienta +
- +
+El controlador de E/S es un módulo separado que acepta comandos NML de TASK.
+Interactúa con E/S externas utilizando pines HAL.
+iocontrol.cc se carga a través del script linuxcnc antes de TASK.
+Actualmente hay dos versiones de iocontrol. La segunda versión maneja los errores de hardware de cambio de herramienta
-Actualmente ESTOP/Enable, el refrigerante, el lubricante y el cambio de herramienta se manejan con +
-iocontrol. Estos son eventos de velocidad relativamente baja; las E/S coordinadas de alta velocidad se manejan en motion. +
- +
+Actualmente ESTOP/Enable, el refrigerante, el lubricante y el cambio de herramienta se manejan con
+iocontrol. Estos son eventos de velocidad relativamente baja; las E/S coordinadas de alta velocidad se manejan en motion.
-emctaskmain.cc envía comandos de E/S a través de taskclass.cc +
-Las funciones de Taskclass envían mensajes NML a iocontrol.cc +
-taskclass usa los comandos definidos en c ++ en su archivo o, +
-si está definido, ejecuta comandos basados en python definidos en archivos proporcionados por el usuario. +
- +
+emctaskmain.cc envía comandos de E/S a través de taskclass.cc
+Las funciones de Taskclass envían mensajes NML a iocontrol.cc
+taskclass usa los comandos definidos en c ++ en su archivo o,
+si está definido, ejecuta comandos basados en python definidos en archivos proporcionados por el usuario.
Proceso del bucle principal de iocontrol:
-- registros para señales SIGTERM y SIGINT del sistema operativo. +
-- comprueba si las entradas HAL han cambiado +
-- comprueba si read_tool_inputs() indica que el cambio de herramienta ha finalizado y establece emcioStatus.status +
-- busca mensajes NML relacionados con E/S +
- +
+- registros para señales SIGTERM y SIGINT del sistema operativo.
+- comprueba si las entradas HAL han cambiado
+- comprueba si read_tool_inputs() indica que el cambio de herramienta ha finalizado y establece emcioStatus.status
+- busca mensajes NML relacionados con E/S
números de mensaje nml: de emc.hh:
@@ -1568,7 +1563,6 @@ un error, vea el tratamiento de los ejes en src/emc/ini/initraj.cc: loadTraj ().
Indudablemente hay más, y necesito tu ayuda para encontrarlos y
arreglalos.
-
=== En motion
El componente en tiempo real del controlador de movimiento obtiene primero el número de uniones
@@ -1581,3 +1575,4 @@ Comando `EMCMOT_SET_NUM_JOINTS` de la tarea.
El controlador de movimiento siempre funciona en los ejes `EMCMOT_MAX_AXIS`.
Siempre crea nueve conjuntos de pines `axis. *. *`.
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/contributing-to-linuxcnc.adoc b/docs/src/code/contributing-to-linuxcnc.adoc
index 675e0197e2f..3886c8975a7 100644
--- a/docs/src/code/contributing-to-linuxcnc.adoc
+++ b/docs/src/code/contributing-to-linuxcnc.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Contributing to LinuxCNC
== Introduction
@@ -192,8 +194,8 @@ third commit, add a new feature which is made easier by the refactoring
and which would not have worked without fixing that bug.
This is helpful to reviewers, because it is easier to see that the
-"factor out code into new function" step was right when there aren’t
-other edits mixed in; it’s easier to see that the bug is fixed when
+"factor out code into new function" step was right when there aren't
+other edits mixed in; it's easier to see that the bug is fixed when
the change that fixes it is separate from the new feature; and so on.
=== Follow the style of the surrounding code
@@ -205,9 +207,9 @@ done, do it as a commit separate from any semantic changes.
=== Simplify complicated history before sharing with fellow developers
-With git, it’s possible to record every edit and false start as a
+With git, it's possible to record every edit and false start as a
separate commit. This is very convenient as a way to create checkpoints
-during development, but often you don’t want to share these false
+during development, but often you don't want to share these false
starts with others.
Git provides two main ways to clean history, both of which can be done
@@ -216,7 +218,7 @@ freely before you share the change:
`git commit --amend` lets you make additional changes to the last thing
you committed, optionally modifying the commit message as well. Use this
if you realized right away that you left something out of the commit,
-or if you typo’d the commit message.
+or if you typo'd the commit message.
`git rebase --interactive upstream-branch` lets you go back through each
commit made since you forked your feature branch from the upstream branch,
diff --git a/docs/src/code/contributing-to-linuxcnc_es.adoc b/docs/src/code/contributing-to-linuxcnc_es.adoc
index 5cb51696bd9..b801ad37327 100644
--- a/docs/src/code/contributing-to-linuxcnc_es.adoc
+++ b/docs/src/code/contributing-to-linuxcnc_es.adoc
@@ -226,4 +226,4 @@ Hay muchas formas de contribuir a LinuxCNC, que no se abordan en este documento.
* Ayudando a probar características experimentales
-
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/nml-messages.adoc b/docs/src/code/nml-messages.adoc
index 62d5e9ffdf7..8f405dce939 100644
--- a/docs/src/code/nml-messages.adoc
+++ b/docs/src/code/nml-messages.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= NML Messages
for details see src/emc/nml_intf/emc.hh
@@ -199,3 +201,5 @@ for details see src/emc/nml_intf/emc.hh
EMC_STAT_TYPE
EMC_EXEC_PLUGIN_CALL_TYPE
----
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/nml-messages_es.adoc b/docs/src/code/nml-messages_es.adoc
index d52e528a801..8a64b510a55 100644
--- a/docs/src/code/nml-messages_es.adoc
+++ b/docs/src/code/nml-messages_es.adoc
@@ -202,3 +202,5 @@ Para mas detalles, vea src/emc/nml_intf/emc.hh
EMC_STAT_TYPE
EMC_EXEC_PLUGIN_CALL_TYPE
----
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/rs274.adoc b/docs/src/code/rs274.adoc
index d7a63c1b0fc..b497033936a 100644
--- a/docs/src/code/rs274.adoc
+++ b/docs/src/code/rs274.adoc
@@ -1,5 +1,6 @@
-[[cha:rs274]]
+:lang: en
+[[cha:rs274]]
= Stand Alone Interpreter
The rs274 stand alone interpreter is available for use via the command line.
@@ -54,3 +55,5 @@ T3 P3 Z1.273 D0.201 ;#7 tap drill
----
rs274 -g test.ngc -t test.tbl
----
+
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/rs274_es.adoc b/docs/src/code/rs274_es.adoc
index 1cde9b472ca..10c8282d281 100644
--- a/docs/src/code/rs274_es.adoc
+++ b/docs/src/code/rs274_es.adoc
@@ -1,7 +1,6 @@
:lang: es
[[cha:rs274]]
-
= Intérprete independiente
El intérprete autónomo rs274 está disponible para su uso a través de la línea de comandos.
@@ -57,3 +56,4 @@ T3 P3 Z1.273 D0.201; taladro de rosca n°7
rs274 -g test.ngc -t test.tbl
----
+// vim: set syntax=asciidoc:
diff --git a/docs/src/code/style-guide.adoc b/docs/src/code/style-guide.adoc
index edbe44f105a..7137a1a4671 100644
--- a/docs/src/code/style-guide.adoc
+++ b/docs/src/code/style-guide.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Coding Style
This chapter describes the source code style preferred by the LinuxCNC team.
@@ -8,13 +10,13 @@ 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.
-Never check in code after running “indent” on it. The whitespace
+Never check in code after running "indent" on it. The whitespace
changes introduced by indent make it more difficult to follow the
revision history of the file.
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-wraps lines not otherwise modified)
+modified, or word-wraps lines not otherwise modified).
== Tab Stops
@@ -146,7 +148,7 @@ 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.
-== Shell Scripts & Makefiles
+== Shell Scripts & Makefiles
Not everyone has the same tools and packages installed. Some people
use vi, others emacs - A few even avoid having either package
diff --git a/docs/src/common/emc-history.adoc b/docs/src/common/emc-history.adoc
index 7f923e502e4..a9c0ea7ba30 100644
--- a/docs/src/common/emc-history.adoc
+++ b/docs/src/common/emc-history.adoc
@@ -1,5 +1,6 @@
-[[cha:linuxcnc-history]]
+:lang: en
+[[cha:linuxcnc-history]](((History)))
== Origin
EMC (the Enhanced Machine Controller) was created by
@@ -113,9 +114,8 @@ channels, and versions of the software and documentation since version
NIST published a paper describing the
https://www.nist.gov/node/704046[RS274NGC] language and the abstract
machining center it controls, as well as an early implementation of EMC.
-The paper is also available at http://linuxcnc.org/files/RS274NGCv3.pdf
+The paper is also available at http://linuxcnc.org/files/RS274NGCv3.pdf .
NIST also published a paper on the history of EMC and its
-transition to https://www.nist.gov/node/702276[open
-source]. The paper is also available at
+transition to https://www.nist.gov/node/702276[open source]. The paper is also available at
http://linuxcnc.org/files/Use-of-Open-Source-Distribution-for-a-Machine-Tool-Controller.pdf
diff --git a/docs/src/common/emc-history_es.adoc b/docs/src/common/emc-history_es.adoc
index 9405db57b69..ba5b31ae1a6 100644
--- a/docs/src/common/emc-history_es.adoc
+++ b/docs/src/common/emc-history_es.adoc
@@ -1,7 +1,6 @@
:lang: es
[[cha:linuxcnc-history]]
-
== Origen
EMC (controlador de máquina mejorado) fue creado por el
diff --git a/docs/src/common/glossary.adoc b/docs/src/common/glossary.adoc
index f1c1b109dfa..9b2c01e33bb 100644
--- a/docs/src/common/glossary.adoc
+++ b/docs/src/common/glossary.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Glossary
A listing of terms and what they mean. Some terms have a general
@@ -157,7 +159,7 @@ Feedrate Override::
(((feedrate override))) 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 “tweaked”.
+ anything else that requires the feed rate to be "tweaked".
Floating Point Number::
A number that has a decimal point. (12.300) In HAL it is known as float.
diff --git a/docs/src/common/Glossary_fr.adoc b/docs/src/common/glossary_fr.adoc
similarity index 100%
rename from docs/src/common/Glossary_fr.adoc
rename to docs/src/common/glossary_fr.adoc
diff --git a/docs/src/common/gpld-copyright.adoc b/docs/src/common/gpld-copyright.adoc
index baea67b1ba8..a982a7b2d0b 100644
--- a/docs/src/common/gpld-copyright.adoc
+++ b/docs/src/common/gpld-copyright.adoc
@@ -1,8 +1,12 @@
+:lang: en
+
= Legal Section
+Translations of this file provided in the source tree are not legally binding.
+
== Copyright Terms
-Copyright (c) 2000-2020 LinuxCNC.org
+Copyright (c) 2000-2022 LinuxCNC.org
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
diff --git a/docs/src/common/gpld-copyright_es.adoc b/docs/src/common/gpld-copyright_es.adoc
index 087e8ef6b57..37d0cc48373 100644
--- a/docs/src/common/gpld-copyright_es.adoc
+++ b/docs/src/common/gpld-copyright_es.adoc
@@ -1,3 +1,5 @@
+:lang: es
+
= Seccion Legal
N.T. Estos textos legales solo se muestra en Inglés ya que las traducciones no se reconocen oficialmente.
diff --git a/docs/src/common/GPLD_Copyright_fr.adoc b/docs/src/common/gpld-copyright_fr.adoc
similarity index 99%
rename from docs/src/common/GPLD_Copyright_fr.adoc
rename to docs/src/common/gpld-copyright_fr.adoc
index 187bfe81577..d817cbef5ee 100644
--- a/docs/src/common/GPLD_Copyright_fr.adoc
+++ b/docs/src/common/gpld-copyright_fr.adoc
@@ -1,3 +1,5 @@
+:lang: fr
+
= Legal Section
Ce document n'est pas traduit en raison de la complexité de la
diff --git a/docs/src/common/gpld-copyright_zh_CN.adoc b/docs/src/common/gpld-copyright_zh_CN.adoc
index baea67b1ba8..b86e091fc2f 100644
--- a/docs/src/common/gpld-copyright_zh_CN.adoc
+++ b/docs/src/common/gpld-copyright_zh_CN.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= Legal Section
== Copyright Terms
diff --git a/docs/src/common/Integrator_Concepts_fr.adoc b/docs/src/common/integrator-concepts_fr.adoc
similarity index 99%
rename from docs/src/common/Integrator_Concepts_fr.adoc
rename to docs/src/common/integrator-concepts_fr.adoc
index 9133f77eb77..1ecb16416f5 100644
--- a/docs/src/common/Integrator_Concepts_fr.adoc
+++ b/docs/src/common/integrator-concepts_fr.adoc
@@ -1,9 +1,8 @@
:lang: fr
:toc:
-= Concepts importants pour l'intégrateur
-
[[cha:concepts-integrateur]]
+= Concepts importants pour l'intégrateur
== Système pas à pas
diff --git a/docs/src/common/linux-faq.adoc b/docs/src/common/linux-faq.adoc
index c9035bec7ef..fdb6c7b3185 100644
--- a/docs/src/common/linux-faq.adoc
+++ b/docs/src/common/linux-faq.adoc
@@ -1,11 +1,33 @@
-[[cha:linux-faq]]
+:lang: en
-= Linux FAQ
+[[cha:linux-faq]]
+= Linux FAQ(((Linux FAQ)))
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.
+N.T. Debian Stretch usa por defecto el entorno de escritorio Xfce, con el gestor
+de pantallas lightDM. Para obtener acceso automatico con Stretch:
+
+* En un terminal, use el comando:
+
+----
+$ /usr/sbin/lightdm --show-config
+----
+
+* Anote el path absoluto del archivo de configuracion lightdm.conf.
+* Edite ese archivo con un editor de texto puro (gedit, nano, etc), como root.
+* Busque y descomente las lineas:
+
+----
+#autologin-user=
+#autologin-user-timeout=0
+----
+
+* Haga autologin-user=su_nombre_usuario
+* Guarde y reinicie.
+
== Automatic Login
When you install LinuxCNC with the Ubuntu LiveCD the default is to have to
@@ -16,13 +38,22 @@ 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).
+Ejemplo:
+
+----
+linuxcnc /home/mill/linuxcnc/config/mill/mill.ini
+----
+
+N.T. En Debian Stretch, vaya a 'Aplicaciones > Configuracion > Administrador de Configuracion > Sesion e Inicio'.
+En la pestaña 'Autoarranque de aplicaciones', use el boton 'Añadir'. De un nombre, una descripcion y una orden similar
+al ejemplo anterior. En el proximo reinicio, LinuxCNC arrancara automaticamente.
+
== Automatic Startup
To have LinuxCNC start automatically with your config after turning on the
computer go to 'System > Preferences > Sessions > Startup Applications',
click Add. Browse to your config and select the .ini file. When the file
-picker dialog closes, add linuxcnc and a space in front of the path to your
-.ini file.
+picker dialog closes, add linuxcnc and a space in front of the path to your .ini file.
Example:
@@ -31,18 +62,21 @@ linuxcnc /home/mill/linuxcnc/config/mill/mill.ini
----
[[faq:terminal]]
-
== Terminal
Many things need to be done from the terminal like checking the kernel message
-buffer with 'dmesg'. Ubuntu and Linux Mint have a keyboard shortcut Ctrl + Alt
-+ t. Most modern file managers support the right key to open a terminal just
+buffer with 'dmesg'. Ubuntu and Linux Mint have a keyboard shortcut Ctrl + Alt + t.
+Most modern file managers support the right key to open a terminal just
make sure your right clicking on a blank area or a directory not a file name.
Most OS's have the terminal as a menu item, usually in Accessories.
+N.T. Debian Stretch no tiene definido ningun atajo de teclado. Se puede crear facilmente
+con el 'Administrador de Configuracion'.
-[[faq:man-pages]]
+La mayoría de los sistemas operativos tienen el terminal como elemento de menú,
+generalmente en 'Accesorios'.
-== Man Pages
+[[faq:man-pages]]
+== Man Pages(((Man Pages)))
A man page (short for manual page) is a form of software documentation
usually found on a Unix or Unix-like operating system like Linux.
@@ -126,7 +160,6 @@ pwd
----
[[faq:cd]]
-
=== Changing Directories
To move up one level in the terminal window type:
diff --git a/docs/src/common/linux-faq_es.adoc b/docs/src/common/linux-faq_es.adoc
index 60a8c130ae5..bbc443f0844 100644
--- a/docs/src/common/linux-faq_es.adoc
+++ b/docs/src/common/linux-faq_es.adoc
@@ -1,13 +1,13 @@
:lang: es
-= Linux FAQ
[[cha:linux-faq]]
+= Linux FAQ
Estos son algunos comandos básicos y técnicas para nuevos usuarios de
linux. Información más completa se puede encontrar en la web o mediante
las páginas del manual con el comando man.
-== Login automatico (((Automatic Login)))
+== Login automatico(((Automatic Login)))
Al instalar LinuxCNC con el CD de Ubuntu por defecto se tiene que iniciar
sesión cada vez que encienda el ordenador. Para activar autentificacion automática
@@ -39,7 +39,7 @@ $ /usr/sbin/lightdm --show-config
* Haga autologin-user=su_nombre_usuario
* Guarde y reinicie.
-== Inicio automatico de LinuxCNC (((Automatic Startup)))
+== Inicio automatico de LinuxCNC(((Automatic Startup)))
Para tener un inicio automático de LinuxCNC con su configuración después
de encender el equipo vaya a 'System > Preferences > Sessions > Startup Applications',
@@ -58,9 +58,7 @@ N.T. En Debian Stretch, vaya a 'Aplicaciones > Configuracion > Administrador de
En la pestaña 'Autoarranque de aplicaciones', use el boton 'Añadir'. De un nombre, una descripcion y una orden similar
al ejemplo anterior. En el proximo reinicio, LinuxCNC arrancara automaticamente.
-[[faq:terminal]]
-
-== Terminal
+== Terminal[[faq:terminal]]
Hay que hacer muchas cosas desde la terminal, como verificar el búfer de mensajes
del núcleo con 'dmesg'. Ubuntu y Linux Mint tienen un atajo de teclado Ctrl + Alt + t.
@@ -74,9 +72,7 @@ directorio.
La mayoría de los sistemas operativos tienen el terminal como elemento de menú,
generalmente en 'Accesorios'.
-== Paginas de manual [[sec:Man-Pages]]
-
-(((Man Pages)))
+== Paginas de manual[[sec:Man-Pages]](((Man Pages)))
Las páginas del manual son generadas automáticamente en la mayoría de los casos.
Las páginas del manual estan generalmente disponibles para la
@@ -116,9 +112,7 @@ si usted no cambio de directorio cuando abrio la terminal y
será nombrado mymod.txt, o como usted lo haya nombrado.
-== Edicion de archivos de root [[sec:Editing-a-Root-File]]
-
-(((Editing a Root File)))
+== Edicion de archivos de root [[sec:Editing-a-Root-File]](((Editing a Root File)))
Al abrir el explorador de archivos y ver que el propietario del
archivo es el usuario root, se tienen que hacer algunos pasos adicionales para modificar ese archivo.
@@ -126,10 +120,7 @@ La edición de algunos archivos puede tener malos resultados. Tenga cuidado
al editar los archivos de root; generalmente usted puede ver y abrir los archivos root
en modo de 'solo lectura'.
-
-=== Con la linea de comandos
-
-(((sudo gedit)))
+=== Con la linea de comandos(((sudo gedit)))
En una ventana de terminal teclee.
@@ -139,9 +130,7 @@ sudo gedit
Abrir el archivo con el menu File > Open > Edit, y proceda a editar.
-=== Usando la interface grafica
-
-(((gksudo)))
+=== Usando la interface grafica(((gksudo)))
.Haga clic derecho sobre el escritorio y seleccione 'Crear lanzador'
.Escriba un nombre como 'editar sudo'
@@ -156,9 +145,7 @@ En Ubuntu (o Debian) puede convertirse en super usuario tecleando "sudo -i" en u
Debera escribir su contraseña. Tenga
cuidado porque usted puede dañar su instalacion si no sabe lo que esta haciendo.
-== Comandos en la terminal [[sec:Terminal-Commands]]
-
-(((Terminal Commands)))
+== Comandos en la terminal [[sec:Terminal-Commands]](((Terminal Commands)))
=== Directorio de trabajo (((Working Directory)))(((pwd)))
diff --git a/docs/src/getting-started/Linux_FAQ_fr.adoc b/docs/src/common/linux-faq_fr.adoc
similarity index 88%
rename from docs/src/getting-started/Linux_FAQ_fr.adoc
rename to docs/src/common/linux-faq_fr.adoc
index 17ec4a61516..117935fb175 100644
--- a/docs/src/getting-started/Linux_FAQ_fr.adoc
+++ b/docs/src/common/linux-faq_fr.adoc
@@ -1,9 +1,7 @@
:lang: fr
-= Petite FAQ Linux
-
[[cha:FAQ-Linux]]
-
+= Petite FAQ Linux
Voici quelques commandes et techniques de base pour l'utilisateur
débutant sous Linux. Beaucoup d'autres informations peuvent être
@@ -24,17 +22,18 @@ _Sécurité_, cochez la case _Activer les connexions automatiques_ et
saisissez votre nom d'utilisateur ou choisissez en un dans la liste
déroulante. Vous êtes maintenant dispensé de la fenêtre de connexion.
-== Les Man Pages[[sec:Man-Pages]]
-
-(((Man Pages)))
+[[sec:Man-Pages]]
+== Les Man Pages(((Man Pages)))
Les Man pages sont des pages de manuel générées automatiquement le
plus souvent. Les Man pages existent pour quasiment tous les programmes
et les commandes de Linux.
-Pour visualiser une man page ouvrez un terminal depuis _Applications →
- Accessoires → Terminal_. Par exemple si vous voulez trouver quelques
+Pour visualiser une man page ouvrez un terminal
+depuis _Applications → Accessoires → Terminal_.
+Par exemple si vous voulez trouver quelques
choses concernant la commande _find_, tapez alors dans le terminal:
+
----
man find
----
@@ -46,12 +45,14 @@ défiler le texte et la touche *Q* pour quitter.
En cas de problème il est parfois utile de connaître la liste des
modules du noyau qui sont chargés. Ouvrez une console et tapez:
+
----
lsmod
----
Si vous voulez, pour le consulter tranquillement, envoyer le résultat
de la commande dans un fichier, tapez la sous cette forme:
+
----
lsmod > mes_modules.txt
----
@@ -59,10 +60,8 @@ lsmod > mes_modules.txt
Le fichier mes_modules.txt résultant, se trouvera alors dans votre
répertoire home si c'est de là que vous avez ouvert la console.
-
-== Éditer un fichier en root[[sec:Editer-un-fichier-en-root]]
-
-(((Éditer un fichier en root)))
+[[sec:Editer-un-fichier-en-root]]
+== Éditer un fichier en root(((Éditer un fichier en root)))
Éditer certains fichiers du système en root peut donner des résultats
inattendus! Soyez très vigilant quand vous éditez en root, une erreur peut
@@ -70,22 +69,19 @@ compromettre tout le système et l'empêcher de redémarrer. Vous pouvez
ouvrir et lire de nombreux fichiers systèmes appartenant au root qui
sont en mode lecture seule.
-=== A la ligne de commande
-
-(((sudo gedit)))
+=== A la ligne de commande(((sudo gedit)))
Ouvrir un terminal depuis _Applications → Accessoires → Terminal_.
Dans ce terminal, tapez:
+
----
sudo gedit
----
Ouvrez un fichier depuis _Fichiers → Ouvrir_ puis éditez le.
-=== En mode graphique
-
-(((gksudo)))
+=== En mode graphique(((gksudo)))
. Faites un clic droit sur le bureau et choisissez _Créer un lanceur.._.
. Tapez un nom tel que _éditeur_, dans la zone _Nom_.
@@ -93,29 +89,27 @@ Ouvrez un fichier depuis _Fichiers → Ouvrir_ puis éditez le.
. Glissez un fichier et déposez le sur votre lanceur, il s'ouvrira alors
directement dans l'éditeur.
-== Commandes du terminal[[sec:Commandes-Terminal]]
+[[sec:Commandes-Terminal]]
+== Commandes du terminal(((Terminal Commands)))
-(((Terminal Commands)))
-
-=== Répertoire de travail
-
-(((repertoire de travail))) (((pwd)))
+=== Répertoire de travail(((repertoire de travail))) (((pwd)))
Pour afficher le chemin du répertoire courant dans le terminal tapez:
+
----
pwd
----
-=== Changer de répertoire
-
-(((Changer de repertoire))) (((cd)))
+=== Changer de répertoire(((Changer de repertoire))) (((cd)))
Pour remonter dans le répertoire précédent, tapez dans le terminal:
+
----
cd ..
----
Pour remonter de deux niveaux de répertoire, tapez dans le terminal:
+
----
cd ../..
----
@@ -125,21 +119,19 @@ Pour aller directement dans le sous-répertoire linuxcnc/configs tapez:
cd linuxcnc/configs
----
-=== Lister les fichiers du répertoire courant
-
-(((Lister le répertoire courant))) (((ls)))
+=== Lister les fichiers du répertoire courant(((Lister le répertoire courant))) (((ls)))
Pour voir le contenu du répertoire courant tapez:
+
----
ls
----
-=== Trouver un fichier
-
-(((Trouver un fichier))) (((find)))
+=== Trouver un fichier(((Trouver un fichier))) (((find)))
La commande _find_ peut être un peu déroutante pour le nouvel
utilisateur de Linux. La syntaxe de base est:
+
----
find répertoire_de_départ
----
@@ -147,30 +139,31 @@ find répertoire_de_départ
Par exemple, pour trouver tous les fichiers .ini dans votre répertoire
linuxcnc utilisez d'abord la commande _pwd_ pour trouver le répertoire
courant. Ouvrez un nouveau terminal et tapez:
+
----
pwd
----
il vous est retourné par exemple le résultat suivant:
+
----
/home/robert
----
Avec cette information vous pouvez taper, par exemple, la commande:
+
----
find /home/robert/linuxcnc -name *.ini -print
----
Le _-name_ est le nom du fichier que vous recherchez et le _-print_
indique à find d'afficher le résultat dans le terminal. Le _*.ini_
-indique à find de retourner tous les fichiers portant l'extension
-_.ini_
-
-=== Rechercher un texte
+indique à find de retourner tous les fichiers portant l'extension _.ini_
-(((Rechercher un texte)))(((grep)))
+=== Rechercher un texte(((Rechercher un texte)))(((grep)))
Tapez dans un terminal:
+
----
grep -lir "texte à rechercher" *
----
@@ -188,6 +181,7 @@ Le caractère *** est un jocker indiquant _tous les fichiers_.
Pour visualiser les messages du boot utilisez la commande _dmesg_
depuis un terminal. Pour enregistrer ces messages dans un fichier,
redirigez les avec:
+
----
dmesg > dmesg.txt
----
@@ -197,6 +191,7 @@ destination des personnes en ligne qui vous aideront à diagnostiquer
votre problème.
Pour nettoyer le tampon des messages tapez cette commande:
+
----
sudo dmesg -c
----
@@ -216,12 +211,14 @@ dmesg|grep parport
Pour voir la liste du matériel installé sur les ports PCI de votre carte mère,
tapez la commande suivante dans un terminal:
+
----
lspci -v
----
Pour voir la liste du matériel installé sur les ports USB de votre carte mère,
tapez la commande suivante dans un terminal:
+
----
lsusb -v
----
@@ -238,4 +235,3 @@ https://help.ubuntu.com/community/FixVideoResolutionHowto[https://help.ubuntu.co
// vim: set syntax=asciidoc:
-
diff --git a/docs/src/common/outdated-notice_fr.adoc b/docs/src/common/outdated-notice_fr.adoc
index fcae870ce62..caf830f16b4 100644
--- a/docs/src/common/outdated-notice_fr.adoc
+++ b/docs/src/common/outdated-notice_fr.adoc
@@ -1,3 +1,5 @@
+:lang: fr
+
[NOTE]
.AVIS
=================================================
diff --git a/docs/src/common/overleaf.adoc b/docs/src/common/overleaf.adoc
index 0e1a3e6b412..369d307864c 100644
--- a/docs/src/common/overleaf.adoc
+++ b/docs/src/common/overleaf.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
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
diff --git a/docs/src/common/overleaf_es.adoc b/docs/src/common/overleaf_es.adoc
index aa72f17a12b..f72d55eee1d 100644
--- a/docs/src/common/overleaf_es.adoc
+++ b/docs/src/common/overleaf_es.adoc
@@ -1,4 +1,6 @@
-Este manual es un trabajo en progreso. Si puedes ayudar con
+:lang: es
+
+Este manual es un trabajo en progreso. Si puedes ayudar con
redacción, edición o preparación gráfica, comuníquese con cualquier miembro
del equipo de redacción o únete y envía un correo electrónico a
emc-users@lists.sourceforge.net.
diff --git a/docs/src/common/overleaf_fr.adoc b/docs/src/common/overleaf_fr.adoc
index beca4abbaf0..a4c552617e2 100644
--- a/docs/src/common/overleaf_fr.adoc
+++ b/docs/src/common/overleaf_fr.adoc
@@ -1,3 +1,5 @@
+:lang: fr
+
Ce manuel est en évolution permanente. Si vous voulez nous aider à son écriture,
sa rédaction, sa traduction ou la préparation des graphiques, merci de contactez
n'importe quel membre de l'équipe de traduction ou envoyez un courrier
diff --git a/docs/src/config/core-components.adoc b/docs/src/config/core-components.adoc
index 4782735ccb9..f83b51ceabd 100644
--- a/docs/src/config/core-components.adoc
+++ b/docs/src/config/core-components.adoc
@@ -1,6 +1,7 @@
-= Core Components
+:lang: en
[[cha:core-components]]
+= Core Components(((Core components)))
See also the man pages 'motion(9)'.
@@ -8,7 +9,7 @@ See also the man pages 'motion(9)'.
== Motion
These pins and parameters are created by the realtime 'motmod' module.
-This module provides a HAL interface for LinuxCNC’s motion planner.
+This module provides a HAL interface for LinuxCNC's motion planner.
Basically motmod takes in a list of waypoints and generates a nice
blended and constraint-limited stream of joint positions to be fed
to the motor drives.
@@ -38,8 +39,8 @@ 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 'base_period_nsec'. Thus, the 'base_period_nsec' shown
above gives an absolute maximum step rate of 20,000 steps per
-second. 50,000 ns (50 us) is a fairly conservative value. The
-smallest usable value is related to the Latency Test result, the
+second. 50,000 ns (50 us) is a fairly conservative value.
+The smallest usable value is related to the Latency Test result, the
necessary step length, and the processor speed.
Choosing a 'base_period_nsec' that is too low can lead to the "Unexpected
real time delay" message, lockups, or spontaneous reboots.
@@ -63,212 +64,237 @@ of the low level motion planner.
=== Options
If the number of digital I/O needed is more than the default of 4 you
-can add up to 64 digital I/O by using the num_dio option when loading
-motmod.
+can add up to 64 digital I/O by using the num_dio option when loading 'motmod'.
If the number of analog I/O needed is more than the default of 4 you
-can add up to 16 analog I/O by using the num_aio option when loading
-motmod.
+can add up to 16 analog I/O by using the num_aio option when loading 'motmod'.
The unlock_joints_mask parameter is used to create pins for a joint used
as a locking indexer (typically a rotary). The mask bits select the
-joint(s). The LSB of the mask selects joint 0. Example:
- unlock_joints_mask=0x38 selects joints 3,4,5
+joint(s). The LSB of the mask selects joint 0.
+Example:
+
+----
+unlock_joints_mask=0x38 selects joints 3,4,5
+----
[[sec:motion-pins]]
-=== Pins (((motion (HAL pins))))
+=== Pins(((motion (HAL pins))))
-These pins, parameters, and functions are created by the realtime
-'motmod' module.
+These pins, parameters, and functions are created by the realtime 'motmod' module.
* 'motion.adaptive-feed' -
- (float, in) When adaptive feed is enabled with 'M52 P1' , the
- commanded velocity is multiplied by this value. This effect is
- multiplicative with the NML-level feed override value and
- 'motion.feed-hold'. As of version 2.9 of LinuxCNC it is possible to
- use a negative adaptive feed value to run the G-code path in reverse.
+ (float, in) When adaptive feed is enabled with 'M52 P1' , the
+ commanded velocity is multiplied by this value. This effect is
+ multiplicative with the NML-level feed override value and
+ 'motion.feed-hold'. As of version 2.9 of LinuxCNC it is possible to
+ use a negative adaptive feed value to run the G-code path in reverse.
* 'motion.analog-in-00' -
- (float, in) These pins (00, 01, 02, 03 or more if configured) are
- controlled by M66.
+ (float, in) These pins (00, 01, 02, 03 or more if configured) are
+ controlled by M66.
* 'motion.analog-out-00' -
- (float, out) These pins (00, 01, 02, 03 or more if configured) are
- controlled by M67 or M68.
+ (float, out) These pins (00, 01, 02, 03 or more if configured) are
+ controlled by M67 or M68.
* 'motion.coord-error' -
- (bit, out) TRUE when motion has encountered an error, such as
- exceeding a soft limit
+ (bit, out) TRUE when motion has encountered an error, such as
+ exceeding a soft limit
* 'motion.coord-mode' -
- (bit, out) TRUE when motion is in 'coordinated mode', as opposed to
- 'teleop mode'
+ (bit, out) TRUE when motion is in 'coordinated mode', as opposed to
+ 'teleop mode'
* 'motion.current-vel' -
- (float, out) The current tool velocity in user units per second.
+ (float, out) The current tool velocity in user units per second.
* 'motion.digital-in-00' -
- (bit, in) These pins (00, 01, 02, 03 or more if configured) are
- controlled by M62-65.
+ (bit, in) These pins (00, 01, 02, 03 or more if configured) are
+ controlled by M62-65.
* 'motion.digital-out-00' -
- (bit, out) These pins (00, 01, 02, 03 or more if configured) are
- controlled by the 'M62-65'.
+ (bit, out) These pins (00, 01, 02, 03 or more if configured) are
+ controlled by the 'M62-65'.
* 'motion.distance-to-go' -
- (float,out) The distance remaining in the current move.
+ (float,out) The distance remaining in the current move.
* '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.
+ (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.
* 'motion.feed-hold' -
- (bit, in) When Feed Stop Control is enabled with 'M53 P1', and this
- bit is TRUE, the feed rate is set to 0.
+ (bit, in) When Feed Stop Control is enabled with 'M53 P1', and this
+ bit is TRUE, the feed rate is set to 0.
* 'motion.feed-inhibit' -
- (bit, in) When this bit is TRUE, the feed rate is set to 0.
- This will be delayed during spindle synch moves till the end of the move.
+ (bit, in) When this bit is TRUE, the feed rate is set to 0.
+ This will be delayed during spindle synch moves till the end of the move.
* 'motion.in-position' -
- (bit, out) TRUE if the machine is in position.
+ (bit, out) TRUE if the machine is in position.
* 'motion.motion-enabled' -
- (bit, out) TRUE when in 'machine on' state.
+ (bit, out) TRUE when in 'machine on' state.
* 'motion.motion-type' -
- (s32, out) These values are from src/emc/nml_intf/motion_types.h
-
- - 0: Idle (no motion)
-
- - 1: Traverse
-
- - 2: Linear feed
-
- - 3: Arc feed
-
- - 4: Tool change
-
- - 5: Probing
-
- - 6: Rotary axis indexing
+ (s32, out) These values are from src/emc/nml_intf/motion_types.h
+ - 0: Idle (no motion)
+ - 1: Traverse
+ - 2: Linear feed
+ - 3: Arc feed
+ - 4: Tool change
+ - 5: Probing
+ - 6: Rotary axis indexing
+
+* 'motion.on-soft-limit' - (bit, out) TRUE when the machine is on a soft limit.
+
+* 'motion.probe-input' - (bit, in)
+ 'G38.n' 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.
+
+* 'motion.program-line' - (s32, out) The current program line while executing.
+ Zero if not running or between lines while single stepping.
+
+* 'motion.requested-vel' - (float, out)
+ The current requested velocity in user units per second.
+ This value is the F-word setting from the G-code file, possibly reduced to accommodate machine velocity and acceleration limits.
+ The value on this pin does not reflect the feed override or any other adjustments.
+
+* 'motion.teleop-mode' - (bit, out) TRUE when motion is in 'teleop mode', as opposed to 'coordinated mode'
+
+* 'motion.tooloffset.x ... motion.tooloffset.w' - (float, out, one per axis) shows the tool offset in effect;
+ it could come from the tool table ('G43' active), or it could come from the gcode ('G43.1' active)
+
+* 'spindle.0.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 'HAL near' component, by comparing requested and actual spindle speeds.
* 'motion.on-soft-limit' -
- (bit, out) TRUE when the machine is on a soft limit.
+ (bit, out) TRUE when the machine is on a soft limit.
* 'motion.probe-input' -
- (bit, in) 'G38.n' 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.
+ (bit, in) 'G38.n' 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.
* 'motion.program-line' -
- (s32, out) The current program line while executing. Zero if not
- running or between lines while single stepping.
+ (s32, out) The current program line while executing. Zero if not
+ running or between lines while single stepping.
* 'motion.requested-vel' -
- (float, out) The current requested velocity in user units per
- second. This value is the F-word setting from the G-code file,
- possibly reduced to accommodate machine velocity and acceleration
- limits. The value on this pin does not reflect the feed override or
- any other adjustments.
+ (float, out) The current requested velocity in user units per
+ second. This value is the F-word setting from the G-code file,
+ possibly reduced to accommodate machine velocity and acceleration
+ limits. The value on this pin does not reflect the feed override or
+ any other adjustments.
* 'spindle.0.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 'HAL near'
- component, by comparing requested and actual spindle speeds.
+ (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 'HAL near'
+ component, by comparing requested and actual spindle speeds.
* 'spindle.N.brake' -
- (bit, out) TRUE when the spindle brake should be applied.
+ (bit, out) TRUE when the spindle brake should be applied.
* 'spindle.N.forward' -
- (bit, out) TRUE when the spindle should rotate forward.
+ (bit, out) TRUE when the spindle should rotate forward.
* 'spindle.N.index-enable' -
- (bit, I/O) For correct operation of spindle synchronized moves, this
- pin must be hooked to the index-enable pin of the spindle encoder.
+ (bit, I/O) For correct operation of spindle synchronized moves, this
+ pin must be hooked to the index-enable pin of the spindle encoder.
* 'spindle.N.inhibit' -
- (bit, in) When this bit is TRUE, the spindle speed is set to 0.
+ (bit, in) When this bit is TRUE, the spindle speed is set to 0.
* 'spindle.N.on' -
- (bit, out) TRUE when spindle should rotate.
+ (bit, out) TRUE when spindle should rotate.
* 'spindle.N.reverse' -
- (bit, out) TRUE when the spindle should rotate backward
+ (bit, out) TRUE when the spindle should rotate backward
* 'spindle.N.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
- ('M3') direction.
+ (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
+ ('M3') direction.
* 'spindle.N.speed-in' -
- (float, in) Feedback of actual spindle speed in rotations per second.
- This is used by feed-per-revolution motion ('G95'). If your spindle
- encoder driver does not have a velocity output, you
- can generate a suitable one by sending the spindle position through a
- 'ddt' component. If you do not have a spindle encoder, you can loop
- back 'spindle.N.speed-out-rps'.
+ (float, in) Feedback of actual spindle speed in rotations per second.
+ This is used by feed-per-revolution motion ('G95'). If your spindle
+ encoder driver does not have a velocity output, you
+ can generate a suitable one by sending the spindle position through a
+ 'ddt' component. If you do not have a spindle encoder, you can loop
+ back 'spindle.N.speed-out-rps'.
* 'spindle.N.speed-out' -
- (float, out) Commanded spindle speed in rotations per minute. Positive
- for spindle forward ('M3'), negative for spindle reverse ('M4').
+ (float, out) Commanded spindle speed in rotations per minute. Positive
+ for spindle forward ('M3'), negative for spindle reverse ('M4').
* 'spindle.N.speed-out-abs' -
- (float, out) Commanded spindle speed in rotations per minute. This will
- always be a positive number.
+ (float, out) Commanded spindle speed in rotations per minute. This will
+ always be a positive number.
* 'spindle.N.speed-out-rps' -
- (float, out) Commanded spindle speed in rotations per second. Positive
- for spindle forward ('M3'), negative for spindle reverse ('M4').
+ (float, out) Commanded spindle speed in rotations per second. Positive
+ for spindle forward ('M3'), negative for spindle reverse ('M4').
* 'spindle.N.speed-out-rps-abs' -
- (float, out) Commanded spindle speed in rotations per second. This will
- always be a positive number.
+ (float, out) Commanded spindle speed in rotations per second. This will
+ always be a positive number.
* 'motion.teleop-mode' -
- (bit, out) TRUE when motion is in 'teleop mode', as opposed to
- 'coordinated mode'
+ (bit, out) TRUE when motion is in 'teleop mode', as opposed to
+ 'coordinated mode'
* 'motion.tooloffset.x ... motion.tooloffset.w' -
- (float, out, one per axis) shows the tool offset in effect;
- it could come from the tool table ('G43' active), or it could
- come from the G-code ('G43.1' active)
-
-* `spindle.N.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.N.orient-mode` -
- (s32,out) Desired spindle rotation mode M19. Default 0.
-
-* `spindle.N.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.N.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.N.orient-fault` -
- (s32, in) Fault code input for orient cycle. Any value other
- than zero will cause the orient cycle to abort.
-
-* `spindle.N.lock` -
+ (float, out, one per axis) shows the tool offset in effect;
+ it could come from the tool table ('G43' active), or it could
+ come from the G-code ('G43.1' active)
+
+* 'spindle.N.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.N.orient-mode' -
+ (s32,out) Desired spindle rotation mode M19. Default 0.
+
+* 'spindle.N.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.N.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.N.orient-fault' -
+ (s32, in) Fault code input for orient cycle. Any value other
+ than zero will cause the orient cycle to abort.
+
+* 'spindle.N.lock' -
(bit, out) Spindle orient complete pin. Cleared by any of M3,M4,M5.
.HAL pin usage for M19 orient spindle
@@ -279,30 +305,28 @@ Conceptually the spindle is in one of the following modes:
- searching for desired orientation mode
- orientation complete mode.
-When an M19 is executed, the spindle changes to 'searching for desired
-orientation' , and the `spindle.N.orient` HAL pin is asserted. The
-desired target position is specified by the `spindle.N.orient-angle` and
-`spindle.N.orient-fwd` pins and driven by the M19 R and P parameters.
+When an M19 is executed, the spindle changes to 'searching for desired orientation',
+and the `spindle.N.orient` HAL pin is asserted.
+The desired target position is specified by the `spindle.N.orient-angle`
+and `spindle.N.orient-fwd` pins and driven by the M19 R and P parameters.
The HAL support logic is expected to react to `spindle.N.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.N.is-oriented` pin.
+HAL logic is expected to acknowledge this by asserting the `spindle.N.is-oriented` pin.
Motion then acknowledges this by deasserting the `spindle.N.orient` pin
-and asserts the `spindle.N.locked` pin to indicate 'orientation
-complete' mode. It also raises the `spindle.N.brake` pin. The spindle now
-is in 'orientation complete' mode.
+and asserts the `spindle.N.locked` pin to indicate 'orientation complete' mode.
+It also raises the `spindle.N.brake` pin. The spindle now is in 'orientation complete' mode.
If, during `spindle.N.orient` being true, and `spindle.N.is-oriented` not
yet asserted the `spindle.N.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.
+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.
+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:
@@ -320,61 +344,31 @@ and `spindle-orient-mode`.
Many of these parameters serve as debugging aids, and are subject to
change or removal at any time.
-* 'motion-command-handler.time' -
- (s32, RO)
-
-* 'motion-command-handler.tmax' -
- (s32, RW)
-
-* 'motion-controller.time' -
- (s32, RO)
-
-* 'motion-controller.tmax' -
- (s32, RW)
-
-* 'motion.debug-bit-0' -
- (bit, RO) This is used for debugging purposes.
-
-* 'motion.debug-bit-1' -
- (bit, RO) This is used for debugging purposes.
-
-* 'motion.debug-float-0' -
- (float, RO) This is used for debugging purposes.
-
-* 'motion.debug-float-1' -
- (float, RO) This is used for debugging purposes.
-
-* 'motion.debug-float-2' -
- (float, RO) This is used for debugging purposes.
-
-* 'motion.debug-float-3' -
- (float, RO) This is used for debugging purposes.
-
-* 'motion.debug-s32-0' -
- (s32, RO) This is used for debugging purposes.
-
-* 'motion.debug-s32-1' -
- (s32, RO) This is used for debugging purposes.
-
-* '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
-
-* 'motion.servo.last-period-ns' -
- (float, RO)
+* 'motion-command-handler.time' - (s32, RO)
+* 'motion-command-handler.tmax' - (s32, RW)
+* 'motion-controller.time' - (s32, RO)
+* 'motion-controller.tmax' - (s32, RW)
+* 'motion.debug-bit-0' - (bit, RO) This is used for debugging purposes.
+* 'motion.debug-bit-1' - (bit, RO) This is used for debugging purposes.
+* 'motion.debug-float-0' - (float, RO) This is used for debugging purposes.
+* 'motion.debug-float-1' - (float, RO) This is used for debugging purposes.
+* 'motion.debug-float-2' - (float, RO) This is used for debugging purposes.
+* 'motion.debug-float-3' - (float, RO) This is used for debugging purposes.
+* 'motion.debug-s32-0' - (s32, RO) This is used for debugging purposes.
+* 'motion.debug-s32-1' - (s32, RO) This is used for debugging purposes.
+* '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
+* 'motion.servo.last-period-ns' - (float, RO)
=== Functions
Generally, these functions are both added to the servo-thread in the
order shown.
-* 'motion-command-handler' -
- Processes motion commands coming from user space
-
-* 'motion-controller' -
- Runs the LinuxCNC motion controller
+* 'motion-command-handler' - Processes motion commands coming from user space
+* 'motion-controller' - Runs the LinuxCNC motion controller
== Axis and Joint Pins and Parameters
@@ -387,7 +381,7 @@ See the motion man page 'motion(9)' for details on the pins and parameters.
== iocontrol
-iocontrol − accepts NML I/O commands, interacts with HAL in userspace.
+iocontrol - accepts NML I/O commands, interacts with HAL in userspace.
The signals are turned on and off in userspace - if you have strict
timing requirements or simply need more i/o, consider using the realtime
@@ -395,46 +389,19 @@ synchronized i/o provided by <> instead.
=== Pins (((iocontrol (HAL pins))))
-* 'iocontrol.0.coolant-flood' -
- (bit, out) TRUE when flood coolant is requested.
-
-* 'iocontrol.0.coolant-mist' -
- (bit, out) TRUE when mist coolant is requested.
-
-* 'iocontrol.0.emc-enable-in' -
- (bit, in) Should be driven FALSE when an external E-Stop condition
- exists.
-
-* 'iocontrol.0.lube' -
- (bit, out) TRUE when lube is commanded.
-
-* 'iocontrol.0.lube_level' -
- (bit, in) Should be driven TRUE when lube level is high enough.
-
-* 'iocontrol.0.tool-change' -
- (bit, out) TRUE when a tool change is requested.
-
-* 'iocontrol.0.tool-changed' -
- (bit, in) Should be driven TRUE when a tool change is completed.
-
-* 'iocontrol.0.tool-number' -
- (s32, out) The current tool number.
-
-* 'iocontrol.0.tool-prep-number' -
- (s32, out) The number of the next tool, from the RS274NGC T-word.
-
-* 'iocontrol.0.tool-prepare' -
- (bit, out) TRUE when a tool prepare is requested.
-
-* 'iocontrol.0.tool-prepared' -
- (bit, in) Should be driven TRUE when a tool prepare is completed.
-
-* 'iocontrol.0.user-enable-out' -
- (bit, out) FALSE when an internal E-Stop condition exists.
-
-* 'iocontrol.0.user-request-enable' -
- (bit, out) TRUE when the user has requested that E-Stop be cleared.
-
+* 'iocontrol.0.coolant-flood' - (bit, out) TRUE when flood coolant is requested.
+* 'iocontrol.0.coolant-mist' - (bit, out) TRUE when mist coolant is requested.
+* 'iocontrol.0.emc-enable-in' - (bit, in) Should be driven FALSE when an external E-Stop condition exists.
+* 'iocontrol.0.lube' - (bit, out) TRUE when lube is commanded.
+* 'iocontrol.0.lube_level' - (bit, in) Should be driven TRUE when lube level is high enough.
+* 'iocontrol.0.tool-change' - (bit, out) TRUE when a tool change is requested.
+* 'iocontrol.0.tool-changed' - (bit, in) Should be driven TRUE when a tool change is completed.
+* 'iocontrol.0.tool-number' - (s32, out) The current tool number.
+* 'iocontrol.0.tool-prep-number' - (s32, out) The number of the next tool, from the RS274NGC T-word.
+* 'iocontrol.0.tool-prepare' - (bit, out) TRUE when a tool prepare is requested.
+* 'iocontrol.0.tool-prepared' - (bit, in) Should be driven TRUE when a tool prepare is completed.
+* 'iocontrol.0.user-enable-out' - (bit, out) FALSE when an internal E-Stop condition exists.
+* 'iocontrol.0.user-request-enable' - (bit, out) TRUE when the user has requested that E-Stop be cleared.
== ini settings
@@ -445,31 +412,18 @@ A number of ini settings are made available as hal input pins.
N refers to a joint number, L refers to an axis letter
* 'ini.N.ferror' - (float, in) [JOINT_N]FERROR
-
* 'ini.N.min_ferror' - (float, in) [JOINT_N]MIN_FERROR
-
* 'ini.N.backlash' - (float, in) [JOINT_N]BACKLASH
-
* 'ini.N.min_limit' - (float, in) [JOINT_N]MIN_LIMIT
-
* 'ini.N.max_limit' - (float, in) [JOINT_N]MAX_LIMIT
-
* 'ini.N.max_velocity' - (float, in) [JOINT_N]MAX_VELOCITY
-
* 'ini.N.max_acceleration' - (float, in) [JOINT_N]MAX_ACCELERATION
-
* 'ini.N.home' - (float, in) [JOINT_N]HOME
-
* 'ini.N.home_offset' - (float, in) [JOINT_N]HOME_OFFSET
-
* 'ini.N.home_offset' - (s32, in) [JOINT_N]HOME_SEQUENCE
-
* 'ini.L.min_limit' - (float, in) [AXIS_L]MIN_LIMIT
-
* 'ini.L.max_limit' - (float, in) [AXIS_L]MAX_LIMIT
-
* 'ini.L.max_velocity' - (float, in) [AXIS_L]MAX_VELOCITY
-
* 'ini.L.max_acceleration' - (float, in) [AXIS_L]MAX_ACCELERATION
[NOTE]
@@ -482,15 +436,10 @@ sampled when in a program is running (auto mode) or in mdi mode. Consequently,
changing the pin values when a program is running will not have effect until
the program is stopped and the motion_state is again free.
-
* 'ini.traj_arc_blend_enable' - (bit, in) [TRAJ]ARC_BLEND_ENABLE
-
* 'ini.traj_arc_blend_fallback_enable' - (bit, in) [TRAJ]ARC_BLEND_FALLBACK_ENABLE
-
* 'ini.traj_arc_blend_gap_cycles' - (float, in) [TRAJ]ARC_BLEND_GAP_CYCLES
-
* 'ini.traj_arc_blend_optimization_depth' - (float, in) [TRAJ]ARC_BLEND_OPTIMIZATION_DEPTH
-
* 'ini.traj_arc_blend_ramp_freq' - (float, in) [TRAJ]ARC_BLEND_RAMP_FREQ
[NOTE]
@@ -499,8 +448,5 @@ while a program is running may not have immediate effect due to queueing
of commands.
* 'ini.traj_default_acceleration' - (float, in) [TRAJ]DEFAULT_ACCELERATION
-
* 'ini.traj_default_velocity' - (float, in) [TRAJ]DEFAULT_VELOCITY
-
* 'ini.traj_max_acceleration' - (float, in) [TRAJ]MAX_ACCELERATION
-
diff --git a/docs/src/getting-started/images/HomeAxisTravel.png b/docs/src/config/images/HomeAxisTravel.png
similarity index 100%
rename from docs/src/getting-started/images/HomeAxisTravel.png
rename to docs/src/config/images/HomeAxisTravel.png
diff --git a/docs/src/getting-started/images/stepconf-advanced_fr.png b/docs/src/config/images/stepconf-advanced_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-advanced_fr.png
rename to docs/src/config/images/stepconf-advanced_fr.png
diff --git a/docs/src/getting-started/images/stepconf-axis_fr.png b/docs/src/config/images/stepconf-axis_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-axis_fr.png
rename to docs/src/config/images/stepconf-axis_fr.png
diff --git a/docs/src/getting-started/images/stepconf-basic_fr.png b/docs/src/config/images/stepconf-basic_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-basic_fr.png
rename to docs/src/config/images/stepconf-basic_fr.png
diff --git a/docs/src/getting-started/images/stepconf-config_fr.png b/docs/src/config/images/stepconf-config_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-config_fr.png
rename to docs/src/config/images/stepconf-config_fr.png
diff --git a/docs/src/getting-started/images/stepconf-pinout_fr.png b/docs/src/config/images/stepconf-pinout_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-pinout_fr.png
rename to docs/src/config/images/stepconf-pinout_fr.png
diff --git a/docs/src/getting-started/images/stepconf-spindle_fr.png b/docs/src/config/images/stepconf-spindle_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-spindle_fr.png
rename to docs/src/config/images/stepconf-spindle_fr.png
diff --git a/docs/src/getting-started/images/stepconf-test_fr.png b/docs/src/config/images/stepconf-test_fr.png
similarity index 100%
rename from docs/src/getting-started/images/stepconf-test_fr.png
rename to docs/src/config/images/stepconf-test_fr.png
diff --git a/docs/src/getting-started/images/switch-nc-series_fr.png b/docs/src/config/images/switch-nc-series_fr.png
similarity index 100%
rename from docs/src/getting-started/images/switch-nc-series_fr.png
rename to docs/src/config/images/switch-nc-series_fr.png
diff --git a/docs/src/getting-started/images/switch-no-parallel_fr.png b/docs/src/config/images/switch-no-parallel_fr.png
similarity index 100%
rename from docs/src/getting-started/images/switch-no-parallel_fr.png
rename to docs/src/config/images/switch-no-parallel_fr.png
diff --git a/docs/src/config/ini-config.adoc b/docs/src/config/ini-config.adoc
index 6826bf82b5e..6e7f32194b1 100644
--- a/docs/src/config/ini-config.adoc
+++ b/docs/src/config/ini-config.adoc
@@ -1,6 +1,7 @@
-[[cha:ini-configuration]]
+:lang: en
-= INI Configuration
+[[cha:ini-configuration]]
+= INI Configuration(((INI Configuration)))
== The INI File Components
@@ -72,14 +73,13 @@ The following sections are used by LinuxCNC:
* '[<>]' individual joint variables
* '[<>]' individual axis variables
* '[<>]' kinematics variables
-
* '[<>]' settings used by the I/O Controller
=== Variables
A variable line is made up of a variable name, an equals sign (=), and
-a value. 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
+a value. 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.
@@ -113,7 +113,6 @@ names and variable names as shown. In the following example the variable
'MACHINE' is assigned the value 'My Machine'.
[[sub:custom-variables]]
-
=== Custom Sections and Variables
Most sample configurations use custom sections and variables to put all of the
@@ -171,8 +170,7 @@ G10 L20 P0 Z#<_ini[probe]z_offset>
=== Include Files
-An INI file may include the contents of another file by using a #INCLUDE
-directive.
+An INI file may include the contents of another file by using a #INCLUDE directive.
.#INCLUDE Format
----
@@ -181,10 +179,10 @@ directive.
The filename can be specified as:
- * a file in the same directory as the INI file
- * a file located relative to the working directory
- * an absolute file name (starts with a /)
- * a user-home-relative file name (starts with a ~)
+* a file in the same directory as the INI file
+* a file located relative to the working directory
+* an absolute file name (starts with a /)
+* a user-home-relative file name (starts with a ~)
Multiple #INCLUDE directives are supported.
@@ -204,25 +202,21 @@ is .inc. Do not use a file extension of .ini for included files.
== INI File Sections
-[[sec:emc-section]](((INI File, EMC Section)))
-
-=== [EMC] Section
+[[sec:emc-section]]
+=== [EMC] Section(((INI File, EMC Section)))
* 'VERSION = 1.1' - The version number for the configuration. Any value other
- than 1.1 will cause the configuration checker to run and try to update the
- configuration to the new style joint axes type of configuration.
-
+ than 1.1 will cause the configuration checker to run and try to update the
+ configuration to the new style joint axes type of configuration.
* 'MACHINE = My Controller' - 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.
-
+ 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.
* 'DEBUG = 0' - Debug level 0 means no messages will be printed when LinuxCNC is
run from a <>. Debug flags are usually only useful to
developers. See src/emc/nml_intf/debugflags.h for other settings.
-[[sec:display-section]](((INI File, DISPLAY Section)))
-
-=== [DISPLAY] Section
+[[sec:display-section]]
+=== [DISPLAY] Section(((INI File, DISPLAY Section)))
Different user interface programs use different options, and not every
option is supported by every user interface. There are several interfaces,
@@ -234,215 +228,175 @@ Descriptions of the interfaces are in the Interfaces section of the
User Manual.
* 'DISPLAY = axis' - The name of the user interface to use. Valid options
- may include: 'axis', 'touchy', 'gmoccapy', 'gscreen', 'tklinuxcnc', 'qtvcp'
-
+ may include: 'axis', 'touchy', 'gmoccapy', 'gscreen', 'tklinuxcnc', 'qtvcp'
* 'POSITION_OFFSET = RELATIVE' - The coordinate system (RELATIVE or MACHINE)
to show on the DRO when the user interface starts. The RELATIVE coordinate
system reflects the G92 and G5x coordinate offsets currently in effect.
-
* 'POSITION_FEEDBACK = COMMANDED' - The coordinate value (COMMANDED or ACTUAL)
to show on the DRO when the user interface starts. In Axis this can be changed
from the View menu. The COMMANDED position is the position requested by
LinuxCNC. The ACTUAL position is the feedback position of the motors if they
have feedback like most servo systems. Typically the COMMANDED value is used.
-
* 'DRO_FORMAT_MM = %+08.6f' - Over-ride the default DRO formatting in metric
mode. (normally 3 decimal places, padded with spaces to 6 digits to the left)
the example above will pad with zeros, display 6 decimal digits and force
display of a + sign for positive numbers. Formatting follows Python practice.
https://docs.python.org/2/library/string.html#format-specification-mini-language
an error will be raised if the format can not accept a floating-point value.
-
* 'DRO_FORMAT_IN = % 4.1f' - Over-ride the default DRO formatting in imperial
mode. (normally 4 decimal places, padded with spaces to 6 digits to the left)
the example above will display only one decimal digit. Formatting follows
Python practice.
https://docs.python.org/2/library/string.html#format-specification-mini-language
An error will be raised if the format can not accept a floating-point value.
-
* 'CONE_BASESIZE = .25' - Over-ride the default cone/tool base size of .5 in
the graphics display
-
* 'MAX_FEED_OVERRIDE = 1.2' - The maximum feed override the user may select.
1.2 means 120% of the programmed feed rate.
-
* 'MIN_SPINDLE_OVERRIDE = 0.5' - The minimum spindle override the user may
select. 0.5 means 50% of the programmed spindle speed. (This is used to
set the minimum spindle speed).
-
-* 'MIN_SPINDLE_0_OVERRIDE = 0.5'- The minimum spindle override the user may
- select. 0.5 means 50% of the programmed spindle speed. (This is used to
- set the minimum spindle speed). On multi spindle machine there will be entries for each spindle number. Qtvcp only
-
+* 'MIN_SPINDLE_0_OVERRIDE = 0.5' - The minimum spindle override the user may
+ select. 0.5 means 50% of the programmed spindle speed. (This is used to
+ set the minimum spindle speed). On multi spindle machine there will be entries for each spindle number. Qtvcp only.
* 'MAX_SPINDLE_OVERRIDE = 1.0' - The maximum spindle override the user may
select. 1.0 means 100% of the programmed spindle speed.
-
* 'MAX_SPINDLE_0_OVERRIDE = 1.0' - The maximum feed override the user may select.
1.2 means 120% of the programmed feed rate.
-On multi spindle machine there will be entries for each spindle number. Qtvcp only
-
+ On multi spindle machine there will be entries for each spindle number. Qtvcp only
* 'DEFAULT_SPINDLE_SPEED = 100' - The default spindle RPM when the spindle
is started in manual mode. if this setting is not present, this
defaults to 1 RPM for AXIS and 300 RPM for gmoccapy.
- deprecated - use the [SPINDLE_n] section instead
-
* 'DEFAULT_SPINDLE_0_SPEED = 100' - The default spindle RPM when the spindle
is started in manual mode. On multi spindle machine there will be entries for each spindle number. Qtvcp only
- deprecated - use the [SPINDLE_n] section instead
-
* 'SPINDLE_INCREMENT = 200' - The increment used when clicking increase/decrease buttons Qtvcp only
-- deprecated - use the [SPINDLE_n] section instead
-
+ - deprecated - use the [SPINDLE_n] section instead
* 'MIN_SPINDLE_0_SPEED = 1000' - The minimum RPM that can be manually selected.
-On multi spindle machine there will be entries for each spindle number. Qtvcp only
-- deprecated - use the [SPINDLE_n] section instead
-
+ On multi spindle machine there will be entries for each spindle number. Qtvcp only
+ - deprecated - use the [SPINDLE_n] section instead
* 'MAX_SPINDLE_0_SPEED = 20000' - The maximum RPM that can be manually selected.
-On multi spindle machine there will be entries for each spindle number. Qtvcp only
-- deprecated - use the [SPINDLE_n] section instead
-
+ On multi spindle machine there will be entries for each spindle number. Qtvcp only
+ - deprecated - use the [SPINDLE_n] section instead
* 'PROGRAM_PREFIX = ~/linuxcnc/nc_files' - The default location for G-code
files and the location for user-defined M-codes. This location is searched
for the file name before the subroutine path and user M path if specified
in the [RS274NGC] section.
-
* 'INTRO_GRAPHIC = emc2.gif' - The image shown on the splash screen.
-
* 'INTRO_TIME = 5' - The maximum time to show the splash screen, in seconds.
-
-* 'CYCLE_TIME = 100' - Cycle time of the Display GUI. Depending on the screen, this can be in seconds or ms (ms preferred). This is often the update rate rather then sleep time between updates. If the update time is not set right the screen can become unresponsive or very jerky. A value of 100ms (0.1 seconds) is a common setting though a range of 50 - 200ms (.05 - .2 seconds) may be useable. An under powered CPU may see improvement with a longer setting. Usually the default is fine.
+* 'CYCLE_TIME = 100' - Cycle time of the Display GUI.
+ Depending on the screen, this can be in seconds or ms (ms preferred).
+ This is often the update rate rather then sleep time between updates.
+ If the update time is not set right the screen can become unresponsive or very jerky.
+ A value of 100ms (0.1 seconds) is a common setting though a range of 50 - 200ms (.05 - .2 seconds) may be useable.
+ An under powered CPU may see improvement with a longer setting. Usually the default is fine.
[NOTE]
The following [DISPLAY] items are used by GladeVCP, see the
<> section of the GladeVCP Chapter.
* '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'
-
[NOTE]
Different user interface programs use different options, and not every
option is supported by every user interface.
See <> document for AXIS details.
See <> document for Gmoccapy details.
-* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs, in ,
- <> per second.
-
+* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs,
+ in <> per second.
* 'MIN_VELOCITY = .01' - The approximate lowest value the jog slider.
-
* 'MAX_LINEAR_VELOCITY = 1.0' - The maximum velocity for linear jogs, in machine units per second.
-
* 'MIN_LINEAR_VELOCITY = .01' - The approximate lowest value the jog slider.
-
* 'DEFAULT_ANGULAR_VELOCITY = .25' - The default velocity for angular jogs, in machine units per second.
-
* 'MIN_ANGULAR_VELOCITY = .01' - The approximate lowest value the angular jog slider.
-
* 'MAX_ANGULAR_VELOCITY = 1.0' - The maximum velocity for angular jogs, in machine units per second.
-
* 'INCREMENTS = 1 mm, .5 in, ...' - 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.
-
+ 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.
* 'GRIDS = 10 mm, 1 in, ...' - Defines the preset values for grid lines.
- The value is interpreted the same way as 'INCREMENTS'.
-
-* 'OPEN_FILE = /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. gmoccapy will not use this setting, as it
- offers a corresponding entry on its settings page.
-
-* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the G-code
- from the AXIS menu. This must be configured for this menu item to
- work. Another valid entry is gnome-terminal -e vim. This entry does not apply to gmoccapy, as gmoccapy
- has an integrated editor.
-
+ The value is interpreted the same way as 'INCREMENTS'.
+* 'OPEN_FILE = /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.
+ gmoccapy will not use this setting, as it offers a corresponding entry on its settings page.
+* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the G-code from the AXIS menu.
+ This must be configured for this menu item to work.
+ Another valid entry is gnome-terminal -e vim.
+ This entry does not apply to gmoccapy, as gmoccapy has an integrated editor.
* 'TOOL_EDITOR = tooledit' - The editor to use when editing the tool table (for example by
- selecting "File > Edit tool table..." in Axis). Other valid
- entries are "gedit", "gnome-terminal -e vim", and "gvim". This entry does not apply to gmoccapy, as gmoccapy
- has an integrated editor.
-
-* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the
- <> for more information.
-
+ selecting "File > Edit tool table..." in Axis).
+ Other valid entries are "gedit", "gnome-terminal -e vim", and "gvim".
+ This entry does not apply to gmoccapy, as gmoccapy has an integrated editor.
+* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the <> for more information.
* 'PYVCP_POSITION = BOTTOM' - The placement of the PyVCP panel in the AXIS user interface.
- If this variable is omitted the panel will default to the right side. The only valid
- alternative is BOTTOM. See the <> for more information.
-
+ If this variable is omitted the panel will default to the right side. The only valid
+ alternative is BOTTOM. See the <> for more information.
* 'LATHE = 1' - Any non-empty value (including "0") causes axis to use "lathe mode" with a top view and with Radius and Diameter on the DRO.
-
* 'BACK_TOOL_LATHE = 1' - Any non-empty value (including "0") causes axis to use "back tool lathe mode" with inverted X axis.
-
* 'FOAM = 1' - Any non-empty value (including "0") causes axis to change the display for foam-cutter mode.
-
* 'GEOMETRY = XYZABCUVW' - Controls the *preview* and *backplot* of motion.
- This item consists of a sequence of axis letters and control characters:
-
-. The letters X,Y,Z specify translation along the named coordinate.
-. The letters A,B,C specify rotation about the corresponding axes X,Y,Z.
-. The letters U,V,W specify translation along the related axes X,Y,Z.
-. Each letter specified must occur in [TRAJ]COORDINATES to have an effect.
-. A "*-*" character preceding any letter inverts the direction of the operation.
-. The translation and rotation operations are evaluated *right-to-left*.
- So using GEOMETRY=XYZBC specifies a C rotation followed by a B rotation
- followed by Z,Y,X translations. (The ordering of consecutive translation
- letters is immaterial.)
-. If the "*!*" special character appears anywhere in the sequence, rotations
- for the A,B,C axis letters respect the offsets (G5x, G92) applied to X,Y,Z.
-. The proper GEOMETRY string depends on the machine configuration and
- the kinematics used to control it. The order of the letters is important.
- For example, rotating around C then B is different than rotating
- around B then C.
-. Rotations are by default applied with respect to the machine origin.
- Example: GEOMETRY=CXYZ first translates the control point to X,Y,Z and then
- performs a C rotation about the Z axis centered at the machine origin.
-. Rotations applied after translations may use the "*!*" provision to
- to act with respect to the current machine offset. Example: GEOMETRY=!CXYZ
- translates the control point to the X,Y,Z position and then performs
- a C rotation about the machine origin displaced by the current G5x,G92
- X,Y,Z offsets. (Changing offsets may require a program reload).
-. UVW translation example: GEOMETRY=XYZUVW causes UVW to move in the coordinate
- system of the tool and XYZ to move in the coordinate system of the material
-. Foam-cutting machines (FOAM = 1) should specify "XY;UV" or leave the value
- blank even though this value is presently ignored in foam-cutter mode. A
- future version may define what ";" means, but if it does "XY;UV" will mean
- the same as the current foam default.
+ This item consists of a sequence of axis letters and control characters:
+
+. The letters X,Y,Z specify translation along the named coordinate.
+. The letters A,B,C specify rotation about the corresponding axes X,Y,Z.
+. The letters U,V,W specify translation along the related axes X,Y,Z.
+. Each letter specified must occur in [TRAJ]COORDINATES to have an effect.
+. A "*-*" character preceding any letter inverts the direction of the operation.
+. The translation and rotation operations are evaluated *right-to-left*.
+ So using GEOMETRY=XYZBC specifies a C rotation followed by a B rotation
+ followed by Z,Y,X translations. (The ordering of consecutive translation
+ letters is immaterial.)
+. If the "*!*" special character appears anywhere in the sequence, rotations
+ for the A,B,C axis letters respect the offsets (G5x, G92) applied to X,Y,Z.
+. The proper GEOMETRY string depends on the machine configuration and
+ the kinematics used to control it. The order of the letters is important.
+ For example, rotating around C then B is different than rotating
+ around B then C.
+. Rotations are by default applied with respect to the machine origin.
+ Example: GEOMETRY=CXYZ first translates the control point to X,Y,Z and then
+ performs a C rotation about the Z axis centered at the machine origin.
+. Rotations applied after translations may use the "*!*" provision to
+ to act with respect to the current machine offset. Example: GEOMETRY=!CXYZ
+ translates the control point to the X,Y,Z position and then performs
+ a C rotation about the machine origin displaced by the current G5x,G92
+ X,Y,Z offsets. (Changing offsets may require a program reload).
+. UVW translation example: GEOMETRY=XYZUVW causes UVW to move in the coordinate
+ system of the tool and XYZ to move in the coordinate system of the material
+. Foam-cutting machines (FOAM = 1) should specify "XY;UV" or leave the value
+ blank even though this value is presently ignored in foam-cutter mode. A
+ future version may define what ";" means, but if it does "XY;UV" will mean
+ the same as the current foam default.
[NOTE]
If no [DISPLAY]GEOMETRY is included in the inifile, a default is provided
by the [DISPLAY]DISPLAY gui program (typically "XYZABCUVW")
-
-* 'ARCDIVISION = 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
- *ARCDIVISION* 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%).
-
-* 'MDI_HISTORY_FILE =' - The name of a local MDI history file. If this is not specified Axis
- will save the MDI history in *.axis_mdi_history* in the user's home
- directory. This is useful if you have multiple configurations on one
- computer.
-
-* 'JOG_AXES =' - The order in which jog keys are assigned to axis letters. The left and right arrows are assigned to the first axis letter, up and down to the second, page up/page down to the third, and left and right bracket to the fourth. If unspecified, the default is determined from the [TRAJ]COORDINATES, [DISPLAY]LATHE and [DISPLAY]FOAM values.
-
+* 'ARCDIVISION = 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 *ARCDIVISION* 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%).
+* 'MDI_HISTORY_FILE =' - The name of a local MDI history file.
+ If this is not specified Axis will save the MDI history in *.axis_mdi_history* in the user's home directory.
+ This is useful if you have multiple configurations on one computer.
+* 'JOG_AXES =' - The order in which jog keys are assigned to axis letters.
+ The left and right arrows are assigned to the first axis letter, up and down to the second,
+ page up/page down to the third, and left and right bracket to the fourth.
+ If unspecified, the default is determined from the [TRAJ]COORDINATES, [DISPLAY]LATHE and [DISPLAY]FOAM values.
* 'JOG_INVERT =' - For each axis letter, the jog direction is inverted. The default is "X" for lathes and blank otherwise.
[NOTE]
The settings for 'JOG_AXES' and 'JOG_INVERT' apply to world mode jogging by axis coordinate letter
-and are in effect while in world mode after successful homing. When operating in joint
+and are in effect while in world mode after successful homing. When operating in joint
mode prior to homing, keyboard jog keys are assigned in a fixed sequence: left/right: joint0,
up/down: joint1, page up/page down: joint2, left/right bracket: joint3
-
* 'USER_COMMAND_FILE = mycommands.py' -- The name of an optional, configuration-specific
python file sourced by the axis gui instead of the user-specific file `~/.axisrc`.
@@ -451,9 +405,8 @@ The following [DISPLAY] item is used by the TKLinuxCNC interface only.
* 'HELP_FILE = tklinucnc.txt' - Path to help file.
-[[sec:filter-section]](((INI File, FILTER Section)))
-
-=== [FILTER] Section
+[[sec:filter-section]]
+=== [FILTER] Section(((INI File, FILTER Section)))
AXIS and gmoccapy have the ability to send loaded files through a filter program.
This filter can do any desired task: Something as simple as making sure
@@ -546,110 +499,99 @@ def main(argv):
print "%s" % item
if __name__ == "__main__":
- main(sys.argv[1:])
+ main(sys.argv[1:])
----
[[sec:rs274ngc-section]](((INI File, RS274NGC Section)))
[[gcode:ini-features]]
-
=== [RS274NGC] Section
* 'PARAMETER_FILE = myfile.var' -
- (((PARAMETER FILE))) The file located in the same directory as the ini
- file which contains the parameters used by the interpreter (saved
- between runs).
+ (((PARAMETER FILE))) The file located in the same directory as the ini
+ 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 = G17 G20 G40 G49 G64 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
- 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.
-
-* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' -
- (((SUBROUTINE PATH))) Specifies a colon (:) separated list of up to 10
- directories to be searched when single-file subroutines are specified
- in G-code. These directories are searched after searching
- [DISPLAY]PROGRAM_PREFIX (if it is specified) and before searching
- [WIZARD]WIZARD_ROOT (if specified). The paths are searched in the order
- that they are listed. The first matching subroutine file
- found in the search is used. Directories are specified relative to the
- current directory for the ini file or as absolute paths. The list must
- contain no intervening whitespace.
+ (((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 = G17 G20 G40 G49 G64 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
+ 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.
+
+* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' - (((SUBROUTINE PATH)))
+ Specifies a colon (:) separated list of up to 10
+ directories to be searched when single-file subroutines are specified
+ in G-code. These directories are searched after searching
+ [DISPLAY]PROGRAM_PREFIX (if it is specified) and before searching
+ [WIZARD]WIZARD_ROOT (if specified). The paths are searched in the order
+ that they are listed. The first matching subroutine file
+ found in the search is used. Directories are specified relative to the
+ current directory for the ini file or as absolute paths. The list must
+ contain no intervening whitespace.
* 'CENTER_ARC_RADIUS_TOLERANCE_INCH = n' Default 0.00005
* 'CENTER_ARC_RADIUS_TOLERANCE_MM = n' Default 0.00127
* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH)))
- Specifies a list of colon (:) separated directories for user defined
- functions. Directories are specified relative to the current directory
- for the ini file or as absolute paths. The list must contain no intervening
- whitespace.
-+
-A search is made for each possible user defined function, typically
-(M100-M199). The search order is:
-+
-. [DISPLAY]PROGRAM_PREFIX (if specified)
-. If [DISPLAY]PROGRAM_PREFIX is not specified, search the default location: nc_files
-. Then search each directory in the list [RS274NGC]USER_M_PATH
-+
-The first executable M1xx found in the search is used for each M1xx.
+ Specifies a list of colon (:) separated directories for user defined functions.
+ Directories are specified relative to the current directory for the ini file or as absolute paths.
+ The list must contain no intervening whitespace.
+ +
+ A search is made for each possible user defined function, typically
+ (M100-M199). The search order is:
+ +
+ . [DISPLAY]PROGRAM_PREFIX (if specified)
+ . If [DISPLAY]PROGRAM_PREFIX is not specified, search the default location: nc_files
+ . Then search each directory in the list [RS274NGC]USER_M_PATH
+ +
+ The first executable M1xx found in the search is used for each M1xx.
[NOTE]
-The maximum number of USER_M_PATH directories is defined at compile
-time (typ: 'USER_DEFINED_FUNCTION_MAX_DIRS == 5').
+The maximum number of USER_M_PATH directories is defined at compile time (typ: 'USER_DEFINED_FUNCTION_MAX_DIRS == 5').
* 'INI_VARS = 1' Default 1
-Allows G-code programs to read values from the INI file using the format
-#<_ini[section]name>. See <>.
+ Allows G-code programs to read values from the INI file using the format #<_ini[section]name>.
+ See <>.
* 'HAL_PIN_VARS = 1' Default 1
-Allows G-code programs to read the values of HAL pins using the format
-#<_hal[Hal item]>. Variable access is read-only.
-See <> for more details and an
-important caveat.
+ Allows G-code programs to read the values of HAL pins using the format #<_hal[Hal item]>.
+ Variable access is read-only.
+ See <> for more details and an important caveat.
* 'RETAIN_G43 = 0' Default 0
-When set, you can turn on G43 after loading the first tool,
-and then not worry about it through the program. When you
-finally unload the last tool, G43 mode is canceled.
+ When set, you can turn on G43 after loading the first tool, and then not worry about it through the program.
+ When you finally unload the last tool, G43 mode is canceled.
* 'OWORD_NARGS = 0' Default 0
-If this feature is enabled then a called subroutine can determine the
-number of actual positional parameters passed by inspecting the
-+#+ parameter.
+ If this feature is enabled then a called subroutine can determine the
+ number of actual positional parameters passed by inspecting the +#+ parameter.
* 'NO_DOWNCASE_OWORD = 0' Default 0
-Preserve case in O-word names within comments if set, enables reading of
-mixed-case HAL items in structured comments like
-'(debug, #<_hal[MixedCaseItem])'.
+ Preserve case in O-word names within comments if set, enables reading of
+ mixed-case HAL items in structured comments like '(debug, #<_hal[MixedCaseItem])'.
* 'OWORD_WARNONLY = 0' Default 0
-Warn rather than error in case of errors in O-word subroutines.
+ Warn rather than error in case of errors in O-word subroutines.
[NOTE] The above six options were controlled by the 'FEATURES' bitmask
-in versions of LinuxCNC prior to 2.8. This INI tag will no longer
-work.
+in versions of LinuxCNC prior to 2.8. This INI tag will no longer work.
[NOTE]
[WIZARD]WIZARD_ROOT is a valid search path but the Wizard has not been fully
implemented and the results of using it are unpredictable.
* 'REMAP=M400 modalgroup=10 argspec=Pq ngc=myprocedure'
-See <> chapter for details.
+ See <> chapter for details.
* 'ON_ABORT_COMMAND=O call'
-See <> chapter for details.
-
-[[sec:emcmot-section]](((INI File, EMCMOT Section)))
+ See <> chapter for details.
-=== [EMCMOT] Section
+[[sec:emcmot-section]]
+=== [EMCMOT] Section(((INI File, EMCMOT Section)))
This section is a custom section and is not used by LinuxCNC directly. Most
configurations use values from this section to load the motion controller. For
@@ -657,80 +599,70 @@ more information on the motion controller see the <>
Section.
* 'EMCMOT = motmod' - the motion controller name is typically used here.
-
* 'BASE_PERIOD = 50000' - the 'Base' task period in nanoseconds.
-
* 'SERVO_PERIOD = 1000000' - This is the "Servo" task period in nanoseconds.
-
* 'TRAJ_PERIOD = 100000' - This is the 'Trajectory Planner' task period in
nanoseconds.
-
* 'COMM_TIMEOUT = 1.0' - Number of seconds to wait for Motion (the
realtime part of the motion controller) to acknowledge receipt of
messages from Task (the non-realtime part of the motion controller).
-
* HOMEMOD = alternate_homing_module [home_parms=value]
The HOMEMOD variable is optional. If specified, use a specified (user-built)
module instead of the default (homemod). Module parameters (home_parms) may be
included if supported by the named module. The setting may be overridden
from the command line using the -m option ($linuxcnc -h)
-[[sec:task-section]](((INI File, TASK Section)))
-
-=== [TASK] Section
+[[sec:task-section]]
+=== [TASK] Section(((INI File, TASK Section)))
* 'TASK = milltask' -
- Specifies the name of the 'task' executable. The 'task' executable does various
- things, such as communicate with the UIs over NML, communicate with the
- realtime motion planner over non-HAL shared memory, and interpret G-code.
- Currently there is only one task executable that makes sense for
- 99.9% of users, milltask.
+ Specifies the name of the 'task' executable. The 'task' executable does various
+ things, such as communicate with the UIs over NML, communicate with the
+ realtime motion planner over non-HAL shared memory, and interpret G-code.
+ Currently there is only one task executable that makes sense for
+ 99.9% of users, milltask.
* 'CYCLE_TIME = 0.010' -
- The period, in seconds, at which TASK 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.
-
-[[sec:hal-section]](((INI File, HAL Section)))
+ The period, in seconds, at which TASK 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.
-=== [HAL] section
+[[sec:hal-section]]
+=== [HAL] section(((INI File, HAL Section)))
* 'HALFILE = example.hal' - Execute the file 'example.hal' at start up.
- If 'HALFILE' 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 'HALFILE', and stepper systems typically have two such files, one which
- specifies the generic stepper configuration ('core_stepper.hal') and
- one which specifies the machine pin out ('xxx_pinout.hal').
+ If 'HALFILE' 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 'HALFILE', and stepper
+ systems typically have two such files, one which specifies the generic
+ stepper configuration ('core_stepper.hal') and one which specifies
+ the machine pin out ('xxx_pinout.hal').
- HALFILES are found using a search. If the named file is found in the directory
- containing the ini file, it is used. If the named file is not found in this
- ini file directory, a search is made using a system library of halfiles.
+ HALFILES are found using a search.
+ If the named file is found in the directory containing the ini file, it is used.
+ If the named file is not found in this ini file directory, a search is made using a system library of halfiles.
- If LinuxCNC is started with the linuxcnc script using the "-H dirname" option,
- the specified dirname is prepended to the search described above so that
- "dirname" is searched first. The "-H dirname" option may be specified more
- than once, directories are prepended in order.
+ If LinuxCNC is started with the linuxcnc script using the "-H dirname" option,
+ the specified dirname is prepended to the search described above so that
+ "dirname" is searched first. The "-H dirname" option may be specified more
+ than once, directories are prepended in order.
- A HALFILE may also be specified as an absolute path (when the name starts with
- a '/' character). Absolute paths are not recommended as their use may limit
- relocation of configurations.
+ A HALFILE may also be specified as an absolute path (when the name starts with
+ a '/' character). Absolute paths are not recommended as their use may limit
+ relocation of configurations.
* 'HALFILE = texample.tcl [arg1 [arg2] ...]]' - Execute the tcl file 'texample.tcl'
- at start up with arg1, arg2, etc as ::argv list. Files with a .tcl suffix are
- processed as above but use haltcl for processing See the
- <> for more information.
-
-* 'HALFILE = LIB:sys_example.hal' - Execute the system library file 'sys_example.hal'
- at start up.
- Explicit use of the LIB: prefix causes use of the system library HALFILE without
- searching the ini file directory.
-
-* 'HALFILE = LIB:sys_texample.tcl [arg1 [arg2 ...]]' - Execute the system library
- file 'sys_texample.tcl' at start up.
- Explicit use of the LIB: prefix causes use of the system library HALFILE without
- searching the ini file directory.
-+
+ at start up with arg1, arg2, etc as ::argv list. Files with a .tcl suffix are
+ processed as above but use haltcl for processing See the
+ <> for more information.
+* 'HALFILE = texample.tcl [arg1 [arg2] ...]]' - Execute the tcl file 'texample.tcl' at start up with arg1, arg2, etc as ::argv list.
+ Files with a .tcl suffix are processed as above but use haltcl for processing.
+ See the <> for more information.
+* 'HALFILE = LIB:sys_example.hal' - Execute the system library file 'sys_example.hal' at start up.
+ Explicit use of the LIB: prefix causes use of the system library HALFILE without searching the ini file directory.
+* 'HALFILE = LIB:sys_texample.tcl [arg1 [arg2 ...]]' - Execute the system library file 'sys_texample.tcl' at start up.
+ Explicit use of the LIB: prefix causes use of the system library HALFILE without searching the ini file directory.
+
HALFILE items specify files that loadrt Hal components and make signal
connections between component pins. Common mistakes are 1) omission of the
addf statement needed to add a component's function(s) to a thread, 2)
@@ -739,287 +671,271 @@ almost always an error. Signals usually include one or more input
connections and a single output (but both are not strictly required).
A system library file is provided to make checks for these conditions and
report to stdout and in a popup gui:
+
----
HALFILE = LIB:halcheck.tcl [ nopopup ]
----
+
[NOTE]
The LIB:halcheck.tcl line should be the last [HAL]HALFILE.
Specify the 'nopopup' option to suppress the popup message and allow immediate starting.
Connections made using a POSTGUI_HALFILE are not checked.
+* 'TWOPASS = ON' - Use twopass processing for loading HAL components.
+ With TWOPASS processing, [HAL]HALFILE= lines are processed in two passes.
+ In the first pass (pass0), all HALFILES are read and multiple appearances of loadrt and loadusr commands are accumulated.
+ These accumulated load commands are executed at the end of pass0.
+ This accumulation allows load lines to be specified more than once for a given component (provided the names= names used are unique on each use).
+ In the second pass (pass1), the HALFILES are reread and all commands except the previously executed load commands are executed.
+* 'TWOPASS = nodelete verbose' - The TWOPASS feature can be activated with any non-null string including the keywords verbose and nodelete.
+ The verbose keyword causes printing of details to stdout.
+ The nodelete keyword preserves temporary files in /tmp.
-* 'TWOPASS = ON' - Use twopass processing for loading HAL components. With TWOPASS processing,
- [HAL]HALFILE= lines are processed in two passes. In the first pass (pass0), all
- HALFILES are read and multiple appearances of loadrt and loadusr commands are accumulated.
- These accumulated load commands are executed at the end of pass0. This accumulation allows
- load lines to be specified more than once for a given component (provided the
- names= names used are unique on each use). In the second pass (pass1), the
- HALFILES are reread and all commands except the previously executed load commands
- are executed.
-
-* 'TWOPASS = nodelete verbose' - The TWOPASS feature can be activated with any
- non-null string including the keywords verbose and nodelete. The verbose
- keyword causes printing of details to stdout. The nodelete keyword preserves
- temporary files in /tmp.
-+
For more information see the <> chapter.
* 'HALCMD = command' - Execute 'command' as a single HAL command.
- If 'HALCMD' is specified multiple times, the commands are executed in the order
- they appear in the ini file. 'HALCMD' lines are executed after all
- 'HALFILE' lines.
+ If 'HALCMD' is specified multiple times, the commands are executed in the order
+ they appear in the ini file. 'HALCMD' lines are executed after all
+ 'HALFILE' lines.
* 'SHUTDOWN = shutdown.hal' - Execute the file 'shutdown.hal' when LinuxCNC is exiting.
- Depending on the hardware drivers used, this may make it possible to set outputs to
- defined values when LinuxCNC 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.
-
-* 'POSTGUI_HALFILE = example2.hal' - Execute 'example2.hal' after the GUI has created
- its HAL pins. Some GUIs create hal pins and support the use of a postgui halfile
- to use them. GUIs that support postgui halfiles include Touchy, Axis, Gscreen, and
- gmoccapy.
+ Depending on the hardware drivers used, this may make it possible to set outputs to
+ defined values when LinuxCNC 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.
- See section <> Section for more information.
+* 'POSTGUI_HALFILE = example2.hal' - Execute 'example2.hal' after the GUI has created its HAL pins.
+ Some GUIs create hal pins and support the use of a postgui halfile to use them.
+ GUIs that support postgui halfiles include Touchy, Axis, Gscreen, and gmoccapy.
-* 'HALUI = halui' - adds the HAL user interface pins. For more information see
- the <> chapter.
+ See section <> for more information.
-[[sec:halui-section]](((INI File, HALUI Section)))
+* 'HALUI = halui' - adds the HAL user interface pins. For more information see the <> chapter.
-=== [HALUI] section
+[[sec:halui-section]]
+=== [HALUI] section(((INI File, HALUI Section)))
* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' -
- An MDI command can be executed by using halui.mdi-command-00. Increment
- the number for each command listed in the [HALUI] section.
+ An MDI command can be executed by using halui.mdi-command-00. Increment
+ the number for each command listed in the [HALUI] section.
-[[sec:applications-section]](((INI File, APPLICATIONS Section)))
-
-=== [APPLICATIONS] Section
+[[sec:applications-section]]
+=== [APPLICATIONS] Section(((INI File, APPLICATIONS Section)))
LinuxCNC can start other applications before the specified gui is started.
The applications can be started after a specified delay to allow for
gui-dependent actions (like creating gui-specific hal pins).
-* 'DELAY = value' - seconds to wait beore starting other
- applications. A delay may be needed if an application has
- dependencies on [HAL]POSTGUI_HALFILE actions or gui-created
- hal pins (default DELAY=0).
+* 'DELAY = value' - seconds to wait beore starting other applications.
+ A delay may be needed if an application has dependencies on [HAL]POSTGUI_HALFILE actions or gui-created hal pins
+ (default DELAY=0).
* 'APP = appname [arg1 [arg2 ...]]' - Application to be started.
- This specification can be included multiple times. The appname can be
- explicitly named as an absolute or tilde specified filename (first character
- is / or ~), a relative filename (first characters of filename are ./), or as
- a file in the inifile directory. If no executable file is found using
- these names, then the user search PATH is used to find the application.
-
- Examples:
+ This specification can be included multiple times.
+ The appname can be explicitly named as an absolute or tilde specified filename (first character is / or ~),
+ a relative filename (first characters of filename are ./), or as a file in the inifile directory.
+ If no executable file is found using these names, then the user search PATH is used to find the application.
-** Simulate inputs to hal pins for testing (using sim_pin -- a simple gui to set inputs to parameters, unconnected pins, or signals with no writers):
+ Examples:
+** Simulate inputs to hal pins for testing (using sim_pin -- a simple gui to set inputs to parameters,
+ unconnected pins, or signals with no writers):
APP = sim_pin motion.probe-input halui.abort motion.analog-in-00
-
-** Invoke halshow with a previuosly saved watchlist. Since the linuxcnc script sets the working directory to the directory for the inifile, you can refer to files in that directory (example: my.halshow):
+** Invoke halshow with a previuosly saved watchlist.
+ Since linuxcnc sets the working directory to the directory for the inifile,
+ you can refer to files in that directory (example: my.halshow):
APP = halshow my.halshow
-
** Alternatively, a watchlist file identified with a full pathname could be specified:
- APP = halshow ~/saved_shows/spindle.halshow
-
-** Open halscope using a previously saved configuration:
+ APP = halshow ~/saved_shows/spindle.halshow
+** Open halscope using a previously saved configuration:
- APP = halscope -i my.halscope
+ APP = halscope -i my.halscope
-[[sec:traj-section]](((INI File, TRAJ Section)))
-
-=== [TRAJ] Section
+[[sec:traj-section]]
+=== [TRAJ] Section(((INI File, TRAJ Section)))
[WARNING]
-The new Trajectory Planner (TP) is on by default. +
+----
+The new Trajectory Planner (TP) is on by default.
If you have no TP settings in your [TRAJ] section - LinuxCNC defaults to: +
ARC_BLEND_ENABLE = 1 +
ARC_BLEND_FALLBACK_ENABLE = 0 +
ARC_BLEND_OPTIMIZATION_DEPTH = 50 +
ARC_BLEND_GAP_CYCLES = 4 +
ARC_BLEND_RAMP_FREQ = 100
+----
The [TRAJ] section contains general parameters for the trajectory
planning module in 'motion'.
-* 'ARC_BLEND_ENABLE = 1' - Turn on new TP. If set to 0 TP uses parabolic
- blending (1 segment look ahead.) Default value 1.
-
-* 'ARC_BLEND_FALLBACK_ENABLE = 0' - Optionally fall back to parabolic blends
- if the estimated speed is faster. However, this estimate is rough, and it
- seems that just disabling it gives better performance. Default value 0.
-
+* 'ARC_BLEND_ENABLE = 1' - Turn on new TP. If set to 0 TP uses parabolic blending (1 segment look ahead).
+ Default value 1.
+* 'ARC_BLEND_FALLBACK_ENABLE = 0' - Optionally fall back to parabolic blends if the estimated speed is faster.
+ However, this estimate is rough, and it seems that just disabling it gives better performance.
+ Default value 0.
* 'ARC_BLEND_OPTIMIZATION_DEPTH = 50' - Look ahead depth in number of segments.
-+
-To expand on this a bit, you can choose this value somewhat arbitrarily.
-Here's a formula to estimate how much 'depth' you need for a particular
-config:
-+
+ +
+ To expand on this a bit, you can choose this value somewhat arbitrarily.
+ Here's a formula to estimate how much 'depth' you need for a particular
+ config:
+ +
+----
# n = v_max / (2.0 * a_max * t_c)
# where:
# n = optimization depth
# v_max = max axis velocity (UU / sec)
# a_max = max axis acceleration (UU / sec)
# t_c = servo period (seconds)
-+
-So, a machine with a maximum axis velocity of 10 IPS, a max acceleration
-of 100 IPS^2, and a servo period of 0.001 sec would need:
-+
-10 / (2.0 * 100 * 0.001) = 50 segments to always reach maximum velocity
-along the fastest axis.
-+
-In practice, this number isn't that important to tune, since the
-look ahead rarely needs the full depth unless you have lots of very short
-segments. If during testing, you notice strange slowdowns and can't
-figure out where they come from, first try increasing this depth using
-the formula above.
-+
-If you still see strange slowdowns, it may be because you have short
-segments in the program. If this is the case, try adding a small
-tolerance for Naive CAM detection. A good rule of thumb is this:
-+
+----
+ +
+ So, a machine with a maximum axis velocity of 10 IPS, a max acceleration
+ of 100 IPS^2, and a servo period of 0.001 sec would need:
+ +
+ 10 / (2.0 * 100 * 0.001) = 50 segments to always reach maximum velocity
+ along the fastest axis.
+ +
+ In practice, this number isn't that important to tune, since the
+ look ahead rarely needs the full depth unless you have lots of very short
+ segments. If during testing, you notice strange slowdowns and can't
+ figure out where they come from, first try increasing this depth using
+ the formula above.
+ +
+ If you still see strange slowdowns, it may be because you have short
+ segments in the program. If this is the case, try adding a small
+ tolerance for Naive CAM detection. A good rule of thumb is this:
+ +
+----
# min_length ~= v_req * t_c
# where:
# v_req = desired velocity in UU / sec
# t_c = servo period (seconds)
-+
-If you want to travel along a path at 1 IPS = 60 IPM, and your servo
-period is 0.001 sec, then any segments shorter than min_length will slow
-the path down. If you set Naive CAM tolerance to around this min length,
-overly short segments will be combined together to eliminate this
-bottleneck. Of course, setting the tolerance too high means big path
-deviations, so you have to play with it a bit to find a good value. I'd
-start at 1/2 of the min_length, then work up as needed.
-
-* 'ARC_BLEND_GAP_CYCLES = 4' How short the previous segment must be before
- the trajectory planner 'consumes' it.
-+
-Often, a circular arc blend will leave short line segments in between
-the blends. Since the geometry has to be circular, we can't blend over
-all of a line if the next one is a little shorter. Since the trajectory
-planner has to touch each segment at least once, it means that very tiny
-segments will slow things down significantly. My fix to this way to
-"consume" the short segment by making it a part of the blend arc. Since
-the line+blend is one segment, we don't have to slow down to hit the
-very short segment. Likely, you won't need to touch this setting.
-
-* 'ARC_BLEND_RAMP_FREQ = 20' - This is a 'cutoff' frequency for using ramped
- velocity.
-+
-'Ramped velocity' in this case just means constant acceleration over the
-whole segment. This is less optimal than a trapezoidal velocity profile,
-since the acceleration is not maximized. However, if the segment is
-short enough, there isn't enough time to accelerate much before we hit
-the next segment. Recall the short line segments from the previous
-example. Since they're lines, there's no cornering acceleration, so
-we're free to accelerate up to the requested speed. However, if this
-line is between two arcs, then it will have to quickly decelerate again
-to be within the maximum speed of the next segment. This means that we
-have a spike of acceleration, then a spike of deceleration, causing a
-large jerk, for very little performance gain. This setting is a way to
-eliminate this jerk for short segments.
-+
-Basically, if a segment will complete in less time than 1 /
-ARC_BLEND_RAMP_FREQ, we don't bother with a trapezoidal velocity profile
-on that segment, and use constant acceleration. (Setting
-ARC_BLEND_RAMP_FREQ = 1000 is equivalent to always using trapezoidal
-acceleration, if the servo loop is 1kHz).
-+
-You can characterize the worst-case loss of performance by comparing the
-velocity that a trapezoidal profile reaches vs. the ramp:
-+
+----
+ +
+ If you want to travel along a path at 1 IPS = 60 IPM, and your servo
+ period is 0.001 sec, then any segments shorter than min_length will slow
+ the path down. If you set Naive CAM tolerance to around this min length,
+ overly short segments will be combined together to eliminate this
+ bottleneck. Of course, setting the tolerance too high means big path
+ deviations, so you have to play with it a bit to find a good value. I'd
+ start at 1/2 of the min_length, then work up as needed.
+* 'ARC_BLEND_GAP_CYCLES = 4' How short the previous segment must be before the trajectory planner 'consumes' it.
+ +
+ Often, a circular arc blend will leave short line segments in between
+ the blends. Since the geometry has to be circular, we can't blend over
+ all of a line if the next one is a little shorter. Since the trajectory
+ planner has to touch each segment at least once, it means that very tiny
+ segments will slow things down significantly. My fix to this way to
+ "consume" the short segment by making it a part of the blend arc. Since
+ the line+blend is one segment, we don't have to slow down to hit the
+ very short segment. Likely, you won't need to touch this setting.
+* 'ARC_BLEND_RAMP_FREQ = 20' - This is a 'cutoff' frequency for using ramped velocity.
+ +
+ 'Ramped velocity' in this case just means constant acceleration over the whole segment.
+ This is less optimal than a trapezoidal velocity profile, since the acceleration is not maximized.
+ However, if the segment is short enough, there isn't enough time to accelerate much before we hit the next segment.
+ Recall the short line segments from the previous example.
+ Since they're lines, there's no cornering acceleration, so we're free to accelerate up to the requested speed.
+ However, if this line is between two arcs, then it will have to quickly decelerate again to be within the maximum speed of the next segment.
+ This means that we have a spike of acceleration, then a spike of deceleration, causing a large jerk, for very little performance gain.
+ This setting is a way to eliminate this jerk for short segments.
+ +
+ Basically, if a segment will complete in less time than 1 /
+ ARC_BLEND_RAMP_FREQ, we don't bother with a trapezoidal velocity profile
+ on that segment, and use constant acceleration. (Setting
+ ARC_BLEND_RAMP_FREQ = 1000 is equivalent to always using trapezoidal
+ acceleration, if the servo loop is 1kHz).
+ +
+ You can characterize the worst-case loss of performance by comparing the
+ velocity that a trapezoidal profile reaches vs. the ramp:
+ +
+----
# v_ripple = a_max / (4.0 * f)
# where:
# v_ripple = average velocity "loss" due to ramping
# a_max = max axis acceleration
# f = cutoff frequency from INI
-+
-For the aforementioned machine, the ripple for a 20Hz cutoff frequency
-is 100 / (4 * 20) = 1.25 IPS. This seems high, but keep in mind that it
-is only a worst-case estimate. In reality , the trapezoidal motion
-profile is limited by other factors, such as normal acceleration or
-requested velocity, and so the actual performance loss should be much
-smaller. Increasing the cutoff frequency can squeeze out more
-performance, but make the motion rougher due to acceleration
-discontinuities. A value in the range 20Hz to 200Hz should be reasonable
-to start.
-+
+----
+ +
+ For the aforementioned machine, the ripple for a 20Hz cutoff frequency
+ is 100 / (4 * 20) = 1.25 IPS. This seems high, but keep in mind that it
+ is only a worst-case estimate. In reality , the trapezoidal motion
+ profile is limited by other factors, such as normal acceleration or
+ requested velocity, and so the actual performance loss should be much
+ smaller. Increasing the cutoff frequency can squeeze out more
+ performance, but make the motion rougher due to acceleration
+ discontinuities. A value in the range 20Hz to 200Hz should be reasonable
+ to start.
+
Finally, no amount of tweaking will speed up a toolpath with lots of
small, tight corners, since you're limited by cornering acceleration.
* 'SPINDLES = 3' - The number of spindles to support. It is imperative that this
- number matches the "num_spindles" parameter passed to the motion module.
+ number matches the "num_spindles" parameter passed to the motion module.
* 'COORDINATES = X Y Z' - The names of the axes being controlled.
- Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES'
- are accepted in G-code. It is permitted to write an axis name more than
- once (e.g., X Y Y Z for a gantry machine).
- For the common 'trivkins kinematics', joint numbers are assigned in sequence
- according to the trivkins parameter 'coordinates='. So, for trivkins
- 'coordinates=xz', joint0 corresponds to X and joint1 corresponds to Z.
- See the kinematics man page ('$ man kins') for information on
- trivkins and other kinematics modules.
+ Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES'
+ are accepted in G-code. It is permitted to write an axis name more than
+ once (e.g., X Y Y Z for a gantry machine).
+ For the common 'trivkins kinematics', joint numbers are assigned in sequence
+ according to the trivkins parameter 'coordinates='. So, for trivkins
+ 'coordinates=xz', joint0 corresponds to X and joint1 corresponds to Z.
+ See the kinematics man page ('$ man kins') for information on
+ trivkins and other kinematics modules.
* 'LINEAR_UNITS = ' - (((LINEAR UNITS))) Specifies the 'machine units' for linear axes.
- Possible choices are mm or inch.
- This does not affect the linear units in NC code (the G20 and G21
- words do this).
+ Possible choices are mm or inch.
+ This does not affect the linear units in NC code (the G20 and G21 words do this).
* 'ANGULAR_UNITS = ' - (((ANGULAR UNITS))) 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).
- This does not affect the angular units of NC code. In RS274NGC, A-, B-
- and C- words are always expressed in degrees.
+ Possible choices are 'deg', 'degree' (360 per circle), 'rad', 'radian'
+ (2pi per circle), 'grad', or 'gon' (400 per circle).
+ This does not affect the angular units of NC code. In RS274NGC, A-, B- and C- words are always expressed in degrees.
* 'DEFAULT_LINEAR_VELOCITY = 0.0167' - The initial rate for jogs of linear axes, in
- machine units per second. The value shown in 'Axis' equals
- machine units per minute.
+ machine units per second. The value shown in 'Axis' equals machine units per minute.
* 'DEFAULT_LINEAR_ACCELERATION = 2.0' - In machines with nontrivial kinematics, the acceleration used
- for "teleop" (Cartesian space) jogs, in 'machine units' per second per second.
+ for "teleop" (Cartesian space) jogs, in 'machine units' per second per second.
* 'MAX_LINEAR_VELOCITY = 5.0' - (((MAX VELOCITY))) The maximum velocity for any axis or coordinated
- move, in 'machine units' per second. The value shown equals 300 units per
- minute.
+ move, in 'machine units' per second.
+ The value shown equals 300 units per minute.
* 'MAX_LINEAR_ACCELERATION = 20.0' - (((MAX ACCELERATION))) The maximum acceleration for any axis or
- coordinated axis move, in 'machine units' per second per second.
+ coordinated axis move, in 'machine units' per second per second.
* 'POSITION_FILE = 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 LinuxCNC is started. This can help on smaller
- machines without home switches. If using the Mesa resolver interface
- this file can be used to emulate absolute encoders and eliminate the
- need for homing (with no loss of accuracy). See the hostmot2 manpage
- for more details.
+ 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 LinuxCNC is started.
+ This can help on smaller machines without home switches.
+ If using the Mesa resolver interface this file can be used to emulate absolute encoders and eliminate
+ the need for homing (with no loss of accuracy).
+ See the hostmot2 manpage for more details.
* 'NO_FORCE_HOMING = 1' - The default behavior is for LinuxCNC to force the
- user to home the machine before any MDI command or a program is run.
- Normally, only jogging is allowed before homing. For configurations using
- identity kinematics, setting NO_FORCE_HOMING = 1 allows the user to make
- MDI moves and run programs without homing the machine first. Interfaces
- using identity kinematics without homing ability will need to have this
- option set to 1.
+ user to home the machine before any MDI command or a program is run.
+ Normally, only jogging is allowed before homing. For configurations using
+ identity kinematics, setting NO_FORCE_HOMING = 1 allows the user to make
+ MDI moves and run programs without homing the machine first. Interfaces
+ using identity kinematics without homing ability will need to have this
+ option set to 1.
[WARNING]
LinuxCNC will not know your joint travel limits when using 'NO_FORCE_HOMING = 1'.
* 'HOME = 0 0 0 0 0 0 0 0 0' - World home position needed for kinematics modules
- that compute world coordinates using kinematicsForward() when switching
- from joint to teleop mode. Up to nine coordinate values (X Y Z A B C U V W)
- may be specified, unused trailing items may be omitted. This value is only
- used for machines with nontrivial kinematics. On machines with trivial
- kinematics (mill, lathe, gantry types) this value is ignored.
- Note: the sim hexapod config requires a non-zero value for the Z coordinate.
+ that compute world coordinates using kinematicsForward() when switching
+ from joint to teleop mode. Up to nine coordinate values (X Y Z A B C U V W)
+ may be specified, unused trailing items may be omitted. This value is only
+ used for machines with nontrivial kinematics. On machines with trivial
+ kinematics (mill, lathe, gantry types) this value is ignored.
+ Note: the sim hexapod config requires a non-zero value for the Z coordinate.
* TPMOD = alternate_trajectory_planning module [tp_parms=value]
The TPMOD variable is optional. If specified, use a specified (user-built)
@@ -1027,85 +943,68 @@ module instead of the default (tpmod). Module parameters (tp_parms) may be
included if supported by the named module. The setting may be overridden
from the command line using the -t option ($linuxcnc -h)
-[[sec:kins-section]](((INI File, KINS Section)))
-
-=== [KINS] Section
+[[sec:kins-section]]
+=== [KINS] Section(((INI File, KINS Section)))
* 'JOINTS = 3' - Specifies the number of joints (motors) in the system.
- For example, a trivkins XYZ machine with a single motor for each axis has 3
- joints. A gantry machine with one motor on each of two of the axes,
- and two motors on the third axis, has 4 joints.
- (This config variable may be used by a gui to set the number of joints
- (num_joints) specified to the motion module (motmod)).
- The Axis gui, pncconf, and stepconf use this item.
+ For example, a trivkins XYZ machine with a single motor for each axis has 3 joints.
+ A gantry machine with one motor on each of two of the axes, and two motors on the third axis, has 4 joints.
+ (This config variable may be used by a gui to set the number of joints (num_joints) specified to the motion module (motmod)).
+ The Axis gui, pncconf, and stepconf use this item.
* 'KINEMATICS = trivkins' - Specify a kinematics module for the motion module.
- Guis may use this variable to specify the loadrt line in hal files for
- the motmod module. For more information on kinematics modules see the
- manpage: '$ man kins'
-
-[[sec:axis-section]](((INI File, AXIS Section)))
+ Guis may use this variable to specify the loadrt line in hal files for the motmod module.
+ For more information on kinematics modules see the manpage: '$ man kins'
-=== [AXIS_] Section
+[[sec:axis-section]]
+=== [AXIS_] Section(((INI File, AXIS Section)))
The specifies one of: X Y Z A B C U V W
-* 'MAX_VELOCITY = 1.2' -
- Maximum velocity for this axis in <> per second.
+* 'MAX_VELOCITY = 1.2' - Maximum velocity for this axis in <> per second.
-* 'MAX_ACCELERATION = 20.0' -
- Maximum acceleration for this axis in machine units per
- second squared.
-
-* 'MIN_LIMIT = -1000' -
- (((MIN LIMIT))) The minimum limit (soft limit) for axis motion, in machine units.
- When this limit is exceeded, the controller aborts axis motion.
- The axis must be homed before MIN_LIMIT is in force.
- For a rotary axis (A,B,C typ) with unlimited rotation having no MIN_LIMIT
- for that axis in the [AXIS_] section a value of -1e99 is used.
-
-* 'MAX_LIMIT = 1000' -
- (((MAX LIMIT))) The maximum limit (soft limit) for axis motion, in machine units.
- When this limit is exceeded, the controller aborts axis motion.
- The axis must be homed before MAX_LIMIT is in force.
- For a rotary axis (A,B,C typ) with unlimited rotation having no MAX_LIMIT
- for that axis in the [AXIS_] section a value of 1e99 is used.
-
-* 'WRAPPED_ROTARY = 1' -
- When this is set to 1 for an ANGULAR axis the axis will move 0-359.999
- degrees. Positive Numbers will move the axis in a positive direction and
- negative numbers will move the axis in the negative direction.
-
-* 'LOCKING_INDEXER_JOINT = 4' - This value selects a joint to use for
- a locking indexer for the specified axis . In this example, the
- joint is 4 which would correspond to the B axis for a XYZAB system with
- trivkins (identity) kinematics.
- When set, a G0 move for this axis will initiate an unlock with the
- joint.4.unlock pin then wait for the joint.4.is-unlocked pin then move
- the joint at the rapid rate for that joint. After the move the
- joint.4.unlock will be false and motion will wait for joint.4.is-unlocked
- to go false. Moving with other joints is not allowed when moving a
- locked rotary joint.
- To create the unlock pins, use the motmod parameter:
+* 'MAX_ACCELERATION = 20.0' - Maximum acceleration for this axis in machine units per second squared.
- unlock_joints_mask=jointmask
+* 'MIN_LIMIT = -1000' - (((MIN LIMIT))) The minimum limit (soft limit) for axis motion, in machine units.
+ When this limit is exceeded, the controller aborts axis motion.
+ The axis must be homed before MIN_LIMIT is in force.
+ For a rotary axis (A,B,C typ) with unlimited rotation having no MIN_LIMIT
+ for that axis in the [AXIS_] section a value of -1e99 is used.
+
+* 'MAX_LIMIT = 1000' - (((MAX LIMIT))) The maximum limit (soft limit) for axis motion, in machine units.
+ When this limit is exceeded, the controller aborts axis motion.
+ The axis must be homed before MAX_LIMIT is in force.
+ For a rotary axis (A,B,C typ) with unlimited rotation having no MAX_LIMIT
+ for that axis in the [AXIS_] section a value of 1e99 is used.
+
+* 'WRAPPED_ROTARY = 1' - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees.
+ Positive Numbers will move the axis in a positive direction and negative numbers will move the axis in the negative direction.
- The jointmask bits are: (LSB)0:joint0, 1:joint1, 2:joint2, ...
+* 'LOCKING_INDEXER_JOINT = 4' - This value selects a joint to use for a locking indexer for the specified axis .
+ In this example, the joint is 4 which would correspond to the B axis for a XYZAB system with trivkins (identity) kinematics.
+ When set, a G0 move for this axis will initiate an unlock with the joint.4.unlock pin then wait for the joint.4.is-unlocked pin then move
+ the joint at the rapid rate for that joint.
+ After the move the joint.4.unlock will be false and motion will wait for joint.4.is-unlocked to go false.
+ Moving with other joints is not allowed when moving a locked rotary joint.
+ To create the unlock pins, use the motmod parameter:
- Example: loadrt motmod ... unlock_joints_mask=0x38
- creates unlock pins for joints 3,4,5
+ unlock_joints_mask=jointmask
+
+ The jointmask bits are: (LSB)0:joint0, 1:joint1, 2:joint2, ...
-* 'OFFSET_AV_RATIO = 0.1' - If nonzero, this item enables the use of
- hal input pins for external axis offsets:
+ Example: loadrt motmod ... unlock_joints_mask=0x38
+ creates unlock pins for joints 3,4,5
- 'axis..eoffset-enable'
- 'axis..eoffset-counts'
- 'axis..eoffset-scale'
+* 'OFFSET_AV_RATIO = 0.1' - If nonzero, this item enables the use of hal input pins for external axis offsets:
+----
+ 'axis..eoffset-enable'
+ 'axis..eoffset-counts'
+ 'axis..eoffset-scale'
+----
See the chapter: <> for
usage information.
-[[sec:joint-section]](((INI File, JOINT Section)))
-
-=== [JOINT_] Section
+[[sec:joint-section]]
+=== [JOINT_] Section(((INI File, JOINT Section)))
The specifies the joint number 0 ... (num_joints-1)
The value of 'num_joints' is set by [KINS]JOINTS=
@@ -1136,58 +1035,51 @@ with coordinates=XZ, the joint-axes relationships are:
For more information on kinematics modules see the manpage: '$ man kins'
-* 'TYPE = LINEAR' -
- The type of joint, either LINEAR or ANGULAR.
+* 'TYPE = LINEAR' - The type of joint, either LINEAR or ANGULAR.
-* 'UNITS = INCH' -
- (((UNITS))) If specified, this setting overrides the related [TRAJ] UNITS setting.
- (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this joint is LINEAR,
- [TRAJ]ANGULAR_UNITS if the TYPE of this joint is ANGULAR)
+* 'UNITS = INCH' - (((UNITS)))
+ If specified, this setting overrides the related [TRAJ] UNITS setting.
+ (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this joint is LINEAR,
+ [TRAJ]ANGULAR_UNITS if the TYPE of this joint is ANGULAR)
* 'MAX_VELOCITY = 1.2' -
- Maximum velocity for this joint in <> per second.
+ Maximum velocity for this joint in <> per second.
* 'MAX_ACCELERATION = 20.0' -
- Maximum acceleration for this joint in machine units per
- second squared.
-
-* 'BACKLASH = 0.0000' -
- (((Backlash))) Backlash in machine units. Backlash compensation value
- can be used to make up for small deficiencies in the hardware used to
- drive an joint. If backlash is added to an joint and you are using
- steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the
- MAX_ACCELERATION for the joint. Excessive backlash compensation can cause an
- joint to jerk as it changes direction. If a COMP_FILE is specified for a
- joint BACKLASH is not used.
+ Maximum acceleration for this joint in machine units per second squared.
+
+* 'BACKLASH = 0.0000' - (((Backlash))) Backlash in machine units.
+ Backlash compensation value can be used to make up for small deficiencies in the hardware used to drive an joint.
+ If backlash is added to an joint and you are using steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the MAX_ACCELERATION for the joint.
+ Excessive backlash compensation can cause an joint to jerk as it changes direction.
+ If a COMP_FILE is specified for a joint BACKLASH is not used.
// add a link to machine units
-* 'COMP_FILE = file.extension' -
- (((Compensation))) The compensation file consists of map of position
- information for the joint. Compensation file values are in machine units.
- Each set of values are are on one line separated by a space. The first value
- is the nominal value (the commanded position). The second and third values
- depend on the setting of COMP_FILE_TYPE. Points in between nominal values
- are interpolated between the two nominals. Compensation files must start
- with the smallest nominal and be in ascending order to the largest value of
- nominals. File names are case sensitive and can contain letters and/or
- numbers. Currently the limit inside LinuxCNC is for 256 triplets per joint.
- +
- +
- If COMP_FILE is specified for an joint, BACKLASH is not used. A
- 'COMP_FILE_TYPE' must be specified for each 'COMP_FILE'.
+* 'COMP_FILE = file.extension' - (((Compensation)))
+ The compensation file consists of map of position information for the joint.
+ Compensation file values are in machine units.
+ Each set of values are are on one line separated by a space.
+ The first value is the nominal value (the commanded position).
+ The second and third values depend on the setting of COMP_FILE_TYPE.
+ Points in between nominal values are interpolated between the two nominals.
+ Compensation files must start with the smallest nominal and be in ascending order to the largest value of nominals.
+ File names are case sensitive and can contain letters and/or numbers.
+ Currently the limit inside LinuxCNC is for 256 triplets per joint.
+ +
+ +
+ If COMP_FILE is specified for an joint, BACKLASH is not used.
+ A 'COMP_FILE_TYPE' must be specified for each 'COMP_FILE'.
* 'COMP_FILE_TYPE = 0 or 1' - Specifies the type of compensation file. The
- first value is the nominal (commanded) position for both types.
+ first value is the nominal (commanded) position for both types.
** 'Type 0:' The second value specifies the actual position as the joint is moving
- in the positive direction (increasing value) and the third value specifies
- the actual position as the joint is moving in the negative direction
- (decreasing value).
- +
- +
-Type 0 Example
-+
+ in the positive direction (increasing value) and the third value specifies
+ the actual position as the joint is moving in the negative direction
+ (decreasing value).
+ +
+ Type 0 Example
----
-1.000 -1.005 -0.995
0.000 0.002 -0.003
@@ -1195,40 +1087,34 @@ Type 0 Example
----
** 'Type 1:' The second value specifies positive offset from nominal while
- traveling in the positive direction. The third value specifies the negative
- offset from nominal while traveling in a negative direction.
- +
- +
-Type 1 Example
-+
+ traveling in the positive direction. The third value specifies the negative
+ offset from nominal while traveling in a negative direction.
+ +
+ +
+ Type 1 Example
----
-1.000 0.005 -0.005
0.000 0.002 -0.003
1.000 0.003 -0.004
----
-* 'MIN_LIMIT = -1000' - (((MIN LIMIT))) The minimum limit for joint motion, in
- machine units. When this limit is reached, the controller aborts joint
- motion.
- For a rotary joint with unlimited rotation having no MIN_LIMIT
- for that joint in the [JOINT_N] section a the value -1e99 is used.
+* 'MIN_LIMIT = -1000' - (((MIN LIMIT)))
+ The minimum limit for joint motion, in machine units.
+ When this limit is reached, the controller aborts joint motion.
+ For a rotary joint with unlimited rotation having no MIN_LIMIT for that joint in the [JOINT_N] section a the value -1e99 is used.
-
-* 'MAX_LIMIT = 1000' - (((MAX LIMIT))) The maximum limit for joint motion, in
- machine units. When this limit is reached, the controller aborts joint
- motion.
- For a rotary joint with unlimited rotation having no MAX_LIMIT
- for that joint in the [JOINT_N] section a the value 1e99 is used.
+* 'MAX_LIMIT = 1000' - (((MAX LIMIT)))
+ The maximum limit for joint motion, in machine units.
+ When this limit is reached, the controller aborts joint motion.
+ For a rotary joint with unlimited rotation having no MAX_LIMIT for that joint in the [JOINT_N] section a the value 1e99 is used.
[NOTE]
-
For *identity* kinematics, the [JOINT_N]MIN_LIMIT,MAX_LIMIT settings must equal
or exceed the corresponding (one-to-one identity) [AXIS_L] limits. These
settings are verified at startup when the trivkins kinematics modules is
specified.
[NOTE]
-
The [JOINT_N]MIN_LIMIT, MAX_LIMIT settings are enforced while jogging in joint
mode prior to homing. After homing, [AXIS_L]MIN_LIMIT,MAX_LIMIT coordinate
limits are used as constraints for axis (coordinate letter) jogging and
@@ -1241,130 +1127,112 @@ motion module always detects joint position limit violations and faults if they
occur during the execution of G-code commands. See also related github issue
#97.
-* 'MIN_FERROR = 0.010' - (((MIN FERROR))) This is the value in machine units by
- which the joint 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.
+* 'MIN_FERROR = 0.010' - (((MIN FERROR)))
+ This is the value in machine units by which the joint 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.
* 'FERROR = 1.0' - (((FERROR))) 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 proportionally
- 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.
-
-* 'LOCKING_INDEXER = 1' -
- Indicates the joint is used as a locking indexer.
+ 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 proportionally
+ 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.
+
+* 'LOCKING_INDEXER = 1' - Indicates the joint is used as a locking indexer.
.Homing
-
These parameters are Homing related, for a better explanation read the
<> Chapter.
-* 'HOME = 0.0' -
- The position that the joint will go to upon completion of the homing
- sequence.
+* 'HOME = 0.0' - The position that the joint will go to upon completion of the homing sequence.
* 'HOME_OFFSET = 0.0' -
- The joint position of the home switch or index pulse, in
- <>. When the home point is found during
- the homing process, this is the position that is assigned to that point.
- When sharing home and limit switches and using a home sequence that will
- leave the home/limit switch in the toggled state the home offset can be
- used define the home switch position to be other than 0 if your HOME
- position is desired to be 0.
-
-* 'HOME_SEARCH_VEL = 0.0' -
- (((HOME SEARCH VEL))) 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 at zero.
+ The joint position of the home switch or index pulse, in <>.
+ When the home point is found during the homing process, this is the position that is assigned to that point.
+ When sharing home and limit switches and using a home sequence that will leave the home/limit switch
+ in the toggled state the home offset can be used define the home switch position
+ to be other than 0 if your HOME position is desired to be 0.
+
+* 'HOME_SEARCH_VEL = 0.0' - (((HOME SEARCH VEL))) 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 at zero.
* 'HOME_LATCH_VEL = 0.0' -
- Homing velocity in machine units per second to the home
- switch latch position. Sign denotes direction of travel.
+ Homing velocity in machine units per second to the home switch latch position.
+ Sign denotes direction of travel.
* 'HOME_FINAL_VEL = 0.0' -
- Velocity in machine units per second from home latch position to home
- position. If left at 0 or not included in the joint rapid velocity is
- used. Must be a positive number.
+ Velocity in machine units per second from home latch position to home position.
+ If left at 0 or not included in the joint rapid velocity is used.
+ Must be a positive number.
* 'HOME_USE_INDEX = NO' -
- If the encoder used for this joint 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 you're using stepgen in velocity mode
- and PID.
+ If the encoder used for this joint 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 you're using stepgen in velocity mode and PID.
* 'HOME_INDEX_NO_ENCODER_RESET = NO' -
- Use YES if the encoder used for this joint does not reset its counter
- when an index pulse is detected after assertion of the joint
- index_enable hal pin. Applicable only for HOME_USE_INDEX = YES.
+ Use YES if the encoder used for this joint does not reset its counter when
+ an index pulse is detected after assertion of the joint index_enable hal pin.
+ Applicable only for HOME_USE_INDEX = YES.
* 'HOME_IGNORE_LIMITS = NO' -
- When you use the limit switch as a home switch and the limit switch
- this should be set to YES. When set to YES the limit switch for this
- joint is ignored when homing. You must configure your homing
- so that at the end of your home move the home/limit switch is not in the
- toggled state you will get a limit switch error after the home move.
+ When you use the limit switch as a home switch and the limit switch this should be set to YES.
+ When set to YES the limit switch for this joint is ignored when homing.
+ You must configure your homing so that at the end of your home move the home/limit
+ switch is not in the toggled state you will get a limit switch error after the home move.
* 'HOME_IS_SHARED = ' -
- If the home input is shared by more than one joint 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.
-
-* 'HOME_ABSOLUTE_ENCODER = 0 | 1 | 2' -
- Used to indicate the joint uses an absolute encoder. At a request
- for homing, the current joint value is set to the 'HOME_OFFSET' value.
- If the 'HOME_ABSOLUTE_ENCODER' setting is 1, the machine makes the usual
- final move to the 'HOME' value.
- If the 'HOME_ABSOLUTE_ENCODER' setting is 2, no final move is made.
-
-* 'HOME_SEQUENCE = ' -
- Used to define the "Home All" sequence. must start at 0 or
- 1 or -1. Additional sequences may be specified with numbers increasing
- by 1 (in absolute value). Skipping of sequence numbers is not allowed.
- If a HOME_SEQUENCE is omitted, the joint will not be homed by the
- "Home All" function. More than one joint can be homed at the same
- time by specifying the same sequence number for more than one joint.
- A negative sequence number is used to defer the final move for
- all joints having that (negative or positive) sequence number.
- For additional info, see: <>
+ If the home input is shared by more than one joint 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.
+
+* 'HOME_ABSOLUTE_ENCODER = 0 | 1 | 2' - Used to indicate the joint uses an absolute encoder.
+ At a request for homing, the current joint value is set to the 'HOME_OFFSET' value.
+ If the 'HOME_ABSOLUTE_ENCODER' setting is 1, the machine makes the usual final move to the 'HOME' value.
+ If the 'HOME_ABSOLUTE_ENCODER' setting is 2, no final move is made.
+
+* 'HOME_SEQUENCE = ' - Used to define the "Home All" sequence.
+ must start at 0 or 1 or -1.
+ Additional sequences may be specified with numbers increasing by 1 (in absolute value).
+ Skipping of sequence numbers is not allowed.
+ If a HOME_SEQUENCE is omitted, the joint will not be homed by the "Home All" function.
+ More than one joint can be homed at the same time by specifying the same sequence number for more than one joint.
+ A negative sequence number is used to defer the final move for all joints having that (negative or positive) sequence number.
+ For additional info, see: <>.
* 'VOLATILE_HOME = 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.
+ 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.
.Servo
-
These parameters are relevant to joints controlled by servos.
[WARNING]
The following are custom INI file entries that you may find in a sample INI file
or a wizard generated file. These are not used by the LinuxCNC software. They
are only there to put all the settings in one place. For more information on
-custom INI file entries see the
-<> subsection.
+custom INI file entries see the <> subsection.
The following items might be used by a PID component and the assumption is
that the output is volts.
-* 'DEADBAND = 0.000015' - How close is close enough to consider the motor in position,
-in <>. This is often set to a distance equivalent to 1, 1.5, 2,
-or 3 encoder counts, but there are no strict rules.
-Looser (larger) settings allow less servo 'hunting' at the expense of lower accuracy.
-Tighter (smaller) settings attempt higher accuracy at the expense of more servo 'hunting'.
-Is it really more accurate if it's also more uncertain?
-As a general rule, it's good to avoid, or at least limit, servo 'hunting' if you can.
+* 'DEADBAND = 0.000015' - How close is close enough to consider the motor in position, in <>.
+ This is often set to a distance equivalent to 1, 1.5, 2, or 3 encoder counts, but there are no strict rules.
+ Looser (larger) settings allow less servo 'hunting' at the expense of lower accuracy.
+ Tighter (smaller) settings attempt higher accuracy at the expense of more servo 'hunting'.
+ Is it really more accurate if it's also more uncertain?
+ As a general rule, it's good to avoid, or at least limit, servo 'hunting' if you can.
Be careful about going below 1 encoder count, since you may create a condition where
there is no place that your servo is happy. This can go beyond 'hunting' (slow) to
@@ -1386,78 +1254,62 @@ latexmath:[ \frac{X\, inches}{1\, encoder\, count} =
image::images/encoder-counts-math.png[align="center"]
* 'BIAS = 0.000' - 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 components of the output.
-
-* 'P = 50' - The proportional gain for the joint 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.,
- image:images/p-term.png[height=25]
+ 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 components of the output.
+
+* 'P = 50' - The proportional gain for the joint 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., image:images/p-term.png[height=25]
//latexmath:[$\frac{volt}{mu}$].
-* 'I = 0' - The integral gain for the joint 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., image:images/i-term.png[height=25]
+* 'I = 0' - The integral gain for the joint 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., image:images/i-term.png[height=25]
//latexmath:[$\frac{volt}{mu\, s}$].
-* 'D = 0' - The derivative gain for the joint 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.,
- image:images/i-term.png[height=25]
+* 'D = 0' - The derivative gain for the joint 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., image:images/i-term.png[height=25]
// latexmath:[$\frac{volt}{mu/s}$].
-* 'FF0 = 0' - The 0th order feed forward gain. This number is
- multiplied by the
- commanded position, resulting in a contribution to the computed voltage
- for the motor amplifier. The units on the FF0 gain are volts per
- machine unit, e.g., image:images/p-term.png[height=25]
+* 'FF0 = 0' - The 0th order feed forward gain.
+ This number is multiplied by the commanded position, resulting in a contribution to the computed voltage for the motor amplifier.
+ The units on the FF0 gain are volts per machine unit, e.g., image:images/p-term.png[height=25]
// latexmath:[$\frac{volt}{mu}$].
-* 'FF1 = 0' - 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., image:images/i-term.png[height=25]
+* 'FF1 = 0' - 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., image:images/i-term.png[height=25]
// latexmath:[$\frac{volt}{mu\, s}$].
-* 'FF2 = 0' - 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., image:images/ff2.png[height=25]
+* 'FF2 = 0' - 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., image:images/ff2.png[height=25]
// latexmath:[$\frac{volt}{mu\, s^{2}}$].
-* 'OUTPUT_SCALE = 1.000' -
-
-* 'OUTPUT_OFFSET = 0.000' - These two values are the scale and offset factors for
- the joint 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.
- Specifically, when writing outputs, the LinuxCNC first converts the desired
- output in quasi-SI units to raw actuator values, e.g., volts for an
- amplifier DAC. This scaling
- looks like: image:images/output-offset.png[]
+* 'OUTPUT_SCALE = 1.000'
+* 'OUTPUT_OFFSET = 0.000' - These two values are the scale and offset factors for the joint 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.
+ Specifically, when writing outputs, the LinuxCNC first converts the desired output in quasi-SI units to raw actuator values, e.g., volts for an amplifier DAC.
+ This scaling looks like: image:images/output-offset.png[]
// latexmath:[raw=\frac{output-offset}{scale}]
@@ -1483,17 +1335,12 @@ gain, DAC non-linearity, DAC units, etc.
To do this, follow this procedure.
-. Build a calibration table for the output, driving the DAC with a
- desired voltage and measuring the result.
-
-. Do a least-squares linear fit to get coefficients a, b such
- that image:images/calibration-1.png[]
-. Note that we want raw output such that our measured result is
- identical to the commanded output. This means
+. Build a calibration table for the output, driving the DAC with a desired voltage and measuring the result.
+. Do a least-squares linear fit to get coefficients a, b such that image:images/calibration-1.png[]
+. Note that we want raw output such that our measured result is identical to the commanded output. This means
.. image:images/calibration-2.png[]
.. image:images/calibration-3.png[]
-. As a result, the a and b coefficients from the linear fit can be
- used as the scale and offset for the controller directly.
+. As a result, the a and b coefficients from the linear fit can be used as the scale and offset for the controller directly.
See the following table for an example of voltage measurements.
@@ -1507,30 +1354,25 @@ See the following table for an example of voltage measurements.
|===============
|Raw | Measured
|-10 | -9.93
-|-9 | -8.83
-|0 | -0.03
-|1 | 0.96
-|9 | 9.87
-|10 | 10.87
+| -9 | -8.83
+| 0 | -0.03
+| 1 | 0.96
+| 9 | 9.87
+| 10 | 10.87
|===============
-* 'MAX_OUTPUT = 10' - 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.
-
+* 'MAX_OUTPUT = 10' - 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.
* 'INPUT_SCALE = 20000' - in Sample configs
* 'ENCODER_SCALE = 20000' - in PNCconf built configs
-Specifies the number of pulses that
-corresponds to a move of one machine unit as set in the [TRAJ] section.
-For a linear joint one machine unit will be equal to
-the setting of LINEAR_UNITS.
+
+Specifies the number of pulses that corresponds to a move of one machine unit as set in the [TRAJ] section.
+For a linear joint one machine unit will be equal to the setting of LINEAR_UNITS.
For an angular joint 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, and 10
-revs/inch gearing, and desired units of inch, we
-have:
+For example, on a 2000 counts per rev encoder, and 10 revs/inch gearing, and desired units of inch, we have:
image::images/encoder-scale.png[align="center"]
@@ -1546,20 +1388,18 @@ These parameters are relevant to joints controlled by steppers.
The following are custom INI file entries that you may find in a sample INI file
or a wizard generated file. These are not used by the LinuxCNC software. They
are only there to put all the settings in one place. For more information on
-custom INI file entries see the
-<> subsection.
+custom INI file entries see the <> subsection.
The following items might be used by a stepgen component.
* 'SCALE = 4000' - in Sample configs
* 'STEP_SCALE = 4000' - in PNCconf built configs
-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 joint
-one machine unit will be equal to the setting of LINEAR_UNITS. For an
-angular joint one unit is equal to the setting in ANGULAR_UNITS. For
-servo systems, this is the number of feedback pulses per machine unit.
+
+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 joint one machine unit will be equal to the setting of LINEAR_UNITS.
+For an angular joint 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.
For example, on a 1.8 degree stepper motor with half-stepping, and 10
@@ -1573,15 +1413,13 @@ image::images/stepper-scale.png[align="center"]
//\frac{4000\, steps}{inch} ]
* 'ENCODER_SCALE = 20000' (Optionally used in PNCconf built configs) -
-Specifies the number of pulses that
-corresponds to a move of one machine unit as set in the [TRAJ] section.
-For a linear joint one machine unit will be equal to
-the setting of LINEAR_UNITS.
-For an angular joint 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, and 10
-revs/inch gearing, and desired units of inch, we
-have:
+ Specifies the number of pulses that
+ corresponds to a move of one machine unit as set in the [TRAJ] section.
+ For a linear joint one machine unit will be equal to the setting of LINEAR_UNITS.
+ For an angular joint 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, and 10
+ revs/inch gearing, and desired units of inch, we have:
image::images/encoder-scale.png[align="center"]
@@ -1591,108 +1429,96 @@ image::images/encoder-scale.png[align="center"]
* 'STEPGEN_MAXACCEL = 21.0' - Acceleration limit for the step generator.
- This should be 1% to 10%
- larger than the joint MAX_ACCELERATION. This value improves the tuning
- of stepgen's "position loop". If you have added backlash compensation
- to an joint then this should be 1.5 to 2 times greater than
- MAX_ACCELERATION.
+ This should be 1% to 10%
+ larger than the joint MAX_ACCELERATION. This value improves the tuning
+ of stepgen's "position loop". If you have added backlash compensation
+ to an joint then this should be 1.5 to 2 times greater than
+ MAX_ACCELERATION.
* 'STEPGEN_MAXVEL = 1.4' - 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 joint MAX_VELOCITY. Subsequent testing has shown that use of
- STEPGEN_MAXVEL does not improve the tuning of stepgen's position loop.
+ the step
+ generator as well. If specified, it should also be 1% to 10% larger
+ than the joint MAX_VELOCITY. Subsequent testing has shown that use of
+ STEPGEN_MAXVEL does not improve the tuning of stepgen's position loop.
-[[sec:spindle-section]](((INI File, SPINDLE Section)))
+[[sec:spindle-section]]
+=== [SPINDLE_] Section(((INI File, SPINDLE Section)))
-=== [SPINDLE_] Section
The specifies the spindle number 0 ... (num_spindles-1)
The value of 'num_spindles' is set by [TRAJ]SPINDLES=
* 'MAX_VELOCITY = 20000'
- The maximum spindle speed (in rpm) for the specified spindle. Optional.
+ The maximum spindle speed (in rpm) for the specified spindle. Optional.
* 'MIN_VELOCITY = 3000'
- The minimum spindle speed (in rpm) for the specified spindle. Optional.
- Many spindles have a minimum speed below which they should not be run.
- Any spindle speed command below this limit will be /increased/ to this
- limit.
+ The minimum spindle speed (in rpm) for the specified spindle. Optional.
+ Many spindles have a minimum speed below which they should not be run.
+ Any spindle speed command below this limit will be /increased/ to this
+ limit.
* 'MAX_REVERSE_VELOCITY = 20000'
- This setting will default to MAX_VELOCITY if omitted. It can be used
- in cases where the spindle speed is limited in reverse. Set to zero
- for spindles which must not be run in reverse.
- In this context "max" refers to the absolute magnitude of the spindle
- speed.
+ This setting will default to MAX_VELOCITY if omitted. It can be used
+ in cases where the spindle speed is limited in reverse. Set to zero
+ for spindles which must not be run in reverse.
+ In this context "max" refers to the absolute magnitude of the spindle
+ speed.
* 'MIN_REVERSE_VELOCITY = 3000'
- This setting is equivalent to MIN_VELOCITY but for reverse spindle
- rotation. It will default to the MIN_VELOCITY if omitted.
+ This setting is equivalent to MIN_VELOCITY but for reverse spindle
+ rotation. It will default to the MIN_VELOCITY if omitted.
* 'INCREMENT = 200'
- Sets the step size for spindle speed increment / decrement commands.
- This can have a different value for each spindle.
- This setting is effective with Axis and Touchy but note that some
- GUIs may handle things differently.
+ Sets the step size for spindle speed increment / decrement commands.
+ This can have a different value for each spindle.
+ This setting is effective with Axis and Touchy but note that some
+ GUIs may handle things differently.
* 'HOME_SEARCH_VELOCITY = 100' - FIXME: Spindle homing not yet working
- Sets the homing speed (rpm) for the spindle. The spindle will rotate
- at this velocity during the homing sequence until the spindle index
- is located, at which point the spindle position will be set to zero.
- Note that it makes no sense for the spindle home position to be any
- value other than zero, and so there is no provision to do so.
+ Sets the homing speed (rpm) for the spindle. The spindle will rotate
+ at this velocity during the homing sequence until the spindle index
+ is located, at which point the spindle position will be set to zero.
+ Note that it makes no sense for the spindle home position to be any
+ value other than zero, and so there is no provision to do so.
* 'HOME_SEQUENCE = 0' - FIXME: Spindle homing not yet working
- Controls where in the general homing sequence the spindle homing
- rotations occur. Set the HOME_SEARCH_VELOCITY to zero to avoid spindle
- rotation during the homing sequence
-
-[[sec:emcio-section]](((INI File, EMCIO Section)))
+ Controls where in the general homing sequence the spindle homing
+ rotations occur. Set the HOME_SEARCH_VELOCITY to zero to avoid spindle
+ rotation during the homing sequence
-=== [EMCIO] Section
+[[sec:emcio-section]]
+=== [EMCIO] Section(((INI File, EMCIO Section)))
-* 'EMCIO = io' - Name of IO controller program
+* 'EMCIO = io' - Name of IO controller program.
-* 'CYCLE_TIME = 0.100' -
- 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.
+* 'CYCLE_TIME = 0.100' - 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.
-* 'TOOL_TABLE = tool.tbl' -
- The file which contains tool information, described in
- the User Manual.
+* 'TOOL_TABLE = tool.tbl' - The file which contains tool information, described in the User Manual.
-* 'DB_PROGRAM = db_program' -
- Path to an executable program that manages tool data.
- (When a DB_PROGRAM is specified, a TOOL_TABLE entry is ignored)
+* 'DB_PROGRAM = db_program' - Path to an executable program that manages tool data.
+ (When a DB_PROGRAM is specified, a TOOL_TABLE entry is ignored)
* 'TOOL_CHANGE_POSITION = 0 0 2' -
- Specifies the XYZ location to move to when performing a
- tool change if three digits are used.
- Specifies the XYZABC location when 6 digits are used.
- Specifies the XYZABCUVW 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.
+ Specifies the XYZ location to move to when performing a tool change if three digits are used.
+ Specifies the XYZABC location when 6 digits are used.
+ Specifies the XYZABCUVW 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.
* 'TOOL_CHANGE_WITH_SPINDLE_ON = 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.
+ 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.
* 'TOOL_CHANGE_QUILL_UP = 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.
+ 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.
* 'TOOL_CHANGE_AT_G30 = 1' -
- The machine is moved to reference point defined by parameters
- 5181-5186 for G30 if the value is 1. For more information see
- <> and
- <>.
+ The machine is moved to reference point defined by parameters 5181-5186 for G30 if the value is 1.
+ For more information see <> and <>.
* 'RANDOM_TOOLCHANGER = 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.
-
+ 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.
diff --git a/docs/src/config/ini-config_es.adoc b/docs/src/config/ini-config_es.adoc
index 357ba1115bf..2211c95bf16 100644
--- a/docs/src/config/ini-config_es.adoc
+++ b/docs/src/config/ini-config_es.adoc
@@ -61,20 +61,20 @@ y finalizan en el siguiente nombre de sección.
Las siguientes secciones son utilizadas por LinuxCNC:
* '[<>]' información general
-* '[<< sec:display-section,DISPLAY>>]' configuraciones relacionadas con la interfaz gráfica de usuario
-* '[<< sec:sección de filtro,FILTER>>]' configuración de los programas de filtro de entrada
-* '[<< sec:rs274ngc-section,RS274NGC>>]' configuración utilizada por el intérprete de código g
-* '[<< sec:emcmot-section,EMCMOT>>]' configuraciones utilizadas por el controlador de movimiento en tiempo real
-* '[<< sec:task-section,TASK>>]' configuraciones utilizadas por el controlador de tareas
-* '[<< sec:hal-section,HAL>>]' especificar archivos .hal
-* '[<< sec:halui-section,HALUI >>]' comandos MDI utilizados por HALUI
-* '[<< sec:applications-section,APPLICATIONS>>]' otras aplicaciones que iniciará LinuxCNC
-* '[<< sec:traj-section,TRAJ>>]' configuraciones adicionales utilizadas por el controlador de movimiento en tiempo real
-* '[<< sec:joint-section,JOINT_n>>]' variables de articulaciones individuales
-* '[<< sec:axis-section,AXIS_n>>]' variables de eje individuales
-* '[<< sec:kins-section,KINS>>]' variables cinemáticas
-
-* '[<< sec:emcio-section,EMCIO>>]' configuración utilizada por el controlador de E/S
+* '[<>]' configuraciones relacionadas con la interfaz gráfica de usuario
+* '[<>]' configuración de los programas de filtro de entrada
+* '[<>]' configuración utilizada por el intérprete de código g
+* '[<>]' configuraciones utilizadas por el controlador de movimiento en tiempo real
+* '[<>]' configuraciones utilizadas por el controlador de tareas
+* '[<>]' especificar archivos .hal
+* '[<>]' comandos MDI utilizados por HALUI
+* '[<>]' otras aplicaciones que iniciará LinuxCNC
+* '[<>]' configuraciones adicionales utilizadas por el controlador de movimiento en tiempo real
+* '[<>]' variables de articulaciones individuales
+* '[<>]' variables de eje individuales
+* '[<>]' variables cinemáticas
+
+* '[<>]' configuración utilizada por el controlador de E/S
=== Variables
@@ -308,7 +308,8 @@ Las descripciones de las interfaces se encuentran en la sección Interfaces del
[NOTE]
GladeVCP utiliza los siguientes elementos [DISPLAY], consulte la sección
-<> del Capítulo GladeVCP.
+gladevcp:embeding-tab,incrustando una pestaña // document was removed since "all english"
+del Capítulo GladeVCP.
* 'EMBED_TAB_NAME=Demo GladeVCP'
@@ -424,8 +425,7 @@ El siguiente elemento [DISPLAY] es utilizado únicamente por la interfaz TKLinux
* 'HELP_FILE = tklinucnc.txt' - Ruta al archivo de ayuda.
-[[sec:filter-section]] (((Archivo INI, Sección FILTER)))
-
+[[sec:filter-section]](((Archivo INI, Sección FILTER)))
=== Sección [FILTER]
AXIS y gmoccapy tienen la capacidad de enviar archivos cargados a través de un programa de filtro.
@@ -524,84 +524,79 @@ main(sys.argv[1:])
[[sec:rs274ngc-section]](((Archivo INI, Sección RS274NGC)))
[[gcode:ini-features]]
-
-=== Sección [RS274NGC]
-
-* 'PARAMETER_FILE = myfile.var' -
- (((ARCHIVO DE PARÁMETROS))) El archivo ubicado en el mismo directorio que el archivo ini
- que contiene los parámetros utilizados por el intérprete (guardado entre ejecuciones).
-
-* 'ORIENT_OFFSET = 0' -
- (((ORIENT OFFSET))) Un valor float agregado al parámetro R
- de una operación <>. Se usa para definir una posición cero
- arbitraria independientemente de la orientación de montaje del codificador.
-
-* 'RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98' -
- (((CÓDIGO DE INICIO RS274NGC))) Una cadena de códigos NC que inicializa el intérprete.
- Esto no es un sustituto para especificar códigos g modales
- en la parte superior de cada archivo ngc, porque los códigos modales de
- las máquinas difieren, y pueden ser cambiadas por el código g interpretado anteriormente en
- la sesión.
-
-* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' -
- (((RUTA SUBROUTINA))) Especifica una lista separada por dos puntos (:) de hasta 10
- directorios a buscar cuando se especifican subrutinas de un solo archivo
- en gcode. Estos directorios se buscan después de buscar
- [DISPLAY] PROGRAM_PREFIX (si está especificado) y antes de buscar
- [WIZARD] WIZARD_ROOT (si se especifica). Las rutas se buscan en el orden
- que están listados El primer archivo de subrutina coincidente
- encontrado en la búsqueda se utiliza. Los directorios se especifican en relación con el
- directorio actual para el archivo ini o como rutas absolutas. La lista debe
- no contienen espacios en blanco intermedios.
-
-* 'CENTER_ARC_RADIUS_TOLERANCE_INCH = n' Predeterminado 0.00005
-
-* 'CENTER_ARC_RADIUS_TOLERANCE_MM = n' Predeterminado 0.00127
-
-* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH)))
+=== Sección [RS274NGC]
+
+ * 'PARAMETER_FILE = myfile.var' -
+ (((ARCHIVO DE PARÁMETROS))) El archivo ubicado en el mismo directorio que el archivo ini
+ que contiene los parámetros utilizados por el intérprete (guardado entre ejecuciones).
+
+ * 'ORIENT_OFFSET = 0' -
+ (((ORIENT OFFSET))) Un valor float agregado al parámetro R
+ de una operación <>. Se usa para definir una posición cero
+ arbitraria independientemente de la orientación de montaje del codificador.
+
+ * 'RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98' -
+ (((CÓDIGO DE INICIO RS274NGC))) Una cadena de códigos NC que inicializa el intérprete.
+ Esto no es un sustituto para especificar códigos g modales
+ en la parte superior de cada archivo ngc, porque los códigos modales de
+ las máquinas difieren, y pueden ser cambiadas por el código g interpretado anteriormente en
+ la sesión.
+ * 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' -
+ (((RUTA SUBROUTINA))) Especifica una lista separada por dos puntos (:) de hasta 10
+ directorios a buscar cuando se especifican subrutinas de un solo archivo
+ en gcode. Estos directorios se buscan después de buscar
+ [DISPLAY] PROGRAM_PREFIX (si está especificado) y antes de buscar
+ [WIZARD] WIZARD_ROOT (si se especifica). Las rutas se buscan en el orden
+ que están listados El primer archivo de subrutina coincidente
+ encontrado en la búsqueda se utiliza. Los directorios se especifican en relación con el
+ directorio actual para el archivo ini o como rutas absolutas. La lista debe
+ no contienen espacios en blanco intermedios.
+ * 'CENTER_ARC_RADIUS_TOLERANCE_INCH = n' Predeterminado 0.00005
+ * 'CENTER_ARC_RADIUS_TOLERANCE_MM = n' Predeterminado 0.00127
+ * 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH)))
Especifica una lista de directorios separados por dos puntos (:) para funciones definidas por el usuario.
Los directorios se especifican relativas al directorio actual
del archivo ini o como rutas absolutas. La lista no debe contener ningun espacio en blanco.
-+
+
Se realiza una búsqueda para cada posible función definida por el usuario, típicamente
(M100-M199). El orden de búsqueda es:
-+
+
. [DISPLAY]PROGRAM_PREFIX (si se especifica)
. Si no se especifica [DISPLAY]PROGRAM_PREFIX, busca en la ubicación predeterminada: nc_files
. Luego busca en cada directorio de la lista [RS274NGC]USER_M_PATH
-+
+
El primer ejecutable M1xx encontrado en la búsqueda se usa para cada M1xx.
[NOTE]
El número máximo de directorios USER_M_PATH se define en tiempo de compilación
(predeterminado: 'USER_DEFINED_FUNCTION_MAX_DIRS == 5').
-* 'INI_VARS = 1' Predeterminado 1
-Permite que los programas de código G lean valores del archivo INI usando el formato
-#<_ini[sección]nombre>. Ver <>
+* 'INI_VARS = 1' Predeterminado 1 +
+ Permite que los programas de código G lean valores del archivo INI usando el formato
+ #<_ini[sección]nombre>. Ver <>
-* 'HAL_PIN_VARS = 1' Predeterminado 1
-Permite que los programas de código G lean los valores de los pines HAL usando el formato
-#<_hal[Elemento Hal]> El acceso a esta variable es de solo lectura.
-Consulte <> para obtener más detalles y una
-advertencia importante.
+* 'HAL_PIN_VARS = 1' Predeterminado 1 +
+ Permite que los programas de código G lean los valores de los pines HAL usando el formato
+ #<_hal[Elemento Hal]> El acceso a esta variable es de solo lectura.
+ Consulte <> para obtener más detalles y una
+ advertencia importante.
-* 'RETAIN_G43 = 0' Predeterminado 0
-Cuando está configurado, puede activar G43 después de cargar la primera herramienta,
-y luego despreocuparse por eso a través del programa. Cuando usted
-finalmente descargue la última herramienta, el modo G43 se cancela.
+* 'RETAIN_G43 = 0' Predeterminado 0 +
+ Cuando está configurado, puede activar G43 después de cargar la primera herramienta,
+ y luego despreocuparse por eso a través del programa. Cuando usted
+ finalmente descargue la última herramienta, el modo G43 se cancela.
-* 'OWORD_NARGS = 0' Predeterminado 0
-Si esta función está habilitada, una subrutina llamada puede determinar el
-número de parámetros posicionales reales pasados al inspeccionar el parámetro +#+.
+* 'OWORD_NARGS = 0' Predeterminado 0 +
+ Si esta función está habilitada, una subrutina llamada puede determinar el
+ número de parámetros posicionales reales pasados al inspeccionar el parámetro +#+.
-* 'NO_DOWNCASE_OWORD = 0' Predeterminado 0
-Conservar mayúsculas y minúsculas en los nombres O-word dentro de los comentarios si está configurado, permite leer
-elementos HAL de mayúsculas y minúsculas en comentarios estructurados como
-'(debug, #<_hal[MixedCaseItem])'..
+* 'NO_DOWNCASE_OWORD = 0' Predeterminado 0 +
+ Conservar mayúsculas y minúsculas en los nombres O-word dentro de los comentarios si está configurado, permite leer
+ elementos HAL de mayúsculas y minúsculas en comentarios estructurados como
+ '(debug, #<_hal[MixedCaseItem])'..
-* 'OWORD_WARNONLY = 0' Predeterminado 0
-Advertir en lugar de error en caso de errores en las subrutinas O-word.
+* 'OWORD_WARNONLY = 0' Predeterminado 0 +
+ Advertir en lugar de error en caso de errores en las subrutinas O-word.
[NOTE] Las seis opciones anteriores fueron controladas por la máscara de bits 'FEATURES'
en versiones de LinuxCNC anteriores a 2.8. Esta etiqueta INI ya no trabaja.
@@ -1026,7 +1021,7 @@ Ejemplo: loadrt motmod ... unlock_joints_mask = 0x38
crea pines de desbloqueo para articulaciones 3,4,5
* 'OFFSET_AV_RATIO = 0.1' - si no es cero, este elemento permite el uso de
-pines Hal de entrada para compensaciones de eje externas:
+ pines Hal de entrada para compensaciones de eje externas:
'axis..eoffset-enable'
'axis..eoffset-count'
@@ -1035,9 +1030,9 @@ pines Hal de entrada para compensaciones de eje externas:
Consulte el capítulo: <> para
información de su uso.
-[[sec:joint-section]](((Archivo INI, Sección CONJUNTA)))
+[[sec:joint-section]]
+=== Sección [JOINT_](((Archivo INI, Sección CONJUNTA)))
-=== Sección [JOINT_]
especifica el número de articulación 0 ... (num_joints-1)
El valor de 'num_joints' lo establece [KINS]JOINTS =
@@ -1069,52 +1064,52 @@ con coordenadas = XZ, las relaciones de ejes comunes son:
Para obtener más información sobre los módulos cinemáticos, consulte la página de manual: '$ man kins'
* 'TYPE = LINEAR' -
-El tipo de articulación, ya sea LINEAR o ANGULAR.
+ El tipo de articulación, ya sea LINEAR o ANGULAR.
* 'UNITS = INCH' -
-(((UNITS))) Si se especifica, esta configuración, se anula la configuración relacionada [TRAJ]UNITS.
-(por ejemplo, [TRAJ] LINEAR_UNITS si el TYPE de esta articulación es LINEAR,
-[TRAJ]ANGULAR_UNITS si el TYPE de esta articulación es ANGULAR)
+ (((UNITS))) Si se especifica, esta configuración, se anula la configuración relacionada [TRAJ]UNITS.
+ (por ejemplo, [TRAJ] LINEAR_UNITS si el TYPE de esta articulación es LINEAR,
+ [TRAJ]ANGULAR_UNITS si el TYPE de esta articulación es ANGULAR)
* 'MAX_VELOCITY = 1.2' -
-Velocidad máxima para esta articulación en <> por segundo.
+ Velocidad máxima para esta articulación en <> por segundo.
* 'MAX_ACCELERATION = 20.0' -
-Aceleración máxima para esta articulación en unidades máquina por segundo cuadrado
+ Aceleración máxima para esta articulación en unidades máquina por segundo cuadrado
* 'BACKLASH = 0.0000' -
-(((Backlash))) Backlash en unidades de máquina. El valor de Backlash
-se puede utilizar para compensar pequeñas deficiencias en el hardware utilizado para
-conducir una articulacion. Si se agrega Backlash a una articulación y está utilizando
-paso a paso, STEPGEN_MAXACCEL debe aumentarse de 1,5 a 2 veces del valor de
-MAX_ACCELERATION para la articulación. La compensación de Backlash excesiva puede causar
-sacudidas en el eje a medida que cambia de dirección. Si se especifica un COMP_FILE para un
-eje, BACKLASH no se utiliza.
+ (((Backlash))) Backlash en unidades de máquina. El valor de Backlash
+ se puede utilizar para compensar pequeñas deficiencias en el hardware utilizado para
+ conducir una articulacion. Si se agrega Backlash a una articulación y está utilizando
+ paso a paso, STEPGEN_MAXACCEL debe aumentarse de 1,5 a 2 veces del valor de
+ MAX_ACCELERATION para la articulación. La compensación de Backlash excesiva puede causar
+ sacudidas en el eje a medida que cambia de dirección. Si se especifica un COMP_FILE para un
+ eje, BACKLASH no se utiliza.
// agregar un << a unidades de máquina
* 'COMP_FILE = file.extension' -
- (((Compensation))) El archivo de compensación consiste en un mapa de información de posición
- para la articulación. Los valores del archivo de compensación están en unidades máquina.
- Cada conjunto de valores está en una línea separada por un espacio. El primer valor
- es el valor nominal (la posición ordenada). El segundo y tercer valor
- dependerá de la configuración de COMP_FILE_TYPE. Los puntos entre valores nominales
- están interpolados entre los dos nominales. Los archivos de compensación deben comenzar
- con el mínimo nominal y estar en orden ascendente hasta el mayor valor de los
- nominales. Los nombres de archivo distinguen entre mayúsculas y minúsculas y pueden contener letras y/o
- números. Actualmente, el límite dentro de LinuxCNC es de 256 tripletas por eje.
+ (((Compensation))) El archivo de compensación consiste en un mapa de información de posición
+ para la articulación. Los valores del archivo de compensación están en unidades máquina.
+ Cada conjunto de valores está en una línea separada por un espacio. El primer valor
+ es el valor nominal (la posición ordenada). El segundo y tercer valor
+ dependerá de la configuración de COMP_FILE_TYPE. Los puntos entre valores nominales
+ están interpolados entre los dos nominales. Los archivos de compensación deben comenzar
+ con el mínimo nominal y estar en orden ascendente hasta el mayor valor de los
+ nominales. Los nombres de archivo distinguen entre mayúsculas y minúsculas y pueden contener letras y/o
+ números. Actualmente, el límite dentro de LinuxCNC es de 256 tripletas por eje.
+
+
- Si se especifica COMP_FILE para un eje, BACKLASH no se utiliza.
- Se debe especificar UN 'COMP_FILE_TYPE' para cada 'COMP_FILE'.
+ Si se especifica COMP_FILE para un eje, BACKLASH no se utiliza.
+ Se debe especificar UN 'COMP_FILE_TYPE' para cada 'COMP_FILE'.
* 'COMP_FILE_TYPE = 0 o 1' - especifica el tipo de archivo de compensación.
- El primer valor es la posición nominal (ordenada) para ambos tipos.
+ El primer valor es la posición nominal (ordenada) para ambos tipos.
** 'Tipo 0:' El segundo valor especifica la posición real a medida que se mueve el eje
- en la dirección positiva (valor creciente) y el tercer valor especifica
- la posición real a medida que el eje se mueve en la dirección negativa
- (valor decreciente).
+ en la dirección positiva (valor creciente) y el tercer valor especifica
+ la posición real a medida que el eje se mueve en la dirección negativa
+ (valor decreciente).
+
+
Ejemplo Tipo 0
@@ -1126,8 +1121,8 @@ Ejemplo Tipo 0
-----
** 'Tipo 1:' El segundo valor especifica el desplazamiento positivo del nominal mientras
- se va en la dirección positiva. El tercer valor especifica el negativo
- compensado del nominal mientras se va en una dirección negativa.
+ se va en la dirección positiva. El tercer valor especifica el negativo
+ compensado del nominal mientras se va en una dirección negativa.
+
+
Ejemplo de tipo 1
@@ -1139,119 +1134,117 @@ Ejemplo de tipo 1
----
* 'MIN_LIMIT = -1000' - (((MIN LIMIT))) El límite mínimo para el movimiento del eje, en
-unidades máquina. Cuando se alcanza este límite, el controlador aborta el movimiento del eje.
-El eje debe tener home antes de que MIN_LIMIT esté en vigor. Para un
-eje rotativo con rotación ilimitada que no tiene MIN_LIMIT para ese eje en
-[JOINT_n], entonces se usa el valor -1e99.
+ unidades máquina. Cuando se alcanza este límite, el controlador aborta el movimiento del eje.
+ El eje debe tener home antes de que MIN_LIMIT esté en vigor. Para un
+ eje rotativo con rotación ilimitada que no tiene MIN_LIMIT para ese eje en
+ [JOINT_n], entonces se usa el valor -1e99.
* 'MAX_LIMIT = 1000' - (((MAX LIMIT))) El límite máximo para el movimiento del eje, en
-unidades máquina. Cuando se alcanza este límite, el controlador aborta el movimiento del eje.
-El eje debe tener home antes de que MAX_LIMIT esté en vigor. Para un eje rotativo
-con rotación ilimitada que no tiene MAX_LIMIT para ese eje en
-[JOINT_n], se usa el valor 1e99.
+ unidades máquina. Cuando se alcanza este límite, el controlador aborta el movimiento del eje.
+ El eje debe tener home antes de que MAX_LIMIT esté en vigor. Para un eje rotativo
+ con rotación ilimitada que no tiene MAX_LIMIT para ese eje en
+ [JOINT_n], se usa el valor 1e99.
* 'MIN_FERROR = 0.010' - (((MIN FERROR))) Este es el valor en unidades máquina
-que el eje puede desviarse de la posición ordenada a muy bajas
-velocidades. Si MIN_FERROR es más pequeño que FERROR, los dos producen una rampa de
-puntos de disparo de error. Podría pensar en esto como un gráfico donde una dimensión es
-velocidad y el otro el error de seguimiento permitido. A medida que la velocidad aumenta,
-la cantidad de error de seguimiento también aumenta hacia el valor FERROR.
+ que el eje puede desviarse de la posición ordenada a muy bajas
+ velocidades. Si MIN_FERROR es más pequeño que FERROR, los dos producen una rampa de
+ puntos de disparo de error. Podría pensar en esto como un gráfico donde una dimensión es
+ velocidad y el otro el error de seguimiento permitido. A medida que la velocidad aumenta,
+ la cantidad de error de seguimiento también aumenta hacia el valor FERROR.
* 'FERROR = 1.0' - (((FERROR))) FERROR es el error de seguimiento máximo permitido,
-en unidades máquina. Si la diferencia entre la posición ordenada y la detectada
-excede esta cantidad, el controlador deshabilita los cálculos servo, establece todas
-las salidas a 0.0, y desactiva los amplificadores. Si MIN_FERROR está presente en
-el archivo .ini, se utilizan los siguientes errores proporcionales a la velocidad. Aquí el
-error de seguimiento máximo permitido es proporcional a la velocidad, con FERROR
-aplicando a la tasa rápida establecida por [TRAJ]MAX_VELOCITY, y proporcionalmente
-errores de seguimiento más pequeños para velocidades más lentas. El error de seguimiento máximo permitido
-siempre será mayor que MIN_FERROR. Esto evita pequeños errores de seguimiento
-para ejes estacionarios al abortar inadvertidamente el movimiento. Pequeños
-errores de seguimiento siempre estarán presentes debido a la vibración, etc.
+ en unidades máquina. Si la diferencia entre la posición ordenada y la detectada
+ excede esta cantidad, el controlador deshabilita los cálculos servo, establece todas
+ las salidas a 0.0, y desactiva los amplificadores. Si MIN_FERROR está presente en
+ el archivo .ini, se utilizan los siguientes errores proporcionales a la velocidad. Aquí el
+ error de seguimiento máximo permitido es proporcional a la velocidad, con FERROR
+ aplicando a la tasa rápida establecida por [TRAJ]MAX_VELOCITY, y proporcionalmente
+ errores de seguimiento más pequeños para velocidades más lentas. El error de seguimiento máximo permitido
+ siempre será mayor que MIN_FERROR. Esto evita pequeños errores de seguimiento
+ para ejes estacionarios al abortar inadvertidamente el movimiento. Pequeños
+ errores de seguimiento siempre estarán presentes debido a la vibración, etc.
* 'LOCKING_INDEXER = 1' -
-Indica que la articulación se utiliza como indexador con bloqueo.
+ Indica que la articulación se utiliza como indexador con bloqueo.
.Homing
-
Estos parámetros están relacionados con Homing; para una mejor explicación lea el Capítulo
<>.
* 'HOME = 0.0' -
-La posición a la que irá la articulación al finalizar la secuencia homing.
+ La posición a la que irá la articulación al finalizar la secuencia homing.
* 'HOME_OFFSET = 0.0' -
-La posición articular del interruptor home o pulso índice, en
-<>. Cuando se encuentra el punto home durante
-el proceso homing, esta es la posición asignada a ese punto.
-Al compartir interruptores home y de límite y usar una secuencia home que
-deje el interruptor home/límite en el estado activado, el offset home puede ser
-utilizado para definir la posición del interruptor home para que sea diferente de 0 si
-se desea que la posición home sea 0.
+ La posición articular del interruptor home o pulso índice, en
+ <>. Cuando se encuentra el punto home durante
+ el proceso homing, esta es la posición asignada a ese punto.
+ Al compartir interruptores home y de límite y usar una secuencia home que
+ deje el interruptor home/límite en el estado activado, el offset home puede ser
+ utilizado para definir la posición del interruptor home para que sea diferente de 0 si
+ se desea que la posición home sea 0.
* 'HOME_SEARCH_VEL = 0.0' -
-(((HOME SEARCH VEL))) Velocidad de homing inicial en unidades de máquina por segundo.
-El signo indica la dirección de recorrido. Un valor de cero significa asumir que la
-ubicación actual es la posición de inicio de la máquina. Si su máquina no tiene
-interruptores de inicio querrá dejar este valor en cero.
+ (((HOME SEARCH VEL))) Velocidad de homing inicial en unidades de máquina por segundo.
+ El signo indica la dirección de recorrido. Un valor de cero significa asumir que la
+ ubicación actual es la posición de inicio de la máquina. Si su máquina no tiene
+ interruptores de inicio querrá dejar este valor en cero.
* 'HOME_LATCH_VEL = 0.0' -
-Velocidad de homing en unidades máquina por segundo a la posicion de enclavamiento
-del interruptor home. El signo indica la dirección del recorrido.
+ Velocidad de homing en unidades máquina por segundo a la posicion de enclavamiento
+ del interruptor home. El signo indica la dirección del recorrido.
* 'HOME_FINAL_VEL = 0.0' -
-Velocidad en unidades de máquina por segundo desde la posición de enclavamiento a la
-posición home. Si se deja en 0 o no se incluye en la articulación, se usa la velocidad rápida.
-Debe ser un número positivo.
+ Velocidad en unidades de máquina por segundo desde la posición de enclavamiento a la
+ posición home. Si se deja en 0 o no se incluye en la articulación, se usa la velocidad rápida.
+ Debe ser un número positivo.
* 'HOME_USE_INDEX = NO' -
-Si el codificador utilizado para esta articulación tiene un pulso índice, y
-la electronica tiene provisión para esta señal, puede configurarla en YES. Cuando es
-YES, se afectará el tipo de patrón de inicio utilizado. Actualmente no puede
-indexar con steppers a menos que esté usando stepgen en modo de velocidad y PID.
+ Si el codificador utilizado para esta articulación tiene un pulso índice, y
+ la electronica tiene provisión para esta señal, puede configurarla en YES. Cuando es
+ YES, se afectará el tipo de patrón de inicio utilizado. Actualmente no puede
+ indexar con steppers a menos que esté usando stepgen en modo de velocidad y PID.
* 'HOME_INDEX_NO_ENCODER_RESET = NO' -
-Use YES si el codificador utilizado para esta articulación no restablece su contador
-cuando se detecta un pulso índice después de la activacion del pin hal index_enable.
-Aplicable solo para HOME_USE_INDEX = YES.
+ Use YES si el codificador utilizado para esta articulación no restablece su contador
+ cuando se detecta un pulso índice después de la activacion del pin hal index_enable.
+ Aplicable solo para HOME_USE_INDEX = YES.
* 'HOME_IGNORE_LIMITS = NO' -
-Cuando usa el interruptor de límite tambien como interruptor home,
-esto debe establecerse en YES. Cuando se establece en YES, el interruptor de límite para esta
-articulación se ignora durante homing. Debe configurar su homing
-para que al final del movimiento a home el interruptor home/límite no esté en el
-estado activado; recibiria un error de interruptor de límite después del homing.
+ Cuando usa el interruptor de límite tambien como interruptor home,
+ esto debe establecerse en YES. Cuando se establece en YES, el interruptor de límite para esta
+ articulación se ignora durante homing. Debe configurar su homing
+ para que al final del movimiento a home el interruptor home/límite no esté en el
+ estado activado; recibiria un error de interruptor de límite después del homing.
* 'HOME_IS_SHARED = ' -
-Si la entrada home es compartida por más de una articulacion, haga igual a 1 para
-evitar que se inicie homing si uno de los conmutadores compartidos está
-ya está cerrado. Establezca en 0 para permitir el homing si un interruptor está cerrado.
+ Si la entrada home es compartida por más de una articulacion, haga igual a 1 para
+ evitar que se inicie homing si uno de los conmutadores compartidos está
+ ya está cerrado. Establezca en 0 para permitir el homing si un interruptor está cerrado.
* 'HOME_ABSOLUTE_ENCODER = 0 | 1 | 2 '-
-Usado para indicar que la articulación usa un codificador absoluto. A una petición
-de homing, el valor de la articulacion actual se establece en el valor 'HOME_OFFSET'.
-Si la configuración 'HOME_ABSOLUTE_ENCODER' es 1, la máquina hace el habitual
-movimiento final al valor 'HOME'.
-Si la configuración 'HOME_ABSOLUTE_ENCODER' es 2, no se realiza ningún movimiento final.
+ Usado para indicar que la articulación usa un codificador absoluto. A una petición
+ de homing, el valor de la articulacion actual se establece en el valor 'HOME_OFFSET'.
+ Si la configuración 'HOME_ABSOLUTE_ENCODER' es 1, la máquina hace el habitual
+ movimiento final al valor 'HOME'.
+ Si la configuración 'HOME_ABSOLUTE_ENCODER' es 2, no se realiza ningún movimiento final.
* 'HOME_SEQUENCE = ' -
-Se utiliza para definir la secuencia "Home Todo". debe comenzar en 0 o
-1 o -1. Se pueden especificar secuencias adicionales con números crecientes
-de 1 en 1 (en valor absoluto). No se permite omitir los números de secuencia.
-Si se omite una HOME_SEQUENCE, la articulación no será homeada por la
-función "Home Todo". Se puede homear más de una articulación al mismo tiempo
-especificando el mismo número de secuencia para más de una articulación.
-Se utiliza un número de secuencia negativa para diferir el movimiento final para
-todas las articulaciones que tienen ese número de secuencia (negativo o positivo).
-Para obtener información adicional, consulte: <>
+ Se utiliza para definir la secuencia "Home Todo". debe comenzar en 0 o
+ 1 o -1. Se pueden especificar secuencias adicionales con números crecientes
+ de 1 en 1 (en valor absoluto). No se permite omitir los números de secuencia.
+ Si se omite una HOME_SEQUENCE, la articulación no será homeada por la
+ función "Home Todo". Se puede homear más de una articulación al mismo tiempo
+ especificando el mismo número de secuencia para más de una articulación.
+ Se utiliza un número de secuencia negativa para diferir el movimiento final para
+ todas las articulaciones que tienen ese número de secuencia (negativo o positivo).
+ Para obtener información adicional, consulte: <>
* 'VOLATILE_HOME = 0' -
-Cuando se habilita (se establece en 1), esta articulación no se homeara si
-la alimentación de la máquina está apagada o si E-Stop está encendido. Esto es útil si su máquina tiene
-interruptores Home y no tiene retroalimentación de posición, como en máquina paso y dirección.
+ Cuando se habilita (se establece en 1), esta articulación no se homeara si
+ la alimentación de la máquina está apagada o si E-Stop está encendido. Esto es útil si su máquina tiene
+ interruptores Home y no tiene retroalimentación de posición, como en máquina paso y dirección.
.Servo
-
Estos parámetros son relevantes para las articulaciones controladas por servos.
[WARNING]
@@ -1292,61 +1285,48 @@ latexmath: [\ frac {X \, pulgadas} {1 \, encoder \, count} =
imagen::images/encoder-count-math.png[align="center"]
* 'BIAS = 0.000' - Esto es utilizado por hm2-servo y algunos otros.
-BIAS es una cantidad constante que se agrega a la salida. En la mayoría de los casos, debe dejarse en cero.
-Sin embargo, a veces puede ser útil para compensar servoamplificadores, o para equilibrar el peso
-de un objeto que se mueve verticalmente. BIAS se desactiva cuando el bucle PID está desactivado, al igual que
-todos los demás componentes de la salida.
-
+ BIAS es una cantidad constante que se agrega a la salida. En la mayoría de los casos, debe dejarse en cero.
+ Sin embargo, a veces puede ser útil para compensar servoamplificadores, o para equilibrar el peso
+ de un objeto que se mueve verticalmente. BIAS se desactiva cuando el bucle PID está desactivado, al igual que
+ todos los demás componentes de la salida.
* 'P = 50' - La ganancia proporcional para el servo. Este valor multiplica el
-error entre la posición ordenada y la real en unidades máquina, lo que resulta
-en una contribución a la tensión calculada para el amplificador del motor.
-Las unidades en la ganancia P son voltios por unidad máquina, por ejemplo,
-image:images/p-term.png[height=25]
-
+ error entre la posición ordenada y la real en unidades máquina, lo que resulta
+ en una contribución a la tensión calculada para el amplificador del motor.
+ Las unidades en la ganancia P son voltios por unidad máquina, por ejemplo,
+ image:images/p-term.png[height=25]
// latexmath: [$ \ frac {volt} {mu} $].
-
* 'I = 0' - La ganancia integral para el servo. El valor
-multiplica el error acumulativo entre la posición ordenada y la real en unidades máquina,
-lo que resulta en una contribución a la tensión calculada para el
-amplificador de motor. Las unidades en la ganancia I son voltios por unidad máquina por
-segundo, por ejemplo, image:images/i-term.png[height=25]
-
+ multiplica el error acumulativo entre la posición ordenada y la real en unidades máquina,
+ lo que resulta en una contribución a la tensión calculada para el
+ amplificador de motor. Las unidades en la ganancia I son voltios por unidad máquina por
+ segundo, por ejemplo, image:images/i-term.png[height=25]
// latexmath: [$ \ frac {volt} {mu \, s} $].
-
* 'D = 0' - La ganancia derivada para el servo. El valor
-multiplica la diferencia entre los errores actuales y anteriores, lo que resulta en una
-contribución a la tensión calculada para el amplificador del motor. las unidades
-en la ganancia D son voltios por unidad de máquina por segundo, por ejemplo,
-image:images/i-term.png[height=25]
-
+ multiplica la diferencia entre los errores actuales y anteriores, lo que resulta en una
+ contribución a la tensión calculada para el amplificador del motor. las unidades
+ en la ganancia D son voltios por unidad de máquina por segundo, por ejemplo,
+ image:images/i-term.png[height=25]
// latexmath: [$ \ frac {volt} {mu / s} $].
-
* 'FF0 = 0' - ganancia de avance de orden 0. Este numero es
-multiplicado por el posición ordenada, lo que resulta en una contribución a la tensión calculada
-para el amplificador del motor. Las unidades en la ganancia FF0 son voltios por
-unidad máquina, por ejemplo, image:images/p-term.png[height=25]
-
+ multiplicado por el posición ordenada, lo que resulta en una contribución a la tensión calculada
+ para el amplificador del motor. Las unidades en la ganancia FF0 son voltios por
+ unidad máquina, por ejemplo, image:images/p-term.png[height=25]
// latexmath: [$ \ frac {volt} {mu} $].
-
* 'FF1 = 0' - ganancia de avance de 1er orden. Este numero es
-multiplicado por el cambio en la posición ordenada por segundo, lo que resulta en una contribución
-al voltaje calculado para el amplificador del motor. Las unidades en FF1
-son voltios por unidad máquina por segundo, por ejemplo, image:images/i-term.png[height=25]
-
+ multiplicado por el cambio en la posición ordenada por segundo, lo que resulta en una contribución
+ al voltaje calculado para el amplificador del motor. Las unidades en FF1
+ son voltios por unidad máquina por segundo, por ejemplo, image:images/i-term.png[height=25]
// latexmath: [$ \ frac {volt} {mu \, s} $].
-
* 'FF2 = 0' - ganancia de avance de segundo orden. Este numero es
-multiplicado por el cambio en la posición ordenada por segundo por segundo, lo que resulta en un
-contribución a la tensión calculada para el amplificador del motor. Las unidades
-en la ganancia FF2 son voltios por unidad máquina por segundo por segundo,
-por ejemplo, image:images/ff2.png[height=25]
-
+ multiplicado por el cambio en la posición ordenada por segundo por segundo, lo que resulta en un
+ contribución a la tensión calculada para el amplificador del motor. Las unidades
+ en la ganancia FF2 son voltios por unidad máquina por segundo por segundo,
+ por ejemplo, image:images/ff2.png[height=25]
// latexmath: [$ \ frac {volt} {mu \, s ^ {2}} $].
-
* 'OUTPUT_SCALE = 1.000' -
-
* 'OUTPUT_OFFSET = 0.000' - estos dos valores son los factores de escala y offset para
-la salida a los amplificadores del motor.
+ la salida a los amplificadores del motor.
+
El segundo valor (offset) se resta de
la salida calculada (en voltios), y se divide por el primer valor (escala), antes de ser
escrito en los convertidores D/A. Las unidades de
@@ -1354,8 +1334,7 @@ los valores de escala están en voltios verdaderos por voltios de salida DAC. La
valor de offset está en voltios. Estos se pueden usar para linealizar un DAC.
Específicamente, al escribir salidas, LinuxCNC primero convierte la salida deseada
en unidades cuasi-SI a valores de actuador sin procesar, por ejemplo, voltios para un
-amplificador DAC. Esta escala
-se parece a: image:images/output-offset.png[]
+amplificador DAC. Esta escala se parece a: image:images/output-offset.png[]
// latexmath: [raw = \ frac {output-offset} {scale}]
@@ -1382,16 +1361,15 @@ no linealidad del DAC, unidades DAC, etc.
Para hacer esto, siga este procedimiento.
. Cree una tabla de calibración para la salida, alimentando el DAC con el
-voltaje deseado y midiendo el resultado.
-
+ voltaje deseado y midiendo el resultado.
. Haga un ajuste lineal de mínimos cuadrados para obtener los coeficientes a, b tales
-como image:images/calibration-1.png[]
+ como image:images/calibration-1.png[]
. Tenga en cuenta que queremos una salida en bruto de modo que nuestro resultado medido sea
-idéntico a la salida ordenada. Esto significa
+ idéntico a la salida ordenada. Esto significa
.. image:images/calibration-2.png[]
.. image:images/calibration-3.png[]
. Como resultado, los coeficientes a y b del ajuste lineal pueden ser
-utilizado como la escala y el offset para el controlador directamente.
+ utilizado como la escala y el offset para el controlador directamente.
La siguiente tabla es un ejemplo de mediciones de voltaje.
@@ -1413,15 +1391,16 @@ Mediciones de voltaje de salida
|===============
* 'MAX_OUTPUT = 10' - El valor máximo para la salida de la compensación PID
-que se escribe en el amplificador del motor, en voltios. El valor calculado
-de salida está sujeto a este límite. El límite se aplica antes de
-escalado a unidades de salida en bruto. El valor se aplica simétricamente
-tanto al lado positivo como al negativo.
+ que se escribe en el amplificador del motor, en voltios. El valor calculado
+ de salida está sujeto a este límite. El límite se aplica antes de
+ escalado a unidades de salida en bruto. El valor se aplica simétricamente
+ tanto al lado positivo como al negativo.
* 'INPUT_SCALE = 20000' - en configuraciones de muestra
* 'ENCODER_SCALE = 20000' - en configuraciones construidas con PNCconf
-Especifica el número de pulsos que
-corresponde a un movimiento de una unidad máquina como se establece en la sección [TRAJ].
+ Especifica el número de pulsos que
+ corresponde a un movimiento de una unidad máquina como se establece en la sección [TRAJ].
+
Para una articulación lineal, una unidad máquina será igual a
la configuración de LINEAR_UNITS.
Para una articulación angular, una unidad es igual a la configuración en ANGULAR_UNITS.
@@ -1429,7 +1408,6 @@ Un segundo número, si se especifica, se ignora.
Por ejemplo, en un codificador de 2000 cuentas por revolucion, y una transmision de 10
revoluciones por pulgada y unidades de pulgada, tenemos:
-
image::images/encoder-scale.png[align="center"]
// latexmath: [INPUT \ _SCALE =
@@ -1437,7 +1415,6 @@ image::images/encoder-scale.png[align="center"]
// \ frac {20000 \, recuentos} {pulgadas}]
.Stepper
-
Estos parámetros son relevantes para las articulaciones controladas por steppers.
[WARNING]
@@ -1451,14 +1428,14 @@ Los siguientes elementos pueden ser utilizados por un componente stepgen.
* 'SCALE = 4000' - en configuraciones de muestra
* 'STEP_SCALE = 4000' - en configuraciones construidas con PNCconf
-Especifica el número de pulsos que corresponde a un
-movimiento de una unidad máquina como se establece en la sección [TRAJ].
-Para sistemas paso a paso, esto es
-el número de pulsos de paso emitidos por unidad máquina. Para una articulación lineal
-una unidad de máquina será igual a la configuración de LINEAR_UNITS. Para una
-articulacion angular es igual a la configuración en ANGULAR_UNITS. Para
-servo sistemas, este es el número de pulsos de retroalimentación por unidad máquina.
-Un segundo número, si se especifica, se ignora.
+ Especifica el número de pulsos que corresponde a un
+ movimiento de una unidad máquina como se establece en la sección [TRAJ].
+ Para sistemas paso a paso, esto es
+ el número de pulsos de paso emitidos por unidad máquina. Para una articulación lineal
+ una unidad de máquina será igual a la configuración de LINEAR_UNITS. Para una
+ articulacion angular es igual a la configuración en ANGULAR_UNITS. Para
+ servo sistemas, este es el número de pulsos de retroalimentación por unidad máquina.
+ Un segundo número, si se especifica, se ignora.
Por ejemplo, en un motor paso a paso de 1.8 grados con semipasos, y transmision de 10
revoluciones por pulgada, y deseado <> en pulgada,
@@ -1501,47 +1478,39 @@ que MAX_VELOCITY de la articulación. Pruebas posteriores han demostrado que el
STEPGEN_MAXVEL no mejora el ajuste del bucle de posición de stepgen.
-[[sec:emcio-section]](((Archivo INI, Sección EMCIO)))
-
-=== Sección [EMCIO]
+[[sec:emcio-section]]
+=== Sección [EMCIO](((Archivo INI, Sección EMCIO)))
* 'EMCIO = io' - Nombre del programa controlador IO
-
* 'CYCLE_TIME = 0.100' -
-El período, en segundos, en el que se ejecutará EMCIO. Haciendolo
-0.0 o un número negativo le dirá a EMCIO que no duerma en absoluto. Generalmente
-no es necesario cambiar este número.
-
+ El período, en segundos, en el que se ejecutará EMCIO. Haciendolo
+ 0.0 o un número negativo le dirá a EMCIO que no duerma en absoluto. Generalmente
+ no es necesario cambiar este número.
* 'TOOL_TABLE = tool.tbl' -
-El archivo que contiene información sobre herramientas, descrito en
-el manual de usuario.
-
+ El archivo que contiene información sobre herramientas, descrito en
+ el manual de usuario.
* 'TOOL_CHANGE_POSITION = 0 0 2' -
-Especifica la ubicación XYZ a la que moverse al realizar un
-cambio de herramienta si se utilizan tres dígitos.
-Especifica la ubicación XYZABC cuando se usan 6 dígitos.
-Especifica la ubicación XYZABCUVW cuando se utilizan 9 dígitos.
-Los cambios de herramienta se pueden combinar. Por ejemplo, si combina la
-pinola con la posición de cambio, puede mover primero la Z y luego la X e Y.
-
+ Especifica la ubicación XYZ a la que moverse al realizar un
+ cambio de herramienta si se utilizan tres dígitos.
+ Especifica la ubicación XYZABC cuando se usan 6 dígitos.
+ Especifica la ubicación XYZABCUVW cuando se utilizan 9 dígitos.
+ Los cambios de herramienta se pueden combinar. Por ejemplo, si combina la
+ pinola con la posición de cambio, puede mover primero la Z y luego la X e Y.
* 'TOOL_CHANGE_WITH_SPINDLE_ON = 1' -
-El husillo se dejará encendido durante el cambio de herramienta cuando el valor sea 1.
-Útil para tornos o máquinas donde el material está en el husillo, no la herramienta.
-
+ El husillo se dejará encendido durante el cambio de herramienta cuando el valor sea 1.
+ Útil para tornos o máquinas donde el material está en el husillo, no la herramienta.
* 'TOOL_CHANGE_QUILL_UP = 1' -
-El eje Z se moverá a cero máquina antes del cambio de herramienta cuando
-el valor es 1. Esto es lo mismo que emitir un G0 G53 Z0.
-
+ El eje Z se moverá a cero máquina antes del cambio de herramienta cuando
+ el valor es 1. Esto es lo mismo que emitir un G0 G53 Z0.
* 'TOOL_CHANGE_AT_G30 = 1' -
-La máquina se mueve al punto de referencia definido por los parámetros
-5181-5186 para G30 si el valor es 1. Para obtener más información, consulte el
-<>.
-
+ La máquina se mueve al punto de referencia definido por los parámetros
+ 5181-5186 para G30 si el valor es 1. Para obtener más información, consulte el
+ <> y
+ <>.
* 'RANDOM_TOOLCHANGER = 1' -
-Esto es para máquinas que no pueden volver a colocar la herramienta en la ranura
-de la que vino. Por ejemplo, máquinas que intercambian la herramienta en la
-ranura activa con la herramienta en el husillo.
+ Esto es para máquinas que no pueden volver a colocar la herramienta en la ranura
+ de la que vino. Por ejemplo, máquinas que intercambian la herramienta en la
+ ranura activa con la herramienta en el husillo.
diff --git a/docs/src/config/ini_config_fr.adoc b/docs/src/config/ini-config_fr.adoc
similarity index 92%
rename from docs/src/config/ini_config_fr.adoc
rename to docs/src/config/ini-config_fr.adoc
index d21c189817b..c87b42485b0 100644
--- a/docs/src/config/ini_config_fr.adoc
+++ b/docs/src/config/ini-config_fr.adoc
@@ -1,9 +1,8 @@
:lang: fr
:toc:
-= Configuration de LinuxCNC
-
[[cha:ini-configuration]]
+= Configuration de LinuxCNC
== Script de lancement
@@ -589,45 +588,45 @@ dans le même répertoire que le fichier ini qui contiendra les paramètres
utilisés par l'interpréteur (enregistré entre chaque lancement).
* 'ORIENT_OFFSET = 0' -
- (((ORIENT OFFSET ))) Une valeur flottante ajoutée au paramètre R d'une
- opération <>. Utilisée pour
- définir une position zéro quelconque quelle que soit l'orientation de
- montage du codeur de broche.
+ (((ORIENT OFFSET ))) Une valeur flottante ajoutée au paramètre R d'une
+ opération <>. Utilisée pour
+ définir une position zéro quelconque quelle que soit l'orientation de
+ montage du codeur de broche.
* 'RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98' -
- (((RS274NGC STARTUP CODE))) Une chaine de codes NGC qui sera utilisée
-pour initialiser l'interpréteur. Elle ne se substitue pas à la
-spécification des G-codes modaux du début de chaque fichier ngc. Les
-codes modaux des machines diffèrent, ils pourraient être modifiés par
-les G-codes interprétés plutôt dans la session.
+ (((RS274NGC STARTUP CODE))) Une chaine de codes NGC qui sera utilisée
+ pour initialiser l'interpréteur. Elle ne se substitue pas à la
+ spécification des G-codes modaux du début de chaque fichier ngc. Les
+ codes modaux des machines diffèrent, ils pourraient être modifiés par
+ les G-codes interprétés plutôt dans la session.
* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' -
- (((SUBROUTINE PATH))) Spécifie une liste, séparée par (:) d'au maximum 10
-répertoires dans lesquels seront cherchés les fichier de sous-programme
-spécifiés dans le g-code. Ces répertoires sont inspectés après que ne le
-soit [DISPLAY]PROGRAM_PREFIX (si il est spécifié) et avant que ne le soit
-[WIZARD]WIZARD_ROOT (si il est spécifié). les recherches s'effectuent dans
-l'ordre dans lequel les chemins sont listés. La première occurrence avec le
-sous-programme recherché est utilisée. Les répertoires sont spécifiés
-relativement au répertoire courant du fichier ini ou par des chemins
-absolus. La liste ne doit contenir aucun espace blanc.
+ (((SUBROUTINE PATH))) Spécifie une liste, séparée par (:) d'au maximum 10
+ répertoires dans lesquels seront cherchés les fichier de sous-programme
+ spécifiés dans le g-code. Ces répertoires sont inspectés après que ne le
+ soit [DISPLAY]PROGRAM_PREFIX (si il est spécifié) et avant que ne le soit
+ [WIZARD]WIZARD_ROOT (si il est spécifié). les recherches s'effectuent dans
+ l'ordre dans lequel les chemins sont listés. La première occurrence avec le
+ sous-programme recherché est utilisée. Les répertoires sont spécifiés
+ relativement au répertoire courant du fichier ini ou par des chemins
+ absolus. La liste ne doit contenir aucun espace blanc.
* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' -
- (((USER M PATH))) Spécifie une liste de répertoires, séparés par (:) (sans
-aucun espace blanc) pour les fonctions définies par l'utilisateur. Les
-répertoires sont spécifiés par rapport au répertoire courant pour les
-fichiers ini ou en chemins absolus. La liste ne doit contenir aucun
-espace blanc.
+ (((USER M PATH))) Spécifie une liste de répertoires, séparés par (:) (sans
+ aucun espace blanc) pour les fonctions définies par l'utilisateur. Les
+ répertoires sont spécifiés par rapport au répertoire courant pour les
+ fichiers ini ou en chemins absolus. La liste ne doit contenir aucun
+ espace blanc.
* 'USER_DEFINED_FUNCTION_MAX_DIRS=5' - Défini le nombre maximum de répertoires
-au moment de la compilation. Une recherche est faite pour chaque fonction
-utilisateur définie possible, typiquement 'M100' à 'M199'. +
-L'ordre de recherche est le suivant: +
+ au moment de la compilation. Une recherche est faite pour chaque fonction
+ utilisateur définie possible, typiquement 'M100' à 'M199'. +
+ L'ordre de recherche est le suivant: +
. [DISPLAY]PROGRAM_PREFIX (si il est spécifié)
. Si [DISPLAY]PROGRAM_PREFIX n'est pas spécifié, cherche dans le répertoire
-par défaut: nc_files
+ par défaut: nc_files
. Recherche ensuite dans chaque répertoire de la liste [RS274NGC]USER_M_PATH
-Le premier M1xx trouvé au cours de la recherche est utilisé pour chaque M1xx.
+ Le premier M1xx trouvé au cours de la recherche est utilisé pour chaque M1xx.
[NOTE]
[WIZARD]WIZARD_ROOT est un chemin de recherche valide mais l'assistant n'est
@@ -635,8 +634,7 @@ pas encore complétement implémenté et les résultats, découlant de son
utilisation, sont imprévisibles.
[[sub:Section-EMCMOT]]
-=== Section [EMCMOT]
-(((Section [EMCMOT] du fichier ini)))
+=== Section [EMCMOT](((Section [EMCMOT] du fichier ini)))
D'autres entrées peuvent être rencontrées dans cette section, elles ne doivent
pas être modifiées.
@@ -644,7 +642,7 @@ pas être modifiées.
* 'EMCMOT = motmod' - Utilise typiquement le nom du contrôleur de mouvement.
* 'BASE_PERIOD = 50000' - (((BASE PERIOD))) (HAL) Période de base des tâches,
-exprimée en ns.
+ exprimée en ns.
////
C'est la plus rapide des horloges de la machine.
@@ -665,7 +663,7 @@ Choisir une BASE_PERIOD trop basse peut amener à des messages
////
* 'SERVO_PERIOD = 1000000' - (((SERVO PERIOD))) (hal) Période de la tâche
-'Servo', exprimée également en nanosecondes.
+ 'Servo', exprimée également en nanosecondes.
////
Cette valeur sera arrondie à un multiple entier de 'BASE_PERIOD'.
@@ -688,69 +686,65 @@ Excepté pour les machines avec une cinématique particulière
////
[[sub:Section-TASK]]
-=== Section [TASK]
-(((Section [TASK] du fichier ini)))
+=== Section [TASK](((Section [TASK] du fichier ini)))
* 'TASK = milltask' - Indique le nom de la 'tâche' exécutable. La tâche réalise
-différentes actions, telles que communiquer avec les interfaces utilisateur au
-dessus de NML, communiquer avec le planificateur de mouvements temps réel dans
-la mémoire partagée non-HAL, et interpréter le g-code.
-Actuellement il n'y a qu'une seule tâche exécutable qui fait sens pour
-99,9% des utilisateurs, milltask.
+ différentes actions, telles que communiquer avec les interfaces utilisateur au
+ dessus de NML, communiquer avec le planificateur de mouvements temps réel dans
+ la mémoire partagée non-HAL, et interpréter le g-code.
+ Actuellement il n'y a qu'une seule tâche exécutable qui fait sens pour
+ 99,9% des utilisateurs, milltask.
* 'CYCLE_TIME = 0.010' - Période exprimée en secondes, à laquelle TASK
-va tourner. Ce paramètre affecte l'intervalle de polling lors de l'attente de
-la fin d'un mouvement, lors de l'exécution d'une pause d'instruction et quand
-une commande provenant d'une interface utilisateur est acceptée. Il
-n'est généralement pas nécessaire de modifier cette valeur.
+ va tourner. Ce paramètre affecte l'intervalle de polling lors de l'attente de
+ la fin d'un mouvement, lors de l'exécution d'une pause d'instruction et quand
+ une commande provenant d'une interface utilisateur est acceptée. Il
+ n'est généralement pas nécessaire de modifier cette valeur.
[[sub:Section-HAL]]
-=== Section [HAL]
-(((Section [HAL] du fichier ini )))
+=== Section [HAL](((Section [HAL] du fichier ini )))
* 'TWOPASS=ON' - Utilise le processus 'twopass' (double passe) pour charger
-les composants HAL. Avec le processus TWOPASS, tous les fichiers [HAL]HALFILES
-sont premièrement lus et les occurrences multiples des directives à loadrt
-pour chaque module sont cumulées. Aucune commande HAL n'est exécutée à
-la première passe.
+ les composants HAL. Avec le processus TWOPASS, tous les fichiers [HAL]HALFILES
+ sont premièrement lus et les occurrences multiples des directives à loadrt
+ pour chaque module sont cumulées. Aucune commande HAL n'est exécutée à
+ la première passe.
* 'HALFILE = example.hal' - Exécute le fichier 'example.hal' au démarrage.
-Si 'HALFILE' est spécifié plusieurs fois, les fichiers sont exécutés dans
-l'ordre de leur apparition dans le fichier ini. Presque toutes les
-configurations auront au moins un 'HALFILE' . Les systèmes à moteurs
-pas à pas ont généralement deux de ces fichiers, un qui spécifie la
-configuration générale des moteurs 'core_stepper.hal' et un qui spécifie le
-brochage des sorties 'xxx_pinout.hal'.
+ Si 'HALFILE' est spécifié plusieurs fois, les fichiers sont exécutés dans
+ l'ordre de leur apparition dans le fichier ini. Presque toutes les
+ configurations auront au moins un 'HALFILE' . Les systèmes à moteurs
+ pas à pas ont généralement deux de ces fichiers, un qui spécifie la
+ configuration générale des moteurs 'core_stepper.hal' et un qui spécifie le
+ brochage des sorties 'xxx_pinout.hal'.
* 'HAL = command' - Exécute 'command' comme étant une simple commande hal.
-Si 'HAL' est spécifié plusieurs fois, les commandes sont exécutées dans
-l'ordre où elles apparaissent dans le fichier ini. Les lignes 'HAL'
-sont exécutées après toutes les lignes 'HALFILE'.
+ Si 'HAL' est spécifié plusieurs fois, les commandes sont exécutées dans
+ l'ordre où elles apparaissent dans le fichier ini. Les lignes 'HAL'
+ sont exécutées après toutes les lignes 'HALFILE'.
* 'SHUTDOWN = shutdown.hal' - Exécute le fichier 'shutdown.hal' quand LinuxCNC
-s'arrête. Selon les pilotes de matériel utilisés, il est ainsi possible de
-positionner les sorties sur des valeurs définies quand LinuxCNC s'arrête
-normalement. Cependant, parce qu'il n'y a aucune garantie que ce fichier sera
-exécuté (par exemple, dans le cas d'une panne de l'ordinateur), il ne
-remplace pas une véritable chaîne physique d'arrêt d'urgence ou
-d'autres dispositifs logiciels de protection des défauts de fonctionnement comme
-la pompe de charge ou le watchdog.
+ s'arrête. Selon les pilotes de matériel utilisés, il est ainsi possible de
+ positionner les sorties sur des valeurs définies quand LinuxCNC s'arrête
+ normalement. Cependant, parce qu'il n'y a aucune garantie que ce fichier sera
+ exécuté (par exemple, dans le cas d'une panne de l'ordinateur), il ne
+ remplace pas une véritable chaîne physique d'arrêt d'urgence ou
+ d'autres dispositifs logiciels de protection des défauts de fonctionnement comme
+ la pompe de charge ou le watchdog.
* 'POSTGUI_HALFILE = example2.hal' - (Seulement avec les interfaces TOUCHY et
-AXIS) Exécute 'example2.hal' après que l'interface graphique ait créé ses HAL
-pins.
+ AXIS) Exécute 'example2.hal' après que l'interface graphique ait créé ses HAL
+ pins.
[[sub:Section-HALUI]]
-=== Section [HALUI]
-(((Section [HALUI] du fichier ini )))
+=== Section [HALUI](((Section [HALUI] du fichier ini )))
* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' - Une commande MDI peut être exécuté en
-utilisant 'halui.mdi-command-00'. Incrémente le nombre pour chaque commande
-énumérée dans la section [HALUI].
+ utilisant 'halui.mdi-command-00'. Incrémente le nombre pour chaque commande
+ énumérée dans la section [HALUI].
[[sub:Section-TRAJ]]
-=== Section [TRAJ]
-(((Section [TRAJ] du fichier ini )))
+=== Section [TRAJ](((Section [TRAJ] du fichier ini )))
La section [TRAJ] contient les paramètres généraux du module
planificateur de trajectoires de EMCMOT. Vous n'aurez pas à modifier
@@ -835,8 +829,7 @@ limites logicielles pendant les mouvements ce qui n'est pas souhaitable
pour un fonctionnement normal!
[[sub:Sections-AXIS]]
-=== Sections [AXIS_n]
-(((Sections [AXIS_n] du fichier ini)))
+=== Sections [AXIS_n](((Sections [AXIS_n] du fichier ini)))
Les sections [AXIS_0], [AXIS_1], etc. contiennent les paramètres
généraux des composants individuels du module de contrôle. La
@@ -951,7 +944,7 @@ puis 'Calibration'.
=== Section [HOMING]
Les paramètres suivants sont relatifs aux prises d'origine, pour plus
-d'informations, lire <>.
+d'informations, lire <>.
* 'HOME = 0.0' - La position à laquelle le mobile ira à la fin de la séquence
de prise d'origine.
diff --git a/docs/src/config/ini-homing.adoc b/docs/src/config/ini-homing.adoc
index e458a6b0e89..67e95d74262 100644
--- a/docs/src/config/ini-homing.adoc
+++ b/docs/src/config/ini-homing.adoc
@@ -1,17 +1,19 @@
-= Homing Configuration
+:lang: en
+:toc:
[[cha:homing-configuration]]
+= Homing Configuration
== Overview
-Homing sets the zero origin of the G53 machine coordinates. +
-Soft limits are defined relative to the machine origin. +
-The soft limits automatically decelerate and stop the axes before they hit the limits switches +
-A properly configured and functioning machine will not move beyond soft(ware) limits and +
-will have the machine origin set as repeatable as the home switch/index mechanism is. +
-Linuxcnc can be homed by eye (alignment marks), with switches, with switches and an encoder index, or by using absolute encoders. +
+Homing sets the zero origin of the G53 machine coordinates.
+Soft limits are defined relative to the machine origin.
+The soft limits automatically decelerate and stop the axes before they hit the limits switches
+A properly configured and functioning machine will not move beyond soft(ware) limits and
+will have the machine origin set as repeatable as the home switch/index mechanism is.
+Linuxcnc can be homed by eye (alignment marks), with switches, with switches and an encoder index, or by using absolute encoders.
Homing seems simple enough - just move each joint to a known location,
-and set LinuxCNC's internal variables accordingly. +
+and set LinuxCNC's internal variables accordingly.
However, different machines have different requirements, and homing is actually quite
complicated.
@@ -20,40 +22,39 @@ While it is possible to use linuxcnc without homing switches/home procedures or
It defeats the extra security of the soft limits.
== Prerequisite
-Homing relies on some fundamental machine assumptions. +
-
-* The negative and positive directions are based on <> which can be different +
-then the actual machine movement. ie on a mill typically the table moves rather then the tool.
-* Everything is referenced from the G53 machine zero origin, the origin can be anywhere (even outside where you can move) +
-* The G53 machine zero origin is typically inside the soft limits area but not necessarily. +
-* The homing switch offset sets where the origin is, but even it is referenced from the origin. +
-* When using encoder index homing, the home switch offset is calculated from the encoder reference position, after the home switch has been tripped. +
-* The negative soft(ware) limits are the most you can move in the negative direction after homing. +
-(but they might not be negative in the absolute sense) +
-* The positive soft(ware) limits are the most you can move in the positive direction after homing. +
-(but they might not be positive in the absolute sense, though it is usual to set it as a positive number) +
-* Soft(ware) limits are inside the limit switch area. +
-* (Final) Homed Position is inside the soft limit area +
-* (If using switch based homing) the homing switch(es) either utilize the limit switches (shared home / limit switch), +
-or when using a separate home switch, are inside the limit switch area.
-* If using a separate homing switch, it's possible to start homing on the wrong side of the home switch, +
-which combined with HOME_IGNORE_LIMITS option will lead to a hard crash. +
-You can avoid this by making the home switch toggle it's state when the trip dog is on a particular side until it returns passed the trip point again. +
-Said another way, the home switch state must represent the position of the dog relative to the switch (ie _before_ or _after_ the switch), +
-and must stay that way even if the dog coasts past the switch in the same direction.
+Homing relies on some fundamental machine assumptions.
+
+* The negative and positive directions are based on <> which can be different
+ then the actual machine movement. ie on a mill typically the table moves rather then the tool.
+* Everything is referenced from the G53 machine zero origin, the origin can be anywhere (even outside where you can move)
+* The G53 machine zero origin is typically inside the soft limits area but not necessarily.
+* The homing switch offset sets where the origin is, but even it is referenced from the origin.
+* When using encoder index homing, the home switch offset is calculated from the encoder reference position, after the home switch has been tripped.
+* The negative soft(ware) limits are the most you can move in the negative direction after homing.
+ (but they might not be negative in the absolute sense)
+* The positive soft(ware) limits are the most you can move in the positive direction after homing.
+ (but they might not be positive in the absolute sense, though it is usual to set it as a positive number)
+* Soft(ware) limits are inside the limit switch area.
+* (Final) Homed Position is inside the soft limit area
+* (If using switch based homing) the homing switch(es) either utilize the limit switches (shared home / limit switch),
+ or when using a separate home switch, are inside the limit switch area.
+* If using a separate homing switch, it's possible to start homing on the wrong side of the home switch,
+ which combined with HOME_IGNORE_LIMITS option will lead to a hard crash.
+ You can avoid this by making the home switch toggle it's state when the trip dog is on a particular
+ side until it returns passed the trip point again.
+ Said another way, the home switch state must represent the position of the dog relative to the switch (ie _before_ or _after_ the switch),
+ and must stay that way even if the dog coasts past the switch in the same direction.
[NOTE]
-While it is possible to use linuxcnc with the G53 machine origin outside the soft machine limits, if you use G28 or G30 without setting +
+While it is possible to use linuxcnc with the G53 machine origin outside the soft machine limits, if you use G28 or G30 without setting
the parameters it goes to the origin by default. This would trip the limit switches before getting to position.
== Separate Home Switch Example Layout
-This example shows minimum and maximum limit switches with a separate home switch. +
+This example shows minimum and maximum limit switches with a separate home switch.
.Demonstrative Separate Switch Layout
-
-image::images/HomeAxisTravel_V2.png[align="center", alt="Example Homing Switch layout"]
-
+image::images/HomeAxisTravel_V2.png["Example Homing Switch layout",align="center"]
* A is the negative soft limit
* B is the G53 machine coordinate Origin
@@ -69,17 +70,17 @@ image::images/HomeAxisTravel_V2.png[align="center", alt="Example Homing Switch l
* Note that there is distance between the limit switches and actual physical hard contact for coasting after the amplifier is disabled.
[NOTE]
-Homing sets the G53 coordinate system, while the machine origin (zero point) can be anywhere, +
-setting the zero point at the negative soft limit makes all G53 coordinates positive, +
+Homing sets the G53 coordinate system, while the machine origin (zero point) can be anywhere,
+setting the zero point at the negative soft limit makes all G53 coordinates positive,
which is probably easiest to remember. Do this by setting MIN_LIMIT = 0 and make sure MAX_LIMIT is positive.
== Shared Limit/Home Switch Example Layout
-This example shows a maximum limit switch and a combined minimum limit/home switch. +
+This example shows a maximum limit switch and a combined minimum limit/home switch.
.Demonstrative Shared Switch Layout
-image::images/HomeAxisTravel_V3.png[align="center", alt="Example shared Home Limit Switch layout"]
+image::images/HomeAxisTravel_V3.png["Example shared Home Limit Switch layout",align="center"]
* A is the negative soft limit
@@ -105,8 +106,7 @@ detailed description of what each configuration parameter does, see the
following section.
.Homing Sequences
-
-image::images/emc2-motion-homing-diag.png[align="center", alt="Homing Sequences"]
+image::images/emc2-motion-homing-diag.png["Homing Sequences",align="center"]
== Configuration
@@ -207,11 +207,11 @@ Applicable only for HOME_USE_INDEX = YES.
=== HOME_OFFSET (((HOME OFFSET)))
-This defines the location of the origin zero point of the G53 machine coordinate system. +
-It is the distance (offset), in joint units, from the machine origin to the home switch
-trip point or index pulse. +
+This defines the location of the origin zero point of the G53 machine coordinate system.
+It is the distance (offset), in joint units, from the machine origin to the home switch
+trip point or index pulse.
After detecting the switch trip point/index pulse, LinuxCNC sets the joint coordinate position
-to HOME_OFFSET, thus defining the origin, which the soft limits references from. +
+to HOME_OFFSET, thus defining the origin, which the soft limits references from.
The default value is zero.
NOTE: The home switch location, as indicated by the HOME_OFFSET variable,
@@ -261,12 +261,12 @@ HOME_ABSOLUTE_ENCODER = 2 Absolute encoder, NO final move to [JOINT_n]HOME
[NOTE]
A HOME_IS_SHARED setting is silently ignored.
+
[NOTE]
A request to rehome the joint is silently ignored.
-[[sec:homing-section]](((HOME SEQUENCE)))
-
-=== HOME_SEQUENCE (((HOME SEQUENCE)))
+[[sec:homing-section]]
+=== HOME_SEQUENCE(((HOME SEQUENCE)))
Used to define a multi-joint homing sequence *HOME ALL* and enforce
homing order (e.g., Z may not be homed if X is not yet homed). A joint
@@ -427,7 +427,6 @@ net hsequence_select => motion.homing-inhibit
----
[NOTE]
-
Inihal pins (like ini.N.home_sequence) are not available until
milltask starts so execution of the above hal commands should be
deferred using a postgui halfile or a delayed
diff --git a/docs/src/config/ini-homing_es.adoc b/docs/src/config/ini-homing_es.adoc
index 6ae51f45c97..6a77474f2ff 100644
--- a/docs/src/config/ini-homing_es.adoc
+++ b/docs/src/config/ini-homing_es.adoc
@@ -3,18 +3,18 @@
[[cha:homing-configuration]]
-= Configuracion de Homing
+= Configuracion de Homing
== Descripción general
-Homing establece el origen cero de las coordenadas máquina G53. +
-Los límites soft se definen en relación con el origen de la máquina. +
-Los límites soft automáticamente desaceleran y detienen los ejes antes de que toquen los interruptores de límites. +
-Una máquina configurada y funcionando correctamente no se moverá más allá de los límites soft (software) y +
-tendrá el origen de la máquina configurado tan repetible como lo permita el mecanismo switch/index de home. +
-Linuxcnc se puede hacer home a ojo (marcas de alineación), con interruptores, con interruptores e índice de codificador, o utilizando codificadores absolutos. +
+Homing establece el origen cero de las coordenadas máquina G53.
+Los límites soft se definen en relación con el origen de la máquina.
+Los límites soft automáticamente desaceleran y detienen los ejes antes de que toquen los interruptores de límites.
+Una máquina configurada y funcionando correctamente no se moverá más allá de los límites soft (software) y
+tendrá el origen de la máquina configurado tan repetible como lo permita el mecanismo switch/index de home.
+Linuxcnc se puede hacer home a ojo (marcas de alineación), con interruptores, con interruptores e índice de codificador, o utilizando codificadores absolutos.
El recorrido de homing parece bastante simple: simplemente mueve cada articulación a una ubicación conocida,
-y establece las variables internas de LinuxCNC en consecuencia. +
+y establece las variables internas de LinuxCNC en consecuencia.
Sin embargo, diferentes máquinas tienen diferentes requisitos, y el recorrido de homing es realmente bastante
complicado.
@@ -23,30 +23,31 @@ Si bien es posible usar linuxcnc sin interruptores, procedimientos de homing o i
la seguridad adicional de los límites soft no es suficiente.
== Prerrequisitos
-Homing se basa en algunos supuestos fundamentales de la máquina. +
-
-* Las direcciones negativa y positiva se basan en <> que puede ser diferentes +
-del movimiento real de la máquina. Es decir, en una fresadora, la mesa se mueve en lugar de la herramienta.
-* Todo está referenciado desde el origen G53, cero de la máquina. El origen puede estar en cualquier lugar (incluso fuera de donde puede moverse) +
-* El origen cero de la máquina G53 está típicamente dentro del área de límites soft, pero no necesariamente. +
-* El offset del interruptor home establece dónde está el origen, pero incluso esto se referencia desde el origen. +
-* Los límites soft negativos son lo máximo que puede mover en la dirección negativa después de homing. +
-(pero pueden no ser negativos en sentido absoluto) +
-* Los límites soft positivos son lo máximo que puede mover en la dirección positiva después de homing. +
-(pero podrían no ser positivos en sentido absoluto, aunque es habitual establecerlo como un número positivo) +
-* Los límites software están dentro del área de interruptores de límite. +
-* (Si se utiliza homing basado en conmutadores), los conmutadores de homing utilizan los interruptores de límite (interruptor de home/límite compartido), +
+Homing se basa en algunos supuestos fundamentales de la máquina.
+
+* Las direcciones negativa y positiva se basan en <> que puede ser diferentes
+ del movimiento real de la máquina. Es decir, en una fresadora, la mesa se mueve en lugar de la herramienta.
+* Todo está referenciado desde el origen G53, cero de la máquina. El origen puede estar en cualquier lugar (incluso fuera de donde puede moverse)
+* El origen cero de la máquina G53 está típicamente dentro del área de límites soft, pero no necesariamente.
+* El offset del interruptor home establece dónde está el origen, pero incluso esto se referencia desde el origen.
+* Los límites soft negativos son lo máximo que puede mover en la dirección negativa después de homing.
+ (pero pueden no ser negativos en sentido absoluto)
+* Los límites soft positivos son lo máximo que puede mover en la dirección positiva después de homing.
+ (pero podrían no ser positivos en sentido absoluto, aunque es habitual establecerlo como un número positivo)
+* Los límites software están dentro del área de interruptores de límite.
+* (Si se utiliza homing basado en conmutadores), los conmutadores de homing utilizan
+ los interruptores de límite (interruptor de home/límite compartido),
o cuando se usa un interruptor home separado, están dentro del área de interruptores de límite.
-* Si usa un interruptor home independiente, es posible comenzar a buscar en el lado equivocado del interruptor, +
-lo que combinado con la opción HOME_IGNORE_LIMITS, provocará un bloqueo grave. +
-Puede evitar esto haciendo que el interruptor home cambie su estado cuando el disparador está en un lado en particular hasta que vuelva a pasar el punto nuevamente. +
-Dicho de otra manera, el estado del interruptor home debe representar la posición del disparador con respecto al interruptor (es decir, antes o después del interruptor), +
+* Si usa un interruptor home independiente, es posible comenzar a buscar en el lado equivocado del interruptor,
+lo que combinado con la opción HOME_IGNORE_LIMITS, provocará un bloqueo grave.
+Puede evitar esto haciendo que el interruptor home cambie su estado cuando el disparador está en un lado en particular hasta que vuelva a pasar el punto nuevamente.
+Dicho de otra manera, el estado del interruptor home debe representar la posición del disparador con respecto al interruptor (es decir, antes o después del interruptor),
y debe permanecer así incluso si el disparador pasa por el interruptor en la misma dirección.
== Ejemplo de Diseño de interruptor home separado
-Este ejemplo muestra los interruptores de límite mínimo y máximo con un interruptor home separado. +
+Este ejemplo muestra los interruptores de límite mínimo y máximo con un interruptor home separado.
.Diseño de demostrativo interruptor separado
@@ -67,13 +68,13 @@ image::images/HomeAxisTravel_V2.png[align="center", alt="Ejemplo de diseño de c
* Tenga en cuenta que hay una distancia entre los interruptores de límite y el contacto físico real para la inercia después de que el amplificador esté desactivado.
[NOTE]
-Homing establece el sistema de coordenadas G53, mientras que el origen de la máquina (punto cero) puede estar en cualquier lugar. +
-Establecer el punto cero en el límite soft negativo hace que todas las coordenadas G53 sean positivas, +
+Homing establece el sistema de coordenadas G53, mientras que el origen de la máquina (punto cero) puede estar en cualquier lugar.
+Establecer el punto cero en el límite soft negativo hace que todas las coordenadas G53 sean positivas,
lo cual es probablemente más fácil de recordar. Haga esto configurando MIN_LIMIT = 0 y asegúrese de que MAX_LIMIT sea positivo.
== Ejemplo de Diseño de Límite/Home compartido
-Este ejemplo muestra un interruptor de límite máximo y un interruptor combinado de límite mínimo/home. +
+Este ejemplo muestra un interruptor de límite máximo y un interruptor combinado de límite mínimo/home.
.Diseño demostrativo de conmutador compartido
@@ -205,9 +206,9 @@ Aplicable solo si HOME_USE_INDEX = YES.
=== HOME_OFFSET (((HOME OFFSET)))
-Esto define la ubicación del punto cero de origen del sistema de coordenadas G53 de la máquina. +
+Esto define la ubicación del punto cero de origen del sistema de coordenadas G53 de la máquina.
Es la distancia (offset), en unidades articulares, desde el origen de la máquina hasta el punto de disparo
-del interruptor home o pulso índice. +
+del interruptor home o pulso índice.
Después de detectar el punto de disparo del interruptor/pulso de índice, LinuxCNC establece la posición de la coordenada
a HOME_OFFSET, definiendo así el origen, desde el cual el soft limita las referencias.
El valor por defecto es cero.
@@ -259,11 +260,11 @@ HOME_ABSOLUTE_ENCODER = 2 Codificador absoluto, NO movimiento final a [JOINT_n]H
[NOTE]
Una configuración HOME_IS_SHARED se ignora.
+
[NOTE]
Una solicitud para volver a colocar la articulación se ignora.
-[[sec:homing-section]](((SECUENCIA HOME)))
-
+[[sec:homing-section]]
=== HOME_SEQUENCE (((SECUENCIA HOME)))
Se usa para definir una secuencia homing múltiple *HOME ALL* y aplicar un
diff --git a/docs/src/config/ini_homing_fr.adoc b/docs/src/config/ini-homing_fr.adoc
similarity index 98%
rename from docs/src/config/ini_homing_fr.adoc
rename to docs/src/config/ini-homing_fr.adoc
index 52f06437f07..610f789b10d 100644
--- a/docs/src/config/ini_homing_fr.adoc
+++ b/docs/src/config/ini-homing_fr.adoc
@@ -1,9 +1,9 @@
:lang: fr
:toc:
-= Prise d'origine
-
[[sec:Prises-d-origine]]
+[[cha:homing-configuration]]
+= Prise d'origine
== La prise d'origine
@@ -20,8 +20,7 @@ configuration associés, la figure suivante donne le détail de ces séquences.
[[fig:Sequences-de-prise-d-origine]]
.Les séquences de POM possibles
-
-image::images/linuxcnc-motion-homing-diag_fr.png[alt="Les séquences de POM possibles"]
+image::images/linuxcnc-motion-homing-diag_fr.png["Les séquences de POM possibles"]
. Comme on le voit sur la figure, les deux conditions de base sont les suivantes:
@@ -37,7 +36,6 @@ prise d'origines définie dans la section [AXIS] du fichier ini.
[[cap:Variables-sequences-de-POM]]
.Combinaisons des variables de la POM
-
[width="80%", options="header", cols="4*^"]
|==========================================================
|Type de POM |SEARCH_VEL |LATCH_VEL |USE_INDEX
diff --git a/docs/src/config/integrator-concepts.adoc b/docs/src/config/integrator-concepts.adoc
index f271a2614f3..2c97e2060a0 100644
--- a/docs/src/config/integrator-concepts.adoc
+++ b/docs/src/config/integrator-concepts.adoc
@@ -1,5 +1,6 @@
-[[cha:integrator-concepts]]
+:lang: en
+[[cha:integrator-concepts]]
= Integrator Concepts
== File Locations
@@ -140,8 +141,7 @@ unlike stepper motors which are generally run 'open loop'. What does
'closed loop' mean? Let's look at a simplified diagram of how a servomotor
system is connected.
-.Servo Loop
-image::images/servo-feedback.png[alt="simplified diagram of how a servomotor system is connected"]
+image::images/servo-feedback.png["simplified diagram of how a servomotor system is connected"]
This diagram shows that the input signal (and the feedback signal) drive
the summing amplifier, the summing amplifier drives the power amplifier,
@@ -172,8 +172,7 @@ that are applied to the task of getting a working process to follow a
set point. In the case of LinuxCNC the process we want to control is actual
axis position and the set point is the commanded axis position.
-.PID Loop
-image::images/pid-feedback.png[alt="PID Loop, PID stands for Proportional, Integral, and Derivative"]
+image::images/pid-feedback.png["PID Loop, PID stands for Proportional, Integral, and Derivative"]
By 'tuning' the three constants in the PID controller algorithm, the
controller can provide control action designed for specific process
diff --git a/docs/src/config/iov2.adoc b/docs/src/config/iov2.adoc
index 6333eeb0d77..dcc4b428100 100644
--- a/docs/src/config/iov2.adoc
+++ b/docs/src/config/iov2.adoc
@@ -1,5 +1,6 @@
-[[cha:iov2]]
+:lang: en
+[[cha:iov2]]
= I/O Control V2
== Description
@@ -149,11 +150,11 @@ Additional pins added by I/O Control V2
== Parameters
-* iocontrol.0.tool-prep-index (s32, RO) IO’s internal array index of the prepped
+* iocontrol.0.tool-prep-index (s32, RO) IO's internal array index of the prepped
tool requested by the most recent T-word. 0 if no tool is prepped. On random
- toolchanger machines this is tool’s pocket number (ie, the same as the
+ toolchanger machines this is tool's pocket number (ie, the same as the
tool-prep-pocket pin), on non-random toolchanger machines this is a small
- integer corresponding to the tool’s location in the internal representation of
+ integer corresponding to the tool's location in the internal representation of
the tool table. This parameter returns to 0 after a successful tool change M6.
== Communications
diff --git a/docs/src/config/lathe-config.adoc b/docs/src/config/lathe-config.adoc
index 2872487b9a0..8c8d1ef8ed8 100644
--- a/docs/src/config/lathe-config.adoc
+++ b/docs/src/config/lathe-config.adoc
@@ -1,6 +1,7 @@
-= Lathe Configuration
+:lang: en
[[cha:lathe-configuration]]
+= Lathe Configuration
== Default Plane
diff --git a/docs/src/config/lathe_config_fr.adoc b/docs/src/config/lathe-config_fr.adoc
similarity index 100%
rename from docs/src/config/lathe_config_fr.adoc
rename to docs/src/config/lathe-config_fr.adoc
diff --git a/docs/src/config/moveoff.adoc b/docs/src/config/moveoff.adoc
index fbac1bd19d3..3787c2376cb 100644
--- a/docs/src/config/moveoff.adoc
+++ b/docs/src/config/moveoff.adoc
@@ -1,6 +1,7 @@
-= Moveoff Component
+:lang: en
[[cha:moveoff]]
+= Moveoff Component(((Moveoff)))
The moveoff Hal component is a Hal-only method
for implementing offsets. See the manpage ('$ man moveoff')
@@ -15,7 +16,7 @@ The axis offset pin values (offset-in-M) are continuously applied (respecting
limits on value, velocity, and acceleration) to the output pins
(offset-current-M, pos-plusoffset-M, fb-minusoffset-M) when both enabling input
pins (apply-offsets and move-enable) are TRUE. The two enabling inputs are
-anded internally. A 'warning pin' is set and a message issued if the
+anded internally. A 'warning pin' is set and a message issued if the
apply-offsets pin is deasserted while offsets are applied. The warning pin
remains TRUE until the offsets are removed or the apply-offsets pin is set.
@@ -82,13 +83,11 @@ Hal component is unaware of limits enforced elsewhere by LinuxCNC.
Users should test usage in a simulator application and understand all
hazards before use on hardware.
-
Sim configurations that demonstrate the component and a
gui (moveoff_gui) are located in:
-* configs/sim/axis/moveoff (axis-ui)
-* configs/sim/touchy/ngcgui (touchy-ui)
-
+* configs/sim/axis/moveoff (axis-ui)
+* configs/sim/touchy/ngcgui (touchy-ui)
== Modifying an existing configuration
@@ -109,7 +108,6 @@ a configuration ini file, it will:
. Set the moveoff component operating parameters and limits for each axis
in accordance with additional ini file settings
-
Note: The moveoff_gui application supports configurations that use known
kinematics modules with KINEMATICS_TYPE=KINEMATICS_IDENTITY. Supported
modules include: trivkins. With identity kins, moveoff_gui
@@ -147,8 +145,8 @@ MAX_VELOCITY =
MAX_ACCELERATION =
----
-Add ini file entries for moveoff component settings
-(omit to use moveoff defaults):
+Add ini file entries for moveoff component settings (omit to use moveoff defaults):
+
----
[MOVEOFF]
EPSILON =
@@ -188,6 +186,7 @@ is automatically created if necessary.
To use the moveoff_gui, add an entry in the ini file [APPLICATIONS]
section as follows:
+
----
[APPLICATIONS]
# Note: a delay (specified in seconds) may be required if connections
@@ -208,6 +207,7 @@ must make additional connections. For example, the supplied demonstration
configs (configs/sim/axis/moveoff/*.ini) use a simple system halfile
(named LIB:moveoff_external.hal) to connect the mv.move-enable,mv.offset-in-M,
and mv.bactrack-enable pins to signals:
+
----
[HAL]
HALUI = halui
@@ -218,8 +218,9 @@ HALFILE = LIB:moveoff_external.hal
The connections made by LIB:moveoff_external.hal (for a three axis
configuration) are:
+
----
-net external_enable mv.move-enable
+net external_enable mv.move-enable
net external_offset_0 mv.offset-in-0
net external_offset_1 mv.offset-in-1
@@ -235,11 +236,13 @@ for current offset values and offset status.
The moveoff_gui is configured with command line options. For details
on the operation of moveoff_gui, see the man page:
+
----
$ man moveoff_gui
----
-For a brief listing of command line options for moveoff_gui, use the command
-line help option:
+
+For a brief listing of command line options for moveoff_gui, use the command line help option:
+
----
$ moveoff_gui --help
@@ -271,17 +274,17 @@ Options:
Options for special cases:
[-noentry] (default: notused)
- (don't create entry widgets)
+ (don't create entry widgets)
[-no_resume_inhibit] (default: notused)
- (do not use a resume-inhibit-pin)
+ (do not use a resume-inhibit-pin)
[-no_pause_requirement] (default: notused)
- (no check for halui.program.is-paused)
+ (no check for halui.program.is-paused)
[-no_cancel_autoresume] (default: notused)
- (useful for retraact offsets with simple)
- (external control )
+ (useful for retraact offsets with simple)
+ (external control )
[-no_display] (default: notused)
- (Use when both external controls and displays)
- (are in use (see Note)) )
+ (Use when both external controls and displays)
+ (are in use (see Note)) )
Note: If the moveoff move-enable pin (mv.move-enable) is connected when
moveoff_gui is started, external controls are required and only
diff --git a/docs/src/config/pncconf.adoc b/docs/src/config/pncconf.adoc
index df91a8c1a17..bdc5adbc729 100644
--- a/docs/src/config/pncconf.adoc
+++ b/docs/src/config/pncconf.adoc
@@ -1,5 +1,6 @@
-[[cha:pncconf-wizard]]
+:lang: en
+[[cha:pncconf-wizard]]
= Mesa Configuration Wizard
PNCconf is made to help build configurations that utilize specific Mesa
diff --git a/docs/src/config/python-interface.adoc b/docs/src/config/python-interface.adoc
index aaaaa64170c..3bfae22ad28 100644
--- a/docs/src/config/python-interface.adoc
+++ b/docs/src/config/python-interface.adoc
@@ -1,5 +1,6 @@
-[[cha:python-interface]]
+:lang: en
+[[cha:python-interface]]
= Python Interface
:ini: {basebackend@docbook:'':ini}
@@ -397,7 +398,8 @@ else:
*velocity*:: '(returns float)' -
This property is defined, but it does not have a useful interpretation.
-=== The `axis` dictionary [[sec:the-axis-dictionary]]
+[[sec:the-axis-dictionary]]
+=== The `axis` dictionary
The axis configuration and status values are available through a list
of per-axis dictionaries. Here's an example how to access an attribute
@@ -417,10 +419,11 @@ parameter, reflects [JOINT_n]MIN_LIMIT.
*velocity*:: '(returns float)' -
current velocity.
-=== The `joint` dictionary [[sec:the-joint-dictionary]]
+[[sec:the-joint-dictionary]]
+=== The `joint` dictionary
[source,python]
----------------------------------------------------------------------
+----
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import linuxcnc
@@ -504,7 +507,8 @@ by the configuration parameter [JOINT_n]UNITS)
*velocity*:: '(returns float)' -
current velocity.
-== The `spindle` dictionary [[sec:the-spindle-dictionary]]
+[[sec:the-spindle-dictionary]]
+== The `spindle` dictionary
*brake*:: '(returns integer)' -
value of the spindle brake flag.
@@ -838,10 +842,11 @@ if error:
else:
typus = "info"
print typus, text
----------------------------------------------------------------------
+----
-== Reading ini file values [[python:reading-ini-values]]
+[[python:reading-ini-values]]
+== Reading ini file values
Here's an example for reading values from an ini file through the
`linuxcnc.ini` object:
diff --git a/docs/src/config/python-interface_es.adoc b/docs/src/config/python-interface_es.adoc
index da46111f461..a3c112ce053 100644
--- a/docs/src/config/python-interface_es.adoc
+++ b/docs/src/config/python-interface_es.adoc
@@ -1,7 +1,6 @@
:lang: es
[[cha:python-interface]]
-
= Interfaz de Python
:ini: {basebackend@docbook:'':ini}
diff --git a/docs/src/config/stepconf.adoc b/docs/src/config/stepconf.adoc
index 60e0a3024eb..20b4e808b7c 100644
--- a/docs/src/config/stepconf.adoc
+++ b/docs/src/config/stepconf.adoc
@@ -1,6 +1,7 @@
-= Stepper Configuration Wizard
+:lang: en
[[cha:stepconf-wizard]]
+= Stepper Configuration Wizard
== Introduction
@@ -22,59 +23,61 @@ The file extension is .stepconf.
The Stepconf Wizard works best with at least 800 x 600 screen resolution.
-
== Start Page
+[[cap:init-Page]]
.Entry Page
+image::images/stepconf-start_en.png["Entry Page",align="center"]
-image::images/stepconf-start_en.png[align="center", alt="Entry Page"]
-
-* 'Create New' - Creates a fresh configuration.
-
-* 'Modify' - Modify an 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. Stepconf will highlight the lastconf that was built.
+image::images/stepconf-start_2_es.png["Pagina de entrada",align="center"]
-* 'Import' - Import a Mach configuration file and attempt to convert it to
-a linuxcnc config file. After the import, you will go though the pages
-of stepconf to confirm/modify the entries. The original mach xml file will
-not be changed.
+The three first radio buttons are self-explanatory:
-These next options will be recorded in a preference file for the next run of
-Stepconf.
-
-* 'Create Desktop Shortcut' - This will place a link on your desktop to the
-files.
+* 'Create New' - Creates a fresh configuration.
+* 'Modify' - Modify an 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.
+ Stepconf will highlight the lastconf that was built.
+* 'Import' - Import a Mach configuration file and attempt to convert it to a linuxcnc config file.
+ After the import, you will go though the pages of stepconf to confirm/modify the entries.
+ The original mach xml file will not be changed.
+
+These next options will be recorded in a preference file for the next run of Stepconf.
+
+* 'Create Desktop Shortcut' - This will place a link on your desktop to the files.
+* 'Create Desktop Launcher' - This will place a launcher on your desktop to start your application.
+* 'Create Simulated Hardware' - This allows you to build a config for testing, even if you don't have the actual hardware.
+
+[[sec:Basic-Information]]
+== Basic Information
-* 'Create Desktop Launcher' - This will place a launcher on your desktop to
-start your application.
+[[cap:Basic-Information-Page]]
+.Basic Information Page
+image::images/stepconf-base_en.png["Basic Information Page",align="center"]
* 'Create Simulated Hardware' - This allows you to build a config for testing,
even if you don't have the actual hardware.
-== Basic Information
-
-.Basic Information Page
-
-image::images/stepconf-base_en.png[align="center", alt="Basic Information Page"]
-
-* 'Machine Name' - Choose a name for your machine. Use only uppercase letters,
-lowercase letters, digits, - and _.
-
-* 'Axis Configuration' - Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe).
-
-* 'Machine Units' - Choose Inch or mm. All subsequent entries will be in the
-chosen units. Changing this also changes the default values in the Axes section.
-If you change this after selecting values in any of the axes sections, they will
-be over-written by the default values of the selected units.
-
-* 'Driver Type' - If you have one of the stepper drivers listed in the pull down
-box, choose it. Otherwise, select 'Other' and find the timing values in your
-driver's data sheet and enter them as 'nano seconds' in the 'Driver Timing
-Settings'. If the data sheet gives a value in microseconds, multiply by 1000.
-For example, enter 4.5us as 4500ns.
+* 'Machine Name' - (((Machine Name)))
+ Choose a name for your machine.
+ Use only uppercase letters, lowercase letters, digits, - and _.
+
+* 'Axis Configuration' - (((Axis Configuration)))
+ Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe).
+
+* 'Machine Units' - (((Machine Units)))
+ Choose Inch or mm. All subsequent entries will be in the
+ chosen units. Changing this also changes the default values in the Axes section.
+ If you change this after selecting values in any of the axes sections, they will
+ be over-written by the default values of the selected units.
+
+* 'Driver Type' - (((Driver Type)))
+ If you have one of the stepper drivers listed in the pull down box, choose it.
+ Otherwise, select 'Other' and find the timing values in your
+ driver's data sheet and enter them as 'nano seconds' in the 'Driver Timing Settings'.
+ If the data sheet gives a value in microseconds, multiply by 1000.
+ For example, enter 4.5us as 4500ns.
A list of some popular drives, along with their timing values, is on the
LinuxCNC.org Wiki under
@@ -88,34 +91,33 @@ drive requirements to allow for this.
The LinuxCNC Configuration Selector has configs for Sherline already configured.
* 'Step Time' - How long the step pulse is 'on' in nano seconds. If your not
-sure about this setting a value of 20,000 will work with most drives.
+ sure about this setting a value of 20,000 will work with most drives.
* 'Step Space' - Minimum time between step pulses in nano seconds. If your
-not sure about this setting a value of 20,000 will work with most drives.
+ not sure about this setting a value of 20,000 will work with most drives.
* 'Direction Hold' - How long the direction pin is held after a change of
-direction in nanoseconds. If your not sure about this setting a value of
-20,000 will work with most drives.
+ direction in nanoseconds. If your not sure about this setting a value of
+ 20,000 will work with most drives.
* 'Direction Setup' - How long before a direction change after the last
-step pulse in nanoseconds. If your not sure about this setting a value of
-20,000 will work with most drives.
+ step pulse in nanoseconds. If your not sure about this setting a value of
+ 20,000 will work with most drives.
* 'One / Two Parport' - Select how many parallel port are to be configured.
* 'Base Period Maximum Jitter' - Enter the result of the Latency Test here.
-To run a latency test press the 'Test Base Period Jitter' button. See the
-<> section for more details.
+ To run a latency test press the 'Test Base Period Jitter' button. See the
+ <> section for more details.
* 'Max Step Rate' -Stepconf automatically calculates the Max Step Rate based
-on the driver characteristics entered and the latency test result.
+ on the driver characteristics entered and the latency test result.
* 'Min Base Period' - Stepconf automatically determines the Min Base Period
-based on the driver characteristics entered and latency test result.
+ based on the driver characteristics entered and latency test result.
-[[latency-test]](((Latency Test)))
-
-== Latency Test
+[[latency-test]]
+== Latency Test(((Latency Test)))
While the test is running, you should 'abuse' the computer. Move
windows around on the screen. Surf the web. Copy some large files
@@ -132,7 +134,7 @@ Do not attempt run LinuxCNC while the latency test is running.
.Latency Test
-image::images/latency-test_en.png[align="center", alt="Latency Test"]
+image::images/latency-test_en.png["Latency Test",align="center"]
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
@@ -171,139 +173,88 @@ whether you use software stepping or not.
.Parallel Port Setup Page
-image::images/stepconf-parallel-1_en.png[align="center", alt="Parallel Port 1 Setup Page"]
-You may specify the address as a hexadecimal (often 0x378) or as linux's default
- port number (probably 0)
-
-For each pin, choose the signal which matches
-your parallel port pinout.
-Turn on the 'invert' check box if the signal is inverted
-(0V for true/active, 5V for false/inactive).
+image::images/stepconf-parallel-1_en.png["Parallel Port 1 Setup Page",align="center"]
-* 'Output pinout 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).
+You may specify the address as a hexadecimal (often 0x378) or as linux's default port number (probably 0)
-* 'Inputs and Outputs' - If the input or output is not used set the option
-to 'Unused'.
+For each pin, choose the signal which matches your parallel port pinout.
+Turn on the 'invert' check box if the signal is inverted (0V for true/active, 5V for false/inactive).
+* 'Output pinout 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).
+* 'Inputs and Outputs' - If the input or output is not used set the option to 'Unused'.
* 'External E Stop' - This can be selected from an input pin drop down box.
-A typical E Stop chain uses all normally closed contacts.
-
-* 'Homing & Limit Switches' - These can be selected from an input pin drop
-down box for most configurations.
-
-* 'Charge Pump' - If your driver board requires a charge pump signal 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.
-
-* 'Plasma Arc Voltage' - If you require a Mesa THCAD to input a plasma arc
-voltage then select Plasma Arc Voltage from the list of output pins.
-This will enable a THCAD page during the setup procedure for the entry of
-the card parameters.
+ A typical E Stop chain uses all normally closed contacts.
+* 'Homing & Limit Switches' - These can be selected from an input pin drop down box for most configurations.
+* 'Charge Pump' - If your driver board requires a charge pump signal 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.
+* 'Plasma Arc Voltage' - If you require a Mesa THCAD to input a plasma arc voltage then select Plasma Arc Voltage from the list of output pins.
+ This will enable a THCAD page during the setup procedure for the entry of the card parameters.
== Parallel Port 2 Setup
.Parallel Port 2 Setup Page
-image::images/stepconf-parallel-2_en.png[align="center", alt="Parallel Port 2 Setup Page"]
+image::images/stepconf-parallel-2_en.png["Parallel Port 2 Setup Page",align="center"]
-The second Parallel port (if selected) can be configured and It's pins
-assigned on this page. +
-No step and direction signals can be selected. +
-You may select in or out to maximizes the number of input/output pins that
-are available. +
-You may specify the address as a hexadecimal (often 0x378) or as linux's default
- port number (probably 1).
+The second Parallel port (if selected) can be configured and It's pins assigned on this page.
+No step and direction signals can be selected.
+You may select in or out to maximizes the number of input/output pins that are available.
+You may specify the address as a hexadecimal (often 0x378) or as linux's default port number (probably 1).
-== Axis Configuration
+== Axis Configuration[[sec:Axis-Configuration]](((Axis Configuration)))
.Axis Configuration Page
-
-image::images/stepconf-axis-x_en.png[align="center", alt="Axis X Configuration Page"]
-
-* 'Motor Steps Per Revolution' - The number of full steps per motor revolution.
-If you know how many degrees per step the motor is (e.g., 1.8 degree), then
-divide 360 by the degrees per step to find the number of steps per motor
-revolution.
-
-* 'Driver Microstepping' - The amount of microstepping performed by the driver.
-Enter '2' for half-stepping.
-
-* 'Pulley Ratio' - If your machine has pulleys between the motor and leadscrew,
-enter the ratio here. If not, enter '1:1'.
-
-* 'Leadscrew Pitch' - Enter the pitch of the leadscrew here. If you chose
-'Inch' units, enter the number of threads per inch If you chose 'mm' units,
-enter the number of millimeters per revolution (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.
-
-* 'Maximum Velocity' -Enter the maximum velocity for the axis in units per
-second.
-
-* 'Maximum Acceleration' - The correct values for these items can only be
-determined through experimentation. See
-<> to set the speed and
-<> to set the
-acceleration.
-
-* 'Home Location' - 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.
-
-* 'Table Travel' - The range of travel for that axis based on the machine
-origin. The home location must be inside the 'Table Travel' and not equal to
-one of the Table Travel values.
-
-* 'Home Switch Location' - The location at which the home switch trips
-or releases relative to the machine origin. 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.
-
-* 'Home Search Velocity' - The velocity to use when searching for the home
-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.
-If the machine moves the wrong direction at the beginning of the
-homing procedure, negate the value of 'Home Search Velocity'.
-
-* 'Home Latch Direction' - Choose 'Same' to have the axis back off the switch,
-then approach it again at a very low speed. The second time the switch
-closes, the home position is set. Choose 'Opposite' to have the axis back off
-the switch and when the switch opens, the home position is set.
-
-* 'Time to accelerate to max speed' - Time to reach maximum speed calculated
-from 'Max Acceleration' and 'Max Velocity'.
-
-* 'Distance to accelerate to max speed' - Distance to reach maximum speed from
-a standstill.
-
-* 'Pulse rate at max speed' - Information computed based on the values entered
-above. The greatest 'Pulse rate at max speed' determines the 'BASE_PERIOD'.
-Values above 20000Hz may lead to slow response time or even lockups
-(the fastest usable pulse rate varies from computer to computer)
-
+image::images/stepconf-axis-x_en.png["Axis X Configuration Page",align="center"]
+
+* 'Motor Steps Per Revolution' - (((Motor Steps Per Revolution)))
+ The number of full steps per motor revolution.
+ If you know how many degrees per step the motor is (e.g., 1.8 degree), then divide 360 by the degrees per step to find the number of steps per motor revolution.
+* 'Driver Microstepping' - (((Driver Microstepping))))
+ The amount of microstepping performed by the driver.
+ Enter '2' for half-stepping.
+* 'Pulley Ratio' - (((Pulley Ratio)))
+ If your machine has pulleys between the motor and leadscrew, enter the ratio here.
+ If not, enter '1:1'.
+* 'Leadscrew Pitch' - (((Leadscrew Pitch)))
+ Enter the pitch of the leadscrew here.
+ If you chose 'Inch' units, enter the number of threads per inch.
+ If you chose 'mm' units, enter the number of millimeters per revolution (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.
+* 'Maximum Velocity' - (((Maximum Velocity)))
+ Enter the maximum velocity for the axis in units per second.
+* 'Maximum Acceleration' - (((Maximum Acceleration)))
+ The correct values for these items can only be determined through experimentation. See <> to set the speed and <> to set the acceleration.
+* 'Home Location' - (((Home Location)))
+ 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.
+* 'Table Travel' - (((Table Travel)))
+ The range of travel for that axis based on the machine origin.
+ The home location must be inside the 'Table Travel' and not equal to one of the Table Travel values.
+* 'Home Switch Location' - (((Home Switch Location)))
+ The location at which the home switch trips or releases relative to the machine origin. 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.
+* 'Home Search Velocity' - (((Home Search Velocity))) The velocity to use when searching for the home 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. If the machine moves the wrong direction at the beginning of the homing procedure, negate the value of 'Home Search Velocity'.
+* 'Home Latch Direction' - (((Home Latch Direction))) Choose 'Same' to have the axis back off the switch, then approach it again at a very low speed. The second time the switch closes, the home position is set. Choose 'Opposite' to have the axis back off the switch and when the switch opens, the home position is set.
+* 'Time to accelerate to max speed' - (((Time to accelerate to max speed)))
+ Time to reach maximum speed calculated from 'Max Acceleration' and 'Max Velocity'.
+* 'Distance to accelerate to max speed' - (((Distance to accelerate to max speed)))
+ Distance to reach maximum speed from a standstill.
+* 'Pulse rate at max speed' - (((Pulse rate at max speed)))
+ Information computed based on the values entered above.
+ The greatest 'Pulse rate at max speed' determines the 'BASE_PERIOD'.
+ Values above 20000Hz may lead to slow response time or even lockups (the fastest usable pulse rate varies from computer to computer)
* 'Axis SCALE' - The number that will be used in the ini file [SCALE] setting.
-This is how many steps per user unit.
-
-* 'Test this axis' - This will open a window to allow testing for each axis.
-This can be used after filling out all the information for this axis.
+ This is how many steps per user unit.
+* 'Test this axis' - (((Test this axis)))
+ This will open a window to allow testing for each axis. This can be used after filling out all the information for this axis.
-=== Test This Axis
+//== Test This Axis C
-.Test This Axis
+.Test This Axis B
-image::images/stepconf-x-test_en.png[align="center", alt="Test This Axis"]
+image::images/stepconf-x-test_en.png["Test This Axis",align="center",]
Test this axis is a basic tester that only outputs step and direction signals
to try different values for acceleration and velocity.
@@ -314,7 +265,6 @@ is required. If your driver has a charge pump you will have to bypass it.
Test this axis does not react to limit switch inputs. Use with caution.
[[sub:finding-maximum-velocity]]
-
.Finding Maximum Velocity
Begin with a low Acceleration
@@ -356,12 +306,10 @@ you turn Velocity, verify the following:
- Physical problems with the motor, motor coupling, leadscrew, etc.
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'.
-
-[[sub:finding-maximum-acceleration]](((Finding Maximum Acceleration)))
+during this testing procedure, reduce it by 10% and use that as the axis 'Maximum Velocity'.
-.Finding Maximum Acceleration
+[[sub:finding-maximum-acceleration]]
+.Finding Maximum Acceleration(((Finding Maximum Acceleration)))
With the Maximum Velocity you found in the previous step,
enter the acceleration value to test.
@@ -377,24 +325,22 @@ reduce it by 10% and use that as the axis Maximum Acceleration.
.Spindle Configuration Page
-image::images/stepconf-spindle_en.png[align="center", alt="Spindle Configuration Page"]
+image::images/stepconf-spindle_en.png["Spindle Configuration Page",align="center"]
-This page only appears when 'Spindle PWM' is chosen in the
-'Parallel Port Pinout' page for one of the outputs.
+This page only appears when 'Spindle PWM' is chosen in the 'Parallel Port Pinout' page for one of the outputs.
=== Spindle Speed Control
-If 'Spindle PWM' appears on the pinout,
-the following information should be entered:
+If 'Spindle PWM' appears on the pinout, the following information should be entered:
* 'PWM Rate' - 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.
+ '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.
* 'Speed 1 and 2, PWM 1 and 2' - 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
-<>.
+ 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
+ <>.
=== Spindle-synchronized motion
@@ -405,33 +351,31 @@ These signals are:
* 'Spindle Index' - Is a pulse that occurs once per revolution of the spindle.
* 'Spindle Phase A' - This is a pulse that occurs in multiple equally-spaced
-locations as the spindle turns.
+ locations as the spindle turns.
* 'Spindle Phase B (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
-direction sensing, increased noise immunity, and increased resolution.
+ an offset from Spindle Phase A. The advantages to using both A and B are
+ direction sensing, increased noise immunity, and increased resolution.
If 'Spindle Phase A' and 'Spindle Index' appear
on the pinout, the following information should be entered:
* 'Use Spindle-At-Speed' - With encoder feedback one can choose to have linuxcnc
- wait for the spindle to reach the commanded speed before feed moves. Select this
-option and set the 'close enough' scale.
+ wait for the spindle to reach the commanded speed before feed moves. Select this
+ option and set the 'close enough' scale.
-* 'Speed Display Filter Gain' - Setting for adjusting the stability of the
-visual spindle speed display.
+* 'Speed Display Filter Gain' - Setting for adjusting the stability of the visual spindle speed display.
* 'Cycles per revolution' - The number of cycles of the 'Spindle A' signal
-during one revolution of the spindle. This option is only enabled when an
-input has been set to 'Spindle Phase A'
+ during one revolution of the spindle. This option is only enabled when an
+ input has been set to 'Spindle Phase A'
* 'Maximum speed in thread' - The maximum spindle speed used in threading.
-For a high spindle RPM or a spindle encoder with high resolution, a low value
-of 'BASE_PERIOD' is required.
+ For a high spindle RPM or a spindle encoder with high resolution, a low value
+ of 'BASE_PERIOD' is required.
-[[sub:determining-spindle-calibration]](((Determining Spindle Calibration)))
-
-=== Determining Spindle Calibration
+[[sub:determining-spindle-calibration]]
+=== Determining Spindle Calibration(((Determining Spindle Calibration)))
Enter the following values in the Spindle Configuration page:
@@ -450,15 +394,13 @@ Valid numbers (at this point) range from 1 to 1000.
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.
+For 'Speed' enter the measured speed, and for 'PWM' enter the S-number divided by 1000.
Because most spindle drivers are somewhat nonlinear in their response
curves, it is best to:
- Make sure the two calibration speeds are not too close together in RPM
-- Make sure the two calibration speeds are in the range of speeds you
-will typically use while milling
+- Make sure the two calibration speeds are in the range of speeds you will typically use while milling
For instance, if your spindle will go from 0 RPM to 8000 RPM,
but you generally use speeds from 400 RPM (10%) to 4000 RPM (100%),
@@ -466,23 +408,23 @@ then find the PWM values that give 1600 RPM (40%) and 2800 RPM (70%).
== Options
-.Options Configuration
+//.Options Configuration
-image::images/stepconf-options_en.png[align="center", alt="Options Configuration"]
+image::images/stepconf-options_en.png["Options Configuration",align="center"]
* 'Include Halui' - This will add the Halui user interface component. See the
-<> for more information on.
+ <> for more information on.
* 'Include pyVCP' - This option adds the pyVCP panel base file or a sample file
-to work on. See the <> for more information.
+ to work on. See the <> for more information.
* 'Include ClassicLadder PLC' - This option will add the ClassicLadder PLC
-(Programmable Logic Controller). See the
-<> for more information.
+ (Programmable Logic Controller). See the
+ <> for more information.
* 'Onscreen Prompt For Tool Change' - If this box is checked, LinuxCNC will
-pause and prompt you to change the tool when 'M6' is encountered. This feature
-is usually only useful if you have presettable tools.
+ pause and prompt you to change the tool when 'M6' is encountered. This feature
+ is usually only useful if you have presettable tools.
== Machine Configuration Complete
@@ -528,7 +470,8 @@ 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.
-=== Operating without Home Switches[[sub:Operating-without-Home]]
+[[sub:Operating-without-Home]]
+=== Operating without Home Switches
(((Operating without Home Switches)))
A machine can be operated without home switches.
@@ -565,13 +508,13 @@ Typically for a parallel port you might use 47k.
Wiring N/C switches in series (simplified diagram)
-image::images/switch-nc-series_en.svg[align="center", alt="Normally Closed Switches"]
+image::images/switch-nc-series_en.svg["Normally Closed Switches",align="center"]
.Normally Open Switches
Wiring N/O switches in parallel (simplified diagram)
-image::images/switch-no-parallel_en.svg[align="center", alt="Normally Open Switches"]
+image::images/switch-no-parallel_en.svg["Normally Open Switches",align="center"]
The following combinations of switches are permitted in Stepconf:
@@ -583,4 +526,3 @@ The following combinations of switches are permitted in Stepconf:
// vim: set syntax=asciidoc:
-
diff --git a/docs/src/config/stepconf_es.adoc b/docs/src/config/stepconf_es.adoc
index c813476f849..23b67badb2a 100644
--- a/docs/src/config/stepconf_es.adoc
+++ b/docs/src/config/stepconf_es.adoc
@@ -257,7 +257,8 @@ para trabajar en el. Ver el <> para más información
* 'Incluir ClassicLadder PLC' - Esta opción agregará el PLC ClassicLadder
(Controlador lógico programable). Ver el
-<> para más información.
+Capitulo Classicladder para más información.
+//<> - "all-english" document removed
* 'Indicador en pantalla para cambio de herramienta' - Si esta casilla está marcada, LinuxCNC
para y le pide que cambie la herramienta cuando se encuentre 'M6'. Esta característica
diff --git a/docs/src/getting-started/stepconf_fr.adoc b/docs/src/config/stepconf_fr.adoc
similarity index 99%
rename from docs/src/getting-started/stepconf_fr.adoc
rename to docs/src/config/stepconf_fr.adoc
index 88c4f601f60..633160082ce 100644
--- a/docs/src/getting-started/stepconf_fr.adoc
+++ b/docs/src/config/stepconf_fr.adoc
@@ -1,12 +1,10 @@
:lang: fr
-= Assistant graphique de configuration StepConf
-
[[cha:Assistant-graphique-StepConf]] (((Assistant stepconf)))
+= Assistant graphique de configuration StepConf
-[[sec:Introduction]]
-== Introduction
-(((Introduction)))
+[[sec:gettingstarted-stepconf-introduction]]
+== Introduction(((Introduction)))
LinuxCNC est capable de contrôler un large éventail de machines
utilisant de nombreuses interfaces matérielles différentes.
diff --git a/docs/src/config/stepper-diagnostics.adoc b/docs/src/config/stepper-diagnostics.adoc
index c5947ca82a2..dc32d33c130 100644
--- a/docs/src/config/stepper-diagnostics.adoc
+++ b/docs/src/config/stepper-diagnostics.adoc
@@ -1,13 +1,14 @@
-= Stepper Diagnostics
+:lang: en
[[cha:stepper-diagnostics]]
+= Stepper Diagnostics(((Stepper Diagnostics)))
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 it's usually a good place to start.
+is not always the case, but it's usually a good place to start.
== Common Problems
@@ -15,7 +16,7 @@ is not always the case, but it's usually a good place to start.
The most common reason in a new installation for a stepper motor not to
move is that the step and direction signals are exchanged. If you press the
-jog forward and jog backward keys, alternately , and the stepper moves
+jog forward and jog backward keys, alternately , and the stepper moves
one step each time, and in the same direction, there is your clue.
=== No Steppers Move
@@ -39,16 +40,16 @@ 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.
- - FERROR too small
- - MIN_FERROR too small
- - MAX_VELOCITY too fast
- - MAX_ACCELERATION too fast
- - BASE_PERIOD set too long
- - Backlash added to an axis
+- FERROR too small
+- MIN_FERROR too small
+- MAX_VELOCITY too fast
+- MAX_ACCELERATION too fast
+- BASE_PERIOD set too long
+- Backlash added to an axis
Any of the above can cause the real-time 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,
+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.
If you added backlash you need to increase the STEPGEN_MAXACCEL up to
@@ -68,7 +69,7 @@ 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,
+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 Information page. You might
have to leave the test running for an extended period of time to find
@@ -94,7 +95,7 @@ also possible you have either the MAX_ACCELERATION or MAX_VELOCITY set
too high for that axis.
The following program will test the Z axis configuration for proper
-setup. Copy the program to your ~/emc2/nc_files directory and name it
+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
@@ -102,29 +103,30 @@ 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.
- ( test program to see if Z axis loses position )
- ( msg, test 1 of Z axis configuration )
- G20 #1000=100 ( loop 100 times )
- ( this loop has delays after moves )
- ( tests acc and velocity settings )
- o100 while [#1000]
- G0 Z1.000
- G4 P0.250
- G0 Z0.500
- G4 P0.250
- #1000 = [#1000 - 1]
- o100 endwhile
- ( msg, test 2 of Z axis configuration S to continue)
- M1 (stop here)
- #1000=100 ( loop 100 times )
- ( the next loop has no delays after moves )
- ( tests direction hold times on driver config and also max accel setting )
- o101 while [#1000]
- G0 Z1.000
- G0 Z0.500
- #1000 = [#1000 - 1]
- o101 endwhile
- ( msg, Done...Z should be exactly .5" above table )
- M2
-
-
+[source,{ngc}]
+----
+( test program to see if Z axis loses position )
+( msg, test 1 of Z axis configuration )
+G20 #1000=100 ( loop 100 times )
+( this loop has delays after moves )
+( tests acc and velocity settings )
+o100 while [#1000]
+ G0 Z1.000
+ G4 P0.250
+ G0 Z0.500
+ G4 P0.250
+ #1000 = [#1000 - 1]
+o100 endwhile
+( msg, test 2 of Z axis configuration S to continue)
+M1 (stop here)
+#1000=100 ( loop 100 times )
+( the next loop has no delays after moves )
+( tests direction hold times on driver config and also max accel setting )
+o101 while [#1000]
+ G0 Z1.000
+ G0 Z0.500
+ #1000 = [#1000 - 1]
+o101 endwhile
+( msg, Done...Z should be exactly .5" above table )
+M2
+----
diff --git a/docs/src/config/stepper-diagnostics_es.adoc b/docs/src/config/stepper-diagnostics_es.adoc
index 4cfb90f6e76..e00d08a2791 100644
--- a/docs/src/config/stepper-diagnostics_es.adoc
+++ b/docs/src/config/stepper-diagnostics_es.adoc
@@ -1,8 +1,7 @@
:lang: es
-= Diagnósticos para steppers
-
[[cha:stepper-diagnostics]]
+= Diagnósticos para steppers
:ini:{basebackend@docbook:'':ini}
:hal:{basebackend@docbook:'':hal}
diff --git a/docs/src/common/Stepper_Diagnostics_fr.adoc b/docs/src/config/stepper-diagnostics_fr.adoc
similarity index 100%
rename from docs/src/common/Stepper_Diagnostics_fr.adoc
rename to docs/src/config/stepper-diagnostics_fr.adoc
diff --git a/docs/src/config/stepper-quickstart.adoc b/docs/src/config/stepper-quickstart.adoc
index 1230c8a527a..9a6c1f7d0fc 100644
--- a/docs/src/config/stepper-quickstart.adoc
+++ b/docs/src/config/stepper-quickstart.adoc
@@ -1,5 +1,6 @@
-[[cha:stepper-quickstart]]
+:lang: en
+[[cha:stepper-quickstart]]
= Stepper Quickstart
This section assumes you have done a standard install from the Live
@@ -12,20 +13,18 @@ latest updates for LinuxCNC and Ubuntu before continuing.
The Latency Test determines how late your computer processor is in
responding to a request. Some hardware can interrupt the processing
which could cause missed steps when running a CNC machine. This is the
-first thing you need to do. Follow the instructions
+first thing you need to do. Follow the instructions
<> to run the latency test.
-[[sec:sherline]](((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.
-[[sec:xylotex]](((Xylotex)))
-
-== Xylotex
+[[sec:xylotex]]
+== Xylotex(((Xylotex)))
If you have a Xylotex you can skip the following sections and go
straight to the <>.
@@ -44,10 +43,10 @@ wiki site of more drives.
[width="100%", options="header"]
|====================================================================
|Axis | Drive Type | Step Time ns | Step Space ns | Dir. Hold ns | Dir. Setup ns
-|X | | | | |
-|Y | | | | |
-|Z | | | | |
-| | | | | |
+|X | | | | |
+|Y | | | | |
+|Z | | | | |
+| | | | | |
|====================================================================
== Pinout Information
@@ -58,18 +57,18 @@ PC parallel port.
[width="100%", options="header"]
|==============================================================================
|Output Pin | Typ. Function | If Different | Input Pin | Typ. Function | If Different
-|1 | E-Stop Out | | 10 | X Limit/Home |
-|2 | X Step | | 11 | Y Limit/Home |
-|3 | X Direction | | 12 | Z Limit/Home |
-|4 | Y Step | | 13 | A Limit/Home |
-|5 | Y Direction | | 15 | Probe In |
-|6 | Z Step | | | |
-|7 | Z Direction | | | |
-|8 | A Step | | | |
-|9 | A Direction | | | |
-|14 | Spindle CW | | | |
-|16 | Spindle PWM | | | |
-|17 | Amplifier Enable | | | |
+|1 | E-Stop Out | | 10 | X Limit/Home |
+|2 | X Step | | 11 | Y Limit/Home |
+|3 | X Direction | | 12 | Z Limit/Home |
+|4 | Y Step | | 13 | A Limit/Home |
+|5 | Y Direction | | 15 | Probe In |
+|6 | Z Step | | | |
+|7 | Z Direction | | | |
+|8 | A Step | | | |
+|9 | A Direction | | | |
+|14 | Spindle CW | | | |
+|16 | Spindle PWM | | | |
+|17 | Amplifier Enable | | | |
|==============================================================================
Note any pins not used should be set to Unused in the drop down box.
@@ -83,32 +82,32 @@ per user unit which is used for SCALE in the .ini file.
[width="100%", options="header"]
|==============================================================================
|Axis | Steps/Rev. | Micro Steps | Motor Teeth | Leadscrew Teeth | Leadscrew Pitch
-|X | | | | |
-|Y | | | | |
-|Z | | | | |
-| | | | | |
+|X | | | | |
+|Y | | | | |
+|Z | | | | |
+| | | | | |
|==============================================================================
-* 'Steps per revolution' - is how many stepper-motor-steps it takes to turn
-the stepper motor one revolution.
-Typical is 200.
+* 'Steps per revolution' - is how many stepper-motor-steps it takes to turn
+ the stepper motor one revolution.
+ Typical is 200.
-* 'Micro Steps' - is how many steps the drive needs
-to move the stepper motor one full step.
-If microstepping is not used, this number will be 1.
-If microstepping is used the value will depend on the
-stepper drive hardware.
+* 'Micro Steps' - is how many steps the drive needs
+ to move the stepper motor one full step.
+ If microstepping is not used, this number will be 1.
+ If microstepping is used the value will depend on the
+ stepper drive hardware.
-* 'Motor Teeth and Leadscrew Teeth' - is if you have some reduction
-(gears, chain, timing belt, etc.) between the motor and the leadscrew.
-If not, then set these both to 1.
+* 'Motor Teeth and Leadscrew Teeth' - is if you have some reduction
+ (gears, chain, timing belt, etc.) between the motor and the leadscrew.
+ If not, then set these both to 1.
-* 'Leadscrew Pitch' - is how much movement occurs
-(in user units) in one leadscrew turn.
-If you're setting up in inches then it is inches per turn.
-If you're setting up in millimeters then it is millimeters per turn.
+* 'Leadscrew Pitch' - is how much movement occurs
+ (in user units) in one leadscrew turn.
+ If you're setting up in inches then it is inches per turn.
+ If you're setting up in millimeters then it is millimeters per turn.
-The net result you're looking for is how many CNC-output-steps it takes
+The net result you're looking for is how many CNC-output-steps it takes
to move one user unit (inches or mm).
.Units inches
@@ -122,20 +121,21 @@ Leadscrew Pitch = 0.2000 inches per turn
............................................
============================================
-From the above information, the leadscrew moves 0.200 inches per turn.
- - The motor turns 2.000 times per 1 leadscrew turn.
- - The drive takes 10 microstep inputs to make the stepper step once.
- - The drive needs 2000 steps to turn the stepper one revolution.
-So the scale needed is:
+From the above information, the leadscrew moves 0.200 inches per turn.
+- The motor turns 2.000 times per 1 leadscrew turn.
+- The drive takes 10 microstep inputs to make the stepper step once.
+- The drive needs 2000 steps to turn the stepper one revolution.
+
+So the scale needed is:
image::images/step-calc-inch-math.png[align="center"]
////////////////////////////////////////////
-latexmath:[
-\frac{200 motor steps}{1 motor rev} \times
+latexmath:[
+\frac{200 motor steps}{1 motor rev} \times
\frac{10 microsteps}{1 motor step} \times
-\frac{2 motor revs}{1 leadscrew rev} \times
-\frac{1 leadscrew revs}{0.2000 inch}
+\frac{2 motor revs}{1 leadscrew rev} \times
+\frac{1 leadscrew revs}{0.2000 inch}
= \frac{20,000 microsteps}{inch} ]
///////////////////////////////////////////
@@ -144,30 +144,29 @@ latexmath:[
............................................
Stepper = 200 steps per revolution
Drive = 8 micro steps per step
- Motor Teeth = 30
+ Motor Teeth = 30
Leadscrew Teeth = 90
Leadscrew Pitch = 5.00 mm per turn
............................................
============================================
-From the above information:
- - The leadscrew moves 5.00 mm per turn.
- - The motor turns 3.000 times per 1 leadscrew turn.
- - The drive takes 8 microstep inputs to make the stepper step once.
- - The drive needs 1600 steps to turn the stepper one revolution.
-So the scale needed is:
+From the above information:
+- The leadscrew moves 5.00 mm per turn.
+- The motor turns 3.000 times per 1 leadscrew turn.
+- The drive takes 8 microstep inputs to make the stepper step once.
+- The drive needs 1600 steps to turn the stepper one revolution.
+
+So the scale needed is:
image::images/step-calc-mm-math.png[align="center"]
//////////////////////////////////////////////
-latexmath:[
-\frac{200 motor steps}{1 motor rev} \times
+latexmath:[
+\frac{200 motor steps}{1 motor rev} \times
\frac{8 microsteps}{1 motor step} \times
-\frac{3 motor revs}{1 leadscrew rev} \times
-\frac{1 leadscrew revs}{5.000 mm}
+\frac{3 motor revs}{1 leadscrew rev} \times
+\frac{1 leadscrew revs}{5.000 mm}
= \frac{960 microsteps}{mm} ]
/////////////////////////////////////////////
// vim: set syntax=asciidoc:
-
-
diff --git a/docs/src/getting-started/stepper_quickstart_fr.adoc b/docs/src/config/stepper-quickstart_fr.adoc
similarity index 98%
rename from docs/src/getting-started/stepper_quickstart_fr.adoc
rename to docs/src/config/stepper-quickstart_fr.adoc
index ffacebafccf..22027bf17bc 100644
--- a/docs/src/getting-started/stepper_quickstart_fr.adoc
+++ b/docs/src/config/stepper-quickstart_fr.adoc
@@ -1,9 +1,9 @@
:lang: fr
-= Configuration rapide pour moteurs pas à pas
-
[[cha:stepper-quickstart]]
+= Configuration rapide pour moteurs pas à pas
+
Cette section suppose qu'une installation du logiciel à partir du CD Live a été
faite. Après cette installation et avant de continuer, il est
recommandé de connecter le PC sur Internet pour y faire les dernières
@@ -19,17 +19,13 @@ CNC. Ce test est la toute première chose à faire pour valider un PC.
Pour le lancer, suivre les instructions de la section <>.
-[[sec:Sherline]]
-== Sherline
-(((Sherline)))
+== Sherline[[sec:Sherline]](((Sherline)))
Si vous avez une machine Sherline plusieurs configurations prédéfinies sont fournies.
Au premier démarrage de LinuxCNC, le sélecteur de configuration s'ouvre, sélectionnez
alors le modèle correspondant à votre machine _Sherline_, puis acceptez d'enregistrer une copie.
-[[sec:Xylotex]]
-== Xylotex
-(((Xylotex)))
+== Xylotex[[sec:Xylotex]](((Xylotex)))
Si vous avez une machine _Xylotex_ vous pouvez utiliser l'assistant graphique de
configuration fourni avec LinuxCNC et créer rapidement votre configuration
@@ -162,4 +158,3 @@ l'assistant graphique PNCconf au chapitre <> Chapter.
This chapter describes some of the more common settings for manually
@@ -126,7 +127,7 @@ net spindle-on spindle.0.on => parport.0.pin-09-out
###
### Shared home switches all on one parallel port pin?
-### that's ok, hook the same signal to all the axes, but be sure to
+### that's ok, hook the same signal to all the axes, but be sure to
### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file.
###
@@ -160,13 +161,12 @@ guide the reader through the file.
There are a couple of operations that get executed when the
standard_pinout.hal gets executed/interpreted:
-* The Parport driver gets loaded (see the <>
- for details)
+* The Parport driver gets loaded (see the <> for details)
* The read & write functions of the parport driver get assigned to the
- base thread footnote:[the fastest thread in the LinuxCNC setup, usually the
- code gets executed every few tens of microseconds]
+ base thread footnote:[the fastest thread in the LinuxCNC setup, usually ther
+ code gets executed every few tens of microseconds]
* The step & direction signals for axes X,Y,Z get linked to pins on the
- parport
+ parport
* Further I/O signals get connected (estop loopback, toolchanger loopback)
* A spindle-on signal gets defined and linked to a parport pin
@@ -180,14 +180,14 @@ Directions signals, all you need to do is to change the number in the
'parport.0.pin-XX-out' name:
----
-net Xstep parport.0.pin-03-out
+net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
----
can be changed to:
----
-net Xstep parport.0.pin-02-out
+net Xstep parport.0.pin-02-out
net Xdir parport.0.pin-03-out
----
@@ -198,7 +198,7 @@ same pin.
=== Changing polarity of a signal
-If external hardware expects an “active low” signal, set the
+If external hardware expects an "active low" signal, set the
corresponding '-invert' parameter. For instance, to invert the spindle
control signal:
@@ -218,7 +218,7 @@ addf pwmgen.make-pulses base-thread
net spindle-speed-cmd spindle.0.speed-out => pwmgen.0.value
net spindle-on spindle.0.on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out
-setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM
+setp pwmgen.0.scale 1800 # Change to your spindle's top speed in RPM
----
This assumes that the spindle controller's response to PWM is simple:
@@ -246,5 +246,5 @@ practice.
=== External ESTOP button
-The standard_pinout.hal file assumes no external ESTOP button. For more
+The standard_pinout.hal file assumes no external ESTOP button. For more
information on an external E-Stop see the estop_latch man page.
diff --git a/docs/src/config/stepper_fr.adoc b/docs/src/config/stepper_fr.adoc
index 511aee734b8..0ea954426da 100644
--- a/docs/src/config/stepper_fr.adoc
+++ b/docs/src/config/stepper_fr.adoc
@@ -1,12 +1,10 @@
:lang: fr
:toc:
-= Configuration d'un système pas/direction (dir/step)
-
[[cha:config-steppers]]
+= Configuration d'un système pas/direction (dir/step)
-
-[[sec:Introduction]]
+[[sec:config-stepper-introduction]]
== Introduction
Ce chapitre décrit quelques uns des réglages les plus fréquents, sur
diff --git a/docs/src/docs.xml b/docs/src/docs.xml
index ca5d796f2a6..6dfdebc1262 100644
--- a/docs/src/docs.xml
+++ b/docs/src/docs.xml
@@ -104,31 +104,31 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -139,13 +139,13 @@
-
+
-
+
-
+
@@ -156,36 +156,36 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -198,36 +198,36 @@
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
@@ -237,43 +237,43 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
+
diff --git a/docs/src/drivers/AX5214H_fr.adoc b/docs/src/drivers/AX5214H_fr.adoc
index 09d995b7e95..5ebf76ef909 100644
--- a/docs/src/drivers/AX5214H_fr.adoc
+++ b/docs/src/drivers/AX5214H_fr.adoc
@@ -1,3 +1,5 @@
+:lang: en
+
= AX5214H
The Axiom Measurement & Control AX5214H is a 48 channel digital I/O
@@ -59,4 +61,3 @@ high and turn the module OFF.
- `(funct) ax5214..read` -- Reads all digital inputs on one board.
- `(funct) ax5214..write` -- Writes all digital outputs on one board.
-
diff --git a/docs/src/drivers/ax5214h.adoc b/docs/src/drivers/ax5214h.adoc
index dab5423db14..0128dac0f9e 100644
--- a/docs/src/drivers/ax5214h.adoc
+++ b/docs/src/drivers/ax5214h.adoc
@@ -1,5 +1,6 @@
-[[cha:ax5214-driver]]
+:lang: en
+[[cha:ax5214-driver]]
= AX5214H Driver
The Axiom Measurement & Control AX5214H is a 48 channel digital I/O
@@ -63,4 +64,3 @@ high and turn the module OFF.
* '(funct) ax5214..read' -- Reads all digital inputs on one board.
* '(funct) ax5214..write' -- Writes all digital outputs on one board.
-
diff --git a/docs/src/drivers/gm.adoc b/docs/src/drivers/gm.adoc
index 54db60e504f..1d351b1791a 100644
--- a/docs/src/drivers/gm.adoc
+++ b/docs/src/drivers/gm.adoc
@@ -1,40 +1,41 @@
-[[cha:gm-driver]]
+:lang: en
+[[cha:gm-driver]]
= General Mechatronics Driver
General Mechatronics GM6-PCI card based motion control system
For detailed description, please refer to the http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual].
-The GM6-PCI motion control card is based on an FPGA and a PCI bridge
-interface ASIC. A small automated manufacturing cell can be controlled,
-with a short time system integration procedure. The following figure
-demonstrating the typical connection of devices related to the control
+The GM6-PCI motion control card is based on an FPGA and a PCI bridge
+interface ASIC. A small automated manufacturing cell can be controlled,
+with a short time system integration procedure. The following figure
+demonstrating the typical connection of devices related to the control
system:
-* It can control up to six axis, each can be stepper or CAN bus
+ * It can control up to six axis, each can be stepper or CAN bus
interface or analogue servo.
-
-* GPIO: Four time eight I/O pins are placed on standard flat cable headers.
-* RS485 I/O expander modules: RS485 bus was designed for interfacing
- with compact DIN-rail mounted expander modules. An 8-channel digital input,
- an 8-channel relay output and an analogue I/O (4x +/-10 Volts output and 8x
- +/-5 Volts input) modules are available now. Up to 16 modules can be
+ * GPIO: Four time eight I/O pins are placed on standard flat cable headers.
+
+ * RS485 I/O expander modules: RS485 bus was designed for interfacing
+ with compact DIN-rail mounted expander modules. An 8-channel digital input,
+ an 8-channel relay output and an analogue I/O (4x +/-10 Volts output and 8x
+ +/-5 Volts input) modules are available now. Up to 16 modules can be
connected to the bus altogether.
-
-* 20 optically isolated input pins: Six times three for the direct
+
+ * 20 optically isolated input pins: Six times three for the direct
connection of two end switch and one homing sensor for each joint. And
additionally, two optically isolated E-stop inputs.
-image::images/GMsystem.png[align="center", scaledwidth="70%", alt="GM servo control system"]
+image::images/GMsystem.png["GM servo control system",align="center",scaledwidth="70%"]
Installing:
----
loadrt hal_gm
----
-During loading (or attempted loading) the driver prints some useful
+During loading (or attempted loading) the driver prints some useful
debugging messages to the kernel log, which can be viewed with dmesg.
Up to 3 boards may be used in one system.
@@ -43,14 +44,14 @@ The following connectors can be found on the GM6-PCI card:
.GM6-PCI card connectors and LEDs(((pci-card connectors)))
-image::images/GM_PCIpinout.png[align="center",scaledwidth="70%", alt="GM6-PCI card connectors and LEDs"]
+image::images/GM_PCIpinout.png["GM6-PCI card connectors and LEDs",align="center",scaledwidth="70%"]
== I/O connectors
.Pin numbering of GPIO connectors(((pin-numbering-gpio)))
-image::images/GM_IOpinout.png[align="center", alt="Pin numbering of GPIO connectors"]
+image::images/GM_IOpinout.png["Pin numbering of GPIO connectors",align="center"]
.Pinout of GPIO connectors
@@ -66,22 +67,22 @@ image::images/GM_IOpinout.png[align="center", alt="Pin numbering of GPIO connect
| GND | IOx/6 | IOx/4 | IOx/2 | IOx/0
|========================================
-Each pin can be configured as digital input or output.
-GM6-PCI motion control card has 4 general purpose I/O
-(GPIO) connectors, with eight configurable I/O on each.
+Each pin can be configured as digital input or output.
+GM6-PCI motion control card has 4 general purpose I/O
+(GPIO) connectors, with eight configurable I/O on each.
Every GPIO pin and parameter name begins as follows:
----
-gm..gpio.
+gm..gpio.
----
-,where is form 0 to 3. For example:
+where is from 0 to 3. For example:
----
gm.0.gpio.0.in-0
----
-indicates the state of the first pin of the first GPIO
+indicates the state of the first pin of the first GPIO
connector on the GM6-PCI card. Hal pins are updated by function
----
@@ -115,61 +116,61 @@ gm..read
.Pin numbering of axis connectors(((pin-numbering-axis)))
-image::images/GM_AXISpinout.png[align="center", alt="Pin numbering of axis connectors"]
+image::images/GM_AXISpinout.png["Pin numbering of axis connectors",align="center"]
.Pinout of axis connectors
[width="40%", cols="^1,<4"]
|========================================
-| 1 | Encoder A
-| 2 | +5 Volt (PC)
-| 3 | Encoder B
-| 4 | Encoder Index
-| 5 | Fault
-| 6 | Power Enabled
-| 7 | Step/CCW/B
-| 8 | Direction/CW/A
-| 9 | Ground (PC)
+| 1 | Encoder A
+| 2 | +5 Volt (PC)
+| 3 | Encoder B
+| 4 | Encoder Index
+| 5 | Fault
+| 6 | Power Enabled
+| 7 | Step/CCW/B
+| 8 | Direction/CW/A
+| 9 | Ground (PC)
| 10 | DAC serial line
|========================================
=== Axis interface modules
-Small sized DIN rail mounted interface modules gives easy way of connecting
-different types of servo modules to the axis connectors.
-Seven different system configurations are presented in the
-http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]
-for evaluating typical applications. Also the detailed description of the
+Small sized DIN rail mounted interface modules gives easy way of connecting
+different types of servo modules to the axis connectors.
+Seven different system configurations are presented in the
+http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]
+for evaluating typical applications. Also the detailed description of the
Axis modules can be found in the System integration manual.
-For evaluating the appropriate servo-drive structure the modules
+For evaluating the appropriate servo-drive structure the modules
have to be connected as the following block diagram shows:
.Servo axis interfaces(((axis-iterface)))
-image::images/GM_AxisInterface.png[align="center", scaledwidth="100%", alt="Servo axis interfaces"]
+image::images/GM_AxisInterface.png["Servo axis interfaces",align="center",scaledwidth="100%"]
=== Encoder
-The GM6-PCI motion control card has six encoder modules.
+The GM6-PCI motion control card has six encoder modules.
Each encoder module has three channels:
-* Channel-A
-* Channel-B
-* Channel-I (index)
+ * Channel-A
+ * Channel-B
+ * Channel-I (index)
-It is able to count quadrature encoder signals or step/dir signals.
-Each encoder module is connected to the inputs of the corresponding
+It is able to count quadrature encoder signals or step/dir signals.
+Each encoder module is connected to the inputs of the corresponding
RJ50 axis connector.
Every encoder pin and parameter name begins as follows:
----
-gm..encoder.
+gm..encoder.
----
-,where is form 0 to 5. For example:
+where is from 0 to 5. For example:
----
gm.0.encoder.0.position
@@ -177,7 +178,7 @@ gm.0.encoder.0.position
refers to the position of encoder module of axis 0.
-The GM6-PCI card counts the encoder signal independently from LinuxCNC.
+The GM6-PCI card counts the encoder signal independently from LinuxCNC.
Hal pins are updated by function:
----
@@ -195,17 +196,17 @@ gm..read
| .rawcounts | (s32, Out) | The raw count is the counts, but unaffected by reset or the index pulse.
| .counts | (s32, Out) | Position in encoder counts.
| .position | (float, Out) | Position in scaled units (=.counts/.position-scale).
-| .index-enabled | (bit, IO) | When True, counts and position are rounded or reset
- (depends on index-mode) on next rising edge of channel-I.
- Every time position is reset because of Index, index-enabled
- pin is set to 0 and remain 0 until connected hal pin does
- not set it.
-| .velocity | (float, Out) | Velocity in scaled units per second. GM encoder uses high
- frequency hardware timer to measure time between encoder
- pulses in order to calculate velocity. It greatly reduces
- quantization noise as compared to simply differentiating
- the position output. When the measured velocity is below
- min-speed-estimate, the velocity output is 0.
+| .index-enabled | (bit, IO) | When True, counts and position are rounded or reset
+ (depends on index-mode) on next rising edge of channel-I.
+ Every time position is reset because of Index, index-enabled
+ pin is set to 0 and remain 0 until connected hal pin does
+ not set it.
+| .velocity | (float, Out) | Velocity in scaled units per second. GM encoder uses high
+ frequency hardware timer to measure time between encoder
+ pulses in order to calculate velocity. It greatly reduces
+ quantization noise as compared to simply differentiating
+ the position output. When the measured velocity is below
+ min-speed-estimate, the velocity output is 0.
|========================================
.Parameters
@@ -215,35 +216,35 @@ gm..read
[width="80%", options="header", cols="<3,^2,<6"]
|========================================
| Parameters | Type and Read/Write | Parameter description
-| .counter-mode | (bit, R/W) | When True, the counter counts each rising edge of the
- channel-A input to the direction determined by channel-B.
- This is useful for counting the output of a single channel
- (non-quadrature) or step/dir signal sensor. When false, it
- counts in quadrature mode.
-| .index-mode | (bit, R/W) | When True and .index-enabled is also true, .counts and
- .position are rounded (based on .counts-per-rev) at rising
- edge of channel-I. This is useful to correct few pulses
- error caused by noise. In round mode, it is essential to
- set .counts-per-rev parameter correctly. When .index-mode
- is False and .index-enabled is true, .counts and .position
- are reset at channel-I pulse.
-| .counts-per-rev | (s32, R/V) | Determine how many counts are between two index pulses. It
- is used only in round mode, so when both .index-enabled and
- .index-mode parameters are True. GM encoder process encoder signal
- in 4x mode, so for example in case of a 500 CPR encoder it should
- be set to 2000. This parameter can be easily measured by setting
- .index-enabled True and .index-mode False (so that .counts resets
- at channel-I pulse), than move axis by hand and see the maximum
- magnitude of .counts pin in halmeter.
-| .index-invert | (bit, R/W) | When True, channel-I event (reset or round) occur on falling
+| .counter-mode | (bit, R/W) | When True, the counter counts each rising edge of the
+ channel-A input to the direction determined by channel-B.
+ This is useful for counting the output of a single channel
+ (non-quadrature) or step/dir signal sensor. When false, it
+ counts in quadrature mode.
+| .index-mode | (bit, R/W) | When True and .index-enabled is also true, .counts and
+ .position are rounded (based on .counts-per-rev) at rising
+ edge of channel-I. This is useful to correct few pulses
+ error caused by noise. In round mode, it is essential to
+ set .counts-per-rev parameter correctly. When .index-mode
+ is False and .index-enabled is true, .counts and .position
+ are reset at channel-I pulse.
+| .counts-per-rev | (s32, R/V) | Determine how many counts are between two index pulses. It
+ is used only in round mode, so when both .index-enabled and
+ .index-mode parameters are True. GM encoder process encoder signal
+ in 4x mode, so for example in case of a 500 CPR encoder it should
+ be set to 2000. This parameter can be easily measured by setting
+ .index-enabled True and .index-mode False (so that .counts resets
+ at channel-I pulse), than move axis by hand and see the maximum
+ magnitude of .counts pin in halmeter.
+| .index-invert | (bit, R/W) | When True, channel-I event (reset or round) occur on falling
edge of channel-I signal, otherwise on rising edge.
-| .min-speed-estimate | (float, R/W) | Determine the minimum measured velocity magnitude at which
- .velocity will be set as nonzero. Setting this parameter too
- low will cause it to take a long time for velocity to go to zero
- after encoder pulses have stopped arriving.
-| .position-scale | (float, R/W) | Scale in counts per length unit. .position=.counts/.position-scale.
- For example, if position-scale is 2000, then 1000 counts of the
- encoder will produce a position of 0.5 units.
+| .min-speed-estimate | (float, R/W) | Determine the minimum measured velocity magnitude at which
+ .velocity will be set as nonzero. Setting this parameter too
+ low will cause it to take a long time for velocity to go to zero
+ after encoder pulses have stopped arriving.
+| .position-scale | (float, R/W) | Scale in counts per length unit. .position=.counts/.position-scale.
+ For example, if position-scale is 2000, then 1000 counts of the
+ encoder will produce a position of 0.5 units.
|========================================
.HAL example
@@ -256,7 +257,7 @@ setp gm.0.encoder.0.index-mode 1 # 0: reset pos at index, 1:round pos
setp gm.0.encoder.0.counts-per-rev 2000 # GM process encoder in 4x mode, 4x500=2000
setp gm.0.encoder.0.index-invert 0
setp gm.0.encoder.0.min-speed-estimate 0.1 # in position unit/s
-setp gm.0.encoder.0.position-scale 20000 # 10 encoder rev cause the machine to
+setp gm.0.encoder.0.position-scale 20000 # 10 encoder rev cause the machine to
move one position unit (10x2000)
----
@@ -269,17 +270,17 @@ net Xpos-fb gm.0.encoder.0.position => joint.0.motor-pos-fb
=== Stepgen module
The GM6-PCI motion control card has six stepgen modules, one for each joint.
-Each module has two output signals. It can produce Step/Direction,
-Up/Down or Quadrature (A/B) pulses. Each stepgen module is connected
+Each module has two output signals. It can produce Step/Direction,
+Up/Down or Quadrature (A/B) pulses. Each stepgen module is connected
to the pins of the corresponding RJ50 axis connector.
Every stepgen pin and parameter name begins as follows:
----
-gm..stepgen.
+gm..stepgen.
----
-,where nr of axis is form 0 to 5. For example:
+where nr of axis is from 0 to 5. For example:
----
gm.0.stepgen.0.position-cmd
@@ -287,7 +288,7 @@ gm.0.stepgen.0.position-cmd
refers to the position command of stepgen module of axis 0 on card 0.
-The GM6-PCI card generates step pulses independently from LinuxCNC.
+The GM6-PCI card generates step pulses independently from LinuxCNC.
Hal pins are updated by function
----
@@ -317,17 +318,17 @@ gm..write
[width="80%", options="header", cols="<3,^2,<6"]
|========================================
| Parameters | Type and Read/Write | Parameter description
-| .step-type | (u32, R/W) | When 0, module produces Step/Dir signal. When 1, it
- produces Up/Down step signals. And when it is 2, it
+| .step-type | (u32, R/W) | When 0, module produces Step/Dir signal. When 1, it
+ produces Up/Down step signals. And when it is 2, it
produces quadrature output signals.
-| .control-type | (bit, R/W) | When True, .velocity-cmd is used as reference and velocity
- control calculate pulse rate output. When False, .position-cmd
+| .control-type | (bit, R/W) | When True, .velocity-cmd is used as reference and velocity
+ control calculate pulse rate output. When False, .position-cmd
is used as reference and position control calculate pulse rate output.
| .invert-step1 | (bit, R/W) | Invert the output of channel 1 (Step signal in StepDir mode)
| .invert-step2 | (bit, R/W) | Invert the output of channel 2 (Dir signal in StepDir mode)
-| .maxvel | (float, R/W) | Maximum velocity in position units per second. If it is set to 0.0,
+| .maxvel | (float, R/W) | Maximum velocity in position units per second. If it is set to 0.0,
.maxvel parameter is ignored.
-| .maxaccel | (float, R/W) | Maximum acceleration in position units per second squared. If
+| .maxaccel | (float, R/W) | Maximum acceleration in position units per second squared. If
it is set to 0.0, .maxaccel parameter is ignored.
| .position-scale | (float, R/W) | Scale in steps per length unit.
| .steplen | (u32, R/W) | Length of step pulse in nano-seconds.
@@ -341,7 +342,7 @@ For evaluating the appropriate values see the timing diagrams below:
.Reference signal timing diagrams(((refsig-timing-diagram)))
-image::images/GM_RefSignals.png[align="center", scaledwidth="70%", alt="Reference signal timing diagrams"]
+image::images/GM_RefSignals.png["Reference signal timing diagrams",align="center", scaledwidth="70%"]
.HAL example
@@ -352,9 +353,9 @@ setp gm.0.stepgen.0.step-type 0 # 0:stepDir, 1:UpDown, 2:Quad
setp gm.0.stepgen.0.control-type 0 # 0:Pos. control, 1:Vel. Control
setp gm.0.stepgen.0.invert-step1 0
setp gm.0.stepgen.0.invert-step2 0
-setp gm.0.stepgen.0.maxvel 0 # do not set maxvel for step
+setp gm.0.stepgen.0.maxvel 0 # do not set maxvel for step
# generator, let interpolator control it.
-setp gm.0.stepgen.0.maxaccel 0 # do not set max acceleration for
+setp gm.0.stepgen.0.maxaccel 0 # do not set max acceleration for
# step generator, let interpolator control it.
setp gm.0.stepgen.0.position-scale 1000 # 1000 step/position unit
setp gm.0.stepgen.0.steplen 1000 # 1000 ns = 1 us
@@ -371,8 +372,8 @@ net Xen joint.0.amp-enable-out => gm.0.stepgen.0.enable
=== Enable and Fault signals
-The GM6-PCI motion control card has one enable output and one fault
-input HAL pins, both are connected to each RJ50 axis connector
+The GM6-PCI motion control card has one enable output and one fault
+input HAL pins, both are connected to each RJ50 axis connector
and to the CAN connector.
Hal pins are updated by function:
@@ -392,23 +393,23 @@ gm..read
* and Watch Dog Timer is not expired
* and there is no power fault
- Then power enable pins of axis- and CAN connectors
- are set to high, otherwise set to low.
+ Then power enable pins of axis- and CAN connectors
+ are set to high, otherwise set to low.
| gm..power-fault | (bit, Out) | Power fault input.
|========================================
=== Axis DAC
-The GM6-PCI motion control card has six serial axis DAC driver modules,
+The GM6-PCI motion control card has six serial axis DAC driver modules,
one for each joint. Each module is connected to the pin of the
corresponding RJ50 axis connector.
Every axis DAC pin and parameter name begins as follows:
----
-gm..dac.
+gm..dac.
----
-,where nr of axis is form 0 to 5. For example:
+where nr of axis is from 0 to 5. For example:
----
gm.0.dac.0.value
@@ -430,9 +431,9 @@ gm..write
[width="80%", options="header", cols="<3,^2,<6"]
|========================================
| Pins | Type and direction | Pin description
-| .enable | (bit, In) | Enable DAC output. When enable is
+| .enable | (bit, In) | Enable DAC output. When enable is
false, DAC output is 0.0 V.
-| .value | (float, In) | Value of DAC output in Volts.
+| .value | (float, In) | Value of DAC output in Volts.
|========================================
.Parameters
@@ -442,47 +443,47 @@ gm..write
[width="80%", options="header", cols="<3,^2,<6"]
|========================================
| Parameters | Type and direction | Parameter description
-| .offset | (float, R/W) | Offset is added to the value before
+| .offset | (float, R/W) | Offset is added to the value before
the hardware is updated
-| .high-limit | (float, R/W) | Maximum output voltage of the
+| .high-limit | (float, R/W) | Maximum output voltage of the
hardware in volts.
-| .low-limit | (float, R/W) | Minimum output voltage of the
+| .low-limit | (float, R/W) | Minimum output voltage of the
hardware in volts.
-| .invert-serial | (float, R/W) | GM6-PCI card is communicating with DAC
- hardware via fast serial communication
- to highly reduce time delay compared to
- PWM. DAC module is recommended to be
- isolated which is negating serial
- communication line. In case of isolation,
- leave this parameter to default (0),
- while in case of none-isolation, set
- this parameter to 1.
+| .invert-serial | (float, R/W) | GM6-PCI card is communicating with DAC
+ hardware via fast serial communication
+ to highly reduce time delay compared to
+ PWM. DAC module is recommended to be
+ isolated which is negating serial
+ communication line. In case of isolation,
+ leave this parameter to default (0),
+ while in case of none-isolation, set
+ this parameter to 1.
|========================================
== CAN-bus servo amplifiers
-The GM6-PCI motion control card has CAN module to drive CAN
-servo amplifiers. Implementation of higher level protocols
-like CANopen is further development. Currently GM produced
-power amplifiers has upper level driver which export pins
-and parameters to HAL. They receive position reference and
+The GM6-PCI motion control card has CAN module to drive CAN
+servo amplifiers. Implementation of higher level protocols
+like CANopen is further development. Currently GM produced
+power amplifiers has upper level driver which export pins
+and parameters to HAL. They receive position reference and
provide encoder feedback via CAN bus.
-The frames are standard (11 bit) ID frames, with 4 byte data length.
+The frames are standard (11 bit) ID frames, with 4 byte data length.
The baud rate is 1 Mbit.
The position command IDs for axis 0..5 are 0x10..0x15.
The position feedback IDs for axis 0..5 are 0x20..0x25.
-These configuration can be changed with the modifivation
+These configuration can be changed with the modifivation
of hal_gm.c and recompiling LinuxCNC.
Every CAN pin and parameter name begins as follows:
----
-gm..can-gm.
+gm..can-gm.
----
-,where is form 0 to 5. For example:
+where is from 0 to 5. For example:
----
gm.0.can-gm.0.position
@@ -547,25 +548,25 @@ Watchdog timer overrun causes the set of power-enable to low in hardware.
[width="80%", options="header", cols="<3,^2,<6"]
|========================================
| Parameters | Type and direction | Parameter description
-| gm..watchdog-enable | (bit, R/W) | Enable watchdog timer.
- It is strongly recommended to
- enable watchdog timer, because
- it can disables all the servo
- amplifiers by pulling down all
- enable signal in case of PC error.
-| gm..watchdog-timeout-ns | (float, R/W) | Time interval in within the
- gm..read function
- must be executed. The gm..read
- is typically added to servo-thread, so
- watch timeout is typically set to 3 times
- of the servo period.
+| gm..watchdog-enable | (bit, R/W) | Enable watchdog timer.
+ It is strongly recommended to
+ enable watchdog timer, because
+ it can disables all the servo
+ amplifiers by pulling down all
+ enable signal in case of PC error.
+| gm..watchdog-timeout-ns | (float, R/W) | Time interval in within the
+ gm..read function
+ must be executed. The gm..read
+ is typically added to servo-thread, so
+ watch timeout is typically set to 3 times
+ of the servo period.
|========================================
== End-, homing- and E-stop switches
.Pin numbering of homing & end switch connector(((pin-numbering-endsw)))
-image::images/GM_ENDSWpinout.png[align="center", alt="Pin numbering of homing and end switch connector"]
+image::images/GM_ENDSWpinout.png["Pin numbering of homing and end switch connector",align="center"]
.End- and homing switch connector pinout
@@ -584,10 +585,10 @@ image::images/GM_ENDSWpinout.png[align="center", alt="Pin numbering of homing an
The GM6-PCI motion control card has two limit- and one homing switch input for each joint. All the names of these pins begin as follows:
----
-gm..joint.
+gm..joint.
----
-,where nr of axis is form 0 to 5. For example:
+where nr of axis is from 0 to 5. For example:
----
gm.0.joint.0.home-sw-in
@@ -634,73 +635,73 @@ gm..read
=== CAN
Color: Orange
-* Blink, during data communication.
-* On, when any of the buffers are full - communication error.
-* Off, when no data communication.
+ * Blink, during data communication.
+ * On, when any of the buffers are full - communication error.
+ * Off, when no data communication.
=== RS485
Color: Orange
-* Blink, during initialization of modules on the bus
-* On, when the data communication is up between all initialized modules.
-* Off, when any of the initialized modules dropped off because of an error.
+ * Blink, during initialization of modules on the bus
+ * On, when the data communication is up between all initialized modules.
+ * Off, when any of the initialized modules dropped off because of an error.
=== EMC
Color: White
-* Blink, when LinuxCNC is running.
-* Otherwise off.
+ * Blink, when LinuxCNC is running.
+ * Otherwise off.
=== Boot
Color: Green
-* On, when system booted successfully.
-* Otherwise off.
+ * On, when system booted successfully.
+ * Otherwise off.
=== Error
Color: Red
-* Off, when there is no fault in the system.
-* Blink, when PCI communication error.
-* On, when watchdog timer overflowed.
+ * Off, when there is no fault in the system.
+ * Blink, when PCI communication error.
+ * On, when watchdog timer overflowed.
== RS485 I/O expander modules
-These modules were developed for expanding the I/O and function
+These modules were developed for expanding the I/O and function
capability along an RS485 line of the GM6-PCI motion control card.
Available module types:
-* 8-channel relay output module - gives eight NO-NC relay output
+ * 8-channel relay output module - gives eight NO-NC relay output
on a three pole terminal connector for each channel.
-* 8-channel digital input module - gives eight optical
+ * 8-channel digital input module - gives eight optical
isolated digital input pins.
-* 8 channel ADC and 4-channel DAC module - gives four digital-to-analogue
- converter outputs and eight analogue-to-digital inputs.
+ * 8 channel ADC and 4-channel DAC module - gives four digital-to-analogue
+ converter outputs and eight analogue-to-digital inputs.
This module is also optically isolated from the GM6-PCI card.
*Automatic node recognizing:*
-Each node connected to the bus was recognized by the GM6-PCI card automatically.
-During starting LinuxCNC, the driver export pins and parameters of all
+Each node connected to the bus was recognized by the GM6-PCI card automatically.
+During starting LinuxCNC, the driver export pins and parameters of all
available modules automatically.
*Fault handling:*
If a module does not answer regularly the GM6-PCI card drops down the module.
-If a module with output do not gets data with correct CRC regularly, the
-module switch to error state (green LED blinking), and turns all outputs
+If a module with output do not gets data with correct CRC regularly, the
+module switch to error state (green LED blinking), and turns all outputs
to error state.
*Connecting the nodes:*
-The modules on the bus have to be connected in serial topology, with
-termination resistors on the end. The start of the topology is the PCI
+The modules on the bus have to be connected in serial topology, with
+termination resistors on the end. The start of the topology is the PCI
card, and the end is the last module.
.Connecting the RS485 nodes to the GM6-PCI card(((connecting-rs485)))
-image::images/GM_RS485topology.png[align="center", scaledwidth="60%", alt="Connecting the RS485 nodes to the GM6-PCI card"]
+image::images/GM_RS485topology.png["Connecting the RS485 nodes to the GM6-PCI card",align="center",scaledwidth="60%"]
*Addressing:*
@@ -710,9 +711,9 @@ Each node on the bus has a 4 bit unique address that can be set with a red DIP s
A green LED indicates the status of the module:
-* Blink, when the module is only powered, but not jet identified, or when module is dropped down.
-* Off, during identification (computer is on, but LinuxCNC not started)
-* On, when it communicates continuously.
+ * Blink, when the module is only powered, but not jet identified, or when module is dropped down.
+ * Off, during identification (computer is on, but LinuxCNC not started)
+ * On, when it communicates continuously.
=== Relay output module
@@ -723,18 +724,18 @@ http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual
All the pins and parameters are updated by the following function:
----
-gm..rs485
+gm..rs485
----
-It should be added to servo thread or other thread with
+It should be added to servo thread or other thread with
larger period to avoid CPU overload.
Every RS485 module pin and parameter name begins as follows:
----
-gm..rs485.
+gm..rs485.
----
-,where is form 00 to 15.
+where is from 00 to 15.
.Pins
@@ -773,17 +774,17 @@ http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual
All the pins and parameters are updated by the following function:
----
-gm..rs485
+gm..rs485
----
It should be added to servo thread or other thread with larger period to avoid CPU overload.
Every RS485 module pin and parameter name begins as follows:
----
-gm..rs485.
+gm..rs485.
----
-,where is form 00 to 15.
+where is from 00 to 15.
.Pins
@@ -813,17 +814,17 @@ http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual
All the pins and parameters are updated by the following function:
----
-gm..rs485
+gm..rs485
----
It should be added to servo thread or other thread with larger period to avoid CPU overload.
Every RS485 module pin and parameter name begins as follows:
----
-gm..rs485.