Глава 8 Протокол связи ModBus

Инвертор обеспечивает интерфейс связи RS485 и поддерживает протокол связи Modbus-RTU. Пользователи могут осуществлять централизованное управление через компьютер или ПЛК с использованием этого протокола связи. Они могут устанавливать операционные команды инвертора, изменять или читать параметры функционального кода и получать информацию об операционном состоянии и неисправностях инвертора, среди прочих функций.

Этот протокол последовательной связи определяет содержание и формат использования информации, передаваемой в последовательной связи. Он включает формат обращения к мастеру (или широковещательный формат), метод кодирования мастера, включающий функциональный код запроса действия, передачу данных и проверку ошибок. Ответ от ведомого также следует той же структуре, включая подтверждение действия, возвращаемые данные и проверку ошибок. Если ведомый обнаруживает ошибку при приеме информации или не может выполнить запрошенное мастером действие, он организует сообщение о неисправности в качестве ответа мастеру.

8.1.1 Режимы применения

Инвертор подключается к “одному главному, нескольким ведомым” сети управления ПК/ПЛК с шиной RS485 в качестве ведомого устройства связи.

8.1.2 Структура шины

  1. Аппаратный интерфейс: предоставляет соединительные разъемы A+ и B- для связи.
  2. Топология:
    • Система одного главного и нескольких ведомых. Каждому коммуникационному устройству в сети присваивается уникальный адрес ведомого, при этом одно устройство выполняет функции главного коммуникатора (хост ПК, ПЛК, HMI и т. д.). Главный инициирует связь и выполняет операции чтения или записи параметров на ведомых, в то время как остальные устройства действуют в качестве ведомых, отвечая на запросы или коммуникационные операции главного относительно самих себя. Одновременно может отправляться только одно устройство данных, остальные находятся в режиме приема. Адрес ведомого устанавливается в пределах от 1 до 247, при этом 0 зарезервирован для широковещательной связи. Каждый адрес ведомого в сети должен быть уникальным.
  3. Режим передачи данных:
    • Асинхронная последовательная, полудуплексная передача. Данные в асинхронной последовательной связи передаются в форме кадров, причем один кадр передается за один раз. В соответствии с протоколом MODBUS-RTU, если на линии связи передача данных отсутствует в течение времени, превышающего 3,5 времени передачи одного символа, это указывает на начало нового кадра связи.
      The Modbus communication transmission method
      The Modbus communication transmission method
      Встроенный коммуникационный протокол инвертора - это протокол ведомого устройства Modbus-RTU, который может отвечать на “запросы/команды” хоста или выполнять соответствующие действия на основе “запросов/команд” хоста и обмениваться данными.

Хостом может быть персональный компьютер (ПК), промышленное управляющее оборудование или программируемый логический контроллер (ПЛК) и т. д. Хост может общаться индивидуально с конкретным ведомым или передавать широковещательные сообщения всем подчиненным ведомым. Для индивидуального доступа хоста через “запросы/команды” ведомый, доступный ведомый должен вернуть ответный кадр. В случае широковещательных сообщений, отправленных хостом, ведомые не должны предоставлять ответов.

8.1.3 Структура данных общения

Протокол Modbus определяет формат данных общения, как показано ниже. Инвертор поддерживает только чтение или запись параметров типа Word. Соответствующая команда чтения составляет 0x03, а команда записи - 0x06. Операции чтения/записи байтов или битов не поддерживаются:

Modbus Communication Data Format
Modbus Communication Data Format

Теоретически, хост-компьютер может считывать несколько последовательных функциональных кодов одновременно (до максимум 12), но следует отметить, что он не может пропустить последний функциональный код в этой группе. В противном случае будет получен ответ об ошибке.

Modbus Communication Data Format
Modbus Communication Data Format

Если ведомый обнаруживает ошибку кадра связи или другие причины, приводящие к неудачным операциям чтения/записи, он ответит ошибочным кадром.

Modbus Communication Data Format
Modbus Communication Data Format

8.1.4 Описание полей кадра

Поле Описание
START (Заголовок кадра) Более 3,5 символьных времени передачи простоя
ADR (Адрес ведомого) Диапазон адресов взаимодействия: 1~247; 0 - широковещательный адрес
CMD (Код команды) 03: Чтение параметров ведомого; 06: Запись параметров ведомого
Адрес функционального кода (старший) Внутренний адрес параметра инвертора, представленный в шестнадцатеричной системе; разделен на функциональные и нефункциональные параметры (например, параметры состояния работы, команды работы и т. д.). Подробнее см. в определении адреса. Во время передачи сначала передается старший байт, затем младший байт
Адрес функционального кода (младший) См. выше
Количество функциональных кодов (старший) Количество функциональных кодов, считываемых в этом фрейме. Если 1, это означает чтение 1 функционального кода. Во время передачи сначала передается старший байт, затем младший байт. В этом протоколе можно перезаписывать только один функциональный код за один раз, и такого поля не существует.
Количество функциональных кодов (младший) См. выше
Данные (старший) Возвращаемые данные или специально записанные данные. Во время передачи сначала передается старший байт, затем младший байт
Данные (младший) См. выше
CRCCHK (старший) Контрольное значение: контрольная сумма CRC16. Во время передачи сначала передается старший байт, затем младший байт. См. раздел CRC-проверка для расчета метода.
CRCCHK (младший) См. выше
END 3,5 символьного времени

8.1.5 Метод проверки CMD

Метод проверки - это метод циклической избыточности CRC (Cyclical Redundancy Check), использующий формат кадра RTU. Сообщение включает поле обнаружения ошибок на основе метода CRC. Поле CRC проверяет содержимое всего сообщения. Поле CRC состоит из двух байтов, содержащих 16-битное двоичное значение. Оно вычисляется передающим устройством и добавляется к сообщению. Принимающее устройство повторно вычисляет CRC полученного сообщения и сравнивает его с значением в поле CRC полученного сообщения. Если два значения CRC не равны, это указывает на ошибку передачи.

В процессе вычисления CRC начальное значение устанавливается равным 0xFFFF, а затем каждый последующий 8-битный байт в сообщении обрабатывается с использованием текущего значения в регистре. Только 8-битные данные в каждом символе являются действительными для CRC, в то время как стартовый бит, стоповый бит и бит четности являются недействительными.

В процессе формирования CRC каждый 8-битный символ индивидуально побитово складывается по модулю 2 с содержимым регистра, и результат сдвигается в направлении младшего значащего бита (LSB), при этом старший значащий бит (MSB) заполняется нулем. Извлекается LSB для проверки. Если LSB равен 1, регистр складывается с предварительным значением, и если LSB равен 0, операция не выполняется. Этот процесс повторяется 8 раз. После завершения последнего бита (8-го бита) следующий 8-битный байт побитово складывается с текущим значением в регистре. Конечное значение в регистре является значением CRC после обработки всех байтов в сообщении. При добавлении CRC к сообщению сначала добавляется младший байт, затем старший байт. Функция CRC выглядит следующим образом:

unsigned int CRC16_CHK(unsigned char *data, unsigned char length)
{
  int j = 0;
  unsigned int crc Oxffff reg:
    while(length--)
    {
       crc reg *data++:
       for(j=0:j<8:j++)
          {
           if(reg crc 0x01)
             {
            reg_crc (reg_crc > 1) 0xa001:
             }
       else
             {
             reg_crc = reg_crc >> 1;
             }
          }
    }
    return reg_crc;
}

8.1.6 Правила адресации параметров функционального кода:

Для чтения и записи параметров функционального кода (некоторые функциональные коды не могут быть изменены и используются только производителем или для мониторинга):

Адрес параметра представлен номером группы функционального кода и меткой:

Старший байт: PO~PF (группа P) AO-AF (группа A) 70~7F (группа U) Младший байт: 00~FF

Например, если вы хотите получить доступ к диапазону функционального кода P3-12, адрес доступного функционального кода представлен как F30CH.

Примечание:

  • Группа PF: параметры не могут быть прочитаны или изменены.
  • Группа U: параметры могут только читаться и не могут быть изменены.
  • Некоторые параметры не могут быть изменены при работе инвертора; некоторые параметры не могут быть изменены независимо от состояния инвертора; при изменении параметров функционального кода обратите внимание на диапазон, единицы измерения и связанные инструкции параметров.
Номер группы функционального кода Адрес доступного общения Адрес фрагмента функционального кода для изменения функционального кода в RAM
Группа P0~PE 0xF000~0xFEFF 0x0000~0x0EFF
Группа A0~AC 0xA000~0xACFF 0x4000~0x4CFF
Группа U0 0x7000~0x70FF Можно только читать, запись невозможна

Примечание:

  1. Поскольку частое сохранение в EEPROM сокращает срок службы EEPROM. Поэтому для некоторых функциональных кодов в режиме общения не требуется сохранение, а достаточно просто изменить значение в RAM.
  2. Если это параметр группы P, для реализации этой функции достаточно изменить старший байт F адреса функционального кода на 0. Если это параметр группы A, для реализации этой функции достаточно изменить старший байт A адреса функционального кода на 4.

Запись в адреса функционального кода в RAM:

Старший байт: 00~0F (группа P) 40~4F (группа A) Младший байт: 00~FF

Например, функциональный код P3-12 не сохраняется в EEPROM, адрес представлен как 030CH; Функциональный код A0-05 не сохраняется в EEPROM, адрес представлен как 4005H.

Примечание: Это представление адреса можно использовать только для записи в RAM, но не для чтения действий. При чтении это недопустимый адрес. Для всех параметров также можно использовать командный код 07H для реализации этой функции.

8.1.7 Раздел параметров выключения/работы:

Адрес параметра Описание параметра Адрес параметра Описание параметра
1000H Значение настройки связи (десятичное)
-10000-10000
1010H ПИД-настройка
1001H Рабочая частота 1011H Обратная связь ПИД
1002H Напряжение шины 1012H Шаг ПЛК
1003H Частота импульсов ввода, единица 0,01 кГц 1013H Обратная связь скорости, единица 0,1 Гц
1004H Выходное напряжение 1014H Оставшееся время работы
1005H Выходной ток 1015H Все калибровочные напряжения
1006H Выходной крутящий момент 1016H Калибровочное напряжение AI2
1007H Рабочая скорость 1017H Калибровочное напряжение AI3
1008H Флаг входа DI 1018H Скорость линии
1009H Флаг выхода DO 1019H Текущее время работы
100AH Вся напряжение 101AH Текущее время работы
100BH Напряжение AI2 101BH Частота импульсов ввода, единица 1 Гц
100CH Напряжение AI3 101CH Значение настройки связи
100DH Входное значение счетчика 101DH Обратная связь фактической скорости
100EH Значение длины 101EH Главная частота X
100FH Скорость нагрузки 101FH Побочная частота Y

Примечание:

  1. Значение настройки связи является процентом относительного значения, где 10000 соответствует 100,00%, а -10000 соответствует -100,00%.
  2. Для размерных данных частоты это значение относительно максимальной частоты (P0-10); для размерных данных крутящего момента это значение P2-10, A2-48, A3-48, A4-48 (цифровая установка ограничения крутящего момента, соответствующая первому, второму, третьему и четвертому двигателям соответственно).

Команды управления, вводимые в инвертор: (только запись)

Адрес команды Функция команды
2000H 0001: Пуск вперед
0002: Пуск назад
0003: Пуск постоянного движения вперед
0004: Пуск постоянного движения назад
0005: Останов свободного хода
0006: Остановка торможением
0007: Сброс ошибки

Чтение состояния инвертора: (только чтение)

Адрес статуса Функция статуса
3000H 0001: Пуск вперед
0002: Пуск назад
0003: Останов

Проверка пароля блокировки параметра: (Возвращает 888H, если проверка пароля пройдена)

Адрес пароля Ввод пароля
1F00H *****

8.1.8 Команды управления выходами

Адрес команды Содержимое команды Описание команды управления выходом
2001H Бит0: Контроль выхода DO1
Бит1: Контроль выхода DO2
Бит2: Контроль выхода RELAY1
Бит3: Контроль выхода RELAY2
Бит4: Контроль выхода FMR
Бит5: VDO1
Бит6: VDO2
Управление цифровыми выходными терминалами: (только запись)
2002H 0~7FFF соответствует 0%~100% Управление аналоговым выходом AO1: (только запись)
2003H 0~7FFF соответствует 0%~100% Управление аналоговым выходом AO2: (только запись)
2004H 0~7FFF соответствует 0%~100% Управление импульсным выходом PULSE: (только запись)

8.1.9 Описания неисправностей инвертора

Адрес неисправности Информация о неисправности
8000H 0000: Нет неисправностей
0001: Зарезервировано
0002: Чрезмерный ток во время разгона
0003: Чрезмерный ток при торможении
0004: Чрезмерный ток при постоянной скорости
0005: Чрезмерное напряжение при разгоне
0006: Чрезмерное напряжение при торможении
0007: Чрезмерное напряжение при постоянной скорости
0008: Перегрузка буфера резистора
0009: Недостаточное напряжение
000A: Перегрузка инвертора
000B: Перегрузка двигателя
000C: Потеря фазы входа
000D: Потеря фазы выхода
000E: Перегрев модуля
000F: Внешняя неисправность
0010: Нарушение связи
0011: Нарушение контактора
0012: Неисправность датчика тока
0013: Неисправность настройки двигателя
0014: Ошибка счетчика/карты PG
0015: Нарушение чтения/записи параметров
0016: Аппаратная неисправность инвертора
0017: Короткое замыкание двигателя на землю
0018: Зарезервировано
0019: Зарезервировано
001A: Достигнуто время работы
001B: Неисправность пользовательской определенной 1
001C: Неисправность пользовательской определенной 2
001D: Достигнуто время включения
001E: Разряд
001F: Потеря обратной связи ПИД во время работы
0028: Тайм-аут быстрой ограниченной тока
0029: Неисправность переключателя двигателя во время работы
002A: Превышение отклонения скорости
002B: Перегрузка двигателя
002D: Перегрев двигателя
005A: Ошибка установки количества линий энкодера
005B: Энкодер не подключен
005C: Ошибка исходной позиции
005E: Скорость

8.1.10 Описание параметров коммуникации группы PD

Код параметра Название Диапазон Значение по умолчанию
Pd-00 Скорость передачи Единица: скорость передачи MODBUS
0: 300 бит/с
1: 600 бит/с
2: 1200 бит/с
3: 2400 бит/с
4: 4800 бит/с
5: 9600 бит/с
6: 19200 бит/с
7: 38400 бит/с
8: 57600 бит/с
9: 115200 бит/с
600
Pd-01 Формат данных 0: Без паритета, формат данных <8,N,2>
1: Четный паритет, формат данных <8,E,1>
2: Нечетный паритет, формат данных <8,0,1>
0
Pd-02 Адрес устройства 1~247, 0 для широковещательного адреса 1
Pd-03 Задержка ответа 0~20 мс 2 мс
ℹ️
Задержка ответа: временной интервал от окончания приема данных инвертором до отправки данных хосту. Если задержка ответа меньше времени обработки системы, она основана на времени обработки системы. Если задержка ответа больше времени обработки системы, система должна ждать, пока не пройдет время задержки ответа, прежде чем отправить данные хосту.
Код параметра Название Диапазон Значение по умолчанию
Pd-04 Тайм-аут обмена 0,0 с (недействительно) до 60,0 с 2 мс
ℹ️

Примечание:

  • Когда код параметра установлен в 0,0 с, параметр времени ожидания обмена недействителен.
  • Когда код параметра установлен в допустимое значение, если интервал между последовательными обменами превышает время ожидания обмена, система выдаст ошибку неисправности обмена (Err16). Обычно этот параметр устанавливается в недопустимое значение. Установка этого параметра в непрерывных системах связи позволяет контролировать состояние связи.
Код параметра Название Диапазон Значение по умолчанию
Pd-05 Протокол Modbus 0: Нестандартный протокол Modbus
1: Стандартный протокол Modbus
0
ℹ️

Примечание:

  • Pd-05=1: Выбор стандартного протокола Modbus.
  • Pd-05=0: При чтении команд количество байтов, возвращаемых ведомым, на одно больше, чем в стандартном протоколе Modbus. Подробности см. в разделе Структура данных общения этого протокола.
Код параметра Название Диапазон Значение по умолчанию
Pd-06 Разрешение текущего значения коммуникации 0: 0,01 А
1: 0,1 А
0
ℹ️
Примечание: Определяет единицу вывода значения тока при коммуникации для чтения выходного тока.

ДАЛЕЕ

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