Страница 14 из 14
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 27 янв 2013, 14:09
				 lobzik
				Вобщем с горем пополам получилось перенести ЕМС 2 с макета на плазму, установил sheetcam, вырезал даже несколько деталей. Всем кто помогал огромное спасибо!!! Только вот качество реза конкретно ухудшилось 

1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 29 янв 2013, 15:36
				 Nick
				lobzik писал(а):1. Из-за большого разгона-торможения плазма резак при смене направления движения замедляет скорость и прожигает больше металла. В маче была функция constant velociti, которая включала режим постоянной скорости, и резак проходил углы >90 с постоянной скоростью. Может можно зделать что-то подобное в ЕМС?
Это все делается в Gкоде - режим G64: 
FAQ по Gcode, примеры #1
lobzik писал(а):2. В углах плазмотрон клюет в метал, связано это опять же с замедлением движения, в маче с этим боролся отключением регулировки высоты, если ускорение больше 0
Надо также? Сделаем 
 
Вообще можно например поднимать плазматрон на маленьких скоростях. 
В плазме мощность как-то можно регулировать? 
lobzik писал(а):3. После переноса станка в другое место цеха появились люфты в осях, довольно заметные. Есть ли в ЕМС функция компенсации люфтов?
Да, есть. В ini в каждой оси можно написать backlash = значение люфта. 
EMC2 Integrators Manual Перевод на русский язык #17 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 25 ноя 2013, 22:36
				 yugles
				Добрый вечер.
Установил конфигурацию такую, как в последних сообщениях.
THC работает, но мне  необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Нужно резать толстый металл. Вход с краю. Если не попасть очень точно на край металла,
отработка Up Down начинается раньше, чем резак начинает нормально резать.
И подпрыжка не отрабатывается при входе в середине листа - THC перехватывает управление
 по Z сразу после включения плазмы.
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 25 ноя 2013, 22:37
				 Nick
				yugles писал(а):THC работает, но мне необходимо сделать задержку включения THC на 0,5 - 2 секунды.
Как выполнена компенсация? Есть ли отдельный пин ее включения? 
Скорее всего надо делать через компонент timedelay 
http://linuxcnc.org/docs/2.5/html/man/m ... lay.9.html 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 25 ноя 2013, 22:38
				 aftaev
				yugles, на толстых металлах ТНС отключают вапЩе
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 12:54
				 yugles
				aftaev писал(а):на толстых металлах ТНС отключают вапЩе
При высоте реза над металлом 2-4 мм ТНС необходим. Идеально ровных листов наверно не бывает.
Отключать вручную не хочется. Деталей на листе может быть много.
 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:04
				 Nick
				Скинь свои последние конфиги, посмотрим, как лучше сделать.
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:09
				 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
 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:15
				 yugles
				Вся папка
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:17
				 Nick
				А нам совсем отключать, или просто команды игнорировать? 
Просто может получиться так, что после вух секунд он потом резко куда-то рванет...
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:30
				 yugles
				Nick писал(а):А нам совсем отключать...
Я думаю игнорировать команды некоторое время.
Насчет "резко рванет" нужно пробовать. И добавить паузу (или стоп) выполнения программы
при касании металла  датчиком probe.
 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:33
				 yugles
				Забыл прикрепить файл постпроцессора для SheetCam
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 13:38
				 yugles
				Постпроцессор
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 15:23
				 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:
 
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 15:33
				 yugles
				Спасибо Nick за быстрый ответ.
Буду пробовать.
			 
			
					
				Re: Полноценная стойка на стол плазменного раскроя на базе Е
				Добавлено: 26 ноя 2013, 15:41
				 Nick
				Там только проверить надо, наверняка у меня куча ошибок, как обычно... 
