Страница 1 из 2
"Управление LinuxCNC при помощи внешних кнопок
Добавлено: 04 мар 2015, 16:45
Mihaill
Собран пульт управления по схеме
http://www.cnc-club.ru/forum/download/f ... =view&mt=1. На нем установлен галетный переключатель для выбора активной оси, энкодер с маховичком с применным АКПП
http://www.cnc-club.ru/forum/viewtopic. ... 18#p168918 и все это отлично работает, но остались не привязанными три кнопки. В этом то как раз и загвоздка, две из них хочется их использовать как +/- постоянную подачу заданную в основном окне применительно к выбранной галетником оси, а третью включение и выключение програмного цикла обработки. При нажатии кнопки они становятся "true" (1), а без нажатия "false" (0).
Контакты на которые выведены кнопки:
matrix_kb.0.key.r0c0
matrix_kb.0.key.r1c0
matrix_kb.0.key.r2c0
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 04 мар 2015, 19:25
verser
Вот
здесь можно глянуть как подобную задачу решали для кнопок джойстика через simulated encoder.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 04 мар 2015, 21:25
Nick
Так в чем проблема?
Есть пины в halui jog.selected plus и minus. Ну и соответственно для пуска и пауза программы, только их надо через toggle привязать, или через and2, так как у тебя 1 кнопка на два действия.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 05 мар 2015, 09:25
Mihaill
Nick писал(а):Так в чем проблема?
Проблема собственно практически в полном отсутствии опыта в подключении.
Нужен был пинок в нужном направлении.
Теперь направления ясны буду копать по тИхонькой, глядишь и получится.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 06 мар 2015, 12:25
Mihaill
Покопал вот то что из этого получилось,
даже не стал заморачиватся конкретной задачей, попытался выполнить любое существуещее действие, выполнить пин в halui к примеру halui.estop.activate,
вот так, добавил в существующий hal.(net mpg-0 matrix_kb.0.key.r2c0 => halui.estop.activate) соответственно кроме ошибки не чего не произошло, по всей видимости надо добавить компоненты, возможно это должно выглядеть так loadrt conv_s32_float count=mpg-0.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 06 мар 2015, 12:57
Serg
Мы должны догадаться какая ошибка произошла?..
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 06 мар 2015, 13:50
Mihaill
К сожалению комп с линуксом в гараже рядом со станком и доступа к интернету не имеет, ошибку не сохранил, исправлюсь.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 06 мар 2015, 15:13
Nick
Скорее всего надо в ini добавить в раздел [HAL]
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 06 мар 2015, 16:28
Mihaill
Как раз развернул лопату и копал именно в этом направлении здесь
http://linuxcnc.org/docs/devel/html/gui/halui.html. Как оказалось, здесь как раз то что доктор прописал.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 07 мар 2015, 09:48
Mihaill
Nick писал(а):Скорее всего надо в ini добавить в раздел [HAL]
Спасибо, доктор помогло ваше лекарство, кнопочки заработали.
К сожалению достичь поставленных целей этим инструментом (hflui) не получится так как кнопочки привязываются к выбранным осям на экране, а не галетником. Начальная цель была неверна, одна из кнопок должна быть с фиксацией и переключать режимы, работа с энкодером или с кнопками +/- подача.
Буду копать дальше.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 07 мар 2015, 13:58
Serg
а кто мешает галетником выбирать оси?..
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 09 мар 2015, 18:31
Mihaill
UAVpilot писал(а):а кто мешает галетником выбирать оси?..
А как это сделать

? Подскажите пожалуйста.
К сожалению с управлением через HALUI так до конца разобраться разобраться не смог, большинство пинов не срабатывают в том числе и halui jog.selected plus в hal.файле прописано так
net mpg0 matrix_kb.0.key.r0c0 => halui jog.selected plus, чем лечить?
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 09 мар 2015, 19:36
nkp
Mihaill писал(а):net mpg0 matrix_kb.0.key.r0c0 => halui jog.selected plus, чем лечить?
halui.jog-speed определена?
setp halui.jog-speed 100 #для пробы
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 09 мар 2015, 20:22
Serg
Mihaill писал(а):А как это сделать
компонентами типа mux переключаете сигналы на пины соотв. оси, управляеть mux от галетника.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 10:04
Nick
Или вот так:
halui.joint.N.select bit in
pin for selecting joint N
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 15:15
Mihaill
Спасибо, именно так и сделал.
Код: Выделить всё
net mpg-x matrix_kb.0.key.r2c1 => axis.0.jog-enable halui.joint.0.select
net mpg-y matrix_kb.0.key.r1c1 => axis.1.jog-enable halui.joint.1.select
net mpg-z matrix_kb.0.key.r0c1 => axis.2.jog-enable halui.joint.2.select
net mpg-0 matrix_kb.0.key.r0c0 => halui.jog.selected.minus
net mpg-1 matrix_kb.0.key.r1c0 => halui.jog.selected.plus
net mpg-2 matrix_kb.0.key.r2c0 => halui.estop.activate
setp halui.jog-speed 200
Осталось прикрутить подачу к ползунку на экране и получится вполне такой практичный пульт.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 15:26
Serg
А эти зачем?
axis.0.jog-enable
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 15:51
Mihaill
Насколько я понял это активация выбраной оси для управления энкодером.
Вот первичный вариант
Код: Выделить всё
# Encoder jog wheel
loadrt serport io=0x3f8
addf serport.0.read base-thread
addf serport.0.write base-thread
loadrt matrix_kb config=3x2s
addf matrix_kb.0 servo-thread
setp matrix_kb.0.negative-logic 0
setp matrix_kb.0.key_rollover 6
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.counter-mode 0
setp encoder.0.x4-mode 0
setp encoder.0.position-scale 1000.
setp encoder.0.min-speed-estimate 500.
loadrt abs
addf abs.0 servo-thread
loadrt lowpass
addf lowpass.0 servo-thread
setp lowpass.0.gain 0.01
loadrt limit1
addf limit1.0 servo-thread
setp limit1.0.min 0.01
setp limit1.0.max 1.0
net col0 serport.0.pin-9-in => matrix_kb.0.col-00-in
net col1 serport.0.pin-8-in => matrix_kb.0.col-01-in
net enca serport.0.pin-6-in => encoder.0.phase-A
net encb serport.0.pin-1-in => encoder.0.phase-B
net row0 matrix_kb.0.row-00-out => serport.0.pin-4-out
net row1 matrix_kb.0.row-01-out => serport.0.pin-3-out
net row2 matrix_kb.0.row-02-out => serport.0.pin-7-out
net mpg-x matrix_kb.0.key.r2c1 => axis.0.jog-enable
net mpg-y matrix_kb.0.key.r1c1 => axis.1.jog-enable
net mpg-z matrix_kb.0.key.r0c1 => axis.2.jog-enable
setp axis.0.jog-vel-mode 1
setp axis.1.jog-vel-mode 1
setp axis.2.jog-vel-mode 1
net pend-counts encoder.0.counts => axis.0.jog-counts axis.1.jog-counts axis.2.jog-counts
net enc-vel encoder.0.velocity => lowpass.0.in
net evel1 lowpass.0.out => abs.0.in
net abs-enc-vel abs.0.out => limit1.0.in
net pend-scale limit1.0.out => axis.0.jog-scale axis.1.jog-scale axis.2.jog-scale
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 19:39
Serg
Mihaill писал(а):Насколько я понял это активация выбраной оси для управления энкодером.
jog можно можно сделать двумя способами: либо через haliu.jog*, либо через axis.N.jog*, объединять их бессмысленно, только глючить будет.
Разница между этими способами будет заметна только при использовании нетривиальной кинематики.
Re: "Управление LinuxCNC при помощи внешних кнопок
Добавлено: 10 мар 2015, 21:05
Mihaill
С утра погонял станок в обоих режимах проблем незамечено, а дальше видно будет, если проявятся наверно придется развязать режимы пожертвовав для этого одну кнопку.
А на данный момент сильно интересует где можно отыскать значение текущей скорости для halaui.jog-speed.