Добрый день!
Коллеги, прошу Вашей помощи в написании нескольких макросов / скриптов для Mach3.
На текущий момент занимаюсь модернизацией своего станка, который описывал в этой теме: http://www.cnc-club.ru/forum/viewtopic. ... 57#p510957
Сейчас возникли потребности в организации поиска базы двух осей Z, поиска базы по меткам OZ энкодеров, выравнивании портала по меткам Z энкодеров.
Задача №1
Требуется при нажатии кнопки "Ref All Home" реализовать поочередный поиск HOME на оси Z1, затем Z2 (или наоборот) и далее Y и X.
На текущий момент по умолчанию работает ось Z1, а Z2 стоит в удержании, при активации сигнала OUTPUT 5 состояние осей инвертируется - Z1 стоит в удержании, Z2 работает. Концевики HOME обоих осей соединены параллельно и дают сигнал на вход Z Home.
Задача №2
Требуется организовать точный поиск базы на каждой оси путем применения сигнала от нулейвой метки (Z) энкодера.
Предполагаю получить такой алгоритм работы: при поиске базы ось едет в направлении "-" до срабатывания концевика, затем едет в "+" до срабатывания выхода OZ энкодера двигателя, эту точку считать базой. Выход OZ возможно завести на входы Input 1-4 и/или OEM Trig.
Задача №3
Выравнивание портала по меткам OZ. Предполагается что изначально механическим путем будет настроено положение основной оси (Y) и подчиненной оси (B) таким образом, что при положении обоих двигателей осей в положении OZ портал будет стоять в правильном положении т.е. ось Y будет перпендикулярна оси X. Предполагаю следующий алгоритм работы: при поиске базы основная и подчиненная ось едут в направлении "-", при срабатывании OZ той или другой оси соответствующая ось останавливается, оставшаяся продолжает движения до срабатывания ее метки OZ, далее обе оси синхронно едут в направлении "-" до срабатывания любого из концевиков Limit Y- или Limit B- (при необходимости их можно запараллелить и завести только на один вход, например на Limit Y-). Затем, как и в предыдущей задаче, обе оси едут в направлении "+" до срабатывания сигнала OZ и останавливаются; это положение и будет Y Home.
Задача №4
Если в G-коде присутствует команда смены инструмента на любой номер, кроме "20" вся система должна работать в обычном режиме. Если стоит команда смены инструмента на номер "20", то необходимо сместить рабочие координаты осей X и Y на величину расстояний между центрами осей шпинделей, расположенных на каретках Z1 и Z2. Вижу реализацию этого путем перехода в другую систему координат. Затем необходимо запомнить положение оси Z1 и поднять ее максимально вверх, активировать ось Z2 и привести ее в положение в котором находилась Z1 до подъема. В случае если текущим инструментом является инструмент с номером "20" и следует команда смены инструмента на другой номер, то выполнить аналогичные действия наоборот: перейти в другую систему координат, запомнить положение Z2, поднять Z2 максимально вверх, активировать Z1, отправить Z1 в положении в котором находилась Z2 до подъема.
В написании скриптов / макросов я не силен... совсем не силен, поэтому прошу тапками не кидаться. Буду благодарен если подскажите где посмотреть подобные примеры.
Скрипты для поиска базы и выравнивания портала.
-
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Коллеги! Неужели никто не может помочь в реализации данных задач? Хотя бы помогите простейшими примерами: как отправить ось в нужном направлении, как узнать, что появился сигнал на входе, как считать текущее значение координат и записать его.
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Делать выравнивание с метками через скрипт - плохая идея (плюс, на сколько помню, в мач3 нельзя подвинуть подчинённую ось отдельно от ведущей).
Если ты на ESS, можно почитать это - https://warp9td.com/index.php/faq/faq-mach3#Homing
Я не стал заморачиваться. У меня портал с рабочей зоной 1500. Я выравниваю тупо об два концевика.
Если ты на ESS, можно почитать это - https://warp9td.com/index.php/faq/faq-mach3#Homing
Я не стал заморачиваться. У меня портал с рабочей зоной 1500. Я выравниваю тупо об два концевика.
-
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Не стал сразу отвечать, долго думал, но так и не понял что плохого в этой идее. С одной стороны я конечно понимаю, что данную процедуру (выравнивание по меткам) лучше и правильнее реализовать аппаратным способом, но штатным функционалом имеющегося оборудования сделать это не представляется возможным, с другой стороны почему бы не видоизменить алгоритм работы программной части, например скриптами.FLUKE писал(а):Делать выравнивание с метками через скрипт - плохая идея
Подчиненная отдельно от ведущей двигается без проблем, а вот наоборот - ведущую без подчиненной подвинуть так и не смог. Предполагаю, что все же решение этой проблемы есть, мач же при обнулении двигает оси отдельно.FLUKE писал(а): в мач3 нельзя подвинуть подчинённую ось отдельно от ведущей
-
- Мастер
- Сообщения: 1094
- Зарегистрирован: 05 апр 2016, 20:18
- Репутация: 125
- Настоящее имя: Жэзэрэл
- Откуда: Там, сям.
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Ну прям готовые хз, а так вот мануал.1Doc1 писал(а):где посмотреть подобные примеры
В маче выбираете пункт edit button script, замигает кнопка ref all home. Тыкаете на неё. Откроется окно с текстом. Там будет скрипт поиска нуля всех осей по очереди. Нужно между этими home(22) и пр добавить ActivateOutput(OUTPUT3). Что-то такое.1Doc1 писал(а):Задача №1
Требуется при нажатии кнопки "Ref All Home" реализовать поочередный поиск HOME на оси Z1, затем Z2 (или наоборот) и далее Y и X.
На текущий момент по умолчанию работает ось Z1, а Z2 стоит в удержании, при активации сигнала OUTPUT 5 состояние осей инвертируется - Z1 стоит в удержании, Z2 работает. Концевики HOME обоих осей соединены параллельно и дают сигнал на вход Z Home.
По тому же принципу. Сначала ось полностью хомится по концевому датчику, затем переключаемся на другой датчик, т е на метку в энкодере, ActivateOutput(OUTPUT3), и ещё раз полностью хомится.1Doc1 писал(а):Задача №2
Требуется организовать точный поиск базы на каждой оси путем применения сигнала от нулейвой метки (Z) энкодера.
Предполагаю получить такой алгоритм работы: при поиске базы ось едет в направлении "-" до срабатывания концевика, затем едет в "+" до срабатывания выхода OZ энкодера двигателя, эту точку считать базой. Выход OZ возможно завести на входы Input 1-4 и/или OEM Trig.
Также как в предыдущем варианте.1Doc1 писал(а):Задача №3
Выравнивание портала по меткам OZ. Предполагается что изначально механическим путем будет настроено положение основной оси (Y) и подчиненной оси (B) таким образом, что при положении обоих двигателей осей в положении OZ портал будет стоять в правильном положении т.е. ось Y будет перпендикулярна оси X. Предполагаю следующий алгоритм работы: при поиске базы основная и подчиненная ось едут в направлении "-", при срабатывании OZ той или другой оси соответствующая ось останавливается, оставшаяся продолжает движения до срабатывания ее метки OZ, далее обе оси синхронно едут в направлении "-" до срабатывания любого из концевиков Limit Y- или Limit B- (при необходимости их можно запараллелить и завести только на один вход, например на Limit Y-). Затем, как и в предыдущей задаче, обе оси едут в направлении "+" до срабатывания сигнала OZ и останавливаются; это положение и будет Y Home.
Условия через if и else нужно шаманить. Запоминать положение можно из окон dro, номера в мануале.1Doc1 писал(а):Задача №4
Если в G-коде присутствует команда смены инструмента на любой номер, кроме "20" вся система должна работать в обычном режиме. Если стоит команда смены инструмента на номер "20", то необходимо сместить рабочие координаты осей X и Y на величину расстояний между центрами осей шпинделей, расположенных на каретках Z1 и Z2. Вижу реализацию этого путем перехода в другую систему координат. Затем необходимо запомнить положение оси Z1 и поднять ее максимально вверх, активировать ось Z2 и привести ее в положение в котором находилась Z1 до подъема. В случае если текущим инструментом является инструмент с номером "20" и следует команда смены инструмента на другой номер, то выполнить аналогичные действия наоборот: перейти в другую систему координат, запомнить положение Z2, поднять Z2 максимально вверх, активировать Z1, отправить Z1 в положении в котором находилась Z2 до подъема.
Номер 20 это и Z1 и Z2? Насколько я понимаю, тут не может быть две оси, будут два инструмента.
-
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Спасибо, этот мануал уже смотрел, но справится с поставленной задачей пока так и не смог.Евжений писал(а):Ну прям готовые хз, а так вот мануал.
Mach3_V3.x_Macro_Prog_Ref.pdf
Спасибо, с этим также уже разобрался, но получил больше вопросов чем ответов.Евжений писал(а):В маче выбираете пункт edit button script, замигает кнопка ref all home. Тыкаете на неё. Откроется окно с текстом. Там будет скрипт поиска нуля всех осей по очереди. Нужно между этими home(22) и пр добавить ActivateOutput(OUTPUT3). Что-то такое.
Стандартный код, который скрывается под кнопкой "Ref All Home":
Сразу возникает вопрос где посмотреть номера кнопок Button и OEMButton. Также возникает вопрос как отредактировать те кнопки, которые не мигают при выборе "Edit Button Script" ? Например на 7м экране стандартного скринсета кнопки Ref X, Ref Y и т.д.DoButton( 24 )
DoButton( 23 )
DoButton( 22 )
DoButton( 25 )
DoOEMButton(133)
DoOEMButton(134)
DoOEMButton(135)
Я так понимаю предполагается переключение датчиков через реле и подача сигнала на один и тот-же вход. Как мне кажется это не самое лучшее решение, т.к. теоретически могжно получить ложные срабатывания, вызванные дребезгом контактов. Именно по этому хотелось бы использовать дополнительные входы.Евжений писал(а):Сначала ось полностью хомится по концевому датчику, затем переключаемся на другой датчик, т е на метку в энкодере, ActivateOutput(OUTPUT3), и ещё раз полностью хомится
Именно так. Прежде чем шаманить пытаюсь понять все остальные принципы управления, а с этим пока туго...Евжений писал(а):Условия через if и else нужно шаманить
Номер написал условно, т.е. подразумевается что все номера инструментов используются для оси Z1, кроме номера "20" - он будет использоваться для оси Z2. Для мача обе физические оси являются одной осью. На данный момент я их переключаю путем использования отдельных выходов, которые активируют INHP на сервах. Пока только вручную через М-код - вместе с выбором активной оси Z у меня также выбирается шпиндель: 1й или 2й и разрешение подачи воздуха на шпиндель 1. Я предполагаю что через If / else можно написать условие при котором в случае выбора определенного номера инструмента будет производиться смена системы координат. Например отвести под определенный номер инструмента свою систему координат (например G59), взять текущие значения и прибавить/отнять фиксированные известные значения X и Y и записать результат в СК G59, затем активировать G59, при обратной смене менять СК обратно, соответственно потребуется запоминать номер предыдущей СК.Евжений писал(а):Номер 20 это и Z1 и Z2? Насколько я понимаю, тут не может быть две оси, будут два инструмента
-
- Мастер
- Сообщения: 1094
- Зарегистрирован: 05 апр 2016, 20:18
- Репутация: 125
- Настоящее имя: Жэзэрэл
- Откуда: Там, сям.
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
В мануале в прикреплённом, в самом низу.1Doc1 писал(а):где посмотреть номера кнопок Button и OEMButton
Их нельзя отредактировать. Можно их удалить, и вместо них создать свою. Это всё можно сделать в редакторе скринсетов.1Doc1 писал(а):как отредактировать те кнопки, которые не мигают
Транзисторами можно.1Doc1 писал(а):Я так понимаю предполагается переключение датчиков через реле и подача сигнала на один и тот-же вход. Как мне кажется это не самое лучшее решение, т.к. теоретически могжно получить ложные срабатывания, вызванные дребезгом контактов. Именно по этому хотелось бы использовать дополнительные входы.
Можно, экспериментировать надо. Ничего космического вроде нет.1Doc1 писал(а):Номер написал условно, т.е....
- PLOT
- Мастер
- Сообщения: 302
- Зарегистрирован: 24 июн 2019, 16:09
- Репутация: 68
- Настоящее имя: Семен
- Откуда: Москва
Re: Скрипты для поиска базы и выравнивания портала.
1Doc1, если нужна помощь - свяжитесь в личке, поможем!
Подписывайтесь на канал YouTube Game Of CNC
А это сайтик сбаценный на тильде, с информацией о нас и нашей работе - заходите
А это сайтик сбаценный на тильде, с информацией о нас и нашей работе - заходите
-
- Кандидат
- Сообщения: 56
- Зарегистрирован: 20 янв 2017, 13:23
- Репутация: 39
- Настоящее имя: Вячеслав
- Контактная информация:
Re: Скрипты для поиска базы и выравнивания портала.
Выше было написано, что подчиненную ось без проблем можно сдвинуть от основной.
Какими командами это можно сделать?
Какими командами это можно сделать?