Модернизация токарного станка

Токарные станки с ЧПУ.
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

xentaur писал(а):ты уже не привязку инструментов делаешь, а офсет устанавливаешь
Офсет, привязка, временная (дополнительная) система координат (с)из учебника СССР .. не докапываемся до формулировок))
xentaur писал(а):Тут с тобой не согласен. Это, только, так кажется. И всё таки TLO - tool length offset. Оно (смещение) не считается от заданной системы координат, а пересчитывается относительно G53 (world) к заданной. И буквой H в G43 поосторожней.
Не спорь, а просто возьми пустой файл с привязками LTO забей в MDi забей G56 к примеру, привяжи ноль для G56 где нибудь ..хммм... от G53 -200 по х, потом примени g43t5h5m6
смести по х от точки G56 на 1 мм и нажми системе привязаться. потом открой файл LTO и увидишь значение для H5 будет X+1 а не -199!
Доказательства в сдудию))))) ЧПУ балтсистем NC210, 2р22, 2с42 в них всех LTO это один файл в котором указаны координаты привязки отновсительно начала координат!!!! ЛЮБОГО НАЧАЛА
И отдельно файл "Начальных точек" Вот вот в них указывается положение относительно ноля станка. В нашем случае относительно G53)
xentaur писал(а):резцы по левой кромке

Это что за "левая кромка)?
xentaur писал(а): А потом просто использовать глобальные G54 и т.д. и локальные (G92? в linuxcnc) офсеты. При установке нового инструмента - привязываться по обработанному торцу, всё равно привязка идет по G53 c пересчётом на текущий офсет (систему координат). Т.е. если торец для T1 в G55 Z=0, то и все остальные резцы в G55 по этому торцу тоже Z=0.По диаметрам, думаю, вопросов не возникает. Надо только уточнить, на практике, работу коррекции на радиус в linuxcnc для токарки.Датчик просто ускоряет процедуру привязки, параметры привязки - настраиваются.
Не верю я в коррекцию радиуса инструмента на токарке (может привык).... делаю всё CAM-ом.. что-б не ошибиться.
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):В нашем случае относительно G53)
хммм на LinuxCNC рисуют вот такую картинку:
coordinatesystems.png
coordinatesystems.png (11.37 КБ) 1641 просмотр
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ool_offset
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

Dmaster, думал о твоей проблеме. Может попробовать прикрутить сигнал с тахогенератора для контроля движения?
:bender:
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Lexxa писал(а):Dmaster, думал о твоей проблеме. Может попробовать прикрутить сигнал с тахогенератора для контроля движения?
ХМММММ! тут вопрос .. либо АЦП мутить, либо схемку,. чтоб за 0 читало всё до 0.5 вольта а за 1 всё остальное. ( тахо у меня 1000об 20 вольт)
Если задание будет больше (какое-то значение) , то Е стом, если синал с тахи не равен 1.
Nick писал(а):хммм на LinuxCNC рисуют вот такую картинку:
Ну я же говорил))))) вот и рассудили нас НИК)
" Linux CNC - наше всё"
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

Dmaster писал(а):
Lexxa писал(а):Dmaster, думал о твоей проблеме. Может попробовать прикрутить сигнал с тахогенератора для контроля движения?
ХМММММ! тут вопрос .. либо АЦП мутить, либо схемку,. чтоб за 0 читало всё до 0.5 вольта а за 1 всё остальное. ( тахо у меня 1000об 20 вольт)
Если задание будет больше (какое-то значение) , то Е стом, если синал с тахи не равен 1.
Можно откалибровать, что так, что оно потом будет достаточно точно мерить скорость.
кроме того к девайсу можно бы прикрутить аналоговые резисторы на коррекцию подачи и оборотов шпинделя и была б ваще тема.
Конечно с ацп, но нам поможет STM32)
:bender:
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Lexxa писал(а):прикрутить аналоговые резисторы на коррекцию подачи и оборотов шпинделя и была б ваще тема.Конечно с ацп, но нам поможет STM32)
Ану рассказывай КАК!?... я вообще мыслил попробовать юзануть АЦП которые стоят в GAMEPORT, а вообще, как я помню можно джойстик подключить к компу. На джойстике штурвалы есть... они какраз представляют собой сопротивления. .. их перепаять на крговые резисторы по точнее. да и вообще купить джойстик и разобрать его для создания нормального пульта)))
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):Ну я же говорил))))) вот и рассудили нас НИК)
Я честно говоря не понимаю в чем разница, от перемены мест слагаемых сумма не меняется - операция коммутативна (если нет поворота, а его у нас вроде как нет)... Или я не о том думаю?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

Dmaster писал(а):
Lexxa писал(а):прикрутить аналоговые резисторы на коррекцию подачи и оборотов шпинделя и была б ваще тема.Конечно с ацп, но нам поможет STM32)
Ану рассказывай КАК!?... я вообще мыслил попробовать юзануть АЦП которые стоят в GAMEPORT, а вообще, как я помню можно джойстик подключить к компу. На джойстике штурвалы есть... они какраз представляют собой сопротивления. .. их перепаять на крговые резисторы по точнее. да и вообще купить джойстик и разобрать его для создания нормального пульта)))
Берем любой микроконтроллер с АЦП, та же AtMega8 уже будет достаточно. У неё есть кажется 6 каналов АЦП.
На примере оси Х:
Вешаем параллельно приводу один из каналов АЦП на тахогенераор. Можно через резистивный делитель.
Пиишем прогу для МК, которая будет передавать оцифрованные значения тахогенератора например через тот же USB (можно и софтовый) или RS-232 в EMC2
Пишем кусок проги для калибровки, ну чтоб уж совсем красиво всё было, т.е 150 мм/мин по тахогенератору соответствовало 150 мм/мин +-погрешность по энкодеру.
Засовываем всё это дело в ЕМС, сравниваем, анализируем, выключаем станок при аварии.

Для трех/четырех координатных станков остается 2 канала АЦП свободных на которые можно повесить потнциометры для коррекции оборотов и подачи. Т.е. почти для всех станков получится универсальная железка, что не может не радовать.
https://www.youtube.com/watch?v=E9OKYCPdf6E
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

Идея номер 2.
На плате мса 5i20 есть пин encoder.velocity для каждой оси. Этот пин можно заюзать в качестве контроля скорости.
Т.е. взять, например, производную от пид.х.комманд, привести её не к серво-периоду, а к мм/мин и сравнивать с 5и20.энкодер.х.велосити. При превышении порога - е-стоп.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

В отм то и проблема, что при перемещении
G0 X100 Z0
G0 X0 Z 0.1 Скорость по Z будет маленькой и отношение этой скорости и 0 скорости вполне может оказаться меньше заданного порога...

На linuxCNC.org посоветовали ставить по 2 энкодера на ось для защиты от выхода одного энкодера из строя...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

Nick писал(а):может оказаться меньше заданного порога...
при неисправном датчике будет всё что угодно, кроме того что надо))
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Lexxa писал(а):при неисправном датчике будет всё что угодно, кроме того что надо))
ну как сказать, если энкодер совсем вылетит, то будет 0. Если вылетит только 1 пин, то скорее всего тоже будет 0, т.к. навернка скорость проходит сглаживающий фильтр. А если считать каждый шаг, то скорость вообще останется прежней :).
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация токарного станка

Сообщение Lexxa »

NightV писал(а):короче а я поправил алиасы... не запускается
Для автотюнинга надо алиасы коментить или нет?
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

А какие конкретно?
ЗЫ а что, не запускается?
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Модернизация токарного станка

Сообщение T00T »

Прям сейчас у станка
пытаемся запустьить at_pid
Делаем по мануалу от Dmaster
На данный момент закомментированы строки, содержащие index-enable
На данный момент ругается на
pid.x.command-deriv does not exist
Я не волшебник я пока учусь......
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

скинь полный hal.

Тебе по идее надо все алиасы переписать на at_pid плюс убрать некоторые пины, которых нет в авто-пиде.
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Модернизация токарного станка

Сообщение T00T »

да, закоментил всё что про deriv - запустился
Я не волшебник я пока учусь......
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

У меня такого в хале и нет вообще! наверное у тебя другая версия EMC
T00T писал(а):pid.x.command-deriv does not exist
Не запускай автонастройку .. гадость это)))
если что поделюсь "ГУРУЗНАНИЕМ" пида))))

Еси оно тебе уперлось, то!

Измени Ferror до 5 мм
запуси емс
вконсоли линуха введи

halcmd setp pid.0.tune-cycles 200 ( чем больше цИклов, тем точне) 20000 идет почти 10 минут
halcmd setp pid.0.tune-effot 0.005 (можно и единицу поставить, но станок жалко колбасить) чем больше то значение , тем КАЖЕТСЯ! лучше калибрует.
halcmd setp pid.0.tune-mode 1 - ( при смне на 1-цу станок с какогото перепугу перестает удерживать серву и если есть дрейф.. то быстренько запускаем)

halcmd setp pid.0.tune-stat 1
ОТБЕГАЙ!!!!

Сразу говорю.... Вибрация будет ОЙ-ой.

Вообще у меня мысль возникла.... может я зря тогда ускорение максимальное в 500 об сек дал.
Может при меньшем ускорее оси он будет нормально себе вести можно будет задать tune-effot не 0.005 , а 100. ( как я понимаю это расстояние в котором станок будет кататься туда суда, и подбирать параметры.
" Linux CNC - наше всё"
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Модернизация токарного станка

Сообщение T00T »

hal-файл
Ник, не хочет запускаться калибровка.
останавливается всё на halcmd setp pid.0.tune-stat 1, т.е.ось как ползла,так и ползет.
(для просмотра содержимого нажмите на ссылку)
# Generated by PNCconf at Thu Jun 21 21:02:19 2012
# Все изменения в этом файле будут перезаписаны
# overwritten when you run PNCconf again

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hostmot2
loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=4 num_pwmgens=3 num_3pwmgens=0 num_stepgens=0 "
setp hm2_5i20.0.pwmgen.pwm_frequency 100000
setp hm2_5i20.0.pwmgen.pdm_frequency 6000000
setp hm2_5i20.0.watchdog.timeout_ns 10000000
loadrt at_pid names=pid.x,pid.z,pid.s
loadrt near
loadrt mux16 names=jogincr

loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder --nogui custom.clp


addf hm2_5i20.0.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 jogincr servo-thread
addf near.0 servo-thread
addf hm2_5i20.0.write servo-thread
addf hm2_5i20.0.pet_watchdog servo-thread

# external output signals

# --- COOLANT-FLOOD ---

setp hm2_5i20.0.gpio.042.is_output true
net coolant-flood hm2_5i20.0.gpio.042.out
setp hm2_5i20.0.gpio.042.invert_output true


# external input signals

# --- MAX-X ---
net max-x <= hm2_5i20.0.gpio.033.in_not

# --- MIN-X ---
net min-x <= hm2_5i20.0.gpio.034.in_not

# --- HOME-X ---
net home-x <= hm2_5i20.0.gpio.035.in

# --- MAX-Z ---
net max-z <= hm2_5i20.0.gpio.036.in_not

# --- MIN-Z ---
net min-z <= hm2_5i20.0.gpio.037.in_not

# --- HOME-Z ---
net home-z <= hm2_5i20.0.gpio.038.in

# --- ESTOP-EXT ---
setp hm2_5i20.0.gpio.044.is_output true
net estop-ext <= hm2_5i20.0.gpio.039.in_not => hm2_5i20.0.gpio.044.out
setp hm2_5i20.0.gpio.044.invert_output true


# --- TOOL_1 ---
net T1 <= hm2_5i20.0.gpio.024.in => classicladder.0.in-00
net T2 <= hm2_5i20.0.gpio.025.in => classicladder.0.in-01
net T3 <= hm2_5i20.0.gpio.026.in => classicladder.0.in-02
net T4 <= hm2_5i20.0.gpio.027.in => classicladder.0.in-03
net T5 <= hm2_5i20.0.gpio.028.in => classicladder.0.in-04
net T6 <= hm2_5i20.0.gpio.029.in => classicladder.0.in-05
net T7 <= hm2_5i20.0.gpio.030.in => classicladder.0.in-06
net T8 <= hm2_5i20.0.gpio.031.in => classicladder.0.in-07

# --- TOOL_Fixing ---
net Fixing <= hm2_5i20.0.gpio.032.in => classicladder.0.in-08

# --- TOOL_SEARCH_OUT ---
setp hm2_5i20.0.gpio.040.is_output true
net tool_search hm2_5i20.0.gpio.040.out => classicladder.0.out-00
setp hm2_5i20.0.gpio.040.invert_output true

# --- TOOL_CLOSE_OUT ---
setp hm2_5i20.0.gpio.041.is_output true
net tool_close_out hm2_5i20.0.gpio.041.out => classicladder.0.out-01
#setp hm2_5i20.0.gpio.041.invert_output true



#*******************
# AXIS X
#*******************

setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D
setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2
setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT

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

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

setp hm2_5i20.0.pwmgen.01.output-type 1
setp hm2_5i20.0.pwmgen.01.scale [AXIS_0]OUTPUT_SCALE

net x-output => hm2_5i20.0.pwmgen.01.value
net x-pos-cmd axis.0.motor-pos-cmd
net x-enable axis.0.amp-enable-out => hm2_5i20.0.pwmgen.01.enable

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

setp hm2_5i20.0.encoder.01.counter-mode 0
setp hm2_5i20.0.encoder.01.filter 1
setp hm2_5i20.0.encoder.01.index-invert 0
setp hm2_5i20.0.encoder.01.index-mask 0
setp hm2_5i20.0.encoder.01.index-mask-invert 0
setp hm2_5i20.0.encoder.01.scale [AXIS_0]ENCODER_SCALE

net x-pos-fb <= hm2_5i20.0.encoder.01.position
net x-vel-fb <= hm2_5i20.0.encoder.01.velocity
net x-pos-fb => axis.0.motor-pos-fb
#net x-index-enable axis.0.index-enable <=> hm2_5i20.0.encoder.01.index-enable
net x-pos-rawcounts <= hm2_5i20.0.encoder.01.rawcounts

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

net home-x => axis.0.home-sw-in
net min-x => axis.0.neg-lim-sw-in
net max-x => axis.0.pos-lim-sw-in

#*******************
# AXIS Z
#*******************

setp pid.z.Pgain [AXIS_2]P
setp pid.z.Igain [AXIS_2]I
setp pid.z.Dgain [AXIS_2]D
setp pid.z.bias [AXIS_2]BIAS
setp pid.z.FF0 [AXIS_2]FF0
setp pid.z.FF1 [AXIS_2]FF1
setp pid.z.FF2 [AXIS_2]FF2
setp pid.z.deadband [AXIS_2]DEADBAND
setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT

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

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

setp hm2_5i20.0.pwmgen.00.output-type 1
setp hm2_5i20.0.pwmgen.00.scale [AXIS_2]OUTPUT_SCALE

net z-output => hm2_5i20.0.pwmgen.00.value
net z-pos-cmd axis.2.motor-pos-cmd
net z-enable axis.2.amp-enable-out => hm2_5i20.0.pwmgen.00.enable

setp hm2_5i20.0.gpio.047.is_output true
net z-enable axis.2.amp-enable-out => hm2_5i20.0.gpio.047.out
setp hm2_5i20.0.gpio.047.invert_output true

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

setp hm2_5i20.0.encoder.00.counter-mode 0
setp hm2_5i20.0.encoder.00.filter 1
setp hm2_5i20.0.encoder.00.index-invert 0
setp hm2_5i20.0.encoder.00.index-mask 0
setp hm2_5i20.0.encoder.00.index-mask-invert 0
setp hm2_5i20.0.encoder.00.scale [AXIS_2]ENCODER_SCALE

net z-pos-fb <= hm2_5i20.0.encoder.00.position
net z-vel-fb <= hm2_5i20.0.encoder.00.velocity
net z-pos-fb => axis.2.motor-pos-fb
#net z-index-enable axis.2.index-enable <=> hm2_5i20.0.encoder.00.index-enable
net z-pos-rawcounts <= hm2_5i20.0.encoder.00.rawcounts

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

net home-z => axis.2.home-sw-in
net min-z => axis.2.neg-lim-sw-in
net max-z => axis.2.pos-lim-sw-in

#*******************
# SPINDLE S
#*******************

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

setp hm2_5i20.0.pwmgen.02.output-type 1
setp hm2_5i20.0.pwmgen.02.scale [SPINDLE_9]OUTPUT_SCALE


net spindle-vel-cmd => hm2_5i20.0.pwmgen.02.value
net spindle-enable => hm2_5i20.0.pwmgen.02.enable

#//////////
setp hm2_5i20.0.gpio.046.is_output true
net spindle-enable => hm2_5i20.0.gpio.046.out
setp hm2_5i20.0.gpio.046.invert_output true

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

setp hm2_5i20.0.encoder.03.counter-mode 0
setp hm2_5i20.0.encoder.03.filter 1
setp hm2_5i20.0.encoder.03.index-invert 0
setp hm2_5i20.0.encoder.03.index-mask 0
setp hm2_5i20.0.encoder.03.index-mask-invert 0
setp hm2_5i20.0.encoder.03.scale [SPINDLE_9]ENCODER_SCALE

net spindle-revs <= hm2_5i20.0.encoder.03.position
net spindle-vel-fb <= hm2_5i20.0.encoder.03.velocity
#net spindle-index-enable <=> hm2_5i20.0.encoder.03.index-enable

# ---setup spindle control signals---

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

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

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


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

# ---HALUI signals---

net joint-select-a halui.joint.0.select
net x-is-homed halui.joint.0.is-homed
net jog-x-pos halui.jog.0.plus
net jog-x-neg halui.jog.0.minus
net jog-x-analog halui.jog.0.analog
net joint-select-c halui.joint.2.select
net z-is-homed halui.joint.2.is-homed
net jog-z-pos halui.jog.2.plus
net jog-z-neg halui.jog.2.minus
net jog-z-analog halui.jog.2.analog
net jog-selected-pos halui.jog.selected.plus
net jog-selected-neg halui.jog.selected.minus
net spindle-manual-cw halui.spindle.forward
net spindle-manual-ccw halui.spindle.reverse
net spindle-manual-stop halui.spindle.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.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

# ---jogwheel signals to mesa encoder - shared MPG---

net joint-selected-count <= hm2_5i20.0.encoder.02.count
setp hm2_5i20.0.encoder.02.filter true
setp hm2_5i20.0.encoder.02.counter-mode true

# ---mpg signals---

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


# for axis z MPG
setp axis.2.jog-vel-mode 0
net selected-jog-incr => axis.2.jog-scale
net joint-select-c => axis.2.jog-enable
net joint-selected-count => axis.2.jog-counts


# connect selectable mpg jog increments

net jog-incr-a => jogincr.sel0
net jog-incr-b => jogincr.sel1
net jog-incr-c => jogincr.sel2
net jog-incr-d => jogincr.sel3
net selected-jog-incr <= jogincr.out-f
setp jogincr.debounce-time 0.200000
setp jogincr.use-graycode False
setp jogincr.suppress-no-input False
setp jogincr.in00 0.000000
setp jogincr.in01 0.000100
setp jogincr.in02 0.000500
setp jogincr.in03 0.001000
setp jogincr.in04 0.005000
setp jogincr.in05 0.010000
setp jogincr.in06 0.050000
setp jogincr.in07 0.100000
setp jogincr.in08 0.000000
setp jogincr.in09 0.000000
setp jogincr.in10 0.000000
setp jogincr.in11 0.000000
setp jogincr.in12 0.000000
setp jogincr.in13 0.000000
setp jogincr.in14 0.000000
setp jogincr.in15 0.000000

# ---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-ext => iocontrol.0.emc-enable-in

# ---manual tool change signals---

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

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

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

net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Я не волшебник я пока учусь......
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Ник ведь ни разу калибровку не запускал))) что ты его мучаешь?)
T00T писал(а):Ник, не хочет запускаться калибровка.
останавливается всё на halcmd setp pid.0.tune-stat 1, т.е.ось как ползла,так и ползет.
Ты сколько циклов поставил? .. после отработки циклов сь так и продолжит дрейфовать.. Надо согхранить полученные настройки в ини файл, перезапустить ЕМС и потом только оценить их работоспособность.

Если halcmd setp pid.0.tune-cycles стоит 1-10, то можно и не заметить, как всё прошло.
" Linux CNC - наше всё"
Ответить

Вернуться в «Токарные станки»