Цей приклад пояснює, як підключити поширені на сьогоднішньому ринку підвісні пристрої MPG. У цьому прикладі використовується підвісний пристрій MPG3 та інтерфейсна карта C22 від CNC4PC, підключена до другого паралельного порту, вставленого в слот PCI. Цей приклад надає вам 3 осі з 3-кроковими приростами 0,1, 0,01, 0,001
У файлі custom.hal або jog.hal додайте наступне, переконавшись, що mux4 або кодер ще не використовуються. Якщо використовуються, просто збільште кількість і змініть номери посилань. Більше інформації про mux4 і кодер можна знайти в посібнику HAL або на сторінці man.
Докладнішу інформацію про додавання файлу HAL див. у розділі INI HAL Section документації. Для кожного з’єднання та всіх координатних літер передбачені контакти управління рухом. У цьому прикладі для руху в режимі світового простору використовуються контакти осі руху. Машини з неідентичною кінематикою можуть потребувати додаткових з’єднань для руху в режимі з’єднання.
# Підвіска Jog loadrt encoder num_chan=1 loadrt mux4 count=1 addf encoder.capture-position servo-thread addf encoder.update-counters base-thread addf mux4.0 servo-thread # Якщо ваш MPG видає квадратурний сигнал на клацання, встановіть x4 на 1 # Якщо ваш MPG видає 1 імпульс на клацання, встановіть x4 на 0 setp encoder.0.x4-mode 0 # Для режиму швидкості встановіть значення 1. # У режимі швидкості вісь зупиняється, коли зупиняється циферблат, # навіть якщо це означає, що заданий рух не завершено. # Для режиму положення (за замовчуванням) встановіть значення 0. # У режимі положення вісь рухатиметься точно на величину шкали імпульсного переміщення # за кожним імпульсом, незалежно від того, скільки часу це займе. setp axis.x.jog-vel-mode 0 setp axis.y.jog-vel-mode 0 setp axis.z.jog-vel-mode 0 # Це встановлює масштаб, який буде використовуватися на основі вхідних даних mux4. setp mux4.0.in0 0.1 setp mux4.0.in1 0.01 setp mux4.0.in2 0.001 # Входи компонента mux4 net scale1 mux4.0.sel0 <= parport.1.pin-09-in net scale2 mux4.0.sel1 <= parport.1.pin-10-in # Вихідний сигнал з mux4 надсилається на кожну осьову шкалу поштовхів. net mpg-scale <= mux4.0.out net mpg-scale => axis.x.jog-scale net mpg-scale => axis.y.jog-scale net mpg-scale => axis.z.jog-scale # Входи MPG net mpg-a encoder.0.phase-A <= parport.1.pin-02-in net mpg-b encoder.0.phase-B <= parport.1.pin-03-in # Входи вибору осі net mpg-x axis.x.jog-enable <= parport.1.pin-04-in net mpg-y axis.y.jog-enable <= parport.1.pin-05-in net mpg-z axis.z.jog-enable <= parport.1.pin-06-in # Вихідний сигнал енкодера підраховується до осі. Рухатиметься лише вибрана вісь. net encoder-counts <= encoder.0.counts net encoder-counts => axis.x.jog-counts net encoder-counts => axis.y.jog-counts net encoder-counts => axis.z.jog-counts
Якщо машина здатна на високе прискорення, щоб згладити рухи для кожного клацання MPG, використовуйте компонент посилання:../man/man9/ilowpass.9.html[ilowpass] для обмеження прискорення.
loadrt encoder num_chan=1 loadrt mux4 count=1 addf encoder.capture-position servo-thread addf encoder.update-counters base-thread addf mux4.0 servo-thread loadrt ilowpass addf ilowpass.0 servo-thread setp ilowpass.0.scale 1000 setp ilowpass.0.gain 0.01 # Якщо ваш MPG видає квадратурний сигнал на клацання, встановіть x4 на 1 # Якщо ваш MPG видає 1 імпульс на клацання, встановіть x4 на 0 setp encoder.0.x4-mode 0 # Для режиму швидкості встановіть значення 1. # У режимі швидкості вісь зупиняється, коли зупиняється циферблат, # навіть якщо це означає, що заданий рух не завершено. # Для режиму положення (за замовчуванням) встановіть значення 0. # У режимі положення вісь рухатиметься точно на величину шкали імпульсного переміщення # за кожним імпульсом, незалежно від того, скільки часу це займе. setp axis.x.jog-vel-mode 0 setp axis.y.jog-vel-mode 0 setp axis.z.jog-vel-mode 0 # Це встановлює масштаб, який буде використовуватися на основі вхідного сигналу на mux4 # Використаний тут масштаб має бути помножений на масштаб ilowpass setp mux4.0.in0 0.0001 setp mux4.0.in1 0.00001 setp mux4.0.in2 0.000001 # Входи компонента mux4 net scale1 mux4.0.sel0 <= parport.1.pin-09-in net scale2 mux4.0.sel1 <= parport.1.pin-10-in # Вихідні дані з лічильників кодувальника надсилаються до ilowpass net mpg-out ilowpass.0.in <= encoder.0.counts # Вихідний сигнал з mux4 надсилається на кожну осьову шкалу поштовхів. net mpg-scale <= mux4.0.out net mpg-scale => axis.x.jog-scale net mpg-scale => axis.y.jog-scale net mpg-scale => axis.z.jog-scale # Входи MPG net mpg-a encoder.0.phase-A <= parport.1.pin-02-in net mpg-b encoder.0.phase-B <= parport.1.pin-03-in # Входи вибору осі net mpg-x axis.x.jog-enable <= parport.1.pin-04-in net mpg-y axis.y.jog-enable <= parport.1.pin-05-in net mpg-z axis.z.jog-enable <= parport.1.pin-06-in # Вихід з ilowpass надсилається на кожну вісь jog count # Рухатиметься лише вибрана вісь. net encoder-counts <= ilowpass.0.out net encoder-counts => axis.x.jog-counts net encoder-counts => axis.y.jog-counts net encoder-counts => axis.z.jog-counts