Страница 2 из 3
Re: Бесконечный цикл в LinuxCNC
Добавлено: 11 окт 2014, 22:41
alexandr1988
В маче создается файл с расширением *.m1s и помещается в папку Macros/имя профиля. Например 555.m1s со следующим содержимым, он обнулит координаты осей X(0) и Y(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, немедленное повторение с первой строки.. почему же здесь нет аналога ему?
Re: Бесконечный цикл в LinuxCNC
Добавлено: 11 окт 2014, 23:11
nkp
alexandr1988 писал(а):Может это то, что нужно?
то есть так:
Код: Выделить всё
g90
o103 repeat [5]
g92 x0 y0
g1 f45
x5 y5
x0 y10
o103 endrepeat
m2
а потом перед возобновлением MDI команду:
G92.1
??
=================
а в маче есть подобные подпрограммы??
что то мне кажеться(субъективно) , что и там в подпрограммах не так просто с возобновлением...
Re: Бесконечный цикл в LinuxCNC
Добавлено: 11 окт 2014, 23:20
nkp
alexandr1988 писал(а):Жаль, что g52 еще не реализован в LinuxCNC
сейчас глянул -
с 2010 года обсуждают - наверно не сделают - хотя пишут , что ж10 вроде заменяет...
они же проблемы возобновления не касаются )
Re: Бесконечный цикл в LinuxCNC
Добавлено: 11 окт 2014, 23:41
alexandr1988
nkp писал(а):
а потом перед возобновлением MDI команду:
G92.1
??
=================
а в маче есть подобные подпрограммы??
что то мне кажеться(субъективно) , что и там в подпрограммах не так просто с возобновлением...
Это не работает. Попробовал тоже самое в маче. с g92 работает отменно. Координаты сами обнуляются, возобновляется откуда угодно. И главное траектория, инструмент постоянно ездит по первому треугольнику. Доехал до конца, "телепортировался" в начало и снова и снова..
Можно вообще любую фигуру повторять с возобновлением.
Просто не могу поверить, что в linuxcnc так нельзя сделать никаким образом.
Re: Бесконечный цикл в LinuxCNC
Добавлено: 12 окт 2014, 00:13
nkp
последнее уточнение...
определимся в понятиях:
возобновление - это остановка выполнения программы кнопкой Stop в любом месте любого отрезка и возобновление работы
нажатием кнопки Run
так ? (для емс)
если да - то и для мача подобно?
----------
или все таки "Исполнить отсюда"
сразу скажу - что с подпрограммами в емс "Исполнить отсюда" не будет работать(
Re: Бесконечный цикл в LinuxCNC
Добавлено: 12 окт 2014, 00:21
alexandr1988
В маче останавливаю кнопкой Стоп где угодно, абсолютно в любом месте. Возобновление - кнопкой Run from here с выделенной строкой, с которой хочу запустить.
В емс останавливаю кнопкой Стоп и выбрав строку, нажимаю правой кнопкой мыши и выбираю Исполнить отсюда.
Выходит, моя проблема в ЕМС неразрешима?
Re: Бесконечный цикл в LinuxCNC
Добавлено: 12 окт 2014, 00:31
nkp
alexandr1988 писал(а):Выходит, моя проблема в ЕМС неразрешима?
ну почему неразрешима))
это же пока только я тут свои скудные выкладки изложил ...
придут другие - может в другую сторону посмотрят...
==========
в принципе - для этого треугольника я могу дописать костыли ...
все должно работать(только кнопками Старт-Стоп)
а там на этом узоре заработаешь 1млн$ - купишь или программиста,или станок))
Re: Бесконечный цикл в LinuxCNC
Добавлено: 12 окт 2014, 00:54
alexandr1988
Этот узор просто для примера, я думаю, не стоит для него непосредственно писать что-либо. И так очень помогли, что и говорить то)
Я хотел уйти с мача, потому что там функцию синхронизации движения иглы и ткани сделать не вышло, а в емс элементарно, но вот такая засада.
Будем ждать других советов.
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 10:22
Nick
А остановка обязательно должна делаться в любом месте?
Для чего она делается?
Если мы сделаем кнопочку, которая будет останавливать только в конце узора?
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 10:55
PKM
Кстати да.
Лучше организовать цикл while, а условием окончания поставить какой-то сигнал по кнопочке (физической или графической).
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 11:51
alexandr1988
Остановка делается в любом месте, например, на станке оборвалась нить, что-то попало в рабочую зону, игла сломалась.
И возобновление нужно для того, чтобы уменьшить брак.
Кнопка остановки в конце узора хороша для запланированного останова, например когда оператор завершает работу.
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 13:27
Nick
PKM писал(а):Кстати да.
Лучше организовать цикл while, а условием окончания поставить какой-то сигнал по кнопочке (физической или графической).
только надо не забыть сделать (AXIS:hide), чтобы отрисовщику не поплохело
alexandr1988 писал(а):И возобновление нужно для того, чтобы уменьшить брак.
Кнопка остановки в конце узора хороша для запланированного останова, например когда оператор завершает работу.
Ну, а если скажем делать не стоп, а паузу?
Или например бьем узор на 30 участков и тормозим только на конце каждого участка?
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 17:09
alexandr1988
Nick писал(а):
Ну, а если скажем делать не стоп, а паузу?
Или например бьем узор на 30 участков и тормозим только на конце каждого участка?
Пауза подходит хорошо, но тогда необходима и остановка шпинделя. Хотя в соседней теме Вы отвечали про Feedhold, может в моем случае достаточно просто остановить шпиндель?
По участкам тоже хорошо, но вариант с паузой мне кажется предпочтительным.
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 17:23
Nick
Ну тогда - можно завести пин halui.programm.is-running на вход работы шпинделя... И при паузе он будет останавливаться. Только еще лучше какую-то дополнительную блокировку сделать - от греха...
Кстати, можно на иглу датчик поставить - чтобы при сломе останавливать автоматом

Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 17:33
nkp
Nick,а какие мысли есть по вопросу:
как всё это делается в мач???
в чем коренные отличия?
==============
хотя у меня с мачем не вышло (поставил ради этого)
код загрузился ,а отрисовка не появилась
(ну да ладно - я там вообще не ориентируюсь))
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 17:50
alexandr1988
Nick писал(а):Ну тогда - можно завести пин halui.programm.is-running на вход работы шпинделя... И при паузе он будет останавливаться. Только еще лучше какую-то дополнительную блокировку сделать - от греха...
Кстати, можно на иглу датчик поставить - чтобы при сломе останавливать автоматом

Игл 90 шт, очень много датчиков нужно) на этой машине даже на обрыв нити не стоит датчиков, оператор сам останавливает.
halui.programm.is-running завожу на тот же пин, на котором Feedhold? Или на пин, на котором висит реле шпинделя? в этом случае выходит, что шпиндель сам себя останаливать будет, или нет? Может я что то не правильно понял.
nkp писал(а):Nick,а какие мысли есть по вопросу:
как всё это делается в мач???
в чем коренные отличия?
==============
хотя у меня с мачем не вышло (поставил ради этого)
код загрузился ,а отрисовка не появилась
(ну да ладно - я там вообще не ориентируюсь))
В маче код, что на скриншоте работает прямо сразу. Там возможно, чтобы появилась отрисовка, надо обнулить все оси и нажать Regen toolpath.
И там смещение g54 ни в какую переменную не выводится, поэтому трюк с обнулением проходит.
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 17:53
Nick
Я так понимаю, что перед запуском интерпретатор пробегается по коду и смотрит оффсеты...
а точнее наверное он выполняет subroutine с самого начала.... поэтому заодно проходит и все G92 X0Y0... хотя так не только с циклами...
хмм... как-то странно оно вообще работает...
alexandr1988 писал(а):на пин, на котором висит реле шпинделя
Только надо добавить какой-нибудь and2 с пином включения шпинделя - чтобы шпиндель включался только когда надо, а не всегда, когда программа выполяется.
Но проверь, что этот пин на паузе равен 0!
ЗЫ покажи фото твоего агрегата!

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

Фото прилагаю). Для меня после мача Linux CNC кажется каким то уж очень навороченным. Если просто остановить шпиндель кнопкой стоп шпинделя, то у меня станок встанет по feedhold, и будет ждать сигнала с датчика.
Получается, все проще гораздо, как я сразу не догадался. А по циклу с while, можно пример как реализовать его?
Re: Бесконечный цикл в LinuxCNC
Добавлено: 13 окт 2014, 19:20
nkp
alexandr1988 писал(а):А по циклу с while, можно пример как реализовать его?
это бесконечный цикл , скорей всего интерпретатор зависнет...
===================================================
Код: Выделить всё
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
Re: Бесконечный цикл в LinuxCNC
Добавлено: 15 окт 2014, 09:09
Nick
Второй это тот же repeat [555]
==========
Так интерпретатор может выживет...
Код: Выделить всё
(AXIS,hide)
o121 while 1
твой_код
o121 endwhile
(AXIS,show)