Токарный 1К62 переделанный под ЧПУ!

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Рамиль Сафиуллин
Мастер
Сообщения: 391
Зарегистрирован: 29 дек 2020, 10:52
Репутация: 7
Настоящее имя: Рамиль Сафиулин
Откуда: Татарстан
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение Рамиль Сафиуллин »

Возникла проблема, применили все как в теме viewtopic.php?f=158&t=20554&start=120 , ошибок при запуске не было найдено, но на команду смены инструмента не реагирует, gui ладдера показывает верный инструмент, то есть пины в хале прописали вроде бы верно, на вход точно, на выход все прописано точно так же как и писали в предыдущем варианте с компонентом, там вроде бы хотя бы вращение шло, загоралась лампа активирующая In1, сейчас In1 вообще не срабатывает, соответсвенно и вращение не идет. Ладдер взят с темы выше, остается вопрос, что еще не прописано в хале или где ошибка

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

# Generated by PNCconf at Thu Sep  2 20:01:10 2021
# Using LinuxCNC version:  UNAVAILABLE
# Все изменения в этом файле будут перезаписаны
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=0 num_stepgens=4 sserial_port_0=00xxxx" 
setp    [HMOT](CARD0).watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.z,pid.s

addf [HMOT](CARD0).read          servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf pid.x.do-pid-calcs       servo-thread
addf pid.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf [HMOT](CARD0).write         servo-thread

# external output signals




#######Ladder##################################################################################
    loadrt classicladder_rt numPhysInputs=25 numPhysOutputs=25 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
    loadusr classicladder tool.clp  #--nogui
    addf classicladder.0.refresh servo-thread

    #######Ladder##################################################################################

#######tool-change##################################################################################

net dat1 [HMOT](CARD0).gpio.001.in => classicladder.0.in-01 # получаем сигнал от датчика положения

net dat2 [HMOT](CARD0).gpio.002.in => classicladder.0.in-02 # получаем сигнал от датчика положения

net dat3 [HMOT](CARD0).gpio.003.in => classicladder.0.in-03 # получаем сигнал от датчика положения

net dat4 [HMOT](CARD0).gpio.004.in => classicladder.0.in-04 # получаем сигнал от датчика положения

net ll classicladder.0.out-02 => [HMOT](CARD0).ssr.00.out-01 # вращение

net rr classicladder.0.out-00 => [HMOT](CARD0).ssr.00.out-02 # затяжка

net tool-prepare-loopback iocontrol.0.tool-prepare     =>  iocontrol.0.tool-prepared

net tool-change-request   iocontrol.0.tool-change      =>  classicladder.0.in-00    # сигнал по М6 посылаем на контакт Start

net tool-change-confirmed iocontrol.0.tool-changed     =>  classicladder.0.out-03   # сигнал - продолжаем выполнять программу

net tool-number           iocontrol.0.tool-prep-number =>  classicladder.0.s32in-01 # %IW1





########################################################
#################Ladder finsish#########################
########################################################


# --- SPINDLE-CW ---
net spindle-cw  =>     [HMOT](CARD0).ssr.00.out-00


# external input signals





#net spindle-manual-cw     <=  [HMOT](CARD0).gpio.002.in


#*******************
#  AXIS X JOINT 0
#*******************

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

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

# Step Gen signals/setup

setp   [HMOT](CARD0).stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   [HMOT](CARD0).stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   [HMOT](CARD0).stepgen.00.steplen         [JOINT_0]STEPLEN
setp   [HMOT](CARD0).stepgen.00.stepspace       [JOINT_0]STEPSPACE
setp   [HMOT](CARD0).stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   [HMOT](CARD0).stepgen.00.step_type        0
setp   [HMOT](CARD0).stepgen.00.control-type     1
setp   [HMOT](CARD0).stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   [HMOT](CARD0).stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= [HMOT](CARD0).stepgen.00.velocity-cmd
net x-pos-fb     <= [HMOT](CARD0).stepgen.00.position-fb
net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => [HMOT](CARD0).stepgen.00.enable

# ---setup home / limit switch signals---

net x-home-sw     =>  joint.0.home-sw-in
net x-neg-limit     =>  joint.0.neg-lim-sw-in
net x-pos-limit     =>  joint.0.pos-lim-sw-in

#*******************
#  AXIS Z JOINT 1
#*******************

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

net z-index-enable  <=> pid.z.index-enable
net z-enable        =>  pid.z.enable
net z-pos-cmd       =>  pid.z.command
net z-pos-fb        =>  pid.z.feedback
net z-output        <=  pid.z.output

# Step Gen signals/setup

setp   [HMOT](CARD0).stepgen.01.dirsetup        [JOINT_1]DIRSETUP
setp   [HMOT](CARD0).stepgen.01.dirhold         [JOINT_1]DIRHOLD
setp   [HMOT](CARD0).stepgen.01.steplen         [JOINT_1]STEPLEN
setp   [HMOT](CARD0).stepgen.01.stepspace       [JOINT_1]STEPSPACE
setp   [HMOT](CARD0).stepgen.01.position-scale  [JOINT_1]STEP_SCALE
setp   [HMOT](CARD0).stepgen.01.step_type        0
setp   [HMOT](CARD0).stepgen.01.control-type     1
setp   [HMOT](CARD0).stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL
setp   [HMOT](CARD0).stepgen.01.maxvel           [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd    <= joint.1.motor-pos-cmd
net z-vel-cmd    <= joint.1.vel-cmd
net z-output     <= [HMOT](CARD0).stepgen.01.velocity-cmd
net z-pos-fb     <= [HMOT](CARD0).stepgen.01.position-fb
net z-pos-fb     => joint.1.motor-pos-fb
net z-enable     <= joint.1.amp-enable-out
net z-enable     => [HMOT](CARD0).stepgen.01.enable

# ---setup home / limit switch signals---

net z-home-sw     =>  joint.1.home-sw-in
net z-neg-limit     =>  joint.1.neg-lim-sw-in
net z-pos-limit     =>  joint.1.pos-lim-sw-in

#*******************
#  SPINDLE
#*******************

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

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

setp    [HMOT](CARD0).encoder.00.counter-mode 0
setp    [HMOT](CARD0).encoder.00.filter 1
setp    [HMOT](CARD0).encoder.00.index-invert 0
setp    [HMOT](CARD0).encoder.00.index-mask 0
setp    [HMOT](CARD0).encoder.00.index-mask-invert 0
setp    [HMOT](CARD0).encoder.00.scale  [SPINDLE_0]ENCODER_SCALE

net spindle-revs             <=   [HMOT](CARD0).encoder.00.position
net spindle-vel-fb-rps       <=   [HMOT](CARD0).encoder.00.velocity
net spindle-index-enable     <=>  [HMOT](CARD0).encoder.00.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---

sets spindle-at-speed true


#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net axis-select-x  halui.axis.x.select
net jog-x-pos      halui.axis.x.plus
net jog-x-neg      halui.axis.x.minus
net jog-x-analog   halui.axis.x.analog
net x-is-homed     halui.joint.0.is-homed
net axis-select-z  halui.axis.z.select
net jog-z-pos      halui.axis.z.plus
net jog-z-neg      halui.axis.z.minus
net jog-z-analog   halui.axis.z.analog
net z-is-homed     halui.joint.1.is-homed
net jog-selected-pos      halui.axis.selected.plus
net jog-selected-neg      halui.axis.selected.minus
net spindle-manual-cw     halui.spindle.0.forward
net spindle-manual-ccw    halui.spindle.0.reverse
net spindle-manual-stop   halui.spindle.0.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.axis.jog-speed
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

net estop-out     <=  iocontrol.0.user-enable-out
net estop-out     =>  iocontrol.0.emc-enable-in

#  ---manual tool change signals---

#loadusr -W hal_manualtoolchange
#net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
#net tool-change-confirmed   iocontrol.0.tool-changed      <=  hal_manualtoolchange.changed
#net tool-number             iocontrol.0.tool-prep-number  =>  hal_manualtoolchange.number
#net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared


Вложения
tool.clp
(7.54 КБ) 70 скачиваний
Все чему ты научился и можешь применить - это плоды твоего «терпения».
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

mikehv писал(а): 04 сен 2021, 08:32
tokarka63 писал(а): 03 сен 2021, 23:47 Управление шпинделем частотник + шим с китайской платы развязки, на шпинделе, самодельный энкодер на 36 меток (36*4 = 144) + Z метка
Попробуй вышеуказанных способ. В принципе оно будет работать, только удерживать позицию не будет конечно. Чем ниже предварительная скорость перед остановкой, тем меньше перелет будет
В целом, идея не плохая, я на универсале, примерно так же делал, на МК ) осталось сообразить, как привязать М66 к индексу)
P.S. больше не буду засорять тему своими вопросами не по теме!)
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение mikehv »

tokarka63 писал(а): осталось сообразить, как привязать М66 к индексу)
Так там и думать нечего) din-00 соедини в hal с сигналом z метки и все. Остальное в коде выше
Рамиль Сафиуллин
Мастер
Сообщения: 391
Зарегистрирован: 29 дек 2020, 10:52
Репутация: 7
Настоящее имя: Рамиль Сафиулин
Откуда: Татарстан
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение Рамиль Сафиуллин »

База Прием! Это ТС! Есть идеи? Вытащил человека на целый день! И ступор немного
Все чему ты научился и можешь применить - это плоды твоего «терпения».
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

Что то делаю не так....если так net Z-metkaspindle-index <= parport.0.pin-13-in
то, жалуется, что пин занят, если так net Z-metka motion.digital-in-00 <= spindle-index, жалуется что spindle-index не существует!(

С этим разобрался, больше не ругается!!!)) net spindle-index => motion.digital-in-00
Последний раз редактировалось tokarka63 04 сен 2021, 14:36, всего редактировалось 2 раза.
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

Рамиль Сафиуллин писал(а): 04 сен 2021, 14:07 База Прием! Это ТС! Есть идеи? Вытащил человека на целый день! И ступор немного
Я в ладдере вообще не шарю(
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение ex71 »

Рамиль Сафиуллин писал(а): База Прием! Это ТС! Есть идеи? Вытащил человека на целый день! И ступор немного
сделай как я написал через ремап. запусти уже станок. Потом будет время - поменяешь на ладдер, когда разберешься с ним.
Рамиль Сафиуллин
Мастер
Сообщения: 391
Зарегистрирован: 29 дек 2020, 10:52
Репутация: 7
Настоящее имя: Рамиль Сафиулин
Откуда: Татарстан
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение Рамиль Сафиуллин »

ex71 писал(а): сделай как я написал через ремап. запусти уже станок. Потом будет время - поменяешь на ладдер, когда разберешься с ним.
Ну почти все работает, уже крутится,, ремап пока вообще непонятно.. я читаю,, но ..но но … трудновато
Все чему ты научился и можешь применить - это плоды твоего «терпения».
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение steals_y2k »

у меня и не через лпт не получилось нормально.
был вариант через функцию near и разницу в энкодере.
провозившись часа 4, забил на это и использовал функцию в чп, там можно 4 точки дома задать и искать каждую через свой вход.

если же "примерно", то выступ в патроне не попадал в конус, зазор там мизерный.(или в конусе выступ, а в патроне паз, не помню)
Рамиль Сафиуллин
Мастер
Сообщения: 391
Зарегистрирован: 29 дек 2020, 10:52
Репутация: 7
Настоящее имя: Рамиль Сафиулин
Откуда: Татарстан
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение Рамиль Сафиуллин »

Сейчас крутится голова, но не затягивается
Все чему ты научился и можешь применить - это плоды твоего «терпения».
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

steals_y2k писал(а): 04 сен 2021, 15:10 у меня и не через лпт не получилось нормально.
был вариант через функцию near и разницу в энкодере.
провозившись часа 4, забил на это и использовал функцию в чп, там можно 4 точки дома задать и искать каждую через свой вход.

если же "примерно", то выступ в патроне не попадал в конус, зазор там мизерный.(или в конусе выступ, а в патроне паз, не помню)
У меня, за работало как надо, мне +- 15....20гр без разницы!!!, сейчас пытаюсь в М функцию это запихать....пока не получилось, говорит - нет такой функции!( создал файл М55.ngc закинул в папку с конфигом, в ini в секцию RS274NGC дописал ngc=m55 и пока нифига(
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение mikehv »

Рамиль Сафиуллин писал(а): 04 сен 2021, 15:20 Сейчас крутится голова, но не затягивается
Смотри по пинам что происходит
Рамиль Сафиуллин
Мастер
Сообщения: 391
Зарегистрирован: 29 дек 2020, 10:52
Репутация: 7
Настоящее имя: Рамиль Сафиулин
Откуда: Татарстан
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение Рамиль Сафиуллин »

Все Получилось! Наконец то! Даже не знаю что сделали, ладдер туда сюда крутили и чуток пины подкорректировать и .. вуаля… проще простого ,всего Три месяца почти)! Первое сообщение про голову 8 июня было..
спасибо парни!!!
Все чему ты научился и можешь применить - это плоды твоего «терпения».
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение mikehv »

Поздравляю тогда!)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение xenon-alien »

Рамиль Сафиуллин писал(а): Все Получилось! Наконец то! Даже не знаю что сделали, ладдер туда сюда крутили и чуток пины подкорректировать и .. вуаля… проще простого
Тоже поздравляю!
Делимся всей папкой настроек (архивом), что бы и другим проще было на будущее.
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение steals_y2k »

tokarka63 писал(а): ini в секцию RS274NGC дописал ngc=m55 и пока нифига
remap m6 и так далее?
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

Хотел через м100-м199, что то не прокатило, сделал через ремап м15 )
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение steals_y2k »

до м100 надо делать ремап, всё остальное вызывается прямо так. до 199, дальше вроде всё 😏
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение tokarka63 »

steals_y2k писал(а): 04 сен 2021, 22:28 до м100 надо делать ремап, всё остальное вызывается прямо так. до 199, дальше вроде всё 😏
После м100 вызывается без ремапа, но, G код внутри не работает, а с ремапом до М100 работает!!!, код абсолютно то же!
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: Токарный 1К62 переделанный под ЧПУ!

Сообщение steals_y2k »

tokarka63 писал(а): G код внутри не работает
да ладно? пакаж?

а chmod +x M115 сделано? ну или иной вариант разрешения запуска?
Ответить

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