Полноценная стойка на стол плазменного раскроя на базе ЕМС2
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Вобщем с горем пополам получилось перенести ЕМС 2 с макета на плазму, установил sheetcam, вырезал даже несколько деталей. Всем кто помогал огромное спасибо!!! Только вот качество реза конкретно ухудшилось
1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Это все делается в Gкоде - режим G64: FAQ по Gcode, примеры #1lobzik писал(а):1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
Надо также? Сделаемlobzik писал(а):2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
Вообще можно например поднимать плазматрон на маленьких скоростях.
В плазме мощность как-то можно регулировать?
Да, есть. В ini в каждой оси можно написать backlash = значение люфта.lobzik писал(а):3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
EMC2 Integrators Manual Перевод на русский язык #17
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добрый вечер.
Установил конфигурацию такую, как в последних сообщениях.
THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Нужно резать толстый металл. Вход с краю. Если не попасть очень точно на край металла,
отработка Up Down начинается раньше, чем резак начинает нормально резать.
И подпрыжка не отрабатывается при входе в середине листа - THC перехватывает управление
по Z сразу после включения плазмы.
Установил конфигурацию такую, как в последних сообщениях.
THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Нужно резать толстый металл. Вход с краю. Если не попасть очень точно на край металла,
отработка Up Down начинается раньше, чем резак начинает нормально резать.
И подпрыжка не отрабатывается при входе в середине листа - THC перехватывает управление
по Z сразу после включения плазмы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Как выполнена компенсация? Есть ли отдельный пин ее включения?yugles писал(а):THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Скорее всего надо делать через компонент timedelay http://linuxcnc.org/docs/2.5/html/man/m ... lay.9.html
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
yugles, на толстых металлах ТНС отключают вапЩе
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
При высоте реза над металлом 2-4 мм ТНС необходим. Идеально ровных листов наверно не бывает.aftaev писал(а):на толстых металлах ТНС отключают вапЩе
Отключать вручную не хочется. Деталей на листе может быть много.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Скинь свои последние конфиги, посмотрим, как лучше сделать.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Все, как несколькими постами выше.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
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Вся папка
- Вложения
-
- Plasma.tar.gz
- (4.45 КБ) 1106 скачиваний
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
А нам совсем отключать, или просто команды игнорировать?
Просто может получиться так, что после вух секунд он потом резко куда-то рванет...
Просто может получиться так, что после вух секунд он потом резко куда-то рванет...
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Я думаю игнорировать команды некоторое время.Nick писал(а):А нам совсем отключать...
Насчет "резко рванет" нужно пробовать. И добавить паузу (или стоп) выполнения программы
при касании металла датчиком probe.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Забыл прикрепить файл постпроцессора для SheetCam
- Вложения
-
- Plasma.tar.gz
- (4.45 КБ) 1102 скачивания
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Постпроцессор
- Вложения
-
- Plasma THC-EMC.scpost.tar.gz
- (1.26 КБ) 1139 скачиваний
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Хмм... можно на авост вставать... или делать feed hold... Или feedhold+отруб плазмы. Что лучше?yugles писал(а):И добавить паузу (или стоп) выполнения программы
С задержкой должно быть примерно так:
Код: Выделить всё
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
Изменились эти строки:
Код: Выделить всё
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
Код: Выделить всё
net timer-masked => and.up.in0
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Спасибо Nick за быстрый ответ.
Буду пробовать.
Буду пробовать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Там только проверить надо, наверняка у меня куча ошибок, как обычно...