Управление шаговым двигателем ­ через COM-порт
 

Управление шаговым двигателем ­ через COM-порт

Автор Архивариус, 27 декабря 2007, 16:03:52

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

Архивариус

Архив, от гость2, Отправлено: 27 Июля, 2007 - 13:37:44
Здравствуйте.
Как управлять двигателем через СОМ-порт, посылая отдельные команды из своего приложения, не используя загрузку программы в память блока управления SMC-3?
Какай протокол обмена между блоком управления SMC-3 и ПК?
Спасибо.
Восстановление тем

Архивариус

Архив, от Администратор, Отправлено: 30 Июля, 2007 - 11:02:07
Протокол RS-232.

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

denver

Цитата: Архивариус от 27 декабря 2007, 16:04:33
Не совсем понятно, чем это может помешать... Просто вместо короткой строки с одной командой посылайте дополнительные команды загрузки в память.

Проблема в том, что для того чтобы прогрузить список настроек надо выйти в режим загрузки, т.е. остоновить двигатель. Мне необходимо менять скорость двигателя не остонавливая его, это возможно? На загрузку целового списка настроек (размер шага, ускорение, скорость и т.д.) у меня уходит 200-300 мс, т.к. приходится ждать ответа от контроллера или делать задержку ~20 мс между командами (иначе команда не принимается). Как уменьшить время выполнения команд? Почему после выполнения команды перемещения на N шагов плата уходит в аварийный режим, в чём может быть дело?

Administrator

Изменять скорость не останавливая двигатель можно из ручного режима управления (потенциометром или аналоговым сигналом 0-5В). Если предполагается постоянное подключение к компьютеру и изменение параметров движения без остановки - можно использовать блок в режиме драйвера и генерировать сигналы на порт LPT в реальном времени, не использую контроллер. Здесь Вы можете по своему усмотрению управлять скоростью, ускорением и пр.
Скорость передачи команд - 9600 бод, после каждой команды в порт выдается ответ, после приема ответа от контроллера можно посылать следующую команду.

ЦитироватьПочему после выполнения команды перемещения на N шагов плата уходит в аварийный режим, в чём может быть дело?
Без подробностей ничего сказать не могу, возможны варианты (лишняя команда отправляемая в порт, нестабилизированный ИП, физическое появление сигнала на входе "авария").


denver

Цитата: Administrator от 07 апреля 2009, 10:40:13
Без подробностей ничего сказать не могу, возможны варианты (лишняя команда отправляемая в порт, нестабилизированный ИП, физическое появление сигнала на входе "авария").
Вот подробности: ИП стабилизированный, к плате не подключено ни одного сигнала кроме управления двигателем и питания, команду на передвижение двигателя на N шагов высылал как из своего приложения, так и из утилиты к плате SMC_Program - ver.2.8.6.  В непрерывном движении плата работает нормально. Вот пример команд которые высылал в порт:LD1*BG*EN*AL0*SD200*DL*OF*MV200*ED*  ST1*. Перепробовал все варианты с командами: убирал,добавлял,менял местами,менял параметры. Результат один плата отрабатывает команду один раз и больше не хочет отвечать по COM порту.

Administrator

Под "аварийным режимом" Вы понимаете остановку двигателя и неисправность контроллера или штатный "аварийный режим"?

В штатном режиме при аварийной остановке в порт отправляется строка "En2*" (n - 1,2 или 3 - номер канала), светодиод мигает желтым цветом.  Или в вашем случает в порт совсем ничего не приходит?  И какого цвета светодиод загорается в Вашем случае?

Возможно, будет удобнее, если Вы пришлете файлы .smc и ._smc на почту, чтобы мы могли их проверить.

denver

Штатный аварийный режим. Оранжевый мигающий. В ответ из COM приходит "Нормальное выполнение команды" (E10*) и "Завершение исолнительной программы" (E14*). Далее отправке любой команды в ответ приходит "Ошибка приёма по COM - порту" (E15*). Вышлите более подробное управление через порт LPT. Будет ли работать управление через LPT, если на ножках 3,3 В?

Administrator

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

SMC-3 не работает с LPT портом. К LPT-порту подключается сам драйвер (силовой блок).  Т.е. при подключении к LPT из системы исключается SMC-3.

Схема подключения к LPT зависит от того, какой именно драйвер и какую программу Вы используете.
Наиболее распространенные варианты - подключение к MACH2 или MACH3.


Administrator

#8
SMD-15:
(для MACH2 и MACH3 сигнал ENA подключать не нужно).


Administrator

Сигнал "шаг" - PUL, направление - DIR.

PUL- и DIR- подключаются к "земле" LPT
PUL+ подключается к пину данных, ответственному за сигнал "шаг", DIR+ к пину, ответственному за направление.

Пины данных "шаг" и "направление" можно назначать принудительно в интерфейсе программы.

denver

Цитата: Administrator от 16 апреля 2009, 17:59:46
Картинка не открывается. Все же будет лучше, если Вы пришлете нам файлы программы по электронной почте.
Это не картинка. Переименуйте в "*.sms"

Administrator