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 bit i/o

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

encoder.N.counts s32 out

Position in encoder counts.

encoder.N.index-enable bit i/o

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

encoder.N.min-speed-estimate float in (по умолчанию: 1.0)

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

encoder.N.phase-A bit in

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

encoder.N.phase-B bit in

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

encoder.N.phase-Z bit in

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

encoder.N.position float out

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

encoder.N.position-interpolated float out

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

encoder.N.position-scale float i/o

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

encoder.N.missing-teeth s32 in

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

encoder.N.rawcounts s32 out

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

encoder.N.reset bit in

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

encoder.N.velocity float out

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

encoder.N.velocity-rpm float out

Скорость в масштабированных единицах в минуту. Просто encoder.N.velocity, масштабированный для удобства в 60 раз.

encoder.N.x4-mode bit i/o

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

encoder.N.latch-input bit in

+

encoder.N.latch-falling bit in (по умолчанию: TRUE)

+

encoder.N.latch-rising bit in (по умолчанию: TRUE)

+

encoder.N.counts-latched s32 out

+

encoder.N.position-latched float out

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

encoder.N.counter-mode bit rw

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

encoder.N.capture-position.tmax s32 rw

Maximum time in ns it took to execute this function.

PARAMETERS

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