

ПК ОДО Спецприбор www.spetspribor.com
SMC-3000B
Контроллер шагового двигателя
руководство пользователя

SMC-3000B
ОСНОВНЫЕ ХАРАКТЕРИСТИКИ
•максимальная скорость – 3000 шаг./сек
•максимальный ток питания двигателя – 4 А1
•разгон с постоянным ускорением
•программируемое направление вращения
•программируемое ускорение
•программируемый средний ток фаз
•программируемый ток удержания
•режим перемещения на N шагов
•полушаговый режим
•один внешний источник питания
•управление по интерфейсу RS-232 или местное
•адресация до 7 устройств на одном RS-232
Примечания:
1. При наличии радиатора для микросхемы драйвера.
ОПИСАНИЕ УСТРОЙСТВА
Контроллер шагового двигателя SMC-3000B предназначен для работы с биполярными или униполярными шаговыми двигателями. Основой устройства является RISC-контроллер AT90S2313 фирмы “Atmel”, который программно формирует сигналы управления фазами шагового двигателя. В качестве ключей фаз двигателя применена специализированная микросхема L298 фирмы “ST Microelectronics”, которая содержит два мощных транзисторных моста. Средний ток фаз и ток удержания формируется с помощью ШИМ. Управление режимами работы устройства осуществляется с компьютера через интерфейс RS-232. Скорость обмена по RS-232 фиксирована и равна 2400 бод. На один порт может быть подключено до семи устройств. Основные функции доступны с местной клавиатуры.
НАЗНАЧЕНИЕ КОНТАКТОВ РАЗЪЕМОВ
Плата имеет два разъёма типа RJ-45 для подключения к RS-232. Разъёмы соединены параллельно и служат для каскадирования устройств.
Для подключения клавиатуры служит разъем KEYBOARD. Клавиатура состоит из трех кнопок: «DOWN», «UP» и «ON/OFF». Кнопки «DOWN» и «UP» без фиксации, кнопка
«ON/OFF» - с фиксацией. Все кнопки должны иметь нормально-разомкнутые контакты. При нажатии кнопки должны замыкать управляющие входы на общий провод.
Разъемы LIMITS предназначены для подключения концевых выключателей UPLM (ограничение движения вперед) и DNLM (ограничение движения назад).
Шаговый двигатель подключается к разъему «MOTOR». Этот разъем имеет 4 выходных контакта (фазы PH_A, PH_B, PH_C, PH_D) и 4 общих контакта. Для подключения биполярного шагового двигателя используются только 4 выходных контакта: одна обмотка подключается к контактам PH_A и PH_B, другая – к PH_C и PH_D. Для подключения униполярного двигателя дополнительно используются 1, 2 или 4 общих контакта, в зависимости от схемы соединения обмоток конкретного двигателя.
-2-

SMC-3000B
Питание подается на разъем «POWER». Контакты этого разъема задублированы ввиду большого потребляемого двигателем тока.
Для внутрисхемного программирования микроконтроллера на плате предусмотрен разъем ISP.
Назначение контактов всех разъемов показано на рисунке 1.
|
POWER |
|
ISP |
GND |
+U |
|
|
|
|
1 |
|
SMC3000B
RS-232 IN
RS-232 OUT
DN |
UP |
ON |
GND |
UPLM |
GND |
DNLM |
GND |
PH A |
PH B |
PH C |
PH D |
COM |
KEYBOARD |
|
LIMITS |
|
|
MOTOR |
|
Рис. 1. Назначение контактов разъемов.
КАБЕЛЬ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА
Для подключения контроллера шагового двигателя к порту RS-232 компьютера используется специальный кабель. Со стороны компьютера кабель имеет разъем D-SUB-9 (или D-SUB-25, как вариант), а со стороны контроллера – разъем RJ-11. Расположение контактов розеток RJ-11, установленных на плате контроллера, показано на рисунке 2. Соответствие контактов разъемов кабеля последовательного порта приведено в таблице 1.
-3-

SMC-3000B
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 2 3 4 5 6 |
|
|
|
|
1 2 3 4 5 6 |
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.2. Расположение контактов розеток RJ-11.
Таблица 1. Соответствие контактов разъемов кабеля последовательного порта.
Контакт разъема |
Название сигнала |
Контакт разъема |
Контакт разъема |
RJ-11 |
|
D-SUB-9 |
D-SUB-25 |
2 |
GND |
5 |
7 |
3 |
RXD |
2 |
3 |
4 |
GND |
5 |
7 |
5 |
TXD |
3 |
2 |
Для подключения к порту компьютера нескольких контроллеров шаговых двигателей на плате контроллера имеются две розетки RJ-11. Всего может быть подключено до 7 контроллеров. Контроллеры нужно соединить в цепочку с помощью кабелей, имеющих разъемы RJ-11. Каждый кабель должен соединять одноименные контакты разъемов RJ-11. Один из крайних контроллеров нужно подключить к порту компьютера.
Перед соединением контроллеров в цепочку каждому из них должен быть присвоен (и сохранен в EEPROM) уникальный адрес. Сделать это можно с помощью команды CMD_STA. Присваивать адреса контроллерам нужно по очереди, по одному подключая их к порту RS-232. Подробное описание команды CMD_STA приведено ниже.
УПРАВЛЕНИЕ С МЕСТНОЙ КЛАВИАТУРЫ
Клавиатура может работать в двух режимах: в режиме управления скоростью и в режиме пошагового перемещения. Для того, чтобы перевести клавиатуру в режим управления скоростью, необходимо во время включения питания удерживать нажатой кнопку «DOWN», а в режим пошагового перемещения - кнопку «UP».
Врежиме управления скоростью кнопка «ON/OFF» включает двигатель, а кнопки «DOWN» и «UP» регулируют скорость вращения. Направление вращения двигателя и ускорение остаются такими же, какими они были заданы с компьютера (или какими были считаны из EEPROM при включении питания). Для сохранения значения скорости в EEPROM необходимо при остановленном двигателе нажать одновременно кнопки «DOWN» и «UP». Это значение скорости будет установлено при следующем включении устройства.
Врежиме пошагового перемещения при однократном нажатии кнопки «DOWN» (или «UP») производится один шаг назад (или вперед). Если кнопку удерживать, шаги будут повторяться. Частота повторения шагов при отжатой кнопке «ON/OFF» фиксированная и соответствует минимальной скорости вращения двигателя. При нажатой кнопке «ON/OFF»
-4-

SMC-3000B
частота повторения шагов соответствует текущей установленной скорости (или считанной из EEPROM при включении питания, если регулировка скорости не производилась).
ОБРАБОТКА КОНЦЕВЫХ ВЫКЛЮЧАТЕЛЕЙ
Программно обрабатываются два концевых выключателя. Концевые выключатели подключаются к разъемам LIMITS. Концевой выключатель, который выполняет функцию ограничения перемещения в прямом направлении, должен быть подключен к контактам UPLM и GND. Концевой выключатель, который выполняет функцию ограничения перемещения в обратном (реверсном) направлении, должен быть подключен к контактам DNLM и GND.
При срабатывании одного из концевых выключателей (размыкании его контактов) двигатель выполняет торможение с заданным ускорением, и движение в данном направлении прекращается. Концевой выключатель должен оставаться в сработавшем состоянии до полной остановки двигателя. Дальнейшее движение возможно только в обратном направлении.
Если одновременно сработали оба концевых выключателя, то движение становится невозможным ни в одном из направлений. Такая ситуация должна быть исключена конструктивно.
Вместо механических концевых выключателей можно использовать любые датчики положения с выходными сигналами в формате TTL и активным ВЫСОКИМ уровнем. Такие датчики могут быть непосредственно подключены к разъемам LIMITS. Если концевые выключатели не используются, на разъемы LIMITS необходимо установить перемычки UPLIM
– GND и DNLIM – GND.
Примечание: при необходимости работы с концевыми выключателями, при срабатывании которых контакты замыкаются, возможна установка специальной версии программного обеспечения.
КОМАНДЫ КОНТРОЛЛЕРА ШАГОВОГО ДВИГАТЕЛЯ.
Для обмена данными с PC используется порт RS-232. Обмен происходит через буфер параметров объемом 16 байт. Каждый байт буфера имеет свой собственный адрес, по которому PC может обращаться для чтения или для записи. Для того, чтобы различать передаваемые по RS-232 адреса и данные, используется бит паритета. Единичное значение этого бита является признаком передачи адреса. Поскольку буфер имеет размер 16 байт, адрес имеет разрядность 4 бит. При передаче адреса эти биты расположены в младших разрядах D0 - D3. Биты D4 - D6 представляют собой адрес устройства (slave address), с помощью которого могут адресоваться до семи (адрес 0 зарезервирован для программирования) устройств на одном порту RS-232. Если переданный в этих битах адрес не соответствует назначенному, то контроллер игнорирует все посылки по RS-232. Бит D7 - признак чтение/запись. Если бит D7 = 0, то переданный адрес запоминается и контроллер готов принять байт данных. Принятый байт данных будет записан по этому адресу. Если бит D7 = 1, то приняв адрес, контроллер сам передаст байт данных, которые будут считаны по этому адресу. Независимо от значения бита D7 передаваемый адрес запоминается в контроллере и может быть использован при последующих операциях чтения/записи данных.
-5-

SMC-3000B
P |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
|
|
|
|
|
|
|
- запись данных |
0 |
Data Byte |
|
|
|
|
|
|
||
|
|
|
|
|
|
- запись адреса |
|||
1 |
0 |
Slave Address |
Address |
|
|
||||
|
|
|
|
|
|
- запись адреса и чтение данных |
|||
1 |
1 |
Slave Address |
Address |
|
|
Буфер параметров имеет следующую структуру:
Address |
Name |
DEFAULT |
Description |
0 |
BUFF_CMD |
0 |
Команда контроллера |
1 |
BUFF_ECHO |
0 |
Байт - эхо, последний переданный байт данных |
2 |
BUFF_SPDL |
NVM |
Скорость, младший байт |
3 |
BUFF_SPDH |
NVM |
Скорость, старший байт |
4 |
BUFF_SPDA |
NVM |
Ускорение |
5 |
BUFF_MODE |
NVM |
Режим и ток фаз |
6 |
- |
- |
- |
7 |
- |
- |
- |
8 |
BUFF_ADDR |
NVM* |
Адрес устройства |
9 |
BUFF_STPL |
NVM |
Количество шагов, младший байт |
10 |
BUFF_STPM |
NVM |
Количество шагов, средний байт |
11 |
BUFF_STPH |
NVM |
Количество шагов, старший байт |
12 |
BUFF_HOLD |
NVM |
PWM удержания |
13 |
BUFF_STAT |
0 |
Статус (только чтение) |
14 |
BUFF_CSL |
0 |
Текущая скорость, младший байт (только чтение) |
15 |
BUFF_CSH |
0 |
Текущая скорость, старший байт (только чтение) |
NVM - параметр при инициализации считывается из энергонезависимой памяти.
* - в NVM запоминается не текущее значение BUFF_ADDR, а текущее значение установленного адреса. Поэтому, если просто перезаписать BUFF_ADDR, не выполнив полной процедуры установки адреса, то новое значение BUFF_ADDR в NVM записано не будет.
Подробное описание параметров:
0 |
BUFF_CMD |
Команда контроллера |
Этот параметр содержит код команды, подлежащей выполнению. Типичный порядок обмена PC с контроллером следующий: вначале передаются необходимые параметры, затем передается код команды. Команда выполняется, после чего контроллер передает обратно в PC
-6-

SMC-3000B
код выполненной команды. Одновременно код команды в BUFF_CMD контроллером обнуляется. Возможные коды команд приведены в таблице:
Code in BUFF_CMD |
Name |
Description |
0 |
CMD_NON |
Нет операции |
1 |
CMD_ON |
Включение двигателя на вращение |
2 |
CMD_OFF |
Выключение двигателя |
3 |
CMD_STS |
Установить скорость и ток фаз |
4 |
- |
- |
5 |
CMD_RDS |
Считать состояние |
6 |
CMD_SAV |
Сохранить параметры в NVM |
7 |
CMD_NST |
Включение двигателя на N шагов |
8 |
CMD_SAE |
Разрешение программирования адреса устройства |
9 |
CMD_STA |
Программирование адреса устройства |
CMD_ON: Команда “Включение двигателя на вращение” включает двигатель, при этом вступают в силу такие параметры, как скорость, ускорение, направление, режим перекрытия фаз, шаг/полушаг, ток фаз. Если эта команда поступает во время вращения двигателя, то двигатель вначале останавливается, затем запускается снова с новыми параметрами.
CMD_OFF: Команда “Выключение двигателя” выключает двигатель, при этом вступает в силу параметр PWM удержания.
CMD_STS: Команда “Установить скорость” включает двигатель, при этом вступает в силу только параметры скорость и ток фаз. Если эта команда поступает во время вращения двигателя, то двигатель переходит на новую скорость вращения, а ускорение и направление остаются неизменными.
CMD_RDS: Команда “Считать состояние” записывает в параметры BUFF_STAT, BUFF_CSL и BUFF_CSH текущее состояние и скорость двигателя. Далее эти параметры могут быть считаны.
CMD_SAV: Команда “Сохранить параметры в NVM” записывает в энергонезависимую память параметры, которые отмечены в столбце таблицы DEFAULT как NVM. Данная команда выполняется до 50 мс. Команда игнорируется, если двигатель не остановлен.
CMD_NST: Команда “Включение двигателя на N шагов” включает двигатель на заданное количество шагов. При этом вступают в силу такие параметры, как скорость, ускорение, направление, режим перекрытия фаз, шаг/полушаг, ток фаз, количество шагов и PWM удержания. Выполнение этой команды может быть прервано командами CMD_ON, CMD_OFF,
и CMD_STS.
CMD_SAE: Команда “Разрешение программирования адреса устройства” всегда должна быть выполнена перед программированием адреса устройства. Команда игнорируется, если двигатель не остановлен.
CMD_STA: Команда “Программирование адреса устройства” устанавливает значение адреса устройства из параметра BUFF_ADDR. Эта команда сохранение адреса устройства в энергонезависимой памяти не производит. Команда игнорируется, если двигатель не остановлен.
-7-

SMC-3000B
Типичная процедура установки адреса устройства выглядит так:
1.Остановить двигатель.
2.Передать команду CMD_SAE (адрес устройства = 0).
3.Передать новое значение адреса в BUFF_ADDR (адр. устр. = 0).
4.Передать команду CMD_STA (адр. устр. = 0).
5.Если необходимо, передать команду CMD_ SAV (адр. устр. = 0 или новый).
Параметр BUFF_CMD во время выполнения команды содержит ее код, а если команда выполнена - код 0. Однако читать этот параметр нет необходимости, так как о выполнении команды контроллер сообщает возвращением ее кода.
1 |
BUFF_ECHO |
Байт - эхо, последний переданный байт данных |
Этот параметр содержит значение последнего принятого с PC по RS-232 байта данных. Чтение BUFF_ECHO может производиться в целях проверки функционирования последовательного обмена. Запись этого параметра смысла не имеет. Следует особо отметить, что в BUFF_ECHO записывается каждый байт данных, передаваемый по RS-232, даже тот, который предназначался устройству с другим адресом.
2BUFF_SPDL Скорость, младший байт
3BUFF_SPDH Скорость, старший байт
Этот параметр задает скорость и представляет собой двухбайтовое значение величины периода чередования фаз. Величина периода в микросекундах равна значению этого параметра, умноженному на 0.8. Допустимые значения этого параметра лежат в диапазоне от 300 до 30000, что соответствует частоте переключения фаз от 3 Кгц до 30 гц.
4 BUFF_SPDA Ускорение
Этот параметр задает ускорение (скорость разгона) и представляет собой значение ускорения в условных единицах. Допустимые значения этого параметра лежат в диапазоне от 16
до 255.
5 BUFF_MODE Режим
Этот параметр определяет режим работы. Назначение отдельных битов параметра следующее:
-8-

SMC-3000B
Bit |
Name |
|
Description |
D0 |
DIR |
0 |
- двигатель вращается вперед |
|
|
1 |
- двигатель вращается назад |
D1 |
ILC |
0 |
- управление без перекрытия фаз |
|
|
1 |
- управление с перекрытием фаз |
D2 |
KEY |
0 |
- местная клавиатура в режиме управления скоростью |
|
|
1 |
- местная клавиатура в режиме пошагового перемещения |
D3 |
HS |
0 |
- полный шаг |
|
|
1 |
- половинный шаг |
D7 - D4 |
T3 - T0 |
значение тока фаз |
Бит ILC включает перекрытие (interlacing) фаз двигателя. При этом увеличивается вращающий момент, но возрастает потребляемая мощность и, соответственно, увеличивается нагрев двигателя.
Значение бита HS безразлично, если ILC = 0.
Средний ток фаз задаётся битами D4 - D7. Всего имеется 16 градаций тока. Соответствие битов приведено в таблице:
D7 |
D6 |
D5 |
D4 |
Средний |
|
D7 |
D6 |
D5 |
D4 |
Средний |
|
|
|
|
ток фаз |
|
|
|
|
|
ток фаз |
0 |
0 |
0 |
0 |
16/16 |
|
1 |
0 |
0 |
0 |
8/16 |
0 |
0 |
0 |
1 |
1/16 |
|
1 |
0 |
0 |
1 |
9/16 |
0 |
0 |
1 |
0 |
2/16 |
|
1 |
0 |
1 |
0 |
10/16 |
0 |
0 |
1 |
1 |
3/16 |
|
1 |
0 |
1 |
1 |
11/16 |
0 |
1 |
0 |
0 |
4/16 |
|
1 |
1 |
0 |
0 |
12/16 |
0 |
1 |
0 |
1 |
5/16 |
|
1 |
1 |
0 |
1 |
13/16 |
0 |
1 |
1 |
0 |
6/16 |
|
1 |
1 |
1 |
0 |
14/16 |
0 |
1 |
1 |
1 |
7/16 |
|
1 |
1 |
1 |
1 |
15/16 |
8 BUFF_ADDR
Этот параметр используется для установки адреса устройства (см. выше). Имеют значение только три младших бита этого параметра.
-9-

SMC-3000B
9 |
BUFF_STPL |
|
10 |
BUFF_STPM |
|
11 |
BUFF_STPH |
|
Этот параметр определяет количество шагов, которое будет сделано при выполнение команды “Включение двигателя на N шагов”. Допустимые значения этого параметра лежат в диапазоне от 1 до 16777215.
12 BUFF_HOLD
Этот параметр задает коэффициент ШИМ (PWM) удержания. Допустимые значения этого параметра лежат в диапазоне от 0 до 255. Если удержание должно быть выключено, необходимо задать значение 0.
13 BUFF_STAT
Этот параметр используется только для чтения. При выполнении команды “Считать состояние” в этот параметр заносится текущее состояние контроллера. Значение битов этого параметра приведено в таблице:
Bit |
Name |
|
Description |
D0 |
SOK |
0 |
- двигатель вращается |
|
|
1 |
- двигатель остановлен |
D1 |
SUP |
0 |
- разгон не производится |
|
|
1 |
- разгон |
D2 |
SDN |
0 |
- торможение не производится |
|
|
1 |
- торможение |
Остальные биты этого параметра не определены.
14 |
BUFF_CSL |
|
15 |
BUFF_CSH |
|
Этот параметр используется только для чтения. При выполнении команды “Считать состояние” в этот параметр заносится текущее значение скорости. Формат и размерность этого параметра такие же, как и параметра BUFF_SPDL, BUFF_SPDH.
-10-

SMC-3000B
Многие параметры имеют ограниченный диапазон допустимых значений. При задании значения параметра, выходящего за этот диапазон, в контроллере происходит усечение значения, в результате которого параметр оказывается в допустимых пределах.
Производитель: ПК ОДО «Спецприбор», г. Минск
тел. (+375) 17 284-24-88.
e-mail: spetspribor@yahoo.com
-11-