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

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
Если вас заинтересовала данная тема, добро пожаловать к обсуждению! Буду рад ответить на вопросы и узнать ваше мнение о проекте.
