Семеро на пятерых / пятеро на семерых - кто кого?
Или осенний калейдоскоп из Хомов, Хард\Софт лимитов, Аварийной остановки и неравной борьбы с Матчем...
Тема с Домами и Лимитами для меня получилась достаточно неоднозначная.
У самого опыта нет пока никакого, на форумах мнения кардинально различаются, суждения тоже, и варьируются от категоричных до очень осторожных.
Документация на сам Матч по мнению одних более чем исчерпывающая, по моему же мнению более чем спартанская.
Чем больше читал документацию, мнений на разных форумах, тем больше каши и тумана образовывалось в голове.
Перехода количества прочитанного в качество понимания не произошло, вопреки мнениям философов.
Решил проверить еще одно филосовское утверждение: "Практика - критерий Истины".
Что мы имеем:
- Монстрика переехавшего на новое место жительства.
Путем суммирования всех плюсов и минусов он все-таки оказался на даче.
Если в ближайшее время ничего не изменится, ему предстоит готовиться к первой в его жизни зимовке в суровых услових.
А мне, как приложившему некоторые усилия к его появлению, изучать темы о консервации оборудования.
- Ненастроенный (в смысле рассматриваемого вопроса) Матч (лицензия, русифицированный).
- Моросящий осенний дождь за окном, препятствующий работам на свежем воздухе и дающий возможность сделать попытку разобраться в теме.
Это из объективных предпосылок.
Из субъективных:
Переводная документация на Матч + куча разнообразных схем/рекомендаций подлючений с форумов (извиняюсь перед владельцами англоязычного Матча, у меня русифицированный и я не смогу сделать двойные скриншоты, но там всего два пункта меню, надеюсь это не будет непреодолимой преградой для нахождения аналогов).
Куча проводов и разъемов, позволяющая реализовать самые разнообразные фантазии в несколько движений.
Все подключения сделаны разъемными из других соображений (я рассказывал об этом чуть ранее в этой теме), для данного эксперимента это оказалось просто удачным стечением обстоятельств.
Что хочу:
Получить для себя ответ на вопрос:
Нужны ли мне Хомы и Лимиты или зря заморачивался?
Если все-таки нужны, то какую схему подключения выбрать?
******************************************************************
Занимательно, но когда проектировал/собирал монстрика эти вопросы даже не ставились под сомнение: однозначно нужно.
По Хомам - ищем нулевой отсчет. Лимиты - предохраняют выезд за физические возможности монстрика.
На каждую ось было установленно по два индуктивных датчика.
Один из которых играет совмещенную роль - он "Домашний" при поиске нуля и он же "Ограничитель" во всех остальных случаях.
Второй - "Ограничитель" в "чистом виде".
Поэтому в моем случае семь претендентов (по два датчика на каждой из трех осей + Аварийная остановка) на пять входов (физическое ограничение одного порта).
Понятно, что надо было как-то выходить из несоответствия требуемого количества входов с действительным их наличием,
и в какой-то момент была реализована следующая схема подключения всего этого :
Схема была выбрана именно такой на основании рекомендации из документации на Матч:
Все пределы могут быть настроены на использование одной "ИЛИ", и подведены к одному входу концевика.
Тогда для каждой оси можно назначить собственный выключатель Баз, подключенный к соответственному вводу.
Так что станок с тремя осями потребует только четыре входа.
Ну и пятый вход у меня занят Аварийной остановкой.
Позже я узнал, что многие объединяют Аварийную остановку и "Ограничители", но к этому моменту уже все было распаяно.
С одной стороны все пять входов заняты, с другой стороны в ближайшей перспективе больше входов вроде как и не нужно.
Пока ничего менять стал, просто из-за отстутсвия необходимости.
Схема станка на всякий случай:
Может я где забуду что-то уточнить...
*******************************************************************
Далее все "Задания №", это я так, сам для себя, сочинял задания и пытался реализавать.
Пунктов меню задействовалось в основном всего два:
Меню Конфигурация --> Порты и пины --> Сигналы входа
и
Меню Конфигурация --> Базы/Границы.
Задание № 1
Настроить датчики, хотя бы на одной оси, хоть как-нибудь.
Для выполнения этого задания выбрал ось Z (как самая короткая).
На время экспериментов сильно упростил схему подлючений.
"Дом" и "Лимит" оси на одном пине. Все оси, кроме Z отключены.
Возможность подобного подключения (оба датчика по одной оси на один вход) проскальзывала в описании Матча.
Первая чать задания:
Попытаюсь настроить "Дом".
Направление и какой из двух датчиков станет "Домом" пока безразлично.
Пусть хоть кто-то из них откликнется, потом поменяю на нужный.
Меню Конфигурация --> Порты и пины --> Сигналы входа
Скорости подъезда к базе и прочее пока не меняю.
Меню Конфигурация --> Базы/Границы.
При попытке найти "Базу" все происходит как описано:
Матч подъезжает к датчику, датчик срабатывает.
Матч отъезжает от "Базы", датчик гаснет.
Все останавливается.
0 по Z найден!!!
Меняем направление поиска датчика.
Честно находит Базу с другой стороны.
Базу настроить получилось!!!
К сожалению сильно пасмурно, видео снять не получется - темновато и для фотика, и для телефона (только фотки со вспышкой).
Вторая часть задания:
Лимиты надо настраивать или они сработают и так?
Схема подключения прежняя. Управление с клавиатуры.
Эксперимент на нижнем датчике. На нем у меня "настраиваемый" ограничитель из тонкой гибкой пластинки.
Если что, согнется пластинка, "удара" о механический ограничитель не будет.
Руку держу на Аварийной остановке (в смысле на клавише "Esc").
Чуда не произошло.
Датчик сработал. Матч на него не обратил внимания, двигает ось дальше.
Пластинка согнута. Аварийная остановка.
Значит датчики Лимитов надо где-то прописывать.
В документации было что-то о ОСЬ++ и ОСЬ--.
Прописываем параметры, благо вариантов не так много:
Ура!!! Все заработало!!!
Датчик сработал, согласно ТТХ датчика, около 4мм до железной пластины.
Происходит аварийная остановка движения уже самим Матчем.
Снимаем программно аварию с датчика (нажимаем на сброс).
Аккуратно отъезжаем в другую сторону, и едем до противоположного датчика.
Датчик с другой стороны тоже вполне себе срабатывает.
"Дом" и "Лимиты" настроены.
Задание № 2
Меняю схему подключения на свою, назову ее "основной", только пока сильно упрощенную.
Т.е. разношу датчики Дома и Лимита на разные пины.
Единственное изменение, которое приходит в голову до эксперимента:
- направление поиска датчика Дома имеет значение.
Если будем искать в другую сторону, то выйдем на аварийную становку из-за сработавшего датчика "Лимита".
Но на практике... Оба-на. Как бы не так:
Датчик "Лимита" сработал, но Матч на него не отреагировал.
Хорошо, что я сегодня на кнопке Аварийной остановки просто дежурю.
Т.е. получается, что в Матче поиск "Дома" имеет более высокий приоритет, чем аварийная ситуация в виде сработавшего ограничителя!!!
Перепрописываю в настройках датчики наоборот.
Если первый раз так получилось случайно - не перенастроил и искал дом не там, то теперь, поменяв датчики местами делаю это специально.
Результат тот же. Наезд на датчик "Лимита".
Обращаемся к документации. После долгих поисков нахожу нужное:
Во время Принятия концевики не работают.
Скромно так написано, без выделения, в общем я, ища СПЕЦИАЛЬНО, эту фразу ЕЛЕ НАШЕЛ.
(Это, кстати, один из "кирпичиков", из-за которых я считаю документацию на Матч более чем спартанской, ну или у меня такой вариант документации).
На самом деле эта фраза означает:
При поиске "Дома" Матч ИГНОРИРУЕТ сигналы датчиков "Лимита", висящих на пинах, отличных от пина, на котором висит датчик "Дома".
Приоритет, такой рабочей в общем-то операции, как поиск "Дома" оказался выше, чем приоритет аварийной (в документации выход за границы
и сработавший датчик "Лимита" считается аварийной ситуацией).
После исправления этой ошибки все заработало и на разнесенных пинах "Дома" и "Лимитов".
Вывод из первых двух заданий:
Кто разносит датчики "Дома" и "Лимитов" по одной оси на разные пины, делайте первоначальные настройки с осторожностью и дежурьте около кнопки "Аварийной остановки".
Как результат первых двух заданий:
Оба датчика на оси Z настроены, как мне хотелось.
При Базировании верхний датчик определяется как "База" и по нему выставляется аппаратный ноль.
Затем, при работе оба датчика работают как аппаратные ограничители движения.
Остальные оси настраиваются, наверняка, аналогично.
Задание № 3
Теперь буду экспериментировать с вариантами объединения датчиков.
Цель - просто поиграться с объединениями различных датчиков в различные комбинации и посмотреть, что получиться.
Часть первая.
Подключаем ВСЕ датчики на один пин.
Этой части сначала в планах не было. Она появилась после выполнения второго Задания.
Аварийная остановка в предыдущих заданиях осуществлялась с клавиатуры, клавишой "Esc".
Здесь хочу проверить чей приоритет выше: датчика "E-Stop" или поиска базы.
Умом я вроде понимаю, что датчик "E-Stop" обязан обладать наивысшим приоритетом,
но после результатов второго задания хочется в этом убедиться.
Убедился. У E-Stop приоритет выше.
Причем попадаем в замкнутый круг:
Пока активен сигнал E-Stop не можем съехать с датчика. А снять E-Stop тоже не можем, так как он на одном пине со сработавшим датчиком.
С этой стороны вроде как все логично.
Получился следующий порядок приоритетов:
Высший приоритет - E-Stop.
Следующий - Поиск "Базы".
Затем - "Лимиты".
И как результат - получается как минимум два занятых входа, если будет применятся "Базирование" по датчикам.
E-Stop не совместим на одном пине с остальными датчиками при операции Базирования.
Схематично получается два возможных варианта:
Мне второй больше нравится. Все логические операции на одном пине, все аварийные на другом.
Правда при такой схеме подключения мы "в теории" попадаем на следующее ограничение (из документации):
... Вы можете связать все выключатели баз на использование одной ИЛИ, и назначить срабатывание всех входов баз на этот сигнал.
В этом случае за один раз Вы сможете калибровать только одну ось...
Не совсем смог прояснить для себя этот момент в документации.
У меня Матч сначала ищет базу по Z, затем, когда нашел ее ищет базу по Y, затем по X.
Т.е. одномоментно срабатывает только один концевик.
И Матч прекрасно находит все базы за один раз при подключении, при котором, он по документации этого делать не должен.
Может имеются в виду какие-то моменты, когда возможна сработка одновременно двух концевиков, не знаю.
Итого по этим схемам 2 входа заняты, 3 свободны. Но предупреждается о ограничениях при базировании.
Часть вторая.
Подключаю по следующей схеме:
Все настраивается и работает как в Задании №1.
Понравилась простота операции базирования.
Если сами пины настроены правильно, то база будет или с одной или с другой стороны оси.
Не угадали Базу по какой-то оси - меняем на этой оси направление поиска базы.
За простоту платим пинами: 3 занятых + 1 под E-Stop. Итого 4 занятых из пяти возможных.
Зато по всем осям можно менять точки базирования как нравиться просто меняя направление поиска Баз.
Часть третья.
Опять меняю схему подключения:
Всем "Базам" по отдельному входу, все "Лимиты" + E-Stop вешаем на один.
Все тоже, что и в Задании №2:
Внимательность в настройке и базирование не "где попало", а "как подключено".
Те же самые чертыре занятых входа и один свободный.
Преимуществ по сравнению с предыдущей частью по свободным пинам нет, зато теряется легкость перемены Баз.
Как итог третьего Задания:
Либо три свободных входа, но базирование осей только по одной за раз (правда так и не понял почему, поэтому напишу "согласно документации").
Либо один свободный вход, и одновременное базирование всех осей.
Далее Софт Лимиты.
Задание №4
Цель - просто посмотреть, что за "зверь такой, с чем его едят" и как его коррелировать с Хард Лимитом.
Ограничение переездов программным способом.
Настроил пока примерно на 5 миллиментров меньше, чем сработают датчики, хотя пробовал и 2 милиметра и миллиметр, проблем тоже не было.
Видимо цифра 5 больше понравилась.
Есть возможность настроить "Зону замедления" при приближении к обозначенным границам.
Зона замедления работает при "ручных" переездах.
При программных (например, при ручном вводе G0 Y чего-то там туда и затем обратно) я замедления не наблюдал.
У меня при цифре 5 получается довольно жесткий удар механики (видимо оси просто не успевают тормозить), а уже при 10 - нормальное, плавное замедление и остановка.
Зону замедления пока везде поставил десятки но надо будет еще поэкспериментировать, уж больно "мутно" расисан этот режим в документации...
Прикольная возможность поставить какое нибудь число вместо 0.
Если поставить половину от пробега по оси (в плюс или в минус зависит от конкретных установок), то аппаратный ноль получается по центру стола.
Работают нормально. Необходимость датчиков Хард Лимита при наличии таких возможностей программного ограничения - вопрос действительно философский.
Поэкпериментировал, погонял, да и настроил Софт лимиты, как "последний барьер" перед Хард лимитами (типа датчики уже все равно стоят, не снимать же их).
Хотя и Хард лимиты, и Софт лимиты обрабатываются Матчем программно, то "последний барьер" при серьезном сбое Матча вешь видимо сильно условная.
И последнее - скорость базирования.
Задание №5
Цель - так же как и впредыдущем задании просто посмотреть, что за "зверь такой и с чем его едят".
Из документации (опять довольно "мутно"):
... используется для предотвращения врезания в стопы осей на полной скорости при поиске переключателей Баз...
Ну это я понял при экспериментах в Задании 4.
Еще где-то читал/слышал что при уменьшении скорости поиска Баз выше точность их нахождения.
Только как ее оценить эту самую точность?
"Ковыряясь" в экранах Матча случайно набрел на проверку местоположения:
Работает, насколько я понял, следующим образом (в моей версии документации эта возможность вообще не расписана):
Станок находится в некоторой точке, например X150 Y200 Z-50.
При нажатии на клавишу "ПРОВЕРКА" все оси повторно Базируются (с учетом выставленной скорости базирования)
и затем возвращаются в эту точку уже на скорости переезда.
Далее некоторым образом Матч вычисляет некоторую погрешность.
И вот, что у меня получилось:
При 90 %
При 60 %
При 20 % (которые по умолчанию)
Т.е. при уменьшении скорости поиска Баз вычисляемая погрешность падает от 0.3-0.4 миллиметра, до тысячных милиметра, а затем сводится к нулю.
Несколько дольше сам процесс поиска, но если это один раз за сеанс, наверное можно и потерпеть.
В итоге оставил предлагаемые по умолчанию 20% по всем осям как некий компромис.
До выяснения дополнительных обстоятельств во всяком случае.
P/S/
Написал. Перечитал.
Вот такой получился материал за день мучений с Матчем под моросящий дождик...
И выяснилось, что я не знаю куда этот текст поместить.
Можно было бы в песочницу, но как-то засомневался - это будет вообще кому-нибудь интересно кроме меня (может для остальных это давно пройденный этап)?
Вроде жарких споров и активных тем по этому поводу нет.
Многие пользователи вроде как вообще прекрасно обходятся без датчиков. А мне без них "как-то неуютно что-ли".
И каких-то однозначных выводов у меня сделать не получилось:
Базирование вроде как нужная вещь, а Хард Лимиты при наличии программных средств - вопрос философский.
По схемам вроде больше понравилась вторая из третьего упражнения, но именно этот вариант в документации как-то совсем вскользь упомянут...
Но так как уже написано, решил пока разместить в своей теме, но вынести на суд общественности:
Если это интересный для общества материал, то его можно куда-нибудь перенести, если нет, то пусть останется в "монстрике".
А сам поехал на рыбалку - переваривать получившиеся результаты.