Глава 8 Протокол связи ModBus
Инвертор обеспечивает интерфейс связи RS485 и поддерживает протокол связи Modbus-RTU. Пользователи могут осуществлять централизованное управление через компьютер или ПЛК с использованием этого протокола связи. Они могут устанавливать операционные команды инвертора, изменять или читать параметры функционального кода и получать информацию об операционном состоянии и неисправностях инвертора, среди прочих функций.
Этот протокол последовательной связи определяет содержание и формат использования информации, передаваемой в последовательной связи. Он включает формат обращения к мастеру (или широковещательный формат), метод кодирования мастера, включающий функциональный код запроса действия, передачу данных и проверку ошибок. Ответ от ведомого также следует той же структуре, включая подтверждение действия, возвращаемые данные и проверку ошибок. Если ведомый обнаруживает ошибку при приеме информации или не может выполнить запрошенное мастером действие, он организует сообщение о неисправности в качестве ответа мастеру.
8.1.1 Режимы применения
Инвертор подключается к “одному главному, нескольким ведомым” сети управления ПК/ПЛК с шиной RS485 в качестве ведомого устройства связи.
8.1.2 Структура шины
- Аппаратный интерфейс: предоставляет соединительные разъемы A+ и B- для связи.
- Топология:
- Система одного главного и нескольких ведомых. Каждому коммуникационному устройству в сети присваивается уникальный адрес ведомого, при этом одно устройство выполняет функции главного коммуникатора (хост ПК, ПЛК, HMI и т. д.). Главный инициирует связь и выполняет операции чтения или записи параметров на ведомых, в то время как остальные устройства действуют в качестве ведомых, отвечая на запросы или коммуникационные операции главного относительно самих себя. Одновременно может отправляться только одно устройство данных, остальные находятся в режиме приема. Адрес ведомого устанавливается в пределах от 1 до 247, при этом 0 зарезервирован для широковещательной связи. Каждый адрес ведомого в сети должен быть уникальным.
- Режим передачи данных:
- Асинхронная последовательная, полудуплексная передача. Данные в асинхронной последовательной связи передаются в форме кадров, причем один кадр передается за один раз. В соответствии с протоколом MODBUS-RTU, если на линии связи передача данных отсутствует в течение времени, превышающего 3,5 времени передачи одного символа, это указывает на начало нового кадра связи. Встроенный коммуникационный протокол инвертора - это протокол ведомого устройства Modbus-RTU, который может отвечать на “запросы/команды” хоста или выполнять соответствующие действия на основе “запросов/команд” хоста и обмениваться данными.
Хостом может быть персональный компьютер (ПК), промышленное управляющее оборудование или программируемый логический контроллер (ПЛК) и т. д. Хост может общаться индивидуально с конкретным ведомым или передавать широковещательные сообщения всем подчиненным ведомым. Для индивидуального доступа хоста через “запросы/команды” ведомый, доступный ведомый должен вернуть ответный кадр. В случае широковещательных сообщений, отправленных хостом, ведомые не должны предоставлять ответов.
8.1.3 Структура данных общения
Протокол Modbus определяет формат данных общения, как показано ниже. Инвертор поддерживает только чтение или запись параметров типа Word. Соответствующая команда чтения составляет 0x03, а команда записи - 0x06. Операции чтения/записи байтов или битов не поддерживаются:
Теоретически, хост-компьютер может считывать несколько последовательных функциональных кодов одновременно (до максимум 12), но следует отметить, что он не может пропустить последний функциональный код в этой группе. В противном случае будет получен ответ об ошибке.
Если ведомый обнаруживает ошибку кадра связи или другие причины, приводящие к неудачным операциям чтения/записи, он ответит ошибочным кадром.
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 | Можно только читать, запись невозможна |
Примечание:
- Поскольку частое сохранение в EEPROM сокращает срок службы EEPROM. Поэтому для некоторых функциональных кодов в режиме общения не требуется сохранение, а достаточно просто изменить значение в RAM.
- Если это параметр группы 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 |
Примечание:
- Значение настройки связи является процентом относительного значения, где 10000 соответствует 100,00%, а -10000 соответствует -100,00%.
- Для размерных данных частоты это значение относительно максимальной частоты (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 |
ДАЛЕЕ
Перейдите непосредственно к следующему разделу, чтобы начать: