WB-M1W2 1-Wire to Modbus Temperature Measurement Module/en: различия между версиями
(Новая страница: «In firmware version 4.0.0 and higher, it is also possible to configure the 1-Wire inputs of the module as discrete or counting inputs.») |
|||
(не показаны 24 промежуточные версии этого же участника) | |||
Строка 22: | Строка 22: | ||
In firmware version 4.0.0 and higher, it is also possible to configure the 1-Wire inputs of the module as discrete or counting inputs. | In firmware version 4.0.0 and higher, it is also possible to configure the 1-Wire inputs of the module as discrete or counting inputs. | ||
== | ==Монтаж== | ||
[[ | [[Файл:WB-M1W2+DS18B20.png|650px|thumb|center|Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)]] | ||
Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров. | |||
== | == Технические характеристики == | ||
{| class="wikitable" | {| class="wikitable" | ||
! style="text-align: center;" | | ! style="text-align: center;" | Параметр | ||
! style="text-align: center;" | | ! style="text-align: center;" | Значение | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Питание | ||
|- | |- | ||
| | |Напряжение питания | ||
|9 — 24 | |9 — 24 В постоянного тока | ||
|- | |- | ||
| | |Потребляемая мощность | ||
| | | | ||
0.1 | 0.1 Вт | ||
|- | |- | ||
!colspan="2" | ''' | !colspan="2" | '''Клеммники и сечение проводов''' | ||
|- | |- | ||
|| | || Рекомендуемое сечение провода с НШВИ, мм<sup>2</sup> || 0,75 — 1 | ||
|- | |- | ||
|| | || Длина стандартной втулки НШВИ, мм || 8 | ||
|- | |- | ||
|| | || Момент затяжки винтов, Н∙м || 0,2 | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Датчики | ||
|- | |- | ||
| | | Внешние датчики | ||
| | | Возможность подключения двух цифровых датчиков температуры DS18B20. | ||
|- | |- | ||
| | |Внутренний датчик | ||
| | |Встроенный NTC-термистор | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Входы (подключаются вместо внешних датчиков) | ||
|- | |- | ||
| | |Количество дискретных входов | ||
|2 | |2 | ||
|- | |- | ||
| | |Тип входов | ||
| | |"Сухой контакт", неизолированные | ||
|- | |- | ||
| | |Напряжение в разомкнутом состоянии | ||
|3.3 V | |3.3 V | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Управление | ||
|- | |- | ||
| | |Интерфейс управления | ||
|RS-485 | |RS-485 | ||
|- | |- | ||
| | |Изоляция интерфейса | ||
| | |Неизолированный | ||
|- | |- | ||
| | |Протокол обмена данными | ||
|Modbus RTU, | |Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке | ||
|- | |- | ||
|RS-485 | |Параметры интерфейса RS-485 | ||
| | | | ||
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; | |||
Начиная с версии прошивки '''3.1.0''' параметры интерфейсы могут быть настроены программно: | |||
* | *Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с <br>([[UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]]) | ||
* | *Данные: 8 бит | ||
* | *Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even) | ||
* | *Стоповых бит: 2 (по умолчанию), 1 | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Габариты | ||
|- | |- | ||
| | | Габариты | ||
| | | | ||
* 40x15x11 | * 40x15x11 мм; | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Условия эксплуатации | ||
|- | |- | ||
| | | Температура воздуха | ||
| - | | -40°С до +80°С | ||
|- | |- | ||
| | | Относительная влажность воздуха | ||
| | | до 98%,без конденсата влаги | ||
|} | |} | ||
== | == Дополнительные Функции== | ||
''' | '''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80). | ||
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | |||
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | |||
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | |||
== | == Карты регистров == | ||
{| class="wikitable" | {| class="wikitable" | ||
! rowspan="2" | | ! rowspan="2" |Регистр/ адрес | ||
! rowspan="2" | | ! rowspan="2" |Тип | ||
! rowspan="2" | | ! rowspan="2" |Чтение/ запись | ||
! rowspan="2" | | ! rowspan="2" |Значение по умолчанию | ||
! rowspan="2" | | ! rowspan="2" |Формат | ||
! rowspan="2" | | ! rowspan="2" |Назначение | ||
! | !Версии | ||
прошивки | |||
|- | |- | ||
! | ! | ||
Строка 129: | Строка 129: | ||
|0x7FFF | |0x7FFF | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с встроенного датчика | ||
| | | | ||
|- | |- | ||
Строка 137: | Строка 137: | ||
|0x7FFF | |0x7FFF | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с первого внешнего датчика 1-Wire | ||
| | | | ||
|- | |- | ||
Строка 145: | Строка 145: | ||
|0x7FFF | |0x7FFF | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с второго внешнего датчика 1-Wire | ||
| | | | ||
|- | |- | ||
Строка 153: | Строка 153: | ||
|0 | |0 | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с первого внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 16). | ||
| rowspan="2" | | | rowspan="2" |начиная с прошивки 4.6.0 | ||
|- | |- | ||
|21 | |21 | ||
Строка 161: | Строка 161: | ||
|0 | |0 | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с второго внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 17). | ||
|- | |- | ||
|99||holding||RW||16|| 1 = 0. | |99||holding||RW||16|| 1 = 0.0625C | ||
||( | ||(доступно с версии прошивки 3.10.0) | ||
Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). | |||
Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на значение регистра*0.0625C. | |||
Запишите 0, чтобы отключить фильтр. | |||
|3.10.0 | |3.10.0 | ||
|- | |- | ||
| 104-105 || input || R|| || 32-bit unsigned int || uptime counter | |104-105 || input || R || || 32-bit unsigned int | ||
|| Время работы устройства (uptime counter) в секундах | |||
| | |||
|- | |- | ||
Строка 182: | Строка 184: | ||
|96 | |96 | ||
|baud rate / 100 | |baud rate / 100 | ||
|RS-485 | |скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 | ||
| rowspan="3" |>3.1.0 | | rowspan="3" |>3.1.0 | ||
|- | |- | ||
Строка 190: | Строка 192: | ||
|0 | |0 | ||
| | | | ||
| | |настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | ||
|- | |- | ||
|112 | |112 | ||
Строка 197: | Строка 199: | ||
|2 | |2 | ||
| | | | ||
| | |количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | ||
|- | |- | ||
| | | | ||
Строка 211: | Строка 213: | ||
|RW | |RW | ||
|0 | |0 | ||
| | |отличное от 0 | ||
| | |запись в регистр вызывает перезагрузку модуля без сохранения состояния | ||
| | | | ||
|- | |- | ||
Строка 220: | Строка 222: | ||
| - | | - | ||
|mV | |mV | ||
| | |текущее напряжение питания модуля | ||
| | | | ||
|- | |- | ||
Строка 228: | Строка 230: | ||
|1 | |1 | ||
| | | | ||
| | |Modbus-адрес устройства | ||
| | | | ||
|- | |- | ||
| 129 (0x81) || holding || RW|| 0 || 0 | | 129 (0x81) || holding || RW || 0 || 0 или 1 || Переход в [[WB-MCU-Flasher|режим загрузчика]] || начиная с прошивки 4.5.0 | ||
|- | |- | ||
|200-206 | |200-206 | ||
|input | |input | ||
|R | |R | ||
| | |см. [[Sensors Modbus Management|Сигнатура устройства]] | ||
| | | | ||
| | |сигнатура | ||
| | | | ||
|- | |- | ||
Строка 245: | Строка 247: | ||
|R | |R | ||
| | | | ||
|__date__ | |__date__ __time__ | ||
| | |дата сборки прошивки | ||
| | | | ||
|- | |- | ||
Строка 254: | Строка 256: | ||
|216 | |216 | ||
|°C × 100 (signed) | |°C × 100 (signed) | ||
| | |Компенсация самонагрева встроенного датчика температуры. | ||
Значение регистра вычитается из температуры, измеренной встроенным датчиком (регистр 6) | |||
| | | | ||
|- | |- | ||
Строка 262: | Строка 264: | ||
|R | |R | ||
| | | | ||
| | |строка, null-terminated | ||
| | |версия прошивки | ||
| | | | ||
|- | |- | ||
Строка 271: | Строка 273: | ||
| | | | ||
|32-bit unsigned int | |32-bit unsigned int | ||
| | |уникальный идентификатор (S/N) | ||
| | | | ||
|- | |- | ||
Строка 286: | Строка 288: | ||
|RW | |RW | ||
|0 | |0 | ||
|0 | |0 или 1 | ||
| | |Режим входа №1: 0 - 1-wire, 1 - дискретный вход | ||
| rowspan="6" |>=4.0.0 | | rowspan="6" |>=4.0.0 | ||
|- | |- | ||
Строка 294: | Строка 296: | ||
|RW | |RW | ||
|0 | |0 | ||
|0 | |0 или 1 | ||
| | |Режим входа №2: 0 - 1-wire, 1 - дискретный вход | ||
|- | |- | ||
|277 | |277 | ||
Строка 302: | Строка 304: | ||
| | | | ||
|16-bit unsigned int | |16-bit unsigned int | ||
| | |Счетчик срабатываний для входа №1 | ||
|- | |- | ||
|278 | |278 | ||
Строка 309: | Строка 311: | ||
| | | | ||
|16-bit unsigned int | |16-bit unsigned int | ||
| | |Счетчик срабатываний для входа №2 | ||
|- | |- | ||
|0 | |0 | ||
Строка 315: | Строка 317: | ||
|R | |R | ||
| | | | ||
|0 | |0 или 1 | ||
| | |Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0. | ||
|- | |- | ||
|1 | |1 | ||
Строка 322: | Строка 324: | ||
|R | |R | ||
| | | | ||
|0 | |0 или 1 | ||
| | |Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0. | ||
|- | |- | ||
|16 | |16 | ||
Строка 329: | Строка 331: | ||
|R | |R | ||
| | | | ||
|0 | |0 или 1 | ||
| | |Статус опроса датчика 1-Wire входа №1: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается | ||
| rowspan="2" | | | rowspan="2" |начиная с прошивки 4.6.0 | ||
|- | |- | ||
|17 | |17 | ||
Строка 337: | Строка 339: | ||
|R | |R | ||
| | | | ||
|0 | |0 или 1 | ||
| | |Статус опроса датчика 1-Wire входа №2: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается | ||
|} | |} | ||
== | ==Сигнатура устройства == | ||
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="font-weight: bold;" | | ! style="font-weight: bold;" | Модуль | ||
! style="font-weight: bold;" | | ! style="font-weight: bold;" | Сигнатура | ||
|- | |- | ||
| WB-M1W2 | | WB-M1W2 | ||
Строка 353: | Строка 355: | ||
|} | |} | ||
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | |||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | |||
== | == Работа преобразователя с контроллером Wiren Board == | ||
Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2. | |||
Описание каналов шаблона | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! Название канала | ||
! | !Назначение | ||
|- | |- | ||
|Input Voltage|| | |Input Voltage||Напряжение питания модуля | ||
|- | |- | ||
|Internal Temperature Sensor|| | |Internal Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | ||
|- | |- | ||
|External Sensor 1 | |External Sensor 1 | ||
| | |Температура внешнего цифрового датчика, подключенного к порту 1. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | ||
|- | |- | ||
|External Sensor 2 | |External Sensor 2 | ||
| | |Температура внешнего цифрового датчика, подключенного к порту 2. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | ||
|- | |- | ||
|Serial NO|| | |Serial NO||Серийный номер модуля, может потребоваться при обращении в техподдержку. | ||
|- | |- | ||
|} | |} | ||
С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера. | |||
Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI": | |||
[[File:M1w2 as discrete inputs example.png|400px|thumb|center| | [[File:M1w2 as discrete inputs example.png|400px|thumb|center|Пример настройки WB-M1W2 на дискретные входы.]] | ||
Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше): | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! Название канала | ||
! | !Назначение | ||
|- | |- | ||
|Discrete Input 1 | |Discrete Input 1 | ||
|| | ||Состояние входа 1. 0 - разомкнут, 1 - замкнут на GND | ||
|- | |- | ||
|Discrete Input 2 | |Discrete Input 2 | ||
|| | ||Состояние входа 2. 0 - разомкнут, 1 - замкнут на GND | ||
|- | |- | ||
|Counter 1 | |Counter 1 | ||
| | |Счётчик срабатываний входа 1 | ||
|- | |- | ||
|Counter 2 | |Counter 2 | ||
| | |Счётчик срабатываний входа 2 | ||
|} | |} | ||
== | == Управление модулем из командной строки == | ||
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | |||
=== | === Пример чтения регистров === | ||
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку: | |||
<syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ | <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ | ||
Строка 412: | Строка 414: | ||
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | ||
В результате выполнения команды получаем строку, например '''WBM1W2'''. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1. | |||
== | == Обновление прошивки устройства == | ||
Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье [[WB-MCU-Flasher|Загрузка прошивок на устройства Wiren Board]]. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье [[Firmware_Changelog]]. | |||
== | ==Изображения и чертежи устройства== | ||
{{Wbincludes:WBPictures|1}} | {{Wbincludes:WBPictures|1}} |
Версия 13:23, 19 июля 2019
WB-M1W2 is a compact bus coupler, designed for polling two digital 1-Wire
thermometers (DS18B20) via Modbus RTU Protocol on RS-485 bus.
Inputs
The module is powered by screw terminals V+ and GND, RS-485 line is connected to inputs A and B.
Version 1: Two external DS18B20 temperature sensors are connected via a parasitic power supply circuit, when the +5V and GND pins are connected to the GND terminal, the data output is connected to 1-Wire terminal 1 or 2.
Version 2: Two external temperature sensor DS18B20 is connected on an active power circuit, connect the sensor GND to the GND terminal, a data output connected to terminal 1 or 2 1-Wire, the sensor supply voltage is applied from the output to 5V out. In version 2 there is an additional protection of inputs 1-Wire.
Also, the device has an internal temperature sensor (NTC-thermistor).
In firmware version 4.0.0 and higher, it is also possible to configure the 1-Wire inputs of the module as discrete or counting inputs.
Монтаж
Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров.
Технические характеристики
Параметр | Значение |
---|---|
Питание | |
Напряжение питания | 9 — 24 В постоянного тока |
Потребляемая мощность |
0.1 Вт |
Клеммники и сечение проводов | |
Рекомендуемое сечение провода с НШВИ, мм2 | 0,75 — 1 |
Длина стандартной втулки НШВИ, мм | 8 |
Момент затяжки винтов, Н∙м | 0,2 |
Датчики | |
Внешние датчики | Возможность подключения двух цифровых датчиков температуры DS18B20. |
Внутренний датчик | Встроенный NTC-термистор |
Входы (подключаются вместо внешних датчиков) | |
Количество дискретных входов | 2 |
Тип входов | "Сухой контакт", неизолированные |
Напряжение в разомкнутом состоянии | 3.3 V |
Управление | |
Интерфейс управления | RS-485 |
Изоляция интерфейса | Неизолированный |
Протокол обмена данными | Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке |
Параметры интерфейса RS-485 |
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:
|
Габариты | |
Габариты |
|
Условия эксплуатации | |
Температура воздуха | -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 | |
20 | input | R | 0 | °C × 16 (signed) | Температура с первого внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 16). | начиная с прошивки 4.6.0 |
21 | input | R | 0 | °C × 16 (signed) | Температура с второго внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 17). | |
99 | holding | RW | 16 | 1 = 0.0625C | (доступно с версии прошивки 3.10.0)
Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на значение регистра*0.0625C. Запишите 0, чтобы отключить фильтр. |
3.10.0 |
104-105 | input | R | 32-bit unsigned int | Время работы устройства (uptime counter) в секундах | ||
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-адрес устройства | ||
129 (0x81) | holding | RW | 0 | 0 или 1 | Переход в режим загрузчика | начиная с прошивки 4.5.0 |
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) | ||
275 | holding | RW | 0 | 0 или 1 | Режим входа №1: 0 - 1-wire, 1 - дискретный вход | >=4.0.0 |
276 | holding | RW | 0 | 0 или 1 | Режим входа №2: 0 - 1-wire, 1 - дискретный вход | |
277 | input | R | 16-bit unsigned int | Счетчик срабатываний для входа №1 | ||
278 | input | R | 16-bit unsigned int | Счетчик срабатываний для входа №2 | ||
0 | discrete | R | 0 или 1 | Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0. | ||
1 | discrete | R | 0 или 1 | Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0. | ||
16 | discrete | R | 0 или 1 | Статус опроса датчика 1-Wire входа №1: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается | начиная с прошивки 4.6.0 | |
17 | discrete | R | 0 или 1 | Статус опроса датчика 1-Wire входа №2: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается |
Сигнатура устройства
По адресу 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 предусмотрен соответствующий шаблон WB-M1W2.
Описание каналов шаблона
Название канала | Назначение |
---|---|
Input Voltage | Напряжение питания модуля |
Internal Temperature Sensor | Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. |
External Sensor 1 | Температура внешнего цифрового датчика, подключенного к порту 1. Если датчик отсутствует или неисправен, его название выделяется красным цветом. |
External Sensor 2 | Температура внешнего цифрового датчика, подключенного к порту 2. Если датчик отсутствует или неисправен, его название выделяется красным цветом. |
Serial NO | Серийный номер модуля, может потребоваться при обращении в техподдержку. |
С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера.
Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI":
Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше):
Название канала | Назначение |
---|---|
Discrete Input 1 | Состояние входа 1. 0 - разомкнут, 1 - замкнут на GND |
Discrete Input 2 | Состояние входа 2. 0 - разомкнут, 1 - замкнут на GND |
Counter 1 | Счётчик срабатываний входа 1 |
Counter 2 | Счётчик срабатываний входа 2 |
Управление модулем из командной строки
Программное обеспечение контроллера 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'`
В результате выполнения команды получаем строку, например WBM1W2. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1.
Обновление прошивки устройства
Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье Загрузка прошивок на устройства Wiren Board. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье Firmware_Changelog.
Изображения и чертежи устройства
По ссылкам ниже вы можете скачать изображения и чертежи устройства WB-M1W2.
Corel Draw 2018: WB_M1W2.cdr.zip
Corel Draw PDF: WB_M1W2.cdr.pdf
Autocad 2013 DXF: WB_M1W2.dxf.zip
Autocad PDF: WB_M1W2.pdf