Список скриптов/макросов для Mach

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

Evghenii писал(а):При скорости перемещения 1000 мм/мин (которая относительно низкая) после срабатывания Probe резак опускается ещё на 6мм
У нас нормуль работает. Мож как обычно крякнутный Mach3 ?
Evghenii писал(а):на простой макрос, который бы опускал ось Z до момента срабатывания сигнала, к примеру, OUTPUT#1
Что значит простой? Ели писать то через каждые 0,1мм опрашивать вход в цикле, останавливать при срабатывании и выходить из цикла. Неизвестно какой приоритет и скорость работы у Mach3 с входом Probe и простого Input.
Evghenii писал(а):Замена команды G31 на такой макрос сократила бы время на поиск металла, а при выполнении работы с большим количеством проколов это очень сильно сократит время всей работы.
Сократить время поиска можно использовав триангулярный лазерный датчик или какой нибудь LVDT который касанием или без(в случае с лазером) будет сразу в Mach3 передавать расстояние до металла. Примерно так сделано машинное зрение в сварочных роботах.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Evghenii
Новичок
Сообщения: 6
Зарегистрирован: 12 июн 2018, 15:50
Репутация: 0
Настоящее имя: Евгений
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Evghenii »

aftaev писал(а):У нас нормуль работает. Мож как обычно крякнутный Mach3 ?
У меня Mach крякнутый, но в демо режиме ситуация такая же.
Хочу уточнить, у Вас при поиске металла (G31) ось Z останавливается также быстро как и при свободных переездах?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

Evghenii писал(а):Хочу уточнить, у Вас при поиске металла (G31) ось Z останавливается также быстро как и при свободных переездах?
Не замерял есть разница или нет. G31 работает, поиск работает. Но часто глючит сам датчик поиска и плазматрон клюет. Если лист грязный тоже будет плохо работать.
Судя по роликам Ютуба люди с G31 и фрезерным тыкают фрезой в медную пластинку и фрезы у них почему то не ломаются.
У вас скорее всего стоит большое время разгона и торможения оси Z. Вот Mach3 при срабатывании G31 еще и едет 6мм
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Evghenii
Новичок
Сообщения: 6
Зарегистрирован: 12 июн 2018, 15:50
Репутация: 0
Настоящее имя: Евгений
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Evghenii »

aftaev писал(а): Что значит простой? Ели писать то через каждые 0,1мм опрашивать вход в цикле, останавливать при срабатывании и выходить из цикла. Неизвестно какой приоритет и скорость работы у Mach3 с входом Probe и простого Input.
Возвращаясь к макросу.
Из того что я узнал о VB для Mach, используя функцию, например: sleep (100), можно задержать выполнения программы на 0,1 сек. и тем самым задать частоту опроса input для того чтобы не перегружать процессор ПК.
Но написать правильно цикл для опускания оси Z до срабатывания входящего сигнала у меня не получается.
Вы могли бы с этим помочь?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

Evghenii писал(а):Вы могли бы с этим помочь?
Здесь нужно Взять Mach3 подключить к нему датчик, сидеть, писать, отлаживать, писать.
У меня на это нет времени.
Evghenii писал(а):Из того что я узнал о VB для Mach, используя функцию, например: sleep (100), можно задержать выполнения программы на 0,1 сек.
sleep используется чтобы выдержать паузу, чтобы станок успел выполнить предыдущие команды, а не крутиться в цикле симулируя паузу.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Zampoteh
Опытный
Сообщения: 172
Зарегистрирован: 18 сен 2016, 18:20
Репутация: 48
Настоящее имя: Александр
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Zampoteh »

Коллеги, нужен совет.
Встраиваю в систему резцедержатель с автосменой, у него нужный инструмент вызывается импульсом на соотв. пин, для чего написаны 4 макроса. Например, макрос m12
Activate( OUTPUT2 )
Sleep 500
DeActivate( OUTPUT2 )

Мач посылает сигнал на выход2, резцедержка поворачивается на резец номер 2.
Управляет резцедержкой атмега, которая иногда ловит глюки, уже приходилось пулей лететь до грибка ЕСтопа. В связи с этим ставлю механический концевик, который сообщает о выполнении задачи по смене инструмента.
Подскажите, как его прописать в макросе, чтобы приостановить выполнение УП до поступления сигнала о завершении смены инструмента? Пока что приходит мысль объединить этот сигнал с кнопкой "старт", созданной через brain control, а в УП прописывать
M12
M00
и далее

Но мне кажется что логичнее прописать в макросе опрос входа, на который завести сигнал.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

У тебя револьверка на 4ре инструмента. Логичнее после смены инструмента, сравнить номер инструмента с заданным в Mach3. Для этого револьверка должна уметь выдавать номер инструмента.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Zampoteh
Опытный
Сообщения: 172
Зарегистрирован: 18 сен 2016, 18:20
Репутация: 48
Настоящее имя: Александр
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Zampoteh »

Для этого надо поставить 4 датчика, найдя под них место, потом завести их в мач, поставив еще один физический порт, потом написать макрос => громоздко и сложно.
Логика такая: если блок не начнет подниматься, то концевик не автивируется, если не сработал холл под нужным номером, соответствующим номеру запроса, то блок не начнет затягиваться, если блок не затянулся, то не сработает концевик. Вывод: если концевик активировался и потом сработал, то система отработала корректно. О чем и идет подтверждающий сигнал. Один.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

Zampoteh писал(а):поставив еще один физический порт, потом написать макрос => громоздко и сложно.
Для передачи 4ре инструмента, нужно 2 проводка не считая общего, для передачи бинарным кодом.
Zampoteh писал(а):если не сработал холл под нужным номером,
Так вот этот холл который отвечает за номер инструмента и использовать. Те более если стоит ардуина, которая может считать этот холл и выдать в Mach3 код в виде двиичного кода или вообще по МодБас через USB
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Zampoteh
Опытный
Сообщения: 172
Зарегистрирован: 18 сен 2016, 18:20
Репутация: 48
Настоящее имя: Александр
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Zampoteh »

Сработавший холл еще не означает что резцедержка затянулась. Под нее при повороте элементарно может попасть стружка. Так что без концевика не обойтись.
Вопрос: как прописать в макросе что после сработки концевика надо продолжить выполнение УП? А то я в VB не силен.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

У меня на токарном с Lcnc работает так:
Включаешь станок, едишь в НОМЕ, Lcnc пишет: без инструмента. В MDI или с панели задаю нужный номер, барабан крутиться, устанавливается заданный инструмент. Так ЧПУ узнает номер инструмента после включения.
Алгоритм работы револьверки: крутиться мотор в револьверке по часовой, перебираются номера инструментов. Как только с револьверки поступает сигнал нужного номера инструмента, ЧПУ понимает что найден нужный инструмент. Револьверка начинает вращаться против часовой чтобы зажать барабан. Зажимает до тех пор пока не сработает датчик что револьверка зажата + еще подается около 5сек напруга на мотор, чтобы точно зажать барабан.
Если по каким либо причинам инструмент не будет найден за 15сек(несколько оборотов барабана) = авария
Если по каким либо причинам барабан не будет зажат за 10сек = авария

Как Mach3 будет после включения станка знать точно какой номер инструмента сейчас установлен?
Zampoteh писал(а):Вопрос: как прописать в макросе что после сработки концевика надо продолжить выполнение УП? А то я в VB не силен.
Надо написать цикл который крутиться пока не сработал концевик. Цикл должен крутиться какое то время, а не бесконечно. Как только он сработал выход из процедуры.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Zampoteh
Опытный
Сообщения: 172
Зарегистрирован: 18 сен 2016, 18:20
Репутация: 48
Настоящее имя: Александр
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Zampoteh »

aftaev писал(а):Зажимает до тех пор пока не сработает датчик что револьверка зажата + еще подается около 5сек напруга на мотор, чтобы точно зажать барабан.
Нее, у меня при сработке нужного холла просто вращается назад, напряжение подается 8 секунд.
aftaev писал(а):Как Mach3 будет после включения станка знать точно какой номер инструмента сейчас установлен
Ручками. У меня не стандартный алгоритм смены через М06, у меня первый инструмент это G54, второй это G55, итд. Это потребовалось для оптимизации движений при использовании линейного банка, ну так и перекочевало на поворотную резцедержку.
aftaev писал(а):Надо написать цикл который крутиться пока не сработал концевик. Цикл должен крутиться какое то время, а не бесконечно. Как только он сработал выход из процедуры.
Мне надо написать в макрос вызова резцедержки чтобы продолжение выполнения УП происходило по сигналу с концевика. И всё. Или, как вариант, написать макрос аналогичный М00, но чтобы он реагировал не на кнопку "пуск", а на отдельный вход.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение aftaev »

Zampoteh писал(а):Мне надо написать в макрос вызова резцедержки чтобы продолжение выполнения УП происходило по сигналу с концевика.
Будет вечно ждать в цикле, пока не поступит сигнал. Будет выглядеть что mach3 повис, а он ждет сигнал ;)
Варинт1 отличается от Вариант2 инверсией сигнала.

Вариант1
ActivateSignal( OUTPUT2 ) ' включил затяжку резцедержки
While IsActive(INPUT1) ' Ждем сигнала
Sleep10
Wend


Вариант2
ActivateSignal( OUTPUT2 ) ' включил затяжку резцедержки
While Not IsActive(INPUT1) ' Ждем сигнала
Sleep10
Wend
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Zampoteh
Опытный
Сообщения: 172
Зарегистрирован: 18 сен 2016, 18:20
Репутация: 48
Настоящее имя: Александр
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Zampoteh »

О ништяк, сейчас попробую прикрутить такой код. С утра таки повесил концевик на физическую CycleStart через brain, пол-дня уже работает, более ста смен выполнило, всё нормал. Но для работы с резцедержкой при отладке надо выгружать УП, чтобы ее не запускало, что немного неудобно.
Аватара пользователя
stanislavpetrashko
Новичок
Сообщения: 24
Зарегистрирован: 17 дек 2012, 11:54
Репутация: 1
Настоящее имя: Станислав
Откуда: Выборг
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение stanislavpetrashko »

народ, как сделать если поворотная ось стоит в положительных координатах перед обнулением она ехала бы в отрицательные,скажем -10 и только потом обнулялась эта ось.
Евжений
Мастер
Сообщения: 1168
Зарегистрирован: 05 апр 2016, 20:18
Репутация: 136
Настоящее имя: Жэзэрэл
Откуда: Там, сям.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Евжений »

If GetOEMDRO(802) >0 Then
Code"G0Z-10G91"
While IsMoving
Wend
End If
DoButton(24)

Для оси Z. Нужно допилить.

PS Отредактировал.
ВК https://vk.com/id353124059
О Боже, дай мне .... пендель!
Аватара пользователя
stanislavpetrashko
Новичок
Сообщения: 24
Зарегистрирован: 17 дек 2012, 11:54
Репутация: 1
Настоящее имя: Станислав
Откуда: Выборг
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение stanislavpetrashko »

Евжений писал(а):If GetOEMDRO(802) >0 Then
Code"G0Z-10G91"
While IsMoving
Wend
End If
DoButton(24)
попробовал Ваш макрос. Хорош,но если Z (в данном примере) стоит 40, то она откатывается назад на 10 и всё,т.е. в итоге получается 30, а нужно что бы в минусовую координату уходило.
Может кто знает как запилить: если положение оси в плюсе то вычесть столько же и плюсанють скажем 10, что бы в минусовую координату вышла.
пока сделал такие костыли( поворотная ось отображается не в градусах, поэтому такие числа):

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

value=GetOEMDRO(804)
If value > 900 Then
	Code"G0B-1400G91"
	ElseIf value > 800 Then
	Code"G0B-1300G91"
	ElseIf value > 700 Then
	Code"G0B-1200G91"
	ElseIf value > 600 Then
	Code"G0B-1100G91"
	ElseIf value > 500 Then
	Code"G0B-1000G91"
	ElseIf value > 400 Then
	Code"G0B-900G91"
	ElseIf value > 300 Then
	Code"G0B-800G91"
	ElseIf value > 200 Then
	Code"G0B-700G91"
	ElseIf value > 100 Then
	Code"G0B-600G91"
	ElseIf value > 0 Then
 	Code"G0B-500G91"
	Else
End If 
Аватара пользователя
Kachik
Мастер
Сообщения: 1413
Зарегистрирован: 13 янв 2017, 16:22
Репутация: 308
Настоящее имя: Сергей
Откуда: Питер
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Kachik »

stanislavpetrashko писал(а):попробовал Ваш макрос. Хорош,но если Z (в данном примере) стоит 40, то она откатывается назад на 10 и всё,т.е. в итоге получается 30, а нужно что бы в минусовую координату уходило.
Уберите G91 или замените на G90 - и уедет в абсолютные -10.
Евжений
Мастер
Сообщения: 1168
Зарегистрирован: 05 апр 2016, 20:18
Репутация: 136
Настоящее имя: Жэзэрэл
Откуда: Там, сям.
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение Евжений »

Если не секрет, зачем такой алготирм?
Нажимаем ref Z и ось едет к датчику. Вперёд или назад - пофиг. Срабатывает, обнуляется. Зачем эта движуха вперёд, назад?
Единственная проблема, это если датчик при команде ref Z уже активен. Тогда надо повернуть ось и опять ref Z.
ВК https://vk.com/id353124059
О Боже, дай мне .... пендель!
Аватара пользователя
stanislavpetrashko
Новичок
Сообщения: 24
Зарегистрирован: 17 дек 2012, 11:54
Репутация: 1
Настоящее имя: Станислав
Откуда: Выборг
Контактная информация:

Re: Список скриптов/макросов для Mach

Сообщение stanislavpetrashko »

Евжений писал(а):Если не секрет, зачем такой алготирм?
Нажимаем ref Z и ось едет к датчику. Вперёд или назад - пофиг. Срабатывает, обнуляется. Зачем эта движуха вперёд, назад?
Единственная проблема, это если датчик при команде ref Z уже активен. Тогда надо повернуть ось и опять ref Z.
не секрет. речь идет про 4ую поворотную ось, на ней датчик стоит посередине, а мач может обнулять только в одном направлении. у меня стоит от минусовых координат двигаться к нулю,т.е. к центру. если ось оставить в положительных координатах,то ось сделает сальто прежде чем дойдет до датчика. Может конечно я мудрю и есть что-то готовое а я не в курсе,подскажите пожалуйста( но только не это...зачем тебе датчики и пр.)
Kachik писал(а):Уберите G91 или замените на G90 - и уедет в абсолютные -10.
я попробовал так поменять и сегодня и неделю назад, когда читал про эти коды, чёт не работает.Если ось в положительных коорд то она едет в минусовые и не останавливается, если в отрицательных, то условие вообще не работает и ось просто едет в отрицательные координаты
Ответить

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