Для протокола 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 представлен в таблице ниже:
Ответ на функцию 17
Адрес | Функция | Количество байт данных | Данные 14 байт | Контрольная сумма |
12 | 17 | 14 | MЭ110-1M VX.YY | ZZ |

Параметры протокола Modbus представлены в таблице ниже:
Регистры протокола Modbus
Команда | Номера регистров | Данные записи/чтения | Тип данных | Примечание |
Имя прибора | 0–3 | MЭ110-1М | Char[8] | Только чтение |
Версия прошивки | 4–5 | Х – номер версии;YY– номер подверсии | Char[4] | Только чтение. Устанавливается предприятием-изготовителем |
Скорость обмена | 6 | 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 | 7 или 8 | Unsigned char | Запись/Чтение. По умолчанию – 8 |
Тип контроля четности слова данных | 8 | 0 – контроля нет;1 – четность;2 – нечетность | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Количество стоп-битов в посылке | 9 | 0 – 1 стоп-бит;1 – 2 стоп-бита | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Задержка ответа по RS-485 | 10 | от 0 до 255 мс | Unsigned char | Запись/Чтение. По умолчанию – 45 |
Сетевой тайм-аут | 11 | от 0 до 600 с | Unsigned short | Запись/Чтение. По умолчанию – 600 |
Базовый адрес прибора | 12 | от 1 до 247 | Unsigned short | Запись/Чтение. По умолчанию – 1 |
Тип протокола | 13 | 0 – Modbus ASCII;1 – Modbus RTU;2 – ОВЕН;3 – DCON | Unsigned char | Запись/Чтение. По умолчанию – 2 |
Длина сетевого адреса | 14 | 8 – 8 бит;11 – 11 бит | Unsigned char | Запись/Чтение. По умолчанию – 8 |
Код последней сетевой ошибки | 15 | Unsigned char | Только чтение | |
Байт статуса | 16 | Чтение: 0 – ошибка EEPROM; 1 – ошибка связи с АЦП; 2 – ошибка применения параметров | Unsigned char | Только чтение |
Режим работы | 17 | Unsigned short | Запись/Чтение. По умолчанию – 0 | |
Положение десятичной точки в целом значении коэффициента трансформации напряжения | 18 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение коэффициента трансформации напряжения со смещением точки | 19–20 | от 1 до 9 999 999 | Unsigned long | Запись/Чтение. По умолчанию – 1 |
Положение десятичной точки в целом значении коэффициента трансформации тока | 21 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение коэффициента трансформации тока со смещением точки | 22–23 | от 1 до 9 999 999 | Unsigned long | Запись/Чтение. По умолчанию – 1 |
Положение десятичной точки в целом значении измеренного напряжения | 24 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение напряжения со смещением точки | 25–26 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значение измеренного тока | 27 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренного тока со смещением точки | 28–29 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значение измеренной полной мощности | 30 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренной полной мощности со смещением точки | 31–32 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значении измеренной активной мощности | 33 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренной активной мощности со смещением точки | 34–35 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значении измеренной реактивной мощности | 36 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренной реактивной мощности со смещением точки | 37–38 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значении измеренного коэффициента мощности | 39 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренного коэффициента мощности со смещением точки | 40–41 | от 0 до 999 999 | Unsigned long | Только чтение |
Положение десятичной точки в целом значении измеренной частоты сети | 42 | 0 (- - - -);1 (- - -.-);2 (- -.- -);3 (-.- - -) | Unsigned char | Запись/Чтение. По умолчанию – 0 |
Целое значение измеренной частоты сети со смещением десятичной точки | 43–44 | от 0 до 999 999 | Unsigned long | Только чтение |
Значение коэффициента трансформации напряжения с плавающей точкой | 45–46 | от 0,001 до 9999,000 | Float | Запись/Чтение. По умолчанию – 1,0 |
Значение коэффициента трансформации тока по входам с плавающей точкой | 47–48 | от 0,001 до 9999,000 | Float | Запись/Чтение. По умолчанию – 1,0 |
Значение измеренного напряжения с плавающей точкой | 49–50 | Float | Только чтение | |
Значение измеренного тока с плавающей точкой | 51–52 | Float | Только чтение | |
Значение измеренной полной мощности с плавающей точкой | 53–54 | Float | Только чтение | |
Значение измеренной активной мощности с плавающей точкой | 55–56 | Float | Только чтение | |
Значение измеренной реактивной мощности с плавающей точкой | 57–58 | Float | Только чтение | |
Значение измеренного коэффициента мощности с плавающей точкой | 59–60 | Float | Только чтение | |
Значение измеренной частоты сети с плавающей точкой | 61–62 | Float | Только чтение | |
Запись изменений в энергонезависимую память и переход на новые сетевые настройки Aply | 63 | Для применения и сохранения параметров нужно записать 0x81 | Unsigned char |
Маска кодов ошибок для команды Aply
Номер бита | Описание ошибки |
3 | Не удалось сохранить в энергонезависимую память параметры для настройки измерений (регистры 14–16, 18, 20) |
2 | Недопустимое значение в одном из параметров для настройки измерений (регистры 14–16, 18, 20) |
1 | Не удалось сохранить в энергонезависимую память сетевые параметры (регистры 0–10) |
0 | Недопустимое значение в сетевых параметрах (регистры 2–10) |