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

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

encoder.N.counts sint out

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

encoder.N.index-enable bool i/o

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

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

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

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

encoder.N.position-interpolated real out

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

encoder.N.position-scale real i/o

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

encoder.N.missing-teeth sint in

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

ПАРАМЕТРИ

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