81 lines
2.8 KiB
Groff
81 lines
2.8 KiB
Groff
|
|
.TH ENCODER_RATIO "9" "2007-01-16" "LinuxCNC Documentation" "HAL Component"
|
|
.de TQ
|
|
.br
|
|
.ns
|
|
.TP \\$1
|
|
..
|
|
|
|
.SH NAME
|
|
encoder_ratio \- an electronic gear to synchronize two axes
|
|
.SH SYNOPSIS
|
|
\fBloadrt encoder_ratio [num_chan=\fInum\fB | names=\fIname1\fB[,\fIname2...\fB]]
|
|
|
|
.SH DESCRIPTION
|
|
\fBencoder_ratio\fR can be used to synchronize two axes (like an "electronic
|
|
gear"). It counts encoder pulses from both axes in software, and produces an
|
|
error value that can be used with a PID loop to make the slave encoder track
|
|
the master encoder with a specific ratio.
|
|
|
|
This module supports up to eight axis pairs. The number of pairs is set by the
|
|
module parameter \fBnum_chan\fR. Alternatively, specify \fBnames=\fR and unique names
|
|
separated by commas.
|
|
.P
|
|
The \fBnum_chan=\fR and \fBnames=\fR specifiers are mutually exclusive.
|
|
If neither \fBnum_chan=\fR nor \fBnames=\fR are specified, the default value is one.
|
|
|
|
|
|
.SH FUNCTIONS
|
|
.TP
|
|
.B encoder-ratio.sample
|
|
Read all input pins. Must be called at twice the maximum desired count rate.
|
|
.TP
|
|
.B encoder-ratio.update (uses floating-point)
|
|
Updates all output pins. May be called from a slower thread.
|
|
|
|
.SH NAMING
|
|
The names for pins and parameters are prefixed as:
|
|
\fBencoder-ratio.N.\fR for N=0,1,...,num-1 when using \fBnum_chan=num\fR
|
|
\fBnameN.\fR for nameN=name1,name2,... when using \fBnames=name1,name2,...\fR
|
|
|
|
The \fBencoder-ratio.N.\fR format is shown in the following descriptions.
|
|
|
|
.SH PINS
|
|
|
|
.TP
|
|
.B encoder-ratio.\fIN\fB.master-A\fR bit in
|
|
.TQ
|
|
.B encoder-ratio.\fIN\fB.master-B\fR bit in
|
|
.TQ
|
|
.B encoder-ratio.\fIN\fB.slave-A\fR bit in
|
|
.TQ
|
|
.B encoder-ratio.\fIN\fB.slave-B\fR bit in
|
|
The encoder channels of the master and slave axes
|
|
.TP
|
|
.B encoder-ratio.\fIN\fB.enable\fR bit in
|
|
When the enable pin is FALSE, the error pin simply reports the slave axis
|
|
position, in revolutions. As such, it would normally be connected to the
|
|
feedback pin of a PID block for closed loop control of the slave axis.
|
|
Normally the command input of the PID block is left unconnected (zero), so the
|
|
slave axis simply sits still. However when the enable input goes TRUE, the
|
|
error pin becomes the slave position minus the scaled master position. The
|
|
scale factor is the ratio of master teeth to slave teeth. As the master moves,
|
|
error becomes non-zero, and the PID loop will drive the slave axis to track the
|
|
master.
|
|
.TP
|
|
.B encoder-ratio.\fIN\fB.error\fR float out
|
|
The error in the position of the slave (in revolutions)
|
|
.SH PARAMETERS
|
|
.TP
|
|
.B encoder-ratio.N.master-ppr\fR unsigned rw
|
|
.TQ
|
|
.B encoder-ratio.N.slave-ppr\fR unsigned rw
|
|
The number of pulses per revolution of the master and slave axes
|
|
.TP
|
|
.B encoder-ratio.N.master-teeth\fR unsigned rw
|
|
.TQ
|
|
.B encoder-ratio.N.slave-teeth\fR unsigned rw
|
|
The number of "teeth" on the master and slave gears.
|
|
|
|
.SH SEE ALSO
|
|
\fBencoder(9)\fR
|