Литовская компания Standa представляет на российском рынке оптические столы и монтажные опоры, оптомеханику, держатели, оптику, лазеры, аксессуары, а также поворотные, линейные и моторизованные позиционеры, в том числе линейные трансляторы, моторизованные держатели зеркал, приводы и прочее [1]. Все перечисленные элементы позволяют построить оптический тракт сложной оптической или лазерной системы. В линейных трансляторах, моторизованных держателях зеркал и приводах присутствуют управляемые шаговые двигатели. В общем случае задача по управлению шаговым электродвигателем сводится к задаче коммутации обмоток для вращения вала в нужном направлении и с нужной частотой (скоростью). Это невозможно сделать без блока управления или контроллера шагового двигателя (КШД). Производители шаговых двигателей и устройств, в которых такие двигатели присутствуют, как правило, предлагают блоки управления с законченными сетевыми интерфейсами управления: RS485, CAN, USB, PROFIBUS, Ethernet и другими. Компания Standa предлагает свои контроллеры для управления позиционерами с интерфейсами Ethernet и USB.
Какие же факторы и критерии являются определяющими при выборе контроллера шагового двигателя для аппаратнопрограммного комплекса оптического тракта сложной оптической системы? Кроме тех, которые определяются работой шагового двигателя в оптическом тракте, можно выделить следующие:
- удобная конструкция для размещения в шкафу управления;
- сетевой интерфейс управления, коммуникационный протокол обмена;
- соотношение цена/качество;
- наличие ручного режима работы для быстрой проверки привода при проведении пусконаладочных работ. В некоторых КШД этот режим называется автоматическим, суть в следующем: после подачи питания сразу начинает вращаться вал шагового двигателя, частота вращения вала двигателя изменяется вращением движка переменного резистора в КШД.
Одним из возможных решений является применение КШД серии OSM компании «Онитекс» (СанктПетербург) с управлением через интерфейсы RS485 или RS232 [2]. Для управления шаговыми двигателями в моторизованных позиционерах Standa можно задействовать КШД OSM17RA/OSM42RA.
OSM является современным, многофункциональным и надёжным устройством, предназначенным для управления шаговыми двигателями небольшой и средней мощности. Он работает с 4, 6, 8выводными шаговыми двигателями с током обмоток до 1,7 А для версии 17RA и 4,2 А – для версии 42RA. Контроллер реализует несколько режимов работы. Это позволяет использовать его для различных целей, начиная от применения в координатных станках с ЧПУ и заканчивая автономной работой в составе технологических линий или исполнительных устройств оптических трактов. Контроллер может управляться стандартными логическими сигналами «Шаг», «Направление» и «Разрешение», работать в автоматическом режиме, вращая двигатель со скоростью, заданной потенциометром, а также управляться в реальном времени по последовательному порту. В режиме контроллера возможно управление по одному из двух типов интерфейса: RS485 или RS232. Устройства «Онитекс» поддерживают протокол Modbus RTU. На рисунке 1 показан внешний вид контроллера шагового двигателя OSM17RA.
На рисунке 2 приведена принципиальная схема и внешний вид моторизованного линейного транслятора типа 8МТ175ХХ (далее – транслятор) Standa. Транслятор работает следующим образом: концевые переключатели SW1, SW2 (типа «сухой контакт») определяют положение платформы транслятора в крайних состояниях. Перемещаемая платформа находится в среднем положении. Концевые выключатели SW1 и SW2 разомкнуты. Меняя направление вращения вала шагового электродвигателя М1, можно перемещать платформу в крайние левое или правое положения. При этом, соответственно, замыкаются выключатели SW1 или SW2.
На рисунке 3 приведена принципиальная схема КШД OSM17RA (далее – контроллер) для управления транслятором типа 8МТ175ХХ. Контроллер А1 подключается к транслятору через соединитель Х1. Контроллер А1 может находиться либо в режиме контроллера, либо в программном режиме. Концевые переключатели SW1, SW2 транслятора подключаются ко входам D. in1 и D. in2. В режиме контроллера OSM17RA можно управлять через интерфейс RS485 по протоколу Modbus RTU. В листинге приведён программный блок инициализации КШД для транслятора типа 8МТ175ХХ.
На рисунке 4 приведены принципиальная схема и внешний вид моторизованного привода типа 8CMA2810,
а на рисунке 5 – принципиальная схема контроллера шагового двигателя OSM17RA для управления моторизованным приводом типа 8CMA2810.
В блоке инициализации КШД для привода 8CMA2810 изменяется только задание тока для шагового двигателя:
dat.pQuery[15] = GET_HIGH_BYTE(500)
dat.pQuery[16] = GET_LOW_BYTE(500).
В режиме драйвера контроллеры OSM могут управляться и внешними импульсными сигналами уровня ТТЛ.
В сложных изделиях приводы шаговых двигателей, как правило, применяются в составе законченных функциональных узлов, которые управляются распределённой системой сбора данных и управления всего изделия по сетевым интерфейсам или автоматизированной системой управления. Зачастую бывает так, что составная часть изделия изготовлена раньше, чем АСУ. И на этапе предварительных испытаний при проверке и настройке функционального узла, содержащего шаговые двигатели, целесообразно применить местный пульт управления, который позволяет задавать направление и скорость вращения вала ШД. Представленный пульт будет полезен на этапе макетирования изделия. Принципиальная схема пульта приведена на рисунке 6.
К соединителям Х1, Х2 и Х3 пульта через ответные части подключаются соответствующие сигналы КШД OSM17RA: № 1, № 2 и № 3 соответственно. К каждому соединителю подключён шаговый двигатель типа 28S Standa. Функциональный узел КШД с двигателем далее будет назван «приводом».
В устройстве, где был применён данный пульт управления, минимальная частота вращения ротора шаговых двигателей 28S составляет 35 об/мин, максимальная – 375 об/мин. Можно задавать следующие значения частот вращения ротора шаговых двигателей: 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 48, 50, 51, 53, 55, 57, 60, 62, 65, 68, 71, 75, 78, 83, 88, 93, 100, 107, 115, 125, 136, 150, 166, 187, 214, 250, 300, 375 об/мин. В контроллере установлен режим дробления шага 1/16.
В интерфейс пульта входит клавиатура (кнопки S1…S8), индикаторы HL1…HL6 и блок индикации (дисплей) из четырёх цифровых семисегментных индикаторов HG1…HG4. Кнопки клавиатуры имеют следующее назначение:
S1 (D) – увеличение частоты вращения ротора выбранного шагового двигателя и удержание кнопки в нажатом состоянии более 3 с приводят к непрерывному увеличению значения выбранного привода через каждые 0,5 с;
S2 (Ñ) – уменьшение частоты вращения ротора выбранного шагового двигателя и удержание кнопки в нажатом состоянии более 3 с приводят к непрерывному уменьшению значения выбранного привода через каждые 0,5 с;
S3 (Н) – направление вращения вала выбранного шагового двигателя: вперёд (по часовой стрелке), назад (против часовой стрелки); при выбранном направлении вращения двигателей включаются индикаторы HL1, HL2, HL3 (вперёд для приводов № 1–3) или HL4, HL5, HL6 (назад для приводов № 1–3);
S4 (В) – выбор привода в цикле «привод 1», «привод 2», «привод 3», «привод 1» и т.д.;
S5 (С1) – кнопка «старт/стоп» для привода № 1;
S6 (С2) – кнопка «старт/стоп» для привода № 2;
S7 (С3) – кнопка «старт/стоп» для привода № 3;
S8 (С) – общий «стоп» для всех приводов независимо от того, какой привод был выбран (или функционировал) в текущий момент.
Разряды индикации интерфейса имеют следующее назначение (слева направо):
1й разряд (индикатор НG1 отображает «1» в режиме «привод 1», «2» – в режиме «привод 2», «3» – в режиме «привод 3»;
2й разряд (индикатор НG2) отображает разряд «сотни» значения частоты вращения ротора двигателя в об/мин;
3й разряд (индикатор НG3) отображает разряд «десятки» значения частоты вращения ротора двигателя в об/мин;
4й разряд (индикатор НG4) отображает разряд «единицы» значения частоты вращения ротора двигателя в об/мин.
Сразу после подачи питания устройство переходит в режим работы «привод 1». На дисплее индицируется значение 35 об/мин (минимальное значение), ротор шагового двигателя не вращается. Для запуска двигателя необходимо нажать на кнопку S5. Кнопками S1 (D), S2 (Ñ) устанавливается необходимое значение частоты вращения ротора шагового двигателя, кнопкой S3 – направление его вращения, при этом включаются, соответственно, индикаторы HL1 (вперёд) или HL4 (назад). Все заданные параметры для этого привода сохраняются при переходе на другой режим работы блока («привод 2» или «привод 3»).
Рассмотрим основные функциональные узлы принципиальной схемы пульта. Основой устройства служит микроконтроллер DD4, его рабочая частота задаётся резонатором ZQ1 на 10 МГц. Клавиатура собрана на кнопках S1…S8. Для функционирования клавиатуры задействован вывод 7 микроконтроллера DD4. Резисторы R1…R3, R5, R9, R13 токоограничительные, для индикаторов HL1…HL3, HL4, HL5, HL6. Динамическая индикация собрана на регистре DD5, транзисторах VT1…VT4, цифровых семисегментных индикаторах HG1…HG4.
КР580ВИ53 – трёхканальный программируемый таймер, предназначенный для организации работы микропроцессорных систем в режиме реального времени. Подробная информация о работе данного таймера приведена в [3]. В алгоритме работы пульта задействованы все три канала данного таймера. Канал 0 таймера формирует последовательность тактовых импульсов для привода № 1, канал 1 – для привода № 2 и канал 2 – для привода № 3. Все три канала таймера работают в режиме 3 (режиме генератора меандра). Коэффициент деления задаётся однобайтовым числом. Тактовая частота на входы каналов таймера (выводы 9, 15, 18 DD3) поступает от генератора, собранного на микросхеме DD6. Задаваемая генератором частота – 6,25 кГц. Резистором R29 осуществляется регулировка частоты.
В режиме 3 каждый канал таймера работает как делитель входных сигналов на N (N – коэффициент деления, который может принимать значения от 0 до 255). Длительность положительного и отрицательного полупериодов выходного сигнала для чётных N равна ТСN/2, где ТС – период сигнала тактовой частоты. Для нечётных N положительный полупериод равен ТС(N+1)/2, а отрицательный – ТС(N–1)/2. В режиме 3 каналы не выполняют своих функций при записи в счётчики числа N=3. Поэтому программно реализовано условие N≥4. Перезагрузка счётчика во время счёта не влияет на текущий период, однако последующий будет соответствовать уже новому значению счёта. Минимальная частота каждого канала определяется минимальной частотой вращения ротора шагового двигателя и для нашего случая равна (для 35 об/мин) примерно 595 Гц, максимальная (для 375 об/мин) – 6,25кГц. Чтобы получить частоты вращения ротора шагового двигателя в оборотах в минуту, в программе используется формула F=1500/N, где N – ранее указанный коэффициент деления в канале таймера DD3 (4≤N≤42). Исходными данными для получения формулы являются частота генератора 6,25 кГц и количество шагов на один оборот шагового двигателя – 1000. Десятые доли, полученные при делении двухбайтого двоичного числа 1500 на однобайтовое двоичное N, в программе отбрасываются.
Сигналы управления на приводы через соединители Х1…Х3 поступают с регистра DD2 и инверторов DD1.1…DD1.3. На входы данных инверторов поступает тактовая частота с программируемого таймера DD3.
Работа обратной связи привода с пультом будет рассмотрена на примере привода № 1. Когда тумблер SA1 находится в положении «1», устанавливается запрет работы пульта по каналу 1. Тумблер SA1 в положении «2» разрешает работы пульта по каналу 1. С контакта 7 соединителя Х1 сигнал READY1 поступает на вход 8 микроконтроллера DD4. Микроконтроллер DD4 анализирует уровень сигнала, поступающего на вход 8. При уровне лог. 0 на входе 11 таймера DD3 (вход разрешения счёта канала 0) присутствует лог. 1. При этом счёт канала 0 разрешён. Аналогично работают приводы № 2 и № 3.
Пульт выполнен в виде функционально законченного модуля. Программное обеспечение микроконтроллера осуществляет реализацию алгоритма работы динамической индикации блока и функционирование трёх контроллеров OSM. Функционально законченный модуль состоит из трёх основных частей: процедуры инициализации, основной программы, работающей в замкнутом цикле, и подпрограммы обработки прерывания от таймера TF0. В основной программе происходит вычисление частоты вращения роторов шаговых двигателей по формуле F=1500/N, преобразование получившегося двухбайтового двоичного числа в десятичное двоичнокодированное (BCD) число для отображения информации на индикаторе устройства. В подпрограмме обработки прерывания от таймера TF0 в каждом цикле происходит опрос клавиатуры, перекодировка двоичнодесятичного числа в код для семисегметного индикатора и запись информации из порта P1 микроконтроллера DD4 в регистры DD2, DD5. Запись в регистры происходит по фронту импульсов, подаваемых, соответственно, с выводов 3 и 6 микроконтроллера DD4.
Таймер TF0 микроконтроллера DD4 формирует запрос на прерывание через каждые 3400 мкс. Данный таймер играет роль счётчика времени, который формирует временные интервалы, необходимые для отображения разрядов в динамической индикации блока.
Питающее напряжение поступает на плату с соединителя Х4. Конденсатор С4 фильтрует пульсации в цепи питания +5 В. Сразу после подачи питания на выводе 1 микроконтроллера DD4 через RCцепь R16С1 формируется сигнал системного аппаратного сброса микроконтроллера DD4.
Затем происходит инициализация программы, в которой задаются параметры работы динамической индикации, приводов, а также программируемого таймера DD3. Далее запускается таймер TF0 и разрешается работа устройства по приведённому ранее алгоритму. В ОЗУ микроконтроллера DD4 организован буфер отображения.
Каждый байт из функциональной группы буфера отображения в подпрограмме обработки прерывания таймера TF0 выводится в порт P1 микроконтроллера DD4. Номер группы или режим работы записан в регистре R2. В регистре R1 записан текущий номер отображаемого разряда динамической индикации. Адрес ячейки памяти, где хранится значение самого разряда, записан в регистре R0. В процессе работы подпрограммы обработки прерывания происходит опрос клавиатуры.
Байт, выводимый при этом в порт Р1 микроконтроллера, представляет собой код «бегущий ноль». После записи данного байта в порт Р1 микроконтроллер DD4 анализирует сигнал на входе 7 (Р3.3). В рамках указанной подпрограммы при любой нажатой кнопке на входе 7 микроконтроллера присутствует лог. 0. Таким образом, каждая кнопка клавиатуры привязана к своему разряду байта. Нажатием кнопки S4 инкрементируется регистр R2, и тем самым задаётся один из трёх режимов работы блока управления.
В памяти данных микроконтроллера в адресах с 30Н по 3BН организован буфер отображения для динамической индикации. По своему функциональному назначению адресное пространство данного буфера можно условно разбить на три функциональных группы. Каждая группа занимает четыре ячейки памяти (так как у нас имеется четыре разряда или знакоместа):
30Н…33H – адреса, где хранится текущее значение (об/мин) для привода № 1. Эти адреса выводятся на индикацию в режиме «привод 1». По адресу 30Н хранится число 1.
34Н…37Н – адреса, где хранится текущее значение (об/мин) для привода № 2. Эти адреса выводятся на индикацию в режиме «привод 2». По адресу 34Н хранится число 2.
38Н…3ВН – адреса, где хранится текущее значение (об/мин) для привода № 3. Эти адреса выводятся на индикацию в режиме «привод 3». По адресу 38Н хранится число 3.
Данные адреса загружаются в регистр R0 микроконтроллера. Каждый байт из функциональной группы в цикле в подпрограмме обработки прерывания таймера TF0 (метка OT) после перекодировки выводится в порт Р1 микроконтроллера. Для включения индикаторов HG1…HG4 необходимо установить лог. 0 на выводах 2, 5, 6, 9 регистра DD5 соответственно. Так, например, для того чтобы в режиме «привод 1» на индикаторе HG1 индицировалась единица, необходимо двоичнодесятичное число, расположенное по адресу 30H, перекодировать, вывести в порт Р1 микроконтроллера и записать лог. 0 в первый разряд регистра DD5 (вывод 2). Путём записи поочерёдно после перекодировки в цикле в порт Р1 микроконтроллера байты из функциональной группы буфера отображения и лог. 0 на соответствующий вывод регистра DD5 будет реализован режим динамической индикации. Понятно, что каждый разряд индикатора устройства привязан к своему определённому адресу в функциональной группе. На регистре R1 реализован счётчик разрядов.
В регистр R0 записываются адреса функциональных групп (метки TEMО0, TEMО1, TEMО2). При каждом обращении к подпрограмме обработки прерывания регистры R0 и R1 инкрементируются. При инициализации в R0 загружается адрес 30H (режим «привод 1»), а в R1 – число 1. В памяти данных в ячейке с адресом 20Н находится байт, который управляет разрядами динамической индикации и входами разрешения счёта каналов 0, 1, 2 таймера DD3. Данный байт записывается в регистр DD5 сразу после опроса клавиатуры. Младшая тетрада в данном байте представляет собой код «бегущий ноль» для включения знакомест (разрядов) динамической индикации. Длительность цикла динамической индикации, как уже отмечалось ранее, составляет 3,4 мс.
По адресу 21Н в памяти данных находится байт, который управляет сигналами импульсных интерфейсов приводов (сигналы DIR и EN) и задаёт адреса каналов в таймере DD3. Данный байт выводится в цикле подпрограммы обработки прерывания в регистр DD2.
Разработанная программа на ассемблере занимает порядка 1 Кбайт в памяти программ и доступна в дополнительных материалах к статье. Фотография макета пульта представлена на рисунке 7.
В пульте использованы резисторы С233Н0.125 c погрешностью 5%: резистор R29 типа СП516ВВ и конденсаторы С1, С4 – К50…35, С2, С3 – К10…17а. У всех микросхем между цепью +5 В и общим проводником полезно установить блокировочные конденсаторы К1017Н900,1 мкФ. Микроконтроллер DD4 – типа АТ89С405124PI.
В дисплее пульта выделен разряд, индицирующий текущий режим работы устройства (индикатор HG1) на фоне остальных разрядов интерфейса. Поэтому для данного разряда выбран семисегментный индикатор красного цвета HDSPF001 (подойдёт и HDSPF151), индикаторы HG2…HG4 – HDSPF501 зелёного цвета. Индикаторы HL1…HL6 можно подобрать абсолютно любые с Iпр = 10 мА.
Потребление тока по каналу напряжения +5 В не более 100 мА. В устройстве нет никаких настроек и регулировок (кроме регулировки частоты генератора в микросхеме DD6). Если монтаж выполнен правильно, то микросхема начинает работать сразу после подачи напряжения питания. Сначала целесообразно проверить работоспособность пульта, не подключая к нему приводы. Затем, подключив приводы, проверить работоспособность, начиная с первого. Подключать приводы к пульту и шаговые двигатели к приводу можно только при выключенном питании.
Литература
- URL: www.standa.lt.
- URL: www.onitex.ru.
- Микропроцессоры и микропроцессорные комплекты интегральных схем. Под. ред. В. А. Шахнова. Радио и связь. М. 1988.
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

