--- /srv/reproducible-results/rbuild-debian/r-b-build.fQD3ZJwS/b1/linuxcnc_2.9.3-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.fQD3ZJwS/b2/linuxcnc_2.9.3-1_amd64.changes ├── Files │ @@ -1,9 +1,9 @@ │ │ - 784a8797966ca99e74f4ba64101dd4bd 27878924 misc optional linuxcnc-doc-de_2.9.3-1_all.deb │ - fb8ababb685ea1626da1b52debee024a 28456408 misc optional linuxcnc-doc-en_2.9.3-1_all.deb │ - 2b711062dc0d32b76ad761bd8ab71820 27613232 misc optional linuxcnc-doc-es_2.9.3-1_all.deb │ - ea8996f699e0027996ad7c33b0f053bf 27522500 misc optional linuxcnc-doc-fr_2.9.3-1_all.deb │ - a69d22a474872d7e7298eacb24e8c928 27571668 misc optional linuxcnc-doc-zh-cn_2.9.3-1_all.deb │ + 40cea3b1d6418b1a1fe936ef96907da6 27879596 misc optional linuxcnc-doc-de_2.9.3-1_all.deb │ + 11221da53fb0240aace6985e0715831d 28457816 misc optional linuxcnc-doc-en_2.9.3-1_all.deb │ + 092a0a41956e6985b914b8faa5e729f0 27614468 misc optional linuxcnc-doc-es_2.9.3-1_all.deb │ + 690a033036eb89774c5cd519fbd3b831 27523428 misc optional linuxcnc-doc-fr_2.9.3-1_all.deb │ + b3b37125f083a041cefed3b527c134d1 27570764 misc optional linuxcnc-doc-zh-cn_2.9.3-1_all.deb │ f63e85b0849de506f023269878cd5e7f 11377384 debug optional linuxcnc-uspace-dbgsym_2.9.3-1_amd64.deb │ 924ad77e353999395c6635d478ea0425 260920 devel optional linuxcnc-uspace-dev_2.9.3-1_amd64.deb │ - 8d58e61ff068f49a4acc7d76923a24bd 25554268 misc optional linuxcnc-uspace_2.9.3-1_amd64.deb │ + e95aa65baa8dec6a0bfe632e5387ade2 25552220 misc optional linuxcnc-uspace_2.9.3-1_amd64.deb ├── linuxcnc-doc-de_2.9.3-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-07-07 12:09:33.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1076 2024-07-07 12:09:33.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 27877656 2024-07-07 12:09:33.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 27878328 2024-07-07 12:09:33.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -4,16 +4,16 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-07-07 12:09:33.000000 ./usr/share/applications/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 340 2024-07-06 08:41:36.000000 ./usr/share/applications/linuxcnc-documentation_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 367 2024-07-06 08:41:36.000000 ./usr/share/applications/linuxcnc-gcoderef_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 381 2024-07-06 08:41:36.000000 ./usr/share/applications/linuxcnc-gettingstarted_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 370 2024-07-06 08:41:36.000000 ./usr/share/applications/linuxcnc-integratorinfo_de.desktop │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-07-07 12:09:33.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 870282 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29759301 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 870283 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29759395 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 499000 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_de.pdf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 155423 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Integrator_de.pdf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15158 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc/gcode_de.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc-doc-de/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11120 2024-07-07 12:09:33.000000 ./usr/share/doc/linuxcnc-doc-de/changelog.Debian.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 42238 2024-07-06 08:41:36.000000 ./usr/share/doc/linuxcnc-doc-de/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-07-07 12:09:33.000000 ./usr/share/doc-base/ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ │┄ Document info │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ CreationDate: 'D:20240707120933Z' │ │ │ │ │ Creator: 'DBLaTeX-0.3.12' │ │ │ │ │ Producer: 'xdvipdfmx (20240305)' │ │ │ │ │ -Title: 'Entwickler-Handbuch V2.9.3, 07 Jul 2024' │ │ │ │ │ +Title: 'Entwickler-Handbuch V2.9.3, 08 Jul 2024' │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ -Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ +Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ ii │ │ │ │ │ │ │ │ │ │ Inhaltsverzeichnis │ │ │ │ │ 1 Einführung │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ @@ -115,15 +115,15 @@ │ │ │ │ │ │ │ │ │ │ 16 │ │ │ │ │ │ │ │ │ │ 3.8.3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 17 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ iii │ │ │ │ │ │ │ │ │ │ 3.8.3.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 17 │ │ │ │ │ │ │ │ │ │ @@ -277,15 +277,15 @@ │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ 3.8.16.1Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ iv │ │ │ │ │ │ │ │ │ │ 3.8.16.2Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ @@ -447,15 +447,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 29 │ │ │ │ │ │ │ │ │ │ 3.21.3Prozesslinie │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ v │ │ │ │ │ │ │ │ │ │ 3.21.4Kommentare zur Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 30 │ │ │ │ │ │ │ │ │ │ @@ -619,15 +619,15 @@ │ │ │ │ │ │ │ │ │ │ 43 │ │ │ │ │ │ │ │ │ │ 4.14Andere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 43 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ vi │ │ │ │ │ │ │ │ │ │ 5 Quellcode-Stil │ │ │ │ │ │ │ │ │ │ 45 │ │ │ │ │ │ │ │ │ │ @@ -777,15 +777,15 @@ │ │ │ │ │ │ │ │ │ │ 60 │ │ │ │ │ │ │ │ │ │ 8.4.1 LinuxCNC offizielles Git Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 60 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ vii │ │ │ │ │ │ │ │ │ │ 8.4.2 Verwendung von Git im LinuxCNC-Projekt . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 61 │ │ │ │ │ │ │ │ │ │ @@ -870,15 +870,15 @@ │ │ │ │ │ │ │ │ │ │ 10.2GNU Free Documentation License │ │ │ │ │ │ │ │ │ │ 72 │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 1 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 1 │ │ │ │ │ │ │ │ │ │ Einführung │ │ │ │ │ │ │ │ │ │ @@ -901,15 +901,15 @@ │ │ │ │ │ LINUX® ist das eingetragene Warenzeichen von Linus Torvalds in den USA und anderen Ländern. │ │ │ │ │ Die eingetragene Marke Linux® wird im Rahmen einer Unterlizenz von LMI, dem exklusiven Lizenznehmer von Linus Torvalds, dem Eigentümer der Marke auf weltweiter Basis, verwendet. │ │ │ │ │ Das LinuxCNC-Projekt ist nicht mit Debian® verbunden. Debian_ ist ein eingetragenes Warenzeichen │ │ │ │ │ im Besitz von Software in the Public Interest, Inc. │ │ │ │ │ Das LinuxCNC-Projekt ist nicht mit UBUNTU® verbunden. UBUNTU ist eine eingetragene Marke im │ │ │ │ │ Besitz von Canonical Limited. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 2 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 2 │ │ │ │ │ │ │ │ │ │ HAL General Reference │ │ │ │ │ 2.1 HAL Entity Names │ │ │ │ │ @@ -939,15 +939,15 @@ │ │ │ │ │ Halcmd and other low-level HAL utilities treat HAL names as single entities, with no internal structure. However, most modules do have some implicit structure. For example, a board provides several │ │ │ │ │ functional blocks, each block might have several channels, and each channel has one or more pins. │ │ │ │ │ This results in a structure that resembles a directory tree. Even though halcmd doesn’t recognize the │ │ │ │ │ tree structure, proper choice of naming conventions will let it group related items together (since it │ │ │ │ │ sorts the names). In addition, higher level tools can be designed to recognize such structure, if the │ │ │ │ │ names provide the necessary information. To do that, all HAL components should follow these rules: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 3 / 76 │ │ │ │ │ │ │ │ │ │ • Punkte (”.”) trennen die einzelnen Ebenen der Hierarchie. Dies ist vergleichbar mit dem Schrägstrich (”/”) in einem Dateinamen. │ │ │ │ │ • Bindestriche („-“) trennen Wörter oder Felder auf derselben Hierarchieebene. │ │ │ │ │ • HAL-Komponenten sollten keine Unterstriche oder ”MixedCase” verwenden. 1 │ │ │ │ │ • Verwenden Sie in Namen nur Kleinbuchstaben und Zahlen. │ │ │ │ │ @@ -982,15 +982,15 @@ │ │ │ │ │ Like device numbers, channel numbers start at zero and increment.2 If more than one device is │ │ │ │ │ installed, the channel numbers on additional devices start over at zero. If it is possible to have a │ │ │ │ │ 1 Die unterstrichenen Zeichen wurden entfernt, aber es gibt immer noch einige Fälle, in denen die Mischung nicht stimmt, │ │ │ │ │ zum Beispiel pid.0.Pgain anstelle von pid.0.p-gain. │ │ │ │ │ 2 One exception to the ”channel numbers start at zero” rule is the parallel port. Its HAL pins are numbered with the corresponding pin number on the DB-25 connector. This is convenient for wiring, but inconsistent with other drivers. There is some │ │ │ │ │ debate over whether this is a bug or a feature. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 4 / 76 │ │ │ │ │ │ │ │ │ │ channel number greater than 9, then channel numbers should be two digits, with a leading zero │ │ │ │ │ on numbers less than 10 to preserve sort ordering. Some modules have pins and/or parameters │ │ │ │ │ that affect more than one channel. For example a PWM generator might have four channels │ │ │ │ │ with four independent ”duty-cycle” inputs, but one ”frequency” parameter that controls all four │ │ │ │ │ @@ -1031,28 +1031,28 @@ │ │ │ │ │ Funktionen darauf zugreifen. │ │ │ │ │ read|write │ │ │ │ │ Gibt an, ob die Funktion die Hardware liest (engl. read) oder in sie schreibt (engl. write). │ │ │ │ │ 3 Note to driver programmers: Do NOT implement separate functions for different I/O types unless they are interruptible │ │ │ │ │ and can work in independent threads. If interrupting an encoder read, reading digital inputs, and then resuming the encoder │ │ │ │ │ read will cause problems, then implement a single function that does everything. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 5 / 76 │ │ │ │ │ │ │ │ │ │ Beispiele │ │ │ │ │ motenc.0.encoder.read │ │ │ │ │ Liest alle Encoder auf der ersten Motenc-Platine aus. │ │ │ │ │ generic8255.0.din.09-15.read │ │ │ │ │ Liest den zweiten 8-Bit-Port auf der ersten generischen 8255-basierten digitalen E/A-Karte. │ │ │ │ │ ppmc.0.write │ │ │ │ │ Schreibt alle Ausgänge (Schrittgeneratoren, PWM, DACs und Digital) auf die erste Pico Systems │ │ │ │ │ ppmc-Karte. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 6 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 3 │ │ │ │ │ │ │ │ │ │ Code Anmerkungen │ │ │ │ │ 3.1 Zielgruppe │ │ │ │ │ @@ -1077,15 +1077,15 @@ │ │ │ │ │ und die Linearantriebe eines Hexapods entsprechen jedoch keiner Bewegung entlang einer kartesischen Achse, und im Allgemeinen ist es wichtig, zwischen den kartesischen Achsen und den │ │ │ │ │ Freiheitsgraden der Maschine zu unterscheiden. In diesem Dokument werden letztere als Gelenke und nicht als Achsen bezeichnet. Die grafischen Benutzeroberflächen und einige andere Teile │ │ │ │ │ des Quellcodes folgen dieser Unterscheidung vielleicht nicht immer, aber die Interna des ”Motion │ │ │ │ │ Controllers” schon. │ │ │ │ │ • GELENK (engl. JOINT)- Ein Gelenk ist eines der beweglichen Teile der Maschine. Gelenke unterscheiden sich von Achsen, obwohl die beiden Begriffe manchmal (fälschlicherweise) für dieselbe │ │ │ │ │ Sache verwendet werden. In LinuxCNC ist ein Gelenk einer physikalischen Sache, die bewegt werden kann, nicht eine Koordinate im Raum. Zum Beispiel sind die Pinole, das Knie, der Sattel und der │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 7 / 76 │ │ │ │ │ │ │ │ │ │ Tisch einer Bridgeport-Fräse alles Gelenke. Die Schulter, der Ellbogen und das Handgelenk eines │ │ │ │ │ Roboterarms sind Gelenke, ebenso wie die Linearaktuatoren eines Hexapods. Jedem Gelenk ist ein │ │ │ │ │ Motor oder Aktuator zugeordnet. Gelenke entsprechen nicht unbedingt den X-, Y- und Z-Achsen, │ │ │ │ │ obwohl dies bei Maschinen mit trivialer Kinematik der Fall sein kann. Selbst bei diesen Maschinen sind die Position des Gelenks und die Position der Achsen grundlegend verschieden. In diesem │ │ │ │ │ @@ -1116,19 +1116,19 @@ │ │ │ │ │ gedacht. │ │ │ │ │ │ │ │ │ │ 3.4 Architekturübersicht │ │ │ │ │ Die LinuxCNC-Architektur besteht aus vier Komponenten: einem Motion-Controller (EMCMOT), einem diskreten IO-Controller (EMCIO), einem Task-Executor, der diese koordiniert (EMCTASK) und │ │ │ │ │ mehreren textbasierten und grafischen Benutzerschnittstellen. Jede dieser Schnittstellen wird in diesem Dokument beschrieben, sowohl aus der Sicht des Designs als auch aus der Sicht der Entwickler │ │ │ │ │ (wo findet man benötigte Daten, wie kann man Dinge einfach erweitern/verändern, usw.). │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 8 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 9 / 76 │ │ │ │ │ │ │ │ │ │ 3.4.1 LinuxCNC-Softwarearchitektur │ │ │ │ │ Auf der gröbsten Ebene ist LinuxCNC eine Hierarchie von drei Controllern: der Task-Level-Befehlshandler │ │ │ │ │ und Programminterpreter, der Motion-Controller und der diskrete E/A-Controller (engl. I/O). Der diskrete E/A-Controller ist als eine Hierarchie von Controllern implementiert, in diesem Fall für Spindel, Kühlmittel- und Hilfs-Subsysteme (z. B. Notaus, Schmierung). Der Task-Controller koordiniert die │ │ │ │ │ Aktionen der Bewegungssteuerung und der diskreten E/A-Steuerung. Deren Aktionen werden in konventionellen numerischen Steuerungs- ”G- und M-Code” Programmen programmiert, die von der Aufgabensteuerung in NML-Nachrichten interpretiert und zu den entsprechenden Zeitpunkten entweder │ │ │ │ │ @@ -1159,19 +1159,19 @@ │ │ │ │ │ durch │ │ │ │ │ LinuxCNC wird durch das linuxcnc Skript gestartet, welches eine Konfigurations-.ini-Datei liest und │ │ │ │ │ alle benötigten Prozesse startet. Für die Echtzeit-Bewegungssteuerung lädt das Skript zunächst die │ │ │ │ │ Standard-Module tpmod und homemod und lädt dann die Kinematik- und Bewegungsmodule entsprechend den Einstellungen in halfiles, die in der .ini-Datei angegeben sind. │ │ │ │ │ Benutzerdefinierte Referenzfahrt- oder Flugbahnplanungsmodule können anstelle der Standardmodule über .ini-Datei-Einstellungen oder Befehlszeilenoptionen verwendet werden. Benutzerdefinierte │ │ │ │ │ Module müssen alle von den Standardmodulen verwendeten Funktionen implementieren. Das Dienstprogramm halcompile kann verwendet werden, um ein benutzerdefiniertes Modul zu erstellen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 10 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 11 / 76 │ │ │ │ │ │ │ │ │ │ 3.6 Blockdiagramme und Datenfluss │ │ │ │ │ Die folgende Abbildung ist das Blockdiagramm einer Gelenksteuerung. Für jedes Gelenk gibt es genau │ │ │ │ │ eine Gelenksteuerung. Die Gelenksteuerungen arbeiten auf einer niedrigeren Ebene als die Kinematik, einer Ebene, auf der alle Gelenke völlig unabhängig sind. Alle Daten für ein Gelenk befinden sich │ │ │ │ │ in einer einzigen Gelenkstruktur. Einige Elemente dieser Struktur sind im Blockdiagramm sichtbar, │ │ │ │ │ @@ -1184,15 +1184,15 @@ │ │ │ │ │ wird mit der Traj-Rate aktualisiert, nicht mit der Servo-Rate. Im koordinierten Modus wird sie durch │ │ │ │ │ den Traj-Planer bestimmt. Im Teleop-Modus wird sie durch den Traj-Planer bestimmt? Im freien │ │ │ │ │ Modus sie entweder von actualPos kopiert oder durch Anwendung von Vorwärtskinematik auf (2) │ │ │ │ │ oder (3) erzeugt. │ │ │ │ │ • emcmotStatus->joints[n].coarse_pos - Dies ist die gewünschte Position, in Gelenkkoordinaten, aber │ │ │ │ │ vor der Interpolation. Sie wird mit der traj rate aktualisiert, nicht mit der servo rate. Im Koordinatenmodus wird sie durch Anwendung von inversen Kinetiken auf (1) erzeugt. Im Teleop-Modus wird │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 12 / 76 │ │ │ │ │ │ │ │ │ │ sie durch Anwendung von inversen Kinematiken auf (1) erzeugt. Im freien Modus wird sie von (3) │ │ │ │ │ kopiert, glaube ich. │ │ │ │ │ • ’emcmotStatus->joints[n].pos_cmd - Dies ist die gewünschte Position, in Gelenkkoordinaten, nach │ │ │ │ │ der Interpolation. Ein neuer Satz dieser Koordinaten wird in jeder Servoperiode erzeugt. Im Koordinatenmodus wird sie vom Interpolator aus (2) generiert. Im Teleop-Modus wird er durch den │ │ │ │ │ @@ -1215,26 +1215,26 @@ │ │ │ │ │ vorzutäuschen, oder B) zuzugeben, dass wir die kartesischen Koordinaten nicht wirklich kennen, │ │ │ │ │ und actualPos einfach nicht zu aktualisieren. Unabhängig davon, welcher Ansatz verwendet wird, │ │ │ │ │ sehe ich keinen Grund, es nicht auf die gleiche Weise zu tun, unabhängig von der Betriebsart. Ich │ │ │ │ │ würde das Folgende vorschlagen: Wenn es Vorwärts-Kins gibt, verwenden Sie sie, es sei denn, sie │ │ │ │ │ funktionieren nicht, weil die Achsen nicht beheimatet sind oder andere Probleme auftreten; in diesem Fall machen Sie (B). Wenn es keine Forward Kins gibt, dann mach (A), da sonst actualPos nie │ │ │ │ │ aktualisiert werden würde. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 13 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 3.7 Referenzfahrt (engl. homing) │ │ │ │ │ 3.7.1 Zustandsdiagramm der Referenzfahrt │ │ │ │ │ │ │ │ │ │ 14 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 15 / 76 │ │ │ │ │ │ │ │ │ │ 3.7.2 Ein weiteres Homing-Diagramm │ │ │ │ │ │ │ │ │ │ 3.8 Befehle │ │ │ │ │ Die Befehle werden durch eine große Fallunterscheidung (Switch-Anweisung) in der Funktion emcmotCommandHandler() implementiert, die bei der Servo-Rate aufgerufen wird. Mehr zu dieser Funktion später. │ │ │ │ │ @@ -1247,15 +1247,15 @@ │ │ │ │ │ │ │ │ │ │ 3.8.1 Abbrechen │ │ │ │ │ Der Befehl ABORT (engl. für Abbruch) stoppt einfach alle Bewegungen. Er kann jederzeit erteilt werden und wird immer akzeptiert. Er deaktiviert den Motion Controller nicht und ändert auch keine │ │ │ │ │ Zustandsinformationen, sondern bricht lediglich eine laufende Bewegung ab.1 │ │ │ │ │ 1 Es scheint, dass der Code auf höherer Ebene (TASK und höher) ABORT auch zum Löschen von Fehlern verwendet. Wann │ │ │ │ │ immer ein anhaltender Fehler auftritt (z. B. wenn die Hardware-Endschalter überschritten werden), sendet der übergeordnete │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 16 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.1.1 Anforderungen │ │ │ │ │ Keine. Der Befehl wird immer angenommen und sofort ausgeführt. │ │ │ │ │ 3.8.1.2 Ergebnisse │ │ │ │ │ Im freien Modus sind die Trajektorienplaner für den freien Modus deaktiviert. Das führt dazu, dass │ │ │ │ │ @@ -1288,15 +1288,15 @@ │ │ │ │ │ Bewegung der Maschine auf kartesischen Koordinaten unter Verwendung der Kinematik und nicht auf │ │ │ │ │ einzelnen Gelenken wie im freien Modus. Der Trajektorienplaner als solcher wird jedoch nicht verwendet, stattdessen wird die Bewegung durch einen Geschwindigkeitsvektor gesteuert. Die Bewegung im │ │ │ │ │ Teleop-Modus ähnelt dem Joggen, mit dem Unterschied, dass sie im kartesischen Raum und nicht im │ │ │ │ │ Gelenkraum erfolgt. Auf einer Maschine mit trivialer Kinematik gibt es kaum einen Unterschied zwischen dem Teleop-Modus und dem freien Modus, und die grafischen Benutzeroberflächen für diese │ │ │ │ │ Code einen ständigen Strom von ABORTs an den Bewegungsregler, um den Fehler zu beheben. Tausende von ihnen…. Das │ │ │ │ │ bedeutet, dass die Bewegungssteuerung anhaltende Fehler vermeiden sollte. Dies muss untersucht werden. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 17 / 76 │ │ │ │ │ │ │ │ │ │ Maschinen geben diesen Befehl möglicherweise nicht einmal aus. Bei nicht-trivialen Maschinen wie │ │ │ │ │ Robotern und Hexapoden wird der Teleop-Modus jedoch für die meisten vom Benutzer befohlenen │ │ │ │ │ Jog-Bewegungen verwendet. │ │ │ │ │ 3.8.3.1 Anforderungen │ │ │ │ │ @@ -1327,15 +1327,15 @@ │ │ │ │ │ Wenn sich die Maschine bereits im Koordinatenmodus befindet, geschieht nichts. Andernfalls wird die │ │ │ │ │ Maschine in den Koordinatenmodus versetzt. Der Kinematikcode wird aktiviert, die Interpolatoren │ │ │ │ │ werden entleert und geleert, und die Warteschlangen des Bahnplaners sind leer. Der Trajektorienplaner ist aktiv und wartet auf einen LINE-, CIRCLE- oder PROBE-Befehl. │ │ │ │ │ │ │ │ │ │ 3.8.5 ENABLE (AKTIVIEREN) │ │ │ │ │ Der Befehl ENABLE aktiviert den Motion Controller. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 18 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.5.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.5.2 Ergebnisse │ │ │ │ │ Wenn der Controller bereits aktiviert ist, passiert nichts. Ansonsten wird der Controller aktiviert. Warteschlangen und Interpolatoren werden geleert. Alle Bewegungs- oder Referenzfahrtvorgänge werden │ │ │ │ │ @@ -1360,15 +1360,15 @@ │ │ │ │ │ Derzeit nichts. (Ein Aufruf der alten extAmpEnable-Funktion ist derzeit auskommentiert.) Eventuell │ │ │ │ │ wird der Amp-Enable-HAL-Pin auf true gesetzt. │ │ │ │ │ │ │ │ │ │ 3.8.8 DISABLE_AMPLIFIER │ │ │ │ │ Der Befehl DISABLE_AMPLIFIER schaltet den Amp-Enable-Ausgang für einen einzelnen Verstärker │ │ │ │ │ aus, ohne etwas anderes zu ändern. Auch dies ist nützlich für Spindeldrehzahlregler. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 19 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.8.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.8.2 Ergebnisse │ │ │ │ │ Derzeit nichts. (Ein Aufruf der alten extAmpEnable Funktion ist derzeit auskommentiert.) Eventuell │ │ │ │ │ @@ -1392,15 +1392,15 @@ │ │ │ │ │ nicht. │ │ │ │ │ │ │ │ │ │ 3.8.11 ENABLE_WATCHDOG │ │ │ │ │ Der Befehl ENABLE_WATCHDOG aktiviert einen hardwarebasierten Watchdog (falls vorhanden). │ │ │ │ │ 3.8.11.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 20 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.11.2 Ergebnisse │ │ │ │ │ Derzeit nichts. Der alte Watchdog war ein seltsames Ding, das eine bestimmte Soundkarte verwendete. Möglicherweise wird in Zukunft eine neue Watchdog-Schnittstelle entwickelt. │ │ │ │ │ │ │ │ │ │ 3.8.12 DISABLE_WATCHDOG │ │ │ │ │ @@ -1423,15 +1423,15 @@ │ │ │ │ │ Der Befehl RESUME startet den Trajektorienplaner neu, wenn er angehalten wurde. Er hat keine │ │ │ │ │ Auswirkung im freien oder Teleop-Modus, oder wenn der Planer nicht angehalten ist. │ │ │ │ │ 3.8.14.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.14.2 Ergebnisse │ │ │ │ │ Der Trajektorienplaner arbeitet weiter. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 21 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.15 STEP │ │ │ │ │ Der STEP-Befehl (engl. für Schritt) startet den Trajektorienplaner neu, wenn er angehalten wurde, und │ │ │ │ │ weist ihn an, wieder anzuhalten, wenn er einen bestimmten Punkt erreicht. Er hat keine Wirkung im │ │ │ │ │ freien oder Teleop-Modus. Zu diesem Zeitpunkt weiß ich nicht genau, wie das funktioniert. Ich werde │ │ │ │ │ @@ -1460,15 +1460,15 @@ │ │ │ │ │ 3.8.17.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. (Ich denke, es sollte nur │ │ │ │ │ im freien Modus funktionieren.) │ │ │ │ │ 3.8.17.2 Ergebnisse │ │ │ │ │ Die Begrenzungen für alle Gelenke werden bis zum Ende des nächsten JOG-Befehls außer Kraft gesetzt. (Dies ist derzeit nicht möglich… sobald ein OVERRIDE_LIMITS-Befehl empfangen wird, werden │ │ │ │ │ die Begrenzungen ignoriert, bis ein weiterer OVERRIDE_LIMITS-Befehl sie wieder aktiviert.) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 22 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.18 HOME │ │ │ │ │ Der HOME-Befehl leitet eine Referenzfahrt an einem bestimmten Gelenk ein. Die tatsächliche Referenzierungssequenz wird durch eine Reihe von Konfigurationsparametern bestimmt und kann vom │ │ │ │ │ einfachen Setzen der aktuellen Position auf Null bis hin zu einer mehrstufigen Suche nach einem │ │ │ │ │ Referenzschalter und einem Indeximpuls, gefolgt von einer Bewegung zu einer beliebigen Referenzposition, reichen. Weitere Informationen über die Referenzfahrt-Sequenz finden Sie im Abschnitt Referenzfahrt des Integrator-Handbuchs. │ │ │ │ │ @@ -1494,15 +1494,15 @@ │ │ │ │ │ 3.8.20 JOG_INCR │ │ │ │ │ Der JOG_INCR-Befehl initiiert einen inkrementellen Tippbetrieb für ein einzelnes Gelenk. Inkrementelle Verfahrbewegungen sind kumulativ, d.h. wenn Sie zwei JOG_INCR-Befehle geben, die jeweils │ │ │ │ │ eine Bewegung von 0,100 Zoll erfordern, ergibt dies eine Bewegung von 0,200 Zoll, auch wenn der │ │ │ │ │ zweite Befehl gegeben wird, bevor der erste beendet ist. Normalerweise stoppen Inkremental-Jogs, │ │ │ │ │ wenn sie die gewünschte Strecke zurückgelegt haben, aber sie stoppen auch, wenn sie an eine Grenze │ │ │ │ │ stoßen, oder bei einem ABORT-Befehl. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 23 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.20.1 Anforderungen │ │ │ │ │ Der Befehlshandler lehnt den JOG_INCR-Befehl stillschweigend ab, wenn sich die Maschine nicht im │ │ │ │ │ freien Modus befindet, wenn ein Gelenk in Bewegung ist (GET_MOTION_INPOS_FLAG() == FALSE) │ │ │ │ │ oder wenn die Bewegung nicht aktiviert ist. Der Befehl wird auch ignoriert, wenn das Gelenk bereits │ │ │ │ │ @@ -1534,15 +1534,15 @@ │ │ │ │ │ und die Maschine fährt zur befohlenen Endposition. Der Planer im freien Modus beschleunigt zu │ │ │ │ │ Beginn der Bewegung mit der Gelenkbeschleunigungsgrenze und bremst mit der Gelenkbeschleunigungsgrenze ab, um an der Zielposition anzuhalten. │ │ │ │ │ │ │ │ │ │ 3.8.22 SET_LINE │ │ │ │ │ Der Befehl SET_LINE fügt eine gerade Linie in die Warteschlange des Trajektorienplaners ein. │ │ │ │ │ (Mehr dazu später) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 24 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.23 SET_CIRCLE │ │ │ │ │ Der Befehl SET_CIRCLE fügt eine kreisförmige Bewegung in die Warteschlange des Trajektorienplaners ein. │ │ │ │ │ (Mehr dazu später) │ │ │ │ │ │ │ │ │ │ @@ -1572,15 +1572,15 @@ │ │ │ │ │ + Umkehrspiel- und Schraubenfehlerkompensation │ │ │ │ │ │ │ │ │ │ 3.10 Task-Controller (EMCTASK) │ │ │ │ │ 3.10.1 Zustand │ │ │ │ │ Die Aufgabe hat drei mögliche interne Zustände: Notaus (E-Stop), Notaus-Reset (E-Stop Reset) und │ │ │ │ │ Maschine Ein (Machine On). │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 25 / 76 │ │ │ │ │ │ │ │ │ │ 3.11 IO-Controller (EMCIO) │ │ │ │ │ Die E/A-Steuerung (engl. I/O controller) ist ein separates Modul, das NML-Befehle von TASK annimmt. │ │ │ │ │ Es interagiert mit externen E/A über HAL-Pins. iocontrol.cc wird über das linuxcnc-Skript vor TASK │ │ │ │ │ geladen. Derzeit gibt es zwei Versionen von iocontrol. Die zweite Version behandelt Hardware-Fehler │ │ │ │ │ @@ -1605,15 +1605,15 @@ │ │ │ │ │ #define EMC_TOOL_PREPARE_TYPE ((NMLTYPE) 1104) │ │ │ │ │ #define EMC_TOOL_LOAD_TYPE ((NMLTYPE) 1105) │ │ │ │ │ #define EMC_TOOL_UNLOAD_TYPE ((NMLTYPE) 1106) │ │ │ │ │ #define EMC_TOOL_LOAD_TOOL_TABLE_TYPE ((NMLTYPE) 1107) │ │ │ │ │ #define EMC_TOOL_SET_OFFSET_TYPE ((NMLTYPE) 1108) │ │ │ │ │ #define EMC_TOOL_SET_NUMBER_TYPE ((NMLTYPE) 1109) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 26 / 76 │ │ │ │ │ │ │ │ │ │ // die folgende Nachricht wird gleich zu Beginn eines M6 an io gesendet │ │ │ │ │ // noch bevor emccanon die Bewegung zur Werkzeugwechselposition ausgibt │ │ │ │ │ #define EMC_TOOL_START_CHANGE_TYPE ((NMLTYPE) 1110) │ │ │ │ │ │ │ │ │ │ @@ -1643,15 +1643,15 @@ │ │ │ │ │ Stellt einen Block von gemeinsamem Speicher zusammen mit einer Semaphore (geerbt von der Klasse │ │ │ │ │ Semaphore) bereit. Die Erstellung und Zerstörung der Semaphore wird durch den SharedMemoryKonstruktor und -Destruktor gehandhabt. │ │ │ │ │ │ │ │ │ │ 3.17 ShmBuffer │ │ │ │ │ Klasse zur Weitergabe von NML-Nachrichten zwischen lokalen Prozessen unter Verwendung eines │ │ │ │ │ gemeinsamen Speicherpuffers. Ein Großteil der internen Arbeitsweise wird von der CMS-Klasse geerbt. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 27 / 76 │ │ │ │ │ │ │ │ │ │ 3.18 Timer │ │ │ │ │ Die Klasse Timer bietet einen periodischen Timer, der nur durch die Auflösung der Systemuhr begrenzt ist. Wenn zum Beispiel ein Prozess alle 5 Sekunden ausgeführt werden muss, unabhängig von │ │ │ │ │ der Zeit, die für die Ausführung des Prozesses benötigt wird. Der folgende Codeschnipsel zeigt wie : │ │ │ │ │ main() │ │ │ │ │ @@ -1681,15 +1681,15 @@ │ │ │ │ │ NML verwendeten Funktionen enthält. Viele der internen Funktionen sind überladen, um spezifische │ │ │ │ │ hardwareabhängige Methoden der Datenübergabe zu ermöglichen. Letztlich dreht sich alles um einen zentralen Speicherblock (der als Nachrichtenpuffer oder einfach Puffer bezeichnet wird). Dieser │ │ │ │ │ Puffer kann ein gemeinsam genutzter Speicherblock sein, auf den andere CMS/NML-Prozesse zugreifen, oder ein lokaler und privater Puffer für Daten, die über Netzwerk- oder serielle Schnittstellen │ │ │ │ │ übertragen werden. │ │ │ │ │ Der Puffer wird zur Laufzeit dynamisch zugewiesen, um eine größere Flexibilität des CMS/NMLSubsystems zu ermöglichen. Die Puffergröße muss groß genug sein, um die größte Nachricht aufzunehmen, eine kleine Menge für den internen Gebrauch und die Möglichkeit, die Nachricht zu kodieren, wenn diese Option gewählt wird (auf kodierte Daten wird später eingegangen). Die folgende │ │ │ │ │ Abbildung zeigt eine interne Ansicht des Pufferspeichers. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 28 / 76 │ │ │ │ │ │ │ │ │ │ CMS-Puffer Die CMS-Basisklasse ist in erster Linie für die Erstellung der Kommunikationswege und │ │ │ │ │ der Schnittstellen zum Betriebssystem verantwortlich. │ │ │ │ │ │ │ │ │ │ 3.21 Format der Konfigurationsdatei │ │ │ │ │ @@ -1707,15 +1707,15 @@ │ │ │ │ │ • neut - ein boolescher Wert, der angibt, ob die Daten im Puffer in einem maschinenunabhängigen │ │ │ │ │ Format oder im Rohformat kodiert sind. │ │ │ │ │ • RPC# - Obsolet - Platzhalter nur noch aus Gründen der Abwärtskompatibilität. │ │ │ │ │ • buffer# - Eine eindeutige ID-Nummer, die verwendet wird, wenn ein Server mehrere Puffer kontrolliert. │ │ │ │ │ • max_procs - ist die maximale Anzahl von Prozessen, die sich mit diesem Puffer verbinden dürfen. │ │ │ │ │ • key - ist ein numerischer Bezeichner für einen gemeinsamen Speicherpuffer │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 29 / 76 │ │ │ │ │ │ │ │ │ │ 3.21.2 Typspezifische Konfigurationen │ │ │ │ │ Der Puffertyp impliziert zusätzliche Konfigurationsoptionen, während das Host-Betriebssystem bestimmte Kombinationen ausschließt. In dem Bemühen, die veröffentlichte Dokumentation in ein kohärentes Format zu bringen, wird nur der Puffertyp SHMEM behandelt. │ │ │ │ │ • mutex=os_sem - Standardmodus für die Bereitstellung von Semaphore-Sperren des Pufferspeichers. │ │ │ │ │ • mutex=none - Nicht verwendet │ │ │ │ │ @@ -1747,15 +1747,15 @@ │ │ │ │ │ • host - gibt an, wo im Netzwerk dieser Prozess ausgeführt wird. │ │ │ │ │ • ops - gibt dem Prozess nur Lese-, nur Schreib- oder Lese-/Schreibzugriff auf den Puffer. │ │ │ │ │ • server - gibt an, ob dieser Prozess einen Server für diesen Puffer betreiben wird. │ │ │ │ │ • timeout - legt die Timeout-Eigenschaften für Zugriffe auf den Puffer fest. │ │ │ │ │ • master - gibt an, ob dieser Prozess für die Erstellung und Löschung des Puffers verantwortlich ist. │ │ │ │ │ • c_num - eine Ganzzahl zwischen Null und (max_procs -1) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 30 / 76 │ │ │ │ │ │ │ │ │ │ 3.21.4 Kommentare zur Konfiguration │ │ │ │ │ Einige der Konfigurationskombinationen sind ungültig, während andere bestimmte Beschränkungen │ │ │ │ │ mit sich bringen. Auf einem Linux-System ist GLOBMEM überflüssig, während PHANTOM nur in der │ │ │ │ │ Testphase einer Anwendung wirklich nützlich ist, gleiches gilt für FILEMEM. LOCMEM ist für eine │ │ │ │ │ @@ -1794,15 +1794,15 @@ │ │ │ │ │ 3.22 NML-Basisklasse │ │ │ │ │ Mehr zu Listen und die Beziehung zwischen NML, NMLmsg und den untergeordneten cms-Klassen. │ │ │ │ │ Nicht zu verwechseln mit NMLmsg, RCS_STAT_MSG, oder RCS_CMD_MSG. │ │ │ │ │ NML ist verantwortlich für das Parsen der Konfigurationsdatei, die Konfiguration der cms-Puffer und │ │ │ │ │ die Weiterleitung von Nachrichten an die richtigen Puffer. Zu diesem Zweck erstellt NML mehrere │ │ │ │ │ Listen für: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 31 / 76 │ │ │ │ │ │ │ │ │ │ • cms-Puffer, die erstellt oder die verbunden wurden. │ │ │ │ │ • Prozesse und die Puffer, mit denen sie verbunden sind │ │ │ │ │ • eine lange Liste von Formatfunktionen für jeden Nachrichtentyp │ │ │ │ │ Dieser letzte Punkt ist wahrscheinlich der Kern eines Großteils der schlechten Bewertung von libnml/rcslib und NML im Allgemeinen. Jede Nachricht, die über NML weitergegeben wird, erfordert neben │ │ │ │ │ @@ -1829,15 +1829,15 @@ │ │ │ │ │ übergibt. In format_xxx() findet die Arbeit des Aufbaus oder Abbaus der Nachricht statt. Eine Liste │ │ │ │ │ verschiedener Funktionen wird nacheinander aufgerufen, um verschiedene Teile des NML-Headers │ │ │ │ │ (nicht zu verwechseln mit dem cms-Header) in die richtige Reihenfolge zu bringen - die letzte aufgerufene Funktion ist emcFormat() in emc.cc. │ │ │ │ │ 3.22.1.3 NMLmsg und NML-Beziehungen │ │ │ │ │ NMLmsg ist die Basisklasse, von der alle Nachrichtenklassen abgeleitet sind. Für jede Nachrichtenklasse muss eine eindeutige ID definiert (und an den Konstruktor übergeben) werden sowie eine │ │ │ │ │ update(*cms)-Funktion. Die update()-Funktion wird von den NML-Lese-/Schreibfunktionen aufgerufen, wenn der NML-Formatierer aufgerufen wird - der Zeiger auf den Formatierer wird irgendwann │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 32 / 76 │ │ │ │ │ │ │ │ │ │ im NML-Konstruktor deklariert worden sein. Durch die von NML erstellten verknüpften Listen ist es │ │ │ │ │ möglich, den cms-Zeiger auszuwählen, der an den Formatierer übergeben wird, und damit den zu │ │ │ │ │ verwendenden Puffer. │ │ │ │ │ │ │ │ │ │ @@ -1869,15 +1869,15 @@ │ │ │ │ │ Beispiele für nicht-zufällige Werkzeugwechsler sind der ”manuelle” Werkzeugwechsler, Drehautomaten und Regalwechsler. │ │ │ │ │ Wenn für einen nicht-zufälligen Werkzeugwechsler konfiguriert, ändert LinuxCNC die Platznummer in │ │ │ │ │ der Werkzeugtabellen-Datei nicht wenn Werkzeuge geladen bzw. entladen werden. LinuxCNC-intern │ │ │ │ │ werden bei einem Werkzeugwechsel die Werkzeug-Informationen von der Werkzeugtabelle kopiert │ │ │ │ │ von der jeweiligen Taschennummer der Quelle (der Ablage) zur Tasche mit der Nummer 0 (welche │ │ │ │ │ die Spindel darstellt). Dies ersetzt die vorherigen dort abgelegten Werkzeuginformationen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 33 / 76 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ In LinuxCNC configured for nonrandom toolchanger, tool 0 (T0) has special meaning: ”no tool”. T0 │ │ │ │ │ may not appear in the tool table file, and changing to T0 will result in LinuxCNC thinking it has got │ │ │ │ │ an empty spindle. │ │ │ │ │ @@ -1909,15 +1909,15 @@ │ │ │ │ │ • Wenn LinuxCNC für einen zufälligen Werkzeugwechsler konfiguriert ist, muss diese Zahl nichtnegativ sein. T0 ist in der Werkzeugtabelle erlaubt, und wird in der Regel verwendet, um ”kein │ │ │ │ │ Werkzeug”, d.h. die leere Tasche darstellen. │ │ │ │ │ Taschennummer │ │ │ │ │ Eine ganze Zahl zur Identifikation der Tasche oder des Steckplatz in der WerkzeugwechslerHardware, in der sich das Werkzeug befindet. Pocket-Nummern werden unterschiedlich von LinuxCNC behandelt, abhängig davon ob für zufällige und nicht-zufällige Werkzeugwechsler konfiguriert: │ │ │ │ │ • Wenn LinuxCNC für einen nicht-zufälligen Werkzeugwechsler konfiguriert ist, kann die Platznummer in der Werkzeugdatei jede positive ganze Zahl (Tasche 0 ist nicht erlaubt) sein. LinuxCNC verdichtet die Platznummern stillschweigend, wenn es die Werkzeugdatei lädt, so kann es │ │ │ │ │ einen Unterschied zwischen den Platznummern in der Werkzeugdatei und den internen Platznummern von LinuxCNC geben. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 34 / 76 │ │ │ │ │ │ │ │ │ │ • Wenn LinuxCNC für einen zufälligen Werkzeugwechsler konfiguriert ist, müssen die Platznummern in der Werkzeugdatei zwischen 0 und 1000, einschließlich sein. Pockets 1-1000 sind im │ │ │ │ │ Werkzeugwechsler, Tasche 0 ist die Spindel. │ │ │ │ │ Durchmesser │ │ │ │ │ Durchmesser des Werkzeugs in Maschineneinheiten. │ │ │ │ │ @@ -1948,15 +1948,15 @@ │ │ │ │ │ │ │ │ │ │ 3.24.3.2 M6 │ │ │ │ │ Weist den Werkzeugwechsler an, zum aktuell ausgewählten Werkzeug zu wechseln (ausgewählt durch │ │ │ │ │ den vorherigen Befehl Txxx). │ │ │ │ │ Wird von Interp::convert_tool_change() behandelt. │ │ │ │ │ 1. Die Maschine wird aufgefordert, zum ausgewählten Werkzeug zu wechseln, indem die CanonFunktion CHANGE_TOOL() mit settings->selected_pocket (einem Werkzeugdatenindex) aufgerufen wird. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 35 / 76 │ │ │ │ │ │ │ │ │ │ a. (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]). │ │ │ │ │ b. (emccanon) Sendet eine EMC_TOOL_LOAD Nachricht an Task, die diese an IO sendet. IO setzt │ │ │ │ │ emcioStatus.tool.toolInSpindle auf die Werkzeugnummer des Werkzeugs in der Tasche, │ │ │ │ │ @@ -1988,15 +1988,15 @@ │ │ │ │ │ wo sie zum Offset für zukünftige Bewegungen verwendet werden. │ │ │ │ │ 3. Zurück in interp werden die Offsets in settings->tool_offset aufgezeichnet. Die effektive Tasche wird in settings->tool_offset_index aufgezeichnet, obwohl dieser Wert nie verwendet │ │ │ │ │ wird. │ │ │ │ │ 3.24.3.4 G10 L1/L10/L11 │ │ │ │ │ Ändert die Werkzeugtabelle. │ │ │ │ │ Wird von Interp::convert_setup_tool() behandelt. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 36 / 76 │ │ │ │ │ │ │ │ │ │ 1. Wählt die Werkzeugnummer aus dem P-Wort im Block aus und findet die Tasche für dieses Werkzeug: │ │ │ │ │ a. Bei einer nicht-zufälligen Werkzeugwechsler-Konfiguration ist dies immer die Platznummer │ │ │ │ │ im Werkzeugwechsler (auch wenn sich das Werkzeug in der Spindel befindet). │ │ │ │ │ b. Bei einer zufälligen Werkzeugwechslerkonfiguration wird, wenn das Werkzeug gerade geladen ist, Platz 0 verwendet (Platz 0 bedeutet ”die Spindel”), und wenn das Werkzeug nicht │ │ │ │ │ @@ -2028,15 +2028,15 @@ │ │ │ │ │ 3.24.3.5 M61 │ │ │ │ │ Setze aktuelle Werkzeugnummer. Dies wechselt LinuxCNC’s interne Darstellung, welches Werkzeug │ │ │ │ │ in der Spindel ist, ohne tatsächlich bewegen den Werkzeugwechsler oder Austausch von Werkzeugen. │ │ │ │ │ Wird von Interp::convert_tool_change() behandelt. │ │ │ │ │ Canon: CHANGE_TOOL_NUMBER() │ │ │ │ │ settings->current_pocket wird dem Werkzeugdaten-Index zugewiesen, der das durch das Q-WortArgument angegebene Werkzeug enthält. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 37 / 76 │ │ │ │ │ │ │ │ │ │ 3.24.3.6 G41/G41.1/G42/G42.1 │ │ │ │ │ Aktiviert die Fräserradiuskompensation (engl. kurz cutter comp genannt). │ │ │ │ │ Wird von Interp::convert_cutter_compensation_on() behandelt. │ │ │ │ │ Kein Canon-Aufruf, die Fräser Kompensation erfolgt im Interpreter. Verwendet die Werkzeugtabelle │ │ │ │ │ @@ -2069,15 +2069,15 @@ │ │ │ │ │ settings.selected_pocket │ │ │ │ │ Tooldatenindex des zuletzt mit Txxx ausgewählten Werkzeugs. │ │ │ │ │ settings.current_pocket │ │ │ │ │ Ursprünglicher Werkzeugdatenindex des Werkzeugs, das sich gerade in der Spindel befindet. │ │ │ │ │ Mit anderen Worten: Von welchem Werkzeugdatenindex das Werkzeug geladen wurde, das sich │ │ │ │ │ gerade in der Spindel befindet. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 38 / 76 │ │ │ │ │ │ │ │ │ │ settings.tool_table[] │ │ │ │ │ Ein Array mit Werkzeuginformationen. Der Index im Array ist die ”Platznummer” (auch ”Slotnummer” genannt). Platz 0 ist die Spindel, die Plätze 1 bis (CANON_POCKETS_MAX-1) sind die │ │ │ │ │ Plätze des Werkzeugwechslers. │ │ │ │ │ settings.tool_offset_index │ │ │ │ │ @@ -2111,15 +2111,15 @@ │ │ │ │ │ Diese werden über INI-Variablen im Abschnitt [EMCIO] gesetzt und bestimmen, wie Werkzeugwechsel durchgeführt werden. │ │ │ │ │ │ │ │ │ │ 3.25 Parameter-Bestimmung von Gelenken und Achsen │ │ │ │ │ 3.25.1 Im Statuspuffer │ │ │ │ │ Der Statuspuffer wird vom Task-Modul und den Benutzeroberflächen verwendet. │ │ │ │ │ FIXME: axis_mask und axes überspezifizieren die Anzahl der Achsen │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 39 / 76 │ │ │ │ │ │ │ │ │ │ status.motion.traj.axis_mask │ │ │ │ │ A bitmask with a ”1” for the axes that are present and a ”0” for the axes that are not present. X is │ │ │ │ │ bit 0 with value 20 = 1 if set, Y is bit 1 with value 21 = 2, Z is bit 2 with value 4, etc. For example, │ │ │ │ │ a machine with X and Z axes would have an axis_mask of 0x5, an XYZ machine would have 0x7, │ │ │ │ │ @@ -2145,15 +2145,15 @@ │ │ │ │ │ Die Echtzeitkomponente des Motion Controllers erhält zunächst die Anzahl der Joints aus dem LoadTime-Parameter num_joints. Dieser bestimmt, wie viele Gelenke mit HAL-Pins beim Start erzeugt │ │ │ │ │ werden. │ │ │ │ │ Die Anzahl der Gelenke einer Bewegung kann zur Laufzeit mit dem Befehl EMCMOT_SET_NUM_JOINTS │ │ │ │ │ aus dem Task heraus geändert werden. │ │ │ │ │ Der Motion Controller arbeitet immer mit EMCMOT_MAX_AXIS-Achsen. Er erstellt immer neun Sätze von │ │ │ │ │ ”Achsen..”-Pins. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Kapitel 4 │ │ │ │ │ │ │ │ │ │ NML-Nachrichten │ │ │ │ │ Liste der NML-Nachrichten. │ │ │ │ │ Für Einzelheiten siehe src/emc/nml_intf/emc.hh. │ │ │ │ │ │ │ │ │ │ @@ -2185,15 +2185,15 @@ │ │ │ │ │ EMC_JOINT_UNHOME_TYPE │ │ │ │ │ EMC_JOINT_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.3 ACHSE │ │ │ │ │ │ │ │ │ │ 40 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ EMC_AXIS_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.4 JOG │ │ │ │ │ EMC_JOG_CONT_TYPE │ │ │ │ │ EMC_JOG_INCR_TYPE │ │ │ │ │ EMC_JOG_ABS_TYPE │ │ │ │ │ @@ -2239,15 +2239,15 @@ │ │ │ │ │ EMC_TRAJ_RIGID_TAP_TYPE │ │ │ │ │ EMC_TRAJ_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.6 MOTION (engl. für Bewegung) │ │ │ │ │ │ │ │ │ │ 41 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 42 / 76 │ │ │ │ │ │ │ │ │ │ EMC_MOTION_INIT_TYPE │ │ │ │ │ EMC_MOTION_HALT_TYPE │ │ │ │ │ EMC_MOTION_ABORT_TYPE │ │ │ │ │ EMC_MOTION_SET_AOUT_TYPE │ │ │ │ │ @@ -2292,15 +2292,15 @@ │ │ │ │ │ EMC_TOOL_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.9 AUX (engl. Kurzform für ”andere Hilfsfunktionen”) │ │ │ │ │ EMC_AUX_ESTOP_ON_TYPE │ │ │ │ │ EMC_AUX_ESTOP_OFF_TYPE │ │ │ │ │ EMC_AUX_ESTOP_RESET_TYPE │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 43 / 76 │ │ │ │ │ │ │ │ │ │ EMC_AUX_INPUT_WAIT_TYPE │ │ │ │ │ EMC_AUX_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.10 SPINDLE (engl. für Spindel) │ │ │ │ │ @@ -2335,28 +2335,28 @@ │ │ │ │ │ EMC_IO_ABORT_TYPE │ │ │ │ │ EMC_IO_SET_CYCLE_TIME_TYPE │ │ │ │ │ EMC_IO_STAT_TYPE │ │ │ │ │ EMC_IO_PLUGIN_CALL_TYPE │ │ │ │ │ │ │ │ │ │ 4.14 Andere │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ EMC_NULL_TYPE │ │ │ │ │ EMC_SET_DEBUG_TYPE │ │ │ │ │ EMC_SYSTEM_CMD_TYPE │ │ │ │ │ EMC_INIT_TYPE │ │ │ │ │ EMC_HALT_TYPE │ │ │ │ │ EMC_ABORT_TYPE │ │ │ │ │ EMC_STAT_TYPE │ │ │ │ │ EMC_EXEC_PLUGIN_CALL_TYPE │ │ │ │ │ │ │ │ │ │ 44 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 45 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 5 │ │ │ │ │ │ │ │ │ │ Quellcode-Stil │ │ │ │ │ Dieses Kapitel beschreibt den vom LinuxCNC-Team bevorzugten Quellcode-Stil. │ │ │ │ │ @@ -2380,15 +2380,15 @@ │ │ │ │ │ │ │ │ │ │ 5.4 Setzen von Klammern │ │ │ │ │ Setzen Sie die öffnende Klammer zuletzt auf die Linie, und setzen Sie die schließende Klammer zuerst: │ │ │ │ │ if (x) { │ │ │ │ │ // macht irgendetwas der Situation Angepasstes │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 46 / 76 │ │ │ │ │ │ │ │ │ │ Die schließende Klammer steht in einer eigenen Zeile, es sei denn, es folgt eine Fortsetzung derselben │ │ │ │ │ Anweisung, z. B. ein while in einer do-Anweisung oder ein else in einer if-Anweisung, wie hier: │ │ │ │ │ do { │ │ │ │ │ // etwas Wichtiges │ │ │ │ │ @@ -2422,15 +2422,15 @@ │ │ │ │ │ 5.6 Funktionen │ │ │ │ │ Funktionen sollten kurz und knapp sein und nur einen Zweck erfüllen. Sie sollten auf einen oder zwei │ │ │ │ │ Bildschirme voller Text passen (die ISO/ANSI-Bildschirmgröße beträgt 80x24, wie wir alle wissen) │ │ │ │ │ und nur eine Aufgabe erfüllen, und diese gut. │ │ │ │ │ Die maximale Länge einer Funktion ist umgekehrt proportional zur Komplexität und zum Grad der │ │ │ │ │ Einrückung dieser Funktion. Wenn Sie also eine konzeptionell einfache Funktion haben, die nur aus │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 47 / 76 │ │ │ │ │ │ │ │ │ │ einer einzigen langen (aber einfachen) Fallanweisung besteht, bei der Sie viele kleine Dinge für viele │ │ │ │ │ verschiedene Fälle tun müssen, ist es in Ordnung, eine längere Funktion zu haben. │ │ │ │ │ Wenn Sie jedoch eine komplexe Funktion haben und Sie vermuten, dass ein weniger begabter Anfänger nicht einmal versteht, worum es in der Funktion geht, sollten Sie sich um so mehr an die │ │ │ │ │ Höchstgrenzen halten. Verwenden Sie Hilfsfunktionen mit aussagekräftigen Namen (Sie können den │ │ │ │ │ @@ -2466,15 +2466,15 @@ │ │ │ │ │ awk-Aufruf als gawk oder mawk. │ │ │ │ │ │ │ │ │ │ 5.9 C++-Konventionen │ │ │ │ │ C++-Codierungsstile sind wiederholt Anlass für hitzige Debatten (ähnlich wie der Streit zwischen │ │ │ │ │ emacs und vi). Eines ist jedoch sicher: Ein gemeinsamer Stil, der von allen an einem Projekt Beteiligten │ │ │ │ │ verwendet wird, führt zu einheitlichem und lesbarem Code. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 48 / 76 │ │ │ │ │ │ │ │ │ │ Namenskonventionen: Konstanten entweder aus #defines oder aus Enumerationen sollten durchgehend in Großbuchstaben geschrieben werden. Begründung: Erleichtert das Erkennen von durch den │ │ │ │ │ Präprozessor substituierten Ausdrücke im Quellcode, z.B. EMC_MESSAGE_TYPE. │ │ │ │ │ Klassen und Namensräume (engl. namespace) sollten den ersten Buchstaben eines jeden Wortes │ │ │ │ │ groß schreiben und Unterstriche vermeiden. Begründung: Identifiziert Klassen, Konstruktoren und │ │ │ │ │ @@ -2510,15 +2510,15 @@ │ │ │ │ │ Implizite Tests auf Null sollten mit Ausnahme von booleschen Variablen nicht verwendet werden, z.B. │ │ │ │ │ if (spindle_speed != 0), NICHT if (spindle_speed). │ │ │ │ │ In einem for()-Konstrukt dürfen nur Anweisungen zur Schleifenkontrolle enthalten sein, z.B. sum = 0; │ │ │ │ │ for (i = 0; i < 10; i++) { sum += value[i]; } ̀+ NICHT: ̀ │ │ │ │ │ for (i=0, sum=0; i<10; i++) sum │ │ │ │ │ += value[i];. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 49 / 76 │ │ │ │ │ │ │ │ │ │ Ebenso müssen ausführbare Anweisungen in Konditionalen vermieden werden, z.B. ist if (fd = │ │ │ │ │ open(file_name)) böse. │ │ │ │ │ Komplexe bedingte Anweisungen sollten vermieden werden - führen Sie stattdessen temporäre boolesche Variablen ein. │ │ │ │ │ Klammern sollten in mathematischen Ausdrücken reichlich verwendet werden - Verlassen Sie sich │ │ │ │ │ @@ -2531,15 +2531,15 @@ │ │ │ │ │ Use the PEP 8 style for Python code. │ │ │ │ │ │ │ │ │ │ 5.11 Comp-Codierungs-Standards │ │ │ │ │ Im Deklarationsteil einer .comp-Datei beginnen Sie jede Deklaration mit der ersten Spalte. Fügen Sie │ │ │ │ │ zusätzliche Leerzeilen ein, wenn sie zur Gruppierung verwandter Elemente beitragen. │ │ │ │ │ Im Code-Teil einer .comp-Datei ist der normale C-Codierungsstil zu beachten. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 50 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 6 │ │ │ │ │ │ │ │ │ │ Kompilieren (”bauen”) von LinuxCNC │ │ │ │ │ 6.1 Einführung │ │ │ │ │ @@ -2567,15 +2567,15 @@ │ │ │ │ │ To retrieve the source tree you have two options: │ │ │ │ │ Download tarball │ │ │ │ │ On the LinuxCNC project page in GitHub find a reference to the ”releases” or ”tags”, click that │ │ │ │ │ hyperlink to the archive page and download the latest .tar file. You will find that file compressed │ │ │ │ │ as a .tar.xz or .tar.gz file. This file, commonly referred to as a ”tarball” is an archive very analogous │ │ │ │ │ to a .zip. Your Linux desktop will know how to treat that file when double-clicking on it. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 51 / 76 │ │ │ │ │ │ │ │ │ │ Prepare a local copy of the LinuxCNC repository │ │ │ │ │ You would first install the tool ”git” on your machine if it is not available already (sudo apt │ │ │ │ │ install git). Then prepare a local instance of the source tree as follows: . │ │ │ │ │ $ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir │ │ │ │ │ @@ -2616,15 +2616,15 @@ │ │ │ │ │ │ │ │ │ │ 6.3 Unterstützte Plattformen │ │ │ │ │ The LinuxCNC project targets modern Debian-based distributions, including Debian, Ubuntu, and │ │ │ │ │ Mint. We continuously test on the platforms listed at http://buildbot.linuxcnc.org. │ │ │ │ │ LinuxCNC builds on most other Linux distributions, though dependency management will be more │ │ │ │ │ manual and less automatic. Patches to improve portability to new platforms are always welcome. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 52 / 76 │ │ │ │ │ │ │ │ │ │ 6.3.1 Echtzeit │ │ │ │ │ LinuxCNC is a machine tool controller, and it requires a realtime platform to do this job. This version │ │ │ │ │ of LinuxCNC supports the following platforms. The first three listed are realtime operating systems: │ │ │ │ │ RTAI │ │ │ │ │ @@ -2657,15 +2657,15 @@ │ │ │ │ │ The src/configure script configures how the source code will be compiled. It takes many optional │ │ │ │ │ arguments. List all arguments to src/configure by running this: │ │ │ │ │ $ cd linuxcnc-source-dir/src │ │ │ │ │ $ ./configure --help │ │ │ │ │ │ │ │ │ │ Die am häufigsten verwendeten Argumente sind: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 53 / 76 │ │ │ │ │ │ │ │ │ │ --with-realtime=uspace │ │ │ │ │ Build for any realtime platform, or for non-realtime. The resulting LinuxCNC executables will run │ │ │ │ │ on both a Linux kernel with Preempt-RT patches (providing realtime machine control) and on a │ │ │ │ │ vanilla (un-patched) Linux kernel (providing G-code simulation but no realtime machine control). │ │ │ │ │ @@ -2701,15 +2701,15 @@ │ │ │ │ │ in a Debian package, complete with dependency information. This process by default also includes │ │ │ │ │ the building of the documentation, which takes its time because of all the I/O for many languages, but │ │ │ │ │ that can be skipped. LinuxCNC is then installed as part of those packages on the same machines or on │ │ │ │ │ whatever machine of the same architecture that the .deb files are copied to. LinuxCNC cannot be run │ │ │ │ │ until the Debian packages are installed on a target machine and then the executables are available in │ │ │ │ │ /usr/bin and /usr/lib just like other regular software of the sytem. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 54 / 76 │ │ │ │ │ │ │ │ │ │ This build mode is primarily useful when packaging the software for delivery to end users, and when │ │ │ │ │ building the software for a machine that does not have the build environment installed, or that does │ │ │ │ │ not have internet access. │ │ │ │ │ To build packages is primarily useful when packaging the software for delivery to end users. Developers among themselves exchange only the source code, likely supported by the LinuxCNC GitHub repository referenced below. Also, when building the software for a machine that doesn’t have the build │ │ │ │ │ @@ -2747,15 +2747,15 @@ │ │ │ │ │ 6.4.2.1 LinuxCNC’s debian/configure arguments │ │ │ │ │ The LinuxCNC source tree has a debian directory with all the info about how the Debian package │ │ │ │ │ shall be built, but some key files within are only distributed as templates. The debian/configure │ │ │ │ │ script readies those build instructions for the regular Debian packaging utilities and must thus be run │ │ │ │ │ prior to dpkg-checkbuilddeps or dpkg-buildpackage. │ │ │ │ │ The debian/configure script takes a single argument which specifies the underlying realtime or nonrealtime platform to build for. The regular values for this argument are: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 55 / 76 │ │ │ │ │ │ │ │ │ │ no-docs │ │ │ │ │ Skip building documentation. │ │ │ │ │ uspace │ │ │ │ │ Konfigurieren Sie das Debian-Paket für Preempt-RT-Echtzeit oder für Nicht-Echtzeit (diese beiden sind kompatibel). │ │ │ │ │ @@ -2794,15 +2794,15 @@ │ │ │ │ │ sudo apt-get build-dep . │ │ │ │ │ │ │ │ │ │ which will install all the dependencies required but available. The . is part of the command line, i.e. an │ │ │ │ │ instruction to retrieve the dependencies for the source tree at hand, not for dependencies of another │ │ │ │ │ package. This completes the installation of build-dependencies. │ │ │ │ │ The remainder of this section describes a semi-manual approach. The list of dependencies in debian/control is long and it is tedious to compare the current state of packages already installed with it. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 56 / 76 │ │ │ │ │ │ │ │ │ │ Debian systems provide a program called dpkg-checkbuilddeps that parses the package meta-data │ │ │ │ │ and compares the packages listed as build dependencies against the list of installed packages, and │ │ │ │ │ tells you what’s missing. │ │ │ │ │ Installieren Sie zuerst das Programm dpkg-checkbuilddeps, indem Sie es ausführen: │ │ │ │ │ @@ -2841,15 +2841,15 @@ │ │ │ │ │ -b │ │ │ │ │ Only compiles the architecture-dependent packages (like the linuxcnc binaries and GUIs). This │ │ │ │ │ is very helpful to avoid compiling what is hardware-independent, which for LinuxCNC is the │ │ │ │ │ documentation. That documentation is available online anyway. │ │ │ │ │ If you happen to run into difficulties while compiling, check the LinuxCNC forum online. Currently │ │ │ │ │ emerging is the support for the DEB_BUILD_OPTIONS environment variable. Set it to │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 57 / 76 │ │ │ │ │ │ │ │ │ │ nodocs │ │ │ │ │ to skip building the documentation, preferably instead use the -B flag to dpkg-buildpackage. │ │ │ │ │ nocheck │ │ │ │ │ to skip self-tests of the LinuxCNC build process. This saves some time and reduces the demand │ │ │ │ │ @@ -2887,25 +2887,25 @@ │ │ │ │ │ RTAPI: ERROR: failed to map shmem │ │ │ │ │ RTAPI: Locked memory limit is 32KiB, recommended at least 20480KiB. │ │ │ │ │ │ │ │ │ │ Um dieses Problem zu beheben, fügen Sie eine Datei namens /etc/security/limits.d/linuxcnc.conf │ │ │ │ │ (als root) mit Ihrem bevorzugten Texteditor hinzu (z.B. sudo gedit /etc/security/limits.d/linuxcnc.co │ │ │ │ │ Die Datei sollte die folgende Zeile enthalten: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 58 / 76 │ │ │ │ │ │ │ │ │ │ * - memlock 20480 │ │ │ │ │ │ │ │ │ │ Melden Sie sich ab und wieder an, damit die Änderungen wirksam werden. Überprüfen Sie mit dem │ │ │ │ │ folgenden Befehl, ob die Speichersperrgrenze angehoben wurde: │ │ │ │ │ $ ulimit -l │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 59 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 7 │ │ │ │ │ │ │ │ │ │ Hinzufügen von Konfigurationsauswahl │ │ │ │ │ elementen │ │ │ │ │ @@ -2916,15 +2916,15 @@ │ │ │ │ │ │ │ │ │ │ • Runtime settings — the configuration selector can also offer configuration subdirectories specified │ │ │ │ │ at runtime using an exported environamental variable (LINUXCNC_AUX_CONFIGS). This variable │ │ │ │ │ should be a path list of one or more configuration directories separated by a (:). Typically, this │ │ │ │ │ variable would be set in a shell starting linuxcnc or in a user’s ~/.profile startup script. Example: │ │ │ │ │ export LINUXCNC_AUX_CONFIGS=~/myconfigs:/opt/otherconfigs │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 60 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 8 │ │ │ │ │ │ │ │ │ │ Mitwirkung an LinuxCNC │ │ │ │ │ 8.1 Einführung │ │ │ │ │ @@ -2945,15 +2945,15 @@ │ │ │ │ │ All of the LinuxCNC source is maintained in the Git revision control system. │ │ │ │ │ │ │ │ │ │ 8.4.1 LinuxCNC offizielles Git Repository │ │ │ │ │ The official LinuxCNC git repo is at https://github.com/linuxcnc/linuxcnc/ │ │ │ │ │ Jeder kann eine schreibgeschützte Kopie des LinuxCNC-Quellbaums über git erhalten: │ │ │ │ │ git clone https://github.com/linuxcnc/linuxcnc linuxcnc-dev │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 61 / 76 │ │ │ │ │ │ │ │ │ │ Wenn Sie ein Entwickler mit Schreibrechten (genannt ”push” in Anlehnung an das git-Kommando) │ │ │ │ │ sind, folgen Sie den Anweisungen in github, um ein Repository einzurichten, von dem aus Sie pushen │ │ │ │ │ können. │ │ │ │ │ Beachten Sie, dass der Clone-Befehl das lokale LinuxCNC Repo in ein Verzeichnis namens linuxcnc-dev │ │ │ │ │ @@ -2986,15 +2986,15 @@ │ │ │ │ │ • git tutorial 2: https://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html │ │ │ │ │ │ │ │ │ │ • Alltägliches Git mit 20 Befehlen oder so: https://www.kernel.org/pub/software/scm/git/docs/giteveryday.ht │ │ │ │ │ • Git-Benutzerhandbuch: https://www.kernel.org/pub/software/scm/git/docs/user-manual.html │ │ │ │ │ For a more thorough documentation of git see the ”Pro Git” book: https://git-scm.com/book │ │ │ │ │ Ein weiteres Online-Tutorial, das empfohlen wurde, ist ”Git for the Lazy”: https://wiki.spheredev.org/index.php/Git_for_the_lazy │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 62 / 76 │ │ │ │ │ │ │ │ │ │ 8.5 Überblick über den Prozess │ │ │ │ │ Ein Überblick darüber, wie man Änderungen am Quelltext vornimmt, sieht folgendermaßen aus: │ │ │ │ │ • Communicate with the project developers and let us know what you’re hacking on. Explain what │ │ │ │ │ you are doing, and why. │ │ │ │ │ @@ -3026,15 +3026,15 @@ │ │ │ │ │ Benutzen Sie Ihren richtigen Namen und eine direkt nutzbare E-Mail Adresse. │ │ │ │ │ │ │ │ │ │ 8.7 Effektive Nutzung von Git │ │ │ │ │ 8.7.1 Commit-Inhalte │ │ │ │ │ Halten Sie Ihre Commits klein und auf den Punkt. Jeder Commit sollte eine logische Änderung am │ │ │ │ │ Projektarchiv bewirken. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 63 / 76 │ │ │ │ │ │ │ │ │ │ 8.7.2 Schreiben Sie gute Commit-Nachrichten │ │ │ │ │ Halten Sie die Commit-Meldungen etwa 72 Spalten breit (damit sie in einem Terminalfenster mit │ │ │ │ │ Standardgröße nicht umbrechen, wenn sie von git log angezeigt werden). │ │ │ │ │ Verwenden Sie die erste Zeile als Zusammenfassung der Absicht der Änderung (fast wie die Betreffzeile einer E-Mail). Danach folgt eine Leerzeile und dann eine längere Nachricht, in der die Änderung │ │ │ │ │ @@ -3066,15 +3066,15 @@ │ │ │ │ │ Entwicklern teilen │ │ │ │ │ Mit Git ist es möglich, jede Bearbeitung und jeden Fehlstart als separaten Commit aufzuzeichnen. │ │ │ │ │ Dies ist sehr praktisch, um während der Entwicklung Kontrollpunkte zu setzen, aber oft möchte man │ │ │ │ │ diese Fehlstarts nicht mit anderen teilen. │ │ │ │ │ Git bietet zwei Möglichkeiten, die Historie zu bereinigen, die beide frei durchgeführt werden können, │ │ │ │ │ bevor Sie die Änderung freigeben: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 64 / 76 │ │ │ │ │ │ │ │ │ │ Mit git commit --amend können Sie zusätzliche Änderungen an dem letzten Commit vornehmen und │ │ │ │ │ optional auch die Commit-Nachricht ändern. Benutzen Sie dies, wenn Sie sofort merken, dass Sie │ │ │ │ │ etwas in der Commit-Nachricht vergessen haben, oder wenn Sie sich in der Commit-Nachricht vertippt │ │ │ │ │ haben. │ │ │ │ │ @@ -3113,30 +3113,30 @@ │ │ │ │ │ Verwenden Sie git pull --rebase anstelle von git pull, um eine schöne lineare Historie zu erhalten. Wenn Sie rebasen, behalten Sie Ihre Arbeit immer als Revisionen, die vor origin/master liegen, so │ │ │ │ │ dass Sie Dinge wie git format-patch ausführen können, um Entwicklungen mit anderen zu teilen, │ │ │ │ │ ohne sie in das zentrale Repository zu pushen. │ │ │ │ │ │ │ │ │ │ 8.8 Übersetzungen │ │ │ │ │ Das LinuxCNC-Projekt verwendet gettext, um die Software in viele Sprachen zu übersetzen. Wir begrüßen Beiträge und Hilfe in diesem Bereich! Das Verbessern und Erweitern der Übersetzungen ist │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 65 / 76 │ │ │ │ │ │ │ │ │ │ einfach: Sie müssen keine Programmierkenntnisse haben und Sie müssen keine speziellen Übersetzungsprogramme oder andere Software installieren. │ │ │ │ │ Der einfachste Weg, bei Übersetzungen zu helfen, ist die Nutzung von Weblate, einem Open-SourceWebdienst. Unser Übersetzungsprojekt finden Sie hier: https://hosted.weblate.org/projects/linuxcnc/ │ │ │ │ │ Die Dokumentation zur Verwendung von Weblate finden Sie hier: https://docs.weblate.org/en/latest/user/basic.html │ │ │ │ │ Wenn Webdienste nicht Ihr Ding sind, können Sie auch mit einer Reihe lokaler Gettext-ÜbersetzerApps wie gtranslator, poedit und vielen anderen an Übersetzungen arbeiten. │ │ │ │ │ │ │ │ │ │ 8.9 Andere Möglichkeiten, einen Beitrag zu leisten │ │ │ │ │ Es gibt viele Möglichkeiten, zu LinuxCNC beizutragen, die in diesem Dokument nicht behandelt werden. Diese Wege umfassen: │ │ │ │ │ • Beantwortung von Fragen im Forum, auf Mailinglisten und im IRC │ │ │ │ │ • Melden von Fehlern im Bug-Tracker, im Forum, auf Mailinglisten oder im IRC │ │ │ │ │ • Hilfe beim Testen experimenteller Funktionen │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 66 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 9 │ │ │ │ │ │ │ │ │ │ Glossar │ │ │ │ │ Eine Auflistung von Begriffen und deren Bedeutung. Einige Begriffe haben eine allgemeine Bedeutung │ │ │ │ │ @@ -3170,15 +3170,15 @@ │ │ │ │ │ Umkehrspiel-Kompensation │ │ │ │ │ Any technique that attempts to reduce the effect of backlash without actually removing it from │ │ │ │ │ the mechanical system. This is typically done in software in the controller. This can correct the │ │ │ │ │ final resting place of the part in motion but fails to solve problems related to direction changes │ │ │ │ │ while in motion (think circular interpolation) and motion that is caused when external forces │ │ │ │ │ (think cutting tool pulling on the work piece) are the source of the motion. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 67 / 76 │ │ │ │ │ │ │ │ │ │ Kugelumlaufspindel │ │ │ │ │ A type of lead-screw that uses small hardened steel balls between the nut and screw to reduce │ │ │ │ │ friction. Ball-screws have very low friction and backlash, but are usually quite expensive. │ │ │ │ │ Kugelmutter │ │ │ │ │ @@ -3218,15 +3218,15 @@ │ │ │ │ │ sinking electrode. │ │ │ │ │ EMC │ │ │ │ │ The Enhanced Machine Controller. Initially a NIST project. Renamed to LinuxCNC in 2012. │ │ │ │ │ EMCIO │ │ │ │ │ The module within LinuxCNC that handles general purpose I/O, unrelated to the actual motion │ │ │ │ │ of the axes. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 68 / 76 │ │ │ │ │ │ │ │ │ │ EMCMOT │ │ │ │ │ The module within LinuxCNC that handles the actual motion of the cutting tool. It runs as a │ │ │ │ │ real-time program and directly controls the motors. │ │ │ │ │ Encoder │ │ │ │ │ @@ -3269,15 +3269,15 @@ │ │ │ │ │ A text file that contains most of the information that configures LinuxCNC for a particular machine. │ │ │ │ │ Instanz │ │ │ │ │ One can have an instance of a class or a particular object. The instance is the actual object created │ │ │ │ │ at runtime. In programmer jargon, the ”Lassie” object is an instance of the ”Dog” class. │ │ │ │ │ Gelenk-Koordinaten │ │ │ │ │ These specify the angles between the individual joints of the machine. See also Kinematics │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 69 / 76 │ │ │ │ │ │ │ │ │ │ Jog (manuelle Bewegung) │ │ │ │ │ Manually moving an axis of a machine. Jogging either moves the axis a fixed amount for each │ │ │ │ │ key-press, or moves the axis at a constant speed as long as you hold down the key. In manual │ │ │ │ │ mode, jog speed can be set from the graphical interface. │ │ │ │ │ @@ -3322,15 +3322,15 @@ │ │ │ │ │ Python │ │ │ │ │ General-purpose, very high-level programming language. Used in LinuxCNC for the Axis GUI, │ │ │ │ │ the StepConf configuration tool, and several G-code programming scripts. │ │ │ │ │ Schnell │ │ │ │ │ Fast, possibly less precise motion of the tool, commonly used to move between cuts. If the tool │ │ │ │ │ meets the workpiece or the fixturing during a rapid, it is probably a bad thing! │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 70 / 76 │ │ │ │ │ │ │ │ │ │ Schnellauf-Geschwindigkeit │ │ │ │ │ The speed at which a rapid motion occurs. In auto or MDI mode, rapid rate is usually the maximum │ │ │ │ │ speed of the machine. It is often desirable to limit the rapid rate when testing a G-code program │ │ │ │ │ for the first time. │ │ │ │ │ @@ -3372,15 +3372,15 @@ │ │ │ │ │ Schrittmotor │ │ │ │ │ A type of motor that turns in fixed steps. By counting steps, it is possible to determine how far │ │ │ │ │ the motor has turned. If the load exceeds the torque capability of the motor, it will skip one or │ │ │ │ │ more steps, causing position errors. │ │ │ │ │ TASK (engl. für Aufgabe, auch Name des entsprechenden LinuxCNC Moduls) │ │ │ │ │ The module within LinuxCNC that coordinates the overall execution and interprets the part program. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 71 / 76 │ │ │ │ │ │ │ │ │ │ Tcl/Tk │ │ │ │ │ A scripting language and graphical widget toolkit with which several of LinuxCNCs GUIs and │ │ │ │ │ selection wizards were written. │ │ │ │ │ Traverse Bewegung │ │ │ │ │ @@ -3390,15 +3390,15 @@ │ │ │ │ │ Ganzzahl ohne Vorzeichen │ │ │ │ │ A whole number that has no sign. In HAL it is known as u32. (An unsigned 32-bit integer has a │ │ │ │ │ usable range of zero to 4,294,967,296.) │ │ │ │ │ Weltkoordinaten │ │ │ │ │ This is the absolute frame of reference. It gives coordinates in terms of a fixed reference frame │ │ │ │ │ that is attached to some point (generally the base) of the machine tool. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 72 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 10 │ │ │ │ │ │ │ │ │ │ Juristischer Abschnitt │ │ │ │ │ Die Übersetzungen dieser Datei im Quellbaum sind nicht rechtsverbindlich. │ │ │ │ │ @@ -3427,15 +3427,15 @@ │ │ │ │ │ für freie Software ist. │ │ │ │ │ Wir haben diese Lizenz entworfen, um sie für Handbücher für freie Software zu verwenden, weil freie │ │ │ │ │ Software freie Dokumentation braucht: ein freies Programm sollte mit Handbüchern geliefert werden, │ │ │ │ │ welche die gleichen Freiheiten bieten wie die Software. Aber diese Lizenz ist nicht auf SoftwareHandbücher beschränkt; sie kann für jedes textliche Werk verwendet werden, unabhängig vom Thema │ │ │ │ │ oder ob es als gedrucktes Buch veröffentlicht wird. Wir empfehlen diese Lizenz in erster Linie für │ │ │ │ │ Werke, deren Zweck die Anleitung oder das Nachschlagen ist. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 73 / 76 │ │ │ │ │ │ │ │ │ │ 1. APPLICABILITY AND DEFINITIONS │ │ │ │ │ Diese Lizenz gilt für jedes Handbuch oder andere Werk, das einen Hinweis des Urheberrechtsinhabers │ │ │ │ │ enthält, der besagt, dass es unter den Bedingungen dieser Lizenz verbreitet werden darf. Das ”Dokument”, unten, bezieht sich auf ein solches Handbuch oder Werk. Jedes Mitglied der Öffentlichkeit ist │ │ │ │ │ ein Lizenznehmer und wird als ”Sie” angesprochen. │ │ │ │ │ @@ -3469,15 +3469,15 @@ │ │ │ │ │ oder nicht kommerziell, vorausgesetzt, dass diese Lizenz, die Urheberrechtsvermerke und der Lizenzvermerk, der besagt, dass diese Lizenz für das Dokument gilt, in allen Kopien wiedergegeben │ │ │ │ │ werden, und dass Sie keine weiteren Bedingungen zu denen dieser Lizenz hinzufügen. Sie dürfen keine technischen Maßnahmen anwenden, um das Lesen oder weitere Kopieren der von Ihnen erstellten │ │ │ │ │ oder verbreiteten Kopien zu behindern oder zu kontrollieren. Sie dürfen jedoch eine Vergütung im │ │ │ │ │ Austausch für Kopien annehmen. Wenn Sie eine ausreichend große Anzahl von Kopien verbreiten, │ │ │ │ │ müssen Sie auch die Bedingungen in Abschnitt 3 einhalten. │ │ │ │ │ Sie können auch Kopien unter den oben genannten Bedingungen ausleihen und öffentlich ausstellen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 74 / 76 │ │ │ │ │ │ │ │ │ │ 3. COPYING IN QUANTITY │ │ │ │ │ Wenn Sie mehr als 100 gedruckte Exemplare des Dokuments veröffentlichen und der Lizenzhinweis │ │ │ │ │ des Dokuments Umschlagtexte verlangt, müssen Sie die Exemplare in Umschläge einlegen, die deutlich und lesbar alle diese Umschlagtexte enthalten: Vorderseitentexte auf dem vorderen Umschlag │ │ │ │ │ und Rückseitentexte auf dem hinteren Umschlag. Auf beiden Umschlägen müssen Sie außerdem deutlich und leserlich als Verleger dieser Exemplare ausgewiesen sein. Der vordere Umschlag muss den │ │ │ │ │ @@ -3515,15 +3515,15 @@ │ │ │ │ │ bei. I. Behalten Sie den Abschnitt mit dem Titel Geschichte” und seinen Titel bei und fügen Sie │ │ │ │ │ ihm einen Punkt hinzu, der mindestens den Titel, das Jahr, die neuen Autoren und den Herausgeber der modifizierten Version angibt, wie auf der Titelseite angegeben. Wenn es keinen Abschnitt │ │ │ │ │ mit dem Titel ”Geschichte” in dem Dokument gibt, erstellen Sie einen, der den Titel, das Jahr, │ │ │ │ │ die Autoren und den Herausgeber des Dokuments angibt, wie auf der Titelseite angegeben, und │ │ │ │ │ fügen Sie dann einen Punkt hinzu, der die geänderte Version beschreibt, wie im vorherigen Satz │ │ │ │ │ angegeben. J. Bewahren Sie den im Dokument angegebenen Netzwerkstandort, falls vorhanden, │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 75 / 76 │ │ │ │ │ │ │ │ │ │ für den öffentlichen Zugang zu einer transparenten Kopie des Dokuments auf, und ebenso die im │ │ │ │ │ Dokument angegebenen Netzwerkstandorte für frühere Versionen, auf denen es basierte. Diese │ │ │ │ │ können im Abschnitt ”Historie” abgelegt werden. Sie können eine Netzwerkadresse für ein Werk │ │ │ │ │ weglassen, das mindestens vier Jahre vor dem Dokument selbst veröffentlicht wurde, oder wenn │ │ │ │ │ @@ -3563,15 +3563,15 @@ │ │ │ │ │ You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that │ │ │ │ │ is included in the collection, provided that you follow the rules of this License for verbatim copying of │ │ │ │ │ each of the documents in all other respects. │ │ │ │ │ You may extract a single document from such a collection, and distribute it individually under this │ │ │ │ │ License, provided you insert a copy of this License into the extracted document, and follow this License │ │ │ │ │ in all other respects regarding verbatim copying of that document. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.3, 07 Jul 2024 │ │ │ │ │ + Entwickler-Handbuch V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 76 / 76 │ │ │ │ │ │ │ │ │ │ 7. AGGREGATION WITH INDEPENDENT WORKS │ │ │ │ │ A compilation of the Document or its derivatives with other separate and independent documents or │ │ │ │ │ works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified │ │ │ │ │ Version of the Document, provided no compilation copyright is claimed for the compilation. Such a │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ │┄ Document info │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ CreationDate: 'D:20240707120933Z' │ │ │ │ │ Creator: 'DBLaTeX-0.3.12' │ │ │ │ │ Producer: 'xdvipdfmx (20240305)' │ │ │ │ │ -Title: 'LinuxCNC V2.9.3, 07 Jul 2024' │ │ │ │ │ +Title: 'LinuxCNC V2.9.3, 08 Jul 2024' │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ -LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ +LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ ii │ │ │ │ │ │ │ │ │ │ Inhaltsverzeichnis │ │ │ │ │ │ │ │ │ │ I Erste Schritte & Konfiguration │ │ │ │ │ │ │ │ │ │ @@ -114,15 +114,15 @@ │ │ │ │ │ │ │ │ │ │ 8 │ │ │ │ │ │ │ │ │ │ 1.3.2.1 Raspberry Pi Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 8 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ iii │ │ │ │ │ │ │ │ │ │ 1.3.2.2 AMD-64 (x86-64, PC) Image using GUI tools │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ @@ -284,15 +284,15 @@ │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ 1.6.4 Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ iv │ │ │ │ │ │ │ │ │ │ 1.6.5 Module auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ @@ -447,15 +447,15 @@ │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ 2.3.2.2 Feed Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ v │ │ │ │ │ │ │ │ │ │ 2.3.2.3 Tool Radius Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ @@ -613,15 +613,15 @@ │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ 2.5.3.3 Optionaler Programm-Stopp-Schalter . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ vi │ │ │ │ │ │ │ │ │ │ 2.5.4 Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ @@ -779,15 +779,15 @@ │ │ │ │ │ │ │ │ │ │ 75 │ │ │ │ │ │ │ │ │ │ 2.7.13Hole And Small Shape Cutting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 75 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ vii │ │ │ │ │ │ │ │ │ │ 2.7.14I/O Pins For Plasma Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 76 │ │ │ │ │ │ │ │ │ │ @@ -941,15 +941,15 @@ │ │ │ │ │ │ │ │ │ │ 97 │ │ │ │ │ │ │ │ │ │ 3.1.8.3 Determining Spindle Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 97 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ viii │ │ │ │ │ │ │ │ │ │ 3.1.9 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 98 │ │ │ │ │ │ │ │ │ │ @@ -1014,15 +1014,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ │ │ │ │ │ 4.1.4.6 Manuelle Abstimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ 4.1.5 RTAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ 4.1.5.1 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ ix │ │ │ │ │ │ │ │ │ │ 4.2 Latency Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ 4.2.1 What is latency? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ 4.2.2 Latency Tests │ │ │ │ │ │ │ │ │ │ @@ -1070,15 +1070,15 @@ │ │ │ │ │ │ │ │ │ │ 4.4.2.11 [KINS] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 │ │ │ │ │ 4.4.2.12 [AXIS_] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 │ │ │ │ │ 4.4.2.13 [JOINT_] Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 │ │ │ │ │ 4.4.2.14 [SPINDLE_] Section(s)) . . . . . . . . . . . . . . . . . . . . . . . . . . 170 │ │ │ │ │ 4.4.2.15 [EMCIO] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ x │ │ │ │ │ │ │ │ │ │ 4.5 Konfiguration der Referenzfahrt (engl. homing) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . 172 │ │ │ │ │ │ │ │ │ │ @@ -1131,15 +1131,15 @@ │ │ │ │ │ 4.8.2 Sherline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.3 Xylotex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.4 Maschineninformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.5 Informationen zur Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.6 Mechanische Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 │ │ │ │ │ 4.9 Stepper Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xi │ │ │ │ │ │ │ │ │ │ 4.9.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 │ │ │ │ │ 4.9.2 Maximale Schrittgeschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 │ │ │ │ │ 4.9.3 Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 │ │ │ │ │ 4.9.3.1 Standard-Pinbelegung HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 │ │ │ │ │ @@ -1177,15 +1177,15 @@ │ │ │ │ │ 5.1.3.4 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.4 HAL Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 │ │ │ │ │ 5.1.5 HAL components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 │ │ │ │ │ 5.1.6 Timing Issues In HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 │ │ │ │ │ 5.2 HAL Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xii │ │ │ │ │ │ │ │ │ │ 5.2.1 HAL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 │ │ │ │ │ 5.2.1.1 loadrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 │ │ │ │ │ 5.2.1.2 addf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 │ │ │ │ │ 5.2.1.3 loadusr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 │ │ │ │ │ @@ -1236,15 +1236,15 @@ │ │ │ │ │ 5.4.3.1 Laden einer Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 │ │ │ │ │ 5.4.3.2 Untersuchung der HAL │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 │ │ │ │ │ │ │ │ │ │ 5.4.3.3 Echtzeitcode zum Laufen bringen . . . . . . . . . . . . . . . . . . . . . . . . . 225 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xiii │ │ │ │ │ │ │ │ │ │ 5.4.3.4 Ändern von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 │ │ │ │ │ 5.4.3.5 Speichern der HAL-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . 227 │ │ │ │ │ 5.4.3.6 Halrun beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 │ │ │ │ │ 5.4.3.7 Wiederherstellung der HAL-Konfiguration . . . . . . . . . . . . . . . . . . . . 228 │ │ │ │ │ @@ -1294,15 +1294,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ │ │ │ │ │ 5.6.5 INI-Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ 5.6.5.1 Pins ) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xiv │ │ │ │ │ │ │ │ │ │ 5.7 HAL Component List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 │ │ │ │ │ 5.7.1 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 │ │ │ │ │ 5.7.1.1 User Interfaces (non-realtime) . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 │ │ │ │ │ 5.7.1.2 Motion (non-realtime) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 │ │ │ │ │ @@ -1357,15 +1357,15 @@ │ │ │ │ │ 5.8.5.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ 5.8.6 Debounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ 5.8.6.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ 5.8.6.2 Parameter │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xv │ │ │ │ │ │ │ │ │ │ 5.8.6.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 │ │ │ │ │ 5.8.7 SigGen │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 │ │ │ │ │ @@ -1410,15 +1410,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 │ │ │ │ │ │ │ │ │ │ 5.10HALTCL-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 │ │ │ │ │ 5.10.1Kompatibilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ 5.10.2Haltcl-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xvi │ │ │ │ │ │ │ │ │ │ 5.10.3Haltcl INI-Datei-Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ 5.10.4Konvertieren von HAL-Dateien in Tcl-Dateien . . . . . . . . . . . . . . . . . . . . . . . 304 │ │ │ │ │ 5.10.5Haltcl Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 │ │ │ │ │ 5.10.6Haltcl Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 │ │ │ │ │ @@ -1470,15 +1470,15 @@ │ │ │ │ │ 5.13.1Basic usage example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 │ │ │ │ │ 5.13.2Non-realtime components and delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 │ │ │ │ │ 5.13.3Pins und Parameter erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 │ │ │ │ │ 5.13.3.1Ändern des Präfixes │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xvii │ │ │ │ │ │ │ │ │ │ 5.13.4Lesen und Schreiben von Pins und Parametern . . . . . . . . . . . . . . . . . . . . . . 318 │ │ │ │ │ 5.13.4.1Ansteuerung der Ausgangsstifte (HAL_OUT) . . . . . . . . . . . . . . . . . . 318 │ │ │ │ │ 5.13.4.2Ansteuerung von bidirektionalen (HAL_IO) Pins . . . . . . . . . . . . . . . . 318 │ │ │ │ │ 5.13.5Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 │ │ │ │ │ @@ -1527,15 +1527,15 @@ │ │ │ │ │ 5.15.3Halshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 │ │ │ │ │ 5.15.4Halscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 │ │ │ │ │ 5.15.5Sim-Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 │ │ │ │ │ 5.15.6simulate_probe (Sonde simulieren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 │ │ │ │ │ 5.15.7HAL Histogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 │ │ │ │ │ 5.15.8Halreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xviii │ │ │ │ │ │ │ │ │ │ 6 Hardware-Treiber │ │ │ │ │ │ │ │ │ │ 332 │ │ │ │ │ │ │ │ │ │ @@ -1595,15 +1595,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ │ │ │ │ │ 6.3.6 Status-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ 6.3.6.1 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ 6.3.6.2 RS485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.6.3 EMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xix │ │ │ │ │ │ │ │ │ │ 6.3.6.4 Booten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.6.5 Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.7 RS485 E/A-Erweiterungsmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.7.1 Relais-Ausgangsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 │ │ │ │ │ @@ -1659,15 +1659,15 @@ │ │ │ │ │ 6.7.4 Laden von HostMot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 │ │ │ │ │ 6.7.5 Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.5.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.5.2 Parameter │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xx │ │ │ │ │ │ │ │ │ │ 6.7.6 HostMot2-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.7 Pinbelegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 │ │ │ │ │ 6.7.8 PIN-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 │ │ │ │ │ 6.7.9 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 │ │ │ │ │ @@ -1730,15 +1730,15 @@ │ │ │ │ │ 6.8.5.2 fnct_02_read_discrete_inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.3 fnct_03_read_holding_registers │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ │ │ │ │ │ 6.8.5.4 fnct_04_read_input_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxi │ │ │ │ │ │ │ │ │ │ 6.8.5.5 fnct_05_write_single_coil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.6 fnct_06_write_single_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.7 fnct_15_write_multiple_coils . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 │ │ │ │ │ 6.8.5.8 fnct_16_write_multiple_registers . . . . . . . . . . . . . . . . . . . . . . . . . . 390 │ │ │ │ │ @@ -1786,15 +1786,15 @@ │ │ │ │ │ 6.13.1.4LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.5Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.6PC-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.7Neuerstellung der FPGA-Firmware . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.1.8Für weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.2Pluto-Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxii │ │ │ │ │ │ │ │ │ │ 6.13.2.1Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.2.2Input-Latching und Output-Aktualisierung . . . . . . . . . . . . . . . . . . . . 405 │ │ │ │ │ 6.13.2.3HAL-Funktionen, Pins und Parameter . . . . . . . . . . . . . . . . . . . . . . . 406 │ │ │ │ │ 6.13.2.4Kompatible Treiber-Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 │ │ │ │ │ @@ -1836,15 +1836,15 @@ │ │ │ │ │ 6.17.8Konfigurieren des VFS11 VFD für die Modbus-Nutzung . . . . . . . . . . . . . . . . . 417 │ │ │ │ │ 6.17.8.1Anschließen der seriellen Schnittstelle . . . . . . . . . . . . . . . . . . . . . . 417 │ │ │ │ │ 6.17.8.2Modbus-Einrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 │ │ │ │ │ 6.17.9Hinweis zur Programmierung │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxiii │ │ │ │ │ │ │ │ │ │ 7 Hardware-Beispiele │ │ │ │ │ │ │ │ │ │ 419 │ │ │ │ │ │ │ │ │ │ @@ -1890,15 +1890,15 @@ │ │ │ │ │ 8.2.5.4 Symbol-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 │ │ │ │ │ 8.2.5.5 Das Editor-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 │ │ │ │ │ 8.2.5.6 Konfigurationsfenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 │ │ │ │ │ 8.2.6 SPS Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ 8.2.6.1 KONTAKTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ 8.2.6.2 IEC-TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxiv │ │ │ │ │ │ │ │ │ │ 8.2.6.3 ZEITGLIEDER (engl. timers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 │ │ │ │ │ 8.2.6.4 KIPPSTUFEN (engl. monostables) . . . . . . . . . . . . . . . . . . . . . . . . . 442 │ │ │ │ │ 8.2.6.5 ZÄHLER (engl. counters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 │ │ │ │ │ 8.2.6.6 VERGLEICHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 │ │ │ │ │ @@ -1942,15 +1942,15 @@ │ │ │ │ │ 9.1.3.2 Inverse Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 │ │ │ │ │ 9.1.4 Details zur Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 │ │ │ │ │ 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp . . . . . . . 478 │ │ │ │ │ 9.2 Setting up ”modified” Denavit-Hartenberg (DH) parameters for genserkins . . . . . . . . 478 │ │ │ │ │ 9.2.1 Vorspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 │ │ │ │ │ 9.2.2 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxv │ │ │ │ │ │ │ │ │ │ 9.2.3 Modifizierte DH-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 │ │ │ │ │ 9.2.4 Modifizierte DH-Parameter, wie sie in Genserkins verwendet werden . . . . . . . . 479 │ │ │ │ │ 9.2.5 Nummerierung der Verbindungen und Parameter . . . . . . . . . . . . . . . . . . . . 480 │ │ │ │ │ 9.2.6 Wie fange ich an? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 │ │ │ │ │ @@ -1992,15 +1992,15 @@ │ │ │ │ │ 9.4.4.1 HAL-Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 │ │ │ │ │ 9.4.4.2 G-/M-Code-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 │ │ │ │ │ 9.4.4.3 INI file limit settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 │ │ │ │ │ 9.4.4.4 Überlegungen zum Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 │ │ │ │ │ 9.4.5 Simulationskonfigurationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 │ │ │ │ │ 9.4.6 Kinematische Bestimmungen des Benutzers . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxvi │ │ │ │ │ │ │ │ │ │ 9.4.7 Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ 9.4.8 Code Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ 9.5 PID Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 │ │ │ │ │ 9.5.1 PID-Regler (engl. PID controller) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 │ │ │ │ │ @@ -2037,15 +2037,15 @@ │ │ │ │ │ 9.6.5.8 Fehlerbehandlung: Umgang mit Abbrüchen . . . . . . . . . . . . . . . . . . . 543 │ │ │ │ │ 9.6.5.9 Fehlerbehandlung: Fehlschlagen einer NGC-Prozedur mit neu zugeordnetem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.6 Umschlüsselung anderer bestehender Codes: S, M0, M1, M60 . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.6.1 Automatic gear selection be remapping S (set spindle speed) . . . . . . . . 545 │ │ │ │ │ 9.6.6.2 Anpassen des Verhaltens von M0, M1, M60 . . . . . . . . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.7 Creating new G-code cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxvii │ │ │ │ │ │ │ │ │ │ 9.6.8 Embedded Python konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ 9.6.8.1 Python plugin : INI file configuration . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ 9.6.8.2 Executing Python statements from the interpreter . . . . . . . . . . . . . . . 547 │ │ │ │ │ 9.6.9 Programming Embedded Python in the RS274NGC Interpreter . . . . . . . . . . . . 547 │ │ │ │ │ @@ -2081,15 +2081,15 @@ │ │ │ │ │ 9.6.15.1Warum sollten Sie die Task-Ausführung ändern wollen? . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.15.2Ein Diagramm: task, interp, iocontrol, UI (??) . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16Modelle der Aufgaben (engl. task) -Ausführung . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.1Traditionelle Ausführung von iocontrol/iocontrolv2 . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.2IO-Verfahren neu definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.3Python-Prozeduren zur Ausführungszeit . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxviii │ │ │ │ │ │ │ │ │ │ 9.6.17Eine kurze Übersicht über die LinuxCNC-Programmausführung . . . . . . . . . . . 564 │ │ │ │ │ 9.6.17.1Zustand des Interpreters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.17.2Task and Interpreter interaction, Queuing and Read-Ahead . . . . . . . . . 565 │ │ │ │ │ 9.6.17.3Predicting the machine position . . . . . . . . . . . . . . . . . . . . . . . . . . 565 │ │ │ │ │ @@ -2129,15 +2129,15 @@ │ │ │ │ │ 9.9.4 Related HAL Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 │ │ │ │ │ 9.9.4.1 eoffset_per_angle.comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 │ │ │ │ │ 9.9.5 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6.1 eoffsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6.2 jwp_z.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxix │ │ │ │ │ │ │ │ │ │ 9.9.6.3 dynamische_offsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ 9.9.6.4 opa.ini (eoffset_per_angle) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ @@ -2191,15 +2191,15 @@ │ │ │ │ │ 10.1.8Manueller Werkzeugwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 │ │ │ │ │ 10.1.9Python modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 │ │ │ │ │ 10.1.10 │ │ │ │ │ Using AXIS in Lathe Mode │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxx │ │ │ │ │ │ │ │ │ │ 10.1.11 │ │ │ │ │ Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam cutting mode) 608 │ │ │ │ │ 10.1.12 │ │ │ │ │ Erweiterte Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 │ │ │ │ │ @@ -2274,15 +2274,15 @@ │ │ │ │ │ 10.2GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 │ │ │ │ │ 10.2.1Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 │ │ │ │ │ 10.2.2Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 │ │ │ │ │ 10.2.3How to Get GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 │ │ │ │ │ 10.2.4Basiseinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 │ │ │ │ │ 10.2.4.1Die DISPLAY-Sektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxi │ │ │ │ │ │ │ │ │ │ 10.2.4.2Der TRAJ Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 │ │ │ │ │ 10.2.4.3Makro-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 │ │ │ │ │ 10.2.4.4Embedded Tabs and Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 │ │ │ │ │ 10.2.4.5User Created Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 │ │ │ │ │ @@ -2329,15 +2329,15 @@ │ │ │ │ │ 10.2.11.2 │ │ │ │ │ Simulierte Jog-Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.3 │ │ │ │ │ Einstellungen Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.4 │ │ │ │ │ Simulierte Hardware-Taste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxii │ │ │ │ │ │ │ │ │ │ 10.2.11.5 │ │ │ │ │ Benutzer-Registerkarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.6 │ │ │ │ │ Videos zur Werkzeugvermessung . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ @@ -2380,15 +2380,15 @@ │ │ │ │ │ 10.5.2.2Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.3Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.4Override-Kontrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.5Spindelsteuerungen │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxiii │ │ │ │ │ │ │ │ │ │ 10.5.2.6Jogging-Inkremente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 │ │ │ │ │ 10.5.2.7Jog-Geschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 │ │ │ │ │ 10.5.2.8Dialogsystem für Benutzermeldungen │ │ │ │ │ │ │ │ │ │ @@ -2472,15 +2472,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ │ │ │ │ │ 10.5.17.3 │ │ │ │ │ Registerkarte ”Offsets” │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxiv │ │ │ │ │ │ │ │ │ │ 10.5.17.4 │ │ │ │ │ Registerkarte ”Werkzeug” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ 10.5.17.5 │ │ │ │ │ Registerkarte ”Status” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ @@ -2536,15 +2536,15 @@ │ │ │ │ │ 10.6.8Erstellen eines Unterprogramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 │ │ │ │ │ 10.7TkLinuxCNC GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.1Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.2Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.2.1Eine typische Sitzung mit TkLinuxCNC . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.3Elemente des TkLinuxCNC-Fensters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxv │ │ │ │ │ │ │ │ │ │ 10.7.3.1Die wichtigsten Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 │ │ │ │ │ 10.7.3.2Statusleiste der Offset-Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 │ │ │ │ │ 10.7.3.3Koordinatenanzeigebereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 │ │ │ │ │ 10.7.3.4TkLinuxCNC Interpreter / Automatic Program Control . . . . . . . . . . . . 738 │ │ │ │ │ @@ -2587,15 +2587,15 @@ │ │ │ │ │ 10.8.7.2Contact Bounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 │ │ │ │ │ 10.8.7.3Contact Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 │ │ │ │ │ 10.8.7.4Desktop-Starthilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 │ │ │ │ │ 10.8.7.5QtPlasmaC Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 │ │ │ │ │ 10.8.7.6INI File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 │ │ │ │ │ 10.8.8QtPlasmaC GUI Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxvi │ │ │ │ │ │ │ │ │ │ 10.8.8.1Beenden von QtPlasmaC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 │ │ │ │ │ 10.8.8.2HAUPT (engl. main)-Registerkarte (engl. tab) . . . . . . . . . . . . . . . . . . 765 │ │ │ │ │ 10.8.8.3Preview Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 │ │ │ │ │ 10.8.8.4CONVERSATIONAL Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 │ │ │ │ │ @@ -2653,15 +2653,15 @@ │ │ │ │ │ 10.8.9.29 │ │ │ │ │ Mesh Mode (Expanded Metal Cutting) . . . . . . . . . . . . . . . . . . . . . . 805 │ │ │ │ │ 10.8.9.30 │ │ │ │ │ Ignore Arc OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 │ │ │ │ │ 10.8.9.31 │ │ │ │ │ Cut Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxvii │ │ │ │ │ │ │ │ │ │ 10.8.9.32 │ │ │ │ │ Run From Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 │ │ │ │ │ 10.8.9.33 │ │ │ │ │ Scribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 │ │ │ │ │ @@ -2736,15 +2736,15 @@ │ │ │ │ │ 10.8.15.8 │ │ │ │ │ Zero Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ 10.8.15.9 │ │ │ │ │ Tuning Void Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ 10.8.15.10 │ │ │ │ │ Max Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxviii │ │ │ │ │ │ │ │ │ │ 10.8.15.11 │ │ │ │ │ Enable Tabs During Automated Motion . . . . . . . . . . . . . . . . . . . . . . 840 │ │ │ │ │ 10.8.15.12 │ │ │ │ │ Override Jog Inhibit Via Z+ Jog . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 │ │ │ │ │ @@ -2803,15 +2803,15 @@ │ │ │ │ │ 11.1.3Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 │ │ │ │ │ 11.1.4M2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.1.4.1Beispielprogramm mit G52-Offsets . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2Tool Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2.1Touch-Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2.1.1Verwendung von G10 L1/L10/L11 . . . . . . . . . . . . . . . . . . . . . . . . . 866 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xxxix │ │ │ │ │ │ │ │ │ │ 11.2.2Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 │ │ │ │ │ 11.2.2.1Werkzeugtabellen-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 │ │ │ │ │ 11.2.2.2Tool IO │ │ │ │ │ │ │ │ │ │ @@ -2862,15 +2862,15 @@ │ │ │ │ │ 11.4.13 │ │ │ │ │ Modal Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894 │ │ │ │ │ 11.4.14 │ │ │ │ │ Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 │ │ │ │ │ 11.4.15 │ │ │ │ │ Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xl │ │ │ │ │ │ │ │ │ │ 11.4.16 │ │ │ │ │ Probe Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 │ │ │ │ │ 11.4.17 │ │ │ │ │ Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 │ │ │ │ │ @@ -2942,15 +2942,15 @@ │ │ │ │ │ 11.5.21 │ │ │ │ │ G30, G30.1 Go/Set Predefined Position . . . . . . . . . . . . . . . . . . . . . . . . . . . 918 │ │ │ │ │ 11.5.22 │ │ │ │ │ G33 Spindle Synchronized Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918 │ │ │ │ │ 11.5.23 │ │ │ │ │ G33.1 Rigid Tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xli │ │ │ │ │ │ │ │ │ │ 11.5.24 │ │ │ │ │ G38.n Straight Probe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921 │ │ │ │ │ 11.5.25 │ │ │ │ │ G40 Compensation Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922 │ │ │ │ │ @@ -3029,15 +3029,15 @@ │ │ │ │ │ G87 Back Boring Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.52G88 Boring Cycle, Spindle Stop, Manual Out . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.53G89 Boring Cycle, Dwell, Feed Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.54G90, G91 Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ 11.5.55 │ │ │ │ │ G90.1, G91.1 Arc Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlii │ │ │ │ │ │ │ │ │ │ 11.5.56 │ │ │ │ │ G92 Coordinate System Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ 11.5.57G92.1, G92.2 Reset G92 Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 │ │ │ │ │ 11.5.58 │ │ │ │ │ @@ -3099,15 +3099,15 @@ │ │ │ │ │ │ │ │ │ │ 11.7O Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 │ │ │ │ │ 11.7.1Verwendung von O-Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 │ │ │ │ │ 11.7.2Nummerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ 11.7.3Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ 11.7.4Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xliii │ │ │ │ │ │ │ │ │ │ 11.7.4.1 Fanuc-Style Numbered Programs . . . . . . . . . . . . . . . . . . . . . . . . . 965 │ │ │ │ │ 11.7.5 Looping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967 │ │ │ │ │ 11.7.6 Conditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 │ │ │ │ │ 11.7.7 Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 │ │ │ │ │ @@ -3164,15 +3164,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ │ │ │ │ │ 11.10.4.10 │ │ │ │ │ Abtastmuster (engl. scan pattern) . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ 11.10.4.11 │ │ │ │ │ Scanrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xliv │ │ │ │ │ │ │ │ │ │ 11.10.4.12 │ │ │ │ │ Tiefe (engl. depth) (Einheiten) . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 │ │ │ │ │ 11.10.4.13 │ │ │ │ │ Schrittweite (engl. step over) (Pixel) . . . . . . . . . . . . . . . . . . . . . . . 979 │ │ │ │ │ @@ -3225,15 +3225,15 @@ │ │ │ │ │ 12.2.2Schwebende (engl. floating) Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 │ │ │ │ │ 12.2.3Beispiel für Jog-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 │ │ │ │ │ 12.2.3.1Erstellen der Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 │ │ │ │ │ 12.2.3.2Verbindungen herstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 │ │ │ │ │ 12.2.4Port-Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012 │ │ │ │ │ 12.2.5GS2-Drehzahlmesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlv │ │ │ │ │ │ │ │ │ │ 12.2.5.1Das Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 │ │ │ │ │ 12.2.5.2Die Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 │ │ │ │ │ 12.2.6Referenzfahrt im Eilgang Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 │ │ │ │ │ 12.3GladeVCP: Glade Virtual Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 │ │ │ │ │ @@ -3286,15 +3286,15 @@ │ │ │ │ │ 12.3.6.16 │ │ │ │ │ Bars (engl. für Balken) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 │ │ │ │ │ 12.3.6.17 │ │ │ │ │ Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045 │ │ │ │ │ 12.3.6.18 │ │ │ │ │ HAL_Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlvi │ │ │ │ │ │ │ │ │ │ 12.3.6.19 │ │ │ │ │ Gremlin tool path preview for NGC files . . . . . . . . . . . . . . . . . . . . . 1047 │ │ │ │ │ 12.3.6.20 │ │ │ │ │ HAL_Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 │ │ │ │ │ @@ -3354,15 +3354,15 @@ │ │ │ │ │ 12.3.8.13 │ │ │ │ │ Manuelle Bearbeitung von INI-Dateien (.ini) . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ 12.3.8.14 │ │ │ │ │ Hinzufügen von HAL-Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ 12.3.8.15 │ │ │ │ │ Hinzufügen von Timern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlvii │ │ │ │ │ │ │ │ │ │ 12.3.8.16 │ │ │ │ │ HAL-Widget-Eigenschaften programmatisch einstellen . . . . . . . . . . . . 1079 │ │ │ │ │ 12.3.8.17 │ │ │ │ │ Value-changed callback with hal_glib . . . . . . . . . . . . . . . . . . . . . . . 1079 │ │ │ │ │ @@ -3408,15 +3408,15 @@ │ │ │ │ │ 12.5.5.2IMPORT Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.3Abschnitt INSTANTIATE BIBRARIES . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.4HANDLER CLASS Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.5INITIALIZE Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.6Abschnitt zu BESONDEREN FUNKTIONEN . . . . . . . . . . . . . . . . . . . 1116 │ │ │ │ │ Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlviii │ │ │ │ │ │ │ │ │ │ 12.5.5.7STATUS CALLBACKS Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.8CALLBACKS FROM FORM Abschnitt . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.9GENERAL FUNCTIONS Section . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.10 │ │ │ │ │ @@ -3460,15 +3460,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . 1138 │ │ │ │ │ │ │ │ │ │ 12.7QtVCP Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139 │ │ │ │ │ 12.7.1Nur HAL-Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.1XEmbed - Widget zum Einbetten von Programmen . . . . . . . . . . . . . . . 1140 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ xlix │ │ │ │ │ │ │ │ │ │ 12.7.1.2Slider - HAL-Pin-Wert-Anpassungs-Widget . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.3LED - Indicator Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.4CheckBox Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 │ │ │ │ │ 12.7.1.5RadioButton Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 │ │ │ │ │ @@ -3534,15 +3534,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . 1174 │ │ │ │ │ │ │ │ │ │ 12.7.2.21 │ │ │ │ │ MDILine - MDI-Befehlszeileneingabe-Widget . . . . . . . . . . . . . . . . . . . 1176 │ │ │ │ │ 12.7.2.22 │ │ │ │ │ MDIHistory - MDI-Befehlsverlaufs-Widget . . . . . . . . . . . . . . . . . . . . 1177 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ l │ │ │ │ │ │ │ │ │ │ 12.7.2.23 │ │ │ │ │ MDITouchy - Touchscreen-MDI-Eingabe-Widget . . . . . . . . . . . . . . . . . 1178 │ │ │ │ │ 12.7.2.24 │ │ │ │ │ OriginOffsetView - Ursprungsansicht und Einstellungs-Widget . . . . . . 1180 │ │ │ │ │ @@ -3601,15 +3601,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ │ │ │ │ │ 12.7.6.3Facing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ 12.7.6.4Loch-Kreis (engl. hole circle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ 12.7.6.5Qt NGCGUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 │ │ │ │ │ 12.7.6.6Qt PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ li │ │ │ │ │ │ │ │ │ │ 12.7.6.7Qt Vismach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ 12.8QtVCP Libraries modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ 12.8.1Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206 │ │ │ │ │ 12.8.1.1Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206 │ │ │ │ │ @@ -3653,15 +3653,15 @@ │ │ │ │ │ 12.8.12.2 │ │ │ │ │ Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 │ │ │ │ │ 12.8.12.3 │ │ │ │ │ Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 │ │ │ │ │ 12.8.13 │ │ │ │ │ Virtuelle Tastatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ lii │ │ │ │ │ │ │ │ │ │ 12.8.14 │ │ │ │ │ Toolbar Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ 12.8.14.1 │ │ │ │ │ Aktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ @@ -3727,15 +3727,15 @@ │ │ │ │ │ 12.10.1.4 │ │ │ │ │ Aufräum-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 │ │ │ │ │ 12.10.2 │ │ │ │ │ Custom HAL Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 │ │ │ │ │ 12.10.3 │ │ │ │ │ Benutzerdefinierte Controller-Widgets mit STATUS . . . . . . . . . . . . . . . . . . . . 1240 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ liii │ │ │ │ │ │ │ │ │ │ 12.10.3.1 │ │ │ │ │ In The Imports Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241 │ │ │ │ │ 12.10.3.2 │ │ │ │ │ Im Abschnitt Bibliotheken instanziieren . . . . . . . . . . . . . . . . . . . . . 1242 │ │ │ │ │ @@ -3816,15 +3816,15 @@ │ │ │ │ │ 12.12.5 │ │ │ │ │ Idiosyncrasies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 │ │ │ │ │ 12.12.5.1 │ │ │ │ │ Error Code Collecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 │ │ │ │ │ 12.12.5.2 │ │ │ │ │ Jog Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ liv │ │ │ │ │ │ │ │ │ │ 12.12.5.3 │ │ │ │ │ Keybinding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ 12.12.5.4 │ │ │ │ │ Preference File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ @@ -3873,15 +3873,15 @@ │ │ │ │ │ 13.4.2Beispiel für einen GStat-Code │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ │ │ │ │ │ 13.4.2.1Codemuster für HAL-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ 13.4.2.2GladeVCP Python-Erweiterung Code-Muster . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ lv │ │ │ │ │ │ │ │ │ │ 13.4.2.3QtVCP Python-Erweiterungscode-Muster │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . 1301 │ │ │ │ │ │ │ │ │ │ @@ -3927,23 +3927,23 @@ │ │ │ │ │ │ │ │ │ │ 1330 │ │ │ │ │ │ │ │ │ │ 17.1Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1330 │ │ │ │ │ 17.1.1Namensänderung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331 │ │ │ │ │ 17.1.2Zusätzliche Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 1 / 1331 │ │ │ │ │ │ │ │ │ │ Teil I │ │ │ │ │ │ │ │ │ │ Erste Schritte & Konfiguration │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 2 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 1 │ │ │ │ │ │ │ │ │ │ Erste Schritte mit LinuxCNC │ │ │ │ │ 1.1 About LinuxCNC │ │ │ │ │ @@ -3965,15 +3965,15 @@ │ │ │ │ │ Konfiguration für Ihre Maschine │ │ │ │ │ – eine mit Leiterdiagrammen programmierbare Software-SPS │ │ │ │ │ • Es bietet keine Zeichnungsfunktionen (CAD - Computer Aided Design) oder G-Code-Generierung │ │ │ │ │ aus der Zeichnung (CAM - Computer Automated Manufacturing). │ │ │ │ │ • Er kann bis zu 9 Achsen gleichzeitig bewegen und unterstützt eine Vielzahl von Schnittstellen. │ │ │ │ │ • Die Steuerung kann echte Servos (analog oder PWM) mit der Feedback-Schleife durch die LinuxCNCSoftware auf dem Computer, oder Open-Loop mit Schritt-Servos oder Schrittmotoren betreiben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 3 / 1331 │ │ │ │ │ │ │ │ │ │ • Zu den Funktionen der Bewegungssteuerung gehören: Fräserradius- und Längenkompensation, auf │ │ │ │ │ eine bestimmte Toleranz begrenzte Bahnabweichung, Gewindedrehen, synchronisierte Achsenbewegung, adaptiver Vorschub, Vorschubübersteuerung durch den Bediener und konstante Geschwindigkeitsregelung. │ │ │ │ │ • Unterstützung für nicht-kartesische Bewegungssysteme wird über benutzerdefinierte Kinematikmodule bereitgestellt. Zu den verfügbaren Architekturen gehören Hexapoden (Stewart-Plattformen │ │ │ │ │ und ähnliche Konzepte) und Systeme mit Drehgelenken für die Bewegung wie PUMA- oder SCARARoboter. │ │ │ │ │ @@ -4002,15 +4002,15 @@ │ │ │ │ │ für beide Seiten Zeit spart. │ │ │ │ │ Dateien teilen │ │ │ │ │ Die gängigste Art, Dateien im IRC auszutauschen, besteht darin, die Datei auf einen der folgenden oder einen ähnlichen Dienst hochzuladen und den Link einzufügen: │ │ │ │ │ • For text: https://pastebin.com/, http://pastie.org/, https://gist.github.com/ │ │ │ │ │ • For pictures: https://imagebin.org/, https://imgur.com/, https://bayimg.com/ │ │ │ │ │ • For files: https://filedropper.com/, https://filefactory.com/, https://1fichier.com/ │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 4 / 1331 │ │ │ │ │ │ │ │ │ │ 1.1.3.2 Mailingliste │ │ │ │ │ Eine Internet-Mailingliste ist eine Möglichkeit, Fragen zu stellen, die jeder auf dieser Liste sehen und │ │ │ │ │ nach Belieben beantworten kann. Auf einer Mailingliste können Sie Ihre Fragen besser stellen als │ │ │ │ │ im IRC, aber die Antworten dauern länger. Kurz gesagt: Sie senden eine Nachricht an die Liste und │ │ │ │ │ @@ -4043,15 +4043,15 @@ │ │ │ │ │ LinuxCNC und Debian Linux sollte einigermaßen gut auf einem Computer mit den folgenden minimalen Hardware-Spezifikationen laufen. Diese Zahlen sind nicht das absolute Minimum, sondern wird │ │ │ │ │ eine angemessene Leistung für die meisten Stepper-Systeme geben. │ │ │ │ │ • 700 MHz x86-Prozessor (1,2 GHz x86-Prozessor empfohlen) oder Raspberry Pi 4 oder besser. │ │ │ │ │ • LinuxCNC 2.8 or later from the Live CD expects a 64-bit capable system. │ │ │ │ │ • 512 MB of RAM, 4 GB with GUI to avoid surprises │ │ │ │ │ • No hard disk for Live CD, 8 GB or more for permanent installation │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 5 / 1331 │ │ │ │ │ │ │ │ │ │ • Graphics card capable of at least 1024x768 resolution, which is not using the NVidia or ATI fglrx │ │ │ │ │ proprietary drivers. Modern onboard graphic chipsets seem to generally be OK. │ │ │ │ │ • Internet connection (not strictly needed, but very useful for updates and for communicating with │ │ │ │ │ the LinuxCNC community) │ │ │ │ │ @@ -4086,15 +4086,15 @@ │ │ │ │ │ RTAI ist seit vielen Jahren die Hauptstütze der LinuxCNC-Distributionen. Es wird in der Regel die │ │ │ │ │ beste Echtzeit-Leistung in Bezug auf niedrige Latenz, aber möglicherweise schlechtere PeripherieUnterstützung und nicht so viele Bildschirmauflösungen haben. Ein RTAI-Kernel ist im LinuxCNCPaket-Repository verfügbar. Wenn Sie aus dem Live/Install-Image installiert haben, wird der Wechsel │ │ │ │ │ zwischen Kernel und LinuxCNC-Flavour in [Installing-RTAI] beschrieben. │ │ │ │ │ 1.2.2.3 Xenomai mit linuxcnc-uspace Paket │ │ │ │ │ Xenomai wird auch unterstützt, aber Sie müssen den Kernel finden oder bauen und LinuxCNC aus │ │ │ │ │ den Quellen kompilieren, um es zu nutzen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 6 / 1331 │ │ │ │ │ │ │ │ │ │ 1.2.2.4 RTAI mit linuxcnc-uspace-Paket │ │ │ │ │ It is also possible to run LinuxCNC with RTAI in user-space mode. As with Xenomai you will need to │ │ │ │ │ compile from source to do this. │ │ │ │ │ │ │ │ │ │ @@ -4126,15 +4126,15 @@ │ │ │ │ │ 2. Schreiben Sie das Image auf ein USB-Speichergerät oder eine DVD. │ │ │ │ │ 3. Booten Sie das Live-System, um LinuxCNC zu testen. │ │ │ │ │ 4. Booten Sie das Installationsprogramm, um LinuxCNC zu installieren. │ │ │ │ │ │ │ │ │ │ 1.3.1 Das Festplattenabbild (engl. kurz image) herunterladen │ │ │ │ │ This section describes some methods for downloading the Live/Install image. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 7 / 1331 │ │ │ │ │ │ │ │ │ │ 1.3.1.1 Normales Herunterladen │ │ │ │ │ Software for LinuxCNC to download is presented on the project’s Downloads page. Most users will aim │ │ │ │ │ for the disk image for Intel/AMD PCs, the URL will resemble https://www.linuxcnc.org/iso/linuxcnc_2.9.2amd64.hybrid.iso. │ │ │ │ │ For the Raspberry Pi, multiple images are provided to address differences between the RPi4 and RPi5. │ │ │ │ │ @@ -4171,15 +4171,15 @@ │ │ │ │ │ md5sum: 4547e8a72433efb033f0a5cf166a5cd2 │ │ │ │ │ sha256sum: ff3ba9b8dfb93baf1e2232746655f8521a606bc0fab91bffc04ba74cc3be6bf0 │ │ │ │ │ │ │ │ │ │ Überprüfen Sie md5sum auf Windows oder Mac Windows und Mac OS X werden nicht mit einem │ │ │ │ │ md5sum-Programm ausgeliefert, aber es gibt Alternativen. Weitere Informationen finden Sie unter: │ │ │ │ │ How To MD5SUM │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 8 / 1331 │ │ │ │ │ │ │ │ │ │ 1.3.2 Schreiben des Abbilds auf ein bootfähiges Gerät │ │ │ │ │ The LinuxCNC Live/Install ISO Image is a hybrid ISO image which can be written directly to a USB │ │ │ │ │ storage device (flash drive) or a DVD and used to boot a computer. The image is too large to fit on a │ │ │ │ │ CD. │ │ │ │ │ @@ -4211,15 +4211,15 @@ │ │ │ │ │ │ │ │ │ │ 4. Transfer the data with dd, as for Linux above. Note that the disk name has an added ”r” at the │ │ │ │ │ begining │ │ │ │ │ sudo dd if=/linuxcnc_2.9.2-amd64.hybrid.iso of=/dev/rdiskN bs=1m │ │ │ │ │ │ │ │ │ │ 5. Bitte beachten Sie, dass dieser Vorgang sehr lange dauern kann und dass Sie während des Vorgangs keine Rückmeldung erhalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 9 / 1331 │ │ │ │ │ │ │ │ │ │ Schreiben des Abbilds auf eine DVD unter Linux │ │ │ │ │ 1. Legen Sie einen DVD-Rohling in Ihren Brenner ein. Ein Fenster ”CD/DVD Creator” oder ”Disc-Typ │ │ │ │ │ auswählen” wird angezeigt. Schließen Sie es, da wir es nicht verwenden werden. │ │ │ │ │ 2. Suchen Sie das heruntergeladene Bild im Dateibrowser. │ │ │ │ │ @@ -4251,15 +4251,15 @@ │ │ │ │ │ An diesem Punkt ist es nur wirklich sinnvoll, eine ”sim” Konfiguration zu wählen. Einige der Beispielkonfigurationen enthalten auf dem Bildschirm 3D simulierte Maschinen, suchen Sie nach ”Vismach”, │ │ │ │ │ um diese zu sehen. │ │ │ │ │ Um festzustellen, ob Ihr Computer für die Erzeugung von Software-Schrittimpulsen geeignet ist, führen Sie den Latenztest wie folgt aus: here. │ │ │ │ │ At the time of writing the Live Image is only available with the preempt-rt kernel and a matching │ │ │ │ │ LinuxCNC. On some hardware this might not offer good enough latency. There is an experimental │ │ │ │ │ version available using the RTAI realtime kernel which will often give better latency. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 10 / 1331 │ │ │ │ │ │ │ │ │ │ 1.3.4 LinuxCNC installieren │ │ │ │ │ To install LinuxCNC from the Live CD select Install (Graphical) at bootup. │ │ │ │ │ │ │ │ │ │ 1.3.5 Updates to LinuxCNC │ │ │ │ │ @@ -4347,15 +4347,15 @@ │ │ │ │ │ Maschinensteuerung │ │ │ │ │ und -simulation │ │ │ │ │ Maschinensteuerung │ │ │ │ │ und -simulation │ │ │ │ │ machine control │ │ │ │ │ simulation ONLY │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 11 / 1331 │ │ │ │ │ │ │ │ │ │ Preempt-RT-Kernel The Preempt-rt kernels are available for Debian from the regular debian.org │ │ │ │ │ archive. The package is called linux-image-rt-*. Simply install the package in the same way as any │ │ │ │ │ other package from the Synaptic Package manager or with apt-get at the command-line. │ │ │ │ │ RTAI-Kernel Die RTAI-Kernel stehen im linuxcnc.org-Debian-Archiv zum Download bereit. Die aptQuelle ist: │ │ │ │ │ @@ -4386,15 +4386,15 @@ │ │ │ │ │ 1. Install the Preempt-RT kernel and modules │ │ │ │ │ sudo apt-get install linux-image-rt-amd64 │ │ │ │ │ │ │ │ │ │ 2. Re-boot, and select the Linux 6.1.0-10-rt-amd64 kernel. The exact kernel version might be different, look for the ”-rt” suffix. This might be hidden in the ”Advanced options for Debian Bookworm” sub-menu in Grub. When you log in, verify that ̀PREEMPT RT ̀is reported by the following │ │ │ │ │ command. │ │ │ │ │ uname -v │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 12 / 1331 │ │ │ │ │ │ │ │ │ │ 3. Öffnen Sie Menü Anwendungen > System > Synaptic Package Manager, suchen Sie nach linuximage und klicken Sie mit der rechten Maustaste auf das ursprüngliche Nicht-rt und wählen │ │ │ │ │ Sie ”Zur vollständigen Entfernung markieren”. Neu starten. Damit wird das System gezwungen, │ │ │ │ │ vom RT-Kernel zu booten. Wenn Sie es vorziehen, beide Kernel beizubehalten, müssen die anderen Kernel nicht gelöscht werden, aber es sind Änderungen an der Grub-Boot-Konfiguration │ │ │ │ │ erforderlich, die den Rahmen dieses Dokuments sprengen. │ │ │ │ │ @@ -4424,15 +4424,15 @@ │ │ │ │ │ │ │ │ │ │ 1.4 Running LinuxCNC │ │ │ │ │ 1.4.1 Aufrufen von LinuxCNC │ │ │ │ │ Nach der Installation startet LinuxCNC wie jedes andere Linux-Programm: Führen Sie es aus dem │ │ │ │ │ terminal aus, indem Sie den Befehl linuxcnc eingeben, oder wählen Sie es im Menü Anwendungen -> │ │ │ │ │ CNC aus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 13 / 1331 │ │ │ │ │ │ │ │ │ │ 1.4.2 Configuration Launcher │ │ │ │ │ Beim Starten von LinuxCNC (aus dem CNC-Menü oder von der Kommandozeile ohne Angabe einer │ │ │ │ │ INI-Datei) startet der Dialog Kofigurations-Auswahl. │ │ │ │ │ Im Dialogfeld ”Konfigurationsauswahl” kann der Benutzer eine seiner vorhandenen Konfigurationen │ │ │ │ │ @@ -4464,15 +4464,15 @@ │ │ │ │ │ • tklinuxcnc - Keyboard and Mouse GUI (no longer maintained) │ │ │ │ │ • touchy - Touchscreen-GUI │ │ │ │ │ • woodpecker - Touch Screen GUI A GUI configuration directory may contain subdirectories with │ │ │ │ │ configurations that illustrate special situations or the embedding of other applications. │ │ │ │ │ Die by_interface-Konfigurationen sind um gängige, unterstützte Schnittstellen herum organisiert: │ │ │ │ │ • allgemeine Mechatronik │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 14 / 1331 │ │ │ │ │ │ │ │ │ │ • mesa │ │ │ │ │ • parport │ │ │ │ │ • pico │ │ │ │ │ • pluto │ │ │ │ │ @@ -4504,15 +4504,15 @@ │ │ │ │ │ • parport - Anwendungen zum Testen von parport. │ │ │ │ │ • pyvcp - Beispiele für pyvcp-Anwendungen. │ │ │ │ │ • xhc-hb04 – Anwendungen zum Testen eines drahtlosen USB-MPG xhc-hb04 │ │ │ │ │ Anmerkung │ │ │ │ │ Im Verzeichnis Apps werden nur Anwendungen zum Kopieren in das Benutzerverzeichnis angeboten, │ │ │ │ │ die vom Benutzer sinnvollerweise geändert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 15 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 1.1: LinuxCNC-Konfigurationsauswahl │ │ │ │ │ Klicken Sie auf eine der aufgelisteten Konfigurationen, um spezifische Informationen zu ihr anzuzeigen. Doppelklicken Sie auf eine Konfiguration oder klicken Sie auf OK, um die Konfiguration zu │ │ │ │ │ starten. │ │ │ │ │ Wählen Sie ”Desktop-Verknüpfung erstellen” und klicken Sie dann auf ”OK”, um ein Symbol auf dem │ │ │ │ │ @@ -4527,15 +4527,15 @@ │ │ │ │ │ Konfiguration finden Sie im Integrator-Handbuch. │ │ │ │ │ │ │ │ │ │ 1.4.4 Simulator-Konfigurationen │ │ │ │ │ Alle unter Beispielkonfigurationen/Sim aufgeführten Konfigurationen können auf jedem Computer │ │ │ │ │ ausgeführt werden. Es ist keine spezielle Hardware erforderlich und Echtzeitunterstützung ist nicht │ │ │ │ │ notwendig. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 16 / 1331 │ │ │ │ │ │ │ │ │ │ Diese Konfigurationen sind nützlich, um einzelne Fähigkeiten oder Optionen zu untersuchen. Die │ │ │ │ │ Sim-Konfigurationen sind nach der in der Demonstration verwendeten grafischen Benutzeroberfläche geordnet. Das Verzeichnis für die Achse enthält die meisten Auswahlmöglichkeiten und Unterverzeichnisse, da es sich um die am häufigsten getestete grafische Benutzeroberfläche handelt. Die │ │ │ │ │ Fähigkeiten, die mit einer bestimmten grafischen Benutzeroberfläche demonstriert werden, sind möglicherweise auch in anderen grafischen Benutzeroberflächen verfügbar. │ │ │ │ │ │ │ │ │ │ @@ -4570,15 +4570,15 @@ │ │ │ │ │ To upgrade LinuxCNC from a version older than 2.8, you have to first upgrade your old install to 2.8, │ │ │ │ │ then follow these instructions to upgrade to the new version. │ │ │ │ │ Wenn Sie keine alte Version von LinuxCNC zu aktualisieren haben, dann sind Sie am besten aus │ │ │ │ │ machen eine frische Installation der neuen Version, wie im Abschnitt LinuxCNC erhalten beschrieben. │ │ │ │ │ Darüber hinaus ist es unter Ubuntu Precise oder Debian Wheezy eine Überlegung wert, ein Backup │ │ │ │ │ des ”linuxcnc”-Verzeichnisses auf einem Wechselmedium vorzunehmen und eine Neuinstallaion des │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 17 / 1331 │ │ │ │ │ │ │ │ │ │ neuesn Betriebsystems und der LinuxCNC version durchzuführen, da diese Versionen des OS 2017 │ │ │ │ │ bzw. 2018 ausliefen. Wenn Sie Ubuntu Lucid nutzen, dann werden Sie dies tun müssen, da Lucid nicht │ │ │ │ │ mehr von LinuxCNC unterstützt wird (es war EOL im Jahr 2013). │ │ │ │ │ To upgrade major versions like 2.8 to 2.9 when you have a network connection at the machine you need │ │ │ │ │ @@ -4618,15 +4618,15 @@ │ │ │ │ │ ∗ Klicken Sie in Synaptic auf das Menü Einstellungen und dann auf Repositories, um das │ │ │ │ │ Fenster Softwarequellen zu öffnen. │ │ │ │ │ • Wählen Sie im Fenster ”Software-Quellen” die Registerkarte ”Andere Software”. │ │ │ │ │ • Löschen oder deaktivieren Sie alle alten linuxcnc.org-Einträge (lassen Sie alle nicht-linuxcnc.orgZeilen unverändert). │ │ │ │ │ • Klicken Sie auf die Schaltfläche ”Hinzufügen” und fügen Sie eine neue apt-Zeile hinzu. Die Zeile │ │ │ │ │ wird auf den verschiedenen Plattformen etwas anders aussehen: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 18 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 1.2: Tabular overview on variants of the Operating │ │ │ │ │ System and the corresponding configuration of the repository. The configuration can be performed in the GUI of │ │ │ │ │ the package manager or in the file /etc/apt/sources.list. │ │ │ │ │ OS / Realtime Version │ │ │ │ │ @@ -4639,29 +4639,29 @@ │ │ │ │ │ Repository │ │ │ │ │ deb https://linuxcnc.org buster base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org buster base 2.9-rt │ │ │ │ │ deb https://linuxcnc.org bullseye base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org bookworm base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org bookworm base 2.9-rt │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 19 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 1.2: Figure with a screenshot of the repository configuration of the synaptic package manager. │ │ │ │ │ • Klicken Sie im Fenster ”Softwarequellen” auf ”Quelle hinzufügen” und dann auf ”Schließen”. Wenn │ │ │ │ │ ein Fenster angezeigt wird, das Sie darüber informiert, dass die Informationen über die verfügbare │ │ │ │ │ Software veraltet sind, klicken Sie auf die Schaltfläche ”Neu laden”. │ │ │ │ │ 1.5.1.2 Upgrade auf die neue Version │ │ │ │ │ Da Ihr Computer nun weiß, wo er die neue Version der Software erhält, müssen wir sie nun installieren. │ │ │ │ │ Der Prozess unterscheidet sich wiederum je nach Plattform. │ │ │ │ │ Debian uses the Synaptic Package Manager. │ │ │ │ │ • Öffnen Sie Synaptic gemäß den Anweisungen in Festlegen der apt sources oben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 20 / 1331 │ │ │ │ │ │ │ │ │ │ • Klicken Sie auf die Schaltfläche ”Neu laden”. │ │ │ │ │ • Verwenden Sie die Suchfunktion, um nach linuxcnc zu suchen. │ │ │ │ │ • Das Paket heißt „linuxcnc“ für RTAI-Kernel und „linuxcnc-uspace“ für preempt-rt. │ │ │ │ │ • Click the check box to mark the new linuxcnc and linuxcnc-doc-* packages for upgrade. The package │ │ │ │ │ @@ -4697,15 +4697,15 @@ │ │ │ │ │ sudo dpkg -i linuxcnc_2.9.2.deb │ │ │ │ │ │ │ │ │ │ 1.5.3 Updating Configuration Files for 2.9 │ │ │ │ │ 1.5.3.1 Stricter handling of pluggable interpreters │ │ │ │ │ If you just run regular G-code and you don’t know what a pluggable interpreter is, then this section │ │ │ │ │ does not affect you. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 21 / 1331 │ │ │ │ │ │ │ │ │ │ A seldom-used feature of LinuxCNC is support for pluggable interpreters, controlled by the undocumented [TASK]INTERPRETER INI setting. │ │ │ │ │ Versions of LinuxCNC before 2.9.0 used to handle an incorrect [TASK]INTERPRETER setting by automatically falling back to using the default G-code interpreter. │ │ │ │ │ Since 2.9.0, an incorrect [TASK]INTERPRETER value will cause LinuxCNC to refuse to start up. Fix this │ │ │ │ │ condition by deleting the [TASK]INTERPRETER setting from your INI file, so that LinuxCNC will use │ │ │ │ │ @@ -4736,15 +4736,15 @@ │ │ │ │ │ 1.5.5.1 Non-Realtime │ │ │ │ │ │ │ │ │ │ mdro mqtt-publisher pi500_vfd pmx485-test qtplasmac-cfg2prefs qtplasmac-materials qtplasmac-plasmac2q │ │ │ │ │ qtplasmac-setup sim-torch svd-ps_vfd │ │ │ │ │ 1.5.5.2 Echtzeit │ │ │ │ │ anglejog div2 enum filter_kalman flipflop hal_parport homecomp limit_axis mesa_uart millturn scaled_s32_sums tof ton │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 22 / 1331 │ │ │ │ │ │ │ │ │ │ 1.5.6 New Drivers │ │ │ │ │ A framework for controlling ModBus devices using the serial ports on many Mesa cards has been │ │ │ │ │ introduced. http://linuxcnc.org/docs/2.9/html/drivers/mesa_modbus.html │ │ │ │ │ A new GPIO driver for any GPIO which is supported by the gpiod library is now included: http://linuxcnc.org/docs/2.9/html/drivers/hal_gpio.html │ │ │ │ │ @@ -4771,15 +4771,15 @@ │ │ │ │ │ Wenn Sie LinuxCNC mit der Ubuntu LiveCD installieren, ist die Voreinstellung, dass Sie sich jedes Mal │ │ │ │ │ anmelden müssen, wenn Sie den Computer einschalten. Um die automatische Anmeldung zu aktivieren, gehen Sie zu System > Administration > Login Window. Wenn es sich um eine Neuinstallation │ │ │ │ │ handelt, kann es eine oder drei Sekunden dauern, bis das Anmeldefenster erscheint. Sie benötigen Ihr │ │ │ │ │ Passwort, das Sie bei der Installation verwendet haben, um Zugang zum Fenster ”Einstellungen für │ │ │ │ │ das Anmeldefenster” zu erhalten. Aktivieren Sie auf der Registerkarte Sicherheit das Kontrollkästchen Automatische Anmeldung aktivieren und wählen Sie einen Benutzernamen aus der Liste (das │ │ │ │ │ wären Sie). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 23 / 1331 │ │ │ │ │ │ │ │ │ │ 1.6.2 Automatisches Starten │ │ │ │ │ Um LinuxCNC automatisch mit Ihrer Konfiguration nach dem Einschalten des Computers starten zu │ │ │ │ │ lassen, gehen Sie zu System > Preferences > Sessions > Startup Applications, klicken Sie auf Add. │ │ │ │ │ Navigieren Sie zu Ihrer Konfiguration und wählen Sie die .ini-Datei aus. Wenn sich der Dateiauswahldialog schließt, fügen Sie linuxcnc und ein Leerzeichen vor dem Pfad zu Ihrer .ini-Datei hinzu. │ │ │ │ │ @@ -4817,15 +4817,15 @@ │ │ │ │ │ Wenn Sie die Ausgabe von lsmod in eine Textdatei in einem Terminalfenster senden wollen, geben Sie │ │ │ │ │ ein: │ │ │ │ │ lsmod > mymod.txt │ │ │ │ │ │ │ │ │ │ Die resultierende Textdatei befindet sich im Home-Verzeichnis, wenn Sie beim Öffnen des TerminalFensters das Verzeichnis nicht gewechselt haben, und trägt den Namen mymod.txt oder den von Ihnen │ │ │ │ │ gewählten Namen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 24 / 1331 │ │ │ │ │ │ │ │ │ │ 1.6.6 Bearbeiten einer root-Datei │ │ │ │ │ Wenn Sie den Dateibrowser öffnen und sehen, dass der Eigentümer der Datei root ist, müssen Sie zusätzliche Schritte unternehmen, um diese Datei zu bearbeiten. Die Bearbeitung einiger root-Dateien │ │ │ │ │ kann zu schlechten Ergebnissen führen. Seien Sie vorsichtig, wenn Sie root-Dateien bearbeiten. Im │ │ │ │ │ Allgemeinen können Sie die meisten root-Dateien öffnen und anzeigen, aber sie bleiben schreibgeschützt. │ │ │ │ │ @@ -4855,15 +4855,15 @@ │ │ │ │ │ Um das Arbeitsverzeichnis in das eine Ebene höher liegende Verzeichnis, d.h. das übergeordnete │ │ │ │ │ Verzeichnis, zu wechseln, geben Sie im Terminalfenster ein: │ │ │ │ │ cd .. │ │ │ │ │ │ │ │ │ │ Um im Terminalfenster eine Ebene höher zu gehen, geben Sie ein: │ │ │ │ │ cd ../.. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 25 / 1331 │ │ │ │ │ │ │ │ │ │ Um direkt in Ihr Heimatverzeichnis zu wechseln, geben Sie im Terminalfenster den Befehl cd ohne │ │ │ │ │ Argumente ein: │ │ │ │ │ cd │ │ │ │ │ │ │ │ │ │ @@ -4902,15 +4902,15 @@ │ │ │ │ │ │ │ │ │ │ Dies findet alle Dateien, die den zu suchenden Text enthalten, im aktuellen Verzeichnis und allen Unterverzeichnissen darunter, wobei die Groß- und Kleinschreibung ignoriert wird. Die Option -i steht │ │ │ │ │ für Ignorieren der Groß- und Kleinschreibung und die Option -r für Rekursiv (schließt alle Unterverzeichnisse in die Suche ein). Die Option -l gibt eine Liste der Dateinamen zurück, wenn Sie die Option │ │ │ │ │ -l auslassen, erhalten Sie auch den Text, in dem jedes Vorkommen des zu suchenden Textes gefunden │ │ │ │ │ wird. Der * ist ein Platzhalter für die Suche in allen Dateien. Weitere Informationen finden Sie in der │ │ │ │ │ Manpage zu grep. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 26 / 1331 │ │ │ │ │ │ │ │ │ │ 1.6.7.6 Diagnosemeldungen │ │ │ │ │ Um die Diagnosemeldungen anzuzeigen, verwenden Sie ”dmesg” im Befehlsfenster. Um die Diagnosemeldungen in einer Datei zu speichern, verwenden Sie den Umleitungsoperator >, etwa so: │ │ │ │ │ dmesg > bootmsg.txt │ │ │ │ │ │ │ │ │ │ @@ -4941,29 +4941,29 @@ │ │ │ │ │ lspci -v │ │ │ │ │ │ │ │ │ │ 1.6.9.2 Monitor-Auflösung │ │ │ │ │ Während der Installation versucht Ubuntu, die Monitoreinstellungen zu erkennen. Wenn dies fehlschlägt, wird ein allgemeiner Monitor mit einer maximalen Auflösung von 800x600 verwendet. │ │ │ │ │ Eine Anleitung zur Behebung dieses Problems finden Sie hier: │ │ │ │ │ https://help.ubuntu.com/community/FixVideoResolutionHowto │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 27 / 1331 │ │ │ │ │ │ │ │ │ │ 1.6.10 Pfade │ │ │ │ │ Relative Pfade Relative Pfade basieren auf dem Startverzeichnis, d.h. das Verzeichnis mit der INIDatei. Die Verwendung relativer Pfade kann das Verschieben von Konfigurationen erleichtern, erfordert aber ein gutes Verständnis der Linux-Pfadangaben. │ │ │ │ │ ./f0 ist dasselbe wie f0, z. B. eine Datei namens f0 im Startverzeichnis │ │ │ │ │ ../f1 bezieht sich auf eine Datei f1 im übergeordneten Verzeichnis │ │ │ │ │ ../../f2 bezieht sich auf eine Datei f2 im übergeordneten Verzeichnis des │ │ │ │ │ übergeordneten Verzeichnisses │ │ │ │ │ ../../../f3 usw. │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 28 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 2 │ │ │ │ │ │ │ │ │ │ Allgemeine Benutzerinformationen │ │ │ │ │ 2.1 User Foreword │ │ │ │ │ @@ -4993,15 +4993,15 @@ │ │ │ │ │ by making them connectable. We achieve connectability by setting up standard interfaces to sets of │ │ │ │ │ modules and following those standards. │ │ │ │ │ The Separation rule requires that we make distinct parts that do little things. By separating functions │ │ │ │ │ debugging is much easier and replacement modules can be dropped into the system and comparisons │ │ │ │ │ easily made. │ │ │ │ │ 1 Found at link:https://en.wikipedia.org/wiki/Separation_of_mechanism_and_policy, 2022-11-13 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 29 / 1331 │ │ │ │ │ │ │ │ │ │ What does the Unix way mean for you as a user of LinuxCNC. It means that you are able to make │ │ │ │ │ choices about how you will use the system. Many of these choices are a part of machine integration, │ │ │ │ │ but many also affect the way you will use your machine. As you read you will find many places where │ │ │ │ │ you will need to make comparisons. Eventually you will make choices, ”I’ll use this interface rather │ │ │ │ │ @@ -5039,15 +5039,15 @@ │ │ │ │ │ • the high level controllers that coordinate the generation and execution of motion control of the CNC │ │ │ │ │ machine, namely the motion controller (EMCMOT), the discrete input/output controller (EMCIO) │ │ │ │ │ and the task executor (EMCTASK). │ │ │ │ │ The below illustration is a simple block diagram showing what a typical 3-axis CNC mill with stepper │ │ │ │ │ motors might look like: │ │ │ │ │ 2 Found at link:https://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 30 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.1: Simple LinuxCNC Controlled Machine │ │ │ │ │ A computer running LinuxCNC sends a sequence of pulses via the parallel port to the stepper drives, │ │ │ │ │ each of which has one stepper motor connected to it. Each drive receives two independent signals; │ │ │ │ │ one signal to command the drive to move its associated stepper motor in a clockwise or anti-clockwise │ │ │ │ │ @@ -5069,15 +5069,15 @@ │ │ │ │ │ The INI file contains all the basic hardware information regarding the operation of the CNC mill, │ │ │ │ │ such as the number of steps each stepper motor must turn to complete one full revolution, the │ │ │ │ │ maximum rate at which each stepper may operate at, the limits of travel of each axis or the │ │ │ │ │ configuration and behaviour of limit switches on each axis. │ │ │ │ │ – My_CNC.hal │ │ │ │ │ This HAL file contains information that tells LinuxCNC how to link the internal virtual signals to │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 31 / 1331 │ │ │ │ │ │ │ │ │ │ physical connections beyond the computer. For example, specifying pin 4 on the parallel port to │ │ │ │ │ send out the Z axis step direction signal, or directing LinuxCNC to cease driving the X axis motor │ │ │ │ │ when a limit switch is triggered on parallel port pin 13. │ │ │ │ │ – custom.hal │ │ │ │ │ @@ -5104,85 +5104,85 @@ │ │ │ │ │ 2.2.3 Graphical User Interfaces │ │ │ │ │ A graphical user interface is the part of the LinuxCNC that the machine tool operator interacts with. │ │ │ │ │ LinuxCNC comes with several types of user interfaces which may be chosen from by editing certain │ │ │ │ │ fields contained in the INI file: │ │ │ │ │ ACHSE │ │ │ │ │ AXIS, the standard keyboard GUI interface. This is also the default GUI launched when a Configuration Wizard is used to create a desktop icon launcher: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 2.2: AXIS, the standard keyboard GUI interface │ │ │ │ │ │ │ │ │ │ Touchy │ │ │ │ │ Touchy, a touch screens GUI: │ │ │ │ │ │ │ │ │ │ 32 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 2.3: Touchy, a touch screen GUI │ │ │ │ │ │ │ │ │ │ Gscreen │ │ │ │ │ Gscreen, a user-configurable touch screen GUI: │ │ │ │ │ │ │ │ │ │ 33 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 34 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.4: Gscreen, a configurable base touch screen GUI │ │ │ │ │ │ │ │ │ │ GMOCCAPY │ │ │ │ │ GMOCCAPY, a touch screen GUI based on Gscreen. GMOCCAPY is also designed to work equally │ │ │ │ │ well in applications where a keyboard and mouse are the preferred methods of controlling the │ │ │ │ │ GUI: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 35 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.5: GMOCCAPY, a touch screen GUI based on Gscreen │ │ │ │ │ │ │ │ │ │ NGCGUI │ │ │ │ │ NGCGUI, a subroutine GUI that provides wizard-style programming of G code. NGCGUI may be │ │ │ │ │ run as a standalone program or embedded into another GUI as a series of tabs. The following │ │ │ │ │ screenshot shows NGCGUI embedded into AXIS: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 36 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.6: NGCGUI, a graphical interface integrated into AXIS │ │ │ │ │ │ │ │ │ │ TkLinuxCNC │ │ │ │ │ TkLinuxCNC, another interface based on Tcl/Tk. Once the most popular interface after AXIS. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 37 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.7: TkLinuxCNC graphical interface │ │ │ │ │ │ │ │ │ │ QtDragon │ │ │ │ │ QtDragon, a touch screen GUI based on QtVCP using the PyQt5 library. It comes in two versions │ │ │ │ │ QtDragon and QtDragon_hd. They are very similar in features but QtDragon_hd is made for larger │ │ │ │ │ monitors. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 38 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.8: QtDragon, a touch screen GUI based on QtVCP │ │ │ │ │ │ │ │ │ │ QtPlasmaC │ │ │ │ │ QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP using the PyQt5 library. It comes │ │ │ │ │ in three aspect ratios, 16:9, 4:3, and 9:16. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 39 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.9: QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP │ │ │ │ │ │ │ │ │ │ 2.2.4 Benutzerschnittstellen │ │ │ │ │ These User interfaces are a way to interact with LinuxCNC outside of the graphical user interfaces. │ │ │ │ │ @@ -5196,41 +5196,41 @@ │ │ │ │ │ add indicators, readouts, switches or sliders to the basic appearance of one of the GUIs for increased │ │ │ │ │ flexibility or functionality. Two styles of Virtual Control Panel are offered in LinuxCNC: │ │ │ │ │ PyVCP │ │ │ │ │ PyVCP, a Python-based virtual control panel that can be added to the AXIS GUI. PyVCP only │ │ │ │ │ utilises virtual signals contained within the Hardware Abstraction Layer, such as the spindle-atspeed indicator or the Emergency Stop output signal, and has a simple no-frills appearance. This │ │ │ │ │ makes it an excellent choice if the user wants to add a Virtual Control Panel with minimal fuss. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 40 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.10: PyVCP Example Embedded Into AXIS GUI │ │ │ │ │ │ │ │ │ │ GladeVCP │ │ │ │ │ GladeVCP, a Glade-based virtual control panel that can be added to the AXIS or Touchy GUIs. │ │ │ │ │ GladeVCP has the advantage over PyVCP in that it is not limited to the display or control of HAL │ │ │ │ │ virtual signals, but can include other external interfaces outside LinuxCNC such as window or │ │ │ │ │ network events. GladeVCP is also more flexible in how it may be configured to appear on the │ │ │ │ │ GUI: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 41 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.11: GladeVCP Example Embedded Into AXIS GUI │ │ │ │ │ │ │ │ │ │ QtVCP │ │ │ │ │ QtVCP, a PyQt5-based virtual control panel that can be added to most GUIs or run as a standalone │ │ │ │ │ panel. QtVCP has the advantage over PyVCP in that it is not limited to the display or control of │ │ │ │ │ HAL virtual signals, but can include other external interfaces outside LinuxCNC such as window │ │ │ │ │ or network events by extending with python code. QtVCP is also more flexible in how it may be │ │ │ │ │ configured to appear on the GUI with many special widgets: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 42 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.12: QtVCP Example Embedded Into QtDragon GUI │ │ │ │ │ │ │ │ │ │ 2.2.6 Sprachen │ │ │ │ │ LinuxCNC uses translation files to translate LinuxCNC User Interfaces into many languages including │ │ │ │ │ @@ -5246,15 +5246,15 @@ │ │ │ │ │ lessons learned. A beautiful finish, tight tolerances and caution during the work are evidence of lessons │ │ │ │ │ learned. No machine nor program can replace human experience. │ │ │ │ │ Now that you start working with the LinuxCNC software, you have to put yourself in the shoes of an │ │ │ │ │ operator. You must be in the role of someone in charge of a machine. It’s a machine that will wait │ │ │ │ │ for your commands and then execute the orders that you will give it. In these pages, we will give the │ │ │ │ │ explanations which will help you to become a good CNC operator with LinuxCNC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 43 / 1331 │ │ │ │ │ │ │ │ │ │ 2.2.8 Modes of Operation │ │ │ │ │ When LinuxCNC is running, there are three different major modes used for inputting commands. │ │ │ │ │ These are Manual, Auto, and Manual Data Input (MDI). Changing from one mode to another makes │ │ │ │ │ a big difference in the way that the LinuxCNC control behaves. There are specific things that can be │ │ │ │ │ @@ -5296,15 +5296,15 @@ │ │ │ │ │ in your G-code can cause your machine to slow down and speed up for the longer moves if the naive │ │ │ │ │ cam detector is not employed with G64 Pn. │ │ │ │ │ The basic acceleration and deceleration described above is not complex and there is no compromise │ │ │ │ │ to be made. In the INI file the specified machine constraints, such as maximum axis velocity and axis │ │ │ │ │ acceleration, must be obeyed by the trajectory planner. │ │ │ │ │ Für weitere Informationen zu den Trajektorie-Panner INI-Optionen siehe den Abschnitt zu Trajektorien im INI Kapitel. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 44 / 1331 │ │ │ │ │ │ │ │ │ │ 2.3.1.2 Path Following │ │ │ │ │ A less straightforward problem is that of path following. When you program a corner in G-code, the │ │ │ │ │ trajectory planner can do several things, all of which are right in some cases: │ │ │ │ │ • Es kann genau an den Koordinaten der Kurve bis zum Stillstand abbremsen und dann in die neue │ │ │ │ │ @@ -5344,15 +5344,15 @@ │ │ │ │ │ that a specification of G64 P0 has the same effect as G64 alone (above), which is necessary for │ │ │ │ │ backward compatibility for old G-code programs. See the G64 section of the G-code chapter. │ │ │ │ │ Blending without tolerance │ │ │ │ │ The controlled point will touch each specified movement at at least one point. The machine will │ │ │ │ │ never move at such a speed that it cannot come to an exact stop at the end of the current movement (or next movement, if you pause when blending has already started). The distance from │ │ │ │ │ the end point of the move is as large as it needs to be to keep up the best contouring feed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 45 / 1331 │ │ │ │ │ │ │ │ │ │ Naive CAM Detector │ │ │ │ │ Successive G1 moves that involve only the XYZ axes that deviate less than Q- from a straight │ │ │ │ │ line are merged into a single straight line. This merged movement replaces the individual G1 │ │ │ │ │ movements for the purposes of blending with tolerance. Between successive movements, the │ │ │ │ │ @@ -5387,15 +5387,15 @@ │ │ │ │ │ the feed rate in units per second, the acceleration time is ta = F/A and the acceleration distance is │ │ │ │ │ da = F*ta /2. The deceleration time and distance are the same, making the critical distance d = da + │ │ │ │ │ dd = 2 * da = F2 /A. │ │ │ │ │ For example, for a feed rate of 1 inch per second and an acceleration of 10 inches/sec2 , the critical │ │ │ │ │ distance is 12 /10 = 1/10 = 0.1 inches. │ │ │ │ │ For a feed rate of 0.5 inch per second, the critical distance is 52 /100 = 25/100 = 0.025 inches. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 46 / 1331 │ │ │ │ │ │ │ │ │ │ 2.3.2 G-Code │ │ │ │ │ 2.3.2.1 Defaults │ │ │ │ │ When LinuxCNC first starts up many G- and M-codes are loaded by default. The current active G- and │ │ │ │ │ M-codes can be viewed on the MDI tab in the Active G-codes: window in the AXIS interface. These │ │ │ │ │ @@ -5427,15 +5427,15 @@ │ │ │ │ │ There are several options when doing manual tool changes. See the [EMCIO] section for information │ │ │ │ │ on configuration of these options. Also see the G28 and G30 section of the G-code chapter. │ │ │ │ │ │ │ │ │ │ 2.3.5 Koordinatensysteme │ │ │ │ │ The Coordinate Systems can be confusing at first. Before running a CNC machine you must understand the basics of the coordinate systems used by LinuxCNC. In depth information on the LinuxCNC │ │ │ │ │ Coordinate Systems is in the Coordinate System section of this manual. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 47 / 1331 │ │ │ │ │ │ │ │ │ │ 2.3.5.1 G53 Machine Coordinate │ │ │ │ │ When you home LinuxCNC you set the G53 Machine Coordinate System to 0 for each axis homed. │ │ │ │ │ No other coordinate systems or tool offsets are changed by homing. │ │ │ │ │ The only time you move in the G53 machine coordinate system is when you program a G53 on the │ │ │ │ │ @@ -5467,22 +5467,22 @@ │ │ │ │ │ in relation to the material. │ │ │ │ │ Note also the position of the limit switches and the direction of activation of their cams. Several │ │ │ │ │ combinations are possible, for example it is possible (contrary to the drawing) to place a single fixed │ │ │ │ │ limit switch in the middle of the table and two mobile cams to activate it. In this case the limits will │ │ │ │ │ be reversed, +X will be on the right of the table and -X on the left. This inversion does not change │ │ │ │ │ anything from the point of view of the direction of movement of the tool. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 48 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.14: Typical Mill Configuration │ │ │ │ │ The following diagram shows a typical lathe showing direction of travel of the tool and limit switches. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 2.15: Typical Lathe Configuration │ │ │ │ │ │ │ │ │ │ 2.4 Starting LinuxCNC │ │ │ │ │ 2.4.1 Running LinuxCNC │ │ │ │ │ LinuxCNC is started with the script file linuxcnc. │ │ │ │ │ linuxcnc [options] [] │ │ │ │ │ @@ -5497,15 +5497,15 @@ │ │ │ │ │ $ linuxcnc [Options] path/to/your_ini_file │ │ │ │ │ Name the configuration INI file using its path │ │ │ │ │ $ linuxcnc [Options] -l │ │ │ │ │ Use the previously used configuration INI file │ │ │ │ │ │ │ │ │ │ 49 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 50 / 1331 │ │ │ │ │ │ │ │ │ │ Options: │ │ │ │ │ -d: Turn on ”debug” mode │ │ │ │ │ -v: Turn on ”verbose” mode │ │ │ │ │ -r: Disable redirection of stdout and stderr to ~/linuxcnc_print.txt and │ │ │ │ │ @@ -5531,15 +5531,15 @@ │ │ │ │ │ or GladeVCP objects with HAL pins you must use the postgui HAL file to make any connections to │ │ │ │ │ those pins. See the [HAL] section of the INI configuration for more information. │ │ │ │ │ 2.4.1.1 Configuration Selector │ │ │ │ │ If no INI file is passed to the linuxcnc script it loads the configuration selector so you can choose and │ │ │ │ │ save a sample configuration. Once a sample configuration has been saved it can be modified to suit │ │ │ │ │ your application. The configuration files are saved in linuxcnc/configs directory. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 51 / 1331 │ │ │ │ │ │ │ │ │ │ 2.5 CNC Machine Overview │ │ │ │ │ In diesem Abschnitt wird kurz beschrieben, wie eine CNC-Maschine von der Eingangs- und Ausgangsseite des Interpreters aus betrachtet wird. │ │ │ │ │ │ │ │ │ │ 2.5.1 Mechanische Bestandteile │ │ │ │ │ @@ -5548,15 +5548,15 @@ │ │ │ │ │ Interpreter interagieren, wie z. B. die Jog Buttons/ Tipptasten, werden hier nicht beschrieben, auch │ │ │ │ │ wenn sie die Steuerung beeinflussen. │ │ │ │ │ 2.5.1.1 Axes │ │ │ │ │ Jede CNC-Maschine hat eine oder mehrere Achsen. Verschiedene Arten von CNC-Maschinen haben │ │ │ │ │ unterschiedliche Kombinationen. Eine ”4-Achsen-Fräsmaschine” kann zum Beispiel XYZA- oder XYZBAchsen haben. Eine Drehmaschine hat normalerweise XZ-Achsen. Eine Schaumstoffschneidemaschine kann XYUV-Achsen haben. In LinuxCNC, der Fall eines XYYZ ”Gantry”-Maschine mit zwei Motoren │ │ │ │ │ für eine Achse ist besser durch Kinematik als durch eine zweite lineare Achse behandelt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 52 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn die Bewegung der mechanischen Komponenten nicht unabhängig ist, wie z. B. bei HexapodMaschinen, können die RS274/NGC-Sprache und die kanonischen Bearbeitungsfunktionen immer │ │ │ │ │ noch verwendet werden, solange die unteren Steuerungsebenen wissen, wie die tatsächlichen Mechanismen zu steuern sind, um die gleiche relative Bewegung von Werkzeug und Werkstück zu erzeugen, wie sie von unabhängigen Achsen erzeugt würde. Dies wird als ”Kinematik” bezeichnet. │ │ │ │ │ │ │ │ │ │ @@ -5583,15 +5583,15 @@ │ │ │ │ │ Bearbeitung einen bestimmten Prozentsatz der programmierten Geschwindigkeit beträgt. │ │ │ │ │ 2.5.1.5 Schalter zum Löschen von Blöcken │ │ │ │ │ Eine CNC-Maschine kann einen Schalter zum Löschen von Blöcken haben. Siehe den Abschnitt BlockLösch-Schalter (engl. block delete switch). │ │ │ │ │ 2.5.1.6 Optionaler Programm-Stopp-Schalter │ │ │ │ │ Eine CNC-Maschine kann mit einem optionalen Programmstoppschalter ausgestattet sein. Siehe den │ │ │ │ │ Abschnitt Optionaler Programmstopp. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 53 / 1331 │ │ │ │ │ │ │ │ │ │ 2.5.2 Steuerungs- und Datenkomponenten │ │ │ │ │ 2.5.2.1 Lineare Achsen │ │ │ │ │ Die X-, Y- und Z-Achse bilden ein standardmäßiges rechtshändiges Koordinatensystem mit orthogonalen linearen Achsen. Die Positionen der drei linearen Bewegungsmechanismen werden durch Koordinaten auf diesen Achsen ausgedrückt. │ │ │ │ │ Die Achsen U, V und W bilden ebenfalls ein standardmäßiges rechtshändiges Koordinatensystem. X │ │ │ │ │ @@ -5622,15 +5622,15 @@ │ │ │ │ │ Um ein Werkzeug entlang einer bestimmten Bahn zu bewegen, muss ein Bearbeitungszentrum häufig │ │ │ │ │ die Bewegung mehrerer Achsen koordinieren. Wir verwenden den Begriff ”koordinierte lineare Bewegung”, um die Situation zu beschreiben, in der sich nominell jede Achse mit konstanter Geschwindigkeit bewegt und sich alle Achsen gleichzeitig von ihren Startpositionen zu ihren Endpositionen │ │ │ │ │ bewegen. Wenn sich nur die X-, Y- und Z-Achse (oder eine oder zwei von ihnen) bewegen, führt dies zu │ │ │ │ │ einer geradlinigen Bewegung, daher das Wort ”linear” in dem Begriff. Bei tatsächlichen Bewegungen │ │ │ │ │ ist es oft nicht möglich, eine konstante Geschwindigkeit beizubehalten, da am Anfang und/oder am │ │ │ │ │ Ende der Bewegung eine Beschleunigung oder Verzögerung erforderlich ist. Es ist jedoch möglich, │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 54 / 1331 │ │ │ │ │ │ │ │ │ │ die Achsen so zu steuern, dass jede Achse zu jedem Zeitpunkt den gleichen Teil ihrer erforderlichen │ │ │ │ │ Bewegung ausgeführt hat wie die anderen Achsen. Dadurch wird das Werkzeug auf demselben Weg │ │ │ │ │ bewegt, und wir nennen diese Art der Bewegung auch koordinierte lineare Bewegung. │ │ │ │ │ Koordinierte lineare Bewegungen können entweder mit der vorherrschenden Vorschubgeschwindigkeit oder mit der Verfahrgeschwindigkeit ausgeführt werden oder sie können mit der Spindelrotation synchronisiert werden. Wenn die gewünschte Geschwindigkeit aufgrund physikalischer Grenzen │ │ │ │ │ @@ -5657,15 +5657,15 @@ │ │ │ │ │ Die Einheiten für Abstände entlang der X-, Y- und Z-Achse können in Millimetern oder Zoll gemessen │ │ │ │ │ werden. Die Einheiten für alle anderen an der Maschinensteuerung beteiligten Größen können nicht │ │ │ │ │ geändert werden. Verschiedene Größen verwenden unterschiedliche spezifische Einheiten. Die Spindeldrehzahl wird in Umdrehungen pro Minute gemessen. Die Positionen der Rotationsachsen werden │ │ │ │ │ in Grad gemessen. Vorschubgeschwindigkeiten werden in aktuellen Längeneinheiten pro Minute oder │ │ │ │ │ Grad pro Minute oder Längeneinheiten pro Spindelumdrehung ausgedrückt, wie in Abschnitt G93 G94 │ │ │ │ │ G95 beschrieben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 55 / 1331 │ │ │ │ │ │ │ │ │ │ 2.5.2.9 Aktuelle Position │ │ │ │ │ Der kontrollierte Punkt befindet sich immer an einer Stelle, die als ”aktuelle Position” bezeichnet wird, │ │ │ │ │ und der Controller weiß immer, wo sich diese befindet. Die dargestellte aktuelle Position muss angepasst werden, selbst wenn keine Achsenbewegung stattfindet, wenn eines von mehreren Ereignissen │ │ │ │ │ eintritt: │ │ │ │ │ @@ -5696,15 +5696,15 @@ │ │ │ │ │ verlangsamt oder stoppt bei Bedarf an scharfen Ecken des Weges. │ │ │ │ │ kontinuierlicher Modus (continuous mode) │ │ │ │ │ Im kontinuierlichen Modus können scharfe Ecken der Bahn leicht abgerundet werden, damit die │ │ │ │ │ Vorschubgeschwindigkeit beibehalten werden kann (aber ohne Verletzung der Toleranzgrenzen, │ │ │ │ │ falls angegeben). │ │ │ │ │ Siehe Abschnitte G61 und G64. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 56 / 1331 │ │ │ │ │ │ │ │ │ │ 2.5.3 Interpreter-Interaktion mit Schaltern │ │ │ │ │ Der Interpreter interagiert mit mehreren Schaltern. In diesem Abschnitt werden die Interaktionen │ │ │ │ │ genauer beschrieben. In keinem Fall weiß der Interpreter, wie die Einstellung eines dieser Schalter │ │ │ │ │ ist. │ │ │ │ │ @@ -5738,15 +5738,15 @@ │ │ │ │ │ TOOL_TABLE = acme_300.tbl │ │ │ │ │ │ │ │ │ │ oder: │ │ │ │ │ TOOL_TABLE = EMC-AXIS-SIM.tbl │ │ │ │ │ │ │ │ │ │ Weitere Informationen zu den Besonderheiten des Formats der Werkzeugtabelle finden Sie im Abschnitt Werkzeugtabellen-Format. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 57 / 1331 │ │ │ │ │ │ │ │ │ │ 2.5.5 Parameter │ │ │ │ │ In der RS274/NGC-Sprachansicht verwaltet ein Bearbeitungszentrum eine Reihe von numerischen │ │ │ │ │ Parametern, die durch eine Systemdefinition (RS274NGC_MAX_PARAMETERS) festgelegt sind. Viele │ │ │ │ │ von ihnen haben spezifische Verwendungen, insbesondere bei der Definition von Koordinatensystemen. Die Anzahl der numerischen Parameter kann sich erhöhen, wenn die Entwicklung die Unterstützung für neue Parameter hinzufügt. Das Parameter-Array bleibt über die Zeit erhalten, auch wenn das │ │ │ │ │ @@ -5790,15 +5790,15 @@ │ │ │ │ │ (engl. home) │ │ │ │ │ │ │ │ │ │ Siehe den Abschnitt zu Parametern für weitere Informationen. │ │ │ │ │ │ │ │ │ │ 2.6 Lathe User Information │ │ │ │ │ Dieses Kapitel enthält Informationen speziell für Drehmaschinen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 58 / 1331 │ │ │ │ │ │ │ │ │ │ 2.6.1 Drehbank-Modus │ │ │ │ │ Wenn Ihre CNC-Maschine eine Drehmaschine ist, gibt es einige spezifische Änderungen, die Sie wahrscheinlich an Ihrer INI-Datei vornehmen möchten, um die besten Ergebnisse von LinuxCNC zu erzielen. │ │ │ │ │ Wenn Sie das AXIS-Display verwenden, müssen Sie dafür sorgen, dass AXIS Ihre Drehwerkzeuge │ │ │ │ │ richtig anzeigt. Siehe den Abschnitt INI Konfiguration für weitere Details. │ │ │ │ │ @@ -5829,25 +5829,25 @@ │ │ │ │ │ of the tool table format, see the Tool Table Section. │ │ │ │ │ │ │ │ │ │ 2.6.3 Lathe Tool Orientation │ │ │ │ │ Die folgende Abbildung zeigt die Ausrichtungen der Drehmeißel mit dem Winkel der Mittellinie jeder │ │ │ │ │ Ausrichtung und Informationen zu VORDERWINKEL und HINTERWINKEL. │ │ │ │ │ FRONTANGLE und BACKANGLE sind im Uhrzeigersinn beginnend an einer Linie parallel zu Z+. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 59 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.16: Ausrichtung des Drehwerkzeugs │ │ │ │ │ In AXIS zeigen die folgenden Abbildungen, wie die Werkzeugpositionen aussehen, wie sie in der Werkzeugtabelle eingegeben wurden. │ │ │ │ │ Werkzeugpositionen 1, 2, 3 & 4Werkzeugpositionen 123 & 4 23 & 4 3 & 4 │ │ │ │ │ │ │ │ │ │ Werkzeugpositionen 5, 6, 7 & 8Werkzeugpositionen 567 & 8 67 & 8 7 & 8 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 60 / 1331 │ │ │ │ │ │ │ │ │ │ 2.6.4 Werkzeug Touch Off │ │ │ │ │ When running in lathe mode in AXIS you can set the X and Z in the tool table using the Touch Off │ │ │ │ │ window. If you have a tool turret you normally have Touch off to fixture selected when setting up your │ │ │ │ │ turret. When setting the material Z zero you have Touch off to material selected. For more information │ │ │ │ │ @@ -5873,15 +5873,15 @@ │ │ │ │ │ Hinweis: Wenn Sie sich im Radiusmodus befinden, müssen Sie den Radius und nicht den Durchmesser │ │ │ │ │ eingeben. │ │ │ │ │ 2.6.4.2 Z Touch-Off │ │ │ │ │ Die Versätze der Z-Achse können anfangs etwas verwirrend sein, da der Z-Versatz aus zwei Elementen │ │ │ │ │ besteht. Es gibt den Werkzeugtischversatz und den Maschinenkoordinatenversatz. Zunächst werden │ │ │ │ │ wir uns mit den Versätzen auf dem Werkzeugtisch befassen. Eine Methode besteht darin, einen festen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 61 / 1331 │ │ │ │ │ │ │ │ │ │ Punkt auf Ihrer Drehmaschine zu verwenden und den Z-Versatz für alle Werkzeuge von diesem Punkt │ │ │ │ │ aus einzustellen. Manche verwenden die Spindelnase oder die Futterfläche. Auf diese Weise können │ │ │ │ │ Sie zu einem neuen Werkzeug wechseln und dessen Z-Versatz einstellen, ohne alle Werkzeuge neu │ │ │ │ │ einstellen zu müssen. │ │ │ │ │ @@ -5913,15 +5913,15 @@ │ │ │ │ │ │ │ │ │ │ 2.6.5 Spindelsynchronisierte Bewegung │ │ │ │ │ Spindle synchronized motion requires a quadrature encoder connected to the spindle with one index │ │ │ │ │ pulse per revolution. See the motion man page and the Spindle Control Example for more information. │ │ │ │ │ Gewinde-Drehen (engl. threading) Der Gewindeschneidzyklus G76 wird sowohl für Innen- als auch │ │ │ │ │ für Außengewinde verwendet. Weitere Informationen finden Sie im Abschnitt G76. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 62 / 1331 │ │ │ │ │ │ │ │ │ │ Konstante Oberflächengeschwindigkeit CSS or Constant Surface Speed uses the machine X origin │ │ │ │ │ modified by the tool X offset to compute the spindle speed in RPM. CSS will track changes in tool │ │ │ │ │ offsets. The X machine origin should be when the reference tool (the one with zero offset) is at the │ │ │ │ │ center of rotation. For more information see the G96 Section. │ │ │ │ │ @@ -5956,15 +5956,15 @@ │ │ │ │ │ The control point for the tool follows the programmed path. The control point is the intersection of a │ │ │ │ │ line parallel to the X and Z axis and tangent to the tool tip diameter, as defined when you touch off the │ │ │ │ │ X and Z axes for that tool. When turning or facing straight sided parts the cutting path and the tool │ │ │ │ │ edge follow the same path. When turning radius and angles the edge of the tool tip will not follow the │ │ │ │ │ programmed path unless cutter comp is in effect. In the following figures you can see how the control │ │ │ │ │ point does not follow the tool edge as you might assume. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 63 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.17: Kontrollpunkt │ │ │ │ │ │ │ │ │ │ 2.6.7.2 Schneidwinkel ohne Fräser Compensation │ │ │ │ │ Now imagine we program a ramp without cutter comp. The programmed path is shown in the following │ │ │ │ │ @@ -5972,29 +5972,29 @@ │ │ │ │ │ same as long as we are moving in an X or Z direction only. │ │ │ │ │ │ │ │ │ │ Abbildung 2.18: Rampe Eingang │ │ │ │ │ Now as the control point progresses along the programmed path the actual cutter edge does not follow │ │ │ │ │ the programmed path as shown in the following figure. There are two ways to solve this, cutter comp │ │ │ │ │ and adjusting your programmed path to compensate for tip radius. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 64 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 2.19: Rampenpfad │ │ │ │ │ Im obigen Beispiel ist es eine einfache Übung, die programmierte Bahn so anzupassen, dass sie die │ │ │ │ │ gewünschte tatsächliche Bahn ergibt, indem die programmierte Bahn für die Rampe um den Radius │ │ │ │ │ der Werkzeugspitze nach links verschoben wird. │ │ │ │ │ 2.6.7.3 Schneiden eines Radius │ │ │ │ │ In this example we will examine what happens during a radius cut without cutter comp. In the next │ │ │ │ │ figure you see the tool turning the OD of the part. The control point of the tool is following the programmed path and the tool is touching the OD of the part. │ │ │ │ │ │ │ │ │ │ Abbildung 2.20: Turning Cut │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 65 / 1331 │ │ │ │ │ │ │ │ │ │ In this next figure you can see as the tool approaches the end of the part the control point still follows │ │ │ │ │ the path but the tool tip has left the part and is cutting air. You can also see that even though a radius │ │ │ │ │ has been programmed the part will actually end up with a square corner. │ │ │ │ │ │ │ │ │ │ @@ -6002,15 +6002,15 @@ │ │ │ │ │ Jetzt können Sie sehen, wie der Kontrollpunkt dem programmierten Radius folgt, die Werkzeugspitze │ │ │ │ │ hat das Teil verlassen und schneidet nun Luft. │ │ │ │ │ │ │ │ │ │ Abbildung 2.22: Radiusschnitt │ │ │ │ │ In the final figure we can see the tool tip will finish cutting the face but leave a square corner instead │ │ │ │ │ of a nice radius. Notice also that if you program the cut to end at the center of the part a small amount │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 66 / 1331 │ │ │ │ │ │ │ │ │ │ of material will be left from the radius of the tool. To finish a face cut to the center of a part you have │ │ │ │ │ to program the tool to go past center at least the nose radius of the tool. │ │ │ │ │ │ │ │ │ │ Abbildung 2.23: Face Cut │ │ │ │ │ @@ -6031,15 +6031,15 @@ │ │ │ │ │ processes use this plasma to transfer an electrical arc to the workpiece. The metal to be cut or removed is melted by the heat of the arc and then blown away. While the goal of plasma arc cutting is │ │ │ │ │ the separation of the material, plasma arc gouging is used to remove metals to a controlled depth and │ │ │ │ │ width. │ │ │ │ │ Plasma torches are similar in design to the automotive spark plug. They consist of negative and positive │ │ │ │ │ sections separated by a center insulator. Inside the torch, the pilot arc starts in the gap between the │ │ │ │ │ negatively charged electrode and the positively charged tip. Once the pilot arc has ionised the plasma │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 67 / 1331 │ │ │ │ │ │ │ │ │ │ gas, the superheated column of gas flows through the small orifice in the torch tip, which is focused │ │ │ │ │ on the metal to be cut. │ │ │ │ │ In a Plasma Cutting Torch a cool gas enters Zone B, where a pilot arc between the electrode and the │ │ │ │ │ torch tip heats and ionises the gas. The main cutting arc then transfers to the workpiece through the │ │ │ │ │ @@ -6054,15 +6054,15 @@ │ │ │ │ │ with the material is required), they are unsuited for CNC applications.. │ │ │ │ │ 2.7.2.1 Hochfrequenzstart │ │ │ │ │ This start type is widely employed, and has been around the longest. Although it is older technology, it │ │ │ │ │ works well, and starts quickly. But, because of the high frequency high voltage power that is required │ │ │ │ │ generated to ionise the air, it has some drawbacks. It often interferes with surrounding electronic │ │ │ │ │ circuitry, and can even damage components. Also a special circuit is needed to create a Pilot arc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 68 / 1331 │ │ │ │ │ │ │ │ │ │ Inexpensive models will not have a pilot arc, and require touching the consumable to the work to │ │ │ │ │ start. Employing a HF circuit also can increase maintenance issues, as there are usually adjustable │ │ │ │ │ points that must be cleaned and readjusted from time to time. │ │ │ │ │ 2.7.2.2 Blowback Start │ │ │ │ │ @@ -6087,15 +6087,15 @@ │ │ │ │ │ unknown state of the sheet makes it impossible to generate G-code that will cater for these variances │ │ │ │ │ in the material. │ │ │ │ │ A plasma Arc is oval in shape and the cutting height needs to be controlled to minimise bevelled edges. │ │ │ │ │ If the torch is too high or too low then the edges can become excessively bevelled. It is also critical │ │ │ │ │ that the torch is held perpendicular to the surface. │ │ │ │ │ • Torch to work distance can impact edge bevel │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 69 / 1331 │ │ │ │ │ │ │ │ │ │ • Negative cut angle: torch too low, increase torch to work distance. │ │ │ │ │ • Positive cut angle: torch too high, decrease torch to work distance. │ │ │ │ │ Anmerkung │ │ │ │ │ Eine leichte Abweichung der Schnittwinkel kann normal sein, solange sie innerhalb der Toleranz liegt. │ │ │ │ │ @@ -6119,15 +6119,15 @@ │ │ │ │ │ choose a suitable plasma machine. Failure to do this is likely to cause hours and hours of fruitless │ │ │ │ │ trouble shooting trying to work around the lack of what many would consider to be mandatory features. │ │ │ │ │ Obwohl Regeln dazu da sind, gebrochen zu werden, wenn man die Gründe für die Anwendung der │ │ │ │ │ Regel versteht, sind wir der Meinung, dass ein neuer Hersteller von Plasmatischen eine Maschine mit │ │ │ │ │ den folgenden Merkmalen auswählen sollte: │ │ │ │ │ • Blowback-Start zur Minimierung der elektrischen Geräusche und zur Vereinfachung der Konstruktion │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 70 / 1331 │ │ │ │ │ │ │ │ │ │ • Ein Maschinenbrenner wird bevorzugt, aber viele haben auch Handbrenner verwendet. │ │ │ │ │ • Eine vollständig abgeschirmte Brennerspitze, die eine ohmsche Abtastung ermöglicht │ │ │ │ │ Wenn Sie über das nötige Budget verfügen, können Sie sich für ein höherwertiges Gerät entscheiden: │ │ │ │ │ • Vom Hersteller bereitgestellte Schneidtabellen, die viele Stunden und Materialabfälle bei der Kalibrierung der Schneidparameter sparen │ │ │ │ │ @@ -6165,15 +6165,15 @@ │ │ │ │ │ people around the globe have been involved in testing and improving the feature set. QtPlasmaC is │ │ │ │ │ unique in that its design goal was to support all THCs including the simple bit bang ones through │ │ │ │ │ to sophisticated torch voltage control, if the voltage is made available to LinuxCNC via a THCAD or │ │ │ │ │ some other voltage sensor. What’s more, QtPlasmaC is designed to be a stand alone system that does │ │ │ │ │ not need any additional G-code subroutines and allows the user to define their own cut charts that │ │ │ │ │ are stored in the system and accessible by a drop-down. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 71 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.6 Lichtbogen-OK-Signal │ │ │ │ │ Plasma machines that have a CNC interface contain a set of dry contacts (eg a relay) that close when a │ │ │ │ │ valid arc is established and each side of these contacts are bought out onto pins on the CNC interface. │ │ │ │ │ A plasma table builder should connect one side of these pins to field power and the other to an input │ │ │ │ │ @@ -6213,15 +6213,15 @@ │ │ │ │ │ commands. If this is the case, then after initial probing, it is recommended to probe away from the │ │ │ │ │ surface until the probe signal is lost at a slower speed. Also, ensure the switch hysteresis is accounted │ │ │ │ │ for. │ │ │ │ │ Unabhängig von der verwendeten Sondierungsmethode wird dringend empfohlen, einen gleitenden │ │ │ │ │ Schalter einzubauen, damit ein Ausweich- oder Sekundärsignal vorhanden ist, um eine Beschädigung │ │ │ │ │ des Brenners bei einem Absturz zu vermeiden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 72 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.7.2 Ohmsche Erfassung │ │ │ │ │ Ohmic sensing relies on contact between the torch and the material acting as a switch to activate an │ │ │ │ │ electrical signal that is sensed by the CNC controller. Provided the material is clean, this can be a │ │ │ │ │ much more accurate method of sensing the material than a float switch which can cause deflection │ │ │ │ │ @@ -6252,15 +6252,15 @@ │ │ │ │ │ Encoder B and Encoder Index pins. This firmware is available for download for the 7I76E and 7I96 │ │ │ │ │ boards from the Mesa web site on the product pages. │ │ │ │ │ The THCAD is sensitive enough to see the ramp up in circuit voltage as contact pressure increases. │ │ │ │ │ The ohmic.comp component included in LinuxCNC can monitor the sensing voltage and set a voltage │ │ │ │ │ threshold above which it is deemed contact is made and an output is enabled. By monitoring the voltage, a lower “break circuit” threshold can be set to build in strong switch hysteresis. This minimises │ │ │ │ │ false triggering. In our testing, we found the material sensing using this method was more sensitive │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 73 / 1331 │ │ │ │ │ │ │ │ │ │ and robust as well as being simpler to implement the wiring. One further advantage is using software │ │ │ │ │ outputs instead of physical I/O pins is that it frees up pins to use for other purposes. This advantage │ │ │ │ │ is helpful to get the most out of the Mesa 7I96 which has limited I/O pins. │ │ │ │ │ Der folgende Schaltplan zeigt, wie eine Hypersensing-Schaltung realisiert werden kann. │ │ │ │ │ @@ -6272,15 +6272,15 @@ │ │ │ │ │ The following HAL code can be pasted into your QtPlasmaC’s custom.hal to enable Ohmic sensing on │ │ │ │ │ Encoder 2 of a 7I76E. Install the correct bit file and connect the THCAD to IDX+ and IDX-. Be sure to │ │ │ │ │ change the calibration settings to agree with your THCAD-5. │ │ │ │ │ # --- Load the Component --loadrt ohmic names=ohmicsense │ │ │ │ │ addf ohmicsense servo-thread │ │ │ │ │ # --- 7I76E ENCODER 2 SETUP FOR OHMIC SENSING--setp hm2_7i76e.0.encoder.02.scale -1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 74 / 1331 │ │ │ │ │ │ │ │ │ │ setp hm2_7i76e.0.encoder.02.counter-mode 1 │ │ │ │ │ # --- Configure the component --setp ohmicsense.thcad-0-volt-freq │ │ │ │ │ 140200 │ │ │ │ │ setp ohmicsense.thcad-max-volt-freq 988300 │ │ │ │ │ @@ -6315,15 +6315,15 @@ │ │ │ │ │ Liegt die Schnittgeschwindigkeit am Ende dieser Verzögerung noch nicht in der Nähe der gewünschten Schnittgeschwindigkeit, sollte die Steuerung warten, bis diese erreicht ist, bevor sie die THC │ │ │ │ │ aktiviert. │ │ │ │ │ │ │ │ │ │ 2.7.9 Abtastung der Brennerspannung │ │ │ │ │ Anstatt sich auf die Schneidtabellen des Herstellers zu verlassen, um die gewünschte Brennerspannung einzustellen, ziehen es viele Leute (einschließlich des Verfassers) vor, die Spannung zu messen, │ │ │ │ │ wenn die THC aktiviert ist, und diese als Sollwert zu verwenden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 75 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.10 Brenner Behinderung (engl. torch breakaway) │ │ │ │ │ It is recommended that a mechanism is provided to allow the torch to “break away” or fall off in the │ │ │ │ │ case of impact with the material or a cut part that has tipped up. A sensor should be installed to allow │ │ │ │ │ the CNC controller to detect if this has occurred and pause the running program. Usually a break │ │ │ │ │ @@ -6353,15 +6353,15 @@ │ │ │ │ │ So it should be possible to compare the moving average with the dv/dt and halt THC operation once │ │ │ │ │ the dv/dt exceeds the normal range expected due to warpage. More work needs to be done in this │ │ │ │ │ area to come up with a working solution in LinuxCNC. │ │ │ │ │ │ │ │ │ │ 2.7.13 Hole And Small Shape Cutting │ │ │ │ │ It is recommended that you slow down cutting when cutting holes and small shapes. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 76 / 1331 │ │ │ │ │ │ │ │ │ │ John Moore says: “If you want details on cutting accurate small holes look up the sales sheets on │ │ │ │ │ Hypertherm’s True Hole Technology also look on PlasmaSpider, user seanp has posted extensively on │ │ │ │ │ his work using simple air plasma. │ │ │ │ │ The generally accepted method to get good holes from 37mm dia. and down to material thickness with │ │ │ │ │ @@ -6399,15 +6399,15 @@ │ │ │ │ │ overshoot the initial trigger point by 50-100 mm. If you use a shared home/limit switch, you have to │ │ │ │ │ move the sensor off the trigger point with the final HOME_OFFSET or you will trigger a limit switch │ │ │ │ │ fault as the machine comes out of homing. This means you could lose 50 mm or more of axis travel │ │ │ │ │ with shared home/limit switches. This does not happen if separate home and limit switches are used. │ │ │ │ │ The following pins are usually required (note that suggested connections may not be appropriate for │ │ │ │ │ a QtPlasmaC configuration): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 77 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.14.1 Arc OK (input) │ │ │ │ │ • Inverter closes dry contacts when a valid arc is established │ │ │ │ │ • Connect Field power to one Inverter ArcOK terminal. │ │ │ │ │ • Connect other Inverter Ok Terminal to input pin. │ │ │ │ │ @@ -6437,15 +6437,15 @@ │ │ │ │ │ 2.7.14.4 Ohmscher Sensor aktivieren (Ausgang) │ │ │ │ │ • Siehe den Schaltplan ohmic sensing. │ │ │ │ │ • Verbinden Sie den Ausgangspin mit einer Seite des Trennrelais und die andere Seite mit der Masse │ │ │ │ │ der Feldversorgung. │ │ │ │ │ • In a non-QtPlasmaC configuration, usually triggered by a ̀ ̀motion.digital-out- ̀ ̀ so it can be │ │ │ │ │ controlled in G-code by M62/M63/M64/M65. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 78 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.14.5 Ohmsche Sensorik (engl. ohmic sensing) (Eingang) │ │ │ │ │ • Beachten Sie das zuvor gezeigte Schema zu ohmic sensing. │ │ │ │ │ • Eine isolierte Stromversorgung löst ein Relais aus, wenn der Brennerschild das Material berührt. │ │ │ │ │ • Schließen Sie die Feldspannung an eine Ausgangsklemme und die andere an den Eingang an. │ │ │ │ │ @@ -6481,15 +6481,15 @@ │ │ │ │ │ M62 P2 will disable THC (synchronised with motion) │ │ │ │ │ M63 P2 will enable THC (synchronised with motion) │ │ │ │ │ M64 P2 will disable THC (immediately) │ │ │ │ │ M65 P2 will enable THC (immediately) │ │ │ │ │ │ │ │ │ │ Reduce Cutting Speeds: (e.g., for hole cutting) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 79 / 1331 │ │ │ │ │ │ │ │ │ │ M67 E3 Q0 würde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q40 würde die Geschwindigkeit auf 40% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q60 würde die Geschwindigkeit auf 60% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q100 würde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ @@ -6534,15 +6534,15 @@ │ │ │ │ │ [JOINT_n] │ │ │ │ │ MAX_VELOCITY = 60 │ │ │ │ │ MAX_ACCELERATION = 700 │ │ │ │ │ │ │ │ │ │ For further information about external offsets (for version 2.8 or later) please read the [AXIS_] │ │ │ │ │ Section of the INI file document and External Axis Offsets in the LinuxCNC documentation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 80 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.17 Reading Arc Voltage With The Mesa THCAD │ │ │ │ │ The Mesa THCAD board is a remarkably well priced and accurate voltage to frequency converter that │ │ │ │ │ is designed for the hostile noisy electrical environment associated with plasma cutting. Internally it │ │ │ │ │ has a 0-10 V range. This range can be simply extended by the addition of some resistors as described │ │ │ │ │ @@ -6584,15 +6584,15 @@ │ │ │ │ │ │ │ │ │ │ Power up your controller and open Halshow (AXIS: Show Homing Configuration), drill down to find │ │ │ │ │ the hm2_7i76e.0.encoder.00.velocity pin. With 0 Volts applied, it should be hovering around the │ │ │ │ │ 0 Volt frequency (3,800 in our example). Grab a 9 Volt battery and connect it to IN + and IN -. For a │ │ │ │ │ THCAD-10 you can now calculate the expected velocity (26,480 in our hypothetical example). If you │ │ │ │ │ pass this test, then you are ready to configure your LinuxCNC plasma controller. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 81 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.17.3 Which Model THCAD To Use? │ │ │ │ │ The THCAD-5 is useful if you intend to use it for ohmic sensing. There is no doubt the THCAD-10 │ │ │ │ │ is the more flexible device and it is easy to alter the scaling. However, there is one caveat that can │ │ │ │ │ come into play with some cheaper plasma cutters with an inbuilt voltage divider. That is, the internal resistors may be sensed by the THCAD as being part of its own external resistance and return │ │ │ │ │ @@ -6625,15 +6625,15 @@ │ │ │ │ │ 2. Processed in CAM to generate final G-code that is loaded to the machine │ │ │ │ │ 3. Cutting the parts via CNC G-code commands. │ │ │ │ │ Some people achieve good results with Inkscape and G-code tools but SheetCam is a very well priced │ │ │ │ │ solution and there are a number of post processors available for LinuxCNC. SheetCam has a number │ │ │ │ │ of advanced features designed for plasma cutting and for the price, is a no brainer for anybody doing │ │ │ │ │ regular plasma cutting. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 82 / 1331 │ │ │ │ │ │ │ │ │ │ 2.7.19 Designing For Noisy Electrical Environments │ │ │ │ │ Plasma cutting is inherently an extremely hostile and noisy electrical environment. If you have EMI │ │ │ │ │ problems things won’t work correctly. You might fire the torch and the computer will reboot in a more │ │ │ │ │ obvious example, but you can have any number of other odd symptoms. They will pretty much all │ │ │ │ │ @@ -6680,15 +6680,15 @@ │ │ │ │ │ The minimum water level under the cut level of the torch should be around 40 mm, having space under │ │ │ │ │ slats is nice so the water can level and escape during cutting, having a bit of water above the metal │ │ │ │ │ plate being cut is really nice as it gets rid of the little bit of dust, running it submerged is the best way │ │ │ │ │ but not preferable for systems with part time use as it will corrode the torch. Adding baking soda to │ │ │ │ │ the water will keep the table in a nice condition for many years as it does not allow corrosion while │ │ │ │ │ the slats are under water and it also reduces the smell of water vapour. Some people use a water │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 83 / 1331 │ │ │ │ │ │ │ │ │ │ reservoir with a compressed air inlet so they can push the water from the reservoir up to the water │ │ │ │ │ table on demand and thus allow changes in water levels. │ │ │ │ │ │ │ │ │ │ 2.7.21 Downdraft Tables │ │ │ │ │ @@ -6727,15 +6727,15 @@ │ │ │ │ │ │ │ │ │ │ 2.7.25 Hypertherm RS485 Control │ │ │ │ │ Some Hypertherm plasma cutters have a RS485 interface to allow the controller (e.g., LinuxCNC) │ │ │ │ │ to set amps.pressure and mode. A number of people have used a non-realtime component written in │ │ │ │ │ Python to achieve this. More recently, QtPlasmaC now supports this interface natively. Refer to the │ │ │ │ │ QtPlasmaC documentation for how to use it. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 84 / 1331 │ │ │ │ │ │ │ │ │ │ The combination of a slow baud rate used by Hypertherm and the non-realtime component, make this │ │ │ │ │ fairly slow to alter machine states so it generally not viable to change settings on the fly while cutting. │ │ │ │ │ When selecting a RS485 interface to use at the PC end, users have reported that USB to RS485 │ │ │ │ │ interfaces are not reliable. Good reliable results have been achieved using a hardware based RS232 │ │ │ │ │ @@ -6755,15 +6755,15 @@ │ │ │ │ │ and allows you to configure toolsets and code snippets to suit your needs. SheetCam post processors │ │ │ │ │ are text files written in the Lua programming language and are generally easy to modify to suit your │ │ │ │ │ exact requirements. For further information, consult the SheetCam web site and their support forum. │ │ │ │ │ Another popular post-processor is included with the popular Fusion360 package but the included │ │ │ │ │ post-processors will need some customisation. │ │ │ │ │ LinuxCNC is a CNC application and discussions of CAM techniques other than this introductory discussion are out of scope of LinuxCNC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 85 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 3 │ │ │ │ │ │ │ │ │ │ Konfigurationsassistenten │ │ │ │ │ 3.1 Stepper Configuration Wizard │ │ │ │ │ @@ -6774,15 +6774,15 @@ │ │ │ │ │ StepConf wird bei der Installation von LinuxCNC mitinstalliert und befindet sich im CNC-Menü. │ │ │ │ │ StepConf legt eine Datei im Verzeichnis linuxcnc/config ab, um die Auswahlmöglichkeiten für jede von │ │ │ │ │ Ihnen erstellte Konfiguration zu speichern. Wenn Sie etwas ändern, müssen Sie die Datei auswählen, │ │ │ │ │ die dem Namen Ihrer Konfiguration entspricht. Die Dateierweiterung lautet .stepconf. │ │ │ │ │ Der StepConf-Assistent funktioniert am besten bei einer Bildschirmauflösung von mindestens 800 x │ │ │ │ │ 600. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 86 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.2 Startseite │ │ │ │ │ │ │ │ │ │ Abbildung 3.1: StepConf Einstiegsseite │ │ │ │ │ Die ersten drei Optionsfelder sind selbsterklärend: │ │ │ │ │ @@ -6794,15 +6794,15 @@ │ │ │ │ │ • Importieren (engl. import) - Importieren Sie eine Mach-Konfigurationsdatei und versucht, sie in eine │ │ │ │ │ LinuxCNC-Konfigurationsdatei zu konvertieren. Nach dem Import gehen Sie durch die Seiten von │ │ │ │ │ StepConf, um die Einträge zu bestätigen/zu ändern. Die ursprüngliche Mach-XML-Datei wird nicht │ │ │ │ │ verändert. │ │ │ │ │ Diese folgenden Optionen werden in einer Einstellungsdatei für den nächsten Lauf von StepConf │ │ │ │ │ gespeichert. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 87 / 1331 │ │ │ │ │ │ │ │ │ │ • Desktop-Verknüpfung erstellen (engl. Create Desktop Shortcut) - Damit wird eine Verknüpfung auf │ │ │ │ │ Ihrem Desktop zu den Dateien erstellt. │ │ │ │ │ • Desktop Launcher erstellen (engl. Create Desktop Launcher) - Damit wird ein Launcher auf Ihrem │ │ │ │ │ Desktop platziert, um Ihre Anwendung zu starten. │ │ │ │ │ @@ -6812,15 +6812,15 @@ │ │ │ │ │ │ │ │ │ │ Abbildung 3.2: Seite mit grundlegenden Informationen │ │ │ │ │ • Simulierte Hardware erstellen (engl. Create Simulated Hardware) - Damit können Sie eine Konfiguration zum Testen erstellen, auch wenn Sie nicht über die tatsächliche Hardware verfügen’. │ │ │ │ │ • 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). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 88 / 1331 │ │ │ │ │ │ │ │ │ │ • 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, │ │ │ │ │ @@ -6856,15 +6856,15 @@ │ │ │ │ │ Test mindestens ein paar Minuten laufen. Je länger Sie den Test laufen lassen, desto eher werden auch │ │ │ │ │ seltene Ereignisse erfasst, die möglicherweise in kürzeren Abständen auftreten. Dies ist ein Test nur │ │ │ │ │ für Ihren Computer, es muss also keine Hardware angeschlossen sein, um den Test durchzuführen. │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ Versuchen Sie nicht, LinuxCNC zu starten, während der Latenztest läuft. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 89 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.3: Latenz-Test │ │ │ │ │ Die Latenzzeit gibt an, wie lange der PC braucht, um seine Arbeit zu unterbrechen und auf eine externe │ │ │ │ │ Anfrage zu reagieren. In unserem Fall ist die Anfrage der periodische Herzschlag (engl. heartbeat), │ │ │ │ │ der als Zeitreferenz für die Schrittimpulse dient. Je geringer die Latenzzeit ist, desto schneller kann │ │ │ │ │ @@ -6882,15 +6882,15 @@ │ │ │ │ │ If your Max Jitter number is less than about 15-20 µs (15000-20000 ns), the computer should give very │ │ │ │ │ nice results with software stepping. If the max latency is more like 30-50 µs, you can still get good │ │ │ │ │ results, but your maximum step rate might be a little disappointing, especially if you use microstepping │ │ │ │ │ or have very fine pitch leadscrews. If the numbers are 100 µs or more (100,000 ns), then the PC is not │ │ │ │ │ a good candidate for software stepping. Numbers over 1 millisecond (1,000,000 ns) mean the PC is │ │ │ │ │ not a good candidate for LinuxCNC, regardless of whether you use software stepping or not. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 90 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.5 Einrichtung der parallelen Schnittstelle │ │ │ │ │ │ │ │ │ │ Abbildung 3.4: Parallele Schnittstelle Setup-Seite │ │ │ │ │ Sie können die Adresse als Hexadezimalwert (oft 0x378) oder als Linux’s Standard-Portnummer (wahrscheinlich 0) angeben │ │ │ │ │ @@ -6899,15 +6899,15 @@ │ │ │ │ │ • Ausgangspinout-Voreinstellungen - Automatische Einstellung der Pins 2 bis 9 gemäß dem SherlineStandard (Richtung auf Pins 2, 4, 6, 8) oder dem Xylotex-Standard (Richtung auf Pins 3, 5, 7, 9). │ │ │ │ │ • „Eingänge und Ausgänge“ – Wenn der Ein- oder Ausgang nicht verwendet wird, setzen Sie die │ │ │ │ │ Option auf „Nicht verwendet“. │ │ │ │ │ • Externes Notaus (engl. external E-Stop) - Dies kann aus einem Dropdown-Feld für den Eingangsstift ausgewählt werden. Eine typische Notaus-Kette verwendet alle normalerweise geschlossenen │ │ │ │ │ Kontakte. │ │ │ │ │ • Referenzpunkt- & Endschalter - Diese können bei den meisten Konfigurationen aus einem DropdownFeld für den Eingangspin ausgewählt werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 91 / 1331 │ │ │ │ │ │ │ │ │ │ • Charge Pump - Wenn Ihre Treiberplatine ein Ladungspumpensignal benötigt, wählen Sie Charge │ │ │ │ │ Pump aus der Dropdown-Liste für den Ausgangspin, den Sie mit Ihrem Ladungspumpeneingang │ │ │ │ │ verbinden möchten. Der Ausgang der Ladungspumpe ist über StepConf mit dem Basisgewinde verbunden. Der Ausgang der Ladungspumpe entspricht etwa der Hälfte der maximalen Schrittrate, die │ │ │ │ │ auf der Seite ”Basic Machine Configuration” angegeben ist. │ │ │ │ │ @@ -6920,15 +6920,15 @@ │ │ │ │ │ Abbildung 3.5: Einrichten von Parallel Port 2 │ │ │ │ │ Der zweite Parallelport (falls ausgewählt) kann auf dieser Seite konfiguriert und seine Pins zugewiesen │ │ │ │ │ werden. Es können keine Schritt- und Richtungssignale ausgewählt werden. Sie können ”in” oder │ │ │ │ │ ”out” wählen, um die Anzahl der verfügbaren Eingangs-/Ausgangs-Pins zu maximieren. Sie können │ │ │ │ │ die Adresse als Hexadezimalwert (oft 0x378) oder als Linux’s Standard-Portnummer (wahrscheinlich │ │ │ │ │ 1) angeben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 92 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.7 Konfiguration der Achsen │ │ │ │ │ │ │ │ │ │ Abbildung 3.6: Achsenkonfiguration am Bildschirm │ │ │ │ │ • Motor Steps Per Revolution - The number of full steps per motor revolution. If you know how many │ │ │ │ │ @@ -6939,15 +6939,15 @@ │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 93 / 1331 │ │ │ │ │ │ │ │ │ │ • Maximum Acceleration - The correct values for these items can only be determined through experimentation. See Finding Maximum Velocity to set the speed and Finding Maximum Acceleration 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 │ │ │ │ │ @@ -6976,15 +6976,15 @@ │ │ │ │ │ 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 - Die Zahl, die in der INI-Datei [SCALE] Einstellung verwendet wird. Die Anzahl Schritte │ │ │ │ │ pro Benutzereinheit. │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 94 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.7: Achsen-Test │ │ │ │ │ Der Achsen-Test ist ein einfacher Test, für den nur Schritt- und Richtungssignale ausgegeben werden, │ │ │ │ │ um verschiedene Werte für Beschleunigung und Geschwindigkeit zu testen. │ │ │ │ │ Wichtig │ │ │ │ │ @@ -7007,15 +7007,15 @@ │ │ │ │ │ Wenn die Maschine nicht offensichtlich zum Stillstand gekommen ist, klicken Sie auf die Schaltfläche │ │ │ │ │ Ausführen. Die Achse kehrt nun zu der Position zurück, an der sie gestartet ist. Wenn die Position │ │ │ │ │ nicht korrekt ist, dann ist die Achse während des Tests stehen geblieben oder hat Schritte verloren. │ │ │ │ │ Verringern Sie die Geschwindigkeit und starten Sie den Test erneut. │ │ │ │ │ Wenn sich die Maschine nicht bewegt, stehen bleibt oder Schritte verliert, egal wie niedrig Sie die │ │ │ │ │ Geschwindigkeit einstellen, überprüfen Sie Folgendes: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 95 / 1331 │ │ │ │ │ │ │ │ │ │ • Korrigieren Sie das Timing der Schrittwellenform │ │ │ │ │ • Korrekte Pinbelegung, einschließlich Invert auf Step-Pins │ │ │ │ │ • Korrekte, gut geschirmte Verkabelung │ │ │ │ │ • Physikalische Probleme mit dem Motor, der Motorkupplung, der Leitspindel usw. │ │ │ │ │ @@ -7025,15 +7025,15 @@ │ │ │ │ │ 3.1.7.2 Finding Maximum Acceleration │ │ │ │ │ Geben Sie mit der im vorherigen Schritt ermittelten Höchstgeschwindigkeit den zu testenden Beschleunigungswert ein. Passen Sie den Beschleunigungswert wie oben beschrieben nach oben oder │ │ │ │ │ unten an. Bei diesem Test ist es wichtig, dass die Kombination aus Beschleunigung und Testbereich es │ │ │ │ │ der Maschine ermöglicht, die ausgewählte Geschwindigkeit zu erreichen. Sobald Sie einen Wert gefunden haben, bei dem die Achse während dieses Testverfahrens nicht ins Stocken gerät oder Schritte │ │ │ │ │ verliert, reduzieren Sie ihn um 10 % und verwenden Sie diesen Wert als maximale Beschleunigung │ │ │ │ │ der Achse. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 96 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.8 Spindel-Konfiguration │ │ │ │ │ │ │ │ │ │ Abbildung 3.8: Seite zur Spindelkonfiguration │ │ │ │ │ Diese Seite erscheint nur, wenn Spindle PWM auf der Seite Parallel Port Pinout für einen der Ausgänge │ │ │ │ │ @@ -7044,15 +7044,15 @@ │ │ │ │ │ ein, der für die Erzeugung einer analogen Steuerspannung nützlich ist. Den entsprechenden Wert │ │ │ │ │ finden Sie in der Dokumentation zu Ihrem Spindelcontroller. │ │ │ │ │ • Drehzahl 1 und 2, PWM 1 und 2 - Die generierte Konfigurationsdatei verwendet eine einfache lineare │ │ │ │ │ Beziehung, um den PWM-Wert für einen bestimmten Drehzahlwert zu bestimmen. Wenn die Werte │ │ │ │ │ nicht bekannt sind, können sie bestimmt werden. Weitere Informationen finden Sie unter Festlegung │ │ │ │ │ der Spindle Kalibrierung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 97 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.8.2 Spindle-synchronized motion │ │ │ │ │ Wenn die entsprechenden Signale von einem Spindel-Encoder an LinuxCNC über HAL verbunden │ │ │ │ │ sind, unterstützt LinuxCNC Drehmaschine Gewindeschneiden. Diese Signale sind: │ │ │ │ │ • Spindle Index – Ist ein Impuls, der einmal pro Spindelumdrehung auftritt. │ │ │ │ │ @@ -7095,28 +7095,28 @@ │ │ │ │ │ zu berücksichtigen: │ │ │ │ │ • Stellen Sie sicher, dass die beiden Kalibrierungsdrehzahlen nicht zu nahe beieinander liegen. │ │ │ │ │ • Vergewissern Sie sich, dass die beiden Kalibrierungsgeschwindigkeiten im Bereich der Geschwindigkeiten liegen, die Sie normalerweise beim Fräsen verwenden. │ │ │ │ │ Wenn Ihre Spindel z. B. von 0 U/min bis 8000 U/min läuft, Sie aber in der Regel Drehzahlen zwischen │ │ │ │ │ 400 U/min (10 %) und 4000 U/min (100 %) verwenden, dann suchen Sie die PWM-Werte, die 1600 │ │ │ │ │ U/min (40 %) und 2800 U/min (70 %) ergeben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 98 / 1331 │ │ │ │ │ │ │ │ │ │ 3.1.9 Optionen │ │ │ │ │ │ │ │ │ │ Abbildung 3.9: Erweiterte Optionen bei der Konfiguration │ │ │ │ │ • Include Halui - Damit wird die Halui-Benutzerschnittstellenkomponente hinzugefügt. Siehe das HALUI Kapitel für weitere Informationen hierzu. │ │ │ │ │ • Include PyVCP - Diese Option fügt die PyVCP-Panel-Basisdatei oder eine Beispieldatei zum Arbeiten │ │ │ │ │ hinzu. Siehe das PyVCP Kapitel für weitere Informationen. │ │ │ │ │ • Include ClassicLadder PLC - Diese Option fügt die ClassicLadder PLC (Speicherprogrammierbare │ │ │ │ │ Steuerung) hinzu. Weitere Informationen finden Sie im Kapitel >. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 99 / 1331 │ │ │ │ │ │ │ │ │ │ • Bildschirm-Aufforderung zu Werkzeugwechsel - Wenn dieses Feld markiert ist, wird LinuxCNC Pause und fordern Sie auf, das Werkzeug zu wechseln, wenn M6 angetroffen wird. Diese Funktion ist │ │ │ │ │ in der Regel nur sinnvoll, wenn Sie voreinstellbaren Werkzeugen haben. │ │ │ │ │ │ │ │ │ │ 3.1.10 Complete Machine Configuration │ │ │ │ │ @@ -7136,15 +7136,15 @@ │ │ │ │ │ angetroffen wird, schaltet LinuxCNC den Motorverstärker ab. Der Abstand zwischen dem harten Anschlag und Endschalter muss lang genug sein, um einen unbestromten Motor zum Stillstand zu bringen. │ │ │ │ │ Vor dem Endschalter gibt es ein soft limit. Dabei handelt es sich um eine Grenze, die nach der Referenzfahrt in der Software durchgesetzt wird. Wenn ein MDI-Befehl oder ein G-Code-Programm die │ │ │ │ │ weiche Grenze überschreiten würde, wird es nicht ausgeführt. Wenn eine manuelle Steuerung die │ │ │ │ │ Softgrenze überschreiten würde, wird diese an der Softgrenze beendet. │ │ │ │ │ Der Referenzschalter (engl. home switch) kann an einer beliebigen Stelle innerhalb des Verfahrwegs │ │ │ │ │ (zwischen harten Anschlägen) platziert werden. Solange die externe Hardware die Motorverstärker │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 100 / 1331 │ │ │ │ │ │ │ │ │ │ nicht deaktiviert, wenn der Endschalter erreicht wird, kann einer der Endschalter als Referenzschalter │ │ │ │ │ verwendet werden. │ │ │ │ │ Die Nullposition ist die Stelle auf der Achse, die im Maschinenkoordinatensystem 0 ist. Normalerweise │ │ │ │ │ liegt die Nullposition innerhalb der weichen Grenzen. Bei Drehmaschinen erfordert der Modus Konstante Schnittgeschwindigkeit, dass X=0 dem Zentrum der Spindeldrehung entspricht, wenn keine │ │ │ │ │ @@ -7169,15 +7169,15 @@ │ │ │ │ │ The figures below show the general idea of wiring multiple switches to a single input pin. In each │ │ │ │ │ case, when one switch is actuated, the value seen on INPUT goes from logic HIGH to LOW. However, │ │ │ │ │ LinuxCNC expects a TRUE value when a switch is closed, so the corresponding Invert box must be │ │ │ │ │ checked on the pinout configuration page. The pull up resistor show in the diagrams pulls the input │ │ │ │ │ high until the connection to ground is made and then the input goes low. Otherwise the input might │ │ │ │ │ float between on and off when the circuit is open. Typically for a parallel port you might use 47 kΩ;. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 101 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.11: Normalerweise geschlossene Schalter (engl. normally closed, N/C) in Reihe verdrahtet (vereinfachtes Diagramm) │ │ │ │ │ │ │ │ │ │ Abbildung 3.12: Normalerweise offene Schalter (engl. normally open switches, N/O) parallel verdrahtet (vereinfachte Darstellung) │ │ │ │ │ Die folgenden Kombinationen von Schaltern sind in StepConf zulässig: │ │ │ │ │ @@ -7188,15 +7188,15 @@ │ │ │ │ │ • Kombinieren eines Endschalters und des Referenzschalters für eine Achse │ │ │ │ │ Die letzten beiden Kombinationen sind auch geeignet, wenn der Typ Kontakt │ │ │ │ │ Referenz verwendet wird. │ │ │ │ │ │ │ │ │ │ 3.2 Mesa-Konfigurationsassistent │ │ │ │ │ PnCconf wurde entwickelt, um Konfigurationen zu erstellen, die bestimmte Mesa Anything I/O Produkte verwenden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 102 / 1331 │ │ │ │ │ │ │ │ │ │ It can configure closed loop servo systems or hardware stepper systems. It uses a similar wizard │ │ │ │ │ approach as StepConf (used for software stepping, parallel port driven systems). │ │ │ │ │ PnCconf befindet sich noch im Entwicklungsstadium (Beta), daher gibt es noch einige Bugs und fehlende Funktionen. Bitte melden Sie Fehler und Vorschläge auf der LinuxCNC Forumsseite oder über │ │ │ │ │ die Mailing-Liste. │ │ │ │ │ @@ -7207,15 +7207,15 @@ │ │ │ │ │ The other is to use PnCconf to build a config that is close to what you want and then hand edit everything to tailor it to your needs. This would be the choice if you need extensive modifications beyond │ │ │ │ │ PnCconf’s scope or just want to tinker with / learn about LinuxCNC. │ │ │ │ │ Mit den Schaltflächen ”Vor”, ”Zurück” und ”Abbrechen” können Sie durch die Seiten des Assistenten │ │ │ │ │ navigieren. Außerdem gibt es eine Hilfeschaltfläche, die einige Informationen zu den Seiten, Diagrammen und einer Ausgabeseite enthält. │ │ │ │ │ Tipp │ │ │ │ │ Die Hilfeseite von PnCconf sollte die aktuellsten Informationen und zusätzliche Details enthalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 103 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.1 Schritt für Schritt Anleitung │ │ │ │ │ │ │ │ │ │ Abbildung 3.13: PnCconf Startfenster │ │ │ │ │ │ │ │ │ │ @@ -7227,15 +7227,15 @@ │ │ │ │ │ places a note in those files. It also allows you to select desktop shortcut / launcher options. A desktop │ │ │ │ │ shortcut will place a folder icon on the desktop that points to your new configuration files. Otherwise │ │ │ │ │ you would have to look in your home folder under linuxcnc/configs. │ │ │ │ │ A Desktop launcher will add an icon to the desktop for starting your config directly. You can also │ │ │ │ │ launch it from the main menu by using the Configuration Selector LinuxCNC found in CNC menu and │ │ │ │ │ selecting your config name. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 104 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.3 Grundlegende Informationen zur Maschine │ │ │ │ │ │ │ │ │ │ Abbildung 3.14: PnCconf Basic │ │ │ │ │ │ │ │ │ │ @@ -7247,15 +7247,15 @@ │ │ │ │ │ Tipp │ │ │ │ │ Standardwerte werden bei der Verwendung in metrisch nicht konvertiert, stellen Sie also sicher, dass │ │ │ │ │ es sich um vernünftige Werte handelt! │ │ │ │ │ │ │ │ │ │ Reaktionszeit des Computers │ │ │ │ │ The servo period sets the heart beat of the system. Latency refers to the amount of time the │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 105 / 1331 │ │ │ │ │ │ │ │ │ │ computer can be longer then that period. Just like a railroad, LinuxCNC requires everything │ │ │ │ │ on a very tight and consistent time line or bad things happen. LinuxCNC requires and uses a │ │ │ │ │ real time operating system, which just means it has a low latency ( lateness ) response time │ │ │ │ │ when LinuxCNC requires its calculations and when doing LinuxCNCs calculations it cannot be │ │ │ │ │ @@ -7302,15 +7302,15 @@ │ │ │ │ │ Up to 3 parallel ports (referred to as parports) can be used as simple I/O. You must set the address │ │ │ │ │ of the parport. You can either enter the Linux parallel port numbering system (0,1,or 2) or enter │ │ │ │ │ the actual address. The address for an on board parport is often 0x0278 or 0x0378 (written in │ │ │ │ │ hexadecimal) but can be found in the BIOS page. The BIOS page is found when you first start │ │ │ │ │ your computer you must press a key to enter it (such as F2). On the BIOS page you can find │ │ │ │ │ the parallel port address and set the mode such as SPP, EPP, etc on some computers this info is │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 106 / 1331 │ │ │ │ │ │ │ │ │ │ displayed for a few seconds during start up. For PCI parallel port cards the address can be found │ │ │ │ │ by pressing the parport address search button. This pops up the help output page with a list of │ │ │ │ │ all the PCI devices that can be found. In there should be a reference to a parallel port device with │ │ │ │ │ a list of addresses. One of those addresses should work. Not all PCI parallel ports work properly. │ │ │ │ │ @@ -7340,15 +7340,15 @@ │ │ │ │ │ • hat kein grafisches Fenster │ │ │ │ │ • Das Aussehen kann mit benutzerdefinierten Designs geändert werden │ │ │ │ │ QtPlasmaC │ │ │ │ │ • voll funktionsfähige Plasmac-Konfiguration auf der Grundlage der QtVCP-Infrastruktur. │ │ │ │ │ • Maus-/Tastaturbedienung oder Touchscreen-Bedienung │ │ │ │ │ • keine VCP-Integration │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 107 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.4 Externe Konfiguration │ │ │ │ │ Auf dieser Seite können Sie externe Steuerungen auswählen, z. B. für Jogging oder Overrides. │ │ │ │ │ │ │ │ │ │ Abbildung 3.15: Externe Steuerelemente │ │ │ │ │ @@ -7358,15 +7358,15 @@ │ │ │ │ │ a pulse generator (MPG) or switches (such as a rotary dial). External buttons might be used with a │ │ │ │ │ switch based OEM joystick. │ │ │ │ │ Joystick-Joggen │ │ │ │ │ Requires a custom device rule to be installed in the system. This is a file that LinuxCNC uses to │ │ │ │ │ connect to Linux’s device list. PnCconf will help to prepare this file. │ │ │ │ │ • Suche nach Geräteregeln durchsucht das System nach Regeln. Sie können diese Funktion verwenden, um den Namen von Geräten zu finden, die Sie bereits mit PnCconf erstellt haben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 108 / 1331 │ │ │ │ │ │ │ │ │ │ • Mit Add a device rule können Sie ein neues Gerät konfigurieren, indem Sie den Aufforderungen │ │ │ │ │ folgen. Sie müssen Ihr Gerät zur Verfügung haben. │ │ │ │ │ • Mit test device können Sie ein Gerät laden, dessen Pin-Namen sehen und seine Funktionen mit │ │ │ │ │ halmeter überprüfen. │ │ │ │ │ @@ -7384,15 +7384,15 @@ │ │ │ │ │ Neufestlegungen (engl. overrides) │ │ │ │ │ PnCconf ermöglicht die Neufestsetzung von Vorschubgeschwindigkeiten und/oder Spindeldrehzahlen über ein Handrad (MPG) oder Schalter (z. B. Drehschalter). │ │ │ │ │ │ │ │ │ │ 3.2.5 GUI-Konfiguration │ │ │ │ │ Hier können Sie die Standardeinstellungen für die Bildschirme, fügen Sie virtuelle Bedienfelder (VCP), │ │ │ │ │ und stellen Sie einige LinuxCNC Optionen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 109 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.16: GUI-Konfiguration │ │ │ │ │ │ │ │ │ │ Front-End GUI-Optionen │ │ │ │ │ Die Standardoptionen ermöglichen die Auswahl allgemeiner Standardeinstellungen für jeden Anzeigebildschirm. │ │ │ │ │ @@ -7403,15 +7403,15 @@ │ │ │ │ │ Touchy defaults are options specific to Touchy. Most of Touchy’s options can be changed while Touchy │ │ │ │ │ is running using the preference page. Touchy uses GTK to draw its screen, and GTK supports themes. │ │ │ │ │ Themes controls the basic look and feel of a program. You can download themes from the net or edit │ │ │ │ │ them yourself. There are a list of the current themes on the computer that you can pick from. To help │ │ │ │ │ some of the text to stand out PnCconf allows you to override the Themes’s defaults. The position and │ │ │ │ │ force max options can be used to move Touchy to a second monitor if the system is capable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 110 / 1331 │ │ │ │ │ │ │ │ │ │ QtPlasmaC-Optionen sind spezifisch für QtPlasmac, alle allgemeinen Optionen, die nicht benötigt werden, sind deaktiviert. Wenn QtPlasmac ausgewählt wird, ist der folgende Bildschirm ein Bildschirm │ │ │ │ │ zur Einstellung der Benutzertasten, der spezifisch für QtPlasmaC ist, und die VCP-Optionen sind nicht │ │ │ │ │ verfügbar. │ │ │ │ │ VCP Optionen │ │ │ │ │ @@ -7447,15 +7447,15 @@ │ │ │ │ │ Unter „Anzeigeoptionen“ können Größe, Position und max. Kraft auf einem „eigenständigen“ Panel │ │ │ │ │ verwendet werden, um beispielsweise den Bildschirm auf einem zweiten Monitor zu platzieren, wenn │ │ │ │ │ das System dazu in der Lage ist. │ │ │ │ │ Sie können ein GTK-Thema auswählen, welches das grundlegende Erscheinungsbild des Panels festlegt. Normalerweise möchten Sie, dass dies mit dem Front-End-Bildschirm übereinstimmt. Diese Optionen werden verwendet, wenn Sie auf die Schaltfläche ”Beispiel anzeigen” klicken. Mit GladeVCP │ │ │ │ │ können Sie je nach Front-End-Bildschirm auswählen, wo das Panel angezeigt werden soll. │ │ │ │ │ Bei AXIS kann er in der Mitte oder auf der rechten Seite stehen, bei Touchy in der Mitte. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 111 / 1331 │ │ │ │ │ │ │ │ │ │ Standardeinstellungen und Optionen │ │ │ │ │ • Referenzfahrt vor Manueller Dateneingabe / Ausführung erforderlich machen │ │ │ │ │ – Wenn Sie möchten, dass die Maschine vor der Referenzfahrt bewegt werden kann, deaktivieren Sie dieses Kontrollkästchen. │ │ │ │ │ • Popup-Tool-Eingabeaufforderung │ │ │ │ │ @@ -7471,15 +7471,15 @@ │ │ │ │ │ – Wird für Werkzeugwechsler verwendet, die das Werkzeug nicht in dieselbe Tasche zurückbringen. Um Werkzeugwechsler zu unterstützen, müssen Sie einen eigenen HAL-Code hinzufügen. │ │ │ │ │ │ │ │ │ │ 3.2.6 Mesa-Konfiguration │ │ │ │ │ Die Mesa-Konfigurationsseiten erlauben es, verschiedene Firmwares zu verwenden. Auf der Basisseite │ │ │ │ │ haben Sie eine Mesa-Karte ausgewählt. Hier wählen Sie die verfügbare Firmware aus und bestimmen, │ │ │ │ │ welche und wie viele Komponenten verfügbar sind. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 112 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.17: Mesa Board Konfiguration │ │ │ │ │ Parport address is used only with Mesa parport card, the 7i43. An on board parallel port usually uses │ │ │ │ │ 0x278 or 0x378 though you should be able to find the address from the BIOS page. The 7i43 requires │ │ │ │ │ the parallel port to use the EPP mode, again set in the BIOS page. If using a PCI parallel port the │ │ │ │ │ @@ -7489,15 +7489,15 @@ │ │ │ │ │ │ │ │ │ │ PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. If using Mesa │ │ │ │ │ daughter boards the docs for the board should give recommendations. │ │ │ │ │ │ │ │ │ │ Wichtig │ │ │ │ │ Es ist wichtig, diese zu beachten, um Schäden zu vermeiden und die beste Leistung zu erzielen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 113 / 1331 │ │ │ │ │ │ │ │ │ │ Der 7i33 benötigt PDM und eine PDM-Basisfrequenz von 6 MHz │ │ │ │ │ Der 7i29 benötigt PWM und eine PWM-Basisfrequenz von 20 kHz │ │ │ │ │ Das 7i30 erfordert PWM und eine PWM-Basisfrequenz von 20 kHz │ │ │ │ │ Das 7i40 erfordert PWM und eine PWM-Basisfrequenz von 50 kHz │ │ │ │ │ @@ -7521,48 +7521,48 @@ │ │ │ │ │ After choosing all these options press the Accept Component Changes button and PnCconf will update │ │ │ │ │ the I/O setup pages. Only I/O tabs will be shown for available connectors, depending on the Mesa │ │ │ │ │ board. │ │ │ │ │ │ │ │ │ │ 3.2.7 Mesa I/O-Einrichtung │ │ │ │ │ Die Registerkarten werden zur Konfiguration der Eingangs- und Ausgangspins der Mesa-Karten verwendet. Mit PnCconf können Sie benutzerdefinierte Signalnamen zur Verwendung in benutzerdefinierten HAL-Dateien erstellen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 114 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.18: Mesa I/O C2 Einrichtung │ │ │ │ │ Auf dieser Registerkarte mit dieser Firmware sind die Komponenten für eine 7i33 Tochterplatine eingestellt, die normalerweise mit Servos mit geschlossenem Regelkreis verwendet wird. Beachten Sie, │ │ │ │ │ dass die Komponentennummern der Encoderzähler und PWM-Treiber nicht in numerischer Reihenfolge sind. Dies entspricht den Anforderungen für die Tochterkarte. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 115 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.19: Mesa I/O C3 Einrichtung │ │ │ │ │ Auf dieser Registerkarte sind alle Pins GPIO. Beachten Sie die 3-stelligen Nummern - sie entsprechen │ │ │ │ │ der HAL-Pin-Nummer. GPIO-Pins können als Eingang oder Ausgang gewählt werden und können invertiert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 116 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.20: Mesa I/O C4 Einrichtung │ │ │ │ │ On this tab there are a mix of step generators and GPIO. Step generators output and direction pins │ │ │ │ │ can be inverted. Note that inverting a Step Gen-A pin (the step output pin) changes the step timing. │ │ │ │ │ It should match what your controller expects. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 117 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.8 Konfiguration des parallelen Anschlusses │ │ │ │ │ │ │ │ │ │ Der Parallelport kann für einfache E/A verwendet werden, ähnlich wie die GPIO-Pins von Mesa’s. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 118 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.9 Konfiguration der Achsen │ │ │ │ │ │ │ │ │ │ Abbildung 3.21: Konfiguration des Achsantriebs │ │ │ │ │ Diese Seite ermöglicht das Konfigurieren und Testen der Motor- und/oder Encoderkombination. Bei │ │ │ │ │ @@ -7575,15 +7575,15 @@ │ │ │ │ │ Handbook 1 standards or AXIS graphical display will not make much sense. Hopefully the help │ │ │ │ │ page and diagrams can help figure this out. Note that axis directions are based on TOOL movement not table movement. There is no acceleration ramping with the open loop test so start with │ │ │ │ │ lower DAC numbers. By moving the axis a known distance one can confirm the encoder scaling. │ │ │ │ │ The encoder should count even without the amp enabled depending on how power is supplied to │ │ │ │ │ the encoder. │ │ │ │ │ 1 ”axis nomenclature” in the chapter ”Numerical Control” in the ”Machinery’s Handbook” published by Industrial Press. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 119 / 1331 │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ Wenn Motor und Encoder die Zählrichtung nicht übereinstimmen, läuft das Servo bei PIDRegelung weg. │ │ │ │ │ │ │ │ │ │ Da die PID-Einstellungen derzeit nicht in PnCconf getestet werden können, sind die Einstellungen │ │ │ │ │ @@ -7624,15 +7624,15 @@ │ │ │ │ │ 9.87 │ │ │ │ │ 10.07 │ │ │ │ │ │ │ │ │ │ • Führen Sie eine lineare Anpassung nach dem Prinzip der kleinsten Quadrate durch, um die Koeffizienten a und b so zu ermitteln, dass meas=a*raw+b │ │ │ │ │ • Beachten Sie, dass wir eine Rohausgabe wünschen, bei der das gemessene Ergebnis mit der befohlenen Ausgabe identisch ist. Das bedeutet │ │ │ │ │ – cmd=a*raw+b │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 120 / 1331 │ │ │ │ │ │ │ │ │ │ – raw=(cmd-b)/a │ │ │ │ │ • Folglich können die Koeffizienten a und b aus der linearen Anpassung direkt als Skala und Offset │ │ │ │ │ für den Regler verwendet werden. │ │ │ │ │ MAX OUTPUT │ │ │ │ │ @@ -7652,25 +7652,25 @@ │ │ │ │ │ speed. │ │ │ │ │ Bürstenlose Motorsteuerung │ │ │ │ │ These options are used to allow low level control of brushless motors using special firmware and │ │ │ │ │ daughter boards. It also allows conversion of HALL sensors from one manufacturer to another. │ │ │ │ │ It is only partially supported and will require one to finish the HAL connections. Contact the │ │ │ │ │ mail-list or forum for more help. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 121 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.22: Berechnung der Achsenskala │ │ │ │ │ The scale settings can be directly entered or one can use the calculate scale button to assist. Use the │ │ │ │ │ check boxes to select appropriate calculations. Note that pulley teeth requires the number of teeth │ │ │ │ │ not the gear ratio. Worm turn ratio is just the opposite it requires the gear ratio. If your happy with │ │ │ │ │ the scale press apply otherwise push cancel and enter the scale directly. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 122 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.23: Konfiguration der Achsen │ │ │ │ │ Also refer to the diagram tab for two examples of home and limit switches. These are two examples │ │ │ │ │ of many different ways to set homing and limits. │ │ │ │ │ │ │ │ │ │ @@ -7681,15 +7681,15 @@ │ │ │ │ │ Denken Sie daran, dass sich positive und negative Richtungen auf das WERKZEUG und nicht auf den │ │ │ │ │ Tisch beziehen, wie im Maschinenhandbuch beschrieben. │ │ │ │ │ Bei einer typischen Knie- oder Bettfräse │ │ │ │ │ • Wenn sich die TABLE nach außen bewegt, ist das die positive Y-Richtung │ │ │ │ │ • Wenn sich die TABLE nach links bewegt, ist das die positive X-Richtung │ │ │ │ │ • Wenn sich die TABLE nach unten bewegt, ist das die positive Z-Richtung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 123 / 1331 │ │ │ │ │ │ │ │ │ │ • Wenn sich der KOPF nach oben bewegt, ist das die positive Z-Richtung │ │ │ │ │ Bei einer typischen Drehmaschine │ │ │ │ │ • wenn sich das WERKZEUG nach rechts, weg vom Futter, bewegt │ │ │ │ │ • das ist die positive Z-Richtung │ │ │ │ │ @@ -7733,15 +7733,15 @@ │ │ │ │ │ Fahren Sie die Achse zum Ursprung. Markieren Sie eine Referenz auf dem beweglichen Schlitten │ │ │ │ │ und dem unbeweglichen Träger (so dass sie in einer Linie liegen) und fahren Sie die Maschine │ │ │ │ │ bis zum Ende der Grenzen. Messen Sie den Abstand zwischen den Markierungen, der einer der │ │ │ │ │ Verfahrwege ist. Bewegen Sie den Tisch an das andere Ende des Verfahrwegs. Messen Sie die │ │ │ │ │ Markierungen erneut. Das ist der andere Verfahrweg. Wenn sich der URSPRUNG an einer der │ │ │ │ │ Begrenzungen befindet, ist dieser Verfahrweg gleich Null. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 124 / 1331 │ │ │ │ │ │ │ │ │ │ (Maschinen-)URSPRUNG │ │ │ │ │ Der Ursprung ist der MASCHINENNullpunkt. (nicht der Nullpunkt Sie Ihre Cutter / Material auf). │ │ │ │ │ LinuxCNC verwendet diesen Punkt, um alles andere von Referenz. Es sollte innerhalb der Software Grenzen sein. LinuxCNC verwendet die Referenzpunkt (engl. home)-Schalter-Position, um │ │ │ │ │ die Ursprungs-Position zu bestimmen (bei Verwendung von Home-Schalter oder muss manuell │ │ │ │ │ @@ -7783,29 +7783,29 @@ │ │ │ │ │ Ermöglicht die Einstellung der Verriegelungsrichtung auf die gleiche oder entgegengesetzte │ │ │ │ │ Richtung wie die Suchrichtung. │ │ │ │ │ Encoder-Index für Referenzpunkt verwenden │ │ │ │ │ LinuxCNC sucht während der Latch-Phase der Referenzfahrt nach einem Encoder-Indeximpuls. │ │ │ │ │ Kompensationsdatei verwenden │ │ │ │ │ Ermöglicht die Angabe eines Komp-Dateinamens und -typs. Ermöglicht eine anspruchsvolle Kompensation. Siehe den> des INI Kapitels. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 125 / 1331 │ │ │ │ │ │ │ │ │ │ Verwenden des Umkehrspiel-Ausgleichs │ │ │ │ │ Ermöglicht die Einstellung einer einfachen Kompensation des Umkehrspiels. Kann nicht mit Kompensationsdatei verwendet werden. Siehe den > des │ │ │ │ │ INI Kapitels. │ │ │ │ │ │ │ │ │ │ Abbildung 3.24: AXIS-Hilfsdiagramm │ │ │ │ │ Das Diagramm soll helfen, ein Beispiel für Endschalter und Standard-Achsbewegungsrichtungen zu │ │ │ │ │ demonstrieren. In diesem Beispiel wurde die Z-Achse mit zwei Endschaltern versehen, wobei der │ │ │ │ │ positive Schalter als Home-Schalter verwendet wird. Der Maschinen-Ursprung (Nullpunkt, engl. machine origin) befindet sich am negativen Endschalter. Die linke Kante des Schlittens ist der negative │ │ │ │ │ Grenzwert und die rechte der positive Grenzwert. Die ENDGÜLTIGE HOME-POSITION soll 4 Zoll │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 126 / 1331 │ │ │ │ │ │ │ │ │ │ vom ORIGIN auf der positiven Seite entfernt sein. Wenn der Schlitten an die positive Grenze bewegt │ │ │ │ │ würde, würden wir 10 Zoll zwischen der negativen Grenze und dem negativen Auslösestift messen. │ │ │ │ │ │ │ │ │ │ 3.2.10 Spindel-Konfiguration │ │ │ │ │ @@ -7815,15 +7815,15 @@ │ │ │ │ │ Option ausgewählt wurde! │ │ │ │ │ │ │ │ │ │ Abbildung 3.25: Spindelmotor/Encoder-Konfiguration │ │ │ │ │ Diese Seite ähnelt der Seite zur Konfiguration der Achsenmotoren. │ │ │ │ │ Es gibt einige Unterschiede: │ │ │ │ │ • Sofern man sich nicht für eine schrittgetriebene Spindel entschieden hat, gibt es keine Beschleunigungsoder Geschwindigkeitsbegrenzung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 127 / 1331 │ │ │ │ │ │ │ │ │ │ • Es gibt keine Unterstützung für Gangschaltungen oder Bereiche. │ │ │ │ │ • Wenn Sie eine VCP-Spindelanzeigeoption gewählt haben, können die Skala für die Spindeldrehzahl │ │ │ │ │ und die Filtereinstellungen angezeigt werden. │ │ │ │ │ • Spindle-at-Speed ermöglicht LinuxCNC zu warten, bis die Spindel auf die gewünschte Geschwindigkeit vor dem Bewegen der Achse ist. Dies ist besonders praktisch auf Drehmaschinen mit konstantem Oberflächenvorschub und große Geschwindigkeit Durchmesseränderungen. Es erfordert │ │ │ │ │ @@ -7840,26 +7840,26 @@ │ │ │ │ │ Dies ermöglicht die Einstellung von HALUI-Befehlen und das Laden von ClassicLadder- und BeispielSPS-Programme. Wenn Sie GladeVCP-Optionen ausgewählt haben, z. B. zum Nullstellen der Achse, │ │ │ │ │ werden Befehle angezeigt. Im Kapitel HALUI finden Sie weitere Informationen zur Verwendung benutzerdefinierter halcmds. Es gibt mehrere Optionen für Kontaktplanprogramme. Das Notaus (engl. │ │ │ │ │ E-stop)-Programm ermöglicht es einem externen Notaus-Schalter oder dem GUI-Frontend, ein Notaus auszulösen. Es verfügt auch über ein zeitgesteuertes Schmiermittelpumpensignal. Das Z-AutoTouch-Off-Programm verfügt über eine Touch-Off-Platte, die GladeVCP-Touch-Off-Taste und spezielle │ │ │ │ │ HALUI-Befehle, um den aktuellen Benutzerursprung auf Null zu setzen und schnell zu löschen. Das │ │ │ │ │ serielle Modbus-Programm ist im Grunde eine leere Programmvorlage, die ClassicLadder für seriellen │ │ │ │ │ Modbus einrichtet. Siehe das Kapitel > im Handbuch. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 128 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.26: PnCconf, erweiterte Optionen │ │ │ │ │ │ │ │ │ │ 3.2.12 HAL-Komponenten │ │ │ │ │ Auf dieser Seite können Sie zusätzliche HAL-Komponenten hinzufügen, die Sie für benutzerdefinierte │ │ │ │ │ HAL-Dateien benötigen. Auf diese Weise sollte man die Haupt-HAL-Datei nicht von Hand bearbeiten │ │ │ │ │ müssen, aber dennoch die vom Benutzer benötigten Komponenten bei der Konfiguration berücksichtigen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 129 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 3.27: HAL-Komponenten │ │ │ │ │ Die erste Auswahl sind Komponenten, die PnCconf intern verwendet. Sie können pncconf so konfigurieren, dass zusätzliche Instanzen der Komponenten für Ihre eigene HAL-Datei geladen werden. │ │ │ │ │ Wählen Sie die Anzahl der Instanzen, die Ihre benutzerdefinierte Datei benötigt, PnCconf fügt die │ │ │ │ │ benötigten Instanzen danach hinzu. │ │ │ │ │ @@ -7867,15 +7867,15 @@ │ │ │ │ │ letzte verwenden. │ │ │ │ │ Benutzerdefinierte Komponenten-Befehle │ │ │ │ │ Mit dieser Auswahl können Sie HAL-Komponenten laden, die PnCconf nicht verwendet. Fügen │ │ │ │ │ Sie den Befehl loadrt oder loadusr unter der Überschrift loading command hinzu. Fügen Sie den │ │ │ │ │ Befehl addf unter der Überschrift Thread-Befehl hinzu. Die Komponenten werden dem Thread │ │ │ │ │ zwischen dem Lesen von Eingaben und dem Schreiben von Ausgaben in der Reihenfolge hinzugefügt, in der Sie sie im Befehl ”thread” schreiben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 130 / 1331 │ │ │ │ │ │ │ │ │ │ 3.2.13 PnCconf für Fortgeschrittene │ │ │ │ │ PnCconf ist bestrebt, flexible Anpassungen durch den Benutzer zu ermöglichen. PnCconf unterstützt │ │ │ │ │ benutzerdefinierte Signalnamen, benutzerdefiniertes Laden von Komponenten, benutzerdefinierte HALDateien und benutzerdefinierte Firmware. │ │ │ │ │ Es gibt auch Signalnamen, die PnCconf immer bereitstellt, unabhängig von den gewählten Optionen │ │ │ │ │ @@ -7901,15 +7901,15 @@ │ │ │ │ │ GPIO-Pins werden einfach mit dem eingegebenen Signalnamen verbunden │ │ │ │ │ Auf diese Weise kann man sich mit diesen Signalen in den benutzerdefinierten HAL-Dateien verbinden │ │ │ │ │ und hat trotzdem die Möglichkeit, sie später zu verschieben. │ │ │ │ │ Benutzerdefinierte Signalnamen │ │ │ │ │ Die Seite mit HAL Komponenten kann verwendet werden, um Komponenten zu laden, die ein │ │ │ │ │ Benutzer für die Anpassung benötigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 131 / 1331 │ │ │ │ │ │ │ │ │ │ Laden der benutzerdefinierten Firmware │ │ │ │ │ PnCconf sucht auf dem System nach Firmware und sucht dann nach der XML-Datei, die es in das │ │ │ │ │ konvertieren kann, was es versteht. Diese XML-Dateien werden nur für offiziell freigegebene │ │ │ │ │ Firmware vom LinuxCNC-Team bereitgestellt. Um benutzerdefinierte Firmware zu verwenden, │ │ │ │ │ @@ -7928,15 +7928,15 @@ │ │ │ │ │ • custom.hal ist für HAL-Befehle, die nicht nach dem Laden des GUI-Frontends ausgeführt werden müssen. Es wird diese erst nach der HAL-Datei mit dem Konfigurationsnamen ausgeführt. │ │ │ │ │ • custom_postgui.hal ist für Befehle gedacht, die ausgeführt werden müssen, nachdem AXIS │ │ │ │ │ geladen wurde oder eine eigenständige PyVCP-Anzeige geladen wurde. │ │ │ │ │ • custom_gvcp.hal ist für Befehle, die ausgeführt werden müssen, nachdem GladeVCP geladen │ │ │ │ │ wurde. │ │ │ │ │ • shutdown.hal ist für Befehle, die ausgeführt werden, wenn LinuxCNC kontrolliert herunterfährt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 132 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 4 │ │ │ │ │ │ │ │ │ │ Konfiguration │ │ │ │ │ 4.1 Integrator-Konzepte │ │ │ │ │ @@ -7955,15 +7955,15 @@ │ │ │ │ │ • /home/fred/linuxcnc/nc_files │ │ │ │ │ • /home/fred/linuxcnc/configs/mill │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.ini │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.hal │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.var │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/tool.tbl │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 133 / 1331 │ │ │ │ │ │ │ │ │ │ 4.1.1.2 Befehlszeile │ │ │ │ │ Wenn Sie LinuxCNC von der Kommandozeile aus und geben Sie den Namen und den Speicherort der │ │ │ │ │ INI-Datei können die Dateispeicherorte in einem anderen Ort sein. Um die Optionen für die Ausführung von LinuxCNC von der Kommandozeile laufen linuxcnc -h. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -7995,15 +7995,15 @@ │ │ │ │ │ Software-Schrittgenerator, ob es Zeit für einen weiteren Schrittimpuls ist. Eine kürzere Periode ermöglicht es Ihnen, mehr Impulse pro Sekunde zu erzeugen, innerhalb von Grenzen. Wenn Sie jedoch │ │ │ │ │ eine zu kurze Periode wählen, verbringt Ihr Computer so viel Zeit mit der Erzeugung von Schrittimpulsen, dass alles andere langsamer wird oder vielleicht sogar zum Stillstand kommt. Die Latenzzeit │ │ │ │ │ und die Anforderungen an die Schrittmotorsteuerung beeinflussen die kürzeste Zeitspanne, die Sie │ │ │ │ │ verwenden können. │ │ │ │ │ 1 Dieser Abschnitt bezieht sich auf die Verwendung stepgen, LinuxCNCs eingebauten Schritt-Generator. Einige HardwareGeräte haben ihre eigenen Schritt-Generator und nicht mit LinuxCNC ’ s built-in ein. In diesem Fall, verweisen wir auf Ihr │ │ │ │ │ Hardware-Handbuch │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 134 / 1331 │ │ │ │ │ │ │ │ │ │ Im schlimmsten Fall treten Latenzzeiten nur ein paar Mal pro Minute auf und die Wahrscheinlichkeit, │ │ │ │ │ dass eine schlechte Latenz genau dann auftritt, wenn der Motor die Richtung ändert, ist gering. Es │ │ │ │ │ kann also zu sehr seltenen Fehlern kommen, die hin und wieder ein Teil ruinieren und bei denen eine │ │ │ │ │ Fehlerbehebung unmöglich ist. │ │ │ │ │ @@ -8039,15 +8039,15 @@ │ │ │ │ │ Servosysteme sind in der Lage, eine höhere Geschwindigkeit und Genauigkeit zu erreichen als entsprechende Schrittmachersysteme, sind aber teurer und komplexer. Im Gegensatz zu Schrittmotorensystemen benötigen Servosysteme eine Art von Positionsrückmeldung und müssen eingestellt oder getunt werden, da sie nicht wie Schrittmotorensysteme direkt nach dem Auspacken funktionieren. Diese │ │ │ │ │ Unterschiede bestehen, weil Servos ein geschlossener Regelkreis sind, im Gegensatz zu Schrittmotoren, die im Allgemeinen offener Regelkreis betrieben werden. Was bedeutet geschlossener Regelkreis? Schauen wir uns ein vereinfachtes Diagramm an, wie ein Servomotorensystem angeschlossen │ │ │ │ │ ist. │ │ │ │ │ 2 steplen refers to a parameter that adjusts the performance of LinuxCNC’s built-in step generator, stepgen, which is a HAL │ │ │ │ │ component. This parameter adjusts the length of the step pulse itself. Keep reading, all will be explained eventually. │ │ │ │ │ 3 dirhold refers to a parameter that adjusts the length of the direction hold time. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 135 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 4.1: Servo Loop │ │ │ │ │ Dieses Diagramm zeigt, dass das Eingangssignal (und das Rückkopplungssignal) den Summierverstärker antreibt, der Summierverstärker den Leistungsverstärker antreibt, der Leistungsverstärker den │ │ │ │ │ Motor antreibt, der Motor die Last (und das Rückkopplungsgerät) antreibt und das Rückkopplungsgerät (und das Eingangssignal) den Motor antreibt. Dies sieht aus wie ein Kreis (eine geschlossene │ │ │ │ │ Schleife), in dem A B, B C, C D und D A steuert. │ │ │ │ │ @@ -8062,15 +8062,15 @@ │ │ │ │ │ PID steht für Proportional, Integral und Derivativ. Der Proportionalwert bestimmt die Reaktion auf │ │ │ │ │ den aktuellen Fehler, der Integralwert bestimmt die Reaktion auf der Grundlage der Summe der letzten Fehler und der Derivativwert bestimmt die Reaktion auf der Grundlage der Rate, mit der sich │ │ │ │ │ der Fehler geändert hat. Sie sind drei gemeinsame mathematische Techniken, die auf die Aufgabe, │ │ │ │ │ einen Arbeitsprozess, um einen Sollwert zu folgen angewendet werden. Im Fall von LinuxCNC ist der │ │ │ │ │ Prozess, den wir steuern wollen, die tatsächliche Achsenposition und der Sollwert ist die befohlene │ │ │ │ │ Achsenposition. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 136 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 4.2: PID-Schleife │ │ │ │ │ Durch Abstimmung der drei Konstanten im PID-Regler-Algorithmus kann der Regler eine auf die spezifischen Prozessanforderungen abgestimmte Regelwirkung erzielen. Die Reaktion des Reglers lässt │ │ │ │ │ sich beschreiben anhand des Ansprechens des Reglers auf eine Regelabweichung, des Ausmaßes, in │ │ │ │ │ dem der Regler über den Sollwert hinausschießt, und des Grades der Systemschwingung. │ │ │ │ │ @@ -8090,15 +8090,15 @@ │ │ │ │ │ korrigiert werden müssen. Der kumulierte Fehler wird dann mit der Integralverstärkung multipliziert │ │ │ │ │ und zum Reglerausgang addiert. │ │ │ │ │ Der Integral-Anteil (wenn er zum Proportional-Anteil (kurz P-Anteil) hinzugefügt wird) beschleunigt │ │ │ │ │ die Bewegung des Prozesses in Richtung Sollwert und beseitigt den verbleibenden stationären Fehler, der bei einem reinen Proportionalregler auftritt. Da der Integral-Anteil jedoch auf akkumulierte │ │ │ │ │ Fehler aus der Vergangenheit reagiert, kann er dazu führen, dass der aktuelle Wert über den Sollwert hinausschießt (den Sollwert überschreitet und dann eine Abweichung in die andere Richtung │ │ │ │ │ erzeugt). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 137 / 1331 │ │ │ │ │ │ │ │ │ │ 4.1.4.4 Differenzierender-Anteil (D-Anteil) │ │ │ │ │ Die Änderungsrate des Prozessfehlers wird berechnet, indem die Steigung des Fehlers nach der Zeit │ │ │ │ │ (d. h. seine erste Ableitung nach der Zeit) bestimmt und diese Änderungsrate mit der Ableitungsverstärkung multipliziert wird. │ │ │ │ │ Der Derivationsanteil verlangsamt die Änderungsrate des Reglerausgangs, und dieser Effekt ist in │ │ │ │ │ @@ -8125,15 +8125,15 @@ │ │ │ │ │ die beste Echtzeitleistung (RT) zu erzielen. Mit dem gepatchten RTAI-Kernel können Sie Anwendungen mit strengen Zeitvorgaben schreiben. RTAI gibt Ihnen die Möglichkeit, Dinge wie die SoftwareSchritterzeugung durchzuführen, die ein präzises Timing erfordern. │ │ │ │ │ 4.1.5.1 ACPI │ │ │ │ │ Das Advanced Configuration and Power Interface (ACPI) hat viele verschiedene Funktionen, von denen die meisten die RT-Leistung beeinträchtigen (z. B.: Energieverwaltung, CPU-Abschaltung, CPUFrequenzskalierung usw.). Der LinuxCNC-Kernel (und wahrscheinlich alle RTAI-gepatchten Kernel) │ │ │ │ │ hat ACPI deaktiviert. ACPI kümmert sich auch um das Herunterfahren des Systems, nachdem ein │ │ │ │ │ Shutdown gestartet wurde, und deshalb müssen Sie möglicherweise den Netzschalter drücken, um │ │ │ │ │ Ihren Computer vollständig auszuschalten. Die RTAI-Gruppe hat dies in den letzten Versionen verbessert, so dass sich Ihr LinuxCNC-System vielleicht doch von selbst ausschaltet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 138 / 1331 │ │ │ │ │ │ │ │ │ │ 4.2 Latency Testing │ │ │ │ │ 4.2.1 What is latency? │ │ │ │ │ Latency is how long it takes the PC to stop what it is doing and respond to an external request, such │ │ │ │ │ as running one of LinuxCNC’s periodic realtime threads. The lower the latency, the faster you can run │ │ │ │ │ @@ -8167,15 +8167,15 @@ │ │ │ │ │ latency-test 50000 1000000 │ │ │ │ │ │ │ │ │ │ Damit wird der Latenztest mit einer Basis-Thread-Periode von 50 µs und einer Servo-Thread-Periode │ │ │ │ │ von 1 ms gestartet. │ │ │ │ │ Die verfügbaren Optionen können Sie in der Befehlszeile eingeben: │ │ │ │ │ latency-test -h │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 139 / 1331 │ │ │ │ │ │ │ │ │ │ After starting a latency test you should see something like this: │ │ │ │ │ │ │ │ │ │ Abbildung 4.3: HAL-Latenz-Test │ │ │ │ │ Während der Test läuft, sollten Sie den Computer beschäftigen: Bewegen Sie die Fenster auf dem │ │ │ │ │ @@ -8196,15 +8196,15 @@ │ │ │ │ │ ist kein guter Kandidat für LinuxCNC, unabhängig davon, ob Sie Software-Stepping verwenden oder │ │ │ │ │ nicht. │ │ │ │ │ Anmerkung │ │ │ │ │ If you get high numbers, there may be ways to improve them. Another PC had very bad latency │ │ │ │ │ (several milliseconds) when using the onboard video. But a $5 used video card solved the problem. │ │ │ │ │ LinuxCNC does not require bleeding edge hardware. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 140 / 1331 │ │ │ │ │ │ │ │ │ │ Weitere Informationen zum Stepper-Tuning finden Sie im Kapitel Stepper Tuning. │ │ │ │ │ Additional command line tools are available for examining latency when LinuxCNC is not │ │ │ │ │ running. │ │ │ │ │ 4.2.2.2 Latency Plot │ │ │ │ │ @@ -8228,15 +8228,15 @@ │ │ │ │ │ 4.2.2.3 Latenz-Histogramm │ │ │ │ │ latency-histogram zeigt ein Histogramm der Latenz (Jitter) für einen Basis- und einen Servo-Thread │ │ │ │ │ an. │ │ │ │ │ Usage: │ │ │ │ │ latency-histogram --help | -? │ │ │ │ │ latency-histogram [Options] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 141 / 1331 │ │ │ │ │ │ │ │ │ │ Optionen: │ │ │ │ │ --base ns (Basisgewindeintervall, Voreinstellung: 25000, min: 5000) │ │ │ │ │ --servo ns (Servo-Thread-Intervall, Voreinstellung: 1000000, Mindestwert: 25000) │ │ │ │ │ --bbinsize ns (Basis-Bin-Größe, Voreinstellung: 100 │ │ │ │ │ @@ -8259,15 +8259,15 @@ │ │ │ │ │ │ │ │ │ │ Abbildung 4.5: Latenz-Histogramm-Fenster │ │ │ │ │ │ │ │ │ │ 4.2.3 Latency tuning │ │ │ │ │ LinuxCNC can run on many different hardware platforms and with many different realtime kernels, │ │ │ │ │ and they all may benefit from tuning for optimal latency. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 142 / 1331 │ │ │ │ │ │ │ │ │ │ A primary goal in tuning the system for LinuxCNC is to reserve a CPU for the exclusive use of LinuxCNC’s realtime tasks, so that other tasks (both user programs and kernel threads) do not interfere │ │ │ │ │ with LinuxCNC’s access to that CPU. │ │ │ │ │ When specific tuning options are believed to be universally helpful LinuxCNC does this tuning automatically at startup, but many tuning options are machine-specific and cannot be done automatically. │ │ │ │ │ The person installing LinuxCNC will need to experimentally determine the optimal tuning for their │ │ │ │ │ @@ -8298,15 +8298,15 @@ │ │ │ │ │ • rcu_nocbs: Prevent RCU callbacks from running on these CPUs. │ │ │ │ │ • rcu_nocb_poll: Poll for RCU callbacks instead of using sleep/wake. │ │ │ │ │ • nohz_full: Disable clock tick on these CPUs. │ │ │ │ │ Sysctl │ │ │ │ │ Details here: https://www.kernel.org/doc/html/latest/scheduler/sched-rt-group.html │ │ │ │ │ • sysctl.kernel.sched_rt_runtime_us: Set to -1 to remove the limit on how much time realtime tasks may use. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 143 / 1331 │ │ │ │ │ │ │ │ │ │ 4.3 Stepper-Abstimmung │ │ │ │ │ 4.3.1 Das Beste aus Software Stepping herausholen │ │ │ │ │ Die Erzeugung von Schrittimpulsen in der Software hat einen sehr großen Vorteil - sie ist kostenlos. │ │ │ │ │ Nahezu jeder PC verfügt über eine parallele Schnittstelle, die in der Lage ist, die von der Software │ │ │ │ │ @@ -8339,15 +8339,15 @@ │ │ │ │ │ Software-Stepping. Zahlen über 1 Millisekunde (1.000.000 Nanosekunden) bedeuten, dass der PC │ │ │ │ │ ist kein guter Kandidat für LinuxCNC, unabhängig davon, ob Sie Software-Stepping verwenden oder │ │ │ │ │ nicht. │ │ │ │ │ Beachten Sie, dass, wenn Sie hohe Zahlen erhalten, es Möglichkeiten geben kann, sie zu verbessern. │ │ │ │ │ Zum Beispiel hatte ein PC eine sehr schlechte Latenz (mehrere Millisekunden), wenn er das OnboardVideo verwendete. Aber eine $ 5 gebrauchte Grafikkarte löste das Problem - LinuxCNC benötigt keine │ │ │ │ │ modernste Hardware. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 144 / 1331 │ │ │ │ │ │ │ │ │ │ 4.3.1.2 Finden Sie heraus, was Ihre Antriebe erwarten │ │ │ │ │ Verschiedene Marken von Schrittmotorantrieben haben unterschiedliche Zeitanforderungen an ihre │ │ │ │ │ Schritt- und Richtungseingänge. Sie müssen also das Datenblatt mit den technischen Daten Ihres │ │ │ │ │ Antriebs heraussuchen (oder danach googeln). │ │ │ │ │ @@ -8383,15 +8383,15 @@ │ │ │ │ │ dass alle Änderungen an den STEP- und DIR-Leitungen durch 20 µs getrennt sind. Alles ist gut, oder? │ │ │ │ │ Falsch! Wenn es NULL Latenz gäbe, dann wären alle Kanten durch 20 µs getrennt, und alles wäre │ │ │ │ │ in Ordnung. Aber alle Computer haben eine gewisse Latenz, d.h. mit Verzögerung. Wenn der Computer eine Latenz von 11 µs hat, bedeutet das, dass die Software manchmal 11 µs später läuft, als │ │ │ │ │ sie eigentlich sollte. Wenn ein Durchlauf der Software 11 µs zu spät ist und der nächste pünktlich erfolgt, beträgt die Verzögerung vom ersten zum zweiten Durchlauf nur 9 µs. Wenn der erste Durchlauf │ │ │ │ │ einen Schrittimpuls erzeugte und der zweite das Richtungsbit änderte, haben Sie gerade die G202Haltezeitanforderung von 20 µs verletzt. Das bedeutet, dass Ihr Antrieb möglicherweise einen Schritt │ │ │ │ │ in die falsche Richtung gemacht hat, und Ihr Teil hat die falsche Größe. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 145 / 1331 │ │ │ │ │ │ │ │ │ │ Das wirklich Unangenehme an diesem Problem ist, dass es sehr selten auftreten kann. Im schlimmsten │ │ │ │ │ Fall treten Latenzen nur ein paar Mal pro Minute auf, und die Wahrscheinlichkeit, dass eine schlechte │ │ │ │ │ Latenz genau dann auftritt, wenn der Motor die Richtung ändert, ist gering. So kommt es zu sehr │ │ │ │ │ seltenen Fehlern, die hin und wieder ein Werkstück ruinieren und eine Fehlerbehebung unmöglich │ │ │ │ │ @@ -8434,15 +8434,15 @@ │ │ │ │ │ das, was uns zwingt, eine langsame 31 µs Periode zu verwenden. Aber die LinuxCNC Software-SchrittGenerator hat einige Parameter, mit denen Sie die verschiedenen Zeit von einer Periode auf mehrere │ │ │ │ │ zu erhöhen. Zum Beispiel, wenn steplen von 1 auf 2 geändert wird, dann wird es zwei Perioden zwischen dem Beginn und dem Ende des Schrittimpulses sein. Wenn dirhold von 1 auf 3 geändert wird, │ │ │ │ │ liegen mindestens drei Perioden zwischen dem Schrittimpuls und einem Wechsel des Richtungspins. │ │ │ │ │ Wenn wir dirhold verwenden können, um die Anforderung von 20 µs Haltezeit zu erfüllen, dann ist die │ │ │ │ │ nächstlängere Zeit die 4,5 µs ”high time”. Addiert man die Latenzzeit von 11 µs zu der ”high-time” von │ │ │ │ │ 4,5 µs, so erhält man eine Mindestzeit von 15,5 µs. Wenn Sie 15,5 µs ausprobieren, stellen Sie fest, │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 146 / 1331 │ │ │ │ │ │ │ │ │ │ dass der Computer zu träge ist, also entscheiden Sie sich für 16 µs. Wenn wir dirhold auf 1 belassen │ │ │ │ │ (die Voreinstellung), dann ist die Mindestzeit zwischen Schritt und Richtung die 16 µs Periode minus │ │ │ │ │ die 11 µs Latenzzeit = 5 µs, was nicht ausreicht. Wir brauchen weitere 15 µs. Da die Periode 16 µs │ │ │ │ │ beträgt, brauchen wir eine weitere Periode. Also ändern wir dirhold von 1 auf 2. Jetzt beträgt die │ │ │ │ │ @@ -8484,15 +8484,15 @@ │ │ │ │ │ │ │ │ │ │ Kommentare │ │ │ │ │ │ │ │ │ │ A comment line is started with a ; or a # mark. When the INI reader sees either of these marks at the │ │ │ │ │ start a line, the rest of the line is ignored by the software. Comments can be used to describe what an │ │ │ │ │ INI element will do. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 147 / 1331 │ │ │ │ │ │ │ │ │ │ ; Dies ist die Konfigurationsdatei meiner Fräsmaschine │ │ │ │ │ # Ich habe sie am 12. Januar 2012 eingerichtet. │ │ │ │ │ │ │ │ │ │ Comments can also be used to turn off a variable. This makes it easier to pick between different │ │ │ │ │ @@ -8527,15 +8527,15 @@ │ │ │ │ │ • [APPLICATIONS] Other applications to be started by LinuxCNC │ │ │ │ │ • [TRAJ] additional settings used by the real time motion controller │ │ │ │ │ • [JOINT_n] individual joint variables │ │ │ │ │ • [AXIS_l] individual axis variables │ │ │ │ │ • [KINS] kinematics variables │ │ │ │ │ • [EMCIO] settings used by the I/O Controller │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 4.4.1.3 │ │ │ │ │ │ │ │ │ │ 148 / 1331 │ │ │ │ │ │ │ │ │ │ Variablen │ │ │ │ │ │ │ │ │ │ @@ -8586,15 +8586,15 @@ │ │ │ │ │ Z_OFFSET = 12 │ │ │ │ │ Z_SAFE_DISTANCE = -10 │ │ │ │ │ │ │ │ │ │ Um die benutzerdefinierten Variablen in Ihrer HAL-Datei zu verwenden, setzen Sie den Abschnitt und │ │ │ │ │ den Variablennamen an die Stelle des Wertes. │ │ │ │ │ HAL Beispiel │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 149 / 1331 │ │ │ │ │ │ │ │ │ │ setp offset.1.offset [PROBE]Z_OFFSET │ │ │ │ │ setp stepgen.0.position-scale [JOINT_0]SCALE │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -8631,15 +8631,15 @@ │ │ │ │ │ #INCLUDE /home/myusername/myincludes/display.inc │ │ │ │ │ #INCLUDE ~/linuxcnc/myincludes/rs274ngc.inc │ │ │ │ │ │ │ │ │ │ The #INCLUDE directives are supported for one level of expansion only — an included file may not │ │ │ │ │ include additional files. The recommended file extension is .inc. Do not use a file extension of .ini for │ │ │ │ │ included files. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 4.4.2 │ │ │ │ │ │ │ │ │ │ INI File Sections │ │ │ │ │ │ │ │ │ │ 4.4.2.1 │ │ │ │ │ │ │ │ │ │ @@ -8679,15 +8679,15 @@ │ │ │ │ │ value. │ │ │ │ │ • CONE_BASESIZE = .25 - Override 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.) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 151 / 1331 │ │ │ │ │ │ │ │ │ │ • 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. Only used by the QtVCP based user │ │ │ │ │ interfaces. │ │ │ │ │ @@ -8720,15 +8720,15 @@ │ │ │ │ │ (0.1 s) is a common setting though a range of 50 - 200 ms (.05 - .2 s) may be useable. An under │ │ │ │ │ powered CPU may see improvement with a longer setting. Usually the default is fine. │ │ │ │ │ • PREVIEW_TIMEOUT = 5 - Timeout (in seconds) for loading graphical preview of G-code. Currently │ │ │ │ │ AXIS only. │ │ │ │ │ Anmerkung │ │ │ │ │ Die folgenden [DISPLAY]-Elemente werden von GladeVCP und PyVCP verwendet, siehe den embedding a tab Abschnitt des GladeVCP Kapitels oder das PyVCP Kapitel für weitere Informationen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 152 / 1331 │ │ │ │ │ │ │ │ │ │ • EMBED_TAB_NAME = GladeVCP demo │ │ │ │ │ │ │ │ │ │ • EMBED_TAB_COMMAND = halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID\} -u ./glad │ │ │ │ │ ./gladevcp/manual-example.ui │ │ │ │ │ @@ -8766,15 +8766,15 @@ │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 153 / 1331 │ │ │ │ │ │ │ │ │ │ • GEOMETRY = XYZABCUVW - Controls the preview and backplot of motion. This item consists of a │ │ │ │ │ sequence of axis letters and control characters, optionally preceded with a ”-” sign: │ │ │ │ │ 1. Die Buchstaben X, Y, Z geben die Verschiebung entlang der genannten Koordinate an. │ │ │ │ │ 2. Die Buchstaben A, B, C bezeichnen die Drehung um die entsprechenden Achsen X, Y, Z. │ │ │ │ │ @@ -8815,15 +8815,15 @@ │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 154 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ 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 mode prior │ │ │ │ │ to homing, keyboard jog keys are assigned in a fixed sequence: left/right: joint0, up/down: joint1, │ │ │ │ │ @@ -8863,15 +8863,15 @@ │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Die Programmdatei, die mit einer Erweiterung verknüpft ist, muss entweder den vollständigen Pfad │ │ │ │ │ zum Programm enthalten oder sich in einem Verzeichnis befinden, das sich im Systempfad befindet. │ │ │ │ │ │ │ │ │ │ Es ist auch möglich, einen Interpreter anzugeben: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 155 / 1331 │ │ │ │ │ │ │ │ │ │ PROGRAM_EXTENSION = .py Python Script │ │ │ │ │ py = python │ │ │ │ │ │ │ │ │ │ In this way, any Python script can be opened, and its output is treated as G-code. One such example │ │ │ │ │ @@ -8916,15 +8916,15 @@ │ │ │ │ │ │ │ │ │ │ [RS274NGC] Section │ │ │ │ │ │ │ │ │ │ • PARAMETER_FILE = myfile.var - 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 - A float value added to the R word parameter of an M19 Orient Spindle operation. Used to define an arbitrary zero position regardless of encoder mount orientation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 156 / 1331 │ │ │ │ │ │ │ │ │ │ • RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92.1 G94 G97 G98 - A string │ │ │ │ │ of NC codes that the interpreter is initialized with. This is not a substitute for specifying modal Gcodes 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 - Specifies a colon (:) │ │ │ │ │ @@ -8977,15 +8977,15 @@ │ │ │ │ │ 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. │ │ │ │ │ • DISABLE_G92_PERSISTENCE = 0 (Default: 0) Allow to clear the G92 offset automatically when config │ │ │ │ │ start-up. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 157 / 1331 │ │ │ │ │ │ │ │ │ │ • DISABLE_FANUC_STYLE_SUB = 0 (Default: 0) If there is reason to disable Fanuc subroutines set it to │ │ │ │ │ 1. │ │ │ │ │ Anmerkung │ │ │ │ │ The above six options were controlled by the FEATURES bitmask in versions of LinuxCNC prior to 2.8. │ │ │ │ │ @@ -9021,15 +9021,15 @@ │ │ │ │ │ • 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). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 4.4.2.6 │ │ │ │ │ │ │ │ │ │ 158 / 1331 │ │ │ │ │ │ │ │ │ │ [TASK] Section │ │ │ │ │ │ │ │ │ │ @@ -9071,15 +9071,15 @@ │ │ │ │ │ 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. incomplete signal (net) specifiers. │ │ │ │ │ Omission of required addf statements is 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 pop-up GUI: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 159 / 1331 │ │ │ │ │ │ │ │ │ │ HALFILE = LIB:halcheck.tcl [nopopup] │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Die Zeile LIB:halcheck.tcl sollte die letzte [HAL]HALFILE sein. Geben Sie die Option nopopup an, um │ │ │ │ │ @@ -9121,15 +9121,15 @@ │ │ │ │ │ │ │ │ │ │ LinuxCNC kann andere Anwendungen starten, bevor die angegebene Benutzeroberfläche gestartet │ │ │ │ │ wird. Die Anwendungen können nach einer bestimmten Verzögerung gestartet werden, um GUIabhängige Aktionen zu ermöglichen (wie das Erstellen von GUI-spezifischen HAL-Pins). │ │ │ │ │ • DELAY = value - seconds to wait before 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). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 160 / 1331 │ │ │ │ │ │ │ │ │ │ • ‚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 │ │ │ │ │ INI file directory. If no executable file is found using these names, then the user search PATH is │ │ │ │ │ @@ -9174,15 +9174,15 @@ │ │ │ │ │ # n = v_max / (2.0 * a_max * t_c) │ │ │ │ │ # wobei: │ │ │ │ │ # n = Optimierungstiefe │ │ │ │ │ # v_max = maximale Achsengeschwindigkeit (UU / sec) │ │ │ │ │ # a_max = maximale Achsenbeschleunigung (UU / sec) │ │ │ │ │ # t_c = Servo-Periode (Sekunden) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 161 / 1331 │ │ │ │ │ │ │ │ │ │ So, a machine with a maximum axis velocity of 10 IPS, a max acceleration of 100 IPS2 , and a servo │ │ │ │ │ period of 0.001 s would need: │ │ │ │ │ 10 / (2,0 * 100 * 0,001) = 50 Segmente, um immer die maximale Geschwindigkeit entlang der │ │ │ │ │ schnellsten Achse zu erreichen. │ │ │ │ │ @@ -9224,15 +9224,15 @@ │ │ │ │ │ # a_max = maximale Achsenbeschleunigung │ │ │ │ │ # f = Grenzfrequenz aus INI │ │ │ │ │ │ │ │ │ │ For the aforementioned machine, the ripple for a 20 Hz 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 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 162 / 1331 │ │ │ │ │ │ │ │ │ │ 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 20 Hz to 200 Hz should be reasonable to start. │ │ │ │ │ Und schließlich können Sie einen Werkzeugweg mit vielen kleinen, engen Kurven nicht beschleunigen, │ │ │ │ │ @@ -9274,15 +9274,15 @@ │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 163 / 1331 │ │ │ │ │ │ │ │ │ │ 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. │ │ │ │ │ @@ -9328,15 +9328,15 @@ │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 164 / 1331 │ │ │ │ │ │ │ │ │ │ unlock_joints_mask=jointmask │ │ │ │ │ │ │ │ │ │ Die Bits der Jointmaske sind: (LSB)0:joint0, 1:joint1, 2:joint2, … │ │ │ │ │ Example: loadrt motmod ... unlock_joints_mask=0x38 creates unlock-pins for joints 3,4,5. │ │ │ │ │ @@ -9373,15 +9373,15 @@ │ │ │ │ │ kins). │ │ │ │ │ • TYPE = LINEAR - The type of joint, either LINEAR or ANGULAR. │ │ │ │ │ │ │ │ │ │ • UNITS = INCH - If specified, this setting overrides the related [TRAJ] UNITS setting, e.g., [TRAJ]LINEAR_UN │ │ │ │ │ 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 machine units per second. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 165 / 1331 │ │ │ │ │ │ │ │ │ │ • MAX_ACCELERATION = 20.0 - Maximum acceleration for this joint in machine units per second squared. │ │ │ │ │ • BACKLASH = 0.0000 - 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 │ │ │ │ │ @@ -9417,15 +9417,15 @@ │ │ │ │ │ • MAX_LIMIT = 1000 - 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. │ │ │ │ │ Anmerkung │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 166 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ 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 by the trajectory planning used for G-code moves (programs and MDI │ │ │ │ │ commands). The trajectory planner works in Cartesian space (XYZABCUVW) and has no information │ │ │ │ │ @@ -9465,15 +9465,15 @@ │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 167 / 1331 │ │ │ │ │ │ │ │ │ │ • 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. │ │ │ │ │ @@ -9511,15 +9511,15 @@ │ │ │ │ │ begrenzen, wenn Sie können. │ │ │ │ │ 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 nervous (rapid), and even to │ │ │ │ │ squealing which is easy to confuse with oscillation caused by improper tuning. Better to be a count │ │ │ │ │ or two loose here at first, until you’ve been through gross tuning at least. │ │ │ │ │ Example of calculating machine units per encoder pulse to use in deciding DEADBAND value: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 168 / 1331 │ │ │ │ │ │ │ │ │ │ • 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 │ │ │ │ │ @@ -9548,15 +9548,15 @@ │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ The value for scale can be obtained analytically by doing a unit analysis, i.e., units are [output │ │ │ │ │ SI units]/[actuator units]. For example, on a machine with a velocity mode amplifier such that 1 V │ │ │ │ │ results in 250 mm/s velocity. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 169 / 1331 │ │ │ │ │ │ │ │ │ │ Note that the units of the offset are in machine units, e.g. mm/s, and they are pre-subtracted from │ │ │ │ │ the sensor readings. The value for this offset is obtained by finding the value of your output which │ │ │ │ │ yields 0.0 for the actuator output. If the DAC is linearized, this offset is normally 0.0. │ │ │ │ │ Skalierung und Offset können auch zur Linearisierung des DAC verwendet werden. Diese Werte spigeln dann die kombinierten Auswirkungen von Verstärkung, Nicht-Linearität des DAC, DACEinheiten usw. wider. │ │ │ │ │ @@ -9598,15 +9598,15 @@ │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ Diese Parameter sind relevant für Gelenke, die von Schrittmotoren gesteuert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 170 / 1331 │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ 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 and meant only to put all the │ │ │ │ │ settings in one place. For more information on custom INI file entries see the Custom Sections │ │ │ │ │ @@ -9647,15 +9647,15 @@ │ │ │ │ │ The specifies the spindle number 0 … (num_spindles-1) │ │ │ │ │ The value of num_spindles is set by [TRAJ]SPINDLES= . │ │ │ │ │ By default maximum velocity of the spindle in forward and reverse is approximately 2147483000 RPM. │ │ │ │ │ By default minimum velocity of the spindle in forward and reverse is 0 RPM. │ │ │ │ │ By default the increment is 100 RPM. │ │ │ │ │ You change these default by setting the following INI variables: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 171 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ These settings are for the motion controller component. Control screens can limit these settings │ │ │ │ │ further. │ │ │ │ │ • MAX_FORWARD_VELOCITY = 20000 The maximum spindle speed (in rpm) for the specified spindle. │ │ │ │ │ @@ -9697,15 +9697,15 @@ │ │ │ │ │ • 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. │ │ │ │ │ • TOOL_CHANGE_AT_G30 = 1 - The machine is moved to reference point defined by parameters 51815186 for G30 if the value is 1. For more information see G-code Parameters and G-code G30-G30.1. │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 172 / 1331 │ │ │ │ │ │ │ │ │ │ 4.5 Konfiguration der Referenzfahrt (engl. homing) │ │ │ │ │ 4.5.1 Übersicht │ │ │ │ │ Die Referenzfahrt legt den Nullpunkt der G53-Maschinenkoordinaten fest. Softlimits werden relativ │ │ │ │ │ zum Maschinenursprung definiert. Eine korrekt konfigurierte und funktionierende Maschine bewegt │ │ │ │ │ @@ -9741,15 +9741,15 @@ │ │ │ │ │ • If using a separate homing switch, it is 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 its 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 173 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ 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. │ │ │ │ │ @@ -9767,15 +9767,15 @@ │ │ │ │ │ • A<->B ist die negative weiche Grenze (MIN_LIMITS) = -3 Einheiten │ │ │ │ │ • B<->C ist der Home_Offset (HOME_OFFSET) = -2,3 Einheiten │ │ │ │ │ • B<->D ist die positive weiche Grenze (MAX_LIMITS) = 7 Einheiten │ │ │ │ │ • A<->D ist der gesamte Weg = 10 Einheiten │ │ │ │ │ • Der Abstand zwischen den Endschaltern und Soft Limits (-L<->A und D<-+L) wird in diesem Beispiel vergrößert │ │ │ │ │ • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 174 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Die Referenzfahrt legt das G53-Koordinatensystem fest. Der Maschinenursprung (Nullpunkt) kann an │ │ │ │ │ einer beliebigen Stelle liegen, aber wenn Sie den Nullpunkt auf die negative weiche Grenze setzen, │ │ │ │ │ werden alle G53-Koordinaten positiv, was wahrscheinlich am einfachsten zu merken ist. Dazu setzen │ │ │ │ │ @@ -9796,32 +9796,32 @@ │ │ │ │ │ • B<->C ist der Home_Offset (HOME_OFFSET) = -0,7 Einheiten. │ │ │ │ │ • B<->D ist die positive weiche Grenze (MAX_LIMITS) 10 Einheiten. │ │ │ │ │ • A<->D ist der gesamte Weg = 10 Einheiten. │ │ │ │ │ • Der Abstand zwischen den Endschaltern und den Soft Limits (-L<->A und D<->+L) wird in diesem │ │ │ │ │ Beispiel vergrößert. │ │ │ │ │ • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 175 / 1331 │ │ │ │ │ │ │ │ │ │ 4.5.5 Referenzfahrt Abfolge │ │ │ │ │ │ │ │ │ │ There are four possible homing sequences defined by the sign of HOME_SEARCH_VEL and HOME_LATCH_V │ │ │ │ │ along with the associated configuration parameters as shown in the following table. Two basic conditions exist, HOME_SEARCH_VEL and HOME_LATCH_VEL are the same sign or they are opposite │ │ │ │ │ signs. For a more detailed description of what each configuration parameter does, see the following │ │ │ │ │ section. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 176 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 4.8: Referenzfahrt-Abläufe │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 177 / 1331 │ │ │ │ │ │ │ │ │ │ 4.5.6 Konfiguration │ │ │ │ │ Im Folgenden wird genau festgelegt, wie sich die Stammfolge verhält. Sie werden in einem [JOINT_n]Abschnitt der INI-Datei definiert. │ │ │ │ │ Referenzfahrt │ │ │ │ │ Typ │ │ │ │ │ @@ -9879,15 +9879,15 @@ │ │ │ │ │ 4.5.6.3 HOME_FINAL_VEL │ │ │ │ │ Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde. │ │ │ │ │ Sie gibt die Geschwindigkeit an, die LinuxCNC verwendet, wenn es seine Bewegung von HOME_OFFSET │ │ │ │ │ zur HOME-Position durchführt. Wenn die HOME_FINAL_VEL in der INI-Datei fehlt, dann wird die │ │ │ │ │ maximale Gelenkgeschwindigkeit verwendet, um diese Bewegung zu machen. Der Wert muss eine │ │ │ │ │ positive Zahl sein. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 178 / 1331 │ │ │ │ │ │ │ │ │ │ 4.5.6.4 HOME_IGNORE_LIMITS │ │ │ │ │ Can hold the values YES / NO. The default value for this parameter is NO. This flag determines whether │ │ │ │ │ LinuxCNC will ignore the limit switch input for this joint while homing. This setting will not ignore │ │ │ │ │ limit inputs for other joints. If you do not have a separate home switch set this to YES and connect the │ │ │ │ │ @@ -9919,15 +9919,15 @@ │ │ │ │ │ switch or home switch then index pulse (depending on configuration), and setting the coordinate of │ │ │ │ │ that point to HOME_OFFSET, LinuxCNC makes a move to HOME as the final step of the homing │ │ │ │ │ process. The default value is zero. Note that even if this parameter is the same as HOME_OFFSET, │ │ │ │ │ the joint will slightly overshoot the latched position as it stops. Therefore there will always be a small │ │ │ │ │ move at this time (unless HOME_SEARCH_VEL is zero, and the entire search/latch stage was skipped). │ │ │ │ │ This final move will be made at the joint’s maximum velocity unless HOME_FINAL_VEL has been set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 179 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Der Unterschied zwischen HOME_OFFSET und HOME besteht darin, dass HOME_OFFSET zunächst die │ │ │ │ │ Ursprungsposition und den Maßstab auf der Maschine festlegt, indem der HOME_OFFSET -Wert auf │ │ │ │ │ die Position angewendet wird, an der die Ausgangsposition gefunden wurde, und dann HOME angibt, │ │ │ │ │ @@ -9962,15 +9962,15 @@ │ │ │ │ │ Wenn HOME_SEQUENCE nicht angegeben ist, wird das Gelenk nicht durch die HOME ALL-Sequenz referenziert (sondern kann durch einzelne gelenkspezifische Referenzierungsbefehle referenziert werden). │ │ │ │ │ │ │ │ │ │ Die anfängliche HOME_SEQUENCE-Nummer kann 0, 1 (oder -1) sein. Der absolute Wert der Sequenznummern muss um eins erhöht werden - das Überspringen von Sequenznummern wird nicht unterstützt. Wenn eine Sequenznummer weggelassen wird, stoppt HOME ALL die Referenzfahrt nach │ │ │ │ │ Abschluss der letzten gültigen Sequenznummer. │ │ │ │ │ Negative HOME_SEQUENCE values indicate that joints in the sequence should synchronize the │ │ │ │ │ final move to [JOINT_n]HOME by waiting until all joints in the sequence are ready. If any joint has a │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 180 / 1331 │ │ │ │ │ │ │ │ │ │ negative HOME_SEQUENCE value, then all joints with the same absolute value (positive or negative) │ │ │ │ │ of the HOME_SEQUENCE item value will synchronize the final move. │ │ │ │ │ Eine negative HOME_SEQUENCE gilt auch für das Ausführen einer Referenzfahrt eines einzelnen │ │ │ │ │ Gelenks. Wenn der HOME_SEQUENCE-Wert negativ ist, werden alle Gelenke, die den gleichen absoluten Wert dieser HOME_SEQUENCE haben, gemeinsam mit einer synchronisierten Endbewegung freigesetzt. Wenn der HOME_SEQUENCE-Wert Null oder positiv ist, wird nur das angegebene │ │ │ │ │ @@ -10013,15 +10013,15 @@ │ │ │ │ │ If this setting is true, this joint becomes unhomed whenever the machine transitions into the OFF │ │ │ │ │ state. This is appropriate for any joint that does not maintain position when the joint drive is off. Some │ │ │ │ │ stepper drives, especially microstep drives, may need this. │ │ │ │ │ 4.5.6.13 LOCKING_INDEXER │ │ │ │ │ Handelt es sich bei diesem Gelenk um einen verriegelnden Drehindexer, wird es vor der Referenzfahrt │ │ │ │ │ entriegelt und danach verriegelt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 181 / 1331 │ │ │ │ │ │ │ │ │ │ 4.5.6.14 Immediate Homing │ │ │ │ │ If a joint does not have home switches or does not have a logical home position like a rotary joint and │ │ │ │ │ you want that joint to home at the current position when the ”Home All” button is pressed in the AXIS │ │ │ │ │ GUI, then the following INI entries for that joint are needed. │ │ │ │ │ @@ -10064,15 +10064,15 @@ │ │ │ │ │ net home_seq_s32 => ini.1.home_sequence │ │ │ │ │ ... │ │ │ │ │ # allow_jjog: von einem virtuellen Bedienfeld oder Hardware-Schalter erzeugter Pin │ │ │ │ │ net hsequence_select <= allow_jog │ │ │ │ │ net hsequence_select => home_sequence_mux.sel │ │ │ │ │ net hsequence_select => motion.homing-inhibit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 182 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ INI HAL-Pins (wie ini.N.home_sequence) sind nicht verfügbar, bis milltask startet, so dass die Ausführung der oben genannten HAL-Befehle mit Hilfe einer postgui HAL-Datei oder eines verzögerten │ │ │ │ │ [APPLICATION]APP=-Skripts verschoben werden sollte. │ │ │ │ │ │ │ │ │ │ @@ -10102,15 +10102,15 @@ │ │ │ │ │ wird ein Handshake erwartet, um zuverlässige Signalisierung zu gewährleisten, und optional lockstep Verhalten zu erzwingen. Handshaking ist optional und kann in HAL überbrückt werden, wenn │ │ │ │ │ es nicht benötigt wird. │ │ │ │ │ • Rückwärtskompatibilität: Ein Werkzeugwechsler, der die iocontrol emc-abort-Zeile ignoriert und an │ │ │ │ │ der alten Handhabung festhält, wird ”weiterhin funktionieren” (vorbehaltlich einer Race Condition) │ │ │ │ │ Wenn Sie strenge Zeitvorgaben haben oder einfach mehr E/A benötigen, sollten Sie stattdessen die │ │ │ │ │ Echtzeit-E/A verwenden, die von motion bereitgestellt wird. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 183 / 1331 │ │ │ │ │ │ │ │ │ │ 4.6.2 Anwendung │ │ │ │ │ INI-Datei Optionen: │ │ │ │ │ [EMCIO] Abschnitt │ │ │ │ │ PROTOCOL_VERSION = 2 │ │ │ │ │ @@ -10141,15 +10141,15 @@ │ │ │ │ │ • iocontrol.0.tool-number (s32, out) Current tool number │ │ │ │ │ • iocontrol.0.tool-prep-number (s32, out) The number of the next tool, from the RS274NGC T-word │ │ │ │ │ • iocontrol.0.tool-prep-pocket (s32, out) This is the pocket number (location in the tool storage mechanism) of the tool requested by the most recent T-word. │ │ │ │ │ • iocontrol.0.tool-prepare (bit, out) TRUE when a Tn 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 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 184 / 1331 │ │ │ │ │ │ │ │ │ │ • iocontrol.0.user-request-enable (bit, out) TRUE when the user has requested that E-stop be cleared │ │ │ │ │ Zusätzliche Pins hinzugefügt durch I/O Control V2 │ │ │ │ │ • emc-abort: (bit, out) signals emc-originated abort to toolchanger. │ │ │ │ │ • emc-abort-ack: (bit, in) Acknowledge line from toolchanger for previous signal, or jumpered to aborttool-change if not used in toolchanger. NB: after signaling an emc-abort, iov2 will block until emcabort-ack is raised. │ │ │ │ │ @@ -10182,15 +10182,15 @@ │ │ │ │ │ die Abort-Handshake-Funktion nicht benötigen, jumpen Sie sie wie folgt: │ │ │ │ │ net emc-abort-ack iocontrol.0.emc-abort iocontrol.0.emc-abort-ack │ │ │ │ │ │ │ │ │ │ Der emc-reason-Pin wird als gültig angesehen, wenn emc-abort TRUE ist. │ │ │ │ │ Die Auslöser-Codes sind wie folgt für LinuxCNC intern generiert Abbrüche (siehe emc.hh ca Zeile │ │ │ │ │ 321): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 185 / 1331 │ │ │ │ │ │ │ │ │ │ • EMC_ABORT_TASK_EXEC_ERROR = 1, │ │ │ │ │ • EMC_ABORT_AUX_ESTOP = 2, │ │ │ │ │ • EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3, │ │ │ │ │ • EMC_ABORT_TASK_STATE_OFF = 4, │ │ │ │ │ @@ -10221,15 +10221,15 @@ │ │ │ │ │ die Standardebene zu ändern, fügen Sie die folgende Zeile in die INI-Datei im Abschnitt RS274NGC │ │ │ │ │ ein. │ │ │ │ │ RS274NGC_STARTUP_CODE = G18 │ │ │ │ │ │ │ │ │ │ Die obigen Angaben können in einem G-Code-Programm überschrieben werden, daher sollten Sie │ │ │ │ │ wichtige Dinge immer in der Präambel der G-Code-Datei festlegen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 186 / 1331 │ │ │ │ │ │ │ │ │ │ 4.7.2 INI-Einstellungen │ │ │ │ │ Die folgenden INI-Einstellungen werden für den Drehmaschinenmodus in Axis zusätzlich zu den normalen Einstellungen in der INI-Datei benötigt oder ersetzen diese. Diese historischen Einstellungen │ │ │ │ │ verwenden die Identitätskinematik (trivkins) und drei Gelenke (0,1,2) entsprechend den Koordinaten │ │ │ │ │ x, y, z. Das Gelenk 1 für die unbenutzte y-Achse ist erforderlich, wird aber in diesen historischen Konfigurationen nicht verwendet. Simulierte Drehmaschinen-Konfigurationen können diese historischen │ │ │ │ │ @@ -10271,15 +10271,15 @@ │ │ │ │ │ [JOINT_1] │ │ │ │ │ ... │ │ │ │ │ [AXIS_X] │ │ │ │ │ ... │ │ │ │ │ [AXIS_Z] │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 187 / 1331 │ │ │ │ │ │ │ │ │ │ 4.8 Stepper Schnellstart │ │ │ │ │ This section assumes you have done a standard install from the Live CD. After installation it is recommended that you connect the computer to the Internet and wait for the update manager to pop up │ │ │ │ │ and get the latest updates for LinuxCNC and Ubuntu before continuing. │ │ │ │ │ │ │ │ │ │ @@ -10339,15 +10339,15 @@ │ │ │ │ │ 10 │ │ │ │ │ │ │ │ │ │ Typ. │ │ │ │ │ Wenn UnterFunktion │ │ │ │ │ schiedlich │ │ │ │ │ X End/Referenzschalter │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 188 / 1331 │ │ │ │ │ │ │ │ │ │ AusgangsPin │ │ │ │ │ 2 │ │ │ │ │ │ │ │ │ │ Typ. │ │ │ │ │ @@ -10432,15 +10432,15 @@ │ │ │ │ │ • Motor Teeth and Leadscrew Teeth - ist, wenn Sie eine Untersetzung (Zahnrad, Kette, Zahnriemen │ │ │ │ │ usw.) zwischen Motor und Leitspindel haben. Wenn nicht, setzen Sie beide auf 1. │ │ │ │ │ • Leitspindelsteigung’ - gibt an, wie viel Bewegung (in Benutzereinheiten) in einer Leitspindelumdrehung stattfindet. Wenn Sie auf Zoll eingestellt sind, ist es Zoll pro Umdrehung. Wenn Sie in │ │ │ │ │ Millimetern einstellen, sind es Millimeter pro Umdrehung. │ │ │ │ │ Das Nettoergebnis, nach dem Sie suchen, ist die Anzahl der CNC-Ausgabeschritte, die erforderlich │ │ │ │ │ sind, um eine Benutzereinheit (Zoll oder mm) zu bewegen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 189 / 1331 │ │ │ │ │ │ │ │ │ │ Beispiel 4.1 Einheiten Zoll │ │ │ │ │ Stepper = 200 Schritte pro Umdrehung │ │ │ │ │ Antrieb = 10 Mikroschritte pro Schritt │ │ │ │ │ Motorverzahnung = 20 │ │ │ │ │ @@ -10468,15 +10468,15 @@ │ │ │ │ │ This chapter describes some of the more common settings for manually setting up a stepper based │ │ │ │ │ system. These systems are using stepper motors with drives that accept step & direction signals. │ │ │ │ │ Es ist eines der einfacheren Systeme, da die Motoren im offenen Regelkreis laufen (keine Rückmeldung von den Motoren), aber das System muss richtig konfiguriert werden, damit die Motoren nicht │ │ │ │ │ abgewürgt werden oder Schritte verlieren. │ │ │ │ │ Most of this chapter is based on a sample config released along with LinuxCNC. The config is called │ │ │ │ │ stepper_inch, and can be found by running the Configuration Picker. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 190 / 1331 │ │ │ │ │ │ │ │ │ │ 4.9.2 Maximale Schrittgeschwindigkeit │ │ │ │ │ With software step generation, the maximum step rate is one step per two BASE_PERIODs for stepand-direction output. The maximum requested step rate is the product of an axis’ MAX_VELOCITY and │ │ │ │ │ its INPUT_SCALE. If the requested step rate is not attainable, following errors will occur, particularly │ │ │ │ │ during fast jogs and G0 moves. │ │ │ │ │ @@ -10514,15 +10514,15 @@ │ │ │ │ │ loadrt hal_parport cfg=”0x0378” │ │ │ │ │ # │ │ │ │ │ # als nächstes die Parport-Funktionen mit den Threads verbinden │ │ │ │ │ # lese zuerst die Eingänge │ │ │ │ │ addf parport.0.read base-thread 1 │ │ │ │ │ # Ausgaben zuletzt schreiben │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 191 / 1331 │ │ │ │ │ │ │ │ │ │ addf parport.0.write base-thread -1 │ │ │ │ │ # │ │ │ │ │ # schließlich physische Pins mit den Signalen verbinden Netz │ │ │ │ │ net Xstep => parport.0.pin-03-out │ │ │ │ │ @@ -10571,15 +10571,15 @@ │ │ │ │ │ ### Beispiel für separate Endschalter auf der X-Achse (Achse 0) │ │ │ │ │ ### │ │ │ │ │ # net X-neg-limit parport.0.pin-11-in => joint.0.neg-lim-sw-in │ │ │ │ │ # net X-pos-limit parport.0.pin-12-in => joint.0.pos-lim-sw-in │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 192 / 1331 │ │ │ │ │ │ │ │ │ │ ### │ │ │ │ │ ### Genau wie beim Beispiel der gemeinsamen Referenzschalter können Sie auch │ │ │ │ │ ### Endschalter miteinander verbinden. Achten Sie darauf, wenn Sie einen auslösen, wird ←LinuxCNC stoppen, │ │ │ │ │ ### kann Ihnen aber nicht sagen, welche Schalter/Achse verantwortlich ist. Seien Sie ←vorsichtig, wenn die den Betrieb │ │ │ │ │ @@ -10612,15 +10612,15 @@ │ │ │ │ │ Tipp: Achten Sie darauf, dass Sie nicht mehr als ein Signal an denselben Pin anschließen. │ │ │ │ │ 4.9.3.4 Ändern der Polarität eines Signals │ │ │ │ │ If external hardware expects an ”active low” signal, set the corresponding -invert parameter. For │ │ │ │ │ instance, to invert the spindle control signal: │ │ │ │ │ setp parport.0.pin-09-invert TRUE │ │ │ │ │ 4 The fastest thread in the LinuxCNC setup, usually the code gets executed every few tens of microseconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 193 / 1331 │ │ │ │ │ │ │ │ │ │ 4.9.3.5 Hinzufügen einer PWM-Spindeldrehzahlregelung │ │ │ │ │ Wenn Ihre Spindel durch ein PWM-Signal gesteuert werden kann, verwenden Sie die Komponente │ │ │ │ │ „pwmgen“, um das Signal zu erzeugen: │ │ │ │ │ loadrt pwmgen output_type=0 │ │ │ │ │ @@ -10657,15 +10657,15 @@ │ │ │ │ │ 4.10.1 Häufige Probleme │ │ │ │ │ 4.10.1.1 Stepper bewegt sich einen Schritt │ │ │ │ │ Der häufigste Grund, warum sich ein Schrittmotor bei einer Neuinstallation nicht bewegt, ist, dass die │ │ │ │ │ Schritt- und Richtungssignale vertauscht sind. Wenn Sie die Tasten ”Tippen vorwärts” und ”Tippen │ │ │ │ │ rückwärts” abwechselnd drücken und der Schrittmotor sich jedes Mal um einen Schritt und in dieselbe │ │ │ │ │ Richtung bewegt, haben Sie einen Anhaltspunkt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 194 / 1331 │ │ │ │ │ │ │ │ │ │ 4.10.1.2 Keine Stepper bewegen sich │ │ │ │ │ Viele Laufwerke haben einen Freigabe-Pin oder benötigen eine Ladungspumpe, um den Ausgang zu │ │ │ │ │ aktivieren. │ │ │ │ │ 4.10.1.3 Abstand nicht korrekt │ │ │ │ │ @@ -10701,15 +10701,15 @@ │ │ │ │ │ usually an indication that the BASE_PERIOD in the [EMCMOT] section of the ini file is set too low. You │ │ │ │ │ should run the Latency Test for an extended period of time to see if you have any delays that would │ │ │ │ │ cause this problem. If you used the StepConf Wizard, run it again, and test the Base Period Jitter again, │ │ │ │ │ and adjust the Base Period Maximum Jitter on the Basic Machine Information page. You might have to │ │ │ │ │ leave the test running for an extended period of time to find out if some hardware causes intermittent │ │ │ │ │ problems. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 195 / 1331 │ │ │ │ │ │ │ │ │ │ LinuxCNC verfolgt die Anzahl der CPU-Zyklen zwischen den Aufrufen des Echtzeit-Threads. Wenn ein │ │ │ │ │ Element Ihrer Hardware verursacht Verzögerungen oder Ihre Echtzeit-Threads zu schnell eingestellt │ │ │ │ │ sind, werden Sie diesen Fehler erhalten. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -10753,15 +10753,15 @@ │ │ │ │ │ #1000 = [#1000 - 1] │ │ │ │ │ o101 endwhile │ │ │ │ │ ( msg, Done...Z sollte genau .5” über dem Tisch liegen ) │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 196 / 1331 │ │ │ │ │ │ │ │ │ │ 4.11 Filter-Programme │ │ │ │ │ 4.11.1 Einführung │ │ │ │ │ Die meisten Bildschirme von LinuxCNC haben die Möglichkeit, geladene Dateien durch ein ”Filterprogramm” zu senden oder das Filterprogramm zu verwenden, um G-Code zu machen. Ein solcher Filter │ │ │ │ │ kann jede gewünschte Aufgabe erledigen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit │ │ │ │ │ @@ -10782,15 +10782,15 @@ │ │ │ │ │ Es ist auch möglich, einen Interpreter anzugeben: │ │ │ │ │ PROGRAM_EXTENSION = .py Python Script │ │ │ │ │ py = python │ │ │ │ │ │ │ │ │ │ Auf diese Weise kann jedes Python-Skript geöffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter ”nc_files/holecircle.py” verfügbar. Dieses Skript erzeugt │ │ │ │ │ G-Code für das Bohren einer Reihe von Löchern entlang des Umfangs eines Kreises. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 197 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 4.9: Kreisförmige Löcher │ │ │ │ │ Wenn das Filterprogramm Zeilen in der folgenden Form an stderr sendet: │ │ │ │ │ FILTER_PROGRESS=10 │ │ │ │ │ │ │ │ │ │ @@ -10810,15 +10810,15 @@ │ │ │ │ │ time.sleep(.1) │ │ │ │ │ # Ausgabe einer Zeile G-Code │ │ │ │ │ print(’G0 X1’, file=sys.stdout) │ │ │ │ │ # Fortschritt aktualisieren │ │ │ │ │ print(’FILTER_PROGRESS={}’.format(i), file=sys.stderr) │ │ │ │ │ except: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 198 / 1331 │ │ │ │ │ │ │ │ │ │ # Dies führt zu einer Fehlermeldung │ │ │ │ │ print(’Fehler; Aber das war nur ein Test’, file=sys.stderr) │ │ │ │ │ raise SystemExit(1) │ │ │ │ │ │ │ │ │ │ @@ -10860,15 +10860,15 @@ │ │ │ │ │ print(’You asked to cancel before finished.’, file=sys.stderr) │ │ │ │ │ raise SystemExit(1) │ │ │ │ │ def process(self): │ │ │ │ │ try: │ │ │ │ │ # nächste Codezeile erhalten │ │ │ │ │ codeLine = self.temp[self.line] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 199 / 1331 │ │ │ │ │ │ │ │ │ │ # die Zeile irgendwie verarbeiten │ │ │ │ │ # Verarbeiteten Code ausgeben │ │ │ │ │ print(codeLine, file=sys.stdout) │ │ │ │ │ self.line +=1 │ │ │ │ │ @@ -10891,15 +10891,15 @@ │ │ │ │ │ else: │ │ │ │ │ path = None │ │ │ │ │ app = QApplication(sys.argv) │ │ │ │ │ w = CustomDialog(path=path) │ │ │ │ │ w.show() │ │ │ │ │ sys.exit( app.exec_() ) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 200 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 5 │ │ │ │ │ │ │ │ │ │ HAL (Hardware Abstraction Layer) │ │ │ │ │ 5.1 HAL Introduction │ │ │ │ │ @@ -10923,15 +10923,15 @@ │ │ │ │ │ of what CNC machines need to do, or space craft. │ │ │ │ │ Any machine controller needs to know: │ │ │ │ │ • about its internal state and how this maps to the environment (machine coordinates, state of switches/regulators), │ │ │ │ │ • how actuators are expected to change that state, │ │ │ │ │ • how allow for updates of the internal state by sensors (encoders, probes). │ │ │ │ │ The HAL layer consists of parts (referred to as ”components”) that │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 201 / 1331 │ │ │ │ │ │ │ │ │ │ • are connected with each other, e.g., to update position data or have the planning algorithm tell the │ │ │ │ │ motors about the next step. │ │ │ │ │ • may know how to communicate with hardware, │ │ │ │ │ • may simply process incoming data and provide data outputs to other components, │ │ │ │ │ @@ -10964,15 +10964,15 @@ │ │ │ │ │ • from within C/C++ programs, │ │ │ │ │ but none of these interfaces are HAL itself. │ │ │ │ │ HAL itself is not a program, it consists of one or more lists of loaded programs (the components) that │ │ │ │ │ are periodically executed (in strict sequence), and an area of shared-memory that these components │ │ │ │ │ use to interchange data. The main HAL script runs only once at machine startup, setting up the realtime threads and the shared-memory locations, loading the components and setting up the data links │ │ │ │ │ between them (the ”signals” and ”pins”). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 202 / 1331 │ │ │ │ │ │ │ │ │ │ In principle multiple machines could share a common HAL to allow them to inter-operate, however │ │ │ │ │ the current implementation of LinuxCNC is limited to a single interpreter and a single Task module. │ │ │ │ │ Currently this is almost always a G-code interpreter and ”milltask” (which was found to also work well │ │ │ │ │ for lathes and adequately for robots) but these modules are selectable at load-time. With an increasing │ │ │ │ │ @@ -11013,15 +11013,15 @@ │ │ │ │ │ number of components that know a lot about CNC and present that information via pins. There are │ │ │ │ │ pins representing │ │ │ │ │ • static information about the machine │ │ │ │ │ • the current state of the machine │ │ │ │ │ – end switches │ │ │ │ │ – positions counted by steppers or as measured by encoders │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 203 / 1331 │ │ │ │ │ │ │ │ │ │ • recipients for instructions │ │ │ │ │ – manual control of machine position (”jogging”) │ │ │ │ │ – positions that stepper motors should take next │ │ │ │ │ In a analogy to electronic cables, pins can be wired, so the value changing in one pin serves as input to │ │ │ │ │ @@ -11063,15 +11063,15 @@ │ │ │ │ │ – developing over time. │ │ │ │ │ │ │ │ │ │ 5.1.3 HAL System Design │ │ │ │ │ HAL basiert auf traditionellen Systementwurfstechniken. HAL is based on the same principles │ │ │ │ │ that are used to design hardware circuits and systems, so it is useful to examine those principles first. │ │ │ │ │ Any system, including a CNC machine, consists of interconnected components. For the CNC machine, │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 204 / 1331 │ │ │ │ │ │ │ │ │ │ those components might be the main controller, servo amps or stepper drives, motors, encoders, limit │ │ │ │ │ switches, pushbutton pendants, perhaps a VFD for the spindle drive, a PLC to run a toolchanger, etc. │ │ │ │ │ The machine builder must aselect, mount and wire these pieces together to make a complete system. │ │ │ │ │ │ │ │ │ │ @@ -11093,15 +11093,15 @@ │ │ │ │ │ black boxes. During the design stage, he decides which parts he is going to use - steppers or servos, │ │ │ │ │ which brand of servo amp, what kind of limit switches and how many, etc. The integrator’s decisions │ │ │ │ │ about which specific components to use is based on what that component does and the specifications │ │ │ │ │ supplied by the manufacturer of the device. The size of a motor and the load it must drive will affect the │ │ │ │ │ choice of amplifier needed to run it. The choice of amplifier may affect the kinds of feedback needed │ │ │ │ │ by the amp and the velocity or position signals that must be sent to the amp from a control. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 205 / 1331 │ │ │ │ │ │ │ │ │ │ In the HAL world, the integrator must decide what HAL components are needed. Usually every interface card will require a driver. Additional components may be needed for software generation of step │ │ │ │ │ pulses, PLC functionality, and a wide variety of other tasks. │ │ │ │ │ 5.1.3.2 Interconnection Design │ │ │ │ │ The designer of a hardware system not only selects the parts, he also decides how those parts will be │ │ │ │ │ @@ -11127,15 +11127,15 @@ │ │ │ │ │ HAL provides the software equivalents of a voltmeter, oscilloscope, signal generator, and other tools │ │ │ │ │ needed for testing and tuning a system. The same commands used to build the system can be used to │ │ │ │ │ make changes as needed. │ │ │ │ │ 5.1.3.5 Summary │ │ │ │ │ This document is aimed at people who already know how to do this kind of hardware system integration, but who do not know how to connect the hardware to LinuxCNC. See the Remote Start Example │ │ │ │ │ section in the HAL UI Examples documentation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 206 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.2: Remote-Start-Beispiel (Schema) │ │ │ │ │ The traditional hardware design as described above ends at the edge of the main control. Outside the │ │ │ │ │ control are a bunch of relatively simple boxes, connected together to do whatever is needed. Inside, │ │ │ │ │ the control is a big mystery — one huge black box that we hope works. │ │ │ │ │ @@ -11160,15 +11160,15 @@ │ │ │ │ │ because these terms are not arranged in alphabetical order. They are arranged by their relationship │ │ │ │ │ or flow in the HAL way of things. │ │ │ │ │ Komponente │ │ │ │ │ When we talked about hardware design, we referred to the individual pieces as parts, building │ │ │ │ │ blocks, black boxes, etc. The HAL equivalent is a component or HAL component. This document │ │ │ │ │ uses HAL component when there is likely to be confusion with other kinds of components, but │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 207 / 1331 │ │ │ │ │ │ │ │ │ │ normally just uses component. A HAL component is a piece of software with well-defined inputs, │ │ │ │ │ outputs, and behavior, that can be installed and interconnected as needed. + + Many HAL Components model the behaviour of a tangible part of a machine, and a pin may indeed be meant to │ │ │ │ │ be connected to a physical pin on the device to communicate with it, hence the names. But most │ │ │ │ │ often this is not the case. Imagine a retrofit of a manual lathe/mill. What LinuxCNC implements │ │ │ │ │ @@ -11208,15 +11208,15 @@ │ │ │ │ │ Both pins and signals have types, and signals can only be connected to pins of ffvthe same type. │ │ │ │ │ Currently there are 4 types, as follows: │ │ │ │ │ • bit - ein einzelner TRUE/FALSE- oder ON/OFF-Wert │ │ │ │ │ • float - eine 64-Bit-Fließkommazahl mit einer Auflösung von etwa 53 Bit und einem Dynamikbereich von über 1000 Bit. │ │ │ │ │ • u32 - eine 32-Bit-Ganzzahl ohne Vorzeichen, zulässige Werte sind 0 bis 4.294.967.295 │ │ │ │ │ • s32 - eine 32-Bit-Ganzzahl mit Vorzeichen, zulässige Werte sind -2.147.483.647 bis +2.147.483.647 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 208 / 1331 │ │ │ │ │ │ │ │ │ │ Funktion │ │ │ │ │ Real hardware components tend to act immediately on their inputs. For example, if the input │ │ │ │ │ voltage to a servo amp changes, the output also changes automatically. However software components cannot act automatically. Each component has specific code that must be executed to │ │ │ │ │ do whatever that component is supposed to do. In some cases, that code simply runs as part of │ │ │ │ │ @@ -11258,15 +11258,15 @@ │ │ │ │ │ de-energizes the coil. So the relay still switches rapidly between on and off, but at a rate determined │ │ │ │ │ by how often the PLC evaluates the rung. │ │ │ │ │ In HAL, the function is the code that evaluates the rung(s). In fact, the HAL-aware realtime version │ │ │ │ │ of ClassicLadder exports a function to do exactly that. Meanwhile, a thread is the thing that runs the │ │ │ │ │ function at specific time intervals. Just like you can choose to have a PLC evaluate all its rungs every │ │ │ │ │ 10 ms, or every second, you can define HAL threads with different periods. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 209 / 1331 │ │ │ │ │ │ │ │ │ │ What distinguishes one thread from another is not what the thread does - that is determined by which │ │ │ │ │ functions are connected to it. The real distinction is simply how often a thread runs. │ │ │ │ │ In LinuxCNC you might have a 50 µs thread and a 1 ms thread. These would be created based on │ │ │ │ │ BASE_PERIOD and SERVO_PERIOD, the actual times depend on the values in your INI file. │ │ │ │ │ @@ -11280,15 +11280,15 @@ │ │ │ │ │ 5.2.1 HAL Commands │ │ │ │ │ Ausführlichere Informationen finden Sie in der Manpage für halcmd: führen Sie man halcmd in einem │ │ │ │ │ Terminalfenster aus. │ │ │ │ │ To see the HAL configuration and check the status of pins and parameters use the HAL Configuration │ │ │ │ │ window on the Machine menu in AXIS. To watch a pin status open the Watch tab and click on each │ │ │ │ │ pin you wish to watch and it will be added to the watch window. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 210 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.3: HAL-Konfigurationsfenster │ │ │ │ │ │ │ │ │ │ 5.2.1.1 │ │ │ │ │ │ │ │ │ │ @@ -11308,15 +11308,15 @@ │ │ │ │ │ The addf command adds a function to a real-time thread. If the StepConf wizard was used to create │ │ │ │ │ the configuration, two threads have been created ( ̀ ̀base-thread ̀ ̀ and ̀ ̀servo-thread ̀ ̀). │ │ │ │ │ addf adds function functname to thread threadname. Default is to add the function in the order they │ │ │ │ │ are in the file. If position is specified, adds the function to that spot in the thread. A negative position │ │ │ │ │ indicates the position with respect to the end of the thread. For example 1 is start of thread, -1 is the │ │ │ │ │ end of the thread, -3 is third from the end. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 211 / 1331 │ │ │ │ │ │ │ │ │ │ For some functions it is important to load them in a certain order, like the parport read and write │ │ │ │ │ functions. The function name is usually the component name plus a number. In the following example │ │ │ │ │ the component or2 is loaded and show function shows the name of the or2 function. │ │ │ │ │ $ halrun │ │ │ │ │ @@ -11387,15 +11387,15 @@ │ │ │ │ │ ausgegangen, dass die Komponente denselben Namen hat wie das erste │ │ │ │ │ Argument des Befehls. │ │ │ │ │ um auf die Komponente zu warten, die den angegebenen haben wird. │ │ │ │ │ Dies gilt nur, wenn die Komponente eine Namensoption hat. │ │ │ │ │ um zu warten, bis das Programm beendet wird │ │ │ │ │ um den Rückgabewert des Programms zu ignorieren (mit -w) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ -n │ │ │ │ │ │ │ │ │ │ 212 / 1331 │ │ │ │ │ │ │ │ │ │ Benennt eine Komponente, sofern dies eine zulässige Option für diese │ │ │ │ │ Komponente ist. │ │ │ │ │ @@ -11427,15 +11427,15 @@ │ │ │ │ │ • Ein IN-Pin kann immer mit einem Signal verbunden werden. │ │ │ │ │ • Ein IO-Pin kann angeschlossen werden, sofern kein ein OUT-Pin am Signal anliegt. │ │ │ │ │ • Ein OUT-Pin kann nur angeschlossen werden, wenn es keine anderen OUT- oder IO-Pins am Signal │ │ │ │ │ gibt. │ │ │ │ │ Derselbe Signal-Name kann in mehreren Netzbefehlen verwendet werden, um zusätzliche Pins zu │ │ │ │ │ verbinden, solange die obigen Regeln beachtet werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 213 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.4: Signalrichtung (engl. signal direction) │ │ │ │ │ This example shows the signal xStep with the source being stepgen.0.out and with two readers, │ │ │ │ │ parport.0.pin-02-out and parport.0.pin-08-out. Basically the value of stepgen.0.out is sent to │ │ │ │ │ the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. │ │ │ │ │ @@ -11462,15 +11462,15 @@ │ │ │ │ │ │ │ │ │ │ The command setp sets the value of a pin or parameter. The valid values will depend on the type of │ │ │ │ │ the pin or parameter. It is an error if the data types do not match. │ │ │ │ │ Some components have parameters that need to be set before use. Parameters can be set before use │ │ │ │ │ or while running as needed. You cannot use setp on a pin that is connected to a signal. │ │ │ │ │ Syntax and Examples of setp │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 214 / 1331 │ │ │ │ │ │ │ │ │ │ setp │ │ │ │ │ setp parport.0.pin-08-out TRUE │ │ │ │ │ │ │ │ │ │ 5.2.1.6 │ │ │ │ │ @@ -11513,15 +11513,15 @@ │ │ │ │ │ linkps parport.0.pin-02-out X-Step │ │ │ │ │ │ │ │ │ │ The linkps command has been superseded by the net command. │ │ │ │ │ the command newsig creates a new HAL signal by the name and the data type of . │ │ │ │ │ Type must be bit, s32, u32 or float. Error if already exists. │ │ │ │ │ Syntax and Examples of newsig │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 215 / 1331 │ │ │ │ │ │ │ │ │ │ newsig │ │ │ │ │ newsig Xstep bit │ │ │ │ │ │ │ │ │ │ Weitere Informationen finden Sie im HAL-Handbuch oder in den Man Pages für halrun. │ │ │ │ │ @@ -11561,15 +11561,15 @@ │ │ │ │ │ geändert werden, wenn Sie den Stepper-Konfigurationsassistenten verwendet haben. │ │ │ │ │ • custom.hal This file is loaded next and before the GUI loads. This is where you put your custom HAL │ │ │ │ │ commands that you want loaded before the GUI is loaded. │ │ │ │ │ • custom_postgui.hal This file is loaded after the GUI loads. This is where you put your custom HAL │ │ │ │ │ commands that you want loaded after the GUI is loaded. Any HAL commands that use PyVCP widgets │ │ │ │ │ need to be placed here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 216 / 1331 │ │ │ │ │ │ │ │ │ │ 5.2.4 HAL Parameter │ │ │ │ │ Two parameters are automatically added to each HAL component when it is created. These parameters │ │ │ │ │ allow you to scope the execution time of a component. │ │ │ │ │ .time │ │ │ │ │ @@ -11620,15 +11620,15 @@ │ │ │ │ │ │ │ │ │ │ out │ │ │ │ │ False │ │ │ │ │ False │ │ │ │ │ False │ │ │ │ │ True │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 5.2.5.2 │ │ │ │ │ │ │ │ │ │ 217 / 1331 │ │ │ │ │ │ │ │ │ │ not │ │ │ │ │ │ │ │ │ │ @@ -11684,15 +11684,15 @@ │ │ │ │ │ │ │ │ │ │ out │ │ │ │ │ True │ │ │ │ │ True │ │ │ │ │ True │ │ │ │ │ False │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 5.2.5.4 │ │ │ │ │ │ │ │ │ │ 218 / 1331 │ │ │ │ │ │ │ │ │ │ xor2 │ │ │ │ │ │ │ │ │ │ @@ -11747,15 +11747,15 @@ │ │ │ │ │ │ │ │ │ │ The weighted sum converts a group of bits into an integer. The conversion is the sum of the weights of │ │ │ │ │ the bits present plus any offset. It’s similar to binary coded decimal but with more options. The hold │ │ │ │ │ bit interrupts the input processing, so that the sum value no longer changes. │ │ │ │ │ Syntax for loading component weighted_sum │ │ │ │ │ loadrt weighted_sum wsum_sizes=size[,size,...] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 219 / 1331 │ │ │ │ │ │ │ │ │ │ Creates groups of ̀ ̀weighted_sum ̀ ̀s, each with the given number of input bits (size). │ │ │ │ │ Um die ”weighted_sum” zu aktualisieren, muss der ”process_wsums” an einen Thread angehängt │ │ │ │ │ werden. │ │ │ │ │ Add process_wsums to servo thread │ │ │ │ │ @@ -11845,15 +11845,15 @@ │ │ │ │ │ loadrt and2 count=3 │ │ │ │ │ │ │ │ │ │ Configurations are more readable if you specify with the names= option for components where it is │ │ │ │ │ supported, e.g.: │ │ │ │ │ Example load command resulting in explicitly named components aa, ab, ac. │ │ │ │ │ loadrt and2 names=aa,ab,ac │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 220 / 1331 │ │ │ │ │ │ │ │ │ │ It can be a maintenance problem to keep track of the components and their names, since when you │ │ │ │ │ add (or remove) a component, you must find and update the single loadrt directive applicable to the │ │ │ │ │ component. │ │ │ │ │ TWOPASS processing is enabled by including an INI file parameter in the [HAL] section, │ │ │ │ │ @@ -11889,15 +11889,15 @@ │ │ │ │ │ In einem zweiten Durchlauf werden dann alle anderen in den HALFILES angegebenen LinuxCNCBefehle ausgeführt. Die addf-Befehle verknüpfen die Funktionen einer Komponente mit der ThreadAusführung und werden in diesem zweiten Durchgang in der Reihenfolge ihres Erscheinens zusammen mit anderen Befehlen ausgeführt. │ │ │ │ │ Die Optionen ”count=” und ”names=” können zwar verwendet werden, schließen sich aber gegenseitig aus - für ein bestimmtes Modul kann nur ein Typ angegeben werden. │ │ │ │ │ Die TWOPASS-Verarbeitung ist am effektivsten, wenn die Option ”names=” verwendet wird. Mit dieser Option können Sie eindeutige Namen vergeben, die als Gedächtnisstütze dienen oder anderweitig │ │ │ │ │ für die Konfiguration relevant sind. Wenn Sie z. B. eine Ableitungskomponente zur Schätzung der Geschwindigkeiten und Beschleunigungen an jeder (x,y,z)-Koordinate verwenden, führt die Verwendung │ │ │ │ │ der count=-Methode zu obskuren Komponentennamen wie ddt.0, ddt.1, ddt.2, usw. │ │ │ │ │ Alternativ können Sie auch die Option names= verwenden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 221 / 1331 │ │ │ │ │ │ │ │ │ │ loadrt ddt names=xvel,yvel,zvel │ │ │ │ │ ... │ │ │ │ │ loadrt ddt names=xaccel,yaccel,zaccel │ │ │ │ │ │ │ │ │ │ @@ -11939,15 +11939,15 @@ │ │ │ │ │ 5.3.3 Ausschließen von HAL-Dateien │ │ │ │ │ TWOPASS processing converts .hal files to equivalent .tcl files and uses haltcl to find loadrt and addf │ │ │ │ │ commands in order to accumulate and consolidate their usage. Loadrt parameters that conform to │ │ │ │ │ the simple names= (or count=) parameters accepted by the HAL Component Generator (halcompile) │ │ │ │ │ are expected. More complex parameter items included in specialized LinuxCNC components may not │ │ │ │ │ be handled properly. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 222 / 1331 │ │ │ │ │ │ │ │ │ │ A .hal file may be excluded from TWOPASS processing by including a magic comment line anywhere in │ │ │ │ │ the .hal file. The magic comment line must begin with the string: #NOTWOPASS. Files specified with this │ │ │ │ │ magic comment are sourced by halcmd using the -k (keep going if failure) and -v (verbose) options. │ │ │ │ │ Diese Ausschlussbestimmung kann verwendet werden, um Probleme zu isolieren oder um spezielle │ │ │ │ │ @@ -11982,15 +11982,15 @@ │ │ │ │ │ │ │ │ │ │ 5.4 HAL Tutorial │ │ │ │ │ 5.4.1 Einführung │ │ │ │ │ Die Konfiguration geht von der Theorie zum Gerät über - dem HAL-Gerät. Für diejenigen, die nur ein │ │ │ │ │ wenig Erfahrung mit Computerprogrammierung haben, ist dieser Abschnitt das ”Hello World” des │ │ │ │ │ HAL. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 223 / 1331 │ │ │ │ │ │ │ │ │ │ halrun kann verwendet werden, um ein funktionierendes System zu erstellen. Es ist ein Kommandozeilenoder Textdateiwerkzeug für Konfiguration und Tuning. │ │ │ │ │ │ │ │ │ │ 5.4.2 Halcmd │ │ │ │ │ halcmd ist ein Befehlszeilentool zum Manipulieren von HAL. Eine vollständigere Manpage existiert │ │ │ │ │ @@ -12030,15 +12030,15 @@ │ │ │ │ │ Linux. Unfortunately, each RTOS does things a little differently. │ │ │ │ │ Um diese Unterschiede zu beseitigen, hat das LinuxCNC-Team die RTAPI entwickelt, die einen einheitlichen Weg für Programme bietet, um mit dem RTOS zu kommunizieren. Wenn Sie ein Programmierer │ │ │ │ │ sind, der an den Interna von LinuxCNC arbeiten will, sollten Sie vielleicht linuxcnc/src/rtapi/rtapi.h │ │ │ │ │ studieren, um die API zu verstehen. Aber wenn Sie eine normale Person sind, ist alles, was Sie über │ │ │ │ │ RTAPI wissen müssen, dass es (und das RTOS) in den Speicher Ihres Computers geladen werden muss, │ │ │ │ │ bevor Sie etwas mit HAL machen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 224 / 1331 │ │ │ │ │ │ │ │ │ │ 5.4.3 Ein einfaches Beispiel │ │ │ │ │ 5.4.3.1 Laden einer Komponente │ │ │ │ │ Für dieses Tutorial gehen wir davon aus, dass Sie die Live-CD erfolgreich installiert haben und, falls │ │ │ │ │ Sie eine RIP footnote: [Run In Place, wenn die Quelldateien in ein Benutzerverzeichnis heruntergeladen wurden und direkt von dort aus kompiliert und ausgeführt werden] Installation verwenden, das │ │ │ │ │ @@ -12087,15 +12087,15 @@ │ │ │ │ │ halcmd at the same time (in different terminal windows for example), so the PID is added to the end of │ │ │ │ │ the name to make it unique. The list also shows the siggen component that we installed in the previous │ │ │ │ │ step. The RT under Type indicates that siggen is a realtime component. The User under Type indicates │ │ │ │ │ it is a non-realtime component. │ │ │ │ │ Next, let’s see what pins siggen makes available: │ │ │ │ │ Pins anzeigen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 225 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: show pin │ │ │ │ │ Component Pins: │ │ │ │ │ Owner │ │ │ │ │ Type │ │ │ │ │ @@ -12190,15 +12190,15 @@ │ │ │ │ │ to any threads, so users is zero 1 . │ │ │ │ │ 5.4.3.3 Echtzeitcode zum Laufen bringen │ │ │ │ │ To actually run the code contained in the function siggen.0.update, we need a realtime thread. The │ │ │ │ │ component called threads that is used to create a new thread. Lets create a thread called ”test-thread” │ │ │ │ │ with a period of 1 ms (1,000 µs or 1,000,000 ns): │ │ │ │ │ 1 CodeAddr and Arg fields were used during development and should probably disappear. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 226 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: loadrt threads name1=test-thread period1=1000000 │ │ │ │ │ │ │ │ │ │ Mal sehen, ob das funktioniert: │ │ │ │ │ Threads anzeigen │ │ │ │ │ @@ -12293,15 +12293,15 @@ │ │ │ │ │ Owner │ │ │ │ │ Type Dir │ │ │ │ │ │ │ │ │ │ Value │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ @@ -12414,15 +12414,15 @@ │ │ │ │ │ Das meiste, was wir bisher mit halcmd gemacht haben, war einfach das Anzeigen von Dingen mit dem │ │ │ │ │ show-Befehl. Zwei der Befehle haben jedoch tatsächlich Dinge verändert. Wenn wir komplexere Systeme mit HAL entwerfen, werden wir viele Befehle verwenden, um die Dinge genau so zu konfigurieren, │ │ │ │ │ wie wir sie haben wollen. HAL hat ein Gedächtnis wie ein Elefant und behält diese Konfiguration bei, │ │ │ │ │ bis wir es abschalten. Aber was ist beim nächsten Mal? Wir wollen nicht jedes Mal, wenn wir das │ │ │ │ │ System benutzen wollen, eine Reihe von Befehlen manuell eingeben. │ │ │ │ │ Saving the configuration of the entire HAL with a single command. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 228 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: save │ │ │ │ │ # Komponenten │ │ │ │ │ loadrt threads name1=test-thread period1=1000000 │ │ │ │ │ loadrt siggen │ │ │ │ │ @@ -12458,15 +12458,15 @@ │ │ │ │ │ file saved.hal to add it there). │ │ │ │ │ 5.4.3.8 HAL aus dem Speicher entfernen │ │ │ │ │ Wenn eine HAL-Sitzung unerwartet beendet wird, müssen Sie möglicherweise HAL entladen, bevor │ │ │ │ │ eine neue Sitzung beginnen kann. Geben Sie dazu den folgenden Befehl in ein Terminalfenster ein. │ │ │ │ │ Removing HAL │ │ │ │ │ halrun -U │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 5.4.4 │ │ │ │ │ │ │ │ │ │ 229 / 1331 │ │ │ │ │ │ │ │ │ │ Halmeter │ │ │ │ │ │ │ │ │ │ @@ -12504,27 +12504,27 @@ │ │ │ │ │ halcmd: start │ │ │ │ │ halcmd: setp siggen.0.amplitude 5 │ │ │ │ │ │ │ │ │ │ At this point we have the siggen component loaded and running. It’s time to start halmeter. │ │ │ │ │ Halmeter starten │ │ │ │ │ halcmd: loadusr halmeter │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 230 / 1331 │ │ │ │ │ │ │ │ │ │ The first window you will see is the ”Select Item to Probe” window. │ │ │ │ │ │ │ │ │ │ Abbildung 5.5: Halmeter Auswahlfenster │ │ │ │ │ This dialog has three tabs. The first tab displays all of the HAL pins in the system. The second one │ │ │ │ │ displays all the signals, and the third displays all the parameters. We would like to look at the pin │ │ │ │ │ siggen.0.cosine first, so click on it then click the ”Close” button. The probe selection dialog will │ │ │ │ │ close, and the meter looks something like the following figure. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 231 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.6: Halmeter-Fenster │ │ │ │ │ To change what the meter displays press the ”Select” button which brings back the ”Select Item to │ │ │ │ │ Probe” window. │ │ │ │ │ Sie sollten sehen, wie sich der Wert ändert, wenn siggen seine Kosinuswelle erzeugt. Das Halmeter │ │ │ │ │ @@ -12554,15 +12554,15 @@ │ │ │ │ │ The first command loads two step generators, both configured to generate stepping type 0. The second │ │ │ │ │ command loads our old friend siggen, and the third one creates two threads, a fast one with a period │ │ │ │ │ of 50 microseconds (µs) and a slow one with a period of 1 millisecond (ms). The fast thread doesn’t │ │ │ │ │ support floating point functions. │ │ │ │ │ As before, we can use halcmd show to take a look at the HAL. This time we have a lot more pins and │ │ │ │ │ parameters than before: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 232 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: show pin │ │ │ │ │ Component Pins: │ │ │ │ │ Owner │ │ │ │ │ Type Dir │ │ │ │ │ @@ -12744,15 +12744,15 @@ │ │ │ │ │ stepgen.capture-position.time │ │ │ │ │ stepgen.capture-position.tmax │ │ │ │ │ stepgen.make-pulses.time │ │ │ │ │ stepgen.make-pulses.tmax │ │ │ │ │ stepgen.update-freq.time │ │ │ │ │ stepgen.update-freq.tmax │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 233 / 1331 │ │ │ │ │ │ │ │ │ │ 5.4.5.2 Verbinden von Pins mit Signalen │ │ │ │ │ Wir haben also zwei Schrittimpulsgeneratoren und einen Signalgenerator. Nun ist es an der Zeit, │ │ │ │ │ einige HAL-Signale zu erzeugen, um die beiden Komponenten zu verbinden. Wir tun so, als ob die beiden Schrittimpulsgeneratoren die X- und Y-Achse einer Maschine antreiben würden. Wir wollen den │ │ │ │ │ Tisch im Kreis bewegen. Dazu senden wir ein Kosinussignal an die X-Achse und ein Sinussignal an die │ │ │ │ │ @@ -12810,15 +12810,15 @@ │ │ │ │ │ signal comes from pin siggen.0.cosine, and goes to pin stepgen.0.velocity-cmd. │ │ │ │ │ 5.4.5.3 Einrichten der Echtzeitausführung - Threads und Funktionen │ │ │ │ │ Thinking about data flowing through ”wires” makes pins and signals fairly easy to understand. Threads │ │ │ │ │ and functions are a little more difficult. Functions contain the computer instructions that actually get │ │ │ │ │ things done. Thread are the method used to make those instructions run when they are needed. First │ │ │ │ │ let’s look at the functions available to us. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 234 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: show funct │ │ │ │ │ Exported Functions: │ │ │ │ │ Owner │ │ │ │ │ CodeAddr Arg │ │ │ │ │ @@ -12902,15 +12902,15 @@ │ │ │ │ │ ( │ │ │ │ │ slow ( │ │ │ │ │ │ │ │ │ │ Time, Max-Time ) │ │ │ │ │ 0, │ │ │ │ │ 0 ) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 49849 │ │ │ │ │ │ │ │ │ │ NO │ │ │ │ │ │ │ │ │ │ 1 siggen.0.update │ │ │ │ │ 2 stepgen.update-freq │ │ │ │ │ @@ -12961,39 +12961,39 @@ │ │ │ │ │ │ │ │ │ │ 5.4.6 Halscope │ │ │ │ │ Das vorherige Beispiel erzeugt einige sehr interessante Signale. Aber vieles von dem, was passiert, │ │ │ │ │ ist viel zu schnell, um es mit dem Halmeter zu sehen. Um einen genaueren Blick auf die Vorgänge │ │ │ │ │ im Inneren des HAL zu werfen, brauchen wir ein Oszilloskop. Glücklicherweise verfügt HAL über ein │ │ │ │ │ solches, genannt halscope. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 236 / 1331 │ │ │ │ │ │ │ │ │ │ Halscope has two parts - a realtime part that reads the HAL signals, and a non-realtime part that │ │ │ │ │ provides the GUI and display. However, you don’t need to worry about this because the non-realtime │ │ │ │ │ part will automatically load the realtime part when needed. │ │ │ │ │ With LinuxCNC running in a terminal you can start halscope with the following command. │ │ │ │ │ Halscope starten │ │ │ │ │ halcmd loadusr halscope │ │ │ │ │ │ │ │ │ │ Wenn LinuxCNC nicht läuft oder die Datei autosave.halscope nicht mit den Pins übereinstimmt, die │ │ │ │ │ im aktuell laufenden LinuxCNC verfügbar sind, öffnet sich das Scope-GUI-Fenster, unmittelbar gefolgt von einem Dialog Realtime function not linked, der wie die folgende Abbildung aussieht. Um die │ │ │ │ │ Abtastrate zu ändern, klicken Sie mit der linken Maustaste auf das Feld Samples. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 237 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.7: Dialog Echtzeitfunktion nicht verknüpft │ │ │ │ │ This dialog is where you set the sampling rate for the oscilloscope. For now we want to sample once │ │ │ │ │ per millisecond, so click on the 989 µs thread slow and leave the multiplier at 1. We will also leave the │ │ │ │ │ record length at 4000 samples, so that we can use up to four channels at one time. When you select │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 238 / 1331 │ │ │ │ │ │ │ │ │ │ a thread and then click OK, the dialog disappears, and the scope window looks something like the │ │ │ │ │ following figure. │ │ │ │ │ │ │ │ │ │ Abbildung 5.8: Fenster für den anfänglichen Geltungsbereich │ │ │ │ │ @@ -13005,34 +13005,34 @@ │ │ │ │ │ die Aufzeichnung verfügbare Speicher auf etwa 16.000 Samples festgelegt ist. │ │ │ │ │ Die Kanalschaltflächen befinden sich am unteren Rand des Halskop-Bildschirms. Wenn Sie auf die │ │ │ │ │ Schaltfläche ”1” klicken, wird das Dialogfeld ”Select Channel Source” (Kanalquelle auswählen) angezeigt, wie in der folgenden Abbildung dargestellt. Dieser Dialog ist dem von Halmeter verwendeten │ │ │ │ │ Dialog sehr ähnlich. Wir möchten uns die Signale ansehen, die wir zuvor definiert haben, also klicken │ │ │ │ │ wir auf die Registerkarte ”Signale”, und der Dialog zeigt alle Signale im HAL an (in diesem Beispiel │ │ │ │ │ nur zwei). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 239 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.9: Kanalquelle auswählen │ │ │ │ │ Um ein Signal auszuwählen, klicken Sie es einfach an. In diesem Fall möchten wir, dass auf Kanal 1 │ │ │ │ │ das Signal ”X-vel” angezeigt wird. Klicken Sie auf die Registerkarte ”Signale” und dann auf ”X-vel”. │ │ │ │ │ Das Dialogfeld schließt sich und der Kanal ist nun ausgewählt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 240 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.10: Signal auswählen │ │ │ │ │ Die Taste für Kanal 1 wird gedrückt, und die Kanalnummer 1 und die Bezeichnung ”X-vel” erscheinen │ │ │ │ │ unter der Tastenreihe. Diese Anzeige zeigt immer den ausgewählten Kanal an - Sie können mehrere │ │ │ │ │ Kanäle auf dem Bildschirm haben, aber der ausgewählte Kanal ist hervorgehoben, und die verschiedenen Steuerelemente wie vertikale Position und Skalierung funktionieren immer für den ausgewählten │ │ │ │ │ Kanal. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 241 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.11: Halscope │ │ │ │ │ To add a signal to channel 2, click the 2 button. When the dialog pops up, click the Signals tab, then │ │ │ │ │ click on Y-vel. We also want to look at the square and triangle wave outputs. There are no signals │ │ │ │ │ connected to those pins, so we use the Pins tab instead. For channel 3, select siggen.0.triangle and │ │ │ │ │ @@ -13042,15 +13042,15 @@ │ │ │ │ │ haben und 1000 Samples pro Sekunde erfassen, wird halscope etwa 2 Sekunden brauchen, um die │ │ │ │ │ Hälfte seines Puffers zu füllen. Während dieser Zeit zeigt ein Fortschrittsbalken direkt über dem │ │ │ │ │ Hauptbildschirm an, dass der Puffer gefüllt ist. Sobald der Puffer halb voll ist, wartet das Scope auf einen Trigger. Da wir noch keinen konfiguriert haben, wird es ewig warten. Um es manuell auszulösen, │ │ │ │ │ klicken Sie auf die Schaltfläche ”Erzwingen” im Abschnitt ”Auslöser” oben rechts. Sie sollten sehen, │ │ │ │ │ wie sich der Rest des Puffers füllt, und dann werden die erfassten Wellenformen auf dem Bildschirm │ │ │ │ │ angezeigt. Das Ergebnis sieht ungefähr so aus wie in der folgenden Abbildung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 242 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.12: Erfasste Wellenformen │ │ │ │ │ The Selected Channel box at the bottom tells you that the purple trace is the currently selected one, │ │ │ │ │ channel 4, which is displaying the value of the pin siggen.0.square. Try clicking channel buttons 1 │ │ │ │ │ through 3 to highlight the other three traces. │ │ │ │ │ @@ -13059,30 +13059,30 @@ │ │ │ │ │ verwenden wir die ”Vertikal”-Steuerungen in der Box auf der rechten Seite des Bildschirms. Diese │ │ │ │ │ Regler wirken sich auf den aktuell ausgewählten Kanal aus. Bei der Einstellung der Verstärkung ist │ │ │ │ │ zu beachten, dass sie einen riesigen Bereich abdeckt - im Gegensatz zu einem echten Oszilloskop kann │ │ │ │ │ dieses Gerät Signale von sehr kleinen (Pico-Einheiten) bis zu sehr großen (Tera-Einheiten) anzeigen. │ │ │ │ │ Mit dem Positionsregler wird die angezeigte Kurve nur über die Höhe des Bildschirms nach oben und │ │ │ │ │ unten bewegt. Für größere Einstellungen sollte die Offset-Taste verwendet werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 243 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.13: Vertikale Einstellung │ │ │ │ │ Die große Schaltfläche Ausgewählter Kanal am unteren Rand zeigt an, dass Kanal 1 der aktuell ausgewählte Kanal ist und dass er mit dem X-vel-Signal übereinstimmt. Versuchen Sie, auf die anderen │ │ │ │ │ Kanäle zu klicken, um ihre Spuren sichtbar zu machen und sie mit dem Pos-Cursor verschieben zu │ │ │ │ │ können. │ │ │ │ │ 5.4.6.4 Triggering (automatisches Auslösen) │ │ │ │ │ Die Verwendung des Button ”Erzwingen” ist eine eher unbefriedigende Art, das Oszilloskop auszulösen. Um eine echte Triggerung einzurichten, klicken Sie auf die Schaltfläche ”Quelle” unten rechts. │ │ │ │ │ Daraufhin wird das Dialogfeld ”Trigger Source” (Triggerquelle) angezeigt, das einfach eine Liste aller │ │ │ │ │ derzeit angeschlossenen Sonden enthält. Wählen Sie eine Sonde für die Triggerung aus, indem Sie │ │ │ │ │ auf sie klicken. In diesem Beispiel verwenden wir Kanal 3, die Dreieckswelle, wie in der folgenden │ │ │ │ │ Abbildung dargestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 244 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.14: Dialogfeld Triggerquelle (engl. trigger source) │ │ │ │ │ Nachdem Sie die Triggerquelle eingestellt haben, können Sie den Triggerpegel und die Triggerposition mit den Schiebereglern im Feld ”Trigger” am rechten Rand einstellen. Der Pegel kann vom │ │ │ │ │ oberen bis zum unteren Rand des Bildschirms eingestellt werden und wird unter den Schiebereglern │ │ │ │ │ angezeigt. Die Position ist die Lage des Auslösepunkts innerhalb der gesamten Aufzeichnung. Ist der │ │ │ │ │ @@ -13091,15 +13091,15 @@ │ │ │ │ │ dem Auslösen passiert ist. Der Triggerpunkt ist als vertikale Linie in der Fortschrittsanzeige über │ │ │ │ │ dem Bildschirm sichtbar. Die Triggerpolarität kann durch Klicken auf die Schaltfläche direkt unter │ │ │ │ │ der Triggerpegelanzeige geändert werden. Sie wird dann absteigend. Beachten Sie, dass die Änderung der Triggerposition das Oszilloskop anhält, sobald die Position angepasst wurde, starten Sie das │ │ │ │ │ Oszilloskop erneut, indem Sie auf die Schaltfläche Normal des Run-Modus der Gruppe klicken. │ │ │ │ │ Nachdem wir nun die vertikalen Regler und die Triggerung eingestellt haben, sieht die Anzeige des │ │ │ │ │ Oszilloskops etwa wie in der folgenden Abbildung aus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 245 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.15: Wellenformen mit Triggerung │ │ │ │ │ │ │ │ │ │ 5.4.6.5 Horizontale Anpassungen │ │ │ │ │ To look closely at part of a waveform, you can use the zoom slider at the top of the screen to expand │ │ │ │ │ @@ -13108,15 +13108,15 @@ │ │ │ │ │ the sampling rate. For example, we would like to look at the actual step pulses that are being generated │ │ │ │ │ in our example. Since the step pulses may be only 50 µs long, sampling at 1 kHz isn’t fast enough. To │ │ │ │ │ change the sample rate, click on the button that displays the number of samples and sample rate to │ │ │ │ │ bring up the Select Sample Rate dialog figure. For this example, we will click on the 50 µs thread, │ │ │ │ │ fast, which gives us a sample rate of about 20 kHz. Now instead of displaying about 4 seconds worth │ │ │ │ │ of data, one record is 4000 samples at 20 kHz, or about 0.20 seconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 246 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.16: Dialogfeld für Abtastrate │ │ │ │ │ │ │ │ │ │ 5.4.6.6 Weitere Kanäle │ │ │ │ │ Now let’s look at the step pulses. Halscope has 16 channels, but for this example we are using only 4 at │ │ │ │ │ @@ -13125,15 +13125,15 @@ │ │ │ │ │ do the same for channel 4. Even though the channels are turned off, they still remember what they are │ │ │ │ │ connected to, and in fact we will continue to use channel 3 as the trigger source. To add new channels, │ │ │ │ │ select channel 5, and choose pin stepgen.0.dir, then channel 6, and select stepgen.0.step. Then │ │ │ │ │ click run mode Normal to start the scope, and adjust the horizontal zoom to 5 ms per division. You │ │ │ │ │ should see the step pulses slow down as the velocity command (channel 1) approaches zero, then the │ │ │ │ │ direction pin changes state and the step pulses speed up again. You might want toincrease the gain on │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 247 / 1331 │ │ │ │ │ │ │ │ │ │ channel 1 to about 20 milli per division to better see the change in the velocity command. The result │ │ │ │ │ should look like the following figure. │ │ │ │ │ │ │ │ │ │ Abbildung 5.17: Schrittimpulse │ │ │ │ │ @@ -13147,15 +13147,15 @@ │ │ │ │ │ Verfügung stehen. (Wenn scope_rt bereits geladen war, hat das numerische Argument für halscope │ │ │ │ │ keine Auswirkungen). │ │ │ │ │ │ │ │ │ │ 5.5 HAL Examples │ │ │ │ │ All of these examples assume you are starting with a StepConf-based configuration and have two │ │ │ │ │ threads base-thread and servo-thread. The StepConf wizard will create an empty custom.hal and a │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 248 / 1331 │ │ │ │ │ │ │ │ │ │ custom_postgui.hal file. The custom.hal file will be loaded after the configuration HAL file and the │ │ │ │ │ custom_postgui.hal file is loaded after the GUI has been loaded. │ │ │ │ │ │ │ │ │ │ 5.5.1 Verbinden von zwei Ausgängen │ │ │ │ │ @@ -13217,15 +13217,15 @@ │ │ │ │ │ pin. From the direction arrow you can see that the button is and output and the or2.0.in0 is an input. │ │ │ │ │ The output from or2 goes to the input of the LED. │ │ │ │ │ │ │ │ │ │ 5.5.2 Manueller Werkzeugwechsel │ │ │ │ │ In this example it is assumed that you’re rolling your own configuration and wish to add the HAL │ │ │ │ │ Manual Toolchange window. The HAL Manual Toolchange is primarily useful if you have presettable │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 249 / 1331 │ │ │ │ │ │ │ │ │ │ tools and you store the offsets in the tool table. If you need to touch off for each tool change then it is │ │ │ │ │ best just to split up your G-code. To use the HAL Manual Toolchange window you basically have to │ │ │ │ │ 1. load the hal_manualtoolchange component, │ │ │ │ │ 2. then send the iocontrol tool change to the hal_manualtoolchange change and │ │ │ │ │ @@ -13265,15 +13265,15 @@ │ │ │ │ │ Herstellen der Verbindungen. │ │ │ │ │ setp mult2.in1 60 │ │ │ │ │ net xpos-cmd ddt.0.in │ │ │ │ │ net X-IPS mult2.0.in0 <= ddt.0.out │ │ │ │ │ net X-ABS abs.0.in <= mult2.0.out │ │ │ │ │ net X-IPM abs.0.out │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 250 / 1331 │ │ │ │ │ │ │ │ │ │ In this last section we are setting the mult2.0.in1 to 60 to convert the inch per second to inch per │ │ │ │ │ minute (IPM) that we get from the ddt.0.out. │ │ │ │ │ The xpos-cmd sends the commanded position to the ddt.0.in. The ddt computes the derivative of the │ │ │ │ │ change of the input. │ │ │ │ │ @@ -13286,15 +13286,15 @@ │ │ │ │ │ │ │ │ │ │ 5.5.4 Details zum Softstart │ │ │ │ │ Dieses Beispiel zeigt, wie die HAL-Komponenten Tiefpass, limit2 oder limit3 verwendet werden können, um die Änderungsgeschwindigkeit eines Signals zu begrenzen. │ │ │ │ │ In this example we have a servo motor driving a lathe spindle. If we just used the commanded │ │ │ │ │ spindle speeds on the servo it will try to go from present speed to commanded speed as fast as it │ │ │ │ │ can. This could cause a problem or damage the drive. To slow the rate of change we can send the │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 251 / 1331 │ │ │ │ │ │ │ │ │ │ spindle.N.speed-out through a limiter before the PID, so that the PID command value changes to │ │ │ │ │ new settings more slowly. │ │ │ │ │ Die drei eingebauten Komponenten, die ein Signal begrenzen, sind: │ │ │ │ │ • limit2 begrenzt den Bereich und die erste Ableitung eines Signals. │ │ │ │ │ @@ -13334,15 +13334,15 @@ │ │ │ │ │ Signals tab. Repeat for channels 2-4 and add lowpass, limit2, and limit3. │ │ │ │ │ Next to set up a trigger signal click on the Source None button and select square. The button will │ │ │ │ │ change to Source Chan 1. │ │ │ │ │ Next click on Single in the Run Mode radio buttons box. This will start a run and when it finishes you │ │ │ │ │ will see your traces. │ │ │ │ │ Um die Signale zu trennen, damit Sie sie besser sehen können, klicken Sie auf einen Kanal und verwenden Sie dann den Pos-Schieberegler im vertikalen Feld, um die Positionen festzulegen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 252 / 1331 │ │ │ │ │ │ │ │ │ │ To see the effect of changing the set point values of any of the components you can change them in │ │ │ │ │ the terminal window. To see what different gain settings do for lowpass just type the following in the │ │ │ │ │ terminal window and try different settings. │ │ │ │ │ setp lowpass.0.gain *.01 │ │ │ │ │ @@ -13356,15 +13356,15 @@ │ │ │ │ │ 5.5.5 Stand-Alone HAL │ │ │ │ │ In some cases you might want to run a GladeVCP screen with just HAL. For example say you had a │ │ │ │ │ stepper driven device that all you need is to run a stepper motor. A simple Start/Stop interface is all │ │ │ │ │ you need for your application so no need to load up and configure a full blown CNC application. │ │ │ │ │ Im folgenden Beispiel haben wir ein einfaches GladeVCP-Panel mit einem Schrittmotor. │ │ │ │ │ Grundlegende (engl. basic) Syntax │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 253 / 1331 │ │ │ │ │ │ │ │ │ │ # Lädt die GUI winder.glade und nennt diese winder │ │ │ │ │ loadusr -Wn winder gladevcp -c winder -u handler.py winder.glade │ │ │ │ │ # load Echtzeit-Komponenten │ │ │ │ │ loadrt threads name1=fast period1=50000 fp1=0 name2=slow period2=1000000 │ │ │ │ │ @@ -13401,15 +13401,15 @@ │ │ │ │ │ der an die Motorantriebe weitergeleitet wird. │ │ │ │ │ Optional wird die Anzahl der digitalen E/A (engl. I/O) mit num_dio eingestellt. Die Anzahl der analogen │ │ │ │ │ E/A wird mit num_aio festgelegt, Standard ist jeweils 4. Die Anzahl der Spindeln wird mit num_spindles │ │ │ │ │ eingestellt, Voreinstellung ist 1. │ │ │ │ │ Pin- und Parameternamen, die mit axis.L und joint.N beginnen, werden von der Motion-ControllerFunktion gelesen und aktualisiert. │ │ │ │ │ Motion wird mit dem Befehl motmod geladen. Ein kins sollte vor motion geladen werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 254 / 1331 │ │ │ │ │ │ │ │ │ │ loadrt motmod base_period_nsec=[’period’] servo_period_nsec=[’period’] │ │ │ │ │ traj_period_nsec=[’period’] num_joints=[’0-9’] │ │ │ │ │ num_dio=[’1-64’] num_aio=[’1-16’] unlock_joints_mask=[’0xNN’] │ │ │ │ │ num_spindles=[’1-8’] │ │ │ │ │ @@ -13446,15 +13446,15 @@ │ │ │ │ │ Diese Pins, Parameter und Funktionen werden durch das Echtzeitmodul motmod angelegt. │ │ │ │ │ • motion.adaptive-feed - (float, in) Wenn der adaptive Vorschub mit M52 P1 aktiviert ist, wird die │ │ │ │ │ befohlene Geschwindigkeit mit diesem Wert multipliziert. Dieser Effekt ist multiplikativ mit dem │ │ │ │ │ Vorschub-Override-Wert auf NML-Ebene und motion.feed-hold. Ab der Version 2.9 von LinuxCNC │ │ │ │ │ ist es möglich, einen negativen adaptiven Vorschubwert zu verwenden, für eine G-Code-Bahn in │ │ │ │ │ umgekehrter Richtung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 255 / 1331 │ │ │ │ │ │ │ │ │ │ • motion.analog-in-00 - (float, in) Diese Pins (00, 01, 02, 03 oder mehr, falls konfiguriert) werden von │ │ │ │ │ M66 gesteuert. │ │ │ │ │ • motion.analog-out-00 - (float, out) Diese Pins (00, 01, 02, 03 oder mehr, falls konfiguriert) werden │ │ │ │ │ von M67 oder M68 gesteuert. │ │ │ │ │ @@ -13493,15 +13493,15 @@ │ │ │ │ │ • motion.program-line - (s32, out) Die aktuelle Programmzeile während der Ausführung. Null, wenn │ │ │ │ │ das Programm nicht läuft oder zwischen den Zeilen bei Einzelschritten. │ │ │ │ │ • motion.requested-vel - (float, out) Die aktuell geforderte Geschwindigkeit in Benutzereinheiten pro │ │ │ │ │ Sekunde. Dieser Wert ist die F-Wort-Einstellung aus der G-Code-Datei, möglicherweise reduziert, │ │ │ │ │ um die Geschwindigkeits- und Beschleunigungsgrenzen der Maschine zu berücksichtigen. Der Wert │ │ │ │ │ an diesem Pin spiegelt nicht den Vorschub-Override oder andere Anpassungen wider. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 256 / 1331 │ │ │ │ │ │ │ │ │ │ • motion.teleop-mode - (bit, out) TRUE wenn die Bewegung im teleop mode (Fernsteuerungs-Modus) │ │ │ │ │ ist, im Gegensatz zum coordinated mode (Koordinaten-Modus) │ │ │ │ │ • motion.tooloffset.x … motion.tooloffset.w - (float, out, einer pro Achse) zeigt den aktuellen Werkzeugversatz an; er kann aus der Werkzeugtabelle (G43 aktiv) oder aus dem G-Code (G43.1 aktiv) │ │ │ │ │ stammen │ │ │ │ │ @@ -13533,15 +13533,15 @@ │ │ │ │ │ • motion.debug-float-2 - (float, RO) Dies wird zur Fehlersuche verwendet. │ │ │ │ │ • motion.debug-float-3 - (float, RO) Dies wird zur Fehlersuche verwendet. │ │ │ │ │ • motion.debug-s32-0 - (s32, RO) Dies wird zur Fehlersuche verwendet. │ │ │ │ │ • motion.debug-s32-1 - (s32, RO) Dies wird zur Fehlersuche verwendet. │ │ │ │ │ • motion.servo.last-period - (u32, RO) Die Anzahl der CPU-Zyklen zwischen den Aufrufen des ServoThreads. Normalerweise ergibt diese Zahl geteilt durch die CPU-Geschwindigkeit die Zeit in Sekunden und kann verwendet werden, um festzustellen, ob der Echtzeit-Bewegungsregler seine Zeitvorgaben einhält │ │ │ │ │ • motion.servo.last-period-ns - (float, RO) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 257 / 1331 │ │ │ │ │ │ │ │ │ │ 5.6.1.4 Funktionen │ │ │ │ │ Im Allgemeinen werden diese beiden Funktionen in der angegebenen Reihenfolge zum Servo-Thread │ │ │ │ │ hinzugefügt. │ │ │ │ │ • motion-command-handler - Receives and processes motion commands │ │ │ │ │ @@ -13576,15 +13576,15 @@ │ │ │ │ │ Spindelgeber-Treiber nicht über einen Geschwindigkeitsausgang verfügt, können Sie einen geeigneten Ausgang erzeugen, indem Sie die Spindelposition durch eine ddt Komponente senden. Wenn │ │ │ │ │ Sie keinen Spindelgeber haben, können Sie spindle.N.speed-out-rps durchschleifen. │ │ │ │ │ • spindle.N.speed-out - (float, out) Befohlene Spindeldrehzahl in Umdrehungen pro Minute. Positiv │ │ │ │ │ für Spindel vorwärts (M3), negativ für Spindel rückwärts (M4). │ │ │ │ │ • spindle.N.speed-out-abs - (Float, out) Geforderte Spindeldrehzahl in Umdrehungen pro Minute. Dies │ │ │ │ │ ist immer eine positive Zahl. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 258 / 1331 │ │ │ │ │ │ │ │ │ │ • spindle.N.speed-out-rps - (float, out) Geforderte Spindeldrehzahl in Umdrehungen pro Sekunde. │ │ │ │ │ Positiv für Spindel vorwärts (M3), negativ für Spindel rückwärts (M4). │ │ │ │ │ • spindle.N.speed-out-rps-abs - (float, out) Befohlene Spindeldrehzahl in Umdrehungen pro Sekunde. │ │ │ │ │ Dies ist immer eine positive Zahl. │ │ │ │ │ @@ -13617,15 +13617,15 @@ │ │ │ │ │ Außerdem kann jeder der Befehle M3, M4 oder M5 entweder den Modus Suche nach gewünschter │ │ │ │ │ Orientierung oder Orientierung abgeschlossen abbrechen. Dies wird durch das Deassertieren der Pins │ │ │ │ │ spindle-orient und spindle-locked angezeigt. │ │ │ │ │ Der Pin ”spindle-orient-mode” spiegelt das M19 P-Wort wider und ist wie folgt zu interpretieren: │ │ │ │ │ • 0: Drehen im oder gegen den Uhrzeigersinn für kleinste Winkelbewegung │ │ │ │ │ • 1: immer rot │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 259 / 1331 │ │ │ │ │ │ │ │ │ │ • 2: immer gegen den Uhrzeigersinn drehen │ │ │ │ │ Sie kann mit der HAL-Komponente ”orient” verwendet werden, die einen PID-Befehlswert auf der │ │ │ │ │ Grundlage der Spindelgeberposition, des spindle-orient-angle (”Spindelorientierungswinkel”) and │ │ │ │ │ spindle-orient-mode (”Spindelorientierungsmodus”) liefert. │ │ │ │ │ @@ -13654,15 +13654,15 @@ │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ 5.6.5 INI-Einstellungen │ │ │ │ │ Eine Reihe von INI-Einstellungen werden als HAL Eingangspins zur Verfügung gestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 260 / 1331 │ │ │ │ │ │ │ │ │ │ 5.6.5.1 Pins ) │ │ │ │ │ N bezieht sich auf eine Gelenknummer, L auf einen Achsenbuchstaben. │ │ │ │ │ • ”ini.N.ferror’ - (float, in) [JOINT_N]FERROR │ │ │ │ │ • ini.N.min_ferror - (float, in) [JOINT_N]MIN_FERROR │ │ │ │ │ @@ -13694,15 +13694,15 @@ │ │ │ │ │ The traj_arc_blend pins are sampled continuously but changing pin values 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 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 261 / 1331 │ │ │ │ │ │ │ │ │ │ 5.7 HAL Component List │ │ │ │ │ 5.7.1 Komponenten │ │ │ │ │ Most of the commands in the following list have their own dedicated man pages. Some will have │ │ │ │ │ expanded descriptions, some will have limited descriptions. From this list you know what components │ │ │ │ │ @@ -13767,15 +13767,15 @@ │ │ │ │ │ Vismach Virtuelle Maschine GUI │ │ │ │ │ Vismach Virtuelle Maschine GUI │ │ │ │ │ Vismach Virtuelle Maschine GUI │ │ │ │ │ Vismach Virtuelle Maschine GUI │ │ │ │ │ hexagui - Vismach Virtual Machine-GUI │ │ │ │ │ hexagui - Vismach Virtual Machine-GUI │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ puma560gui │ │ │ │ │ pumagui │ │ │ │ │ rotarydelta │ │ │ │ │ scaragui │ │ │ │ │ xyzac-trtgui │ │ │ │ │ xyzbc-trtgui │ │ │ │ │ @@ -13852,15 +13852,15 @@ │ │ │ │ │ 5.7.1.4 Mesa und andere I/O-Karten (Echtzeit) │ │ │ │ │ hal_ppmc │ │ │ │ │ hal_bb_gpio │ │ │ │ │ │ │ │ │ │ Pico Systems Treiber für analoge Servo-, PWM- und Stepper-Controller │ │ │ │ │ Treiber für Beaglebone GPIO-Pins │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 263 / 1331 │ │ │ │ │ │ │ │ │ │ hal_parport │ │ │ │ │ │ │ │ │ │ Realtime HAL component to communicate with one or more PC parallel │ │ │ │ │ ports │ │ │ │ │ @@ -13940,15 +13940,15 @@ │ │ │ │ │ latencyPlottet Histogramm der Maschinenlatenz │ │ │ │ │ histogram │ │ │ │ │ latency-plot Eine weitere Möglichkeit, Latenzzahlen anzuzeigen │ │ │ │ │ latency-test Testen der Latenzzeit des Echtzeitsystems │ │ │ │ │ pncconf │ │ │ │ │ Konfigurationsassistent für Mesa-Karten │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ setsserial │ │ │ │ │ │ │ │ │ │ sim_pin │ │ │ │ │ stepconf │ │ │ │ │ │ │ │ │ │ 264 / 1331 │ │ │ │ │ @@ -14039,15 +14039,15 @@ │ │ │ │ │ Verwendet einen Parameter, um den Wert eines Pins festzulegen │ │ │ │ │ Counts input pulses (deprecated). Use the encoder component. │ │ │ │ │ Berechnet die Ableitung der Eingangsfunktion. │ │ │ │ │ Gibt den Mittelpunkt zurück, wenn er sich innerhalb des Schwellenwerts │ │ │ │ │ befindet. │ │ │ │ │ Quotient of two floating point inputs. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 265 / 1331 │ │ │ │ │ │ │ │ │ │ hypot │ │ │ │ │ Rechner für die Hypotenuse (euklidischer Abstand) mit drei Eingaben. │ │ │ │ │ ilowpass │ │ │ │ │ Tiefpassfilter mit ganzzahligen Ein- und Ausgängen │ │ │ │ │ @@ -14125,15 +14125,15 @@ │ │ │ │ │ conv_u32_s32 Konvertiert von u32 nach s32 │ │ │ │ │ gray2bin │ │ │ │ │ Konvertiert Gray-Code-Eingabe in Binärformat │ │ │ │ │ 2 Wenn der Eingang eine Position ist, bedeutet dies, dass die Position begrenzt ist. │ │ │ │ │ 3 When the input is a position, this means that position and velocity are limited. │ │ │ │ │ 4 When the input is a position, this means that the position, velocity, and acceleration are limited. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 266 / 1331 │ │ │ │ │ │ │ │ │ │ 5.7.1.7 Kinematiken (Echtzeit) │ │ │ │ │ corexy_by_hal CoreXY-Kinematiken │ │ │ │ │ differential │ │ │ │ │ Kinematik für ein Differentialgetriebe │ │ │ │ │ @@ -14206,15 +14206,15 @@ │ │ │ │ │ Software-Schrittimpulsgenerierung, siehe Beschreibung. │ │ │ │ │ │ │ │ │ │ 5.7.1.10 Sonstiges (Echtzeit) │ │ │ │ │ comp │ │ │ │ │ │ │ │ │ │ Erstellen, kompilieren und installieren Sie LinuxCNC HAL Komponenten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 267 / 1331 │ │ │ │ │ │ │ │ │ │ classicladder Echtzeit-Software-SPS (engl. PLC), die auf Kontaktplan-Logik basiert. │ │ │ │ │ Siehe Kapitel ClassicLadder für weitere Informationen. │ │ │ │ │ threads │ │ │ │ │ Erzeugt harte Echtzeit-HAL-Threads. │ │ │ │ │ @@ -14278,15 +14278,15 @@ │ │ │ │ │ hal_param_u32_newf.3hal │ │ │ │ │ hal_parport.3hal │ │ │ │ │ hal_pin_bit_new.3hal │ │ │ │ │ hal_pin_bit_newf.3hal │ │ │ │ │ hal_pin_float_new.3hal │ │ │ │ │ hal_pin_float_newf.3hal │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ hal_pin_new.3hal │ │ │ │ │ hal_pin_s32_new.3hal │ │ │ │ │ hal_pin_s32_newf.3hal │ │ │ │ │ hal_pin_u32_new.3hal │ │ │ │ │ hal_pin_u32_newf.3hal │ │ │ │ │ hal_ready.3hal │ │ │ │ │ @@ -14337,15 +14337,15 @@ │ │ │ │ │ rtapi_print.3rtap │ │ │ │ │ rtapi_prio.3rtapi │ │ │ │ │ rtapi_prio_highest.3rtapi │ │ │ │ │ rtapi_prio_lowest.3rtapi │ │ │ │ │ │ │ │ │ │ 268 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 269 / 1331 │ │ │ │ │ │ │ │ │ │ rtapi_prio_next_higher.3rtapi │ │ │ │ │ rtapi_prio_next_lower.3rtapi │ │ │ │ │ rtapi_region.3rtapi │ │ │ │ │ rtapi_release_region.3rtapi │ │ │ │ │ @@ -14374,21 +14374,21 @@ │ │ │ │ │ velocity mode, it drives a motor at the commanded speed, while obeying velocity and acceleration limits. It is a realtime component only, and depending on CPU speed, etc., is capable of maximum step │ │ │ │ │ rates of 10 kHz to perhaps 50 kHz. The step pulse generator block diagram shows three block diagrams, each is a single step pulse generator. The first diagram is for step type 0, (step and direction). │ │ │ │ │ The second is for step type 1 (up/down, or pseudo-PWM), and the third is for step types 2 through │ │ │ │ │ 14 (various stepping patterns). The first two diagrams show position mode control, and the third one │ │ │ │ │ shows velocity mode. Control mode and step type are set independently, and any combination can be │ │ │ │ │ selected. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 5.19: Schrittimpulsgenerator-Blockdiagramm Positionsmodus │ │ │ │ │ │ │ │ │ │ 270 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 271 / 1331 │ │ │ │ │ │ │ │ │ │ Laden der Komponente stepgen │ │ │ │ │ halcmd: loadrt stepgen step_type= [ctrl_type=] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -14437,15 +14437,15 @@ │ │ │ │ │ • (bit) stepgen. ̀ │ │ │ │ │ ____.phase-C ̀ - Phase C output (step types 3-14 only). │ │ │ │ │ • (bit) stepgen. ̀ │ │ │ │ │ ____.phase-D ̀ - Phase D output (step types 5-14 only). │ │ │ │ │ • (bit) stepgen. ̀ │ │ │ │ │ ____.phase-E ̀ - Phase E output (step types 11-14 only). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 272 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.1.2 Parameter │ │ │ │ │ • (float) stepgen. ̀ │ │ │ │ │ ____.position-scale ̀ - Steps per position unit. This parameter is used for │ │ │ │ │ both output and feedback. │ │ │ │ │ @@ -14494,15 +14494,15 @@ │ │ │ │ │ 1 ns, but the automatic rounding takes effect the first time the code runs. Since one step requires │ │ │ │ │ steplen ns high and stepspace ns low, the maximum frequency is 1,000,000,000 divided by (steplen │ │ │ │ │ + stepspace)’. If maxfreq is set higher than that limit, it will be lowered automatically. If maxfreq is │ │ │ │ │ zero, it will remain zero, but the output frequency will still be limited. │ │ │ │ │ When using the parallel port driver the step frequency can be doubled using the parport reset function │ │ │ │ │ together with StepGen’s doublefreq setting. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 273 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.20: Schritt- und Richtungs-Timing (engl. step and direction timing) │ │ │ │ │ Schritt Typ 1 (step type 1) Step type 1 has two outputs, up and down. Pulses appear on one or the │ │ │ │ │ other, depending on the direction of travel. Each pulse is steplen ns long, and the pulses are separated │ │ │ │ │ by at least stepspace ns. The maximum frequency is the same as for step type 0. If maxfreq is set higher │ │ │ │ │ @@ -14513,33 +14513,33 @@ │ │ │ │ │ Do not use the parport reset function with step types 2 - 14. Unexpected results can happen. │ │ │ │ │ │ │ │ │ │ Schritt Typen 2 - 14 (engl. step type 2-14) Step types 2 through 14 are state based, and have from │ │ │ │ │ two to five outputs. On each step, a state counter is incremented or decremented. The Two-and-ThreePhase, Four-Phase, and Five-Phase show the output patterns as a function of the state counter. The │ │ │ │ │ maximum frequency is 1,000,000,000 divided by steplen, and as in the other modes, maxfreq will be │ │ │ │ │ lowered if it is above the limit. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 5.21: Zwei- und dreiphasige Schritttypen │ │ │ │ │ │ │ │ │ │ 274 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 5.22: Vierphasige Schritttypen │ │ │ │ │ │ │ │ │ │ 275 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 5.23: Fünf-Phasen-Schritttypen │ │ │ │ │ │ │ │ │ │ 276 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 277 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.1.4 Funktionen │ │ │ │ │ The component exports three functions. Each function acts on all of the step pulse generators - running │ │ │ │ │ different generators in different threads is not supported. │ │ │ │ │ • (funct) stepgen.make-pulses - High speed function to generate and count pulses (no floating point). │ │ │ │ │ @@ -14574,15 +14574,15 @@ │ │ │ │ │ use a type 1 output (PWM and direction) and the third will use a type 2 output (UP and DOWN). There │ │ │ │ │ is no default value, if is not not specified, no PWM generator will be installed. The maximum number of frequency generators is 8 (as defined by MAX_CHAN in pwmgen.c). Each generator │ │ │ │ │ is independent, but all are updated by the same function(s), at the same time. In the descriptions that │ │ │ │ │ follow, is the number of specific generators. The numbering of PWM generators starts at 0. │ │ │ │ │ Entfernen (engl. hier unloading) von PWMgen │ │ │ │ │ unloadrt pwmgen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 278 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.2.1 Ausgangstypen (engl. output types) │ │ │ │ │ Der PWM-Generator unterstützt drei verschiedene ”Ausgangstypen”. │ │ │ │ │ • Output type 0 - PWM output pin only. Only positive commands are accepted, negative values are │ │ │ │ │ treated as zero (and will be affected by the parameter min-dc if it is non-zero). │ │ │ │ │ @@ -14626,15 +14626,15 @@ │ │ │ │ │ to zero when disabled, regardless of this setting). │ │ │ │ │ • (float) pwmgen. ̀ │ │ │ │ │ ____.max-dc ̀ - Maximum duty cycle, between 0.0 and 1.0. │ │ │ │ │ • (float) pwmgen. ̀ │ │ │ │ │ ____.curr-dc ̀ - Current duty cycle - after all limiting and rounding (read │ │ │ │ │ only). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 279 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.2.4 Funktionen │ │ │ │ │ Die Komponente exportiert zwei Funktionen. Jede Funktion wirkt auf alle PWM-Generatoren - die │ │ │ │ │ Ausführung verschiedener Generatoren in verschiedenen Threads wird nicht unterstützt. │ │ │ │ │ • (funct) pwmgen.make-pulses - High speed function to generate PWM waveforms (no floating point). │ │ │ │ │ @@ -14655,15 +14655,15 @@ │ │ │ │ │ The base thread should be 1/2 count speed to allow for noise and timing variation. For example if you │ │ │ │ │ have a 100 pulse per revolution encoder on the spindle and your maximum RPM is 3000 the maximum │ │ │ │ │ base thread should be 25 µs. A 100 pulse per revolution encoder will have 400 counts. The spindle │ │ │ │ │ speed of 3000 RPM = 50 RPS (revolutions per second). 400 * 50 = 20,000 counts per second or 50 µs │ │ │ │ │ between counts. │ │ │ │ │ Das Blockdiagramm des Encoderzählers ist ein Blockdiagramm eines Kanals eines Encoderzählers. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 280 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.24: Encoderzähler-Blockdiagramm │ │ │ │ │ Laden des Encoders │ │ │ │ │ halcmd: loadrt encoder [num_chan=] │ │ │ │ │ │ │ │ │ │ @@ -14677,15 +14677,15 @@ │ │ │ │ │ │ │ │ │ │ 5.8.3.1 Pins │ │ │ │ │ • encoder.__.counter-mode (bit, I/O) (default: FALSE) - Enables counter mode. When true, │ │ │ │ │ the counter counts each rising edge of the phase-A input, ignoring the value on phase-B. This is │ │ │ │ │ useful for counting the output of a single channel (non-quadrature) sensor. When false, it counts in │ │ │ │ │ quadrature mode. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 281 / 1331 │ │ │ │ │ │ │ │ │ │ • encoder.__.missing-teeth (s32, In) (default: 0) - Enables the use of missing-tooth index. │ │ │ │ │ This allows a single IO pin to provide both position and index information. If the encoder wheel has │ │ │ │ │ 58 teeth with two missing, spaced as if there were 60(common for automotive crank sensors) then │ │ │ │ │ the position-scale should be set to 60 and missing-teeth to 2. To use this mode counter-mode should │ │ │ │ │ @@ -14724,15 +14724,15 @@ │ │ │ │ │ pulse. │ │ │ │ │ • encoder.__.reset (bit, In) - When True, force counts and position to zero immediately. │ │ │ │ │ • encoder.__.velocity (float, Out) - Velocity in scaled units per second. encoder uses an │ │ │ │ │ algorithm that greatly reduces quantization noise as compared to simply differentiating the position │ │ │ │ │ output. When the magnitude of the true velocity is below min-speed-estimate, the velocity output is │ │ │ │ │ 0. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 282 / 1331 │ │ │ │ │ │ │ │ │ │ • encoder.__.x4-mode (bit, I/O) (default: TRUE) - Enables times-4 mode. When true, the counter counts each edge of the quadrature waveform (four counts per full cycle). When false, it only │ │ │ │ │ counts once per full cycle. In counter-mode, this parameter is ignored. The 1x mode is useful for │ │ │ │ │ some jogwheels. │ │ │ │ │ 5.8.3.2 Parameter │ │ │ │ │ @@ -14748,15 +14748,15 @@ │ │ │ │ │ │ │ │ │ │ 5.8.4 PID │ │ │ │ │ This component provides Proportional/Integral/Derivative control loops. It is a realtime component │ │ │ │ │ only. For simplicity, this discussion assumes that we are talking about position loops, however this │ │ │ │ │ component can be used to implement other feedback loops such as speed, torch height, temperature, │ │ │ │ │ etc. The PID Loop Block Diagram is a block diagram of a single PID loop. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 283 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.25: PID-Regelkreis-Blockdiagramm │ │ │ │ │ PID laden │ │ │ │ │ halcmd: loadrt pid [num_chan=] [debug=1] │ │ │ │ │ │ │ │ │ │ @@ -14768,15 +14768,15 @@ │ │ │ │ │ cluttering the pin list. │ │ │ │ │ PID entfernen (engl. unload) │ │ │ │ │ halcmd: unloadrt pid │ │ │ │ │ │ │ │ │ │ 5.8.4.1 Pins │ │ │ │ │ Die drei wichtigsten Pins sind │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 284 / 1331 │ │ │ │ │ │ │ │ │ │ • (float) pid. ̀ │ │ │ │ │ ____.command ̀ - The desired position, as commanded by another system │ │ │ │ │ component. │ │ │ │ │ • (float) pid. ̀ │ │ │ │ │ @@ -14813,15 +14813,15 @@ │ │ │ │ │ • (float) pid. . FF2 - Feedforward zweiter Ordnung - Ausgabe proportional zur 2. Ableitung │ │ │ │ │ des Befehls (Beschleunigung). │ │ │ │ │ • (float) pid..deadband - Betrag des Fehlers, der ignoriert wird │ │ │ │ │ • (float) pid. .maxerror - Fehlerbegrenzung │ │ │ │ │ • (float) pid. .maxerrorI - Limit für Fehlerintegrator │ │ │ │ │ • (float) pid. .maxerrorD - Limit für Fehlerableitung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 285 / 1331 │ │ │ │ │ │ │ │ │ │ • (float) pid..maxcmdD - Begrenzung der Befehlsableitung │ │ │ │ │ • (float) pid..maxcmdDD - Begrenzung der 2. Ableitung des Befehls │ │ │ │ │ • (float) pid. .maxoutput - Grenzwert für Ausgangswert │ │ │ │ │ Alle max*-Grenzwerte sind so implementiert, dass es keinen Grenzwert gibt, wenn der Wert dieses │ │ │ │ │ @@ -14858,15 +14858,15 @@ │ │ │ │ │ ____.phase-A ̀ - Quadrature output. │ │ │ │ │ • (bit) sim-encoder. ̀ │ │ │ │ │ ____.phase-B ̀ - Quadrature output. │ │ │ │ │ • (bit) sim-encoder. ̀ │ │ │ │ │ ____.phase-Z ̀ - Index pulse output. │ │ │ │ │ When .speed is positive, .phase-A leads .phase-B. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 286 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.5.2 Parameter │ │ │ │ │ • (u32) sim-encoder. ̀ │ │ │ │ │ ____.ppr ̀ - Pulses Per Revolution. │ │ │ │ │ • (float) sim-encoder. ̀ │ │ │ │ │ @@ -14903,15 +14903,15 @@ │ │ │ │ │ 5.8.6.1 Pins │ │ │ │ │ Jeder einzelne Filter hat zwei Pins. │ │ │ │ │ • (bit) debounce. ̀ │ │ │ │ │ ____.____.in ̀ - Input of filter in group . │ │ │ │ │ • (bit) debounce. ̀ │ │ │ │ │ ____.____.out ̀ - Output of filter in group . │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 287 / 1331 │ │ │ │ │ │ │ │ │ │ 5.8.6.2 Parameter │ │ │ │ │ Each group of filters has one parameter5 . │ │ │ │ │ • (s32) debounce. ̀ │ │ │ │ │ ____.delay ̀ - Filter delay for all filters in group . │ │ │ │ │ @@ -14949,15 +14949,15 @@ │ │ │ │ │ • (float) siggen. ̀ │ │ │ │ │ ____.triangle ̀ - Triangle wave output. │ │ │ │ │ • (float) siggen. ̀ │ │ │ │ │ ____.square ̀ - Square wave output. │ │ │ │ │ 5 Each individual filter also has an internal state variable. There is a compile time switch that can export that variable as a │ │ │ │ │ parameter. This is intended for testing, and simply wastes shared memory under normal circumstances. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 288 / 1331 │ │ │ │ │ │ │ │ │ │ Alle fünf Ausgänge haben die gleiche Frequenz, Amplitude und Offset. │ │ │ │ │ Zusätzlich zu den Ausgangspins gibt es drei Steuerpins: │ │ │ │ │ • (float) siggen. ̀ │ │ │ │ │ ____.frequency ̀ - Sets the frequency in Hertz, default value is 1 Hz. │ │ │ │ │ @@ -15035,15 +15035,15 @@ │ │ │ │ │ 0 │ │ │ │ │ │ │ │ │ │ Ausgabe │ │ │ │ │ │ │ │ │ │ 6 Prior to version 2.1, frequency, amplitude, and offset were parameters. They were changed to pins to allow control by other │ │ │ │ │ components. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 289 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 5.22: (continued) │ │ │ │ │ Bit 4 │ │ │ │ │ 0 │ │ │ │ │ 0 │ │ │ │ │ @@ -15226,15 +15226,15 @@ │ │ │ │ │ function is 0xa. The hexadecimal prefix is 0x. │ │ │ │ │ │ │ │ │ │ 5.9 HAL Component Generator │ │ │ │ │ 5.9.1 Einführung │ │ │ │ │ This section introduces to the compilation HAL components, i.e. the addition of some machinists’ │ │ │ │ │ knowledge on how to deal with the machine. It should be noted that such components do not ne- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 290 / 1331 │ │ │ │ │ │ │ │ │ │ cessarily deal with the hardware directly. They often do, but not necessarily, e.g. there could be a │ │ │ │ │ component to convert between imperial and metric scales, so this section does not require to dive │ │ │ │ │ into the interaction with hardware. │ │ │ │ │ Writing a HAL component can be a tedious process, most of it in setup calls to rtapi_ and hal_ functions │ │ │ │ │ @@ -15274,15 +15274,15 @@ │ │ │ │ │ loadrt threads name1=servo-thread period1=1000000 │ │ │ │ │ loadrt ddt │ │ │ │ │ addf ddt.0 servo-thread │ │ │ │ │ │ │ │ │ │ More information on loadrt and addf can be found in the HAL Grundlagen. │ │ │ │ │ Um Ihre Komponente zu testen, können Sie den Beispielen im HAL Tutorial folgen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 291 / 1331 │ │ │ │ │ │ │ │ │ │ 5.9.4 Definitionen │ │ │ │ │ • component - A component is a single real-time module, which is loaded with halcmd loadrt. One │ │ │ │ │ .comp file specifies one component. The component name and file name must match. │ │ │ │ │ • instance - A component can have zero or more instances. Each instance of a component is created │ │ │ │ │ @@ -15317,15 +15317,15 @@ │ │ │ │ │ • option OPT (VALUE); │ │ │ │ │ • variable CTYPE STARREDNAME ([SIZE]); │ │ │ │ │ • description DOC; │ │ │ │ │ • examples DOC; │ │ │ │ │ • notes DOC; │ │ │ │ │ • see_also DOC;’ │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 292 / 1331 │ │ │ │ │ │ │ │ │ │ • license LICENSE; │ │ │ │ │ • author AUTHOR; │ │ │ │ │ • include HEADERFILE; │ │ │ │ │ Parentheses indicate optional items. A vertical bar indicates alternatives. Words in CAPITALS indicate │ │ │ │ │ @@ -15376,15 +15376,15 @@ │ │ │ │ │ • SIZE - Eine Zahl, um die Größe eines Arrays anzugeben. Die Array-Elemente sind von 0 bis SIZE-1 │ │ │ │ │ nummeriert. │ │ │ │ │ • MAXSIZE : CONDSIZE - A number that gives the maximum size of the array, followed by an expression involving the variable personality and which always evaluates to less than MAXSIZE. When the │ │ │ │ │ array is created its size will be CONDSIZE. │ │ │ │ │ • DOC - Eine Zeichenfolge, die das Element dokumentiert. Die Zeichenfolge kann eine ”doppelt in │ │ │ │ │ Anführungszeichen” gesetzte Zeichenfolge im C-Stil sein, z. B.: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 293 / 1331 │ │ │ │ │ │ │ │ │ │ ”Wählt die gewünschte Flanke aus: TRUE bedeutet fallend, FALSE bedeutet steigend” │ │ │ │ │ │ │ │ │ │ oder eine ”dreifach in Anführungszeichen” gesetzte Zeichenfolge im Python-Stil, die eingebettete │ │ │ │ │ Zeilenumbrüche und Anführungszeichen enthalten kann, z. B.: │ │ │ │ │ @@ -15422,15 +15422,15 @@ │ │ │ │ │ 5.9.7.2 Optionen │ │ │ │ │ Die derzeit definierten Optionen sind: │ │ │ │ │ • option singleton yes - (default: no) Do not create a count module parameter, and always create a single instance. With singleton, items are named component-name.item-name and without singleton, │ │ │ │ │ items for numbered instances are named component-name..item-name. │ │ │ │ │ • option default_count number’ - (Standardwert: 1) Normalerweise ist der Modulparameter count auf │ │ │ │ │ 1 voreingestellt. Ist er angegeben, so wird count stattdessen auf diesen Wert gesetzt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 294 / 1331 │ │ │ │ │ │ │ │ │ │ • option count_function yes - (Voreinstellung: no) Normalerweise wird die Anzahl der zu erstellenden │ │ │ │ │ Instanzen im Modulparameter count angegeben; wenn count_function angegeben ist, wird stattdessen der von der Funktion int get_count(void) zurückgegebene Wert verwendet, und der Modulparameter count ist nicht definiert. │ │ │ │ │ • option rtapi_app no - (default: yes) Normally, the functions rtapi_app_main() and rtapi_app_exit() │ │ │ │ │ are automatically defined. With option rtapi_app no, they are not, and must be provided in the C │ │ │ │ │ @@ -15471,15 +15471,15 @@ │ │ │ │ │ above) is set to no. When compiling a non-realtime component, the arguments given are inserted │ │ │ │ │ in the compiler command line. If the input file is a .c file this option can be set in the halcompile │ │ │ │ │ command-line with --extra-compile-args=”-I…..”. This alternative provides a way to set extra flags │ │ │ │ │ in cases where the input file is a .c file rather than a .comp file. │ │ │ │ │ • option homemod yes - (default: no) │ │ │ │ │ Module is a custom Homing module loaded using [EMCMOT]HOMEMOD=modulename . │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 295 / 1331 │ │ │ │ │ │ │ │ │ │ • option tpmod yes - (default: no) │ │ │ │ │ Module is a custom Trajectory Planning (tp) module loaded using [TRAJ]TPMOD=modulename . │ │ │ │ │ Wenn der VALUE (engl. für Wert) einer Option nicht angegeben wird, ist dies gleichbedeutend mit der │ │ │ │ │ Angabe von option … yes. │ │ │ │ │ @@ -15513,15 +15513,15 @@ │ │ │ │ │ Einzeilige Kommentare im C++-Stil (//...) und mehrzeilige Kommentare im C-Stil (/* ... */) werden beide im Deklarationsabschnitt unterstützt. │ │ │ │ │ │ │ │ │ │ 5.9.8 Einschränkungen │ │ │ │ │ Obwohl HAL erlaubt, dass ein Pin, ein Parameter und eine Funktion denselben Namen haben können, │ │ │ │ │ ist dies bei halcompile nicht der Fall. │ │ │ │ │ Zu den Variablen- und Funktionsnamen, die nicht verwendet werden können oder zu Problemen führen können, gehören: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 296 / 1331 │ │ │ │ │ │ │ │ │ │ • Alles, was mit _comp beginnt. │ │ │ │ │ • comp_id │ │ │ │ │ • fperiod │ │ │ │ │ • rtapi_app_main │ │ │ │ │ @@ -15561,15 +15561,15 @@ │ │ │ │ │ they do in realtime functions. │ │ │ │ │ │ │ │ │ │ 5.9.10 Komponenten mit einer Funktion │ │ │ │ │ If a component has only one function and the string ”FUNCTION” does not appear anywhere after ;;, │ │ │ │ │ then the portion after ;; is all taken to be the body of the component’s single function. See the Simple │ │ │ │ │ Comp for an example of this. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 297 / 1331 │ │ │ │ │ │ │ │ │ │ 5.9.11 Komponenten-Persönlichkeit │ │ │ │ │ Wenn eine Komponente Pins oder Parameter mit einer ”if-Bedingung” oder ”[maxsize : condsize]” hat, │ │ │ │ │ wird sie als Komponente mit ”Persönlichkeit” bezeichnet. Die ”Persönlichkeit” jeder Instanz wird beim │ │ │ │ │ Laden des Moduls festgelegt. Die ”Persönlichkeit” kann verwendet werden, um Pins nur bei Bedarf │ │ │ │ │ @@ -15606,15 +15606,15 @@ │ │ │ │ │ Anmerkung │ │ │ │ │ sudo (für Root-Rechte) wird benötigt, wenn Sie LinuxCNC aus einem Deb-Paket installieren. Wenn Sie │ │ │ │ │ einen Run-In-Place (RIP) Build verwenden, sollten Root-Rechte nicht erforderlich sein. │ │ │ │ │ │ │ │ │ │ Oder es kann in einem Schritt verarbeitet und kompiliert werden, wobei example.ko (oder example.so │ │ │ │ │ für den Simulator) im aktuellen Verzeichnis verbleibt: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 298 / 1331 │ │ │ │ │ │ │ │ │ │ halcompile --compile rtexample.comp │ │ │ │ │ │ │ │ │ │ Oder es kann einfach verarbeitet werden, wobei die Datei ”example.c” im aktuellen Verzeichnis verbleibt: │ │ │ │ │ halcompile rtexample.comp │ │ │ │ │ @@ -15656,15 +15656,15 @@ │ │ │ │ │ pin out float out; │ │ │ │ │ param r float value = 1.0; │ │ │ │ │ function _; │ │ │ │ │ license ”GPL”; // bedeutet GPL v2 oder höher │ │ │ │ │ ;; │ │ │ │ │ FUNCTION(_) { out = value; } │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 299 / 1331 │ │ │ │ │ │ │ │ │ │ 5.9.15.2 sincos │ │ │ │ │ This component computes the sine and cosine of an input angle in radians. It has different capabilities │ │ │ │ │ than the ”sine” and ”cosine” outputs of siggen, because the input is an angle, rather than running │ │ │ │ │ freely based on a ”frequency” parameter. │ │ │ │ │ @@ -15710,15 +15710,15 @@ │ │ │ │ │ // Setze diesen I/O-Port auf 0, damit EXTRA_CLEANUP die IO-Ports nicht freigibt, │ │ │ │ │ // die nie angefordert wurden. │ │ │ │ │ io[extra_arg] = 0; │ │ │ │ │ return -EBUSY; │ │ │ │ │ } │ │ │ │ │ ioaddr = io[extra_arg]; │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 300 / 1331 │ │ │ │ │ │ │ │ │ │ return 0; │ │ │ │ │ } │ │ │ │ │ EXTRA_CLEANUP() { │ │ │ │ │ int i; │ │ │ │ │ @@ -15760,15 +15760,15 @@ │ │ │ │ │ ;; │ │ │ │ │ #include │ │ │ │ │ void user_mainloop(void) { │ │ │ │ │ while(1) { │ │ │ │ │ usleep(1000); │ │ │ │ │ FOR_ALL_INSTS() out = drand48(); │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 301 / 1331 │ │ │ │ │ │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ 5.9.15.7 logic │ │ │ │ │ @@ -15812,15 +15812,15 @@ │ │ │ │ │ Dieses Beispiel zeigt, wie man Funktionen von der Hauptfunktion aus aufruft. Es zeigt auch, wie die │ │ │ │ │ Referenz von HAL-Pins an diese Funktionen übergeben werden kann. │ │ │ │ │ component example; │ │ │ │ │ pin in s32 in; │ │ │ │ │ pin out bit out1; │ │ │ │ │ pin out bit out2; │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 302 / 1331 │ │ │ │ │ │ │ │ │ │ function _; │ │ │ │ │ license ”GPL”; │ │ │ │ │ ;; │ │ │ │ │ // allgemeine Pin Set True Funktion │ │ │ │ │ @@ -15865,15 +15865,15 @@ │ │ │ │ │ The .tcl extension is understood by the main script (linuxcnc) that processes INI files. Haltcl files are │ │ │ │ │ identified in the the HAL section of INI files (just like HAL files). │ │ │ │ │ Beispiel │ │ │ │ │ [HAL] │ │ │ │ │ HALFILE = conventional_file.hal │ │ │ │ │ HALFILE = tcl_based_file.tcl │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 303 / 1331 │ │ │ │ │ │ │ │ │ │ Bei entsprechender Sorgfalt können HAL- und Tcl-Dateien miteinander vermischt werden. │ │ │ │ │ │ │ │ │ │ 5.10.1 Kompatibilität │ │ │ │ │ Die in HAL-Dateien verwendete halcmd-Sprache hat eine einfache Syntax, die eigentlich eine Teilmenge der leistungsfähigeren Allzweck-Skriptsprache Tcl ist. │ │ │ │ │ @@ -15917,15 +15917,15 @@ │ │ │ │ │ Die gleichen Werte der INI-Datei sind in Tcl-Dateien in Form einer globalen Tcl-Array-Variable zugänglich: │ │ │ │ │ $::SECTION(ITEM) │ │ │ │ │ │ │ │ │ │ Zum Beispiel, ein INI-Datei Element wie: │ │ │ │ │ [JOINT_0] │ │ │ │ │ MAX_VELOCITY = 4 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 304 / 1331 │ │ │ │ │ │ │ │ │ │ is expressed as [JOINT_0]MAX_VELOCITY in HAL files for halcmd │ │ │ │ │ and as $::JOINT_0(MAX_VELOCITY) in Tcl files for haltcl. │ │ │ │ │ Da INI-Dateien das gleiche ITEM in der gleichen SECTION mehrfach wiederholen kann, ist $::SECTION(ITEM) eigentlich eine Tcl-Liste jedes einzelnen Wertes. │ │ │ │ │ Wenn es nur einen Wert gibt und dieser ein einfacher Wert ist (alle Werte, die nur aus Buchstaben und │ │ │ │ │ @@ -15971,15 +15971,15 @@ │ │ │ │ │ Beispiel │ │ │ │ │ # Verstärkung für die Umrechnung von Grad/Sekunde in Einheiten/Minute für den │ │ │ │ │ JOINT_0-Radius festlegen │ │ │ │ │ setp scale.0.gain 6.28/360.0*$::JOINT_0(radius)*60.0 │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 305 / 1331 │ │ │ │ │ │ │ │ │ │ Leerzeichen im bloßen Ausdruck sind nicht erlaubt, verwenden Sie dafür Anführungszeichen: │ │ │ │ │ setp scale.0.gain ”6.28 / 360.0 * $::JOINT_0(radius) * 60.0” │ │ │ │ │ │ │ │ │ │ In anderen Zusammenhängen, wie z. B. bei loadrt, müssen Sie den Tcl ”expr”-Befehl ([expr {}]) ausdrücklich für Berechnungsausdrücke verwenden. │ │ │ │ │ @@ -16023,15 +16023,15 @@ │ │ │ │ │ │ │ │ │ │ 5.10.7 Haltcl Interaktiv │ │ │ │ │ The halrun command recognizes haltcl files. With the -T option, haltcl can be run interaactively as a │ │ │ │ │ Tcl interpreter. This capability is useful for testing and for standalone HAL applications. │ │ │ │ │ Beispiel │ │ │ │ │ $ halrun -T haltclfile.tcl │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 306 / 1331 │ │ │ │ │ │ │ │ │ │ 5.10.8 Haltcl-Verteilungsbeispiele (sim) │ │ │ │ │ Das Verzeichnis configs/sim/axis/simtcl enthält eine INI-Datei, die eine .tcl-Datei verwendet, um eine │ │ │ │ │ haltcl-Konfiguration in Verbindung mit der Verwendung der twopass-Verarbeitung zu demonstrieren. │ │ │ │ │ Das Beispiel zeigt die Verwendung von Tcl-Prozeduren, Schleifen, die Verwendung von Kommentaren │ │ │ │ │ @@ -16072,15 +16072,15 @@ │ │ │ │ │ halui.mdi-command-00 <= pyvcp.quillup │ │ │ │ │ net reference-pos halui.mdi-command-01 <= pyvcp.referencepos │ │ │ │ │ net call-mysub │ │ │ │ │ halui.mdi-command-02 <= pyvcp.callmysub │ │ │ │ │ │ │ │ │ │ Netze zum Verbinden der von halui bereitgestellten halui.mdi-command-NN-Pins. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 307 / 1331 │ │ │ │ │ │ │ │ │ │ $ halcmd show pin halui.mdi │ │ │ │ │ Component Pins: │ │ │ │ │ Owner Type Dir Value Name │ │ │ │ │ 10 bit │ │ │ │ │ @@ -16118,15 +16118,15 @@ │ │ │ │ │ • halui.feed-override.reset (bit, in) - Pin zum Zurücksetzen des FO (scale=1.0) │ │ │ │ │ • halui.feed-override.direct-value (bit, in) - falsch, wenn der Encoder verwendet wird, um die Anzahl │ │ │ │ │ zu ändern, wahr, wenn die Anzahl direkt eingestellt wird. │ │ │ │ │ • halui.feed-override.scale (float, in) - Pin zum Einstellen der Skala für die Erhöhung und Verringerung │ │ │ │ │ des feed-override. │ │ │ │ │ • halui.feed-override.value (float, out) - aktueller FO-Wert │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 308 / 1331 │ │ │ │ │ │ │ │ │ │ 5.11.4.4 Nebel (engl. mist) │ │ │ │ │ • halui.mist.is-on (bit, out) - zeigt an, dass Nebel eingeschaltet ist │ │ │ │ │ • halui.mist.off (bit, in) - Pin zum Anfordern von Nebel │ │ │ │ │ • halui.mist.on’ (bit, in) - Pin zur Abfrage von Nebel ein │ │ │ │ │ @@ -16153,15 +16153,15 @@ │ │ │ │ │ • halui.max-velocity.count-enable (bit, in) - muss true sein, damit counts oder direct-value funktionieren. │ │ │ │ │ • halui.max-velocity.counts (s32, in) - counts * scale = MV percentage. Kann mit einem Encoder oder │ │ │ │ │ direct-value verwendet werden. │ │ │ │ │ • halui.max-velocity.direct-value (bit, in) - false bei Verwendung des Encoders zum Ändern der Anzahl, │ │ │ │ │ true beim direkten Festlegen von Zählungen. │ │ │ │ │ • halui.max-velocity.decrease (bit, in) - Pin zur Verringerung der maximalen Geschwindigkeit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 309 / 1331 │ │ │ │ │ │ │ │ │ │ • halui.max-velocity.increase (bit, in) - Pin zur Erhöhung der maximalen Geschwindigkeit │ │ │ │ │ • halui.max-velocity.scale (float, in) - der Betrag, der auf die aktuelle maximale Geschwindigkeit bei │ │ │ │ │ jedem Übergang von Aus zu Ein des An- oder Abnahmestiftes in Maschineneinheiten pro Sekunde │ │ │ │ │ angewendet wird. │ │ │ │ │ @@ -16191,15 +16191,15 @@ │ │ │ │ │ • halui.joint.selected (u32 out) - ausgewählte Gelenknummer (0 … num_joints-1 │ │ │ │ │ • halui.joint.selected.has-fault (bit out) - Status-Pin ausgewähltes Gelenk ist fehlerhaft │ │ │ │ │ • halui.joint.selected.home (Bit in) - Pin für das Homing des ausgewählten Gelenks │ │ │ │ │ • halui.joint.s selected.is-homed (bit out) - Status-Pin, der angibt, dass das ausgewählte Gelenk referenziert ist │ │ │ │ │ • halui.joint.selected.on-hard-max-limit (bit out) - Status-Pin, der anzeigt, dass sich das ausgewählte │ │ │ │ │ Gelenk auf dem positiven Hardware-Limit befindet │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 310 / 1331 │ │ │ │ │ │ │ │ │ │ • halui.joint.selected.on-hard-min-limit (bit out) - Status-Pin, der anzeigt, dass sich das ausgewählte │ │ │ │ │ Gelenk am negativen Hardware-Limit befindet │ │ │ │ │ • halui.joint.s selected.on-soft-max-limit (bit out) - Status-Pin, der angibt, dass sich das ausgewählte │ │ │ │ │ Gelenk auf der positiven Softwaregrenze befindet │ │ │ │ │ @@ -16226,15 +16226,15 @@ │ │ │ │ │ • halui.joint.selected.increment-plus’ (Bit in) - eine steigende Flanke bewirkt, dass das ausgewählte │ │ │ │ │ Gelenk um den Betrag des Inkrements in die positive Richtung bewegt wird │ │ │ │ │ • halui.joint.selected.minus’ (bit in) - Pin zum Joggen des ausgewählten Gelenks in negativer Richtung │ │ │ │ │ mit der halui.joint.jog-speed Geschwindigkeit │ │ │ │ │ • halui.joint.selected.plus’ (bit in) - Pin für das Joggen des ausgewählten Gelenks in positiver Richtung │ │ │ │ │ mit der halui.joint.jog-speed Geschwindigkeit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 311 / 1331 │ │ │ │ │ │ │ │ │ │ 5.11.4.13 Achse │ │ │ │ │ L = Buchstabe der Achse (xyzabcuvw) │ │ │ │ │ • halui.axis.L.select (Bit) - Pin zur Auswahl der Achse anhand des Buchstaben │ │ │ │ │ • halui.axis.L.is-selected (Bit out) - Status-Pin, dass die Achse L ausgewählt ist │ │ │ │ │ @@ -16263,15 +16263,15 @@ │ │ │ │ │ • halui.axis.selected.increment-plus (bit in) - a rising edge will will make the selected axis jog in the │ │ │ │ │ positive direction by the increment amount │ │ │ │ │ • halui.axis.selected.minus (bit in) - pin for jogging the selected axis in negative direction at the │ │ │ │ │ halui.axis.jog-speed velocity │ │ │ │ │ • halui.axis.selected.plus (pin in) - for jogging the selected axis bit in in positive direction at the │ │ │ │ │ halui.axis.jog-speed velocity │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 312 / 1331 │ │ │ │ │ │ │ │ │ │ 5.11.4.15 Modus │ │ │ │ │ • halui.mode.auto (bit, in) - Pin zum Anfordern des automatischen Modus │ │ │ │ │ • halui.mode.is-auto (bit, out) - zeigt an, dass der Auto-Modus eingeschaltet ist │ │ │ │ │ • halui.mode.is-joint (bit, out) - zeigt an, dass der Gelenk-für-Gelenk (engl. joint by joint)-JoggingModus eingeschaltet ist │ │ │ │ │ @@ -16296,15 +16296,15 @@ │ │ │ │ │ ist │ │ │ │ │ • halui.program.pause (bit, in) - Pin zum Anhalten eines Programms │ │ │ │ │ • halui.program.resume (bit, in) - Pin zum Fortsetzen eines pausierten Programms │ │ │ │ │ • halui.program.run (bit, in) - Pin zum Ausführen eines Programms │ │ │ │ │ • halui.program.step (bit, in) - Pin für das Steppen eines Programms │ │ │ │ │ • halui.program.stop (bit, in) - Pin zum Stoppen eines Programms │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 313 / 1331 │ │ │ │ │ │ │ │ │ │ 5.11.4.17 Eilgang-Override (engl. rapid override) │ │ │ │ │ • halui.rapid-override.count-enable’ (Bit in (Standard: TRUE)) - Wenn TRUE, wird Rapid Override │ │ │ │ │ geändert, wenn sich die Zählerstände ändern. │ │ │ │ │ • halui.rapid-override.counts’ (s32 in) - counts X scale = Rapid Override Prozentsatz. Kann mit einem │ │ │ │ │ @@ -16335,15 +16335,15 @@ │ │ │ │ │ • halui.spindle.N.is-on (bit, out) - zeigt an, dass die Spindel eingeschaltet ist (in beide Richtungen) │ │ │ │ │ • halui.spindle.N.reverse (bit, in)- startet die Spindel mit einer Bewegung gegen den Uhrzeigersinn │ │ │ │ │ • halui.spindle.N.runs-backward (bit, out) - zeigt an, dass die Spindel eingeschaltet ist und umgekehrt │ │ │ │ │ • halui.spindle.N.runs-forward (bit, out) - zeigt an, dass die Spindel eingeschaltet und vorwärts läuft │ │ │ │ │ • halui.spindle.N.start (bit, in) - startet die Spindel │ │ │ │ │ • halui.spindle.N.stop (bit, in) - stoppt die Spindel │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 314 / 1331 │ │ │ │ │ │ │ │ │ │ 5.11.4.20 Werkzeug │ │ │ │ │ • halui.tool.length-offset.a (float out) - aktuell angewendeter Werkzeuglängenversatz für die A-Achse │ │ │ │ │ • halui.tool.length-offset.b (float out) - aktuell angewendeter Werkzeuglängenversatz für die B-Achse │ │ │ │ │ • halui.tool.length-offset.c (float out) – aktuell angewendeter Werkzeuglängenversatz für die C-Achse │ │ │ │ │ @@ -16365,15 +16365,15 @@ │ │ │ │ │ Um einen Fernstartknopf mit LinuxCNC zu verbinden, benutzen Sie den halui.program.run Pin │ │ │ │ │ und den halui.mode.auto Pin. Sie müssen sicherstellen, dass es OK ist, zuerst zu laufen, indem │ │ │ │ │ Sie die halui.mode.is-auto Pin. Dies geschieht mit einer and2 Komponente. Die folgende Abbildung zeigt, wie das gemacht wird. Wenn der Fernbedienungsknopf gedrückt wird, ist er sowohl mit │ │ │ │ │ halui.mode.auto als auch mit and2.0.in0 verbunden. Wenn der Automodus OK ist, wird der Pin │ │ │ │ │ halui.mode.is-auto eingeschaltet. Wenn beide Eingänge an der Komponente and2.0 eingeschaltet │ │ │ │ │ sind, wird and2.0.out eingeschaltet und das Programm gestartet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 315 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.26: Beispiel für Fernstart │ │ │ │ │ Die für das Vorstehende erforderlichen HAL-Befehle sind: │ │ │ │ │ net program-start-btn halui.mode.auto and2.0.in0 <= │ │ │ │ │ net program-run-ok and2.0.in1 <= halui.mode.is-auto │ │ │ │ │ @@ -16394,15 +16394,15 @@ │ │ │ │ │ the program pause or to resume when the external system wants LinuxCNC to continue. │ │ │ │ │ net ispaused halui.program.is paused => ”Dein output (Ausgabe) Pin” │ │ │ │ │ net resume halui.program.resume <= ”your input (Eingabe) Pin” │ │ │ │ │ │ │ │ │ │ Ihre Eingangs- und Ausgangspins sind mit den Pins verbunden, die mit dem anderen Controller verdrahtet sind. Dabei kann es sich um Pins des Parallelports oder andere E/A-Pins handeln, auf die Sie │ │ │ │ │ Zugriff haben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 316 / 1331 │ │ │ │ │ │ │ │ │ │ Dieses System funktioniert auf folgende Weise. Wrid ein M0 in Ihrem G-Code erreicht, so wird das │ │ │ │ │ Signal ”halui.program.is-paused” wahr. Dies schaltet auf Ihrem Ausgangspin, so dass die externe │ │ │ │ │ Steuerung weiß, dass LinuxCNC pausiert ist. │ │ │ │ │ Um die LinuxCNC G-Code-Programm fortzusetzen, wenn die externe Steuerung bereit ist, wird es │ │ │ │ │ @@ -16447,15 +16447,15 @@ │ │ │ │ │ 03 │ │ │ │ │ float OUT │ │ │ │ │ │ │ │ │ │ Wert Name │ │ │ │ │ 0 passthrough.in │ │ │ │ │ 0 passthrough.out │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 317 / 1331 │ │ │ │ │ │ │ │ │ │ halcmd: setp passthrough.in 3.14 │ │ │ │ │ halcmd: show pin │ │ │ │ │ Komponenten-Pins: │ │ │ │ │ Owner Typ │ │ │ │ │ @@ -16514,15 +16514,15 @@ │ │ │ │ │ h.ready() │ │ │ │ │ │ │ │ │ │ Sobald alle Pins und Parameter erstellt wurden, rufen Sie die Methode .ready() auf. │ │ │ │ │ 5.13.3.1 Ändern des Präfixes │ │ │ │ │ Das Präfix kann durch den Aufruf der Methode .setprefix() geändert werden. Das aktuelle Präfix kann │ │ │ │ │ durch den Aufruf der Methode .getprefix() abgefragt werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 318 / 1331 │ │ │ │ │ │ │ │ │ │ 5.13.4 Lesen und Schreiben von Pins und Parametern │ │ │ │ │ Bei Pins und Parametern, die auch echte Python-Bezeichner sind, kann der Wert unter Verwendung │ │ │ │ │ der Attributsyntax aufgerufen oder gesetzt werden: │ │ │ │ │ h.out = h.in │ │ │ │ │ @@ -16556,15 +16556,15 @@ │ │ │ │ │ 5.13.6 Hilfreiche Funktionen │ │ │ │ │ See Python HAL Interface for an overview of available functions. │ │ │ │ │ │ │ │ │ │ 5.13.7 Konstanten │ │ │ │ │ Verwenden Sie diese, um Details zu spezifizieren, und nicht den Wert, den sie enthalten. │ │ │ │ │ • HAL_BIT │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 319 / 1331 │ │ │ │ │ │ │ │ │ │ • HAL_FLOAT │ │ │ │ │ • HAL_S32 │ │ │ │ │ • HAL_U32 │ │ │ │ │ • HAL_IN │ │ │ │ │ @@ -16592,15 +16592,15 @@ │ │ │ │ │ Note that only the __ and __ fields are defined for a canonical device. The │ │ │ │ │ _, __, and __ fields are set based on the characteristics of │ │ │ │ │ the real device. │ │ │ │ │ │ │ │ │ │ 5.14.2 Digital Input │ │ │ │ │ Der kanonische Digitaleingang (E/A-Typfeld: ”digin”) ist recht einfach. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 320 / 1331 │ │ │ │ │ │ │ │ │ │ 5.14.2.1 Pins │ │ │ │ │ │ │ │ │ │ (bit) in │ │ │ │ │ Zustand des Hardware-Eingangs. │ │ │ │ │ @@ -16627,15 +16627,15 @@ │ │ │ │ │ │ │ │ │ │ (funct) write │ │ │ │ │ Lesen Sie out und invert und stellen Sie die Hardwareausgabe entsprechend ein. │ │ │ │ │ │ │ │ │ │ 5.14.4 Analog Input │ │ │ │ │ The canonical analog input (I/O type: adcin). This is expected to be used for analog to digital converters, which convert e.g. voltage to a continuous range of values. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 321 / 1331 │ │ │ │ │ │ │ │ │ │ 5.14.4.1 Pins │ │ │ │ │ │ │ │ │ │ (float) Wert │ │ │ │ │ Der Hardware-Messwert, skaliert gemäß den Parametern Skala und Offset. │ │ │ │ │ @@ -16665,15 +16665,15 @@ │ │ │ │ │ │ │ │ │ │ (float) Wert │ │ │ │ │ Der zu schreibende Wert. Der tatsächliche Wert, der an die Hardware ausgegeben wird, hängt │ │ │ │ │ von den Parametern Skala und Offset ab. │ │ │ │ │ (bit) aktivieren (engl. enable) │ │ │ │ │ Wenn false, dann wird 0 an die Hardware ausgegeben, unabhängig vom value Pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 322 / 1331 │ │ │ │ │ │ │ │ │ │ 5.14.5.2 Parameter │ │ │ │ │ │ │ │ │ │ (float) Offset │ │ │ │ │ Dies wird zu dem Wert (engl. value) hinzugefügt, bevor die Hardware aktualisiert wird. │ │ │ │ │ @@ -16710,15 +16710,15 @@ │ │ │ │ │ cd toplevel_directory_for_rip_build │ │ │ │ │ . scripts/rip-environment │ │ │ │ │ man halcmd │ │ │ │ │ │ │ │ │ │ Das HAL Tutorial enthält eine Reihe von Beispielen für die Verwendung von halcmd und ist ein gutes │ │ │ │ │ Tutorial für halcmd. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 323 / 1331 │ │ │ │ │ │ │ │ │ │ 5.15.2 Halmeter │ │ │ │ │ Halmeter is a voltmeter for the HAL. It lets you look at a pin, signal, or parameter, and displays the │ │ │ │ │ current value of that item. It is pretty simple to use. Start it by typing halmeter in an X windows shell. │ │ │ │ │ Halmeter is a GUI application. It will pop up a small window, with two buttons labeled ”Select” and │ │ │ │ │ @@ -16743,23 +16743,23 @@ │ │ │ │ │ displays the value. Multiple ̀ ̀halmeter ̀ ̀s can be open at the same time. If you use a script to open │ │ │ │ │ multiple ̀ ̀halmeter ̀ ̀s you can set the position of each one with -g X Y relative to the upper left corner │ │ │ │ │ of your screen. For example: │ │ │ │ │ loadusr halmeter pin hm2.0.stepgen.00.velocity-fb -g 0 500 │ │ │ │ │ │ │ │ │ │ Siehe die Manpage für weitere Optionen und den Abschnitt Halmeter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 5.27: Halmeter-Auswahlfenster │ │ │ │ │ │ │ │ │ │ Abbildung 5.28: Halmeter-Watch Fenster │ │ │ │ │ │ │ │ │ │ 324 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 325 / 1331 │ │ │ │ │ │ │ │ │ │ 5.15.3 Halshow │ │ │ │ │ halshow (complete usage description) can be started from the command line to show details for selected components, pins, parameters, signals, functions, and threads of a running HAL. The WATCH tab │ │ │ │ │ provides a continuous display of selected pin, parameters, and signal items. The File menu provides │ │ │ │ │ buttons to save the watch items to a watch list and to load an existing watch list. The watch list items │ │ │ │ │ @@ -16775,15 +16775,15 @@ │ │ │ │ │ Hinweise: │ │ │ │ │ Erstellen Sie einen watchfile in halshow mit: ’File/Save Watch List’. │ │ │ │ │ LinuxCNC muss für die Standalone-Nutzung ausgeführt werden. │ │ │ │ │ │ │ │ │ │ Abbildung 5.29: Halshow Watch Tab │ │ │ │ │ A watchfile created using the File/Save Watch List menu item is formatted as a single line with tokens │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 326 / 1331 │ │ │ │ │ │ │ │ │ │ ”pin+”, ”param+”, ”sig=+”, followed by the appropriate pin, param, or signal name. The token-name │ │ │ │ │ pairs are separated by a space character. │ │ │ │ │ Einzeiliges Watchfile-Beispiel │ │ │ │ │ pin+joint.0.pos-hard-limit pin+joint.1.pos-hard-limit sig+estop-loop │ │ │ │ │ @@ -16829,15 +16829,15 @@ │ │ │ │ │ A named item can specify a pin, param, or signal │ │ │ │ │ The item must be writable, e.g.: │ │ │ │ │ pin: │ │ │ │ │ IN or I/O (and not connected to a signal with a writer) │ │ │ │ │ param: RW │ │ │ │ │ signal: connected to a writable pin │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 327 / 1331 │ │ │ │ │ │ │ │ │ │ HAL item types bit,s32,u32,float are supported. │ │ │ │ │ When a bit item is specified, a pushbutton is created │ │ │ │ │ to manage the item in one of three manners specified │ │ │ │ │ by radio buttons: │ │ │ │ │ @@ -16861,15 +16861,15 @@ │ │ │ │ │ Abbildung 5.30: sim_pin-Fenster │ │ │ │ │ │ │ │ │ │ 5.15.6 simulate_probe (Sonde simulieren) │ │ │ │ │ simulate_probe ist ein einfaches GUI, um die Aktivierung des Pins motion.probe-input zu simulieren. │ │ │ │ │ Verwendung: │ │ │ │ │ simulate_probe & │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 328 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 5.31: Fenster simulieren_probe │ │ │ │ │ │ │ │ │ │ 5.15.7 HAL Histogramm │ │ │ │ │ hal-histogram ist ein Kommandozeilenprogramm zur Anzeige von Histogrammen für HAL-Pins. │ │ │ │ │ @@ -16918,15 +16918,15 @@ │ │ │ │ │ │ │ │ │ │ Anmerkungen: │ │ │ │ │ 1. LinuxCNC (oder eine andere HAL-Anwendung) muss laufen. │ │ │ │ │ 2. If no pinname is specified, default is: motion-command-handler.time. │ │ │ │ │ 3. Diese App kann für 5 Pins geöffnet werden. │ │ │ │ │ 4. Unterstützt werden die Pintypen float, s32, u32, bit. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 329 / 1331 │ │ │ │ │ │ │ │ │ │ 5. The pin must be associated with a thread supporting floating point. For a base thread, this may │ │ │ │ │ require using loadrt motmod ... base_thread_fp=1 . │ │ │ │ │ │ │ │ │ │ Abbildung 5.32: hal-histogram-Fenster │ │ │ │ │ @@ -16937,15 +16937,15 @@ │ │ │ │ │ 1. Systembeschreibung und Kernelversion. │ │ │ │ │ 2. Signale und alle angeschlossenen Ausgangs-, E/A- und Eingangspins. │ │ │ │ │ 3. Eines jeden Pin component_function, thread und addf-Reihenfolge. │ │ │ │ │ 4. Non-realtime component pins having non-ordered functions. │ │ │ │ │ 5. Identifizierung von unbekannten Funktionen für nicht behandelte Komponenten. │ │ │ │ │ 6. Signals with no output. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 330 / 1331 │ │ │ │ │ │ │ │ │ │ 7. Signals with no inputs. │ │ │ │ │ 8. Functions with no addf. │ │ │ │ │ 9. Warning tags for components marked as deprecated/obsolete in docs. │ │ │ │ │ 10. Real names for pins that use alias names. │ │ │ │ │ @@ -17019,15 +17019,15 @@ │ │ │ │ │ h.00.velocity-cmd │ │ │ │ │ hm2_7i92.0.write │ │ │ │ │ (=hm2_7i92.0.stepgen.00.velocity-cmd) │ │ │ │ │ │ │ │ │ │ servo-thread 004 │ │ │ │ │ servo-thread 008 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 331 / 1331 │ │ │ │ │ │ │ │ │ │ Im obigen Beispiel verwendet die HALFILE halcmd-Aliase, um die Pin-Namen für ein hostmot2-FPGABoard mit Befehlen wie diesen zu vereinfachen: │ │ │ │ │ alias pin hm2_7i92.0.stepgen.00.position-fb h.00.position-fb │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -17042,15 +17042,15 @@ │ │ │ │ │ Komponentenstifte, die nicht mit einer bekannten Gewindefunktion verbunden werden können, melden die Funktion als ”Unbekannt”. │ │ │ │ │ │ │ │ │ │ halreport generates a connections report (without pin types, and current values) for a running HAL │ │ │ │ │ application to aid in designing and verifying connections. This helps with the understanding what the │ │ │ │ │ source of a pin value is. Use this information with applications like halshow, halmeter, halscope or │ │ │ │ │ the halcmd show command in a terminal. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 332 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 6 │ │ │ │ │ │ │ │ │ │ Hardware-Treiber │ │ │ │ │ 6.1 Parallelport-Treiber │ │ │ │ │ @@ -17080,15 +17080,15 @@ │ │ │ │ │ Bei einigen Computern können die BIOS-Einstellungen beeinflussen, ob der x-Modus verwendet werden kann. Der SPP-Modus funktioniert am ehesten. │ │ │ │ │ │ │ │ │ │ Andere Kombinationen werden nicht unterstützt, und ein Anschluss kann nach der Installation des │ │ │ │ │ Treibers nicht mehr von Eingang auf Ausgang umgestellt werden. │ │ │ │ │ Der parport-Treiber kann bis zu 8 Ports steuern (definiert durch MAX_PORTS in hal_parport.c). Die │ │ │ │ │ Ports werden bei Null beginnend nummeriert. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 333 / 1331 │ │ │ │ │ │ │ │ │ │ 6.1.1 Laden │ │ │ │ │ The hal_parport driver is a real time component so it must be loaded into the real time thread with │ │ │ │ │ loadrt. The configuration string describes the parallel ports to be used, and (optionally) their types. If │ │ │ │ │ the configuration string does not describe at least one port, it is an error. │ │ │ │ │ @@ -17115,15 +17115,15 @@ │ │ │ │ │ 2 to 9 explicitly specified as outputs. Note that you must know the base address of the parallel ports │ │ │ │ │ to configure the drivers correctly. For ISA bus ports, this is usually not a problem, since the ports │ │ │ │ │ are almost always at a well-known address, such as 0x278 or 0x378 which are typically configured │ │ │ │ │ in the BIOS. The addresses of PCI bus cards are usually found with lspci -v in an I/O ports line, or │ │ │ │ │ in a kernel message after running sudo modprobe -a parport_pc. There is no default address, so if │ │ │ │ │ does not contain at least one address, it is an error. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 334 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.1: Parport-Blockdiagramm │ │ │ │ │ Typ Für jede parallele Schnittstelle, die vom hal_parport Treiber verwaltet wird, kann optional ein │ │ │ │ │ Typ angegeben werden. Der Typ ist einer von in, out, epp oder x. │ │ │ │ │ Tabelle 6.1: Parallele Port-Richtung │ │ │ │ │ @@ -17183,15 +17183,15 @@ │ │ │ │ │ out │ │ │ │ │ out │ │ │ │ │ in │ │ │ │ │ in │ │ │ │ │ in │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 335 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.1: (continued) │ │ │ │ │ Pin │ │ │ │ │ 14 │ │ │ │ │ 15 │ │ │ │ │ @@ -17252,15 +17252,15 @@ │ │ │ │ │ I/O ports at cc00 [size=16] │ │ │ │ │ │ │ │ │ │ From experimentation, I’ve found the first port (the on-card port) uses the third address listed (c000), │ │ │ │ │ and the second port (the one that attaches with a ribbon cable) uses the first address listed (b800). │ │ │ │ │ The following example shows the onboard parallel port and a PCI parallel port using the default out │ │ │ │ │ direction. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 336 / 1331 │ │ │ │ │ │ │ │ │ │ loadrt hal_parport cfg=”0x378 0xc000” │ │ │ │ │ │ │ │ │ │ Please note that your values will differ. The Netmos cards are Plug-N-Play, and might change their │ │ │ │ │ settings depending on which slot you put them into, so if you like to get under the hood and re-arrange │ │ │ │ │ @@ -17307,15 +17307,15 @@ │ │ │ │ │ • parport. ̀ │ │ │ │ │ __

__.reset ̀ (funct) Waits until reset-time has elapsed since the associated write, │ │ │ │ │ then resets pins to values indicated by -out-invert and -out-invert settings. reset must be later │ │ │ │ │ in the same thread as write. If -reset is TRUE, then the reset function will set the pin to the value │ │ │ │ │ of -out-invert. 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 337 / 1331 │ │ │ │ │ │ │ │ │ │ The individual functions are provided for situations where one port needs to be updated in a very fast │ │ │ │ │ thread, but other ports can be updated in a slower thread to save CPU time. It is probably not a good │ │ │ │ │ idea to use both an -all function and an individual function at the same time. │ │ │ │ │ │ │ │ │ │ @@ -17356,15 +17356,15 @@ │ │ │ │ │ 6.1.8.1 Installation von probe_parport │ │ │ │ │ Wenn das Kernelmodul parport_pc mit dem Befehl geladen wird: │ │ │ │ │ sudo modprobe -a parport_pc; sudo rmmod parport_pc │ │ │ │ │ │ │ │ │ │ Der Linux-Kernel gibt eine Meldung ähnlich der folgenden aus: │ │ │ │ │ parport: PnPBIOS parport erkannt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 338 / 1331 │ │ │ │ │ │ │ │ │ │ Dann wird die Verwendung dieses Moduls wahrscheinlich notwendig sein. │ │ │ │ │ Schließlich sollten die HAL-Parport-Komponenten geladen werden: │ │ │ │ │ loadrt probe_parport │ │ │ │ │ loadrt hal_parport ... │ │ │ │ │ @@ -17395,15 +17395,15 @@ │ │ │ │ │ Für jeden Pin ist die Platinen-Nummer (beginnt bei Null) und die Nummer │ │ │ │ │ des E/A-Kanals (0 bis 47). │ │ │ │ │ Beachten Sie, dass der Treiber von aktiven LOW-Signalen ausgeht. Dies ist erforderlich, damit Module wie OPTO-22 korrekt funktionieren (TRUE bedeutet Ausgang EIN oder Eingang unter Spannung). Wenn die Signale direkt ohne Pufferung oder Isolierung verwendet werden, muss die Inversion │ │ │ │ │ berücksichtigt werden. Der In-HAL-Pin ist TRUE, wenn der physikalische Pin niedrig ist (OPTO-22Modul unter Spannung), und FALSE, wenn der physikalische Pin hoch ist (OPTO-22-Modul aus). Der │ │ │ │ │ in--not HAL-Pin ist invertiert - er ist FALSE, wenn der physikalische Pin low ist (OPTO22-Modul unter Spannung). Durch Anschluss eines Signals an den einen oder anderen Pin kann der │ │ │ │ │ Benutzer den Zustand des Eingangs bestimmen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 339 / 1331 │ │ │ │ │ │ │ │ │ │ 6.2.3 Parameter │ │ │ │ │ • (bit) ax5214..out--invert — Invertiert einen Ausgangspin. │ │ │ │ │ Der Parameter -invert bestimmt, ob ein Ausgangspin aktiv high oder aktiv low ist. Wenn -invert auf │ │ │ │ │ FALSE steht, wird der physikalische Pin durch das Setzen von HAL out- pin TRUE auf low gesetzt, │ │ │ │ │ @@ -17424,27 +17424,27 @@ │ │ │ │ │ oder ein analoger Servo sein. │ │ │ │ │ • GPIO: Vier bzw. acht E/A-Pins sind auf Standard-Flachkabelsteckern untergebracht. │ │ │ │ │ • RS485 E/A-Erweiterungsmodule: Der RS485-Bus wurde für den Anschluss von kompakten Erweiterungsmodulen für die DIN-Schienenmontage entwickelt. Ein 8-Kanal-Digitaleingang, ein 8-KanalRelaisausgang und ein analoges I/O-Modul (4x +/-10 Volt Ausgang und 8x +/-5 Volt Eingang) sind │ │ │ │ │ jetzt verfügbar. Insgesamt können bis zu 16 Module an den Bus angeschlossen werden. │ │ │ │ │ • 20 optisch isolierte Eingangspins: Sechs mal drei für den direkten Anschluss von zwei Endschaltern │ │ │ │ │ und einem Referenzierungssensor für jedes Gelenk. Und zusätzlich zwei optisch isolierte NotausEingänge. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 340 / 1331 │ │ │ │ │ │ │ │ │ │ Installation: │ │ │ │ │ loadrt hal_gm │ │ │ │ │ │ │ │ │ │ Während des Ladens (oder versuchten Ladens) gibt der Treiber einige nützliche Debugging-Meldungen │ │ │ │ │ in das Kernel-Protokoll aus, die mit dmesg eingesehen werden können. │ │ │ │ │ Es können bis zu 3 Karten in einem System verwendet werden. │ │ │ │ │ Die folgenden Anschlüsse befinden sich auf der GM6-PCI-Karte: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 341 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.2: GM6-PCI-Kartenanschlüsse und LEDs │ │ │ │ │ │ │ │ │ │ 6.3.1 I/O-Anschlüsse │ │ │ │ │ │ │ │ │ │ @@ -17476,15 +17476,15 @@ │ │ │ │ │ │ │ │ │ │ 4 │ │ │ │ │ IOx/2 │ │ │ │ │ │ │ │ │ │ 2 │ │ │ │ │ IOx/0 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 342 / 1331 │ │ │ │ │ │ │ │ │ │ Jeder Pin kann als digitaler Eingang oder Ausgang konfiguriert werden. Die GM6-PCI-Bewegungssteuerungs │ │ │ │ │ verfügt über 4 GPIO-Anschlüsse (General Purpose I/O) mit jeweils acht konfigurierbaren E/A. Jeder │ │ │ │ │ GPIO-Pin und Parametername beginnt wie folgt: │ │ │ │ │ gm..gpio. │ │ │ │ │ @@ -17533,15 +17533,15 @@ │ │ │ │ │ Bei True wird der entsprechende │ │ │ │ │ GPIO auf Totem-Pol-Ausgang gesetzt, │ │ │ │ │ andernfalls auf hochohmigen Eingang. │ │ │ │ │ Wenn True, wird der Wert des Pins │ │ │ │ │ invertiert. Wird verwendet, wenn der │ │ │ │ │ Pin als Ausgang konfiguriert ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 343 / 1331 │ │ │ │ │ │ │ │ │ │ 6.3.2 Achsen-Anschlüsse │ │ │ │ │ │ │ │ │ │ Abbildung 6.4: Pin-Nummerierung der Achsenverbinder │ │ │ │ │ Tabelle 6.6: Belegung der Achsanschlüsse │ │ │ │ │ @@ -17571,15 +17571,15 @@ │ │ │ │ │ │ │ │ │ │ 6.3.2.1 Achsen-Schnittstellenmodule │ │ │ │ │ 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 System integration manual for evaluating typical applications. Also the detailed description of the Axis modules │ │ │ │ │ can be found in the System integration manual. │ │ │ │ │ Zur Ermittlung der geeigneten Servoantriebsstruktur sind die Module wie im folgenden Blockschaltbild dargestellt zu verbinden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 344 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.5: Servo-Achsen-Schnittstellen │ │ │ │ │ │ │ │ │ │ 6.3.2.2 Encoder │ │ │ │ │ Die GM6-PCI-Bewegungssteuerungskarte verfügt über sechs Encoder-Module. Jedes Gebermodul hat │ │ │ │ │ @@ -17593,15 +17593,15 @@ │ │ │ │ │ │ │ │ │ │ wobei zwischen 0 und 5 liegt. Beispielsweise bezieht sich „gm.0.encoder.0.position“ auf │ │ │ │ │ die Position des Encodermoduls von Achse 0. │ │ │ │ │ Die GM6-PCI-Karte zählt das Gebersignal unabhängig von LinuxCNC. HAL-Pins werden nach Funktion │ │ │ │ │ aktualisiert: │ │ │ │ │ gm..read │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 345 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.7: Encoder-Pins │ │ │ │ │ Pins │ │ │ │ │ .reset │ │ │ │ │ │ │ │ │ │ @@ -17681,15 +17681,15 @@ │ │ │ │ │ Kanal-A-Eingangs in die durch Kanal-B │ │ │ │ │ bestimmte Richtung. Dies ist nützlich │ │ │ │ │ für die Zählung des Ausgangs eines │ │ │ │ │ Einkanal- (Nicht-Quadratur-) oder │ │ │ │ │ Schritt-/Differenzsignalsensors. Wenn │ │ │ │ │ False, zählt er im Quadraturmodus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 346 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.8: (continued) │ │ │ │ │ Parameter │ │ │ │ │ │ │ │ │ │ .index-mode │ │ │ │ │ @@ -17760,15 +17760,15 @@ │ │ │ │ │ Skala in Zählungen pro Längeneinheit. │ │ │ │ │ .position=.counts/.position-scale. │ │ │ │ │ Wenn z. B. der Positionsmaßstab 2000 │ │ │ │ │ ist, dann ergeben 1000 Zählungen des │ │ │ │ │ Encoders eine Position von 0,5 │ │ │ │ │ Einheiten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 347 / 1331 │ │ │ │ │ │ │ │ │ │ Einstellung des Gebermoduls der Achse 0 für den Empfang des 500 CPR Quadraturgebersignals und Verwendung der Rückstellung zum Runden der Position. │ │ │ │ │ setp gm.0.encoder.0.counter-mode 0 # 0: quad, 1: stepDir │ │ │ │ │ setp gm.0.encoder.0.index-mode 1 # 0: reset pos at index, 1:round pos at index │ │ │ │ │ setp gm.0.encoder.0.counts-per-rev 2000 # GM-Prozess-Encoder im 4x-Modus, 4x500=2000 │ │ │ │ │ @@ -17822,15 +17822,15 @@ │ │ │ │ │ Positionsrückmeldung in Positionseinheit. │ │ │ │ │ Die befohlene Position in Positionseinheiten. │ │ │ │ │ Wird nur im Positionsmodus verwendet. │ │ │ │ │ Geforderte Geschwindigkeit in │ │ │ │ │ Positionseinheiten pro Sekunde. Wird nur │ │ │ │ │ im Geschwindigkeitsmodus verwendet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 348 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.10: StepGen-Modul-Parameter │ │ │ │ │ Parameter │ │ │ │ │ │ │ │ │ │ .step-type │ │ │ │ │ @@ -17903,15 +17903,15 @@ │ │ │ │ │ Mindestzeit zwischen zwei Schrittimpulsen │ │ │ │ │ in Nanosekunden. │ │ │ │ │ Mindestzeit zwischen Schrittimpuls und │ │ │ │ │ Richtungswechsel in Nanosekunden. │ │ │ │ │ │ │ │ │ │ Zur Ermittlung der entsprechenden Werte siehe die nachstehenden Zeitdiagramme: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 349 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.6: Referenzsignal-Zeitdiagramme │ │ │ │ │ Einstellung des StepGen-Moduls der Achse 0 zur Erzeugung von 1000 Schrittimpulsen pro │ │ │ │ │ Positionseinheit │ │ │ │ │ setp gm.0.stepgen.0.step-type 0 │ │ │ │ │ @@ -17928,15 +17928,15 @@ │ │ │ │ │ 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 µs │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ setp gm.0.stepgen.0.stepspace1000 │ │ │ │ │ setp gm.0.stepgen.0.dirdelay 2000 │ │ │ │ │ │ │ │ │ │ 350 / 1331 │ │ │ │ │ │ │ │ │ │ # 1000 ns = 1 µs │ │ │ │ │ @@ -17978,15 +17978,15 @@ │ │ │ │ │ Die GM6-PCI-Bewegungssteuerungskarte verfügt über sechs serielle Achsen-DAC-Treibermodule, eines für jedes Gelenk. Jedes Modul wird an den Pin des entsprechenden RJ50-Achsenanschlusses angeschlossen. Jeder Achsen-DAC-Pin und Parametername beginnt wie folgt: │ │ │ │ │ gm..dac. │ │ │ │ │ │ │ │ │ │ wobei zwischen 0 und 5 liegt. Zum Beispiel bezieht sich gm.0.dac.0.value auf die Ausgangsspannung des DAC-Moduls der Achse 0. │ │ │ │ │ HAL Pins werden durch Funktion aktualisiert: │ │ │ │ │ gm..write │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 351 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.12: Achsen DAC-Pins │ │ │ │ │ Pins │ │ │ │ │ .enable │ │ │ │ │ │ │ │ │ │ @@ -18055,15 +18055,15 @@ │ │ │ │ │ Jeder CAN-Pin- und Parametername beginnt wie folgt: │ │ │ │ │ gm..can-gm. │ │ │ │ │ │ │ │ │ │ wobei < axis_no > zwischen 0 und 5 liegt. Zum Beispiel bezieht sich gm.0.can-gm.0.position auf │ │ │ │ │ die Ausgangsposition der Achse 0 in Positionseinheiten. │ │ │ │ │ HAL Pins werden durch Funktion aktualisiert: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 352 / 1331 │ │ │ │ │ │ │ │ │ │ gm..write │ │ │ │ │ │ │ │ │ │ 6.3.3.1 Pins │ │ │ │ │ Tabelle 6.14: CAN-Modul-Pins │ │ │ │ │ @@ -18118,15 +18118,15 @@ │ │ │ │ │ Pin-Beschreibung │ │ │ │ │ Gibt an, dass der Watchdog-Zeitgeber │ │ │ │ │ abgelaufen ist. │ │ │ │ │ │ │ │ │ │ Das Überschreiten des Watchdog-Timers führt dazu, dass das Power-Enable in der Hardware auf Low │ │ │ │ │ gesetzt wird. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 353 / 1331 │ │ │ │ │ │ │ │ │ │ 6.3.4.2 Parameter │ │ │ │ │ Tabelle 6.17: Watchdog-Parameter │ │ │ │ │ Parameter │ │ │ │ │ │ │ │ │ │ @@ -18184,15 +18184,15 @@ │ │ │ │ │ 6/End+ │ │ │ │ │ ing │ │ │ │ │ ing │ │ │ │ │ ing │ │ │ │ │ 2 │ │ │ │ │ (Ext.) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 26 │ │ │ │ │ │ │ │ │ │ 24 │ │ │ │ │ │ │ │ │ │ GND │ │ │ │ │ │ │ │ │ │ @@ -18279,15 +18279,15 @@ │ │ │ │ │ │ │ │ │ │ Parameterbeschreibung │ │ │ │ │ Notaus0 Eingang │ │ │ │ │ Negierter Notaus 0-Eingang │ │ │ │ │ Notaus 1 Eingang │ │ │ │ │ Negierter Notaus 1-Eingang │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 355 / 1331 │ │ │ │ │ │ │ │ │ │ • Blinken während der Datenkommunikation. │ │ │ │ │ • Ein, wenn einer der Puffer voll ist - Kommunikationsfehler. │ │ │ │ │ • Aus, wenn keine Datenkommunikation stattfindet. │ │ │ │ │ 6.3.6.2 RS485 │ │ │ │ │ @@ -18312,15 +18312,15 @@ │ │ │ │ │ 6.3.7 RS485 E/A-Erweiterungsmodule │ │ │ │ │ Diese Module wurden für die Erweiterung der E/A- und Funktionsfähigkeit entlang einer RS485-Linie │ │ │ │ │ der GM6-PCI Motion Control Karte entwickelt. │ │ │ │ │ Verfügbare Modultypen: │ │ │ │ │ • 8-Kanal-Relaisausgangsmodul - bietet acht NO-NC-Relaisausgänge an einem dreipoligen Klemmenanschluss für jeden Kanal. │ │ │ │ │ • 8-Kanal-Digitaleingangsmodul - bietet acht optisch isolierte digitale Eingangsstifte. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 356 / 1331 │ │ │ │ │ │ │ │ │ │ • 8-Kanal-ADC- und 4-Kanal-DAC-Modul - bietet vier Digital-Analog-Wandler-Ausgänge und acht AnalogDigital-Eingänge. Auch dieses Modul ist von der GM6-PCI-Karte optisch isoliert. │ │ │ │ │ Automatische Knotenerkennung Jeder an den Bus angeschlossene Knoten wurde von der GM6PCI-Karte automatisch erkannt. Beim Start von LinuxCNC exportiert der Treiber automatisch Pins │ │ │ │ │ und Parameter aller verfügbaren Module. │ │ │ │ │ Fehlerbehandlung Wenn ein Modul nicht regelmäßig antwortet, fährt die GM6-PCI-Karte das Modul │ │ │ │ │ @@ -18344,15 +18344,15 @@ │ │ │ │ │ │ │ │ │ │ Es sollte dem Servo-Thread oder einem anderen Thread mit größerer Periode hinzugefügt werden, um │ │ │ │ │ eine CPU-Überlastung zu vermeiden. Jeder RS485-Modul-Pin und Parametername beginnt wie folgt: │ │ │ │ │ gm..rs485. │ │ │ │ │ │ │ │ │ │ wobei zwischen 00 und 15 liegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 357 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.22: Pins des Relaisausgangsmoduls │ │ │ │ │ Pins │ │ │ │ │ .relay-<0-7> │ │ │ │ │ │ │ │ │ │ @@ -18425,15 +18425,15 @@ │ │ │ │ │ # │ │ │ │ │ .rs485.0 │ │ │ │ │ # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus │ │ │ │ │ # │ │ │ │ │ .in-0 │ │ │ │ │ # Wählt das erste digitale Eingangsmodul │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 358 / 1331 │ │ │ │ │ │ │ │ │ │ 6.3.7.3 DAC & ADC-Modul │ │ │ │ │ For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual. │ │ │ │ │ Alle Pins und Parameter werden durch die folgende Funktion aktualisiert: │ │ │ │ │ gm..rs485 │ │ │ │ │ @@ -18509,15 +18509,15 @@ │ │ │ │ │ # │ │ │ │ │ .rs485.0 │ │ │ │ │ # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus │ │ │ │ │ # │ │ │ │ │ .adc-0 │ │ │ │ │ # Wählt den ersten Analogeingang des Moduls │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 359 / 1331 │ │ │ │ │ │ │ │ │ │ 6.3.7.4 Teach Pendant Modul │ │ │ │ │ For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual. │ │ │ │ │ Alle Pins und Parameter werden durch die folgende Funktion aktualisiert: │ │ │ │ │ gm..rs485 │ │ │ │ │ @@ -18599,15 +18599,15 @@ │ │ │ │ │ # Bedeutet die erste GM6-PCI-Bewegungssteuerungskarte (PCI- ←Kartenadresse = 0) │ │ │ │ │ # │ │ │ │ │ .rs485.0 │ │ │ │ │ # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus │ │ │ │ │ # │ │ │ │ │ .adc-0 # Wählt den ersten Analogeingang des Moduls │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 360 / 1331 │ │ │ │ │ │ │ │ │ │ 6.3.8 Errata │ │ │ │ │ 6.3.8.1 GM6-PCI-Karte Errata │ │ │ │ │ Die Revisionsnummer in diesem Abschnitt bezieht sich auf die Revision des GM6-PCI-Kartengeräts. │ │ │ │ │ Rev. 1.2 │ │ │ │ │ @@ -18641,15 +18641,15 @@ │ │ │ │ │ • -t or --target (default: 1) Set MODBUS target (slave) number. This must match the device │ │ │ │ │ number you set on the GS2. │ │ │ │ │ • -v oder --verbose Schaltet Debug-Meldungen ein. │ │ │ │ │ • -A oder --accel-seconds (Voreinstellung: 10.0) Sekunden um die Spindel von 0 auf max. U/min │ │ │ │ │ (engl. RPM) zu beschleunigen. │ │ │ │ │ 1 In Europe the equivalent can be found under the brand name Omron. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 361 / 1331 │ │ │ │ │ │ │ │ │ │ • -D or --decel-seconds (default: 0.0) Seconds to decelerate the spindle from max. RPM to 0. If │ │ │ │ │ set to 0.0 the spindle will be allowed to coast to a stop without controlled deceleration. │ │ │ │ │ • -R or --braking-resistor This argument should be used when a braking resistor is installed on the │ │ │ │ │ GS2 VFD (see Appendix A of the GS2 manual). It disables deceleration over-voltage stall prevention │ │ │ │ │ @@ -18683,15 +18683,15 @@ │ │ │ │ │ • .spindle-on (bit, in) 1 für EIN und 0 für AUS an VFD gesendet │ │ │ │ │ • .status-1 (s32, out) Antriebsstatus des VFD (siehe GS2-Handbuch) │ │ │ │ │ • .status-2 (s32, out) Laufwerksstatus des Frequenzumrichters (siehe GS2-Handbuch) │ │ │ │ │ Anmerkung │ │ │ │ │ The status value is a sum of all the bits that are on. So a 163 which means the drive is in the run │ │ │ │ │ mode is the sum of 3 (run) + 32 (freq set by serial) + 128 (operation set by serial). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 362 / 1331 │ │ │ │ │ │ │ │ │ │ 6.4.3 Parameter │ │ │ │ │ Dabei ist gs2_vfd oder der Name, der beim Laden mit der Option -n angegeben wurde: │ │ │ │ │ • .error-count (s32, RW) │ │ │ │ │ • .loop-time (float, RW) wie oft der Modbus abgefragt wird (Standard: 0.1) │ │ │ │ │ @@ -18717,15 +18717,15 @@ │ │ │ │ │ The ”dir” mask determines whether the pins are inputs and outputs, the exclude mask prevents the │ │ │ │ │ driver from using the pins (and so allows them to be used for their normal RPi purposes such as SPI │ │ │ │ │ or UART). │ │ │ │ │ The mask can be in decimal or hexadecimal (hex may be easier as there will be no carries). │ │ │ │ │ To determine the value of the masks, add up the hex/decimal values for all pins that should be configured as output, and analogously for all pins that should be excluded according to the following │ │ │ │ │ table. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 363 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.29: GPIO masks - mapping of GPIO numbers │ │ │ │ │ (leftmost column) to physical pin numbers as printed on │ │ │ │ │ the Raspberry Pi board (rightmost column) and the decimal/hexadecimal values that contribute to the value of │ │ │ │ │ the mask. │ │ │ │ │ @@ -18851,15 +18851,15 @@ │ │ │ │ │ • hal_pi_gpio.pin-NN-out │ │ │ │ │ • hal_pi_gpio.pin-NN-in │ │ │ │ │ Depending on the dir and exclude masks. │ │ │ │ │ │ │ │ │ │ 6.5.4 Parameter │ │ │ │ │ Only the standard timing parameters which are created for all components exist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 364 / 1331 │ │ │ │ │ │ │ │ │ │ *hal_pi_gpio.read.tmax *hal_pi_gpio.read.tmax-increased *hal_pi_gpio.write.tmax *hal_pi_gpio.write.tmaxincreased │ │ │ │ │ For unknown reasons the driver also creates HAL pins to indicate timing │ │ │ │ │ *hal_pi_gpio.read.time *hal_pi_gpio.write.time │ │ │ │ │ │ │ │ │ │ @@ -18890,15 +18890,15 @@ │ │ │ │ │ This driver has been tested on the Raspberry Pi, and should also work on Banana Pi, BeagleBone, │ │ │ │ │ Pine64 (et al.) and other single board computers, and potentially on other platforms. │ │ │ │ │ │ │ │ │ │ 6.6.1 Purpose │ │ │ │ │ This driver allows the use of GPIO pins in a way analogous to the parallel port driver on x86 PCs. It │ │ │ │ │ can use the same step generators, encoder counters and similar components. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 365 / 1331 │ │ │ │ │ │ │ │ │ │ 6.6.2 Anwendung │ │ │ │ │ loadrt hal_gpio inputs=GPIO5,GPIO6,GPIO12,GPIO13,GPIO16,GPIO17,GPIO18,GPIO19 \ │ │ │ │ │ outputs=GPIO20,GPIO21,GPIO22,GPIO23,GPIO24,GPIO25,GPIO26, ←GPIO27 \ │ │ │ │ │ invert=GPIO20,GPIO27 \ │ │ │ │ │ @@ -19040,15 +19040,15 @@ │ │ │ │ │ and must be in the same thread. The behaviour of this function is equivalent to the same │ │ │ │ │ function in the hal_parport driver, and it allows a step pulse every thread cycle. If the │ │ │ │ │ hal_gpio.reset_ns time is set longer than 1/4 of the period of the thread that it is added to, │ │ │ │ │ then the value will be reduced to 1/4 the thread period. There is a lower limit to how long │ │ │ │ │ the pulse can be. With 8 pins in the output list the pulse width can not reduce lower than │ │ │ │ │ 5000 ns on an RPi4, for example. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 366 / 1331 │ │ │ │ │ │ │ │ │ │ The following functions are accepted in all versions, but are only effective if a version of libgpiod_dev │ │ │ │ │ >= 1.6 is installed. They should be used in the same way as the parameters described above, and will │ │ │ │ │ alter the electrical parameters of the GPIO pins if this is supported by the hardware. │ │ │ │ │ opendrain │ │ │ │ │ @@ -19078,15 +19078,15 @@ │ │ │ │ │ │ │ │ │ │ 6.6.6 Pin Identification │ │ │ │ │ Use the pin names returned by the gpioinfo utility. This uses the device-tree data. If the installed OS │ │ │ │ │ does not have a device-tree database then the pins will all be called ”unnamed” (or similar) and this │ │ │ │ │ driver can not be used. │ │ │ │ │ A further update to this driver might allow access by index number, but this is not currently supported. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 367 / 1331 │ │ │ │ │ │ │ │ │ │ 6.6.7 Troubleshooting permissions problems. │ │ │ │ │ If ”access denied” messages are returned on loading the driver, try the following recipe: (Should not │ │ │ │ │ be needed for Raspbian, and will need to be modified to match the actual GPIO chip name on non-Pi │ │ │ │ │ platforms) │ │ │ │ │ @@ -19121,15 +19121,15 @@ │ │ │ │ │ 6.7.1 Einführung │ │ │ │ │ HostMot2 is an FPGA configuration developed by Mesa Electronics for their line of Anything I/O motion │ │ │ │ │ control cards. The firmware is open source, portable and flexible. It can be configured (at compiletime) with zero or more instances (an object created at runtime) of each of several Modules: encoders │ │ │ │ │ (quadrature counters), PWM generators, and step/dir generators. The firmware can be configured │ │ │ │ │ (at run-time) to connect each of these instances to pins on the I/O headers. I/O pins not driven by a │ │ │ │ │ Module instance revert to general-purpose bi-directional digital I/O. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 368 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.2 Firmware-Binärdateien │ │ │ │ │ 50 Pin Header FPGA-Karten Several pre-compiled HostMot2 firmware binaries are available for │ │ │ │ │ the different Anything I/O boards. This list is incomplete, check the hostmot2-firmware distribution │ │ │ │ │ for up-to-date firmware lists. │ │ │ │ │ @@ -19166,15 +19166,15 @@ │ │ │ │ │ denen die HostMot2-Firmware läuft. Die Low-Level-I/O-Treiber stellen diesen Zugang zur Verfügung. │ │ │ │ │ Die Low-Level-I/O-Treiber werden mit Befehlen wie diesem geladen: │ │ │ │ │ loadrt hm2_pci config=”firmware=hm2/5i20/SVST8_4.BIT │ │ │ │ │ num_encoders=3 num_pwmgens=3 num_stepgens=1” │ │ │ │ │ │ │ │ │ │ Die Konfigurationsparameter sind in der Manpage zu hostmot2 beschrieben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 369 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.5 Watchdog │ │ │ │ │ Die HostMot2-Firmware kann ein Watchdog-Modul enthalten; wenn dies der Fall ist, wird es vom │ │ │ │ │ Hostmot2-Treiber verwendet. │ │ │ │ │ Der Watchdog muss von Zeit zu Zeit von LinuxCNC gestreichelt werden, sonst beißt er. Die hm2 │ │ │ │ │ @@ -19204,15 +19204,15 @@ │ │ │ │ │ Die obigen Funktionen read_gpio und write_gpio sollten normalerweise nicht benötigt werden, da die │ │ │ │ │ GPIO-Bits zusammen mit allem anderen in den obigen Standardfunktionen read und write gelesen │ │ │ │ │ und geschrieben werden, die normalerweise im Servo-Thread ausgeführt werden. │ │ │ │ │ Die Funktionen read_gpio und write_gpio wurden für den Fall bereitgestellt, dass eine sehr schnelle │ │ │ │ │ (häufig aktualisierte) E/A benötigt wird. Diese Funktionen sollten im Basis-Thread ausgeführt werden. │ │ │ │ │ Wenn Sie dies benötigen, senden Sie uns bitte eine E-Mail und teilen Sie uns mit, um welche Anwendung es sich handelt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 370 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.7 Pinbelegungen │ │ │ │ │ Der hostmot2-Treiber hat keine bestimmte Pinbelegung. Die Pinbelegung ergibt sich aus der Firmware, die der hostmot2-Treiber an die Anything I/O-Karte sendet. Jede Firmware hat eine andere │ │ │ │ │ Pinbelegung, und die Pinbelegung hängt davon ab, wie viele der verfügbaren Encoder, pwmgens und │ │ │ │ │ stepgens verwendet werden. Um eine Pinout-Liste für Ihre Konfiguration nach dem Laden von LinuxCNC im Terminalfenster zu erhalten, geben Sie ein: │ │ │ │ │ @@ -19260,15 +19260,15 @@ │ │ │ │ │ [ 1141.053619] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort │ │ │ │ │ [ 1141.053621] hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort │ │ │ │ │ [ 1141.053624] hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort │ │ │ │ │ [ 1141.053627] hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort │ │ │ │ │ [ 1141.053811] hm2/hm2_5i20.0: registered │ │ │ │ │ [ 1141.053815] hm2_5i20.0: initialized AnyIO board at 0000:02:02.0 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 371 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Der I/O Pin nnn entspricht der Pin-Nummer, die auf dem HAL Configuration Bildschirm für GPIOs angezeigt wird. Einige der StepGen, Encoder und PWMGen werden auch als GPIOs im HALKonfigurationsbildschirm angezeigt. │ │ │ │ │ │ │ │ │ │ 6.7.8 PIN-Dateien │ │ │ │ │ @@ -19282,15 +19282,15 @@ │ │ │ │ │ Konfiguration finden Sie im Abschnitt Konfigurationen. │ │ │ │ │ │ │ │ │ │ 6.7.10 HAL-Pins │ │ │ │ │ The HAL pins for each configuration can be seen by opening up Show HAL Configuration from the │ │ │ │ │ Machine menu. All the HAL pins and parameters can be found there. The following figure is of the │ │ │ │ │ 5I20 configuration used above. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 372 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.9: 5i20 HAL-Pins │ │ │ │ │ │ │ │ │ │ 6.7.11 Konfigurationen │ │ │ │ │ Die Hostmot2-Firmware gibt es in verschiedenen Versionen, je nachdem, was Sie erreichen wollen. │ │ │ │ │ @@ -19307,15 +19307,15 @@ │ │ │ │ │ 7I47). So in this way we can save two ports (48 bits) for GPIO. │ │ │ │ │ Hier sind Tabellen mit den in den offiziellen Paketen verfügbaren Firmwares. Es kann zusätzliche │ │ │ │ │ Firmwares auf der Mesanet.com Website, die noch nicht in die LinuxCNC offiziellen Firmware-Pakete │ │ │ │ │ geschafft haben, daher schauen Sie auch dort nach. │ │ │ │ │ 3x20 (verschiedene 6 Anschlüsse) Standardkonfigurationen (3x20 ist in den Versionen mit 1M, 1,5M │ │ │ │ │ und 2M Gatter erhältlich. Bislang ist die gesamte Firmware in allen Gate-Größen verfügbar.) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Firmware │ │ │ │ │ SV24 │ │ │ │ │ SVST16_24 │ │ │ │ │ │ │ │ │ │ Encoder │ │ │ │ │ 24 │ │ │ │ │ @@ -19528,15 +19528,15 @@ │ │ │ │ │ 0 │ │ │ │ │ 4 │ │ │ │ │ │ │ │ │ │ GPIO │ │ │ │ │ 0 │ │ │ │ │ 0 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Firmware │ │ │ │ │ SVST8_4IM2 │ │ │ │ │ │ │ │ │ │ Encoder │ │ │ │ │ 8 (+IM) │ │ │ │ │ │ │ │ │ │ @@ -19639,15 +19639,15 @@ │ │ │ │ │ 6.7.12.1 Pins │ │ │ │ │ • in - (Bit, Out) Normaler Zustand des Hardware-Eingangs-Pins. Sowohl volle GPIO-Pins als auch │ │ │ │ │ I/O-Pins, die von aktiven Modulinstanzen als Eingänge verwendet werden, haben diesen Pin. │ │ │ │ │ • in_not - (Bit, Out) Invertierter Zustand des Hardware-Eingangs-Pins. Sowohl volle GPIO-Pins als │ │ │ │ │ auch I/O-Pins, die von aktiven Modulinstanzen als Eingänge verwendet werden, haben diesen Pin. │ │ │ │ │ • out - (Bit, In) Wert, der (möglicherweise invertiert) an den Hardware-Ausgangspin geschrieben werden soll. Nur volle GPIO-Pins haben diesen Pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 375 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.12.2 Parameter │ │ │ │ │ • invert_output - (Bit, RW) Dieser Parameter hat nur eine Auswirkung, wenn der Parameter is_output │ │ │ │ │ wahr ist. Wenn dieser Parameter wahr ist, wird der Ausgangswert des GPIOs der Inverse des Wertes │ │ │ │ │ am out HAL-Pin sein. Nur vollständige GPIO-Pins und I/O-Pins, die von aktiven Modulinstanzen als │ │ │ │ │ @@ -19680,15 +19680,15 @@ │ │ │ │ │ • control-type - (Bit, In) Schaltet zwischen Lageregelungsmodus (engl. position control mode) (0) │ │ │ │ │ und Geschwindigkeitsregelungsmodus (engl. velocity control mode) (1) um. Standardmäßig ist die │ │ │ │ │ Lageregelung (0) eingestellt. │ │ │ │ │ • counts - (s32, Out) Rückmeldung der Position in counts (Anzahl der Schritte). │ │ │ │ │ • enable - (Bit, In) Aktiviert Schritte am Ausgang. Wenn false, werden keine Schritte erzeugt. │ │ │ │ │ • position-cmd - (Float, In) Zielposition der Stepperbewegung, in benutzerdefinierten Positionseinheiten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 376 / 1331 │ │ │ │ │ │ │ │ │ │ • position-fb - (Float, Out) Positionsrückmeldung in benutzerdefinierten Positionseinheiten (counts / │ │ │ │ │ position_scale). │ │ │ │ │ • velocity-cmd - (Float, In) Zielgeschwindigkeit der Schrittmotorbewegung, in benutzerdefinierten │ │ │ │ │ Positionseinheiten pro Sekunde. Dieser Pin wird nur verwendet, wenn sich der Stepgen im Geschwindigkeitsregelungsmodus befindet (control-type=1). │ │ │ │ │ @@ -19719,15 +19719,15 @@ │ │ │ │ │ Ausgangspin: der I/O-Pin am Anschluss wird auf den durch den out HAL-Pin spezifizierten Wert gesteuert (möglicherweise invertiert). Wenn dieser Parameter true ist, verhält sich der GPIO wie ein │ │ │ │ │ Open-Drain-Pin. Das Schreiben von 0 an den out HAL-Pin treibt den I/O-Pin auf low, das Schreiben │ │ │ │ │ von 1 an den out HAL-Pin versetzt den I/O-Pin in einen hochohmigen Zustand. In diesem hochohmigen Zustand schwebt der I/O-Pin (schwach hochgezogen), und andere Geräte können den Wert │ │ │ │ │ treiben; der resultierende Wert am I/O-Pin ist an den in und in_not Pins verfügbar. Nur vollständige │ │ │ │ │ GPIO-Pins und I/O-Pins, die von aktiven Modulinstanzen als Ausgänge verwendet werden, haben │ │ │ │ │ diesen Parameter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 377 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.14 PWMGen │ │ │ │ │ PWMgens haben Namen wie hm2_..pwmgen.. Instance ist eine zweistellige Nummer, die der HostMot2 pwmgen Instanznummer entspricht. Es gibt num_pwmgens │ │ │ │ │ Instanzen, beginnend mit 00. │ │ │ │ │ In HM2 verwendet jedes pwmgen drei Ausgangs-E/A-Pins: Not-Enable, Out0, und Out1. Um einen │ │ │ │ │ @@ -19765,15 +19765,15 @@ │ │ │ │ │ Its effective range is from 1 Hz up to 193 kHz. Note that the max frequency is determined by the │ │ │ │ │ ClockHigh frequency of the Anything I/O board; the 5i20 and 7i43 both have a 100 MHz clock, │ │ │ │ │ resulting in a 193 kHz max PWM frequency. Other boards may have different clocks, resulting in │ │ │ │ │ different max PWM frequencies. If the user attempts to set the frequency too high, then it will be │ │ │ │ │ clipped to the max supported frequency of the board. Frequencies below about 5 Hz are not terribly │ │ │ │ │ accurate, but above 5 Hz they are pretty close. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 378 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.14.3 Ausgangsparameter │ │ │ │ │ Die Ausgangspins der einzelnen PWMGen haben zwei zusätzliche Parameter. Um herauszufinden, │ │ │ │ │ welcher E/A-Pin zu welchem Ausgang gehört, führen Sie dmesg wie oben beschrieben aus. │ │ │ │ │ • invert_output - (Bit, RW) This parameter only has an effect if the is_output parameter is true. If │ │ │ │ │ @@ -19810,15 +19810,15 @@ │ │ │ │ │ FALSE zurück, nachdem er die Zählung auf 0 gesetzt hat, das ist Aufgabe des Benutzers. │ │ │ │ │ • velocity - (Float, Out) Geschätzte Encoder-Geschwindigkeit in Positionseinheiten pro Sekunde. │ │ │ │ │ 6.7.15.2 Parameter │ │ │ │ │ • counter-mode - (Bit, RW) Auf False (Standard) für Quadratur gesetzt. Auf True gesetzt für Up/Down │ │ │ │ │ oder für einen einzelnen Eingang an Phase A. Kann für einen Frequenz/Geschwindigkeits-Wandler │ │ │ │ │ mit einem einzelnen Eingang an Phase A verwendet werden, wenn auf True gesetzt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 379 / 1331 │ │ │ │ │ │ │ │ │ │ • filter - (Bit, RW) If set to True (the default), the quadrature counter needs 15 clocks to register │ │ │ │ │ a change on any of the three input lines (any pulse shorter than this is rejected as noise). If set to │ │ │ │ │ False, the quadrature counter needs only 3 clocks to register a change. The encoder sample clock │ │ │ │ │ runs at 33 MHz on the PCI Anything I/O cards and 50 MHz on the 7I43. │ │ │ │ │ @@ -19857,15 +19857,15 @@ │ │ │ │ │ │ │ │ │ │ 5I25 + 7I77 Karte │ │ │ │ │ # den generischen Treiber laden │ │ │ │ │ loadrt hostmot2 │ │ │ │ │ # Laden Sie den PCI-Treiber und konfigurieren Sie ihn │ │ │ │ │ loadrt hm2_pci config=”num_encoders=6 num_pwmgens=6 sserial_port_0=0XXX” │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 380 / 1331 │ │ │ │ │ │ │ │ │ │ 6.7.16.3 SSERIAL-Konfiguration │ │ │ │ │ Die Konfigurationszeichenfolge sserial_port_0=0XXX legt einige Optionen für die intelligente serielle Tochterkarte fest. Diese Optionen sind spezifisch für jede Tochterkarte. Weitere Informationen über │ │ │ │ │ die genaue Verwendung finden Sie im Mesa-Handbuch (normalerweise im Abschnitt SOFTWARE PROCESS DATA MODES) oder auf der Handbuchseite des Links:../man/man9/sserial.9.html[SSERIAL(9)]. │ │ │ │ │ 6.7.16.4 7I77 Grenzwerte │ │ │ │ │ @@ -19898,15 +19898,15 @@ │ │ │ │ │ │ │ │ │ │ 6.8 MB2HAL │ │ │ │ │ 6.8.1 Einführung │ │ │ │ │ MB2HAL is a generic non-realtime HAL component to communicate with one or more Modbus devices. │ │ │ │ │ So far, there are two options to communicate with a Modbus device: │ │ │ │ │ 1. One option is to create a HAL component as a driver see VFD Modbus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 381 / 1331 │ │ │ │ │ │ │ │ │ │ 2. Another option is to use Classic Ladder which has Modbus built in, see ClassicLadder. │ │ │ │ │ 3. Jetzt gibt es eine dritte Option, die aus einem ”generischen” Treiber besteht, der per Textdatei │ │ │ │ │ konfiguriert wird, dieser heißt MB2HAL. │ │ │ │ │ Why MB2HAL? Consider using MB2HAL if: │ │ │ │ │ @@ -19956,15 +19956,15 @@ │ │ │ │ │ (engl. │ │ │ │ │ string) │ │ │ │ │ │ │ │ │ │ Version number in the format N.N[NN]. Defaults to 1.0. │ │ │ │ │ │ │ │ │ │ HAL module (component) name. Defaults to ”mb2hal”. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 382 / 1331 │ │ │ │ │ │ │ │ │ │ Wert │ │ │ │ │ SLOWDOWN │ │ │ │ │ │ │ │ │ │ Typ │ │ │ │ │ @@ -20060,15 +20060,15 @@ │ │ │ │ │ A list of element names. These names will be used for the │ │ │ │ │ nicht │ │ │ │ │ pin names, e.g. mb2hal.plcin.cycle_start. │ │ │ │ │ NELEMENTS NOTE: There must be no white space characters in the list. │ │ │ │ │ angegeben Example: PIN_NAMES=cycle_start,stop,feed_hold │ │ │ │ │ ist │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Wert │ │ │ │ │ MB_TX_CODE │ │ │ │ │ │ │ │ │ │ Typ │ │ │ │ │ ErforderlichBeschreibung │ │ │ │ │ Zeichenfolge │ │ │ │ │ @@ -20143,15 +20143,15 @@ │ │ │ │ │ • 0x04 - SLAVE_DEVICE_FAILURE - SLAVE (or MASTER) device unrecoverable FAILURE while attempting to perform the requested action. │ │ │ │ │ • 0x04 - SERVER_FAILURE - (see above). │ │ │ │ │ • 0x05 - ACKNOWLEDGE - This response is returned to PREVENT A TIMEOUT in the master. A long │ │ │ │ │ duration of time is required to process the request in the slave. │ │ │ │ │ • 0x06 - SLAVE_DEVICE_BUSY - The slave (or server) is BUSY. Retransmit the request later. │ │ │ │ │ • 0x06 - SERVER_BUSY - (see above). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 384 / 1331 │ │ │ │ │ │ │ │ │ │ • 0x07 - NEGATIVE_ACKNOWLEDGE - Unsuccessful programming request using function code 13 or │ │ │ │ │ 14. │ │ │ │ │ • 0x08 - MEMORY_PARITY_ERROR - SLAVE parity error in MEMORY. │ │ │ │ │ • 0x0A (-10) - GATEWAY_PROBLEM_PATH - Gateway path(s) not available. │ │ │ │ │ @@ -20190,15 +20190,15 @@ │ │ │ │ │ VERSION=1.1 │ │ │ │ │ #OPTIONAL: HAL module (component) name. Defaults to ”mb2hal”. │ │ │ │ │ HAL_MODULE_NAME=mb2hal │ │ │ │ │ #OPTIONAL: Insert a delay of ”FLOAT seconds” between transactions in order │ │ │ │ │ #to not to have a lot of logging and facilitate the debugging. │ │ │ │ │ #Useful when using DEBUG=3 (NOT INIT_DEBUG=3) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 385 / 1331 │ │ │ │ │ │ │ │ │ │ #It affects ALL transactions. │ │ │ │ │ #Use ”0.0” for normal activity. │ │ │ │ │ SLOWDOWN=0.0 │ │ │ │ │ #REQUIRED: The number of total Modbus transactions. There is no maximum. │ │ │ │ │ @@ -20243,15 +20243,15 @@ │ │ │ │ │ #if LINK_TYPE=serial then OPTIONAL: │ │ │ │ │ #if LINK_TYPE=tcp then IGNORED │ │ │ │ │ #Serial port delay between for this transaction only. │ │ │ │ │ #In ms. Defaults to 0. │ │ │ │ │ SERIAL_DELAY_MS=10 │ │ │ │ │ #REQUIRED (only 1st time). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 386 / 1331 │ │ │ │ │ │ │ │ │ │ #Modbus slave number. │ │ │ │ │ MB_SLAVE_ID=1 │ │ │ │ │ #REQUIRED: The first element address (decimal integer). │ │ │ │ │ FIRST_ELEMENT=0 │ │ │ │ │ @@ -20340,15 +20340,15 @@ │ │ │ │ │ # │ │ │ │ │ mb2hal.TxName.01. (HAL_TX_NAME=TxName, second register=01 (00 is the first ←one)) │ │ │ │ │ MB_TX_CODE=fnct_03_read_holding_registers │ │ │ │ │ #OPTIONAL: Response timeout for this transaction. In INTEGER ms. Defaults to 500 ms. │ │ │ │ │ #This is how much to wait for 1st byte before raise an error. │ │ │ │ │ MB_RESPONSE_TIMEOUT_MS=500 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 387 / 1331 │ │ │ │ │ │ │ │ │ │ #OPTIONAL: Byte timeout for this transaction. In INTEGER ms. Defaults to 500 ms. │ │ │ │ │ #This is how much to wait from byte to byte before raise an error. │ │ │ │ │ MB_BYTE_TIMEOUT_MS=500 │ │ │ │ │ #OPTIONAL: Instead of giving the transaction number, use a name. │ │ │ │ │ @@ -20412,15 +20412,15 @@ │ │ │ │ │ MB_TX_CODE=fnct_01_read_coils │ │ │ │ │ FIRST_ELEMENT=1024 │ │ │ │ │ NELEMENTS=24 │ │ │ │ │ HAL_TX_NAME=remoteIOin │ │ │ │ │ MAX_UPDATE_RATE=0.0 │ │ │ │ │ DEBUG=1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ [TRANSACTION_02] │ │ │ │ │ MB_TX_CODE=fnct_02_read_discrete_inputs │ │ │ │ │ FIRST_ELEMENT=1280 │ │ │ │ │ NELEMENTS=8 │ │ │ │ │ HAL_TX_NAME=readStatus │ │ │ │ │ MAX_UPDATE_RATE=0.0 │ │ │ │ │ @@ -20471,15 +20471,15 @@ │ │ │ │ │ NELEMENTS=8 │ │ │ │ │ HAL_TX_NAME=XDrive04 │ │ │ │ │ MAX_UPDATE_RATE=10.0 │ │ │ │ │ DEBUG=1 │ │ │ │ │ │ │ │ │ │ 388 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 389 / 1331 │ │ │ │ │ │ │ │ │ │ 6.8.5 Pins │ │ │ │ │ Anmerkung │ │ │ │ │ Yellow = New in MB2HAL 1.1 (LinuxCNC 2.9) To use these new features you have to set VERSION = │ │ │ │ │ 1.1. │ │ │ │ │ @@ -20506,15 +20506,15 @@ │ │ │ │ │ NELEMENTS muss 1 sein oder PIN_NAMES darf nur einen Namen enthalten. │ │ │ │ │ 6.8.5.6 fnct_06_write_single_register │ │ │ │ │ • mb2hal.m.n.float float in │ │ │ │ │ • mb2hal.m.n.int s32 in │ │ │ │ │ NELEMENTS needs to be 1 or PIN_NAMES must contain just one name. Both pin values are added and │ │ │ │ │ limited to 65535 (UINT16_MAX). Use one and let the other open (read as 0). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 390 / 1331 │ │ │ │ │ │ │ │ │ │ 6.8.5.7 fnct_15_write_multiple_coils │ │ │ │ │ • mb2hal.m.n.bit bit in │ │ │ │ │ 6.8.5.8 fnct_16_write_multiple_registers │ │ │ │ │ • mb2hal.m.n.float float in │ │ │ │ │ @@ -20546,15 +20546,15 @@ │ │ │ │ │ • -b oder --baud : die Baudrate einstellen - muss für alle vernetzten VFDs gleich sein │ │ │ │ │ • -p oder --port : legt den zu verwendenden Anschluss fest, z. B. /dev/ttyUSB0 │ │ │ │ │ • = : setzt den Namen der HAL-Komponente/des Pins und die Slave-Nummer. │ │ │ │ │ Das Debugging kann durch Setzen des Debug-Pins auf true umgeschaltet werden. │ │ │ │ │ Anmerkung │ │ │ │ │ Das Einschalten der Fehlersuche (engl. debugging) führt zu einer Flut von Text im Terminal. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 391 / 1331 │ │ │ │ │ │ │ │ │ │ 6.9.2 Pins │ │ │ │ │ Dabei steht für mitsub_vfd oder den beim Laden vergebenen Namen. │ │ │ │ │ • .fwd (bit, in) True setzt Bewegung vorwärts, False setzt Bewegung rückwärts. │ │ │ │ │ • .run (bit, in) True setzt den VFD basierend auf dem .fwd-Pin in Bewegung. │ │ │ │ │ @@ -20592,15 +20592,15 @@ │ │ │ │ │ # cmd skaliert auf RPM │ │ │ │ │ setp spindel.scale-cmd .135 │ │ │ │ │ # Rückmeldung erfolgt in U/min │ │ │ │ │ setp spindel.scale-fb 7.411 │ │ │ │ │ # ermöglicht es uns, den Status zu sehen │ │ │ │ │ setp spindel.monitor 1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ net spindle-speed-indicator spindle.motor-fb │ │ │ │ │ │ │ │ │ │ 392 / 1331 │ │ │ │ │ │ │ │ │ │ gladevcp.spindle-speed │ │ │ │ │ │ │ │ │ │ @@ -20640,15 +20640,15 @@ │ │ │ │ │ • PR 119 auf 0 gesetzt -Stoppbit/Datenlänge (8 Bits, zwei Stopps) │ │ │ │ │ • PR 120’ auf 0 gesetzt -keine Parität │ │ │ │ │ • PR 121 set to 1-10 -if 10 (maximum) COM errors then VFD faults. │ │ │ │ │ • PR 122 getestet mit 9999 ’-wenn die Kommunikation verloren geht, hat der VFD keinen Fehler ’ │ │ │ │ │ • PR 123 auf 9999 eingestellt -dem seriellen Datenrahmen wird keine Wartezeit hinzugefügt. │ │ │ │ │ • PR 124 auf 0 gesetzt -kein Zeilenumbruch am Ende der Zeile. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 393 / 1331 │ │ │ │ │ │ │ │ │ │ 6.10 Motenc Treiber │ │ │ │ │ Vital Systems Moenc-100 und Moenc-LITE │ │ │ │ │ Die Vital Systems Motenc-100 und Motenc-LITE sind 8- und 4-Kanal-Servokontrollkarten. Die Motenc100 bietet 8 Quadratur-Encoder-Zähler, 8 analoge Eingänge, 8 analoge Ausgänge, 64 (68?) digitale │ │ │ │ │ Eingänge und 32 digitale Ausgänge. Die Motenc-LITE hat nur 4 Encoderzähler, 32 digitale Eingänge │ │ │ │ │ @@ -20680,15 +20680,15 @@ │ │ │ │ │ kanonischer Digitaleingang. │ │ │ │ │ • (bit) motenc..out- - Wert, der in den digitalen Ausgang geschrieben werden soll, │ │ │ │ │ siehe kanonischer digitaler Ausgang. │ │ │ │ │ • (bit) motenc..estop-in - Separater Notaus-Eingang, weitere Details erforderlich. │ │ │ │ │ • (bit) motenc..estop-in-not - Invertierter Zustand des dedizierten Notaus-Eingangs. │ │ │ │ │ • (bit) motenc..watchdog-reset - Bidirektional, - TRUE setzen, um Watchdog einmal zurückzusetzen, wird automatisch gelöscht. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 394 / 1331 │ │ │ │ │ │ │ │ │ │ 6.10.2 Parameter │ │ │ │ │ • (float) motenc..enc--scale - Die Anzahl der Zählungen / Benutzereinheit (zur │ │ │ │ │ Umrechnung von Zählungen in Einheiten). │ │ │ │ │ • (float) motenc..dac--offset - Setzt den DAC-Offset. │ │ │ │ │ @@ -20733,15 +20733,15 @@ │ │ │ │ │ • (funct) motenc..dac-write - Schreibt die Spannungen an die DACs. │ │ │ │ │ • (funct) motenc..digital-out-write - Schreibt die digitalen Ausgänge. │ │ │ │ │ • (funct) motenc..misc-update - Aktualisiert verschiedene Dinge. │ │ │ │ │ │ │ │ │ │ 6.11 Opto22 Treiber │ │ │ │ │ PCI AC5 ADAPTER CARD / HAL DRIVER │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 395 / 1331 │ │ │ │ │ │ │ │ │ │ 6.11.1 Die Adapterkarte │ │ │ │ │ Dies ist eine Karte von Opto22 für die Anpassung des PCI-Ports an Solid-State-Relais-Racks wie die │ │ │ │ │ Standard- oder G4-Serie. Sie hat 2 Ports, die jeweils bis zu 24 Punkte steuern können, und verfügt über │ │ │ │ │ 4 LEDs auf der Karte. Die Ports sind mit 50-poligen Anschlüssen ausgestattet, die denen der MesaKarten entsprechen. Alle Relais-Racks/Breakout-Boards, die mit Mesa-Karten funktionieren, sollten │ │ │ │ │ @@ -20778,15 +20778,15 @@ │ │ │ │ │ BOARDNUMBER kann 0-3 sein PORTNUMBER kann 0 oder 1 sein. Anschluss 0 liegt am nächsten an │ │ │ │ │ der Kartenhalterung. │ │ │ │ │ │ │ │ │ │ 6.11.4 Parameter │ │ │ │ │ • opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit - Bei TRUE wird │ │ │ │ │ die Bedeutung des entsprechenden -out-Pins invertiert, so dass TRUE LOW und FALSE HIGH ergibt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 396 / 1331 │ │ │ │ │ │ │ │ │ │ 6.11.5 FUNKTIONEN │ │ │ │ │ • opto_ac5.0.digital-read - Fügen Sie dies zu einem Thread hinzu, um alle Eingabepunkte zu lesen. │ │ │ │ │ • opto_ac5.0.digital-write - Fügen Sie dies zu einem Thread hinzu, um alle Ausgangspunkte und LEDs │ │ │ │ │ zu schreiben. │ │ │ │ │ @@ -20824,15 +20824,15 @@ │ │ │ │ │ Hier sind die 24 Bits in einer BINÄREN Zahl dargestellt. Bit 1 ist die ganz rechte Zahl: │ │ │ │ │ 16 Nullen für die 16 Eingänge und 8 Einsen für die 8 Ausgänge │ │ │ │ │ 000000000000000011111111 │ │ │ │ │ │ │ │ │ │ Das wird auf dem Taschenrechner in FF umgewandelt, so dass 0xff die Nummer ist, die beim Laden │ │ │ │ │ des Treibers für portconfig0 und/oder portconfig1 zu verwenden ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 397 / 1331 │ │ │ │ │ │ │ │ │ │ 6.11.7 Pin-Nummerierung │ │ │ │ │ Der HAL-Pin 00 entspricht dem Bit 1 (ganz rechts), das die Position 0 auf einem Opto22-Relaisgestell │ │ │ │ │ darstellt. HAL-Pin 01 entspricht Bit 2 (eine Stelle links vom rechten Rand), das die Position 1 auf │ │ │ │ │ einem Opto22-Relaismodul darstellt. HAL-Pin 23 entspricht Bit 24 (ganz links), das die Position 23 │ │ │ │ │ @@ -20868,15 +20868,15 @@ │ │ │ │ │ In der Befehlszeile von loadrt können mehrere Optionen angegeben werden. Erstens kann bei USC │ │ │ │ │ und UPC ein 8-Bit-DAC für die Spindeldrehzahlsteuerung und ähnliche Funktionen hinzugefügt werden. Dies kann mit dem Parameter extradac=0xnn[,0xmm] angegeben werden. Mit dem in [ ] eingeschlossenen Teil können Sie diese Option auf mehr als einer Platine des Systems angeben. Die erste │ │ │ │ │ Hexadezimalziffer gibt an, auf welchen EPP-Bus Bezug genommen wird; sie entspricht der Reihenfolge der Portadressen im Parameter port_addr, wobei hier Null wäre. Für den ersten EPP-Bus │ │ │ │ │ würde die erste USC- oder UPC-Platine also mit 0x00 beschrieben, die zweite USC- oder UPC-Platine │ │ │ │ │ auf demselben Bus wäre 0x02. (Beachten Sie, dass jede USC- oder UPC-Platine zwei Adressen belegt, │ │ │ │ │ wenn also eine auf 00 steht, müsste die nächste 02 sein.) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 398 / 1331 │ │ │ │ │ │ │ │ │ │ Alternativ können die 8 digitalen Ausgangspins als zusätzliche digitale Ausgänge verwendet werden, │ │ │ │ │ es funktioniert genauso wie oben mit der Syntax : extradout=0xnn’. Die Extradac- und ExtradoutOptionen schließen sich auf jedem Board gegenseitig aus, Sie können nur eine angeben. │ │ │ │ │ Die Encoderplatinen UPC und PPMC können das Eintreffen von Encoderzählungen mit einem Zeitstempel versehen, um die Ableitung der Achsengeschwindigkeit zu verfeinern. Diese abgeleitete Geschwindigkeit kann in die PID hal-Komponente eingespeist werden, um eine glattere D-Term-Reaktion │ │ │ │ │ zu erzeugen. Die Syntax lautet: timestamp=0xnn[,0xmm], dies funktioniert auf die gleiche Weise │ │ │ │ │ @@ -20914,15 +20914,15 @@ │ │ │ │ │ ist. Option bedeutet, dass dieser Pin nur exportiert wird, wenn diese Option durch einen optionalen │ │ │ │ │ Parameter im loadrt HAL-Befehl aktiviert ist. Diese Optionen setzen voraus, dass die Platine einen │ │ │ │ │ ausreichenden Revisionsstand hat, um die Funktion zu unterstützen. │ │ │ │ │ • (Alle s32-Ausgaben) ppmc..encoder..count - Encoder-Position in Zählwerten. │ │ │ │ │ • (Alle s32-Ausgaben) ppmc..encoder..delta – Änderung der Zählwerte seit dem │ │ │ │ │ letzten Lesen, in rohen Encoder-Zähleinheiten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 399 / 1331 │ │ │ │ │ │ │ │ │ │ • (Alles Float-Ausgaben) ’ppmc..encoder..velocity - Geschwindigkeit skaliert in Benutzereinheiten pro Sekunde. Auf PPMC und USC wird dies von den rohen Encoder-Zählungen pro │ │ │ │ │ Servoperiode abgeleitet und wird daher von der Encoder-Granularität beeinflusst. Auf UPC-Platinen │ │ │ │ │ mit der Firmware 8/21/09 und später kann die Geschwindigkeitsschätzung durch Zeitstempelung │ │ │ │ │ der Encoderzählungen verwendet werden, um die Glattheit dieser Geschwindigkeitsausgabe zu verbessern. Dies kann in die PID-HAL-Komponente eingespeist werden, um eine stabilere Servoreaktion zu erzeugen. Diese Funktion muss in der HAL-Kommandozeile, die den PPMC-Treiber startet, │ │ │ │ │ @@ -20949,15 +20949,15 @@ │ │ │ │ │ angeschlossen sein sollte. 0 entspricht null Volt, 255 entspricht 10 Volt. Die Polarität des Ausgangs │ │ │ │ │ kann auf immer Minus, immer Plus eingestellt werden oder durch den Zustand von SSR1 (Plus, │ │ │ │ │ wenn eingeschaltet) und SSR2 (Minus, wenn eingeschaltet) gesteuert werden. Sie müssen extradac │ │ │ │ │ = 0x00 in der HAL-Befehlszeile angeben, die den PPMC-Treiber lädt, um diese Funktion auf der ersten USC ur UPC-Platine zu aktivieren. │ │ │ │ │ • (Option bit input) ppmc..dout..out - Wert, der an einen der 8 zusätzlichen digitalen Ausgangspins an J8 geschrieben werden soll. Sie müssen extradout = 0x00 in der HALBefehlszeile angeben, die den ppmc-Treiber lädt, um diese Funktion auf der ersten USC- oder UPCPlatine zu aktivieren. extradac und extradout schließen sich gegenseitig aus, da sie dieselben Signalleitungen für unterschiedliche Zwecke verwenden. Diese Ausgangspins werden nach den digitalen │ │ │ │ │ Standardausgängen der Karte aufgezählt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 400 / 1331 │ │ │ │ │ │ │ │ │ │ 6.12.3 Parameter │ │ │ │ │ • (All float) ppmc..encoder..scale - Die Anzahl der Zählungen / Benutzereinheit (zur │ │ │ │ │ Umrechnung von Zählungen in Einheiten). │ │ │ │ │ • (UPC float) ppmc..pwm..freq - Die PWM-Trägerfrequenz, in Hz. Gilt für │ │ │ │ │ @@ -20990,15 +20990,15 @@ │ │ │ │ │ gekappt.) │ │ │ │ │ • (USC float) ppmc..stepgen..frequency - Tatsächliche Schrittimpulsfrequenz in Hz │ │ │ │ │ (wird meist zur Fehlersuche verwendet.) │ │ │ │ │ • (Option float) ppmc. . DAC8. .scale - Legt die Skalierung des zusätzlichen DACAusgangs so fest, dass ein der Skalierung entsprechender Ausgangswert eine Größe von 10,0 V │ │ │ │ │ ergibt. (Das Vorzeichen des Ausgangs wird durch Jumper und/oder andere digitale Ausgänge gesetzt.) │ │ │ │ │ • (Optionsbit) ppmc..dout..invert - Invertiert einen digitalen Ausgang, siehe kanonischer digitaler Ausgang. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 401 / 1331 │ │ │ │ │ │ │ │ │ │ • (Optionsbit) ppmc. .dout. .invert - Invertiert einen digitalen Ausgangspin von J8, │ │ │ │ │ siehe Kanonischer Digitalausgang. │ │ │ │ │ │ │ │ │ │ 6.12.4 Funktionen │ │ │ │ │ @@ -21026,15 +21026,15 @@ │ │ │ │ │ • Bei der Auslieferung der Pluto-P-Platine ist der linke Steckverbinder vorgelötet, wobei sich der │ │ │ │ │ Schlüssel in der angegebenen Position befindet. Die anderen Anschlüsse sind unbestückt. Es scheint │ │ │ │ │ keinen standardmäßigen 12-poligen IDC-Stecker zu geben, aber einige der Stifte eines 16-poligen │ │ │ │ │ Steckers können von der Platine neben QA3/QZ3 herunterhängen. │ │ │ │ │ • Der untere und der rechte Anschluss befinden sich auf demselben .1”-Raster, der linke Anschluss jedoch nicht. Wenn OUT2…OUT9 nicht benötigt werden, kann ein einzelner IDC-Stecker den unteren │ │ │ │ │ Stecker und die unteren beiden Reihen des rechten Steckers überbrücken. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 402 / 1331 │ │ │ │ │ │ │ │ │ │ 6.13.1.3 Physikalische Stifte (engl.+ inzwischen auch deutsch: pins) │ │ │ │ │ • Lesen Sie das ACEX1K-Datenblatt für Informationen über Eingangs- und Ausgangsspannungsschwellenwerte. Die Pins sind alle im LVTTL/LVCMOS Modus konfiguriert und sind generell mit 5V TTLLogik kompatibel. │ │ │ │ │ • Vor der Konfiguration und nach dem ordnungsgemäßen Verlassen von LinuxCNC werden alle PlutoP-Pins mit schwachen Pull-ups (20 kΩ min, 50 kΩ max) tristiert. Wenn der Watchdog-Timer aktiviert │ │ │ │ │ ist (Standardeinstellung), werden diese Pins auch nach einer Unterbrechung der Kommunikation │ │ │ │ │ @@ -21063,15 +21063,15 @@ │ │ │ │ │ regulierte +3,3 VDC zugeführt werden. Der erforderliche Strom ist noch nicht bekannt, liegt aber │ │ │ │ │ wahrscheinlich bei etwa 50 mA plus I/O-Strom. │ │ │ │ │ • Der Regler auf der Pluto-P-Platine ist ein Low-Dropout-Typ. Wenn 5 V an der Netzbuchse anliegen, │ │ │ │ │ kann der Regler ordnungsgemäß arbeiten. │ │ │ │ │ 6.13.1.6 PC-Schnittstelle │ │ │ │ │ • Es wird nur eine einzige pluto_servo oder pluto_step Karte unterstützt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 403 / 1331 │ │ │ │ │ │ │ │ │ │ 6.13.1.7 Neuerstellung der FPGA-Firmware │ │ │ │ │ Die Unterverzeichnisse ”src/hal/drivers/pluto_servo_firmware/” und ”src/hal/drivers/pluto_step_firmware/” │ │ │ │ │ enthalten den Verilog-Quellcode sowie zusätzliche Dateien, die von Quartus für die FPGA-Firmware │ │ │ │ │ verwendet werden. Die Quartus II Software von Altera ist erforderlich, um die FPGA-Firmware neu │ │ │ │ │ @@ -21102,15 +21102,15 @@ │ │ │ │ │ 6.13.2.1 Pinbelegung │ │ │ │ │ • UPx - Das Up- (Aufwärts-/Abwärtsmodus) oder PWM-Signal (PWM+Richtung-Modus) vom PWMGenerator X. Kann als digitaler Ausgang verwendet werden, wenn der entsprechende PWM-Kanal │ │ │ │ │ unbenutzt ist oder der Ausgang des Kanals immer negativ ist. Der entsprechende digitale Ausgang │ │ │ │ │ kann auf TRUE gesetzt werden, damit UPx aktiv low statt aktiv high ist. │ │ │ │ │ • DNx - Das down- (Aufwärts/Abwärts-Modus) oder Richtungs-Signal (PWM+direction-Modus) vom │ │ │ │ │ PWM-Generator X. Kann als digitaler Ausgang verwendet werden, wenn der entsprechende PWMKanal unbenutzt ist oder der Ausgang des Kanals nie negativ ist. Der entsprechende digitale Ausgang kann auf TRUE gesetzt werden, damit DNx aktiv low statt aktiv high ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 404 / 1331 │ │ │ │ │ │ │ │ │ │ • QAx, QBx - Die A- und B-Signale für Quadraturzähler X. Kann als digitaler Eingang verwendet werden, wenn der entsprechende Quadraturkanal nicht verwendet wird. │ │ │ │ │ • QZx - Das Z-Signal (Index) für Quadraturzähler X. Kann als digitaler Eingang verwendet werden, │ │ │ │ │ wenn die Indexfunktion des entsprechenden Quadraturkanals nicht verwendet wird. │ │ │ │ │ • INx - Dedizierter digitaler Eingang#x │ │ │ │ │ @@ -21151,15 +21151,15 @@ │ │ │ │ │ Pin der PWM-Ausgang │ │ │ │ │ geXORt mit UP1 oder │ │ │ │ │ PWM1 │ │ │ │ │ Wenn pwm-2-pwmdir │ │ │ │ │ TRUE ist, dann ist dieser │ │ │ │ │ Pin der PWM-Ausgang │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 405 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 6.41: (continued) │ │ │ │ │ Primäre Funktion │ │ │ │ │ │ │ │ │ │ Alternative Funktion │ │ │ │ │ @@ -21262,15 +21262,15 @@ │ │ │ │ │ 6.13.2.2 Input-Latching und Output-Aktualisierung │ │ │ │ │ • Die PWM-Tastverhältnisse werden für jeden Kanal zu unterschiedlichen Zeiten aktualisiert. │ │ │ │ │ • Die digitalen Ausgänge OUT0 bis OUT9 werden alle zur gleichen Zeit aktualisiert. Die digitalen │ │ │ │ │ Ausgänge OUT10 bis OUT17 werden gleichzeitig mit der PWM-Funktion aktualisiert, mit der sie │ │ │ │ │ geteilt werden. │ │ │ │ │ • Die digitalen Eingänge IN0 bis IN19 werden alle gleichzeitig gehalten (engl. latched). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 406 / 1331 │ │ │ │ │ │ │ │ │ │ • Die Quadraturpositionen werden für jeden Kanal zu unterschiedlichen Zeiten gespeichert. │ │ │ │ │ 6.13.2.3 HAL-Funktionen, Pins und Parameter │ │ │ │ │ Eine Liste aller loadrt-Argumente, HAL-Funktionsnamen, Pin-Namen und Parameter-Namen befindet │ │ │ │ │ sich in der Manpage zu pluto_servo.9. │ │ │ │ │ @@ -21296,15 +21296,15 @@ │ │ │ │ │ • OUTx - Dedizierter digitaler Ausgang #x │ │ │ │ │ • GND - Masse (engl. ground) │ │ │ │ │ • VCC’ - +3,3V geregelter Gleichstrom (engl. regulated DC) │ │ │ │ │ Während der ”erweiterte Hauptanschluss” über eine Reihe von Signalen verfügt, die normalerweise │ │ │ │ │ auf einem Step & Direction DB25-Anschluss zu finden sind - 4 Schrittgeneratoren, 9 Eingänge und 6 │ │ │ │ │ Allzweckausgänge -, unterscheidet sich das Layout dieses Anschlusses von dem eines standardmäßigen 26-poligen Flachbandkabels zu einem DB25-Anschluss. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 407 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.11: Pluto-Step Pinout │ │ │ │ │ │ │ │ │ │ 6.13.3.2 Input-Latching und Output-Aktualisierung │ │ │ │ │ • Die Schrittfrequenzen für jeden Kanal werden zu unterschiedlichen Zeiten aktualisiert. │ │ │ │ │ @@ -21312,15 +21312,15 @@ │ │ │ │ │ • Die digitalen Eingänge werden alle zur gleichen Zeit gehalten (engl. latched). │ │ │ │ │ • Feedback-Positionen werden für jeden Kanal zu unterschiedlichen Zeiten gespeichert. │ │ │ │ │ 6.13.3.3 Schritt (engl. Step)-Wellenform-Timings │ │ │ │ │ Die Firmware und der Treiber erzwingen Schrittlänge, Abstand und Richtungswechselzeiten. Die Zeiten werden auf das nächste Vielfache von 1,6 μs aufgerundet, mit einem Maximum von 49,6 μs. Die │ │ │ │ │ Zeitvorgaben sind dieselben wie bei der Softwarekomponente stepgen, mit der Ausnahme, dass ”dirhold” und ”dirsetup” zu einem einzigen Parameter ”dirtime” zusammengefasst wurden, der das Maximum der beiden Parameter sein sollte, und dass für alle Kanäle stets dieselben Schrittvorgaben │ │ │ │ │ gelten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 408 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 6.12: Pluto-Step-Timings │ │ │ │ │ │ │ │ │ │ 6.13.3.4 HAL-Funktionen, Pins und Parameter │ │ │ │ │ Eine Liste aller loadrt-Argumente, HAL-Funktionsnamen, Pin-Namen und Parameter-Namen findet │ │ │ │ │ @@ -21336,15 +21336,15 @@ │ │ │ │ │ Diese Komponente wird mit dem halcmd-Befehl ”loadusr” geladen: │ │ │ │ │ loadusr -Wn pmx485 pmx485 /dev/ttyUSB0 │ │ │ │ │ │ │ │ │ │ Dadurch wird die pmx485-Komponente über den Port /dev/ttyUSB0 geladen und gewartet, bis sie │ │ │ │ │ bereit ist. │ │ │ │ │ Es ist erforderlich, den für die Kommunikation zu verwendenden Anschluss zu benennen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 409 / 1331 │ │ │ │ │ │ │ │ │ │ 6.14.1 Pins │ │ │ │ │ • pmx485.mode-set (bit, in) # set cutting mode │ │ │ │ │ • pmx485.current-set (bit, in) # set cutting current │ │ │ │ │ • pmx485.pressure-set (bit, in) # set gas pressure │ │ │ │ │ @@ -21375,15 +21375,15 @@ │ │ │ │ │ • Setzen Sie alle Set-Pins auf Null: mode-set, current-set und pressure-set. │ │ │ │ │ • Trennen Sie das Powermax-Netzteil für etwa 30 Sekunden von der Stromquelle. Wenn Sie das System wieder einschalten, befindet es sich nicht mehr im Remote-Modus. │ │ │ │ │ │ │ │ │ │ 6.14.3 Referenz: │ │ │ │ │ • Hypertherm Anwendungshinweis #807220 │ │ │ │ │ ”Powermax45 XP/65/85/105/125® Serielles Kommunikationsprotokoll” │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 410 / 1331 │ │ │ │ │ │ │ │ │ │ 6.15 Servo To Go-Treiber │ │ │ │ │ Die Servo-To-Go (STG) ist eine der ersten PC Motion Control Karten von LinuxCNC unterstützt. Es ist │ │ │ │ │ eine ISA-Karte und es gibt in verschiedenen Varianten (alle von diesem Treiber unterstützt). Die Karte │ │ │ │ │ enthält bis zu 8 Kanäle von Quadratur-Encoder-Eingang, 8 Kanäle von analogen Ein- und Ausgängen, │ │ │ │ │ @@ -21420,15 +21420,15 @@ │ │ │ │ │ Dieses Beispiel installiert den Treiber und versucht, die Kartenadresse und das Kartenmodell automatisch zu erkennen. Es installiert standardmäßig 8 Achsen zusammen mit einer Standard-E/AEinstellung: Port A und B sind als Eingang, Port C und D als Ausgang konfiguriert. │ │ │ │ │ │ │ │ │ │ 6.15.2 Pins │ │ │ │ │ • stg..counts - (s32) Folgt den gezählten Encoder-Ticks. │ │ │ │ │ • stg..position - (float) Gibt eine konvertierte Position aus. │ │ │ │ │ • stg..dac-value - (float) Steuert die Spannung für den entsprechenden DAC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 411 / 1331 │ │ │ │ │ │ │ │ │ │ • stg..adc-value - (float) Folgt die gemessene Spannung vom entsprechenden ADC. │ │ │ │ │ • stg.in- - (bit) Folgt einen physischen Eingangspin. │ │ │ │ │ • stg.in--not - (bit) Folgt einem physischen Eingangspin, aber invertiert. │ │ │ │ │ • stg.out- - (Bit) Treibt einen physischen Ausgangspin an │ │ │ │ │ @@ -21454,15 +21454,15 @@ │ │ │ │ │ • stg.capture-position - Liest die Encoder-Zähler von der Achse . │ │ │ │ │ • stg.write-dacs - Schreibt die Spannungen in die DACs. │ │ │ │ │ • stg.read-adcs - Liest die Spannungen von den ADCs. │ │ │ │ │ • stg.di-read - Liest physische In-Pins aller Ports und aktualisiert alle HAL In- und In- nicht │ │ │ │ │ Pins. │ │ │ │ │ • stg.do-write - Liest alle HAL out- Pins und aktualisiert alle physischen Ausgangspins. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 412 / 1331 │ │ │ │ │ │ │ │ │ │ 6.16 Shuttle │ │ │ │ │ 6.16.1 Beschreibung │ │ │ │ │ Shuttle ist eine Nicht-Echtzeit-HAL-Komponente, die Schnittstellen Contour Design’s ShuttleXpress, │ │ │ │ │ ShuttlePRO, und ShuttlePRO2 Geräte mit LinuxCNC’s HAL. │ │ │ │ │ @@ -21494,15 +21494,15 @@ │ │ │ │ │ │ │ │ │ │ 6.16.3 Pins │ │ │ │ │ All HAL pin names are prefixed with shuttle followed by the index of the device (the order in which │ │ │ │ │ the driver found them), for example shuttle.0 or shuttle.2. │ │ │ │ │ .button- (bit out) │ │ │ │ │ Diese Pins sind wahr (1) wenn die Schaltfläche gedrückt wird. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 413 / 1331 │ │ │ │ │ │ │ │ │ │ .button--not (bit out) │ │ │ │ │ Diese Pins haben den umgekehrten Zustand des Buttons, also sind sie True (1) wenn der Button │ │ │ │ │ nicht gedrückt wird. │ │ │ │ │ .counts (s32 out) │ │ │ │ │ @@ -21538,15 +21538,15 @@ │ │ │ │ │ Debugging can be toggled by sending a USR1 signal to the vfs11_vfd process. Modbus debugging can │ │ │ │ │ be toggled by sending a USR2 signal to vfs11_vfd process (example: kill -USR1 ̀ │ │ │ │ │ pidof vfs11_vfd ̀ │ │ │ │ │ ). │ │ │ │ │ Anmerkung │ │ │ │ │ Bei seriellen Konfigurationsfehlern kann das Einschalten von verbose zu einer Flut von TimeoutFehlern führen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 414 / 1331 │ │ │ │ │ │ │ │ │ │ 6.17.2 Pins │ │ │ │ │ Dabei steht für vfs11_vfd oder den beim Laden mit der Option -n angegebenen Namen. │ │ │ │ │ • .acceleration-pattern (bit, in) when true, set acceleration and deceleration times as defined │ │ │ │ │ in registers F500 and F501 respectively. Used in PID loops to choose shorter ramp times to avoid │ │ │ │ │ @@ -21582,15 +21582,15 @@ │ │ │ │ │ • .output-voltage-percentage (float, out) vom VFD │ │ │ │ │ • .output-voltage (float, out) vom VFD │ │ │ │ │ • .speed-command (float, in) an den VFD gesendete Geschwindigkeit in U/min. Es ist ein Fehler, │ │ │ │ │ eine Geschwindigkeit zu senden, die höher ist als die im VFD eingestellte Motor Max RPM │ │ │ │ │ • .spindle-fwd (bit, in) 1 für FWD (engl. kurz für vorwärts) und 0 für REV (engl. kurz für rückwärts), gesendet an VFD │ │ │ │ │ • .spindle-on (bit, in) 1 für EIN und 0 für AUS an den VFD gesendet, nur bei Betrieb eingeschaltet │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 415 / 1331 │ │ │ │ │ │ │ │ │ │ • .spindle-rev (bit, in) 1 für EIN und 0 für AUS, nur bei Betrieb eingeschaltet │ │ │ │ │ • .jog-mode (bit, in) 1 for ON and 0 for OFF, enables the VF-S11 jog mode. Speed control is │ │ │ │ │ disabled, and the output frequency is determined by register F262 (preset to 5 Hz). This might be │ │ │ │ │ useful for spindle orientation. In normal mode, the VFD shuts off if the frequency drops below 12 │ │ │ │ │ @@ -21625,15 +21625,15 @@ │ │ │ │ │ # TCP-Server - Warten Sie auf eingehende Verbindung │ │ │ │ │ TYP=tcpserver │ │ │ │ │ # tcp portnumber für TYPE=tcpserver oder tcpclient │ │ │ │ │ PORT=1502 │ │ │ │ │ # TCP-Client - aktive ausgehende Verbindung │ │ │ │ │ TYPE=tcpclient │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ # Ziel, zu dem eine Verbindung aufgebaut werden soll if TYPE=tcpclient │ │ │ │ │ TCPDEST=192.168.1.1 │ │ │ │ │ ---------- nur sinnvoll, wenn TYPE=rtu ------# serial device detail │ │ │ │ │ # 5 6 7 8 │ │ │ │ │ BITS= 5 │ │ │ │ │ # even odd none │ │ │ │ │ @@ -21675,15 +21675,15 @@ │ │ │ │ │ net vfs11-fwd spindle-vfd.spindle-fwd <= spindle.0.forward │ │ │ │ │ net vfs11-rev spindle-vfd.spindle-rev <= spindle.0.reverse │ │ │ │ │ # Verbinden des Pins ”Spindel ein” mit dem VF-S11 │ │ │ │ │ net vfs11-run spindle-vfd.spindle-on <= spindle.0.on │ │ │ │ │ │ │ │ │ │ 416 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 417 / 1331 │ │ │ │ │ │ │ │ │ │ # Verbinden des VF-S11-auf-Geschwindigkeit-Pins │ │ │ │ │ net vfs11-at-speed spindle.0.at-speed <= spindle-vfd.at-speed │ │ │ │ │ # Verbinden der Spindeldrehzahl-Pins │ │ │ │ │ net vfs11-RPM spindle-vfd.speed-command <= spindle.0.speed-out │ │ │ │ │ @@ -21722,15 +21722,15 @@ │ │ │ │ │ 6.17.8 Konfigurieren des VFS11 VFD für die Modbus-Nutzung │ │ │ │ │ 6.17.8.1 Anschließen der seriellen Schnittstelle │ │ │ │ │ The VF-S11 has an RJ-45 jack for serial communication. Unfortunately, it does not have a standard │ │ │ │ │ RS-232 plug and logic levels. The Toshiba-recommended way is: connect the USB001Z USB-to-serial │ │ │ │ │ conversion unit to the drive, and plug the USB port into the PC. A cheaper alternative is a homebrew │ │ │ │ │ interface ( hints from Toshiba support, circuit diagram). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 418 / 1331 │ │ │ │ │ │ │ │ │ │ Hinweis: Der 24-V-Ausgang des VFD hat keinen Kurzschlussschutz. │ │ │ │ │ Die Werkseinstellungen für die serielle Schnittstelle sind 9600/8/1/gerade, das Protokoll ist standardmäßig das proprietäre Toshiba Inverter Protocol”. │ │ │ │ │ 6.17.8.2 Modbus-Einrichtung │ │ │ │ │ Several parameters need setting before the VF-S11 will talk to this module. This can either be done │ │ │ │ │ @@ -21750,15 +21750,15 @@ │ │ │ │ │ (Precise Pengolin). Moreover, these packages lack support for the MODBUS_RTS_MODE_* flags. Therefore, building vfs11_vfd using this library might generate a warning if RTS_MODE= is specified in │ │ │ │ │ the INI file. │ │ │ │ │ Um die volle Funktionalität auf Ubuntu Lucid und Precise zu nutzen: │ │ │ │ │ • Entfernen Sie die libmodbus-Pakete: sudo apt-get remove libmodbus5 libmodbus-dev │ │ │ │ │ • erstellen und installieren Sie libmodbus Version 3 aus den Quellen, wie unter hier beschrieben. │ │ │ │ │ Libmodbus kann nicht auf Ubuntu Hardy gebaut werden, daher ist vfs11_vfd auf Hardy nicht verfügbar. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 419 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 7 │ │ │ │ │ │ │ │ │ │ Hardware-Beispiele │ │ │ │ │ 7.1 PCI-Parallelport │ │ │ │ │ @@ -21789,15 +21789,15 @@ │ │ │ │ │ und fügte dann die folgenden Zeilen hinzu, damit der Parport gelesen und geschrieben werden kann: │ │ │ │ │ addf parport.1.read base-thread │ │ │ │ │ addf parport.1.write base-thread │ │ │ │ │ │ │ │ │ │ Nachdem Sie die obigen Schritte durchgeführt haben, starten Sie mit dieser Konfiguration und überprüfen Sie, ob im Fenster Maschine/HAL-Konfiguration angezeigt wird, dass die parallele Schnittstelle │ │ │ │ │ geladen wurde. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 420 / 1331 │ │ │ │ │ │ │ │ │ │ 7.2 Spindelsteuerung │ │ │ │ │ LinuxCNC kann bis zu 8 Spindeln steuern. Die Anzahl wird in der INI-Datei eingestellt. Die Beispiele │ │ │ │ │ unten beziehen sich alle auf eine Einspindelkonfiguration mit Spindelsteuerungspins mit Namen wie │ │ │ │ │ spindle.0... Im Falle einer Mehrspindelmaschine ist alles, was sich ändert, dass zusätzliche Pins mit │ │ │ │ │ @@ -21836,15 +21836,15 @@ │ │ │ │ │ │ │ │ │ │ 7.2.3 Spindle Enable │ │ │ │ │ Wenn Sie ein Spindelaktivierungssignal benötigen, verknüpfen Sie Ihren Ausgangspin mit spindle.0.on. │ │ │ │ │ Um diese Pins mit einem Parallelport-Pin zu verknüpfen, fügen Sie etwas wie das Folgende in Ihre .halDatei ein, wobei Sie darauf achten, dass Sie den Pin auswählen, der mit Ihrem Steuergerät verbunden │ │ │ │ │ ist. │ │ │ │ │ net spindle-enable spindle.0.on => parport.0.pin-14-out │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 421 / 1331 │ │ │ │ │ │ │ │ │ │ 7.2.4 Spindle Direction │ │ │ │ │ Wenn Sie die Kontrolle über die Drehrichtung Ihrer Spindel haben, dann werden die HAL-Pins spindle.N.forward und spindle. N.reverse durch die G-Codes M3 und M4 gesteuert. Die Spindeldrehzahl Sn │ │ │ │ │ muss auf einen positiven Wert ungleich Null eingestellt werden, damit M3/M4 die Spindelbewegung │ │ │ │ │ einschalten kann. │ │ │ │ │ @@ -21882,15 +21882,15 @@ │ │ │ │ │ # (maximale Spindelbeschleunigung/-verzögerung in Einheiten pro Sekunde) │ │ │ │ │ setp spindle-ramp.maxv 60 │ │ │ │ │ # Die Spindeldrehzahl an die Spindelrampe umlenken │ │ │ │ │ net spindle-cmd <= spindle.0.speed-out => spindle-ramp.in │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 422 / 1331 │ │ │ │ │ │ │ │ │ │ # die Ausgabe der Spindelrampe wird an die Sklaierung gesendet │ │ │ │ │ net spindle-ramped <= spindle-ramp.out => scale.0.in │ │ │ │ │ # um zu wissen, wann die Bewegung beginnen soll, senden wir die Nahkomponente │ │ │ │ │ # (namens spindle-at-speed) an die Spindeldrehzahl aus │ │ │ │ │ @@ -21930,15 +21930,15 @@ │ │ │ │ │ wurden. Das nächste verfügbare Messgerät, das wir an der Spindel anbringen können, wäre also Nummer 3. Ihre Situation │ │ │ │ │ kann davon abweichen │ │ │ │ │ 2 Der HAL-Encoder index-enable ist eine Ausnahme von der Regel, da er sich sowohl als Eingang als auch als Ausgang │ │ │ │ │ verhält, siehe den Abschnitt zu Encodern für Details │ │ │ │ │ 3 Weil wir oben non-quadrature simple counting… ausgewählt haben, können wir mit quadrature counting auskommen, ohne │ │ │ │ │ einen B-Quadratureingang zu haben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 423 / 1331 │ │ │ │ │ │ │ │ │ │ net spindle-index-enable encoder.3.index-enable <=> spindle.0.index-enable │ │ │ │ │ # Verbinden Sie die HAL-Encodereingänge mit dem realen Encoder. │ │ │ │ │ net spindle-phase-a encoder.3.phase-A <= parport.0.pin-10-in │ │ │ │ │ net spindle-phase-b encoder.3.phase-B │ │ │ │ │ @@ -21978,15 +21978,15 @@ │ │ │ │ │ von CNC4PC verwendet, die an einen zweiten parallelen Port angeschlossen ist, der in den PCISteckplatz gesteckt wird. Dieses Beispiel bietet Ihnen 3 Achsen mit 3 Schrittweiten von 0,1, 0,01, │ │ │ │ │ 0,001 │ │ │ │ │ Fügen Sie in Ihrer Datei custom.hal oder jog.hal Folgendes hinzu, wobei Sie sicherstellen müssen, │ │ │ │ │ dass Sie nicht bereits mux4 oder einen Encoder verwenden. Falls doch, erhöhen Sie einfach die Anzahl │ │ │ │ │ und ändern Sie die Referenznummern. Weitere Informationen über mux4 und encoder finden Sie im │ │ │ │ │ HAL-Handbuch oder in der Manpage. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 424 / 1331 │ │ │ │ │ │ │ │ │ │ Weitere Informationen zum Hinzufügen einer HAL-Datei finden Sie im Abschnitt INI HAL der Dokumentation. Für jedes Gelenk und alle Koordinatenbuchstaben sind Jog-Management-Pins vorgesehen. │ │ │ │ │ In diesem Beispiel werden die Achsen-Jogging-Pins für das Jogging im Weltmodus verwendet. Bei Maschinen mit nicht-identischen Kinematiken müssen möglicherweise zusätzliche Verbindungen für das │ │ │ │ │ Jogging im Gelenkmodus verwendet werden. │ │ │ │ │ jog.hal │ │ │ │ │ @@ -22032,15 +22032,15 @@ │ │ │ │ │ net encoder-counts => axis.x.jog-counts │ │ │ │ │ net encoder-counts => axis.y.jog-counts │ │ │ │ │ net encoder-counts => axis.z.jog-counts │ │ │ │ │ │ │ │ │ │ Wenn die Maschine zu einer hohen Beschleunigung fähig ist, um die Bewegungen für jeden Klick des │ │ │ │ │ MPG zu glätten, verwenden Sie die Komponente ilowpass, um die Beschleunigung zu begrenzen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 425 / 1331 │ │ │ │ │ │ │ │ │ │ jog.hal mit ilowpass │ │ │ │ │ loadrt encoder num_chan=1 │ │ │ │ │ loadrt mux4 count=1 │ │ │ │ │ addf encoder.capture-position servo-thread │ │ │ │ │ @@ -22089,15 +22089,15 @@ │ │ │ │ │ # Nur die ausgewählte Achse wird verschoben. │ │ │ │ │ net encoder-counts <= ilowpass.0.out │ │ │ │ │ net encoder-counts => axis.x.jog-counts │ │ │ │ │ net encoder-counts => axis.y.jog-counts │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 426 / 1331 │ │ │ │ │ │ │ │ │ │ net encoder-counts => axis.z.jog-counts │ │ │ │ │ │ │ │ │ │ 7.4 GS2 Spindel │ │ │ │ │ 7.4.1 Beispiel │ │ │ │ │ @@ -22134,15 +22134,15 @@ │ │ │ │ │ │ │ │ │ │ • P4.00 (Quelle des Frequenzbefehls) muss auf ”Frequenz bestimmt durch RS232C/RS485-Kommunikations │ │ │ │ │ eingestellt werden, 05. │ │ │ │ │ • P9.01 (Übertragungsgeschwindigkeit) muss auf 9600 Baud eingestellt werden, 01. │ │ │ │ │ • P9.02 (Kommunikationsprotokoll) muss auf ”Modbus RTU-Modus, 8 Datenbits, keine Parität, 2 Stoppbits” eingestellt werden, 03. │ │ │ │ │ Ein auf diesem Beispiel basierendes PyVCP-Panel ist hier. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 427 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 8 │ │ │ │ │ │ │ │ │ │ ClassicLadder │ │ │ │ │ 8.1 ClassicLadder Einführung │ │ │ │ │ @@ -22169,15 +22169,15 @@ │ │ │ │ │ Logikschaltplänen. Sie ist heute eine sehr beliebte grafische Sprache für die Programmierung speicherprogrammierbarer Steuerungen (SPS). Ursprünglich wurde sie erfunden, um eine Logik zu beschreiben, die aus Relais besteht. Der Name beruht auf der Beobachtung, dass Programme in dieser │ │ │ │ │ Sprache Leitern ähneln, mit zwei vertikalen ”Schienen” und einer Reihe von horizontalen ”Sprossen” │ │ │ │ │ dazwischen. In Deutschland und anderswo in Europa ist es üblich, die Sprossen waagerecht am oberen und unteren Rand der Seite zu zeichnen, während die Sprossen senkrecht von links nach rechts │ │ │ │ │ verlaufen. │ │ │ │ │ Ein Programm in Kontaktplanlogik, auch Kontaktplan genannt, ist einem Schaltplan für eine Reihe │ │ │ │ │ von Relaisschaltungen ähnlich. Die Kontaktplanlogik ist nützlich, weil eine Vielzahl von Ingenieuren │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 428 / 1331 │ │ │ │ │ │ │ │ │ │ und Technikern sie aufgrund der Ähnlichkeit ohne viel zusätzliche Schulung verstehen und verwenden │ │ │ │ │ kann. │ │ │ │ │ Die Kontaktplanlogik wird häufig zur Programmierung von SPS verwendet, wenn eine sequenzielle Steuerung eines Prozesses oder eines Fertigungsvorgangs erforderlich ist. Die Kontaktplanlogik │ │ │ │ │ ist nützlich für einfache, aber kritische Steuerungssysteme oder für die Überarbeitung alter festverdrahteter Relaisschaltungen. Da speicherprogrammierbare Steuerungen immer ausgereifter wurden, │ │ │ │ │ @@ -22208,15 +22208,15 @@ │ │ │ │ │ Der Eingang auf der linken Seite, B0, ein Schließer, ist mit der Spule (Ausgang) auf der rechten Seite, │ │ │ │ │ Q0, verbunden. Stellen Sie sich nun vor, dass am linken Ende eine Spannung angelegt wird, weil der │ │ │ │ │ Eingang B0 aktiv wird (z. B. weil der Eingang aktiviert ist oder der Benutzer den Schließer betätigt │ │ │ │ │ hat). Die Spannung hat einen direkten Weg zur Spule (Ausgang) rechts, Q0. Infolgedessen schaltet die │ │ │ │ │ Spule Q0 (Ausgang) von 0/aus/falsch auf 1/an/wahr. Wenn der Benutzer B0 loslässt, kehrt der Ausgang │ │ │ │ │ Q0 schnell zu 0/aus/falsch zurück. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 429 / 1331 │ │ │ │ │ │ │ │ │ │ 8.1.4 Grundlegende selbsthaltende Ein-Aus-Schaltung │ │ │ │ │ Nehmen wir an, wir fügen dem obigen Beispiel einen Schalter hinzu, der immer dann schließt, wenn │ │ │ │ │ die Spule Q0 aktiv ist. Dies wäre der Fall bei einem Relais, bei dem die Spule die Schaltkontakte │ │ │ │ │ aktivieren kann, oder bei einem Schütz, bei dem es oft mehrere kleine Hilfskontakte zusätzlich zu den │ │ │ │ │ @@ -22244,15 +22244,15 @@ │ │ │ │ │ Jetzt haben wir den Taster B1 für ”Aus” oder ”Stopp” hinzugefügt. Wenn der Benutzer ihn drückt, │ │ │ │ │ wird der Kontakt zwischen der Sprosse und der Spule unterbrochen. Wenn die Spule Q0 keinen Strom │ │ │ │ │ mehr hat, geht sie auf 0/aus/falsch. Wenn die Spule Q0 erlischt, dann erlischt auch der Schalter Q0, │ │ │ │ │ so dass der ”Haltekontakt” unterbrochen oder der Stromkreis ”entsiegelt” wird. Wenn der Benutzer │ │ │ │ │ die Stopptaste loslässt, wird der Kontakt von der Sprosse zur Spule Q0 wiederhergestellt, aber die │ │ │ │ │ Sprosse ist erloschen, so dass die Spule nicht wieder eingeschaltet wird. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 430 / 1331 │ │ │ │ │ │ │ │ │ │ Diese Schaltung wird seit Jahrzehnten in praktisch jeder Maschine verwendet, die einen durch ein │ │ │ │ │ Schütz gesteuerten Drehstrommotor hat, so dass es unvermeidlich war, dass sie von Kontaktplan-/SPSProgrammierern übernommen werden würde. Es handelt sich auch um eine sehr sichere Schaltung, │ │ │ │ │ denn wenn ”Start” und ”Stopp” gleichzeitig gedrückt werden, gewinnt immer die ”Stopp”-Funktion. │ │ │ │ │ Dies ist der Grundbaustein eines Großteils der Kontaktplanprogrammierung. Wenn Sie also neu in │ │ │ │ │ @@ -22291,15 +22291,15 @@ │ │ │ │ │ 8.2.3.1 Dateien │ │ │ │ │ Typically ClassicLadder components are placed in the custom.hal file if your working from a StepConf │ │ │ │ │ generated configuration. These must not be placed in the custom_postgui.hal file or the Ladder Editor │ │ │ │ │ menu will be grayed out. │ │ │ │ │ Anmerkung │ │ │ │ │ Kontaktplan-Dateien (.clp) dürfen keine Leerzeichen im Namen enthalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 431 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.3.2 Echtzeit-Modul │ │ │ │ │ Loading the ClassicLadder real time module (classicladder_rt) is possible from a HAL file, or directly │ │ │ │ │ using a halcmd instruction. The first line loads real time the ClassicLadder module. The second line │ │ │ │ │ adds the function classicladder.0.refresh to the servo thread. This line makes ClassicLadder update │ │ │ │ │ @@ -22378,15 +22378,15 @@ │ │ │ │ │ how many HAL signed integers (+- integer range) pins are available. │ │ │ │ │ Zum Beispiel (Sie brauchen nicht alle, nur einige wenige zu ändern): │ │ │ │ │ loadrt classicladder_rt numRungs=12 numBits=100 numWords=10 │ │ │ │ │ numTimers=10 numMonostables=10 numCounters=10 numPhysInputs=10 │ │ │ │ │ numPhysOutputs=10 numArithmExpr=100 numSections=4 numSymbols=200 │ │ │ │ │ numS32in=5 numS32out=5 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 432 / 1331 │ │ │ │ │ │ │ │ │ │ Um die Standardanzahl von Objekten zu laden: │ │ │ │ │ loadrt classicladder_rt │ │ │ │ │ │ │ │ │ │ 8.2.4 Loading the ClassicLadder non-realtime module │ │ │ │ │ @@ -22416,29 +22416,29 @@ │ │ │ │ │ Die Option -w weist HAL an, die HAL-Umgebung nicht zu schließen, bevor Classic Ladder beendet ist. │ │ │ │ │ Wenn Sie zuerst ein Kontaktplanprogramm mit der Option --nogui laden und dann ClassicLadder erneut ohne Optionen laden, zeigt die GUI das zuletzt geladene Kontaktplanprogramm an. │ │ │ │ │ In AXIS können Sie die GUI über Datei/Kontaktplan-Editor… laden. │ │ │ │ │ │ │ │ │ │ 8.2.5 ClassicLadder GUI │ │ │ │ │ If you load ClassicLadder with the GUI it will display two windows: Section display, and section manager. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 433 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.5.1 Sektions-Manager │ │ │ │ │ Wenn Sie ClassicLadder zum ersten Mal starten, sehen Sie ein leeres Fenster des Abschnittsmanagers. │ │ │ │ │ │ │ │ │ │ Abbildung 8.1: Sections Manager Standardfenster │ │ │ │ │ This window allows you to name, create or delete sections and choose what language that section │ │ │ │ │ uses. This is also how you name a subroutine for call coils. │ │ │ │ │ 8.2.5.2 Abschnittsanzeige │ │ │ │ │ Wenn Sie ClassicLadder zum ersten Mal starten, sehen Sie ein leeres Abschnittsanzeigefenster. Es │ │ │ │ │ wird eine leere Sprosse angezeigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 434 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.2: Standardfenster der Abschnittsanzeige │ │ │ │ │ Die meisten Buttons sind selbsterklärend: │ │ │ │ │ Die Button Vars dient zur Anzeige von Variablen. Sie können sie umschalten, um das eine, das andere, │ │ │ │ │ beide oder keines der Fenster anzuzeigen. │ │ │ │ │ @@ -22455,15 +22455,15 @@ │ │ │ │ │ the first %W (in an equation). You might see some funny labels, such as (103) in the rungs. This is │ │ │ │ │ displayed (on purpose) because of an old bug- when erasing elements older versions sometimes didn’t │ │ │ │ │ erase the object with the right code. You might have noticed that the long horizontal connection button │ │ │ │ │ sometimes did not work in the older versions. This was because it looked for the free code but found │ │ │ │ │ something else. The number in the brackets is the unrecognized code. The ladder program will still │ │ │ │ │ work properly, to fix it erase the codes with the editor and save the program. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 435 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.5.3 Die Variablenfenster │ │ │ │ │ This are two variable windows: the Bit Status Window (boolean) and the Watch Window (signed integer). The Vars button is in the Section Display Window, toggle the Vars button to display one, the │ │ │ │ │ other, both, then none of the variable windows. │ │ │ │ │ │ │ │ │ │ @@ -22474,27 +22474,27 @@ │ │ │ │ │ areas at the top allow you to select what 15 variables will be displayed in each column. For instance, │ │ │ │ │ if the %B Variable column were 15 entries high, and you entered 5 at the top of the column, variables │ │ │ │ │ %B5 to %B19 would be displayed. The check boxes allow you to set and unset %B variables manually │ │ │ │ │ as long as the ladder program isn’t setting them as outputs. Any Bits that are set as outputs by the │ │ │ │ │ program when ClassicLadder is running can not be changed and will be displayed as checked if on │ │ │ │ │ and unchecked if off. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 436 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.4: Schaufenster │ │ │ │ │ The Watch Window displays variable status. The edit box beside it is the number stored in the variable │ │ │ │ │ and the drop-down box beside that allow you to choose whether the number to be displayed in hex, │ │ │ │ │ decimal or binary. If there are symbol names defined in the symbols window for the word variables │ │ │ │ │ showing and the display symbols checkbox is checked in the section display window, symbol names │ │ │ │ │ will be displayed. To change the variable displayed, type the variable number, e.g. %W2 (if the display symbols check box is not checked) or type the symbol name (if the display symbols checkbox is │ │ │ │ │ checked) over an existing variable number/name and press the Enter Key. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 437 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.5.4 Symbol-Fenster │ │ │ │ │ │ │ │ │ │ Abbildung 8.5: Fenster mit Symbolnamen │ │ │ │ │ This is a list of symbol names to use instead of variable names to be displayed in the section window │ │ │ │ │ @@ -22502,30 +22502,30 @@ │ │ │ │ │ and capital letters), symbol name. If the variable can have a HAL signal connected to it (%I, %Q, and │ │ │ │ │ %W-if you have loaded s32 pin with the real time module) then the comment section will show the │ │ │ │ │ current HAL signal name or lack thereof. Symbol names should be kept short to display better. Keep │ │ │ │ │ in mind that you can display the longer HAL signal names of %I, %Q and %W variable by clicking on │ │ │ │ │ them in the section window. Between the two, one should be able to keep track of what the ladder │ │ │ │ │ program is connected to! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 438 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.5.5 Das Editor-Fenster │ │ │ │ │ │ │ │ │ │ Abbildung 8.6: Editor-Fenster │ │ │ │ │ • Hinzufügen (engl. add) - fügt eine Sprosse nach der ausgewählten Sprosse hinzu │ │ │ │ │ • Einfügen (engl. insert) - fügt eine Sprosse vor der ausgewählten Sprosse ein │ │ │ │ │ • Löschen (engl. delete) - löscht die ausgewählte Sprosse │ │ │ │ │ • Bearbeiten (engl. modify) - öffnet die ausgewählte Sprosse zur Bearbeitung │ │ │ │ │ Beginnend mit dem Bild oben links: │ │ │ │ │ • Objektauswahl, Radiergummi │ │ │ │ │ • N.O. Input, N.C. Input, Rising Edge Input, Falling Edge Input │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 439 / 1331 │ │ │ │ │ │ │ │ │ │ • Horizontal Connection, Vertical Connection, Long Horizontal Connection │ │ │ │ │ • Timer IEC-Block, Zähler (engl. counter-)block, Vergleichsvariable │ │ │ │ │ • Alter Timer-Block, alter monostabiler Block (diese wurden durch den IEC-Timer ersetzt) │ │ │ │ │ • SPULEN (engl. coils) - N.O. Ausgang, N.C. Ausgang, den Ausgang setzen, Ausgang zurücksetzen │ │ │ │ │ @@ -22556,21 +22556,21 @@ │ │ │ │ │ %W1=%W2. Compare cannot be placed in the right most side of the section display. │ │ │ │ │ • Variable Assignment - creates an assignment block so you to assign values to variables, e.g. %W2=7 │ │ │ │ │ or %W1=%W2. ASSIGNMENT functions can only be placed at the right most side of the section display. │ │ │ │ │ 8.2.5.6 Konfigurationsfenster │ │ │ │ │ Das Konfigurationsfenster zeigt den aktuellen Projektstatus und enthält die Registerkarten für die │ │ │ │ │ Modbus-Einrichtung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 440 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.7: Konfigurationsfenster │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 441 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.6 SPS Objekte │ │ │ │ │ 8.2.6.1 KONTAKTE │ │ │ │ │ Stellen Schalter oder Relaiskontakte dar. Sie werden durch den ihnen zugewiesenen variablen Buchstaben und die Nummer gesteuert. │ │ │ │ │ The variable letter can be B, I, or Q and the number can be up to a three digit number, e.g. %I2, │ │ │ │ │ @@ -22605,15 +22605,15 @@ │ │ │ │ │ • TP - Wenn der Timer-Eingang auf wahr gepulst oder wahr gehalten wird, setzt der Timer den Ausgang auf wahr, bis der Timer herunterzählt. (einmalig) │ │ │ │ │ The time intervals can be set in multiples of 100&8239;ms, seconds, or minutes. │ │ │ │ │ Es gibt auch Variablen für IEC-Timer, die in Vergleichs- oder Betriebsblöcken gelesen und/oder beschrieben werden können. │ │ │ │ │ • %TMxxx.Q - Timer beendet (Boolesch, Lesen/Schreiben) │ │ │ │ │ • %TMxxx.P - Timer-Voreinstellung (Lesen/Schreiben) │ │ │ │ │ • %TMxxx.V - Timer-Wert (lesender Schreibvorgang) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 442 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.6.3 ZEITGLIEDER (engl. timers) │ │ │ │ │ Repräsentiert Countdown-Timer. Dies ist veraltet und wird durch IEC Timers ersetzt. │ │ │ │ │ Timer haben 4 Kontakte. │ │ │ │ │ • E - aktivieren (engl. enable) (Eingang) startet den Timer, wenn wahr, setzt zurück, wenn er falsch │ │ │ │ │ @@ -22640,15 +22640,15 @@ │ │ │ │ │ milliseconds, seconds, or minutes. │ │ │ │ │ Es gibt auch Variablen für Kippstufen, die in Vergleichs- oder Operationsblöcken gelesen und/oder │ │ │ │ │ beschrieben werden können. │ │ │ │ │ • %Mxx.R - Kippstufe xx läuft (boolesch, nur lesbar) │ │ │ │ │ • %Mxx.V - Monostabiler xx aktueller Wert (ganze Zahl, schreibgeschützt) │ │ │ │ │ • %Mxx.P - Monostabile xx-Voreinstellung (Ganzzahl, Lesen oder Schreiben) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 443 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.6.5 ZÄHLER (engl. counters) │ │ │ │ │ Aufwärts-/Abwärtszähler darstellen. │ │ │ │ │ Es gibt 7 Kontakte: │ │ │ │ │ • R - reset (Eingabe) setzt die Anzahl auf 0 zurück. │ │ │ │ │ @@ -22673,15 +22673,15 @@ │ │ │ │ │ • +, -, *, /, = (standard math symbols) │ │ │ │ │ • < (less than), > (greater than), <= (less or equal), >= (greater or equal), <> (not equal) │ │ │ │ │ • (, ) separate into groups example %IF1=2,&%IF2<5 in pseudo code translates to if %IF1 is equal to │ │ │ │ │ 2 and %IF2 is less than 5 then the comparison is true. Note the comma separating the two groups │ │ │ │ │ of comparisons. │ │ │ │ │ • ^ (exponent), % (modulus), & (and), | (or),. • ABS (absolute), MOY (French for average), AVG (average) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 444 / 1331 │ │ │ │ │ │ │ │ │ │ Zum Beispiel ABS(%W2)=1, MOY(%W1,%W2)<3. │ │ │ │ │ No spaces are allowed in the comparison equation. For example %C0.V>%C0.P is a valid comparison │ │ │ │ │ expression while %C0.V > %CO.P is not a valid expression. │ │ │ │ │ There is a list of Variables down the page that can be used for reading from and writing to ladder │ │ │ │ │ @@ -22713,23 +22713,23 @@ │ │ │ │ │ when LinuxCNC is started. │ │ │ │ │ │ │ │ │ │ The following figure shows an Assignment and a Comparison Example. %QW0 is a S32out bit and │ │ │ │ │ %IW0 is a S32in bit. In this case the HAL pin classicladder.0.s32out-00 will be set to a value of │ │ │ │ │ 5 and when the HAL pin classicladder.0.s32in-00 is 0 the HAL pin classicladder.0.out-00 will │ │ │ │ │ be set to True. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 8.8: Beispiel für Zuordnen/Vergleichen von mit SPS │ │ │ │ │ │ │ │ │ │ Abbildung 8.9: Beispiel für einen Zuweisungsausdruck │ │ │ │ │ │ │ │ │ │ 445 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 446 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.10: Beispiel für einen Vergleichsausdruck │ │ │ │ │ │ │ │ │ │ 8.2.6.8 SPULEN (engl. coils) │ │ │ │ │ Spulen stellen Relaisspulen dar. Sie werden durch den ihnen zugewiesenen variablen Buchstaben und │ │ │ │ │ @@ -22756,15 +22756,15 @@ │ │ │ │ │ Warnung │ │ │ │ │ Wenn Sie einen NC-Kontakt mit einer NC-Spule verwenden, funktioniert die Logik (wenn die │ │ │ │ │ Spule erregt ist, wird der Kontakt geschlossen), aber das ist wirklich schwer zu verstehen! │ │ │ │ │ │ │ │ │ │ Eine JUMP COIL wird verwendet, um zu einem anderen Abschnitt zu springen, wie ein goto in der │ │ │ │ │ Programmiersprache BASIC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 447 / 1331 │ │ │ │ │ │ │ │ │ │ If you look at the top left of the sections display window you will see a small label box and a longer │ │ │ │ │ comment box beside it. Now go to Editor→Modify then go back to the little box, type in a name. │ │ │ │ │ Go ahead and add a comment in the comment section. This label name is the name of this rung only │ │ │ │ │ and is used by the JUMP COIL to identify where to go. │ │ │ │ │ @@ -22805,15 +22805,15 @@ │ │ │ │ │ • %TM ̀ │ │ │ │ │ __xxx__.V ̀ - Timer xxx value (integer, read write) │ │ │ │ │ • %M ̀ │ │ │ │ │ __xx__.R ̀ - Monostable xx running (Boolean) │ │ │ │ │ • %M ̀ │ │ │ │ │ __xx__.V ̀ - Monostable xx current value (integer, user read only) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 448 / 1331 │ │ │ │ │ │ │ │ │ │ • %M ̀ │ │ │ │ │ __xx__.P ̀ - Monostable xx preset (integer) │ │ │ │ │ • %C ̀ │ │ │ │ │ __xx__.D ̀ - Counter xx done (Boolean, user read only) │ │ │ │ │ @@ -22856,15 +22856,15 @@ │ │ │ │ │ This is the SEQUENTIAL editor window. (Starting from the top left): │ │ │ │ │ Selector arrow, Eraser │ │ │ │ │ Ordinary step, Initial (Starting) step │ │ │ │ │ Transition, Step and Transition │ │ │ │ │ Transition Link-Downside, Transition Link-Upside │ │ │ │ │ Pass-through Link-Downside, Pass-through Link-Upside Jump │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 449 / 1331 │ │ │ │ │ │ │ │ │ │ Link, Comment Box │ │ │ │ │ │ │ │ │ │ Abbildung 8.11: Fenster des Sequenzeditors │ │ │ │ │ • ORDINARY STEP - hat für jeden eine eindeutige Nummer │ │ │ │ │ @@ -22876,15 +22876,15 @@ │ │ │ │ │ • PASS-THROUGH-LINK-DOWNSIDE - teilt den Logikfluss in zwei Zeilen auf, dass BEIDE wahr sein │ │ │ │ │ müssen, um fortzufahren (Think AND logic) │ │ │ │ │ • PASS-THROUGH-LINK-UPSIDE - kombiniert zwei gleichzeitige (UND logische) Logiklinien wieder │ │ │ │ │ zusammen │ │ │ │ │ • JUMP LINK - verbindet Schritte, die nicht untereinander liegen, z. B. das Verbinden des letzten │ │ │ │ │ Schritts mit dem ersten │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 450 / 1331 │ │ │ │ │ │ │ │ │ │ • COMMENT BOX - wird verwendet, um Kommentare hinzuzufügen │ │ │ │ │ To use links, you must have steps already placed. Select the type of link, then select the two steps or │ │ │ │ │ transactions one at a time. It takes practice! │ │ │ │ │ With sequential programming: The variable %X ̀ │ │ │ │ │ @@ -22918,21 +22918,21 @@ │ │ │ │ │ • 6 - Einzelnes Register schreiben │ │ │ │ │ • 8 - Echo-Test │ │ │ │ │ • 15 - mehrere Spulen schreiben │ │ │ │ │ • 16 - mehrere Register schreiben │ │ │ │ │ If you do not specify a --modmaster when loading the ClassicLadder non-realtime program this page │ │ │ │ │ will not be displayed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 8.12: Modbus I/O-Konfiguration │ │ │ │ │ │ │ │ │ │ 451 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 452 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.13: Modbus-Kommunikationskonfiguration │ │ │ │ │ • SERIAL PORT - For IP blank. For serial the location/name of serial driver, e.g., /dev/ttyS0 ( or /dev/ttyUSB0 for a USB-to-serial converter). │ │ │ │ │ • SERIAL SPEED - Sollte auf Geschwindigkeit eingestellt sein, für die der Slave eingestellt ist - 300, │ │ │ │ │ 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 werden unterstützt. │ │ │ │ │ @@ -22944,15 +22944,15 @@ │ │ │ │ │ Slave nicht geantwortet hat. │ │ │ │ │ • MODBUS ELEMENT OFFSET - wird verwendet, um die Elementnummern um 1 zu kompensieren │ │ │ │ │ (für Hersteller, die Unterschiede nummerieren). │ │ │ │ │ • DEBUG LEVEL - Setzen Sie dies auf 0-3 (0, um das Drucken von Debug-Informationen neben NoResponse-Fehlern zu stoppen). │ │ │ │ │ • READ COILS/INPUTS MAP TO - Wählen Sie, welche Variablen die gelesenen Spulen/Eingänge aktualisieren sollen. (B oder Q). │ │ │ │ │ • WRITE COILS MAP TO - Wählen Sie aus, von welchen Variablen, von denen Schreibspulen aktualisiert werden sollen (B, Q oder I). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 453 / 1331 │ │ │ │ │ │ │ │ │ │ • READ REGISTERS/HOLDING - Wählen Sie aus, welche Variablen durch das Lesen von Registern │ │ │ │ │ aktualisiert werden sollen (W oder QW). │ │ │ │ │ • WRITE REGISTERS MAP TO - Wählen Sie aus, von welchen Variablen die Leseregister aktualisiert │ │ │ │ │ werden (W, QW oder IW). │ │ │ │ │ @@ -22990,15 +22990,15 @@ │ │ │ │ │ Schließen des Konfigurationsfensters werden die Werte übernommen, die Radio-Buttons gelten jedoch │ │ │ │ │ sofort). │ │ │ │ │ To use the echo function select the echo function and add the slave number you wish to test. You don’t │ │ │ │ │ need to specify any variables. │ │ │ │ │ The number 257 will be sent to the slave number you specified and the slave should send it back. You │ │ │ │ │ will need to have ClassicLadder running in a terminal to see the message. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 454 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.10 MODBUS-Einstellungen │ │ │ │ │ Seriell: │ │ │ │ │ • ClassicLadder verwendet das RTU-Protokoll (nicht ASCII). │ │ │ │ │ • 8 Datenbits, keine Parität und 1 Stoppbit werden auch als 8-N-1 bezeichnet. │ │ │ │ │ @@ -23029,15 +23029,15 @@ │ │ │ │ │ Weitere Informationen zum Modbus-Protokoll finden Sie im Internet. │ │ │ │ │ https://www.modbus.org/ │ │ │ │ │ 8.2.10.2 Kommunikationsfehler │ │ │ │ │ If there is a communication error, a warning window will pop up (if the GUI is running) and %E0 will │ │ │ │ │ be true. Modbus will continue to try to communicate. The %E0 could be used to make a decision based │ │ │ │ │ on the error. A timer could be used to stop the machine if timed out, etc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 455 / 1331 │ │ │ │ │ │ │ │ │ │ 8.2.11 Fehlersuche bei Modbus-Problemen │ │ │ │ │ A good reference for the protocol: https://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf. │ │ │ │ │ If you run linuxcnc/classicladder from a terminal, it will print the Modbus commands and slave responses. │ │ │ │ │ Hier wird der ClassicLadder so eingestellt, dass er den Slave 1 auffordert, die Holding-Register (Funktionscode 3) ab Adresse 8448 (0x2100) zu lesen. Wir fordern die Rückgabe von 1 (2 Byte breiten) │ │ │ │ │ @@ -23045,15 +23045,15 @@ │ │ │ │ │ │ │ │ │ │ Abbildung 8.14: Modbus I/O-Register-Setup │ │ │ │ │ Hinweis in diesem Bild haben wir die Debug-Ebene auf 1 gesetzt, so dass Modbus-Nachrichten an das │ │ │ │ │ Terminal ausgegeben werden. Wir haben unsere Lese- und Schreibregister den %W-Variablen von │ │ │ │ │ ClassicLadder zugeordnet, so dass unsere zurückgegebenen Daten in %W2 sind, wie in dem anderen │ │ │ │ │ Bild, in dem wir die Daten ab dem 2. Element zugeordnet haben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 456 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.15: Einrichtung der Modbus-Kommunikation │ │ │ │ │ │ │ │ │ │ 8.2.11.1 Anfrage │ │ │ │ │ Betrachten wir ein Beispiel für das Lesen eines Hold-Registers bei 8448 Decimal (0x2100 Hex). │ │ │ │ │ @@ -23079,15 +23079,15 @@ │ │ │ │ │ (2 │ │ │ │ │ 1 bis 125 (0x7D) │ │ │ │ │ Bytes) │ │ │ │ │ (2 │ │ │ │ │ Automatisch │ │ │ │ │ Bytes) berechnet │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 457 / 1331 │ │ │ │ │ │ │ │ │ │ Hier ist ein Beispiel für einen gesendeten Befehl, wie er im Terminal ausgedruckt wird (alles in Hex): │ │ │ │ │ INFO CLASSICLADDERModbus I/O module to send: Lgt=8 ”py-reset” │ │ │ │ │ ”Reset” │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Starten Sie nun Ihre Konfiguration und sie sollte so aussehen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 470 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.26: AXIS Notaus │ │ │ │ │ Beachten Sie, dass Sie in diesem Beispiel wie im wirklichen Leben den ferngesteuerten Notaus (simuliert durch das Kontrollkästchen) deaktivieren müssen, bevor der AXIS Notaus oder der externe │ │ │ │ │ Reset Sie in den AUS-Modus versetzt. Wenn der Not-Aus-Schalter auf dem AXIS-Bildschirm gedrückt │ │ │ │ │ wurde, müssen Sie ihn erneut drücken, um ihn zu deaktivieren. Nach einem Notaus in AXIS können │ │ │ │ │ Sie keinen externen Reset durchführen. │ │ │ │ │ │ │ │ │ │ 8.3.4 Beispiel für Timer/Bedienung │ │ │ │ │ In diesem Beispiel verwenden wir den Operate-Block, um der Timer-Voreinstellung einen Wert zuzuweisen, der davon abhängt, ob ein Eingang ein- oder ausgeschaltet ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 471 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 8.27: Beispiel für Timer/Bedienung │ │ │ │ │ In diesem Fall ist %I0 wahr, so dass der voreingestellte Wert des Timers 10 ist. Wäre %I0 falsch, wäre │ │ │ │ │ der voreingestellte Zeitgeberwert 5. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 472 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 9 │ │ │ │ │ │ │ │ │ │ Fortgeschrittene Themen │ │ │ │ │ 9.1 Kinematik │ │ │ │ │ @@ -23451,15 +23451,15 @@ │ │ │ │ │ X, joint 1 along axis Y, joint 2 along axis Z), and these machines are called Cartesian machines (or │ │ │ │ │ machines with Trivial Kinematics). These are the most common machines used in milling, but are not │ │ │ │ │ very common in other domains of machine control (e.g. welding: puma-typed robots). │ │ │ │ │ LinuxCNC unterstützt Achsen mit Namen: X Y Z A B C U V W. Die X Y Z-Achsen beziehen sich normalerweise auf die üblichen kartesischen Koordinaten. Die A B C Achsen beziehen sich auf Rotationskoordinaten um die X Y Z Achsen. Die Achsen U V W beziehen sich auf zusätzliche Koordinaten, die │ │ │ │ │ üblicherweise kolinear zu den X-Y-Z-Achsen angeordnet sind. │ │ │ │ │ 1 Kinematics: a two way function to transform from Cartesian space to joint space. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 473 / 1331 │ │ │ │ │ │ │ │ │ │ 9.1.2 Triviale Kinematik │ │ │ │ │ Die einfachsten Maschinen sind solche, bei denen jedes Gelenk entlang einer der kartesischen Achsen angeordnet ist. Bei diesen Maschinen ist die Abbildung vom kartesischen Raum (das G-CodeProgramm) auf den Gelenkraum (die tatsächlichen Aktoren der Maschine) trivial. Es handelt sich um │ │ │ │ │ eine einfache 1:1-Abbildung: │ │ │ │ │ pos->tran.x = joints[0]; │ │ │ │ │ @@ -23510,15 +23510,15 @@ │ │ │ │ │ bewerkstelligen, sofern die verwendeten Achsenbuchstaben keine Lücken aufweisen. │ │ │ │ │ Etwas komplizierter wird es, wenn der Maschine ein oder mehrere Achsenbuchstaben fehlen. Das │ │ │ │ │ Problem der fehlenden Achsenbuchstaben wird durch die Verwendung des Modulparameters coordinates= mit dem Modul trivkins gelöst. Jeder angegebenen Koordinate werden fortlaufend Gelenknummern zugewiesen. Eine Drehmaschine kann mit coordinates=xz beschrieben werden. Die Gelenkzuweisungen lauten dann: │ │ │ │ │ 2 Wenn die Maschine (z. B. eine Drehmaschine) nur mit den X-, Z- und A-Achsen gemountet ist und die INI-Datei von LinuxCNC nur die Definition dieser 3 Verbindungen enthält, ist die vorherige Behauptung falsch. Weil wir derzeit haben (Gelenk0 = │ │ │ │ │ X, Gelenk 1 = Z, Gelenk 2 = A), die davon ausgeht, dass Gelenk 1 = Y. Um dies in LinuxCNC zum Laufen zu bringen, definieren │ │ │ │ │ Sie einfach alle Achsen (XYZA), LinuxCNC verwendet dann eine einfache Schleife in HAL für nicht verwendete Y-Achse. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 474 / 1331 │ │ │ │ │ │ │ │ │ │ joints[0] = pos->tran.x │ │ │ │ │ joints[1] = pos->tran.z │ │ │ │ │ │ │ │ │ │ Die Verwendung des Parameters coordinates= wird für Konfigurationen empfohlen, bei denen die Achsenbuchstaben weggelassen werden. Fußnote:[ In der Vergangenheit unterstützte das Modul trivkins │ │ │ │ │ @@ -23539,15 +23539,15 @@ │ │ │ │ │ 9.1.3 Nicht-triviale Kinematik │ │ │ │ │ There can be quite a few types of machine setups (robots: puma, scara; hexapods etc.). Each of them is │ │ │ │ │ set up using linear and rotary joints. These joints don’t usually match with the Cartesian coordinates, │ │ │ │ │ therefore we need a kinematics function which does the conversion (actually 2 functions: forward and │ │ │ │ │ inverse kinematics function). │ │ │ │ │ Zur Veranschaulichung der obigen Ausführungen werden wir eine einfache Kinematik namens Zweibein (eine vereinfachte Version des Dreibeins, das eine vereinfachte Version des Hexapods ist) analysieren. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 475 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.1: Zweibein-Einrichtung │ │ │ │ │ Das Zweibein (engl. bipod), um das es hier geht, besteht aus zwei Motoren, die an einer Wand angebracht sind und an denen ein Gerät mit einem Draht aufgehängt ist. Die Gelenke sind in diesem Fall │ │ │ │ │ die Abstände zwischen den Motoren und dem Gerät (in der Abbildung mit AD und BD bezeichnet). │ │ │ │ │ Die Position der Motoren ist per Konvention festgelegt. Motor A befindet sich in (0,0), was bedeutet, │ │ │ │ │ @@ -23560,15 +23560,15 @@ │ │ │ │ │ 9.1.3.1 Vorwärts-Transformation │ │ │ │ │ Um vom gemeinsamen Raum in den kartesischen Raum zu transformieren, werden wir einige trigonometrische Regeln anwenden (die rechtwinkligen Dreiecke, die durch die Punkte (0,0), (Dx,0), (Dx,Dy) │ │ │ │ │ und das Dreieck (Dx,0), (Bx,0) und (Dx,Dy) bestimmt werden). │ │ │ │ │ Wir können leicht erkennen, dass: │ │ │ │ │ │ │ │ │ │ ebenso: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 476 / 1331 │ │ │ │ │ │ │ │ │ │ Wenn wir das eine von dem anderen abziehen, erhalten wir: │ │ │ │ │ │ │ │ │ │ und deshalb: │ │ │ │ │ │ │ │ │ │ @@ -23600,15 +23600,15 @@ │ │ │ │ │ 9.1.4 Details zur Implementierung │ │ │ │ │ Ein Kinematikmodul ist als HAL-Komponente implementiert und darf Pins und Parameter exportieren. │ │ │ │ │ Es besteht aus mehreren ”C”-Funktionen (im Gegensatz zu HAL-Funktionen): │ │ │ │ │ int kinematicsForward(const double *joint, EmcPose *world, │ │ │ │ │ const KINEMATICS_FORWARD_FLAGS *fflags, │ │ │ │ │ KINEMATICS_INVERSE_FLAGS *iflags) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 477 / 1331 │ │ │ │ │ │ │ │ │ │ Implementiert die forward kinematics function. │ │ │ │ │ int kinematicsInverse(const EmcPose * world, double *joints, │ │ │ │ │ const KINEMATICS_INVERSE_FLAGS *iflags, │ │ │ │ │ KINEMATICS_FORWARD_FLAGS *fflags) │ │ │ │ │ @@ -23643,15 +23643,15 @@ │ │ │ │ │ int rtapi_app_main(void) │ │ │ │ │ void rtapi_app_exit(void) │ │ │ │ │ │ │ │ │ │ Dies sind die Standardfunktionen zum Auf- und Abbauen von RTAPI-Modulen. │ │ │ │ │ Wenn sie in einer einzigen Quelldatei enthalten sind, können Kinematikmodule mit halcompile kompiliert und installiert werden. Weitere Informationen finden Sie in der Manpage halcompile(1) oder │ │ │ │ │ im HAL-Handbuch. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 478 / 1331 │ │ │ │ │ │ │ │ │ │ 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp │ │ │ │ │ Eine weitere Möglichkeit, ein benutzerdefiniertes Kinematikmodul zu erstellen, ist die Anpassung der │ │ │ │ │ HAL Komponente userkins. Diese Vorlagenkomponente kann von einem Benutzer lokal geändert und │ │ │ │ │ mit halcompile erstellt werden. │ │ │ │ │ @@ -23681,15 +23681,15 @@ │ │ │ │ │ des Endeffektors in Bezug auf ein Referenzkoordinatensystem, wenn die Gelenkwinkel bekannt sind │ │ │ │ │ (vorwärtsgerichtete Kinematik), sowie die komplexere umgekehrte Berechnung der erforderlichen │ │ │ │ │ Gelenkwinkel für eine bestimmte Position und Ausrichtung des Endeffektors in Bezug auf das Referenzkoordinatensystem (inverse Kinematik). Die mathematischen Standardwerkzeuge, die für diese │ │ │ │ │ Berechnungen verwendet werden, sind Matrizen, d. h. Tabellen mit Parametern und Formeln, die den │ │ │ │ │ Umgang mit den Rotationen und Translationen erleichtern, die bei der Berechnung der Vorwärts- und │ │ │ │ │ Rückwärtskinematik erforderlich sind. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 479 / 1331 │ │ │ │ │ │ │ │ │ │ Detaillierte Kenntnisse der Mathematik sind für einen Serienroboter nicht erforderlich, da LinuxCNC │ │ │ │ │ ein Kinematikmodul bereitstellt, das einen Algorithmus namens ”genserkins” implementiert, um die │ │ │ │ │ Vorwärts- und Rückwärtskinematik für einen generischen Serienroboter zu berechnen. Um einen bestimmten Serienroboter zu steuern, muss genserkins mit Daten versorgt werden, so dass es ein mathematisches Modell der mechanischen Struktur des Roboters aufbauen und damit die Mathematik │ │ │ │ │ tun kann. │ │ │ │ │ @@ -23724,15 +23724,15 @@ │ │ │ │ │ system” │ │ │ │ │ 2. a : positive distance, along X, between two joint axes specified in machine units (mm or inch) │ │ │ │ │ defined in the system’s INI file. │ │ │ │ │ 3. d : positive or negative length along Z (also in machine units) │ │ │ │ │ Die Parametersätze werden immer in der gleichen Reihenfolge abgeleitet und ein Satz wird durch │ │ │ │ │ das Setzen des d-Parameters abgeschlossen. Dadurch bleibt die Z-Achse unseres CS nicht auf das │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 480 / 1331 │ │ │ │ │ │ │ │ │ │ nächste Gelenk ausgerichtet! Dies mag verwirrend erscheinen, aber wenn man sich an diese Regel │ │ │ │ │ hält, erhält man einen funktionierenden Satz von Parametern. Sobald der d-Parameter gesetzt ist, │ │ │ │ │ muss die X-Achse unseres CS auf die Achse des nächsten Gelenks zeigen. │ │ │ │ │ │ │ │ │ │ @@ -23760,87 +23760,87 @@ │ │ │ │ │ │ │ │ │ │ 9.2.8 Detailliertes Beispiel (RV-6SL) │ │ │ │ │ Im Folgenden wird eine Methode beschrieben, wie man die erforderlichen ”modifizierten DH-Parameter” │ │ │ │ │ für einen Mitsubishi RV-6SDL ableitet und wie man die Parameter in der HAL-Datei einstellt, um sie │ │ │ │ │ mit der ”genserkins”-Kinematik in LinuxCNC zu verwenden. Die erforderlichen Abmessungen werden │ │ │ │ │ am besten aus einer vom Hersteller des Roboters zur Verfügung gestellten Maßzeichnung entnommen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 481 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 482 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 483 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 484 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 485 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 486 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 487 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 488 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 489 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 490 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 491 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 492 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 493 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 494 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 495 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 496 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 497 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 498 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 499 / 1331 │ │ │ │ │ │ │ │ │ │ 9.2.9 Danksagungen │ │ │ │ │ Vielen Dank an den Benutzer Aciera für den gesamten Text und die Grafiken für den RV-6SL-Roboter! │ │ │ │ │ │ │ │ │ │ 9.3 5-Axis Kinematics │ │ │ │ │ @@ -23871,29 +23871,29 @@ │ │ │ │ │ CAD/CAM-Systeme werden in der Regel verwendet, um die 3D-CAD-Modelle des Werkstücks sowie │ │ │ │ │ die CAM-Daten für die Eingabe in die CNC-5-Achsen-Maschine zu erzeugen. Die Daten zur Werkzeugoder Fräserposition (CL) setzen sich aus der Position der Fräserspitze und der Ausrichtung des Fräsers │ │ │ │ │ relativ zum Werkstückkoordinatensystem zusammen. Zwei Vektoren, wie sie von den meisten CAMSystemen erzeugt werden und in Abb. 1 dargestellt sind, enthalten diese Informationen: │ │ │ │ │ │ │ │ │ │ Der K-Vektor entspricht dem dritten Vektor der Pose-Matrix E6 , die in der 6-Achsen-Roboterkinematik │ │ │ │ │ [3] verwendet wurde, und der Q-Vektor entspricht dem vierten Vektor von E6 . Vektor von E6 . In MASTERCAM zum Beispiel sind diese Informationen in der Zwischenausgabedatei ”.nci” enthalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 500 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.2: Standortdaten des Fräsers │ │ │ │ │ │ │ │ │ │ 9.3.4 Translations- und Rotationsmatrizen │ │ │ │ │ Homogene Transformationen bieten eine einfache Möglichkeit, die Mathematik der Mehrachsenkinematik von Maschinen zu beschreiben. Eine Transformation des Raums H ist eine 4x4-Matrix und kann │ │ │ │ │ Translations- und Rotationstransformationen darstellen. Wird ein Punkt x,y,x durch einen Vektor u = │ │ │ │ │ {x,y,z,1}T beschrieben, so wird seine Transformation v durch das Matrixprodukt │ │ │ │ │ │ │ │ │ │ Es gibt vier grundlegende Transformationsmatrizen, auf die sich die 5-Achsen-Kinematik stützen │ │ │ │ │ kann: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 501 / 1331 │ │ │ │ │ │ │ │ │ │ Die Matrix T(a,b,c) impliziert eine Verschiebung in den Koordinatenrichtungen X, Y und Z um die │ │ │ │ │ Beträge a, b bzw. c. Die R-Matrizen implizieren Rotationen des Winkels theta um die X-, Y- bzw. ZKoordinatenachse. Die Symbole ”C” und ”S” beziehen sich auf die Kosinus- bzw. Sinusfunktionen. │ │ │ │ │ │ │ │ │ │ 9.3.5 Tisch Dreh-/Schwenkkonfigurationen mit 5 Achsen (engl. Table Rotary/Tilting 5-Axis Configurations) │ │ │ │ │ @@ -23901,15 +23901,15 @@ │ │ │ │ │ montiert. Typischerweise werden zwei Formen verwendet: │ │ │ │ │ • Ein Drehtisch, der sich um die vertikale Z-Achse dreht (C-Drehung, sekundär), ist auf einem Kipptisch montiert, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, primär). Das Werkstück │ │ │ │ │ ist auf dem Drehtisch montiert. │ │ │ │ │ • Ein Kipptisch, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, sekundär), ist auf einem │ │ │ │ │ Drehtisch montiert, der sich um die Z-Achse dreht (C-Drehung, primär), wobei das Werkstück auf │ │ │ │ │ dem Kipptisch liegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 502 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.3: Allgemeine Konfiguration und Koordinatensysteme │ │ │ │ │ Eine mehrachsige Maschine kann als eine Reihe von Gliedern betrachtet werden, die durch Gelenke │ │ │ │ │ verbunden sind. Durch die Einbettung eines Koordinatenrahmens in jedes Glied der Maschine und │ │ │ │ │ die Verwendung homogener Transformationen können wir die relative Position und Orientierung zwischen diesen Koordinatenrahmen beschreiben │ │ │ │ │ @@ -23919,46 +23919,46 @@ │ │ │ │ │ Im Allgemeinen kann eine solche Transformation wie folgt aussehen: │ │ │ │ │ │ │ │ │ │ wobei jede Matrix i-1 Aj eine Translationsmatrix T oder eine Rotationsmatrix R der Form (2,3) ist. │ │ │ │ │ Die Matrixmultiplikation ist ein einfacher Vorgang, bei dem die Elemente jeder Zeile der linken Matrix │ │ │ │ │ A mit den Elementen jeder Spalte der rechten Matrix B multipliziert und summiert werden, um ein │ │ │ │ │ Element der Ergebnismatrix C zu erhalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 503 / 1331 │ │ │ │ │ │ │ │ │ │ In Abb. 2 ist eine generische Konfiguration mit Koordinatensystemen dargestellt [4]. Sie umfasst sowohl Tischdreh-/Schwenkachsen als auch Spindel-Dreh-/Schwenkachsen. Nur zwei der Drehachsen │ │ │ │ │ werden tatsächlich in einer Werkzeugmaschine verwendet. │ │ │ │ │ Zunächst werden wir die Transformationen für die erste der oben erwähnten Konfigurationen entwickeln, d. h. einen Tisch vom Typ Kippen/Drehen (trt) ohne Drehachsenversatz. Wir können ihr den │ │ │ │ │ Namen xyzac-trt-Konfiguration geben. │ │ │ │ │ Wir entwickeln auch die Transformationen für den gleichen Typ (xyzac-trt), aber mit rotierenden Achsenversätzen. │ │ │ │ │ Dann entwickeln wir die Transformationen für eine xyzbc-trt-Konfiguration mit Rotationsachsen-Offsets. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 504 / 1331 │ │ │ │ │ │ │ │ │ │ 9.3.5.1 Transformationen für eine xyzac-trt-Werkzeugmaschine mit Werkstückversatz │ │ │ │ │ │ │ │ │ │ Abbildung 9.4: vismach-Modell von xyzac-trt mit übereinstimmenden Drehachsen │ │ │ │ │ Wir befassen uns hier mit einer vereinfachten Konfiguration, bei der sich die Kippachse und die Drehachse in einem Punkt schneiden, der als Drehpunkt bezeichnet wird, wie in Abb. 4 dargestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 505 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.5: Kipp-/Drehkonfiguration des Tisches │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Lx , Ly , Lz die Verschiebungen des Drehpunktes der beiden Drehachsen A und C relativ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 506 / 1331 │ │ │ │ │ │ │ │ │ │ relativen Abstände des Drehpunkts zur Position der Fräserspitze, die auch als ”Gelenkkoordinaten” │ │ │ │ │ des Drehpunkts bezeichnet werden können. Der Drehpunkt liegt im Schnittpunkt der beiden Drehachsen. Die Vorzeichen der Terme SA und SC unterscheiden sich von denen in [2,3], da dort die Tischdrehungen relativ zu den Werkstückkoordinatenachsen negativ sind (beachten Sie, dass sin(-theta) = │ │ │ │ │ -sin(theta), cos(-theta) = cos(theta)). │ │ │ │ │ Multipliziert mit (5) ergibt sich das Ergebnis: │ │ │ │ │ @@ -23977,58 +23977,58 @@ │ │ │ │ │ schreiben: │ │ │ │ │ │ │ │ │ │ Der Vektor auf der rechten Seite kann auch als das Produkt einer Matrix und eines Vektors geschrieben │ │ │ │ │ werden, was folgendes ergibt: │ │ │ │ │ │ │ │ │ │ Dies kann wie folgt erweitert werden │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 507 / 1331 │ │ │ │ │ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (13) als ”P = (Q AP )-1 * Q” berechnen. Die quadratische Matrix ist eine homogene 4x4-Matrix, die eine Rotationsmatrix R und einen Translationsvektor q enthält, deren │ │ │ │ │ Umkehrung wie folgt geschrieben werden kann: │ │ │ │ │ │ │ │ │ │ wobei R^T die Transponierung von R ist (Zeilen und Spalten vertauscht). Wir erhalten also: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 508 / 1331 │ │ │ │ │ │ │ │ │ │ 9.3.5.2 Transformationen für eine xyzac-trt-Maschine mit Drehachsenverschiebungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.6: Vismach-Modell von xyzac-trt mit Rotationsachsenversatz (positiv) │ │ │ │ │ Wir haben es hier mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse und die │ │ │ │ │ Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dy aufweisen. Außerdem gibt es │ │ │ │ │ zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der Dz genannt │ │ │ │ │ wird. Ein Vismach-Modell ist in Abb. 5 dargestellt, und die Offsets sind in Abb. 6 gezeigt (positive │ │ │ │ │ Offsets in diesem Beispiel). Um die Konfiguration zu vereinfachen, werden die Versätze Lx , Ly , Lz des │ │ │ │ │ vorherigen Falls nicht berücksichtigt. Sie sind wahrscheinlich nicht notwendig, wenn man die G54 │ │ │ │ │ Offsets in LinuxCNC mit Hilfe der ”touch of”-Funktion verwendet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 509 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.7: Kipp-/Drehkonfiguration des Tisches xyzac-trt, mit Achsenversatz │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Dy , Dz die Verschiebungen des Drehpunktes der Drehachsen A relativ │ │ │ │ │ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die relativen Abstände │ │ │ │ │ des Drehpunkts zur Position der Schneidenspitze, die auch als ”Gelenkkoordinaten” des Drehpunkts │ │ │ │ │ bezeichnet werden können. Der Drehpunkt liegt auf der Drehachse A. │ │ │ │ │ Bei Multiplikation gemäß (18) erhalten wir: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 510 / 1331 │ │ │ │ │ │ │ │ │ │ Wir können nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor │ │ │ │ │ K gleichsetzen, d. h.: │ │ │ │ │ │ │ │ │ │ Aus diesen Gleichungen lassen sich die Drehwinkel thetaA , thetaC ermitteln. Aus der dritten Zeile │ │ │ │ │ @@ -24047,42 +24047,42 @@ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (25) als ”P = (Q AP )-1 * Q” lösen, indem wir wie zuvor (15) verwenden. Wir │ │ │ │ │ erhalten somit: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 511 / 1331 │ │ │ │ │ │ │ │ │ │ 9.3.5.3 Transformationen für eine xyzbc-trt-Maschine mit Drehachsenverschiebungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.8: Vismach-Modell von xyzbc-trt mit Rotationsachsenversatz (negativ) │ │ │ │ │ Wir haben es hier wieder mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse (um │ │ │ │ │ die y-Achse) und die Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dx haben. Außerdem gibt es zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der │ │ │ │ │ Dz genannt wird. Ein Vismach-Modell ist in Abb. 7 dargestellt (negative Versätze in diesem Beispiel), │ │ │ │ │ und die positiven Versätze sind in Abb. 8 dargestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 512 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.9: Kipp-/Drehkonfiguration des Tisches xyzbc-trt, mit Achsenversatz │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Dx , Dz die Verschiebungen des Drehpunkts der Drehachsen B relativ │ │ │ │ │ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die relativen Abstände │ │ │ │ │ des Drehpunkts zur Position der Schneidenspitze, die auch als ”Gelenkkoordinaten” des Drehpunkts │ │ │ │ │ bezeichnet werden können. Der Drehpunkt liegt auf der B-Drehachse. │ │ │ │ │ Bei Multiplikation gemäß (29) erhalten wir: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 513 / 1331 │ │ │ │ │ │ │ │ │ │ Wir können nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor │ │ │ │ │ K gleichsetzen, d. h.: │ │ │ │ │ │ │ │ │ │ Aus diesen Gleichungen lassen sich die Drehwinkel thetaB , thetaC ermitteln. Aus der dritten Zeile │ │ │ │ │ @@ -24101,15 +24101,15 @@ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (37) als ”P = (Q AP )-1 * Q” lösen. │ │ │ │ │ Mit dem gleichen Ansatz wie zuvor, erhalten wir: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 514 / 1331 │ │ │ │ │ │ │ │ │ │ 9.3.6 Beispiele für Dreh-/Kipptische │ │ │ │ │ LinuxCNC enthält Kinematik-Module für die ”xyzac-trt” und ”xyzbc-trt” Topologien in der Mathematik oben beschrieben. Für interessierte Benutzer ist der Quellcode im Git-Baum im Verzeichnis │ │ │ │ │ ”src/emc/kinematics/” verfügbar. │ │ │ │ │ Beispielkonfigurationen für xyzac-trt und xyzbc-trt befinden sich im Verzeichnis Beispielkonfigurationen (configs/sim/axis/vismach/5axis/table-rotary-tilting/). │ │ │ │ │ @@ -24145,15 +24145,15 @@ │ │ │ │ │ net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset │ │ │ │ │ │ │ │ │ │ wo: │ │ │ │ │ :tool-offset ---------------- Signalname │ │ │ │ │ motion.tooloffset.z --------- Ausgang HAL-Pin von LinuxCNC Bewegungsmodul │ │ │ │ │ xyzac-trt-kins.tool-offset -- Eingang HAL-Pin zu xyzac-trt-kins │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 515 / 1331 │ │ │ │ │ │ │ │ │ │ 9.3.7 Kundenspezifische Kinematik-Komponenten │ │ │ │ │ LinuxCNC implementiert Kinematik mit einer HAL-Komponente, die beim Starten von LinuxCNC geladen wird. Die häufigste Kinematik-Modul, trivkins, implementiert Identität (trivial) Kinematik, wo │ │ │ │ │ es eine eins-zu-eins-Korrespondenz zwischen einer Achse Koordinate Buchstaben und einem Motor │ │ │ │ │ Gelenk. Zusätzliche Kinematik-Module für komplexere Systeme (einschließlich ”xyzac-trt” und ”xyzbctrt” oben beschrieben) sind verfügbar. │ │ │ │ │ @@ -24181,29 +24181,29 @@ │ │ │ │ │ verwendet werden, erstellt werden. Diese Pins können mit einem Signal zur dynamischen Steuerung │ │ │ │ │ verbunden werden oder einmalig mit HAL-Verbindungen wie: │ │ │ │ │ # Offset-Parameter einstellen │ │ │ │ │ net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset │ │ │ │ │ setp xyzac-trt-kins.y-versatz 0 │ │ │ │ │ setp xyzac-trt-kins.z-versatz 20 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 9.3.8 Abbildungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.10: Kipp-/Drehkonfiguration des Tisches │ │ │ │ │ │ │ │ │ │ 516 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 9.11: Spindel-/Tischkippkonfiguration │ │ │ │ │ │ │ │ │ │ 517 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 518 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 9.12: Kipp-/Drehkonfiguration der Spindel │ │ │ │ │ │ │ │ │ │ 9.3.9 VERWEISE │ │ │ │ │ 1. AXIS MACHINE TOOLS: Kinematics and Vismach Implementation in LinuxCNC, RJ du Preez, │ │ │ │ │ @@ -24219,15 +24219,15 @@ │ │ │ │ │ 9.4 Schaltbare Kinematik (switchkins) │ │ │ │ │ 9.4.1 Einführung │ │ │ │ │ Eine Reihe von Kinematikmodulen unterstützt die Umschaltung von Kinematikberechnungen. Diese Module unterstützen eine Standard-Kinematikmethode (Typ0), eine zweite eingebaute Methode │ │ │ │ │ (Typ1) und (optional) eine vom Benutzer bereitgestellte Kinematikmethode (Typ2). Für die Typ1Methode wird in der Regel die Identitätskinematik verwendet. │ │ │ │ │ Die Switchkins-Funktionalität kann für Maschinen verwendet werden, bei denen eine Steuerung der │ │ │ │ │ Gelenke nach der Referenzfahrt während des Einrichtens erforderlich ist oder um Bewegungen in der │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 519 / 1331 │ │ │ │ │ │ │ │ │ │ Nähe von Singularitäten aus dem G-Code zu vermeiden. Solche Maschinen verwenden für die meisten │ │ │ │ │ Vorgänge spezifische Kinematikberechnungen, können aber für die Steuerung einzelner Gelenke nach │ │ │ │ │ der Referenzfahrt auf Identitätskinematik umgestellt werden. │ │ │ │ │ Die Auswahl des Kinematik-Typs erfolgt über einen Motion-Modul-HAL-Pin, der über ein G-CodeProgramm oder über interaktive MDI-Befehle aktualisiert werden kann. Die halui-Bestimmungen für │ │ │ │ │ @@ -24261,15 +24261,15 @@ │ │ │ │ │ KINEMATICS = genhexkins coordinates=xyzabc │ │ │ │ │ # custom identity ordering: joint0==c, joint1==b, ... │ │ │ │ │ KINEMATICS = genhexkins coordinates=cbazyx │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn der Parameter coordinates= weggelassen wird, lauten die Standard-Zuordnungen der Gelenkbuchstaben joint0==x,joint1=y,…. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 520 / 1331 │ │ │ │ │ │ │ │ │ │ Die Gelenkzuweisungen für Identitäts-Kinematiken bei Verwendung des Koordinatenparameters sind │ │ │ │ │ identisch mit denen für das Modul trivkins. Die Duplizierung von Achsenbuchstaben zur Zuweisung │ │ │ │ │ mehrerer Gelenke für einen Koordinatenbuchstaben ist jedoch im Allgemeinen nicht für serielle oder │ │ │ │ │ parallele Kinematiken (wie genserkins, pumakins, genhexkins usw.) geeignet, bei denen es keine einfache Beziehung zwischen Gelenken und Koordinaten gibt. │ │ │ │ │ @@ -24302,15 +24302,15 @@ │ │ │ │ │ 9.4.4.1 HAL-Verbindungen │ │ │ │ │ Die Switchkins-Funktionalität wird durch den Pin motion.switchkins-type aktiviert. Normalerweise │ │ │ │ │ wird dieser Pin von einem analogen Ausgangspin wie motion.analog-out-03 gespeist, so dass er durch │ │ │ │ │ M68-Befehle gesetzt werden kann. Beispiel: │ │ │ │ │ net :kinstype-select <= motion.analog-out-03 │ │ │ │ │ net :kinstype-select => motion.switchkins-type │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 521 / 1331 │ │ │ │ │ │ │ │ │ │ 9.4.4.2 G-/M-Code-Befehle │ │ │ │ │ Die Auswahl des Kinstype wird verwaltet über G-Code-Sequenzen wie: │ │ │ │ │ ... │ │ │ │ │ M68 E3 Q1 ;analog-out-03 aktualisieren, um Kinstype 1 auszuwählen │ │ │ │ │ @@ -24347,15 +24347,15 @@ │ │ │ │ │ LinuxCNC Bahnplanung verwendet Grenzen für die Position (min, max), Geschwindigkeit und Beschleunigung für jede anwendbare Koordinaten-Buchstaben in der Konfiguration INI-Datei angegeben. Beispiel für den Buchstaben L (im Satz XYZABCUVW): │ │ │ │ │ [AXIS_L] │ │ │ │ │ MIN_LIMIT = │ │ │ │ │ MAX_LIMIT = │ │ │ │ │ MAX_VELOCITY = │ │ │ │ │ MIN_ACCELERATION = │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 522 / 1331 │ │ │ │ │ │ │ │ │ │ Die angegebenen INI-Datei-Grenzwerte gelten für die Standardkinematik vom Typ 0, die beim Start │ │ │ │ │ aktiviert wird. Beim Umschalten auf eine andere Kinematik sind diese Grenzen möglicherweise nicht │ │ │ │ │ anwendbar. Da jedoch beim Umschalten der Kinematik eine Synchronisierung zwischen Interpreter │ │ │ │ │ und Bewegung erforderlich ist, können INI-HAL-Pins verwendet werden, um Grenzwerte für einen │ │ │ │ │ @@ -24399,15 +24399,15 @@ │ │ │ │ │ sinnvoll sein, die in der System-INI-Datei angegebenen Grenzwerte festzulegen oder wiederherzustellen. Ein Beispiel: Ein Roboter startet nach der Referenzfahrt mit einer komplexen (nicht identischen) Kinematik (Typ 0). Das System ist so konfiguriert, dass es auf eine Identitätskinematik (Typ1) │ │ │ │ │ umgeschaltet werden kann, um einzelne Gelenke mit den herkömmlichen Buchstaben aus dem Satz │ │ │ │ │ XYZABCUVW zu manipulieren. Die Einstellungen in der INI-Datei ([AXIS_L]) sind beim Betrieb mit │ │ │ │ │ Identitätskinematik (Typ1) nicht anwendbar. Um diesem Anwendungsfall gerecht zu werden, können │ │ │ │ │ die Benutzer-M-code-Skripte wie folgt gestaltet werden: │ │ │ │ │ M129 (Switch to identity type1) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 523 / 1331 │ │ │ │ │ │ │ │ │ │ 1. INI-Datei lesen und auswerten (”parsen”) │ │ │ │ │ 2. hal: setzt die INI-HAL Grenzstifte für jeden Achsenbuchstaben ([AXIS_L]) entsprechend der identitätsbezogenen Gelenknummer INI-Datei ([JOINT_N]) │ │ │ │ │ 3. HAL: setp motion.switchkins-type 1 │ │ │ │ │ 4. MDI: Ausführen eines Synchronisations-G-Codes (M66E0L0) │ │ │ │ │ @@ -24434,15 +24434,15 @@ │ │ │ │ │ 2. 5axis/table-rotary-tilting/xyzbc-trt.ini (xyzac-trt-kins) │ │ │ │ │ 3. 5axis/bridgemill/5axis.ini (5axiskins) │ │ │ │ │ 4. scara/scara.ini (scarakins) │ │ │ │ │ 5. puma/puma560.ini (genserkins) │ │ │ │ │ 6. puma/puma.ini (pumakins) │ │ │ │ │ 7. hexapod-sim/hexapod.ini (genhexkins) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 524 / 1331 │ │ │ │ │ │ │ │ │ │ 9.4.6 Kinematische Bestimmungen des Benutzers │ │ │ │ │ Benutzerdefinierte Kinematiken können auf Run-In-Place (”RIP”) Builds kodiert und getestet werden. Eine Vorlagendatei src/emc/kinematics/userkfuncs.c ist in der Distribution enthalten. Diese Datei kann in ein Benutzerverzeichnis kopiert/umbenannt und bearbeitet werden, um benutzerdefinierte │ │ │ │ │ Kinematik mit kinstype==2 bereitzustellen. │ │ │ │ │ Die benutzerdefinierte Kinematikdatei kann bei rt-preempt-Implementierungen aus den Out-of-TreeQuellen kompiliert werden oder bei rtai-Systemen durch Ersetzen der In-Tree-Vorlagendatei (src/emc/kinematics/userkfuncs.c). │ │ │ │ │ @@ -24468,15 +24468,15 @@ │ │ │ │ │ von Konfigurationseinstellungen. │ │ │ │ │ Nach dem Aufruf von switchkinsSetup() prüft rtapi_app_main() die übergebenen Parameter, erstellt │ │ │ │ │ eine HAL Komponente und ruft dann die für jeden Kinstype (0,1,2) identifizierte Setup-Routine auf. │ │ │ │ │ Jede Kinstype (0,1,2) Setup-Routine kann (optional) HAL Pins erzeugen und auf Standardwerte setzen. │ │ │ │ │ Wenn alle Setup-Routinen abgeschlossen sind, gibt rtapi_app_main() hal_ready() für die Komponente │ │ │ │ │ aus, um die Erstellung des Moduls abzuschließen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 525 / 1331 │ │ │ │ │ │ │ │ │ │ 9.5 PID Tuning │ │ │ │ │ 9.5.1 PID-Regler (engl. PID controller) │ │ │ │ │ A proportional-integral-derivative controller (PID controller) is a common feedback loop component │ │ │ │ │ in industrial control systems. 3 │ │ │ │ │ @@ -24510,15 +24510,15 @@ │ │ │ │ │ Ein PID-Regler kann zur Regelung jeder messbaren Größe verwendet werden, die durch die Beeinflussung einer anderen Prozessgröße beeinflusst werden kann. Er kann zum Beispiel zur Regelung │ │ │ │ │ von Temperatur, Druck, Durchfluss, chemischer Zusammensetzung, Geschwindigkeit oder anderen │ │ │ │ │ Variablen eingesetzt werden. Ein Beispiel für einen Prozess außerhalb der Industrie, bei dem eine │ │ │ │ │ grobe PID-Regelung zum Einsatz kommt, ist die Geschwindigkeitsregelung von Autos. │ │ │ │ │ Einige Regelsysteme ordnen PID-Regler in Kaskaden oder Netzwerken an. Das heißt, ein ”Master”Regler erzeugt Signale, die von ”Slave”-Reglern verwendet werden. Eine häufige Situation sind Motorsteuerungen: Oft soll der Motor eine geregelte Drehzahl haben, wobei der ”Slave”-Regler (oft in einen │ │ │ │ │ 3 This Subsection is taken from an much more extensive article found at https://en.wikipedia.org/wiki/PID_controller │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 526 / 1331 │ │ │ │ │ │ │ │ │ │ Frequenzumrichter eingebaut) die Drehzahl direkt auf der Grundlage eines proportionalen Eingangs │ │ │ │ │ steuert. Dieser Slave-Eingang wird vom Ausgang des Master-Reglers gespeist, der auf der Grundlage │ │ │ │ │ einer verwandten Variablen regelt. │ │ │ │ │ 9.5.1.2 Theorie │ │ │ │ │ @@ -24556,15 +24556,15 @@ │ │ │ │ │ weisen einen gewissen Grad an Nichtlinearität auf, so dass Parameter, die unter Volllastbedingungen │ │ │ │ │ gut funktionieren, beim Anfahren des Prozesses im Leerlauf nicht funktionieren. In diesem Abschnitt │ │ │ │ │ werden einige herkömmliche manuelle Methoden zur Regelkreisabstimmung beschrieben. │ │ │ │ │ Es gibt mehrere Methoden zur Abstimmung einer PID-Schleife. Die Wahl der Methode hängt weitgehend davon ab, ob die Schleife für die Abstimmung ”offline” genommen werden kann oder nicht, │ │ │ │ │ sowie von der Reaktionsgeschwindigkeit des Systems. Wenn das System offline geschaltet werden │ │ │ │ │ kann, besteht die beste Abstimmungsmethode oft darin, das System einer sprunghaften Änderung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 527 / 1331 │ │ │ │ │ │ │ │ │ │ des Eingangs zu unterziehen, den Ausgang als Funktion der Zeit zu messen und diese Reaktion zur │ │ │ │ │ Bestimmung der Regelparameter zu verwenden. │ │ │ │ │ Einfache Methode Wenn das System am Netz bleiben muss, besteht eine Abstimmungsmethode │ │ │ │ │ darin, zunächst die Werte für I und D auf Null zu setzen. Erhöhen Sie den P-Wert, bis der Ausgang │ │ │ │ │ @@ -24640,15 +24640,15 @@ │ │ │ │ │ 9.6 Neuzuordnung (engl. remap) für das Erweitern von G-Code │ │ │ │ │ 9.6.1 Einführung: Erweiterung des RS274NGC-Interpreters durch Remapping von Codes │ │ │ │ │ 9.6.1.1 Eine Definition: Neuzuordnung von Codes │ │ │ │ │ Mit ”Neuzuordnung” (engl. Remapping) von Codes meinen wir eine der folgenden Optionen: │ │ │ │ │ 1. Definition der Semantik neuer - d.h. derzeit nicht zugewiesener - M- oder G-Codes │ │ │ │ │ 2. Definieren Sie die Semantik eines - derzeit begrenzten - Satzes bestehender Codes neu. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 528 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.1.2 Warum sollten Sie den RS274NGC Interpreter erweitern? │ │ │ │ │ Der Satz von Codes (M,G,T,S,F), die derzeit vom RS274NGC-Interpreter verstanden werden, ist festgelegt und kann nicht durch Konfigurationsoptionen erweitert werden. │ │ │ │ │ In particular, some of these codes implement a fixed sequence of steps to be executed. While some of │ │ │ │ │ these, like M6, can be moderately configured by activating or skipping some of these steps through │ │ │ │ │ @@ -24684,15 +24684,15 @@ │ │ │ │ │ procedure. │ │ │ │ │ This glue code is impossible to write as an O-word procedure itself, since the RS274NGC language │ │ │ │ │ lacks the introspective capabilities and access into interpreter internal data structures to achieve │ │ │ │ │ the required effect. Doing the glue code in - again - C/C+\+ would be an inflexible and therefore │ │ │ │ │ unsatisfactory solution. │ │ │ │ │ Wie sich Embedded Python einfügt Um eine einfache Situation einfach und eine komplexe Situation lösbar zu machen, wird das Problem des Glue Codes als Zwischenebene wie folgt angegangen: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 529 / 1331 │ │ │ │ │ │ │ │ │ │ • For simple situations, a built-in glue procedure (argspec) covers most common parameter passing │ │ │ │ │ requirements. │ │ │ │ │ • For remapping T,M6,M61,S,F there is some standard Python glue which should cover most situations, see Standard Glue. │ │ │ │ │ • For more complex situations, one can write your own Python glue to implement new behavior. │ │ │ │ │ @@ -24726,15 +24726,15 @@ │ │ │ │ │ M-codes section. │ │ │ │ │ • Informationen zu unbelegten G-Codes finden Sie hier. │ │ │ │ │ • Existing codes that can be reassigned are listed in the remappable codes section. │ │ │ │ │ Derzeit gibt es zwei vollständige, nur in Python verfügbare Remaps, die in stdglue.py verfügbar sind: │ │ │ │ │ • ignore_m6 │ │ │ │ │ • index_lathe_tool_with_wear │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 530 / 1331 │ │ │ │ │ │ │ │ │ │ Diese sind für die Verwendung mit Drehmaschinen gedacht. Drehbänke verwenden nicht M6, um die │ │ │ │ │ Werkzeuge zu indexieren, sondern den Befehl T. │ │ │ │ │ This remap also adds wear offsets to the tool offset, e.g. T201 would index to tool 2 (with tool 2’s tool │ │ │ │ │ offset) and adds wear offset 1. In the tool table, tools numbers above 10000 are wear offsets, e.g. in │ │ │ │ │ @@ -24769,15 +24769,15 @@ │ │ │ │ │ of which might be required, others might be optional. We have the following options to feed values to │ │ │ │ │ the procedure: │ │ │ │ │ 1. Extracting words from the current block and pass them to the procedure as parameters (like │ │ │ │ │ X22.34 or P47), │ │ │ │ │ 2. referring to INI file variables, │ │ │ │ │ 3. referring to global variables (like #2200 = 47.11 or #<_global_param> = 315.2). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 531 / 1331 │ │ │ │ │ │ │ │ │ │ The first method is preferred for parameters of dynamic nature, like positions. You need to define │ │ │ │ │ which words on the current block have any meaning for your new code, and specify how that is passed │ │ │ │ │ to the NGC procedure. Any easy way is to use the argspec statement. A custom prolog might provide │ │ │ │ │ better error messages. │ │ │ │ │ @@ -24813,15 +24813,15 @@ │ │ │ │ │ block are ignored with respect to the M400 code. If the P word is not present, fail execution with an │ │ │ │ │ error. │ │ │ │ │ • When an M400 code is encountered, execute myprocedure.ngc along the other modal group 10 Mcodes as per order of execution. │ │ │ │ │ • The value of P, and Q are available in the procedure as local named parameters. The may be referred │ │ │ │ │ to as #

and #. The procedure may test whether the Q word was present with the EXISTS built │ │ │ │ │ in function. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 532 / 1331 │ │ │ │ │ │ │ │ │ │ Es wird erwartet, dass die Datei myprocedure.ngc im Verzeichnis [DISPLAY]NC_FILES oder [RS274NGC]SUBR │ │ │ │ │ existiert. │ │ │ │ │ Eine ausführliche Erläuterung der REMAP (engl. für Neuzuordnung)-Parameter finden Sie im folgenden Referenzteil. │ │ │ │ │ │ │ │ │ │ @@ -24861,15 +24861,15 @@ │ │ │ │ │ epilog= │ │ │ │ │ After executing an ngc procedure, call this Python function. The function is expected to be defined │ │ │ │ │ in the module_basename.remap module. Optional. │ │ │ │ │ The python, prolog and epilog options require the Python Interpreter plugin to be configured, and │ │ │ │ │ appropriate Python functions to be defined there so they can be referred to with these options. │ │ │ │ │ The syntax for defining a new code, and redefining an existing code is identical. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 533 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.3.2 Useful REMAP option combinations │ │ │ │ │ Note that while many combinations of argspec options are possible, not all of them make sense. The │ │ │ │ │ following combinations are useful idioms: │ │ │ │ │ argspec= ngc= modalgroup=_ │ │ │ │ │ @@ -24908,15 +24908,15 @@ │ │ │ │ │ Words DEIJKPQR have no predefined function and are recommended for use as argspec parameters. │ │ │ │ │ ABCDEFHIJKPQRSTUVWXYZ │ │ │ │ │ Defines a required word parameter: an uppercase letter specifies that the corresponding word │ │ │ │ │ must be present in the current block. The word ̀s value will be passed as a local named parameter │ │ │ │ │ with a corresponding name. If the @ character is present in the argspec, it will be passed as │ │ │ │ │ positional parameter, see below. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 534 / 1331 │ │ │ │ │ │ │ │ │ │ abcdefhijkpqrstuvwxyz │ │ │ │ │ Defines an optional word parameter: a lowercase letter specifies that the corresponding word │ │ │ │ │ may be present in the current block. If the word is present, the word’s value will be passed as a │ │ │ │ │ local named parameter. If the @ character is present in the argspec, it will be passed as positional │ │ │ │ │ @@ -24953,15 +24953,15 @@ │ │ │ │ │ o endsub │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ • Executing M400 will fail with the message user-defined M400: missing: P. │ │ │ │ │ • Executing M400 P123 will display P word=123.000000. │ │ │ │ │ • Executing M400 P123 Q456 will display P word=123.000000 and Q word set: 456.000000. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 535 / 1331 │ │ │ │ │ │ │ │ │ │ Example for positional parameter passing to NGC procedures Assume the code is defined as │ │ │ │ │ REMAP=M410 modalgroup=10 argspec=@PQr ngc=m410 │ │ │ │ │ and m410.ngc looks as follows: │ │ │ │ │ o sub │ │ │ │ │ @@ -25004,15 +25004,15 @@ │ │ │ │ │ self.execute()). │ │ │ │ │ Angenommen, die Definition lautet wie folgt (Anmerkung: Hier wird argspec nicht verwendet): │ │ │ │ │ REMAP=G88.1 modalgroup=1 py=involute │ │ │ │ │ The involute function in python/remap.py listed below does all word extraction from the current │ │ │ │ │ block directly. Note that interpreter errors can be translated to Python exceptions. Remember this is │ │ │ │ │ readahead time - execution time errors cannot be trapped this way. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 536 / 1331 │ │ │ │ │ │ │ │ │ │ import sys │ │ │ │ │ import traceback │ │ │ │ │ from math import sin,cos │ │ │ │ │ from interpreter import * │ │ │ │ │ @@ -25055,15 +25055,15 @@ │ │ │ │ │ except InterpreterException,e: │ │ │ │ │ msg = ”%d: ’%s’ - %s” % (e.line_number,e.line_text, e.error_message) │ │ │ │ │ return msg │ │ │ │ │ return INTERP_OK │ │ │ │ │ │ │ │ │ │ Die bisher beschriebenen Beispiele finden Sie in ”configs/sim/axis/remap/getting-started” mit vollständigen Arbeitskonfigurationen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 537 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.4 Aktualisieren einer bestehenden Konfiguration für die Neuzuordnung │ │ │ │ │ Die Mindestvoraussetzungen für die Verwendung von ”REMAP”-Anweisungen sind wie folgt: │ │ │ │ │ • The Python plug in must be activated by specifying a [PYTHON]TOPLEVEL= │ │ │ │ │ in the INI file. │ │ │ │ │ @@ -25104,15 +25104,15 @@ │ │ │ │ │ of the interpreter. │ │ │ │ │ Unser remapped Code muss also etwas mehr tun, als nur einige Befehle zu generieren, um die Maschine so zu bewegen, wie wir es wollen - er muss auch die Schritte aus dieser Sequenz wiederholen, │ │ │ │ │ die nötig sind, um den Interpreter und die Task bei Laune zu halten. │ │ │ │ │ However, this does not affect the processing of tool change-related commands in task and iocontrol. │ │ │ │ │ This means when we execute step 6b this will still cause iocontrol to do its thing. │ │ │ │ │ Decisions, decisions: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 538 / 1331 │ │ │ │ │ │ │ │ │ │ • Möchten wir eine O-Wort-Prozedur verwenden oder alles in Python-Code tun? │ │ │ │ │ • Ist die ”iocontrol”-HAL-Sequenz (tool-prepare/tool-prepared und tool-change/tool-changed Pins) gut │ │ │ │ │ genug oder brauchen wir eine andere Art von HAL-Interaktion für unseren Werkzeugwechsler (z.B.: │ │ │ │ │ mehr beteiligte HAL-Pins mit einer anderen Interaktionssequenz)? │ │ │ │ │ @@ -25150,15 +25150,15 @@ │ │ │ │ │ For the sake of documentation, we’ll disable these iocontrol sequences, and roll our own - the result │ │ │ │ │ will look and feel like the existing interaction, but now we have complete control over them because │ │ │ │ │ they are executed in our own O-word procedure. │ │ │ │ │ So what we’ll do is use some motion.digital-* and motion.analog-* pins, and the associated M62 │ │ │ │ │ .. M68 commands to do our own HAL interaction in our O-word procedure, and those will effectively │ │ │ │ │ replace the iocontrol tool-prepare/tool-prepared and tool-change/tool-changed sequences. So we’ll │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 539 / 1331 │ │ │ │ │ │ │ │ │ │ define our pins replacing existing iocontrol pins functionally, and go ahead and make the iocontrol │ │ │ │ │ interactions a loop. We’ll use the following correspondence in our example: │ │ │ │ │ iocontrol pin correspondence in the examples │ │ │ │ │ iocontrol.0 pin │ │ │ │ │ @@ -25208,15 +25208,15 @@ │ │ │ │ │ prolog=change_prolog ngc=change epilog=change_epilog │ │ │ │ │ │ │ │ │ │ So the prolog covering steps 1 and 2 would look like so - we decide to pass a few variables to │ │ │ │ │ the remap procedure which can be inspected and changed there, or used in a message. Those are: │ │ │ │ │ tool_in_spindle, selected_tool (tool numbers) and their respective tooldata indices current_pocket │ │ │ │ │ and selected_pocket: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 540 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Die inzwischen nicht mehr verwendeten Namen selected_pocket und current_pocket verweisen │ │ │ │ │ auf einen sequentiellen Werkzeugdatenindex für Werkzeugelemente, die aus einer Werkzeugtabelle │ │ │ │ │ ([EMCIO]TOOL_TABLE) oder über eine Werkzeugdatenbank ([EMCIO]DB_PROGRAM) geladen werden. │ │ │ │ │ @@ -25263,15 +25263,15 @@ │ │ │ │ │ # cause a sync() │ │ │ │ │ self.tool_change_flag = True │ │ │ │ │ self.set_tool_parameters() │ │ │ │ │ return INTERP_OK │ │ │ │ │ else: │ │ │ │ │ return ”M6 aborted (return code %.1f)” % (self.return_value) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 541 / 1331 │ │ │ │ │ │ │ │ │ │ except Exception, e: │ │ │ │ │ return ”M6/change_epilog: %s” % (e) │ │ │ │ │ │ │ │ │ │ This replacement M6 is compatible with the built in code, except steps 3-5 need to be filled in with │ │ │ │ │ @@ -25305,15 +25305,15 @@ │ │ │ │ │ • M6 (change_prolog): #, #, #, # │ │ │ │ │ • M61 (settool_prolog): # , # │ │ │ │ │ • S (setspeed_prolog): # │ │ │ │ │ • F (setfeed_prolog): # │ │ │ │ │ If you have specific needs for extra parameters to be made visible, that can simply be added to the │ │ │ │ │ prolog - practically all of the interpreter internals are visible to Python. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 542 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.5.6 Making minimal changes to the built in codes, including M6 │ │ │ │ │ Remember that normally remapping a code completely disables all internal processing for that code. │ │ │ │ │ However, in some situations it might be sufficient to add a few codes around the existing M6 built in │ │ │ │ │ implementation, like a tool length probe, but other than that retain the behavior of the built in M6. │ │ │ │ │ @@ -25363,15 +25363,15 @@ │ │ │ │ │ cblock = self.blocks[self.remap_level] │ │ │ │ │ if not cblock.t_flag: │ │ │ │ │ return ”T requires a tool number” │ │ │ │ │ tool │ │ │ │ │ │ │ │ │ │ = cblock.t_number │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 543 / 1331 │ │ │ │ │ │ │ │ │ │ if tool: │ │ │ │ │ (status, pocket) = self.find_tool_pocket(tool) │ │ │ │ │ if status != INTERP_OK: │ │ │ │ │ return ”T%d: pocket not found” % (tool) │ │ │ │ │ @@ -25419,15 +25419,15 @@ │ │ │ │ │ remap is aborted. │ │ │ │ │ The way to do this is by using the [RS274NGC]ON_ABORT_COMMAND feature. This INI option specifies a │ │ │ │ │ O-word procedure call which is executed if task for some reason aborts program execution. on_abort │ │ │ │ │ receives a single parameter indicating the cause for calling the abort procedure, which might be used │ │ │ │ │ for conditional cleanup. │ │ │ │ │ Die Gründe sind in nml_intf/emc.hh definiert │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 544 / 1331 │ │ │ │ │ │ │ │ │ │ EMC_ABORT_TASK_EXEC_ERROR = 1, │ │ │ │ │ EMC_ABORT_AUX_ESTOP = 2, │ │ │ │ │ EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3, │ │ │ │ │ EMC_ABORT_TASK_STATE_OFF = 4, │ │ │ │ │ @@ -25476,15 +25476,15 @@ │ │ │ │ │ Stellen Sie sicher, dass sich on_abort.ngc im Suchpfad des Interpreters befindet (empfohlener Ort: │ │ │ │ │ SUBROUTINE_PATH, um Ihr NC_FILES-Verzeichnis nicht mit internen Prozeduren zu überladen). │ │ │ │ │ Statements in that procedure typically would assure that post-abort any state has been cleaned up, │ │ │ │ │ like HAL pins properly reset. For an example, see configs/sim/axis/remap/rack-toolchange. │ │ │ │ │ Beachten Sie, dass das Beenden eines remapped Codes durch Rückgabe von INTERP_ERROR aus │ │ │ │ │ dem Epilog (siehe vorheriger Abschnitt) auch den Aufruf der Prozedur on_abort bewirkt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 545 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.5.9 Fehlerbehandlung: Fehlschlagen einer NGC-Prozedur mit neu zugeordnetem Code │ │ │ │ │ Wenn Sie in Ihrer Handler-Prozedur feststellen, dass eine Fehlerbedingung aufgetreten ist, verwenden │ │ │ │ │ Sie nicht M2, um Ihren Handler zu beenden - siehe oben: │ │ │ │ │ If displaying an operator error message and stopping the current program is good enough, use the │ │ │ │ │ @@ -25518,15 +25518,15 @@ │ │ │ │ │ change gears appropriately if not. │ │ │ │ │ 9.6.6.2 Anpassen des Verhaltens von M0, M1, M60 │ │ │ │ │ A use case for remapping M0/M1 would be to customize the behavior of the existing code. For instance, │ │ │ │ │ it could be desirable to turn off the spindle, mist and flood during an M0 or M1 program pause, and │ │ │ │ │ turn these settings back on when the program is resumed. │ │ │ │ │ For a complete example doing just that, see configs/sim/axis/remap/extend-builtins/, which adapts M1 as laid out above. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 546 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.7 Creating new G-code cycles │ │ │ │ │ A G-code cycle as used here is meant to behave as follows: │ │ │ │ │ • On first invocation, the associated words are collected and the G-code cycle is executed. │ │ │ │ │ • If subsequent lines just continue parameter words applicable to this code, but no new G-code, the │ │ │ │ │ @@ -25570,15 +25570,15 @@ │ │ │ │ │ [PYTHON] │ │ │ │ │ TOPLEVEL = │ │ │ │ │ Dateiname des anfänglichen Python-Skripts, das beim Starten ausgeführt wird. Dieses Skript │ │ │ │ │ ist für die Einrichtung der Paketnamensstruktur verantwortlich, siehe unten. │ │ │ │ │ PATH_PREPEND = │ │ │ │ │ Dieses Verzeichnis dem PYTHON_PATH voranstellen. Eine sich wiederholende Gruppe. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 547 / 1331 │ │ │ │ │ │ │ │ │ │ PATH_APPEND = │ │ │ │ │ Dieses Verzeichnis an PYTHON_PATH anhängen. Eine sich wiederholende Gruppe. │ │ │ │ │ LOG_LEVEL = │ │ │ │ │ Log level of plugin-related actions. Increase this if you suspect problems. Can be very verbose. │ │ │ │ │ @@ -25616,15 +25616,15 @@ │ │ │ │ │ Hier werden aufgabenbezogene Abrufe erwartet. │ │ │ │ │ 9.6.9.2 Der Interpreter aus der Sicht von Python │ │ │ │ │ │ │ │ │ │ The interpreter is an existing C++ class (Interp) defined in src/emc/rs274ngc. Conceptually all oword. Python calls are methods of this Interp class, although there is no explicit Python definition of this class (it is a Boost.Python wrapper instance) and hence receive the as the first │ │ │ │ │ parameter self which can be used to access internals. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 548 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.9.3 Die Interpreterfunktionen __init__ und __delete__ │ │ │ │ │ If the TOPLEVEL module defines a function __init__, it will be called once the interpreter is fully │ │ │ │ │ configured (INI file read, and state synchronized with the world model). │ │ │ │ │ Wenn das Modul TOPLEVEL eine Funktion __delete__ definiert, wird sie einmal aufgerufen, bevor der │ │ │ │ │ @@ -25664,15 +25664,15 @@ │ │ │ │ │ – when a comment like ;py, is executed - during execution of a remapped │ │ │ │ │ code: any prolog=, python= and epilog= handlers. │ │ │ │ │ Calling O-word Python subroutines │ │ │ │ │ Arguments: │ │ │ │ │ self │ │ │ │ │ The interpreter instance. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 549 / 1331 │ │ │ │ │ │ │ │ │ │ *args │ │ │ │ │ The list of actual positional parameters. Since the number of actual parameters may vary, it is │ │ │ │ │ best to use this style of declaration: │ │ │ │ │ # this would be defined in the oword module │ │ │ │ │ @@ -25710,15 +25710,15 @@ │ │ │ │ │ print(”%s: %s” % (w, words[w])) │ │ │ │ │ if words[’p’] < 78: # NB: could raise an exception if p were optional │ │ │ │ │ return ”failing miserably” │ │ │ │ │ return INTERP_OK │ │ │ │ │ │ │ │ │ │ Rückgabewerte: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 550 / 1331 │ │ │ │ │ │ │ │ │ │ INTERP_OK │ │ │ │ │ Return this on success. You need to import this from interpreter. │ │ │ │ │ a message text │ │ │ │ │ Returning a string from a handler means this is an error message, abort the program. Works like │ │ │ │ │ @@ -25758,15 +25758,15 @@ │ │ │ │ │ # Post-sync()-Ausführung wird hier fortgesetzt: │ │ │ │ │ pin_status = emccanon.GET_EXTERNAL_DIGITAL_INPUT(0,0); │ │ │ │ │ print(”pin status=”,pin_status) │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ The yield feature is fragile. The following restrictions apply to the usage of yield INTERP_EXECUTE_FINISH: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 551 / 1331 │ │ │ │ │ │ │ │ │ │ • Python-Code, der ein yield INTERP_EXECUTE_FINISH ausführt, muss Teil einer Remap-Prozedur │ │ │ │ │ sein. Yield funktioniert nicht in einer Python-O-word-Prozedur. │ │ │ │ │ • Eine Python-Remap-Subroutine, welche die Anweisung yield INTERP_EXECUTE_FINISH enthält, │ │ │ │ │ darf keinen Wert zurückgeben, wie dies bei normalen Python-Yield-Anweisungen der Fall ist. │ │ │ │ │ @@ -25808,15 +25808,15 @@ │ │ │ │ │ return ”testparam forgot to assign #” │ │ │ │ │ return INTERP_OK │ │ │ │ │ o sub │ │ │ │ │ (debug, call_level=#<_call_level> myname=#) │ │ │ │ │ ; try commenting out the next line and run again │ │ │ │ │ # = [# * 3] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 552 / 1331 │ │ │ │ │ │ │ │ │ │ #1 = [#1 * 5] │ │ │ │ │ #2 = [#2 * 3] │ │ │ │ │ o endsub │ │ │ │ │ m2 │ │ │ │ │ @@ -25858,15 +25858,15 @@ │ │ │ │ │ │ │ │ │ │ except InterpreterException,e: │ │ │ │ │ msg = ”%d: ’%s’ - %s” % (e.line_number,e.line_text, e.error_message) │ │ │ │ │ return msg # ersetzt regulär ausgegebene Fehlermeldung │ │ │ │ │ │ │ │ │ │ Canon The canon layer is practically all free functions. Example: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 553 / 1331 │ │ │ │ │ │ │ │ │ │ import emccanon │ │ │ │ │ def example(self,*args): │ │ │ │ │ .... │ │ │ │ │ emccanon.STRAIGHT_TRAVERSE(line,x0,y0,z0,0,0,0,0,0,0) │ │ │ │ │ @@ -25903,15 +25903,15 @@ │ │ │ │ │ • Import that module from the TOPLEVEL script. │ │ │ │ │ # namedparams.py │ │ │ │ │ # trivial example │ │ │ │ │ def _pi(self): │ │ │ │ │ return 3.1415926535 │ │ │ │ │ # = [2 * # * #<_pi>] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 554 / 1331 │ │ │ │ │ │ │ │ │ │ Functions in namedparams.py are expected to return a float or int value. If a string is returned, this │ │ │ │ │ sets the interpreter error message and aborts execution. │ │ │ │ │ Es werden nur Funktionen mit führendem Unterstrich als Parameter hinzugefügt, da dies die RS274NGCKonvention für Globals ist. │ │ │ │ │ It is possible to redefine an existing predefined parameter by adding a Python function of the same │ │ │ │ │ @@ -25943,15 +25943,15 @@ │ │ │ │ │ no further action is taken. This can be used for instance to minimally adjust the built in behavior be │ │ │ │ │ preceding or following it with some other statements. │ │ │ │ │ • Otherwise, the # and # parameters are extracted from the subroutine’s parameter │ │ │ │ │ space. This means that the NGC procedure could change these values, and the epilog takes the │ │ │ │ │ changed values in account. │ │ │ │ │ • Then, the Canon command SELECT_TOOL(#) is executed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 555 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.11.2 M6: change_prolog and change_epilog │ │ │ │ │ Diese schließen ein NGC-Verfahren für den M6-Werkzeugwechsel ein. │ │ │ │ │ Actions of change_prolog │ │ │ │ │ • Die folgenden drei Schritte sind nur anwendbar, wenn die Komponente ”iocontrol-v2” verwendet │ │ │ │ │ @@ -25982,15 +25982,15 @@ │ │ │ │ │ be preceding or following it with some other statements. │ │ │ │ │ • Otherwise, the # parameter is extracted from the subroutine’s parameter space, │ │ │ │ │ and used to set the interpreter’s current_pocket variable. Again, the procedure could change this │ │ │ │ │ value, and the epilog takes the changed value in account. │ │ │ │ │ • Then, the Canon command CHANGE_TOOL(#) is executed. │ │ │ │ │ • Die neuen Werkzeugparameter (Versatz, Durchmesser usw.) werden eingestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 556 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.11.3 G-Code-Zyklen: cycle_prolog und cycle_epilog │ │ │ │ │ These wrap a NGC procedure so it can act as a cycle, meaning the motion code is retained after │ │ │ │ │ finishing execution. If the next line just contains parameter words (e.g. new X,Y values), the code is │ │ │ │ │ executed again with the new parameter words merged into the set of the parameters given in the first │ │ │ │ │ @@ -26022,15 +26022,15 @@ │ │ │ │ │ – retain the current motion mode so a continuation line without a motion code will execute the same │ │ │ │ │ motion code. │ │ │ │ │ 9.6.11.4 S (Set Speed) : setspeed_prolog and setspeed_epilog │ │ │ │ │ TBD │ │ │ │ │ 9.6.11.5 F (Set Feed) : setfeed_prolog and setfeed_epilog │ │ │ │ │ TBD │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 557 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.11.6 M61 Set tool number : settool_prolog and settool_epilog │ │ │ │ │ TBD │ │ │ │ │ │ │ │ │ │ 9.6.12 Remapped code execution │ │ │ │ │ @@ -26089,15 +26089,15 @@ │ │ │ │ │ or these flags into the [EMC]DEBUG variable as needed. For a current list of debug flags see src/emc/nml_intf/d │ │ │ │ │ 9.6.12.5 Fehlersuche in eingebettetem Python-Code │ │ │ │ │ Debugging of embedded Python code is harder than debugging normal Python scripts, and only a │ │ │ │ │ limited supply of debuggers exists. A working open-source based solution is to use the Eclipse IDE, │ │ │ │ │ and the PydDev Eclipse plug in and its remote debugging feature. │ │ │ │ │ Um diesen Ansatz zu verwenden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 558 / 1331 │ │ │ │ │ │ │ │ │ │ • Installieren Sie Eclipse über das Ubuntu Software Center (wählen Sie die erste Option). │ │ │ │ │ • Install the PyDev plug in from the Pydev Update Site. │ │ │ │ │ • Setup the LinuxCNC source tree as an Eclipse project. │ │ │ │ │ • Start the Pydev Debug Server in Eclipse. │ │ │ │ │ @@ -26114,15 +26114,15 @@ │ │ │ │ │ │ │ │ │ │ To cover the last two steps: the o procedure helps to get into the debugger from MDI mode. │ │ │ │ │ See also the call_pydevd function in util.py and its usage in remap.involute to set a breakpoint. │ │ │ │ │ Here’s a screen-shot of Eclipse/PyDevd debugging the involute procedure from above: │ │ │ │ │ │ │ │ │ │ See the Python code in configs/sim/axis/remap/getting-started/python for details. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 559 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.13 Axis Preview and Remapped code execution │ │ │ │ │ For complete preview of a remapped code’s tool path some precautions need to be taken. To understand what is going on, let’s review the preview and execution process (this covers the AXIS case, but │ │ │ │ │ others are similar): │ │ │ │ │ First, note that there are two independent interpreter instances involved: │ │ │ │ │ @@ -26152,15 +26152,15 @@ │ │ │ │ │ • M0 (pause a running program temporarily) │ │ │ │ │ • M1 (pause a running program temporarily if the optional stop switch is on) │ │ │ │ │ • M60 (exchange pallet shuttles and then pause a running program temporarily) │ │ │ │ │ • S (set spindle speed) │ │ │ │ │ • F (set feed) │ │ │ │ │ Note that the use of M61 currently requires the use of iocontrol-v2. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 560 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.14.2 Currently unallocated G-codes: │ │ │ │ │ Currently unallocated G-codes (for remapping) must be selected from the blank areas of the following │ │ │ │ │ tables. All the listed G-codes are already defined in the current implementation of LinuxCNC and may │ │ │ │ │ not be used to remap new G-codes. (Developers who add new G-codes to LinuxCNC are encouraged │ │ │ │ │ @@ -26238,15 +26238,15 @@ │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ │ │ │ │ │ G28 │ │ │ │ │ │ │ │ │ │ G28.1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 561 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 9.8: Tabelle der zugewiesenen G-Codes 50-59 │ │ │ │ │ # │ │ │ │ │ 30 │ │ │ │ │ 31 │ │ │ │ │ @@ -26330,15 +26330,15 @@ │ │ │ │ │ Gxx │ │ │ │ │ G60 │ │ │ │ │ G61 │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ G61.1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 562 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 9.11: (continued) │ │ │ │ │ # │ │ │ │ │ 62 │ │ │ │ │ 63 │ │ │ │ │ @@ -26420,15 +26420,15 @@ │ │ │ │ │ G93 │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ G90.1 │ │ │ │ │ G91.1 │ │ │ │ │ G92.1 G92.2 G92.3 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 563 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 9.14: (continued) │ │ │ │ │ # │ │ │ │ │ 94 │ │ │ │ │ 95 │ │ │ │ │ @@ -26581,15 +26581,15 @@ │ │ │ │ │ 9.6.14.4 Vorauslesezeit und Ausführungszeit │ │ │ │ │ FIXME Füge fehlende Informationen hinzu │ │ │ │ │ 9.6.14.5 Plugin/Pickle-Hack │ │ │ │ │ FIXME Füge fehlende Informationen hinzu │ │ │ │ │ 9.6.14.6 Modul, Methoden, Klassen, usw. Referenz │ │ │ │ │ FIXME Füge fehlende Informationen hinzu │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 564 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.15 Einführung: Erweiterung der Task-Ausführung │ │ │ │ │ FIXME Füge fehlende Informationen hinzu │ │ │ │ │ 9.6.15.1 Warum sollten Sie die Task-Ausführung ändern wollen? │ │ │ │ │ FIXME Füge fehlende Informationen hinzu │ │ │ │ │ @@ -26617,15 +26617,15 @@ │ │ │ │ │ codes - for instance, once the spindle is turned on and the speed is set, it remains at this setting │ │ │ │ │ until turned off. The same goes for many codes, like feed, units, motion modes (feed or rapid) │ │ │ │ │ and so forth. │ │ │ │ │ 4. Interpreter execution state - Holds information about the block currently executed, whether we │ │ │ │ │ are in a subroutine, interpreter variables, etc. . Most of this state is aggregated in a - fairly │ │ │ │ │ unsystematic - structure _setup (see interp_internals.hh). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 565 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.17.2 Task and Interpreter interaction, Queuing and Read-Ahead │ │ │ │ │ The task part of LinuxCNC is responsible for coordinating actual machine commands - movement, │ │ │ │ │ HAL interactions and so forth. It does not by itself handle the RS274NGC language. To do so, task │ │ │ │ │ calls upon the interpreter to parse and execute the next command - either from MDI or the current │ │ │ │ │ @@ -26670,15 +26670,15 @@ │ │ │ │ │ │ │ │ │ │ To pre-compute the move in N90, the interpreter would need to know where the machine is after line │ │ │ │ │ N80 - and that depends on whether the probe command succeeded or not, which is not known until it │ │ │ │ │ is actually executed. │ │ │ │ │ So, some operations are incompatible with further read-ahead. These are called queue busters, and │ │ │ │ │ they are: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 566 / 1331 │ │ │ │ │ │ │ │ │ │ • Reading a HAL pin’s value with M66: value of HAL pin not predictable. │ │ │ │ │ • Loading a new tool with M6: tool geometry not predictable. │ │ │ │ │ • Executing a probe with G38.n: final position and success/failure not predictable. │ │ │ │ │ 9.6.17.5 How queue-busters are dealt with │ │ │ │ │ @@ -26709,15 +26709,15 @@ │ │ │ │ │ input_flag, probe_flag) and the interpreter returns an INTERP_EXECUTE_FINISH return value, signaling stop readahead for now, and resynch to the caller (task). If no queue busters are found after │ │ │ │ │ all items are executed, INTERP_OK is returned, signalling that read-ahead may continue. │ │ │ │ │ When read ahead continues after the synch, task starts executing interpreter read() operations again. │ │ │ │ │ During the next read operation, the above mentioned flags are checked and corresponding variables │ │ │ │ │ are set (because the a synch() was just executed, the values are now current). This means that the │ │ │ │ │ next command already executes in the properly set variable context. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 567 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.17.9 Prozedurausführung │ │ │ │ │ O-word procedures complicate handling of queue busters a bit. A queue buster might be found somewhere in a nested procedure, resulting in a semi-finished procedure call when INTERP_EXECUTE_FINISH │ │ │ │ │ is returned. Task makes sure to synchronize the world model, and continue parsing and execution as │ │ │ │ │ long as there is still a procedure executing (call_level > 0). │ │ │ │ │ @@ -26751,15 +26751,15 @@ │ │ │ │ │ Interpreter action on a Tx command │ │ │ │ │ Der Interpreter wertet lediglich den Parameter toolnumber aus, sucht den entsprechenden tooldataIndex, speichert ihn für später in der Variablen selected_pocket und stellt einen Kanon-Befehl (SELECT_TOOL) in die Warteschlange. Siehe Interp::convert_tool_select in src/emc/rs274/interp_execute.cc. │ │ │ │ │ Task-Aktion auf SELECT_TOOL Wenn task dazu kommt, ein SELECT_TOOL zu bearbeiten, sendet │ │ │ │ │ es eine EMC_TOOL_PREPARE Nachricht an den iocontrol Prozess, der die meisten werkzeugbezogenen Aktionen in LinuxCNC bearbeitet. │ │ │ │ │ In der derzeitigen Implementierung wartet task tatsächlich darauf, dass iocontrol die Positionierung des Wechslers abschließt, was m.E. nicht notwendig ist, da es die Idee zunichte macht, dass die │ │ │ │ │ Vorbereitung des Wechslers und die Ausführung des Codes parallel laufen können. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 568 / 1331 │ │ │ │ │ │ │ │ │ │ Iocontrol-Aktion auf EMC_TOOL_PREPARE Wenn iocontrol den Befehl ”Select Pocket” sieht, │ │ │ │ │ führt es das entsprechende HAL-Pin-Wackeln aus - es setzt den ”tool-prep-number”-Pin, um anzuzeigen, welches Werkzeug als nächstes an der Reihe ist, hebt den ”tool-prepare”-Pin an und wartet │ │ │ │ │ darauf, dass der ”tool-prepared”-Pin auf High geht. │ │ │ │ │ When the changer responds by asserting ”tool-prepared”, it considers the prepare phase to be completed and signals task to continue. Again, this wait is not strictly necessary IMO. │ │ │ │ │ @@ -26793,15 +26793,15 @@ │ │ │ │ │ since M6 is a queue buster. │ │ │ │ │ Was task tut, wenn es einen CHANGE_TOOL-Befehl sieht Auch hier nicht viel mehr, als die │ │ │ │ │ Kontrolle an iocontrol zu übergeben, indem man ihm eine EMC_TOOL_LOAD Nachricht sendet und │ │ │ │ │ zu warten, bis iocontrol sein Ding gemacht hat. │ │ │ │ │ Iocontrol-Aktion auf EMC_TOOL_LOAD │ │ │ │ │ 1. Es bestätigt den ”Tool-Change”-Pin │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 569 / 1331 │ │ │ │ │ │ │ │ │ │ 2. Es wartet, bis der ”Tool-changed”-Pin aktiv wird │ │ │ │ │ 3. wenn dies geschehen ist: │ │ │ │ │ a. deassert ”Werkzeugwechsel” │ │ │ │ │ b. Setzen der Pins tool-prep-number und tool-prep-pocket auf Null │ │ │ │ │ @@ -26830,15 +26830,15 @@ │ │ │ │ │ │ │ │ │ │ 9.6.19 Changes │ │ │ │ │ • The method to return error messages and fail used to be self.set_errormsg(text) followed by return │ │ │ │ │ INTERP_ERROR. This has been replaced by merely returning a string from a Python handler or │ │ │ │ │ oword subroutine. This sets the error message and aborts the program. Previously there was no │ │ │ │ │ clean way to abort a Python O-word subroutine. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 570 / 1331 │ │ │ │ │ │ │ │ │ │ 9.6.20 Debugging │ │ │ │ │ In the [EMC] section of the INI file the DEBUG parameter can be changed to get various levels of │ │ │ │ │ debug messages when LinuxCNC is started from a terminal. │ │ │ │ │ Debug level, 0 means no messages. See src/emc/nml_intf/debugflags.h for others │ │ │ │ │ @@ -26876,15 +26876,15 @@ │ │ │ │ │ waypoint-sample-secs and waypoint-threshold pins. When the backtrack-enable pin is TRUE, the autoreturn path follows the recorded waypoints. When the memory available for waypoints is exhausted, │ │ │ │ │ offsets are frozen and the waypoint-limit pin is asserted. This restriction applies regardless of the │ │ │ │ │ state of the backtrack-enable pin. An enabling pin must be deasserted to allow a return to the original │ │ │ │ │ (non-offset position). │ │ │ │ │ Backtracking durch Wegpunkte führt zu langsameren Bewegungsraten, da die Bewegungen Punktzu-Punkt unter Berücksichtigung der Geschwindigkeits- und Beschleunigungseinstellungen erfolgen. │ │ │ │ │ Die Geschwindigkeits- und Beschleunigungsgrenzwerte können dynamisch verwaltet werden, um Versätze jederzeit zu kontrollieren. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 571 / 1331 │ │ │ │ │ │ │ │ │ │ Wenn backtrack-enable FALSE ist, wird die automatische Rücklaufbewegung NICHT koordiniert, jede Achse kehrt mit ihrer eigenen Geschwindigkeit auf Null zurück. Wenn in diesem Zustand ein kontrollierter Weg gewünscht wird, sollte jede Achse manuell auf Null zurückgeführt werden, bevor ein │ │ │ │ │ Freigabe-Pin deaktiviert wird. │ │ │ │ │ Die Pins waypoint-sample-secs, waypoint-threshold und epsilon werden nur ausgewertet, wenn sich │ │ │ │ │ die Komponente im Leerlauf befindet. │ │ │ │ │ @@ -26913,15 +26913,15 @@ │ │ │ │ │ │ │ │ │ │ 9.7.1 Ändern einer bestehenden Konfiguration │ │ │ │ │ Eine vom System bereitgestellte HAL-Datei (LIB:hookup_moveoff.tcl) kann verwendet werden, um │ │ │ │ │ eine bestehende Konfiguration für die Verwendung der moveoff-Komponente anzupassen. Zusätzliche Einstellungen in der INI-Datei unterstützen die Verwendung einer einfachen Benutzeroberfläche │ │ │ │ │ (moveoff_gui) zur Steuerung von Offsets. │ │ │ │ │ Wenn die System-HAL-Datei (LIB:hookup_moveoff.tcl) ordnungsgemäß in einer Konfigurations-INIDatei angegeben ist, wird sie: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 572 / 1331 │ │ │ │ │ │ │ │ │ │ 1. die ursprünglichen Pinverbindungen joint.N.motor-pos-cmd und joint.N.motor-pos-fb trennen │ │ │ │ │ 2. Die moveoff-Komponente (unter dem Namen mv) mit einem Profil (engl. personality) laden (loadrt), │ │ │ │ │ die alle in der INI-Datei angegebenen Achsen aufnehmen kann │ │ │ │ │ 3. Funktionen der Auszugskomponenten in der gewünschten Reihenfolge hinzufügen (addf) │ │ │ │ │ @@ -26963,15 +26963,15 @@ │ │ │ │ │ WAYPOINT_SAMPLE_SECS = │ │ │ │ │ WAYPOINT_THRESHOLD = │ │ │ │ │ │ │ │ │ │ Das moveoff_gui wird verwendet, um zusätzliche erforderliche Verbindungen herzustellen und eine │ │ │ │ │ Popup-GUI zu erstellen: │ │ │ │ │ 1. Aktivieren/Deaktivieren von Offsets über eine Umschalttaste (engl. togglebutton). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 573 / 1331 │ │ │ │ │ │ │ │ │ │ 2. Bereitstellung einer Schaltfläche zum Aktivieren/Deaktivieren des Backtrackings │ │ │ │ │ 3. Steuertasten zum Inkrementieren/Dekrementieren/Nullstellen jeder Achsenverschiebung │ │ │ │ │ 4. Anzeige des aktuellen Wertes jeder Achsenverschiebung │ │ │ │ │ 5. Anzeige des aktuellen Offset-Status (deaktiviert, aktiv, entfernt, etc.) │ │ │ │ │ @@ -27011,15 +27011,15 @@ │ │ │ │ │ sind: │ │ │ │ │ net external_enable mv.move-enable │ │ │ │ │ net external_offset_0 mv.offset-in-0 │ │ │ │ │ net external_offset_1 mv.offset-in-1 │ │ │ │ │ net external_offset_2 mv.offset-in-2 │ │ │ │ │ net external_backtrack_en mv.backtrack-enable │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 574 / 1331 │ │ │ │ │ │ │ │ │ │ Diese Signale (external_enable, external_offset_M, external_backtrack_en) können von nachfolgenden │ │ │ │ │ HALFILES (einschließlich POSTGUI_HALFILEs) verwaltet werden, um eine angepasste Steuerung │ │ │ │ │ der Komponente zu ermöglichen, während die moveoff_gui-Anzeige für aktuelle Offset-Werte und den │ │ │ │ │ Offset-Status verwendet wird. │ │ │ │ │ @@ -27068,15 +27068,15 @@ │ │ │ │ │ [-no_display] (Voreinstellung: nicht verwendet) │ │ │ │ │ (Verwendung, wenn sowohl externe Steuerungen als auch Anzeigen ←) │ │ │ │ │ (verwendet werden (siehe Hinweis)) │ │ │ │ │ Hinweis: Wenn der moveoff move-enable Pin (mv.move-enable) angeschlossen ist während │ │ │ │ │ moveoff_gui gestartet wird, sind externe Steuerungen erforderlich und nur │ │ │ │ │ die Bildschirm-Anzeigen sind verfügbar. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 575 / 1331 │ │ │ │ │ │ │ │ │ │ 9.8 Eigenständiger Interpreter │ │ │ │ │ Der eigenständige Interpreter rs274 kann über die Kommandozeile verwendet werden. │ │ │ │ │ │ │ │ │ │ 9.8.1 Anwendung │ │ │ │ │ @@ -27114,15 +27114,15 @@ │ │ │ │ │ │ │ │ │ │ Befehl │ │ │ │ │ rs274 -g test.ngc -t test.tbl │ │ │ │ │ │ │ │ │ │ 9.9 External Axis Offsets │ │ │ │ │ External axis offsets are supported during teleop (world) jogs and coordinated (G-code) motion. External axis offsets are enabled on a per-axis basis by INI file settings and controlled dynamically by │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 576 / 1331 │ │ │ │ │ │ │ │ │ │ INI input pins. The INI interface is similar to that used for wheel jogging. This type of interface is │ │ │ │ │ typically implemented with a manual-pulse-generator (mpg) connected to an encoder INI component │ │ │ │ │ that counts pulses. │ │ │ │ │ │ │ │ │ │ @@ -27153,15 +27153,15 @@ │ │ │ │ │ 9.9.2.2 Other Motion HAL Pins │ │ │ │ │ 1. motion.eoffset-active Output(bit): non-zero external offsets applied │ │ │ │ │ 2. motion.eoffset-limited Output(bit): motion inhibited due to soft limit │ │ │ │ │ │ │ │ │ │ 9.9.3 Anwendung │ │ │ │ │ The axis input HAL pins (enable,scale,counts) are similar to the pins used for wheel jogging. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 577 / 1331 │ │ │ │ │ │ │ │ │ │ 9.9.3.1 Offset-Berechnung │ │ │ │ │ At each servo period, the axis.L.eoffset-counts pin is compared to its value in the prior period. The │ │ │ │ │ increase or decrease (positive or negative delta) of the axis.L.eoffset-counts pin is multiplied by the │ │ │ │ │ current axis.L.eoffset-scale pin value. This product is accumulated in an internal register and exported │ │ │ │ │ @@ -27197,15 +27197,15 @@ │ │ │ │ │ Der HAL-Pin axis.L.eoffset-request zeigt den aktuellen angeforderten Offset an, der das Produkt aus │ │ │ │ │ dem internen Zählregister und der eoffset-Skala ist. Im Allgemeinen hinkt der Wert des Pins axis.L.eoffset │ │ │ │ │ dem Wert von axis.L.eoffset-request hinterher, da der externe Offset einer Beschleunigungsgrenze unterliegt. Beim Betrieb an einer weichen Grenze wirken sich zusätzliche Aktualisierungen der │ │ │ │ │ axis.L.eoffset-counts weiterhin auf den angeforderten externen Offset aus, wie er im axis.L.eoffsetrequest-HAL-Pin reflektiert wird. │ │ │ │ │ Beim Teleop-Jogging mit aktivierten externen Offsets und angewandten Werten ungleich Null wird │ │ │ │ │ bei Erreichen eines Soft-Limits die Bewegung in der betreffenden Achse ohne Verzögerungsintervall angehalten. In ähnlicher Weise wird bei einer koordinierten Bewegung mit aktivierten externen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 578 / 1331 │ │ │ │ │ │ │ │ │ │ Offsets das Erreichen eines Soft-Limits zum Anhalten der Bewegung ohne Verzögerungsphase führen. │ │ │ │ │ In diesem Fall spielt es keine Rolle, ob die Offsets Null sind. │ │ │ │ │ Wenn die Bewegung ohne Verzögerungsphase gestoppt wird, können die Beschleunigungsgrenzen des Systems verletzt werden, was zu Folgefehlern führt: 1) einem Schleppfehler (und/oder │ │ │ │ │ einem Klopfen) bei einem Servomotor-System, 2) einem Verlust von Schritten bei einem SchrittmotorSystem. Im Allgemeinen wird empfohlen, externe Offsets so zu verwenden, dass eine Annäherung an │ │ │ │ │ @@ -27230,15 +27230,15 @@ │ │ │ │ │ designed and tested before deployment. │ │ │ │ │ │ │ │ │ │ 9.9.4 Related HAL Components │ │ │ │ │ 9.9.4.1 eoffset_per_angle.comp │ │ │ │ │ Komponente zur Berechnung eines externen Offsets aus einer Funktion auf der Grundlage eines │ │ │ │ │ gemessenen Winkels (Drehkoordinate oder Spindel). Siehe die Manpage für Details ($ man eoffset_per_angle). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 579 / 1331 │ │ │ │ │ │ │ │ │ │ 9.9.5 Testen │ │ │ │ │ Der externe Achsenversatz wird durch Hinzufügen einer [AXIS_L]-Einstellung für jede Kandidatenachse aktiviert. Zum Beispiel: │ │ │ │ │ [AXIS_Z] │ │ │ │ │ OFFSET_AV_RATIO = 0.2 │ │ │ │ │ @@ -27278,15 +27278,15 @@ │ │ │ │ │ HAL logic needed to demonstrate external offset functionality and the GUI HAL pin connections for │ │ │ │ │ a PyVCP panel are made in separate HAL files. A non-simulation configuration should replace the │ │ │ │ │ LIB:basic_sim.tcl item HALFILEs appropriate to the machine. The provided PyVCP files (.hal and .xml) │ │ │ │ │ could be a starting point for application-specific GUI interfaces. │ │ │ │ │ 9.9.6.1 eoffsets.ini │ │ │ │ │ Die Sim-Konfiguration sim/configs/axis/external_offsets/eoffsets.ini demonstriert eine kartesische XYZMaschine mit Steuerelementen zur Aktivierung externer Offsets auf jeder Achse. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 580 / 1331 │ │ │ │ │ │ │ │ │ │ Alle wichtigen Positions- und Offsetwerte werden angezeigt. │ │ │ │ │ Ein sim_pin GUI bietet Steuerelemente für die Achsen-Offset-Pins: eoffset-scale & eoffset-counts (über │ │ │ │ │ Signal e:counts), eoffset-clear (über Signal e:clearall) │ │ │ │ │ Ein Skript (eoffsets_monitor.tcl) wird verwendet, um die axis.L.counts-Pins beim Ausschalten der Maschine auf Null zu setzen. │ │ │ │ │ @@ -27314,15 +27314,15 @@ │ │ │ │ │ typically set by a program (or MDI) M68 command to control a motion.analog-out-NN pin. │ │ │ │ │ Die LEDs auf dem Bedienfeld dienen zur Anzeige wichtiger Statusinformationen. │ │ │ │ │ Es werden Funktionen für Innen- und Außenpolygone (nsides >= 3), Sinuswellen und Rechteckwellen │ │ │ │ │ bereitgestellt. Die Funktionen können mit dem Stift fmul in der Frequenz multipliziert und mit dem │ │ │ │ │ Stift rfrac in der Amplitude verändert werden (Bruchteil des Referenzradius). │ │ │ │ │ Es gibt Bedienelemente zum Starten/Stoppen von Offset-Wellenformen und zum Einstellen des Funktionstyps und seiner Parameter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 581 / 1331 │ │ │ │ │ │ │ │ │ │ 9.10 Tool Database Interface │ │ │ │ │ │ │ │ │ │ Tool data is conventionally described by a tool table file specified by an inifile setting: [EMCIO]TOOL_TABLE= │ │ │ │ │ A tool table file consists of a text line for each available tool describing the tool’s parameters, see Tool │ │ │ │ │ @@ -27359,15 +27359,15 @@ │ │ │ │ │ textual reply format is identical to the text line format used in conventional tool table files. A final │ │ │ │ │ response of ”FINI” terminates the reply. │ │ │ │ │ 4. Das db_program tritt dann in eine Ereignis-Warteschleife ein, um Befehle zu empfangen, die │ │ │ │ │ anzeigen, dass Werkzeugdaten von LinuxCNC geändert wurden. Werkzeugdaten Änderungen │ │ │ │ │ umfassen: │ │ │ │ │ • a) Laden der Spindel(Tn M6)/Entladen(T0 M6) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 582 / 1331 │ │ │ │ │ │ │ │ │ │ • b) Änderung der Werkzeugparameter (z. B. G10L1Pn) │ │ │ │ │ • c) Werkzeugauswechslungen (M61Qn). │ │ │ │ │ Wenn eine Werkzeugdatenänderung auftritt, sendet LinuxCNC einen Befehl an das db_program, bestehend aus einem identifizierenden Befehlsbuchstaben, gefolgt von einer vollständigen oder abgekürzten Werkzeugdatenzeile. Das db_program muss mit einer Antwort antworten, um den Empfang │ │ │ │ │ zu bestätigen. Enthält die Antwort den Text ”NAK”, wird eine Meldung auf stdout ausgegeben, aber │ │ │ │ │ @@ -27402,15 +27402,15 @@ │ │ │ │ │ Tool data changes made within LinuxCNC (p,u,l commands) are pushed immediately to the db_program │ │ │ │ │ which is expected to synchronize its source data. By default, LinuxCNC requests for tool data (g commands) are made at startup only. A database program may update tool usage data on a continuous │ │ │ │ │ basis so long-lived LinuxCNC applications may benefit by refreshing the tool data provided by the │ │ │ │ │ db_program. The G-code command G10L0 can be used to request a tool data reload (g command) │ │ │ │ │ from within G-code programs or by MDI. A reload operation is also typically provided by a Graphical User Interface (GUI) so that on-demand reloads can be requested. For example, a Python GUI │ │ │ │ │ application can use: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 583 / 1331 │ │ │ │ │ │ │ │ │ │ #!/usr/bin/env python3 │ │ │ │ │ from linuxcnc import command │ │ │ │ │ command().load_tool_table() │ │ │ │ │ │ │ │ │ │ @@ -27448,15 +27448,15 @@ │ │ │ │ │ 9.10.1.5 Python tooldb module │ │ │ │ │ The example program uses a LinuxCNC provided Python module (tooldb) that manages the low-level │ │ │ │ │ details for communication and version verification. This module uses callback functions specified by │ │ │ │ │ the db_program to respond to the g (get) command and the commands that indicate tool data changes │ │ │ │ │ (p, l, u). │ │ │ │ │ The db_program uses the tooldb module by implementing the following Python code: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ user_tools = list(...) │ │ │ │ │ │ │ │ │ │ 584 / 1331 │ │ │ │ │ │ │ │ │ │ # list of available tool numbers │ │ │ │ │ │ │ │ │ │ @@ -27502,61 +27502,61 @@ │ │ │ │ │ The sim configs demonstrate the use of the Python tooldb interface module and implement a basic │ │ │ │ │ flat-file database that tracks tool time usage for multiple tools having equal diameters. The database │ │ │ │ │ rules support selection of the tool having the lowest operating time. │ │ │ │ │ The sim configs use a primary task to monitor and respond to tool updates initiated from within LinuxCNC. A periodic task updates tool time usage at reguar intervals. Separate, concurrent tasks │ │ │ │ │ are implemented as threads to demonstrate the code required when changes are initiated by the │ │ │ │ │ db_program and demonstrate methods for synchronizing LinuxCNC internal tooldata. Examples include: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 585 / 1331 │ │ │ │ │ │ │ │ │ │ 1. Aktualisierung der Werkzeugparameter │ │ │ │ │ 2. addition and removal of tool numbers │ │ │ │ │ A mutual exclusion lock is used to protect data from inconsistencies due to race conditions between │ │ │ │ │ LinuxCNC tooldata updates and the database application updates. │ │ │ │ │ 9.10.2.1 Anmerkungen │ │ │ │ │ │ │ │ │ │ When a db_program is used in conjunction with a random tool changer ([EMCIO]RANDOM_TOOLCHANGER │ │ │ │ │ LinuxCNC maintains a file (db_spindle.tbl in the configuration directory) that consists of a single tool │ │ │ │ │ table line identifying the current tool in the spindle. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 586 / 1331 │ │ │ │ │ │ │ │ │ │ Teil II │ │ │ │ │ │ │ │ │ │ Anwendung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 587 / 1331 │ │ │ │ │ │ │ │ │ │ Kapitel 10 │ │ │ │ │ │ │ │ │ │ Benutzerschnittstellen │ │ │ │ │ 10.1 AXIS GUI │ │ │ │ │ 10.1.1 Einführung │ │ │ │ │ AXIS ist ein grafisches Frontend für LinuxCNC mit Live-Vorschau und Backplot. Es ist in Python geschrieben und verwendet Tk und OpenGL, um seine Benutzeroberfläche anzuzeigen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 588 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.1: Das AXIS-Fenster │ │ │ │ │ │ │ │ │ │ 10.1.2 Erste Schritte │ │ │ │ │ Wenn Ihre Konfiguration derzeit nicht für die Verwendung von AXIS eingerichtet ist, können Sie sie │ │ │ │ │ ändern, indem Sie die .ini Datei (INI-Datei) bearbeiten. Ändern Sie im Abschnitt [DISPLAY] die Zeile │ │ │ │ │ [DISPLAY] in DISPLAY = axis. │ │ │ │ │ Die Beispielkonfiguration ”sim/axis.ini” ist bereits für die Verwendung von AXIS als Front-End konfiguriert. │ │ │ │ │ Wenn AXIS gestartet wird, öffnet sich ein Fenster wie das in der Abbildung Abbildung 10.1 oben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 589 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.2.1 INI-Einstellungen │ │ │ │ │ For more information on INI file settings that can change how AXIS works see the Display Section │ │ │ │ │ and the Axis Section of the INI Configuration Chapter. │ │ │ │ │ • CYCLE_TIME - Passen Sie die Antwortrate der GUI in Millisekunden an. Typisch 100, nutzbarer │ │ │ │ │ @@ -27589,15 +27589,15 @@ │ │ │ │ │ Anmerkung │ │ │ │ │ Nun notwendige Schritte um dasselbe Programm erneut auszuführen, hängen von Ihrem Setup und │ │ │ │ │ Ihren Anforderungen ab. Möglicherweise müssen Sie mehr Material laden und Offsets setzen oder │ │ │ │ │ einen Offset verschieben und festlegen und dann das Programm erneut ausführen. Wenn Ihr Material │ │ │ │ │ fixiert ist, müssen Sie das Programm möglicherweise nur erneut ausführen. Weitere Informationen │ │ │ │ │ zum Befehl run finden Sie im Abschnitt zum Menü Maschine. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 590 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.3 AXIS Fenster │ │ │ │ │ Das AXIS-Fenster enthält die folgenden Elemente: │ │ │ │ │ • Ein Anzeigebereich, der Folgendes anzeigt: │ │ │ │ │ – Eine Vorschau der geladenen Datei (in diesem Fall axis.ngc) sowie des aktuellen Speicherorts des │ │ │ │ │ @@ -27634,15 +27634,15 @@ │ │ │ │ │ INI-Datei konfiguriert haben. Weitere Informationen zum Angeben eines zu verwendenden Editors │ │ │ │ │ finden Sie im Abschnitt DISPLAY. │ │ │ │ │ • Reload - Laden Sie die aktuelle G-Code-Datei neu. Wenn Sie es bearbeitet haben, müssen Sie es │ │ │ │ │ neu laden, damit die Änderungen wirksam werden. Wenn Sie eine Datei stoppen und von vorne │ │ │ │ │ beginnen möchten, laden Sie die Datei neu. Das Neuladen der Symbolleiste ist identisch mit dem │ │ │ │ │ Menü. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 591 / 1331 │ │ │ │ │ │ │ │ │ │ • G-Code speichern unter… - Speichern Sie die aktuelle Datei unter einem neuen Namen. │ │ │ │ │ • Eigenschaften - Die Summe der Eilgang- und Vorschubbewegungen. Berücksichtigt keine Beschleunigung, Überblendung oder den Pfadmodus, sodass die gemeldete Zeit nie weniger als die tatsächliche Laufzeit ist. │ │ │ │ │ • Werkzeugtabelle bearbeiten… - Wie bei Bearbeiten, wenn Sie einen Editor definiert haben, können │ │ │ │ │ Sie die Werkzeugtabelle öffnen und bearbeiten. │ │ │ │ │ @@ -27675,15 +27675,15 @@ │ │ │ │ │ • In MDI-Verlauf einfügen - Einfügen aus der Zwischenablage in das MDI-Verlaufsfenster │ │ │ │ │ • Kalibrierung - Startet den Kalibrierungsassistenten (emccalib.tcl). Die Kalibrierung liest die HALDatei und erstellt für jedes setp, das eine Variable aus der INI-Datei verwendet, die sich in einem │ │ │ │ │ [AXIS_L],[JOINT_N],[SPINDLE_S] oder [TUNE] Abschnitt befindet, ein Eintrag, der bearbeitet und │ │ │ │ │ getestet werden kann. │ │ │ │ │ • HAL-Konfiguration anzeigen - Öffnet das Fenster HAL-Konfiguration, in dem Sie HAL-Komponenten, │ │ │ │ │ Pins, Parameter, Signale, Funktionen und Threads überwachen können. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 592 / 1331 │ │ │ │ │ │ │ │ │ │ • HAL-Messgerät - Öffnet ein Fenster, in dem Sie einen einzelnen HAL-Pin, ein Signal oder einen │ │ │ │ │ Parameter überwachen können. │ │ │ │ │ • HAL Scope - Öffnet ein virtuelles Oszilloskop zur Anzeige von HAL-Werten (vertikal) über die Zeit │ │ │ │ │ (horizontal) ermöglicht. │ │ │ │ │ @@ -27715,15 +27715,15 @@ │ │ │ │ │ von negativ nach positiv aussieht. Diese Ansicht eignet sich am besten für den Blick auf X & Z. │ │ │ │ │ • Perspektivische Ansicht (engl. perspective view) - Die perspektivische Ansicht (oder P-Ansicht) zeigt │ │ │ │ │ den G-Code an, der das Teil aus einem einstellbaren Blickwinkel betrachtet, standardmäßig X+, Y-, │ │ │ │ │ Z+. Die Position ist mit der Maus und dem Zug-/Drehwahlschalter einstellbar. Diese Ansicht ist eine │ │ │ │ │ Kompromissansicht, und obwohl sie versucht, drei (bis neun!) Diese Ansicht ist am besten, wenn │ │ │ │ │ Sie alle drei (bis neun) Achsen gleichzeitig sehen möchten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 593 / 1331 │ │ │ │ │ │ │ │ │ │ Sichtweise │ │ │ │ │ Das AXIS-Anzeigeauswahlmenü ”Ansicht” bezieht sich auf die Ansichten ”Oben”, ”Vorne” und │ │ │ │ │ ”Seitlich”. Diese Begriffe sind korrekt, wenn die Z-Achse der CNC-Maschine senkrecht steht, mit │ │ │ │ │ positivem Z nach oben. Dies gilt für vertikale Fräsmaschinen, was wahrscheinlich die häufigste │ │ │ │ │ @@ -27763,15 +27763,15 @@ │ │ │ │ │ • Geschwindigkeit anzeigen - Eine Anzeige der Geschwindigkeit ist manchmal nützlich, um zu sehen, │ │ │ │ │ wie nah Ihre Maschine an ihren Entwurfsgeschwindigkeiten läuft. Sie kann auf Wunsch deaktiviert │ │ │ │ │ werden. │ │ │ │ │ • Restweg anzeigen (engl. Show Distance to Go) - Der Restweg ist ein sehr nützlicher Hinweis, wenn │ │ │ │ │ Sie ein unbekanntes G-Code-Programm zum ersten Mal ausführen. In Kombination mit den Eilgangund Vorschub-Override-Steuerungen können unerwünschte Werkzeug- und Maschinenschäden vermieden werden. Sobald das G-Code-Programm fehlerfrei läuft, kann die Restweg-Anzeige auf Wunsch │ │ │ │ │ deaktiviert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 594 / 1331 │ │ │ │ │ │ │ │ │ │ • Koordinaten in großer Schrift… - Die Koordinaten der Achsen und die Geschwindigkeit im Voraus │ │ │ │ │ werden in großer Schrift in der Werkzeugwegansicht angezeigt. │ │ │ │ │ • Live Plot löschen - Während das Werkzeug in der AXIS-Anzeige reist, wird der G-Code-Pfad hervorgehoben. Um das Programm zu wiederholen oder einen Interessenbereich besser zu sehen, können │ │ │ │ │ die zuvor markierten Pfade gelöscht werden. │ │ │ │ │ @@ -27825,15 +27825,15 @@ │ │ │ │ │ │ │ │ │ │ Zeilen überspringen mit ”/” [Alt-M-/] umschalten │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ Optionale Pause einschalten [Alt-M-1] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ Vergrößern (engl. zoom in) │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ @@ -27887,15 +27887,15 @@ │ │ │ │ │ mit X 0,0033 auf Ihrer Fräsmaschine befehlen, aber ein Schritt Ihres Schrittmotors oder eine Encoderzählung 0,00125 beträgt, dann könnte die befohlene Position 0,0033 sein, aber die tatsächliche │ │ │ │ │ Position wird 0,0025 (2 Schritte) oder 0,00375 (3 Schritte) sein. │ │ │ │ │ Vorschau-Plot Wird eine Datei geladen, so wird im Anzeigebereich eine Vorschau angezeigt. Schnelle Bewegungen (z.B. durch den Befehl G0) werden als cyanfarbene Linien dargestellt. Bewegungen │ │ │ │ │ im Vorschub (z. B. mit dem Befehl ”G1”) werden als durchgezogene weiße Linien dargestellt. Verweilzeiten (z. B. durch den Befehl ”G4”) werden als kleine rosa ”X”-Markierungen dargestellt. │ │ │ │ │ G0 (Eilgang) Bewegungen vor einer Vorschubbewegung werden nicht in der Vorschau angezeigt. Eilgangbewegungen nach einem T (Werkzeugwechsel) werden erst nach der ersten Vorschubbewegung in der Vorschau angezeigt. Um eine dieser Funktionen auszuschalten, programmieren Sie einen │ │ │ │ │ G1 ohne Bewegungen vor den G0-Bewegungen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 596 / 1331 │ │ │ │ │ │ │ │ │ │ Programm-Extents Die Ausdehnungen des Programms in jeder Achse werden angezeigt. An den │ │ │ │ │ Enden werden die kleinsten und größten Koordinatenwerte angegeben. In der Mitte ist die Differenz │ │ │ │ │ zwischen den Koordinaten dargestellt. │ │ │ │ │ Wenn einige Koordinaten die ”weichen Grenzen” in der INI-Datei überschreiten, wird die betreffende │ │ │ │ │ @@ -27930,15 +27930,15 @@ │ │ │ │ │ der Mittelpunkt der Linie. Andernfalls ist der Drehpunkt der Mittelpunkt des gesamten Programms. │ │ │ │ │ Durch Drehen des Mausrads oder durch Ziehen mit gedrückter rechter Maustaste oder durch Ziehen │ │ │ │ │ mit der Steuerung und gedrückter linker Maustaste wird die Vorschaudarstellung vergrößert oder │ │ │ │ │ verkleinert. │ │ │ │ │ Durch Anklicken eines der Symbole ”Voreingestellte Ansicht” oder durch Drücken von ”V” können │ │ │ │ │ mehrere voreingestellte Ansichten ausgewählt werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 597 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.3.4 Textanzeigebereich │ │ │ │ │ Wenn Sie mit der linken Maustaste auf eine Zeile des Programms klicken, wird diese Zeile sowohl in │ │ │ │ │ der grafischen als auch in der Textanzeige hervorgehoben. │ │ │ │ │ Wenn das Programm läuft, wird die Zeile, die gerade ausgeführt wird, rot hervorgehoben. Wenn der │ │ │ │ │ @@ -27957,15 +27957,15 @@ │ │ │ │ │ nicht angeschlossen, erscheint die Schaltfläche ”Brake” nicht auf dem Bildschirm. Ist die Umgebungsvariable AXIS_NO_AUTOCONFIGURE gesetzt, so ist dieses Verhalten deaktiviert und alle Elemente │ │ │ │ │ werden angezeigt. │ │ │ │ │ Die Achsengruppe Mit AXIS können Sie die Maschine manuell bewegen. Diese Aktion wird als ”Jogging” bezeichnet. Wählen Sie zunächst die zu bewegende Achse durch Anklicken aus. Klicken Sie │ │ │ │ │ dann auf die Schaltfläche ”+” oder ”-” und halten Sie sie gedrückt, je nachdem, in welche Richtung │ │ │ │ │ Sie verfahren möchten. Die ersten vier Achsen können auch mit den Pfeiltasten (X und Y), den Tasten │ │ │ │ │ PAGE UP und PAGE DOWN (Z) und den Tasten [ und ] (A) bewegt werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 598 / 1331 │ │ │ │ │ │ │ │ │ │ Wenn Sie ”Kontinuierlich” auswählen, wird die Bewegung so lange fortgesetzt, wie die Schaltfläche │ │ │ │ │ oder Taste gedrückt wird. Wenn ein anderer Wert gewählt wird, bewegt sich die Maschine bei jedem │ │ │ │ │ Klicken auf die Schaltfläche oder Drücken der Taste genau um die angezeigte Strecke. Standardmäßig │ │ │ │ │ sind die folgenden Werte verfügbar: ”0.1000, 0.0100, 0.0010, 0.0001”. │ │ │ │ │ @@ -27993,15 +27993,15 @@ │ │ │ │ │ Weitere Informationen finden Sie im Kapitel Referenzfahrt Konfiguration. │ │ │ │ │ Touch-Off │ │ │ │ │ Durch Drücken von Touch Off oder der END-Taste wird der G5x-Offset für die aktuelle Achse geändert, │ │ │ │ │ so dass der aktuelle Achsenwert dem angegebenen Wert entspricht. Ausdrücke können nach den │ │ │ │ │ Regeln für rs274ngc-Programme eingegeben werden, mit der Ausnahme, dass auf Variablen nicht │ │ │ │ │ Bezug genommen werden darf. Der resultierende Wert wird als Zahl angezeigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 599 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.4: Touch Off Fenster │ │ │ │ │ Siehe auch die Optionen im Menü Maschine: ”Werkstück berühren” und ”Werkstückhalter berühren”. │ │ │ │ │ Werkzeug Touch Off Durch Drücken der Schaltfläche Tool Touch Off werden die Werkzeuglänge und │ │ │ │ │ die Offsets des aktuell geladenen Werkzeugs so verändert, dass die aktuelle Position der Werkzeugspitze mit der eingegebenen Koordinate übereinstimmt. │ │ │ │ │ @@ -28019,15 +28019,15 @@ │ │ │ │ │ spindle.0.reverse sein). Die Schaltflächen in der nächsten Zeile erhöhen oder verringern die Drehgeschwindigkeit. Mit dem Kontrollkästchen in der dritten Zeile kann die Spindelbremse aktiviert oder │ │ │ │ │ deaktiviert werden. Je nach Maschinenkonfiguration werden möglicherweise nicht alle Elemente in │ │ │ │ │ dieser Gruppe angezeigt. Durch Drücken der Spindelstarttaste wird die S-Drehzahl auf 1 gesetzt. │ │ │ │ │ Die Kühlmittelgruppe Mit den beiden Schaltflächen können die Kühlmittel Nebel und Flut ein- und │ │ │ │ │ ausgeschaltet werden. Je nach Konfiguration Ihres Geräts werden möglicherweise nicht alle Elemente │ │ │ │ │ in dieser Gruppe angezeigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 600 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.3.6 MDI │ │ │ │ │ Mit MDI können G-Code-Befehle manuell eingegeben werden. Wenn das Gerät nicht eingeschaltet ist │ │ │ │ │ oder wenn ein Programm läuft, sind die MDI-Steuerungen nicht verfügbar. │ │ │ │ │ │ │ │ │ │ @@ -28042,15 +28042,15 @@ │ │ │ │ │ Durch Verschieben dieses Schiebereglers kann der programmierte Vorschub geändert werden. Wenn │ │ │ │ │ z.B. ein Programm ”F60” verlangt und der Schieberegler auf 120% eingestellt ist, dann ist der resultierende Vorschub 72. │ │ │ │ │ 10.1.3.8 Spindeldrehzahl-Anpassung │ │ │ │ │ Durch Verschieben dieses Schiebereglers kann die programmierte Spindeldrehzahl geändert werden. Wenn ein Programm beispielsweise S8000 anfordert und der Schieberegler auf 80% eingestellt │ │ │ │ │ ist, beträgt die resultierende Spindeldrehzahl 6400. Dieser Punkt erscheint nur, wenn der HAL-Pin │ │ │ │ │ spindle.0.speed-out angeschlossen ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 601 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.3.9 Jog-Geschwindigkeit │ │ │ │ │ Durch Bewegen dieses Schiebereglers kann die Geschwindigkeit des Joggens geändert werden. Zum │ │ │ │ │ Beispiel, wenn der Schieberegler auf 1 Zoll / min eingestellt ist, dann wird ein 0,01-Zoll-Joggen in etwa │ │ │ │ │ 0,6 Sekunden oder 1/100 einer Minute abgeschlossen. In der Nähe der linken Seite (langsames Joggen) sind die Werte eng beieinander angeordnet, während sie in der Nähe der rechten Seite (schnelle │ │ │ │ │ @@ -28102,15 +28102,15 @@ │ │ │ │ │ Jede (engl. any) │ │ │ │ │ Variiert │ │ │ │ │ Handbuch │ │ │ │ │ Handbuch │ │ │ │ │ Handbuch │ │ │ │ │ Handbuch │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 602 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.1: (continued) │ │ │ │ │ Tastenkombination │ │ │ │ │ I │ │ │ │ │ C │ │ │ │ │ @@ -28200,15 +28200,15 @@ │ │ │ │ │ Jede (engl. any) │ │ │ │ │ Jede (engl. any) │ │ │ │ │ │ │ │ │ │ 10.1.5 Show LinuxCNC Status (linuxcnctop) │ │ │ │ │ AXIS enthält ein Programm namens linuxcnctop, das einige der Details des LinuxCNC-Status anzeigt. │ │ │ │ │ Sie können dieses Programm ausführen, indem Sie Maschine > LinuxCNC-Status anzeigen aufrufen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 603 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.7: LinuxCNC-Statusfenster │ │ │ │ │ Der Name jedes Elements wird in der linken Spalte angezeigt. Der aktuelle Wert wird in der rechten │ │ │ │ │ Spalte angezeigt. Wenn sich der Wert kürzlich geändert hat, wird er rot unterlegt angezeigt. │ │ │ │ │ │ │ │ │ │ @@ -28225,15 +28225,15 @@ │ │ │ │ │ MDI> │ │ │ │ │ (0.0, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ MDI> G1 F5 X1 │ │ │ │ │ MDI> │ │ │ │ │ (0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ MDI> │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 604 / 1331 │ │ │ │ │ │ │ │ │ │ (1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ │ │ │ │ │ 10.1.7 axis-remote │ │ │ │ │ AXIS enthält ein Programm namens axis-remote, das bestimmte Befehle an einen laufenden AXIS │ │ │ │ │ @@ -28262,15 +28262,15 @@ │ │ │ │ │ 10.1.9 Python modules │ │ │ │ │ AXIS enthält mehrere Python-Module, die für andere nützlich sein können. Für weitere Informationen │ │ │ │ │ über eines dieser Module verwenden Sie pydoc oder lesen Sie den Quellcode. Zu │ │ │ │ │ diesen Modulen gehören: │ │ │ │ │ • emc’ ermöglicht den Zugriff auf die LinuxCNC Befehls-, Status- und Fehlerkanäle │ │ │ │ │ • gcode bietet Zugriff auf den RS274NGC-Interpreter │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 605 / 1331 │ │ │ │ │ │ │ │ │ │ • rs274 bietet zusätzliche Tools für die Arbeit mit RS274NGC-Dateien │ │ │ │ │ • hal allows the creation of non-realtime HAL components written in Python │ │ │ │ │ • _togl stellt ein OpenGL-Widget bereit, das in Tkinter-Anwendungen verwendet werden kann │ │ │ │ │ • minigl bietet Zugriff auf die von AXIS verwendete Teilmenge von OpenGL │ │ │ │ │ @@ -28280,44 +28280,44 @@ │ │ │ │ │ können Sie dies mit ”scripts/rip-environment” tun. │ │ │ │ │ │ │ │ │ │ 10.1.10 Using AXIS in Lathe Mode │ │ │ │ │ Durch Einfügen der Zeile LATHE = 1 in den Abschnitt [DISPLAY] der INI-Datei wählt AXIS den Drehmaschinenmodus. Die Y-Achse wird in den Koordinatenanzeigen nicht angezeigt, die Ansicht wird so │ │ │ │ │ geändert, dass die Z-Achse nach rechts und die X-Achse zum unteren Rand des Bildschirms zeigt, und │ │ │ │ │ mehrere Steuerelemente (z. B. die für voreingestellte Ansichten) werden entfernt. Die Koordinatenanzeigen für X werden durch Durchmesser und Radius ersetzt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 606 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.9: AXIS-Drehmaschinenmodus │ │ │ │ │ Durch Drücken von V wird die gesamte Datei angezeigt, sofern eine solche geladen ist. │ │ │ │ │ Im Drehmaschinenmodus wird die Form des geladenen Werkzeugs (falls vorhanden) angezeigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 607 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.10: Drehwerkzeug-Form │ │ │ │ │ Um die Anzeige in eine Drehbank mit hinterem Werkzeug zu ändern, müssen Sie sowohl LATHE = │ │ │ │ │ 1 als auch BACK_TOOL_LATHE = 1 in der Sektion [DISPLAY] eingeben. Dadurch wird die Ansicht │ │ │ │ │ umgedreht und das Werkzeug auf die Rückseite der Z-Achse gelegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 608 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.11: Lathe Back Tool Shape │ │ │ │ │ │ │ │ │ │ 10.1.11 Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam │ │ │ │ │ cutting mode) │ │ │ │ │ Durch Einfügen der Zeile FOAM = 1 in den [DISPLAY]-Abschnitt der INI-Datei wählt AXIS den Schaumschneidemodus. In der Programmvorschau werden die XY-Bewegungen in einer Ebene und die UVBewegungen in einer anderen Ebene angezeigt. In der Live-Darstellung werden Linien zwischen entsprechenden Punkten auf der XY-Ebene und der UV-Ebene gezeichnet. Die speziellen Kommentare │ │ │ │ │ (XY_Z_POS) und (UV_Z_POS) legen die Z-Koordinaten dieser Ebenen fest, die standardmäßig 0 und │ │ │ │ │ 1,5 Maschineneinheiten betragen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 609 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.12: Modus Schaumstoffschneiden │ │ │ │ │ │ │ │ │ │ 10.1.12 Erweiterte Konfiguration │ │ │ │ │ Wenn AXIS gestartet wird, werden die HAL-Pins für die grafische Benutzeroberfläche erstellt und │ │ │ │ │ @@ -28325,15 +28325,15 @@ │ │ │ │ │ kann aber jeder beliebige Dateiname sein. Diese Befehle werden nach der Erstellung des Bildschirms │ │ │ │ │ ausgeführt und garantieren, dass die HAL-Pins des Widgets verfügbar sind. Sie können mehrere Zeilen │ │ │ │ │ mit POSTGUI_HALFILE= in der INI haben. Sie werden nacheinander in der Reihenfolge │ │ │ │ │ ausgeführt, in der sie erscheinen. │ │ │ │ │ Weitere Informationen zu den Einstellungen in der INI-Datei der Funktionsweise von AXIS, finden Sie │ │ │ │ │ im Kapitel INI-Konfiguration zur Display Section. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 610 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.12.1 Programm-Filter │ │ │ │ │ AXIS hat die Möglichkeit, geladene Dateien durch ein ”Filterprogramm” zu schicken. Dieser Filter │ │ │ │ │ kann jede gewünschte Aufgabe erfüllen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit │ │ │ │ │ ”M2” endet, oder etwas so Kompliziertes wie die Erzeugung von G-Code aus einem Bild. │ │ │ │ │ @@ -28354,15 +28354,15 @@ │ │ │ │ │ │ │ │ │ │ Auf diese Weise kann jedes Python-Skript geöffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter ”nc_files/holecircle.py” verfügbar. Dieses Skript erzeugt │ │ │ │ │ G-Code für das Bohren einer Reihe von Löchern entlang des Umfangs eines Kreises. │ │ │ │ │ │ │ │ │ │ Abbildung 10.13: Kreisförmige Löcher │ │ │ │ │ Wenn die Umgebungsvariable AXIS_PROGRESS_BAR gesetzt ist, werden in stderr Zeilen der Form │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 611 / 1331 │ │ │ │ │ │ │ │ │ │ FILTER_PROGRESS=%d │ │ │ │ │ │ │ │ │ │ setzt den AXIS-Fortschrittsbalken auf den angegebenen Prozentsatz. Diese Funktion sollte von jedem │ │ │ │ │ Filter verwendet werden, der lange läuft. │ │ │ │ │ @@ -28398,15 +28398,15 @@ │ │ │ │ │ Beispiel einer .axisrc-Datei │ │ │ │ │ root_window.bind(””, ”destroy .”) │ │ │ │ │ help2.append((”Control-Q”, ”Quit”)) │ │ │ │ │ │ │ │ │ │ Das folgende Beispiel stoppt den Dialog ”Wollen Sie wirklich beenden”. │ │ │ │ │ root_window.tk.call(”wm”,”protocol”,”.”,”WM_DELETE_WINDOW”,”destroy .”) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 612 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.12.5 USER_COMMAND_FILE │ │ │ │ │ │ │ │ │ │ A configuration-specific Python file may be specified with an INI file setting [DISPLAY]USER_COMMAND_FIL │ │ │ │ │ Like a ~/.axisrc file, this file is sourced just before the AXIS GUI is displayed. This file is specific to │ │ │ │ │ @@ -28441,15 +28441,15 @@ │ │ │ │ │ wobei (AXIS,hide) an erster Stelle steht. Alles, was nach einem (AXIS,stop) kommt, wird während der │ │ │ │ │ Vorschau nicht gezeichnet. │ │ │ │ │ Diese Kommentare sind nützlich, um die Anzeige der Vorschau zu entschlacken (z. B. kann man bei │ │ │ │ │ der Fehlersuche in einer größeren G-Code-Datei die Vorschau für bestimmte Teile, die bereits gut │ │ │ │ │ funktionieren, deaktivieren). │ │ │ │ │ • (AXIS,hide) Stoppt die Vorschau (muss zuerst sein) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 613 / 1331 │ │ │ │ │ │ │ │ │ │ • (AXIS,show) Setzt die Vorschau fort (muss auf ein hide folgen) │ │ │ │ │ • (AXIS,stop) Stoppt die Vorschau von hier bis zum Ende der Datei. │ │ │ │ │ • (AXIS,notify,the_text) Zeigt the_text als Infoanzeige an │ │ │ │ │ Diese Anzeige kann in der AXIS-Vorschau nützlich sein, wenn (Debug-, Nachrichten-) Kommentare │ │ │ │ │ @@ -28532,15 +28532,15 @@ │ │ │ │ │ │ │ │ │ │ Dir │ │ │ │ │ IN │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ axisui.resume-inhibit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 614 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.14 Hinweise zur AXIS-Anpassung │ │ │ │ │ AXIS ist eine ziemlich große und schwer zu durchdringende Codebasis. Das ist hilfreich, um den Code │ │ │ │ │ stabil zu halten, macht es aber schwierig, ihn anzupassen. │ │ │ │ │ Hier werden wir Codeschnipsel zeigen, um das Verhalten oder die Darstellung des Bildschirms zu │ │ │ │ │ @@ -28576,15 +28576,15 @@ │ │ │ │ │ # G-Code-Schriftart ist unabhängig │ │ │ │ │ root_window.tk.call(’.pane.bottom.t.text’,’configure’,’-foreground’,’blue’) │ │ │ │ │ #root_window.tk.call(’.pane.bottom.t.text’,’configure’,’-foreground’,’blue’,’-font’,font) │ │ │ │ │ #root_window.tk.call(’.pane.bottom.t.text’,’configure’,’-foreground’,’blue’,’-font’,font,’- ←height’,’12’) │ │ │ │ │ │ │ │ │ │ 10.1.14.4 Ändern der Rapid Rate mit Tastenkombinationen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 615 / 1331 │ │ │ │ │ │ │ │ │ │ # Verwenden Sie Control + ‘ oder 1-0 als Tastaturkürzel für die rapid rate und behalten Sie ←‘ oder 1-0 für feedrate │ │ │ │ │ # fügt auch Text zur Kurzreferenz in der Hilfe hinzu │ │ │ │ │ help1.insert(10,(”Strg+ ‘,1..9,0”, _(”Set Rapid Override from 0% to 100%”)),) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(0)) │ │ │ │ │ @@ -28626,15 +28626,15 @@ │ │ │ │ │ commands.set_view_z() │ │ │ │ │ │ │ │ │ │ 10.1.14.8 Erstellen neuer AXISUI HAL-Pins │ │ │ │ │ def user_hal_pins(): │ │ │ │ │ comp.newpin(’my-new-in-pin’, hal.HAL_BIT, hal.HAL_IN) │ │ │ │ │ comp.ready() │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 616 / 1331 │ │ │ │ │ │ │ │ │ │ 10.1.14.9 Neue HAL-Komponente und Pins erstellen │ │ │ │ │ # Komponente erstellen │ │ │ │ │ mycomp = hal.component(’meine_Komponente’) │ │ │ │ │ mycomp.newpin(’idle-led’,hal.HAL_BIT,hal.HAL_IN) │ │ │ │ │ @@ -28675,15 +28675,15 @@ │ │ │ │ │ elif hal.get_value(’gladevcp.user0-tab’): │ │ │ │ │ root_window.tk.call(’.pane.top.right’,’raise’,’user_0’) │ │ │ │ │ except: │ │ │ │ │ pass │ │ │ │ │ │ │ │ │ │ 10.1.14.11 Hinzufügen einer GOTO Referenzpunkt (engl. Home)-Taste │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 617 / 1331 │ │ │ │ │ │ │ │ │ │ def goto_home(axis): │ │ │ │ │ if s.interp_state == linuxcnc.INTERP_IDLE: │ │ │ │ │ home = inifile.find(’JOINT_’ + str(inifile.find(’TRAJ’, ’COORDINATES’).upper(). ←index(axis)), ’HOME’) │ │ │ │ │ mode = s.task_mode │ │ │ │ │ @@ -28722,15 +28722,15 @@ │ │ │ │ │ print(’mybutton was released’) │ │ │ │ │ # jede Funktion, die von Tcl aufgerufen wird, muss zu TclCommands hinzugefügt werden │ │ │ │ │ TclCommands.mybutton_clicked = mybutton_clicked │ │ │ │ │ TclCommands.mybutton_pressed = mybutton_pressed │ │ │ │ │ TclCommands.mybutton_released = mybutton_released │ │ │ │ │ commands = TclCommands(root_window) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 10.1.14.13 Interne Variablen lesen │ │ │ │ │ # die folgenden Variablen können aus der vars-Instanz gelesen werden │ │ │ │ │ print(vars.machine.get()) │ │ │ │ │ print(vars.emcini.get()) │ │ │ │ │ active_codes │ │ │ │ │ = StringVar │ │ │ │ │ @@ -28840,15 +28840,15 @@ │ │ │ │ │ task_state │ │ │ │ │ = IntVar │ │ │ │ │ taskfile │ │ │ │ │ = StringVar │ │ │ │ │ │ │ │ │ │ 618 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ teleop_mode │ │ │ │ │ tool │ │ │ │ │ touch_off_system │ │ │ │ │ trajcoordinates │ │ │ │ │ tto_g11 │ │ │ │ │ view_type │ │ │ │ │ @@ -28892,15 +28892,15 @@ │ │ │ │ │ root_window.tk.call(’.pane.top.right.fnumbers.text’,’configure’,’-foreground’,’green’,’- ←background’,’black’) │ │ │ │ │ │ │ │ │ │ 10.1.14.18 Ändern der Buttons der Werkzeugleiste │ │ │ │ │ # ändern der Werkzeugleisten-Buttons │ │ │ │ │ buW = ’3’ │ │ │ │ │ buH = ’2’ │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 620 / 1331 │ │ │ │ │ │ │ │ │ │ boW = ’3’ │ │ │ │ │ root_window.tk.call(’.toolbar.machine_estop’,’configure’,’-image’,’’,’-text’,’ESTOP’,’- ←width’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.machine_power’,’configure’,’-image’,’’,’-text’,’POWER’,’- ←width’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.file_open’,’configure’,’-image’,’’,’-text’,’OPEN’,’-width’, ←buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ @@ -28931,15 +28931,15 @@ │ │ │ │ │ (0,0,255,255), │ │ │ │ │ (255,255,0,255), │ │ │ │ │ (255,255,255,255), │ │ │ │ │ (0,255,255,255)) │ │ │ │ │ except Exception as e: │ │ │ │ │ print(e) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 621 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2 GMOCCAPY │ │ │ │ │ 10.2.1 Einführung │ │ │ │ │ GMOCCAPY is a GUI for LinuxCNC, designed to be used with a touch screen, but can also be used on │ │ │ │ │ normal screens with a mouse or hardware buttons and MPG wheels, as it presents HAL Pins for the │ │ │ │ │ @@ -28955,15 +28955,15 @@ │ │ │ │ │ GMOCCAPY can be localized very easy, because the corresponding files are separated from the linuxcnc.po files, so there is no need to translate unneeded stuff. The files are placed in /src/po/gmoccapy. │ │ │ │ │ You could just copy the gmoccapy.pot file to something like it.po and translate that file with gtranslator │ │ │ │ │ or poedit. After rebuilding, you’d get the GUI in your preference language. To facilitate the sharing │ │ │ │ │ of the translation, GMOCCAPY is available on the Weblate web interface. GMOCCAPY is currently │ │ │ │ │ available in English, German, Spanish, Polish, Serbian and Hungarian. Feel free to help me to introduce more languages, be it locally or via the web. If you need help, don’t hesitate to contact me on │ │ │ │ │ nieson@web.de. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 622 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.2 Anforderungen │ │ │ │ │ GMOCCAPY 3 has been tested on Debian Jessie, Debian Stretch and MINT 18 with LinuxCNC master │ │ │ │ │ and 2.8 release. It fully support joint / axis changes of LinuxCNC, making it suitable as GUI for Scara, │ │ │ │ │ Robots or any other config with more joints than axes. So it supports also gantry configs. If you use │ │ │ │ │ @@ -28976,15 +28976,15 @@ │ │ │ │ │ │ │ │ │ │ 10.2.3 How to Get GMOCCAPY │ │ │ │ │ GMOCCAPY 3 is included in the standard distribution of LinuxCNC since release 2.7. So the easiest │ │ │ │ │ way to get GMOCCAPY on your controlling PC is just to download the ISO and install it from the │ │ │ │ │ CD/DVD/USB-stick. This allows you to receive updates with the regular Debian packages. │ │ │ │ │ In the release notes aka changelist you can track the latest bugfixes and features. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 623 / 1331 │ │ │ │ │ │ │ │ │ │ Sie erhalten einen ähnlichen Bildschirm wie den folgenden (das Design kann je nach Ihrer Konfiguration variieren): │ │ │ │ │ │ │ │ │ │ 10.2.4 Basiseinstellung │ │ │ │ │ GMOCCAPY 3 unterstützt die folgenden Befehlszeilenoptionen: │ │ │ │ │ @@ -28995,15 +28995,15 @@ │ │ │ │ │ Es gibt eigentlich nicht viel zu konfigurieren, um GMOCCAPY auszuführen, aber es gibt einige Punkte, │ │ │ │ │ die Sie beachten sollten, wenn Sie alle Funktionen der GUI nutzen wollen. │ │ │ │ │ Sie werden eine Reihe von Simulationskonfigurationen (INI-Dateien) finden, die nur die Grundlagen │ │ │ │ │ zeigen: │ │ │ │ │ • gmoccapy.ini │ │ │ │ │ • gmoccapy_4_axis.ini │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 624 / 1331 │ │ │ │ │ │ │ │ │ │ • lathe_configs/gmoccapy_lathe.ini │ │ │ │ │ • lathe_configs/gmoccapy_lathe_imperial.ini │ │ │ │ │ • gmoccapy_left_panel.ini │ │ │ │ │ • gmoccapy_right_panel.ini │ │ │ │ │ @@ -29040,15 +29040,15 @@ │ │ │ │ │ themes, DRO units, colors, and keyboard settings, etc., see settings page for more details. │ │ │ │ │ Anmerkung │ │ │ │ │ If no path or file is given, GMOCCAPY will use as default .pref, if no machine │ │ │ │ │ name is given in your INI File it will use gmoccapy.pref. The file will be stored in your config directory, │ │ │ │ │ so the settings will not be mixed if you use several configs. If you only want to use one file for several │ │ │ │ │ machines, you need to include PREFERENCE_FILE_PATH in your INI. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 625 / 1331 │ │ │ │ │ │ │ │ │ │ • MAX_FEED_OVERRIDE = 1.5 - Sets the maximum feed override, in the example given, you will be │ │ │ │ │ allowed to override the feed by 150%. │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn kein Wert angegeben wird, so wird er auf 1,0 gesetzt. │ │ │ │ │ @@ -29077,15 +29077,15 @@ │ │ │ │ │ If not set, half of MAX_LINEAR_VELOCITY will be used. If that value is also not given, it will default │ │ │ │ │ to 180. │ │ │ │ │ │ │ │ │ │ • MAX_LINEAR_VELOCITY = 230.0 - Legt die maximale Geschwindigkeit der Maschine fest. │ │ │ │ │ Anmerkung │ │ │ │ │ Der Standardwert ist 600, falls nicht festgelegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 626 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.4.3 Makro-Buttons │ │ │ │ │ You can add macros to GMOCCAPY, similar to Touchy’s way. A macro is nothing else than a NGC file. │ │ │ │ │ You are able to execute complete CNC programs in MDI mode by just pushing one button. To do so, │ │ │ │ │ you first have to specify the search path for macros: │ │ │ │ │ @@ -29124,15 +29124,15 @@ │ │ │ │ │ GMOCCAPY akzeptiert auch Makros, die nach Parametern wie den folgenden fragen: │ │ │ │ │ [MACRO] │ │ │ │ │ MACRO = go_to_position X-pos Y-pos Z-pos │ │ │ │ │ │ │ │ │ │ Die Parameter müssen durch Leerzeichen getrennt werden. Dieses Beiaspiel ruft eine Datei ”go_to_position.n │ │ │ │ │ mit dem folgenden Inhalt auf: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 627 / 1331 │ │ │ │ │ │ │ │ │ │ ; Testdatei ”go to position” (engl. für geh’ zur Position) │ │ │ │ │ ; fährt die Maschine zu einer bestimmten Position │ │ │ │ │ O sub │ │ │ │ │ G17 │ │ │ │ │ @@ -29152,15 +29152,15 @@ │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ Nach dem Drücken der Taste Makro ausführen werden Sie aufgefordert, die Werte für X-pos Y-pos │ │ │ │ │ Z-pos einzugeben, und das Makro wird nur ausgeführt, wenn alle Werte angegeben wurden. │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn Sie ein Makro ohne Bewegung verwenden möchten, beachten Sie auch die Hinweise in bekannte Probleme. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 628 / 1331 │ │ │ │ │ │ │ │ │ │ Makrobeispiel mit dem ”Gehe zu Position”-Makro │ │ │ │ │ 10.2.4.4 Embedded Tabs and Panels │ │ │ │ │ You can add embedded programs to GMOCCAPY like you can do in AXIS, Touchy and Gscreen. All is │ │ │ │ │ done by GMOCCAPY automatically if you include a few lines in your INI file in the DISPLAY section. │ │ │ │ │ @@ -29174,15 +29174,15 @@ │ │ │ │ │ EMBED_TAB_LOCATION = ntb_preview │ │ │ │ │ EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade │ │ │ │ │ │ │ │ │ │ Alles, was Sie beachten müssen, ist, dass Sie für jede Registerkarte oder jedes Seitenfeld die genannten drei Zeilen einfügen: │ │ │ │ │ • EMBED_TAB_NAME = Stellt den Namen der Registerkarte oder des Seitenfensters dar, es ist Ihnen │ │ │ │ │ überlassen, welchen Namen Sie verwenden, aber er muss vorhanden sein! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 629 / 1331 │ │ │ │ │ │ │ │ │ │ • EMBED_TAB_LOCATION = Der Ort, an dem Ihr Programm in der GUI platziert wird, siehe Abbildung Embedded tab locations. Gültige Werte sind: │ │ │ │ │ – ntb_user_tabs (as main tab, covering the complete screen) │ │ │ │ │ – ntb_preview (as tab on the preview side (1)) │ │ │ │ │ – hbox_jog (will hide the jog buttons and introduce your glade file here (2)) │ │ │ │ │ @@ -29217,29 +29217,29 @@ │ │ │ │ │ gladevcp -c gladevcp -u hitcounter.py -H manual-example.hal manual-example.ui │ │ │ │ │ │ │ │ │ │ fügt das Panel manual-example.ui hinzu, fügt einen benutzerdefinierten Python-Handler, hitcounter.py, ein und stellt alle Verbindungen her, nachdem das Panel gemäß manual-example.hal realisiert wurde. │ │ │ │ │ hide (engl. für ausblenden) │ │ │ │ │ │ │ │ │ │ blendet das gewählte Kästchen aus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 630 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.14: Eingebettete Registerkartenpositionen │ │ │ │ │ Anmerkung │ │ │ │ │ If you make any HAL connections to your custom glade panel, you need to do that in the HAL file │ │ │ │ │ specified in the EMBED_TAB_COMMAND line, otherwise you may get an error that the HAL pin does │ │ │ │ │ not exist — this is because of race conditions loading the HAL files. Connections to GMOCCAPY HAL │ │ │ │ │ pins need to be made in the postgui HAL file specified in your INI file, because these pins do not exist │ │ │ │ │ prior of realizing the GUI. │ │ │ │ │ │ │ │ │ │ Hier sind einige Beispiele: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ ntb_preview │ │ │ │ │ │ │ │ │ │ 631 / 1331 │ │ │ │ │ │ │ │ │ │ box_right - and GMOCCAPY in MDI mode │ │ │ │ │ │ │ │ │ │ @@ -29260,15 +29260,15 @@ │ │ │ │ │ provide a -response HAL pin. │ │ │ │ │ For more detailed information of the pins see User Created Message HAL Pins. │ │ │ │ │ Beispiel für die Konfiguration von Benutzernachrichten │ │ │ │ │ MESSAGE_TEXT = This is a info-message test │ │ │ │ │ MESSAGE_TYPE = status │ │ │ │ │ MESSAGE_PINNAME = statustest │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 632 / 1331 │ │ │ │ │ │ │ │ │ │ MESSAGE_TEXT = This is a yes no dialog test │ │ │ │ │ MESSAGE_TYPE = yesnodialog │ │ │ │ │ MESSAGE_PINNAME = yesnodialog │ │ │ │ │ MESSAGE_TEXT = Text can be small, big, bolditalic, │ │ │ │ │ @@ -29309,15 +29309,15 @@ │ │ │ │ │ self.widgets.rbt_auto.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.tbtn_setup.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.tbtn_user_tabs.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.btn_exit.set_size_request(*BB_SIZE) │ │ │ │ │ │ │ │ │ │ The widget names can the looked up in the /usr/share/gmoccapy.glade file │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 633 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.4.8 User CSS File │ │ │ │ │ Similar to the User command file it’s possible to influence the appearance by cascading style sheets │ │ │ │ │ (CSS). If a file ~/.gmoccapy_css exists, its contents are loaded into the stylesheet provider and are │ │ │ │ │ so being applied to the GUI. │ │ │ │ │ @@ -29361,15 +29361,15 @@ │ │ │ │ │ │ │ │ │ │ You can specify where to save the log file: │ │ │ │ │ [DISPLAY] │ │ │ │ │ LOG_FILE = gmoccapy.log │ │ │ │ │ │ │ │ │ │ If LOG_FILE is not set, logging happens to $HOME/.log. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 634 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.5 HAL-Pins │ │ │ │ │ GMOCCAPY exports several HAL pins to be able to react to hardware devices. The goal is to get a │ │ │ │ │ GUI that may be operated in a tool shop, completely/mostly without mouse or keyboard. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -29402,15 +29402,15 @@ │ │ │ │ │ For the bottom (horizontal) buttons they are: │ │ │ │ │ • gmoccapy.h-button.button-0 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-1 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-2 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-3 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-4 (bit IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 635 / 1331 │ │ │ │ │ │ │ │ │ │ • gmoccapy.h-button.button-5 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-6 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-7 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-8 (bit IN) │ │ │ │ │ @@ -29516,15 +29516,15 @@ │ │ │ │ │ │ │ │ │ │ set selected │ │ │ │ │ │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 636 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.5: Funktionelle Zuordnung der horizontalen │ │ │ │ │ Buttons (3) │ │ │ │ │ Pin │ │ │ │ │ Tool Mode │ │ │ │ │ @@ -29577,15 +29577,15 @@ │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ Wir haben also 67 Reaktionen mit nur 10 HAL-Pins! │ │ │ │ │ These pins are made available to be able to use the screen without a touch panel, or protect it from │ │ │ │ │ excessive use by placing hardware buttons around the panel. They are available in a sample configuration like shown in the image below. │ │ │ │ │ Sample configuration ”gmoccapy_sim_hardware_button” showing the side buttons │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 637 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.5.2 Velocities and Overrides │ │ │ │ │ All sliders from GMOCCAPY can be connected to hardware encoders or hardware potentiometers. │ │ │ │ │ Anmerkung │ │ │ │ │ For GMOCCAPY 3 some HAL pin names have changed when new controls have been implemented. │ │ │ │ │ @@ -29597,15 +29597,15 @@ │ │ │ │ │ • gmoccapy.jog.jog-velocity.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ • gmoccapy.feed.feed-override.counts (s32 IN) - feed override │ │ │ │ │ • gmoccapy.feed.feed-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ • gmoccapy.feed.reset-feed-override (bit IN) - reset the feed override to *0% │ │ │ │ │ • gmoccapy.spindle.spindle-override.counts (s32 IN) - spindle override │ │ │ │ │ • gmoccapy.spindle.spindle-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 638 / 1331 │ │ │ │ │ │ │ │ │ │ • gmoccapy.spindle.reset-spindle-override (bit IN) - reset the spindle override to *0% │ │ │ │ │ • gmoccapy.rapid.rapid-override.counts (s32 IN) - Maximal Velocity of the *chine │ │ │ │ │ • gmoccapy.rapid.rapid-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ To connect potentiometers, use the following pins: │ │ │ │ │ @@ -29635,15 +29635,15 @@ │ │ │ │ │ • gmoccapy.spc_spindle.increase (bit IN) - As long as True the value of the slider will increase │ │ │ │ │ • gmoccapy.spc_spindle.decrease (bit IN) - As long as True the value of the slider will decrease │ │ │ │ │ • gmoccapy.spc_spindle.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec) │ │ │ │ │ • gmoccapy.spc_spindle.value (float OUT) - Value of the widget │ │ │ │ │ • gmoccapy.spc_spindle.scaled-value (float OUT) - Scaled value of the widget .RAPIDS │ │ │ │ │ • gmoccapy.spc_rapid.increase (bit IN) - As long as True the value of the slider will increase │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 639 / 1331 │ │ │ │ │ │ │ │ │ │ • gmoccapy.spc_rapid.decrease (bit IN) - As long as True the value of the slider will decrease │ │ │ │ │ • gmoccapy.spc_rapid.scale (float IN) - A value to scale the output value (handy to change units/min │ │ │ │ │ to units/sec) │ │ │ │ │ • gmoccapy.spc_rapid.value (float OUT) - Value of the widget │ │ │ │ │ @@ -29678,15 +29678,15 @@ │ │ │ │ │ For the standard XYZ config following HAL pins will be available: │ │ │ │ │ • gmoccapy.jog.axis.jog-x-plus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-x-minus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-y-plus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-y-minus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-z-plus (bit IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 640 / 1331 │ │ │ │ │ │ │ │ │ │ • gmoccapy.jog.axis.jog-z-minus (bit IN) │ │ │ │ │ Wenn Sie eine 4-Achsen-Konfiguration verwenden, gibt es zwei zusätzliche Pins: │ │ │ │ │ • gmoccapy.jog.jog--plus (bit IN) │ │ │ │ │ • gmoccapy.jog.jog--minus (bit IN) │ │ │ │ │ @@ -29717,15 +29717,15 @@ │ │ │ │ │ • gmoccapy.jog.jog-inc-3 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-4 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-5 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-6 (bit IN) │ │ │ │ │ GMOCCAPY bietet auch einen HAL-Pin zur Ausgabe der gewählten Jog-Schrittweite: │ │ │ │ │ • gmoccapy.jog.jog-increment (float OUT) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 641 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.5.6 Hardware-Entsperr-Pin │ │ │ │ │ Um einen Schlüsselschalter zum Entsperren der Einstellungsseite verwenden zu können, wird der │ │ │ │ │ folgende Pin exportiert: │ │ │ │ │ • gmoccapy.unlock-settings (bit IN) - The settings page is unlocked if the pin is high. To use this │ │ │ │ │ @@ -29754,15 +29754,15 @@ │ │ │ │ │ Closing the message will reset the this pin. │ │ │ │ │ • gmoccapy.messages.yesnodialog-response (bit OUT) - This pin will change to 1 if the user clicks │ │ │ │ │ OK and in all other cases it will be 0. This pin will remain 1 until the dialog is called again. │ │ │ │ │ To add a user created message you need to add the message to the INI file in the DISPLAY section. │ │ │ │ │ See Configuration of User Created Messages. │ │ │ │ │ Beispiel für eine Benutzermeldung (INI-Datei) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 642 / 1331 │ │ │ │ │ │ │ │ │ │ MESSAGE_TEXT = LUBE FAULT │ │ │ │ │ MESSAGE_TYPE = okdialog │ │ │ │ │ MESSAGE_PINNAME = lube-fault │ │ │ │ │ MESSAGE_TEXT = X SHEAR PIN BROKEN │ │ │ │ │ @@ -29790,15 +29790,15 @@ │ │ │ │ │ Also loops will cause different values. │ │ │ │ │ 10.2.5.11 Tool Related Pins │ │ │ │ │ Werkzeugwechsel-Pins These pins are provided to use GMOCCAPY’s internal tool change dialog, │ │ │ │ │ similar to the one known from AXIS, but with several modifications. So you will not only get the │ │ │ │ │ message to change to tool number 3, but also the description of that tool like 7.5 mm 3 flute cutter. │ │ │ │ │ The information is taken from the tool table, so it is up to you what to display. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 643 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.15: GMOCCAPY tool change dialog │ │ │ │ │ • gmoccapy.toolchange-number (s32 IN) - The number of the tool to be changed │ │ │ │ │ • gmoccapy.toolchange-change (bit IN) - Indicates that a tool has to be changed │ │ │ │ │ • gmoccapy.toolchange-changed (bit OUT) - Indicates tool has been changed │ │ │ │ │ @@ -29814,15 +29814,15 @@ │ │ │ │ │ │ │ │ │ │ Werkzeug-Offset Pins These pins allow you to show the active tool offset values for X and Z in the │ │ │ │ │ tool information frame. You should know that they are only active after G43 has been sent. │ │ │ │ │ │ │ │ │ │ Abbildung 10.16: Tool information area │ │ │ │ │ • gmoccapy.tooloffset-x (float IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 644 / 1331 │ │ │ │ │ │ │ │ │ │ • gmoccapy.tooloffset-z (float IN) │ │ │ │ │ Anmerkung │ │ │ │ │ Die Zeile ”tooloffset-x” wird bei einer Fräsmaschine nicht benötigt und wird bei einer Fräsmaschine │ │ │ │ │ mit trivialer Kinematik nicht angezeigt. │ │ │ │ │ @@ -29853,15 +29853,15 @@ │ │ │ │ │ 1. Touch off your workpiece in X and Y. │ │ │ │ │ 2. Messen Sie die Höhe Ihres Blocks von der Basis, an der sich Ihr Werkzeugschalter befindet, bis │ │ │ │ │ zur Oberseite des Blocks (einschließlich Spannfutter usw.). │ │ │ │ │ 3. Drücken Sie die Taste Blockhöhe und geben Sie den Messwert ein. │ │ │ │ │ 4. Gehen Sie in den Automatikmodus und starten Sie Ihr Programm. │ │ │ │ │ Hier ist eine kleine Skizze: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 645 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.17: Werkzeugmessung Daten │ │ │ │ │ With the first given tool change the tool will be measured and the offset will be set automatically to │ │ │ │ │ fit the block height. The advantage of the GMOCCAPY way is, that you do not need a reference tool. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -29877,15 +29877,15 @@ │ │ │ │ │ • gmoccapy.probeheight (float OUT) - The probe switch height │ │ │ │ │ • gmoccapy.searchvel (float OUT) - The velocity to search for the tool probe switch │ │ │ │ │ • gmoccapy.probevel (float OUT) - The velocity to probe tool length │ │ │ │ │ 10.2.6.2 INI File Modifications │ │ │ │ │ Ändern Sie Ihre INI-Datei so, dass sie die folgenden Abschnitte enthält. │ │ │ │ │ Der RS274NGC-Abschnitt │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 646 / 1331 │ │ │ │ │ │ │ │ │ │ [RS274NGC] │ │ │ │ │ # Unterfunktion wird aufgerufen, wenn ein Fehler beim Werkzeugwechsel auftritt, wird nicht │ │ │ │ │ bei jeder Maschinenkonfiguration benötigt │ │ │ │ │ ON_ABORT_COMMAND=O call │ │ │ │ │ @@ -29928,15 +29928,15 @@ │ │ │ │ │ /configs/sim/gmoccapy/python die folgenden Dateien in den gerade erstellten Ordner config_dir/python: │ │ │ │ │ • toplevel.py │ │ │ │ │ • remap.py │ │ │ │ │ • stdglue.py │ │ │ │ │ Von /configs/sim/gmoccapy/macros kopieren │ │ │ │ │ • on_abort.ngc │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 647 / 1331 │ │ │ │ │ │ │ │ │ │ • change.ngc │ │ │ │ │ to the directory specified as SUBROUTINE_PATH, see RS274NGC Section. │ │ │ │ │ Open change.ngc with a editor and uncomment the following lines (49 and 50): │ │ │ │ │ F #<_hal[gmoccapy.probevel]> │ │ │ │ │ @@ -29971,15 +29971,15 @@ │ │ │ │ │ │ │ │ │ │ To enter the page you will have to click on │ │ │ │ │ and give an unlock code, which is 123 by │ │ │ │ │ default. If you want to change it at this time you will have to edit the hidden preference file, see the │ │ │ │ │ display section for details. │ │ │ │ │ Die Seite ist in drei Hauptregisterkarten unterteilt: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 648 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.7.1 Erscheinungsbild │ │ │ │ │ │ │ │ │ │ Abbildung 10.18: GMOCCAPY Einstellungsseite Erscheinungsbild │ │ │ │ │ Auf dieser Registerkarte finden Sie die folgenden Optionen: │ │ │ │ │ @@ -29991,15 +29991,15 @@ │ │ │ │ │ • Start als Fenster - Wenn Sie ”Start als Fenster” wählen, werden die Spinboxen zum Einstellen der │ │ │ │ │ Position und Größe aktiv. Einmal eingestellt, startet die GUI jedes Mal an der gewählten Stelle │ │ │ │ │ und mit der gewählten Größe. Dennoch kann der Benutzer die Größe und Position mit der Maus │ │ │ │ │ verändern, was aber keinen Einfluss auf die Einstellungen hat. │ │ │ │ │ • Window decorated - Allows the title bar to be hidden. (default: title bar visible) │ │ │ │ │ • hide cursor - Does allow to hide the cursor, what is very useful if you use a touch screen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 649 / 1331 │ │ │ │ │ │ │ │ │ │ • hide tooltips - Hides the tool tips. │ │ │ │ │ Tastatur The checkboxes allow the user to select if he wants the on board keyboard to be shown │ │ │ │ │ immediately, when entering the MDI Mode, when entering the offset page, the tooledit widget or │ │ │ │ │ when open a program in the EDIT mode. The keyboard button on the bottom button list will not be │ │ │ │ │ @@ -30025,15 +30025,15 @@ │ │ │ │ │ execute this file before starting LinuxCNC, it can be done also adding a starter to your local folder. │ │ │ │ │ ./config/autostart │ │ │ │ │ │ │ │ │ │ Damit das Layout beim Start automatisch eingestellt wird. │ │ │ │ │ Für matchbox-keyboard müssen Sie Ihr eigenes Layout erstellen, für ein deutsches Layout fragen Sie │ │ │ │ │ im Forum. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 650 / 1331 │ │ │ │ │ │ │ │ │ │ GMOCCAPY with Onboard keyboard in edit mode │ │ │ │ │ On Touch Off This gives the option whether to show the preview tab or the offset page tab when you │ │ │ │ │ enter the touch off mode by clicking the corresponding bottom button. │ │ │ │ │ • show preview │ │ │ │ │ @@ -30044,15 +30044,15 @@ │ │ │ │ │ • Relativer Modus = schwarz │ │ │ │ │ • Absoluter Modus = blau │ │ │ │ │ • Verbleibende Entfernung = gelb │ │ │ │ │ Die Vordergrundfarbe der DRO kann ausgewählt werden mit: │ │ │ │ │ • homed color = green │ │ │ │ │ • unhomed color = red │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 651 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Sie können durch die DRO-Modi (absolut, relativ, Entfernung zu gehen) wechseln, indem Sie auf die │ │ │ │ │ Zahl auf dem DRO klicken! Wenn Sie auf den linken Seitenbuchstaben des DRO klicken, können Sie │ │ │ │ │ in einem Popup-Fenster den Wert der Achsen festlegen, was das Einstellen des Werts erleichtert, da │ │ │ │ │ @@ -30090,15 +30090,15 @@ │ │ │ │ │ move or zoom within the preview: │ │ │ │ │ – Links drehen, Mitte verschieben, rechts zoomen │ │ │ │ │ – Links zoomen, Mitte verschieben, rechts rotieren │ │ │ │ │ – links bewegen, mitte drehen, rechts zoomen │ │ │ │ │ – Links zoomen, Mitte drehen, rechts bewegen │ │ │ │ │ – Links verschieben, Mitte zoomen, rechts rotieren │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 652 / 1331 │ │ │ │ │ │ │ │ │ │ – Links drehen, Mitte zoomen, rechts bewegen │ │ │ │ │ Die Standardeinstellung ist links verschieben, Mitte zoomen, rechts drehen. │ │ │ │ │ Mit dem Mausrad können Sie die Vorschau in jedem Modus vergrößern. │ │ │ │ │ Tipp │ │ │ │ │ @@ -30115,15 +30115,15 @@ │ │ │ │ │ Themen und Klänge Hier kann der Benutzer auswählen, welches Desktop-Thema angewendet werden soll und welche Fehler- und Meldungstöne abgespielt werden sollen. Standardmäßig ist ”Systemthema folgen” eingestellt. │ │ │ │ │ Es ermöglicht weiterhin, das Symbolthema zu ändern. Derzeit stehen drei Themen zur Verfügung: │ │ │ │ │ • classic │ │ │ │ │ • material │ │ │ │ │ • material light │ │ │ │ │ To create custom icon themes, see section Icon Theme for details. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 653 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.7.2 Hardware │ │ │ │ │ │ │ │ │ │ Hardware MPG Scale For the different HAL pins to connect MPG wheels to, you may select individual │ │ │ │ │ scales to be applied. The main reason for this was my own test to solve this through HAL connections, │ │ │ │ │ @@ -30139,15 +30139,15 @@ │ │ │ │ │ werden dies niemals zulassen. Jeder kann also wählen, ob er sie verwenden möchte oder nicht. │ │ │ │ │ Tastaturkürzel sind standardmäßig deaktiviert. │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ Es wird nicht empfohlen, Tastatur-Jogging zu verwenden, da dies ein ernsthaftes Risiko für │ │ │ │ │ Bediener und Maschine darstellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 654 / 1331 │ │ │ │ │ │ │ │ │ │ Please take care if you use a lathe, then the shortcuts will be different, see the Lathe Specific Section. │ │ │ │ │ Allgemeines │ │ │ │ │ • F1 - Trigger Estop (will work even if keyboard shortcuts are disabled) │ │ │ │ │ • F2 - Toggle machine on/off │ │ │ │ │ @@ -30178,15 +30178,15 @@ │ │ │ │ │ Spindel │ │ │ │ │ • Starting RPM - Sets the rpm to be used if the spindle is started and no S value has been set. │ │ │ │ │ Anmerkung │ │ │ │ │ This value will be presetted according to your settings in [DISPLAY] DEFAULT_SPINDLE_SPEED of │ │ │ │ │ your INI file. If you change the settings on the settings page, that value will be default from that │ │ │ │ │ moment, your INI file will not be modified. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 655 / 1331 │ │ │ │ │ │ │ │ │ │ • Spindelstange min und Spindelstange max - Legt die Grenzen der Spindelstange fest, die im INFORahmen auf dem Hauptbildschirm angezeigt werden. │ │ │ │ │ Standardwerte sind │ │ │ │ │ MIN = 0 │ │ │ │ │ MAX = 6000 │ │ │ │ │ @@ -30200,15 +30200,15 @@ │ │ │ │ │ please take care that the ”rabbit mode” is activated, otherwise you will not be able to jog faster │ │ │ │ │ than the turtle jog velocity, which is calculated using the turtle jog factor. │ │ │ │ │ • Turtle jog factor - Sets the scale to apply for turtle jog mode (button pressed, showing the turtle). If │ │ │ │ │ you set a factor of 20, the turtle max. jog velocity will be 1/20 of the max. velocity of the machine. │ │ │ │ │ Anmerkung │ │ │ │ │ This button can be controlled using the Turtle-Jog HAL Pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 656 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.7.3 Erweiterte Einstellungen │ │ │ │ │ │ │ │ │ │ Werkzeugmessung Bitte prüfen Sie Auto Tool Measurement │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -30222,15 +30222,15 @@ │ │ │ │ │ – X Pos. - Die X-Position des Werkzeugschalters. │ │ │ │ │ – Y Pos. - Die Y-Position des Werkzeugschalters. │ │ │ │ │ – Z Pos. - Die Z-Position des Werkzeugschalters, wir fahren im Eilgang zu dieser Koordinate. │ │ │ │ │ – Max. Probe The distance to search for contact, an error will be launched, if no contact is given │ │ │ │ │ in this range. The distance has to be given in relative coordinates, beginning the move from │ │ │ │ │ Z Pos., so you have to give a negative value to go down! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 657 / 1331 │ │ │ │ │ │ │ │ │ │ – Probe Height - The height of your probe switch, you can measure it. Just touch off the base │ │ │ │ │ where the probe switch is located and set that to zero. Then make a tool change and watch │ │ │ │ │ the tool_offset_z value, that is the height you must enter here. │ │ │ │ │ Geschwindigkeiten der Sonde │ │ │ │ │ @@ -30263,15 +30263,15 @@ │ │ │ │ │ the 11th message will delete the first one, so you will only see the last 10. │ │ │ │ │ • Font - The font and size you want to use to display the messages. │ │ │ │ │ • Use frames - If you activate the checkbox, each message will be displayed in a frame, so it is much │ │ │ │ │ easier to distinguish the messages. But you will need a little bit more space. │ │ │ │ │ • Launch test message-button - It will show a message, so you can see the changes of your settings │ │ │ │ │ without the need to generate an error. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 658 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.8 Icon Themen │ │ │ │ │ Icon-Themen werden verwendet, um das Aussehen der Icons von GMOCCAPY anzupassen. │ │ │ │ │ GMOCCAPY wird mit drei verschiedenen Symbolthemen geliefert: │ │ │ │ │ • classic - The classic GMOCCAPY icons. │ │ │ │ │ @@ -30307,15 +30307,15 @@ │ │ │ │ │ 16x16/actions sollte alle Icons mit der Kategorie ”actions” in der Größe 16x16 Pixel als Pixelgrafiken (z.B. png-Dateien) enthalten. Ein Sonderfall ist das Verzeichnis ”scalable/actions”, dieses │ │ │ │ │ enthält skalierbare Icons, die nicht an eine bestimmte Größe gebunden sind (z.B. svg-Dateien). │ │ │ │ │ Durch die Bereitstellung unterschiedlich großer Versionen der Icons können wir ein schön aussehendes Icon in verschiedenen Größen garantieren, und wir haben auch die Möglichkeit, das │ │ │ │ │ Icon entsprechend seiner Größe zu verändern, zum Beispiel kann ein 64x64 px großes Icon mehr │ │ │ │ │ Details enthalten als seine 16x16 px Version. │ │ │ │ │ • Für jedes Verzeichnis müssen wir auch einen Abschnitt in die Datei index.theme schreiben: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 659 / 1331 │ │ │ │ │ │ │ │ │ │ [16x16/actions] │ │ │ │ │ Size=16 │ │ │ │ │ Type=Fixed │ │ │ │ │ Context=Actions │ │ │ │ │ @@ -30358,28 +30358,28 @@ │ │ │ │ │ green’ish). │ │ │ │ │ #00ff00 │ │ │ │ │ Warning: this color indicates ”warning” (usually something │ │ │ │ │ yellow/orange’ish). │ │ │ │ │ #0000ff │ │ │ │ │ Error: this color indicates ”error” (usually something red’ish). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 660 / 1331 │ │ │ │ │ │ │ │ │ │ Tipp │ │ │ │ │ Examples of symbolic icons can be found at linuxcnc/share/gmoccapy/icons/material. │ │ │ │ │ │ │ │ │ │ 10.2.9 Drehmaschinen-spezifischer Abschnitt │ │ │ │ │ If in the INI file LATHE = 1 is given, the GUI will change its appearance to the special needs for a │ │ │ │ │ lathe. Mainly the Y axis will be hidden and the jog buttons will be arranged in a different order. │ │ │ │ │ │ │ │ │ │ Abbildung 10.19: Normale Drehmaschine │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 661 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.20: Back Tool Lathe │ │ │ │ │ As you see the R DRO has a black background and the D DRO is gray. This will change according to │ │ │ │ │ the active G-code G7 or G8. The active mode is visible by the black background, meaning in the shown │ │ │ │ │ images G8 is active. │ │ │ │ │ @@ -30390,15 +30390,15 @@ │ │ │ │ │ Normale Drehmaschine: │ │ │ │ │ • Arrow_Left or NumPad_Left - Jog Z minus │ │ │ │ │ • Arrow_Right or NumPad_Right - Jog Z plus │ │ │ │ │ • Arrow_up or NumPad_Up - Jog X minus │ │ │ │ │ • Arrow_Down or NumPad_Down - Jog X plus │ │ │ │ │ Back Tool Lathe: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 662 / 1331 │ │ │ │ │ │ │ │ │ │ • Arrow_Left or NumPad_Left - Jog Z minus │ │ │ │ │ • Arrow_Right or NumPad_Right - Jog Z plus │ │ │ │ │ • Arrow_up or NumPad_Up - Jog X plus │ │ │ │ │ • Arrow_Down or NumPad_Down - Jog X minus │ │ │ │ │ @@ -30410,15 +30410,15 @@ │ │ │ │ │ There is a very good WIKI, which is actually growing, maintained by Marius, see Plasma wiki page. │ │ │ │ │ │ │ │ │ │ 10.2.11 Videos on YouTube │ │ │ │ │ Below is a series of videos that show GMOCCAPY in action. Unfortunately, these videos don’t show │ │ │ │ │ the latest version of GMOCCAPY, but the way to use it will still be the same as in the current version. │ │ │ │ │ I will update the videos as soon as possible. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 663 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.11.1 Grundlegende Verwendung │ │ │ │ │ https://youtu.be/O5B-s3uiI6g │ │ │ │ │ 10.2.11.2 Simulierte Jog-Wheels │ │ │ │ │ https://youtu.be/ag34SGxt97o │ │ │ │ │ @@ -30437,15 +30437,15 @@ │ │ │ │ │ 10.2.12 Bekannte Probleme │ │ │ │ │ 10.2.12.1 Seltsame Zahlen im Infobereich │ │ │ │ │ Wenn Sie im Infobereich von GMOCCAPY seltsame Zahlen erhalten wie: │ │ │ │ │ │ │ │ │ │ You have made your config file using an older version of StepConfWizard. It has made a wrong entry in the INI file under the [TRAJ] named MAX_LINEAR_VELOCITY = xxx. Change that entry to │ │ │ │ │ MAX_VELOCITY = xxx. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 664 / 1331 │ │ │ │ │ │ │ │ │ │ 10.2.12.2 Nicht endendes Makro │ │ │ │ │ Wenn Sie ein Makro ohne Bewegung verwenden, wie dieses hier: │ │ │ │ │ o sub │ │ │ │ │ G92.1 │ │ │ │ │ @@ -30470,15 +30470,15 @@ │ │ │ │ │ 10.3 The Touchy Graphical User Interface │ │ │ │ │ Touchy ist eine Benutzeroberfläche für LinuxCNC, die für die Verwendung auf Maschinenbedienfeldern gedacht ist und daher keine Tastatur oder Maus benötigt. │ │ │ │ │ Es ist für die Verwendung mit einem Touchscreen gedacht und funktioniert in Kombination mit einem │ │ │ │ │ Rad/MPG und einigen Tasten und Schaltern. │ │ │ │ │ Die Registerkarte ”Handrad” verfügt über Optionsfelder zur Auswahl zwischen den Funktionen ”VorschubOverride”, ”Spindel-Override”, ”Maximale Geschwindigkeit” und ”Tippen” für den Rad/MPG-Eingang. │ │ │ │ │ Optionsfelder für die Achsenauswahl und die Schrittweite für den Tippbetrieb sind ebenfalls vorhanden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 665 / 1331 │ │ │ │ │ │ │ │ │ │ 10.3.1 Panel-Konfiguration │ │ │ │ │ 10.3.1.1 HAL-Verbindungen │ │ │ │ │ │ │ │ │ │ Touchy sucht in der INI-Datei unter der Überschrift [HAL] nach Einträgen von POSTGUI_HALFILE= G-Code Datei öffnen (Die Datei, die Sie nach der Kompensation ausführen) │ │ │ │ │ • If necessary, make adjustments and press Recalculate. │ │ │ │ │ • Press Save G-Code File - Probe Only. │ │ │ │ │ • Save the generated file to the nc_files folder. │ │ │ │ │ @@ -31636,15 +31636,15 @@ │ │ │ │ │ net ypos-cmd │ │ │ │ │ z_level_compensation.y-pos │ │ │ │ │ │ │ │ │ │ => logic-and.in-01 │ │ │ │ │ <= axis.x.pos-cmd │ │ │ │ │ <= axis.y.pos-cmd │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ net zpos-cmd │ │ │ │ │ net z_compensation_on │ │ │ │ │ net eoffset-zlevel-count │ │ │ │ │ count │ │ │ │ │ │ │ │ │ │ z_level_compensation.z-pos │ │ │ │ │ @@ -31682,15 +31682,15 @@ │ │ │ │ │ 1. how far above the table the probe trigger point is (tool setter height) and │ │ │ │ │ 2. how far above the table the top of the workpiece is. │ │ │ │ │ This operation has to be done every time the tool is changed as the tool length is not saved. │ │ │ │ │ For touching off with a touch probe, whether you use the touchplate operation with thickness set to 0 │ │ │ │ │ or use a probing routine, the height from table to top of workpiece parameter is not taken into account │ │ │ │ │ and can be ignored. It is only for the tool setter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 698 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.12.1 Versa Probe │ │ │ │ │ │ │ │ │ │ Abbildung 10.29: QtDragon - Versa-Probe-Option │ │ │ │ │ Versa probe is used to semi-automatically probe work pieces to find edges, centers and angles. │ │ │ │ │ @@ -31707,15 +31707,15 @@ │ │ │ │ │ • SEARCH:: This is the feed rate at which the probe searches for the target workpiece in machine │ │ │ │ │ units per minute. The search speed should be slow enough to give an acceptable initial accuracy, │ │ │ │ │ but fast enough to not waste time waiting for movement. Recommendation: 200-500 mm/min. │ │ │ │ │ • PROBE:: Once initial contact has been made and the probe is retracted, it will wait for 0.5 seconds │ │ │ │ │ before performing the search again at a lower speed, the probe velocity. This lower speed ensures │ │ │ │ │ the machine can stop movement as quickly as possible on contact with the workpiece. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 699 / 1331 │ │ │ │ │ │ │ │ │ │ • RAPID:: Axis movements not associated with searching are done at the speed defined by RAPID in │ │ │ │ │ machine units per minute. │ │ │ │ │ • SIDE/EDGE LENGTH:: This is the distance the probe will move at the rapid rate to the position │ │ │ │ │ where it will begin a search. If measuring a corner, it will move EDGE LENGTH units away from │ │ │ │ │ @@ -31735,15 +31735,15 @@ │ │ │ │ │ CLEARANCE to 0. │ │ │ │ │ There are three toggle buttons: │ │ │ │ │ • Auto Zero This selects if after probing the relevant axis is set to zero in the current user system. │ │ │ │ │ • Auto Skew This selects if after probing, the system will be rotated or just display the calculated │ │ │ │ │ rotation. │ │ │ │ │ • Tool Measure This (if integrated) turns auto tool probing on and off. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 700 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.12.2 Basic probe │ │ │ │ │ │ │ │ │ │ Abbildung 10.30: QtDragon - Grundlegende Sondenoption │ │ │ │ │ Basic probe is used to semi-automatically probe work pieces to find edges, centers and angles. The │ │ │ │ │ @@ -31756,15 +31756,15 @@ │ │ │ │ │ • Calibration │ │ │ │ │ You must carefully set the Probing Parameters: │ │ │ │ │ • Probe Tool: will only allow probing if this tool number is in the spindle │ │ │ │ │ • Probe Diameter: the size of the probe tip │ │ │ │ │ • Probe Rapid: the speed of rapid moves in machine units │ │ │ │ │ • Probe Search: the speed of the first rough search in machine units │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 701 / 1331 │ │ │ │ │ │ │ │ │ │ • Probe Feed: the speed of the second fine search in machine units │ │ │ │ │ • Step Off : back off and re-probe distance │ │ │ │ │ • Max XY Distance: the maximum distance the probe will search for in X and Y before failing with │ │ │ │ │ error │ │ │ │ │ @@ -31795,15 +31795,15 @@ │ │ │ │ │ • EDGE WIDTH - distance along edge wall (away from corner) to start probing. │ │ │ │ │ Anmerkung │ │ │ │ │ These distance are always to be set in machine units (mm for metric machine, inch for imperial │ │ │ │ │ machine). │ │ │ │ │ │ │ │ │ │ Preset: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 702 / 1331 │ │ │ │ │ │ │ │ │ │ • manual set probe at the intersection of the edges (ie corner) of material as described by the green │ │ │ │ │ bullseye on the button. Set it Z CLEARANCE above the top of material. These can be done by eye. │ │ │ │ │ • set EXTRA CLEARANCE to a value that you want the probe to go below the top of material. (So the │ │ │ │ │ probe will move from its start position down Z Clearance + Extra Clearance distance.) │ │ │ │ │ @@ -31819,15 +31819,15 @@ │ │ │ │ │ 3. probe wall twice (rough and fine), │ │ │ │ │ 4. move diagonally to the other wall as set by EDGE WIDTH and XY CLEARANCE, │ │ │ │ │ 5. probe wall twice, │ │ │ │ │ 6. raise probe up by Z CLEARANCE + EXTRA DEPTH (returns to starting height), │ │ │ │ │ 7. rapid back to starting corner (now calculated using the probed walls), │ │ │ │ │ 8. if auto zero button is enabled, set X and Y of the current user system to zero. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 703 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.13 Touch-Platte │ │ │ │ │ │ │ │ │ │ Abbildung 10.31: QtDragon Touch-Fläche (engl. touch plate) │ │ │ │ │ You can use a conductive touch plate or equivalent to auto touch off (zero the user coordinate) for the │ │ │ │ │ @@ -31845,15 +31845,15 @@ │ │ │ │ │ will probe down twice and the current user offset (G5X) will be zeroed at the bottom of the plate by │ │ │ │ │ calculation from the touchplate height setting. │ │ │ │ │ │ │ │ │ │ 10.5.14 Automatische Werkzeugmessung │ │ │ │ │ QtDragon kann so eingestellt werden, dass es eine integrierte automatische Werkzeugmessung mit │ │ │ │ │ dem Versa Probe Widget und Remap-Code durchführt. Um diese Funktion zu nutzen, müssen Sie │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 704 / 1331 │ │ │ │ │ │ │ │ │ │ einige zusätzliche Einstellungen vornehmen und Sie können den angebotenen HAL-Pin verwenden, │ │ │ │ │ um Werte in Ihrer eigenen ngc-Remap-Prozedur zu erhalten. │ │ │ │ │ │ │ │ │ │ Wichtig │ │ │ │ │ @@ -31869,15 +31869,15 @@ │ │ │ │ │ • Gehen Sie in den Automatikmodus und starten Sie Ihr Programm. │ │ │ │ │ Anmerkung │ │ │ │ │ When fist setting up auto tool measurement, please use caution until you confirm tool change and │ │ │ │ │ probe locations - it is easy to break a tool/probe. Abort will be honoured while the probe is in motion. │ │ │ │ │ │ │ │ │ │ Abbildung 10.32: Automatische Werkzeugvermessung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 705 / 1331 │ │ │ │ │ │ │ │ │ │ Beim ersten gegebenen Werkzeugwechsel wird das Werkzeug vermessen und der Versatz wird automatisch auf die Blockhöhe eingestellt. Der Vorteil dieser Methode ist, dass Sie kein Referenzwerkzeug │ │ │ │ │ benötigen. │ │ │ │ │ Anmerkung │ │ │ │ │ Ihr Programm muss am Anfang einen Werkzeugwechsel enthalten. Das Werkzeug wird gemessen, │ │ │ │ │ @@ -31894,15 +31894,15 @@ │ │ │ │ │ • Probe down in Z to maximum defined in the INI’s [VERSA_TOOLSETTER] MAXPROBE │ │ │ │ │ • Return Z to position defined in the INI’s [TOOL_CHANGE] Z │ │ │ │ │ Anmerkung │ │ │ │ │ The [TOOL_CHANGE] Z position should be high enough so the tool will not hit the tool probe when │ │ │ │ │ moving to the [VERSA_TOOLSETTER] X and Y position. MAXPROBE distance needs to be high enough │ │ │ │ │ for the tool to touch the probe. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 706 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.14.1 Werkstückhöhe Antasten │ │ │ │ │ │ │ │ │ │ Abbildung 10.33: QtDragon_hd - Werkstück Höhenabtastung │ │ │ │ │ Dieses Programm tastet 2 benutzerdefinierte Positionen in der Z-Achse an und berechnet die Höhendifferenz. │ │ │ │ │ @@ -31915,15 +31915,15 @@ │ │ │ │ │ sie auf den DROs angezeigt wird, ausfüllen. │ │ │ │ │ Automatische Füllung der Werkstückhöhe auf dem Hauptbildschirm │ │ │ │ │ • When checked, the calculated height is automatically transferred to the Workpiece Height field in │ │ │ │ │ the main screen. │ │ │ │ │ • Andernfalls ist der Hauptbildschirm nicht betroffen. │ │ │ │ │ Werkstücktaster bei │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 707 / 1331 │ │ │ │ │ │ │ │ │ │ • die X-, Y- und Z-Koordinaten geben an, wo die erste Sondierungsroutine im aktuellen WCS beginnen │ │ │ │ │ soll │ │ │ │ │ Probenahme bei │ │ │ │ │ • die X-, Y- und Z-Koordinaten geben an, wo die zweite Sondierungsroutine beginnen soll, und zwar │ │ │ │ │ @@ -31949,15 +31949,15 @@ │ │ │ │ │ • Units are irrelevant in this program. The probed values are not saved and only the difference is │ │ │ │ │ reported. │ │ │ │ │ │ │ │ │ │ Achtung │ │ │ │ │ Setting incorrect values can lead to crashes into fixtures on the machine work surface. Initial │ │ │ │ │ testing with no tool and safe heights is recommended. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 708 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.14.2 Werkzeugmess-Pins │ │ │ │ │ Versaprobe offers 5 output pins for tool measurement purpose. The pins are used to be read from a │ │ │ │ │ remap G-code subroutine, so the code can react to different values. │ │ │ │ │ • qtversaprobe.enable (HAL_BIT) measurement enabled or not tool. Reflects screen button state. │ │ │ │ │ @@ -31997,15 +31997,15 @@ │ │ │ │ │ ON_ABORT_COMMAND=O Aufruf │ │ │ │ │ # Der Remap-Code für die automatische Werkzeugsonde von Z der Versaprobe von QtVCP │ │ │ │ │ REMAP=M6 modalgroup=6 prolog=change_prolog ngc=qt_auto_probe_tool epilog=change_epilog │ │ │ │ │ │ │ │ │ │ The position of the tool sensor and the start position of the probing movement. │ │ │ │ │ All values are absolute (G53) coordinates, except MAXPROBE, which is expressed in relative movement. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 709 / 1331 │ │ │ │ │ │ │ │ │ │ All values are in machine native units. │ │ │ │ │ X,Y,Z set the tool setter probe location. │ │ │ │ │ auto probe action sequence (this could be changed with a modified ngc remap file): │ │ │ │ │ │ │ │ │ │ @@ -32044,15 +32044,15 @@ │ │ │ │ │ situations. Some systems may need to use linuxcnc/nc_files/examples/ instead of linuxcnc/nc_files/. │ │ │ │ │ Custom entries pointing to modified file are possible. │ │ │ │ │ # The path start point for all remap searches, i.e. Python’s sys.path.append() │ │ │ │ │ PATH_APPEND = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python │ │ │ │ │ # path to the tremap’s ’toplevel file │ │ │ │ │ TOPLEVEL = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python/toplevel.py │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 710 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.14.4 Required HAL Connections │ │ │ │ │ Stellen Sie sicher, dass der Messtastereingang in Ihrer HAL-Datei angeschlossen ist: Bei korrektem │ │ │ │ │ Anschluss sollten Sie in der Lage sein, die Taster-LED in QtDragon umzuschalten, wenn Sie den Tasterstift drücken. │ │ │ │ │ net probe motion.probe-input <= │ │ │ │ │ @@ -32086,15 +32086,15 @@ │ │ │ │ │ • P,X,Y,Z: Set standard views. │ │ │ │ │ • D: Toggle display of dimensions. │ │ │ │ │ • +, -: Zoom controls. │ │ │ │ │ • C: Clear graphics of tool movement lines. │ │ │ │ │ In qtdragon_hd there are also macro buttons available on the right side. Up to tens buttons can be │ │ │ │ │ defined in the INI. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 711 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.17.2 Registerkarte ”Datei” │ │ │ │ │ You can use this tab to load or transfer programs. Editing of G-code programs can be selected from │ │ │ │ │ this tab. With qtdragon_hd, this is where you can load the G-code Ripper. │ │ │ │ │ 10.5.17.3 Registerkarte ”Offsets” │ │ │ │ │ @@ -32126,15 +32126,15 @@ │ │ │ │ │ Camview xscale = 100 │ │ │ │ │ Camview yscale = 100 │ │ │ │ │ Camview cam number = 0 │ │ │ │ │ │ │ │ │ │ These are in percent, usually the range will be 100 - 200 in one axis. │ │ │ │ │ The preference file can only be edited when QtDragon is not running. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 712 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.17.8 G-Codes Registrierkarte │ │ │ │ │ This tab will display a list of LinuxCNC’s G-code. if you click on a line, a description of the code will │ │ │ │ │ be displayed. │ │ │ │ │ 10.5.17.9 Registerkarte ”Einstellungen” │ │ │ │ │ @@ -32152,15 +32152,15 @@ │ │ │ │ │ • The left arrow moves backward one HTML page. │ │ │ │ │ • The right arrow moves forward one HTML page. │ │ │ │ │ If you wish to include a custom default HTML page, name it default_setup.html and place it in your │ │ │ │ │ configuration folder. │ │ │ │ │ Custom QtVCP panels can be displayed in this tab by setting the EMBED_TAB_LOCATION option to │ │ │ │ │ tabWidget_setup. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 713 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.34: QtDragon - Beispiel für die Registerkarte Setup │ │ │ │ │ │ │ │ │ │ 10.5.17.10 Registerkarte ”Einstellungen” │ │ │ │ │ Die Registerkarte ”Einstellungen” dient zum Einstellen der Betriebsoptionen, der Offsets für Messtaster/Tastplatte/Laser/Kamera und zum Laden externer Debugging-Programme. │ │ │ │ │ @@ -32174,15 +32174,15 @@ │ │ │ │ │ Custom QtVCP panels can be displayed here by setting the EMBED_TAB_LOCATION option to tabWidget_uti │ │ │ │ │ 10.5.17.12 User Tab │ │ │ │ │ │ │ │ │ │ This tab will only be displayed if an embedded panel has been designated for the location stackedWidget_mai │ │ │ │ │ If more then one embedded tab has been designated, then pressing the user tab will cycle through │ │ │ │ │ them. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 714 / 1331 │ │ │ │ │ │ │ │ │ │ 10.5.18 Stile │ │ │ │ │ Nearly all aspects of the GUI appearance are configurable via the QtDragon.qss stylesheet file. The │ │ │ │ │ file can be edited manually or through the stylesheet dialog widget in the GUI. To call up the dialog, │ │ │ │ │ press F12 on the main window. New styles can be applied temporarily and then saved to a new qss │ │ │ │ │ @@ -32215,15 +32215,15 @@ │ │ │ │ │ │ │ │ │ │ So ändern Sie den Text der Schaltfläche ”Nebel” in ”Luft” (fügen Sie diese Zeilen ein) │ │ │ │ │ #action_mist{ │ │ │ │ │ qproperty-true_state_string: ”Air\\nOn”; │ │ │ │ │ qproperty-false_state_string: ”Air\\nOff”; │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 715 / 1331 │ │ │ │ │ │ │ │ │ │ To change the Offsets display font and format: │ │ │ │ │ ToolOffsetView { │ │ │ │ │ font: 20pt ”Lato Heavy”; │ │ │ │ │ qproperty-imperial_template: ’%9.1f’; │ │ │ │ │ @@ -32273,15 +32273,15 @@ │ │ │ │ │ qproperty-spindle_down_action: true; │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ 10.5.19.2 Qt Designer und Python-Code │ │ │ │ │ All aspects of the GUI are fully customization through Qt Designer and/or Python code. This capability │ │ │ │ │ is included with the QtVCP development environment. The extensive use of QtVCP widgets keeps the │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 716 / 1331 │ │ │ │ │ │ │ │ │ │ amount of required Python code to a minimum, allowing relatively easy modifications. The LinuxCNC │ │ │ │ │ website has extensive documentation on the installation and use of QtVCP libraries. See QtVCP for │ │ │ │ │ more information about QtVCP in general. │ │ │ │ │ QtDragon can also utilize QtVCP’s rc file to do minor python code modifications without using a custom │ │ │ │ │ @@ -32289,30 +32289,30 @@ │ │ │ │ │ [DISPLAY] │ │ │ │ │ USER_COMMAND_FILE = CONFIGFOLDER/qtdragonrc.py │ │ │ │ │ │ │ │ │ │ See Modifying Screens for more information about customization. │ │ │ │ │ │ │ │ │ │ Abbildung 10.36: QtDragon - Angepasster QtDragon │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 717 / 1331 │ │ │ │ │ │ │ │ │ │ 10.6 NGCGUI │ │ │ │ │ │ │ │ │ │ Abbildung 10.37: NGCGUI eingebettet in AXIS │ │ │ │ │ │ │ │ │ │ 10.6.1 Übersicht │ │ │ │ │ • NGCGUI ist eine Tcl-Anwendung zur Arbeit mit Unterroutinen. Es ermöglicht Ihnen, eine Konversationsschnittstelle mit LinuxCNC zu haben. Sie können die Unterroutinen in der Reihenfolge organisieren, in der Sie sie ausführen und die Unterroutinen in einer Datei für ein vollständiges Teileprogramm verketten müssen. │ │ │ │ │ • NGCGUI kann als eigenständige Anwendung ausgeführt oder in mehrere Registerkarten in der AXIS │ │ │ │ │ GUI eingebettet werden. │ │ │ │ │ • PyNGCGUI is an alternate, Python implementation of NGCGUI. │ │ │ │ │ • PyNGCGUI kann als eigenständige Anwendung laufen oder als Registerkarte (mit einem eigenen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 718 / 1331 │ │ │ │ │ │ │ │ │ │ Satz von mehreren Unterprogramm-Registerkarten) in jede GUI eingebettet werden, die eine Einbettung der GladeVCP-Anwendungen AXIS, Touchy, Gscreen und GMOCCAPY unterstützt. │ │ │ │ │ NGCGUI oder PyNGCGUI verwenden: │ │ │ │ │ • Für jedes in der INI-Datei angegebene Unterprogramm gibt es Registerkarten (engl. tabs). │ │ │ │ │ • Neue Subroutinen-Registerkarten können mit dem custom tab spontan hinzugefügt werden. │ │ │ │ │ @@ -32343,15 +32343,15 @@ │ │ │ │ │ Sample Configurations/sim/axis/ngcgui/ngcgui_gcmc │ │ │ │ │ Ein umfassendes Beispiel, das als GladeVCP-App eingebettet ist und gcmc verwendet, finden Sie unter: │ │ │ │ │ Sample Configurations/sim/gscreen/ngcgui/pyngcgui_gcmc │ │ │ │ │ │ │ │ │ │ Die Beispielsimulationskonfigurationen verwenden Bibliotheksdateien, die Beispiel-G-Code-Unterprogramm │ │ │ │ │ (.ngc) und G-Code-Meta-Compilerdateien (.gcmc) enthalten: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 719 / 1331 │ │ │ │ │ │ │ │ │ │ • nc_files/ngcgui_lib │ │ │ │ │ – ngcgui.ngc - Ein leicht verständliches Beispiel mit Unterroutinen │ │ │ │ │ – arc1.ngc - Kreisbogen mit Fräserradiuskompensation │ │ │ │ │ – arc2.ngc - Bogen angegeben durch Zentrum, Offset, Breite, Winkel (ruft arc1 auf) │ │ │ │ │ @@ -32391,15 +32391,15 @@ │ │ │ │ │ Wenn Sie die AXIS GUI verwenden, drücken Sie auf ”Notaus” (engl. E-Stop) │ │ │ │ │ chine Power” │ │ │ │ │ │ │ │ │ │ und dann auf ”Ma- │ │ │ │ │ │ │ │ │ │ und dann auf ”Refefernzierfahrt aller Achsen” (engl. Home All). Wählen Sie eine │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 720 / 1331 │ │ │ │ │ │ │ │ │ │ NGCGUI-Registerkarte, füllen Sie alle leeren Felder mit sinnvollen Werten aus und drücken Sie auf │ │ │ │ │ ”Feature anlegen” (engl. create feature) und dann auf ”Finalize”. Drücken Sie abschließend auf die │ │ │ │ │ Schaltfläche ”Ausführen” │ │ │ │ │ , um die Ausführung zu beobachten. Experimentieren Sie, indem Sie │ │ │ │ │ @@ -32432,15 +32432,15 @@ │ │ │ │ │ = ../../nc_files/ngcgui_lib/mfiles │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Dabei handelt es sich um lange Zeilen (die nicht über mehrere Zeilen fortgesetzt werden), in denen │ │ │ │ │ die in einem Suchfeld verwendeten Verzeichnisse angegeben werden. Die Verzeichnisnamen werden │ │ │ │ │ durch Doppelpunkte (:) getrennt. Zwischen den Verzeichnisnamen sollten keine Leerzeichen stehen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 721 / 1331 │ │ │ │ │ │ │ │ │ │ Ein Benutzer kann neue Verzeichnisse für seine eigenen Unterprogramme und M-Dateien erstellen │ │ │ │ │ und sie zu den Suchpfaden hinzufügen. │ │ │ │ │ So könnte ein Benutzer beispielsweise Verzeichnisse vom Terminal aus mit den folgenden Befehlen │ │ │ │ │ erstellen: │ │ │ │ │ @@ -32488,15 +32488,15 @@ │ │ │ │ │ [--font [big|small|fontspec]] (Voreinstellung: ”Helvetica -10 normal”) │ │ │ │ │ [--horiz|--vert] (Voreinstellung: --horiz) │ │ │ │ │ [--cwidth comment_width] (Breite des Kommentarfeldes) │ │ │ │ │ [--vwidth varname_width] (Breite des Feldes varname) │ │ │ │ │ [--quiet] (weniger Kommentare in der Ausgabedatei) │ │ │ │ │ [--noiframe] (Voreinstellung: Rahmen zeigt Bild an) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 722 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Als eigenständige Anwendung bearbeitet NGCGUI eine einzelne Unterprogrammdatei, die mehrfach │ │ │ │ │ aufgerufen werden kann. Mehrere eigenständige NGCGUI-Anwendungen können unabhängig voneinander gestartet werden. │ │ │ │ │ │ │ │ │ │ @@ -32547,15 +32547,15 @@ │ │ │ │ │ 10.6.5 NGCGUI einbetten │ │ │ │ │ 10.6.5.1 NGCGUI in AXIS einbetten │ │ │ │ │ Die folgenden INI-Datei-Elemente gehören in den Abschnitt [DISPLAY]. (Siehe weitere Abschnitte │ │ │ │ │ unten für zusätzlich benötigte Elemente) │ │ │ │ │ • TKPKG = Ngcgui 1.0 - das NGCGUI-Paket │ │ │ │ │ • TKPKG = Ngcguittt 1.0 - das True Type Tracer-Paket zum Generieren von Text für die Gravur (optional, muss TKPKG = Ngcgui folgen). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 723 / 1331 │ │ │ │ │ │ │ │ │ │ • NGCGUI_FONT = Helvetica -12 normal - Legt die verwendete Schriftart fest │ │ │ │ │ • NGCGUI_PREAMBLE = in_std.ngc’ - Die Präambel-Datei, die am Anfang des Unterprogramms hinzugefügt wird. Bei der Verkettung mehrerer Unterprogramme wird sie nur einmal hinzugefügt. │ │ │ │ │ • NGCGUI_SUBFILE = simp.ngc - Erstellt eine Registerkarte aus der benannten Unterroutine. │ │ │ │ │ • NGCGUI_SUBFILE = ”” - Erzeugt eine benutzerdefinierte Registerkarte │ │ │ │ │ @@ -32581,15 +32581,15 @@ │ │ │ │ │ in AXIS eingebettet werden kann, ist die Integration vollständiger, wenn NGCGUI verwendet wird (mit │ │ │ │ │ TKPKG = Ngcgui 1.0). Um die EMBED_TAB_LOCATION für andere GUIs festzulegen, vgl. den Abschnitt │ │ │ │ │ zu DISPLAY des INI-Konfigurationskapitels. │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Das Truetype Tracer GUI-Frontend ist derzeit nicht für GladeVCP-Anwendungen verfügbar. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 724 / 1331 │ │ │ │ │ │ │ │ │ │ 10.6.5.3 Zusätzliche INI-Datei-Elemente, die für NGCGUI oder PyNGCGUI erforderlich sind │ │ │ │ │ Die folgenden INI-Datei-Elemente gehören in den Abschnitt [DISPLAY] für jede GUI, die entweder │ │ │ │ │ NGCGUI oder PyNGCGUI einbindet. │ │ │ │ │ • NGCGUI_FONT = Helvetica -12 normal’ - gibt den Namen und die Größe der Schriftart an, normal|fett (engl. bold) │ │ │ │ │ @@ -32626,15 +32626,15 @@ │ │ │ │ │ SUBROUTINE_PATH │ │ │ │ │ USER_M_PATH │ │ │ │ │ [DISPLAY] │ │ │ │ │ │ │ │ │ │ = ../../nc_files/ngcgui_lib:../../ngcgui_lib/utilitysubs │ │ │ │ │ = ../../nc_files/ngcgui_lib/mfiles │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 725 / 1331 │ │ │ │ │ │ │ │ │ │ TKPKG = Ngcgui 1.0 │ │ │ │ │ TKPKG = Ngcguittt 1.0 │ │ │ │ │ # Ngcgui muss vor Ngcguittt stehen │ │ │ │ │ NGCGUI_FONT │ │ │ │ │ @@ -32710,15 +32710,15 @@ │ │ │ │ │ [DISPLAY]TTT = path_to_truetype-tracer │ │ │ │ │ Example: [DISPLAY]TTT = truetype-tracer │ │ │ │ │ Note: │ │ │ │ │ Optional, if not specified, attempt to use /usr/local/bin/truetype-tracer. │ │ │ │ │ Specify with absolute pathname or as a simple executable name, │ │ │ │ │ in which case the user PATH environment will used to find the program. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 726 / 1331 │ │ │ │ │ │ │ │ │ │ Item: │ │ │ │ │ [DISPLAY]TTT_PREAMBLE = preamble_filename │ │ │ │ │ Example: [DISPLAY]TTT_PREAMBLE = in_std.ngc │ │ │ │ │ Note: │ │ │ │ │ @@ -32753,15 +32753,15 @@ │ │ │ │ │ Dies ist eine lange Zeile, fahren Sie nicht in mehreren Zeilen fort. Wenn LinuxCNC und/oder NGCGUI │ │ │ │ │ nach Dateien suchen, wird die erste Datei, die bei der Suche gefunden wird, verwendet. │ │ │ │ │ LinuxCNC (und NGCGUI) muss in der Lage sein, alle Unterprogramme einschließlich der Hilfsroutinen zu finden, die aus den NGCGUI Unterdateien aufgerufen werden. Es ist zweckmäßig, Utility-Subs │ │ │ │ │ in einem separaten Verzeichnis zu platzieren, wie im obigen Beispiel angegeben. │ │ │ │ │ Die Distribution enthält das Verzeichnis ngcgui_lib und Demodateien für Präambeln, Subdateien, │ │ │ │ │ Postambeln und Hilfsdateien. Um das Verhalten der Dateien zu ändern, können Sie eine beliebige │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 727 / 1331 │ │ │ │ │ │ │ │ │ │ Datei kopieren und sie an einer früheren Stelle des Suchpfads platzieren. Das erste Verzeichnis, das │ │ │ │ │ durchsucht wird, ist [DISPLAY]PROGRAM_PREFIX. Sie können dieses Verzeichnis verwenden, aber es │ │ │ │ │ ist besser, eigene Verzeichnisse zu erstellen und sie an den Anfang des [RS274NGC]SUBROUTINE_PATH │ │ │ │ │ zu stellen. │ │ │ │ │ @@ -32803,15 +32803,15 @@ │ │ │ │ │ Note: Required only for AXIS GUI embedding. │ │ │ │ │ Specifies loading of NGCGUI AXIS tab pages. │ │ │ │ │ [DISPLAY]NGCGUI_FONT = Schriftart_deskriptor │ │ │ │ │ Example: [DISPLAY]NGCGUI_FONT = Helvetica -12 normal │ │ │ │ │ Note: Optional, font_descriptor is a tcl-compatible font specifier with items for fonttype -fontsize │ │ │ │ │ fontweight. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 728 / 1331 │ │ │ │ │ │ │ │ │ │ Default is: Helvetica -10 normal. │ │ │ │ │ Smaller font sizes may be useful for small screens. │ │ │ │ │ Larger font sizes may be helpful for touch screen applications . │ │ │ │ │ [ANZEIGE] NGCGUI_SUBFILE = subfile_filename │ │ │ │ │ @@ -32857,15 +32857,15 @@ │ │ │ │ │ tab pages. │ │ │ │ │ │ │ │ │ │ [DISPLAY]GCMC_INCLUDE_PATH = dirname1:dirname2:… │ │ │ │ │ Example: [DISPLAY]GCMC_INCLUDE_PATH = /home/myname/gcmc_includes:/home/myname/gcmc_incl │ │ │ │ │ Note: Optional, each directory will be included when gcmc is invoked using the option: --include │ │ │ │ │ dirname. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 729 / 1331 │ │ │ │ │ │ │ │ │ │ 10.6.6 Dateianforderungen für NGCGUI-Kompatibilität │ │ │ │ │ 10.6.6.1 Anforderungen an eine G-code-Unterroutine (.ngc) in einer Datei │ │ │ │ │ An NGCGUI-compatible subfile contains a single subroutine definition. The name of the subroutine │ │ │ │ │ must be the same as the filename (not including the .ngc suffix). LinuxCNC supports named or numbered subroutines, but only named subroutines are compatible with NGCGUI. For more information │ │ │ │ │ @@ -32910,15 +32910,15 @@ │ │ │ │ │ # = #3 (=0.0 Z Start Einstellung) │ │ │ │ │ │ │ │ │ │ If a default_value is provided, it will be entered in the entry box for the parameter on startup. If │ │ │ │ │ comment_text is included, it will be used to identify the input instead of the parameter name. │ │ │ │ │ Globale benannte Parameter Hinweise zu globalen benannten Parametern und NGCGUI: │ │ │ │ │ (globale benannte Parameter haben einen führenden Unterstrich im Namen, wie #<_irgendeinglobalername>) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 730 / 1331 │ │ │ │ │ │ │ │ │ │ As in many programming languages, use of globals is powerful but can often lead to unexpected │ │ │ │ │ consequences. In LinuxCNC, existing global named parameters will be valid at subroutine execution │ │ │ │ │ and subroutines can modify or create global named parameters. │ │ │ │ │ Passing information to subroutines using global named parameters is discouraged since such usage │ │ │ │ │ @@ -32964,15 +32964,15 @@ │ │ │ │ │ Kommentar enthalten, so dass NGCGUI sie automatisch mit einer entsprechenden Meldung zurückweist. │ │ │ │ │ (not_a_subfile) │ │ │ │ │ │ │ │ │ │ An optional image file (.png,.gif,.jpg,.pgm) can accompany a subfile. The image file can help clarify the │ │ │ │ │ parameters used by the subfile. The image file should be in the same directory as the subfile and have │ │ │ │ │ the same name with an appropriate image suffix, e.g. the subfile example.ngc could be accompanied │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 731 / 1331 │ │ │ │ │ │ │ │ │ │ by an image file examp.png. NGCGUI attempts to resize large images by subsampling to a size with │ │ │ │ │ maximum width of 320 and maximum height of 240 pixels. │ │ │ │ │ Keine der Konventionen, die für die Herstellung einer NGCGUI-kompatiblen Subdatei erforderlich │ │ │ │ │ sind, schließen ihre Verwendung als allgemeine Subroutinendatei für LinuxCNC aus. │ │ │ │ │ @@ -33011,15 +33011,15 @@ │ │ │ │ │ //ngcgui: xl = 0; //, x limit │ │ │ │ │ │ │ │ │ │ Eine Info-Zeile, die oben auf einer Registerkarte erscheint, kann optional mit einer Zeile mit der │ │ │ │ │ Kennzeichnung als: │ │ │ │ │ Info-Tag │ │ │ │ │ //ngcgui: info: text_to_appear_at_top_of_tab_page │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 732 / 1331 │ │ │ │ │ │ │ │ │ │ Falls erforderlich, können Optionen mit einem Zeilen-Tag an den gcmc-Compiler übergeben werden: │ │ │ │ │ Option line tag format │ │ │ │ │ //ngcgui: -option_name [ [=] option_value] │ │ │ │ │ │ │ │ │ │ @@ -33045,28 +33045,28 @@ │ │ │ │ │ [DISPLAY] │ │ │ │ │ GCMC_INCLUDE_PATH = ../../nc_files/gcmc_lib │ │ │ │ │ │ │ │ │ │ 10.6.7 DB25 Beispiel │ │ │ │ │ The following shows the DB25 subroutine. In the first photo you see where you fill in the blanks for │ │ │ │ │ each variable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Dieses Foto zeigt den Backplot der DB25-Subroutine. │ │ │ │ │ │ │ │ │ │ 733 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 734 / 1331 │ │ │ │ │ │ │ │ │ │ Dieses Foto zeigt die Verwendung der neuen Schaltfläche und der benutzerdefinierten Registerkarte │ │ │ │ │ zur Erstellung von drei DB25-Ausschnitten in einem Programm. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 735 / 1331 │ │ │ │ │ │ │ │ │ │ 10.6.8 Erstellen eines Unterprogramms │ │ │ │ │ • Um ein Unterprogramm für die Verwendung mit NGCGUI zu erstellen, müssen der Dateiname und │ │ │ │ │ der Name des Unterprogramms identisch sein. │ │ │ │ │ • Die Datei muss sich in dem Unterverzeichnis befinden, auf das in der INI-Datei verwiesen wird. │ │ │ │ │ @@ -33081,15 +33081,15 @@ │ │ │ │ │ # = #2 (=0.4) ;Beispiel für einen Parameter ohne Kommentar │ │ │ │ │ # = #3 (Feedrate) ;Beispiel für einen Parameter ohne Voreinstellung │ │ │ │ │ g0x0y0z1 │ │ │ │ │ g3 i# f# │ │ │ │ │ g3 i[0-#] │ │ │ │ │ o endsub │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 736 / 1331 │ │ │ │ │ │ │ │ │ │ 10.7 TkLinuxCNC GUI │ │ │ │ │ 10.7.1 Einführung │ │ │ │ │ TkLinuxCNC ist eines der ersten grafischen Front-Ends für LinuxCNC. Es ist in Tcl geschrieben und │ │ │ │ │ verwendet das Tk-Toolkit für die Anzeige. Es ist in Tcl geschrieben und daher sehr portabel (es läuft │ │ │ │ │ @@ -33103,15 +33103,15 @@ │ │ │ │ │ DISPLAY = tklinuxcnc │ │ │ │ │ │ │ │ │ │ Dann starten Sie LinuxCNC und wählen Sie diese INI-Datei. Die Beispielkonfiguration sim/tklinuxcnc/tklinuxcnc.ini ist bereits konfiguriert, um TkLinuxCNC als Front-End zu verwenden. │ │ │ │ │ Nach dem Start von LinuxCNC wird das Fenster TKLinuxCNC geöffnet. │ │ │ │ │ 10.7.2.1 Eine typische Sitzung mit TkLinuxCNC │ │ │ │ │ 1. Starten Sie LinuxCNC und wählen Sie eine Konfigurationsdatei. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 737 / 1331 │ │ │ │ │ │ │ │ │ │ 2. Beheben Sie den Notaus (engl. E-STOP)-Zustand und schalten Sie die Maschine ein (indem Sie │ │ │ │ │ F1 und dann F2 drücken). │ │ │ │ │ 3. Referenzfahrt jeder Achse. │ │ │ │ │ 4. Laden Sie die zu fräsende Datei. │ │ │ │ │ @@ -33144,15 +33144,15 @@ │ │ │ │ │ • Spindeldrehzahl erhöhen │ │ │ │ │ • Abbrechen │ │ │ │ │ dann in der zweiten Zeile: │ │ │ │ │ • Betriebsart: MANUAL > MDI > AUTO │ │ │ │ │ • Flutkühlmittel ein-/ausschalten │ │ │ │ │ • Spindelbremse ein-/ausschalten │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 738 / 1331 │ │ │ │ │ │ │ │ │ │ 10.7.3.2 Statusleiste der Offset-Anzeige │ │ │ │ │ Die Statusleiste der Versatzanzeige zeigt das aktuell ausgewählte Werkzeug (ausgewählt mit Txx M6), │ │ │ │ │ den Werkzeuglängenversatz (falls aktiv) und die Arbeitsversätze (eingestellt durch Rechtsklick auf die │ │ │ │ │ Koordinaten) an. │ │ │ │ │ @@ -33182,15 +33182,15 @@ │ │ │ │ │ zu überprüfen, * Ausführen (engl. run), um den eigentlichen Schneidevorgang zu starten, * Pause, │ │ │ │ │ um es während des Laufens anzuhalten, * Fortsetzen (engl. resume), um ein bereits angehaltenes │ │ │ │ │ Programm wieder aufzunehmen, * Schritt (engl. step), um eine Zeile im Programm voranzubringen │ │ │ │ │ und * Optional Stop zum Umschalten des optionalen Stop-Schalters (wenn die Schaltfläche grün ist, │ │ │ │ │ wird die Programmausführung bei jedem M1-Ereignis angehalten). │ │ │ │ │ Anzeigebereich des Textprogramms Wenn das Programm läuft, wird die Zeile, die gerade ausgeführt wird, weiß hervorgehoben. Die Textanzeige scrollt automatisch, um die aktuelle Zeile anzuzeigen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 739 / 1331 │ │ │ │ │ │ │ │ │ │ 10.7.3.5 Manuelle Steuerung │ │ │ │ │ Steuerung mit der Tastatur TkLinuxCNC ermöglicht es Ihnen, die Maschine manuell zu bewegen. │ │ │ │ │ Diese Aktion wird als ”Jogging” bekannt. Wählen Sie zunächst die zu bewegende Achse aus, indem │ │ │ │ │ Sie sie anklicken. Klicken Sie dann auf die Schaltfläche ”+” oder ”-” und halten Sie sie gedrückt, je │ │ │ │ │ @@ -33215,15 +33215,15 @@ │ │ │ │ │ der Benutzer die Drehgeschwindigkeit erhöhen oder verringern. Mit der Taste in der zweiten Reihe │ │ │ │ │ kann die Spindelbremse aktiviert oder deaktiviert werden. Je nach Maschinenkonfiguration haben │ │ │ │ │ möglicherweise nicht alle Elemente in dieser Gruppe eine Wirkung. │ │ │ │ │ Die Kühlmittelgruppe Kühlmittel Mit den beiden Schaltflächen können die Kühlmittel ”Nebel” │ │ │ │ │ und ”Flut” ein- und ausgeschaltet werden. Je nach Konfiguration Ihres Geräts werden möglicherweise │ │ │ │ │ nicht alle Elemente in dieser Gruppe angezeigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 740 / 1331 │ │ │ │ │ │ │ │ │ │ 10.7.3.6 Code-Eingabe │ │ │ │ │ │ │ │ │ │ Die manuelle Dateneingabe (auch MDI genannt) ermöglicht die manuelle Eingabe von G-Code-Programmen, │ │ │ │ │ eine Zeile nach der anderen. Wenn das Gerät nicht eingeschaltet und nicht auf den MDI-Modus eingestellt ist, sind die Steuerelemente für die Codeeingabe nicht verfügbar. │ │ │ │ │ @@ -33257,15 +33257,15 @@ │ │ │ │ │ F1 │ │ │ │ │ Notaus ein-/ausschalten │ │ │ │ │ F2 │ │ │ │ │ Maschine ein-/ausschalten │ │ │ │ │ ̀, 1 .. 9, 0 │ │ │ │ │ Vorschub-Override von 0% bis 100% einstellen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 741 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.7: (continued) │ │ │ │ │ Tastenkombination │ │ │ │ │ Ergriffene Maßnahmen │ │ │ │ │ X, ̀ │ │ │ │ │ @@ -33310,42 +33310,42 @@ │ │ │ │ │ The QtPlasmaC GUI will run on any hardware that is supported by LinuxCNC v2.9 or later provided │ │ │ │ │ there are enough hardware I/O pins to fulfill the requirements of a plasma configuration. │ │ │ │ │ There are three available formats: │ │ │ │ │ • 16:9 with a minimum resolution of 1366 x 768 │ │ │ │ │ • 9:16 with a minimum resolution of 768 x 1366 │ │ │ │ │ • 4:3 with a minimum resolution of 1024 x 768 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 742 / 1331 │ │ │ │ │ │ │ │ │ │ Screenshot examples of QtPlasmaC are below: │ │ │ │ │ │ │ │ │ │ Abbildung 10.40: 16:9 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 743 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 744 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.42: 4:3 │ │ │ │ │ │ │ │ │ │ 10.8.4 LinuxCNC installieren │ │ │ │ │ Die bevorzugte Methode zur Installation von LinuxCNC ist über ein ISO-Image, wie unten beschrieben. │ │ │ │ │ Anmerkung │ │ │ │ │ Es ist möglich, LinuxCNC auf einer Vielzahl von Linux-Distributionen zu installieren und auszuführen, │ │ │ │ │ was jedoch den Rahmen dieses Benutzerhandbuchs sprengen würde. Wenn der Benutzer möchte eine │ │ │ │ │ Linux-Distribution andere als die empfohlenen zu installieren, müssen sie zunächst ihre bevorzugte │ │ │ │ │ Linux-Distribution zu installieren und dann installieren LinuxCNC v2.9 oder höher zusammen mit allen │ │ │ │ │ erforderlichen Abhängigkeiten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 745 / 1331 │ │ │ │ │ │ │ │ │ │ 10.8.4.1 Wenn der Benutzer kein Linux installiert hat │ │ │ │ │ Installation instructions are available from here. │ │ │ │ │ Following these instructions will yield a machine with the current stable branch of LinuxCNC (v2.9) │ │ │ │ │ on Debian 12 (Bookworm). │ │ │ │ │ @@ -33387,15 +33387,15 @@ │ │ │ │ │ │ │ │ │ │ Wichtig │ │ │ │ │ If the plasma power source has an Arc OK (Transfer) output then it is recommended to use that │ │ │ │ │ for Arc OK rather than the soft (calculated) Arc OK provided by mode 0. It may also be possible │ │ │ │ │ to use a reed relay as an alternative method to establish an Arc OK signal when the power │ │ │ │ │ source does not provide one. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 746 / 1331 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Für die Feinabstimmung von Mode 0 Ark OK siehe Tuning Mode 0 Arc OK im Abschnitt Erweiterte │ │ │ │ │ Themen des Handbuchs. │ │ │ │ │ │ │ │ │ │ @@ -33470,15 +33470,15 @@ │ │ │ │ │ the ohmic probe’s power. │ │ │ │ │ Digital input; optional, see info below table: │ │ │ │ │ HAL pin name plasmac.breakaway │ │ │ │ │ Connected from a breakout board input to a torch breakaway │ │ │ │ │ detection switch. │ │ │ │ │ This signal senses if the torch has broken away from its cradle. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ Brenner ein (engl. │ │ │ │ │ torch on) │ │ │ │ │ │ │ │ │ │ Modi │ │ │ │ │ 0, 1, 2 │ │ │ │ │ @@ -33552,15 +33552,15 @@ │ │ │ │ │ • [AXIS_Z] MIN_LIMIT should be just below top of the slats with allowances for float_switch_travel │ │ │ │ │ and over travel tolerance. For example, if the user’s float switch takes 4 mm (0.157”) to activate │ │ │ │ │ then set the Z minimum to 5 mm (0.2”) plus an allowance for overrun (either calculated using the │ │ │ │ │ equation below or allow 5 mm (0.2”) below the lowest slat). │ │ │ │ │ • [AXIS_Z] MAX_LIMIT should be the highest the user wants the Z axis to travel (it must not be │ │ │ │ │ lower than Z HOME_OFFSET). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 748 / 1331 │ │ │ │ │ │ │ │ │ │ • [AXIS_Z] HOME should be set to be approximately 5 mm-10 mm (0.2”-0.4”) below the maximum │ │ │ │ │ limit. │ │ │ │ │ • Floating Head - it is recommended that a floating head be used and that it has enough movement │ │ │ │ │ to allow for overrun during probing. Overrun can be calculated using the following formula: │ │ │ │ │ @@ -33595,47 +33595,47 @@ │ │ │ │ │ Platine aus. │ │ │ │ │ QtPlasmaC adds two pages to the LinuxCNC configuration wizards for QtPlasmaC specific parameters, │ │ │ │ │ the two pages are QtPlasmaC options and User Buttons. Complete each of the wizards QtPlasmaC page │ │ │ │ │ to suit the machine that is being configured and the user button requirements. │ │ │ │ │ Note that PnCconf options allow user selection of Feed Override, Linear Velocity, and Jog Increments, │ │ │ │ │ whereas in StepConf these are automatically calculated and set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 10.43: PnCConf QtPlasmaC Options │ │ │ │ │ │ │ │ │ │ 749 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 10.44: StepConf QtPlasmaC Options │ │ │ │ │ │ │ │ │ │ 750 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Abbildung 10.45: QtPlasmaC User Buttons │ │ │ │ │ │ │ │ │ │ 751 / 1331 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 752 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.46: QtPlasmaC THCAD │ │ │ │ │ The THCAD screen will only appear if a Plasma Encoder is selected in the card screen. The the dedicated section on Mesa THCAD for more information. │ │ │ │ │ When the configuration is complete, the wizard will save a copy of the configuration that may be │ │ │ │ │ loaded and edited at a later time, a working QtPlasmaC configuration will be created in the following │ │ │ │ │ directory: ~/linuxcnc/configs/. │ │ │ │ │ The way the newly created QtPlasmaC configuration can be run from the terminal command line │ │ │ │ │ slightly differs depending the way LinuxCNC was installed: │ │ │ │ │ Für eine Paketinstallation (Buildbot): │ │ │ │ │ linuxcnc ~/linuxcnc/configs/__/__.ini │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 753 / 1331 │ │ │ │ │ │ │ │ │ │ For a run in place installation: │ │ │ │ │ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/__/__.ini │ │ │ │ │ │ │ │ │ │ Nach dem Ausführen des obigen Befehls sollte LinuxCNC mit der QtPlasmaC GUI sichtbar sein. │ │ │ │ │ @@ -33658,25 +33658,25 @@ │ │ │ │ │ │ │ │ │ │ Geben Sie für eine ”run in place”-Installation den folgenden Befehl in ein Terminalfenster ein: │ │ │ │ │ ~/linuxcnc-dev/lib/python/qtvcp/designer/install_script │ │ │ │ │ │ │ │ │ │ 10.8.5.6 Erstmalige Einrichtung │ │ │ │ │ Das folgende Höhendiagramm soll dem Benutzer helfen, die verschiedenen Höhen beim Plasmaschneiden und deren Messung zu veranschaulichen: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 754 / 1331 │ │ │ │ │ │ │ │ │ │ Click on the Parameters Tab to view the CONFIGURATION section which shows the user settable │ │ │ │ │ parameters. It is necessary to ensure every one of these settings is tailored to the machine. │ │ │ │ │ To set the Z axis DRO relative to the Z axis MINIMUM_LIMIT, the user should perform the following │ │ │ │ │ steps. It is important to understand that in QtPlasmaC, touching off the Z axis DRO has no effect on │ │ │ │ │ the Z axis position while running a G-code program. These steps simply allow the user to more easily │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 755 / 1331 │ │ │ │ │ │ │ │ │ │ set the probe height as after performing the steps, the displayed Z axis DRO value will be relative to │ │ │ │ │ Z axis MINIMUM_LIMIT. │ │ │ │ │ Anmerkung │ │ │ │ │ The user should be familiar with the recommended Z Axis Settings. │ │ │ │ │ @@ -33711,15 +33711,15 @@ │ │ │ │ │ and the measured value. │ │ │ │ │ 8. After the adjustments to the ”Float Travel” have been made, repeat the process from #4 above │ │ │ │ │ until the measured distance between the material and the torch tip matches the Pierce Height │ │ │ │ │ of the currently selected material. │ │ │ │ │ 9. If the table has a laser or camera for sheet alignment, a scribe, or uses offset probing then the │ │ │ │ │ required offsets need to be applied by following the procedure described in Peripheral Offsets. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 756 / 1331 │ │ │ │ │ │ │ │ │ │ 10. CONGRATULATIONS! The user should now have a working QtPlasmaC Configuration. │ │ │ │ │ Anmerkung │ │ │ │ │ If the amount of time between the torch contacting the material and when the torch moves up and │ │ │ │ │ comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution. │ │ │ │ │ @@ -33751,15 +33751,15 @@ │ │ │ │ │ │ │ │ │ │ For a run in place installation enter the following lines in terminal window: │ │ │ │ │ source ~/linuxcnc-dev/scripts/rip-environment │ │ │ │ │ qtplasmac-plasmac2qt │ │ │ │ │ │ │ │ │ │ The following screen will be displayed: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 757 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.10: Mandatory Settings │ │ │ │ │ Field │ │ │ │ │ Beschreibung │ │ │ │ │ INI-DATEI IN │ │ │ │ │ @@ -33783,15 +33783,15 @@ │ │ │ │ │ 16:9 │ │ │ │ │ ESTOP:1 │ │ │ │ │ │ │ │ │ │ Optional Setting - This setting is not required unless the machine has a laser for sheet │ │ │ │ │ alignment. Leave this blank if it is not used/required. Lassen Sie dieses Feld leer, wenn es nicht │ │ │ │ │ verwendet/erforderlich ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Field │ │ │ │ │ Laser On │ │ │ │ │ HAL-Pins │ │ │ │ │ │ │ │ │ │ Beschreibung │ │ │ │ │ Schalten Sie ein Laserfadenkreuz für die │ │ │ │ │ @@ -33834,15 +33834,15 @@ │ │ │ │ │ For a package installation (Buildbot) enter the following line in a terminal window: │ │ │ │ │ qtplasmac-cfg2prefs │ │ │ │ │ │ │ │ │ │ For a run in place installation enter the following lines in terminal window: │ │ │ │ │ source ~/linuxcnc-dev/scripts/rip-environment │ │ │ │ │ qtplasmac-cfg2prefs │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 759 / 1331 │ │ │ │ │ │ │ │ │ │ Abbildung 10.47: qtplasmac-cfg2prefs │ │ │ │ │ Select the INI file of the old PlasmaC configuration, select the INI file of the new QtPlasmaC configuration, then press CONVERT. │ │ │ │ │ │ │ │ │ │ 10.8.7 Other QtPlasmaC Setup Considerations │ │ │ │ │ @@ -33856,15 +33856,15 @@ │ │ │ │ │ file in the machine’s configuration directory to add the appropriate cutoff frequency as measured in │ │ │ │ │ Hertz (Hz). │ │ │ │ │ Zum Beispiel: │ │ │ │ │ setp plasmac.lowpass-frequency 100 │ │ │ │ │ │ │ │ │ │ The above example would give a cutoff frequency of 100Hz. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 760 / 1331 │ │ │ │ │ │ │ │ │ │ 10.8.7.2 Contact Bounce │ │ │ │ │ Contact bounce from mechanical relays, switches, or external interference may cause some inconsistent behavior of the following switches: │ │ │ │ │ • Float Switch │ │ │ │ │ • Ohmic Probe │ │ │ │ │ @@ -33900,15 +33900,15 @@ │ │ │ │ │ Depending on the specified minimum contact current and the current drawn by the input device there │ │ │ │ │ may be a need to provide a method to increase the current through the contacts. │ │ │ │ │ Most relays using gold contacts will not require any additional current for reliable operation. │ │ │ │ │ There are two different methods available to provide this minimum current if it is required: │ │ │ │ │ 1. A 0.1 μF film capacitor placed across the contacts. │ │ │ │ │ 2. A 1200 Ω 1 W resistor across the load (see calculations below). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 761 / 1331 │ │ │ │ │ │ │ │ │ │ Schematics are shown at contact load schematics. │ │ │ │ │ More information on contact switching load can be seen on page VI of the finder General Technical │ │ │ │ │ Information document. │ │ │ │ │ Calculations: │ │ │ │ │ @@ -33946,15 +33946,15 @@ │ │ │ │ │ Terminal=false │ │ │ │ │ Name=LinuxCNC │ │ │ │ │ Exec=sh -c ”linuxcnc $HOME/linuxcnc/configs//.ini” │ │ │ │ │ Type=Application │ │ │ │ │ Icon=/usr/share/pixmaps/linuxcncicon.png │ │ │ │ │ 1 In the US, the letter V is commonly used as a symbol (Voltage) and as a unit (Volt). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 762 / 1331 │ │ │ │ │ │ │ │ │ │ Wenn der Benutzer ein Terminalfenster hinter dem GUI-Fenster öffnen möchte, ändern Sie die TerminalZeile in: │ │ │ │ │ Terminal=true │ │ │ │ │ │ │ │ │ │ Die Anzeige eines Terminals kann für Fehler- und Informationsmeldungen nützlich sein. │ │ │ │ │ @@ -34010,15 +34010,15 @@ │ │ │ │ │ Anmerkung │ │ │ │ │ The configuration files (.ini and .hal) that are created by configuration wizard are notated to explain the requirements to aid in manual manipulation of these │ │ │ │ │ configurations. They may be edited with any text editor. │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ The .prefs file is plain text and may be edited with any text editor. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 763 / 1331 │ │ │ │ │ │ │ │ │ │ 10.8.7.6 INI File │ │ │ │ │ QtPlasmaC has some specific .ini file variables as follows: │ │ │ │ │ [FILTER] Section These variables are mandatory. │ │ │ │ │ PROGRAM_EXTENSION = .ngc,.nc,.tap G-code File (*.ngc, *.nc, *.tap) │ │ │ │ │ @@ -34067,15 +34067,15 @@ │ │ │ │ │ [DISPLAY] Section │ │ │ │ │ This variable is mandatory. │ │ │ │ │ DISPLAY = qtvcp qtplasmac │ │ │ │ │ (use 16:9 resolution) │ │ │ │ │ = qtvcp qtplasmac_9x16 (use 9:16 resolution) │ │ │ │ │ = qtvcp qtplasmac_4x3 (use 4:3 resolution) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 764 / 1331 │ │ │ │ │ │ │ │ │ │ There are multiple QtVCP options that are described here: QtVCP INI Settings │ │ │ │ │ For example the following would start a 16:9 resolution QtPlasmaC screen in full screen mode: │ │ │ │ │ DISPLAY = qtvcp -f qtplasmac │ │ │ │ │ │ │ │ │ │ @@ -34114,15 +34114,15 @@ │ │ │ │ │ 10.8.8.1 Beenden von QtPlasmaC │ │ │ │ │ Das Beenden oder Herunterfahren von QtPlasmaC erfolgt entweder durch: │ │ │ │ │ 1. Klicken Sie auf die Schaltfläche zum Herunterfahren des Fensters in der Titelleiste des Fensters │ │ │ │ │ 2. Drücken Sie lange auf die Taste POWER auf der Haupt-Registerkarte (engl. main). │ │ │ │ │ A shutdown warning can be displayed on every shutdown by checking the Exit Warning checkbox on │ │ │ │ │ the SETTINGS Tab. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 765 / 1331 │ │ │ │ │ │ │ │ │ │ 10.8.8.2 HAUPT (engl. main)-Registerkarte (engl. tab) │ │ │ │ │ Screenshot example of the QtPlasmaC MAIN Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ Einige Funktionen/Merkmale werden nur für bestimmte Modi verwendet und werden nicht angezeigt, │ │ │ │ │ @@ -34138,15 +34138,15 @@ │ │ │ │ │ Dropdown-Menü zu öffnen. Es wird verwendet, um die aktuellen │ │ │ │ │ Materialschnittparameter manuell auszuwählen. Wenn in der │ │ │ │ │ Materialdatei keine Materialien vorhanden sind, wird nur das │ │ │ │ │ Standardmaterial angezeigt. │ │ │ │ │ Hier wird der tatsächliche Schnittvorschub angezeigt, mit dem sich der │ │ │ │ │ Tisch bewegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 766 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.14: (continued) │ │ │ │ │ Name │ │ │ │ │ FR: │ │ │ │ │ PH: │ │ │ │ │ @@ -34216,15 +34216,15 @@ │ │ │ │ │ Wenn ein Zyklus pausiert wird, zeigt dieser Button ”ZYKLUS │ │ │ │ │ FORTSETZEN (engl. CYCLE RESUME) an und blinkt. │ │ │ │ │ Durch Drücken von ZYKLUS FORTSETZEN wird der Zyklus fortgesetzt. │ │ │ │ │ │ │ │ │ │ ZYKLUSSTART │ │ │ │ │ ZYKLUSPAUSE │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 767 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.15: (continued) │ │ │ │ │ Name │ │ │ │ │ ZYKLUS STOP │ │ │ │ │ (engl. cycle stop) │ │ │ │ │ @@ -34300,15 +34300,15 @@ │ │ │ │ │ Beschreibung │ │ │ │ │ Displays the actual arc voltage. │ │ │ │ │ Indicates the status of the Arc OK signal. │ │ │ │ │ Each press of this button will raise the target voltage by │ │ │ │ │ the THC Threshold voltage (The distance changed will be │ │ │ │ │ Height Per Volt * THC Threshold voltage). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 768 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.17: (continued) │ │ │ │ │ Name │ │ │ │ │ - │ │ │ │ │ │ │ │ │ │ @@ -34401,15 +34401,15 @@ │ │ │ │ │ - Will not require an Arc OK signal be received before │ │ │ │ │ starting machine motion after the ”Torch On” signal is │ │ │ │ │ given. │ │ │ │ │ - Will disable the THC. │ │ │ │ │ - Will not stop machine motion if the Arc OK signal is lost. │ │ │ │ │ For more information see Ignore Arc Ok. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 769 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.18: (continued) │ │ │ │ │ Name │ │ │ │ │ OHMIC PROBE │ │ │ │ │ │ │ │ │ │ @@ -34481,15 +34481,15 @@ │ │ │ │ │ Beschreibung │ │ │ │ │ This drop down button will change the jog increment. Options are │ │ │ │ │ determined by the values in the [DISPLAY] section of the │ │ │ │ │ .ini file and begin with the label ”INCREMENTS =”. │ │ │ │ │ This button will toggle between FAST which is the default linear velocity in │ │ │ │ │ the .ini file or SLOW which is 10% of the default value. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ Y+ │ │ │ │ │ YX+ │ │ │ │ │ XZ+ │ │ │ │ │ Z- │ │ │ │ │ │ │ │ │ │ @@ -34560,15 +34560,15 @@ │ │ │ │ │ If a file is open, the default material will be selected. │ │ │ │ │ If no file is open, the preview will be reset to a top down full table view. │ │ │ │ │ The torch (T0) will be selected if it was not the active tool. │ │ │ │ │ Diese Schaltfläche öffnet ein DATEI-ÖFFNEN-Panel über dem │ │ │ │ │ VORSCHAU-FENSTER. │ │ │ │ │ Diese Schaltfläche lädt die aktuell geladene G-Code-Datei neu. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 771 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.24: DRO │ │ │ │ │ Name │ │ │ │ │ HOME ALL │ │ │ │ │ WCS G54 │ │ │ │ │ @@ -34610,30 +34610,30 @@ │ │ │ │ │ orientation, then pressing either Z or P will change the display to the newly selected view. If the user │ │ │ │ │ then wishes to display the full table while maintaining the currently selected view as the default view │ │ │ │ │ for a loaded G-code file, then pressing CLEAR will achieve this and allow the selected view orientation │ │ │ │ │ to prevail the next time a G-code file is loaded. │ │ │ │ │ 10.8.8.4 CONVERSATIONAL Tab │ │ │ │ │ Screenshot example of the QtPlasmaC CONVERSATIONAL Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 772 / 1331 │ │ │ │ │ │ │ │ │ │ The CONVERSATIONAL Tab enables the user to quickly program various simple shapes for quick │ │ │ │ │ cutting without the need for CAM software. │ │ │ │ │ See Conversational Shape Library for detailed information on the Conversational feature. │ │ │ │ │ It is possible to hide this tab so the conversational feature cannot be used by an operator. This may │ │ │ │ │ be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a HAL │ │ │ │ │ file using the following command: │ │ │ │ │ setp qtplasmac.conv_disable 1 │ │ │ │ │ │ │ │ │ │ 10.8.8.5 PARAMETERS Tab │ │ │ │ │ Screenshot example of the QtPlasmaC PARAMETERS Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 773 / 1331 │ │ │ │ │ │ │ │ │ │ Einige Funktionen/Merkmale werden nur für bestimmte Modi verwendet und werden nicht angezeigt, │ │ │ │ │ wenn sie für den gewählten QtPlasmaC-Modus nicht erforderlich sind. │ │ │ │ │ This tab is used to display configuration parameters that are modified infrequently. │ │ │ │ │ It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This │ │ │ │ │ @@ -34655,15 +34655,15 @@ │ │ │ │ │ Beschreibung │ │ │ │ │ This sets the amount of time (in seconds) QtPlasmaC will wait │ │ │ │ │ between commanding a ”Torch On” and receiving an Arc OK │ │ │ │ │ signal before timing out and displaying an error message. │ │ │ │ │ This sets the number of times QtPlasmaC will attempt to start │ │ │ │ │ the arc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 774 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.25: (continued) │ │ │ │ │ Name │ │ │ │ │ Retry Delay │ │ │ │ │ │ │ │ │ │ @@ -34740,15 +34740,15 @@ │ │ │ │ │ This sets the distance threshold used to determine if an Initial Height │ │ │ │ │ Sense (probe) can be skipped for the current cut, see IHS Skip. │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ If the amount of time between the torch contacting the material and when the torch moves up and │ │ │ │ │ comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 775 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.27: CONFIGURATION - SAFETY │ │ │ │ │ Name │ │ │ │ │ Safe Height │ │ │ │ │ │ │ │ │ │ @@ -34800,15 +34800,15 @@ │ │ │ │ │ │ │ │ │ │ CONFIGURATION - THC Two methods of THC activation are available and are selected with the │ │ │ │ │ Auto Activation checkbutton. Both methods begin their calculations when the current velocity of the │ │ │ │ │ torch matches the cut feed rate specified for the selected material: │ │ │ │ │ 1. Delay Activation (the default) is selected when Auto Activation is unchecked. This method uses │ │ │ │ │ a time delay set with the Delay parameter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 776 / 1331 │ │ │ │ │ │ │ │ │ │ 2. Auto Activation is selected when Auto Activation is checked. This method determines that the │ │ │ │ │ arc voltage is stable by using the Sample Counts and Sample Threshold parameters. │ │ │ │ │ Name │ │ │ │ │ Delay │ │ │ │ │ @@ -34896,15 +34896,15 @@ │ │ │ │ │ Beschreibung │ │ │ │ │ The top drop down menu is used to manually select the current material │ │ │ │ │ cut parameters. If there are no materials in the material file then only the │ │ │ │ │ default material will be displayed. │ │ │ │ │ This sets the kerf width for the currently selected material. Refer to the │ │ │ │ │ Heights Diagram diagram for a visual representation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 777 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.32: (continued) │ │ │ │ │ Name │ │ │ │ │ Pierce Height │ │ │ │ │ Pierce Delay │ │ │ │ │ @@ -34966,15 +34966,15 @@ │ │ │ │ │ The Cut Parameters for the new material will then need to be adjusted and saved. │ │ │ │ │ The DELETE this button is used to delete a material. After pressing it, the user will be prompted for │ │ │ │ │ a material number to be deleted, and prompted again to ensure the user is sure. After deletion, the │ │ │ │ │ material file will be reloaded and the drop down list will display the default material. │ │ │ │ │ 10.8.8.6 SETTINGS Tab │ │ │ │ │ Screenshot example of the QtPlasmaC SETTINGS Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 778 / 1331 │ │ │ │ │ │ │ │ │ │ Diese Registerkarte wird verwendet, um GUI-Konfigurationsparameter, Schaltflächentext und Herunterfahrtext anzuzeigen, die selten geändert werden, sowie einige Dienstprogrammschaltflächen. │ │ │ │ │ It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This │ │ │ │ │ may be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a │ │ │ │ │ HAL file using the following command: │ │ │ │ │ @@ -34989,15 +34989,15 @@ │ │ │ │ │ Foreground │ │ │ │ │ Highlight │ │ │ │ │ │ │ │ │ │ Beschreibung │ │ │ │ │ This button allows the user to change the color of the GUI Foreground. │ │ │ │ │ This button allows the user to change the color of the GUI Highlight. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 779 / 1331 │ │ │ │ │ │ │ │ │ │ Tabelle 10.33: (continued) │ │ │ │ │ Name │ │ │ │ │ LED │ │ │ │ │ Background │ │ │ │ │ @@ -35075,15 +35075,15 @@ │ │ │ │ │ current tool) in the Preview Window on the MAIN Tab. │ │ │ │ │ This allows a user to change the default zoom level for the top down full │ │ │ │ │ table view in the Preview Window on the MAIN Tab. │ │ │ │ │ │ │ │ │ │ USER BUTTON ENTRIES USERBUTTON │ │ │ │ │ This section shows the text that appears on the Custom User Buttons as well as the code associated │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 780 / 1331 │ │ │ │ │ │ │ │ │ │ with the user button. User buttons may be changed and the new settings used without restarting │ │ │ │ │ LinuxCNC. │ │ │ │ │ The text and/or code may be edited at any time and will be loaded ready for use if the SAVE button is │ │ │ │ │ clicked. │ │ │ │ │ @@ -35123,15 +35123,15 @@ │ │ │ │ │ where is the machine name entered in the configuration wizard, is the │ │ │ │ │ current QtPlasmaC version the user is on, is the current date (YY-MM-DD), and

.pin- ̀ │ │ │ │ │ ____-out ̀ (bit) Drives a physical output pin. │ │ │ │ │ • parport.

.pin- ̀ │ │ │ │ │ @@ -17165,15 +17165,15 @@ │ │ │ │ │ in the same thread as write. If -reset is TRUE, then the reset function will set the pin to the value │ │ │ │ │ of -out-invert. 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. │ │ │ │ │ The individual functions are provided for situations where one port needs to be updated in a very fast │ │ │ │ │ thread, but other ports can be updated in a slower thread to save CPU time. It is probably not a good │ │ │ │ │ idea to use both an -all function and an individual function at the same time. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 327 / 1291 │ │ │ │ │ │ │ │ │ │ 6.1.6 Common problems │ │ │ │ │ If loading the module reports │ │ │ │ │ insmod: error inserting ’/home/jepler/emc2/rtlib/hal_parport.ko’: │ │ │ │ │ -1 Device or resource busy │ │ │ │ │ @@ -17215,15 +17215,15 @@ │ │ │ │ │ │ │ │ │ │ Then use of this module will probably be necessary. │ │ │ │ │ Finally, HAL parport components should be loaded: │ │ │ │ │ loadrt probe_parport │ │ │ │ │ loadrt hal_parport ... │ │ │ │ │ 1 In the LinuxCNC packages for Ubuntu, the file /etc/modprobe.d/emc2 generally prevents parport_pc from being automatically loaded. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 328 / 1291 │ │ │ │ │ │ │ │ │ │ 6.2 AX5214H Driver │ │ │ │ │ The Axiom Measurement & Control AX5214H is a 48 channel digital I/O board. It plugs into an ISA │ │ │ │ │ bus, and resembles a pair of 8255 chips. In fact it may be a pair of 8255 chips, but I’m not sure. │ │ │ │ │ If/when someone starts a driver for an 8255 they should look at the ax5214 code, much of the work is │ │ │ │ │ @@ -17262,15 +17262,15 @@ │ │ │ │ │ module, and FALSE drives it high, turning OFF the OPTO-22 module. If -invert is TRUE, then setting │ │ │ │ │ the HAL out- pin TRUE will drive the physical pin high and turn the module OFF. │ │ │ │ │ │ │ │ │ │ 6.2.4 Functions │ │ │ │ │ • (funct) ax5214..read — Reads all digital inputs on one board. │ │ │ │ │ • (funct) ax5214..write — Writes all digital outputs on one board. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 329 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3 General Mechatronics Driver │ │ │ │ │ General Mechatronics GM6-PCI card based motion control system │ │ │ │ │ For detailed description, please refer to the System integration manual. │ │ │ │ │ The GM6-PCI motion control card is based on an FPGA and a PCI bridge interface ASIC. A small │ │ │ │ │ @@ -17289,15 +17289,15 @@ │ │ │ │ │ loadrt hal_gm │ │ │ │ │ │ │ │ │ │ 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. │ │ │ │ │ The following connectors can be found on the GM6-PCI card: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 330 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 6.2: GM6-PCI card connectors and LEDs │ │ │ │ │ │ │ │ │ │ 6.3.1 I/O connectors │ │ │ │ │ │ │ │ │ │ @@ -17333,15 +17333,15 @@ │ │ │ │ │ 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. Every GPIO pin and parameter │ │ │ │ │ name begins as follows: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 331 / 1291 │ │ │ │ │ │ │ │ │ │ gm..gpio. │ │ │ │ │ │ │ │ │ │ where is from 0 to 3. │ │ │ │ │ State of the first pin of the first GPIO connector on the GM6-PCI card. │ │ │ │ │ @@ -17389,15 +17389,15 @@ │ │ │ │ │ When True, pin value will be inverted. │ │ │ │ │ Used when pin is configured as output. │ │ │ │ │ │ │ │ │ │ 6.3.2 Axis connectors │ │ │ │ │ │ │ │ │ │ Figure 6.4: Pin numbering of axis connectors │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 332 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.6: Pinout of axis connectors │ │ │ │ │ 1 │ │ │ │ │ 2 │ │ │ │ │ 3 │ │ │ │ │ @@ -17425,15 +17425,15 @@ │ │ │ │ │ modules to the axis connectors. Seven different system configurations are presented in the 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 have to be connected as the following │ │ │ │ │ block diagram shows: │ │ │ │ │ │ │ │ │ │ Figure 6.5: Servo axis interfaces │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 333 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.2.2 Encoder │ │ │ │ │ The GM6-PCI motion control card has six encoder modules. Each encoder module has three channels: │ │ │ │ │ • Channel-A │ │ │ │ │ • Channel-B │ │ │ │ │ @@ -17497,15 +17497,15 @@ │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 334 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.8: Encoder parameters │ │ │ │ │ Parameters │ │ │ │ │ .counter-mode │ │ │ │ │ │ │ │ │ │ @@ -17580,15 +17580,15 @@ │ │ │ │ │ example, if position-scale is 2000, then │ │ │ │ │ 1000 counts of the encoder will │ │ │ │ │ produce a position of 0.5 units. │ │ │ │ │ │ │ │ │ │ Setting encoder module of axis 0 to receive 500 CPR quadrature encoder signal and use │ │ │ │ │ reset to round position. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 335 / 1291 │ │ │ │ │ │ │ │ │ │ setp gm.0.encoder.0.counter-mode 0 │ │ │ │ │ # 0: quad, 1: stepDir │ │ │ │ │ setp gm.0.encoder.0.index-mode 1 │ │ │ │ │ # 0: reset pos at index, 1:round pos at index │ │ │ │ │ @@ -17659,15 +17659,15 @@ │ │ │ │ │ │ │ │ │ │ Parameter description │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 336 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.10: (continued) │ │ │ │ │ Parameters │ │ │ │ │ .control-type │ │ │ │ │ │ │ │ │ │ @@ -17724,15 +17724,15 @@ │ │ │ │ │ Minimum time between two step pulses in │ │ │ │ │ nano-seconds. │ │ │ │ │ Minimum time between step pulse and │ │ │ │ │ direction change in nanoseconds. │ │ │ │ │ │ │ │ │ │ For evaluating the appropriate values see the timing diagrams below: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 337 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 6.6: Reference signal timing diagrams │ │ │ │ │ Setting StepGen module of axis 0 to generate 1000 step pulse per position unit │ │ │ │ │ setp gm.0.stepgen.0.step-type 0 │ │ │ │ │ setp gm.0.stepgen.0.control-type 0 │ │ │ │ │ @@ -17750,15 +17750,15 @@ │ │ │ │ │ # 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 µs │ │ │ │ │ setp gm.0.stepgen.0.stepspace1000 │ │ │ │ │ # 1000 ns = 1 µs │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 338 / 1291 │ │ │ │ │ │ │ │ │ │ setp gm.0.stepgen.0.dirdelay 2000 │ │ │ │ │ │ │ │ │ │ # 2000 ns = 2 µs │ │ │ │ │ │ │ │ │ │ @@ -17811,15 +17811,15 @@ │ │ │ │ │ direction │ │ │ │ │ (bit, In) │ │ │ │ │ │ │ │ │ │ Pin description │ │ │ │ │ Enable DAC output. When enable is │ │ │ │ │ false, DAC output is 0.0 V. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 339 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.12: (continued) │ │ │ │ │ Pins │ │ │ │ │ │ │ │ │ │ Type and │ │ │ │ │ @@ -17882,15 +17882,15 @@ │ │ │ │ │ gm..can-gm. │ │ │ │ │ │ │ │ │ │ where is from 0 to 5. For example, gm.0.can-gm.0.position refers to the output position │ │ │ │ │ of axis 0 in position units. │ │ │ │ │ HAL pins are updated by function: │ │ │ │ │ gm..write │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 340 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.3.1 Pins │ │ │ │ │ Table 6.14: CAN module pins │ │ │ │ │ Pins │ │ │ │ │ │ │ │ │ │ @@ -17936,15 +17936,15 @@ │ │ │ │ │ │ │ │ │ │ Pin description │ │ │ │ │ Indicates that watchdog timer is expired. │ │ │ │ │ │ │ │ │ │ Watchdog timer overrun causes the set of power-enable to low in hardware. │ │ │ │ │ 6.3.4.2 Parameters │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 341 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.17: Watchdog parameters │ │ │ │ │ Parameters │ │ │ │ │ │ │ │ │ │ Type and │ │ │ │ │ @@ -18049,15 +18049,15 @@ │ │ │ │ │ 2 │ │ │ │ │ V+ │ │ │ │ │ (Ext.) │ │ │ │ │ │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 342 / 1291 │ │ │ │ │ │ │ │ │ │ gm..joint. │ │ │ │ │ │ │ │ │ │ where is from 0 to 5. For example, gm.0.joint.0.home-sw-in indicates the state of the │ │ │ │ │ axis 0 home switch. │ │ │ │ │ @@ -18113,15 +18113,15 @@ │ │ │ │ │ 6.3.6 Status LEDs │ │ │ │ │ 6.3.6.1 CAN │ │ │ │ │ Color: Orange │ │ │ │ │ • Blink, during data communication. │ │ │ │ │ • On, when any of the buffers are full - communication error. │ │ │ │ │ • Off, when no data communication. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 343 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.6.2 RS485 │ │ │ │ │ Color: Orange │ │ │ │ │ • Blink, during initialization of modules on the bus │ │ │ │ │ • On, when the data communication is up between all initialized modules. │ │ │ │ │ @@ -18146,15 +18146,15 @@ │ │ │ │ │ Available module types: │ │ │ │ │ • 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 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. This module is also optically isolated from the GM6-PCI card. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 344 / 1291 │ │ │ │ │ │ │ │ │ │ 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 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 │ │ │ │ │ @@ -18184,15 +18184,15 @@ │ │ │ │ │ Type and │ │ │ │ │ direction │ │ │ │ │ (bit, Out) │ │ │ │ │ │ │ │ │ │ Pin description │ │ │ │ │ Output pin for relay │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 345 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.23: Relay output module parameters │ │ │ │ │ Parameters │ │ │ │ │ │ │ │ │ │ Type and │ │ │ │ │ @@ -18255,15 +18255,15 @@ │ │ │ │ │ # First input of the node. │ │ │ │ │ # Identifies the first GM6-PCI motion control card (PCI card address │ │ │ │ │ # Selects node with address 0 on the RS485 bus │ │ │ │ │ # Selects the first digital input module │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 346 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.7.3 DAC & ADC module │ │ │ │ │ For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual. │ │ │ │ │ All the pins and parameters are updated by the following function: │ │ │ │ │ gm..rs485 │ │ │ │ │ @@ -18335,15 +18335,15 @@ │ │ │ │ │ # │ │ │ │ │ .adc-0 │ │ │ │ │ │ │ │ │ │ # First analogue channel of the node. │ │ │ │ │ # Identifies the first GM6-PCI motion control card (PCI card address ←# Selects node with address 0 on the RS485 bus │ │ │ │ │ # Selects the first analogue input of the module │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 347 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.7.4 Teach Pendant module │ │ │ │ │ For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual. │ │ │ │ │ All the pins and parameters are updated by the following function: │ │ │ │ │ gm..rs485 │ │ │ │ │ @@ -18425,15 +18425,15 @@ │ │ │ │ │ # First analogue channel of the node. │ │ │ │ │ # Identifies the first GM6-PCI motion control card (PCI card address │ │ │ │ │ # Selects node with address 0 on the RS485 bus │ │ │ │ │ # Selects the first analogue input of the module │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 348 / 1291 │ │ │ │ │ │ │ │ │ │ 6.3.8 Errata │ │ │ │ │ 6.3.8.1 GM6-PCI card Errata │ │ │ │ │ The revision number in this section refers to the revision of the GM6-PCI card device. │ │ │ │ │ Rev. 1.2 │ │ │ │ │ @@ -18466,15 +18466,15 @@ │ │ │ │ │ number you set on the GS2. │ │ │ │ │ • -v or --verbose Turn on debug messages. │ │ │ │ │ • -A or --accel-seconds (default: 10.0) Seconds to accelerate the spindle from 0 to max. RPM. │ │ │ │ │ • -D or --decel-seconds (default: 0.0) Seconds to decelerate the spindle from max. RPM to 0. If │ │ │ │ │ set to 0.0 the spindle will be allowed to coast to a stop without controlled deceleration. │ │ │ │ │ 2 In Europe the equivalent can be found under the brand name Omron. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 349 / 1291 │ │ │ │ │ │ │ │ │ │ • -R or --braking-resistor This argument should be used when a braking resistor is installed on the │ │ │ │ │ GS2 VFD (see Appendix A of the GS2 manual). It disables deceleration over-voltage stall prevention │ │ │ │ │ (see GS2 modbus Parameter 6.05), allowing the VFD to keep braking even in situations where the │ │ │ │ │ motor is regenerating high voltage. The regenerated voltage gets safely dumped into the braking │ │ │ │ │ @@ -18504,15 +18504,15 @@ │ │ │ │ │ • .spindle-on (bit, in) 1 for ON and 0 for OFF sent to VFD │ │ │ │ │ • .status-1 (s32, out) Drive Status of the VFD (see the GS2 manual) │ │ │ │ │ • .status-2 (s32, out) Drive Status of the VFD (see the GS2 manual) │ │ │ │ │ Note │ │ │ │ │ The status value is a sum of all the bits that are on. So a 163 which means the drive is in the run │ │ │ │ │ mode is the sum of 3 (run) + 32 (freq set by serial) + 128 (operation set by serial). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 350 / 1291 │ │ │ │ │ │ │ │ │ │ 6.4.3 Parameters │ │ │ │ │ With being gs2_vfd or the name given during loading with the -n option: │ │ │ │ │ • .error-count (s32, RW) │ │ │ │ │ • .loop-time (float, RW) how often the modbus is polled (default: 0.1) │ │ │ │ │ @@ -18560,15 +18560,15 @@ │ │ │ │ │ 0x00000004 │ │ │ │ │ │ │ │ │ │ Pin Num │ │ │ │ │ 3 │ │ │ │ │ 5 │ │ │ │ │ 7 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 351 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.29: (continued) │ │ │ │ │ GPIO Num │ │ │ │ │ 5 │ │ │ │ │ 6 │ │ │ │ │ @@ -18682,15 +18682,15 @@ │ │ │ │ │ │ │ │ │ │ 6.5.4 Parameters │ │ │ │ │ Only the standard timing parameters which are created for all components exist. │ │ │ │ │ *hal_pi_gpio.read.tmax *hal_pi_gpio.read.tmax-increased *hal_pi_gpio.write.tmax *hal_pi_gpio.write.tmaxincreased │ │ │ │ │ For unknown reasons the driver also creates HAL pins to indicate timing │ │ │ │ │ *hal_pi_gpio.read.time *hal_pi_gpio.write.time │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 352 / 1291 │ │ │ │ │ │ │ │ │ │ 6.5.5 Functions │ │ │ │ │ • hal_pi_gpio.read - Add this to the base thread to update the HAL pin values to match the physical │ │ │ │ │ input values. │ │ │ │ │ • hal_pi_gpio.write - Add this to the base thread to update the physical pins to match the HAL values. │ │ │ │ │ @@ -18728,15 +18728,15 @@ │ │ │ │ │ reset=GPIO21,GPIO22 │ │ │ │ │ │ │ │ │ │ This driver relies on the libgpiod-dev library and the gpiod package, which contains a number of │ │ │ │ │ utilities for configuring and querying GPIO. The GPIO pin names in the ”loadrt” line of the HAL given │ │ │ │ │ above should be the names given by the gpioinfo command. │ │ │ │ │ Sample output (truncated): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ $ gpioinfo │ │ │ │ │ gpiochip0 - 54 lines: │ │ │ │ │ line │ │ │ │ │ 0: │ │ │ │ │ ”ID_SDA” │ │ │ │ │ line │ │ │ │ │ @@ -18877,15 +18877,15 @@ │ │ │ │ │ opendrain │ │ │ │ │ opensource │ │ │ │ │ biasdisable │ │ │ │ │ pulldown │ │ │ │ │ pullup │ │ │ │ │ The version of libgpiod-dev installed can be determined by the command gpioinfo -v │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 354 / 1291 │ │ │ │ │ │ │ │ │ │ 6.6.3 Pins │ │ │ │ │ • hal_gpio.NAME-in - HAL_OUT The value of an input pin presented in to HAL │ │ │ │ │ • hal_gpio.NAME-in-not - HAL_OUT An inverted version of the above, for convenience │ │ │ │ │ • hal_gpio.NAME-out - HAL_IN use this pin to transfer a HAL bit value to a physical output │ │ │ │ │ @@ -18922,15 +18922,15 @@ │ │ │ │ │ SUBSYSTEM==”bcm2835-gpiomem”, GROUP=”gpio”, MODE=”0660” │ │ │ │ │ SUBSYSTEM==”gpio”, GROUP=”gpio”, MODE=”0660” │ │ │ │ │ SUBSYSTEM==”gpio*”, PROGRAM=”/bin/sh -c ’\ │ │ │ │ │ chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\ │ │ │ │ │ chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/ ←virtual/gpio;\ │ │ │ │ │ chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\ │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 355 / 1291 │ │ │ │ │ │ │ │ │ │ ’” │ │ │ │ │ SUBSYSTEM==”pwm*”, PROGRAM=”/bin/sh -c ’\ │ │ │ │ │ chown -R root:gpio /sys/class/pwm && chmod -R 770 /sys/class/pwm;\ │ │ │ │ │ chown -R root:gpio /sys/devices/platform/soc/*.pwm/pwm/pwmchip* && chmod -R 770 ←/sys/devices/platform/soc/*.pwm/pwm/pwmchip*\ │ │ │ │ │ @@ -18963,15 +18963,15 @@ │ │ │ │ │ • 5I22 (96 I/O pins): using hm2_pci module │ │ │ │ │ – 16-channel servo │ │ │ │ │ – 8-channel servo plus 24 step/dir generators │ │ │ │ │ • 5I20, 5I23, 4I65, 4I68 (72 I/O pins): using hm2_pci module │ │ │ │ │ – 12-channel servo │ │ │ │ │ – 8-channel servo plus 4 step/dir generators │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 356 / 1291 │ │ │ │ │ │ │ │ │ │ – 4-channel servo plus 8 step/dir generators │ │ │ │ │ • 7I43 (48 I/O pins): using hm2_7i43 module │ │ │ │ │ – 8-channel servo (8 PWM generators & 8 encoders) │ │ │ │ │ – 4-channel servo plus 4 step/dir generators │ │ │ │ │ @@ -19010,15 +19010,15 @@ │ │ │ │ │ because the I/O Pins have become inputs). │ │ │ │ │ Resetting the watchdog resets the I/O pins to the configuration chosen at load-time. │ │ │ │ │ If the firmware includes a watchdog, the following HAL objects will be exported: │ │ │ │ │ 6.7.5.1 Pins │ │ │ │ │ • has_bit - (bit i/o) True if the watchdog has bit, False if the watchdog has not bit. If the watchdog │ │ │ │ │ has bit and the has_bit bit is True, the user can reset it to False to resume operation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 357 / 1291 │ │ │ │ │ │ │ │ │ │ 6.7.5.2 Parameters │ │ │ │ │ • timeout_ns - (u32 read/write) Watchdog timeout, in nanoseconds. This is initialized to 5,000,000 │ │ │ │ │ (5 milliseconds) at module load time. If more than this amount of time passes between calls to the │ │ │ │ │ hm2 write function, the watchdog will bite. │ │ │ │ │ @@ -19058,15 +19058,15 @@ │ │ │ │ │ connections to your card based on your configuration. │ │ │ │ │ An example of a 5I20 configuration: │ │ │ │ │ [HOSTMOT2] │ │ │ │ │ DRIVER=hm2_pci │ │ │ │ │ BOARD=5i20 │ │ │ │ │ CONFIG=”firmware=hm2/5i20/SVST8_4.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3” │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 358 / 1291 │ │ │ │ │ │ │ │ │ │ The above configuration produced this printout. │ │ │ │ │ [ 1141.053386] hm2/hm2_5i20.0: 72 I/O Pins used: │ │ │ │ │ [ 1141.053394] hm2/hm2_5i20.0: IO Pin 000 (P2-01): IOPort │ │ │ │ │ [ 1141.053397] hm2/hm2_5i20.0: IO Pin 001 (P2-03): IOPort │ │ │ │ │ @@ -19110,15 +19110,15 @@ │ │ │ │ │ mothercard on LinuxCNC startup. If you are using Run In Place, you must still install a hostmot2firmware- package. There is more information about firmware and configuration in the Configurations section. │ │ │ │ │ │ │ │ │ │ 6.7.10 HAL Pins │ │ │ │ │ The HAL pins for each configuration can be seen by opening up Show HAL Configuration from the │ │ │ │ │ Machine menu. All the HAL pins and parameters can be found there. The following figure is of the │ │ │ │ │ 5I20 configuration used above. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 359 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 6.9: 5i20 HAL Pins │ │ │ │ │ │ │ │ │ │ 6.7.11 Configurations │ │ │ │ │ The Hostmot2 firmware is available in several versions, depending on what you are trying to accomplish. You can get a reminder of what a particular firmware is for by looking at the name. Let’s look │ │ │ │ │ @@ -19134,15 +19134,15 @@ │ │ │ │ │ (and save a 7I47). So in this way we can save two ports (48 bits) for GPIO. │ │ │ │ │ Here are tables of the firmwares available in the official packages. There may be additional firmwares │ │ │ │ │ available at the Mesanet.com website that have not yet made it into the LinuxCNC official firmware │ │ │ │ │ packages, so check there too. │ │ │ │ │ 3x20 (6-port various) Default Configurations (The 3x20 comes in 1M, 1.5M, and 2M gate versions. So │ │ │ │ │ far, all firmware is available in all gate sizes.) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Firmware │ │ │ │ │ SV24 │ │ │ │ │ SVST16_24 │ │ │ │ │ │ │ │ │ │ Encoder │ │ │ │ │ 24 │ │ │ │ │ @@ -19355,15 +19355,15 @@ │ │ │ │ │ 0 │ │ │ │ │ 4 │ │ │ │ │ │ │ │ │ │ GPIO │ │ │ │ │ 0 │ │ │ │ │ 0 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Firmware │ │ │ │ │ SVST8_4IM2 │ │ │ │ │ │ │ │ │ │ Encoder │ │ │ │ │ 8 (+IM) │ │ │ │ │ │ │ │ │ │ @@ -19468,15 +19468,15 @@ │ │ │ │ │ • in - (Bit, Out) Normal state of the hardware input pin. Both full GPIO pins and I/O pins used as │ │ │ │ │ inputs by active module instances have this pin. │ │ │ │ │ • in_not - (Bit, Out) Inverted state of the hardware input pin. Both full GPIO pins and I/O pins used │ │ │ │ │ as inputs by active module instances have this pin. │ │ │ │ │ • out - (Bit, In) Value to be written (possibly inverted) to the hardware output pin. Only full GPIO pins │ │ │ │ │ have this pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 362 / 1291 │ │ │ │ │ │ │ │ │ │ 6.7.12.2 Parameters │ │ │ │ │ • invert_output - (Bit, RW) This parameter only has an effect if the is_output parameter is true. If this │ │ │ │ │ parameter is true, the output value of the GPIO will be the inverse of the value on the out HAL pin. │ │ │ │ │ Only full GPIO pins and I/O pins used as outputs by active module instances have this parameter. │ │ │ │ │ @@ -19513,15 +19513,15 @@ │ │ │ │ │ • position-cmd - (Float, In) Target position of stepper motion, in user-defined position units. │ │ │ │ │ • position-fb - (Float, Out) Feedback position in user-defined position units (counts / position_scale). │ │ │ │ │ • velocity-cmd - (Float, In) Target velocity of stepper motion, in user-defined position units per second. │ │ │ │ │ This pin is only used when the stepgen is in velocity control mode (control-type=1). │ │ │ │ │ • velocity-fb - (Float, Out) Feedback velocity in user-defined position units per second. │ │ │ │ │ 3 At present, the firmware supports multi-phase stepper outputs, but the driver doesn’t. Interested volunteers are solicited. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 363 / 1291 │ │ │ │ │ │ │ │ │ │ 6.7.13.2 Parameters │ │ │ │ │ • dirhold - (u32, RW) Minimum duration of stable Direction signal after a step ends, in nanoseconds. │ │ │ │ │ • dirsetup - (u32, RW) Minimum duration of stable Direction signal before a step begins, in nanoseconds. │ │ │ │ │ • maxaccel - (Float, RW) Maximum acceleration, in position units per second per second. If set to 0, │ │ │ │ │ @@ -19556,15 +19556,15 @@ │ │ │ │ │ The function of the Out0 and Out1 I/O pins varies with output-type parameter (see below). │ │ │ │ │ The hm2 pwmgen representation is similar to the software pwmgen component. Each pwmgen instance has the following pins and parameters: │ │ │ │ │ 6.7.14.1 Pins │ │ │ │ │ • enable - (Bit, In) If true, the pwmgen will set its Not-Enable pin false and output its pulses. If enable │ │ │ │ │ is false, pwmgen will set its Not-Enable pin true and not output any signals. │ │ │ │ │ • value - (Float, In) The current pwmgen command value, in arbitrary units. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 364 / 1291 │ │ │ │ │ │ │ │ │ │ 6.7.14.2 Parameters │ │ │ │ │ • output-type - (s32, RW) This emulates the output_type load-time argument to the software pwmgen │ │ │ │ │ component. This parameter may be changed at runtime, but most of the time you probably want │ │ │ │ │ to set it at startup and then leave it alone. Accepted values are 1 (PWM on Out0 and Direction on │ │ │ │ │ @@ -19606,15 +19606,15 @@ │ │ │ │ │ the resulting value on the I/O pin is available on the in and in_not pins. Only full GPIO pins and │ │ │ │ │ I/O pins used as outputs by active module instances have this parameter. │ │ │ │ │ │ │ │ │ │ 6.7.15 Encoder │ │ │ │ │ Encoders have names like hm2_..encoder... Instance is a twodigit number that corresponds to the HostMot2 encoder instance number. There are num_encoders │ │ │ │ │ instances, starting with 00. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 365 / 1291 │ │ │ │ │ │ │ │ │ │ Each encoder uses three or four input I/O pins, depending on how the firmware was compiled. Threepin encoders use A, B, and Index (sometimes also known as Z). Four-pin encoders use A, B, Index, and │ │ │ │ │ Index-mask. │ │ │ │ │ The hm2 encoder representation is similar to the one described by the Canonical Device Interface │ │ │ │ │ (in the HAL General Reference document), and to the software encoder component. Each encoder │ │ │ │ │ @@ -19651,15 +19651,15 @@ │ │ │ │ │ direction is B. │ │ │ │ │ • vel-timeout - (Float, RW) When the encoder is moving slower than one pulse for each time that the │ │ │ │ │ driver reads the count from the FPGA (in the hm2_read() function), the velocity is harder to estimate. │ │ │ │ │ The driver can wait several iterations for the next pulse to arrive, all the while reporting the upper │ │ │ │ │ bound of the encoder velocity, which can be accurately guessed. This parameter specifies how long │ │ │ │ │ to wait for the next pulse, before reporting the encoder stopped. This parameter is in seconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 366 / 1291 │ │ │ │ │ │ │ │ │ │ 6.7.16 5I25 Configuration │ │ │ │ │ 6.7.16.1 Firmware │ │ │ │ │ The 5I25 firmware comes preloaded for the daughter card it is purchased with. So the firmware=xxx.BIT │ │ │ │ │ is not part of the hm2_pci configuration string when using a 5I25. │ │ │ │ │ @@ -19693,15 +19693,15 @@ │ │ │ │ │ maxlimit: +10 │ │ │ │ │ maxfullscale: 10 │ │ │ │ │ If you wanted to say scale the analog out of a channel to IPS for a velocity mode servo (say 24 IPS │ │ │ │ │ max) you could set the limits like this: │ │ │ │ │ minlimit: -24 │ │ │ │ │ maxlimit: +24 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 367 / 1291 │ │ │ │ │ │ │ │ │ │ maxfullscale: 24 │ │ │ │ │ If you wanted to scale the analog out of a channel to RPM for a 0 to 6000 RPM spindle with 0-10 V │ │ │ │ │ control you could set the limits like this: │ │ │ │ │ minlimit: 0 │ │ │ │ │ @@ -19733,15 +19733,15 @@ │ │ │ │ │ to facilitate the low level protocol debug. │ │ │ │ │ • You have more than one device to connect. MB2HAL is very efficiently managing multiple devices, │ │ │ │ │ transactions and links. Currently I am monitoring two axis drivers using a Rs232 port, a VFD driver │ │ │ │ │ using another Rs232 port, and a remote I/O using TCP/IP. │ │ │ │ │ • You want a protocol to connect your Arduino to HAL. Look the included sample configuration file, │ │ │ │ │ sketch and library for Arduino Modbus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 368 / 1291 │ │ │ │ │ │ │ │ │ │ 6.8.2 Usage │ │ │ │ │ a. Create a config file from the example below │ │ │ │ │ 1. Set component name (optional) │ │ │ │ │ Set HAL_MODULE_NAME=mymodule (default HAL_MODULE_NAME=mb2hal) │ │ │ │ │ @@ -19821,15 +19821,15 @@ │ │ │ │ │ The serial port. For example ”/dev/ttyS0”. Ignored if │ │ │ │ │ LINK_TYPE=serial │ │ │ │ │ LINK_TYPE=tcp. │ │ │ │ │ SERIAL_BAUD Integer If │ │ │ │ │ The baud rate. Ignored if LINK_TYPE=tcp. │ │ │ │ │ LINK_TYPE=serial │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 369 / 1291 │ │ │ │ │ │ │ │ │ │ Value │ │ │ │ │ Type │ │ │ │ │ Required │ │ │ │ │ Description │ │ │ │ │ @@ -19922,15 +19922,15 @@ │ │ │ │ │ parameter above. │ │ │ │ │ │ │ │ │ │ 6.8.3.3 Error codes │ │ │ │ │ While debugging transactions, note the returned ”ret[]” value correspond to: │ │ │ │ │ Modbus protocol exceptions: │ │ │ │ │ • 0x01 - ILLEGAL_FUNCTION - the FUNCTION code received in the query is not allowed or invalid. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 370 / 1291 │ │ │ │ │ │ │ │ │ │ • 0x02 - ILLEGAL_DATA_ADDRESS - the DATA ADDRESS received in the query is not an allowable │ │ │ │ │ address for the slave or is invalid. │ │ │ │ │ • 0x03 - ILLEGAL_DATA_VALUE - a VALUE contained in the data query field is not an allowable value │ │ │ │ │ or is invalid. │ │ │ │ │ @@ -19966,15 +19966,15 @@ │ │ │ │ │ # ++++++++++++++++++++++++ │ │ │ │ │ [MB2HAL_INIT] │ │ │ │ │ #OPTIONAL: Debug level of init and INI file parsing. │ │ │ │ │ # 0 = silent. │ │ │ │ │ # 1 = error messages (default). │ │ │ │ │ # 2 = OK confirmation messages. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 371 / 1291 │ │ │ │ │ │ │ │ │ │ # 3 = debugging messages. │ │ │ │ │ # 4 = maximum debugging messages (only in transactions). │ │ │ │ │ INIT_DEBUG=3 │ │ │ │ │ #OPTIONAL: Set to 1.1 to enable the new functions: │ │ │ │ │ @@ -20019,15 +20019,15 @@ │ │ │ │ │ SERIAL_BAUD=115200 │ │ │ │ │ #if LINK_TYPE=serial then REQUIRED (only 1st time). │ │ │ │ │ #if LINK_TYPE=tcp then IGNORED │ │ │ │ │ #Data bits. One of 5,6,7,8. │ │ │ │ │ SERIAL_BITS=8 │ │ │ │ │ #if LINK_TYPE=serial then REQUIRED (only 1st time). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 372 / 1291 │ │ │ │ │ │ │ │ │ │ #if LINK_TYPE=tcp then IGNORED │ │ │ │ │ #Data parity. One of: even, odd, none. │ │ │ │ │ SERIAL_PARITY=none │ │ │ │ │ #if LINK_TYPE=serial then REQUIRED (only 1st time). │ │ │ │ │ @@ -20111,15 +20111,15 @@ │ │ │ │ │ # │ │ │ │ │ Both pin values are added and limited to 65535 (UINT16_MAX). Normally use one and let ←the other open (read as 0). │ │ │ │ │ # fnct_15_write_multiple_coils: │ │ │ │ │ # │ │ │ │ │ mb2hal.m.n.bit │ │ │ │ │ (input) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 373 / 1291 │ │ │ │ │ │ │ │ │ │ # fnct_16_write_multiple_registers: │ │ │ │ │ # │ │ │ │ │ mb2hal.m.n.float │ │ │ │ │ (input) │ │ │ │ │ @@ -20182,15 +20182,15 @@ │ │ │ │ │ -0x07 Unsuccessful programming request using function code 13 or ←14. │ │ │ │ │ #MEMORY_PARITY_ERROR │ │ │ │ │ -0x08 SLAVE parity error in MEMORY. │ │ │ │ │ #GATEWAY_PROBLEM_PATH │ │ │ │ │ -0x0A (-10) Gateway path(s) not available. │ │ │ │ │ #GATEWAY_PROBLEM_TARGET -0x0B (-11) The target device failed to repond (generated by ←master, not slave). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ #/* Program or connection */ │ │ │ │ │ #COMM_TIME_OUT │ │ │ │ │ -0x0C (-12) │ │ │ │ │ #PORT_SOCKET_FAILURE │ │ │ │ │ -0x0D (-13) │ │ │ │ │ #SELECT_FAILURE │ │ │ │ │ @@ -20247,15 +20247,15 @@ │ │ │ │ │ HAL_TX_NAME=XDrive02 │ │ │ │ │ MAX_UPDATE_RATE=10.0 │ │ │ │ │ DEBUG=1 │ │ │ │ │ [TRANSACTION_07] │ │ │ │ │ │ │ │ │ │ 374 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 375 / 1291 │ │ │ │ │ │ │ │ │ │ MB_TX_CODE=fnct_06_write_single_register │ │ │ │ │ FIRST_ELEMENT=20 │ │ │ │ │ NELEMENTS=1 │ │ │ │ │ HAL_TX_NAME=XDrive03 │ │ │ │ │ @@ -20288,15 +20288,15 @@ │ │ │ │ │ 6.8.5.3 fnct_03_read_holding_registers │ │ │ │ │ • mb2hal.m.n.float float out │ │ │ │ │ • mb2hal.m.n.int s32 out │ │ │ │ │ 6.8.5.4 fnct_04_read_input_registers │ │ │ │ │ • mb2hal.m.n.float float out │ │ │ │ │ • mb2hal.m.n.int s32 out │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 376 / 1291 │ │ │ │ │ │ │ │ │ │ 6.8.5.5 fnct_05_write_single_coil │ │ │ │ │ • mb2hal.m.n.bit bit in │ │ │ │ │ NELEMENTS needs to be 1 or PIN_NAMES must contain just one name. │ │ │ │ │ 6.8.5.6 fnct_06_write_single_register │ │ │ │ │ @@ -20327,15 +20327,15 @@ │ │ │ │ │ This component is loaded using the halcmd ”loadusr” command: │ │ │ │ │ loadusr -Wn coolant mitsub_vfd spindle=02 coolant=01 │ │ │ │ │ │ │ │ │ │ The above command says: │ │ │ │ │ loadusr, wait for coolant pins to be ready, component mitsub_vfd, with 2 slaves named spindle (slave │ │ │ │ │ #2) and coolant (slave #1) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 377 / 1291 │ │ │ │ │ │ │ │ │ │ 6.9.1 Command Line Options │ │ │ │ │ The command line options are: │ │ │ │ │ • -b or --baud : set the baud rate - all networked VFDs must be the same │ │ │ │ │ • -p or --port : sets the port to use such as /dev/ttyUSB0 │ │ │ │ │ @@ -20361,15 +20361,15 @@ │ │ │ │ │ • .scale-fb (float, in) Scales the motor-fb pin to arbitrary units. default 1 = Hertz. │ │ │ │ │ • .scale-amps (float, in) Scales the motor-amps pin to arbitrary units. default 1 = amps. │ │ │ │ │ • .scale-power (float, in) Scales the motor-power pin to arbitrary units. default 1 = . │ │ │ │ │ • .estop (bit, in) puts the VFD into emergency-stopped status. │ │ │ │ │ • .status-bit-N (bit, out) N = 0 to 7, status bits are user configurable on the VFD. Bit 3 should be │ │ │ │ │ set to at speed and bit 7 should be set to alarm. Others are free to be set as required. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 378 / 1291 │ │ │ │ │ │ │ │ │ │ 6.9.3 HAL example │ │ │ │ │ # │ │ │ │ │ # example usage of the Mitsubishi VFD driver │ │ │ │ │ # │ │ │ │ │ @@ -20428,15 +20428,15 @@ │ │ │ │ │ Fr-A700 F700 E700 D700 technical manual for the 700 series │ │ │ │ │ The VFD must have PR settings adjusted manually for serial communication. │ │ │ │ │ One must power cycle the VFD for some of these to register eg PR 79 │ │ │ │ │ • PR 77 set to 1 -to unlock other PR modification. │ │ │ │ │ • PR 79 set to 1 or 0 -for communication thru serial. │ │ │ │ │ • PR 117 set to 0-31 -slave number, driver must reference same number. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 379 / 1291 │ │ │ │ │ │ │ │ │ │ • PR 118 tested with 96 -baud rate (can be set to 48,96,192) if driver is also set. │ │ │ │ │ • PR 119 set to 0 -stop bit/data length (8 bits, two stop) │ │ │ │ │ • PR 120 set to 0 -no parity │ │ │ │ │ • PR 121 set to 1-10 -if 10 (maximum) COM errors then VFD faults. │ │ │ │ │ @@ -20472,15 +20472,15 @@ │ │ │ │ │ • (bit) motenc..enc--reset-count - If this pin is true, the counter will immediately │ │ │ │ │ be reset to zero, and the pin will be cleared. │ │ │ │ │ • (float) motenc..dac--value - Analog output value for DAC (in user units, see -gain │ │ │ │ │ and -offset) │ │ │ │ │ • (float) motenc..adc--value - Analog input value read by ADC (in user units, see │ │ │ │ │ -gain and -offset) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 380 / 1291 │ │ │ │ │ │ │ │ │ │ • (bit) motenc..in- - State of digital input pin, see canonical digital input. │ │ │ │ │ • (bit) motenc..in--not - Inverted state of digital input pin, see canonical digital │ │ │ │ │ input. │ │ │ │ │ • (bit) motenc..out- - Value to be written to digital output, seen canonical digital │ │ │ │ │ @@ -20526,15 +20526,15 @@ │ │ │ │ │ • (funct) motenc..encoder-read - Reads all encoder counters. │ │ │ │ │ • (funct) motenc..adc-read - Reads the analog-to-digital converters. │ │ │ │ │ • (funct) motenc..digital-in-read - Reads digital inputs. │ │ │ │ │ • (funct) motenc..dac-write - Writes the voltages to the DACs. │ │ │ │ │ • (funct) motenc..digital-out-write - Writes digital outputs. │ │ │ │ │ • (funct) motenc..misc-update - Updates misc stuff. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 381 / 1291 │ │ │ │ │ │ │ │ │ │ 6.11 Opto22 Driver │ │ │ │ │ PCI AC5 ADAPTER CARD / HAL DRIVER │ │ │ │ │ │ │ │ │ │ 6.11.1 The Adapter Card │ │ │ │ │ @@ -20570,15 +20570,15 @@ │ │ │ │ │ signal to this pin to write to an I/O point of the card. The PINNUMBER represents the position in │ │ │ │ │ the relay rack.Eg. PINNUMBER 23 is position 23 in a Opto22 relay rack and would be pin 1 on the │ │ │ │ │ 50 pin header connector. │ │ │ │ │ • opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit - Turns one of the 4 onboard LEDs on/off. LEDs │ │ │ │ │ are numbered 0 to 3. │ │ │ │ │ BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. Port 0 is closest to the card bracket. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 382 / 1291 │ │ │ │ │ │ │ │ │ │ 6.11.4 Parameters │ │ │ │ │ • opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit - When TRUE, │ │ │ │ │ invert the meaning of the corresponding -out pin so that TRUE gives LOW and FALSE gives HIGH. │ │ │ │ │ │ │ │ │ │ @@ -20615,15 +20615,15 @@ │ │ │ │ │ 24 bits represented in a BINARY number. Bit 1 is the rightmost number: │ │ │ │ │ 16 zeros for the 16 inputs and 8 ones for the 8 outputs │ │ │ │ │ 000000000000000011111111 │ │ │ │ │ │ │ │ │ │ This converts to FF on the calculator, so 0xff is the number to use for portconfig0 and/or portconfig1 │ │ │ │ │ when loading the driver. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 383 / 1291 │ │ │ │ │ │ │ │ │ │ 6.11.7 Pin Numbering │ │ │ │ │ HAL pin 00 corresponds to bit 1 (the rightmost) which represents position 0 on an Opto22 relay rack. │ │ │ │ │ HAL pin 01 corresponds to bit 2 (one spot to the left of the rightmost) which represents position 1 on │ │ │ │ │ an Opto22 relay rack. HAL pin 23 corresponds to bit 24 (the leftmost) which represents position 23 │ │ │ │ │ @@ -20666,15 +20666,15 @@ │ │ │ │ │ addresses, so if one is at 00, the next would have to be 02.) │ │ │ │ │ Alternatively, the 8 digital output pins can be used as additional digital outputs, it works the same │ │ │ │ │ way as above with the syntax : extradout=0xnn’. The extradac and extradout options are mutually │ │ │ │ │ exclusive on each board, you can only specify one. │ │ │ │ │ The UPC and PPMC encoder boards can timestamp the arrival of encoder counts to refine the derivation of axis velocity. This derived velocity can be fed to the PID hal component to produce smoother D │ │ │ │ │ term response. The syntax is : timestamp=0xnn[,0xmm], this works the same way as above to select │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 384 / 1291 │ │ │ │ │ │ │ │ │ │ which board is being configured. Default is to not enable the timestamp option. If you put this option │ │ │ │ │ on the command line, it enables the option. The first n selects the EPP bus, the second one matches │ │ │ │ │ the address of the board having the option enabled. The driver checks the revision level of the board │ │ │ │ │ to make sure it has firmware supporting the feature, and produces an error message if the board does │ │ │ │ │ @@ -20717,15 +20717,15 @@ │ │ │ │ │ function has to be enabled in the HAL command line that starts the PPMC driver, with the timestamp=0x00 option. │ │ │ │ │ • (All float output) ppmc..encoder..position - Encoder position, in user units. │ │ │ │ │ • (All bit bidir) ppmc..encoder..index-enable - Connect to joint.#.index-enable for │ │ │ │ │ home-to-index. This is a bidirectional HAL signal. Setting it to true causes the encoder hardware │ │ │ │ │ to reset the count to zero on the next encoder index pulse. The driver will detect this and set the │ │ │ │ │ signal back to false. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 385 / 1291 │ │ │ │ │ │ │ │ │ │ • (PPMC float output) ppmc..DAC..value - sends a signed value to the 16-bit Digital │ │ │ │ │ to Analog Converter on the PPMC DAC16 board commanding the analog output voltage of that DAC │ │ │ │ │ channel. │ │ │ │ │ • (UPC bit input) ppmc..pwm..enable - Enables a PWM generator. │ │ │ │ │ @@ -20764,15 +20764,15 @@ │ │ │ │ │ an output value equal to the 1/scale value will produce an output of + or - value Volts. So, if the │ │ │ │ │ scale parameter is 0.1 and you send a value of 0.5, the output will be 5.0 Volts. │ │ │ │ │ • (UPC float) ppmc..pwm..scale - Scaling for PWM generator. If scale is X, then the │ │ │ │ │ duty cycle will be 100% when the value pin is X (or -X). │ │ │ │ │ • (UPC float) ppmc..pwm..max-dc - Maximum duty cycle, from 0.0 to 1.0. │ │ │ │ │ • (UPC float) ppmc..pwm..min-dc - Minimum duty cycle, from 0.0 to 1.0. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 386 / 1291 │ │ │ │ │ │ │ │ │ │ • (UPC float) ppmc..pwm..duty-cycle - Actual duty cycle (used mostly for troubleshooting.) │ │ │ │ │ • (UPC bit) ppmc..pwm..bootstrap - If true, the PWM generator will generate a │ │ │ │ │ short sequence of pulses of both polarities when E-stop goes false, to reset the shutdown latches │ │ │ │ │ on some PWM servo drives. │ │ │ │ │ @@ -20807,15 +20807,15 @@ │ │ │ │ │ These writes are organized into blocks of contiguous registers to be written in a block to minimize │ │ │ │ │ CPU overhead. │ │ │ │ │ │ │ │ │ │ 6.13 Pluto P Driver │ │ │ │ │ 6.13.1 General Info │ │ │ │ │ The Pluto-P is a FPGA board featuring the ACEX1K chip from Altera. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 387 / 1291 │ │ │ │ │ │ │ │ │ │ 6.13.1.1 Requirements │ │ │ │ │ 1. A Pluto-P board │ │ │ │ │ 2. An EPP-compatible parallel port, configured for EPP mode in the system BIOS or a PCI EPP │ │ │ │ │ compatible parallel port card. │ │ │ │ │ @@ -20852,15 +20852,15 @@ │ │ │ │ │ isolation and protection. Traditional parallel port optoisolator boards do not work with pluto_servo │ │ │ │ │ due to the bidirectional nature of the EPP protocol. │ │ │ │ │ 6.13.1.4 LED │ │ │ │ │ • When the device is unprogrammed, the LED glows faintly. When the device is programmed, the │ │ │ │ │ LED glows according to the duty cycle of PWM0 (LED = UP0 xor DOWN0) or STEPGEN0 (LED = │ │ │ │ │ STEP0 xor DIR0). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 388 / 1291 │ │ │ │ │ │ │ │ │ │ 6.13.1.5 Power │ │ │ │ │ • A small amount of current may be drawn from VCC. The available current depends on the unregulated DC input to the board. Alternately, regulated +3.3VDC may be supplied to the FPGA through │ │ │ │ │ these VCC pins. The required current is not yet known, but is probably around 50mA plus I/O │ │ │ │ │ current. │ │ │ │ │ @@ -20891,15 +20891,15 @@ │ │ │ │ │ The PWM period is approximately 19.5 kHz (40 MHz / 2047). A PDM-like mode is also available. │ │ │ │ │ • 18 digital outputs: 10 dedicated, 8 shared with PWM functions. (Example: A lathe with unidirectional PWM spindle control may use 13 total digital outputs) │ │ │ │ │ • 20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. (Example: A lathe with index │ │ │ │ │ pulse only on the spindle may use 13 total digital inputs.) │ │ │ │ │ • EPP communication with the PC. The EPP communication typically takes around 100 µs on machines │ │ │ │ │ tested so far, enabling servo rates above 1 kHz. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 389 / 1291 │ │ │ │ │ │ │ │ │ │ 6.13.2.1 Pinout │ │ │ │ │ • UPx - The up (up/down mode) or pwm (pwm+direction mode) signal from PWM generator X. May be │ │ │ │ │ used as a digital output if the corresponding PWM channel is unused, or the output on the channel │ │ │ │ │ is always negative. The corresponding digital output invert may be set to TRUE to make UPx active │ │ │ │ │ @@ -20929,15 +20929,15 @@ │ │ │ │ │ │ │ │ │ │ Behavior if both │ │ │ │ │ functions used │ │ │ │ │ When pwm-0-pwmdir is │ │ │ │ │ TRUE, this pin is the PWM │ │ │ │ │ output │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 390 / 1291 │ │ │ │ │ │ │ │ │ │ Table 6.41: (continued) │ │ │ │ │ Primary function │ │ │ │ │ │ │ │ │ │ Alternate Function │ │ │ │ │ @@ -21050,15 +21050,15 @@ │ │ │ │ │ │ │ │ │ │ 6.13.2.2 Input latching and output updating │ │ │ │ │ • PWM duty cycles for each channel are updated at different times. │ │ │ │ │ • Digital outputs OUT0 through OUT9 are all updated at the same time. Digital outputs OUT10 │ │ │ │ │ through OUT17 are updated at the same time as the pwm function they are shared with. │ │ │ │ │ • Digital inputs IN0 through IN19 are all latched at the same time. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 391 / 1291 │ │ │ │ │ │ │ │ │ │ • Quadrature positions for each channel are latched at different times. │ │ │ │ │ 6.13.2.3 HAL Functions, Pins and Parameters │ │ │ │ │ A list of all loadrt arguments, HAL function names, pin names and parameter names is in the manual │ │ │ │ │ page, pluto_servo.9. │ │ │ │ │ @@ -21085,15 +21085,15 @@ │ │ │ │ │ • OUTx - Dedicated digital output #x │ │ │ │ │ • GND - Ground │ │ │ │ │ • VCC - +3.3V regulated DC │ │ │ │ │ While the extended main connector has a superset of signals usually found on a Step & Direction DB25 │ │ │ │ │ connector—4 step generators, 9 inputs, and 6 general-purpose outputs—the layout on this header is │ │ │ │ │ different than the layout of a standard 26-pin ribbon cable to DB25 connector. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 392 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 6.11: Pluto-Step Pinout │ │ │ │ │ │ │ │ │ │ 6.13.3.2 Input latching and output updating │ │ │ │ │ • Step frequencies for each channel are updated at different times. │ │ │ │ │ @@ -21102,15 +21102,15 @@ │ │ │ │ │ • Feedback positions for each channel are latched at different times. │ │ │ │ │ 6.13.3.3 Step Waveform Timings │ │ │ │ │ The firmware and driver enforce step length, space, and direction change times. Timings are rounded │ │ │ │ │ up to the next multiple of 1.6μs, with a maximum of 49.6μs. The timings are the same as for the software stepgen component, except that dirhold and dirsetup have been merged into a single parameter │ │ │ │ │ dirtime which should be the maximum of the two, and that the same step timings are always applied │ │ │ │ │ to all channels. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 393 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 6.12: Pluto-Step Timings │ │ │ │ │ │ │ │ │ │ 6.13.3.4 HAL Functions, Pins and Parameters │ │ │ │ │ A list of all loadrt arguments, HAL function names, pin names and parameter names is in the manual │ │ │ │ │ @@ -21125,15 +21125,15 @@ │ │ │ │ │ │ │ │ │ │ This component is loaded using the halcmd ”loadusr” command: │ │ │ │ │ loadusr -Wn pmx485 pmx485 /dev/ttyUSB0 │ │ │ │ │ │ │ │ │ │ This will load the pmx485 component using the /dev/ttyUSB0 port and wait for it to become ready. │ │ │ │ │ It is necessary to name the port to use for communications. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 394 / 1291 │ │ │ │ │ │ │ │ │ │ 6.14.1 Pins │ │ │ │ │ • pmx485.mode-set (bit, in) # set cutting mode │ │ │ │ │ • pmx485.current-set (bit, in) # set cutting current │ │ │ │ │ • pmx485.pressure-set (bit, in) # set gas pressure │ │ │ │ │ @@ -21164,15 +21164,15 @@ │ │ │ │ │ • Disconnect the Powermax power supply from its power source for approximately 30 seconds. When │ │ │ │ │ you power the system back ON, it will no longer be in remote mode. │ │ │ │ │ │ │ │ │ │ 6.14.3 Reference: │ │ │ │ │ • Hypertherm Application Note #807220 │ │ │ │ │ ”Powermax45 XP/65/85/105/125® Serial Communication Protocol” │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 395 / 1291 │ │ │ │ │ │ │ │ │ │ 6.15 Servo To Go Driver │ │ │ │ │ The Servo-To-Go (STG) is one of the first PC motion control cards supported by LinuxCNC. It is an │ │ │ │ │ ISA card and it exists in different flavors (all supported by this driver). The board includes up to 8 │ │ │ │ │ channels of quadrature encoder input, 8 channels of analog input and output, 32 bits digital I/O, an │ │ │ │ │ @@ -21212,15 +21212,15 @@ │ │ │ │ │ 6.15.2 Pins │ │ │ │ │ • stg..counts - (s32) Tracks the counted encoder ticks. │ │ │ │ │ • stg..position - (float) Outputs a converted position. │ │ │ │ │ • stg..dac-value - (float) Drives the voltage for the corresponding DAC. │ │ │ │ │ • stg..adc-value - (float) Tracks the measured voltage from the corresponding ADC. │ │ │ │ │ • stg.in- - (bit) Tracks a physical input pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 396 / 1291 │ │ │ │ │ │ │ │ │ │ • stg.in--not - (bit) Tracks a physical input pin, but inverted. │ │ │ │ │ • stg.out- - (bit) Drives a physical output pin │ │ │ │ │ For each pin, is the axis number, and is the logic pin number of the STG if │ │ │ │ │ IIOO is defined, there are 16 input pins (in-00 .. in-15) and 16 output pins (out-00 .. out-15), and they │ │ │ │ │ @@ -21254,15 +21254,15 @@ │ │ │ │ │ and ShuttlePRO2 devices with LinuxCNC’s HAL. │ │ │ │ │ If the driver is started without command-line arguments, it will probe all /dev/hidraw* device files for │ │ │ │ │ Shuttle devices, and use all devices found. If it is started with command-line arguments, it will only │ │ │ │ │ probe the devices specified. │ │ │ │ │ The ShuttleXpress has five momentary buttons, a 10 counts/revolution jog wheel with detents, and a │ │ │ │ │ 15-position spring-loaded outer wheel that returns to center when released. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 397 / 1291 │ │ │ │ │ │ │ │ │ │ The ShuttlePRO has 13 momentary buttons, a 10 counts/revolution jog wheel with detents, and a │ │ │ │ │ 15-position spring-loaded outer wheel that returns to center when released. │ │ │ │ │ The ShuttlePRO2 has 15 momentary buttons, a 10 counts/revolution jog wheel with detents, and a │ │ │ │ │ 15-position spring-loaded outer wheel that returns to center when released. │ │ │ │ │ @@ -21300,15 +21300,15 @@ │ │ │ │ │ .spring-wheel-s32 (s32 out) │ │ │ │ │ The current deflection of the spring-wheel (the outer wheel). It’s 0 at rest, and ranges from -7 at │ │ │ │ │ the counter-clockwise extreme to +7 at the clockwise extreme. │ │ │ │ │ .spring-wheel-f (float out) │ │ │ │ │ The current deflection of the spring-wheel (the outer wheel). It’s 0.0 at rest, -1.0 at the counterclockwise extreme, and +1.0 at the clockwise extreme. The Shuttle devices report the springwheel position as an integer from -7 to +7, so this pin reports only 15 discrete values in it’s │ │ │ │ │ range. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 398 / 1291 │ │ │ │ │ │ │ │ │ │ 6.17 VFS11 VFD Driver │ │ │ │ │ This is a non-realtime HAL program to control the S11 series of VFDs from Toshiba. │ │ │ │ │ vfs11_vfd supports serial and TCP connections. Serial connections may be RS232 or RS485. RS485 is │ │ │ │ │ supported in full- and half-duplex mode. TCP connections may be passive (wait for incoming connection), or active outgoing connections, which may be useful to connect to TCP-based devices or through │ │ │ │ │ @@ -21341,15 +21341,15 @@ │ │ │ │ │ • .acceleration-pattern (bit, in) when true, set acceleration and deceleration times as defined in │ │ │ │ │ registers F500 and F501 respectively. Used in PID loops to choose shorter ramp times to avoid │ │ │ │ │ oscillation. │ │ │ │ │ • .alarm-code (s32, out) non-zero if drive is in alarmed state. Bitmap describing alarm information (see register FC91 description). Use err-reset (see below) to clear the alarm. │ │ │ │ │ • .at-speed (bit, out) when drive is at commanded speed (see speed-tolerance below) │ │ │ │ │ • .current-load-percentage (float, out) reported from the VFD │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 399 / 1291 │ │ │ │ │ │ │ │ │ │ • .dc-brake (bit, in) engage the DC brake. Also turns off spindle-on. │ │ │ │ │ • .enable (bit, in) enable the VFD. If false, all operating parameters are still read but control is │ │ │ │ │ released and panel control is enabled (subject to VFD setup). │ │ │ │ │ • .err-reset (bit, in) reset errors (alarms a.k.a Trip and e-stop status). Resetting the VFD may │ │ │ │ │ @@ -21386,15 +21386,15 @@ │ │ │ │ │ • .status (s32, out) Drive Status of the VFD (see the TOSVERT VF-S11 Communications Function │ │ │ │ │ Instruction Manual, register FD01). A bitmap. │ │ │ │ │ • .trip-code (s32, out) trip code if VF-S11 is in tripped state. │ │ │ │ │ • .error-count (s32, out) number of Modbus transactions which returned an error │ │ │ │ │ • .max-speed (bit, in) ignore the loop-time parameter and run Modbus at maximum speed, at the │ │ │ │ │ expense of higher CPU usage. Suggested use during spindle positioning. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 400 / 1291 │ │ │ │ │ │ │ │ │ │ 6.17.3 Parameters │ │ │ │ │ Where is vfs11_vfd or the name given during loading with the -n option. │ │ │ │ │ • .frequency-limit (float, RO) upper limit read from VFD setup. │ │ │ │ │ • .loop-time (float, RW) how often the Modbus is polled (default interval 0.1 seconds) │ │ │ │ │ @@ -21430,15 +21430,15 @@ │ │ │ │ │ # 1 2 │ │ │ │ │ STOPBITS=1 │ │ │ │ │ #rs232 rs485 │ │ │ │ │ SERIAL_MODE=rs485 │ │ │ │ │ # up down none │ │ │ │ │ # this feature might not work with a stock Ubuntu │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ # libmodbus5/libmodbus-dev package, and generate a warning │ │ │ │ │ # execution will continue as if RTS_MODE=up were given. │ │ │ │ │ RTS_MODE=up │ │ │ │ │ #--------------------# modbus timers in seconds │ │ │ │ │ # inter-character timer │ │ │ │ │ BYTE_TIMEOUT=0.5 │ │ │ │ │ @@ -21477,15 +21477,15 @@ │ │ │ │ │ # see orient.9 and motion.9 │ │ │ │ │ net spindle-orient spindle.0.orient spindle-vfd.max-speed spindle-vfd.jog-mode │ │ │ │ │ # take precedence over control panel │ │ │ │ │ setp spindle-vfd.enable 1 │ │ │ │ │ │ │ │ │ │ 401 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 402 / 1291 │ │ │ │ │ │ │ │ │ │ 6.17.6 Panel operation │ │ │ │ │ The vfs11_vfd driver takes precedence over panel control while it is enabled (see enable pin), effectively disabling the panel. Clearing the enable pin re-enables the panel. Pins and parameters can still │ │ │ │ │ be set, but will not be written to the VFD untile the enable pin is set. Operating parameters are still │ │ │ │ │ read while bus control is disabled. Exiting the vfs11_vfd driver in a controlled way will release the │ │ │ │ │ @@ -21519,15 +21519,15 @@ │ │ │ │ │ protocol. So the last parameter which you’d want to change is the protocol - set from Toshiba Inverter │ │ │ │ │ Protocol to Modbus; thereafter, the Windows app is useless. │ │ │ │ │ To increase the upper frequency limit, the UL and FH parameters must be changed on the panel. I │ │ │ │ │ increased them from 50 to 80. │ │ │ │ │ See dump-params.mio for a description of non-standard VF-S11 parameters of my setup. This file is │ │ │ │ │ for the modio Modbus interactive utility. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 403 / 1291 │ │ │ │ │ │ │ │ │ │ 6.17.9 Programming Note │ │ │ │ │ The vfs11_vfd driver uses the libmodbus version 3 library which is more recent than the version 2 │ │ │ │ │ code used in gs2_vfd. │ │ │ │ │ The Ubuntu libmodbus5 and libmodbus-dev packages are only available starting from Ubuntu 12 │ │ │ │ │ @@ -21535,15 +21535,15 @@ │ │ │ │ │ Therefore, building vfs11_vfd using this library might generate a warning if RTS_MODE= is specified │ │ │ │ │ in the INI file. │ │ │ │ │ To use the full functionality on lucid and precise: │ │ │ │ │ • remove the libmodbus packages: sudo apt-get remove libmodbus5 libmodbus-dev │ │ │ │ │ • build and install libmodbus version 3 from source as outlined here. │ │ │ │ │ Libmodbus does not build on Ubuntu Hardy, hence vfs11_vfd is not available on Hardy. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 404 / 1291 │ │ │ │ │ │ │ │ │ │ Chapter 7 │ │ │ │ │ │ │ │ │ │ Hardware Examples │ │ │ │ │ 7.1 PCI Parallel Port │ │ │ │ │ @@ -21574,15 +21574,15 @@ │ │ │ │ │ and then added the following lines so the parport will be read and written: │ │ │ │ │ addf parport.1.read base-thread │ │ │ │ │ addf parport.1.write base-thread │ │ │ │ │ │ │ │ │ │ After doing the above then run your config and verify that the parallel port got loaded in Machine/Show │ │ │ │ │ HAL Configuration window. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 405 / 1291 │ │ │ │ │ │ │ │ │ │ 7.2 Spindle Control │ │ │ │ │ LinuxCNC can control up to 8 spindles. The number is set in the INI file. The examples below all │ │ │ │ │ refer to a single-spindle config with spindle control pins with names like spindle.0... In the case of a │ │ │ │ │ multiple spindle machine all that changes is that additional pins exist with names such as spindle.6... │ │ │ │ │ @@ -21618,15 +21618,15 @@ │ │ │ │ │ │ │ │ │ │ 7.2.3 Spindle Enable │ │ │ │ │ If you need a spindle enable signal, link your output pin to spindle.0.on. To link these pins to a │ │ │ │ │ parallel port pin put something like the following in your .hal file, making sure you pick the pin that │ │ │ │ │ is connected to your control device. │ │ │ │ │ net spindle-enable spindle.0.on => parport.0.pin-14-out │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 406 / 1291 │ │ │ │ │ │ │ │ │ │ 7.2.4 Spindle Direction │ │ │ │ │ If you have direction control of your spindle, then the HAL pins spindle.N.forward and spindle.N.reverse │ │ │ │ │ are controlled by the G-codes M3 and M4. Spindle speed Sn must be set to a positive non-zero value │ │ │ │ │ for M3/M4 to turn on spindle motion. │ │ │ │ │ @@ -21668,15 +21668,15 @@ │ │ │ │ │ # the output of spindle ramp is sent to the scale in │ │ │ │ │ net spindle-ramped <= spindle-ramp.out => scale.0.in │ │ │ │ │ # to know when to start the motion we send the near component │ │ │ │ │ # (named spindle-at-speed) to the spindle commanded speed from │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 407 / 1291 │ │ │ │ │ │ │ │ │ │ # the signal spindle-cmd and the actual spindle speed │ │ │ │ │ # provided your spindle can accelerate at the maxv setting. │ │ │ │ │ net spindle-cmd => spindle-at-speed.in1 │ │ │ │ │ net spindle-ramped => spindle-at-speed.in2 │ │ │ │ │ @@ -21716,15 +21716,15 @@ │ │ │ │ │ 1 In this example, we will assume that some encoders have already been issued to axes/joints 0, 1, and 2. So the next encoder │ │ │ │ │ available for us to attach to the spindle would be number 3. Your situation may differ. │ │ │ │ │ 2 The HAL encoder index-enable is an exception to the rule in that it behaves as both an input and an output, see the Encoder │ │ │ │ │ Section for details │ │ │ │ │ 3 It is because we selected non-quadrature simple counting… above that we can get away with quadrature counting without │ │ │ │ │ having any B quadrature input. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 408 / 1291 │ │ │ │ │ │ │ │ │ │ 7.2.6.2 Spindle At Speed │ │ │ │ │ To enable LinuxCNC to wait for the spindle to be at speed before executing a series of moves, the │ │ │ │ │ spindle.N.at-speed needs to turn true at the moment the spindle is at the commanded speed. To │ │ │ │ │ achieve this you need spindle feedback from an encoder. Since the feedback and the commanded │ │ │ │ │ @@ -21764,15 +21764,15 @@ │ │ │ │ │ loadrt encoder num_chan=1 │ │ │ │ │ loadrt mux4 count=1 │ │ │ │ │ addf encoder.capture-position servo-thread │ │ │ │ │ addf encoder.update-counters base-thread │ │ │ │ │ addf mux4.0 servo-thread │ │ │ │ │ # If your MPG outputs a quadrature signal per click set x4 to 1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 409 / 1291 │ │ │ │ │ │ │ │ │ │ # If your MPG puts out 1 pulse per click set x4 to 0 │ │ │ │ │ setp encoder.0.x4-mode 0 │ │ │ │ │ # For velocity mode, set to 1 │ │ │ │ │ # In velocity mode the axis stops when the dial is stopped │ │ │ │ │ @@ -21819,15 +21819,15 @@ │ │ │ │ │ loadrt ilowpass │ │ │ │ │ addf ilowpass.0 servo-thread │ │ │ │ │ setp ilowpass.0.scale 1000 │ │ │ │ │ setp ilowpass.0.gain 0.01 │ │ │ │ │ # If your MPG outputs a quadrature signal per click set x4 to 1 │ │ │ │ │ # If your MPG puts out 1 pulse per click set x4 to 0 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 410 / 1291 │ │ │ │ │ │ │ │ │ │ setp encoder.0.x4-mode 0 │ │ │ │ │ # For velocity mode, set to 1 │ │ │ │ │ # In velocity mode the axis stops when the dial is stopped │ │ │ │ │ # even if that means the commanded motion is not completed, │ │ │ │ │ @@ -21870,15 +21870,15 @@ │ │ │ │ │ 7.4.1 Example │ │ │ │ │ This example shows the connections needed to use an Automation Direct GS2 VFD to drive a spindle. │ │ │ │ │ The spindle speed and direction is controlled by LinuxCNC. │ │ │ │ │ Using the GS2 component involves very little to set up. We start with a StepConf Wizard generated │ │ │ │ │ config. Make sure the pins with ”Spindle CW” and ”Spindle PWM” are set to unused in the parallel │ │ │ │ │ port setup screen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 411 / 1291 │ │ │ │ │ │ │ │ │ │ In the custom.hal file we place the following to connect LinuxCNC to the GS2 and have LinuxCNC │ │ │ │ │ control the drive. │ │ │ │ │ GS2 Example │ │ │ │ │ # load the non-realtime component for the Automation Direct GS2 VFDs │ │ │ │ │ @@ -21907,15 +21907,15 @@ │ │ │ │ │ • P4.00 (Source of Frequency Command) must be set to Frequency determined by RS232C/RS485 │ │ │ │ │ communication interface, 05. │ │ │ │ │ • P9.01 (Transmission Speed) must be set to 9600 baud, 01. │ │ │ │ │ • P9.02 (Communication Protocol) must be set to ”Modbus RTU mode, 8 data bits, no parity, 2 stop │ │ │ │ │ bits”, 03. │ │ │ │ │ A PyVCP panel based on this example is here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 412 / 1291 │ │ │ │ │ │ │ │ │ │ Chapter 8 │ │ │ │ │ │ │ │ │ │ ClassicLadder │ │ │ │ │ 8.1 ClassicLadder Introduction │ │ │ │ │ @@ -21945,15 +21945,15 @@ │ │ │ │ │ along the top and bottom of the page while the rungs are drawn vertically from left to right. │ │ │ │ │ A program in ladder logic, also called a ladder diagram, is similar to a schematic for a set of relay │ │ │ │ │ circuits. Ladder logic is useful because a wide variety of engineers and technicians can understand │ │ │ │ │ and use it without much additional training because of the resemblance. │ │ │ │ │ Ladder logic is widely used to program PLCs, where sequential control of a process or manufacturing │ │ │ │ │ operation is required. Ladder logic is useful for simple but critical control systems, or for reworking │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 413 / 1291 │ │ │ │ │ │ │ │ │ │ old hardwired relay circuits. As programmable logic controllers became more sophisticated it has │ │ │ │ │ also been used in very complex automation systems. │ │ │ │ │ Ladder logic can be thought of as a rule-based language, rather than a procedural language. A rung in │ │ │ │ │ the ladder represents a rule. When implemented with relays and other electromechanical devices, the │ │ │ │ │ @@ -21983,15 +21983,15 @@ │ │ │ │ │ │ │ │ │ │ The input on the left, B0, a normally open contact, is connected to the coil (output) on the right, Q0. │ │ │ │ │ Now imagine a voltage gets applied to the leftmost end, because the input B0 turns true (e.g. the │ │ │ │ │ input is activated, or the user pushed the NO contact). The voltage has a direct path to reach the coil │ │ │ │ │ (output) on the right, Q0. As a consequence, the Q0 coil (output) will turn from 0/off/false to 1/on/true. │ │ │ │ │ If the user releases B0, the Q0 output quickly returns to 0/off/false. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 414 / 1291 │ │ │ │ │ │ │ │ │ │ 8.1.4 Basic Latching On-Off Circuit │ │ │ │ │ Building on the above example, suppose we add a switch that closes whenever the coil Q0 is active. │ │ │ │ │ This would be the case in a relay, where the coil can activate the switch contacts; or in a contactor, │ │ │ │ │ where there are often several small auxiliary contacts in addition to the large 3-phase contacts that │ │ │ │ │ @@ -22023,15 +22023,15 @@ │ │ │ │ │ back on. │ │ │ │ │ This circuit has been used for decades on virtually every machine that has a three-phase motor controlled by a contactor, so it was inevitable that it would be adopted by ladder/PLC programmers. It is │ │ │ │ │ also a very safe circuit, in that if start and stop are both pressed at the same time, the stop function │ │ │ │ │ always wins. │ │ │ │ │ This is the basic building block of much of ladder programming, so if you are new to it, you would do │ │ │ │ │ well to make sure that you understand how this circuit operates. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 415 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2 ClassicLadder Programming │ │ │ │ │ 8.2.1 Ladder Concepts │ │ │ │ │ ClassicLadder is a type of programming language originally implemented on industrial PLCs (it’s │ │ │ │ │ called Ladder Programming). It is based on the concept of relay contacts and coils, and can be used │ │ │ │ │ @@ -22060,15 +22060,15 @@ │ │ │ │ │ 8.2.3.1 Files │ │ │ │ │ Typically ClassicLadder components are placed in the custom.hal file if your working from a StepConf │ │ │ │ │ generated configuration. These must not be placed in the custom_postgui.hal file or the Ladder Editor │ │ │ │ │ menu will be grayed out. │ │ │ │ │ Note │ │ │ │ │ Ladder files (.clp) must not contain any blank spaces in the name. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 416 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.3.2 Realtime Module │ │ │ │ │ Loading the ClassicLadder real time module (classicladder_rt) is possible from a HAL file, or directly │ │ │ │ │ using a halcmd instruction. The first line loads real time the ClassicLadder module. The second line │ │ │ │ │ adds the function classicladder.0.refresh to the servo thread. This line makes ClassicLadder update │ │ │ │ │ @@ -22147,15 +22147,15 @@ │ │ │ │ │ │ │ │ │ │ Objects of most interest are numPhysInputs, numPhysOutputs, numS32in, and numS32out. │ │ │ │ │ Changing these numbers will change the number of HAL bit pins available. numPhysInputs and │ │ │ │ │ numPhysOutputs control how many HAL bit (on/off) pins are available. numS32in and numS32out │ │ │ │ │ control how many HAL signed integers (+- integer range) pins are available. │ │ │ │ │ For example (you don’t need all of these to change just a few): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 417 / 1291 │ │ │ │ │ │ │ │ │ │ loadrt classicladder_rt numRungs=12 numBits=100 numWords=10 │ │ │ │ │ numTimers=10 numMonostables=10 numCounters=10 numPhysInputs=10 │ │ │ │ │ numPhysOutputs=10 numArithmExpr=100 numSections=4 numSymbols=200 │ │ │ │ │ numS32in=5 numS32out=5 │ │ │ │ │ @@ -22189,29 +22189,29 @@ │ │ │ │ │ If you first load ladder program with the --nogui option then load ClassicLadder again with no options │ │ │ │ │ the GUI will display the last loaded ladder program. │ │ │ │ │ In AXIS you can load the GUI from File/Ladder Editor… │ │ │ │ │ │ │ │ │ │ 8.2.5 ClassicLadder GUI │ │ │ │ │ If you load ClassicLadder with the GUI it will display two windows: Section display, and section manager. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 418 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.5.1 Sections Manager │ │ │ │ │ When you first start up ClassicLadder you get an empty Sections Manager window. │ │ │ │ │ │ │ │ │ │ Figure 8.1: Sections Manager Default Window │ │ │ │ │ This window allows you to name, create or delete sections and choose what language that section │ │ │ │ │ uses. This is also how you name a subroutine for call coils. │ │ │ │ │ 8.2.5.2 Section Display │ │ │ │ │ When you first start up ClassicLadder you get an empty Section Display window. Displayed is one │ │ │ │ │ empty rung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 419 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.2: Section Display Default Window │ │ │ │ │ Most of the buttons are self explanatory: │ │ │ │ │ The Vars button is for looking at variables, toggle it to display one, the other, both, then none of the │ │ │ │ │ windows. │ │ │ │ │ @@ -22229,15 +22229,15 @@ │ │ │ │ │ %Q and the first %W (in an equation). You might see some funny labels, such as (103) in the rungs. │ │ │ │ │ This is displayed (on purpose) because of an old bug- when erasing elements older versions sometimes │ │ │ │ │ didn’t erase the object with the right code. You might have noticed that the long horizontal connection │ │ │ │ │ button sometimes did not work in the older versions. This was because it looked for the free code but │ │ │ │ │ found something else. The number in the brackets is the unrecognized code. The ladder program will │ │ │ │ │ still work properly, to fix it erase the codes with the editor and save the program. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 420 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.5.3 The Variable Windows │ │ │ │ │ This are two variable windows: the Bit Status Window (boolean) and the Watch Window (signed integer). The Vars button is in the Section Display Window, toggle the Vars button to display one, the │ │ │ │ │ other, both, then none of the variable windows. │ │ │ │ │ │ │ │ │ │ @@ -22248,28 +22248,28 @@ │ │ │ │ │ areas at the top allow you to select what 15 variables will be displayed in each column. For instance, │ │ │ │ │ if the %B Variable column were 15 entries high, and you entered 5 at the top of the column, variables │ │ │ │ │ %B5 to %B19 would be displayed. The check boxes allow you to set and unset %B variables manually │ │ │ │ │ as long as the ladder program isn’t setting them as outputs. Any Bits that are set as outputs by the │ │ │ │ │ program when ClassicLadder is running can not be changed and will be displayed as checked if on │ │ │ │ │ and unchecked if off. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 421 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.4: Watch Window │ │ │ │ │ The Watch Window displays variable status. The edit box beside it is the number stored in the variable │ │ │ │ │ and the drop-down box beside that allow you to choose whether the number to be displayed in hex, │ │ │ │ │ decimal or binary. If there are symbol names defined in the symbols window for the word variables │ │ │ │ │ showing and the display symbols checkbox is checked in the section display window, symbol names │ │ │ │ │ will be displayed. To change the variable displayed, type the variable number, e.g. %W2 (if the │ │ │ │ │ display symbols check box is not checked) or type the symbol name (if the display symbols checkbox │ │ │ │ │ is checked) over an existing variable number/name and press the Enter Key. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 422 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.5.4 Symbol Window │ │ │ │ │ │ │ │ │ │ Figure 8.5: Symbol Names window │ │ │ │ │ This is a list of symbol names to use instead of variable names to be displayed in the section window │ │ │ │ │ @@ -22277,30 +22277,30 @@ │ │ │ │ │ and capital letters), symbol name. If the variable can have a HAL signal connected to it (%I, %Q, and │ │ │ │ │ %W-if you have loaded s32 pin with the real time module) then the comment section will show the │ │ │ │ │ current HAL signal name or lack thereof. Symbol names should be kept short to display better. Keep │ │ │ │ │ in mind that you can display the longer HAL signal names of %I, %Q and %W variable by clicking on │ │ │ │ │ them in the section window. Between the two, one should be able to keep track of what the ladder │ │ │ │ │ program is connected to! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 423 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.5.5 The Editor window │ │ │ │ │ │ │ │ │ │ Figure 8.6: Editor Window │ │ │ │ │ • Add - adds a rung after the selected rung │ │ │ │ │ • Insert - inserts a rung before the selected rung │ │ │ │ │ • Delete - deletes the selected rung │ │ │ │ │ • Modify - opens the selected rung for editing │ │ │ │ │ Starting from the top left image: │ │ │ │ │ • Object Selector, Eraser │ │ │ │ │ • N.O. Input, N.C. Input, Rising Edge Input, Falling Edge Input │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 424 / 1291 │ │ │ │ │ │ │ │ │ │ • Horizontal Connection, Vertical Connection, Long Horizontal Connection │ │ │ │ │ • Timer IEC Block, Counter Block, Compare Variable │ │ │ │ │ • Old Timer Block, Old Monostable Block (These have been replaced by the IEC Timer) │ │ │ │ │ • COILS - N.O. Output, N.C. Output, Set Output, Reset Output │ │ │ │ │ @@ -22329,21 +22329,21 @@ │ │ │ │ │ • Compare - creates a compare block to compare variable to values or other variables, e.g. %W1<=5 │ │ │ │ │ or %W1=%W2. Compare cannot be placed in the right most side of the section display. │ │ │ │ │ • Variable Assignment - creates an assignment block so you to assign values to variables, e.g. %W2=7 │ │ │ │ │ or %W1=%W2. ASSIGNMENT functions can only be placed at the right most side of the section display. │ │ │ │ │ 8.2.5.6 Config Window │ │ │ │ │ The config window shows the current project status and has the Modbus setup tabs. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 425 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.7: Config Window │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 426 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.6 Ladder objects │ │ │ │ │ 8.2.6.1 CONTACTS │ │ │ │ │ Represent switches or relay contacts. They are controlled by the variable letter and number assigned │ │ │ │ │ to them. │ │ │ │ │ @@ -22380,15 +22380,15 @@ │ │ │ │ │ The time intervals can be set in multiples of 100&8239;ms, seconds, or minutes. │ │ │ │ │ There are also Variables for IEC timers that can be read and/or written to in compare or operate │ │ │ │ │ blocks. │ │ │ │ │ • %TMxxx.Q - timer done (Boolean, read write) │ │ │ │ │ • %TMxxx.P - timer preset (read write) │ │ │ │ │ • %TMxxx.V - timer value (read write) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 427 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.6.3 TIMERS │ │ │ │ │ Represent count down timers. This is deprecated and replaced by IEC Timers. │ │ │ │ │ Timers have 4 contacts. │ │ │ │ │ • E - enable (input) starts timer when true, resets when goes false │ │ │ │ │ @@ -22418,15 +22418,15 @@ │ │ │ │ │ 8.2.6.5 COUNTERS │ │ │ │ │ Represent up/down counters. │ │ │ │ │ There are 7 contacts: │ │ │ │ │ • R - reset (input) will reset the count to 0. │ │ │ │ │ • P - preset (input) will set the count to the preset number assigned from the edit menu. │ │ │ │ │ • U - up count (input) will add one to the count. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 428 / 1291 │ │ │ │ │ │ │ │ │ │ • D - down count (input) will subtract one from the count. │ │ │ │ │ • E - under flow (output) will be true when the count rolls over from 0 to 9999. │ │ │ │ │ • D - done (output) will be true when the count equals the preset. │ │ │ │ │ • F - overflow (output) will be true when the count rolls over from 9999 to 0. │ │ │ │ │ @@ -22459,15 +22459,15 @@ │ │ │ │ │ %W1<2*%C0.V │ │ │ │ │ │ │ │ │ │ To find out if S32in bit 2 is equal to 10 the syntax would be: │ │ │ │ │ %IW2=10 │ │ │ │ │ │ │ │ │ │ Note: Compare uses the arithmetic equals not the double equals that programmers are used to. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 429 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.6.7 VARIABLE ASSIGNMENT │ │ │ │ │ For variable assignment, e.g. assign this number (or evaluated number) to this variable %xxx, there │ │ │ │ │ are two math functions MINI and MAXI that check a variable for maximum (0x80000000) and minimum values (0x07FFFFFFF) (think signed values) and keeps them from going beyond. │ │ │ │ │ When a new variable assignment block is opened be sure to delete the # symbol when you enter an │ │ │ │ │ @@ -22484,23 +22484,23 @@ │ │ │ │ │ when LinuxCNC is started. │ │ │ │ │ │ │ │ │ │ The following figure shows an Assignment and a Comparison Example. %QW0 is a S32out bit and │ │ │ │ │ %IW0 is a S32in bit. In this case the HAL pin classicladder.0.s32out-00 will be set to a value of │ │ │ │ │ 5 and when the HAL pin classicladder.0.s32in-00 is 0 the HAL pin classicladder.0.out-00 will │ │ │ │ │ be set to True. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Figure 8.8: Assign/Compare Ladder Example │ │ │ │ │ │ │ │ │ │ Figure 8.9: Assignment Expression Example │ │ │ │ │ │ │ │ │ │ 430 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 431 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.10: Comparison Expression Example │ │ │ │ │ │ │ │ │ │ 8.2.6.8 COILS │ │ │ │ │ Coils represent relay coils. They are controlled by the variable letter and number assigned to them. │ │ │ │ │ @@ -22526,15 +22526,15 @@ │ │ │ │ │ If you use a N.C. contact with a N.C. coil the logic will work (when the coil is energized the │ │ │ │ │ contact will be closed) but that is really hard to follow! │ │ │ │ │ │ │ │ │ │ A JUMP COIL is used to JUMP to another section, like a goto in BASIC programming language. │ │ │ │ │ If you look at the top left of the sections display window you will see a small label box and a longer │ │ │ │ │ comment box beside it. Now go to Editor→Modify then go back to the little box, type in a name. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 432 / 1291 │ │ │ │ │ │ │ │ │ │ Go ahead and add a comment in the comment section. This label name is the name of this rung only │ │ │ │ │ and is used by the JUMP COIL to identify where to go. │ │ │ │ │ When placing a JUMP COIL, add it in the rightmost position and change the label to the rung you want │ │ │ │ │ to JUMP to. │ │ │ │ │ @@ -22581,15 +22581,15 @@ │ │ │ │ │ • %M ̀ │ │ │ │ │ __xx__.P ̀ - Monostable xx preset (integer) │ │ │ │ │ • %C ̀ │ │ │ │ │ __xx__.D ̀ - Counter xx done (Boolean, user read only) │ │ │ │ │ • %C ̀ │ │ │ │ │ __xx__.E ̀ - Counter xx empty overflow (Boolean, user read only) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 433 / 1291 │ │ │ │ │ │ │ │ │ │ • %C ̀ │ │ │ │ │ __xx__.F ̀ - Counter xx full overflow (Boolean, user read only) │ │ │ │ │ • %C ̀ │ │ │ │ │ __xx__.V ̀ - Counter xx current value (integer) │ │ │ │ │ @@ -22628,15 +22628,15 @@ │ │ │ │ │ Selector arrow, Eraser │ │ │ │ │ Ordinary step, Initial (Starting) step │ │ │ │ │ Transition, Step and Transition │ │ │ │ │ Transition Link-Downside, Transition Link-Upside │ │ │ │ │ Pass-through Link-Downside, Pass-through Link-Upside Jump │ │ │ │ │ Link, Comment Box │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 434 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.11: Sequence Editor Window │ │ │ │ │ • ORDINARY STEP - has a unique number for each one │ │ │ │ │ • STARTING STEP - a sequential program must have one. This is where the program will start. │ │ │ │ │ • TRANSITION - shows the variable that must be true for control to pass through to the next step. │ │ │ │ │ @@ -22647,15 +22647,15 @@ │ │ │ │ │ • PASS-THROUGH LINK-DOWNSIDE - splits the logic flow to two lines that BOTH must be true to │ │ │ │ │ continue (Think AND logic) │ │ │ │ │ • PASS-THROUGH LINK-UPSIDE - combines two concurrent (AND logic) logic lines back together │ │ │ │ │ • JUMP LINK - connects steps that are not underneath each other such as connecting the last step to │ │ │ │ │ the first │ │ │ │ │ • COMMENT BOX - used to add comments │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 435 / 1291 │ │ │ │ │ │ │ │ │ │ To use links, you must have steps already placed. Select the type of link, then select the two steps or │ │ │ │ │ transactions one at a time. It takes practice! │ │ │ │ │ With sequential programming: The variable %X ̀ │ │ │ │ │ __xxx__ (e.g., ̀ │ │ │ │ │ @@ -22689,21 +22689,21 @@ │ │ │ │ │ • 6 - write single register │ │ │ │ │ • 8 - echo test │ │ │ │ │ • 15 - write multiple coils │ │ │ │ │ • 16 - write multiple registers │ │ │ │ │ If you do not specify a --modmaster when loading the ClassicLadder non-realtime program this page │ │ │ │ │ will not be displayed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 436 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.12: Modbus I/O Config │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 437 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.13: Modbus Communication Config │ │ │ │ │ • SERIAL PORT - For IP blank. For serial the location/name of serial driver, e.g., /dev/ttyS0 ( or │ │ │ │ │ /dev/ttyUSB0 for a USB-to-serial converter). │ │ │ │ │ • SERIAL SPEED - Should be set to speed the slave is set for - 300, 600, 1200, 2400, 4800, 9600, │ │ │ │ │ @@ -22718,15 +22718,15 @@ │ │ │ │ │ • DEBUG LEVEL - Set this to 0-3 (0 to stop printing debug info besides no-response errors). │ │ │ │ │ • READ COILS/INPUTS MAP TO - Select what variables that read coils/inputs will update. (B or Q). │ │ │ │ │ • WRITE COILS MAP TO - Select what variables that write coils will updated from (B,Q,or I). │ │ │ │ │ • READ REGISTERS/HOLDING - Select what variables that read registers will update (W or QW). │ │ │ │ │ • WRITE REGISTERS MAP TO - Select what variables that read registers will updated from (W, QW, │ │ │ │ │ or IW). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 438 / 1291 │ │ │ │ │ │ │ │ │ │ • SLAVE ADDRESS - For serial the slaves ID number usually settable on the slave device (usually │ │ │ │ │ 1-256). For IP the slave IP address plus optionally the port number. │ │ │ │ │ • TYPE ACCESS - This selects the MODBUS function code to send to the slave (eg what type of │ │ │ │ │ request). │ │ │ │ │ @@ -22765,15 +22765,15 @@ │ │ │ │ │ • ClassicLadder uses RTU protocol (not ASCII). │ │ │ │ │ • 8 data bits, No parity is used, and 1 stop bit is also known as 8-N-1. │ │ │ │ │ • Baud rate must be the same for slave and master. ClassicLadder can only have one baud rate so all │ │ │ │ │ the slaves must be set to the same rate. │ │ │ │ │ • Pause inter frame is the time to pause after receiving an answer. │ │ │ │ │ • MODBUS_TIME_AFTER_TRANSMIT is the length of pause after sending a request and before receiving an answer (this apparently helps with USB converters which are slow). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 439 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.10.1 MODBUS Info │ │ │ │ │ • ClassicLadder can use distributed inputs/outputs on modules using the Modbus protocol (”master”: │ │ │ │ │ polling slaves). │ │ │ │ │ • The slaves and theirs I/O can be configured in the config window. │ │ │ │ │ @@ -22803,24 +22803,24 @@ │ │ │ │ │ 8.2.11 Debugging modbus problems │ │ │ │ │ A good reference for the protocol: https://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf. │ │ │ │ │ If you run linuxcnc/classicladder from a terminal, it will print the Modbus commands and slave responses. │ │ │ │ │ Here we set ClassicLadder to request slave 1, to read holding registers (function code 3) starting │ │ │ │ │ at address 8448 (0x2100). We ask for 1 (2 byte wide) data element to be returned. We map it to a │ │ │ │ │ ClassicLadder variable starting at 2. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 440 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.14: Modbus I/O Register Setup │ │ │ │ │ Note in this image we have set the debug level to 1 so modbus messages are printed to the terminal. We │ │ │ │ │ have mapped our read and written holding registers to ClassicLadder’s %W variables so our returned │ │ │ │ │ data will be in %W2 as in the other image we mapped the data starting at the 2nd element. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 441 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.15: Modbus Communication Setup │ │ │ │ │ │ │ │ │ │ 8.2.11.1 Request │ │ │ │ │ Lets look at an example of reading one hold register at 8448 Decimal (0x2100 Hex). │ │ │ │ │ @@ -22848,15 +22848,15 @@ │ │ │ │ │ (2 │ │ │ │ │ 1 to 125 (0x7D) │ │ │ │ │ Bytes) │ │ │ │ │ (2 │ │ │ │ │ Calculated │ │ │ │ │ bytes) automatically │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 442 / 1291 │ │ │ │ │ │ │ │ │ │ Here is an example sent command as printed in the terminal (all Hex): │ │ │ │ │ INFO CLASSICLADDERModbus I/O module to send: Lgt=8 │ │ │ │ │ code-83 ) 2 C0 F1 │ │ │ │ │ │ │ │ │ │ (Slave address-1 │ │ │ │ │ @@ -22967,15 +22967,15 @@ │ │ │ │ │ • Slave number = 1 (0x1) = Slave address 1 │ │ │ │ │ • Requested function code = 3 (0x3) = read holding register requested │ │ │ │ │ • count of byte registers = 2 (0x1) = return 2 bytes (each register value is 2 bytes wide) │ │ │ │ │ • value of highbyte = 0 (0x0) = high byte value of address 8448 (0x2100) │ │ │ │ │ • value of lowbyte = 0 (0x0) = high byte value of address 8448 (0x2100) │ │ │ │ │ • Checksum = (0xB844) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 444 / 1291 │ │ │ │ │ │ │ │ │ │ (high and low bytes are combined to create a 16 bit value and then transferred to ClassicLadder’s │ │ │ │ │ variable.) Read Registers can be mapped to %W or %QW (internal memory or HAL out pins). Write │ │ │ │ │ registers can be mapped from %W, %QW or %IW (internal memory, HAL out pins or HAL in pins). The │ │ │ │ │ variable number will start at the number entered in the modbus I/O registry setup page’s column: │ │ │ │ │ @@ -22994,15 +22994,15 @@ │ │ │ │ │ │ │ │ │ │ 8.2.12 Setting up ClassicLadder │ │ │ │ │ In this section we will cover the steps needed to add ClassicLadder to a StepConf Wizard generated │ │ │ │ │ config. On the advanced Configuration Options page of StepConf Wizard check off ”Include ClassicLadder PLC”. │ │ │ │ │ │ │ │ │ │ Figure 8.16: StepConf ClassicLadder │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 445 / 1291 │ │ │ │ │ │ │ │ │ │ 8.2.12.1 Add the Modules │ │ │ │ │ If you used the StepConf Wizard to add ClassicLadder you can skip this step. │ │ │ │ │ To manually add ClassicLadder you must first add the modules. This is done by adding a couple of │ │ │ │ │ lines to the custom.hal file. │ │ │ │ │ @@ -23018,48 +23018,48 @@ │ │ │ │ │ window open the Editor. In the Editor window select Modify. Now a Properties window pops up and │ │ │ │ │ the Section Display shows a grid. The grid is one rung of ladder. The rung can contain branches. │ │ │ │ │ A simple rung has one input, a connector line and one output. A rung can have up to six horizontal │ │ │ │ │ branches. While it is possible to have more than one circuit in a run the results are not predictable. │ │ │ │ │ │ │ │ │ │ Figure 8.17: Section Display with Grid │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 446 / 1291 │ │ │ │ │ │ │ │ │ │ Now click on the N.O. input in the Editor Window. │ │ │ │ │ │ │ │ │ │ Figure 8.18: Editor Window │ │ │ │ │ Now click in the upper left grid to place the N.O. Input into the ladder. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 447 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.19: Section Display with Input │ │ │ │ │ Repeat the above steps to add a N.O. output to the upper right grid and use the Horizontal Connection │ │ │ │ │ to connect the two. It should look like the following. If not, use the Eraser to remove unwanted │ │ │ │ │ sections. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 448 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.20: Section Display with Rung │ │ │ │ │ Now click on the OK button in the Editor window. Now your Section Display should look like this: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 449 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.21: Section Display Finished │ │ │ │ │ To save the new file select Save As and give it a name. The .clp extension will be added automatically. │ │ │ │ │ It should default to the running config directory as the place to save it. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 450 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.22: Save As Dialog │ │ │ │ │ Again if you used the StepConf Wizard to add ClassicLadder you can skip this step. │ │ │ │ │ To manually add a ladder you need to add add a line to your custom.hal file that will load your ladder │ │ │ │ │ file. Close your LinuxCNC session and add this line to your custom.hal file. │ │ │ │ │ @@ -23070,15 +23070,15 @@ │ │ │ │ │ │ │ │ │ │ 8.3 ClassicLadder Examples │ │ │ │ │ 8.3.1 Wrapping Counter │ │ │ │ │ To have a counter that wraps around you have to use the preset pin and the reset pin. When you │ │ │ │ │ create the counter set the preset at the number you wish to reach before wrapping around to 0. The │ │ │ │ │ logic is if the counter value is over the preset then reset the counter and if the underflow is on then │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 451 / 1291 │ │ │ │ │ │ │ │ │ │ set the counter value to the preset value. As you can see in the example when the counter value is │ │ │ │ │ greater than the counter preset the counter reset is triggered and the value is now 0. The underflow │ │ │ │ │ output %Q2 will set the counter value at the preset when counting backwards. │ │ │ │ │ │ │ │ │ │ @@ -23088,15 +23088,15 @@ │ │ │ │ │ This example shows you how to reject extra pulses from an input. Suppose the input pulse %I0 has │ │ │ │ │ an annoying habit of giving an extra pulse that spoils our logic. The TOF (Timer Off Delay) prevents │ │ │ │ │ the extra pulse from reaching our cleaned up output %Q0. How this works is when the timer gets │ │ │ │ │ an input the output of the timer is on for the duration of the time setting. Using a normally closed │ │ │ │ │ contact %TM0.Q the output of the timer blocks any further inputs from reaching our output until it │ │ │ │ │ times out. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 452 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.24: Reject Extra Pulse │ │ │ │ │ │ │ │ │ │ 8.3.3 External E-Stop │ │ │ │ │ The External E-Stop example is in the /config/classicladder/cl-estop folder. It uses a PyVCP panel to │ │ │ │ │ @@ -23110,15 +23110,15 @@ │ │ │ │ │ │ │ │ │ │ Next we add ClassicLadder to our custom.hal file by adding these two lines: │ │ │ │ │ loadrt classicladder_rt │ │ │ │ │ addf classicladder.0.refresh servo-thread │ │ │ │ │ │ │ │ │ │ Next we run our config and build the ladder as shown here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 453 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.25: E-Stop Section Display │ │ │ │ │ After building the ladder select Save As and save the ladder as estop.clp │ │ │ │ │ Now add the following line to your custom.hal file. │ │ │ │ │ # Load the ladder │ │ │ │ │ @@ -23129,15 +23129,15 @@ │ │ │ │ │ • %I1 = Input from LinuxCNC’s E-Stop │ │ │ │ │ • %I2 = Input from LinuxCNC’s E-Stop Reset Pulse │ │ │ │ │ • %I3 = Input from the PyVCP panel reset button │ │ │ │ │ • %Q0 = Output to LinuxCNC to enable │ │ │ │ │ • %Q1 = Output to external driver board enable pin (use a N/C output if your board had a disable pin) │ │ │ │ │ Next we add the following lines to the custom_postgui.hal file │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 454 / 1291 │ │ │ │ │ │ │ │ │ │ # E-Stop example using PyVCP buttons to simulate external components │ │ │ │ │ # The PyVCP checkbutton simulates a normally closed external E-Stop │ │ │ │ │ net ext-estop classicladder.0.in-00 <= pyvcp.py-estop │ │ │ │ │ # Request E-Stop Enable from LinuxCNC │ │ │ │ │ @@ -23171,36 +23171,36 @@ │ │ │ │ │ ”py-reset” │ │ │ │ │ ”Reset” │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Now start up your config and it should look like this. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 455 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.26: AXIS E-Stop │ │ │ │ │ Note that in this example like in real life you must clear the remote E-Stop (simulated by the checkbox) │ │ │ │ │ before the AXIS E-Stop or the external Reset will put you in OFF mode. If the E-Stop in the AXIS screen │ │ │ │ │ was pressed, you must press it again to clear it. You cannot reset from the external after you do an │ │ │ │ │ E-Stop in AXIS. │ │ │ │ │ │ │ │ │ │ 8.3.4 Timer/Operate Example │ │ │ │ │ In this example we are using the Operate block to assign a value to the timer preset based on if an │ │ │ │ │ input is on or off. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 456 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 8.27: Timer/Operate Example │ │ │ │ │ In this case %I0 is true so the timer preset value is 10. If %I0 was false the timer preset would be 5. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 457 / 1291 │ │ │ │ │ │ │ │ │ │ Chapter 9 │ │ │ │ │ │ │ │ │ │ Advanced Topics │ │ │ │ │ 9.1 Kinematics │ │ │ │ │ @@ -23228,15 +23228,15 @@ │ │ │ │ │ Cartesian coordinates. The A B C axes refer to rotational coordinates about the X Y Z axes respectively. │ │ │ │ │ The U V W axes refer to additional coordinates that are commonly made colinear to the X Y Z axes │ │ │ │ │ respectively. │ │ │ │ │ 1 The word ”axes” is also commonly (and wrongly) used when talking about CNC machines, and referring to the moving │ │ │ │ │ directions of the machine. │ │ │ │ │ 2 Kinematics: a two way function to transform from Cartesian space to joint space. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 458 / 1291 │ │ │ │ │ │ │ │ │ │ 9.1.2 Trivial Kinematics │ │ │ │ │ The simplest machines are those in which which each joint is placed along one of the Cartesian axes. │ │ │ │ │ On these machines the mapping from Cartesian space (the G-code program) to the joint space (the │ │ │ │ │ actual actuators of the machine) is trivial. It is a simple 1:1 mapping: │ │ │ │ │ @@ -23290,15 +23290,15 @@ │ │ │ │ │ 3 If the machine (for example a lathe) is mounted with only the X, Z and A axes and the INI file of LinuxCNC contains only │ │ │ │ │ │ │ │ │ │ the definition of these 3 joints, then the previous assertion is false. Because we currently have (joint0=X, joint1=Z, joint2=A) │ │ │ │ │ which assumes that joint1=Y. To make this work in LinuxCNC just define all the axes (XYZA), LinuxCNC will then use a simple │ │ │ │ │ loop in HAL for unused Y axis. │ │ │ │ │ 4 Another way to make it work is to change the corresponding code and recompile the software. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 459 / 1291 │ │ │ │ │ │ │ │ │ │ Use of the coordinates= parameter is recommended for configurations that omit axis letters. 5 │ │ │ │ │ The trivkins kinematics module also allows the same coordinate to be specified for more than one │ │ │ │ │ joint. This feature can be useful on machines like a gantry having two independent motors for the y │ │ │ │ │ coordinate. Such a machine could use coordinates=xyyz resulting in joint assignments: │ │ │ │ │ @@ -23319,15 +23319,15 @@ │ │ │ │ │ │ │ │ │ │ Figure 9.1: Bipod setup │ │ │ │ │ 5 Historically, the trivkins module did not support the coordinates= parameter so lathe configs were often configured as XYZ │ │ │ │ │ machines. The unused Y axis was configured to 1) home immediately, 2) use a simple loopback to connect its position command │ │ │ │ │ HAL pin to its position feedback HAL pin, and 3) hidden in gui displays. Numerous sim configs use these methods in order to │ │ │ │ │ share common HAL files. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 460 / 1291 │ │ │ │ │ │ │ │ │ │ The Bipod we are talking about is a device that consists of 2 motors placed on a wall, from which a │ │ │ │ │ device is hung using some wire. The joints in this case are the distances from the motors to the device │ │ │ │ │ (named AD and BD in the figure). │ │ │ │ │ The position of the motors is fixed by convention. Motor A is in (0,0), which means that its X coordinate │ │ │ │ │ @@ -23359,15 +23359,15 @@ │ │ │ │ │ double x = (AD2 - BD2 + Bx * Bx) / (2 * Bx); │ │ │ │ │ double y2 = AD2 - x * x; │ │ │ │ │ if(y2 < 0) return -1; │ │ │ │ │ pos->tran.x = x; │ │ │ │ │ pos->tran.y = sqrt(y2); │ │ │ │ │ return 0; │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 461 / 1291 │ │ │ │ │ │ │ │ │ │ 9.1.3.2 Inverse transformation │ │ │ │ │ The inverse kinematics is much easier in our example, as we can write it directly: │ │ │ │ │ │ │ │ │ │ or translated to actual code: │ │ │ │ │ @@ -23402,15 +23402,15 @@ │ │ │ │ │ │ │ │ │ │ int kinematicsSwitchable(void) │ │ │ │ │ int kinematicsSwitch(int switchkins_type) │ │ │ │ │ KINS_NOT_SWITCHABLE │ │ │ │ │ │ │ │ │ │ The function kinematicsSwitchable() returns 1 if multiple kinematics types are supported. The function kinematicsSwitch() selects the kinematics type. See Switchable Kinematitcs. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 462 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ The majority of provided kinematics modules support a single kinematics type and use the directive │ │ │ │ │ ”KINS_NOT_SWITCHABLE” to supply defaults for the required kinematicsSwitchable() and kinematicsSwitch() functions. │ │ │ │ │ │ │ │ │ │ @@ -23445,15 +23445,15 @@ │ │ │ │ │ Note │ │ │ │ │ This document does not cover the creation of a vismach model which, while certainly very useful, │ │ │ │ │ requires just as much careful modeling if it is to match the genserkins model derived in this document. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ There may be errors and/or shortcomings — use at your own risk! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 463 / 1291 │ │ │ │ │ │ │ │ │ │ 9.2.2 General │ │ │ │ │ With the proliferation of industrial robots comes an increased interest to control used robots with │ │ │ │ │ LinuxCNC. A common type of robot used in industry and manufacturing is the ”serial manipulator” │ │ │ │ │ designed as a series of motorized joints connected by rigid links. Serial robots often have six joints │ │ │ │ │ @@ -23496,15 +23496,15 @@ │ │ │ │ │ │ │ │ │ │ 9.2.4 Modified DH-Parameters as used in genserkins │ │ │ │ │ Note that genserkins does not handle offsets to theta-values — theta is the joint variable that is controlled by LinuxCNC. With the CS aligned with the joint, a rotation around its Z-Axis is identical to │ │ │ │ │ the rotation commanded to that joint by LinuxCNC. This makes it impossible to define the 0° position │ │ │ │ │ of our robots joints arbitrarily. │ │ │ │ │ The three configurable parameters are: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 464 / 1291 │ │ │ │ │ │ │ │ │ │ 1. alpha : positive or negative rotation (in radians) around the X-axis of the ”current coordinate │ │ │ │ │ system” │ │ │ │ │ 2. a : positive distance, along X, between two joint axes specified in machine units (mm or inch) │ │ │ │ │ defined in the system’s INI file. │ │ │ │ │ @@ -23536,87 +23536,87 @@ │ │ │ │ │ but there is no point in setting it other than 0. │ │ │ │ │ │ │ │ │ │ 9.2.8 Detailed Example (RV-6SL) │ │ │ │ │ Described below is a method to derive the required ”modified DH-parameters” for a Mitsubishi RV6SDL and how to set the parameters in the HAL file to be used with the genserkins kinematics in │ │ │ │ │ LinuxCNC. The necessary dimensions are best taken from a dimensional drawing provided by the │ │ │ │ │ manufacturer of the robot. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 465 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 466 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 467 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 468 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 469 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 470 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 471 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 472 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 473 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 474 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 475 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 476 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 477 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 478 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 479 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 480 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 481 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 482 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 483 / 1291 │ │ │ │ │ │ │ │ │ │ 9.2.9 Credits │ │ │ │ │ Thanks to user Aciera for all text and the graphics for the RV-6SL robot! │ │ │ │ │ │ │ │ │ │ 9.3 5-Axis Kinematics │ │ │ │ │ @@ -23645,27 +23645,27 @@ │ │ │ │ │ the cutter tip position and the cutter orientation relative to the workpiece coordinate system. Two │ │ │ │ │ vectors, as generated by most CAM systems and shown in Fig. 1, contain this information: │ │ │ │ │ │ │ │ │ │ The K vector is equivalent to the 3rd vector from the pose matrix E6 that was used in the 6-axis robot │ │ │ │ │ kinematics [3] and the Q vector is equivalent to the 4th vector of E6 . In MASTERCAM for example │ │ │ │ │ this information is contained in the intermediate output ”.nci” file. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 484 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 9.2: Cutter location data │ │ │ │ │ │ │ │ │ │ 9.3.4 Translation and Rotation Matrices │ │ │ │ │ Homogeneous transformations provide a simple way to describe the mathematics of multi-axis machine kinematics. A transformation of the space H is a 4x4 matrix and can represent translation and │ │ │ │ │ rotation transformations. Given a point x,y,x described by a vector u = {x,y,z,1}T , then its transformation v is represented by the matrix product │ │ │ │ │ │ │ │ │ │ There are four fundamental transformation matrices on which 5-axis kinematics can be based: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 485 / 1291 │ │ │ │ │ │ │ │ │ │ The matrix T(a,b,c) implies a translation in the X, Y, Z coordinate directions by the amounts a, b, c │ │ │ │ │ respectively. The R matrices imply rotations of the angle theta about the X, Y and Z coordinate axes │ │ │ │ │ respectively. The C and S symbols refer to cosine and sine functions respectively. │ │ │ │ │ │ │ │ │ │ @@ -23675,15 +23675,15 @@ │ │ │ │ │ • A rotary table which rotates about the vertical Z-axes (C-rotation, secondary) mounted on a tilting │ │ │ │ │ table which rotates about the X- or Y-axis (A- or B-rotation, primary). The workpiece is mounted on │ │ │ │ │ the rotary table. │ │ │ │ │ • A tilting table which rotates about the X- or Y-axis (A- or B-rotation, secondary) is mounted on a │ │ │ │ │ rotary table which rotates about the Z-axis (C-rotation, primary), with the workpiece on the tilting │ │ │ │ │ table. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 486 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 9.3: General configuration and coordinate systems │ │ │ │ │ A multi-axis machine can be considered to consist of a series of links connected by joints. By embedding a coordinate frame in each link of the machine and using homogeneous transformations, we can │ │ │ │ │ describe the relative position and orientation between these coordinate frames │ │ │ │ │ We need to describe a relationship between the workpiece coordinate system and the tool coordinate system. This can be defined by a transformation matrix w At , which can be found by subsequent │ │ │ │ │ @@ -23691,43 +23691,43 @@ │ │ │ │ │ defined coordinate system. In general such a transformation may look as follows: │ │ │ │ │ │ │ │ │ │ where each matrix i-1 Aj is a translation matrix T or a rotation matrix R of the form (2,3). │ │ │ │ │ Matrix multiplication is a simple process in which the elements of each row of the lefthand matrix │ │ │ │ │ A is multiplied by the elements of each column of the righthand matrix B and summed to obtain an │ │ │ │ │ element in the result matrix C, ie. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 487 / 1291 │ │ │ │ │ │ │ │ │ │ In Fig. 2 a generic configuration with coordinate systems is shown [4]. It includes table rotary/tilting │ │ │ │ │ axes as well as spindle rotary/tilting axes. Only two of the rotary axes are actually used in a machine │ │ │ │ │ tool. │ │ │ │ │ First we will develop the transformations for the first type of configuration mentioned above, ie. a table │ │ │ │ │ tilting/rotary (trt) type with no rotating axis offsets. We may give it the name xyzac-trt configuration. │ │ │ │ │ We also develop the transformations for the same type (xyzac-trt), but with rotating axis offsets. │ │ │ │ │ Then we develop the transformations for a xyzbc-trt configuration with rotating axis offsets. │ │ │ │ │ 9.3.5.1 Transformations for a xyzac-trt machine tool with work offsets │ │ │ │ │ │ │ │ │ │ Figure 9.4: vismach model of xyzac-trt with coincident rotation axes │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 488 / 1291 │ │ │ │ │ │ │ │ │ │ We deal here with a simplified configuration in which the tilting axis and rotary axis intersects at a │ │ │ │ │ point called the pivot point as shown in Fig. 4. therefore the two coordinate systems Ows and Owp of │ │ │ │ │ Fig. 2 are coincident. │ │ │ │ │ │ │ │ │ │ Figure 9.5: Table tilting/rotary configuration │ │ │ │ │ The transformation can be defined by the sequential multiplication of the matrices: │ │ │ │ │ │ │ │ │ │ with the matrices built up as follows: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 489 / 1291 │ │ │ │ │ │ │ │ │ │ In these equations Lx , Ly , Lz defines the offsets of the pivot point of the two rotary axes A and C │ │ │ │ │ relative to the workpiece coordinate system origin. Furthermore, Px , Py , Pz are the relative distances │ │ │ │ │ of the pivot point to the cutter tip position, which can also be called the ”joint coordinates” of the pivot │ │ │ │ │ point. The pivot point is at the intersection of the two rotary axes. The signs of the SA and SC terms │ │ │ │ │ @@ -23746,56 +23746,56 @@ │ │ │ │ │ Equating the last column of (8) with the tool position vector Q, we can write: │ │ │ │ │ │ │ │ │ │ The vector on the right hand side can also be written as the product of a matrix and a vector resulting │ │ │ │ │ in: │ │ │ │ │ │ │ │ │ │ This can be expanded to give │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 490 / 1291 │ │ │ │ │ │ │ │ │ │ which is the forward transformation of the kinematics. │ │ │ │ │ We can solve for P from equation (13) as P = (Q AP )-1 * Q. Noting that the square matrix is a homogeneous 4x4 matrix containing a rotation matrix R and translation vector q, for which the inverse can │ │ │ │ │ be written as: │ │ │ │ │ │ │ │ │ │ where R^T is the transpose of R (rows and columns swappped). We therefore obtain: │ │ │ │ │ │ │ │ │ │ The desired equations for the inverse transformation of the kinematics thus can be written as: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 491 / 1291 │ │ │ │ │ │ │ │ │ │ 9.3.5.2 Transformations for a xyzac-trt machine with rotary axis offsets │ │ │ │ │ │ │ │ │ │ Figure 9.6: vismach model of xyzac-trt with rotational axis offsets (positive) │ │ │ │ │ We deal here with a extended configuration in which the tilting axis and rotary axis do not intersect │ │ │ │ │ at a point but have an offset Dy . Furthermore, there is also an z-offset between the two coordinate │ │ │ │ │ systems Ows and Owp of Fig. 2, called Dz . A vismach model is shown in Fig. 5 and the offsets are │ │ │ │ │ shown in Fig. 6 (positive offsets in this example). To simplify the configuration, the offsets Lx , Ly , Lz │ │ │ │ │ of the previous case are not included. They are probably not necessary if one uses the G54 offsets in │ │ │ │ │ LinuxCNC by means of the ”touch of” facility. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 492 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 9.7: Table tilting/rotary xyzac-trt configuration, with axis offsets │ │ │ │ │ The transformation can be defined by the sequential multiplication of the matrices: │ │ │ │ │ │ │ │ │ │ with the matrices built up as follows: │ │ │ │ │ │ │ │ │ │ In these equations Dy , Dz defines the offsets of the pivot point of the rotary axes A relative to the │ │ │ │ │ workpiece coordinate system origin. Furthermore, Px , Py , Pz are the relative distances of the pivot │ │ │ │ │ point to the cutter tip position, which can also be called the ”joint coordinates” of the pivot point. The │ │ │ │ │ pivot point is on the A rotary axis. │ │ │ │ │ When multiplied in accordance with (18), we obtain: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 493 / 1291 │ │ │ │ │ │ │ │ │ │ We can now equate the third column of this matrix with our given tool orientation vector K, ie.: │ │ │ │ │ │ │ │ │ │ From these equations we can solve for the rotation angles thetaA , thetaC . From the third row we find: │ │ │ │ │ │ │ │ │ │ @@ -23809,42 +23809,42 @@ │ │ │ │ │ in: │ │ │ │ │ │ │ │ │ │ which is the forward transformation of the kinematics. │ │ │ │ │ We can solve for P from equation (25) as P = (Q AP )-1 * Q using (15) as before. We thereby obtain: │ │ │ │ │ │ │ │ │ │ The desired equations for the inverse transformation of the kinematics thus can be written as: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 494 / 1291 │ │ │ │ │ │ │ │ │ │ 9.3.5.3 Transformations for a xyzbc-trt machine with rotary axis offsets │ │ │ │ │ │ │ │ │ │ Figure 9.8: vismach model of xyzbc-trt with rotational axis offsets (negative) │ │ │ │ │ We deal here again with a extended configuration in which the tilting axis (about the y-axis) and rotary │ │ │ │ │ axis do not intersect at a point but have an offset Dx . Furthermore, there is also an z-offset between │ │ │ │ │ the two coordinate systems Ows and Owp of Fig. 2, called Dz . A vismach model is shown in Fig. 7 │ │ │ │ │ (negative offsets in this example) and the positive offsets are shown in Fig. 8. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 495 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 9.9: Table tilting/rotary xyzbc-trt configuration, with axis offsets │ │ │ │ │ The transformation can be defined by the sequential multiplication of the matrices: │ │ │ │ │ │ │ │ │ │ with the matrices built up as follows: │ │ │ │ │ │ │ │ │ │ In these equations Dx , Dz defines the offsets of the pivot point of the rotary axes B relative to the │ │ │ │ │ workpiece coordinate system origin. Furthermore, Px , Py , Pz are the relative distances of the pivot │ │ │ │ │ point to the cutter tip position, which can also be called the ”joint coordinates” of the pivot point. The │ │ │ │ │ pivot point is on the B rotary axis. │ │ │ │ │ When multiplied in accordance with (29), we obtain: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 496 / 1291 │ │ │ │ │ │ │ │ │ │ We can now equate the third column of this matrix with our given tool orientation vector K, i.e.: │ │ │ │ │ │ │ │ │ │ From these equations we can solve for the rotation angles thetaB , thetaC . From the third row we find: │ │ │ │ │ │ │ │ │ │ @@ -23859,15 +23859,15 @@ │ │ │ │ │ │ │ │ │ │ which is the forward transformation of the kinematics. │ │ │ │ │ We can solve for P from equation (37) as P = (Q AP )-1 * Q. │ │ │ │ │ With the same approach as before, we obtain: │ │ │ │ │ │ │ │ │ │ The desired equations for the inverse transformation of the kinematics thus can be written as: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 497 / 1291 │ │ │ │ │ │ │ │ │ │ 9.3.6 Table Rotary/Tilting Examples │ │ │ │ │ LinuxCNC includes kinematics modules for the xyzac-trt and xyzbc-trt topologies described in the │ │ │ │ │ mathematics detailed above. For interested users, the source code is available in the git tree in the │ │ │ │ │ src/emc/kinematics/ directory. │ │ │ │ │ @@ -23911,15 +23911,15 @@ │ │ │ │ │ │ │ │ │ │ 9.3.7 Custom Kinematics Components │ │ │ │ │ LinuxCNC implements kinematics using a HAL component that is loaded at startup of LinuxCNC. The │ │ │ │ │ most common kinematics module, trivkins, implements identity (trivial) kinematics where there is a │ │ │ │ │ one-to-one correspondence between an axis coordinate letter and a motor joint. Additional kinematics │ │ │ │ │ modules for more complex systems (including xyzac-trt and xyzbc-trt described above) are available. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 498 / 1291 │ │ │ │ │ │ │ │ │ │ See the kins manpage (\$ man kins) for brief descriptions of the available kinematics modules. │ │ │ │ │ The kinematics modules provided by LinuxCNC are typically written in the C-language. Since a standard structure is used, creation of a custom kinematics module is facilitated by copying an existing │ │ │ │ │ source file to a user file with a new name, modifying it, and then installing. │ │ │ │ │ Installation is done using halcompile: │ │ │ │ │ @@ -23941,29 +23941,29 @@ │ │ │ │ │ module. These pins can be connected to a signal for dynamic control or set once with HAL connections │ │ │ │ │ like: │ │ │ │ │ # set offset parameters │ │ │ │ │ net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset │ │ │ │ │ setp xyzac-trt-kins.y-offset 0 │ │ │ │ │ setp xyzac-trt-kins.z-offset 20 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 9.3.8 Figures │ │ │ │ │ │ │ │ │ │ Figure 9.10: Table tilting/rotating configuration │ │ │ │ │ │ │ │ │ │ 499 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Figure 9.11: Spindle/table tilting configuration │ │ │ │ │ │ │ │ │ │ 500 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 501 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 9.12: Spindle tilting/rotary configuration │ │ │ │ │ │ │ │ │ │ 9.3.9 REFERENCES │ │ │ │ │ 1. AXIS MACHINE TOOLS: Kinematics and Vismach Implementation in LinuxCNC, RJ du Preez, │ │ │ │ │ @@ -23978,15 +23978,15 @@ │ │ │ │ │ │ │ │ │ │ 9.4 Switchable Kinematics (switchkins) │ │ │ │ │ 9.4.1 Introduction │ │ │ │ │ A number of kinematics modules support the switching of kinematics calculations. These modules │ │ │ │ │ support a default kinematics method (type0), a second built-in method (type1), and (optionally) a userprovided kinematics method (type2). Identity kinematics are typically used for the type1 method. │ │ │ │ │ The switchkins functionality can be used for machines where post-homing joint control is needed during setup or to avoid movement near singularities from G-code. Such machines use specific kinematics │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 502 / 1291 │ │ │ │ │ │ │ │ │ │ calculations for most operations but can be switched to identity kinematics for control of individual │ │ │ │ │ joints after homing. │ │ │ │ │ The kinematics type is selected by a motion module HAL pin that can be updated from a G-code │ │ │ │ │ program or by interactive MDI commands. The halui provisions for activating MDI commands can be │ │ │ │ │ @@ -24022,15 +24022,15 @@ │ │ │ │ │ # custom identity ordering: joint0==c, joint1==b, ... │ │ │ │ │ # KINEMATICS = genhexkins coordinates=cbazyx │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ If the coordinates= parameter is omitted, the default joint-letter identity assignments are │ │ │ │ │ joint0==x,joint1=y,… │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 503 / 1291 │ │ │ │ │ │ │ │ │ │ The joint assignments provided for identity kinematics when using the coordinates parameter are │ │ │ │ │ identical to those provided for the trivkins module. However, duplication of axis letters to assign │ │ │ │ │ multiple joints for a coordinate letter is not generally applicable for serial or parallel kinematics (like │ │ │ │ │ genserkins, pumakins, genhexkins, etc.) where there is no simple relationship between joints and │ │ │ │ │ @@ -24062,15 +24062,15 @@ │ │ │ │ │ 9.4.4 Usage │ │ │ │ │ 9.4.4.1 HAL Connections │ │ │ │ │ Switchkins functionality is enabled by the pin motion.switchkins-type. Typically, this pin is sourced │ │ │ │ │ by an analog output pin like motion.analog-out-03 so that it can be set by M68 commands. Example: │ │ │ │ │ net :kinstype-select <= motion.analog-out-03 │ │ │ │ │ net :kinstype-select => motion.switchkins-type │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 504 / 1291 │ │ │ │ │ │ │ │ │ │ 9.4.4.2 G-/M-code commands │ │ │ │ │ Kinstype selection is managed using G-code sequences like: │ │ │ │ │ ... │ │ │ │ │ M68 E3 Q1 ;update analog-out-03 to select kinstype 1 │ │ │ │ │ @@ -24109,15 +24109,15 @@ │ │ │ │ │ XYZABCUVW): │ │ │ │ │ [AXIS_L] │ │ │ │ │ MIN_LIMIT = │ │ │ │ │ MAX_LIMIT = │ │ │ │ │ MAX_VELOCITY = │ │ │ │ │ MIN_ACCELERATION = │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 505 / 1291 │ │ │ │ │ │ │ │ │ │ The INI file limits specified apply to the type 0 default kinematics type that is activated at startup. │ │ │ │ │ These limits may not be applicable when switching to alternative kinematics. However, since an │ │ │ │ │ interpreter-motion synchronization is required when switching kinematics, INI-HAL pins can be used │ │ │ │ │ to setup limits for a pending kinematics type. │ │ │ │ │ @@ -24161,15 +24161,15 @@ │ │ │ │ │ the set XYZABCUVW. The INI file settings ([AXIS_L]) are not applicable when operating with identity │ │ │ │ │ (type1) kinematics. To address this use case, the user M-code scripts can be designed as follows: │ │ │ │ │ M129 (Switch to identity type1) │ │ │ │ │ 1. read and parse INI file │ │ │ │ │ 2. HAL: setp the INI-HAL limit pins for each axis letter ([AXIS_L]) according to the identity-referenced │ │ │ │ │ joint number INI file setting ([JOINT_N]) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 506 / 1291 │ │ │ │ │ │ │ │ │ │ 3. HAL: setp motion.switchkins-type 1 │ │ │ │ │ 4. MDI: execute a syncing G-code (M66E0L0) │ │ │ │ │ M128 (restore robot default kinematics type 0) │ │ │ │ │ 1. read and parse INI file │ │ │ │ │ @@ -24214,15 +24214,15 @@ │ │ │ │ │ directory and edited to supply custom kinematics with kinstype==2. │ │ │ │ │ The user custom kinematics file can be compiled from out-of-tree source locations for rt-preempt │ │ │ │ │ implementations or by replacing the in-tree template file (src/emc/kinematics/userkfuncs.c) for rtai │ │ │ │ │ systems. │ │ │ │ │ Preempt-rt make example: │ │ │ │ │ $ userkfuncs=/home/myname/kins/mykins.c make && sudo make setuid │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 507 / 1291 │ │ │ │ │ │ │ │ │ │ 9.4.7 Warnings │ │ │ │ │ Unexpected behavior can result if a G-code program is inadvertently started with an incompatible │ │ │ │ │ kinematics type. Unwanted behavior can be circumvented in G-code programs by: │ │ │ │ │ 1. Connecting appropriate kinstype.is.N HAL pins to digital input pins (like motion.digital-in-0m). │ │ │ │ │ @@ -24255,15 +24255,15 @@ │ │ │ │ │ manipulable input to the process that brings the process measured value back to its desired set point. │ │ │ │ │ Unlike simpler control algorithms, the PID controller can adjust process outputs based on the history │ │ │ │ │ and rate of change of the error signal, which gives more accurate and stable control. (It can be │ │ │ │ │ shown mathematically that a PID loop will produce accurate, stable control in cases where a simple │ │ │ │ │ proportional control would either have a steady-state error or would cause the process to oscillate). │ │ │ │ │ 6 This Subsection is taken from an much more extensive article found at https://en.wikipedia.org/wiki/PID_controller │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 508 / 1291 │ │ │ │ │ │ │ │ │ │ 9.5.1.1 Control loop basics │ │ │ │ │ Intuitively, the PID loop tries to automate what an intelligent operator with a gauge and a control │ │ │ │ │ knob would do. The operator would read a gauge showing the output measurement of a process, and │ │ │ │ │ use the knob to adjust the input of the process (the action) until the process’s output measurement │ │ │ │ │ @@ -24302,15 +24302,15 @@ │ │ │ │ │ set point. A simple proportional system either oscillates, moving back and forth around the set point │ │ │ │ │ because there’s nothing to remove the error when it overshoots, or oscillates and/or stabilizes at a │ │ │ │ │ too low or too high value. By adding a negative proportion of (i.e. subtracting part of) the average │ │ │ │ │ error from the process input, the average difference between the process output and the set point is │ │ │ │ │ always being reduced. Therefore, eventually, a well-tuned PID loop’s process output will settle down │ │ │ │ │ at the set point. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 509 / 1291 │ │ │ │ │ │ │ │ │ │ Derivative To handle the future, the first derivative (the slope of the error) over time is calculated, │ │ │ │ │ and multiplied by another (negative) constant D, and also added to (subtracting error from) the controlled quantity. The derivative term controls the response to a change in the system. The larger the │ │ │ │ │ derivative term, the more rapidly the controller responds to changes in the process’s output. │ │ │ │ │ More technically, a PID loop can be characterized as a filter applied to a complex frequency-domain │ │ │ │ │ @@ -24388,15 +24388,15 @@ │ │ │ │ │ D │ │ │ │ │ │ │ │ │ │ Pc /1.2 │ │ │ │ │ │ │ │ │ │ 7 Introduced in the 1942 paper Optimum Settings for Automatic Controllers, DOI 10.1115/1.2899060 also available from │ │ │ │ │ The Internet Archive. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Control type │ │ │ │ │ PID │ │ │ │ │ │ │ │ │ │ 510 / 1291 │ │ │ │ │ │ │ │ │ │ P │ │ │ │ │ @@ -24440,15 +24440,15 @@ │ │ │ │ │ deficient code by a an O-word procedure call. │ │ │ │ │ In its simplest form, a remapped code isn’t much more than a spontaneous call to an O-word procedure. This happens behind the scenes - the procedure is visible at the configuration level, but not at │ │ │ │ │ the NGC program level. │ │ │ │ │ Generally, the behavior of a remapped code may be defined in the following ways: │ │ │ │ │ • You define a O-word subroutine which implements the desired behavior │ │ │ │ │ • Alternatively, you may employ a Python function which extends the interpreter’s behavior. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 511 / 1291 │ │ │ │ │ │ │ │ │ │ How to glue things together M- and G-codes, and O-words subroutine calls have some fairly different syntax. │ │ │ │ │ O-word procedures, for example, take positional parameters with a specific syntax like so: │ │ │ │ │ o call [1.234] [4.65] │ │ │ │ │ │ │ │ │ │ @@ -24484,15 +24484,15 @@ │ │ │ │ │ 9.6.2 Getting started │ │ │ │ │ Defining a code involves the following steps: │ │ │ │ │ • Pick a code - either use an unallocated code, or redefine an existing code. │ │ │ │ │ • Decide how parameters are handled. │ │ │ │ │ • Decide if and how results are handled. │ │ │ │ │ • Decide about the execution sequence. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 512 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.2.1 Builtin Remaps │ │ │ │ │ Please note that currently only some existing codes can be redefined, while there are many free codes │ │ │ │ │ that may be available for remapping. When developing redefined existing code, it is a good idea to │ │ │ │ │ start with an unassigned G- or M- code, so that you can use both an existing behavior as well as a new │ │ │ │ │ @@ -24530,15 +24530,15 @@ │ │ │ │ │ which might be made available by remapping. When developing a redefined existing code, it might │ │ │ │ │ be a good idea to start with an unallocated G- or M-code, so both the existing and new behavior can │ │ │ │ │ be exercised. When done, redefine the existing code to use your remapping setup. │ │ │ │ │ • The current set of unused M-codes open to user definition can be found here. │ │ │ │ │ • Unallocated G-codes are listed here. │ │ │ │ │ • Existing codes which may be remapped are listed here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 513 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.2.3 Parameter handling │ │ │ │ │ Let’s assume the new code will be defined by an NGC procedure, and needs some parameters, some │ │ │ │ │ of which might be required, others might be optional. We have the following options to feed values to │ │ │ │ │ the procedure: │ │ │ │ │ @@ -24575,15 +24575,15 @@ │ │ │ │ │ [RS274NGC] │ │ │ │ │ REMAP=M400 │ │ │ │ │ │ │ │ │ │ modalgroup=10 argspec=Pq ngc=myprocedure │ │ │ │ │ │ │ │ │ │ In a nutshell, this means: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 514 / 1291 │ │ │ │ │ │ │ │ │ │ • The M400 code takes a required parameter P and an optional parameter Q. Other words in the current │ │ │ │ │ block are ignored with respect to the M400 code. If the P word is not present, fail execution with an │ │ │ │ │ error. │ │ │ │ │ • When an M400 code is encountered, execute myprocedure.ngc along the other modal group 10 Mcodes as per order of execution. │ │ │ │ │ @@ -24621,15 +24621,15 @@ │ │ │ │ │ for in the directories specified in the directory specified in [DISPLAY]PROGRAM_PREFIX, then in │ │ │ │ │ [RS274NGC]SUBROUTINE_PATH. Mutually exclusive with python=. It is an error to omit both ngc= │ │ │ │ │ and python=. │ │ │ │ │ python= │ │ │ │ │ Instead of calling an ngc O-word procedure call a Python function. The function is expected to │ │ │ │ │ be defined in the module_basename.oword module. Mutually exclusive with ngc=. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 515 / 1291 │ │ │ │ │ │ │ │ │ │ prolog= │ │ │ │ │ Before executing an ngc procedure, call this Python function. The function is expected to be │ │ │ │ │ defined in the module_basename.remap module. Optional. │ │ │ │ │ epilog= │ │ │ │ │ @@ -24668,15 +24668,15 @@ │ │ │ │ │ An empty argspec, or no argspec argument at all implies the remapped code does not receive any │ │ │ │ │ parameters from the block. It will ignore any extra parameters present. │ │ │ │ │ Note that RS274NGC rules still apply - for instance you may use axis words (e.g., X, Y, Z) only in the │ │ │ │ │ context of a G-code. │ │ │ │ │ Axis words may also only be used if the axis is enabled. If only XYZ are enabled, ABCUVW will not be │ │ │ │ │ available to be used in argspec. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 516 / 1291 │ │ │ │ │ │ │ │ │ │ Words F, S and T (short FST) will have the normal functions but will be available as variables in the │ │ │ │ │ remapped function. F will set feedrate, S will set spindle RPM, T will trigger the tool prepare function. │ │ │ │ │ Words FST should not be used if this behavior is not desired. │ │ │ │ │ Words DEIJKPQR have no predefined function and are recommended for use as argspec parameters. │ │ │ │ │ @@ -24718,15 +24718,15 @@ │ │ │ │ │ (the q argspec is optional since its lowercase in the argspec. Use as follows:) │ │ │ │ │ o100 if [EXISTS[#]] │ │ │ │ │ (debug, Q word set: #) │ │ │ │ │ o100 endif │ │ │ │ │ o endsub │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 517 / 1291 │ │ │ │ │ │ │ │ │ │ • Executing M400 will fail with the message user-defined M400: missing: P. │ │ │ │ │ • Executing M400 P123 will display P word=123.000000. │ │ │ │ │ • Executing M400 P123 Q456 will display P word=123.000000 and Q word set: 456.000000. │ │ │ │ │ Example for positional parameter passing to NGC procedures Assume the code is defined as │ │ │ │ │ @@ -24767,15 +24767,15 @@ │ │ │ │ │ Advanced example: Remapped codes in pure Python The interpreter and emccanon modules │ │ │ │ │ expose most of the Interpreter and some Canon internals, so many things which so far required coding │ │ │ │ │ in C/C+\+ can be now be done in Python. │ │ │ │ │ The following example is based on the nc_files/involute.py script - but canned as a G-code with │ │ │ │ │ some parameter extraction and checking. It also demonstrates calling the interpreter recursively (see │ │ │ │ │ self.execute()). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 518 / 1291 │ │ │ │ │ │ │ │ │ │ Assuming a definition like so (NB: this does not use argspec): │ │ │ │ │ REMAP=G88.1 modalgroup=1 py=involute │ │ │ │ │ The involute function in python/remap.py listed below does all word extraction from the current │ │ │ │ │ block directly. Note that interpreter errors can be translated to Python exceptions. Remember this is │ │ │ │ │ @@ -24819,15 +24819,15 @@ │ │ │ │ │ y = y0 + a * (sin(t) - t * cos(t)) │ │ │ │ │ self.execute(”G1 X%f Y%f” % (x,y),lineno()) │ │ │ │ │ if c.z_flag: # retract to starting height │ │ │ │ │ self.execute(”G0 Z%f” % (old_z),lineno()) │ │ │ │ │ except InterpreterException,e: │ │ │ │ │ msg = ”%d: ’%s’ - %s” % (e.line_number,e.line_text, e.error_message) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 519 / 1291 │ │ │ │ │ │ │ │ │ │ return msg │ │ │ │ │ return INTERP_OK │ │ │ │ │ │ │ │ │ │ The examples described so far can be found in configs/sim/axis/remap/getting-started with complete │ │ │ │ │ @@ -24871,15 +24871,15 @@ │ │ │ │ │ (dire but necessary). │ │ │ │ │ Note than when remapping an existing code, we completely disable this codes’ built-in functionality │ │ │ │ │ of the interpreter. │ │ │ │ │ So our remapped code will need to do a bit more than just generating some commands to move the │ │ │ │ │ machine as we like - it will also need to replicate those steps from this sequence which are needed to │ │ │ │ │ keep the interpreter and task happy. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 520 / 1291 │ │ │ │ │ │ │ │ │ │ However, this does not affect the processing of tool change-related commands in task and iocontrol. │ │ │ │ │ This means when we execute step 6b this will still cause iocontrol to do its thing. │ │ │ │ │ Decisions, decisions: │ │ │ │ │ • Do we want to use an O-word procedure or do it all in Python code? │ │ │ │ │ @@ -24914,15 +24914,15 @@ │ │ │ │ │ the ”raise tool-change and wait for tool-changed to become high” HAL sequence in iocontrol, │ │ │ │ │ besides setting the XXXX pins │ │ │ │ │ What you need to decide is whether the existing iocontrol HAL sequences are sufficient to drive your │ │ │ │ │ changer. Maybe you need a different interaction sequence - for instance more HAL pins, or maybe a │ │ │ │ │ more complex interaction. Depending on the answer, we might continue to use the existing iocontrol │ │ │ │ │ HAL sequences, or define our own ones. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 521 / 1291 │ │ │ │ │ │ │ │ │ │ For the sake of documentation, we’ll disable these iocontrol sequences, and roll our own - the result │ │ │ │ │ will look and feel like the existing interaction, but now we have complete control over them because │ │ │ │ │ they are executed in our own O-word procedure. │ │ │ │ │ So what we’ll do is use some motion.digital-* and motion.analog-* pins, and the associated M62 │ │ │ │ │ @@ -24973,15 +24973,15 @@ │ │ │ │ │ follows: │ │ │ │ │ REMAP=M6 │ │ │ │ │ │ │ │ │ │ modalgroup=6 │ │ │ │ │ │ │ │ │ │ prolog=change_prolog ngc=change epilog=change_epilog │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 522 / 1291 │ │ │ │ │ │ │ │ │ │ So the prolog covering steps 1 and 2 would look like so - we decide to pass a few variables to the │ │ │ │ │ remap procedure which can be inspected and changed there, or used in a message. Those are: │ │ │ │ │ tool_in_spindle, selected_tool (tool numbers) and their respective tooldata indices current_pocket │ │ │ │ │ and selected_pocket: │ │ │ │ │ @@ -25027,15 +25027,15 @@ │ │ │ │ │ if self.return_value > 0.0: │ │ │ │ │ # commit change │ │ │ │ │ self.selected_pocket = int(self.params[”selected_pocket”]) │ │ │ │ │ emccanon.CHANGE_TOOL(self.selected_pocket) │ │ │ │ │ # cause a sync() │ │ │ │ │ self.tool_change_flag = True │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 523 / 1291 │ │ │ │ │ │ │ │ │ │ self.set_tool_parameters() │ │ │ │ │ return INTERP_OK │ │ │ │ │ else: │ │ │ │ │ return ”M6 aborted (return code %.1f)” % (self.return_value) │ │ │ │ │ @@ -25072,15 +25072,15 @@ │ │ │ │ │ • M6 (change_prolog): #, #, #, # │ │ │ │ │ • M61 (settool_prolog): # , # │ │ │ │ │ • S (setspeed_prolog): # │ │ │ │ │ • F (setfeed_prolog): # │ │ │ │ │ If you have specific needs for extra parameters to be made visible, that can simply be added to the │ │ │ │ │ prolog - practically all of the interpreter internals are visible to Python. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 524 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.5.6 Making minimal changes to the built in codes, including M6 │ │ │ │ │ Remember that normally remapping a code completely disables all internal processing for that code. │ │ │ │ │ However, in some situations it might be sufficient to add a few codes around the existing M6 built in │ │ │ │ │ implementation, like a tool length probe, but other than that retain the behavior of the built in M6. │ │ │ │ │ @@ -25130,15 +25130,15 @@ │ │ │ │ │ cblock = self.blocks[self.remap_level] │ │ │ │ │ if not cblock.t_flag: │ │ │ │ │ return ”T requires a tool number” │ │ │ │ │ tool │ │ │ │ │ │ │ │ │ │ = cblock.t_number │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 525 / 1291 │ │ │ │ │ │ │ │ │ │ if tool: │ │ │ │ │ (status, pocket) = self.find_tool_pocket(tool) │ │ │ │ │ if status != INTERP_OK: │ │ │ │ │ return ”T%d: pocket not found” % (tool) │ │ │ │ │ @@ -25186,15 +25186,15 @@ │ │ │ │ │ remap is aborted. │ │ │ │ │ The way to do this is by using the [RS274NGC]ON_ABORT_COMMAND feature. This INI option specifies a │ │ │ │ │ O-word procedure call which is executed if task for some reason aborts program execution. on_abort │ │ │ │ │ receives a single parameter indicating the cause for calling the abort procedure, which might be used │ │ │ │ │ for conditional cleanup. │ │ │ │ │ The reasons are defined in nml_intf/emc.hh │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 526 / 1291 │ │ │ │ │ │ │ │ │ │ EMC_ABORT_TASK_EXEC_ERROR = 1, │ │ │ │ │ EMC_ABORT_AUX_ESTOP = 2, │ │ │ │ │ EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3, │ │ │ │ │ EMC_ABORT_TASK_STATE_OFF = 4, │ │ │ │ │ @@ -25243,15 +25243,15 @@ │ │ │ │ │ Make sure on_abort.ngc is along the interpreter search path (recommended location: SUBROUTINE_PATH │ │ │ │ │ so as not to clutter your NC_FILES directory with internal procedures). │ │ │ │ │ Statements in that procedure typically would assure that post-abort any state has been cleaned up, │ │ │ │ │ like HAL pins properly reset. For an example, see configs/sim/axis/remap/rack-toolchange. │ │ │ │ │ Note that terminating a remapped code by returning INTERP_ERROR from the epilog (see previous │ │ │ │ │ section) will also cause the on_abort procedure to be called. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 527 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.5.9 Error handling: failing a remapped code NGC procedure │ │ │ │ │ If you determine in your handler procedure that some error condition occurred, do not use M2 to end │ │ │ │ │ your handler - see above: │ │ │ │ │ If displaying an operator error message and stopping the current program is good enough, use the │ │ │ │ │ @@ -25285,15 +25285,15 @@ │ │ │ │ │ change gears appropriately if not. │ │ │ │ │ 9.6.6.2 Adjusting the behavior of M0, M1, M60 │ │ │ │ │ A use case for remapping M0/M1 would be to customize the behavior of the existing code. For instance, it could be desirable to turn off the spindle, mist and flood during an M0 or M1 program │ │ │ │ │ pause, and turn these settings back on when the program is resumed. │ │ │ │ │ For a complete example doing just that, see configs/sim/axis/remap/extend-builtins/, which │ │ │ │ │ adapts M1 as laid out above. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 528 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.7 Creating new G-code cycles │ │ │ │ │ A G-code cycle as used here is meant to behave as follows: │ │ │ │ │ • On first invocation, the associated words are collected and the G-code cycle is executed. │ │ │ │ │ • If subsequent lines just continue parameter words applicable to this code, but no new G-code, the │ │ │ │ │ @@ -25337,15 +25337,15 @@ │ │ │ │ │ [PYTHON] │ │ │ │ │ TOPLEVEL = │ │ │ │ │ Filename of the initial Python script to execute on startup. This script is responsible for │ │ │ │ │ setting up the package name structure, see below. │ │ │ │ │ PATH_PREPEND = │ │ │ │ │ Prepend this directory to PYTHON_PATH. A repeating group. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 529 / 1291 │ │ │ │ │ │ │ │ │ │ PATH_APPEND = │ │ │ │ │ Append this directory to PYTHON_PATH. A repeating group. │ │ │ │ │ LOG_LEVEL = │ │ │ │ │ Log level of plugin-related actions. Increase this if you suspect problems. Can be very │ │ │ │ │ @@ -25385,15 +25385,15 @@ │ │ │ │ │ 9.6.9.2 The Interpreter as seen from Python │ │ │ │ │ │ │ │ │ │ The interpreter is an existing C++ class (Interp) defined in src/emc/rs274ngc. Conceptually all oword. Python calls are methods of this Interp class, although there is no explicit │ │ │ │ │ Python definition of this class (it is a Boost.Python wrapper instance) and hence receive the as the │ │ │ │ │ first parameter self which can be used to access internals. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 530 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.9.3 The Interpreter __init__ and __delete__ functions │ │ │ │ │ If the TOPLEVEL module defines a function __init__, it will be called once the interpreter is fully │ │ │ │ │ configured (INI file read, and state synchronized with the world model). │ │ │ │ │ If the TOPLEVEL module defines a function __delete__, it will be called once before the interpreter is │ │ │ │ │ @@ -25433,15 +25433,15 @@ │ │ │ │ │ – when a comment like ;py, is executed - during execution of a remapped │ │ │ │ │ code: any prolog=, python= and epilog= handlers. │ │ │ │ │ Calling O-word Python subroutines │ │ │ │ │ Arguments: │ │ │ │ │ self │ │ │ │ │ The interpreter instance. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 531 / 1291 │ │ │ │ │ │ │ │ │ │ *args │ │ │ │ │ The list of actual positional parameters. Since the number of actual parameters may vary, it is │ │ │ │ │ best to use this style of declaration: │ │ │ │ │ # this would be defined in the oword module │ │ │ │ │ @@ -25479,15 +25479,15 @@ │ │ │ │ │ print(”%s: %s” % (w, words[w])) │ │ │ │ │ if words[’p’] < 78: # NB: could raise an exception if p were optional │ │ │ │ │ return ”failing miserably” │ │ │ │ │ return INTERP_OK │ │ │ │ │ │ │ │ │ │ Return values: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 532 / 1291 │ │ │ │ │ │ │ │ │ │ INTERP_OK │ │ │ │ │ Return this on success. You need to import this from interpreter. │ │ │ │ │ a message text │ │ │ │ │ Returning a string from a handler means this is an error message, abort the program. Works like │ │ │ │ │ @@ -25524,15 +25524,15 @@ │ │ │ │ │ emccanon.WAIT(0,1,2,5.0) │ │ │ │ │ # cede control after executing the queue buster: │ │ │ │ │ yield INTERP_EXECUTE_FINISH │ │ │ │ │ # post-sync() execution resumes here: │ │ │ │ │ pin_status = emccanon.GET_EXTERNAL_DIGITAL_INPUT(0,0); │ │ │ │ │ print(”pin status=”,pin_status) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Warning │ │ │ │ │ The yield feature is fragile. │ │ │ │ │ TERP_EXECUTE_FINISH: │ │ │ │ │ │ │ │ │ │ 533 / 1291 │ │ │ │ │ │ │ │ │ │ @@ -25576,15 +25576,15 @@ │ │ │ │ │ print(”#2=”, self.params[2]) │ │ │ │ │ try: │ │ │ │ │ print(”result=”, self.params[”result”]) │ │ │ │ │ except Exception,e: │ │ │ │ │ return ”testparam forgot to assign #” │ │ │ │ │ return INTERP_OK │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 534 / 1291 │ │ │ │ │ │ │ │ │ │ o sub │ │ │ │ │ (debug, call_level=#<_call_level> myname=#) │ │ │ │ │ ; try commenting out the next line and run again │ │ │ │ │ # = [# * 3] │ │ │ │ │ @@ -25628,15 +25628,15 @@ │ │ │ │ │ │ │ │ │ │ raise InterpreterException │ │ │ │ │ │ │ │ │ │ except InterpreterException,e: │ │ │ │ │ msg = ”%d: ’%s’ - %s” % (e.line_number,e.line_text, e.error_message) │ │ │ │ │ return msg # replace builtin error message │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 535 / 1291 │ │ │ │ │ │ │ │ │ │ Canon The canon layer is practically all free functions. Example: │ │ │ │ │ import emccanon │ │ │ │ │ def example(self,*args): │ │ │ │ │ .... │ │ │ │ │ @@ -25675,15 +25675,15 @@ │ │ │ │ │ • Import that module from the TOPLEVEL script. │ │ │ │ │ # namedparams.py │ │ │ │ │ # trivial example │ │ │ │ │ def _pi(self): │ │ │ │ │ return 3.1415926535 │ │ │ │ │ # = [2 * # * #<_pi>] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 536 / 1291 │ │ │ │ │ │ │ │ │ │ Functions in namedparams.py are expected to return a float or int value. If a string is returned, this │ │ │ │ │ sets the interpreter error message and aborts execution. │ │ │ │ │ Ònly functions with a leading underscore are added as parameters, since this is the RS274NGC convention for globals. │ │ │ │ │ It is possible to redefine an existing predefined parameter by adding a Python function of the same │ │ │ │ │ @@ -25714,15 +25714,15 @@ │ │ │ │ │ no further action is taken. This can be used for instance to minimally adjust the built in behavior │ │ │ │ │ be preceding or following it with some other statements. │ │ │ │ │ • Otherwise, the # and # parameters are extracted from the subroutine’s parameter │ │ │ │ │ space. This means that the NGC procedure could change these values, and the epilog takes the │ │ │ │ │ changed values in account. │ │ │ │ │ • Then, the Canon command SELECT_TOOL(#) is executed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 537 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.11.2 M6: change_prolog and change_epilog │ │ │ │ │ These wrap a NGC procedure for M6 Tool Change. │ │ │ │ │ Actions of change_prolog │ │ │ │ │ • The following three steps are applicable only if the iocontrol-v2 component is used: │ │ │ │ │ @@ -25752,15 +25752,15 @@ │ │ │ │ │ behavior be preceding or following it with some other statements. │ │ │ │ │ • Otherwise, the # parameter is extracted from the subroutine’s parameter space, │ │ │ │ │ and used to set the interpreter’s current_pocket variable. Again, the procedure could change this │ │ │ │ │ value, and the epilog takes the changed value in account. │ │ │ │ │ • Then, the Canon command CHANGE_TOOL(#) is executed. │ │ │ │ │ • The new tool parameters (offsets, diameter etc) are set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 538 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.11.3 G-code Cycles: cycle_prolog and cycle_epilog │ │ │ │ │ These wrap a NGC procedure so it can act as a cycle, meaning the motion code is retained after │ │ │ │ │ finishing execution. If the next line just contains parameter words (e.g. new X,Y values), the code is │ │ │ │ │ executed again with the new parameter words merged into the set of the parameters given in the first │ │ │ │ │ @@ -25793,15 +25793,15 @@ │ │ │ │ │ – retain the current motion mode so a continuation line without a motion code will execute the same │ │ │ │ │ motion code. │ │ │ │ │ 9.6.11.4 S (Set Speed) : setspeed_prolog and setspeed_epilog │ │ │ │ │ TBD │ │ │ │ │ 9.6.11.5 F (Set Feed) : setfeed_prolog and setfeed_epilog │ │ │ │ │ TBD │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 539 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.11.6 M61 Set tool number : settool_prolog and settool_epilog │ │ │ │ │ TBD │ │ │ │ │ │ │ │ │ │ 9.6.12 Remapped code execution │ │ │ │ │ @@ -25856,15 +25856,15 @@ │ │ │ │ │ user-defined - not interpreted │ │ │ │ │ by LinuxCNC │ │ │ │ │ user-defined - not interpreted │ │ │ │ │ by LinuxCNC │ │ │ │ │ │ │ │ │ │ or these flags into the [EMC]DEBUG variable as needed. For a current list of debug flags see src/emc/nml_intf/debugflags.h. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 540 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.12.5 Debugging Embedded Python code │ │ │ │ │ Debugging of embedded Python code is harder than debugging normal Python scripts, and only a │ │ │ │ │ limited supply of debuggers exists. A working open-source based solution is to use the Eclipse IDE, │ │ │ │ │ and the PydDev Eclipse plug in and its remote debugging feature. │ │ │ │ │ @@ -25884,15 +25884,15 @@ │ │ │ │ │ pydevd.settrace() will block execution if Eclipse and the Pydev debug server have not been │ │ │ │ │ started. │ │ │ │ │ │ │ │ │ │ To cover the last two steps: the o procedure helps to get into the debugger from MDI mode. │ │ │ │ │ See also the call_pydevd function in util.py and its usage in remap.involute to set a breakpoint. │ │ │ │ │ Here’s a screen-shot of Eclipse/PyDevd debugging the involute procedure from above: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 541 / 1291 │ │ │ │ │ │ │ │ │ │ See the Python code in configs/sim/axis/remap/getting-started/python for details. │ │ │ │ │ │ │ │ │ │ 9.6.13 Axis Preview and Remapped code execution │ │ │ │ │ For complete preview of a remapped code’s tool path some precautions need to be taken. To understand what is going on, let’s review the preview and execution process (this covers the AXIS case, but │ │ │ │ │ @@ -25908,15 +25908,15 @@ │ │ │ │ │ Now, what about preview of this procedure? At preview time, of course it is not known whether the │ │ │ │ │ probe succeeds or fails - but you would likely want to see what the maximum depth of the probe is, and │ │ │ │ │ assume it succeeds and continues execution to preview further movements. Also, there is no point in │ │ │ │ │ displaying a probe failed message and aborting during preview. │ │ │ │ │ The way to address this issue is to test in your procedure whether it executes in preview or execution │ │ │ │ │ mode. This can be checked for by testing the #<_task> predefined named parameter - it will be 1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 542 / 1291 │ │ │ │ │ │ │ │ │ │ during actual execution and 0 during preview. See configs/sim/axis/remap/manual-toolchange-withtool-length-switch/nc_subroutines/manual_change.ngc for a complete usage example. │ │ │ │ │ Within Embedded Python, the task instance can be checked for by testing self.task - this will be 1 in │ │ │ │ │ the milltask instance, and 0 in the preview instance(s). │ │ │ │ │ │ │ │ │ │ @@ -25960,15 +25960,15 @@ │ │ │ │ │ G07 │ │ │ │ │ G08 │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ │ │ │ │ │ G05.1 G05.2 G05.3 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 543 / 1291 │ │ │ │ │ │ │ │ │ │ Table 9.6: Table of Allocated G-codes 10-19 │ │ │ │ │ # │ │ │ │ │ 10 │ │ │ │ │ 11 │ │ │ │ │ @@ -26051,15 +26051,15 @@ │ │ │ │ │ G41 │ │ │ │ │ G42 │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ G41.1 │ │ │ │ │ G42.1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 544 / 1291 │ │ │ │ │ │ │ │ │ │ Table 9.9: (continued) │ │ │ │ │ # │ │ │ │ │ 43 │ │ │ │ │ 44 │ │ │ │ │ @@ -26140,15 +26140,15 @@ │ │ │ │ │ G71 │ │ │ │ │ G72 │ │ │ │ │ │ │ │ │ │ Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9 │ │ │ │ │ G71.1 G71.2 │ │ │ │ │ G72.1 G72.2 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 545 / 1291 │ │ │ │ │ │ │ │ │ │ Table 9.12: (continued) │ │ │ │ │ # │ │ │ │ │ 76 │ │ │ │ │ 77 │ │ │ │ │ @@ -26241,15 +26241,15 @@ │ │ │ │ │ │ │ │ │ │ Mx7 │ │ │ │ │ │ │ │ │ │ Mx8 │ │ │ │ │ │ │ │ │ │ Mx9 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 546 / 1291 │ │ │ │ │ │ │ │ │ │ Table 9.15: (continued) │ │ │ │ │ # │ │ │ │ │ 10-19 │ │ │ │ │ 20-29 │ │ │ │ │ @@ -26379,15 +26379,15 @@ │ │ │ │ │ FIXME Write missing information │ │ │ │ │ │ │ │ │ │ 9.6.16 Models of Task execution │ │ │ │ │ FIXME Write missing information │ │ │ │ │ 9.6.16.1 Traditional iocontrol/iocontrolv2 execution │ │ │ │ │ FIXME Write missing information │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 547 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.16.2 Redefining IO procedures │ │ │ │ │ FIXME Write missing information │ │ │ │ │ 9.6.16.3 Execution-time Python procedures │ │ │ │ │ FIXME Write missing information │ │ │ │ │ @@ -26421,15 +26421,15 @@ │ │ │ │ │ 9.6.17.3 Predicting the machine position │ │ │ │ │ To compute canonical machine operations in advance during read ahead, the interpreter must be able │ │ │ │ │ to predict the machine position after each line of G-code, and that is not always possible. │ │ │ │ │ Let’s look at a simple example program which does relative moves (G91), and assume the machine │ │ │ │ │ starts at x=0,y=0,z=0. Relative moves imply that the outcome of the next move relies on the position │ │ │ │ │ of the previous one: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 548 / 1291 │ │ │ │ │ │ │ │ │ │ N10 G91 │ │ │ │ │ N20 G0 X10 Y-5 Z20 │ │ │ │ │ N30 G1 Y20 Z-5 │ │ │ │ │ N40 G0 Z30 │ │ │ │ │ @@ -26470,15 +26470,15 @@ │ │ │ │ │ • This return code signals to task to stop read ahead for now, execute all queued canonical commands built up so far (including the last one, which is the queue buster), and then synchronize │ │ │ │ │ the interpreter state with the world model. Technically, this means updating internal variables to │ │ │ │ │ reflect HAL pin values, reload tool geometries after an M6, and convey results of a probe. │ │ │ │ │ • The interpreter’s synch() method is called by task and does just that - read all the world model │ │ │ │ │ actual values which are relevant for further execution. │ │ │ │ │ • At this point, task goes ahead and calls the interpreter for more read ahead - until either the program ends or another queue-buster is encountered. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 549 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.17.6 Word order and execution order │ │ │ │ │ One or several words may be present on an NGC block if they are compatible (some are mutually │ │ │ │ │ exclusive and must be on different lines). The execution model however prescribes a strict ordering │ │ │ │ │ of execution of codes, regardless of their appearance on the source line (G-code Order of Execution). │ │ │ │ │ @@ -26514,15 +26514,15 @@ │ │ │ │ │ Tool information is held in the emcStatus structure, which is shared by all parties. One of its fields │ │ │ │ │ is the toolTable array, which holds the description as loaded from the tool table file (tool number, │ │ │ │ │ diameter, frontangle, backangle and orientation for lathe, tool offset information). │ │ │ │ │ The authoritative source and only process actually setting tool information in this structure is the │ │ │ │ │ iocontrol process. All others processes just consult this structure. The interpreter holds actually a │ │ │ │ │ local copy of the tool table. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 550 / 1291 │ │ │ │ │ │ │ │ │ │ For the curious, the current emcStatus structure can be accessed by Python statements. The interpreter’s perception of the tool currently loaded for instance is accessed by: │ │ │ │ │ ;py,from interpreter import * │ │ │ │ │ ;py,print(this.tool_table[0]) │ │ │ │ │ │ │ │ │ │ @@ -26559,15 +26559,15 @@ │ │ │ │ │ When the interpreter sees an M6, it: │ │ │ │ │ 1. checks whether a T command has already been executed (test settings->selected_pocket to be │ │ │ │ │ >= 0) and fail with Need tool prepared -Txx- for toolchange message if not. │ │ │ │ │ 2. check for cutter compensation being active, and fail with Cannot change tools with cutter radius │ │ │ │ │ compensation on if so. │ │ │ │ │ 3. stop the spindle except if the ”TOOL_CHANGE_WITH_SPINDLE_ON” INI option is set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 551 / 1291 │ │ │ │ │ │ │ │ │ │ 4. generate a rapid Z up move if if the ”TOOL_CHANGE_QUILL_UP” INI option is set. │ │ │ │ │ 5. if TOOL_CHANGE_AT_G30 was set: │ │ │ │ │ a. move the A, B and C indexers if applicable │ │ │ │ │ b. generate rapid move to the G30 position │ │ │ │ │ @@ -26602,15 +26602,15 @@ │ │ │ │ │ in configs/sim/axis/remap/toolchange/python/toolchange.py. │ │ │ │ │ 9.6.17.13 How M61 (Change tool number) works │ │ │ │ │ M61 requires a non-negative ̀Q ̀parameter (tool number). If zero, this means unload tool, else set │ │ │ │ │ current tool number to Q. │ │ │ │ │ Building the replacement for M61 An example Python redefinition for M61 can be found in the │ │ │ │ │ set_tool_number function in configs/sim/axis/remap/toolchange/python/toolchange.py. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 552 / 1291 │ │ │ │ │ │ │ │ │ │ 9.6.18 Status │ │ │ │ │ 1. The RELOAD_ON_CHANGE feature is fairly broken. Restart after changing a Python file. │ │ │ │ │ 2. M61 (remapped or not) is broken in iocontrol and requires iocontrol-v2 to actually work. │ │ │ │ │ │ │ │ │ │ @@ -26653,15 +26653,15 @@ │ │ │ │ │ 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. │ │ │ │ │ Typically, the move-enable pin is connected to external controls and the apply-offsets pin is connected │ │ │ │ │ to halui.program.is-paused (for offsets only while paused) or set to TRUE (for continuously applied │ │ │ │ │ offsets). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 553 / 1291 │ │ │ │ │ │ │ │ │ │ Applied offsets are automatically returned to zero (respecting limits) when either of the enabling │ │ │ │ │ inputs is deactivated. The zero value tolerance is specified by the epsilon input pin value. │ │ │ │ │ Waypoints are recorded when the moveoff component is enabled. Waypoints are managed with the │ │ │ │ │ waypoint-sample-secs and waypoint-threshold pins. When the backtrack-enable pin is TRUE, the autoreturn path follows the recorded waypoints. When the memory available for waypoints is exhausted, │ │ │ │ │ @@ -26704,15 +26704,15 @@ │ │ │ │ │ • configs/sim/touchy/ngcgui (touchy-ui) │ │ │ │ │ │ │ │ │ │ 9.7.1 Modifying an existing configuration │ │ │ │ │ A system-provided HAL file (LIB:hookup_moveoff.tcl) can be used to adapt an existing configuration to │ │ │ │ │ use the moveoff component. Additional INI file settings support the use of a simple GUI (moveoff_gui) │ │ │ │ │ for controlling offsets. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 554 / 1291 │ │ │ │ │ │ │ │ │ │ When the system HAL file (LIB:hookup_moveoff.tcl) is properly specified in a configuration INI file, it │ │ │ │ │ will: │ │ │ │ │ 1. Disconnect the original joint.N.motor-pos-cmd and joint.N.motor-pos-fb pin connections │ │ │ │ │ 2. Load (loadrt) the moveoff component (using the name mv) with a personality set to accommodate │ │ │ │ │ @@ -26753,15 +26753,15 @@ │ │ │ │ │ EPSILON = │ │ │ │ │ WAYPOINT_SAMPLE_SECS = │ │ │ │ │ WAYPOINT_THRESHOLD = │ │ │ │ │ │ │ │ │ │ The moveoff_gui is used to make additional required connections and provide a popup GUI to: │ │ │ │ │ 1. Provide a control togglebutton to Enable/Disable offsets │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 555 / 1291 │ │ │ │ │ │ │ │ │ │ 2. Provide a control togglebutton to Enable/Disable backtracking │ │ │ │ │ 3. Provide control pushbuttons to Increment/Decrement/Zero each axis offset │ │ │ │ │ 4. Display each axis offset current value │ │ │ │ │ 5. Display current offset status (disabled, active, removing, etc) │ │ │ │ │ @@ -26804,15 +26804,15 @@ │ │ │ │ │ net external_offset_1 mv.offset-in-1 │ │ │ │ │ net external_offset_2 mv.offset-in-2 │ │ │ │ │ net external_backtrack_en mv.backtrack-enable │ │ │ │ │ │ │ │ │ │ These signals (external_enable, external_offset_M, external_backtrack_en) may be managed by subsequent HALFILES (including POSTGUI_HALFILEs) to provide customized control of the component │ │ │ │ │ while using the moveoff_gui display for current offset values and offset status. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 556 / 1291 │ │ │ │ │ │ │ │ │ │ The moveoff_gui is configured with command line options. For details on the operation of moveoff_gui, │ │ │ │ │ see the man page: │ │ │ │ │ $ man moveoff_gui │ │ │ │ │ │ │ │ │ │ @@ -26877,15 +26877,15 @@ │ │ │ │ │ Note: If the moveoff move-enable pin (mv.move-enable) is connected when │ │ │ │ │ moveoff_gui is started, external controls are required and only │ │ │ │ │ displays are provided. │ │ │ │ │ │ │ │ │ │ 9.8 Stand Alone Interpreter │ │ │ │ │ The rs274 stand alone interpreter is available for use via the command line. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 557 / 1291 │ │ │ │ │ │ │ │ │ │ 9.8.1 Usage │ │ │ │ │ Usage: rs274 [-p interp.so] [-t tool.tbl] [-v var-file.var] [-n 0|1|2] │ │ │ │ │ [-b] [-s] [-g] [input file [output file]] │ │ │ │ │ -p: Specify the pluggable interpreter to use │ │ │ │ │ @@ -26923,15 +26923,15 @@ │ │ │ │ │ │ │ │ │ │ 9.9 External Axis Offsets │ │ │ │ │ External axis offsets are supported during teleop (world) jogs and coordinated (G-code) motion. External axis offsets are enabled on a per-axis basis by INI file settings and controlled dynamically by │ │ │ │ │ INI input pins. The INI interface is similar to that used for wheel jogging. This type of interface is │ │ │ │ │ typically implemented with a manual-pulse-generator (mpg) connected to an encoder INI component │ │ │ │ │ that counts pulses. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 558 / 1291 │ │ │ │ │ │ │ │ │ │ 9.9.1 INI File Settings │ │ │ │ │ For each axis letter (L in xyzabcuvw): │ │ │ │ │ [AXIS_L]OFFSET_AV_RATIO = value (controls accel/vel for external offsets) │ │ │ │ │ │ │ │ │ │ @@ -26962,15 +26962,15 @@ │ │ │ │ │ 9.9.2.2 Other Motion HAL Pins │ │ │ │ │ 1. motion.eoffset-active Output(bit): non-zero external offsets applied │ │ │ │ │ 2. motion.eoffset-limited Output(bit): motion inhibited due to soft limit │ │ │ │ │ │ │ │ │ │ 9.9.3 Usage │ │ │ │ │ The axis input HAL pins (enable,scale,counts) are similar to the pins used for wheel jogging. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 559 / 1291 │ │ │ │ │ │ │ │ │ │ 9.9.3.1 Offset Computation │ │ │ │ │ At each servo period, the axis.L.eoffset-counts pin is compared to its value in the prior period. The │ │ │ │ │ increase or decrease (positive or negative delta) of the axis.L.eoffset-counts pin is multiplied by the │ │ │ │ │ current axis.L.eoffset-scale pin value. This product is accumulated in an internal register and exported │ │ │ │ │ @@ -27008,15 +27008,15 @@ │ │ │ │ │ limit will stop motion in the offending axis without a deacceleration interval. Similarly, during │ │ │ │ │ coordinated motion with external offsets enabled, reaching a soft limit will stop motion with no deacceleration phase. For this case, it does not matter if the offsets are zero. │ │ │ │ │ When motion is stopped with no deacceleration phase, system acceleration limits may be violated │ │ │ │ │ and lead to: 1) a following error (and/or a thump) for a servo motor system, 2) a loss of steps for a │ │ │ │ │ stepper motor system. In general, it is recommended that external offsets are applied in a manner to │ │ │ │ │ avoid approaching soft limits. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 560 / 1291 │ │ │ │ │ │ │ │ │ │ 9.9.3.4 Notes │ │ │ │ │ External offsets apply to axis coordinate letters (xyzabcuvw). All joints must be homed before external │ │ │ │ │ axis offsets are honored. │ │ │ │ │ If an axis.L.eoffset-enable HAL pin is reset when its offset is non-zero, the offset is maintained. The │ │ │ │ │ @@ -27051,15 +27051,15 @@ │ │ │ │ │ a terminal: │ │ │ │ │ $ sim_pin axis.z.eoffset-enable axis.z.eoffset-scale axis.z.eoffset-counts │ │ │ │ │ │ │ │ │ │ The use of external offsets is aided by displaying information related to the current offsets: the current eoffset value and the requested eoffset value, the axis pos-cmd, and (for an identity kinematics │ │ │ │ │ machine) the corresponding joint motor pos-cmd and motor-offset. The provided sim configuration │ │ │ │ │ (see below) demonstrates an example PyVCP panel for the AXIS GUI. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 561 / 1291 │ │ │ │ │ │ │ │ │ │ In the absence of a custom display, halshow can be started as an auxiliary application with a custom │ │ │ │ │ watch list. │ │ │ │ │ Example INI file settings to simulate the HAL pin eoffset connections and display eoffset information │ │ │ │ │ for the z axis (for identity kinematics with z==joint2): │ │ │ │ │ @@ -27097,15 +27097,15 @@ │ │ │ │ │ 9.9.6.2 jwp_z.ini │ │ │ │ │ The sim config sim/configs/axis/external_offsets/jwp_z.ini demonstrates a jog-while-pause capability │ │ │ │ │ for a single (Z) coordinate: │ │ │ │ │ Panel LEDs are provided to show important status items. │ │ │ │ │ Controls are provided to set the eoffset scale factor and to increment/decrement/clear the eoffset │ │ │ │ │ counts. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 562 / 1291 │ │ │ │ │ │ │ │ │ │ 9.9.6.3 dynamic_offsets.ini │ │ │ │ │ This sim config sim/configs/axis/external_offsets/dynamic_offsets.ini demonstrates dynamically applied │ │ │ │ │ offsets by connecting a sinusoidal waveform to the z coordinate external offset inputs. │ │ │ │ │ Panel LEDs are provided to show important status items. │ │ │ │ │ @@ -27140,15 +27140,15 @@ │ │ │ │ │ INI file settings enable the (optional) operation of a user-provided tool database program: │ │ │ │ │ [EMCIO] │ │ │ │ │ DB_PROGRAM = db_program [args] │ │ │ │ │ │ │ │ │ │ When included, db_program specifies the path to a user-provided executable program that provides │ │ │ │ │ tooldata. Up to 10 space-separated args may be included and passed to the db_program at startup. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 563 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ INI file settings for [EMCIO]TOOL_TABLE are ignored when a db_program is specified. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ @@ -27182,15 +27182,15 @@ │ │ │ │ │ • ”l” spindle_load (TnM6). The tool data line includes only the T and P items identifying the relevant │ │ │ │ │ tool number and pocket number. │ │ │ │ │ • ”u” spindle_unload (T0M6). The tool data line includes only the T and P items identifying the relevant tool number and pocket number. │ │ │ │ │ Note │ │ │ │ │ When a NON_RANDOM tool changer is specified using [EMCIO]RANDOM_TOOL_CHANGER=0 (the default), the spindle_load command issued for TnM6 (or M61Qn) is: l Tn P0 (pocket 0 is the spindle). │ │ │ │ │ The spindle_unload command issued for T0M6 is u T0 P0. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 564 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ When a RANDOM tool changer is specified using [EMCIO]RANDOM_TOOL_CHANGER=1, a pair of spindle_unload/spindle_load commands are issued at each tool exchange. The pair of commands issued │ │ │ │ │ for TnM6 (or M61Qn) are u Tu Pm followed by l Tn P0, where u is the current tool to be sent to pocket │ │ │ │ │ m and n is the new tool to load in the spindle (pocket 0). By convention, a tool number of 0 is used │ │ │ │ │ @@ -27233,15 +27233,15 @@ │ │ │ │ │ Removal of a tool number should only be done if the tool number is not currently loaded in spindle. │ │ │ │ │ │ │ │ │ │ Exporting the environmental variable DB_SHOW enables LinuxCNC prints (to stdout) that show tool │ │ │ │ │ data retrieved from the db_program at startup and at subsequent reloading of tool data. │ │ │ │ │ Exporting the environmental variable DB_DEBUG enables LinuxCNC prints (to stdout) for additional │ │ │ │ │ debugging information about interface activity. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 565 / 1291 │ │ │ │ │ │ │ │ │ │ 9.10.1.4 Example program │ │ │ │ │ An example db_program (implemented as a Python script) is provided with the simulation examples. │ │ │ │ │ The program demonsrates the required operations to: │ │ │ │ │ 1. acknowledge startup version │ │ │ │ │ @@ -27286,15 +27286,15 @@ │ │ │ │ │ ) │ │ │ │ │ tooldb_loop() │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ Use of tooldb is not required — it is provided as a demonstration of the required interface and as a │ │ │ │ │ convenience for implementing Python-based applications that interface with an external database. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 566 / 1291 │ │ │ │ │ │ │ │ │ │ 9.10.2 Simulation configs │ │ │ │ │ Simulation configs using the AXIS gui: │ │ │ │ │ 1. configs/sim/axis/db_demo/db_ran.ini (random_toolchanger) │ │ │ │ │ 2. configs/sim/axis/db_demo/db_nonran.ini (nonrandom_toolchanger) │ │ │ │ │ @@ -27314,50 +27314,50 @@ │ │ │ │ │ LinuxCNC tooldata updates and the database application updates. │ │ │ │ │ 9.10.2.1 Notes │ │ │ │ │ │ │ │ │ │ When a db_program is used in conjunction with a random tool changer ([EMCIO]RANDOM_TOOLCHANGER │ │ │ │ │ LinuxCNC maintains a file (db_spindle.tbl in the configuration directory) that consists of a single tool │ │ │ │ │ table line identifying the current tool in the spindle. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 567 / 1291 │ │ │ │ │ │ │ │ │ │ Part II │ │ │ │ │ │ │ │ │ │ Usage │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 568 / 1291 │ │ │ │ │ │ │ │ │ │ Chapter 10 │ │ │ │ │ │ │ │ │ │ User Interfaces │ │ │ │ │ 10.1 AXIS GUI │ │ │ │ │ 10.1.1 Introduction │ │ │ │ │ AXIS is a graphical front-end for LinuxCNC which features a live preview and backplot. It is written │ │ │ │ │ in Python and uses Tk and OpenGL to display its user interface. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 569 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.1: The AXIS Window │ │ │ │ │ │ │ │ │ │ 10.1.2 Getting Started │ │ │ │ │ If your configuration is not currently set up to use AXIS, you can change it by editing the .ini file (INI │ │ │ │ │ file). In the section [DISPLAY] change the [DISPLAY] line to read DISPLAY = axis. │ │ │ │ │ The sample configuration sim/axis.ini is already configured to use AXIS as its front-end. │ │ │ │ │ When AXIS starts, a window like the one in the figure Figure 10.1 above opens. │ │ │ │ │ 10.1.2.1 INI settings │ │ │ │ │ For more information on INI file settings that can change how AXIS works see the Display Section │ │ │ │ │ and the Axis Section of the INI Configuration Chapter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 570 / 1291 │ │ │ │ │ │ │ │ │ │ • CYCLE_TIME - Adjust the response rate of the GUI in milliseconds. Typical 100, useable range 50 │ │ │ │ │ - 200 │ │ │ │ │ (will accept time in seconds (.05 -.2) for legacy reasons - milliseconds preferred to match other │ │ │ │ │ screens). │ │ │ │ │ @@ -27391,15 +27391,15 @@ │ │ │ │ │ The AXIS window contains the following elements: │ │ │ │ │ • A display area that shows one of the following: │ │ │ │ │ – A preview of the loaded file (in this case, axis.ngc), as well as the current location of the CNC │ │ │ │ │ machine’s controlled point. Later, this area will display the path the CNC machine has moved │ │ │ │ │ through, called the backplot. │ │ │ │ │ – A large readout showing the current position and all offsets. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 571 / 1291 │ │ │ │ │ │ │ │ │ │ • A menu bar and toolbar that allow you to perform various actions │ │ │ │ │ • Manual Control Tab - which allows you to make the machine move, turn the spindle on or off, and │ │ │ │ │ turn the coolant on or off if included in the INI file. │ │ │ │ │ • MDI Tab - where G-code programs can be entered manually, one line at a time. This also shows the │ │ │ │ │ @@ -27435,15 +27435,15 @@ │ │ │ │ │ • Reload tool table - After editing the tool table you must reload it. │ │ │ │ │ • Ladder editor - If you have loaded ClassicLadder you can edit it from here. See the ClassicLadder │ │ │ │ │ chapter for more information. │ │ │ │ │ • Quit - Terminates the current LinuxCNC session. │ │ │ │ │ • Toggle Emergency Stop F1 - Change the state of the Emergency Stop. │ │ │ │ │ • Toggle Machine Power F2 - Change the state of the Machine Power if the Emergency Stop is not on. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 572 / 1291 │ │ │ │ │ │ │ │ │ │ • Run Program - Run the currently loaded program from the beginning. │ │ │ │ │ • Run From Selected Line - Select the line you want to start from first. Use with caution as this will │ │ │ │ │ move the tool to the expected position before the line first then it will execute the rest of the code. │ │ │ │ │ │ │ │ │ │ @@ -27479,15 +27479,15 @@ │ │ │ │ │ G10 L10 in the G-code chapter. │ │ │ │ │ – Tool touch off to fixture - When performing Touch Off, the value entered is relative to the ninth │ │ │ │ │ (G59.3) coordinate system, with the axis offset (G92) ignored. This is useful when there is a tool │ │ │ │ │ touch-off fixture at a fixed location on the machine, with the ninth (G59.3) coordinate system set │ │ │ │ │ such that the tip of a zero-length tool is at the fixture’s origin when the Relative coordinates are │ │ │ │ │ 0. See G10 L11 in the G-code chapter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 573 / 1291 │ │ │ │ │ │ │ │ │ │ • Top View - The Top View (or Z view) displays the G-code looking along the Z axis from positive to │ │ │ │ │ negative. This view is best for looking at X & Y. │ │ │ │ │ • Rotated Top View - The Rotated Top View (or rotated Z view) also displays the G-code looking along │ │ │ │ │ the Z axis from positive to negative. But sometimes it’s convenient to display the X & Y axes rotated │ │ │ │ │ @@ -27527,15 +27527,15 @@ │ │ │ │ │ • Show Tool - The display of the tool cone/cylinder can be disabled if desired. │ │ │ │ │ • Show Extents - The display of the extents (maximum travel in each axis direction) of the loaded │ │ │ │ │ G-code program can be disabled if desired. │ │ │ │ │ • Show Offsets - The selected fixture offset (G54-G59.3) origin location can be shown as a set of three │ │ │ │ │ orthogonal lines, one each of red, blue, and green. This offset origin (or fixture zero) display can be │ │ │ │ │ disabled if desired. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 574 / 1291 │ │ │ │ │ │ │ │ │ │ • Show Machine Limits - The machine’s maximum travel limits for each axis, as set in the INI file, │ │ │ │ │ are shown as a rectangular box drawn in red dashed lines. This is useful when loading a new Gcode program, or when checking for how much fixture offset would be needed to bring the G-code │ │ │ │ │ program within the travel limits of your machine. It can be shut off if not needed. │ │ │ │ │ • Show Velocity - A display of velocity is sometimes useful to see how close your machine is running │ │ │ │ │ @@ -27585,15 +27585,15 @@ │ │ │ │ │ │ │ │ │ │ Execute next line [T] │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ Pause Execution [P] Resume Execution [S] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ Stop Program Execution [ESC] │ │ │ │ │ │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ @@ -27660,15 +27660,15 @@ │ │ │ │ │ from commanded position due to following error, dead band, encoder resolution, or step size. For │ │ │ │ │ instance, if you command a movement to X 0.0033 on your mill, but one step of your stepper motor or │ │ │ │ │ one encoder count is 0.00125, then the Commanded position might be 0.0033, but the Actual position │ │ │ │ │ will be 0.0025 (2 steps) or 0.00375 (3 steps). │ │ │ │ │ Preview Plot When a file is loaded, a preview of it is shown in the display area. Fast moves (such as │ │ │ │ │ those produced by the G0 command) are shown as cyan lines. Moves at a feed rate (such as those │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 576 / 1291 │ │ │ │ │ │ │ │ │ │ produced by the G1 command) are shown as solid white lines. Dwells (such as those produced by the │ │ │ │ │ G4 command) are shown as small pink X marks. │ │ │ │ │ G0 (Rapid) moves prior to a feed move will not show on the preview plot. Rapid moves after a T │ │ │ │ │ (Tool Change) will not show on the preview until after the first feed move. To turn either of these │ │ │ │ │ @@ -27702,15 +27702,15 @@ │ │ │ │ │ By dragging with shift and the left mouse button pressed, or by dragging with the mouse wheel │ │ │ │ │ pressed, the preview plot will be rotated. When a line is highlighted, the center of rotation is the │ │ │ │ │ center of the line. Otherwise, the center of rotation is the center of the entire program. │ │ │ │ │ By rotating the mouse wheel, or by dragging with the right mouse button pressed, or by dragging │ │ │ │ │ with control and the left mouse button pressed, the preview plot will be zoomed in or out. │ │ │ │ │ By clicking one of the Preset View icons, or by pressing V, several preset views may be selected. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 577 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.3.4 Text Display Area │ │ │ │ │ By left-clicking a line of the program, the line will be highlighted in both the graphical and text displays. │ │ │ │ │ When the program is running, the line currently being executed is highlighted in red. If no line has │ │ │ │ │ been selected by the user, the text display will automatically scroll to show the current line. │ │ │ │ │ @@ -27731,15 +27731,15 @@ │ │ │ │ │ the desired direction of motion. The first four axes can also be moved by the arrow keys (X and Y), │ │ │ │ │ PAGE UP and PAGE DOWN keys (Z), and the [ and ] keys (A). │ │ │ │ │ If Continuous is selected, the motion will continue as long as the button or key is pressed. If another │ │ │ │ │ value is selected, the machine will move exactly the displayed distance each time the button is clicked │ │ │ │ │ or the key is pressed. By default, the available values are 0.1000, 0.0100, 0.0010, 0.0001. │ │ │ │ │ See the DISPLAY Section for more information on setting the increments. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 578 / 1291 │ │ │ │ │ │ │ │ │ │ Homing (Identity Kinematics) The INI file setting [KINS]JOINTS defines the total number of joints │ │ │ │ │ for the system. A joint may be configured with a home switch or for immediate homing. Joints may │ │ │ │ │ specify a home sequence that organizes the order for homing groups of joints. │ │ │ │ │ If all joints are configured for homing and have valid home sequences, the homing button will show │ │ │ │ │ @@ -27765,15 +27765,15 @@ │ │ │ │ │ programs, except that variables may not be referred to. The resulting value is shown as a number. │ │ │ │ │ │ │ │ │ │ Figure 10.4: Touch Off Window │ │ │ │ │ See also the Machine menu options: Touch part and Touch part holder. │ │ │ │ │ Tool Touch Off By pressing the Tool Touch Off button the tool length and offsets of the currently │ │ │ │ │ loaded tool will be changed so that the current tool tip position matches the entered coordinate. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 579 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.5: Tool Touch Off Window │ │ │ │ │ See also the Tool touch off to workpiece and Tool touch off to fixture options in the Machine menu. │ │ │ │ │ Override Limits By pressing Override Limits, the machine will temporarily be allowed to jog off of │ │ │ │ │ a physical limit switch. This check box is only available when a limit switch is tripped. The override │ │ │ │ │ @@ -27787,15 +27787,15 @@ │ │ │ │ │ Pressing the spindle start button sets the S speed to 1. │ │ │ │ │ The Coolant group The two buttons allow the Mist and Flood coolants to be turned on and off. │ │ │ │ │ Depending on your machine configuration, not all the items in this group may appear. │ │ │ │ │ 10.1.3.6 MDI │ │ │ │ │ MDI allows G-code commands to be entered manually. When the machine is not turned on, or when │ │ │ │ │ a program is running, the MDI controls are unavailable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 580 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.6: The MDI tab │ │ │ │ │ • History - This shows MDI commands that have been typed earlier in this session. │ │ │ │ │ • MDI Command - This allows you to enter a G-code command to be executed. Execute the command │ │ │ │ │ by pressing Enter or by clicking Go. │ │ │ │ │ @@ -27809,15 +27809,15 @@ │ │ │ │ │ By moving this slider, the programmed spindle speed can be modified. For instance, if a program │ │ │ │ │ requests S8000 and the slider is set to 80%, then the resulting spindle speed will be 6400. This item │ │ │ │ │ only appears when the HAL pin spindle.0.speed-out is connected. │ │ │ │ │ 10.1.3.9 Jog Speed │ │ │ │ │ By moving this slider, the speed of jogs can be modified. For instance, if the slider is set to 1 in/min, │ │ │ │ │ then a .01 inch jog will complete in about .6 seconds, or 1/100 of a minute. Near the left side (slow │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 581 / 1291 │ │ │ │ │ │ │ │ │ │ jogs) the values are spaced closely together, while near the right side (fast jogs) they are spaced much │ │ │ │ │ further apart, allowing a wide range of jog speeds with fine control when it is most important. │ │ │ │ │ On machines with a rotary axis, a second jog speed slider is shown. This slider sets the jog rate for │ │ │ │ │ the rotary axes (A, B and C). │ │ │ │ │ @@ -27894,15 +27894,15 @@ │ │ │ │ │ Manual │ │ │ │ │ Manual │ │ │ │ │ Manual │ │ │ │ │ Manual │ │ │ │ │ Manual │ │ │ │ │ Manual │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 582 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.1: (continued) │ │ │ │ │ Keystroke │ │ │ │ │ R │ │ │ │ │ P │ │ │ │ │ @@ -27945,15 +27945,15 @@ │ │ │ │ │ Any │ │ │ │ │ Any │ │ │ │ │ │ │ │ │ │ 10.1.5 Show LinuxCNC Status (linuxcnctop) │ │ │ │ │ AXIS includes a program called linuxcnctop which shows some of the details of LinuxCNC’s state. You │ │ │ │ │ can run this program by invoking Machine > Show LinuxCNC Status │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 583 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.7: LinuxCNC Status Window │ │ │ │ │ The name of each item is shown in the left column. The current value is shown in the right column. If │ │ │ │ │ the value has recently changed, it is shown on a red background. │ │ │ │ │ │ │ │ │ │ @@ -27970,15 +27970,15 @@ │ │ │ │ │ (0.0, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ MDI> G1 F5 X1 │ │ │ │ │ MDI> │ │ │ │ │ (0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ MDI> │ │ │ │ │ (1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 584 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.7 axis-remote │ │ │ │ │ AXIS includes a program called axis-remote which can send certain commands to a running AXIS. │ │ │ │ │ The available commands are shown by running axis-remote --help and include checking whether AXIS │ │ │ │ │ is running (--ping), loading a file by name, reloading the currently loaded file (--reload), and making │ │ │ │ │ @@ -28009,50 +28009,50 @@ │ │ │ │ │ • hal allows the creation of non-realtime HAL components written in Python │ │ │ │ │ • _togl provides an OpenGL widget that can be used in Tkinter applications │ │ │ │ │ • minigl provides access to the subset of OpenGL used by AXIS │ │ │ │ │ To use these modules in your own scripts, you must ensure that the directory where they reside │ │ │ │ │ is on Python’s module path. When running an installed version of LinuxCNC, this should happen │ │ │ │ │ automatically. When running in-place, this can be done by using scripts/rip-environment. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 585 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.10 Using AXIS in Lathe Mode │ │ │ │ │ By including the line LATHE = 1 in the [DISPLAY] section of the INI file, AXIS selects lathe mode. The │ │ │ │ │ Y axis is not shown in coordinate readouts, the view is changed to show the Z axis extending to the │ │ │ │ │ right and the X axis extending towards the bottom of the screen, and several controls (such as those │ │ │ │ │ for preset views) are removed. The coordinate readouts for X are replaced with diameter and radius. │ │ │ │ │ │ │ │ │ │ Figure 10.9: AXIS Lathe Mode │ │ │ │ │ Pressing V zooms out to show the entire file, if one is loaded. │ │ │ │ │ When in lathe mode, the shape of the loaded tool (if any) is shown. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 586 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.10: Lathe Tool Shape │ │ │ │ │ To change the display to a back tool lathe you need to have both LATHE = 1 and BACK_TOOL_LATHE │ │ │ │ │ = 1 in the [DISPLAY] section. This will invert the view and put the tool on the back side of the Z axis. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 587 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.11: Lathe Back Tool Shape │ │ │ │ │ │ │ │ │ │ 10.1.11 Using AXIS in Foam Cutting mode │ │ │ │ │ By including the line FOAM = 1 in the [DISPLAY] section of the INI file, AXIS selects foam-cutting │ │ │ │ │ mode. In the program preview, XY motions are displayed in one plane, and UV motions in another. In │ │ │ │ │ the live plot, lines are drawn between corresponding points on the XY plane and the UV plane. The │ │ │ │ │ special comments (XY_Z_POS) and (UV_Z_POS) set the Z coordinates of these planes, which default │ │ │ │ │ to 0 and 1.5 machine units. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 588 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.12: Foam Cutting Mode │ │ │ │ │ │ │ │ │ │ 10.1.12 Advanced Configuration │ │ │ │ │ When AXIS is started it creates the HAL pins for the GUI then it executes the HAL file named in the INI │ │ │ │ │ @@ -28060,15 +28060,15 @@ │ │ │ │ │ + _postgui + .hal eg. lathe_postgui.hal, but can be any legal filename. These commands are executed │ │ │ │ │ after the screen is built, guaranteeing the widget’s HAL pins are available. You can have multiple line │ │ │ │ │ of POSTGUI_HALFILE= in the INI. Each will be run one after the other in the order they │ │ │ │ │ appear. │ │ │ │ │ For more information on the INI file settings that can change the way AXIS works, see the Display │ │ │ │ │ Section of the INI configuration chapter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 589 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.12.1 Program Filters │ │ │ │ │ AXIS has the ability to send loaded files through a filter program. This filter can do any desired task: │ │ │ │ │ Something as simple as making sure the file ends with M2, or something as complicated as generating │ │ │ │ │ G-code from an image. │ │ │ │ │ @@ -28090,15 +28090,15 @@ │ │ │ │ │ In this way, any Python script can be opened, and its output is treated as G-code. One such example │ │ │ │ │ script is available at nc_files/holecircle.py. This script creates G-code for drilling a series of holes │ │ │ │ │ along the circumference of a circle. │ │ │ │ │ │ │ │ │ │ Figure 10.13: Circular Holes │ │ │ │ │ If the environment variable AXIS_PROGRESS_BAR is set, then lines written to stderr of the form │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 590 / 1291 │ │ │ │ │ │ │ │ │ │ FILTER_PROGRESS=%d │ │ │ │ │ │ │ │ │ │ will set the AXIS progress bar to the given percentage. This feature should be used by any filter that │ │ │ │ │ runs for a long time. │ │ │ │ │ @@ -28134,15 +28134,15 @@ │ │ │ │ │ Example of .axisrc file │ │ │ │ │ root_window.bind(””, ”destroy .”) │ │ │ │ │ help2.append((”Control-Q”, ”Quit”)) │ │ │ │ │ │ │ │ │ │ The following stops the ”Do you really want to quit” dialog. │ │ │ │ │ root_window.tk.call(”wm”,”protocol”,”.”,”WM_DELETE_WINDOW”,”destroy .”) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 591 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.12.5 USER_COMMAND_FILE │ │ │ │ │ │ │ │ │ │ A configuration-specific Python file may be specified with an INI file setting [DISPLAY]USER_COMMAND_FIL │ │ │ │ │ Like a ~/.axisrc file, this file is sourced just before the AXIS GUI is displayed. This file is specific to │ │ │ │ │ @@ -28179,15 +28179,15 @@ │ │ │ │ │ G-code file, one can disable the preview on certain parts that are already working OK). │ │ │ │ │ • (AXIS,hide) Stops the preview (must be first) │ │ │ │ │ • (AXIS,show) Resumes the preview (must follow a hide) │ │ │ │ │ • (AXIS,stop) Stops the preview from here to the end of the file. │ │ │ │ │ • (AXIS,notify,the_text) Displays the_text as an info display │ │ │ │ │ This display can be useful in the AXIS preview when (debug,message) comments are not displayed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 592 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.13 Axisui │ │ │ │ │ To improve the interaction of AXIS with physical jog wheels, the axis currently selected in the GUI is │ │ │ │ │ also reported on a pin with a name like axisui.jog.x. One of these pins is TRUE at one time, and the │ │ │ │ │ rest are FALSE. These are meant to control motion’s jog-enable pins. │ │ │ │ │ @@ -28270,15 +28270,15 @@ │ │ │ │ │ 10.1.14 AXIS Customization Hints │ │ │ │ │ AXIS is a fairly large and difficult-to-penetrate code base, this is helpful To keep the code stable but │ │ │ │ │ makes it difficult to customize. │ │ │ │ │ Here we will show code snippets to modify behaviours or visuals of the screen. Keep in mind the │ │ │ │ │ internal code of AXIS can change from time to time. │ │ │ │ │ these snippets are not guaranteed to continue to work - they may need adjustment. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 593 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.14.1 The update function │ │ │ │ │ There is a function in AXIS named user_live_update that is called every time AXIS updates itself. You │ │ │ │ │ can use this to update your own functions. │ │ │ │ │ # continuous update function │ │ │ │ │ @@ -28317,15 +28317,15 @@ │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(50)) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(60)) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(70)) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(80)) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(90)) │ │ │ │ │ root_window.bind(’’,lambda event: set_rapidrate(100)) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(0)) │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(10)) │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(20)) │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(30)) │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(40)) │ │ │ │ │ root_window.bind(’’,lambda event: set_feedrate(50)) │ │ │ │ │ @@ -28364,15 +28364,15 @@ │ │ │ │ │ # connect pins │ │ │ │ │ hal.new_sig(’idle-led’,hal.HAL_BIT) │ │ │ │ │ hal.connect(’halui.program.is-idle’,’idle-led’) │ │ │ │ │ hal.connect(’my_component.idle-led’,’idle-led’) │ │ │ │ │ │ │ │ │ │ 594 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 595 / 1291 │ │ │ │ │ │ │ │ │ │ # set a pin │ │ │ │ │ hal.set_p(’my_component.pause-led’,’1’) │ │ │ │ │ # get a pin 2,8+ branch │ │ │ │ │ value = hal.get_value(’halui.program.is-idle’) │ │ │ │ │ @@ -28413,15 +28413,15 @@ │ │ │ │ │ root_window.tk.call(’button’,’.pane.top.tabs.fmanual.homey’,’-text’,’Home Y’,’-command’,’ ←goto_home Y’,’-height’,’2’) │ │ │ │ │ # place the button │ │ │ │ │ root_window.tk.call(’grid’,’.pane.top.tabs.fmanual.homey’,’-column’,’1’,’-row’,’7’,’- ←columnspan’,’2’,’-padx’,’4’,’-sticky’,’w’) │ │ │ │ │ # any function called from Tcl needs to be added to TclCommands │ │ │ │ │ TclCommands.goto_home = goto_home │ │ │ │ │ commands = TclCommands(root_window) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 596 / 1291 │ │ │ │ │ │ │ │ │ │ 10.1.14.12 Add Button to manual frame │ │ │ │ │ # make a new button and put it in the manual frame │ │ │ │ │ root_window.tk.call(’button’,’.pane.top.tabs.fmanual.mybutton’,’-text’,’My Button’,’- ←command’,’mybutton_clicked’,’-height’,’2’) │ │ │ │ │ root_window.tk.call(’grid’,’.pane.top.tabs.fmanual.mybutton’,’-column’,’1’,’-row’,’6’,’- ←columnspan’,’2’,’-padx’,’4’,’-sticky’,’w’) │ │ │ │ │ @@ -28477,15 +28477,15 @@ │ │ │ │ │ = BooleanVar │ │ │ │ │ = DoubleVar │ │ │ │ │ = IntVar │ │ │ │ │ = IntVar │ │ │ │ │ = IntVar │ │ │ │ │ = IntVar │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 597 / 1291 │ │ │ │ │ │ │ │ │ │ interp_state │ │ │ │ │ = IntVar │ │ │ │ │ ja_rbutton │ │ │ │ │ = StringVar │ │ │ │ │ @@ -28582,15 +28582,15 @@ │ │ │ │ │ # use ’grid’ or ’pack’ depending on how it was originally placed │ │ │ │ │ root_window.tk.call(’grid’,’forget’,’.pane.top.tabs.fmanual.jogf.zerohome.tooltouch’) │ │ │ │ │ │ │ │ │ │ 10.1.14.15 Change a label │ │ │ │ │ # change label of a widget │ │ │ │ │ root_window.tk.call(’setup_widget_accel’,’.pane.top.tabs.fmanual.mist’,’Downdraft’) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 598 / 1291 │ │ │ │ │ │ │ │ │ │ # make sure it appears (only needed in this case if the mist button was hidden) │ │ │ │ │ root_window.tk.call(’grid’,’.pane.top.tabs.fmanual.mist’,’-column’,’1’,’-row’,’5’,’- ←columnspan’,’2’,’-padx’,’4’,’-sticky’,’w’) │ │ │ │ │ │ │ │ │ │ 10.1.14.16 Redirect an existing command │ │ │ │ │ @@ -28620,15 +28620,15 @@ │ │ │ │ │ root_window.tk.call(’.toolbar.program_run’,’configure’,’-image’,’’,’-text’,’RUN’,’-width’, ←buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.program_step’,’configure’,’-image’,’’,’-text’,’STEP’,’-width’ ←,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.program_pause’,’configure’,’-image’,’’,’-text’,’PAUSE’,’- ←width’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.program_stop’,’configure’,’-image’,’’,’-text’,’STOP’,’-width’ ←,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.program_blockdelete’,’configure’,’-image’,’’,’-text’,’Skip /’ ←,’-width’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.program_optpause’,’configure’,’-image’,’’,’-text’,’M1’,’- ←width’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 599 / 1291 │ │ │ │ │ │ │ │ │ │ root_window.tk.call(’.toolbar.view_zoomin’,’configure’,’-image’,’’,’-text’,’Zoom+’,’-width’ ←,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.view_zoomout’,’configure’,’-image’,’’,’-text’,’Zoom-’,’-width ←’,buW,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.view_z’,’configure’,’-image’,’’,’-text’,’Top X’,’-width’,buW, ←’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ root_window.tk.call(’.toolbar.view_z2’,’configure’,’-image’,’’,’-text’,’Top Y’,’-width’,buW ←,’-height’,buH,’-borderwidth’,boW) │ │ │ │ │ @@ -28663,15 +28663,15 @@ │ │ │ │ │ support the joint / axis changes in LinuxCNC it does not work on 2.7 or 2.6 branch! │ │ │ │ │ It has support for integrated virtual keyboard (onboard or matchbox-keyboard), so there is no need │ │ │ │ │ for a hardware keyboard or mouse, but it can also be used with that hardware. GMOCCAPY offers a │ │ │ │ │ separate settings page to configure most settings of the GUI without editing files. │ │ │ │ │ GMOCCAPY can be localized very easy, because the corresponding files are separated from the linuxcnc.po files, so there is no need to translate unneeded stuff. The files are placed in /src/po/gmoccapy. │ │ │ │ │ You could just copy the gmoccapy.pot file to something like it.po and translate that file with gtranslator or poedit. After rebuilding, you’d get the GUI in your preference language. To facilitate the │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 600 / 1291 │ │ │ │ │ │ │ │ │ │ sharing of the translation, GMOCCAPY is available on the Weblate web interface. GMOCCAPY is currently available in English, German, Spanish, Polish, Serbian and Hungarian. Feel free to help me to │ │ │ │ │ introduce more languages, be it locally or via the web. If you need help, don’t hesitate to contact me │ │ │ │ │ on nieson@web.de. │ │ │ │ │ │ │ │ │ │ @@ -28682,15 +28682,15 @@ │ │ │ │ │ other versions, please inform about problems and / or solutions on the LinuxCNC forum or the German │ │ │ │ │ CNC Ecke Forum or LinuxCNC users mailing list. │ │ │ │ │ The minimum screen resolution for GMOCCAPY for the normal layout (without side panels) is 980 x │ │ │ │ │ 750 Pixel, so it should fit to every standard screen. It is recommended to use screens with minimum │ │ │ │ │ resolution of 1024x768. There is also a configuration which fits for 800x600 screens (introduced in │ │ │ │ │ GMOCCAPY 3.4.8). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 601 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.3 How to Get GMOCCAPY │ │ │ │ │ GMOCCAPY 3 is included in the standard distribution of LinuxCNC since release 2.7. So the easiest │ │ │ │ │ way to get GMOCCAPY on your controlling PC is just to download the ISO and install it from the │ │ │ │ │ CD/DVD/USB-stick. This allows you to receive updates with the regular Debian packages. │ │ │ │ │ @@ -28703,15 +28703,15 @@ │ │ │ │ │ edit the settings of the machine. │ │ │ │ │ • -logo : If given, the logo will hide the jog button tab in manual mode, this is only │ │ │ │ │ useful for machines with hardware buttons for jogging and increment selection. │ │ │ │ │ There is really not to much to configure just to run GMOCCAPY, but there are some points you should │ │ │ │ │ take care off if you want to use all the features of the GUI. │ │ │ │ │ You will find a lot of simulation configurations (INI files) included, just to show the basics: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 602 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.ini │ │ │ │ │ • gmoccapy_4_axis.ini │ │ │ │ │ • lathe_configs/gmoccapy_lathe.ini │ │ │ │ │ • lathe_configs/gmoccapy_lathe_imperial.ini │ │ │ │ │ @@ -28745,15 +28745,15 @@ │ │ │ │ │ PROGRAM_PREFIX = ../../nc_files/ │ │ │ │ │ │ │ │ │ │ • DISPLAY = gmoccapy - This tells LinuxCNC to use GMOCCAPY. │ │ │ │ │ • PREFERENCE_FILE_PATH - Gives the location and name of the preferences file to be used. In most │ │ │ │ │ cases this line will not be needed, it is used by GMOCCAPY to store your settings of the GUI, like │ │ │ │ │ themes, DRO units, colors, and keyboard settings, etc., see settings page for more details. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 603 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ If no path or file is given, GMOCCAPY will use as default .pref, if no machine │ │ │ │ │ name is given in your INI File it will use gmoccapy.pref. The file will be stored in your config directory, │ │ │ │ │ so the settings will not be mixed if you use several configs. If you only want to use one file for │ │ │ │ │ @@ -28788,15 +28788,15 @@ │ │ │ │ │ If not set, half of MAX_LINEAR_VELOCITY will be used. If that value is also not given, it will default │ │ │ │ │ to 180. │ │ │ │ │ │ │ │ │ │ • MAX_LINEAR_VELOCITY = 230.0 - Sets the maximal velocity of the machine. │ │ │ │ │ Note │ │ │ │ │ Defaults to 600 if not set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 604 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.4.3 Macro Buttons │ │ │ │ │ You can add macros to GMOCCAPY, similar to Touchy’s way. A macro is nothing else than a NGC file. │ │ │ │ │ You are able to execute complete CNC programs in MDI mode by just pushing one button. To do so, │ │ │ │ │ you first have to specify the search path for macros: │ │ │ │ │ @@ -28837,15 +28837,15 @@ │ │ │ │ │ GMOCCAPY will also accept macros asking for parameters like: │ │ │ │ │ [MACRO] │ │ │ │ │ MACRO = go_to_position X-pos Y-pos Z-pos │ │ │ │ │ │ │ │ │ │ The parameters must be separated by spaces. This example calls a file go_to_position.ngc with the │ │ │ │ │ following content: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 605 / 1291 │ │ │ │ │ │ │ │ │ │ ; Test file ”go to position” │ │ │ │ │ ; will jog the machine to a given position │ │ │ │ │ O sub │ │ │ │ │ G17 │ │ │ │ │ @@ -28865,15 +28865,15 @@ │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ After pushing the execute macro button, you will be asked to enter the values for X-pos Y-pos Z-pos │ │ │ │ │ and the macro will only run if all values have been given. │ │ │ │ │ Note │ │ │ │ │ If you would like to use a macro without any movement, see also the notes in known problems. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 606 / 1291 │ │ │ │ │ │ │ │ │ │ Macro example using the ”go to position”-macro │ │ │ │ │ 10.2.4.4 Embedded Tabs and Panels │ │ │ │ │ You can add embedded programs to GMOCCAPY like you can do in AXIS, Touchy and Gscreen. All is │ │ │ │ │ done by GMOCCAPY automatically if you include a few lines in your INI file in the DISPLAY section. │ │ │ │ │ @@ -28887,15 +28887,15 @@ │ │ │ │ │ EMBED_TAB_LOCATION = ntb_preview │ │ │ │ │ EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade │ │ │ │ │ │ │ │ │ │ All you have to take care of, is that you include for every tab or side panel the mentioned three lines: │ │ │ │ │ • EMBED_TAB_NAME = Represents the name of the tab or side panel, it is up to you what name you │ │ │ │ │ use, but it must be present! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 607 / 1291 │ │ │ │ │ │ │ │ │ │ • EMBED_TAB_LOCATION = The place where your program will be placed in the GUI, see figure │ │ │ │ │ Embedded tab locations. Valid values are: │ │ │ │ │ – ntb_user_tabs (as main tab, covering the complete screen) │ │ │ │ │ – ntb_preview (as tab on the preview side (1)) │ │ │ │ │ @@ -28932,29 +28932,29 @@ │ │ │ │ │ │ │ │ │ │ will add a the panel manual-example.ui, include a custom Python handler, hitcounter.py and make │ │ │ │ │ all connections after realizing the panel according to manual-example.hal. │ │ │ │ │ hide │ │ │ │ │ │ │ │ │ │ will hide the chosen box. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 608 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.14: Embedded tab locations │ │ │ │ │ Note │ │ │ │ │ If you make any HAL connections to your custom glade panel, you need to do that in the HAL file │ │ │ │ │ specified in the EMBED_TAB_COMMAND line, otherwise you may get an error that the HAL pin does │ │ │ │ │ not exist — this is because of race conditions loading the HAL files. Connections to GMOCCAPY HAL │ │ │ │ │ pins need to be made in the postgui HAL file specified in your INI file, because these pins do not exist │ │ │ │ │ prior of realizing the GUI. │ │ │ │ │ │ │ │ │ │ Here are some examples: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ ntb_preview │ │ │ │ │ │ │ │ │ │ 609 / 1291 │ │ │ │ │ │ │ │ │ │ box_right - and GMOCCAPY in MDI mode │ │ │ │ │ │ │ │ │ │ @@ -28977,15 +28977,15 @@ │ │ │ │ │ provide a -response HAL pin. │ │ │ │ │ For more detailed information of the pins see User Created Message HAL Pins. │ │ │ │ │ Example of User Message Configuration │ │ │ │ │ MESSAGE_TEXT = This is a info-message test │ │ │ │ │ MESSAGE_TYPE = status │ │ │ │ │ MESSAGE_PINNAME = statustest │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 610 / 1291 │ │ │ │ │ │ │ │ │ │ MESSAGE_TEXT = This is a yes no dialog test │ │ │ │ │ MESSAGE_TYPE = yesnodialog │ │ │ │ │ MESSAGE_PINNAME = yesnodialog │ │ │ │ │ MESSAGE_TEXT = Text can be small, big, bolditalic, │ │ │ │ │ @@ -29026,15 +29026,15 @@ │ │ │ │ │ self.widgets.rbt_auto.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.tbtn_setup.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.tbtn_user_tabs.set_size_request(*BB_SIZE) │ │ │ │ │ self.widgets.btn_exit.set_size_request(*BB_SIZE) │ │ │ │ │ │ │ │ │ │ The widget names can the looked up in the /usr/share/gmoccapy.glade file │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 611 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.4.8 User CSS File │ │ │ │ │ Similar to the User command file it’s possible to influence the appearance by cascading style sheets │ │ │ │ │ (CSS). If a file ~/.gmoccapy_css exists, its contents are loaded into the stylesheet provider and are │ │ │ │ │ so being applied to the GUI. │ │ │ │ │ @@ -29078,15 +29078,15 @@ │ │ │ │ │ │ │ │ │ │ You can specify where to save the log file: │ │ │ │ │ [DISPLAY] │ │ │ │ │ LOG_FILE = gmoccapy.log │ │ │ │ │ │ │ │ │ │ If LOG_FILE is not set, logging happens to $HOME/.log. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 612 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.5 HAL Pins │ │ │ │ │ GMOCCAPY exports several HAL pins to be able to react to hardware devices. The goal is to get a │ │ │ │ │ GUI that may be operated in a tool shop, completely/mostly without mouse or keyboard. │ │ │ │ │ Note │ │ │ │ │ @@ -29121,15 +29121,15 @@ │ │ │ │ │ For the bottom (horizontal) buttons they are: │ │ │ │ │ • gmoccapy.h-button.button-0 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-1 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-2 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-3 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-4 (bit IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 613 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.h-button.button-5 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-6 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-7 (bit IN) │ │ │ │ │ • gmoccapy.h-button.button-8 (bit IN) │ │ │ │ │ @@ -29230,15 +29230,15 @@ │ │ │ │ │ zero G92 │ │ │ │ │ unhome all │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ set selected │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 614 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.5: Functional assignment of horizontal buttons │ │ │ │ │ (3) │ │ │ │ │ Pin │ │ │ │ │ Tool Mode │ │ │ │ │ @@ -29287,15 +29287,15 @@ │ │ │ │ │ back │ │ │ │ │ │ │ │ │ │ So we have 67 reactions with only 10 HAL pins! │ │ │ │ │ These pins are made available to be able to use the screen without a touch panel, or protect it from │ │ │ │ │ excessive use by placing hardware buttons around the panel. They are available in a sample configuration like shown in the image below. │ │ │ │ │ Sample configuration ”gmoccapy_sim_hardware_button” showing the side buttons │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 615 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.5.2 Velocities and Overrides │ │ │ │ │ All sliders from GMOCCAPY can be connected to hardware encoders or hardware potentiometers. │ │ │ │ │ Note │ │ │ │ │ For GMOCCAPY 3 some HAL pin names have changed when new controls have been implemented. │ │ │ │ │ @@ -29307,15 +29307,15 @@ │ │ │ │ │ • gmoccapy.jog.jog-velocity.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ • gmoccapy.feed.feed-override.counts (s32 IN) - feed override │ │ │ │ │ • gmoccapy.feed.feed-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ • gmoccapy.feed.reset-feed-override (bit IN) - reset the feed override to *0% │ │ │ │ │ • gmoccapy.spindle.spindle-override.counts (s32 IN) - spindle override │ │ │ │ │ • gmoccapy.spindle.spindle-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 616 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.spindle.reset-spindle-override (bit IN) - reset the spindle override to *0% │ │ │ │ │ • gmoccapy.rapid.rapid-override.counts (s32 IN) - Maximal Velocity of the *chine │ │ │ │ │ • gmoccapy.rapid.rapid-override.count-enable (bit IN) - Must be True, to enable counts │ │ │ │ │ To connect potentiometers, use the following pins: │ │ │ │ │ @@ -29345,15 +29345,15 @@ │ │ │ │ │ • gmoccapy.spc_spindle.increase (bit IN) - As long as True the value of the slider will increase │ │ │ │ │ • gmoccapy.spc_spindle.decrease (bit IN) - As long as True the value of the slider will decrease │ │ │ │ │ • gmoccapy.spc_spindle.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec) │ │ │ │ │ • gmoccapy.spc_spindle.value (float OUT) - Value of the widget │ │ │ │ │ • gmoccapy.spc_spindle.scaled-value (float OUT) - Scaled value of the widget .RAPIDS │ │ │ │ │ • gmoccapy.spc_rapid.increase (bit IN) - As long as True the value of the slider will increase │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 617 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.spc_rapid.decrease (bit IN) - As long as True the value of the slider will decrease │ │ │ │ │ • gmoccapy.spc_rapid.scale (float IN) - A value to scale the output value (handy to change units/min │ │ │ │ │ to units/sec) │ │ │ │ │ • gmoccapy.spc_rapid.value (float OUT) - Value of the widget │ │ │ │ │ @@ -29388,15 +29388,15 @@ │ │ │ │ │ For the standard XYZ config following HAL pins will be available: │ │ │ │ │ • gmoccapy.jog.axis.jog-x-plus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-x-minus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-y-plus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-y-minus (bit IN) │ │ │ │ │ • gmoccapy.jog.axis.jog-z-plus (bit IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 618 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.jog.axis.jog-z-minus (bit IN) │ │ │ │ │ If you use a 4 axes configuration, there will be two additional pins: │ │ │ │ │ • gmoccapy.jog.jog--plus (bit IN) │ │ │ │ │ • gmoccapy.jog.jog--minus (bit IN) │ │ │ │ │ @@ -29427,15 +29427,15 @@ │ │ │ │ │ • gmoccapy.jog.jog-inc-3 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-4 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-5 (bit IN) │ │ │ │ │ • gmoccapy.jog.jog-inc-6 (bit IN) │ │ │ │ │ GMOCCAPY offers also a HAL pin to output the selected jog increment: │ │ │ │ │ • gmoccapy.jog.jog-increment (float OUT) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 619 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.5.6 Hardware Unlock Pin │ │ │ │ │ To be able to use a key switch to unlock the settings page, the following pin is exported: │ │ │ │ │ • gmoccapy.unlock-settings (bit IN) - The settings page is unlocked if the pin is high. To use this │ │ │ │ │ pin, you need to activate it on the settings page. │ │ │ │ │ @@ -29469,15 +29469,15 @@ │ │ │ │ │ MESSAGE_TEXT = LUBE FAULT │ │ │ │ │ MESSAGE_TYPE = okdialog │ │ │ │ │ MESSAGE_PINNAME = lube-fault │ │ │ │ │ MESSAGE_TEXT = X SHEAR PIN BROKEN │ │ │ │ │ MESSAGE_TYPE = status │ │ │ │ │ MESSAGE_PINNAME = pin │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 620 / 1291 │ │ │ │ │ │ │ │ │ │ To connect these new pins you need to do this in the postgui HAL file. Here are some example connections which connect the message signals to some place else in the HAL file. │ │ │ │ │ Example Connection of User Messages (HAL file) │ │ │ │ │ net gmoccapy-lube-fault gmoccapy.messages.lube-fault │ │ │ │ │ net gmoccapy-lube-fault-waiting gmoccapy.messages.lube-fault-waiting │ │ │ │ │ @@ -29497,15 +29497,15 @@ │ │ │ │ │ Also loops will cause different values. │ │ │ │ │ 10.2.5.11 Tool Related Pins │ │ │ │ │ Tool Change Pins These pins are provided to use GMOCCAPY’s internal tool change dialog, similar │ │ │ │ │ to the one known from AXIS, but with several modifications. So you will not only get the message │ │ │ │ │ to change to tool number 3, but also the description of that tool like 7.5 mm 3 flute cutter. The │ │ │ │ │ information is taken from the tool table, so it is up to you what to display. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 621 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.15: GMOCCAPY tool change dialog │ │ │ │ │ • gmoccapy.toolchange-number (s32 IN) - The number of the tool to be changed │ │ │ │ │ • gmoccapy.toolchange-change (bit IN) - Indicates that a tool has to be changed │ │ │ │ │ • gmoccapy.toolchange-changed (bit OUT) - Indicates tool has been changed │ │ │ │ │ @@ -29521,15 +29521,15 @@ │ │ │ │ │ │ │ │ │ │ Tool Offset Pins These pins allow you to show the active tool offset values for X and Z in the tool │ │ │ │ │ information frame. You should know that they are only active after G43 has been sent. │ │ │ │ │ │ │ │ │ │ Figure 10.16: Tool information area │ │ │ │ │ • gmoccapy.tooloffset-x (float IN) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 622 / 1291 │ │ │ │ │ │ │ │ │ │ • gmoccapy.tooloffset-z (float IN) │ │ │ │ │ Note │ │ │ │ │ The tooloffset-x line is not needed on a mill, and will not be displayed on a mill with trivial kinematics. │ │ │ │ │ │ │ │ │ │ @@ -29558,15 +29558,15 @@ │ │ │ │ │ 1. Touch off your workpiece in X and Y. │ │ │ │ │ 2. Measure the height of your block from the base where your tool switch is located, to the upper │ │ │ │ │ face of the block (including chuck etc.). │ │ │ │ │ 3. Push the button block height and enter the measured value. │ │ │ │ │ 4. Go to auto mode and start your program. │ │ │ │ │ Here is a small sketch: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 623 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.17: Tool measurement data │ │ │ │ │ With the first given tool change the tool will be measured and the offset will be set automatically to │ │ │ │ │ fit the block height. The advantage of the GMOCCAPY way is, that you do not need a reference tool. │ │ │ │ │ Note │ │ │ │ │ @@ -29582,15 +29582,15 @@ │ │ │ │ │ • gmoccapy.probeheight (float OUT) - The probe switch height │ │ │ │ │ • gmoccapy.searchvel (float OUT) - The velocity to search for the tool probe switch │ │ │ │ │ • gmoccapy.probevel (float OUT) - The velocity to probe tool length │ │ │ │ │ 10.2.6.2 INI File Modifications │ │ │ │ │ Modify your INI file to include the following sections. │ │ │ │ │ The RS274NGC Section │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 624 / 1291 │ │ │ │ │ │ │ │ │ │ [RS274NGC] │ │ │ │ │ # is the sub, with is called when a error during tool change happens, not needed on every │ │ │ │ │ machine configuration │ │ │ │ │ ON_ABORT_COMMAND=O call │ │ │ │ │ @@ -29632,15 +29632,15 @@ │ │ │ │ │ • toplevel.py │ │ │ │ │ • remap.py │ │ │ │ │ • stdglue.py │ │ │ │ │ From /configs/sim/gmoccapy/macros copy │ │ │ │ │ • on_abort.ngc │ │ │ │ │ • change.ngc │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 625 / 1291 │ │ │ │ │ │ │ │ │ │ to the directory specified as SUBROUTINE_PATH, see RS274NGC Section. │ │ │ │ │ Open change.ngc with a editor and uncomment the following lines (49 and 50): │ │ │ │ │ F #<_hal[gmoccapy.probevel]> │ │ │ │ │ G38.2 Z-4 │ │ │ │ │ @@ -29676,15 +29676,15 @@ │ │ │ │ │ │ │ │ │ │ To enter the page you will have to click on │ │ │ │ │ and give an unlock code, which is 123 by │ │ │ │ │ default. If you want to change it at this time you will have to edit the hidden preference file, see the │ │ │ │ │ display section for details. │ │ │ │ │ The page is separated in three main tabs: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 626 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.7.1 Appearance │ │ │ │ │ │ │ │ │ │ Figure 10.18: GMOCCAPY settings page Appearance │ │ │ │ │ On this tab you will find the following options: │ │ │ │ │ @@ -29695,15 +29695,15 @@ │ │ │ │ │ • Start maximized │ │ │ │ │ • Start as window - If you select start as window the spinboxes to set the position and size will get │ │ │ │ │ active. One time set, the GUI will start every time on the place and with the size selected. Nevertheless the user can change the size and position using the mouse, but that will not have any influence │ │ │ │ │ on the settings. │ │ │ │ │ • Window decorated - Allows the title bar to be hidden. (default: title bar visible) │ │ │ │ │ • hide cursor - Does allow to hide the cursor, what is very useful if you use a touch screen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 627 / 1291 │ │ │ │ │ │ │ │ │ │ • hide tooltips - Hides the tool tips. │ │ │ │ │ Keyboard The checkboxes allow the user to select if he wants the on board keyboard to be shown │ │ │ │ │ immediately, when entering the MDI Mode, when entering the offset page, the tooledit widget or when │ │ │ │ │ open a program in the EDIT mode. The keyboard button on the bottom button list will not be affected │ │ │ │ │ @@ -29728,15 +29728,15 @@ │ │ │ │ │ The letters ”de” are for German, you will have to set them according to your locale settings. Just │ │ │ │ │ execute this file before starting LinuxCNC, it can be done also adding a starter to your local folder. │ │ │ │ │ ./config/autostart │ │ │ │ │ │ │ │ │ │ So that the layout is set automatically on starting. │ │ │ │ │ For matchbox-keyboard you will have to make your own layout, for a German layout ask in the forum. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 628 / 1291 │ │ │ │ │ │ │ │ │ │ GMOCCAPY with Onboard keyboard in edit mode │ │ │ │ │ On Touch Off This gives the option whether to show the preview tab or the offset page tab when you │ │ │ │ │ enter the touch off mode by clicking the corresponding bottom button. │ │ │ │ │ • show preview │ │ │ │ │ @@ -29747,15 +29747,15 @@ │ │ │ │ │ • Relative mode = black │ │ │ │ │ • Absolute mode = blue │ │ │ │ │ • Distance to go = yellow │ │ │ │ │ The foreground color of the DRO can be selected with: │ │ │ │ │ • homed color = green │ │ │ │ │ • unhomed color = red │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 629 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ You can change through the DRO modes (absolute, relative, distance to go) by clicking the number │ │ │ │ │ on the DRO! If you click on the left side letter of the DRO a popup window will allow you to set the │ │ │ │ │ value of the axes, making it easier to set the value, as you will not need to go over the touch off │ │ │ │ │ @@ -29793,15 +29793,15 @@ │ │ │ │ │ – left zoom, middle move, right rotate │ │ │ │ │ – left move, middle rotate, right zoom │ │ │ │ │ – left zoom, middle rotate, right move │ │ │ │ │ – left move, middle zoom, right rotate │ │ │ │ │ – left rotate, middle zoom, right move │ │ │ │ │ Default is left move, middle zoom, right rotate. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 630 / 1291 │ │ │ │ │ │ │ │ │ │ The mouse wheel will still zoom the preview in every mode. │ │ │ │ │ Tip │ │ │ │ │ If you select an element in the preview, the selected element will be taken as rotation center point │ │ │ │ │ and in auto mode the corresponding code line will be highlighted. │ │ │ │ │ @@ -29818,15 +29818,15 @@ │ │ │ │ │ messages sounds should be played. By default ”Follow System Theme” is set. │ │ │ │ │ It further allows to change the icon theme. Currently there are three themes available: │ │ │ │ │ • classic │ │ │ │ │ • material │ │ │ │ │ • material light │ │ │ │ │ To create custom icon themes, see section Icon Theme for details. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 631 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.7.2 Hardware │ │ │ │ │ │ │ │ │ │ Hardware MPG Scale For the different HAL pins to connect MPG wheels to, you may select individual │ │ │ │ │ scales to be applied. The main reason for this was my own test to solve this through HAL connections, │ │ │ │ │ @@ -29842,15 +29842,15 @@ │ │ │ │ │ are others that will never allow this. So everybody can select whether to use them or not. │ │ │ │ │ Keyboard shortcuts are disabled by default. │ │ │ │ │ │ │ │ │ │ Warning │ │ │ │ │ It is not recommended to use keyboard jogging, as it represents a serious risk for operator and │ │ │ │ │ machine. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 632 / 1291 │ │ │ │ │ │ │ │ │ │ Please take care if you use a lathe, then the shortcuts will be different, see the Lathe Specific Section. │ │ │ │ │ General │ │ │ │ │ • F1 - Trigger Estop (will work even if keyboard shortcuts are disabled) │ │ │ │ │ • F2 - Toggle machine on/off │ │ │ │ │ @@ -29881,15 +29881,15 @@ │ │ │ │ │ Spindle │ │ │ │ │ • Starting RPM - Sets the rpm to be used if the spindle is started and no S value has been set. │ │ │ │ │ Note │ │ │ │ │ This value will be presetted according to your settings in [DISPLAY] DEFAULT_SPINDLE_SPEED of │ │ │ │ │ your INI file. If you change the settings on the settings page, that value will be default from that │ │ │ │ │ moment, your INI file will not be modified. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 633 / 1291 │ │ │ │ │ │ │ │ │ │ • Spindle bar min and Spindle bar max - Sets the limits of the spindle bar shown in the INFO frame │ │ │ │ │ on the main screen. │ │ │ │ │ Default values are: │ │ │ │ │ MIN = 0 │ │ │ │ │ @@ -29904,15 +29904,15 @@ │ │ │ │ │ please take care that the ”rabbit mode” is activated, otherwise you will not be able to jog faster │ │ │ │ │ than the turtle jog velocity, which is calculated using the turtle jog factor. │ │ │ │ │ • Turtle jog factor - Sets the scale to apply for turtle jog mode (button pressed, showing the turtle). If │ │ │ │ │ you set a factor of 20, the turtle max. jog velocity will be 1/20 of the max. velocity of the machine. │ │ │ │ │ Note │ │ │ │ │ This button can be controlled using the Turtle-Jog HAL Pin. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 634 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.7.3 Advanced Settings │ │ │ │ │ │ │ │ │ │ Tool Measurement Please check Auto Tool Measurement │ │ │ │ │ Note │ │ │ │ │ @@ -29925,15 +29925,15 @@ │ │ │ │ │ – X Pos. - The X position of the tool switch. │ │ │ │ │ – Y Pos. - The Y position of the tool switch. │ │ │ │ │ – Z Pos. - The Z position of the tool switch, we will go as rapid move to this coordinate. │ │ │ │ │ – Max. Probe The distance to search for contact, an error will be launched, if no contact is │ │ │ │ │ given in this range. The distance has to be given in relative coordinates, beginning the move │ │ │ │ │ from Z Pos., so you have to give a negative value to go down! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 635 / 1291 │ │ │ │ │ │ │ │ │ │ – Probe Height - The height of your probe switch, you can measure it. Just touch off the base │ │ │ │ │ where the probe switch is located and set that to zero. Then make a tool change and watch │ │ │ │ │ the tool_offset_z value, that is the height you must enter here. │ │ │ │ │ Probe velocities │ │ │ │ │ @@ -29968,15 +29968,15 @@ │ │ │ │ │ the 11th message will delete the first one, so you will only see the last 10. │ │ │ │ │ • Font - The font and size you want to use to display the messages. │ │ │ │ │ • Use frames - If you activate the checkbox, each message will be displayed in a frame, so it is much │ │ │ │ │ easier to distinguish the messages. But you will need a little bit more space. │ │ │ │ │ • Launch test message-button - It will show a message, so you can see the changes of your settings │ │ │ │ │ without the need to generate an error. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 636 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.8 Icon Theme │ │ │ │ │ Icon themes are used to customize the look and feel of GMOCCAPY’s icons. │ │ │ │ │ GMOCCAPY ships with three different icon themes: │ │ │ │ │ • classic - The classic GMOCCAPY icons. │ │ │ │ │ @@ -30013,15 +30013,15 @@ │ │ │ │ │ png files). A special case is the directory called ”scalable/actions”, this contains scalable icons │ │ │ │ │ not tied to a specific size (e.g. svg files). │ │ │ │ │ By supplying different sized versions of the icons, we can guarantee a nice looking icon if different │ │ │ │ │ sizes and we also have the ability to change the icon according to its size, for example a 64x64 px │ │ │ │ │ sized icon may contain more details than its 16x16 px version. │ │ │ │ │ • For each directory we also have to write a section in the index.theme file: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 637 / 1291 │ │ │ │ │ │ │ │ │ │ [16x16/actions] │ │ │ │ │ Size=16 │ │ │ │ │ Type=Fixed │ │ │ │ │ Context=Actions │ │ │ │ │ @@ -30071,25 +30071,25 @@ │ │ │ │ │ yellow/orange’ish). │ │ │ │ │ Error: this color indicates ”error” (usually something │ │ │ │ │ red’ish). │ │ │ │ │ │ │ │ │ │ Tip │ │ │ │ │ Examples of symbolic icons can be found at linuxcnc/share/gmoccapy/icons/material. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 638 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.9 Lathe Specific Section │ │ │ │ │ If in the INI file LATHE = 1 is given, the GUI will change its appearance to the special needs for a │ │ │ │ │ lathe. Mainly the Y axis will be hidden and the jog buttons will be arranged in a different order. │ │ │ │ │ │ │ │ │ │ Figure 10.19: Normal Lathe │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 639 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.20: Back Tool Lathe │ │ │ │ │ As you see the R DRO has a black background and the D DRO is gray. This will change according │ │ │ │ │ to the active G-code G7 or G8. The active mode is visible by the black background, meaning in the │ │ │ │ │ shown images G8 is active. │ │ │ │ │ @@ -30100,15 +30100,15 @@ │ │ │ │ │ Normal Lathe: │ │ │ │ │ • Arrow_Left or NumPad_Left - Jog Z minus │ │ │ │ │ • Arrow_Right or NumPad_Right - Jog Z plus │ │ │ │ │ • Arrow_up or NumPad_Up - Jog X minus │ │ │ │ │ • Arrow_Down or NumPad_Down - Jog X plus │ │ │ │ │ Back Tool Lathe: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 640 / 1291 │ │ │ │ │ │ │ │ │ │ • Arrow_Left or NumPad_Left - Jog Z minus │ │ │ │ │ • Arrow_Right or NumPad_Right - Jog Z plus │ │ │ │ │ • Arrow_up or NumPad_Up - Jog X plus │ │ │ │ │ • Arrow_Down or NumPad_Down - Jog X minus │ │ │ │ │ @@ -30120,15 +30120,15 @@ │ │ │ │ │ There is a very good WIKI, which is actually growing, maintained by Marius, see Plasma wiki page. │ │ │ │ │ │ │ │ │ │ 10.2.11 Videos on YouTube │ │ │ │ │ Below is a series of videos that show GMOCCAPY in action. Unfortunately, these videos don’t show │ │ │ │ │ the latest version of GMOCCAPY, but the way to use it will still be the same as in the current version. │ │ │ │ │ I will update the videos as soon as possible. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 641 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.11.1 Basic Usage │ │ │ │ │ https://youtu.be/O5B-s3uiI6g │ │ │ │ │ 10.2.11.2 Simulated Jog Wheels │ │ │ │ │ https://youtu.be/ag34SGxt97o │ │ │ │ │ @@ -30147,15 +30147,15 @@ │ │ │ │ │ 10.2.12 Known problems │ │ │ │ │ 10.2.12.1 Strange numbers in the info area │ │ │ │ │ If you get strange numbers in the info area of GMOCCAPY like: │ │ │ │ │ │ │ │ │ │ You have made your config file using an older version of StepConfWizard. It has made a wrong entry in the INI file under the [TRAJ] named MAX_LINEAR_VELOCITY = xxx. Change that entry to │ │ │ │ │ MAX_VELOCITY = xxx. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 642 / 1291 │ │ │ │ │ │ │ │ │ │ 10.2.12.2 Not ending macro │ │ │ │ │ If you use a macro without movement, like this one: │ │ │ │ │ o sub │ │ │ │ │ G92.1 │ │ │ │ │ @@ -30181,15 +30181,15 @@ │ │ │ │ │ Touchy is a user interface for LinuxCNC meant for use on machine control panels, and therefore does │ │ │ │ │ not require keyboard or mouse. │ │ │ │ │ It is meant to be used with a touch screen, and works in combination with a wheel/MPG and a few │ │ │ │ │ buttons and switches. │ │ │ │ │ The Handwheel tab has radio buttons to select between Feed Override, Spindle Override, Maximum │ │ │ │ │ Velocity and Jogging functions for the wheel/MPG input. Radio buttons for axis selection and increment for jogging are also provided. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 643 / 1291 │ │ │ │ │ │ │ │ │ │ 10.3.1 Panel Configuration │ │ │ │ │ 10.3.1.1 HAL connections │ │ │ │ │ Touchy looks in the INI file, under the heading [HAL] for entries of POSTGUI_HALFILE=. │ │ │ │ │ Typically would be touchy_postgui.hal, but can be any legal filename. These commands │ │ │ │ │ @@ -30202,15 +30202,15 @@ │ │ │ │ │ are preferred. │ │ │ │ │ │ │ │ │ │ For more information on HAL files and the net command see the HAL Basics. │ │ │ │ │ Touchy has several output pins that are meant to be connected to the motion controller to control │ │ │ │ │ wheel jogging: │ │ │ │ │ • touchy.jog.wheel.increment, which is to be connected to the axis.N.jog-scale pin of each axis N. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 644 / 1291 │ │ │ │ │ │ │ │ │ │ • touchy.jog.wheel.N, which is to be connected to axis.N.jog-enable for each axis N. │ │ │ │ │ Note │ │ │ │ │ N represents the axis number 0-8. │ │ │ │ │ │ │ │ │ │ @@ -30242,15 +30242,15 @@ │ │ │ │ │ When you start Touchy the first time, check the Preferences tab. If using a touchscreen, choose the │ │ │ │ │ option to hide the pointer for best results. │ │ │ │ │ The Status Window is a fixed height, set by the size of a fixed font. This can be affected by the Gnome │ │ │ │ │ DPI, configured in System / Preferences / Appearance / Fonts / Details. If the bottom of the screen is │ │ │ │ │ cut off, reduce the DPI setting. │ │ │ │ │ All other font sizes can be changed on the Preferences tab. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 645 / 1291 │ │ │ │ │ │ │ │ │ │ 10.3.2.3 Macros │ │ │ │ │ Touchy can invoke O-word macros using the MDI interface. To configure this, in the [TOUCHY] section │ │ │ │ │ of the INI file, add one or more MACRO lines. Each should be of the following format: │ │ │ │ │ MACRO=increment xinc yinc │ │ │ │ │ @@ -30281,39 +30281,39 @@ │ │ │ │ │ from GladeVCP. GladeVCP uses the GTK widget editor GLADE to build virtual control panels (VCP) by │ │ │ │ │ point and click. Gscreen combines this with Python programming to create a GUI screen for running │ │ │ │ │ a CNC machine. │ │ │ │ │ Gscreen is customizable if you want different buttons and status LEDs. Gscreen supports GladeVCP │ │ │ │ │ which is used to add controls and indicators. To customize Gscreen you use the Glade editor. Gscreen │ │ │ │ │ is not restricted to adding a custom panel on the right or a custom tab it is fully editable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 646 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.21: Gscreen Default Screen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Figure 10.22: Gscreen Silverdragon Screen │ │ │ │ │ │ │ │ │ │ 647 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 648 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.23: Gscreen Spartan Screen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 649 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.24: Gscreen Gaxis Screen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 650 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.25: Gscreen Industrial Screen │ │ │ │ │ Gscreen is based on Glade (the editor), PyGTK (the widget toolkit), and GladeVCP (LinuxCNC’s connection to Glade and PyGTK). GladeVCP has some special widgets and actions added just for LinuxCNC │ │ │ │ │ A widget is just the generic name used for the buttons, sliders, labels etc of the PyGTK toolkit. │ │ │ │ │ 10.4.1.1 Glade File │ │ │ │ │ @@ -30321,15 +30321,15 @@ │ │ │ │ │ of the screen. PyGTK uses this file to actually display and react to those widgets. The Glade editor │ │ │ │ │ makes it relatively easy to build and edit this file You must use the Glade 3.38.2 editor that uses the │ │ │ │ │ GTK3 widgets. │ │ │ │ │ 10.4.1.2 PyGTK │ │ │ │ │ PyGTK is the Python binding to GTK. GTK is the toolkit of visual widgets, it is programmed in C. PyGTK │ │ │ │ │ uses Python to bind with GTK. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 651 / 1291 │ │ │ │ │ │ │ │ │ │ 10.4.2 GladeVCP │ │ │ │ │ GladeVCP binds LinuxCNC, HAL, PyGTK and Glade all together. LinuxCNC requires some special widgets so GladeVCP supplies them. Many are just HAL extensions to existing PyGTK widgets. GladeVCP │ │ │ │ │ creates the HAL pins for the special widgets described in the Glade file. GladeVCP also allows one │ │ │ │ │ to add Python commands to interact with the widgets, to make them do things not available in their │ │ │ │ │ @@ -30374,15 +30374,15 @@ │ │ │ │ │ named widgets. This ties the theme file to the Glade file more tightly. Some of the sample screen skins │ │ │ │ │ allow the user to select any of the themes on the system. The sample gscreen is an example. Some │ │ │ │ │ will load the theme that is the same name in the config file. The sample gscreen-gaxis is an example. │ │ │ │ │ This is done by putting the theme folder in the config folder that has the INI and HAL files and naming │ │ │ │ │ it: SCREENNAME_theme (SCREENNAME being the base name of the files eg. gaxis_theme). Inside │ │ │ │ │ this folder is another folder call gtk-2.0, inside that is the theme files. If you add this file, Gscreen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 652 / 1291 │ │ │ │ │ │ │ │ │ │ will default to this theme on start up. gscreen-gaxis has a sample custom theme that looks for certain │ │ │ │ │ named widgets and changes the visual behavior of those specific widgets. The Estop and machine-on │ │ │ │ │ buttons use different colors then the rest of the buttons so that they stand out. This is done in the │ │ │ │ │ handler file by giving them specific names an by adding specific commands in the theme’s gtkrc file. │ │ │ │ │ @@ -30413,15 +30413,15 @@ │ │ │ │ │ about GladeVCP widgets is a prerequisite. If the existing widgets give you the function you want or │ │ │ │ │ need then no Python code needs be added, just save the Glade file in your configuration folder. If you │ │ │ │ │ need something more custom then you must do some Python programming. The name of the parent │ │ │ │ │ window needs to be window1. Gscreen assumes this name. │ │ │ │ │ Remember, if you use a custom screen option YOU are responsible for fixing it (if required) when │ │ │ │ │ updating LinuxCNC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 653 / 1291 │ │ │ │ │ │ │ │ │ │ 10.4.3 Building a simple clean-sheet custom screen │ │ │ │ │ │ │ │ │ │ Lets build a simple usable screen. Build this in the Glade editor (if using a RIP package run it from a │ │ │ │ │ terminal after using . scripts/rip-environment ). │ │ │ │ │ @@ -30434,15 +30434,15 @@ │ │ │ │ │ • The sourceview widget will try to use the whole window so adding it to a scrolled window will cover │ │ │ │ │ this. (This is already done in the example.) │ │ │ │ │ • The buttons will expand as the window is made larger which is ugly so we will set the box they are │ │ │ │ │ in, to not expand (see below). │ │ │ │ │ • The button types to use depend on the VCP_action used -eg vcp_toggle_action usually require toggle │ │ │ │ │ buttons (Follow the example for now). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 654 / 1291 │ │ │ │ │ │ │ │ │ │ • The buttons in this example are regular buttons not HAL buttons. We don’t need the HAL pins. │ │ │ │ │ │ │ │ │ │ In this screen we are using VCP_actions to communicate to LinuxCNC the actions we want. This │ │ │ │ │ allows us standard functions without adding Python code in the handler file. Let’s link the estop │ │ │ │ │ @@ -30450,15 +30450,15 @@ │ │ │ │ │ Related Action and click the button beside it. Now select the toggle estop action. Now the button will │ │ │ │ │ toggle estop on and off when clicked. Under the general tab you can change the text of the button’s │ │ │ │ │ label to describe its function. Do this for all the buttons. │ │ │ │ │ Select the gremlin widget click the common tab and set the requested height to 100 and click the │ │ │ │ │ checkbox beside it. │ │ │ │ │ Click the horizontal box that holds the buttons. Click the packing tab and click expand to No. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 655 / 1291 │ │ │ │ │ │ │ │ │ │ Save it as tester.glade and save it in sim/gscreen/gscreen_custom/ folder. Now launch LinuxCNC and │ │ │ │ │ click to sim/gscreen/gscreen_custom/tester and start it. If all goes well our screen will pop up and the │ │ │ │ │ buttons will do their job. This works because the tester.ini tells gscreen to look for and load tester.glade │ │ │ │ │ and tester_handler.py. The tester_handler.py file is included in that folder and is coded just show the │ │ │ │ │ @@ -30498,15 +30498,15 @@ │ │ │ │ │ manual tool change dialog. Called when the dialog is closed. │ │ │ │ │ • periodic(self): This is called every (default 100) milliseconds. Use it to update your widgets/HAL │ │ │ │ │ pins. You can call Gscreen regular periodic afterwards too, self.gscreen.update_position() or just │ │ │ │ │ add pass to not update anything. Gscreen’s update_position() actually calls many separate functions. If you wish to incorporate some of those widgets then just call those functions directly. │ │ │ │ │ You can also add you own functions to be called in this file. Usually you would add a signal to a widget │ │ │ │ │ to call your function. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 656 / 1291 │ │ │ │ │ │ │ │ │ │ 10.4.4.1 Adding Keybindings Functions │ │ │ │ │ Our tester example would be more useful if it responded to keyboard commands. There is a function │ │ │ │ │ called keybindings() that tries to set this up. While you can override it completely, we didn’t - but it │ │ │ │ │ assumes some things: │ │ │ │ │ @@ -30553,15 +30553,15 @@ │ │ │ │ │ pressed. Then we add the function to the handle file to call a Gscreen builtin function to start halmeter. │ │ │ │ │ 10.4.4.2 Linuxcnc State Status │ │ │ │ │ The module Gstat polls LinuxCNC’s state every 100ms and sends callback messages to user functions │ │ │ │ │ when state changes. You can register messages to act on specific state changes. As an example we │ │ │ │ │ will register to get file-loaded messages when LinuxCNC loads a new file. First we must import the │ │ │ │ │ module and instantiate it: In the import section of the handler file add: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 657 / 1291 │ │ │ │ │ │ │ │ │ │ from hal_glib import GStat │ │ │ │ │ GSTAT = GStat() │ │ │ │ │ │ │ │ │ │ In the handler file under def __init__(self): add: │ │ │ │ │ @@ -30604,15 +30604,15 @@ │ │ │ │ │ 2. Gscreen sets the debug mode and set the optional skin name. │ │ │ │ │ 3. Gscreen checks to see if there are local XML, handler and/or locale files in the configuration │ │ │ │ │ folder. It will use them instead of the default ones (in share/gscreen/skins/) (There can be two │ │ │ │ │ separate screens displayed). │ │ │ │ │ 4. The main screen is loaded and translations set up. If present the second screen will be loaded │ │ │ │ │ and translations set up. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 658 / 1291 │ │ │ │ │ │ │ │ │ │ 5. Optional Audio is initialized if available. │ │ │ │ │ 6. It reads some of the INI file to initialize the units, and the number/type of axes. │ │ │ │ │ 7. Initializes Python’s binding to HAL to build a non-realtime component with the Gscreen name. │ │ │ │ │ 8. GladeVCP’s makepins is called to parse the XML file to build HAL pins for the HAL widgets and │ │ │ │ │ @@ -30649,15 +30649,15 @@ │ │ │ │ │ 29. Gscreen set up messages specified in the INI file. │ │ │ │ │ 30. Gscreen tells HAL the Gscreen HAL component is finished making pins and is ready. If there is │ │ │ │ │ a terminal widget in the screen it will print all the Gscreen pins to it. │ │ │ │ │ 31. Gscreen sets the display cycle time based on the INI file. │ │ │ │ │ 32. Gscreen checks the handler file for timer_interupt(self) function call otherwise use Gscreen’s │ │ │ │ │ default function call. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 659 / 1291 │ │ │ │ │ │ │ │ │ │ 10.4.6 INI Settings │ │ │ │ │ Under the [DISPLAY] heading: │ │ │ │ │ DISPLAY = gscreen -c tester │ │ │ │ │ options: │ │ │ │ │ @@ -30698,15 +30698,15 @@ │ │ │ │ │ # This just shows in the status bar and desktop notify popup. │ │ │ │ │ MESSAGE_BOLDTEXT = NONE │ │ │ │ │ MESSAGE_TEXT = This is a statusbar test │ │ │ │ │ MESSAGE_DETAILS = STATUS DETAILS │ │ │ │ │ MESSAGE_TYPE = status │ │ │ │ │ MESSAGE_PINNAME = statustest │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 660 / 1291 │ │ │ │ │ │ │ │ │ │ # This will pop up a dialog that asks a yes no question │ │ │ │ │ MESSAGE_BOLDTEXT = NONE │ │ │ │ │ MESSAGE_TEXT = This is a yes no dialog test │ │ │ │ │ MESSAGE_DETAILS = Y/N DETAILS │ │ │ │ │ @@ -30750,15 +30750,15 @@ │ │ │ │ │ │ │ │ │ │ The line: │ │ │ │ │ **** GSCREEN INFO: handler file path: [’/home/chris/emc-dev/share/gscreen/skins/industrial/ ←industrial_handler.py’] │ │ │ │ │ │ │ │ │ │ shows where the stock file lives. Copy this file to your config folder. This works the same for the Glade │ │ │ │ │ file. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 661 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5 QtDragon GUI │ │ │ │ │ 10.5.1 Introduction │ │ │ │ │ QtDragon and QtDragon_hd are built with the QtVCP framework. It is the creative vision of forum │ │ │ │ │ personality Persei8. Much of it is based on the excellent work of others in the LinuxCNC community. │ │ │ │ │ @@ -30773,15 +30773,15 @@ │ │ │ │ │ │ │ │ │ │ 10.5.1.1 QtDragon │ │ │ │ │ │ │ │ │ │ Figure 10.26: QtDragon - 3 or 4 axis sample (1440x860) in silver theme │ │ │ │ │ QtDragon is resizable from a resolution of 1280x768 to 1680x1200. It will work in window mode on │ │ │ │ │ any monitor with higher resolution but not on monitors with lower resolution. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 662 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.1.2 QtDragon_hd │ │ │ │ │ │ │ │ │ │ Figure 10.27: QtDragon_hd - 3 or 4 axis sample for larger monitors (1920x1056) in dark theme │ │ │ │ │ QtDragon_hd is a similar design as QtDragon but modified to utilize the extra space of modern larger │ │ │ │ │ @@ -30796,15 +30796,15 @@ │ │ │ │ │ You can only have one of each section (e.g., [HAL]) in the INI file. If you see in these docs multiple │ │ │ │ │ section options, place them all under the one appropriate section name. │ │ │ │ │ │ │ │ │ │ 10.5.2.1 Display │ │ │ │ │ In the section [DISPLAY] change the DISPLAY = assignment to read: │ │ │ │ │ • qtdragon for a small version │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 663 / 1291 │ │ │ │ │ │ │ │ │ │ • qtdradon_hd for the large version. │ │ │ │ │ You can add -v, -d, -i, or -q for (respectably) verbose, debug, info or quiet output to the terminal. │ │ │ │ │ [DISPLAY] │ │ │ │ │ DISPLAY = qtvcp qtdragon │ │ │ │ │ @@ -30841,15 +30841,15 @@ │ │ │ │ │ [DISPLAY] │ │ │ │ │ DEFAULT_SPINDLE_0_SPEED = 500 │ │ │ │ │ SPINDLE_INCREMENT = 200 │ │ │ │ │ MIN_SPINDLE_0_SPEED = 100 │ │ │ │ │ MAX_SPINDLE_0_SPEED = 2500 │ │ │ │ │ MAX_SPINDLE_POWER = 1500 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 664 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.2.6 Jogging increments │ │ │ │ │ Set selectable jogging increments. │ │ │ │ │ These increments can be user changed. │ │ │ │ │ [DISPLAY] │ │ │ │ │ @@ -30896,15 +30896,15 @@ │ │ │ │ │ panel. │ │ │ │ │ If using stackedWidget_mainTab, a button labelled User will appear. │ │ │ │ │ Pressing this button will cycle through displaying all available panels (specified for this location) on │ │ │ │ │ the main tab area. │ │ │ │ │ Sample adding a builtin panel to the utilities tab, i.e., a graphical animated machine using │ │ │ │ │ the vismach library. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 665 / 1291 │ │ │ │ │ │ │ │ │ │ [DISPLAY] │ │ │ │ │ EMBED_TAB_NAME = Vismach demo │ │ │ │ │ EMBED_TAB_COMMAND = qtvcp vismach_mill_xyz │ │ │ │ │ EMBED_TAB_LOCATION = tabWidget_utilities │ │ │ │ │ @@ -30928,15 +30928,15 @@ │ │ │ │ │ ~/linuxcnc/nc_files/examples/probe/basic_probe/macros:~/linuxcnc/nc_files/examples/remap- ←subroutines: \ │ │ │ │ │ ~/linuxcnc/nc_files/examples/ngcgui_lib/remap_lib │ │ │ │ │ │ │ │ │ │ QtVCP’s NGCGUI program also need to know where to open for subroutine selection and pre-selection. │ │ │ │ │ NGCGUI_SUBFILE_PATH must point to an actual path on your system and also a path described in │ │ │ │ │ SUBROUTINE_PATHS. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 666 / 1291 │ │ │ │ │ │ │ │ │ │ [DISPLAY] │ │ │ │ │ # NGCGUI subroutine path. │ │ │ │ │ # Thr path must also be in [RS274NGC] SUBROUTINE_PATH │ │ │ │ │ NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib │ │ │ │ │ @@ -30978,15 +30978,15 @@ │ │ │ │ │ jpg = image-to-gcode │ │ │ │ │ py = python │ │ │ │ │ │ │ │ │ │ 10.5.2.13 Probe/Touchplate/Laser Settings │ │ │ │ │ QtDragon has INI entries for two optional probing tab screens available. Comment/uncomment which │ │ │ │ │ ever you prefer. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 667 / 1291 │ │ │ │ │ │ │ │ │ │ • Versa probe is a QtVCP ported version of a popular GladeVCP probing panel. │ │ │ │ │ • Basic Probe is a QtVCP ported version based on the third party basic probe screen. │ │ │ │ │ Both perform similar probing routines, though Versa probe optionally handles auto tool measurement. │ │ │ │ │ [PROBE] │ │ │ │ │ @@ -31027,15 +31027,15 @@ │ │ │ │ │ RS274NGC_STARTUP_CODE = G17 G20 G40 G43H0 G54 G64P0.0005 G80 G90 G94 G97 M5 M9 │ │ │ │ │ │ │ │ │ │ 10.5.2.16 Macro Buttons │ │ │ │ │ QtDragon has up to ten convenience buttons for calling macro actions. │ │ │ │ │ These could also call OWord routines if desired. │ │ │ │ │ In the sample configurations they are labelled for moving between current user system origin (zero │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 668 / 1291 │ │ │ │ │ │ │ │ │ │ point) and Machine system origin. │ │ │ │ │ User origin is the first MDI command in the INI list, machine origin is the second. │ │ │ │ │ This example shows how to move Z axis up first. The commands are separated by the ;. │ │ │ │ │ The label is set after the comma. The symbols \n adds a line break. │ │ │ │ │ @@ -31075,15 +31075,15 @@ │ │ │ │ │ F1 - Estop on/off │ │ │ │ │ F2 - Machine on/off │ │ │ │ │ F12 - Style Editor │ │ │ │ │ Home - Home All Joint of the Machine │ │ │ │ │ Escape - Abort Movement │ │ │ │ │ Pause - Pause Machine Movement │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 669 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.4 Buttons │ │ │ │ │ Buttons that are checkable will change their text colour when checked. This is controlled by the │ │ │ │ │ stylesheet/theme │ │ │ │ │ │ │ │ │ │ @@ -31132,15 +31132,15 @@ │ │ │ │ │ qtdragon.spindle-fault │ │ │ │ │ qtdragon.spindle-volts │ │ │ │ │ │ │ │ │ │ This bit pin is an output to the spindle control to pause it. │ │ │ │ │ You would connect it to spindle.0.inhibit. │ │ │ │ │ qtdragon.spindle-inhibit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 670 / 1291 │ │ │ │ │ │ │ │ │ │ QtDragon spindle speed display and spindle-at-speed LED require that spindle.0.speed-in be connected to spindle speed feedback. │ │ │ │ │ Encoder or VFD feedback could be used, as long as the feedback is in revolutions per second (RPS). │ │ │ │ │ If no feedback is available you can have the display show the requested speed by connecting pins like │ │ │ │ │ so: │ │ │ │ │ @@ -31196,15 +31196,15 @@ │ │ │ │ │ <= │ │ │ │ │ <= │ │ │ │ │ │ │ │ │ │ iocontrol.0.tool-change │ │ │ │ │ iocontrol.0.tool-changed │ │ │ │ │ iocontrol.0.tool-prep-number │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 671 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.9 Spindle │ │ │ │ │ The screen is intended to interface to a VFD, but will still work without it. │ │ │ │ │ There are a number of VFD drivers included in the LinuxCNC distribution. │ │ │ │ │ It is up to the end user to supply the appropriate driver and HAL file connections according to his own │ │ │ │ │ @@ -31251,15 +31251,15 @@ │ │ │ │ │ QtDragon_hd can be set up to probe and compensate for Z level height changes by utilizing the external program G-code Ripper. │ │ │ │ │ Note │ │ │ │ │ This is only available in the QtDragon_hd version. │ │ │ │ │ │ │ │ │ │ Z level compensation is a bed levelling/distortion correction function typically used in 3D printing │ │ │ │ │ or engraving. It uses a HAL non-realtime component which utilizes the external offsets feature of │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 672 / 1291 │ │ │ │ │ │ │ │ │ │ LinuxCNC. The component has a HAL pin that specifies an interpolation type, which must be one of │ │ │ │ │ cubic, linear or nearest (0, 1, 2 respectively). If none is specified or if an invalid number is specified, │ │ │ │ │ the default is assumed to be cubic. │ │ │ │ │ When Z LEVEL COMP is enabled, the compensation component reads a probe data file, which must │ │ │ │ │ @@ -31276,15 +31276,15 @@ │ │ │ │ │ G-code Ripper offers many functions that we will not go in to here. This is only available in the │ │ │ │ │ QtDragon_hd version. │ │ │ │ │ │ │ │ │ │ • In qtdragon_hd, switch to the file tab and press the load G-code Ripper button. │ │ │ │ │ • Set origin to match the origin of the G-code file to be probed. │ │ │ │ │ • Under G-Code Operations, check Auto Probe. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 673 / 1291 │ │ │ │ │ │ │ │ │ │ • File -> Open G-Code File (The file you will run after compensation) │ │ │ │ │ • If necessary, make adjustments and press Recalculate. │ │ │ │ │ • Press Save G-Code File - Probe Only. │ │ │ │ │ • Save the generated file to the nc_files folder. │ │ │ │ │ @@ -31341,15 +31341,15 @@ │ │ │ │ │ z_level_compensation.z-pos │ │ │ │ │ │ │ │ │ │ => logic-and.in-01 │ │ │ │ │ <= axis.x.pos-cmd │ │ │ │ │ <= axis.y.pos-cmd │ │ │ │ │ <= axis.z.pos-cmd │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ net z_compensation_on │ │ │ │ │ net eoffset-zlevel-count │ │ │ │ │ count │ │ │ │ │ │ │ │ │ │ z_level_compensation.enable-in │ │ │ │ │ z_level_compensation.counts │ │ │ │ │ @@ -31383,15 +31383,15 @@ │ │ │ │ │ 1. how far above the table the probe trigger point is (tool setter height) and │ │ │ │ │ 2. how far above the table the top of the workpiece is. │ │ │ │ │ This operation has to be done every time the tool is changed as the tool length is not saved. │ │ │ │ │ For touching off with a touch probe, whether you use the touchplate operation with thickness set to 0 │ │ │ │ │ or use a probing routine, the height from table to top of workpiece parameter is not taken into account │ │ │ │ │ and can be ignored. It is only for the tool setter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 675 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.12.1 Versa Probe │ │ │ │ │ │ │ │ │ │ Figure 10.29: QtDragon - Versa Probe Option │ │ │ │ │ Versa probe is used to semi-automatically probe work pieces to find edges, centers and angles. │ │ │ │ │ @@ -31409,15 +31409,15 @@ │ │ │ │ │ • SEARCH:: This is the feed rate at which the probe searches for the target workpiece in machine │ │ │ │ │ units per minute. The search speed should be slow enough to give an acceptable initial accuracy, │ │ │ │ │ but fast enough to not waste time waiting for movement. Recommendation: 200-500 mm/min. │ │ │ │ │ • PROBE:: Once initial contact has been made and the probe is retracted, it will wait for 0.5 seconds │ │ │ │ │ before performing the search again at a lower speed, the probe velocity. This lower speed ensures │ │ │ │ │ the machine can stop movement as quickly as possible on contact with the workpiece. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 676 / 1291 │ │ │ │ │ │ │ │ │ │ • RAPID:: Axis movements not associated with searching are done at the speed defined by RAPID in │ │ │ │ │ machine units per minute. │ │ │ │ │ • SIDE/EDGE LENGTH:: This is the distance the probe will move at the rapid rate to the position │ │ │ │ │ where it will begin a search. If measuring a corner, it will move EDGE LENGTH units away from │ │ │ │ │ @@ -31437,15 +31437,15 @@ │ │ │ │ │ CLEARANCE to 0. │ │ │ │ │ There are three toggle buttons: │ │ │ │ │ • Auto Zero This selects if after probing the relevant axis is set to zero in the current user system. │ │ │ │ │ • Auto Skew This selects if after probing, the system will be rotated or just display the calculated │ │ │ │ │ rotation. │ │ │ │ │ • Tool Measure This (if integrated) turns auto tool probing on and off. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 677 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.12.2 Basic probe │ │ │ │ │ │ │ │ │ │ Figure 10.30: QtDragon - Basic Probe Option │ │ │ │ │ Basic probe is used to semi-automatically probe work pieces to find edges, centers and angles. The │ │ │ │ │ @@ -31458,15 +31458,15 @@ │ │ │ │ │ • Calibration │ │ │ │ │ You must carefully set the Probing Parameters: │ │ │ │ │ • Probe Tool: will only allow probing if this tool number is in the spindle │ │ │ │ │ • Probe Diameter: the size of the probe tip │ │ │ │ │ • Probe Rapid: the speed of rapid moves in machine units │ │ │ │ │ • Probe Search: the speed of the first rough search in machine units │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 678 / 1291 │ │ │ │ │ │ │ │ │ │ • Probe Feed: the speed of the second fine search in machine units │ │ │ │ │ • Step Off : back off and re-probe distance │ │ │ │ │ • Max XY Distance: the maximum distance the probe will search for in X and Y before failing with │ │ │ │ │ error │ │ │ │ │ @@ -31497,15 +31497,15 @@ │ │ │ │ │ • EDGE WIDTH - distance along edge wall (away from corner) to start probing. │ │ │ │ │ Note │ │ │ │ │ These distance are always to be set in machine units (mm for metric machine, inch for imperial │ │ │ │ │ machine). │ │ │ │ │ │ │ │ │ │ Preset: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 679 / 1291 │ │ │ │ │ │ │ │ │ │ • manual set probe at the intersection of the edges (ie corner) of material as described by the green │ │ │ │ │ bullseye on the button. Set it Z CLEARANCE above the top of material. These can be done by eye. │ │ │ │ │ • set EXTRA CLEARANCE to a value that you want the probe to go below the top of material. (So the │ │ │ │ │ probe will move from its start position down Z Clearance + Extra Clearance distance.) │ │ │ │ │ @@ -31521,15 +31521,15 @@ │ │ │ │ │ 3. probe wall twice (rough and fine), │ │ │ │ │ 4. move diagonally to the other wall as set by EDGE WIDTH and XY CLEARANCE, │ │ │ │ │ 5. probe wall twice, │ │ │ │ │ 6. raise probe up by Z CLEARANCE + EXTRA DEPTH (returns to starting height), │ │ │ │ │ 7. rapid back to starting corner (now calculated using the probed walls), │ │ │ │ │ 8. if auto zero button is enabled, set X and Y of the current user system to zero. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 680 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.13 Touch plate │ │ │ │ │ │ │ │ │ │ Figure 10.31: QtDragon - Touch Plate │ │ │ │ │ You can use a conductive touch plate or equivalent to auto touch off (zero the user coordinate) for the │ │ │ │ │ @@ -31548,15 +31548,15 @@ │ │ │ │ │ calculation from the touchplate height setting. │ │ │ │ │ │ │ │ │ │ 10.5.14 Auto Tool Measurement │ │ │ │ │ QtDragon can be setup to do integrated auto tool measurement using the Versa Probe widget and │ │ │ │ │ remap code. To use this feature, you will need to do some additional settings and you may want to │ │ │ │ │ use the offered HAL pin to get values in your own ngc remap procedure. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 681 / 1291 │ │ │ │ │ │ │ │ │ │ Important │ │ │ │ │ Before starting the first test, do not forget to enter the probe height and probe velocities on │ │ │ │ │ the versa probe settings page. │ │ │ │ │ │ │ │ │ │ @@ -31571,15 +31571,15 @@ │ │ │ │ │ When fist setting up auto tool measurement, please use caution until you confirm tool change and │ │ │ │ │ probe locations - it is easy to break a tool/probe. Abort will be honoured while the probe is in motion. │ │ │ │ │ │ │ │ │ │ Figure 10.32: Auto tool measurement │ │ │ │ │ With the first given tool change the tool will be measured and the offset will be set automatically to │ │ │ │ │ fit the block height. The advantage of this way is, that you do not need a reference tool. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 682 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ Your program must contain a tool change at the beginning. The tool will be measured, even it has │ │ │ │ │ been used before, so there is no danger if the block height has changed. There are several videos │ │ │ │ │ on you tube that demonstrate the technique using GMOCCAPY. The GMOCCAPY screen pioneered the │ │ │ │ │ @@ -31594,15 +31594,15 @@ │ │ │ │ │ • Probe down in Z to maximum defined in the INI’s [VERSA_TOOLSETTER] MAXPROBE │ │ │ │ │ • Return Z to position defined in the INI’s [TOOL_CHANGE] Z │ │ │ │ │ Note │ │ │ │ │ The [TOOL_CHANGE] Z position should be high enough so the tool will not hit the tool probe when │ │ │ │ │ moving to the [VERSA_TOOLSETTER] X and Y position. MAXPROBE distance needs to be high enough │ │ │ │ │ for the tool to touch the probe. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 683 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.14.1 Work Piece Height Probing │ │ │ │ │ │ │ │ │ │ Figure 10.33: QtDragon_hd - Work piece Height probing │ │ │ │ │ This program probes 2 user specified locations in the Z axis and calculates the difference in heights. │ │ │ │ │ @@ -31615,15 +31615,15 @@ │ │ │ │ │ displayed on the DROs. │ │ │ │ │ Autofill Workpiece Height on Main Screen │ │ │ │ │ • When checked, the calculated height is automatically transferred to the Workpiece Height field in │ │ │ │ │ the main screen. │ │ │ │ │ • Otherwise, the main screen is not affected. │ │ │ │ │ Workpiece Probe At │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 684 / 1291 │ │ │ │ │ │ │ │ │ │ • the X, Y and Z coordinates specify where the first probing routine should start, in current WCS │ │ │ │ │ Machine Probe At │ │ │ │ │ • the X, Y and Z coordinates specify where the second probing routine should start, in current WCS │ │ │ │ │ Z Safe Travel Height │ │ │ │ │ @@ -31657,15 +31657,15 @@ │ │ │ │ │ Reflects screen entry. │ │ │ │ │ • qtversaprobe.probeheight (HAL_FLOAT) the toolsetter probe switch height. Reflects screen entry. │ │ │ │ │ • qtversaprobe.searchvel (HAL_FLOAT) the velocity to search for the tool probe switch │ │ │ │ │ • qtversaprobe.probevel (HAL_FLOAT) the velocity to probe tool length. Reflects screen entry. │ │ │ │ │ • qtversaprobe.backoffdist (HAL_FLOAT) the distance the probe backs off after triggering. Reflects │ │ │ │ │ screen entry. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 685 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.14.3 Tool Measurement INI File Modifications │ │ │ │ │ Modify your INI file to include the following: │ │ │ │ │ QtDragon allows you to select one of two styles of touch probe routines. Versa probe works with a M6 │ │ │ │ │ remap to add auto tool probing. │ │ │ │ │ @@ -31705,15 +31705,15 @@ │ │ │ │ │ • wait for manual tool change acknowledgement │ │ │ │ │ • go to VERSA_TOOLSETTER XY position │ │ │ │ │ • go to VERSA_TOOLSETTER Z position │ │ │ │ │ • fast probe │ │ │ │ │ • slow probe │ │ │ │ │ • go to TOOLCHANGE Z position │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 686 / 1291 │ │ │ │ │ │ │ │ │ │ Z_MAX_CLEAR is the Z position to go to before moving to the tool setter when using the Travel to │ │ │ │ │ Toolsetter button. │ │ │ │ │ Travel to Toolsetter Action sequence: │ │ │ │ │ │ │ │ │ │ @@ -31757,15 +31757,15 @@ │ │ │ │ │ mode. A dialog will be shown allowing the spindle direction and speed to be preset. The start line is │ │ │ │ │ indicated in the box labelled LINE, next to the CYCLE START button. The run from line feature can │ │ │ │ │ be disabled in the settings page. │ │ │ │ │ Note │ │ │ │ │ LinuxCNC’s run-from-line is not very user friendly. E.g., it does not start the spindle or confirm the │ │ │ │ │ proper tool. Also, it does not handle subroutines well. If used it is best to start on a rapid move. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 687 / 1291 │ │ │ │ │ │ │ │ │ │ 10.5.16 Laser buttons │ │ │ │ │ The LASER ON/OFF button in intended to turn an output on or off which is connected to a small laser │ │ │ │ │ crosshair projector. When the crosshair is positioned over a desired reference point on the workpiece, │ │ │ │ │ the REF LASER button can be pushed, which then sets the X and Y offsets to the values indicated by │ │ │ │ │ @@ -31797,15 +31797,15 @@ │ │ │ │ │ You can monitor/modify tool offsets from this tab. Adding and deleting tools from the tool file can also │ │ │ │ │ be done from this tab. When this tab is selected the individual home buttons in the DRO area will │ │ │ │ │ change to tool offset setting buttons. They will return to home buttons when you select another tab. │ │ │ │ │ Pressing this tool button will drop down a when menu of options: │ │ │ │ │ • Set Current Tool Position │ │ │ │ │ • Adjust Current Tool Position │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 688 / 1291 │ │ │ │ │ │ │ │ │ │ • Zero Current Tool Position │ │ │ │ │ • Set Tool Offset Directly │ │ │ │ │ • Reset To Last │ │ │ │ │ 10.5.17.5 Status Tab │ │ │ │ │ @@ -31837,15 +31837,15 @@ │ │ │ │ │ Some program, such as Fusion 360 and Aspire will create these files for you. You can also write your │ │ │ │ │ own HTML docs with the included SetUp Writer button. │ │ │ │ │ There are three sub tabs: │ │ │ │ │ • HTML - any loaded HTML pages are displayed here. The navigation buttons work on this page. │ │ │ │ │ • PDF - any loaded PDF setup pages are displayed here. │ │ │ │ │ • PROPERTIES - when a program is loaded its G-code properties are displayed here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 689 / 1291 │ │ │ │ │ │ │ │ │ │ There are navigation buttons for HTML page: │ │ │ │ │ • The up arrow returns you to the default HTML page. │ │ │ │ │ • The left arrow moves backward one HTML page. │ │ │ │ │ • The right arrow moves forward one HTML page. │ │ │ │ │ @@ -31860,15 +31860,15 @@ │ │ │ │ │ The settings tab is used to set running options, probing/touchplate/laser/camera offsets and load debugging external programs. │ │ │ │ │ 10.5.17.11 Utilities Tab │ │ │ │ │ This tabs will display another stab election of G-code utility programs: │ │ │ │ │ • Facing: allows quick face milling of a definable area at angles of 0,45 and 90 degrees. │ │ │ │ │ • Hole Circle: allows quick setting of a program to drill a bolt circle of definable diameter and number │ │ │ │ │ of holes. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 690 / 1291 │ │ │ │ │ │ │ │ │ │ • NGCGUI: is a QtVCP version of the popular G-code subroutine builder/selector, see Widgets-NGCGUI. │ │ │ │ │ │ │ │ │ │ Custom QtVCP panels can be displayed here by setting the EMBED_TAB_LOCATION option to tabWidget_uti │ │ │ │ │ 10.5.17.12 User Tab │ │ │ │ │ @@ -31896,15 +31896,15 @@ │ │ │ │ │ DROLabel, │ │ │ │ │ StatusLabel#status_rpm { │ │ │ │ │ border: 1px solid black; │ │ │ │ │ border-radius: 4px; │ │ │ │ │ font: 20pt ”Noto Mono”; │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ To change the DRO display font and display format: │ │ │ │ │ DROLabel { │ │ │ │ │ font: 25pt ”Lato Heavy”; │ │ │ │ │ qproperty-imperial_template: ’%9.5f’; │ │ │ │ │ qproperty-metric_template: ’%10.4f’; │ │ │ │ │ qproperty-angular_template: ’%11.2f’; │ │ │ │ │ @@ -31956,15 +31956,15 @@ │ │ │ │ │ qproperty-styleFont5: ”Times,15,-1,5,90,0,0,1,1,0”; │ │ │ │ │ qproperty-styleFont6: ”Times,15,-1,5,90,0,0,1,1,0”; │ │ │ │ │ qproperty-styleFont7: ”Times,15,-1,5,90,0,0,1,1,0”; │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ 691 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 692 / 1291 │ │ │ │ │ │ │ │ │ │ To have the manual spindle buttons also incrementally increase/decrease speed: │ │ │ │ │ #action_spindle_fwd{ │ │ │ │ │ qproperty-spindle_up_action: true; │ │ │ │ │ } │ │ │ │ │ @@ -31983,15 +31983,15 @@ │ │ │ │ │ [DISPLAY] │ │ │ │ │ USER_COMMAND_FILE = CONFIGFOLDER/qtdragonrc.py │ │ │ │ │ │ │ │ │ │ See Modifying Screens for more information about customization. │ │ │ │ │ │ │ │ │ │ Figure 10.36: QtDragon - Customized QtDragon │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 693 / 1291 │ │ │ │ │ │ │ │ │ │ 10.6 NGCGUI │ │ │ │ │ │ │ │ │ │ Figure 10.37: NGCGUI embedded into AXIS │ │ │ │ │ │ │ │ │ │ @@ -32001,15 +32001,15 @@ │ │ │ │ │ • NGCGUI can run as a standalone application or can be embedded in multiple tab pages in the AXIS │ │ │ │ │ GUI. │ │ │ │ │ • PyNGCGUI is an alternate, Python implementation of NGCGUI. │ │ │ │ │ • PyNGCGUI can run as a standalone application or can be embedded as a tab page (with its own set │ │ │ │ │ of multiple subroutine tabs) in any GUI that supports embedding of GladeVCP applications AXIS, │ │ │ │ │ Touchy, Gscreen and GMOCCAPY. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 694 / 1291 │ │ │ │ │ │ │ │ │ │ Using NGCGUI or PyNGCGUI: │ │ │ │ │ • Tab pages are provided for each subroutine specified in the INI file. │ │ │ │ │ • New subroutines tab pages can be added on the fly using the custom tab. │ │ │ │ │ • Each subroutine tab page provides entry boxes for all subroutine parameters. │ │ │ │ │ @@ -32041,15 +32041,15 @@ │ │ │ │ │ (.ngc) files and G-code-meta-compiler (.gcmc) files: │ │ │ │ │ • nc_files/ngcgui_lib │ │ │ │ │ – ngcgui.ngc - An easy to understand example using subroutines │ │ │ │ │ – arc1.ngc - basic arc using cutter radius compensation │ │ │ │ │ – arc2.ngc - arc speced by center, offset, width, angle (calls arc1) │ │ │ │ │ – backlash.ngc - routine to measure an axis backlash with dial indicator │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 695 / 1291 │ │ │ │ │ │ │ │ │ │ – db25.ngc - creates a DB25 plug cutout │ │ │ │ │ – gosper.ngc - a recursion demo (flowsnake) │ │ │ │ │ – helix.ngc - helix or D-hole cutting │ │ │ │ │ – helix_rtheta.ngc - helix or D-hole positioned by radius and angle │ │ │ │ │ @@ -32089,15 +32089,15 @@ │ │ │ │ │ the Run │ │ │ │ │ different tab pages. │ │ │ │ │ To create several subroutines concatenated into a single file, go to each tab fill in the blanks, press │ │ │ │ │ Create Feature then using the arrow keys move any tabs needed to put them in order. Now press │ │ │ │ │ Finalize and answer the prompt to create │ │ │ │ │ Other GUIs will have similar functionality but the buttons and names may be different. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 696 / 1291 │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ The demonstration configs create tab pages for just a few of the provided examples. Any GUI with a │ │ │ │ │ custom tab can open any of the library example subroutines or any user file if it is in the LinuxCNC │ │ │ │ │ subroutine path. │ │ │ │ │ @@ -32134,15 +32134,15 @@ │ │ │ │ │ And then create or copy system-provided files to these user-writable directories. For instance, a user │ │ │ │ │ might create a NGCGUI-compatible subfile named: │ │ │ │ │ /home/myusername/mysubs/example.ngc │ │ │ │ │ │ │ │ │ │ To use files in new directories, the INI file must be edited to include the new subfiles and to augment │ │ │ │ │ the search path(s). For this example: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 697 / 1291 │ │ │ │ │ │ │ │ │ │ [RS274NGC] │ │ │ │ │ ... │ │ │ │ │ SUBROUTINE_PATH = /home/myusername/mysubs:../../nc_files/ngcgui_lib:../../nc_files/gcmc_lib ←:../../nc_files/ngcgui_lib/utilitysubs │ │ │ │ │ USER_M_PATH │ │ │ │ │ @@ -32195,15 +32195,15 @@ │ │ │ │ │ │ │ │ │ │ 10.6.4.2 Standalone PyNGCGUI │ │ │ │ │ For usage, type in a terminal: │ │ │ │ │ pyngcgui --help │ │ │ │ │ Usage: │ │ │ │ │ pyngcgui [Options] [] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 698 / 1291 │ │ │ │ │ │ │ │ │ │ Options requiring values: │ │ │ │ │ [-d | --demo] [0|1|2] (0: DEMO standalone toplevel) │ │ │ │ │ (1: DEMO embed new notebook) │ │ │ │ │ (2: DEMO embed within existing notebook) │ │ │ │ │ @@ -32255,15 +32255,15 @@ │ │ │ │ │ • NGCGUI_SUBFILE = simp.ngc - Creates a tab from the named subroutine. │ │ │ │ │ • NGCGUI_SUBFILE = ”” - Creates a custom tab │ │ │ │ │ • #NGCGUI_OPTIONS = opt1 opt2 … - NGCGUI options: │ │ │ │ │ – nonew — Prohibits creation of new custom tab │ │ │ │ │ – noremove — Prohibits deleting a tab page │ │ │ │ │ – noauto — Do not run automatically (makeFile, then manual run) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 699 / 1291 │ │ │ │ │ │ │ │ │ │ – noiframe — No internal image, image on separate top level │ │ │ │ │ • TTT = truetype-tracer - name of the truetype tracer program (it must be in user PATH) │ │ │ │ │ • TTT_PREAMBLE = in_std.ngc - Optional, specifies filename for preamble used for ttt created subfiles. (alternate: mm_std.ngc) │ │ │ │ │ Note │ │ │ │ │ @@ -32294,15 +32294,15 @@ │ │ │ │ │ concatenating several common subroutine invocations, this preamble is only added once. For mmbased machines, use mm_std.ngc │ │ │ │ │ • NGCGUI_SUBFILE = filename1.ngc - creates a tab from the filename1 subroutine │ │ │ │ │ • NGCGUI_SUBFILE = filename2.ngc - creates a tab from the filename2 subroutine │ │ │ │ │ • … etc. │ │ │ │ │ • NGCGUI_SUBFILE = gcmcname1.gcmc - creates a tab from the gcmcname1 file │ │ │ │ │ • NGCGUI_SUBFILE = gcmcname2.gcmc - creates a tab from the gcmcname2 file │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 700 / 1291 │ │ │ │ │ │ │ │ │ │ • … etc. │ │ │ │ │ • NGCGUI_SUBFILE = ”” - creates a custom tab that can open any subroutine in the search path │ │ │ │ │ • NGCGUI_OPTIONS = opt1 opt2 … - NGCGUI options │ │ │ │ │ – nonew - disallow making a new custom tab │ │ │ │ │ @@ -32376,15 +32376,15 @@ │ │ │ │ │ # │ │ │ │ │ noauto │ │ │ │ │ -- no auto send (makeFile, then manually send) │ │ │ │ │ # │ │ │ │ │ noiframe │ │ │ │ │ -- no internal image, image on separate top level │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 701 / 1291 │ │ │ │ │ │ │ │ │ │ GCMC_INCLUDE_PATH = /home/myname/gcmc_includes │ │ │ │ │ TTT │ │ │ │ │ TTT_PREAMBLE │ │ │ │ │ │ │ │ │ │ @@ -32431,15 +32431,15 @@ │ │ │ │ │ [RS274NGC]SUBROUTINE_PATH = directory1_name:directory1_name:directory3_name ... │ │ │ │ │ │ │ │ │ │ Directories Directories may be specified as absolute paths or relative paths. │ │ │ │ │ • Example: [DISPLAY]PROGRAM_PREFIX = /home/myname/linuxcnc/nc_files │ │ │ │ │ • Example: [DISPLAY]PROGRAM_PREFIX = ~/linuxcnc/nc_files │ │ │ │ │ • Example: [DISPLAY]PROGRAM_PREFIX = ../../nc_files │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 702 / 1291 │ │ │ │ │ │ │ │ │ │ Absolute Paths An absolute path beginning with a ”/” specifies a complete filesystem location. A │ │ │ │ │ path beginning with a ”~/” specifies a path starting from the user’s home directory. A path beginning │ │ │ │ │ with ”~username/” specifies a path starting in username’s home directory. │ │ │ │ │ Relative Paths Relative paths are based on the startup directory which is the directory containing │ │ │ │ │ @@ -32478,15 +32478,15 @@ │ │ │ │ │ message. │ │ │ │ │ 10.6.5.6 Summary of INI File item details for NGCGUI usage │ │ │ │ │ │ │ │ │ │ [RS274NGC]SUBROUTINE_PATH = dirname1:dirname2:dirname3 … │ │ │ │ │ Example: [RS274NGC]SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_li │ │ │ │ │ Note: Optional, but very useful to organize subfiles and utility files. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 703 / 1291 │ │ │ │ │ │ │ │ │ │ [RS274NGC]USER_M_PATH = dirname1:dirname2:dirname3 … │ │ │ │ │ Example: [RS274NGC]USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles │ │ │ │ │ Note: Optional, needed to locate custom user M-files. │ │ │ │ │ [DISPLAY]EMBED_TAB_NAME = name to display on embedded tab page │ │ │ │ │ @@ -32532,15 +32532,15 @@ │ │ │ │ │ Note: Optional, when specified, the file is appended to a subfiles. │ │ │ │ │ Files created with ”Custom” tab pages use the postamble specified with the page. │ │ │ │ │ [DISPLAY]NGCGUI_OPTIONS = opt1 opt2 … │ │ │ │ │ Example: [DISPLAY]NGCGUI_OPTIONS = nonew noremove │ │ │ │ │ Note: Multiple options are separated by blanks. │ │ │ │ │ By default, NGCGUI configures tab pages so that: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 704 / 1291 │ │ │ │ │ │ │ │ │ │ 1) a user can make new tabs; │ │ │ │ │ 2) a user can remove tabs (except for the last remaining one); │ │ │ │ │ 3) finalized files are automatically sent to LinuxCNC; │ │ │ │ │ 4) an image frame (iframe) is made available to display an image for the subfile (if an image is │ │ │ │ │ @@ -32584,15 +32584,15 @@ │ │ │ │ │ │ │ │ │ │ The body of the subroutine should begin with a set of statements that define local named parameters │ │ │ │ │ for each positional parameter expected for the subroutine call. These definitions must be consecutive │ │ │ │ │ beginning with #1 and ending with the last used parameter number. Definitions must be provided for │ │ │ │ │ each of these parameters (no omissions). │ │ │ │ │ Parameter Numbering │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 705 / 1291 │ │ │ │ │ │ │ │ │ │ # = #1 │ │ │ │ │ # = #2 │ │ │ │ │ # = #3 │ │ │ │ │ │ │ │ │ │ @@ -32641,15 +32641,15 @@ │ │ │ │ │ o call [#] [#] (call a subroutine) │ │ │ │ │ # = #<_helper:answer> (immediately localize the helper global result) │ │ │ │ │ #<_helper:answer> = 0.0 │ │ │ │ │ (nullify global named parameter used by subroutine) │ │ │ │ │ ... │ │ │ │ │ o endsub │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 706 / 1291 │ │ │ │ │ │ │ │ │ │ In the above example, the utility subroutine will be found in a separate file named helper.ngc. The │ │ │ │ │ helper routine returns a result in a global named parameter named #<_helper:answer. │ │ │ │ │ For good practice, the calling subfile immediately localizes the result for use elsewhere in the subfile │ │ │ │ │ and the global named parameter used for returning the result is nullified in an attempt to mitigate its │ │ │ │ │ @@ -32691,15 +32691,15 @@ │ │ │ │ │ //ngcgui: varname3 = value3, label3; │ │ │ │ │ │ │ │ │ │ Variable Tags Examples │ │ │ │ │ //ngcgui: zsafe = │ │ │ │ │ //ngcgui: feedrate = 10 │ │ │ │ │ //ngcgui: xl = 0, x limit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 707 / 1291 │ │ │ │ │ │ │ │ │ │ For these examples, the entry box for varname1 will have no default, the entry box for varname2 will │ │ │ │ │ have a default of value2, and the entry box for varname 3 will have a default of value 3 and a label │ │ │ │ │ label3 (instead of varname3). The default values must be numbers. │ │ │ │ │ To make it easier to modify valid lines in a gcmc file, alternate tag line formats accepted. The alternate │ │ │ │ │ @@ -32741,28 +32741,28 @@ │ │ │ │ │ [DISPLAY] │ │ │ │ │ GCMC_INCLUDE_PATH = ../../nc_files/gcmc_lib │ │ │ │ │ │ │ │ │ │ 10.6.7 DB25 Example │ │ │ │ │ The following shows the DB25 subroutine. In the first photo you see where you fill in the blanks for │ │ │ │ │ each variable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ This photo shows the backplot of the DB25 subroutine. │ │ │ │ │ │ │ │ │ │ 708 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 709 / 1291 │ │ │ │ │ │ │ │ │ │ This photo shows the use of the new button and the custom tab to create three DB25 cutouts in one │ │ │ │ │ program. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 710 / 1291 │ │ │ │ │ │ │ │ │ │ 10.6.8 Creating a subroutine │ │ │ │ │ • For creating a subroutine for use with NGCGUI, the filename and the subroutine name must be the │ │ │ │ │ same. │ │ │ │ │ • The file must be placed in the subdirectory pointed to in the INI file. │ │ │ │ │ @@ -32780,15 +32780,15 @@ │ │ │ │ │ # = #3 (Feedrate) │ │ │ │ │ ;Example de paramètre sans preset │ │ │ │ │ g0x0y0z1 │ │ │ │ │ g3 i# f# │ │ │ │ │ g3 i[0-#] │ │ │ │ │ o endsub │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 711 / 1291 │ │ │ │ │ │ │ │ │ │ 10.7 TkLinuxCNC GUI │ │ │ │ │ 10.7.1 Introduction │ │ │ │ │ TkLinuxCNC is one of the first graphical front-ends for LinuxCNC. It is written in Tcl and uses the Tk │ │ │ │ │ toolkit for the display. Being written in Tcl makes it very portable (it runs on a multitude of platforms). │ │ │ │ │ @@ -32804,15 +32804,15 @@ │ │ │ │ │ Then, start LinuxCNC and select that INI file. The sample configuration sim/tklinuxcnc/tklinuxcnc.ini │ │ │ │ │ is already configured to use TkLinuxCNC as its front-end. │ │ │ │ │ When LinuxCNC is launched the TKLinuxCNC window is opened. │ │ │ │ │ 10.7.2.1 A typical session with TkLinuxCNC │ │ │ │ │ 1. Start LinuxCNC and select a configuration file. │ │ │ │ │ 2. Clear the E-STOP condition and turn the machine on (by pressing F1 then F2). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 712 / 1291 │ │ │ │ │ │ │ │ │ │ 3. Home each axis. │ │ │ │ │ 4. Load the file to be milled. │ │ │ │ │ 5. Put the stock to be milled on the table. │ │ │ │ │ 6. Set the proper offsets for each axis by jogging and either homing again or right-clicking an axis │ │ │ │ │ @@ -32844,15 +32844,15 @@ │ │ │ │ │ • Abort │ │ │ │ │ then on the second line: │ │ │ │ │ • Operation mode: MANUAL > MDI > AUTO │ │ │ │ │ • Toggle flood coolant │ │ │ │ │ • Toggle spindle brake control │ │ │ │ │ 1 For some of these actions it might be necessary to change the mode LinuxCNC is currently running in. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 713 / 1291 │ │ │ │ │ │ │ │ │ │ 10.7.3.2 Offset display status bar │ │ │ │ │ The Offset display status bar displays the currently selected tool (selected with Txx M6), the tool │ │ │ │ │ length offset (if active), and the work offsets (set by right-clicking the coordinates). │ │ │ │ │ 10.7.3.3 Coordinate Display Area │ │ │ │ │ @@ -32884,15 +32884,15 @@ │ │ │ │ │ execution will be stopped on any M1 encountered). │ │ │ │ │ Text Program Display Area When the program is running, the line currently being executed is │ │ │ │ │ highlighted in white. The text display will automatically scroll to show the current line. │ │ │ │ │ 10.7.3.5 Manual Control │ │ │ │ │ Implicit keys TkLinuxCNC allows you to manually move the machine. This action is known as jogging. │ │ │ │ │ First, select the axis to be moved by clicking it. Then, click and hold the + or - button depending on │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 714 / 1291 │ │ │ │ │ │ │ │ │ │ the desired direction of motion. The first four axes can also be moved by the keyboard arrow keys (X │ │ │ │ │ and Y), the PAGE UP and PAGE DOWN keys (Z) and the [ and ] keys (A/4th). │ │ │ │ │ + If Continuous is selected, the motion will continue as long as the button or key is pressed. If another │ │ │ │ │ value is selected, the machine will move exactly the displayed distance each time the button is clicked │ │ │ │ │ @@ -32915,15 +32915,15 @@ │ │ │ │ │ The Coolant groupCoolant The two buttons allow the Mist and Flood coolants to be turned on and │ │ │ │ │ off. Depending on your machine configuration, not all the items in this group may appear. │ │ │ │ │ 10.7.3.6 Code Entry │ │ │ │ │ Manual Data Input (also called MDI), allows G-code programs to be entered manually, one line at │ │ │ │ │ a time. When the machine is not turned on, and not set to MDI mode, the code entry controls are │ │ │ │ │ unavailable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 715 / 1291 │ │ │ │ │ │ │ │ │ │ This allows you to enter a G-code command to be executed. Execute the command by pressing Enter. │ │ │ │ │ Active G-Codes This shows the modal codes that are active in the interpreter. For instance, G54 │ │ │ │ │ indicates that the G54 offset is applied to all coordinates that are entered. │ │ │ │ │ 10.7.3.7 Jog Speed │ │ │ │ │ @@ -32972,15 +32972,15 @@ │ │ │ │ │ Send active axis Home │ │ │ │ │ Jog first axis │ │ │ │ │ Jog second axis │ │ │ │ │ Jog third axis │ │ │ │ │ Jog fourth axis │ │ │ │ │ Stop execution │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 716 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8 QtPlasmaC │ │ │ │ │ 10.8.1 Preamble │ │ │ │ │ Except where noted, this guide assumes the user is using the latest version of QtPlasmaC. Version │ │ │ │ │ history can be seen by visiting this link which will show the latest available version. The installed │ │ │ │ │ @@ -33000,25 +33000,25 @@ │ │ │ │ │ there are enough hardware I/O pins to fulfill the requirements of a plasma configuration. │ │ │ │ │ There are three available formats: │ │ │ │ │ • 16:9 with a minimum resolution of 1366 x 768 │ │ │ │ │ • 9:16 with a minimum resolution of 768 x 1366 │ │ │ │ │ • 4:3 with a minimum resolution of 1024 x 768 │ │ │ │ │ Screenshot examples of QtPlasmaC are below: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 717 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.40: 16:9 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 718 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 719 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.42: 4:3 │ │ │ │ │ │ │ │ │ │ 10.8.4 Installing LinuxCNC │ │ │ │ │ The preferred method for installing LinuxCNC is via an ISO image as described below. │ │ │ │ │ @@ -33026,15 +33026,15 @@ │ │ │ │ │ It is possible to install and run LinuxCNC on a variety of Linux distributions however that is beyond │ │ │ │ │ the scope of this User Guide. If the user wishes to install a Linux distribution other than those recommended, they will first need to install their preferred Linux distribution and then install LinuxCNC │ │ │ │ │ v2.9 or later along with any required dependencies. │ │ │ │ │ │ │ │ │ │ 10.8.4.1 If The User Does Not Have Linux Installed │ │ │ │ │ Installation instructions are available from here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 720 / 1291 │ │ │ │ │ │ │ │ │ │ Following these instructions will yield a machine with the current stable branch of LinuxCNC (v2.9) │ │ │ │ │ on Debian 12 (Bookworm). │ │ │ │ │ 10.8.4.2 Package Installation (Buildbot) If The User Has Linux on Debian 12 (Bookworm) │ │ │ │ │ Follow the instructions from the Updating LinuxCNC on Debian Bookworm section from here. │ │ │ │ │ @@ -33075,15 +33075,15 @@ │ │ │ │ │ to use a reed relay as an alternative method to establish an Arc OK signal when the power │ │ │ │ │ source does not provide one. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ For fine tuning of Mode 0 Ark OK see Tuning Mode 0 Arc OK in the Advanced Topics section of the │ │ │ │ │ manual. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 721 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8.5.2 Available I/Os │ │ │ │ │ Note │ │ │ │ │ This section only touches on the hardware I/O’s required for QtPlasmaC. Base machine requirements │ │ │ │ │ such as limit switches, home switches, etc. are in addition to these. │ │ │ │ │ @@ -33164,15 +33164,15 @@ │ │ │ │ │ This signal senses if the torch has broken away from its cradle. │ │ │ │ │ Digital output; required. │ │ │ │ │ HAL pin name plasmac.torch-on │ │ │ │ │ Connected from a breakout board output to the torch-on input │ │ │ │ │ of the plasma power supply. This signal is used to control the │ │ │ │ │ plasma power supply and start the arc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ Move Up │ │ │ │ │ │ │ │ │ │ Modes │ │ │ │ │ 2 │ │ │ │ │ │ │ │ │ │ @@ -33238,15 +33238,15 @@ │ │ │ │ │ then set the Z minimum to 5 mm (0.2”) plus an allowance for overrun (either calculated using the │ │ │ │ │ equation below or allow 5 mm (0.2”) below the lowest slat). │ │ │ │ │ • [AXIS_Z] MAX_LIMIT should be the highest the user wants the Z axis to travel (it must not be │ │ │ │ │ lower than Z HOME_OFFSET). │ │ │ │ │ • [AXIS_Z] HOME should be set to be approximately 5 mm-10 mm (0.2”-0.4”) below the maximum │ │ │ │ │ limit. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 723 / 1291 │ │ │ │ │ │ │ │ │ │ • Floating Head - it is recommended that a floating head be used and that it has enough movement │ │ │ │ │ to allow for overrun during probing. Overrun can be calculated using the following formula: │ │ │ │ │ o = 0.5 * a * (v / a)^2 │ │ │ │ │ │ │ │ │ │ @@ -33278,48 +33278,48 @@ │ │ │ │ │ Fill in the required entries to suit the machine wiring/breakout board configuration. │ │ │ │ │ QtPlasmaC adds two pages to the LinuxCNC configuration wizards for QtPlasmaC specific parameters, │ │ │ │ │ the two pages are QtPlasmaC options and User Buttons. Complete each of the wizards QtPlasmaC │ │ │ │ │ page to suit the machine that is being configured and the user button requirements. │ │ │ │ │ Note that PnCconf options allow user selection of Feed Override, Linear Velocity, and Jog Increments, │ │ │ │ │ whereas in StepConf these are automatically calculated and set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Figure 10.43: PnCConf QtPlasmaC Options │ │ │ │ │ │ │ │ │ │ 724 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Figure 10.44: StepConf QtPlasmaC Options │ │ │ │ │ │ │ │ │ │ 725 / 1291 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 726 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.45: QtPlasmaC User Buttons │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 727 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.46: QtPlasmaC THCAD │ │ │ │ │ The THCAD screen will only appear if a Plasma Encoder is selected in the card screen. The the │ │ │ │ │ dedicated section on Mesa THCAD for more information. │ │ │ │ │ When the configuration is complete, the wizard will save a copy of the configuration that may be │ │ │ │ │ loaded and edited at a later time, a working QtPlasmaC configuration will be created in the following │ │ │ │ │ directory: ~/linuxcnc/configs/. │ │ │ │ │ The way the newly created QtPlasmaC configuration can be run from the terminal command line │ │ │ │ │ slightly differs depending the way LinuxCNC was installed: │ │ │ │ │ For a package installation (Buildbot): │ │ │ │ │ linuxcnc ~/linuxcnc/configs/__/__.ini │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 728 / 1291 │ │ │ │ │ │ │ │ │ │ For a run in place installation: │ │ │ │ │ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/__/__.ini │ │ │ │ │ │ │ │ │ │ After running the above command LinuxCNC should be running with the QtPlasmaC GUI visible. │ │ │ │ │ @@ -33341,25 +33341,25 @@ │ │ │ │ │ For a run in place installation enter the following command in a terminal window: │ │ │ │ │ ~/linuxcnc-dev/lib/python/qtvcp/designer/install_script │ │ │ │ │ │ │ │ │ │ 10.8.5.6 Initial Setup │ │ │ │ │ The following heights diagram will help the user visualize the different heights involved in plasma │ │ │ │ │ cutting and how they are measured: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 729 / 1291 │ │ │ │ │ │ │ │ │ │ Click on the Parameters Tab to view the CONFIGURATION section which shows the user settable │ │ │ │ │ parameters. It is necessary to ensure every one of these settings is tailored to the machine. │ │ │ │ │ To set the Z axis DRO relative to the Z axis MINIMUM_LIMIT, the user should perform the following │ │ │ │ │ steps. It is important to understand that in QtPlasmaC, touching off the Z axis DRO has no effect on │ │ │ │ │ the Z axis position while running a G-code program. These steps simply allow the user to more easily │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 730 / 1291 │ │ │ │ │ │ │ │ │ │ set the probe height as after performing the steps, the displayed Z axis DRO value will be relative to │ │ │ │ │ Z axis MINIMUM_LIMIT. │ │ │ │ │ Note │ │ │ │ │ The user should be familiar with the recommended Z Axis Settings. │ │ │ │ │ @@ -33395,15 +33395,15 @@ │ │ │ │ │ 9. If the table has a laser or camera for sheet alignment, a scribe, or uses offset probing then the │ │ │ │ │ required offsets need to be applied by following the procedure described in Peripheral Offsets. │ │ │ │ │ 10. CONGRATULATIONS! The user should now have a working QtPlasmaC Configuration. │ │ │ │ │ Note │ │ │ │ │ If the amount of time between the torch contacting the material and when the torch moves up and │ │ │ │ │ comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 731 / 1291 │ │ │ │ │ │ │ │ │ │ Important │ │ │ │ │ IF USING A Mesa Electronics THCAD THEN THE Voltage Scale VALUE WAS OBTAINED MATHEMATICALLY. IF THE USER INTENDS TO USE CUT VOLTAGES FROM A MANUFACTURE’S CUT │ │ │ │ │ CHART THEN IT WOULD BE ADVISABLE TO DO MEASUREMENTS OF ACTUAL VOLTAGES AND │ │ │ │ │ FINE TUNE THE Voltage Scale AND Voltage Offset. │ │ │ │ │ @@ -33430,15 +33430,15 @@ │ │ │ │ │ │ │ │ │ │ For a run in place installation enter the following lines in terminal window: │ │ │ │ │ source ~/linuxcnc-dev/scripts/rip-environment │ │ │ │ │ qtplasmac-plasmac2qt │ │ │ │ │ │ │ │ │ │ The following screen will be displayed: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 732 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.10: Mandatory Settings │ │ │ │ │ Field │ │ │ │ │ INI FILE IN │ │ │ │ │ EXISTING │ │ │ │ │ @@ -33466,15 +33466,15 @@ │ │ │ │ │ 2 - Estop is a button. │ │ │ │ │ │ │ │ │ │ ESTOP:1 │ │ │ │ │ │ │ │ │ │ Optional Setting - This setting is not required unless the machine has a laser for sheet │ │ │ │ │ alignment. Leave this blank if it is not used/required. Leave this blank if it is not used/required. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Field │ │ │ │ │ Laser On HAL Pin │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ Power on a laser crosshair for sheet │ │ │ │ │ alignment. │ │ │ │ │ @@ -33517,15 +33517,15 @@ │ │ │ │ │ For a package installation (Buildbot) enter the following line in a terminal window: │ │ │ │ │ qtplasmac-cfg2prefs │ │ │ │ │ │ │ │ │ │ For a run in place installation enter the following lines in terminal window: │ │ │ │ │ source ~/linuxcnc-dev/scripts/rip-environment │ │ │ │ │ qtplasmac-cfg2prefs │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 734 / 1291 │ │ │ │ │ │ │ │ │ │ Figure 10.47: qtplasmac-cfg2prefs │ │ │ │ │ Select the INI file of the old PlasmaC configuration, select the INI file of the new QtPlasmaC configuration, then press CONVERT. │ │ │ │ │ │ │ │ │ │ 10.8.7 Other QtPlasmaC Setup Considerations │ │ │ │ │ @@ -33539,15 +33539,15 @@ │ │ │ │ │ file in the machine’s configuration directory to add the appropriate cutoff frequency as measured in │ │ │ │ │ Hertz (Hz). │ │ │ │ │ For example: │ │ │ │ │ setp plasmac.lowpass-frequency 100 │ │ │ │ │ │ │ │ │ │ The above example would give a cutoff frequency of 100Hz. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 735 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8.7.2 Contact Bounce │ │ │ │ │ Contact bounce from mechanical relays, switches, or external interference may cause some inconsistent behavior of the following switches: │ │ │ │ │ • Float Switch │ │ │ │ │ • Ohmic Probe │ │ │ │ │ @@ -33584,15 +33584,15 @@ │ │ │ │ │ Depending on the specified minimum contact current and the current drawn by the input device there │ │ │ │ │ may be a need to provide a method to increase the current through the contacts. │ │ │ │ │ Most relays using gold contacts will not require any additional current for reliable operation. │ │ │ │ │ There are two different methods available to provide this minimum current if it is required: │ │ │ │ │ 1. A 0.1 μF film capacitor placed across the contacts. │ │ │ │ │ 2. A 1200 Ω 1 W resistor across the load (see calculations below). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 736 / 1291 │ │ │ │ │ │ │ │ │ │ Schematics are shown at contact load schematics. │ │ │ │ │ More information on contact switching load can be seen on page VI of the finder General Technical │ │ │ │ │ Information document. │ │ │ │ │ Calculations: │ │ │ │ │ @@ -33629,15 +33629,15 @@ │ │ │ │ │ Terminal=false │ │ │ │ │ Name=LinuxCNC │ │ │ │ │ Exec=sh -c ”linuxcnc $HOME/linuxcnc/configs//.ini” │ │ │ │ │ Type=Application │ │ │ │ │ Icon=/usr/share/pixmaps/linuxcncicon.png │ │ │ │ │ 2 In the US, the letter V is commonly used as a symbol (Voltage) and as a unit (Volt). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 737 / 1291 │ │ │ │ │ │ │ │ │ │ If the user would like a terminal window to open behind the GUI window then change the Terminal │ │ │ │ │ line to: │ │ │ │ │ Terminal=true │ │ │ │ │ │ │ │ │ │ @@ -33694,15 +33694,15 @@ │ │ │ │ │ Note │ │ │ │ │ The configuration files (.ini and .hal) that are created by configuration wizard are notated to explain the requirements to aid in manual manipulation of these │ │ │ │ │ configurations. They may be edited with any text editor. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ The .prefs file is plain text and may be edited with any text editor. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 738 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8.7.6 INI File │ │ │ │ │ QtPlasmaC has some specific .ini file variables as follows: │ │ │ │ │ [FILTER] Section These variables are mandatory. │ │ │ │ │ PROGRAM_EXTENSION = .ngc,.nc,.tap G-code File (*.ngc, *.nc, *.tap) │ │ │ │ │ @@ -33751,15 +33751,15 @@ │ │ │ │ │ [DISPLAY] Section │ │ │ │ │ This variable is mandatory. │ │ │ │ │ DISPLAY = qtvcp qtplasmac │ │ │ │ │ (use 16:9 resolution) │ │ │ │ │ = qtvcp qtplasmac_9x16 (use 9:16 resolution) │ │ │ │ │ = qtvcp qtplasmac_4x3 (use 4:3 resolution) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 739 / 1291 │ │ │ │ │ │ │ │ │ │ There are multiple QtVCP options that are described here: QtVCP INI Settings │ │ │ │ │ For example the following would start a 16:9 resolution QtPlasmaC screen in full screen mode: │ │ │ │ │ DISPLAY = qtvcp -f qtplasmac │ │ │ │ │ │ │ │ │ │ @@ -33800,15 +33800,15 @@ │ │ │ │ │ 10.8.8.1 Exiting QtPlasmaC │ │ │ │ │ Exiting or shutting down QtPlasmaC is done by either: │ │ │ │ │ 1. Click the window shutdown button on the window title bar │ │ │ │ │ 2. Long press the POWER button on the MAIN Tab. │ │ │ │ │ A shutdown warning can be displayed on every shutdown by checking the Exit Warning checkbox on │ │ │ │ │ the SETTINGS Tab. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 740 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8.8.2 MAIN Tab │ │ │ │ │ Screenshot example of the QtPlasmaC MAIN Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ Some functions/features are only used for particular modes and are not displayed if they are not │ │ │ │ │ @@ -33825,15 +33825,15 @@ │ │ │ │ │ used to manually select the current material cut parameters. If there are │ │ │ │ │ no materials in the material file then only the default material will be │ │ │ │ │ displayed. │ │ │ │ │ This displays the actual cut feed rate the table is moving at. │ │ │ │ │ If ”View Material” is selected on the SETTINGS Tab, this displays the │ │ │ │ │ currently selected material’s Feed Rate. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 741 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.14: (continued) │ │ │ │ │ Name │ │ │ │ │ PH: │ │ │ │ │ PD: │ │ │ │ │ @@ -33909,15 +33909,15 @@ │ │ │ │ │ CYCLE START │ │ │ │ │ CYCLE PAUSE │ │ │ │ │ │ │ │ │ │ CYCLE STOP │ │ │ │ │ │ │ │ │ │ FEED │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 742 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.15: (continued) │ │ │ │ │ Name │ │ │ │ │ RAPID │ │ │ │ │ │ │ │ │ │ @@ -33989,15 +33989,15 @@ │ │ │ │ │ the THC Threshold voltage (The distance changed will be │ │ │ │ │ Height Per Volt * THC Threshold voltage). │ │ │ │ │ Each press of this button will lower the target voltage by │ │ │ │ │ the THC Threshold voltage (The distance changed will be │ │ │ │ │ Height Per Volt * THC Threshold voltage). │ │ │ │ │ Clicking this label will return any voltage override to 0.00. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 743 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.18: CONTROL │ │ │ │ │ Name │ │ │ │ │ TORCH ON │ │ │ │ │ TORCH ON ENABLE │ │ │ │ │ @@ -34089,15 +34089,15 @@ │ │ │ │ │ LED will still show the status of the probe input, but the │ │ │ │ │ Ohmic Probe results will be ignored. │ │ │ │ │ This box will enable or disable the communications to a │ │ │ │ │ PowerMax. This button is only visible if a PM_PORT │ │ │ │ │ option is configured in the [POWERMAX] section of the │ │ │ │ │ .prefs file. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 744 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.18: (continued) │ │ │ │ │ Name │ │ │ │ │ Status │ │ │ │ │ │ │ │ │ │ @@ -34165,15 +34165,15 @@ │ │ │ │ │ This button moves the Z axis in the negative direction. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ During Paused Motion, this section will be shown on top of the JOGGING panel. The following section │ │ │ │ │ will cover each button encountered in this panel. Please see CUT RECOVERY for a detailed description │ │ │ │ │ of the cut recovery functionality. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ PAUSED MOTION │ │ │ │ │ FEED SLIDER │ │ │ │ │ │ │ │ │ │ FEED │ │ │ │ │ REV │ │ │ │ │ @@ -34253,15 +34253,15 @@ │ │ │ │ │ This drop down button will display the following options: │ │ │ │ │ Zero - zeros the axis. │ │ │ │ │ Set - launches a dialog box to manually input the axis’ coordinate. │ │ │ │ │ Divide By 2 - divides the currently displayed coordinate in the DRO by │ │ │ │ │ two. │ │ │ │ │ Set To Last - sets the axis to the previously set coordinate. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 746 / 1291 │ │ │ │ │ │ │ │ │ │ 10.8.8.3 Preview Views │ │ │ │ │ The QtPlasmaC preview screen has the ability to be switched between different views and displays, │ │ │ │ │ as well as zooming in and out, and panning horizontally and vertically. │ │ │ │ │ When QtPlasmaC is first started, the Z (top down) view will be selected as the default view for a loaded │ │ │ │ │ @@ -34274,30 +34274,30 @@ │ │ │ │ │ orientation, then pressing either Z or P will change the display to the newly selected view. If the user │ │ │ │ │ then wishes to display the full table while maintaining the currently selected view as the default view │ │ │ │ │ for a loaded G-code file, then pressing CLEAR will achieve this and allow the selected view orientation │ │ │ │ │ to prevail the next time a G-code file is loaded. │ │ │ │ │ 10.8.8.4 CONVERSATIONAL Tab │ │ │ │ │ Screenshot example of the QtPlasmaC CONVERSATIONAL Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 747 / 1291 │ │ │ │ │ │ │ │ │ │ The CONVERSATIONAL Tab enables the user to quickly program various simple shapes for quick │ │ │ │ │ cutting without the need for CAM software. │ │ │ │ │ See Conversational Shape Library for detailed information on the Conversational feature. │ │ │ │ │ It is possible to hide this tab so the conversational feature cannot be used by an operator. This may │ │ │ │ │ be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a HAL │ │ │ │ │ file using the following command: │ │ │ │ │ setp qtplasmac.conv_disable 1 │ │ │ │ │ │ │ │ │ │ 10.8.8.5 PARAMETERS Tab │ │ │ │ │ Screenshot example of the QtPlasmaC PARAMETERS Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 748 / 1291 │ │ │ │ │ │ │ │ │ │ Some functions/features are only used for particular modes and are not displayed if they are not │ │ │ │ │ required by the chosen QtPlasmaC mode. │ │ │ │ │ This tab is used to display configuration parameters that are modified infrequently. │ │ │ │ │ It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This │ │ │ │ │ @@ -34319,15 +34319,15 @@ │ │ │ │ │ Description │ │ │ │ │ This sets the amount of time (in seconds) QtPlasmaC will wait │ │ │ │ │ between commanding a ”Torch On” and receiving an Arc OK │ │ │ │ │ signal before timing out and displaying an error message. │ │ │ │ │ This sets the number of times QtPlasmaC will attempt to start │ │ │ │ │ the arc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 749 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.25: (continued) │ │ │ │ │ Name │ │ │ │ │ Retry Delay │ │ │ │ │ │ │ │ │ │ @@ -34404,15 +34404,15 @@ │ │ │ │ │ This sets the distance threshold used to determine if an Initial Height │ │ │ │ │ Sense (probe) can be skipped for the current cut, see IHS Skip. │ │ │ │ │ │ │ │ │ │ Note │ │ │ │ │ If the amount of time between the torch contacting the material and when the torch moves up and │ │ │ │ │ comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 750 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.27: CONFIGURATION - SAFETY │ │ │ │ │ Name │ │ │ │ │ Safe Height │ │ │ │ │ │ │ │ │ │ @@ -34463,15 +34463,15 @@ │ │ │ │ │ │ │ │ │ │ CONFIGURATION - THC Two methods of THC activation are available and are selected with the │ │ │ │ │ Auto Activation checkbutton. Both methods begin their calculations when the current velocity of │ │ │ │ │ the torch matches the cut feed rate specified for the selected material: │ │ │ │ │ 1. Delay Activation (the default) is selected when Auto Activation is unchecked. This method uses │ │ │ │ │ a time delay set with the Delay parameter. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 751 / 1291 │ │ │ │ │ │ │ │ │ │ 2. Auto Activation is selected when Auto Activation is checked. This method determines that the │ │ │ │ │ arc voltage is stable by using the Sample Counts and Sample Threshold parameters. │ │ │ │ │ Name │ │ │ │ │ Delay │ │ │ │ │ @@ -34558,15 +34558,15 @@ │ │ │ │ │ Description │ │ │ │ │ The top drop down menu is used to manually select the current material │ │ │ │ │ cut parameters. If there are no materials in the material file then only the │ │ │ │ │ default material will be displayed. │ │ │ │ │ This sets the kerf width for the currently selected material. Refer to the │ │ │ │ │ Heights Diagram diagram for a visual representation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 752 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.32: (continued) │ │ │ │ │ Name │ │ │ │ │ Pierce Height │ │ │ │ │ Pierce Delay │ │ │ │ │ @@ -34628,15 +34628,15 @@ │ │ │ │ │ The Cut Parameters for the new material will then need to be adjusted and saved. │ │ │ │ │ The DELETE this button is used to delete a material. After pressing it, the user will be prompted for │ │ │ │ │ a material number to be deleted, and prompted again to ensure the user is sure. After deletion, the │ │ │ │ │ material file will be reloaded and the drop down list will display the default material. │ │ │ │ │ 10.8.8.6 SETTINGS Tab │ │ │ │ │ Screenshot example of the QtPlasmaC SETTINGS Tab in 16:9 aspect ratio: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 753 / 1291 │ │ │ │ │ │ │ │ │ │ This tab is used to display GUI configuration parameters, button text, and shutdown text that are │ │ │ │ │ modified infrequently as well as some utility buttons. │ │ │ │ │ It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This │ │ │ │ │ may be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a │ │ │ │ │ @@ -34652,15 +34652,15 @@ │ │ │ │ │ Foreground │ │ │ │ │ Highlight │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ This button allows the user to change the color of the GUI Foreground. │ │ │ │ │ This button allows the user to change the color of the GUI Highlight. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 754 / 1291 │ │ │ │ │ │ │ │ │ │ Table 10.33: (continued) │ │ │ │ │ Name │ │ │ │ │ LED │ │ │ │ │ Background │ │ │ │ │ @@ -34738,15 +34738,15 @@ │ │ │ │ │ current tool) in the Preview Window on the MAIN Tab. │ │ │ │ │ This allows a user to change the default zoom level for the top down full │ │ │ │ │ table view in the Preview Window on the MAIN Tab. │ │ │ │ │ │ │ │ │ │ USER BUTTON ENTRIES USERBUTTON │ │ │ │ │ This section shows the text that appears on the Custom User Buttons as well as the code associated │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.3, 07 Jul 2024 │ │ │ │ │ + LinuxCNC V2.9.3, 08 Jul 2024 │ │ │ │ │ │ │ │ │ │ 755 / 1291 │ │ │ │ │ │ │ │ │ │ with the user button. User buttons may be changed and the new settings used without restarting │ │ │ │ │ LinuxCNC. │ │ │ │ │ The text and/or code may be edited at any time and will be loaded ready for use if the SAVE button is │ │ │ │ │ clicked. │ │ │ │ │ @@ -34784,15 +34784,15 @@ │ │ │ │ │ is the machine name entered in the configuration wizard, is the current │ │ │ │ │ QtPlasmaC version the user is on, is the current date (YY-MM-DD), and