Полноценная стойка на стол плазменного раскроя на базе ЕМС2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
lobzik
Кандидат
Сообщения: 53
Зарегистрирован: 22 ноя 2012, 14:33
Репутация: 32
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение lobzik »

Вобщем с горем пополам получилось перенести ЕМС 2 с макета на плазму, установил sheetcam, вырезал даже несколько деталей. Всем кто помогал огромное спасибо!!! Только вот качество реза конкретно ухудшилось :(
1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

lobzik писал(а):1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
Это все делается в Gкоде - режим G64: FAQ по Gcode, примеры #1
lobzik писал(а):2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
Надо также? Сделаем :)
Вообще можно например поднимать плазматрон на маленьких скоростях.
В плазме мощность как-то можно регулировать?
lobzik писал(а):3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
Да, есть. В ini в каждой оси можно написать backlash = значение люфта.
EMC2 Integrators Manual Перевод на русский язык #17
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

Добрый вечер.
Установил конфигурацию такую, как в последних сообщениях.
THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Нужно резать толстый металл. Вход с краю. Если не попасть очень точно на край металла,
отработка Up Down начинается раньше, чем резак начинает нормально резать.
И подпрыжка не отрабатывается при входе в середине листа - THC перехватывает управление
по Z сразу после включения плазмы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

yugles писал(а):THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Как выполнена компенсация? Есть ли отдельный пин ее включения?
Скорее всего надо делать через компонент timedelay http://linuxcnc.org/docs/2.5/html/man/m ... lay.9.html
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение aftaev »

yugles, на толстых металлах ТНС отключают вапЩе
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

aftaev писал(а):на толстых металлах ТНС отключают вапЩе
При высоте реза над металлом 2-4 мм ТНС необходим. Идеально ровных листов наверно не бывает.
Отключать вручную не хочется. Деталей на листе может быть много.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

Скинь свои последние конфиги, посмотрим, как лучше сделать.
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

Nick писал(а):Как выполнена компенсация? Есть ли отдельный пин ее включения?
Все, как несколькими постами выше.
Вот HAL

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

setp halui.jog-speed 3000
 # the jogging from the buttons
net remote-jog-x-plus halui.jog.0.plus <= gladevcp.hal_button1
net remote-jog-x-minus halui.jog.0.minus <= gladevcp.hal_button2

net remote-jog-y-plus halui.jog.1.plus <= gladevcp.hal_button3
net remote-jog-y-minus halui.jog.1.minus <= gladevcp.hal_button4

net remote-jog-z-plus halui.jog.2.plus <= gladevcp.hal_button5
net remote-jog-z-minus halui.jog.2.minus <= gladevcp.hal_button6

#Задержка антидребезг
unlinkp parport.0.pin-10-in-not
unlinkp motion.probe-input
net probe-filter => motion.probe-input
loadrt debounce cfg=1
addf debounce.0 base-thread
setp debounce.0.delay  100
net probe-raw parport.0.pin-10-in-not => debounce.0.0.in
net probe-filter <= debounce.0.0.out
net probe-filter => gladevcp.hal_led1

#Компонент updown
# делаем пин который будет тикать раз в servo-thread, not раз в период будет менять свое значение.
loadrt not names=timer
addf timer servo-thread 
net timer <= timer.out => timer.in

# загружаем два and  - они будут в качестве масок для таймера. 
loadrt and2 names=and.up,and.down 
addf and.up servo-thread 
addf and.down servo-thread 

# загружаем updown
loadrt updown names=updown.thc 
addf updown.thc  servo-thread

# загружаем sum2
loadrt sum2 names=sum2.thc
addf sum2.thc  servo-thread


# теперь на выходе and.up.out будут 10101010 только если на пине up есть 1. 
net timer => and.up.in0 
net up-pin => and.up.in1  
# подключаем пины updown.thc 
net andup <= and.up.out => updown.thc.countup

# тоже самое с down
net timer => and.down.in0 
net down-pin => and.down.in1  
# подключаем пины updown.thc 
net anddown <= and.down.out => updown.thc.countdown

# настраиваем updown максимум и минимум, помноженные на коэффициент суммы ниже
setp updown.thc.max 10000 
setp updown.thc.min -10000 
setp updown.thc.wrap 0
##########
unlinkp axis.2.motor-pos-cmd
unlinkp stepgen.2.position-cmd
unlinkp axis.2.motor-pos-fb
net z-cmd => axis.2.motor-pos-fb
loadrt conv_s32_float names=conv_s32_float.updown,conv_s32_float.mod
addf conv_s32_float.updown servo-thread

#теперь к сумме:
net conv-in => conv_s32_float.updown.in <= updown.thc.count
net conv-out => conv_s32_float.updown.out <= sum2.thc.in0

net z-cmd <= axis.2.motor-pos-cmd => sum2.thc.in1 
# множитель для thc (в среднем скорость будет 500 единиц в секунду, т.е. 0.001 = 2.5 мм/сек)
setp sum2.thc.gain0 0.002
#изменил - было = 0.002

net z-motor-cmd <= sum2.thc.out => stepgen.2.position-cmd

net up-pin parport.0.pin-12-in-not 
net down-pin parport.0.pin-13-in-not 
net up-pin => gladevcp.Led-MoveUp
net down-pin => gladevcp.Led-MoveDown

#ArcOk

net wait <= parport.0.pin-15-in 
net wait => motion.digital-in-00
net Arc-ok => gladevcp.Led-ArcOk
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

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

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

А нам совсем отключать, или просто команды игнорировать?
Просто может получиться так, что после вух секунд он потом резко куда-то рванет...
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

Nick писал(а):А нам совсем отключать...
Я думаю игнорировать команды некоторое время.
Насчет "резко рванет" нужно пробовать. И добавить паузу (или стоп) выполнения программы
при касании металла датчиком probe.
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

Забыл прикрепить файл постпроцессора для SheetCam
Вложения
Plasma.tar.gz
(4.45 КБ) 1102 скачивания
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

Постпроцессор
Вложения
Plasma THC-EMC.scpost.tar.gz
(1.26 КБ) 1139 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

yugles писал(а):И добавить паузу (или стоп) выполнения программы
Хмм... можно на авост вставать... или делать feed hold... Или feedhold+отруб плазмы. Что лучше?

С задержкой должно быть примерно так:

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

setp halui.jog-speed 3000
 # the jogging from the buttons
net remote-jog-x-plus halui.jog.0.plus <= gladevcp.hal_button1
net remote-jog-x-minus halui.jog.0.minus <= gladevcp.hal_button2

net remote-jog-y-plus halui.jog.1.plus <= gladevcp.hal_button3
net remote-jog-y-minus halui.jog.1.minus <= gladevcp.hal_button4

net remote-jog-z-plus halui.jog.2.plus <= gladevcp.hal_button5
net remote-jog-z-minus halui.jog.2.minus <= gladevcp.hal_button6

#Задержка антидребезг
unlinkp parport.0.pin-10-in-not
unlinkp motion.probe-input
net probe-filter => motion.probe-input
loadrt debounce cfg=1
addf debounce.0 base-thread
setp debounce.0.delay  100
net probe-raw parport.0.pin-10-in-not => debounce.0.0.in
net probe-filter <= debounce.0.0.out
net probe-filter => gladevcp.hal_led1

# загружаем timedelay для задержки включения thc
loadrt timedelay names=timedelay.thc
addf timedelay.thc servo-thread
# время до включения 1 сек
setp timedelay.thc.on-delay 1.0
setp timedelay.thc.off-delay 0
net [сюда сигнал включения плазмы] => timedelay.thc.in 

#Компонент updown
# делаем пин который будет тикать раз в servo-thread, not раз в период будет менять свое значение.
loadrt not names=timer
addf timer servo-thread 
net timer <= timer.out => timer.in

# загружаем два and  - они будут в качестве масок для таймера. 
loadrt and2 names=and.up,and.down,and.timer-mask 
addf and.timer-mask servo-thread
addf and.up servo-thread 
addf and.down servo-thread 

net timer => and.timer-mask.in0
net thc-delay <= timedelay.thc.in => and.timer-mask.in1
net timer-masked <= and.timer-mask.out

# загружаем updown
loadrt updown names=updown.thc 
addf updown.thc  servo-thread

# загружаем sum2
loadrt sum2 names=sum2.thc
addf sum2.thc  servo-thread


# теперь на выходе and.up.out будут 10101010 только если на пине up есть 1. 
net timer-masked => and.up.in0 

net up-pin => and.up.in1  
# подключаем пины updown.thc 
net andup <= and.up.out => updown.thc.countup

# тоже самое с down
net timer-masked => and.down.in0 
net down-pin => and.down.in1  
# подключаем пины updown.thc 
net anddown <= and.down.out => updown.thc.countdown

# настраиваем updown максимум и минимум, помноженные на коэффициент суммы ниже
setp updown.thc.max 10000 
setp updown.thc.min -10000 
setp updown.thc.wrap 0
##########
unlinkp axis.2.motor-pos-cmd
unlinkp stepgen.2.position-cmd
unlinkp axis.2.motor-pos-fb
net z-cmd => axis.2.motor-pos-fb
loadrt conv_s32_float names=conv_s32_float.updown,conv_s32_float.mod
addf conv_s32_float.updown servo-thread

#теперь к сумме:
net conv-in => conv_s32_float.updown.in <= updown.thc.count
net conv-out => conv_s32_float.updown.out <= sum2.thc.in0

net z-cmd <= axis.2.motor-pos-cmd => sum2.thc.in1 
# множитель для thc (в среднем скорость будет 500 единиц в секунду, т.е. 0.001 = 2.5 мм/сек)
setp sum2.thc.gain0 0.002
#изменил - было = 0.002

net z-motor-cmd <= sum2.thc.out => stepgen.2.position-cmd

net up-pin parport.0.pin-12-in-not 
net down-pin parport.0.pin-13-in-not 
net up-pin => gladevcp.Led-MoveUp
net down-pin => gladevcp.Led-MoveDown

#ArcOk

net wait <= parport.0.pin-15-in 
net wait => motion.digital-in-00
net Arc-ok => gladevcp.Led-ArcOk
Что добавилось:
(сюда не забыть написать имя сигнала!)
Это компонент который добавляет задержку к сигналу включения плазмы, т.е. 1 на его выходе появится на 1 сек позже, чем включится плазма

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

# загружаем timedelay для задержки включения thc
loadrt timedelay names=timedelay.thc
addf timedelay.thc servo-thread
# время до включения 1 сек
setp timedelay.thc.on-delay 1.0
setp timedelay.thc.off-delay 0
net [сюда сигнал включения плазмы] => timedelay.thc.in 
Потом мы делаем and выхода этого компонента и нашего timer, т.е. когда на timedelay.out 0 - мы не считаем thc.
Изменились эти строки:

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

loadrt and2 names=and.up,and.down,and.timer-mask 
addf and.timer-mask servo-thread
И вот эти:

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

net timer => and.timer-mask.in0
net thc-delay <= timedelay.thc.in => and.timer-mask.in1
net timer-masked <= and.timer-mask.out
также потом заменили timer на timer-masked:

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

net timer-masked => and.up.in0 
yugles
Новичок
Сообщения: 8
Зарегистрирован: 09 ноя 2013, 09:48
Репутация: 0
Контактная информация:

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение yugles »

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

Re: Полноценная стойка на стол плазменного раскроя на базе Е

Сообщение Nick »

Там только проверить надо, наверняка у меня куча ошибок, как обычно... :freak:
Ответить

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