WB-M1W2 1-Wire to Modbus Temperature Measurement Module: различия между версиями
м |
(Отметить эту версию для перевода) |
||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
<!--T:1--> | |||
[[Файл:WB-M1W2.jpg|мини|Модуль WB-M1W2]] | [[Файл:WB-M1W2.jpg|мини|Модуль WB-M1W2]] | ||
[[Файл:WB-M1W2_new.png|мини|Модуль WB-M1W2, версия 2]] | [[Файл:WB-M1W2_new.png|мини|Модуль WB-M1W2, версия 2]] | ||
<!--T:2--> | |||
{{DISPLAYTITLE:WB-M1W2 Преобразователь для термометров 1-Wire}}{{#vardefine:ProductFullName1|Преобразователь для термометров 1-Wire WB-M1W2}} {{#vardefine:FileName1|WB_M1W2}} {{#vardefine:ProductName1|WB-M1W2}} | {{DISPLAYTITLE:WB-M1W2 Преобразователь для термометров 1-Wire}}{{#vardefine:ProductFullName1|Преобразователь для термометров 1-Wire WB-M1W2}} {{#vardefine:FileName1|WB_M1W2}} {{#vardefine:ProductName1|WB-M1W2}} | ||
'''[https://wirenboard.com/ru/product/WB-M1W2/ Купить в интернет-магазине]''' | '''[https://wirenboard.com/ru/product/WB-M1W2/ Купить в интернет-магазине]''' | ||
<!--T:3--> | |||
WB-M1W2 - компактный преобразователь, предназначенный для опроса '''двух''' цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485. | WB-M1W2 - компактный преобразователь, предназначенный для опроса '''двух''' цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485. | ||
== Входы == | == Входы == <!--T:4--> | ||
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. | Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. | ||
<!--T:5--> | |||
'''Версия 1:''' Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire. | '''Версия 1:''' Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire. | ||
<!--T:6--> | |||
'''Версия 2:''' Два внешних датчика температуры DS18B20 подключаются по активной схеме питания, GND датчиков подключается к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire, напряжение питания датчиков подается с вывода 5V out. В версии 2 имеется дополнительная защита входов 1-Wire. | '''Версия 2:''' Два внешних датчика температуры DS18B20 подключаются по активной схеме питания, GND датчиков подключается к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire, напряжение питания датчиков подается с вывода 5V out. В версии 2 имеется дополнительная защита входов 1-Wire. | ||
<!--T:7--> | |||
Также в устройстве присутствует внутренний датчик температуры (NTC-термистор). | Также в устройстве присутствует внутренний датчик температуры (NTC-термистор). | ||
<!--T:8--> | |||
В версии прошивки 4.0.0 и выше возможно также конфигурирование входов 1-Wire модуля как дискретных или счётных входов. | В версии прошивки 4.0.0 и выше возможно также конфигурирование входов 1-Wire модуля как дискретных или счётных входов. | ||
==Монтаж== | ==Монтаж== <!--T:9--> | ||
[[Файл:WB-M1W2+DS18B20.png|650px|thumb|center|Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)]] | [[Файл:WB-M1W2+DS18B20.png|650px|thumb|center|Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)]] | ||
Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров. | Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров. | ||
== Технические характеристики == | == Технические характеристики == <!--T:10--> | ||
{| class="wikitable" | {| class="wikitable" | ||
! style="text-align: center;" | Параметр | ! style="text-align: center;" | Параметр | ||
Строка 102: | Строка 109: | ||
|} | |} | ||
== Дополнительные Функции== | == Дополнительные Функции== <!--T:11--> | ||
<!--T:12--> | |||
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80). | '''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80). | ||
<!--T:13--> | |||
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | ||
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | ||
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | ||
== Карты регистров == | == Карты регистров == <!--T:14--> | ||
<!--T:15--> | |||
{| class="wikitable" | {| class="wikitable" | ||
! rowspan="2" |Регистр/ адрес | ! rowspan="2" |Регистр/ адрес | ||
Строка 172: | Строка 182: | ||
<!--T:16--> | |||
|104-105 || input || R || || 32-bit unsigned int | |104-105 || input || R || || 32-bit unsigned int | ||
|| Время работы устройства (uptime counter) в секундах | || Время работы устройства (uptime counter) в секундах | ||
Строка 179: | Строка 190: | ||
<!--T:17--> | |||
|110 | |110 | ||
|holding | |holding | ||
Строка 343: | Строка 355: | ||
|} | |} | ||
==Сигнатура устройства == | ==Сигнатура устройства == <!--T:18--> | ||
<!--T:19--> | |||
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | ||
<!--T:20--> | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="font-weight: bold;" | Модуль | ! style="font-weight: bold;" | Модуль | ||
Строка 355: | Строка 369: | ||
|} | |} | ||
<!--T:21--> | |||
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | ||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | ||
== Работа преобразователя с контроллером Wiren Board == | == Работа преобразователя с контроллером Wiren Board == <!--T:22--> | ||
Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2. | Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2. | ||
<!--T:23--> | |||
Описание каналов шаблона | Описание каналов шаблона | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 380: | Строка 396: | ||
|} | |} | ||
<!--T:24--> | |||
С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера. | С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера. | ||
<!--T:25--> | |||
Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI": | Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI": | ||
<!--T:26--> | |||
[[File:M1w2 as discrete inputs example.png|400px|thumb|center|Пример настройки WB-M1W2 на дискретные входы.]] | [[File:M1w2 as discrete inputs example.png|400px|thumb|center|Пример настройки WB-M1W2 на дискретные входы.]] | ||
<!--T:27--> | |||
Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше): | Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше): | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 404: | Строка 424: | ||
|} | |} | ||
== Управление модулем из командной строки == | == Управление модулем из командной строки == <!--T:28--> | ||
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | ||
=== Пример чтения регистров === | === Пример чтения регистров === <!--T:29--> | ||
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку: | Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку: | ||
<!--T:30--> | |||
<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 \ | ||
-a1 -t0x03 -r200 -c 6 | \ | -a1 -t0x03 -r200 -c 6 | \ | ||
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> | ||
<!--T:31--> | |||
В результате выполнения команды получаем строку, например '''WBM1W2'''. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1. | В результате выполнения команды получаем строку, например '''WBM1W2'''. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1. | ||
== Обновление прошивки устройства == | == Обновление прошивки устройства == <!--T:32--> | ||
Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье [[WB-MCU-Flasher|Загрузка прошивок на устройства Wiren Board]]. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье [[Firmware_Changelog]]. | Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье [[WB-MCU-Flasher|Загрузка прошивок на устройства Wiren Board]]. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье [[Firmware_Changelog]]. | ||
==Изображения и чертежи устройства== | ==Изображения и чертежи устройства== <!--T:33--> | ||
{{Wbincludes:WBPictures|1}} | {{Wbincludes:WBPictures|1}} | ||
</translate> | </translate> |