Проект автоматизированного электропривода экспериментального ленточного конвейера, разработанный на кафедре электроэнергетики и автоматики Белгородского государственного технологического университета имени В.Г. Шухова.
Принцип работы: пластиковые крышки подаются из контейнера на ленту конвейера с помощью вибраций, создаваемых маленьким моторчиком от игрушки. На выходе из контейнера датчик металла проверяет материал крышки — если она металлическая, то удаляется первой с конвейера механическим рычагом. Затем фотоэлемент определяет положение и цвет крышки. Если крышка оказывается перевернутой, самодельный механизм, состоящий из платы и проволоки, переворачивает ее. После определения цвета контроллер подает сигнал на соответствующий пневмотолкатель для сброса крышки с конвейера.
Управление конвейером осуществляется через электропривод, подключенный к преобразователю частоты. В статье подробно описывается принцип работы данной связки.

1. Основные компоненты системы АД + ПЧ

Функциональная схема автоматизированного электропривода состоит из нескольких блоков:
-
Схема Пуска (СП): Осуществляет подключение ПЧ к сети.
-
Блок Управления (Персональный Компьютер): Выполняет общее управление системой, принимая сигналы от оператора или других устройств и передавая их на остальные блоки.
-
Преобразователь Интерфейсов USB/RS-485 (ПИ): Преобразует сигнал с USB-порта ПК в сигнал RS-485 для работы с ПЧ.
-
Преобразователь Частоты (ПЧ): Обеспечивает регулировку скорости вращения асинхронного двигателя.
-
Асинхронный Двигатель (АД) и Редуктор (РД): Обеспечивают движение конвейера.
-
Микроконтроллер (МК): Обрабатывает сигналы от датчиков и передает команды на реле времени.
-
Реле Времени (РВ): Управляет временем работы дополнительных устройств, таких как электротолкатели.
-
Электротолкатель (ЭТ) и Пневмотолкатель (ПТ): Используются для сортировки материалов с конвейерной ленты.
-
Конвейер (КВ): Перемещает грузы.
-
Датчик Цвета (ДЦ): Отслеживает цвет материала и отправляет сигнал микроконтроллеру.
-
Компрессор (КР): Предоставляет сжатый воздух для пневматических устройств.
-
Пневмореле (ПР): Управляет клапанами для подачи сжатого воздуха.
1.1. Ленточный конвейер

Экспериментальный ленточный конвейер представляет собой устройство, состоящее из следующих основных компонентов:
-
Приводной ролик: перемещает ленту конвейера.
-
Лента: непосредственно транспортирует грузы.
-
Опорные ролики: поддерживают ленту и обеспечивают ее правильное направление движения.
-
Каркас: физическая конструкция напечатана на 3D принтере, поддерживающая все элементы.
1.2. Асинхронный двигатель (АД)
Чтобы выбрать подходящий электропривод, необходимо рассчитать мощность тягового усилия с учетом прогнозируемой нагрузки.
-
Синхронные двигатели: обладают высокой точностью скорости, но требуют сложной системы возбуждения.
-
Асинхронные двигатели: были выбраны благодаря простоте обслуживания, широкому диапазону рабочих скоростей и низкому уровню шума. Они составляют около 90% парка электродвигателей в промышленности.
Не буду приводить полные расчеты, лишь в кратце опишу принцип выбора привода.
Формула: Pэп = Pз / n,
где Pз - мощность, передаваемая валом приводного барабана, Вт; n - общий КПД привода.
В итоге получаем Pэп = 71,4 / 0,79 = 90,52 Вт.
Исходя из запасов кафедры и планах по расширению возможностей конвейера в качестве эксперимента был выбран АД с короткозамкнутым ротом АИР56А2 У2 мощностью 0,18 кВт. Выходит уж слишком с большим запасом, но на пластиковых крышках мы останавливаться не собирались.
1.3. Преобразователь Частоты (ПЧ)
Существует 3 способа выбрать ПЧ: выбрать общепромышленную модель, модель для конкретного применения или по характеристикам.
Для данного технологического процесса выбор модели для конкретного применения быстрый и удобный вариант, т.к электропривод достаточно нагружен и не возникает пиковых нагрузок. Как правило, номинальная мощность большинства преобразователей соответствует стандартной серии.
ПЧ подбирается такой же мощности, что и двигатель, или чуть большей.
Для данного проекта был выбран преобразователь SAJ 8000M-4TR75GH мощностью 0,75 кВт. Этот преобразователь обладает следующими преимуществами:
-
Бездатчиковое векторное управление.
-
Режим управления V/F.
-
Широкий диапазон выходных частот (до 600 Гц).
-
Защита от перегрева, недостаточного напряжения, перенапряжения и короткого замыкания.
-
Встроенный интерфейс RS-485 для связи с внешними устройствами.

Решение не лучшее, но это самый подходящий ПЧ, что был на кафедре :)
1.3. Выбор редуктора
Выбор редуктора производится исходя из условия, что рассчитанное передаточное число должно быть больше, либо равно каталожному значению, также учитываются условия работы механизма, номинальная мощность и скорость двигателя.
Передаточное число редуктора рассчитывается по номинальной скорости вращения выбранного двигателя и основной скорости движения исполнительного органа.
В качестве редуктора был выбран планетарный редуктор от аккумуляторной дрели, в связи с доступностью и дешевизной.
1.4 Выбор автоматического выключателя и сетевого контактора
Согласно документации выбранного ПЧ рекомендуется выбрать автомат номиналом 10 А.

Из доступного оборудования был выбран ABB BMS413C25.
1.5. Выбор преобразователя интерфейсов

В качестве совместимого устройства с протоколом Modbus был выбран преобразователь Espada UR485.
Конвертор компактный, дешевый и простой в использовании, легко позволяет подключить конвейер к компьютеру через USB-порт, что облегчает взаимодействие с ПО и обеспечивает передачу данных для контроля и управления конвейером.
1.6. Разработка принципиальной схемы
В соответствие с разработанной функциональной схемой и характеристиками выбранных элементов разработана схема электрическая принципиальная.

Одним из основных компонентов схемы является ПК (Персональный компьютер), к которому через USB-A интерфейс подключен преобразователь интерфейсов RS-485. Этот преобразователь состоит из двух микросхем: конвертера интерфейсов USB / UART CH340 и приемопередатчика RS-485 MAX485. Они выполняют функцию имитации COM-порта и преобразования сигнала USB в RS-485.
Соединение сети с модулем осуществляется через клеммную колодку с двумя дифференциальными сигналами, которые подключены к порту ПЧ с интерфейсом RS-485 для передачи управляющего сигнала.
К ПЧ подключена пятипроводная система питания с напряжением 380В. Запуск системы осуществляется с помощью релейно-контакторной системы управления, где автомат QF1 используется для включения. После включения автомата, при нажатии нормально разомкнутой кнопки SB1, напряжение подается на обмотку магнитного контактора KM, что приводит к замыканию двух контакторных групп KM1.1 и KM1.2. Этот процесс обеспечивает стабильное питание и запуск ПЧ.
Для безопасности и возможности отключения питания используется нормально замкнутая кнопка SB2. При нажатии на эту кнопку питание отключается, что позволяет контролировать и управлять работой системы.
Кроме того, к системе пуска подключены два релейных выхода ПЧ TA и TB. Эти выходы предназначены для аварийных ситуаций. Если возникают ошибки или авария, контакт KA KB размыкается, что приводит к прекращению подачи питания на обмотку контактора KM и, соответственно, отключению ПЧ, что является важным механизмом защиты.
Асинхронный электрический двигатель АИР56А2 У2 является частью системы и подключен напрямую к выводам ПЧ. Подключение осуществляется по схеме звезда, используя питающее напряжение 380В.
Для обеспечения безопасности и предотвращения электротравм корпус АД и ПЧ заземлены. Это создает защиту от случайного прикосновения к электрическим частям, а также надежность системы.
2. Программное обеспечение
2.1. Язык программирования
Для реализации бизнес-логики программного обеспечения был выбран язык Java. Не самый лучший выбор для данной задачи, но другого на момент разработки хорошо я не знал.
2.2. Протокол Modbus RTU
Для обмена данными между ПК и ПЧ используется протокол Modbus RTU. Он работает на физическом уровне последовательного интерфейса RS-485 и поддерживает такие функции, как чтение и запись регистров, управление дискретными входами и выходами.
Здесь главное разобраться со всеми низкоуровневыми процессами, чтобы правильно сформировать сообщения для управления ПЧ.
Для реализации протокола была использована библиотека com.fazecast.jSerialComm, которая значительно упрощает работу с последовательным портом. И как удачно, что я ее нашел.

Протокол основан на модели клиент-сервер и работает через последовательный интерфейс RS-485, позволяя подключать несколько устройств в одной сети. Его ключевые особенности включают: формат кадра с полями адреса устройства, функции, данных и контрольной суммы (CRC); наличие мастер-устройства (клиента), инициирующего обмен, и подчинённых устройств (серверов), отвечающих на запросы; уникальную адресацию для каждого устройства в сети.
2.3. Разработка логики
Для каждого ПЧ нужно формировать свой массив данных для управления. Всю информацию можно найти в документации к вашему устройству.
Приведу основные методы для управления и работы с ПЧ.
Метод writeBytes(FrequencyConverterCommand command, String byteData)
для записи данных на ПЧ:
public static void writeBytes(FrequencyConverterCommand command, String byteData)
{
SerialPort serialPort = getSerialPort();
String portCommand = getPortCommand(command, byteData);
byte[] sendBuf = CRC16Modbus.getSendBuffer(portCommand);
OutputStream outputStream = serialPort.getOutputStream();
try (outputStream)
{
outputStream.write(sendBuf);
outputStream.flush();
}
catch (IOException e)
{
System.err.println(
"[PORT]: Ошибка записи массива данных!" + e);
}
String bufHexStr = CRC16Modbus.getBufferHexString(sendBuf);
System.out.println("[PORT/WRITE]: Записан массив: " +
bufHexStr);
}
Метод readBytes()
для чтения массива данных, присылаемого от ПЧ:
public static byte[] readBytes() {
SerialPort serialPort = getSerialPort();
int read = 0;
byte[] readBuffer = new byte[8];
try (InputStream is =
serialPort.getInputStreamWithSuppressedTimeoutExceptions())
{
read = is.read(readBuffer);
} catch (IOException e) {
System.out.println(
"[PORT]: Ошибка чтения массива данных!" + e);
}
String bufferHexString =
CRC16Modbus.getBufferHexString(readBuffer);
System.out.println("[PORT/READ]: Прочитано " + read +
"байт.");
System.out.println("[PORT/READ]: Прочитан массив: " +
bufferHexString);
return readBuffer;
}
Для расчета CRC16 используется метод getSendBuffer()
для формирования полного массива с рассчитанной контрольной суммой:
public static byte[] getSendBuffer(String toSend)
{
byte[] bb = hexStringToBuf(toSend);
CRC16Modbus crc16 = new CRC16Modbus();
crc16.update(bb, bb.length - 2);
int ri = crc16.getValue();
bb[bb.length - 1] = (byte) (0xff & ri);
bb[bb.length - 2] = (byte) ((0xff00 & ri) >> 8);
return bb;
}
Для формирования массивов данных, принимаемых ПЧ написал enum
с готовыми командами:
public enum FrequencyConverterCommand
{
/**
* Запуск двигателя вперед.
* Адрес в сети - 01; Функция - 06; Адрес регистра - 10 00;
* Команда управления - 00 01
*/
RUN_FORWARD(NetworkAddress.ONE, CommandCode.WRITE, "1000",
"0001"),
RUN_REVERS(NetworkAddress.ONE, CommandCode.WRITE, "1000",
"0002"),
}
Важно отметить, что перед работой необходимо открыть порт. За это отвечает метод openPort()
класса PortHandler
, в котором описаны основные настройки протокола Modbus:
private void openPort()
{
SerialPort commPort = getSerialPort();
commPort.openPort();
if (commPort.isOpen())
{
commPort.setParity(SerialPort.EVEN_PARITY);
commPort.setNumStopBits(SerialPort.ONE_STOP_BIT);
commPort.setBaudRate(9600);
commPort.setNumDataBits(8);
System.out.println("[PORT]: Порт открыт.");
}
else
{
throw new SerialPortInvalidPortException(
"[PORT] Ошибка открытия порта! Порт не открыт!",
new Throwable().getCause());
}
}
2.3. Telegram-бот
Для минимального удаленного управления и мониторинга технологического процесса был разработан Telegram-бот. Он использует библиотеку org.telegram.telegrambots-spring-boot-starter и предоставляет следующие возможности:
-
Отправка текстовых сообщений с текущим состоянием системы.
-
Управление скоростью движения конвейера через команды.
-
Получение уведомлений об ошибках и аварийных ситуациях.
Telegram-бот также предоставляет удобное взаимодействие через инлайн-клавиатуру с несколькими предопределенными командами.

2.4. Desktop-приложение
Полноценное управление системой осуществляется через desktop-приложение, разработанное с использованием JavaFX. Приложение содержит три основных меню:
-
Меню управления: Настройка параметров работы конвейера.
-
Меню чтения статусов: Отображение текущего состояния системы.
-
Меню графиков: Визуализация данных о работе двигателя и других параметрах.

Заключение
Разработанная система может быть масштабирована для использования в более крупных промышленных установках. Также планируется внедрение web SCADA-системы для расширения возможностей удаленного управления через стандартные веб-браузеры. Это позволит создавать пользовательские интерфейсы и интегрировать систему с другими промышленными решениями.
Полный код на моем GitHub по ссылке -> тут.
Если интересна тема разработки, подписывайтесь на мой ТГ канал - Немыкин.Продакшн - Java/Kotlin developer
Если вас заинтересовала данная тема, добро пожаловать к обсуждению! Буду рад ответить на вопросы и узнать ваше мнение о проекте.
Автор: TrueRuslan