Не работает G31 в Mach3

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Не работает G31 в Mach3

Сообщение boka17 »

Станок давно настроен и работает. Решил поиграться с макросами в Mach3 - поиск центра отверстия. Аппаратная часть есть и исправна (зонд) подключен как надо (зануляю Z через него) ....
Редактирую макрос, в макросе даю команду
G31 X40
по которой портал должен поехать в сторону + по оси Х до касания зондом края отверстия и остановиться, но, не более 40 мм.
у меня портал едет в сторону - Х (уменьшения по Х) и останавливается при касании....
если дать команду для противоположного движения
G31 X-40
то портал едет правильно (уменьшает X) и касанием останавливается.
т.е. команда с "минусом" и "плюсом" работают одинаково и всегда едут в сторону минуса
Аналогично и по Y - всегда едет в сторону уменьшения Y.
Команду давал и из VB скрипта и набирал напрямую - одинаково...
Однако, накануне, (каким-то непонятным образом) , после очередного редактирования VB скрипта под кнопкой и пересохранения все заработало нормально, на некоторое время...
Я дописал и отладил скрипт, научился находить центр отверстия и его диаметр - все хорошо. При этом запускал-закрывал Mach многократно - все работало.
Сегодня запускаю Mach3... и снова портал едет только в одну сторону?
Что я упустил?
Какой есть "секрет" в команде G31 ?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение aftaev »

Вот когда будет работать посмотри какие Gcode включены и сравни с теми когда работать не будет.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

aftaev писал(а):Вот когда будет работать посмотри какие Gcode включены и сравни с теми когда работать не будет.
Не понял, что надо смотреть?...
Я запускаю мач, в нем захожу в визард и выбираю макрос "Circle Center".
Далее редактирую макрокоманды под кнопками этого макроса - поиск центра окружности по четырем касаниям.
Команда G31 X40 работает не правильно.
Выхожу из макросов, просто набираю команду G31 X40 или G31 X-40 , аналогичный результат - портал всегда едет только в одну сторону.
Какие "Gкоды включены"?
Аватара пользователя
megagad
Почётный участник
Почётный участник
Сообщения: 3207
Зарегистрирован: 05 апр 2014, 18:57
Репутация: 712
Откуда: Реуспублика Крым, Бахчисарай.
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение megagad »

G31 по своей сути G01, только с функцией реакции на внешний сигнал. При подаче9получении) внешнего сигнала выполнение данной "строки" останавливается и далее выполняется следующая строка. Проверьте - правильно-ли у вас выполняется G01?? Может станок сам "шалит"?
К тому-же - что за команды стоят перед этим Г-кодом? Возможно так, что при запуске макроса активируются коды, дейсвтующие до момента их отключения(принудительно).
We Do What We Must, Because We Can!
Причинять добро, наносить пользу и подвергать ласке.
Аватара пользователя
Дрюня
Почётный участник
Почётный участник
Сообщения: 2040
Зарегистрирован: 25 ноя 2013, 00:19
Репутация: 1504
Настоящее имя: Андрей
Откуда: Днепр
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение Дрюня »

Я ставил русскоязычный скринсет от Михаила Юрова, там все кнопочки работают по умолчанию.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

megagad писал(а):G31 по своей сути G01, только с функцией реакции на внешний сигнал Проверьте - правильно-ли у вас выполняется G01?? Может станок сам "шалит"?
К тому-же - что за команды стоят перед этим Г-кодом? Возможно так, что при запуске макроса активируются коды, дейсвтующие до момента их отключения(принудительно).
В том то и дело, что нет никаких кодов, ни G ни M, перед командой G31.
Банальный скрипт, сначала зажигает индикатор LED на экране и должен поехать на право до касания
Call SetUserLED (1101,1)

X1 = GetDRO(0)
Y1 = GetDRO(1)

Call SetUserDRO(1101 , X1)
Call SetUserDRO(1111 , Y1)
Code "G31 X60 F350" 'probing move, can set the feed rate here as well as how far to move

While IsMoving() 'wait while it happens
Wend

едет в минус по Х, а должен в плюс.
Если выйти из макроса и набрать команду руками - тоже едет не в ту сторону.
Почему?
sas_75
Мастер
Сообщения: 463
Зарегистрирован: 10 мар 2015, 11:03
Репутация: 114
Настоящее имя: Сергей
Откуда: Владивосток
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение sas_75 »

А какое начальное значение X в окне, где берется X1 (команда X1=GetDRO(0)) ? Если оно больше 60, то логично, что "Х" поедет в минус. Скрин положите.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение aftaev »

boka17 писал(а):В том то и дело, что нет никаких кодов, ни G ни M, перед командой G31.
Есть Gcode которые включают/выключают разные настройки и они прописаны в конфигурации Мач3 и активируются при запуске Мач3. Но при выполнении файла с Gcode можно их сменить. Например G21 устанавливает мм, но это можно поменять в файле который грузим в Мач3 и там указать что хотим работать с дюймами. Или G18 выбирается рабочая плоскость, если ее сменить на другу плоскость может пробник не будет работать.
01.png (5862 просмотра) <a class='original' href='./download/file.php?id=67515&sid=e7cdccbdabb4a138d52d3f5129d00b77&mode=view' target=_blank>Загрузить оригинал (434.73 КБ)</a>
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

sas_75 писал(а):А какое начальное значение X в окне, где берется X1 (команда X1=GetDRO(0)) ? Если оно больше 60, то логично, что "Х" поедет в минус. Скрин положите.
Хм.. в момент подачи команды G31 значение Х (машинное) было +160мм.
А, разве, параметр "60" в команде G31X60 задает абсолютную координату (ехать в точку Х=60) а не относительную (переместить Х на "плюс 60") ?
Следующей командой (по логике поиска центра окружности) надо давать G31X-60 - это-же не означает, что надо ехать в точку с абсолютной Х=минус 60 ?
Если не будет сработки зонда за эти 60 мм, движение остановится.
Это и происходит, если ставить 60 или 10 и нет касания - станок останавливается, т.е. дистанцию считает, но, всегда в одну сторону.
Надо будет поиграться с обнулением всех координат в точке начала поиска центра окружности - может, тут собака порылась и нужны все нули.
Аватара пользователя
megagad
Почётный участник
Почётный участник
Сообщения: 3207
Зарегистрирован: 05 апр 2014, 18:57
Репутация: 712
Откуда: Реуспублика Крым, Бахчисарай.
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение megagad »

boka17 писал(а):А, разве, параметр "60" в команде G31X60 задает абсолютную координату (ехать в точку Х=60) а не относительную (переместить Х на "плюс 60") ?
Следующей командой (по логике поиска центра окружности) надо давать G31X-60 - это-же не означает, что надо ехать в точку с абсолютной Х=минус 60 ?
нет - это "координата", куда должен уехать щуп. Обычно щуп помещают в "примерный" ноль, обнуляют дро и начинают искать "от нуля".
We Do What We Must, Because We Can!
Причинять добро, наносить пользу и подвергать ласке.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение AndyBig »

boka17 писал(а):А, разве, параметр "60" в команде G31X60 задает абсолютную координату (ехать в точку Х=60) а не относительную (переместить Х на "плюс 60") ?
Вам же сказали, что это по сути G01, и едет он по тем же принципам. Так что да, если Вы не переключали в относительные координаты (G91), то "G31 X60" означает "доехать по X до координаты 60, остановившись если по пути будет касание".
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

Пока станок далеко (вечером), изучаю теорию этой команды G31.
Вот, захотелось, мне разобраться с этой командой досконально :)
Мало где попадается описание Г-кодов, где описана команда G31. Только в самом маче и есть понятное описание :) , даже с примером.
Но там ни слова о необходимости обнуления координат перед командой!
вот команды из примера мача:
.. в переменные 1001 1002 1003 задаем "примерные" координаты центра отверстия
N060 #1001=
N070 #1002=
N080 #1003=
N090 #1004=
N100 #1005=[/2.0 - #1004]

поехали на безопасной высоте к центру
N110 G0 X#1001 Y#1002 (move above nominal hole center)

опустили по Z probe в отвертие
N120 G0 Z#1003 (move into hole - to be cautious, substitute G1 for G0 here)

поехали командой G31 с параметром "радиус" вычисленный заранее, как относительная координата, к предполагаемому краю отверстия
N130 G31 X[#1001 + #1005] (probe +X side of hole)
N140 #1011=#2000 (save results)

вернулись в центр
N150 G0 X#1001 Y#1002 (back to center of hole)

едем G31 в другую сторону, снова по относительному смещению (разность координат точек)
N160 G31 X[#1001 - #1005] (probe -X side of hole)

ну, и так далее.
Нет нигде упоминания (и нет команд) обнуления координат, после приезда в примерный центр отверстия.
Странно выглядят строки N90 N100. Я так понимаю, что 1004 надо присвоить искомый (?) диаметр и перед делением на 2 его тоже надо указать в 100 строке
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение AndyBig »

В примере как раз и работают по абсолютным координатам - N130 G31 X[#1001 + #1005] - проехать в координату (центр+радиус).
И какой смысл обнулять координаты по центру отверстия, если нужно как раз выяснить координаты этого центра?
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

AndyBig писал(а):В примере как раз и работают по абсолютным координатам - N130 G31 X[#1001 + #1005] - проехать в координату (центр+радиус).
И какой смысл обнулять координаты по центру отверстия, если нужно как раз выяснить координаты этого центра?
Вот это я и спрашиваю у форума :)
В общем, сам себе отвечаю, проблему я выяснил, понял и решил.
Делюсь.
У меня ноль станка - левый нижний угол стола, все перемещения портала происходят в положительных X и Y.
Деталь, внутренний диаметр которой я хочу измерить и зацентровать, я креплю с центром, допустим X=160 Y=120 (примерно)
и радиус измеряемого отверстия заведомо меньше 60 мм (важно! запомним это число)
Переезжаю вручную примерно в центр отверстия (напомню, это X=160 Y=120), опускаю Z зонда ниже края отверстия.
Запускаю скрипт поиска центра по четырем касаниям ..... и он работает не правильно! Портал едет только в сторону уменьшения по X и по Y.
Возвращаю щуп в примерный центр, и, теперь зануляю X и Y, и снова запускаю тот-же скрипт - все работает как надо, центр находится верно и измеряется диаметр тоже верно!
В команде G31 у меня указано 60, т.е. измеряемый диаметр не больше 120 мм.
Так вот, команда G31 не правильно работает, если координата X точки начала измерений больше по абсолютному значению параметра в команде G31X60
аналогично и по Y.
Если я размещу деталь с центром X=55 Y=55 то G31X60 позволит найти центр отверстия, а с центром X=160 Y=120 уже нет
ну, или надо обнулятся в точке предполагаемого центра, и только потом запускать скрипт, либо указывать параметр G31X600 больше размера стола, чтобы наверняка попасть.
Все.
Пошел доделывать свой скрипт.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение AndyBig »

boka17 писал(а):Так вот, команда G31 не правильно работает, если координата X точки начала измерений больше по абсолютному значению параметра в команде G31X60
Команда работает правильно, это Вы неправильно понимаете как она должна работать и, соответственно, неправильно пишете скрипт :)
boka17 писал(а):В команде G31 у меня указано 60, т.е. измеряемый диаметр не больше 120 мм.
Измеряемый диаметр может быть и 5мм, и при этом G31 X60 может не доехать до края отверстия.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

Команда работает правильно, это Вы неправильно понимаете как она должна работать и, соответственно, неправильно пишете скрипт :)
boka17 писал(а):В команде G31 у меня указано 60, т.е. измеряемый диаметр не больше 120 мм.
Измеряемый диаметр может быть и 5мм, и при этом G31 X60 может не доехать до края отверстия.
Я понимаю, что меня не понимают :)
Я не говорю, что команда G31 неправильно работает в маче, я хочу разобраться, при каких начальных условиях она будет работать правильно.
Пока объяснить это "для чайника" никто не смог :(
Эксперимент, как известно - лучшая проверка.
Так вот, я убедился, что в моем маче скрипт поиска центра работает верно только при обнулении координат в предполагаемом центре.
Без обнуления работает при указании заведомо большого параметра перемещения для поиска края.
Буду изучать другие центроискательные скрипты, чтобы понять зависимость от начальных условий....

И я действительно не понимаю, как при диаметре отверстия 5мм и указании поиска на 60мм можно "не доехать до края отверстия"...?
Это стартовать надо "за" отверстием ? или не опустить зонд по Z - ехать над деталью - тогда это просто аварийная ситуация и в логике скрипта должна обрабатываться соответствующе.
boka17
Новичок
Сообщения: 21
Зарегистрирован: 28 дек 2015, 21:25
Репутация: 2
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение boka17 »

Оказалось ещё проще :)
Все описания по G кодам, которые мне попались надо сжечь. Вместе с педевикией и прочими Ынтернетами.
Мало того, что G31 почти нигде не описана, так если и описана то языком китайского балета, хоть на русском, хоть на английском языке.
Разве нельзя было написать примерно так:
G31 X[xxx+d]
G31 X[xxx-d]
G31 Y[yyy+d]
G31 Y[yyy+d]
где xxx,yyy текущие координаты, d - максимальный радиус, и значения [xxx+d] , [xxx-d] , [yyy+d] , [yyy-d] надо вычислить перед подачей команды G31
Везде в описаниях упоминают только +d и -d и команда выглядит как G31 X-d :evil:
Писателям таких описаний надо "Пожизненный эцих с гвоздями" давать!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение Serg »

Всё правильно везде написано!
"G31 Xnnn" не перемещается на nnn мм, а как и любая команда перемещения едет в точку с координатой Xnnn. Чтобы перемещаться на nnn мм надо переключить режим командой G91.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sas_75
Мастер
Сообщения: 463
Зарегистрирован: 10 мар 2015, 11:03
Репутация: 114
Настоящее имя: Сергей
Откуда: Владивосток
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение sas_75 »

[quote="boka17"]Оказалось ещё проще :)
Все описания по G кодам, которые мне попались надо сжечь. Вместе с педевикией и прочими Ынтернетами.
Мало того, что G31 почти нигде не описана, так если и описана то языком китайского балета, хоть на русском, хоть на английском языке.

Видимо Вам необходимо еще раз вдумчиво почитать литературу. Где-то образовались пробелы, нет понимания работы системы, когда она оперирует абсолютными значениями, когда относительными.
Если что-то идет не так, как Вы задумали, это еще не значит, что правила нарушились сами, в первую очередь надо понять, где Вы могли допустить ошибку. Будьте самокритичны.
Прежде, чем писать скрипты, надо изучить уже готовые, причем несколько, чтобы понять нюансы.
Применительно к вашему случаю, чтобы не заниматься обнулением координат, не перебираться в систему относительных перемещений (G91), чтобы вконец запутаться куда и насколько надо ехать, а потом еще и забыть вернуться в систему абсолютных координат (G90), можно поступить так:

Xnew = GetDRO(0) - 60 ' присвоение переменной значения (X - 60), где X - текущее абсолютное значение координаты
Code "G31 X"&Xnew ' подставляем новое значние X для движения в -X на 60мм

P.S. Я тоже не волшебник, а только учусь. Где-то уже выкладывал описание G-кодов на русском языке, не поленюсь еще раз выложить.
Вложения
g-code_rus.pdf
(1.82 МБ) 3099 скачиваний
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Не работает G31 в Mach3

Сообщение AndyBig »

boka17 писал(а):И я действительно не понимаю, как при диаметре отверстия 5мм и указании поиска на 60мм можно "не доехать до края отверстия"...?
Если у Вас текущая координата X равна 59 и Вы даете G31 X60, то станок проедет 1 мм и остановится. До края отверстия останется еще 1.5мм (если отверстие диаметром 5мм и щуп изначально был в его центре) :)
boka17 писал(а):Разве нельзя было написать примерно так:
G31 X[xxx+d]
G31 X[xxx-d]
Там примерно так и написано :)
boka17 писал(а):значения [xxx+d] , [xxx-d] , [yyy+d] , [yyy-d] надо вычислить перед подачей команды G31
в квадратных скобках - это и есть вычисления "на лету", Мач понимает такие выражения и вычисляет их сам перед исполнением команды :)
Ответить

Вернуться в «Windows / Mach»