Бесконечный цикл в LinuxCNC
- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Бесконечный цикл в LinuxCNC
Доброе время суток!
Есть необходимость сделать бесконечно повторяющийся узор для стегального оборудования. Конец узора и начало находятся в одной точке.
В конце программы координаты принимаю равными координатам начала узора с помощью кода G92. А дальше непонятно, как организовать цикл, или переход к первой строке программы.
В идеале хотелось бы, чтобы узор повторялся путем сдвига координат. Как это реализовать?
Заранее спасибо за советы.
			
			
									
									
						Есть необходимость сделать бесконечно повторяющийся узор для стегального оборудования. Конец узора и начало находятся в одной точке.
В конце программы координаты принимаю равными координатам начала узора с помощью кода G92. А дальше непонятно, как организовать цикл, или переход к первой строке программы.
В идеале хотелось бы, чтобы узор повторялся путем сдвига координат. Как это реализовать?
Заранее спасибо за советы.
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
а несколько сотен(тысяч) повторений "не потянут"  на бесконечность?
			
			
									
									
						- NightV
 - Почётный участник

 - Сообщения: 6610
 - Зарегистрирован: 30 дек 2011, 09:14
 - Репутация: 2279
 - Настоящее имя: Владимир Айрапетян
 - Откуда: Israel
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
на чем работаешь?
и всмсле "бесконечный цикл"? тыж говоришь про конец и начало программы
			
			
									
									и всмсле "бесконечный цикл"? тыж говоришь про конец и начало программы
Всё просто! если знаешь КАК!
						- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
На многоигольной машине с LinuxCNC. 
К примеру, машина стоит в ноле, узор- угол:
m3
g1 x5 y5 f5
g1 x0 y10
Этот узор нужно повторять, в данном случае вдоль оси X.
Обнуляя координаты, как в примере ниже, можно ли перейти к началу каким либо способом? Это было бы удобно, при старте программы с нужной строки, после останова.
m3
g1 x5 y5 f5
g1 x0 y10
g92 x0 y0
			
			
									
									
						К примеру, машина стоит в ноле, узор- угол:
m3
g1 x5 y5 f5
g1 x0 y10
Этот узор нужно повторять, в данном случае вдоль оси X.
Обнуляя координаты, как в примере ниже, можно ли перейти к началу каким либо способом? Это было бы удобно, при старте программы с нужной строки, после останова.
m3
g1 x5 y5 f5
g1 x0 y10
g92 x0 y0
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
программу можно зациклить по разному:
один из способов:
код повторится 555 раз
========
если циклов слишком много - желательно отключать в Axis отрисовку
			
			
									
									
						один из способов:
Код: Выделить всё
g91
o103 repeat [555]
g1 f5
x5 y5 
x0 y10
o103 endrepeat
m2========
если циклов слишком много - желательно отключать в Axis отрисовку
- Сергей Саныч
 - Мастер
 - Сообщения: 9116
 - Зарегистрирован: 30 май 2012, 14:20
 - Репутация: 2858
 - Откуда: Тюмень
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
Для возврата в начало без сброса переменных, в которых хранится смещение по G92, есть команда G92.2, а для возврата в последнее значение G92 - команда G92.3 http://linuxcnc.org/docs/html/gcode/gco ... 92_1-G92_2alexandr1988 писал(а):Обнуляя координаты, как в примере ниже, можно ли перейти к началу каким либо способом?
Чудес не бывает. Бывают фокусы.
						- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
На скриншоте то, что максимально приближено к желаемому результату. Но если остановить выполнение и запустить заново с нужной строки, то из за накопленного значения смещения по Y вся программа сбивается.
В чем у меня ошибка?
Должно работать так: программа проходит один угол, координаты обнуляются и она повторяет это до бесконечности (или большое количество раз), но с возможностью остановить и запустить заново с точки останова.
Вот здесь http://www.youtube.com/watch?v=VpLub9O2V6Y видео того, как подобный станок работает на linuxcnc.
Как вариант можно сделать длинную программу, без обнулений координат, и можно будет останваливать и стартовать в любой момент, но это не правильный выход, как мне кажется.
			
							
			
									
									
						В чем у меня ошибка?
Должно работать так: программа проходит один угол, координаты обнуляются и она повторяет это до бесконечности (или большое количество раз), но с возможностью остановить и запустить заново с точки останова.
Вот здесь http://www.youtube.com/watch?v=VpLub9O2V6Y видео того, как подобный станок работает на linuxcnc.
Как вариант можно сделать длинную программу, без обнулений координат, и можно будет останваливать и стартовать в любой момент, но это не правильный выход, как мне кажется.
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
если у "кого то " работает - значит наверно и нам можно разобраться...)alexandr1988 писал(а):видео того, как подобный станок работает на linuxcnc.
===========
вроде как ответ - "да " - потянут:nkp писал(а):а несколько сотен(тысяч) повторений "не потянут" на бесконечность?
------------------alexandr1988 писал(а):бесконечности (или большое количество раз),
непонятное:
1. что такое "угол" ?alexandr1988 писал(а):программа проходит один угол,
чесно сказать - из видео не очень понятно как всё работает...
можешь контур просто нарисовать от руки , как все должно обрабатываться...
2. конкретно на той программе ,что на скрине "остановить выполнение и запустить заново с нужной строки, то из за накопленного значения смещения по Y вся программа сбивается"???
как мне повторить ошибку:
остановить - и выбрать какую строку?
- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
Принцип работы: есть рисунок, например как в приложенном файле.
Его нужно повторять вдоль оси У, то есть дойдя до конца рисунка, начать его заново, но не возвратившись в ноль, а с точки, где закончился предыдущий. Много повторений за бесконечность потянут)
А ту программу можно остановить в любом месте и начать с той строки, где она остановлена. Продолжится она некорректно.
			
							
			
									
									
						Его нужно повторять вдоль оси У, то есть дойдя до конца рисунка, начать его заново, но не возвратившись в ноль, а с точки, где закончился предыдущий. Много повторений за бесконечность потянут)
А ту программу можно остановить в любом месте и начать с той строки, где она остановлена. Продолжится она некорректно.
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
попробую...alexandr1988 писал(а):Продолжится она некорректно.
==========================
а G91 тут не есть решением??
- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
я пробовал и через относительные координаты, через G91, но у меня при возобновлении начинает отсчитывать перемещении от позиции останова, и тоже выходит некорректно
			
			
									
									
						- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
да  - с возобновлением работы надо будет разбираться - в подпрограммах это не так просто...
может свою кнопочку(скриптик) прикрутим ...
пробовал так(без всяких смещений координат):
			
			
									
									
						может свою кнопочку(скриптик) прикрутим ...
пробовал так(без всяких смещений координат):
Код: Выделить всё
g90
#1=5
#2=5
o103 repeat [5]
g1 f45
x#1 y#2 
#2=[#2+5]
x0 y#2
#2=[#2+5]
o103 endrepeat
m2- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
Этот вариант испробую, спасибо!
Вот из за возобновления я и искал способ, чтобы обнулять и заново начинать программу
			
			
									
									
						Вот из за возобновления я и искал способ, чтобы обнулять и заново начинать программу
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
если этот код подойдет - то я так понял останется решить проблему с возобновлением???
выведем параметр координаты в пин - и будем стартовать с нужной позиции ...
(я так понял больно сложных фигур тут в будущем не потребуется?)
			
			
									
									
						выведем параметр координаты в пин - и будем стартовать с нужной позиции ...
(я так понял больно сложных фигур тут в будущем не потребуется?)
- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
Навскидку фигуры будут как на картинке, или подобные, не особо сложные. Окружности можно будет если что составлять из коротких прямых.
Код попробовал, это то что надо, количество повторений можно любое задать. Возобновление тоже не очень корректное, но намного лучше того, что было.
			
							Код попробовал, это то что надо, количество повторений можно любое задать. Возобновление тоже не очень корректное, но намного лучше того, что было.
- Вложения
 - 
			
		
				
- Фрагмент.jpg (7.38 КБ) 3704 просмотра
 
 
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
это конечно для частного случая именно с этими треугольниками...
вот так возобновление работает когда остановишь на этом участке: в хал добавить:
net m68_to_m66 motion.analog-out-00 motion.analog-in-00
ж-код:
			
			
									
									
						вот так возобновление работает когда остановишь на этом участке: в хал добавить:
net m68_to_m66 motion.analog-out-00 motion.analog-in-00
ж-код:
Код: Выделить всё
M66 E0 L0
g90
#1=5
o123 IF [#5399 ne 0]
  #2=[#5399]
o123 ELSE 
 #2=[5+#5399] 
o123 ENDIF
o103 repeat [5]
g1 f45
x5 y#2 
#2=[#2+5]
M68 E0 Q#2
x0 y#2
#2=[#2+5]
M68 E0 Q#2
o103 endrepeat
m2- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
Попробую этот вариант, спасибо! В маче это решается проще, там можно создать пользовательский M-код, который будет обнулять координаты и поставить его в конец цикла, что все упрощает.
Может быть, в Linuxcnc есть что-то подобное? это был бы идеальный выход из ситуации.
			
			
									
									
						Может быть, в Linuxcnc есть что-то подобное? это был бы идеальный выход из ситуации.
- 
				alexandr1988
 - Кандидат
 - Сообщения: 77
 - Зарегистрирован: 07 окт 2014, 11:54
 - Репутация: 5
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
этот вариант я пробовал. смещение начинает накапливаться также, как и в случае с G92, и нормально возобновление тоже не работает.nkp писал(а):G10 L20 P1 X0 Y0
В мануале по системам координат есть G52, которая еще в разработке http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ateSystems.
Вот что то подобное мне и нужно.
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: Бесконечный цикл в LinuxCNC
а что за код ? можно его увидеть?alexandr1988 писал(а):создать пользовательский M-код,
с чем его едят?