LinuxCNC Documentation

SYNOPSIS

loadrt encoder [ num_chan=num | names=name1[,name2…​] ]

BESCHREIBUNG

encoder is used to measure position by counting the pulses generated by a quadrature encoder. As a software-based implementation it is much less expensive than hardware, but has a limited maximum count rate. The limit is in the range of 10 kHz to 50 kHz, depending on the computer speed and other factors. If better performance is needed, a hardware encoder counter is a better choice. Some hardware-based systems can count at MHz rates.

encoder supports a maximum of eight channels. The number of channels actually loaded is set by the num_chan argument when the module is loaded. Alternatively, specify names= and unique names separated by commas.

Die Angaben num_chan= und names= schließen sich gegenseitig aus. Wenn weder num_chan= noch names= angegeben sind, oder wenn num_chan=0 angegeben ist, dann ist der Standardwert drei.

encoder has a one-phase, unidirectional mode called counter. In this mode, the phase-B input is ignored; the counts increase on each rising edge of phase-A. This mode may be useful for counting a unidirectional spindle with a single input line, though the noise-resistant characteristics of quadrature are lost.

Bei Verwendung im Gegenmodus ist es auch möglich, den Indexmodus für fehlende Zähne zu aktivieren, bei dem eine Lücke in der Impulsfolge eines oder mehrerer Zähne als Indexmarkierung verwendet wird. Dieses System wird häufig bei Kurbelwellensensoren für Kraftfahrzeuge verwendet.

FUNKTIONEN

encoder.update-counters (no floating-point)

Führt die eigentliche Zählung durch, indem er die Encodersignale abtastet und die Quadraturwellenformen dekodiert. Muss so häufig wie möglich aufgerufen werden, vorzugsweise doppelt so schnell wie die maximal gewünschte Zählrate. Arbeitet auf allen Kanälen gleichzeitig.

encoder.capture-position (uses floating point)

Erfasst die rohen Zählungen von update-counters und führt Skalierungen und andere notwendige Konvertierungen durch, behandelt den Zählerwechsel, usw. Kann (und sollte) weniger häufig aufgerufen werden als update-counters. Wirkt auf alle Kanäle gleichzeitig.

NAMING

Die Namen für Pins und Parameter erhalten folgende Präfixe: encoder.N. für N=0,1,…​,num-1 bei Verwendung von num_chan=num nameN. für nameN=name1,name2,…​ bei Verwendung von names=name1,name2,…​

Das Format encoder.N. wird in den folgenden Beschreibungen dargestellt.

PINS

encoder.N.counter-mode bit i/o

Aktiviert den Zählermodus. Bei "true" zählt der Zähler jede steigende Flanke des Phase-A-Eingangs und ignoriert den Wert an Phase-B. Dies ist nützlich für die Zählung des Ausgangs eines einkanaligen (nicht quadratischen) Sensors. Wenn false (Standardeinstellung), wird im Quadraturmodus gezählt.

encoder.N.counts s32 out

Position in Encoder-Zählungen (engl. counts).

encoder.N.index-enable bit i/o

Wenn wahr, werden counts und position bei der nächsten steigenden Flanke von Phase-Z auf Null zurückgesetzt. Gleichzeitig wird index-enable auf Null zurückgesetzt, um anzuzeigen, dass die steigende Flanke stattgefunden hat.

encoder.N.min-speed-estimate float in (default: 1.0)

Bestimmen Sie die Mindestgeschwindigkeit, bei der velocity (Geschwindigkeit) als ungleich Null geschätzt wird und postition-interpolated (Position-interpoliert) interpoliert wird. Die Einheiten von min-speed-estimate (geschätzte Mindestgeschwindigkeit) sind die gleichen wie die Einheiten von velocity. Wird dieser Parameter zu niedrig eingestellt, dauert es sehr lange, bis velocity auf 0 geht, nachdem keine Geberimpulse (engl. encoder pulses) mehr ankommen.

encoder.N.phase-A bit in

Quadrature input for encoder channel N.

encoder.N.phase-B bit in

Quadratureingabe.

encoder.N.phase-Z bit in

Index-Impulseingang.

encoder.N.position float out

Position in skalierten Einheiten (siehe Positionsskala/position-scale)

encoder.N.position-interpolated float out

Position in skalierten Einheiten, interpoliert zwischen Encoderzählungen. Nur gültig, wenn die Geschwindigkeit annähernd konstant ist und über min-speed-estimate liegt. Nicht für die Lageregelung verwenden.

encoder.N.position-scale float i/o

Skalierungsfaktor, in Zählungen pro Längeneinheit. Wenn z. B. position-scale* (Positionsskala) 500 ist, werden 1000 Zählungen des Encoders als eine Position von 2,0 Einheiten gemeldet.

encoder.N.missing-teeth s32 in

Die Anzahl der Zähne, die in der Schaltlücke fehlen. Bei einem Zahnrad mit 60 Zähnen, bei dem zwei Zähne gekürzt wurden, um eine Schaltlücke zu bilden, so dass 58 Impulse pro Umdrehung entstehen, wird beispielsweise eine Positionsskala von 60 und eine Fehlzahnzahl von 2 verwendet.

encoder.N.rawcounts s32 out

Der Rohwert, wie er von update-counters ermittelt wurde. Dieser Wert wird häufiger aktualisiert als counts und position. Er wird auch nicht von reset oder dem Indeximpuls beeinflusst.

encoder.N.reset bit in

Wenn wahr, werden counts und position sofort auf Null zurückgesetzt.

encoder.N.velocity float out

Geschwindigkeit in skalierten Einheiten pro Sekunde. encoder verwendet einen Algorithmus, der das Quantisierungsrauschen im Vergleich zu einer einfachen Differenzierung des position-Ausgangs stark reduziert. Wenn der Betrag der tatsächlichen Geschwindigkeit unter der geschätzten Mindestgeschwindigkeit liegt, ist die Geschwindigkeitsausgabe 0.

encoder.N.velocity-rpm float out

Geschwindigkeit in skalierten Einheiten pro Minute. Wie encoder..N..velocity, nur der Einfachheit halber skaliert mit einem Faktor von 60.

encoder.N.x4-mode bit i/o

Aktiviert den Times-4-Modus. Bei true (Standardeinstellung) zählt der Zähler jede Flanke der Quadraturwellenform (vier Zählungen pro vollem Zyklus). Wenn false, zählt er nur einmal pro vollem Zyklus. Im Zählermodus wird dieser Parameter ignoriert.

encoder.N.latch-input bit in

+

encoder.N.latch-falling bit in (Voreinstellung: TRUE)

+

encoder.N.latch-rising bit in (Voreinstellung: TRUE)

+

encoder.N.counts-latched s32 out

+

encoder.N.position-latched float out

Aktualisieren Sie counts-latched (Zähler-verriegelt) und position-latched (Position-verriegelt) bei der steigenden und/oder fallenden Flanke von latch-input (Verriegelungseingang), wie durch latch-rising (Verriegelung-steigend) und latch-falling (Verriegelung-fallend) angezeigt.

encoder.N.counter-mode bit rw

Aktiviert den Zählermodus. Bei "true" zählt der Zähler jede steigende Flanke des Phase-A-Eingangs und ignoriert den Wert an Phase-B. Dies ist nützlich für die Zählung des Ausgangs eines einkanaligen (nicht quadratischen) Sensors. Wenn false (Standardeinstellung), wird im Quadraturmodus gezählt.

encoder.N.capture-position.tmax s32 rw

Maximum time in ns it took to execute this function.

PARAMETER

Die Encoder-Komponente hat keine HAL-Parameter.