Система предназначена для приема и обработки информации с измерительных датчиков и управления биполярными шаговыми двигателями мощностью до 500 Вт с дроблением шага 1/1, 1/2,1/4,1/16.
Конфигурирование и управление системой осуществляется с PC через Ethernet или RS485 интерфейсы.
Система позволяет принимать и обрабатывать сигналы с абсолютных или инкрементных энкодеров, а также концевых датчиков.
Система состоит из платы Control Board и плат Motor Board, по одной на двигатель и поставляется в корпусе из алюминиевого сплава с фланцевым креплением размерами 170х120х55 мм.

Плата Control Board
Плата предназначена для сбора данных с сенсоров и связи с PC.
Плата построена с применением 32-разрадного ARM микроконтроллера с тактовой частотой 160 МГц и имеет 6 гальванически изолированных портов RS485 и 100Мбит Ethernet интерфейс.

Рис.1
Плата Motor Board
Плата предназначена для управления одним шаговым двигателем (ШД) с контролем перемещения по абсолютному энкодеру.

Рис.2
Устройство реализовано в виде платы на которой размещено и силовая и цифровая схемы, напряжение питания платы +48В и ток при максимальной мощности подключенного двигателя до 10А.
Плата содержит следующие компоненты:
-
DC-DC преобразователь преобразует входное напряжение +48В в +12В для питания энкодера и низковольтной части схемы. Имеется защита от переполюсовки.
-
Силовой каскад на 8-ми MOSFET транзисторах с максимальным током 100А, для управления биполярным шаговым двигателем.
-
Дампер, необходимый для защиты драйверов ШД и источников питания от обратной ЭДС создаваемой ШД при резких торможениях/ускорениях.
-
Микросхему-драйвер, управляющую MOSFET транзисторами, реализующую алгоритм дробления шагов 1/1, ½, ¼, 1/16.
-
32-разрядный ARM микроконтроллер, реализующий алгоритм управления траекторией движения двигателя, разгоном и торможением двигателя, обработкой данных от энкодера, обработка данных пришедших от пользовательской программы.
-
Три гальванически развязанных драйвера RS485. Вместо одного из них может устанавливаться гальванически развязанный драйвер CAN2.0. Входы и выходы всех драйверов защищены TVS диодами.
Функциональные возможности платы управления биполярным шаговым двигателем:
-
Ввод и сохранение параметров разгона, торможения для каждой дробности шага, адреса платы и идентификатора.
-
Программное управление движением двигателя. Разгон и торможение по заранее заданной характеристике. Движение на заданное количество шагов.
-
Движение по энкодеру. Задается точка и плата рассчитывает траекторию движения подъезжает к этой точке, причем микроконтроллер сам принимает решение как ехать с постоянной скоростью или с разгоном и торможением.
-
Отслеживание присутствия энкодера на связи и немедленная остановка, когда потеряна связь с энкодером.
-
Ввод и сохранения во flash память микроконтроллера крайних точек движения по энкодеру (псевдоконцевики).
-
Вывод параметров траектории движения по энкодеру или без него в реальном времени.
-
Запуск и отслеживания работы нескольких плат в реальном времени.
Программное обеспечение для управления шаговыми двигателями
Форма имеет две закладки “Настройка движения” и “Управление движением”.
Закладка “Настройки движения”.

Рис.3
-
На закладке “Настройки движения” отображается информация:
-
версия внутреннего Firmware микроконтроллера
-
идентификатор платы указывает на функциональное назначение платы
-
адрес устройства – это адрес платы, в данной реализации. Существует 3 адреса:
1-й адрес – адрес платы, отвечающей за перемещение каретки с датчиками поперек стола,
2-й адрес - это адрес “Ведущей платы”. Плата управляет движением первого продольного двигателя, принимает команды “старт движения”, “стоп движения”, а также выдает сигналы STEP, DIR для платы с адресом №3 которая управляет движением второго продольного двигателя.
-
набор параметров “Параметры для работы с энкодером”, устанавливают величину “нуль метки” и “максимальное значение”, в мм по энкодеру . Т.к. абсолютное значение энкодера идет на убывание от “нуль метки” к “максимальному значению” поэтому значение “нуль метки” больше, чем значение “максимальное значение”. Значения записываются в мм. Эти два значения также являются концевиками контролирующими, чтобы портал не выехал за пределы рабочей зоны
-
Параметр “Ввод отступа от начала сканирования, мм” указывает с какого расстояния от “нуль метки” начинать проверку(расчет) “неплоскостности” стола.
-
Самая большая группа параметров “Параметры движения” – это параметры задающие свойства движения. Микросхема драйвер шагового двигателя поддерживает четыре дробности шага 1/1, ½, ¼, 1/16. Чтобы уменьшить влияние резонансных частот на процесс разгона и торможения для каждой дробности шага индивидуально настраиваются параметры. Ниже перечислены параметры и их описание.
-
Ток разгона и торможения, А - ток который устанавливает и поддерживает драйвер внутри обмотки двигателя на время разгона двигателя до максимальной скорости или на время торможение до конечной скорости торможения.
-
Ток крейсерский, А - ток который устанавливает и поддерживает драйвер на время равномерного движения двигателя по прямолинейному участку.
-
Коэф. наклона разгона – коэффициент определяющий угол наклона сигмоиды (функции которая реализует скорость изменения частоты вращения шагового двигателя). Коэффициент измеряется в тех же единицах, что и скорость вращения двигателя. Чем больше значение, тем более плавно будет изменяться скорость вращения двигателя.
-
Аппроксимирующий отрезок разгона, шаг/сек.
Минимальный шаг изменения скорости. Такими элементарными отрезками выстраивается разгонная характеристика.
-
Начальная скорость, шаг/сек.
Частота импульсов подаваемая на шаговый двигатель при его старте.
-
Конечная скорость, шаг/сек. Скорость вращения двигателя после окончания его разгона и перехода на отрезок движения с постоянной скоростью.
-
Ток защиты, А.
Схема постоянно отслеживает ток потребляемый драйвером управляющим шаговым двигателем, если ток превышает это значение, то шаговый двигатель отключается.
-
Время повышения тока, сек.
Время отсчитывается от момента старта, значение тока берется из ячейки “Ток разгона и торможения, А”. Перед началом торможения значение тока берется из ячейки “Ток разгона и торможения, А”, время отсчитывается с момента торможения.
-
Коэф. наклона торможения – коэффициент определяющий угол наклона сигмоиды (функции которая реализует скорость изменения частоты вращения шагового двигателя). Коэффициент измеряется в тех же единицах, что и скорость вращения двигателя. Чем больше значение, тем более плавно будет изменяться скорость вращения двигателя.
-
Аппроксимирующий отрезок торможения, шаг. Минимальный шаг изменения скорости. Такими элементарными отрезками выстраивается разгонная характеристика. Такими элементарными отрезками выстраивается разгонная характеристика.
-
Конечная скорость, шаг/сек.
Скорость вращения двигателя после окончания его торможения и перехода в режим остановки или с удержанием или без него.
-
Количество шагов разгона, шаг.
Количество шагов, которое требуется для того, чтобы разогнать шаговый двигатель с начальной скорости до максимальной без пропусков шагов.
-
Количество шагов торможения, шаг.
Количество шагов, которое требуется для того, чтобы затормозить шаговый двигатель с максимальной скорости до конечной без пропусков шагов.
-
Общее количество шагов, шаг.
Количество которое требуется, чтобы двигатель разогнать до максимальной скорости и затем затормозить без пропусков шагов.
Закладка “Управление движением”. На этой закладке три группы элементов отображения и управления.

Рис.4
-
Первая группа “Состояние драйвера ШД”
Эта группа отображает информацию о состоянии двигателя: стоит или двигается в каком направлении и с какой дробностью шага. Какой ток потребляет двигатель при работе. Если двигатель стоит с удержанием, то показывает “Вкл. драйвера” Включен, если без удержания, то показывает “Вкл. драйвера” Выключен. Показывает произошло ли срабатывание концевиков.
-
Вторая группа “Движение”.
Эта группа управляет движением двигателя.
-
Подгруппа “Направление” устанавливает направление движения двигателя.
-
Подгруппа “Концевики” устанавливает событие срабатывание концевиков по перепаду сигнала с “0” в “1” или c “1” в “0”.
-
Подгруппа “Остановка” устанавливает состояние драйвера после остановки двигателя. Если установлен checkbox “С удержанием”, то после остановки двигателя ток в обмотки двигателя подается. Двигатель зафиксирован подаваемым током. Если установлен checkbox “Без удержанием”, то после остановки двигателя обмотки двигателя обесточиваются.
-
Подгруппа “Дробность шага” устанавливает дробление шага.
-
Подгруппа “Кол-во шагов” в этой подгруппе есть два режима, переключение производиться нажатием checkbox на против соответствующего окна, движение по двигателю с подсчетом шагов (в окне задается количество шагов) или движение по энкодеру (в окне задается точка в мм расположенная между двумя концевиками) и первом и во втором случае перед стартом микроконтроллер рассчитывает траекторию и принимает решение. Если рассчитанное количество шагов больше, чем минимальное количество требуемое для разгона и торможения, то двигатель будет двигаться с разгоном до максимальной заданной скорости и торможение. При количестве шагов меньшем, чем минимальное количество требуемое для разгона и торможения шаговый двигатель будет двигаться с начальной скоростью всю траекторию.
-
Третья группа это два слайдера “Движение мотора по энкодеру” и “Движение мотора по шагам”. Активность соответствующего слайдера определяется checkbox установленным в окне “Кол-во шагов”.
На слайдере “Движение мотора по энкодеру” показаны “Нуль метка” = 0мм и “Конечная метка” в мм в зависимости от длины траектории двигателя (настраивается в закладке “Настройка движения” -> “Параметры для работы с энкодером”). Перемещающийся движок с изменяющимся над ним цифрами указываем положение двигателя относительно “Нуль метки” и “Конечной метки”. Вверху слева и вверху кнопки, соответственно “Уст “0”” и “Уст “MAX””, они используются для установки начального и максимального положения концевиков, соответственно “Нуль метки” и “Уст “MAX””. Слайдер “Движение мотора по шагам” Перемещающийся движок с изменяющимся над ним цифрами указываем количество шагов которое прошел двигатель с начала старта. Справа от слайдера при запуске движение двигателя появляется число указывающее количество шагов которое должен пройти двигатель.