Что нужно знать пользователю
MODBUS RTU (Remote Terminal Unit = удаленный терминал) используется для связи с любым контроллером, который поддерживает указанные в этом документе интерфейсы. Предполагается, что пользователь имеет достаточное понимание возможностей и ограничений контроллера.
Приводы частоты "Данфосс" с Modbus RTU
Во всех приводах частоты Данфосс по умолчанию встроенный RS 485 интерфейс для протокола Modbus. Максимальная скорость передачи данных может варьироваться в зависимости от модели и версии программного обеспечения. Для обеспечения надежного соединения скорость не должна превышать 38400 бод, тогда как скорость по умолчанию установлена на 9600 бод. Чтобы еще больше настроить связь по протоколу Modbus RTU на приводе частоты VLT, необходимо настроить следующие параметры:
Код параметра | Название параметра | Значение параметра |
8-30 | Протокол | Modbus RTU |
8-31 | Адреса | 1 – 247 |
8-32 | Скорость передачи данных | Передача 2400 - 115200 |
8-33 | Биты контроля четности / стоповые биты | Контроль по нечетности, 1 стоповый бит (по умолчанию) |
Настройка частотных преобразователей VLT, которые не имеют порта USB, для связи по Modbus должна выполняться с панели оператора, так как порт RS 485 будет занят под ModBus и преобразователь будет недоступен для связи с ПК по протоколу FC (параметр 8-30).
Контроллеры настраиваются на связь по сети Modbus в режиме RTU (удаленного терминала). Каждый 8-битный байт содержит два 4-битных шестнадцатеричных символа. Ниже приведен формат каждого байта:
Биты в байте | 1 стартовый бит, 8 бит данных (младший значимый бит передается первым), 1 бит для контроля четности/нечетности, 1 стоповый бит (при использовании контроля четности), 2 стоповых бита (если контроль четности не используется) |
Поле обнаружения ошибок | Циклический контроль избыточности (CRC) |
Коды функций, поддерживаемые Modbus RTU
Протокол Modbus RTU поддерживает использование следующих кодов функций в поле функции сообщения:
Функция | Код функции |
Читать из катушки | 1 hex |
Читать из регистров временного хранения | 3 hex |
Записать в одну катушку | 5 hex |
Записать в один регистр | 6 hex |
Записать в несколько катушек | 15 hex |
Записать в несколько регистров | 16 hex |
Вызвать счетчик событий связи | 14 hex |
Сообщения об ошибках
Полное описание структуры исключительного ответа приведено в разделе "Структура кадра сообщения Modbus RTU".
Исключительный код | Описание исключительного кода |
00 | Использование номера параметра не существует |
01 | Отсутствует доступ к параметру для записи |
02 | Значение данных превышает пределы параметра |
03 | Нижний индекс, который используется, не существует |
04 | Тип параметра не является массивом |
05 | Тип данных не соответствует вызову |
06 | Только сброс |
07 | Изменение не допускается |
11 | Нет доступа к записи |
17 | В текущем режиме изменение данных в вызываемом параметре невозможно |
18 | Другая ошибка |
64 | Неправильный адрес данных |
65 | Неправильная длина сообщения |
66 | Неправильная длина данных или их значение |
67 | Неправильный код функции |
130 | Отсутствует доступ к шине к вызываемому параметру |
131 | Изменение данных невозможно, так как выбрано заводское настройки |
Операции с параметрами
Номер параметра (PNU) переносится с адреса регистра, который содержится в сообщении Modbus, что считывается или записывается. Номер параметра передается в сообщение Modbus как десятичное число, которое равно 10, умноженному на номер параметра.
Нумерация регистров начинается с 0, тогда как параметры с 1. В большинстве контроллеров не предусмотрено автоматическое вычитание 1, поэтому необходимо вычесть его из адреса при его расчете. Например, параметр 3-100 будет иметь адрес в ModBus 3100*10-1 = 3099 = C1B hex. Поскольку значение параметра можно передавать только как целое число, для передачи дробной части после десятичной запятой следует использовать коэффициент преобразования. Смотрите руководство по программированию соответствующего преобразователя.
Значения параметров
Стандартные типы данных
Стандартными типами данных являются int16, int32, uint8, uint16 и uint32.
Запись параметров осуществляется с помощью функции 6HEX "Установить значение одного регистра" для одного регистра (16 бит) и функции 10HEX "Установить значение нескольких регистров" для двух регистров (32 бита) Диапазон размеров, которые можно считать: от 1 регистра (16 бит) до 10 регистров (20 символов).
Нестандартные типы данных
Нестандартные типы данных – текстовые строки; они хранятся как регистры 4x (40001 – 4FFFF). Параметры считываются с помощью функции 03HEX "Считать регистры временного хранения" и записываются с помощью функции 10HEX "Установить значение нескольких регистров". Диапазон размеров, которые можно считать: от 1 регистра (2 символа) до 10 регистров (20 символов).
Пример установки одного регистра (06HEX)
Эта функция позволяет установить значение в одном регистре временного хранения.
Запросное сообщение определяет задачу регистра, который устанавливается. Адреса регистров начинаются с нуля, поэтому адрес регистра 1 будет 0. Номера параметров нужно умножать на 10. Те параметры 1-24 будут иметь адрес 1-24*10-1 = 1239 = 4DC HEX.
Название поля | Пример (HEX) |
Адрес подчиненного устройства | 01 |
Функция | 06 |
Адрес регистра HI | 04 |
Адрес регистра LO | DC |
Устанавливаемые данные HI | 00 |
Устанавливаемые данные LO | 64 |
Контроль ошибок (CRC) | – |
Установленные значения переводим в шестнадцатеричную систему с учетом переводного коэффициента (указано в руководствах по программированию). Таким образом, ток в 1А = 1,00*100= 64 HEX.