Подключение и тест шагового двигателя MDrive17Plus

Случилось мне разрабатывать один механизм, одним из элементов которого является шаговый двигатель. И вот как-то на рабочее место принесли мне эту вкусняшку:

MDrive17Plus

Называется это чудо MDrive17Plus и принадлежит к семейству шаговых двигателей компании Schneider Electric. Решил я его затестить и не привлекая сторонних программистов «заточить» под свои цели. Как оказалось это не так уж и сложно.

Начал работу с этим двигателем я с ознакомления с содержанием сайта компании, накачал datasheet’ов, описание языка программирования, просмотра аппликнотов.

О подключении и тест:

Двигатель имеет встроенный контроллер, с которым можно установить общение посредствам RC422-ого интерфейса и прошить программу, либо управлять с терминала. Так же в наличии 4-е цифровых порта ввода/вывода и один аналоговый. Питается MDrive от +12..+24 вольтового источника, потребляет в пике 2А. Для коннекта с компом потребовался преобразователь USB/RC422, который у меня был родной от этой же компании:

Ну и кабель-переходник с USB на miniUSB. Драйвера на это устройство качаются с сайта, впрочем как и все остальное для работы с двигателем. Сверху переходника виден разъем, он вообще предназначен для питания логики MDrive, то есть можно прошивать и тестить программу без фактического перемещения вала двигателя, однако виртуально инструкции будут исполняться, будут меняться показания энкодера. Это удобно, когда все смонтировано, а прога новая, вот чтобы не порубало никому руки и оборудование применяют этот режим. Однако в мануале рекомендуют в этом переходнике разъем заклеить скотчем и забыть про него. Честно я так и не понял с чем связана эта рекомендация, однако питание на логику таким образом не подавал.) Собственно питание двигателя я организовал с помощью БП от передатчика. который как раз был 2-х амперный:

Итак подключаем переходник USB/RC422 к компу и двигателю, потом подаем питание, перед этим скачав и установив предлагаемый производителем IMS терминал.    Выбираем COM порт, на котором висит двигатель, коннектимся и нажимаем кнопку  «ResetMDrive» и в окне терминала появится команда возврата двигателя к заводским установкам и надпись “Copyright 2001-2007 by Intelligent Motion Systems, Inc.” Что свидетельствует о готовности к работе и правильному подключению шаговика.

Если все ок, нажимаем кнопку Move Some и вал двигателя поворачивается на 9000 шагов сперва в одну, потом в другую сторону, в окне терминала при этом выводится текущая позиция:

О программировании:

Двигателем можно управлять как непосредственно с терминала или по RC422 с какого-нибудь МК, либо прошить в контроллер двигателя программу и использовать I/O порты MDrive. Для этого используется язык интерпретатор производителя. В мануале MCode подробно описаны все команды и принципы программирования.  Я решил зашить в двигатель программу, по которой он будет при нажатии кнопки поворачиваться на определенный угол и с задержкой возвращаться в исходное положение. В программном окне терминала IMS ввел следующий код:

S1=4,0,0 'Устанавливаем вывод I/O1 как вход активный при 0
S 'конфигурацию порта  S1 записываем в энергонезависимую память
SU 'назначаем выполнение программы при включении питания
PG 1  'старт программы с адреса 1
MA 90000  'перемещаем вал на 9000 шагов в позитивном направлении
PR "Position=", P  'выводим в терминал текущую позицию
H 500  'задержка в 0,5сек
MA 0  'возвращаемся в нулевое положение
PR "Position=", P 'выводим в терминал текущую позицию
H  'задержка в 1мсек
E  'конец программы
PG

Заливается прошивка тоже из IMS Terminal. Теперь при подаче питания, даже отключенный от терминала двигатель по нажатию на кнопку будет вертеть валом по нашему хотению.)

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

         
Подписаться на новые статьи блога:

3 комментария: Подключение и тест шагового двигателя MDrive17Plus

  1. Уведомление: Управляем шаговым двигателем с помощью Arduino | Skab in Sky

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.