7i92+7i77 токарный станок 16а20ф3

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
SONIC300077
Опытный
Сообщения: 131
Зарегистрирован: 07 апр 2013, 18:17
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

7i92+7i77 токарный станок 16а20ф3

Сообщение SONIC300077 »

Всем хорошего дня !)
Поменял станку мозги на Mesa 7i92 + 7i77 ОС Debian 9 установлен вручную LinuXcnc v2.8
Нужна помощь доделать,

Привода, концевые, обнуление, резцедержка работаю!

Не получается Настроить Шпиндель и коробку передач 3 положения на коробке 2 датчика
вот тут https://www.cnc-club.ru/forum/viewtopi ... F&start=20 есть по шпинделю готовые настройки
но у меня не получается перенести их наверно большая разница в версиях!

И еще нужно настроить

1) Кнопка "Вращение шпинделя" ( на удержание кнопки, заданно скорость 5об.м)
2)"Смазка направляющих" (включается по таймеру например каждые 45мин на 3с )
3) "маховичок Энкодер" (один маховичок ручное управление для двух осей)
4) Галетник "шпиндель остановить" (при удержании кнопки шпиндель остановлен)


Вот кусок Hal шпинделя с моими попытками переделать

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

#*******************
#  SPINDLE
#*******************
loadrt abs count=2 
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle,scale.gear
loadrt near
loadrt mux4 names=mux4.gear

addf scale.gear servo-thread
addf mux4.gear servo-thread
addf abs.0 servo-thread
addf abs.1 servo-thread
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf near.0 servo-thread

setp   pid.s.Pgain     [SPINDLE_0]P
setp   pid.s.Igain     [SPINDLE_0]I
setp   pid.s.Dgain     [SPINDLE_0]D
setp   pid.s.bias      [SPINDLE_0]BIAS
setp   pid.s.FF0       [SPINDLE_0]FF0
setp   pid.s.FF1       [SPINDLE_0]FF1
setp   pid.s.FF2       [SPINDLE_0]FF2
setp   pid.s.deadband  [SPINDLE_0]DEADBAND
setp   pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp   pid.s.error-previous-target true

net spindle-index-enable  <=> pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm     => pid.s.command
net spindle-vel-fb-rpm      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---PWM Generator signals/setup---

setp   hm2_7i92.0.7i77.0.1.analogout2-scalemax  [SPINDLE_0]OUTPUT_SCALE
setp   hm2_7i92.0.7i77.0.1.analogout2-minlim    [SPINDLE_0]OUTPUT_MIN_LIMIT
setp   hm2_7i92.0.7i77.0.1.analogout2-maxlim    [SPINDLE_0]OUTPUT_MAX_LIMIT

net spindle-output      => hm2_7i92.0.7i77.0.1.analogout2

net  spindle-vel-cmd =>  abs.1.in

net spindle-vel-abs  abs.1.out => scale.gear.in
#net Spindle-motor-command scale.gear.out  hm2_7i92.0.7i77.0.1.analogout2
#net spindle-enable      =>  hm2_7i92.0.7i77.0.1.analogout2 

# ---Encoder feedback signals/setup---

setp    hm2_7i92.0.encoder.02.counter-mode 0
setp    hm2_7i92.0.encoder.02.filter 1
setp    hm2_7i92.0.encoder.02.index-invert 0
setp    hm2_7i92.0.encoder.02.index-mask 0
setp    hm2_7i92.0.encoder.02.index-mask-invert 0
setp    hm2_7i92.0.encoder.02.scale  [SPINDLE_0]ENCODER_SCALE
setp    hm2_7i92.0.encoder.02.index-enable TRUE

net spindle-revs             <=   hm2_7i92.0.encoder.02.position
net spindle-vel-fb-rps       <=   hm2_7i92.0.encoder.02.velocity
net spindle-vel-fb-rpm       <=   hm2_7i92.0.encoder.02.velocity-rpm
net spindle-index-enable     <=>  hm2_7i92.0.encoder.02.index-enable

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm        <=  spindle.0.speed-out
net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs
net spindle-enable             <=  spindle.0.on
net spindle-cw                 <=  spindle.0.forward
net spindle-ccw                <=  spindle.0.reverse
net spindle-brake              <=  spindle.0.brake
net spindle-revs               =>  spindle.0.revs
net spindle-at-speed           =>  spindle.0.at-speed
net spindle-vel-fb-rps         =>  spindle.0.speed-in
net spindle-index-enable      <=>  spindle.0.index-enable

# ---Setup spindle at speed signals---

net spindle-vel-cmd-rps    =>  near.0.in1
net spindle-vel-fb-rps     =>  near.0.in2
net spindle-at-speed       <=  near.0.out
setp near.0.scale 1.3


#sets spindle-at-speed true

#---Setup spindle scale for gear change----
net Gear_selected mux4.gear.out => scale.gear.gain
net Gear1 => mux4.gear.sel0
net Gear2 => mux4.gear.sel1
setp mux4.gear.in0 4.47
setp mux4.gear.in2 1.789
setp mux4.gear.in3 12.964
Последний раз редактировалось SONIC300077 17 сен 2021, 21:19, всего редактировалось 1 раз.
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: 7i92+7i77 токарный станок 16а20ф3

Сообщение steals_y2k »

1 кнопку проще всего на toggle завязать.
для смазки есть готовые варианты в поиске.
с маховичком-то что? сразу обеими осями управлять? 😂😂
пункт 4 вообще рисковый, лучше реализовать как п1, а то оторвёт ещё что..
SONIC300077
Опытный
Сообщения: 131
Зарегистрирован: 07 апр 2013, 18:17
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

Re: 7i92+7i77 токарный станок 16а20ф3

Сообщение SONIC300077 »

steals_y2k писал(а): 17 сен 2021, 15:14 1 кнопку проще всего на toggle завязать.
С toggle незнаком, Не знаю как это делается !
steals_y2k писал(а): для смазки есть готовые варианты в поиске.
С этим разобрался, работает !!
Спасибо!
steals_y2k писал(а): с маховичком-то что? сразу обеими осями управлять? 😂
Вот нашел код, единственно пока непонятно вот этот момент ( сюда подать сигнал с галетника в двоичном виде (bit0)
а конкретнее "двоичном виде (bit0)"

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

net encoder.0.phase-A <= сюда подать фазу A штурвала
net encoder.0.phase-B <= сюда подать фазу B штурвала

net joint-select-x <= сюда подать сигнал с тумблера выбора оси

net sw-jogincr.0 <= сюда подать сигнал с галетника в двоичном виде (bit0)
net sw-jogincr.1 <= сюда подать сигнал с галетника в двоичном виде (bit1)



setp encoder.0.counter-mode 0
net joint-selected-count <= encoder.0.counts

net joint-select-x => not.0.in
net joint-select-z <= not.0.out

# выбор шага
net sw-jogincr.0 => mux4.0.sel0
net sw-jogincr.1 => mux4.0.sel1
net selected-jog-incr <= mux4.0.out
setp mux4.0.in0 0.0
setp mux4.0.in1 0.001
setp mux4.0.in2 0.01
setp mux4.0.in3 0.1

# Axis X
setp axis.0.jog-vel-mode 0
net selected-jog-incr =>  axis.0.jog-scale
net joint-select-x       =>  axis.0.jog-enable
net joint-selected-count =>  axis.0.jog-counts


# Axis Z
setp axis.1.jog-vel-mode 0
net selected-jog-incr =>  axis.1.jog-scale
net joint-select-z       =>  axis.1.jog-enable
net joint-selected-count =>  axis.1.jog-counts
steals_y2k писал(а): пункт 4 вообще рисковый, лучше реализовать как п1, а то оторвёт ещё что..
Тут не кнопка а галетный переключатель, там родной на 3 позиции, 0-работа 1-стоп подача 3-стоп подача+стоп шпиндель
1-стоп подача сделал так net feed-hold <= hm2_7i92.0.7i77.0.0.input-07 => motion.feed-hold
еще + нужно сделать и стоп шпиндель
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: 7i92+7i77 токарный станок 16а20ф3

Сообщение steals_y2k »

а шпиндель надо через логику на разрешающий сигнал вращения и потом паузу ещё, timedelay. нормальная такая конструкция, я пока не реализовал эту хотелку.
SONIC300077
Опытный
Сообщения: 131
Зарегистрирован: 07 апр 2013, 18:17
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

Re: 7i92+7i77 токарный станок 16а20ф3

Сообщение SONIC300077 »

Наскреб на просторах форума, сварганил вот такой код,

Но работать как надо не хочет, но Lnuxcnc запускается даже шпиндель стартует но не слушается, не пойму что надо поправить,
вот сее чуддо

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

#*******************
#  SPINDLE
#*******************
loadrt scale names=scale.spindle
loadrt mux4 count=1
loadrt limit2 names=spindle-ramp
loadrt near

addf mux4.0                   servo-thread
addf spindle-ramp             servo-thread
addf scale.spindle            servo-thread
addf near.0                   servo-thread

net sel_0  mux4.0.sel0  hm2_5i25.0.7i77.0.0.input-10
net sel_1  mux4.0.sel1  hm2_5i25.0.7i77.0.0.input-11

setp mux4.0.in0  .012
setp mux4.0.in1  .004
setp mux4.0.in2  .036

net mux_out mux4.0.out => scale.spindle.gain


# ---PWM Generator signals/setup---

setp   hm2_7i92.0.7i77.0.1.analogout5-scalemax  [SPINDLE_0]OUTPUT_SCALE
setp   hm2_7i92.0.7i77.0.1.analogout5-minlim    [SPINDLE_0]OUTPUT_MIN_LIMIT
setp   hm2_7i92.0.7i77.0.1.analogout5-maxlim    [SPINDLE_0]OUTPUT_MAX_LIMIT

#setp scale.spindle.gain 0.004
setp spindle-ramp.maxv 110

net spindle-speed     scale.spindle.out => hm2_7i92.0.7i77.0.1.analogout5
net spidle-cmd <=  spindle.0.speed-out => spindle-ramp.in
net spindle-ramped <=  spindle-ramp.out => scale.spindle.in
net spindle-enable      =>  hm2_7i92.0.7i77.0.1.spinena 

# ---Encoder feedback signals/setup---

setp    hm2_7i92.0.encoder.05.counter-mode 0
setp    hm2_7i92.0.encoder.05.filter 1
setp    hm2_7i92.0.encoder.05.index-invert 0
setp    hm2_7i92.0.encoder.05.index-mask 0
setp    hm2_7i92.0.encoder.05.index-mask-invert 0
setp    hm2_7i92.0.encoder.05.scale  [SPINDLE_0]ENCODER_SCALE


net spindle-revs             <=   hm2_7i92.0.encoder.05.position
net spindle-vel-fb-rps       <=   hm2_7i92.0.encoder.05.velocity
net spindle-vel-fb-rpm       <=   hm2_7i92.0.encoder.05.velocity-rpm
net spindle-index-enable     <=>  hm2_7i92.0.encoder.05.index-enable

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs
#net spindle-vel-cmd-rpm        <=  spindle.0.speed-out
net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs
net spindle-enable             <=  spindle.0.on
net spindle-cw                 <=  spindle.0.forward
net spindle-ccw                <=  spindle.0.reverse
net spindle-brake              <=  spindle.0.brake
net spindle-revs               =>  spindle.0.revs
#net spindle-at-speed           =>  spindle.0.at-speed
net spindle-vel-fb-rps         =>  spindle.0.speed-in
net spindle-index-enable      <=>  spindle.0.index-enable

# ---Setup spindle at speed signals---

net spindle-vel-cmd-rps    =>  near.0.in1
net spindle-vel-fb-rps     =>  near.0.in2
net spindle-at-speed       <=  near.0.out
setp near.0.scale 100
setp near.0.difference 0.1
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: 7i92+7i77 токарный станок 16а20ф3

Сообщение steals_y2k »

он что, с энкодером, этот шпиндель?
а не запускается уп возможно потому, что заданные обороты сильно отличаются от фактических.
или пин какой не соединён.
извращение)
Ответить

Вернуться в «LinuxCNC»