Параметры протокола Modbus

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

  • 03, 04 (read registers) – чтение одного или нескольких регистров;
  • 06 (preset single register) – запись одного регистра;
  • 16 (preset multiple registers) – запись нескольких регистров;
  • 17 (report slave ID) – чтение имени прибора и версии программы.

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

На адреса более 247 прибор реагировать не будет.

Для функций 03, 04 и 16 допускается запись или чтение регистров, относящихся только к одной команде.

Возврат ошибки для функций
ФункцииОшибкаПричина
06 и 161 («Illegal function»)
  • Попытка прочитать регистры, предназначенные только для записи;
  • Обращение к несуществующим регистрам.
03 и 042 («Illegal data address»)
03, 04 и 16*4 («Failure in associated device»)Попытка записать или прочитать регистры нескольких команд
Примечание

* Исключение составляют регистры оперативных параметров, которые могут быть все считаны одной командой. Начальный адрес регистра может быть любым в пределах адресов оперативных параметров

Назначение регистров, используемых для функций 03, 04, 06 и 16 приведены в таблице

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

Команда

Адрес регистра

Данные записи

Данные чтения

Примечание

Общие параметры

Код выхода

exit

0x88

Нет

Word_16:

0 – программный сброс;

6 – аппарат. сброс;

7 – вкл. питания;

8 – сторожевой таймер

Только чтение

Код последней сетевой ошибки

n.Err

0x90

Нет

Byte: от 0 до 255

Только чтение

После включения прибора – 0

Конфигурационные параметры сети RS-485

Скорость обмена

bPS

0x30

Word_16:

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 кбит/с

Запись/Чтение.

По умолчанию: 2

Тип контроля четности слова данных

PrtY

0x38

Word_16:

0 – контроля нет;

1 – четность;

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

Запись/Чтение.

По умолчанию: 0

Количество стоп-бит в посылке

Sbit

0x40

Word_16:

0 – один;

1 – два

Запись/Чтение.

По умолчанию: 0

Задержка ответа по RS-485

Rs.dL

0x48

Word_16:

от 0 до 45 мс

Запись/Чтение.

По умолчанию: 45

Базовый адрес прибора Addr

0x50

Word_16: от 1 до 247

Запись/Чтение.

По умолчанию: 16

Запись изменений в энергонезависимую память и перестройка сетевых параметров Aply

0x78

Word_16: 0

Только запись

Конфигурационные параметры

Тип входного фильтра, общего для всех каналов

ComF

0x28

Word_16:

0 – откл.;

1 – 50 Гц,  первого порядка;

2 – 50 Гц,  второго порядка;

3 – 50 Гц,  четвертого порядка;

4 – 200 Гц, первого порядка

Запись/Чтение.

По умолчанию: 0

Тип подключаемого датчика

In-t

0x00 – 1 канал;

0x01 – 2 канал

Word_16: 

0 – канал откл.;

1 – от 4 до 20 мА;

2 – от 0 до 20 мА;

3 – от 0 до 5 мА;

4 – от 0 до 10 В

Запись/Чтение.

По умолчанию: 0

Нижняя граница диапазона измерения активного датчика

Ain.L

0x58,0x59 – 1 канал;

0x5a,0x5b – 2 канал

Float_32 (IEEE 754).

Значение хранится в двух последовательных регистрах. Старшие  разряды хранятся в регистре, имеющем меньший адрес

Запись/Чтение.

По умолчанию: 20000,0

Верхняя граница диапазона измерения активного датчика

Ain.Н

0x68,0x69 – 1 канал;

0x6a,0x6b – 2 канал

Float_32 (IEEE 754).

Значение хранится в двух последовательных регистрах. Старшие  разряды хранятся в регистре, имеющем меньший адрес

Запись/Чтение.

По умолчанию: 0,0

Смещение десятичной точки dP

0x20 – 1 канал;

0x21 – 2 канал

Word_16: от 0 до 4

Запись/Чтение.

По умолчанию: 0

Ограничение скорости изменения измеряемого сигнала (пиковый фильтр)

Peak

0x08 – 1 канал;

0x09 – 2 канал

Word_16: от 1 до 200 диапазона/с (в разах)

Запись/Чтение.

По умолчанию: 200

Тип выходного фильтра

OutF

0x10 – 1 канал

0x11 – 2 канал

Word_16:

0 – Откл;

1 – Exp

от 2 до 16 – ск. среднего,

L = 2 – 16

Запись/Чтение.

По умолчанию: 0

Постоянная времени для экспоненциального фильтра

in.Fd

0x18 – 1 канал;

0x19 – 2 канал

Word_16_16: от 10 до 10000 мс

Запись/Чтение.

По умолчанию: 10

Запись изменений в энергонезависимую память и применение новых параметров

INIT

0x80

Word_16 – 0

Нет

Только запись.

Команда аналогична команде Aply, но перестройка сетевых параметров не выполняется

Оперативные параметры

Измеренное значение

iRD

0x100 – 1 канал;

0x101 – 2 канал

Нет

Int_16 – рез. изм × 10dP

Только чтение

Измеренное значение

iRDt

0x102, 0x103 – 1 канал;

0x104, 0x105 – 2 канал

Нет

Int_16 – рез. изм × 10dP+ +Word_16 (метка относительного времени, дискретность 10 мс)

Только чтение

Чтение статуса результатов измерения

SRD

0x106, 0x107

Нет

Int_16:

Кодирование статуса в таблице

Только чтение

Измеренное значение

Read

0x108…0x10A – 1 канал;

0x10B…0x10D – 2 канал

Нет

Float_32 (IEEE 754) – рез. изм + Word_16 (метка относительного времени, дискретность 10 мс)

Только чтение

Примечание
На некорректные данные типа Int_16 возвращается значение –32768. На некорректные данные типа Float_32 возвращается значение NaN. Причину некорректности измеренных данных выясняют чтением статуса (SRD). Кодирование статуса приведено в таблице.
Кодирование статуса

Статус измерения

Кодирование статуса SRD

Измерение успешно

0x0000

Значение заведомо неверно

0xF000

Данные не готовы

0xF006

Датчик отключен

0xF007

Измеренное значение слишком велико

0xF00A

Измеренное значение слишком мало

0xF00B

Обрыв датчика

0xF00D

Некорректный калибровочный коэффициент

0xF00F

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

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

Запрос на чтение имени и версии программного обеспечения прибора с адресом 12

Адрес

Функция

Контрольная сумма

12

17

ZZ

Ответ на функцию 17

Адрес

Функция

Количество байт данных

Данные 15 байт

Контрольная сумма

12

17

15

MB110-2AC VX.YY

ZZ

Примечание
Поля X и YY определяются предприятием-изготовителем.