Независимый Ювелирный Форум
https://forum.jwiki.ru/

Сверхточные HOME датчики (станкостроительная фантастика)
https://forum.jwiki.ru/viewtopic.php?f=15&t=1264
Страница 1 из 1

Автор:  Прохожий [ 29 авг 2014, 22:20 ]
Заголовок сообщения:  Сверхточные HOME датчики (станкостроительная фантастика)

Фантастика – в том смысле, что вряд ли это решение понадобится на практике, и что его трудно применить на уже имеющемся станке – для этого решения нужно предусмотреть место ещё на стадии проектирования станка.
Сверхточные – в том смысле, что сверх любой нужной точности.

Обычно home датчики сделаны безо всяких затей: датчик стоит на месте, в/из него въезжает/выезжает триггер, едущий вместе с осью (триггер – любая фигня, на которую реагирует датчик: штырёк, пластинка, или наоборот пластинка с окошком, и т.п.). Ну или наоборот – тригггер стоит, а датчик едет. Т.е. точность всего агрегата соответствует точности датчика. В идеальном состоянии (датчик закрыт от ИК света и пыли) точность/повторяемость датчика реально выше указанной в спецификации. А если датчик (или триггер) открыт, то точность, понятное дело, зависит от толщины слоя восковой пыли на нём.
К тому же точность/повторяемость может страдать от вибрации оси в продольном направлении, люфта, и т.д.

Сверхточное решение:
Для примера возьмём leadscrew с шагом 2.5 мм и оптический датчик с повторяемостью 0.03 мм.
К валу мотора (например, к противоположному от leadscrew концу) прикрепляется пластинка (жести, пластмассы, etc.), которая будет въезжать в датчик. Два варианта пластинки в двух проекциях нарисованы на первом рисунке. Въезжающий в датчик конец пластинки может быть либо загнут в сторону датчику (случай A), либо незатейливо прямой (случай B):
Вложение:
plate.png
plate.png [ 1.76 КБ | Просмотров: 5227 ]

На рисунке A пластинка типа A прикреплена к валу мотора (вид сбоку и в торец).
Пластинка вертится вместе с валом.
Датчик (пока ещё за пределами рисунка) едет вместе с осью, с каждым оборотом вала приближаясь к пластинке на 2.5 мм.
Вложение:
motor-a.png
motor-a.png [ 2.01 КБ | Просмотров: 5227 ]

На рисунке A1 нарисован момент срабатывания датчика (датчик закрашен серым) от пластинки типа A: на определённом обороте датчик (двигаясь слева направо) подошёл настолько близко, что пластинка (двигаясь по часовой стрелке) вошла в него своим согнутым концом.
Вертя пластинку относительно вала, можно добиться такого её положения, что она заходит в датчик настолько глубоко, насколько нужно.
Вложение:
motor-as.png
motor-as.png [ 2.52 КБ | Просмотров: 5227 ]

Вложение:
motor-bs.png
motor-bs.png [ 2.55 КБ | Просмотров: 5227 ]

На рисунке B1 нарисовано то же, но для пластинки типа B. Т.к. толщина ножек датчика, в которых находятся источник и приёмник света, скорей всего больше шага leadscrew, то на ножки нужно наверно надеть какие-то обтекатели с острым передом, чтобы они отклоняли пластинку и соответственно чтобы пластинка прошла внутри датчика, а не упёрлась в его ножку. Соответственно пластинка должна быть упруго гибкой. В этом плане вариант A проще. Но в варианте A, если датчик отключён и не сработал в нужный момент, то на следующем обороте пластинка и датчик столкнутся и могут сломаться.

Если длина пластинки 5 см, то длина пути, проходимого её концом за 1 оборот – 5см*Пи=5*3=15см. Это в 60 раз больше, чем линейное перемещение оси за тот же оборот – 2.5 мм. Т.е. точность/повторяемость системы в 60 раз выше точности/повторяемости датчика и равна 0.03мм/60= 0.0005мм, или пол микрона. Опупеть.
Влияние слоя пыли на триггере тоже уменьшается в 60 раз.

Вот так лёгким движением отвёртки, прикручивающей пластинку к валу, обыденный $15 датчик превращается в супер-пупер точную систему.

Полезное побочное следствие опишу позже.

Автор:  Прохожий [ 11 сен 2014, 01:06 ]
Заголовок сообщения:  Re: Сверхточные HOME датчики (станкостроительная фантастика)

Прохожий писал(а):
Полезное побочное следствие опишу позже.

Вышеупомянутое побочное следствие описано в теме Пропуск шагов (кратко и фрагментарно о пропусках шагов, их причинах, поисках и устранении причин)

Автор:  Прохожий [ 17 ноя 2014, 06:02 ]
Заголовок сообщения:  Двухступенчатая сверхточная система HOME датчиков

Двухступенчатая сверхточная сверхпылеустойчивая система HOME датчиков

Если кому электричество ближе, чем механика, то вот двухступенчатая система home датчиков. По сравнению с ранее описанным одноступенчатым home датчиком, её механику может быть проще реализовать, и гораздо проще внедрить в существующий проект.

Система состоит из двух датчиков:

Первая ступень, назовём её «грубый датчик» - обычный home датчик, установленный традиционным способом: ось наезжает на него, он срабатывает:
Вложение:
coarse-home-sensor.png
coarse-home-sensor.png [ 2.33 КБ | Просмотров: 5016 ]
Он, однако, никак не соединён с контроллером. При срабатывании он замыкает цепь, питающую вторую ступень.

Вторая ступень, назовём её «точный датчик» - по сути один из датчиков, описанных в начальном посте этой темы: на вал мотора (или leadscrew) насажена пластинка, раз в оборот проходящая через оптический датчик. Сам датчик неподвижен, в отличие от описанных в начальном посте. Вид в профиль и в торец мотора, датчик закрашен зелёным:
Вложение:
fine-home-sensor.png
fine-home-sensor.png [ 2.26 КБ | Просмотров: 5016 ]
Выход этого датчика воткнут в контроллер.
Пока первая ступень на сработала, он без питания. Так что прохождение через него пластины никакого действия не вызывает.

Вот система в сборе:
Вложение:
2-step-home-sensor.png
2-step-home-sensor.png [ 5.05 КБ | Просмотров: 5016 ]
Когда ось наезжает на грубый датчик, он срабатывает и тем самым подаёт питание на точный. Ось продолжает движение, т.е. мотор продолжает вращение, и вскоре пластинка въезжает в точный датчик. Т.к. точный датчик уже запитан, то он срабатывает, посылая сигнал контроллеру. Контроллер отрабатывает home или limit или что там ему задано.

Если для второй ступени взять заурядный датчик с повторяемостью 0.03 мм, расположенный в 2.5 cм от центра вала, то угловая точность системы будет 0.03/(2*Пи*25) = 0.03/(2*3*25) = 0.03/3/(2*25) = 0.01/50 = 0.001/5 = 0.0002 оборота,
или 0.0002*360 = 0.072 градуса = 4.32 минуты.
Для мотора с 200 шагов/оборот это соответствует одному микрошагу 0.0002/(1/200) = 1/25 (если бы такой был).

Если же расположить датчик в 35 мм от центра вала, то
угловая точность системы 0.03/(2*Пи*35) = 0.00014 оборота,
или 0.049 градуса = 2.95 минуты,
что соответствует одному микрошагу 1/36.7 (если бы такой был),
и для leadscrew с шагом 2.5 мм соответствует линейному перемещению 0.35 микрона.
Известная механическая точность 1.8° и 0.72° моторов, как мы помним из Предел microstepping - 0.05° (± 3 минуты).
Т.е. точность второй ступени в такой конфиуграции соответствует механической точности мотора и превосходит точность неразумного микрошага 1/32.
Т.е. точность позиции home ограничивается механической точностью самой оси, а не точностью датчика.
Для более точных 0.9°и 0.36° моторов можно взять датчики на $5 дороже, которые в 3 раза точнее. Ну или сделать пластинку второй ступени в 2 раза длинее, диаметр 15 сантиметров вполне ещё можно вписать в станок (а в варианте на $5 дороже, как понятно из предыдущего предложения, можно вписаться в диаметр 5 см).

Всю вторую ступень можно закрыть кожухом, и тогда она будет совершенно не чувствительна к превратностям окружающей среды в виде пыли, ИК шума, брызг опилок воска и т.д., сохраняя точность вечно, а не только некоторое время после чистки.

Механический датчик на иллюстрациях первой ступени изображён только для наглядности. С механическим датчиком всё просто и понятно: он просто замыкает провод, подающий напряжение на вторую ступень. Но механические датчики никогда не казались мне серьёзными кандидатами на home сенсор, хотя может я их просто не знаю. Если в первую ступень поставить оптический датчик, то электрическая схема становится немножко сложнее. Мощности выхода оптического датчика не хватит, чтобы запитать другой такой же датчик. Может, можно подобрать разные модели такие, что мощности выхода одного датчика достаточно для работы другого датчика, но мне найти такие модели не удалось. Так что на выходе датчика первой ступени нужно ставить реле или ещё что, что включало бы вторую ступень. Т.е. по сравнению с традиционной схемой, вместо одного датчика появляются как минимум 3 элемента: 2 датчика и реле etc. Но зато точность выше любых разумных потребностей.

Во второй ступени механический датчик никак не годится: слишком быстро испортится, срабатывая на каждом обороте мотора.

Автор:  Прохожий [ 17 ноя 2014, 06:17 ]
Заголовок сообщения:  Re: Двухступенчатая сверхточная система HOME датчиков

Точность home позиции важна, если важна точность позиции нуля. При выключении/включении станка оси могут сместиться в худшем случае на целый шаг, что для мотора с 200 шагов/оборот и leadscrew с шагом 2.5 мм составляет 0.0125 мм. Если такая погрешность нуля допустима, тогда вопрос о точности home не стоит. Иначе при неточных home просто нельзя выключать станок после нахождения нулей.

При отключении напряжения шаговый двигатель пытается повернуться в какую-то устойчивую позицию. И поворачивается, если позволяет трение оси. Но это не важно. При включении, драйвер подаёт на мотор ток, соответствующий начальной позиции в пределах целого шага, например началу целого шага (может зависеть от драйвера). Например, поставили все оси в ноль и выключили станок. Никто не знает, где в пределах целого шага находился какой-либо мотор. Этого не знает ни пользователь, ни Mach3, ни даже контроллер. Это знал только драйвер, но при выключении забыл навсегда. И при включении этот же драйвер провернёт мотор в начало целого шага или где там у него начальная позиция. Когда при включении станка слышно, что в моторах стукнуло – это моторы встали в начальную позицию. Которая, вероятно, отличается от позиции, где они были на момент выключения. Поэтому после включения нужно загнать оси в home и оттуда в известную позицию нуля. А если датчики home не точные, то придётся искать нули каждый раз заново. Это можно преодолеть таким приёмом: перед поиском нулей загнать оси в home, выключить станок и снова включить, и получившиеся после включения позиции считать home, после чего можно искать нули. После очередного выключения/включения со случайным положением осей (в т.ч. и в нулях) – загоняем оси в home, выключаем станок и снова включаем. Теперь оси там же, где были перед поиском нулей, так что теперь перемещение осей в 0 будет точным. Но тут может быть такая засада, что перед включением ось находится где-то посредине между двумя начальными позициями (т.е. посредине между начальными позициями, находящимися в разных целых шагах), так что не очевидно, куда мотор повернётся. Соответственно может случиться ошибка нуля в целый шаг, что для мотора с 200 шагов/оборот и leadscrew с шагом 2.5 мм составляет 0.0125 мм.

Автор:  Прохожий [ 21 ноя 2014, 23:54 ]
Заголовок сообщения:  Серво (а может, и другие драйверы/моторы) в роли второй ступ

Серво (а может, и другие драйверы/моторы) в роли второй ступени

Это продолжение поста Двухступенчатая сверхточная сверхпылеустойчивая система HOME датчиков.

Для начала отвлечёмся от темы и вспомним, как работает Mach3 с датчиками Home/Limit (вернёмся к теме в последнем абзаце).
Home и Limit могут быть как разными датчиками, так и один датчик может быть одновременно и Home и Limit, что чаще всего и бывает.
Если в процессе работы ось наезжает на датчик Limit, то всё останавливается и мигает кнопка Reset. Если в xml файле профайла стоит <LimitOverRide>1</LimitOverRide>, т.е. LimitOverRide включён, то достаточно кликнуть кнопку Reset, тем самым временно отключив датчики, и можно вручную съехать с датчика. Датчики снова включатся, когда съехали со всех датчиков. Если, например, сработал limit оси X, мы кликнули кнопку Reset и стали двигать ось Y в направлении её датчика, то Y на датчике на остановится и проедет его, потому что мы ещё не съехали с датчика X. Если <LimitOverRide>0</LimitOverRide>, т.е. LimitOverRide выключен, то при наезде на limit нужно отключить его в Config / Ports and Pins, съехать с него, и снова включить его в Config / Ports and Pins.
Если мы послали какую-то ось в Home, то она доезжает до датчика Home со скоростью, заданной в графе Speed % в меню Config / Homing/Limits, датчик срабатывает, и ось едет в обратном направлении, пока не съедет с датчика. В момент, когда съехала – ось останавливается, и Mach3 считает это место Home. Т.е. Home – это не когда наехала ось на датчик, а когда съехала.

Шаговый двигатель с rotary инкодером типа Leadshine Easy Servo - это серво по всем критериям. Однако почему-то сложилась традиция всегда противопоставлять шаговые двигатели и серво, и соответственно серво на шаговых двигателях не называть словом «серво». В этом посте будем придерживаться этой нелогичной традиции и называть словом «серво» только серво на не шаговых двигателях.

У станков с серво в некоторой степени бОльшая потребность в точности положения Home, чем у шаговых станков. Например, нужно перенести станок. Если у выключенного шагового мотора соединить провода какой-либо пары проводов, то повернуть такой мотор уже совсем не легко, рукой не повернёшь. Так что перед переноской можно выдернуть разъёмы моторных проводов из драйверов и воткнуть их в какие-нибудь заглушки, замыкающие провода одной или больше пар. Это зафиксирует оси, станок можно спокойно переносить. А с серво моторами так не сделаешь. Если нет тормоза, то в выключенном состоянии с замкнутыми проводами мотор хоть и не совершенно свободен, но тем не менее чуть задел вал – и ось сместилась. Так что либо переносить станок во включенном состоянии, либо потом искать нули.

Возвратимся к теме.
Микрошаговый драйвер всегда знает, в каком положении в пределах целого шага должен находиться сейчас мотор. Казалось бы, можно было бы сделать выход, сообщающий, когда мотор находится например в начале целого шага. Но почему-то так не делают. Шаговый драйвер с инкодером типа Leadshine Easy Servo мог бы сообщать, когда мотор находится в определённой точке полного оборота, но почему-то соответствующего выхода на таких драйверах не делают. Это говорит о том, что шаговое серво всё ещё находится в стадии развития в том плане, что производители не определились ни с его местом среди других технологий, ни как преподнести его покупателю, и не полностью используют его потенциал. А в традиционных серво драйверах это обычное дело, когда есть выход, выдающий сигнал, когда мотор находится в определённой точке полного оборота. Вот этот сигнал и можно использовать в качестве второй ступени датчика Home.
Точность получается немыслимая для стоящих вне мотора датчков. Т.к. мотор докручивается до нужной позиции с точностью инкодера, то понятие «механическая точность мотора» не применимо. Обычная для таких инкодеров точность 16384 позиций/оборот соответствует для 1.8° мотора микрошагу примерно 1/82, если бы такой существовал. Проблемой может быть то, что т.к. позиция очень точная и соответствует одной позиции инкодера, то она очень небольшая в пространстве, и сигнал при её прохождении может оказаться недостаточно длительным для срабатывания контроллера, или ось может не успеть остановиться во время сигнала и проскочить позицию, остановившись за ней, и при обратном движении наедет на тот же сигнал уже как на limit, так что нужно в Mach3 делать Home и Limit отдельно, т.е. нужен контроллер с большим количеством входов, и т.д. К тому же нужно смотреть, чтобы этот выход драйвера был совместим со входом контроллера в плане напряжения, полярности, pull up / pull down, и т.д. и т.п. Совместимость – это решаемая проблема, но не факт, что схема получится проще, чем предложенная в посте Двухступенчатая сверхточная сверхпылеустойчивая система HOME датчиков. Всё зависит от конкретных контроллера и драйвера. Но если получится просто, то будет просто и максимально точно, т.е. с точностью работы мотора, т.е. бОльшая точность бессмысленна.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/