Вопросы по G33

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

Вопросы по G33

Сообщение alexandr1988 »

Добрый день! Интересует непонятное поведение linuxcnc, связанное с g33.
выполняю программы вида

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

G21
G91
M3
o100 do 
	M66 L0 P1
	o101 if [#5399 NE 1]
		Здесь код программы, содержащий G33
	o101 else
		o100 break
    o101 endif
o100 while [#<_task> NE 0]
M05 M2 
При остановке и прерывании цикла с помощью M66, после того как прошел код M2 и программа закончилась, шпиндель делает еще несколько оборотов.
При повторном запуске этого же g-кода (сразу после полной остановки и ДО запуска шпинделя) ось X уезжает в сторону, как будто отрабатывая перемещение, синхронизированное с этим вращением после остановки.
Поясню, что в моем случае шпиндель включается с помощью команды M3 + подача внешнего сигнала.
В чем тут причина? hal и ini прилагаю. Это не металлообрабатывающее оборудование, шпиндель во время нарезания резьбы не останавливаю)
Может нужно использовать M30 вместо M2?
PS. не знаю куда лучше разместить сообщение, в g-code или сюда, просьба сильно не ругаться
Вложения
11.hal
(3.09 КБ) 1093 скачивания
11.ini
(1.99 КБ) 1094 скачивания
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение alexandr1988 »

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение alexandr1988 »

nkp писал(а):ну если уже понятно ,что дело в м66 , то может стоит просто
переделать программу без него?? :)
можно остановить кнопкой (или сигналом на пин) "Стоп" ???
-----------------
или задача чисто теоретическая - выяснить природу явления??? :)
Задача выяснить природу явления и победить его)
Остановка в конце цикла достаточно важна, она позволяет свести к нулю брак вследствие остановок машины.
Копался в информации по G-кодам, нашел вот что:
Команда M02 - конец программы, без сброса модальных функций.
Команда M30 - конец управляющей программы, со сбросом модальных функций.
Это актуально для Linux CNC или здесь какие то другие различия между этими кодами? И может быть проблема именно в этом? Проверить пока к сожалению не могу, машина в работе.
Если это совсем не по теме, то прошу модераторов перенести это в FAQ по Gcode, примеры
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

alexandr1988 писал(а):Задача выяснить природу явления и победить его)
:good:
===============================
не зная всех тонкостей процесса производственного ...
сейчас откуда то там приходит сигнал ,что мол мы все допилили ,допустим:
net signal-name motion.digital-in-00 <= parport.0.pin10-in
а если так:
net stop halui.program.stop <= parport.0.pin10-in
ну или что то подобное...
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение alexandr1988 »

nkp писал(а): сейчас откуда то там приходит сигнал ,что мол мы все допилили ,допустим:
net signal-name motion.digital-in-00 <= parport.0.pin10-in
а если так:
net stop halui.program.stop <= parport.0.pin10-in
ну или что то подобное...
Сейчас с помощью M66 происходит выход из цикла после его повторения (нажимается кнопка, цикл выполняется до конца и машина останавливается) и кнопка стоп нажимается сама, так как получена команда M2- конец программы.
А если тот же сигнал завести на halui.program.stop, то останов будет происходить в тот момент, когда нажали на кнопку, что не совсем правильно.
Может нужно при выходе из цикла как то принудительно активировать пин halui.program.stop?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

Мне кажется так - надо прервать цепочку G33. Если у тебя все пемемещения по G33 - они должны быть синхронизированны друг с другом.
Попробуй в начале программы добавить G0 Xчто-нибудь...
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение alexandr1988 »

Nick писал(а):Мне кажется так - надо прервать цепочку G33. Если у тебя все пемемещения по G33 - они должны быть синхронизированны друг с другом.
Попробуй в начале программы добавить G0 Xчто-нибудь...
До цикла сделать перемещение, к примеру, на 0,001 мм? Или уже в самом цикле?
Кстати, замена М2 на М30 ничего не поменяла.
А что если сделать так?

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

G21
G91
M3
o100 do 
   M66 L0 P1
   o101 if [#5399 NE 1]
      Здесь код программы, содержащий G33
   o101 else
      o100 break
    o101 endif
o100 while [#<_task> NE 0]
M64 P2
M05 M30 
Добавим M64 P2 в G-код, а в hal net stop halui.program.stop <= motion-digital-in-01. Такой вариант имеет место быть? Пробовать на станке пока не могу, много работы и операторы ругаются. Хочу собрать все варианты, и когда будет окно, пробовать их все.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы по G33

Сообщение nkp »

M64 P2 motion-digital-in-02
ну или соответственно
M64 P1 motion-digital-in-01
M65 P... в начале где нибудь тогда ...
если их "рядом" поставить - нормально работать не будут...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Вопросы по G33

Сообщение Nick »

alexandr1988 писал(а):До цикла сделать перемещение, к примеру, на 0,001 мм? Или уже в самом цикле?
все равно, главное, чтобы при остановке и выбежке шпинделя не было лишнего перемещения. Для этого надо "порвать" цепочку последовательных G33.


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

Re: Вопросы по G33

Сообщение alexandr1988 »

nkp писал(а):M64 P2 motion-digital-in-02
ну или соответственно
M64 P1 motion-digital-in-01
M65 P... в начале где нибудь тогда ...
если их "рядом" поставить - нормально работать не будут...
А останов с помощью М2/М30 разве не переводит все выходы в исходное состояние? тогда М65 и не нужен.
Насчет нумерации ошибся, признаю.
Nick писал(а):все равно, главное, чтобы при остановке и выбежке шпинделя не было лишнего перемещения. Для этого надо "порвать" цепочку последовательных G33.
PS а что станок делает?
Станок делает одеяльную/матрасную и прочую стежку.
Видео с телефона загружается только в низком качестве. Но LinuxCNC видно)
Доступно по ссылке https://cloud.mail.ru/public/HD2X/BW2PK4brp
Момент, когда машина поднимает иглы на малой скорости после завершения программы по M2, как мне кажется, и вызывает эту ошибку. Но на видео этого нет, так как остановка не в конце цикла.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы по G33

Сообщение nkp »

alexandr1988 писал(а):Насчет нумерации ошибся, признаю.
я вообще протупил :idiot: - подумал про выходы (out)
вот они то и не "выключаются" ,кроме как М65
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: Вопросы по G33

Сообщение alexandr1988 »

Все началось с моей ошибки в net stop halui.program.stop <= motion-digital-in-01.
Нужно же motion-digital-out-01! Действительно, после M64 выход сам при остановке программы не изменяет состояние.
Пробовал без станка и на G1, но стоп нажимается. Буду пробовать на станке, может это и выход из ситуации. А M65 если надо, куда нибудь пристроимю
Ответить

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