1. Общие сведения
В настоящей лабораторной работе рассматривается применение ПЛК для управления шаговым двигателем. Структурная схема лабораторного стенда представлена на рисунке 1.

Рисунок 1 - Структурная схема лабораторного стенда.
Контроллер Melsec FX3u-16M имеет 8 дискретных входов и 8 дискретных выходов транзисторного типа, рассчитанных на постоянное напряжение 24В. В составе стенда используются модули ЦАП и АЦП (FX3u-4DA и FX3u-4AD), рассчитанные на коммутируемое напряжение в диапазоне -10 + 10В., а также модули интерфейсов ASI и CC-Link. Графическая сенсорная панель GOT940 программируется с помощью компьютера.
Пульт управления стендом содержит восемь тумблеров и светодиодов, подключенных к входам контроллера X0 – X7.
Используемый в составе стенда шаговый двигатель имеет четыре обмотки и подключен к контроллеру в соответствии с рисунком 2.

Рис. 2 - Подключение шагового двигателя
Обмотки двигателя L1 - L4 подключены к выходам контроллера Y0 - Y3 через токоограничивающие резисторы R1 - R4. Диоды VD1 - VD4 предназначены для защиты транзисторов от обратных напряжений в момент выключения обмотки.
Для управления шаговым двигателем необходимо подавать на его обмотки напряжение питания в последовательности, указанной в таблице 1. (L4 L3 L2 L1)

За восемь этапов ротор двигателя совершит четыре полных шага, при этом, время необходимое на один оборот будет зависеть от суммарной длительности временных задержек между шагами.
Таким образом, управляя обмотками двигателя - включена (есть ток в обмотке), выключена, посредством выходов контроллера Y0 - Y3, можно управлять скоростью вращения двигателя и необходимой величиной перемещения рабочего органа.
2 Программирование контроллера
Разработка проекта и запись его в контроллер осуществляется прикладной программой GX-Developer v8. Данный пакет предоставляет возможность программирования на языке лестничных диаграмм: программа строится как последовательность линий, выполняемых поочередно. Каждая линия может содержать до 8 инструкций, до 20 ответвлений и по структуре подобна оператору условного перехода (ЕСЛИ - ТО). Во время работы контроллера, записанная в нем программа выполняется циклически. Функционально контроллеры Mitsubishi разработаны таким образом, что информация об изменении состояния входов записывается в область отображения и обрабатывается программой только после завершения очередного цикла. Аналогично осуществляется обработка и выходных сигналов. Это обстоятельство стоит учитывать, поскольку в объемных программах, время цикла может составлять несколько сотен миллисекунд. Подобное время отклика на поступающий сигнал может оказаться недопустимым в системах жесткого реального времени.
Команды и правила их использования подробно описаны в документе FX_Begin.pdf и рассматриваются в тренинговой программе FX-TRN-BEG-EU.
Работа с пакетом GX-Developer описана в документе GX-Developer-FX_Beginners_Manual_ru.pdf.
Объем памяти контроллера FX3u составляет 256Кб или 64000 инструкций, а время исполнения базовых команд составляет 0.065мкс.
3. Проверка технического состояния деталей
Необходимо разработать систему управления шаговым двигателем, способную реализовывать прямое и обратное вращение ротора, а также обрабатывать сигнал экстренной остановки двигателя. Для имитации входных сигналов управления используются тумблеры X4 - X7. Входы контроллера X0 – X3 соединены с четырьмя герконами, имитирующими конечные выключатели. Сигналы включения прямого и обратного хода (FWD и REV) должны быть представлены в виде импульса, а сигнал STOP должен обеспечивать полную остановку системы. Система должна запускаться только в том случае, когда нет сигнала STOP, и поступил сигнал на перемещение вперед либо назад.
Стоит обратить внимание на тип входа при программировании. Нормально разомкнутые контакты -| |- и нормально замкнутые -|/|- можно одновременно использовать в разных частях программы применительно к одному и тому же физическому входу. К тому же грамотный подход к выбору типа контакта позволяет упростить решение множества вопросов. Например, связка -| |--|/|- позволяет системе работать только когда активен первый вход и неактивен второй (исключается работа системы при одновременной подаче противоречивых сигналов FWD и REV).
Сигнал STOP в реальных системах практически всегда является размыкающим и аппаратно отключает питание. Это необходимо помнить, однако в данной лабораторной работе тип контакта STOP не имеет особого значения т. к. этот сигнал обрабатывается на программном уровне.
Последовательное переключение обмоток с заданным интервалом времени можно реализовать множеством способов. Самый простой – последовательность таймеров, каждый из которых, по истечению времени, включает следующую комбинацию обмоток и следующий таймер. Подобное решение связано с рядом неудобств. Во-первых, реализация реверсивного хода приведет к увеличению объема программы, практически вдвое. Во-вторых, усложняется процесс определения стартовой комбинации включенных обмоток при переключении направления вращения.
Для увеличения «гибкости» программы может быть использован подход на основе динамически изменяемого регистра. В регистр записывается десятичное число, которое изменяется на единицу каждый раз при срабатывании таймера задержки (время между полушагами). Изменение значения регистра должно происходить в пределах 0 – 7 (т.к. при полушаговом управлении имеется всего 8 возможных комбинаций включенных обмоток – см. табл.1). В этом случае структура программы может выглядеть следующим образом (рис. 3).

Рис. 3– Структура программы управления шаговым двигателем
В процессе выполнения работы необходимо: