Команды протокола Modbus

Для протокола Modbus реализовано выполнение следующих функций:

  • 03 (read registers) – чтение одного или нескольких регистров;

  • 06 (preset single register) – запись одного регистра;

  • 16 (preset multiple registers) – запись нескольких регистров;

  • 17 (reportslaveID) – чтение имени прибора и версии программы.

Если адрес прибора равен нулю, для протокола Modbus это широковещательный адрес, и прибор будет выполнять команды записи (6, 16), но не будет отправлять квитанции на принятые команды. На адреса более 247 прибор реагировать не будет.

Для функций 06 и 16 при попытке записать регистры, предназначенные только для чтения, или при попытке обращения к несуществующим регистрам возвращается ошибка 1 (Illegal function).

Структура запроса и ответа для функции 17

Функция позволяет получить имя прибора и версию программного обеспечения.

В таблице ниже представлен запрос на чтение имени и версии программного обеспечения прибора с адресом 12:

Запрос для функции 17
АдресФункцияКонтрольная сумма
1217ZZ

Ответ на функцию 17 представлен в таблице ниже:

Ответ на функцию 17
АдресФункцияКоличество байт данныхДанные 18 байтКонтрольная сумма
121718MЭ110-220.3М VX.YYZZ
Примечание
Поля X и YY определяются предприятием-изготовителем.
Команды протокола Modbus
ПараметрНомера регистров, HEXДанные записи/чтенияТип данныхПримечание
Общие параметры
Имя прибора

0x0000;

0x0001;

0x0002;

0x0003

Строка ASCII, 8 байт: MЭ110-3MСhar[8]Только чтение
Версия прошивки

0x0004;

0x0005

Строка ASCII, 4 байт VX.YY:

Х – номер версии;

YY– номер подверсии

Сhar[4]Только чтение. Устанавливается предприятием-изготовителем
Сетевые параметры
Скорость обмена0x0006

0 – 2400 бит/с;

1 – 4800 бит/с;

2 – 9600 бит/с;

3 – 14400 бит/с;

4 – 19200 бит/с;

5 – 28800 бит/с;

6 – 38400 бит/с;

7 – 59600 бит/с;

8 – 115200 бит/с

Unsigned charЗапись/Чтение. По умолчанию – 2
Длина слова данных0x0007

0 – 7 бит;

1 – 8 бит

Unsigned charЗапись/Чтение. По умолчанию – 1
Тип контроля четности слова данных0x0008

0 – нет;

1 – четность;

2 – нечетность

Unsigned charЗапись/Чтение. По умолчанию – 0
Количество стоп-битов в посылке0x0009

0 – 1 стоп-бит;

1 – 2 стоп-бита

Unsigned charЗапись/Чтение. По умолчанию – 0
Задержка ответа по RS-4850x000Aот 0 до 255 мсUnsigned charЗапись/Чтение. По умолчанию – 2
Сетевой тайм-аут0x000Bот 0 до 600 сUnsigned shortЗапись/Чтение. По умолчанию – 600
Сетевой адрес прибора0x000Cот 1 до 247Unsigned shortЗапись/Чтение. По умолчанию – 16
Тип сетевого протокола0x000D

0 – Modbus ASCII;

1 – Modbus RTU;

2 – ОВЕН;

3 – DCON

Unsigned charЗапись/Чтение. По умолчанию – 2
Длина сетевого адреса0x000E

0 – 8 бит;

1 – 11 бит

Unsigned charЗапись/Чтение. По умолчанию – 0
Код последней сетевой ошибки0x000FUnsigned charТолько чтение
Конфигурационные параметры
Байт статуса

(битовая маска)

0x0010

0 – ошибка EEPROM;

1 – ошибка связи с АЦП;

2 – ошибка применения параметров;

4 – выход за границу диапазона фаза A;

5 – выход за границу диапазона фаза B;

6 – выход за границу диапазона фаза C

Unsigned charТолько чтение
Режим работы0x0011Unsigned shortЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении коэффициента трансформации напряжения по входам0x0012

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Целое значение коэффициента трансформации напряжения по входам со смещение точки0x0013, 0x0014от 1 до 9999999Unsigned longЗапись/Чтение. По умолчанию – 1
Положение десятичной точки в целом значении коэффициента трансформации тока по входам0x0015

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Целое значение коэффициента трансформации тока по входам со смещение точки0x0016, 0x0017от 1 до 9999999Unsigned longЗапись/Чтение. По умолчанию – 1
Положение десятичной точки в целом значении измеренного напряжения по входам0x0018

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренного тока по входам0x001F

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренной полной мощности по входам0x0026

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренной активной мощности по входам0x002D

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренной реактивной мощности по входам0x0034

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренного коэффициента мощности по входам0x003B

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренной частоты сети0x0042

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Положение десятичной точки в целом значении измеренного фазового угла по входам0x0045

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Значение коэффициента трансформации напряжения по входам с плавающей точкой0x004C, 0x004Dот 0,001 до 9999,000FloatЗапись/Чтение. По умолчанию – 1,0
Значение коэффициента трансформации тока по входам с плавающей точкой0x004E, 0x004Fот 0,001 до 9999,000FloatЗапись/Чтение. По умолчанию – 1,0
Применение параметров0x007C0×0081 – применить и сохранить настройки в энергонезависимую памятьUnsigned charТолько запись. После применения и сохранения значение этого параметра станет 0×0000
Оперативные параметры
Целое значение измеренного напряжения по входу A0x0019, 0x001ASigned longТолько чтение
Целое значение измеренного напряжения по входу B0x001B, 0x001CSigned longТолько чтение
Целое значение измеренного напряжения по входу C0x001D, 0x001ESigned longТолько чтение
Целое значение измеренного тока по входу A0x0020, 0x0021Signed longТолько чтение
Целое значение измеренного тока по входу B0x0022, 0x0023Signed longТолько чтение
Целое значение измеренного тока по входу C0x0024, 0x0025Signed longТолько чтение
Целое значение измеренной полной мощности по входу A0x0027, 0x0028Signed longТолько чтение
Целое значение измеренной полной мощности по входу B0x0029, 0x002ASigned longТолько чтение
Целое значение измеренной полной мощности по входу C0x002B, 0x002CSigned longТолько чтение
Целое значение измеренной активной мощности по входу A0x002E, 0x002FSigned longТолько чтение
Целое значение измеренной активной мощности по входу B0x0030, 0x0031Signed longТолько чтение
Целое значение измеренной активной мощности по входу C0x0032, 0x0033Signed longТолько чтение
Целое значение измеренной реактивной мощности по входу A0x0035, 0x0036Signed longТолько чтение
Целое значение измеренной реактивной мощности по входу B0x0037, 0x0038Signed longТолько чтение
Целое значение измеренной реактивной мощности по входу C0x0039, 0x003ASigned longТолько чтение
Целое значение измеренного коэффициента мощности по входу A0x003C, 0x003DSigned longТолько чтение
Целое значение измеренного коэффициента мощности по входу B0x003E, 0x003FSigned longТолько чтение
Целое значение измеренного коэффициента мощности по входу C0x0040, 0x0041Signed longТолько чтение
Целое значение измеренной частоты сети0x0043, 0x0044Unsigned longТолько чтение
Целое значение измеренного фазового угла по входу AB0x0046, 0x0047Signed longТолько чтение
Целое значение измеренного фазового угла по входу BC0x0048, 0x0049Signed longТолько чтение
Целое значение измеренного фазового угла по входу CA0x004A, 0x004BSigned longТолько чтение
Значение измеренного напряжения по входу A0x0050, 0x0051FloatТолько чтение
Значение измеренного напряжения по входу В0x0052, 0x0053FloatТолько чтение
Значение измеренного напряжения по входу С0x0054, 0x0055FloatТолько чтение
Значение измеренного тока по входу A0x0056, 0x0057FloatТолько чтение
Значение измеренного тока по входу B0x0058, 0x0059FloatТолько чтение
Значение измеренного тока по входу C0x005A, 0x005BFloatТолько чтение
Значение измеренной полной мощности по входу A0x005C, 0x005DFloatТолько чтение
Значение измеренной полной мощности по входу B0x005E, 0x005FFloatТолько чтение
Значение измеренной полной мощности по входу C0x0060, 0x0061FloatТолько чтение
Значение измеренной активной мощности по входу A0x0062, 0x0063FloatТолько чтение
Значение измеренной активной мощности по входу B0x0064, 0x0065FloatТолько чтение
Значение измеренной активной мощности по входу C0x0066, 0x0067FloatТолько чтение
Значение измеренной реактивной мощности по входу A0x0068, 0x0069FloatТолько чтение
Значение измеренной реактивной мощности по входу B0x006A, 0x006BFloatТолько чтение
Значение измеренной реактивной мощности по входу C0x006C, 0x006DFloatТолько чтение
Значение измеренного коэффициента мощности по входу A0x006E, 0x006FFloatТолько чтение
Значение измеренного коэффициента мощности по входу B0x0070, 0x0071FloatТолько чтение
Значение измеренного коэффициента мощности по входу C0x0072, 0x0073FloatТолько чтение
Значение измеренной частоты сети0x0074, 0x0075FloatТолько чтение
Значение измеренного фазового угла по входам AB0x0076, 0x0077FloatТолько чтение
Значение измеренного фазового угла по входам BC0x0078, 0x0079FloatТолько чтение
Значение измеренного фазового угла по входам CA0x007A, 0x007BFloatТолько чтение
Значение измеренного межфазного напряжения по входу AB0x007D, 0x007EFloatТолько чтение
Значение измеренного межфазного напряжения по входу BC0x007F, 0x0080FloatТолько чтение
Значение измеренного межфазного напряжения по входу СA0x0081, 0x0082FloatТолько чтение
Значение измеренного тока нейтрали0x0083, 0x0084FloatТолько чтение
Положение десятичной точки в целом значении измеренного межфазного напряжения по входам0x0085

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Целое значение измеренного напряжения по входу AB0x0086, 0x0087Unsigned longТолько чтение
Целое значение измеренного напряжения по входу BC0x0088, 0x0089Unsigned longТолько чтение
Целое значение измеренного напряжения по входу CA0x008A, 0x008BUnsigned longТолько чтение
Положение десятичной точки в целом значении измеренного тока нейтрали0x008C

0 – (----);

1 – (---.-);

2 – (--.--);

3 – (-.---)

Unsigned charЗапись/Чтение. По умолчанию – 0
Целое значение измеренного тока нейтрали0x008D, 0x008EUnsigned longТолько чтение
Параметры калибровки*
NOMINAL_VOLTAGEкалибровка0x008F, 0x0090от 100 до 300FloatЗапись/Чтение. По умолчанию – 300
MINIMAL_VOLTAGEкалибровка0x0091, 0x0092от 1 до 10FloatЗапись/Чтение. По умолчанию – 6
NOMINAL_CURRENTкалибровка0x0093, 0x0094от 1 до 5FloatЗапись/Чтение. По умолчанию – 5
MINIMAL_CURRENTкалибровка0x0095, 0x0096от 0,01 до 0,10FloatЗапись/Чтение. По умолчанию – 0,02
MINIMAL_NEUTRAL_CURRENTкалибровка0x0097, 0x0098от 1 до 15FloatЗапись/Чтение. По умолчанию – 4
Статус калибровки0x0099, 0x009Aот 0 до 4294967295Unsigned longТолько чтение
Начало калибровки0x009Bот 0 до 65535Unsigned shortТолько чтение
Флаг пропадания фазы0x009Cот 0 до 1Unsigned charТолько запись. По умолчанию – 0
Примечание
* Калибровка прибора выполняется только на предприятии-изготовителе. Изменять параметры калибровки не рекомендуется.