LinuxCNC Documentation

In diesem Beispiel wird erklärt, wie die heute auf dem Markt befindlichen MPG-Hängegeräte angeschlossen werden können. In diesem Beispiel wird ein MPG3-Pendant und eine C22-Pendant-Schnittstellenkarte von CNC4PC verwendet, die an einen zweiten parallelen Port angeschlossen ist, der in den PCI-Steckplatz 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.

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
# Jog Pendant
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

# Wenn Ihr MPG ein Quadratursignal pro Klick ausgibt, setzen Sie x4 auf 1.
# Wenn Ihr MPG 1 Impuls pro Klick ausgibt, setzen Sie x4 auf 0
setp encoder.0.x4-mode 0

# Für den Geschwindigkeitsmodus, auf 1 setzen.
# Im Geschwindigkeitsmodus hält die Achse an, wenn der Drehknopf gestoppt wird.
# auch wenn das bedeutet, dass die befohlene Bewegung nicht abgeschlossen ist,
# Für den Positionsmodus (die Voreinstellung), setzen Sie auf 0.
# Im Positionsmodus bewegt sich die Achse bei jeder Zählung genau jog-scale viele
# Einheiten für jede Zählung, unabhängig davon, wie lange das dauern könnte,
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0

# Hier wird die Skala festgelegt, die auf der Grundlage des Eingangs am mux4 verwendet wird.
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001

# Die Eingänge der Komponente mux4
net scale1 mux4.0.sel0 <= parport.1.pin-09-in
net scale2 mux4.0.sel1 <= parport.1.pin-10-in

# Die Ausgabe des mux4 wird an jede Achsen-Jog-Skala gesendet
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale

# Die MPG Eingänge
net mpg-a encoder.0.phase-A <= parport.1.pin-02-in
net mpg-b encoder.0.phase-B <= parport.1.pin-03-in

# The Achsen-Auswahl Eingänge
net mpg-x axis.x.jog-enable <= parport.1.pin-04-in
net mpg-y axis.y.jog-enable <= parport.1.pin-05-in
net mpg-z axis.z.jog-enable <= parport.1.pin-06-in

# Der Encoder-Ausgang zählt für die Achse. Nur die ausgewählte Achse wird sich bewegen.
net encoder-counts  <= encoder.0.counts
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts

If the machine is capable of high acceleration, each click of the MPG can jerk the machine. To smooth out the moves, lower the acceleration of wheel jogs with the axis.L.jog-accel-fraction pins, as a fraction of the INI acceleration. With PLANNER_TYPE = 1 and a MAX_JERK for the axes in the INI file, wheel jogs are also jerk limited. Add these lines to the jog.hal above; the mux still selects the jog scale.

Smoother wheel jogs
setp axis.x.jog-accel-fraction 0.25
setp axis.y.jog-accel-fraction 0.25
setp axis.z.jog-accel-fraction 0.25