LinuxCNC Documentation
This page is 98% 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.

При використанні в режимі лічильника також можна ввімкнути режим індексації відсутніх зубців, де пропуск в імпульсному потязі одного або декількох зубців використовується як індексний маркер. Ця система широко використовується в автомобільних датчиках положення колінчастого вала.

ФУНКЦІЇ

encoder.update-counters (no floating-point)

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

енкодер.позиція захоплення (використовує числа з плаваючою комою)

Збирає необроблені дані з update-counters і виконує масштабування та інші необхідні перетворення, обробляє перехід лічильника тощо. Може (і повинен) викликатися рідше, ніж update-counters. Працює одночасно на всіх каналах.

НАШ

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

Формат енкодер.N. показано в наступних описах.

ПІНИ

encoder.N.counter-mode bit i/o

Увімкнення режиму лічильника. Якщо значення true, лічильник підраховує кожен передній фронт вхідного сигналу фази A, ігноруючи значення фази B. Це корисно для підрахунку вихідного сигналу одноканального (неквадратурного) датчика. Якщо значення false (за замовчуванням), підрахунок відбувається в квадратурному режимі.

encoder.N.counts s32 out

Позиція в лічильниках кодера.

encoder.N.index-enable bit i/o

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

encoder.N.min-speed-estimate float in (за замовчуванням: 1.0)

Визначте мінімальну швидкість, при якій швидкість буде оцінюватися як відмінна від нуля, а позиція-інтерпольована буде інтерпольована. Одиниці виміру min-speed-estimate такі самі, як і одиниці виміру швидкості. Занадто низьке значення цього параметра призведе до того, що швидкість буде довго досягати 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

Позиція в масштабованих одиницях (див. позиція-шкала)

encoder.N.position-interpolated float out

Позиція в масштабованих одиницях, інтерпольована між відліками енкодера. Дійсна лише тоді, коли швидкість приблизно постійна та перевищує мінімальна оцінка швидкості. Не використовувати.

encoder.N.position-scale float i/o

Коефіцієнт масштабування в одиницях на одиницю довжини. Наприклад, якщо position-scale дорівнює 500, то 1000 відліків кодера буде передано як позиція 2,0 одиниці.

encoder.N.missing-teeth s32 in

Кількість зубців, що відсутні в індексному проміжку. Наприклад, шестерня з 60 зубцями, у якої два зубці вкорочені для формування індексу, так що на один оберт припадає 58 імпульсів, використовуватиме шкалу положення 60 і кількість відсутніх зубців 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. Коли величина реальної швидкості нижча за мінімальну оцінку швидкості, вихідні дані швидкості дорівнюють 0.

encoder.N.velocity-rpm float out

Швидкість у масштабованих одиницях за хвилину. Просто енкодер.N.швидкість масштабована з коефіцієнтом 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.

ПАРАМЕТРИ

Компонент кодера не має параметрів HAL.