Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение перемещения каретки с точностью 0,1 мм.
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
VadimPlotnikov
Измерение перемещения каретки с точностью 0,1 мм.

Задача в следующем: на деревообрабатывающем станке необходимо мерить перемещение каретки с точностью 0,1 мм с диапазоном 1200 мм. Сильные вибрации, пыль, стружка не проводящая, желательный температурный диапазон -30 ….+50 С (возможно от -10). Датчик желательно абсолютный но и сойдёт инкрементальный.
Мои варианты которые работают не корректно:
1) Сейчас стоит индуктивный датчик на вале двигателя всё работает но набегает большая погрешность в связке двигатель (1000 об/мин)- редуктор (1/60)- передача (1/4) порядка 3 мм, при движение вперёд назад.
2) Чтобы избавится от люфтов ставил Энкодеры на 1024 им/об на него резиновый вал диаметром 30 мм. Сам Энкодеры крепил к каретке а вал катался по направляющим.Получил: пока двигатели пил не включены всё работает нормально но при включении начинаются вибрации и с выходов энкодера идут постоянно импульсы, было бы нормально если бы значения скакали туда назад но идёт насчёт значений. Говорил с людьми говорят что у энкодеров с таким разрешением при вибрациях наблюдается эффект перескакивания оптического диска. Варианты с подвесами на пружинах и т.д не предлагать убили кучу времени, тупиковый путь.

Бюджет на датчик 3000 руб. – максимум 5000 руб.
Смотрел готовые промышленные системы устраиваю магнитострикционные но цена порядка 30000 руб (мин), не устраивает.
SIA
Посмотри на возможность использования ультразвукового измерителя, использующего не импульсы, а сигналы с длинной базой (например, синус, модулированный по амплитуде или фазе ПСП). Тогда, пока на пути нет явной преграды (от нее можно защититься, например, телескопической трубой), и при условии контроля (замера) температуры с внесением соответствующей поправки, можно получить точность порядка 10^-4, это как раз 0.1 мм на метр. Но кореллятор писать придется самому, потребуется или довольно мощный микропроцессор, или DSP или ПЛИС. Где почитать - см. теорию и практику радиолокации.
Designer56
Попробуйте СКВТ- они в авиации работают, ни пыли, ни климата не боятся.
jasper
По сути, подходят так называемые цифровые рулетки (digital ruler), либо датчики с вытяжной проволокой (draw-wire). По ценам подсказать не смогу, смотрите сами. laughing.gif
gte
Цитата(VadimPlotnikov @ Dec 27 2007, 05:41) *
Измерение перемещения каретки с точностью 0,1 мм.
Бюджет на датчик 3000 руб. – максимум 5000 руб.
Смотрел готовые промышленные системы устраиваю магнитострикционные но цена порядка 30000 руб (мин), не устраивает.


На мой взгляд, такая точность в таких условиях и за такие деньги почти нереально.
Сходите на форум
http://forum.rcdesign.ru/index.php?showforum=41
Там самодельщики такие вещи обсуждают.
_Sam_
Цитата
Получил: пока двигатели пил не включены всё работает нормально но при включении начинаются вибрации и с выходов энкодера идут постоянно импульсы, было бы нормально если бы значения скакали туда назад но идёт насчёт значений.

А чем вы фронты считаете? Частота опроса датчика должна как минимум в два раза превышать максимальную частоту его выходных сигналов.


Цитата
Говорил с людьми говорят что у энкодеров с таким разрешением при вибрациях наблюдается эффект перескакивания оптического диска.

Интересный "эффект" не сталкивался пока с таким. Допустимые вибрационные ускорения приводятся в паспорте датчика. Их превышение может привести к выходу датчика из строя, а не к насчёту.

В 99,(9)% случаев всякие насчёты и прочие глюки связаны не с датчиками, а с системой обработки, как правило самодельной.

Можно попробовать цифровой штангенциркуль. Дёшево и сердитоsmile.gif. Главное шкалу сделать.
evgeny_ch
http://www.germany-electric.ru/20
НЕХ
А Вы точно используете обе фазы с энкодера ? A & B
VadimPlotnikov
gte: возможно бюджет будет увеличен до 15, убеждаю заказчика. (цена складывается из того что изделия мелкосерийные, если были разовые то и вопросов бы не возникло).
_Sam_: частота опроса порядка 20 кГц( была около 60), перемещение даёт на максимальной скорости при энкодере 1000 им/об – 5 кГц. По вибрации не знаю, стоят двигателе на 3000 об/мин.
Интересный "эффект": о нём говорил технический директор http://skbis-lir.ru/. Сам не могу проверить.
НЕХ: кусок кода из прерывания:

if (koderchanel10 == 1 && koderchanel11 == 1) koderuroven1=1;
if (koderuroven1 == 1)
{
if (koderchanel10 == 0 && koderchanel11 == 1) koderuroven1=2;
if (koderchanel10 == 1 && koderchanel11 == 0) koderuroven1=3;
}
if (koderuroven1 > 1 && koderchanel10 == 0 && koderchanel11 == 0)
{
if (koderuroven1==2) koder1++;
if (koderuroven1==3) koder1--;
koderuroven1=0;
}

koderchanel10 и koderchanel11 каналы А и В.

Просьба ответить:
1)У энкодеров есть выход синхронизации для чего ? Разве не достаточно каналов А и В.
2) Рассматриваю возможность использования http://www.servotechnica.ru/catalog/encoder/kuebler-limes/ кто сталкивался, какие отзывы.
Okorok
Цитата(VadimPlotnikov @ Dec 28 2007, 07:59) *
кусок кода из прерывания:<...>
koderchanel10 и koderchanel11 каналы А и В.<...>
В указанном Вами коде из прерывания обрабатываются только текущие значения каналов.
В итоге, если канал koderchanel11 держится постоянно, а канал koderchanel10 "дрожит" 0-1-0... (например, из-за вибрации), Ваш код дает "уплывание" координаты.

Для правильной интерпретации двух фаз энкодера следует учитывать как текущие, так и предыдущие значения обоих каналов. Тогда, если канал koderchanel11 держится постоянно, а канал koderchanel10 "дрожит" 0-1-0..., вычисленная координата не будет "уплывать", а всего лишь прыгать на +/-1 отсчет, что вполне разумно.
sergeeff Jr.
VadimPlotnikov, можете также посмотреть на продукцию фирмы Sensitec. Я у них брал сенсор и полоску магнитную (длина 1000 мм). Еще не все собрано и досканально проверено, но уже есть положительные результаты. То есть с сенсором (даже за 7 Евро) этой фирмы проблем не было.
evgeny_ch
Цитата(VadimPlotnikov @ Dec 28 2007, 10:59) *
Просьба ответить:
1)У энкодеров есть выход синхронизации для чего ? Разве не достаточно каналов А и В.
2) Рассматриваю возможность использования http://www.servotechnica.ru/catalog/encoder/kuebler-limes/ кто сталкивался, какие отзывы.

То, что вы называете синхронизацией, это опорная метка датчика, чаще всего используется при точном позиционировании, для выхода в конкретную точку координатной системы.
По моему мнению, применение измерителей линейного типа вместо круговых, облегчит вам жизнь только отчасти. Вы не избавляетесь при этом от люфтов в редукторах и вибраций координатной системы, связанных с низкой жесткостью механики.
Следовательно не сможете корректно настроить регуляторы привода.
Если мне не изменяет склероз, то зазор между подвижной и неподвижной частями магнитного датчика небольшой, около 0,5 мм.
sergeeff Jr.
Зазор именно такой, но с помощью таких вещей как предлагает например фирма Isel
http://www.iselautomation.de/products/cate...g=de&ID=c54
эту проблему можно решить. Вибрация будет только в сторону движения (если будет вообще). Ведь можно думаю механику (на шестеренках например) сделать так, чтобы вибрация была минимальной...
evgeny_ch
Цитата(sergeeff Jr. @ Dec 28 2007, 19:01) *
Зазор именно такой, но с помощью таких вещей как предлагает например фирма Isel
http://www.iselautomation.de/products/cate...g=de&ID=c54
эту проблему можно решить. Вибрация будет только в сторону движения (если будет вообще). Ведь можно думаю механику (на шестеренках например) сделать так, чтобы вибрация была минимальной...

Буратины на это не пойдут.
Будут наждачкой пользоваться biggrin.gif до последнего.
gte
Цитата(VadimPlotnikov @ Dec 28 2007, 09:59) *
gte: возможно бюджет будет увеличен до 15, убеждаю заказчика. (цена складывается из того что изделия мелкосерийные, если были разовые то и вопросов бы не возникло).

Можно узнать, что за каретка и какие направляющие, есть ли люфт в паре винт-гайка (можно обнаружить при смене направления вращения). Люфт и жесткость должна соответствовать требуемой точности. По этой причине я и посоветовал Вам обратиться еще в один форум.
VadimPlotnikov
Okorok: я чего-то не понимаю вроде у меня как раз и сделано с запоминанием прошлого состояния и если дрожит только одна фаза то насчёта нет.
sergeeff Jr: спасибо за ссылки, но просьба предлагать, что реально можно купить.
gte: каретка металлическая хрень примерно 70 на 50 см к которой крепятся двигатели пил по 15 кВт + механизм горизонтального перемещения, примерный вес 300 кГ. Скользит по двум круглым направляющим (сверху и снизу каретки) диаметром 20 см. Перемещение: двигатель подключен к ридуктору 1/60, на выходе редуктора звёздочка которая ходит по неподвижной цепи (аналог зубчатой рейки). Источники люфтов: редуктор даёт ошибку порядка 0.3 мм, соединение звёздочка цепь порядка 2 мм. Что сделано: для компенсации люфта при смене направления движения подаётся маленький момент на двигатель ( недостаточный для того чтобы сдвинуть каретку) , происходит выборка люфта редуктора и провисания цепи, счётчик в данный момент отключен. Всё равно остаётся люфт порядка 0,4 мм . И насколько это будет работать в дальнейшем большой вопрос.
Чтобы исключить все эти факторы система измерения переносится непосредственно на каретку, чтобы мерить именно смешения каретки а не все люфты. Первоначальный вариант был энкодер на каретке а резиновый ролик прижимается к направляющей по которой скользит каретка, в этом случаи мерится только перемещение.
Всем спасибо кто откликнулся, вопрос всё равно нужно решать если будут появлятся мысли просьба не стеснятся. Всем с наступающим Новым Годом господа электроники (так нас обзывают в Красноярске).
gte
Цитата(VadimPlotnikov @ Dec 30 2007, 15:25) *
люфтов: редуктор даёт ошибку порядка 0.3 мм, соединение звёздочка цепь порядка 2 мм. Что сделано: для компенсации люфта при смене направления движения подаётся маленький момент на двигатель ( недостаточный для того чтобы сдвинуть каретку) , происходит выборка люфта редуктора и провисания цепи, счётчик в данный момент отключен. Всё равно остаётся люфт порядка 0,4 мм . И насколько это будет работать в дальнейшем большой вопрос.


Т.о. при резе может быть вибрация каретки больше шага (нескольких шагов) энкодера. Обратите внимание, что в этот момент скорости програмной обработки может не хватить. Можно попробовать обработчик сигналов энкодера на жесткой логике.
Евгений Германович
А почему не обсуждается ранее выдвинутая и весьма разумная мысль с вытяжным датчиком?Ну и до кучи-а почему забыли о лазерных измерителях?
gte
Цитата(Евгений Германович @ Jan 1 2008, 18:47) *
А почему не обсуждается ранее выдвинутая и весьма разумная мысль с вытяжным датчиком?Ну и до кучи-а почему забыли о лазерных измерителях?


А они в указанную первоначально сумму разве впишутся?
SasaTheProgrammer
Цитата(VadimPlotnikov @ Dec 30 2007, 14:25) *
...если будут появлятся мысли просьба не стеснятся.

Довелось мне в годы оно столкнуться с удивительным изделием советской промышленности - со "сколкой". Теперь такие, кажется, называют "планшетами". Лист пластика (размером с кульман!) был профрезерован с двух сторон и в образовавшиеся канавки были уложены и залиты чем-то проводники. По этой двумерной, с принудительным шагом, сетке пропускались калиброванные импульсы тока. На кончике "пера" была крохотная катушечка, которая в момент "считывания" должна была быть прижата к поверхности через скалываемый чертёж. В тот момент, когда волна импульсов проходила под ней, наводимая ЭДС достигала максимума и резко меняла знак, чётко разграничивая провода слева/справа и сверху/снизу. Шаг проводников составлял, если мне не изменяет память, 1мм. Но интерполяцией по соотношению амплитуд двух разнополярных откликов точность поднмалась до 0.1мм.
Всё это делалось аппаратно (!!!!) стоящим рядом шкафчиком. Причём интерполяция была нелинейная !!!
На сегодняшний день с такой задачей справится практически любой МК.
Как это "обставить" конструктивно для данного случая я себе представляю смутно. Но уже вижу одну подводную скалу - нужно учитывать локальную температуру носителя разметки или делать его из чего-то экзотического (долм мм еа метре... хмм). В принципе, если коммутация проводников будет матричная, то можно попытаться использовать те-же диоды для измерения температуры. Но всё это рядом с мощными движками...
Евгений Германович
Цитата(SasaTheProgrammer @ Jan 2 2008, 01:16) *
Довелось мне в годы оно столкнуться с удивительным изделием советской промышленности - со "сколкой". Теперь такие, кажется, называют "планшетами". Лист пластика (размером с кульман!) был профрезерован с двух сторон и в образовавшиеся канавки были уложены и залиты чем-то проводники. По этой двумерной, с принудительным шагом, сетке пропускались калиброванные импульсы тока. На кончике вижками...

Подобные штуки используются в измерительных машинах и обзываются индуктозинами,кстати их делают до сих пор.
Меня заинтересовал ответ директора,который явно просто манагер,на вопрос об изменении показаний энкодера,по моему разумению он нагло соврал.Возможно изменение показаний связано с низкой помехозащищенностью схемы.Про вытяжной датчик,должен уложиться в ваши деньги,по простому это тотже ваш энкодер только на веревочке biggrin.gif
gte
Цитата(Евгений Германович @ Jan 2 2008, 08:22) *
Подобные штуки используются в измерительных машинах и обзываются индуктозинами,кстати их делают до сих пор.


По линейным индукционным датчикам, например
http://www.newall.com/DROs/dro_encoders.htm
sakrivosh
Цитата(VadimPlotnikov @ Dec 27 2007, 04:41) *
Измерение перемещения каретки с точностью 0,1 мм.

Смотрел готовые промышленные системы устраиваю магнитострикционные но цена порядка 30000 руб (мин), не устраивает.


Попробуйте после каждого цикла операций (или перед началом) уводить каретку в начальное положение и обнулять программные X, Y с привязкой к hardware reference с абсолютными значениями 0,0 для X, Y.
_Sam_
Цитата
частота опроса порядка 20 кГц( была около 60), перемещение даёт на максимальной скорости при энкодере 1000 им/об – 5 кГц. По вибрации не знаю, стоят двигателе на 3000 об/мин.
Интересный "эффект": о нём говорил технический директор http://skbis-lir.ru/. Сам не могу проверить.

Вы его скорее всего неверно поняли.
Ваши вибрации ускоряют изменение координаты(смена фронта может происходить с максимально допустимой выходной частотой датчика.) здесь, на последней странице, описана ваша ситуация, как раз перед номограммами. Судя по ним частота опроса должна быть как минимум 40кГц. Надо вам увеличить частоту опроса, а если это невозможно, брать контроллер помощнее, либо ПЛИС, либо абсолютный датчик с ssi или каким-нибудь параллельным выходом, тогда не будет никаких насчётов.

Цитата
происходит выборка люфта редуктора и провисания цепи, счётчик в данный момент отключен
Собсна если счётчик не считает, как вы определяете, что люфт выбран? Если по таймату, то это неверно и может привести к большим ошибкам.
Axel
По моему опыту, работая с инкрементальными датчиками, чувствовать себя спокойно можно только используя аппаратную обработку. В этом случае, опять же по собственному опыту, даже весьма серьезные вибрации не вызывают пропусков и набегов. Хотя проблему люфтов это, безусловно, не снимает...
_Pasha
Пару лет назад хотели выборку люфтов делать на акселерометре MMA1260D, но, к сожалению, ничего конкретного сказать не могу, т.к. тема умерла. Единственное замечание: надо предусматривать отключение питания акселерометра, потому что при ударах они ( MMA, ADXL) любят впадать в ступор.
VadimPlotnikov
Решил сделать опрос энкодера на логике, возможно два пути:
1) Делать на логике тргеры + счётчики.
2) ПЛИС – но не разу не работал оставлю на будущие.
3) Специализированные микросхемы типа HCTL-2000. Но где их купить или кто нибудь знает аналоги.
Axel
Рискну посоветовать: если надо не "вчера", то лучше ПЛИС - для начала в MAXPLUSе примитивами, а там пойдет...Байтбластер только спаять. Почувствуете, что зто как с велосипеда на мотоцикл пересесть. Удачи.
Alex03
Цитата(VadimPlotnikov @ Dec 30 2007, 17:25) *
Код
if (koderchanel10 == 1 && koderchanel11 == 1) koderuroven1=1;
if (koderuroven1 == 1)
{
if (koderchanel10 == 0 && koderchanel11 == 1) koderuroven1=2;
if (koderchanel10 == 1 && koderchanel11 == 0) koderuroven1=3;
}
if (koderuroven1 > 1 && koderchanel10 == 0 && koderchanel11 == 0)
{
if (koderuroven1==2) koder1++;
if (koderuroven1==3) koder1--;
koderuroven1=0;
}

Okorok: я чего-то не понимаю вроде у меня как раз и сделано с запоминанием прошлого состояния и если дрожит только одна фаза то насчёта нет.

При дрожании одной фазы - ДА нет счёта, а при "дрожании енкодера" очень даже может насчитать.
То что у вас сделано не поймёшь как работает, точнее работает только при движении в одну сторону и точно не работает при движениях туда/сюда.
Попробуйте например такую последовательонсть 11 -> 01 -> 00 -> 01 -> 11 -> 01 -> 00 -> 01 -> 00, т.е. 2 (четверть)шага вперёд, 2 назад, 2 вперёд, 2 назад. А оно у Вас насчитает 2 шага вперёд.

Попробуйте такое:
Код
if (koderchanel10 ^ koderchanel11 ^ koderchanel10_prev ^ koderchanel11_prev)
{
    if (koderchanel10 ^ koderchanel11_prev)
         koder1++;
    else
         koder1--;
}
koderchanel10_prev = koderchanel10;
koderchanel11_prev = koderchanel11;

Количество шагов правда будет в 4 раза больше чем у Вас, но это ж только плюс.
slog
Практика показывает, что безглючно работают железные квадратурные декодеры например в ПЛИС. А с программными надо слишком много ресурсов на это дело выделять чтобы избежать пропуска импульсов.
Андрей83укр
Цитата(slog @ Jan 16 2008, 08:02) *
Практика показывает, что безглючно работают железные квадратурные декодеры например в ПЛИС. А с программными надо слишком много ресурсов на это дело выделять чтобы избежать пропуска импульсов.

ребята,пожалуйста помогите!у меня дисковая пилорама,устройство-каретка,такая же как в описание више.те же проблемт с люфтами.стоят индуктивние датчики и на валу жвигателя круг с тремя болтами.счетчики импульсов си-30.двигателя влево вправо через редуктора и ремни управляються частотником.погрешность размеров большая,так как есть люфти,перепробовали все.приежжали специалисти говорят виной всему люфти и вибрация.Посоветуйте пожалуйста что-нибудь может датчики которие не бояться вибрации и опилок и контроллер чтоб управлял всем єтим с памятью размеров.Пожалуйста

Может кто-то посоветует готовие промишленние системи
k155la3
В обрабатывающих станках используются т.н. "линейки".
На станину крепится (наклеивается) метал. лента с магнитными метками.
По ней ездит считывающая головка. Интерфейс - цифра.
По сути - синусно-косинусный преобразователь с высокой разреш. способностью.
Порядка сотых мм. Длина линейки - заказная. Может быть несколько метров sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.