LinuxCNC Documentation
This page is 92% translated. Untranslated text is shown in English.

СИНОПСИС

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

ОПИСАНИЕ

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.

Спецификаторы num_chan= и names= являются взаимоисключающими. Если ни *num_chan=, ни names= не указаны или если указан num_chan=0, значение по умолчанию равно трем.

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.

При использовании в режиме счетчика также можно включить режим индекса отсутствующих зубов, где используется промежуток в последовательности импульсов одного или нескольких зубов, как в индексном маркере. Эта система широко используется для датчиков положения коленвала автомобилей.

FUNCTIONS

encoder.update-counters (no floating-point)

Выполняет фактический подсчет путем выборки сигналов энкодера и декодирования квадратурных сигналов. Должен вызываться как можно чаще, желательно в два раза быстрее, чем максимальная желаемая скорость счета. Работает на всех каналах одновременно.

encoder.capture-position (использует плавающую запятую)

Получает необработанные значения счетчиков из update-counters и выполняет масштабирование и другие необходимые преобразования, обрабатывает смену счетчика и т. д. Может (и должен) вызываться реже, чем update-counters. Работает на всех каналах одновременно.

ИМЕНОВАНИЕ

Имена контактов и параметров имеют префикс: encoder..N. для N=0,1,…​,num-1 при использовании num_chan=num nameN. для nameN=name1,name2,.. . при использовании names=name1,name2,…​

Формат encoder..N. показан в следующих описаниях.

PINS

encoder.N.counter-mode bool i/o

Включает режим счетчика. Если true, счетчик подсчитывает каждый фронт входного сигнала фазы A, игнорируя значение на фазе B. Это полезно для подсчета выходного сигнала одноканального (неквадратурного) датчика. Если значение false (по умолчанию), оно считается в квадратурном режиме.

encoder.N.counts sint out

Position in encoder counts.

encoder.N.index-enable bool i/o

Если true, counts и position сбрасываются на ноль на следующем фронте Phase-Z. В то же время index-enable сбрасывается на ноль, чтобы указать, что фронт возник.

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

Определите минимальную скорость, при которой velocity будет оцениваться как ненулевая, а postition-interpolated будет интерполироваться. Единицы измерения min-speed-estimate такие же, как и единицы измерения velocity. Установка слишком низкого значения этого параметра приведет к тому, что переход velocity в 0 после прекращения поступления импульсов энкодера займет много времени.

encoder.N.phase-A bool in

Квадратурный вход для канала энкодера N.

encoder.N.phase-B bool in

Квадратурный ввод.

encoder.N.phase-Z bool in

Индексный импульсный вход.

encoder.N.position real out

Позиция в масштабированных единицах (см. position-scale)

encoder.N.position-interpolated real out

Позиция в масштабированных единицах, интерполированная между отсчетами энкодера. Действительно только тогда, когда скорость приблизительно постоянна и превышает min-speed-estimate. Не используйте для контроля положения.

encoder.N.position-scale real i/o

Масштабный коэффициент, в единицах на единицу длины. Например, если position-scale равно 500, то 1000 отсчетов кодера будут переданы как позиция в 2.0 единицы.

encoder.N.missing-teeth sint in

Количество зубов, отсутствующих в индексном промежутке. Например, шестерня с 60 зубьями и двумя укороченными зубьями для формирования индекса, обеспечивающего 58 импульсов на оборот, будет использовать position-scale 60 и missing-teeth 2.

encoder.N.rawcounts sint out

Необработанный счетчик, определенный update-counters. Это значение обновляется чаще, чем counts и position. На него также не влияют reset или индексный импульс.

encoder.N.reset bool in

Если true, counts и position немедленно сбрасываются в ноль.

encoder.N.velocity real out

Скорость в масштабированных единицах в секунду. encoder использует алгоритм, который значительно снижает шум квантования по сравнению с простым дифференцированием вывода position. Когда величина истинной скорости ниже min-speed-estimate, выход скорости равен 0.

encoder.N.velocity-rpm real out

Velocity in scaled units per minute. Simply encoder.N.velocity scaled by a factor of 60 for convenience.

encoder.N.x4-mode bool i/o

Включает режим times-4. Если true (по умолчанию), счетчик считает каждый фронт квадратурного сигнала (четыре отсчета за полный цикл). Если значение false, оно учитывается только один раз за полный цикл. В counter-mode этот параметр игнорируется.

encoder.N.latch-input bool in

+

encoder.N.latch-falling bool in (default: TRUE)

+

encoder.N.latch-rising bool in (default: TRUE)

+

encoder.N.counts-latched sint out

+

encoder.N.position-latched real out

Обновляет counts-latched и position-latched по фронту и/или срезу latch-input, как указано latch-rising и latch-falling.

encoder.N.counter-mode bool rw

Включает режим счетчика. Если true, счетчик подсчитывает каждый фронт входного сигнала фазы A, игнорируя значение на фазе B. Это полезно для подсчета выходного сигнала одноканального (неквадратурного) датчика. Если значение false (по умолчанию), оно считается в квадратурном режиме.

encoder.N.capture-position.tmax sint rw

Maximum time in ns it took to execute this function.

PARAMETERS

Компонент энкодера не имеет параметров HAL.