Что мне нужно для ШД ?
 

Новости:

Добро пожаловать на форум об электродвигателях!

Главное меню

Что мне нужно для ШД ?

Автор Viktor2004, 18 июля 2021, 22:36:16

« назад - далее »

Viktor2004

Здравствуйте уважаемые специалисты.
Я никогда не имел дело с шаговыми двигателями, по сему прошу мне подсказать.
Имеется вот такой двигатель Sanyo Pancake Stepper Motor: Bipolar, 200 Steps/Rev, 50×16mm, 5.9V, 1 A/Phase
Мне нужно им управлять. Он должен при включении постоянно крутиться с большой скоростью, но я должен в любой момент знать на какой угол повернут его вал.
Скажите, можно ли это сделать без энкодера?
И какой драйвер мне для этого двигателя выбрать?

Administrator

Добрый день.
Без энкодера угол поворота можно отслеживать по управляющему контроллеру, т.е. сам управляющий контроллер должен отсчитывать количество заданных шагов. Однако, в случае пропуска шага, эта информация будет потеряна, информация об ошибке будет накапливаться. Если положение нужно знать точно и учитывать вероятность пропуска шага двигателем, лучше использовать энкодер.

Большая скорость вращения двигателя - это какая? и какая при этом будет нагрузка на валу двигателя? Необходимо учитывать, что при увеличении скорости крутящий момент двигателя снижается. Также инерционная нагрузка увеличит вероятность пропуска шагов.

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

Если не учитывать вероятность пропуска шагов, можем предложить наш контроллер SMSD-4.2LAN - счетчик отслеживания положения имеет диапазон от -2097152 до +209715 (либо от  до 4194303). Т.е. при полношаговом режиме работы можно отследить максимум 20971,52 оборотов. https://electroprivod.ru/smsd-42lan.htm

Можно использовать простой драйвер, например SMD-1.6 https://electroprivod.ru/smd-1628-din.htm
Для генерации и подсчета управляющих импульсов понадобится внешний контроллер.

Ну и дополнительно нужен будет источник питания постоянного тока.

Viktor2004

Спасибо за ответ.
Мне нужно что бы двигатель крутился примерно 1000 оборотов в минуту. Считать обороты мне не надо, но надо знать момент прохождения нулевой точки при каждом обороте.

Administrator

#3
Тогда можно использовать SMSD-4.2LAN и производить опрос положения в коротком цикле. Протокол обмена открытый, все команды предоставляем. Вам понадобится программист для написания элементарной программы и генерации события по факту прохождения полного оборота двигателя. Условие пренебрежения вероятностью пропуска шага остается.

Viktor2004

А как этот контроллер будет определять нулевое положение двигателя?

Viktor2004

У меня ведь перед включением ротор может находиться в произвольном положении. А надо что бы после включения при вращении он нашел нулевую метку

Viktor2004

В смысле я думал что у шагового двигателя есть какое-то позиционирование, когда при подаче питания на одну из обмоток он занимает определенную позицию от которой можно считать далее.
Наверное придется колхозить на ротор какой-нибудь эксцентрик и инлукционным датчиком ловить его положение. Жаль что двигатели не имеют встроенной нулевой метки

Administrator

У блока SMSD-4.2LAN есть команды поиска нулевого положения по внешнему входу (датчику). Перед началом работы выполняется поиск начального положения, при поступлении сигнала от датчика двигатель останавливается, текущее положение принимает за нулевое.

Administrator

#8
ЦитироватьТогда можно использовать SMSD-4.2LAN и производить опрос положения в коротком цикле. Протокол обмена открытый, все команды предоставляем. Вам понадобится программист для написания элементарной программы и генерации события по факту прохождения полного оборота двигателя. Условие пренебрежения вероятностью пропуска шага остается.

Нет, здесь я все же ошибаюсь. При скорости 1000 об/мин время одного оборота меньше 60 мс, за это время нужно несколько раз отправить команду запроса положения, получить и обработать ответ - погрешность будет колоссальная.

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

Или энкодер с нулевой точкой (1 импульс на оборот) ставить.

Administrator

ЦитироватьВ смысле я думал что у шагового двигателя есть какое-то позиционирование, когда при подаче питания на одну из обмоток он занимает определенную позицию от которой можно считать далее.
Наверное придется колхозить на ротор какой-нибудь эксцентрик и инлукционным датчиком ловить его положение. Жаль что двигатели не имеют встроенной нулевой метки

Ротор двигателя при включении питания занимает ближайшее устойчивое положение. Таких положений много в пределах одного оборота. Принимать за нулевое положение при включении питания для Вашей задачи не получится.

Нужен двигатель с энкодером с нулевой точкой.

Viktor2004