Страница 1 из 2

Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 12:44
NightV
некоторые знакомые ЧПУшники, спрашивали, не боюсь ли я запускать программу так близко от патрона, (а один дедок даже одернул мне руку, от кнопки Старт, кода увидел что голова с инструментами находится в 10см от патрона).
секрет прост, я НЕ запускаю программу с самого начала, когда меняю заготовку, она зациклена.
тоесть, шапка программы (где вызывается инструмент), отрабатывает на безопасном расстоянии от патрона, а дальше программа работает по кругу, не касаясь шапки программы.
все делается только с помощью одной команды GOTO и меток.
GOTO - говорит станку чтобы он перескочил на такую-то строку, номера строк начинаются с буквы N.
метки - этим можно заменить номер строки, сделано для простоты использования. должны начинаться с буквы N, а дальше в произвольной форме. в моем случае я использовал слова NSKIP и NLOOP.
есть (в моем случае) ограничение, в метках, после N можно использовать ДО 4 символов
6677777.jpg (17405 просмотров) <a class='original' href='./download/file.php?id=36171&mode=view' target=_blank>Загрузить оригинал (67.99 КБ)</a>
пример рабочей программы:

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

%
(SHAPKA FINISH)
G50 S1800
G0 X1400 Z1000
G97 G95 S1000 T030303 M42
M3 M8
GOTO NSKIP
NLOOP
M5 M9
/M84
M00
G97 S1000
M3 M8
NSKIP
G0 X41 Z5
G0 Z-1.0
G0 X41
G1 X38.5 F0.1
G1 X36.8 Z0.1 F0.1
G1 X4 F0.3
G1 X-1.6 F0.08
G0 Z10 
G0 X38.3
G50 S1800
G96 S100
G0 Z-1.5 
G1 X37.85 F0.3
G2 X35.5 Z0.0 L1.5 F0.1
G1 X5 F0.2
G1 X-1.6 F0.1
G0 Z10
M9
G0 X300
GOTO NLOOP
M2
%
она же, в работе

https://www.youtube.com/watch?v=JWp9Nrc4rSs

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 12:49
Алексс
да, да, я тоже думал что все под контролем и совал руки куда не следует...

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 12:53
NightV
Алексс писал(а):да, да, я тоже думал что все под контролем и совал руки куда не следует..
и как это относится к теме? дедок одернул мне руку от кнопки старт, при закрытой двери
именно это программа, из примера, работает без изменений 2 с лишним года

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:01
Nick
NightV писал(а):и как это относится к теме? дедок одернул мне руку от кнопки старт, при закрытой двери
Я тоже сначала подумал, что ты сам был рядом с патроном, помнится кто-то мечтал кнопку старт на шпиндель приделать ;)

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:17
Алексс
NightV писал(а):и как это относится к теме?
видимо обстоятельства одергивания не были описаны достаточно подробно, чтобы понять, что дверь была закрыта и тп.

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:24
Алексс
к стати... у меня сильное впечатление, что linuxcnc впадет в кому на бесконечном цикле.
у меня это случалось частенько при отладке программы с циклами и условиями.

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:29
Nick
Алексс писал(а):у меня это случалось частенько при отладке программы с циклами и условиями.
вроде как условие должно останавливать интерпретатор... ну и axis-hide в помощь :)

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:31
Сергей Саныч
Алексс писал(а):у меня сильное впечатление, что linuxcnc впадет в кому на бесконечном цикле
Если превьюшка включена, то да. Проверено на axis.
С версии 2.6 появилась переменная #<_task>, которая равна 1 при реальной работе и 0 при превью. Но я пока ее не пробовал.

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:37
Алексс
Nick писал(а):ну и axis-hide в помощь
чето тебе никто и не ответил...

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 13:45
Nick
вот рабочий пример бесконечного цикла:
но да, аксису поплохело при загрузке - загружает на половину синей полоски и все... но как только нажимаем esc через 2 секунды оживает. :)

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

o100 while [1 eq 1]
	(DEBUG, Check din-00)
	M0
	M66 P0 L0 
	o101 if [#5399 NE 1]
		(DEBUG, Got 0)
		G0 X10
		G1 X0 F1000
	o101 else 
		(DEBUG, Break)
		o100 break	
	o101 endif 	
o100 endwhile
(DEBUG, End)

M2

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:00
Сергей Саныч
А если такой вариант?

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

    o100 do
       (DEBUG, Check din-00)
       M0
       M66 P0 L0 
       o101 if [#5399 NE 1]
          (DEBUG, Got 0)
          G0 X10
          G1 X0 F1000
       o101 else 
          (DEBUG, Break)
          o100 break   
       o101 endif    
    o100 while [#<_task> NE 0]
    (DEBUG, End)

    M2
Должен нарисовать один раз превьюшку, а при запуске работать в цикле.

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:02
Nick
Работает и загружается! :good:!

Добавил в вики, чтобы не забыть!

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:08
Алексс
Сергей Саныч писал(а):#<_task>
а объяснить ?

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:12
NightV
добавил ведео в шапку, и поправил про деда, чтобы не было вопросов.
видео низкого качества, делал на скорую руку

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:31
Сергей Саныч
Алексс писал(а):а объяснить ?
Так вроде в примере всё ясно :thinking:

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

    o100 do (используем цикл do - while, ибо нам нужна проверка условия в конце цикла)
       M0 (ждем нажатия "продолжить")
       ........(собственно, тело программы)
    o100 while [#<_task> NE 0] (при работе #<_task> = 1 зациклит, при загрузке #<_task> = 0 нарисует один раз превьюшку и выйдет)
    M2

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 14:57
Алексс
:wik:

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 15:04
nik1
Володь, ты снижаешь подачу при отрезании, когда подходит к центру вращения?

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 15:13
Алексс

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 15:19
Nick
nik1 писал(а):Володь, ты снижаешь подачу при отрезании, когда подходит к центру вращения?
Это скорее всего Constant Surface Speed.

(в linuxcnc http://linuxcnc.org/docs/html/gcode/gco ... 97-Spindle )

Re: Пример использования GOTO в токарке

Добавлено: 07 ноя 2014, 15:22
nik1
Не, про постоянную скорость уже в курсе :)
Пишут типо это не есть правильно добавлять обороты на отрезании, правильнее снижать подачу
Вот и хотелось бы услышать от товарища с опытом работы :)