Страница 1 из 1

АКПП для РГИ :)

Добавлено: 28 янв 2015, 11:15
Сергей Саныч
Подключил самодельный пульт к станку
Обратил внимание , что у большинства фирменных пультов есть переключатель скорости подачи. (х1, х0.1 х0.01) Re: MyGUI #365. Показалось, что это не очень удобно. Сделал динамическое управление скоростью ручных перемещений. Когда штурвал крутишь медленно, скорость равна 0.01мм на деление, то есть оборот штурвала перемещает ось на 1мм. Начинаешь вращать быстрее - масштаб изменяется пропорционально скорости. При скорости штурвала около 2 об/сек скорость перемещения уже 3600 мм/мин (максимальная для станка) и за десяток оборотов проходим весь стол. Надо подойти точно - просто крути медленнее. Очень удобно.

https://www.youtube.com/watch?v=sn5-D_UdKGU

Код: Выделить всё

# 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

loadrt or2
addf or2.0 base-thread

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 => or2.0.in0 axis.0.jog-enable
net mpg-y matrix_kb.0.key.r1c1 => or2.0.in1 axis.2.jog-enable

net nn1 or2.0.out => not.3.in
net nn4 not.3.out => axis.1.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: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:01
Nick
Интересное решение, особенно для энкодера с маленьким количеством импульсов на оборот. Для энкодеров с 100 имп, может быть не очень удобно, т.к. выставление в 0 на них можно смотреть по шкале-лимбу.

А так хорошо. Главное к нему привыкнуть, чтобы случайно не воткнуть шпиндель в стол.

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:24
Сергей Саныч
У моего как раз 100 :)
Если работать по лимбу, то да, могут быть некоторые трудности. Но при малых скоростях (меньше заданного порога) масштаб фиксированный, можно шагать по сотке (1 деление лимба = 0,01мм).
Nick писал(а):Главное к нему привыкнуть, чтобы случайно не воткнуть шпиндель в стол.
Если штурвал остановить, движение останавливается немедленно (в пределах возможностей ускорений оси, конечно). "Накопления" хода не происходит. Клавишами и то легче фрезу сломать. Захотел подвинуть еще чуть-чуть, а палец с шифта не убрал. У меня, во всяком случае, такое бывало :oops:

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:28
nik1
Понравилось, возьму на заметку :good:

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:31
Nick
Сергей Саныч писал(а):Если штурвал остановить, движение останавливается немедленно (в пределах возможностей ускорений оси, конечно).
Кстати, назад откатывается?
Наблюдал такую ситуацию, когда стоят маленькие ускорения. Отпускаем кнопку вправо, станок по инерции проходит еще скажем 1см, и потом отъезжает на 1 см назад - туда, где отпустили кнопку.


И кстати, за счет чего достигается дискретность ровно в сотку, при axis.0.jog-vel-mode 1?

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:37
solanto
Осталось всё собрать в одном месте, написать HAL с пояснениями (Чтобы такие чайники как я разобрались) и усё.
P.S. я собирал ShuttleRU но разочаровался в нём. Т.к. по началу было (как мне тогда казалось) удобно, но потом стало пипец как сложно его штурвалом пользоваться, по этому решил оставить его корпус (доработав немного) и засунуть туда внутренности от этого пульта.

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:40
Nick
solanto писал(а):но потом стало пипец как сложно его штурвалом пользоваться,
В чем именно заключались сложности?

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:45
solanto
В том что внутреннее колесо это энкодер классический, а внешнее это какой-то датчик отклонения. Что бы быстро перемещаться нужно пользовать внешнее колеса, а точно позиционироваться внутреннее. В итоге пользования сломал две дорогих , тонких (0,6 и 0,8 мм) фрезы. Попользовав пульт друга с таким штурвалом, понял, что это то что мне нужно.

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:49
Сергей Саныч
Nick писал(а):Кстати, назад откатывается?
Наблюдал такую ситуацию, когда стоят маленькие ускорения. Отпускаем кнопку вправо, станок по инерции проходит еще скажем 1см, и потом отъезжает на 1 см назад - туда, где отпустили кнопку.
Вот чего не видел, так этого :thinking: Ни с энкодером, ни с кнопками. Наверно, надо ооочень маленькие ускорения ставить.
Nick писал(а):И кстати, за счет чего достигается дискретность ровно в сотку, при axis.0.jog-vel-mode 1?
Эээ... а какая связь? Реально этот пин служит только для того, чтобы прекратить движение оси при прекращении импульсов от энкодера. В 1 установлен специально для исключения "перебега".
Кстати, если на то есть сомнения, нетрудно задать порог скорости, выше которого этот пин ставится в 1, а ниже в 0,

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:53
Serg
Nick писал(а):Наблюдал такую ситуацию, когда стоят маленькие ускорения. Отпускаем кнопку вправо, станок по инерции проходит еще скажем 1см, и потом отъезжает на 1 см назад - туда, где отпустили кнопку.
Это axis.N так работает, просто на малых ускорениях заметнее.
Nick писал(а):И кстати, за счет чего достигается дискретность ровно в сотку, при axis.0.jog-vel-mode 1?
Дискретность задаётся в axis.0.jog-scale, а "axis.0.jog-vel-mode 1" - это стоб останавливалось когда штурвал перестаёшь крутить, а не когда проедет всё, что успел накрутить.

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 12:54
Nick
Сергей Саныч писал(а):Эээ... а какая связь? Реально этот пин служит только для того, чтобы прекратить движение оси при прекращении импульсов от энкодера.
А как при этом он будет работать, скажем
крутанули штурвал на 50 имп = 50мм за 1 сек и остановились. Где остановится станок? Через сколько после исчезновения сигнала?

И с какой "дискретностью" остановится? Т.е. остановится точно в позиции кратной одному импульсу = 1мм или прямо там, где решит, что импульсы прекратились?

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 13:15
Сергей Саныч
"крутанули" и точность - в данном случае вещи не совместимые. До 10 шагов в секунду масштаб соблюдается (0,01 мм/дел), а дальше плывет в сторону увеличения.
Nick писал(а):остановится точно в позиции кратной одному импульсу = 1мм
Такой масштаб не предусмотрен. Всё, что выше 0.01, может иметь любые значения (1мм - это верхний предел масштаба, а 0.01 - нижний). Смотреть придется не на лимб, а на УЦИ (DRO).
Разумеется, все пороги и коэффициенты можно подобрать "по вкусу".
Всё это затевалось для того, чтобы быстро и точно вручную подогнать станок к нужной точке. Если предполагается работа по лимбам в ручном режиме, как на обычном станке, то динамическое управление нужно отключать и вводить фиксированные значения масштаба.

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 15:53
Сергей Саныч
UAVpilot писал(а):
Nick писал(а):Наблюдал такую ситуацию, когда стоят маленькие ускорения. Отпускаем кнопку вправо, станок по инерции проходит еще скажем 1см, и потом отъезжает на 1 см назад - туда, где отпустили кнопку.
Это axis.N так работает, просто на малых ускорениях заметнее.
Сделал маленькое ускорение (50мм/сек вместо 400). Хоть со штурвалом, хоть с кнопками - нет такого явления. Отпускаешь кнопку/бросаешь штурвал - ось начинает тормозиться с дозволенным ускорением и останавливается. Всё. Назад не съезжает :thinking:

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 15:55
Nick
А, может у меня было маленькое ускорение у stepgen - меньше, чем у оси, тогда такое точно бы проявлялось... :freak:

Re: АКПП для РГИ :)

Добавлено: 28 янв 2015, 16:39
Serg
Сергей Саныч писал(а):Сделал маленькое ускорение (50мм/сек вместо 400).
Нужно ещё и "axis.0.jog-vel-mode 0". И штурвал крутить надо не опережая движение оси, тогда при остановке штурвала axis.0 плавно затормозит с переездом и потом "отыграет" назад этот переезд. FERROR тоже увеличь, а то вырубится от переезда.