Регистры Modbus

Шинные датчики Bus Probes компании Tibbo управляются только на уровне регистров. В таблицах ниже описаны регистры Modbus, которые используют шинные датчики.

Все регистры шинных датчиков 16-разрядные, знаковые или беззнаковые. Это значит, что при записи или чтении регистра команда Modbus должна иметь следующий формат:

B7B6B5B4B3B2B1B0
ID ведомого устройства ModbusКод функции Целевой регистр Записываемые данные / Длина читаемых данныхCRC (младший байт)CRC (старший байт)

Например, чтобы проверить версию прошивки шинного датчика с ID 1, отправьте ему такой запрос:

01 03 00 D4 00 01 C4 32

Допустим, в данных ответного сообщения устройства пришло значение 0x0103. Для версий монитора и прошивки шинных датчиков старший номер версии - первые два шестнадцатеричных символа ("01"), а младший номер - вторые два ("03"). Значит, на шинном датчике работает прошивка версии 1.03.

Общие регистры

Эти регистры есть у всех шинных датчиков. Регистры, значения которых записываются в EEPROM, энергонезависимы (то есть их значения сохраняются и после отключения питания датчика). Значения регистров, не сохраняемых в EEPROM, считываются при загрузке.

Для регистров, значения которых хранятся в EEPROM, слишком частая запись сокращает срок службы устройства. Подробнее см. в разделе Продление и оценка ресурса EEPROM.

Адрес (hex)ИмяДоступТипОписание
200 (0xC8)IDR/WpUnsigned 16-bit

ID устройства (адрес Modbus). ID должен быть в диапазоне от 1 до 247. Попытки задать ID вне этого диапазона игнорируются.

ID шинного датчика по умолчанию зависит от его типа:

  • 0x40 для BP#01 (датчик температуры окружающей среды)
  • 0x41 для BP#02 (датчик относительной влажности и температуры)
  • 0x42 для BP#03 (датчик освещённости)
  • 0x43 для BP#04 (трёхосевой акселерометр)
  • 0x44 для BP#05 (датчик затопления/протечки)
  • 0x45 для BP#06 (цифровой вход с оптической изоляцией)

Значение этого регистра сохраняется в EEPROM.

201 (0xC9)TYPERUnsigned 16-bit

Тип датчика:

  • 0x01 - BP#01 (датчик температуры окружающей среды)
  • 0x02 - BP#02 (датчик температуры и влажности окружающей среды)
  • 0x03 - BP#03 (датчик освещённости)
  • 0x04 - BP#04 (трёхосевой датчик ускорения)
  • 0x05 - BP#05 (датчик затопления/протечки)
  • 0x06 - BP#06 (однонаправленный цифровой вход с оптической изоляцией)
202 (0xCA)(1)(2)BAUDRATER/WpUnsigned 16-bit

Скорость (бод), которую будет использовать шинный датчик:

  • 0 - 1,200bps
  • 1 - 2,400bps
  • 2 - 4,800bps
  • 3 - 9,600bps
  • 4 - 19,200bps
  • 5 - 38,400bps (по умолчанию)
  • 6 - 57,600bps
  • 7 - 115,200bps

Значение этого регистра сохраняется в EEPROM.

203 (0xCB)SIGNATURERUnsigned 16-bitВсегда возвращает 0xAA55. Это общая сигнатура всех шинных датчиков.
204 (0xCC)(1)(2)PARITYR/WpUnsigned 16-bit

Режим чётности последовательного порта, который будет использовать шинный датчик:

  • 0 - без чётности (по умолчанию)
  • 1 - нечётность (Odd)
  • 2 - чётность (Even)
  • 3 - Mark(3)
  • 4 - Space

Значение этого регистра сохраняется в EEPROM.

205 (0xCD)RESERVEDRUnsigned 16-bitЭтот регистр зарезервирован для будущего использования.
206 (0xCE)RESERVEDRUnsigned 16-bitЭтот регистр зарезервирован для будущего использования.
207 (0xCF)USER WORD 1R/WUnsigned 16-bit

В этом регистре можно сохранять любые данные, нужные вашему приложению.

Значение этого регистра сохраняется в EEPROM.

208 (0xD0)USER WORD 2R/WUnsigned 16-bit

В этом регистре можно сохранять любые данные, нужные вашему приложению.

Значение этого регистра сохраняется в EEPROM.

209 (0xD1)USER WORD 3R/WUnsigned 16-bit

В этом регистре можно сохранять любые данные, нужные вашему приложению.

Значение этого регистра сохраняется в EEPROM.

210 (0xD2)USER WORD 4R/WUnsigned 16-bit

В этом регистре можно сохранять любые данные, нужные вашему приложению.

Значение этого регистра сохраняется в EEPROM.

211 (0xD3)MONITOR VERSIONRUnsigned 16-bitВерсия прошивки загрузчика Monitor/Loader.
212 (0xD4)FIRMWARE VERSIONRUnsigned 16-bitВерсия прошивки приложения.

R = только чтение, R/W = чтение/запись, R/Wp = чтение/запись с защитой (запись возможна, только пока нажата кнопка MD). К каждому шинному датчику прилагается металлический штифт, которым удобнее нажимать и удерживать кнопку MD.

1. Это значение можно сбросить к значению по умолчанию: выключите и снова включите питание устройства, дождитесь, пока зелёный и красный светодиоды мигнут три раза, затем быстро нажмите кнопку MD три раза менее чем за две секунды.

2. Обновлением прошивки занимается загрузчик Monitor/Loader шинного датчика, который работает только на 38,400-8-N-1. При обновлении прошивки значения этих регистров игнорируются.

3. Если нужны два стоповых бита, для чётности можно выбрать режим mark, что равносильно 8-N-2 (8 бит данных, без чётности, два стоповых бита).

Дополнительные регистры BP#01 (датчик температуры окружающей среды)

Адрес (hex)ИмяДоступТипОписание
300 (0x12C)TEMP_PROCR

Signed

16-bit

Обработанные данные температуры с фиксированной точкой в шагах по 0.01°C.
Разрешение измерения - 0.25°C.
301 (0x12D)TEMP_RAWRUnsigned 16-bitНеобработанные данные температуры от измерительной микросхемы (MCP9808).
Подробности см. в документации производителя.

R = только чтение

Дополнительные регистры BP#02 (датчик температуры и относительной влажности окружающей среды)

Адрес (hex)ИмяДоступТипОписание
400 (0x190)TEMP_PROCR

Signed

16-bit

Обработанные данные температуры с фиксированной точкой в шагах по 0.1°C.
Разрешение измерения - 0.5°C.
401 (0x191)TEMP_RAWRUnsigned 16-bitНеобработанные данные температуры от измерительной микросхемы (HIH6130).
Подробности см. в документации производителя.
404 (0x194)HUM_PROCRUnsigned 16-bitОбработанные данные относительной влажности с фиксированной точкой в шагах по 0.1%.
Разрешение измерения - 0.1%.
405 (0x195)HUM_RAWRUnsigned 16-bitНеобработанные данные влажности от измерительной микросхемы (HIH6130).
Подробности см. в документации производителя.

R = только чтение

Дополнительные регистры BP#03 (датчик освещённости)

Адрес (hex)ИмяДоступТипОписание
500 (0x1F4)LUM_PROCRUnsigned 16-bitОбработанные данные освещённости с фиксированной точкой в шагах по 1 Lux.
Разрешение измерения - 1 Lux.
501 (0x1F5)LUM_RAWRUnsigned 16-bitНеобработанные данные освещённости от измерительной микросхемы (BH1721FVC).
Подробности см. в документации производителя.

R = только чтение

Дополнительные регистры BP#04 (трёхосевой акселерометр)

Схема, показывающая оси BP#04.
Адрес (hex)ИмяДоступТипОписание
600 (0x258)AXIS_X_PROCR

Signed

16-bit

Обработанные данные ускорения по оси X с фиксированной точкой в шагах по ~0.003G.
Разрешение измерения - ~0.003 G.
601 (0x259)AXIS_X_RAWR

Signed

16-bit

Необработанные данные ускорения по оси X от измерительной микросхемы (ADXL312).
Подробности см. в документации производителя.
602 (0x25A)AXIS_Y_PROCR

Signed

16-bit

Обработанные данные ускорения по оси Y с фиксированной точкой в шагах по ~0.003G.
Разрешение измерения - ~0.003 G.
603 (0x25B)AXIS_Y_RAWR

Signed

16-bit

Необработанные данные ускорения по оси Y от измерительной микросхемы (ADXL312).
Подробности см. в документации производителя.
604 (0x25C)AXIS_Z_PROCR

Signed

16-bit

Обработанные данные ускорения по оси Z с фиксированной точкой в шагах по ~0.003G.
Разрешение измерения - ~0.003 G.
605 (0x25D)AXIS_Z_RAWR

Signed

16-bit

Необработанные данные ускорения по оси Z от измерительной микросхемы (ADXL312).
Подробности см. в документации производителя.

R = только чтение

Дополнительные регистры BP#05 (датчик затопления/протечки)

Адрес (hex)ИмяДоступТипОписание
700 (0x2BC)FLOOD_FLAGRUnsigned 16-bit

Состояние обнаружения затопления/протечки. Регистр может принимать значения:

  • 0 - сухо
  • 1 - мокро
701 (0x2BD)FLOOD_SENSITIVITYR/WpUnsigned 16-bit

Чувствительность датчика затопления/протечки. Этот регистр энергонезависим (то есть его значение сохраняется и после отключения питания шинного датчика). Регистр может принимать значения:

  • 0 - обычная чувствительность
  • 1 - пониженная чувствительность

R = только чтение, R/Wp = чтение/запись с защитой (запись возможна, только пока нажата кнопка MD).

Дополнительные регистры BP#06 (цифровой вход с оптической изоляцией)

Адрес (hex)ИмяДоступТипОписание
800 (0x320)DIGITAL_INPUTRUnsigned 16-bit

Состояние цифрового входа. Регистр может принимать значения:

  • 0 - низкий уровень
  • 1 - высокий уровень
801 (0x321)DIGITAL_INPUT_FILTEREDRUnsigned 16-bit

Отфильтрованный вход. При опросе этого регистра BP#06 в течение 250µs выбирает отсчёты входного сигнала с интервалом 2.5µs. Регистр может принимать значения:

  • 0 - низкий уровень (более 90% отсчётов низкие)
  • 1 - высокий уровень (более 90% отсчётов высокие)
  • 2 - неизвестно (критерий большинства не выполнен)

R = только чтение

Исходный материал Tibbo обновлён 26 октября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке