Для протокола Modbus реализовано выполнение следующих функций:
03, 04 (read registers) – чтение одного или нескольких регистров;
06 (preset single register) – запись одного регистра;
16 (preset multiple registers) – запись нескольких регистров;
17 (report slave ID) – чтение имени прибора и версии программы.
Если адрес прибора равен нулю, для протокола Modbus это широковещательный адрес, прибор будет выполнять команды записи (6, 16), но не будет отправлять квитанции на принятые команды. На адреса более 247 прибор реагировать не будет.
Для функций 06 и 16 в случае попытки записать регистры, предназначенные только для чтения, или в случае попытки обращения к несуществующим регистрам возвращается ошибка 1 (Illegal function).
Структура запроса и ответа для функции 17
Функция позволяет получить имя прибора и версию программного обеспечения.
В таблице ниже представлен запрос на чтение имени и версии программного обеспечения прибора с адресом 12.
Адрес | Функция | Контрольная сумма |
12 | 17 | ZZ |
Ответ на функцию 17 представлен в таблице ниже.
Адрес | Функция | Количество байт данных | Данные 14 байт | Контрольная сумма |
12 | 17 | 14 | MЭ110-1Т VX.YY | ZZ |

Параметры протокола Modbus представлены в таблице.
Команды протокола Modbus
Команда | Номера регистров | Данные записи/чтения | Тип данных | Примечание |
Имя прибора | 0–3 | MЭ110-1Т | Char | Только чтение |
Версия прошивки | 4–5 | Х – номер версии; YY– номер подверсии | Char | Только чтение. Устанавливается предприятием-изготовителем |
Скорость обмена | 6 | Byte: 0 – 2,4 кбит/с; 1 – 4,8 кбит/с; 2 – 9,6 кбит/с; 3 – 14,4 кбит/с; 4 – 19,2 кбит/с; 5 – 28,8 кбит/с; 6 – 38,4 кбит/с; 7 – 57,6 кбит/с; 8 – 115,2 кбит/с | Unsigned char | Запись/Чтение. По умолчанию – 2 |
Длина слова данных | 7 | Byte: 7 или 8 | Unsigned char | Запись/Чтение. По умолчанию – 8 |
Тип контроля четности слова данных | 8 | Byte: 0 – контроля нет; 1 – четность; 2 – нечетность | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Количество стоп-битов в посылке | 9 | Byte: 0 – 1 стоп-бит; 1 – 2 стоп-бита | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Задержка ответа по RS-485 | 10 | Byte: от 0 до 255 мс | Unsigned char | Запись/Чтение. По умолчанию – 45 |
Сетевой тайм-аут | 11 | Byte: от 0 до 600 с | Unsigned short | Запись/Чтение. По умолчанию – 600 |
Базовый адрес прибора | 12 | Word_16: от 1 до 255 | Unsigned short | Запись/Чтение. По умолчанию – 1 |
Тип протокола | 13 | 0 – ModBus ASCII; 1 – ModBus RTU; 2 – ОВЕН; 3 – DCON | Unsigned char | Запись/Чтение. По умолчанию – 2 |
Длина сетевого адреса | 14 | Byte: 8 – 8 бит; 11 – 11 бит | Unsigned char | Запись/Чтение. По умолчанию – 8 |
Код последней сетевой ошибки | 15 | Чтение: Byte: от 0 до 255 После включения прибора – 0 | Unsigned char | Только чтение |
Байт статуса | 16 | Чтение: 0 – ошибка EEPROM; 1 – ошибка связи с АЦП; 2 – ошибка применения параметров | Unsigned char | Только чтение |
Режим работы | 17 | 7 – прибор работает с целыми числами, если бит уст. в 1; 5–6 – не используется; 4 – режим калибровки; 3 – флаг завершения калибровки масштаба; 2 – флаг завершения калибровки смещения нуля; 1 – флаг завершения калибровки верхней точки; 0 – результаты калибровки | Unsigned char | Запись/Чтение По умолчанию – 0 |
Положение десятичной точки в целом значении коэффициента трансформации тока по входу 1 | 18 | 0 – (- - - -); 1 – (- - -.-); 2 – (- -.- -); 3 – (-.- - -) | Unsigned char | Запись/Чтение По умолчанию – 0 |
Целое значение коэффициента трансформации тока по входу 1 со смещением точки | 19–20 | от 1 до 9 999 999 | Unsigned long | Запись/Чтение По умолчанию – 1 |
Положение десятичной точки в целом значение измеренного тока по входу 1 | 21 | 0 – (- - - -); 1 – (- - -.-); 2 – (- -.- -); 3 – (-.- - -) | Unsigned char | Запись/Чтение По умолчанию – 0 |
Целое значение измеренного тока по входу 1 со смещением точки | 22–23 | от 0 до 999 999 | Unsigned long | Только чтение По умолчанию – 1 |
Положение десятичной точки в целом значение частоты дискретизации | 24 | 0 – (- - - -); 1 – (- - -.-); 2 – (- -.- -); 3 – (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 (технологический параметр) |
Целое значение частоты дискретизации со смещением десятичной точки | 25–26 | от 0 до 99 999 | Unsigned long | Только чтение (технологический параметр) |
Коэффициент трансформации тока по входу 1 с плавающей точкой | 27–28 | от 0,001 до 9999,000 | Float | Запись/Чтение. По умолчанию – 1,0 |
Измеренное значение тока по входу 1 с плавающей точкой | 29–30 | Float | Только чтение | |
Значение частоты дискретизации с плавающей точкой | 31–32 | Float | Только чтение (технологический параметр) | |
Запись изменений в энергонезависимую память и переход на новые сетевые настройки Aply | 33 | Для применения и сохранения параметров нужно записать 0x81 | Unsigned char |
Маска кодов ошибок для команды Aply
Номер бита | Описание ошибки |
3 | Не удалось сохранить в энергонезависимую память параметры для настройки измерений (регистры 14–16, 18, 20) |
2 | Недопустимое значение в одном из параметров для настройки измерений (регистры 14–16, 18, 20) |
1 | Не удалось сохранить в энергонезависимую память сетевые параметры (регистры 0–10) |
0 | Недопустимое значение в сетевых параметрах (регистры 2–10) |