PDA

Просмотр полной версии : измерение длины и скорости



smokin
15.10.2008, 15:27
добрый день!
задча состоит в том ,чтобы мерить длину рулонных материалов,а также поддерживать постоянную линейную скорость перемотки рулона.
для этого применяем энкодер с числом меток на оборот 500.
В плк150 организуем модуль encoder ,но вот проблема ,максимальное число в нем 65000!!! Какбыть если на 1 оборот датчика приходится примерно 200 мм а длину нужно мерить около километра???

AVit
15.10.2008, 17:13
может и не оптимально, но я бы сделал так:
при достижении счетчика энкодера, например значения 1000, я бы обнулял его и инкрементировал промежуточную переменную.
результат бы получал: результат = (("промежуточная переменная" * 1000) + счетчик энкодера).

Дмитрий Артюховский
15.10.2008, 17:49
Ограничение в 65535 импульсов только на время между циклами (цикл ~ 1мс). В каждом проходе вам следует скидывать накопленное значение в переменную, ибо считывание этой переменной одновременно ее обнуляет.
А дальше, уже с этой переменной, делайте что хотите ))))

Филоненко Владислав
15.10.2008, 23:48
Правильное решение, только переменная не скидывается, а надо вычитать предидущее и тек. значение. Будьте внимательны с вычитанием при переходе через ноль.

smokin
16.10.2008, 15:02
получилось!примерно так ,как предложил AVIT только пришлось придумывать схему выделения оборота в - и в+ и соответствно вычитать или прибавлять полный оборот . НО самое интересное в том ,что если бы регистр encoder в конфиге был бы DWORD не нужно было бы ломать голову!!!