Проект автоматизированного электропривода экспериментального ленточного конвейера, разработанный на кафедре электроэнергетики и автоматики Белгородского государственного технологического университета имени В.Г. Шухова.

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

Управление конвейером осуществляется через электропривод, подключенный к преобразователю частоты. В статье подробно описывается принцип работы данной связки.

Фото лабораторного стенда

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

Функциональная схема ленточного конвейера

Функциональная схема автоматизированного электропривода состоит из нескольких блоков:

  1. Схема Пуска (СП): Осуществляет подключение ПЧ к сети.

  2. Блок Управления (Персональный Компьютер): Выполняет общее управление системой, принимая сигналы от оператора или других устройств и передавая их на остальные блоки.

  3. Преобразователь Интерфейсов USB/RS-485 (ПИ): Преобразует сигнал с USB-порта ПК в сигнал RS-485 для работы с ПЧ.

  4. Преобразователь Частоты (ПЧ): Обеспечивает регулировку скорости вращения асинхронного двигателя.

  5. Асинхронный Двигатель (АД) и Редуктор (РД): Обеспечивают движение конвейера.

  6. Микроконтроллер (МК): Обрабатывает сигналы от датчиков и передает команды на реле времени.

  7. Реле Времени (РВ): Управляет временем работы дополнительных устройств, таких как электротолкатели.

  8. Электротолкатель (ЭТ) и Пневмотолкатель (ПТ): Используются для сортировки материалов с конвейерной ленты.

  9. Конвейер (КВ): Перемещает грузы.

  10. Датчик Цвета (ДЦ): Отслеживает цвет материала и отправляет сигнал микроконтроллеру.

  11. Компрессор (КР): Предоставляет сжатый воздух для пневматических устройств.

  12. Пневмореле (ПР): Управляет клапанами для подачи сжатого воздуха.

1.1. Ленточный конвейер

Кинематическая схема ленточного конвейера: 1-двигатель; 2, 4 - муфты; 3 - редуктор; 5 - конвейер

Экспериментальный ленточный конвейер представляет собой устройство, состоящее из следующих основных компонентов:

  • Приводной ролик: перемещает ленту конвейера.

  • Лента: непосредственно транспортирует грузы.

  • Опорные ролики: поддерживают ленту и обеспечивают ее правильное направление движения.

  • Каркас: физическая конструкция напечатана на 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 для связи с внешними устройствами.

ПЧ SAJ 8000M-4TR75GH

Решение не лучшее, но это самый подходящий ПЧ, что был на кафедре :)

1.3. Выбор редуктора

Выбор редуктора производится исходя из условия, что рассчитанное передаточное число должно быть больше, либо равно каталожному значению, также учитываются условия работы механизма, номинальная мощность и скорость двигателя.

Передаточное число редуктора рассчитывается по номинальной скорости вращения выбранного двигателя и основной скорости движения исполнительного органа.

В качестве редуктора был выбран планетарный редуктор от аккумуляторной дрели, в связи с доступностью и дешевизной.

1.4 Выбор автоматического выключателя и сетевого контактора

Согласно документации выбранного ПЧ рекомендуется выбрать автомат номиналом 10 А.

Автоматический выключатель ABB BMS413C25

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

1.5. Выбор преобразователя интерфейсов

Преобразователь Espada UR485

В качестве совместимого устройства с протоколом 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, которая значительно упрощает работу с последовательным портом. И как удачно, что я ее нашел.

Структура данных передаваемого сообщения в сети Modbus RTU

Протокол основан на модели клиент-сервер и работает через последовательный интерфейс 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-бот также предоставляет удобное взаимодействие через инлайн-клавиатуру с несколькими предопределенными командами.

Интерфейс Telegram бота

2.4. Desktop-приложение

Полноценное управление системой осуществляется через desktop-приложение, разработанное с использованием JavaFX. Приложение содержит три основных меню:

  • Меню управления: Настройка параметров работы конвейера.

  • Меню чтения статусов: Отображение текущего состояния системы.

  • Меню графиков: Визуализация данных о работе двигателя и других параметрах.

Интерфейс приложения для рабочего стола

Заключение

Разработанная система может быть масштабирована для использования в более крупных промышленных установках. Также планируется внедрение web SCADA-системы для расширения возможностей удаленного управления через стандартные веб-браузеры. Это позволит создавать пользовательские интерфейсы и интегрировать систему с другими промышленными решениями.

Полный код на моем GitHub по ссылке -> тут.
Если интересна тема разработки, подписывайтесь на мой ТГ канал - Немыкин.Продакшн - Java/Kotlin developer

Если вас заинтересовала данная тема, добро пожаловать к обсуждению! Буду рад ответить на вопросы и узнать ваше мнение о проекте.