WB-M1W2 1-Wire to Modbus Temperature Measurement Module: различия между версиями

Материал из Wiren Board
(Новая страница: «{{DISPLAYTITLE:WB-M1W2 Преобразователь для термометров 1-Wire}} WB-M1W2 - компактный преобразователь, пр…»)
 
Метка: visualeditor
Строка 29: Строка 29:
|Дальнодействие передатчика
|Дальнодействие передатчика
| < 1м
| < 1м
|-
! colspan="2" |Датчики
|-
|-
| Внешние датчики
| Внешние датчики
| Возможность подключения цифрового датчика температуры DS18B20.
| Возможность подключения двух цифровых датчиков температуры DS18B20.
|-
|Внутренний датчик
|Встроенный NTC-термистор (в зависимости от модификации)
|-
|-
! colspan="2" |Управление
! colspan="2" |Управление
Строка 96: Строка 101:
|0x7FFF
|0x7FFF
|°C × 16 (signed)
|°C × 16 (signed)
|Температура с встроенного датчика
|Температура с встроенного датчика (в зависимости от модификации)
|
|
|-
|-
Строка 104: Строка 109:
|0x7FFF
|0x7FFF
|°C × 16 (signed)
|°C × 16 (signed)
|Температура с внешнего датчика 1-Wire
|Температура с первого внешнего датчика 1-Wire
|
|-
|8
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с второго внешнего датчика 1-Wire
|
|
|-
|-
Строка 219: Строка 232:
! style="font-weight: bold;" | Сигнатура
! style="font-weight: bold;" | Сигнатура
|-
|-
| WB-MIR
| WB-M1W2
| WBMIR'0x00'
| WBMIR'0x00'
|}
|}
Строка 226: Строка 239:
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.


== Управление модулем из web-интерфейса ==
== Работа преобразователя с контроллером Wiren Board ==
 
Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон.
В настоящий момент для подключения модуля WB-MIR имеется два шаблона '''WB-MIR''' и '''WB-MIR (simple)'''. Шаблон '''WB-MIR''' предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия '''WB-MIR (simple)''' может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.


Описание каналов шаблона
{| class="wikitable"
{| class="wikitable"
|[[File:Web_wb_mir.png |600px|thumb|right|Веб-интерфейс модуля WB-MIR]]
! Название канала
|[[File:Web-wb-mir-simple.png|300px|thumb|right|Упрощенный веб-интерфейс модуля WB-MIR]]
|}
 
 
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.
{| class="wikitable"
! Название элемента управления
!Назначение
!Назначение
|-
|-
|Input Voltage||Напряжение питания модуля
|Input Voltage||Напряжение питания модуля
|-
|-
|Learn to RAM||Запись ИК-сигнала в оперативный буфер (см. раздел [[#Оперативный режим|Оперативный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. 
|Internal Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
|-
|Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]).
|-
|Learn to ROMx||Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|-
|Play from ROMx||Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|-
|ROMx -> RAM||Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел [[#Постоянный режим|Постоянный режим]]). Для редактирования контрол переводится в положение ON, после редактирования — OFF.
|-
|-
|Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
|External Sensor 1
|Температура внешнего цифрового датчика, подключенного к порту 1. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
|-
|-
|Serial NO||Серийный номер модуля WB-MIR, может потребоваться при обращении в техподдержку.
|External Sensor 2
|Температура внешнего цифрового датчика, подключенного к порту 2. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
|-
|-
|Reset all ROM||Сброс содержимого всех ячеек памяти. '''Будьте внимательны, очистка ПЗУ будет выполнена без запроса на подтверждение!'''
|Serial NO||Серийный номер модуля, может потребоваться при обращении в техподдержку.
|-
|-
|}
|}

Версия 21:29, 9 ноября 2017


WB-M1W2 - компактный преобразователь, предназначенный для опроса двух цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485.

Входы

Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B.

Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. В устройстве, в зависимости от модификации, может присутствовать внутренний датчик температуры (NTC термистор).

Монтаж

Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров.

Технические характеристики

Параметр Значение
Питание
Напряжение питания 9 — 24 В постоянного тока
Потребляемая мощность

0.1 Вт

Дальнодействие передатчика < 1м
Датчики
Внешние датчики Возможность подключения двух цифровых датчиков температуры DS18B20.
Внутренний датчик Встроенный NTC-термистор (в зависимости от модификации)
Управление
Интерфейс управления RS-485
Изоляция интерфейса Неизолированный
Протокол обмена данными Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке
Параметры интерфейса RS-485

скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:

  • Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с
  • Данные: 8 бит
  • Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even)
  • Стоповых бит: 2 (по умолчанию), 1
Габариты
Габариты
  • 40x15x11 мм; длина разъема кабеля передатчика добавляет +30 мм к ширине корпуса
Условия эксплуатации
Температура воздуха -40°С до +80°С
Относительная влажность воздуха до 98%,без конденсата влаги


Дополнительные Функции

Смена адреса производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).

По адресу 200 лежит сигнатура длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.

Карты регистров

Регистр/ адрес Тип Чтение/ запись Значение по умолчанию Формат Назначение Версии

прошивки

6 input R 0x7FFF °C × 16 (signed) Температура с встроенного датчика (в зависимости от модификации)
7 input R 0x7FFF °C × 16 (signed) Температура с первого внешнего датчика 1-Wire
8 input R 0x7FFF °C × 16 (signed) Температура с второго внешнего датчика 1-Wire
110 holding RW 96 baud rate / 100 скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 >3.1.0
111 holding RW 0 настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even)
112 holding RW 2 количество стоп-битов порта RS-485. Допустимые значения: 1, 2
120 (0x78) holding RW 0 отличное от 0 запись в регистр вызывает перезагрузку модуля без сохранения состояния
121 (0x79) input R - mV текущее напряжение питания модуля
128 (0x80) holding RW 1 Modbus-адрес устройства
200-206 input R см. Сигнатура устройства сигнатура
220-241 input R __date__ __time__ дата сборки прошивки
245 holding RW 216 °C × 100 (signed) Компенсация самонагрева встроенного датчика температуры.

Значение регистра вычитается из температуры, измеренной встроенным датчиком (регистр 6)

250-269 input R строка, null-terminated версия прошивки
270-271 input R 32-bit unsigned int уникальный идентификатор (S/N)

Сигнатура устройства

По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:

Модуль Сигнатура
WB-M1W2 WBMIR'0x00'

Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.

Работа преобразователя с контроллером Wiren Board

Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон.

Описание каналов шаблона

Название канала Назначение
Input Voltage Напряжение питания модуля
Internal Temperature Sensor Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
External Sensor 1 Температура внешнего цифрового датчика, подключенного к порту 1. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
External Sensor 2 Температура внешнего цифрового датчика, подключенного к порту 2. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
Serial NO Серийный номер модуля, может потребоваться при обращении в техподдержку.

Управление модулем из командной строки

Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице Modbus-client. Доступ к командной строке описан в статье SSH.

Пример чтения регистров

Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:

echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`

В результате выполнения команды получаем строку, например WBMIR. В этом примере модуль WB-MIR имеет Modbus-адрес 1.

Перезагрузка

В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100

Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial. Перезагрузку лучше делать с одним устройством на шине.