Бесконечный цикл в LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

Доброе время суток!
Есть необходимость сделать бесконечно повторяющийся узор для стегального оборудования. Конец узора и начало находятся в одной точке.
В конце программы координаты принимаю равными координатам начала узора с помощью кода G92. А дальше непонятно, как организовать цикл, или переход к первой строке программы.
В идеале хотелось бы, чтобы узор повторялся путем сдвига координат. Как это реализовать?
Заранее спасибо за советы.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

а несколько сотен(тысяч) повторений "не потянут" на бесконечность?
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение NightV »

на чем работаешь?
и всмсле "бесконечный цикл"? тыж говоришь про конец и начало программы
Всё просто! если знаешь КАК!
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

На многоигольной машине с LinuxCNC.
К примеру, машина стоит в ноле, узор- угол:
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

Сообщение nkp »

программу можно зациклить по разному:
один из способов:

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

g91
o103 repeat [555]
g1 f5
x5 y5 
x0 y10
o103 endrepeat
m2
код повторится 555 раз
========
если циклов слишком много - желательно отключать в Axis отрисовку
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение Сергей Саныч »

alexandr1988 писал(а):Обнуляя координаты, как в примере ниже, можно ли перейти к началу каким либо способом?
Для возврата в начало без сброса переменных, в которых хранится смещение по G92, есть команда G92.2, а для возврата в последнее значение G92 - команда G92.3 http://linuxcnc.org/docs/html/gcode/gco ... 92_1-G92_2
Чудес не бывает. Бывают фокусы.
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

На скриншоте то, что максимально приближено к желаемому результату. Но если остановить выполнение и запустить заново с нужной строки, то из за накопленного значения смещения по Y вся программа сбивается.
В чем у меня ошибка?
Должно работать так: программа проходит один угол, координаты обнуляются и она повторяет это до бесконечности (или большое количество раз), но с возможностью остановить и запустить заново с точки останова.
Вот здесь http://www.youtube.com/watch?v=VpLub9O2V6Y видео того, как подобный станок работает на linuxcnc.
Как вариант можно сделать длинную программу, без обнулений координат, и можно будет останваливать и стартовать в любой момент, но это не правильный выход, как мне кажется.
Вложения
Без имени.jpg (3760 просмотров) <a class='original' href='./download/file.php?id=34785&mode=view' target=_blank>Загрузить оригинал (87.4 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

alexandr1988 писал(а):видео того, как подобный станок работает на linuxcnc.
если у "кого то " работает - значит наверно и нам можно разобраться...)
===========
nkp писал(а):а несколько сотен(тысяч) повторений "не потянут" на бесконечность?
вроде как ответ - "да " - потянут:
alexandr1988 писал(а):бесконечности (или большое количество раз),
------------------
непонятное:
alexandr1988 писал(а):программа проходит один угол,
1. что такое "угол" ?
чесно сказать - из видео не очень понятно как всё работает...
можешь контур просто нарисовать от руки , как все должно обрабатываться...
2. конкретно на той программе ,что на скрине "остановить выполнение и запустить заново с нужной строки, то из за накопленного значения смещения по Y вся программа сбивается"???
как мне повторить ошибку:
остановить - и выбрать какую строку?
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

Принцип работы: есть рисунок, например как в приложенном файле.
Его нужно повторять вдоль оси У, то есть дойдя до конца рисунка, начать его заново, но не возвратившись в ноль, а с точки, где закончился предыдущий. Много повторений за бесконечность потянут)

А ту программу можно остановить в любом месте и начать с той строки, где она остановлена. Продолжится она некорректно.
Вложения
Фрагмент.jpg (3728 просмотров) <a class='original' href='./download/file.php?id=34799&mode=view' target=_blank>Загрузить оригинал (23.26 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

alexandr1988 писал(а):Продолжится она некорректно.
попробую...
==========================
а G91 тут не есть решением??
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

я пробовал и через относительные координаты, через G91, но у меня при возобновлении начинает отсчитывать перемещении от позиции останова, и тоже выходит некорректно
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

да - с возобновлением работы надо будет разбираться - в подпрограммах это не так просто...
может свою кнопочку(скриптик) прикрутим ...
пробовал так(без всяких смещений координат):

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

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

Сообщение alexandr1988 »

Этот вариант испробую, спасибо!
Вот из за возобновления я и искал способ, чтобы обнулять и заново начинать программу
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

если этот код подойдет - то я так понял останется решить проблему с возобновлением???
выведем параметр координаты в пин - и будем стартовать с нужной позиции ...
(я так понял больно сложных фигур тут в будущем не потребуется?)
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

Навскидку фигуры будут как на картинке, или подобные, не особо сложные. Окружности можно будет если что составлять из коротких прямых.
Код попробовал, это то что надо, количество повторений можно любое задать. Возобновление тоже не очень корректное, но намного лучше того, что было.
Вложения
Фрагмент.jpg
Фрагмент.jpg (7.38 КБ) 3705 просмотров
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

это конечно для частного случая именно с этими треугольниками...
вот так возобновление работает когда остановишь на этом участке: в хал добавить:
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

Сообщение alexandr1988 »

Попробую этот вариант, спасибо! В маче это решается проще, там можно создать пользовательский M-код, который будет обнулять координаты и поставить его в конец цикла, что все упрощает.
Может быть, в Linuxcnc есть что-то подобное? это был бы идеальный выход из ситуации.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение alexandr1988 »

nkp писал(а):G10 L20 P1 X0 Y0
этот вариант я пробовал. смещение начинает накапливаться также, как и в случае с G92, и нормально возобновление тоже не работает.
В мануале по системам координат есть G52, которая еще в разработке http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ateSystems.
Вот что то подобное мне и нужно.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Бесконечный цикл в LinuxCNC

Сообщение nkp »

alexandr1988 писал(а):создать пользовательский M-код,
а что за код ? можно его увидеть?
с чем его едят?
Ответить

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