LinuxCNC Documentation

Цей приклад пояснює, як підключити поширені на сьогоднішньому ринку підвісні пристрої 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.hal
# Підвіска 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

If the machine is capable of high acceleration, each click of the MPG can jerk the machine. To smooth out the moves, lower the acceleration of wheel jogs with the axis.L.jog-accel-fraction pins, as a fraction of the INI acceleration. With PLANNER_TYPE = 1 and a MAX_JERK for the axes in the INI file, wheel jogs are also jerk limited. Add these lines to the jog.hal above; the mux still selects the jog scale.

Smoother wheel jogs
setp axis.x.jog-accel-fraction 0.25
setp axis.y.jog-accel-fraction 0.25
setp axis.z.jog-accel-fraction 0.25