LinuxCNC Documentation

BESCHREIBUNG

Die Komponente xhc-hb04 unterstützt ein handelsübliches USB-Pendant, das eine Reihe von Drucktasten, einen manuellen Impulsgeber (MPG oder Jogwheel) und einen Wahlschalter für das Rad bietet.

Es gibt mindestens zwei Hardware-Versionen - eine mit 16 Tasten und eine häufigere mit 18 Tasten. Die Informationen hier basieren auf dem Gerät mit 18 Tasten und dem USB-Hersteller:Produktcode 10CE:EB70.

Zusätzlich zu den Tasten bietet das Handgerät eine LCD-Anzeige für den aktuellen Schrittweitenmultiplikator (aus einer Reihe von verfügbaren ganzzahligen Werten), die Position (absolut und relativ, jeweils mit MC und WC bezeichnet), den Vorschub (Override-Prozent und Wert in Einheiten pro Minute) und die Spindeldrehzahl (Override-Prozent und Wert in Umdrehungen pro Minute (U/min)). Die Anzeige wird über einen Drehschalter gesteuert, mit dem eine von vier Achsen für die Radpositionierung, Vorschub-Override, Spindel-Override oder AUS ausgewählt werden kann.

Das Display des Hängers, sein Drehschalter und die Namen der Komponentenstifte verwenden die Bezeichnungen x,y,z,a. Diese Anordnung setzt zwar eine als XYZA konfigurierte Maschine voraus, doch können die Stifte bei einer HAL-Konfiguration unabhängig voneinander zugewiesen werden.

UDEV

Die ausführbare Datei xhc-hb04 benötigt die Berechtigung zum Lesen des USB-Geräts des Pendants. Debian-Paketinstallationen (debs) erledigen dies automatisch, aber Run-In-Place (RIP)-Builds benötigen möglicherweise eine udev rules-Datei. Diese Datei sollte (mit sudo und einem Texteditor) wie folgt erstellt werden:

*/etc/udev/rules.d/99-xhc-hb04.rules* mit folgender einzelnen Zeile:

ATTR{idProduct}=="eb70", ATTR{idVendor}=="10ce", MODE="0666", OWNER="root", GROUP="plugdev"

Standalone-Nutzung

Die xhc-hb04 Programm kann von der Kommandozeile ohne LinuxCNC ausgeführt werden, um ein Pendant in einem Simulationsmodus zu testen. Diese Standalone-Modus wird verwendet, um die Taste Codes für jeden Knopfdruck erzeugt zu identifizieren und die ordnungsgemäße Zählung des Jogwheels zu überprüfen. Die identifizierten Tastencodes können verwendet werden, um eine button-cfg-Datei zu erstellen. Wenn eine button-cfg-Datei vorhanden ist, kann die Funktion des Pendants mit der Option -I überprüft werden, um die Datei anzugeben.

Nutzung:

xhc-hb04 [Optionen]

Optionen

-h

Befehlszeilenoptionen auflisten und beenden

-I button-cfg-file

Dateiformat siehe unten

-H

im HAL-Echtzeitmodus laufen (Voreingestellt ist der Simulationsmodus)

-x

warten auf die Erkennung von Pendants, vor dem Erzeugen von HAL-Pins.

-s n

n ist eine der folgenden Schrittgrößen (engl. stepsize)-Sequenzen

1: 1,10,100,1000 (voreingestellt) 2: 1,5,10,20 3: 1,10,100 4: 1,5,10,20,50,100 5: 1,10,50,100,1000

Die ausgewählte Schrittgröße (engl. stepsize) wird immer multipliziert mit 0,001 (durch 1000 geteilt).

button-cfg-Dateiformat

Standardkonfigurationsdateien werden in der Verteilung für bekannte Schaltflächenkonfigurationen bereitgestellt:

   /usr/share/linuxcnc/hallib/xhc-hb04-layout1.cfg
   /usr/share/linuxcnc/hallib/xhc-hb04-layout2.cfg
oder für einen RIP-Build:
   rip_base_dir/lib/hallib/xhc-hb04-layout1.cfg
   rip_base_dir/lib/hallib/xhc-hb04-layout2.cfg

layout1 beschreibt das 16-Tasten-Handgerät (engl. pendant), layout2 beschreibt das häufigere 18-Tasten-Handgerät.

Die Konfigurationsdatei für die Schaltflächen hat das gleiche Format wie INI-Dateien, sollte aber die Dateiendung .cfg haben.

Dateiformat:
  [XHC-HB04]
  BUTTON=X1:button-thename1
  BUTTON=X2:button-thename2
  BUTTON=X3:button-thename3
  usw.

XN ist der für einen Tastendruck gemeldete Code und button-thenameN ist der Name, der dem für die Taste erstellten Pin zugewiesen werden soll.

HAL-Nutzung (engl. usage)

Verwenden Sie die Option -H, um den HAL-Modus und andere Optionen nach Bedarf anzugeben:

loadusr -W xhc-hb04 -H [Optionen]

Beispiel: loadusr -W xhc-hb04-H -I pfad_zu_cfg_datei -s 2

Eingangspins (Steuerung)

xhc-hb04.stepsize-up (bit in)

Ein 1-Impuls an diesem Pin ändert die Schrittweite auf die nächsthöhere Schrittweite in der mit dem Befehl xhc-hb04 (loadusr) festgelegten Schrittweitenfolge.

xhc-hb04.stepsize-down (bit in)

Ein 1-Impuls an diesem Pin ändert die Schrittweite auf die nächstniedrigere Schrittweite in der mit dem Befehl xhc-hb04 (loadusr) festgelegten Schrittweitenfolge.

Eingangspins (zum LCD-Display des Pendants)

xhc-hb04.[xyza].pos-absolute (float in)

Absolute position display. The LCD display for pos-absolute is fixed format with a sign, 4 number digits and 3 fraction digits (+XXXX.XXX), require: -9999.999 <= value <= 9999.999 (typically connect to: halui.axis.N.pos-feedback).

xhc-hb04.[xyza].pos-relative (float in)

Relative position display (typically connect to: halui.axis.N.pos-relative). The LCD display for pos-relative is fixed format with a sign, 4 number digits and 3 fraction digits (+XXXX.XXX), require: -9999.999 <= value <= 9999.999.

xhc-hb04.feed-override (float in)

Feed-override value. The float value is converted to a 16 bit integer and multiplied by 100 in order to display as percent, require: 0 <= pinvalue <= 655 (typically connect to: halui.feed-override.value).

xhc-hb04.feed-value (float in)

Current Feed-value (units/sec). The float value is converted to a 16 bit integer and multiplied by 60 in order to display as units-per-minute, require: 0 <= pinvalue <= 1092 (65520 units-per-minute) (typically connect to: motion.current-vel).

xhc-hb04.spindle-override (float in)

Spindle-override value. The float value is converted to a 16 bit integer and multiplied by 100 in order to display as percent, require: 0 <= pinvalue <= 655) (typically connect to: halui.spindle-override.value).

xhc-hb04.spindle-rps (float in)

Spindle speed in RPS (revolutions per second). The float value is converted to a 16 bit integer and multiplied by 60 in order to display as RPMs, require: 0 <= pinvalue <= 1092 (65520 RPM) (typically connect to: spindle.N.speed-out-rps-abs).

xhc-hb04.inch-icon (bit in)

Verwenden Sie das Zoll-Symbol (Standard ist mm):

Ausgangspins (Status)

xhc-hb04.sleeping (bit out)

Wahr, wenn der Treiber eine Meldung über die Inaktivität des Anhängers (schlafend) erhält.

xhc-hb04.jog.enable-off (bit out)

Wahr, wenn der Drehschalter des Pendants in der Position OFF steht oder wenn das Pendant im Ruhezustand ist.

xhc-hb04.enable-[xyza] (bit out)

Wahr, wenn der Drehschalter des Pendant in der Stellung [xyza] steht und nicht schläft.

xhc-hb04.enable-spindle-override (bit out)

Wahr, wenn sich der Drehschalter des Pendants in der Position Spindel befindet und nicht schläft (typischerweise zu verbinden mit: halui.spindle-override-count-enable).

xhc-hb04.enable-feed-override (bit out)

Wahr, wenn der Drehschalter des Pendants in der Vorschubposition steht und nicht schläft (typischerweise zu verbinden mit: halui.feed-override-count-enable).

xhc-hb04.connected (bit out)

Wahr, wenn die Verbindung zum Handgerät (engl. pendant) über die USB-Schnittstelle hergestellt wird.

xhc-hb04.require_pendant (bit out)

Wahr, wenn der Treiber mit der Option -x gestartet wurde.

xhc-hb04.stepsize (s32 out)

Aktuelle Schrittweite in der Stepsize-Sequenz, die durch die Pins Stepsize-up und/oder Stepsize-down gesteuert wird.

Ausgangspins (für Jogging mit axis.N.jog-counts)

xhc-hb04.jog.counts (s32 out)

Anzahl der Zählungen des Rades seit dem Start (50 Zählungen pro Radumdrehung) (normalerweise mit axis.N.jog-counts verbunden (Tiefpassfilterung kann hilfreich sein)).

xhc-hb04.jog.counts-neg (s32 out)

Der Wert des Parameters xhc-hb04.jog.counts multipliziert mit -1.

xhc-hb04.jog.scale (float out)

Der Wert ist die aktuelle Schrittweite multipliziert mit 0,001 (normalerweise verbunden mit axis.N.jog-scale).

Experimentell: Pins für Halui plus/minus Jogging.

Diese Pins bieten eine gewisse Unterstützung für Nicht-Trivkins, Weltmodus-Jogging.

xhc-hb04.jog.max-velocity (float in)

Verbindung mit halui.max-velocity.value herstellen.

xhc-hb04.jog.velocity (float out)

Verbindung mit halui.jog-speed herrstellen.

xhc-hb04.jog.plus-[xyza] (bit out)

Verbindung mit halui.jog.N.plus herstellen.

xhc-hb04.jog.minus-[xyza] (bit out)

Verbinden mit halui.jog.N.minus.

xhc-hb04.jog.increment (float out)

Debug Pin — abs(delta_pos).

Tastenausgangsstifte (für die 18 Tasten, Layout2-Pendant)

Die Pins vom Typ Ausgabebit sind TRUE, wenn die Taste gedrückt wird.

ROW 1
    (bit out) xhc-hb04.button-reset
    (bit out) xhc-hb04.button-stop

ROW 2
    (bit out) xhc-hb04.button-goto-zero
    (bit out) xhc-hb04.button-rewind
    (bit out) xhc-hb04.button-start-pause
    (bit out) xhc-hb04.button-probe-z

ROW 3
   (bit out) xhc-hb04.button-spindle
   (bit out) xhc-hb04.button-half
   (bit out) xhc-hb04.button-zero
   (bit out) xhc-hb04.button-safe-z

ROW 4
   (bit out) xhc-hb04.button-home
   (bit out) xhc-hb04.button-macro-1
   (bit out) xhc-hb04.button-macro-2
   (bit out) xhc-hb04.button-macro-3

ROW 5
   (bit out) xhc-hb04.button-step
   (bit out) xhc-hb04.button-mode
   (bit out) xhc-hb04.button-macro-6
   (bit out) xhc-hb04.button-macro-7

Synthetisierte Button-Pins

Zusätzliche Buttons werden für Buttons mit den Namen zero, goto-zero und half (engl. für halb) synthetisiert. Diese synthetisierten Buttons sind aktiv, wenn der Button gedrückt wird UND der Wahlschalter auf die entsprechende Achse [xyza] eingestellt ist.

   (bit out) xhc-hb04.button-zero-[xyza]
   (bit out) xhc-hb04.button-goto-zero-[xyza]
   (bit out) xhc-hb04.button-half-[xyza]

DEBUGGING

Zum Debuggen von USB-Aktivitäten verwenden Sie die Umgebungsvariable LIBUSB_DEBUG:

export LIBUSB_DEBUG=[2 | 3 | 4]; xhc-hb04 [options]

2:warning, 3:info, 4:debug

Sim-Konfigurationen

Die Distribution enthält mehrere Simulationskonfigurationen im Verzeichnis:

   /usr/share/doc/linuxcnc/examples/sample-configs/sim/axis/xhc-hb04/
oder für ein RIP-Build:
   rip_base_dir/configs/sim/axis/xhc-hb04/

Diese Konfigurationen verwenden ein von der Distribution bereitgestelltes Skript (xhc-hb04.tcl), um das Pendant zu konfigurieren und die erforderlichen HAL-Verbindungen entsprechend einer Reihe von INI-Datei-Einstellungen herzustellen. Das Skript verwendet eine zusätzliche HAL-Komponente (xhc_hb04_util), um gemeinsame Funktionen bereitzustellen, und bietet Unterstützung für eine Standardmethode für die Start-Pause-Taste.

Die verfügbaren Einstellungen beinhalten: * Spezifizieren der button-cfg-file für Standard layout1 oder layout2, * Festlegung der Achsen (bis zu 4 Achsen aus x y z a b c u v w), * Implementieren der per-axis Filter-Koeffizienten, * Implementieren der per-axis Beschleunigung für Handgerät (mpg)-Joggen, * Implementierung der Einstellung der Skalierung für jede Achse, * Auswahl normaler oder Geschwindigkeits-basierter Jogging-Modi, * Auswahl der Schwrittweiten- (engl. stepsize) Sequenz, * Option zur Initialisierung eines Pins für ein Zoll oder mm Display-Icon, * Option die Handsteuerung (pendant) beim Programmstart zu verlangen.

Die sim configs illustrieren Button-Verbindungen, die: * Den Schritteweite-Hoch-Button des Handgerätes mit dem Schrittweite-Eigangs-Pin verbinden, * verbinden von Buttons mit halui.* Pins, * verbinden von Buttons mit motion.* Pins.

Ein weiteres Skript ist enthalten, um das Pendant zu überwachen und den Verlust der USB-Verbindung zu melden. Siehe die README- und .txt-Dateien im obigen Verzeichnis für die Verwendung.

Anmerkung

Die Sim-Konfigurationen verwenden das AXIS GUI, aber die Skripte sind mit jeder HAL-Konfiguration oder jedem GUI verfügbar. Die gleichen Skripte können verwendet werden, um den xhc-hb04 an bestehende Konfigurationen anzupassen, vorausgesetzt, dass die benötigten halui, motion und axis.N Pins nicht anderweitig beansprucht werden. Anweisungen sind in der README-Datei im oben genannten Verzeichnis enthalten.

Verwenden Sie halcmd, um die vom Skript xhc-hb04.tcl verwendeten Pins und Signale anzuzeigen:

halcmd show pin xhc-hb04       (zeige alle xhc-hb04 Pins)
halcmd show pin pendant_util   (zeige alle pendant_util Pins)
halcmd show sig pendant:       (zeige alle pendant Signale)

AUTOR

Frederick Rible (frible@teaser.fr)