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

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

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

Сообщение alexandr1988 »

В маче создается файл с расширением *.m1s и помещается в папку Macros/имя профиля. Например 555.m1s со следующим содержимым, он обнулит координаты осей X(0) и Y(1).

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

SetMachZero(0) SetMachZero(1)
код m555, будучи помещенным в конец цикла, будет обнулять координаты и подпрограмма будет повторяться с нуля и правильно возобновляться с нужной строки.

насчет g10, прилагаю скриншот. Получается, при возобновлении LinuxCNC сбивает оффсет, заданный с помощью этого кода?

Жаль, что g52 еще не реализован в LinuxCNC

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

Exaple 2: same as the G92 exaple
N20 G52 X0.0 Y0.0 -- set G52 at part zero (work coordinate)
N30 G00 X0.0 Y0.0	-- Go to work coordinate zero
N40 O1001 CALL	-- call subprogram 1001
N50 G52 X5.0 Y5.0	-- incremental move G52 X5 Y5 from work coordinate
N60 O1001 CALL	-- Call Subprogram 1001
N70 G52 X0.0 Y0.0	-- Set G52 back to part zero (work coordinate)

Как написано в этом мануале, использование g52 в отличии от g92 не приводит к сбою в координатах при останове и последующем пуске.
Там же написано, что если возобновлять после g92, нужно отменить g92, а потом снова применить. Может это то, что нужно?
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ate_offset
А еще в маче есть код M47, немедленное повторение с первой строки.. почему же здесь нет аналога ему?
Вложения
Без имени.jpg (2752 просмотра) <a class='original' href='./download/file.php?id=34807&mode=view' target=_blank>Загрузить оригинал (134.88 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

alexandr1988 писал(а):Может это то, что нужно?
то есть так:

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

g90
o103 repeat [5]
g92 x0 y0
g1 f45
x5 y5 
x0 y10
o103 endrepeat
m2
а потом перед возобновлением MDI команду:
G92.1
??
=================
а в маче есть подобные подпрограммы??
что то мне кажеться(субъективно) , что и там в подпрограммах не так просто с возобновлением...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

Сообщение alexandr1988 »

nkp писал(а): а потом перед возобновлением MDI команду:
G92.1
??
=================
а в маче есть подобные подпрограммы??
что то мне кажеться(субъективно) , что и там в подпрограммах не так просто с возобновлением...
Это не работает. Попробовал тоже самое в маче. с g92 работает отменно. Координаты сами обнуляются, возобновляется откуда угодно. И главное траектория, инструмент постоянно ездит по первому треугольнику. Доехал до конца, "телепортировался" в начало и снова и снова..
Можно вообще любую фигуру повторять с возобновлением.
Просто не могу поверить, что в linuxcnc так нельзя сделать никаким образом.
Вложения
Безымянный.jpg (2733 просмотра) <a class='original' href='./download/file.php?id=34808&mode=view' target=_blank>Загрузить оригинал (193.65 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

Сообщение alexandr1988 »

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

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

Сообщение nkp »

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

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

Сообщение alexandr1988 »

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

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

Сообщение Nick »

А остановка обязательно должна делаться в любом месте?
Для чего она делается?
Если мы сделаем кнопочку, которая будет останавливать только в конце узора?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

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

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

Сообщение alexandr1988 »

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

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

Сообщение Nick »

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

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

Сообщение alexandr1988 »

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

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

Сообщение Nick »

Ну тогда - можно завести пин halui.programm.is-running на вход работы шпинделя... И при паузе он будет останавливаться. Только еще лучше какую-то дополнительную блокировку сделать - от греха...

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

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

Сообщение nkp »

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

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

Сообщение alexandr1988 »

Nick писал(а):Ну тогда - можно завести пин halui.programm.is-running на вход работы шпинделя... И при паузе он будет останавливаться. Только еще лучше какую-то дополнительную блокировку сделать - от греха...

Кстати, можно на иглу датчик поставить - чтобы при сломе останавливать автоматом :)
Игл 90 шт, очень много датчиков нужно) на этой машине даже на обрыв нити не стоит датчиков, оператор сам останавливает.
halui.programm.is-running завожу на тот же пин, на котором Feedhold? Или на пин, на котором висит реле шпинделя? в этом случае выходит, что шпиндель сам себя останаливать будет, или нет? Может я что то не правильно понял.
nkp писал(а):Nick,а какие мысли есть по вопросу:
как всё это делается в мач???
в чем коренные отличия?
==============
хотя у меня с мачем не вышло (поставил ради этого)
код загрузился ,а отрисовка не появилась
(ну да ладно - я там вообще не ориентируюсь))
В маче код, что на скриншоте работает прямо сразу. Там возможно, чтобы появилась отрисовка, надо обнулить все оси и нажать Regen toolpath.
И там смещение g54 ни в какую переменную не выводится, поэтому трюк с обнулением проходит.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Я так понимаю, что перед запуском интерпретатор пробегается по коду и смотрит оффсеты...
а точнее наверное он выполняет subroutine с самого начала.... поэтому заодно проходит и все G92 X0Y0... хотя так не только с циклами...
хмм... как-то странно оно вообще работает...
alexandr1988 писал(а):на пин, на котором висит реле шпинделя
Только надо добавить какой-нибудь and2 с пином включения шпинделя - чтобы шпиндель включался только когда надо, а не всегда, когда программа выполяется.
Но проверь, что этот пин на паузе равен 0!

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

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

Сообщение alexandr1988 »

Nick писал(а):Я так понимаю, что перед запуском интерпретатор пробегается по коду и смотрит оффсеты...
а точнее наверное он выполняет subroutine с самого начала.... поэтому заодно проходит и все G92 X0Y0... хотя так не только с циклами...
хмм... как-то странно оно вообще работает...
alexandr1988 писал(а):на пин, на котором висит реле шпинделя
Только надо добавить какой-нибудь and2 с пином включения шпинделя - чтобы шпиндель включался только когда надо, а не всегда, когда программа выполяется.
Но проверь, что этот пин на паузе равен 0!

ЗЫ покажи фото твоего агрегата! :)
Фото прилагаю). Для меня после мача Linux CNC кажется каким то уж очень навороченным. Если просто остановить шпиндель кнопкой стоп шпинделя, то у меня станок встанет по feedhold, и будет ждать сигнала с датчика.
Получается, все проще гораздо, как я сразу не догадался. А по циклу с while, можно пример как реализовать его?
Вложения
11.png (2639 просмотров) <a class='original' href='./download/file.php?id=34899&mode=view' target=_blank>Загрузить оригинал (3.79 МБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

alexandr1988 писал(а):А по циклу с while, можно пример как реализовать его?

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

o121 while 1
  твой_код
o121 endwhile
это бесконечный цикл , скорей всего интерпретатор зависнет...
===================================================

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

o111 sub
#1=0
	o121 while [#1 lt 555]
	  G91
	  G1 F30 X.1 Y.1
	  #1 = [#1 + 1]
	o121 endwhile
o111 endsub
o111 call
m2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Второй это тот же repeat [555] ;)

==========

Так интерпретатор может выживет...

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

(AXIS,hide)
o121 while 1
  твой_код
o121 endwhile
(AXIS,show)

Ответить

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