Управление VFD с помощью ModBus RTU через RS485 и Arduino

Я пытаюсь управлять частотно-регулируемым приводом Folinn (Руководство: Руководство) с Arduino Uno через модуль MAX485 =true">например, здесь.

  • Контакты для MAX485:
    • И > D8
    • DE & RE > D10
    • RO > D11

Настройки ЧРП:

  • F00.01 установлен на 2
  • F00.06 установлен на 9
  • F13.00 установлено на 1
  • F13.01 установлено значение 5
  • F13.02 установлено на 3

На данном этапе я пытаюсь написать очень простой код, чтобы включить VFD:

/*

   ModBus RTU control VFD

   Address               : 01H  (is the address of the VFD)
   Function              : 06H  (write function code)
   Starting data address : 20H
                         : 00H  (2000H  is the address of control command)
   Data(2Byte)           : 00H
                         : 01H  (0001H is forward command)
   CRC CHK Low           : 43H
   CRC CHK High          : CAH

*/

#include <SoftwareSerial.h>

#define SSerialRX        11  //Последовательный приемный контакт
#define SSerialTX        8  // вывод последовательной передачи
#define SSerialTxControl 10   //Управление направлением RS485
#define RS485Transmit    HIGH
#define RS485Receive     LOW
#define Pin13LED         13


// Из ручного vfd команда Forward = 01H 06H 2000H 0001H 43CAH

byte request1[] = {0x01, 0x06, 0x20, 0x00, 0x00, 0x01, 0x43, 0xCA}; 

SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // прием, передача
byte byteSend;

void setup()
{
  // Запускаем встроенный последовательный порт, возможно, к Serial Monitor
  Serial.begin(9600);
  Serial.println("SerialRemote");  // Можно игнорировать


  pinMode(Pin13LED, OUTPUT);
  pinMode(SSerialTxControl, OUTPUT);

  // digitalWrite(SSerialTxControl, RS485Receive); // Инициализируем приемопередатчик

  RS485Serial.begin(9600);

}
void loop()
{
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.write(request1, sizeof(request1));

}

Когда MAX485 подключен к правильным портам (S+ и S-) на VFD, эта текущая настройка не получает ответа. Может ли кто-нибудь определить, где я ошибаюсь? Я взял значения CRC CHK Low & Высокий из другого примера, проблема в этом?

Я также пытался установить для F00.01 параметр «3», не указанный в списке, который, как я видел, появлялся в других обсуждениях, но это не имело значения. Мы будем очень признательны за любые советы, дайте мне знать, если я могу предоставить дополнительную информацию.

(Я выбрал этот метод на основе этого примера

, 👍0


1 ответ


1

Пользователь на другом сайте (https://forum.arduino.cc/index.php?topic=663365.0) Условия запуска по умолчанию на VFD могут быть установлены по-другому или аппаратно.

Убедитесь, что VFD прослушивает ModBus Comms. ОК.

Проверьте, что VFD готов к запуску. Жесткая аварийная остановка или «активные» входы. F00.22 Проверка источника привязки F00.05 Проверка установки мин. Гц F01.01 Проверка установки мин. Гц

Дайте приводу MIN Hz Таким образом, когда полученный сигнал RUN имеет скорость по умолчанию для перехода к goto.

Выполняете ли вы полную перезагрузку UNO каждый раз, когда хотите отправить строку Modbus? Код запускается один раз, без активной передачи.

,

Привет, Спаннерз, спасибо за предложение Я установил: - F00.01 Выбор источника команды - 2: Управление связью RS 485 - F00.06 Выбор команды частоты А - 9: Связь RS 485 Есть ли еще одна настройка, на которую мне нужно обратить внимание, чтобы убедиться, что она прослушивает ModBus?, @Jacob Rodda

ХОРОШО. F00.06 — уставка частоты. Конечно, вы можете отправить ему число скорости, на которой вы хотите работать, но вы? Практически рекомендуется установить значение 1:Клавиатура, сохраняющееся при сбое питания. Сигнал RUN отличается от уставки SPEED., @Spannerz

Я вернусь завтра. Ваше здоровье., @Spannerz

Это имеет большой смысл. Попробую установить частоту с помощью клавиатуры и просто отправить команду запуска. Утром попробуем и сообщим, как дела., @Jacob Rodda

Привет, Спаннерз, спасибо за дополнительную информацию. Я жестко сбрасывал UNO, поэтому я думаю, что проблема заключается в одной из настроек, которые вы упомянули. Утром все готово, но сегодня постараюсь изменить эти настройки и отчитаюсь., @Jacob Rodda

Привет, Spannerz, до сих пор не удалось заставить VFD работать через Arduino, даже если F00.06 установлен на клавиатуру. Какие настройки следует вводить для F00.22? Я думаю, что это может быть проблемой., @Jacob Rodda

Я бы попробовал = 1. Убедитесь, что значение клавиатуры соответствует рабочей частоте, на которую ссылается привод., @Spannerz

К сожалению, через Modbus не получилось. Но удалось получить управление пуском / остановкой и частотой с помощью цифровых входов с управляющими реле Arduino. Немного более неуклюжий обходной путь, но будет работать для нужд этого проекта. Большое спасибо за ваш совет., @Jacob Rodda