Wb-mqtt-serial driver: различия между версиями
Matveevrj (обсуждение | вклад) |
|||
(не показано 199 промежуточных версий 9 участников) | |||
Строка 1: | Строка 1: | ||
'''Внимание!''' В этой статье даётся упрощённое и, возможно, устаревшее описание драйвера, работающего с устройствами Modbus и Uniel и передающего сообщения в MQTT. Полное актуальное описание смотрите на https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus | |||
== | |||
== Краткое описание драйвера == | |||
== | В настоящее время поддерживается работа с устройствами протоколов Modbus RTU и Uniel, подключаемыми через RS-485. | ||
Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли: | |||
<syntaxhighlight lang="bash"> | |||
service wb-homa-modbus stop #остановить драйвер | |||
service wb-homa-modbus start #запустить драйвер | |||
wb-homa-modbus -c /etc/wb-homa-modbus.conf -d #запустить драйвер в принудительном отладочном режиме | |||
</syntaxhighlight> | |||
=== Конфигурационный файл === | |||
Для работы драйвера нужно создать файл <code>/etc/wb-homa-modbus.conf</code>. Для этого: | |||
#Зайдите в консоль устройства через [[Debug UART]] или по [[SSH]] | |||
#Создайте файл конфигурации, скопировав файл-образец: | |||
#:<syntaxhighlight lang="bash"> | |||
cp /etc/wb-homa-modbus.conf.sample /etc/wb-homa-modbus.conf #скопировать файл-образец в файл настроек | |||
</syntaxhighlight> | |||
#Откройте созданный файл для редактирования: | |||
#: <syntaxhighlight lang="bash"> | |||
mcedit /etc/wb-homa-modbus.conf #открыть файл в псевдографическом редакторе | |||
</syntaxhighlight> | |||
#Файл имеет структуру ''порты (ports) -> устройства (devices)''. | |||
#: | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
"debug": false, | |||
"ports": [ | |||
{ | |||
"path" : "/dev/ttyNSC0", | |||
"baud_rate": 9600, | |||
"parity": "N", | |||
"data_bits": 8, | |||
"stop_bits": 2, | |||
"poll_interval": 10, | |||
"enabled": true, | |||
"devices" : [ | |||
{ | |||
"device_type" : "WB-MRM2", | |||
"slave_id": 25, | |||
"enabled": true | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
В файле есть описания физических портов контроллера, с которыми работает драйвер. | |||
Для каждого порта указываются настройки (скорость, чётность и т.п.), а также протокол. | |||
Полное описание | Для каждого порта определён также список устройств, которые подключены к этому порту. | ||
Для каждого устройства обязательно указывается его уникальный идентификатор на шине (подробнее про это можно прочитать в статье [[RS-485]]) - slave_id. | |||
Кроме этого, для устройства можно задать его id в системе [[MQTT]], название устройства, а также описание каналов и регистров. Полное описание формата см. в [https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus подробной документации]. | |||
Для многих устройств уже существуют шаблоны, которые позволяют подключать эти устройства простым способом. Минимальное описание одного устройства, таким образом, имеет вид: | |||
<syntaxhighlight lang="javascript"> | |||
<syntaxhighlight lang=" | { | ||
"slave_id": "0x06", | |||
"device_type" : "WB-MRM2" | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Здесь <code>slave_id</code> - идентификатор устройства на шине, а <code> device_type </code> - тип устройства. | |||
Поддерживаемые типы устройств: [https://github.com/contactless/wb-homa-drivers/blob/master/README.md#%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2-device_type список в документации]. | |||
Пример конфигурационного файла <code> /etc/wb-homa-modbus.conf </code> : | |||
<syntaxhighlight lang="javascript"> | |||
// Configuration options | |||
{ | |||
"debug": false, | |||
"ports": [ | |||
{ | |||
"path" : "/dev/ttyNSC1", | |||
"baud_rate": 9600, | |||
"parity": "N", | |||
"data_bits": 8, | |||
"stop_bits": 2, | |||
"poll_interval": 0, | |||
"enabled": true, | |||
"devices" : [ | |||
{ | |||
"name": "DRB88", | |||
"id": "drb88", | |||
"enabled": true, | |||
"slave_id": "0x23", | |||
"device_type" : "DRB88" | |||
}, | |||
{ | |||
"slave_id": "0x26", | |||
"device_type" : "MSU24" | |||
}, | |||
{ | |||
"slave_id": "0x31", | |||
"device_type" : "MSU34" | |||
}, | |||
{ | |||
"slave_id": "0x04", | |||
"device_type" : "LC-103" | |||
}, | |||
{ | |||
"device_type" : "DDL24", | |||
"slave_id" : "0x20" | |||
}, | |||
{ | |||
"enabled": true, | |||
"slave_id": "0x06", | |||
"device_type" : "WB-MRM2" | |||
}, | |||
{ | |||
"slave_id" : 16, | |||
"device_type" : "WB-MRGB" | |||
} | |||
] | |||
}, | |||
{ | |||
"path" : "/dev/ttyNSC0", | |||
"type": "uniel", | |||
"poll_interval": 10, | |||
"enabled": true, | |||
"devices" : [ | |||
{ | |||
"device_type" : "UCH-M141RC", | |||
"slave_id": 1 | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Подключение устройств == | ||
В | В секции приведены подробные описания устройств, а также примеры конфигурационных файлов для разных вариантов использования. | ||
По-умолчанию можно пользоваться простым описанием устройств с помощью шаблонов device_type, как указано выше. | |||
<3> | ====MSU34+TLP, MSU24 и MSU21 и подобные устройства==== | ||
</ | |||
Сайт производителя - http://www.razumdom.ru/ | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/MSU21.pdf MSU21] | |||
[http://www.razumdom.ru/userfiles/file/Modbus/MSU24.pdf MSU24] | |||
[http://www.razumdom.ru/userfiles/file/Modbus/MSU34.pdf MSU34] | |||
Устройства выдают значения с датчиков через | |||
input-регистры. Для значений температуры используются | |||
8-битные знаковые значения без расширения знака | |||
на старшие 8 бит input-регистра, вследствие | |||
чего для значений температуры в конфигурационном | |||
файле необходимо указывать "format": "s8". | |||
Подключаемые к устройству датчики конфигурируются | |||
через holding-регистры (см. описание). Для конфигурации | |||
датчиков можно использовать команду <code>modbus_client</code>, | |||
или сделать setup-секцию в конфигурации драйвера. | |||
Для установки адреса slave можно использовать скрипт | |||
set-rd-address.sh. При этом необходимо убедиться, что к | |||
порту RS-485 было подлкючено только то устройство, | |||
у которого необходимо сменить адрес, затем выполнить | |||
команду: | |||
<pre> | |||
set-rd.address.sh /dev/ttyNSC0 0x02 | |||
</pre> | |||
Вместо 0x02 можно задать любой другой адрес | |||
в диапазоне от 0 до 247 (0xf7). | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"debug": false, | |||
"ports": [ | |||
{ | |||
"path" : "/dev/ttyNSC0", | |||
"baud_rate": 9600, | |||
"parity": "N", | |||
"data_bits": 8, | |||
"stop_bits": 2, | |||
"poll_interval": 10, | |||
"enabled": true, | |||
"devices" : [ | |||
{ | |||
"name": "MSU34+TLP", | |||
"id": "msu34tlp", | |||
"slave_id": 2, | |||
"enabled": false, | |||
"channels": [ | |||
{ | |||
"name" : "Temp 1", | |||
"reg_type" : "input", | |||
"address" : 0, | |||
"type": "temperature", | |||
"format": "s8" | |||
}, | |||
{ | |||
"name" : "Illuminance", | |||
"reg_type" : "input", | |||
"address" : 1, | |||
"type": "text" | |||
}, | |||
{ | |||
"name" : "Pressure", | |||
"reg_type" : "input", | |||
"address" : 2, | |||
"type": "text", | |||
"scale": 0.075 | |||
}, | |||
{ | |||
"name" : "Temp 2", | |||
"reg_type" : "input", | |||
"address" : 3, | |||
"type": "temperature", | |||
"format": "s8" | |||
} | |||
] | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
Пример конфигурации MSU21 с секцией инициализации ("setup"): | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"name": "MSU21", | |||
"id": "msu21", | |||
"slave_id": 24, | |||
"enabled": true, | |||
"setup": [ | |||
{ | |||
"title": "Input 0 type", | |||
"address": 1, | |||
"value": 2 | |||
}, | |||
{ | |||
"title": "Input 0 module", | |||
"address": 3, | |||
"value": 6 | |||
} | |||
], | |||
"channels": [ | |||
{ | |||
"name" : "Temperature", | |||
"reg_type" : "input", | |||
"address" : 0, | |||
"type": "temperature", | |||
"format": "s8" | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Четырёхканальный (RGBW) диммер светодиодов DDL24==== | |||
Сайт производителя - [http://www.razumdom.ru/ www.razumdom.ru] | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/DDL24.pdf DDL24] | |||
Устройство предназначено для управления светодиодными | |||
лентами RGBW сигналами ШИМ или для управления приводами | |||
сигналами 0-10 В. | |||
Управление осуществляется записью значений в | |||
holding-регистры. | |||
Как и в случае с устройствами MSU*, адрес | |||
modbus slave устанавливается командой | |||
set-rd-address.sh. | |||
<pre> | |||
set-rd-address.sh /dev/ttyNSC0 0x17 0x00 | |||
</pre> | |||
Здесь происходит установка slave-адреса | |||
в 0x17. Дополнительное значение | |||
0x00 нужно, т.к. DDL24 использует для | |||
конфигурации адреса holding-регистр 0x00, | |||
а не 0x80, используемый скриптом set-rd-address.sh | |||
по умолчанию. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"name": "DDL24", | |||
"id": "ddl24", | |||
"enabled": true, | |||
"slave_id": 23, | |||
"channels": [ | |||
{ | |||
"name" : "Red", | |||
"reg_type" : "holding", | |||
"address" : 4, | |||
"type": "range", | |||
"max": 255 | |||
}, | |||
{ | |||
"name" : "Green", | |||
"reg_type" : "holding", | |||
"address" : 5, | |||
"type": "range", | |||
"max": 255 | |||
}, | |||
{ | |||
"name" : "Blue", | |||
"reg_type" : "holding", | |||
"address" : 6, | |||
"type": "range", | |||
"max": 255 | |||
}, | |||
{ | |||
"name" : "White", | |||
"reg_type" : "holding", | |||
"address" : 7, | |||
"type": "range", | |||
"max": 255 | |||
}, | |||
{ | |||
"name" : "RGB", | |||
"reg_type" : "holding", | |||
"address" : 8, | |||
"type": "range", | |||
"max": 100 | |||
}, | |||
{ | |||
"name" : "White1", | |||
"reg_type" : "holding", | |||
"address" : 9, | |||
"type": "range", | |||
"max": 100 | |||
}, | |||
{ | |||
"name" : "Voltage", | |||
"reg_type" : "holding", | |||
"address" : 18, | |||
"type": "text" | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Исполнительный модуль релейный восьмиканальный DRB88==== | |||
Сайт производителя - [http://www.razumdom.ru/ www.razumdom.ru] | |||
Документация: | |||
[http://www.razumdom.ru/userfiles/file/Modbus/DRB88S16_v14.pdf DRB88] | |||
Исполнительные модули DRB88 предназначены для создания | |||
систем автоматизации зданий. При работе по протоколу Modbus | |||
поддерживается работа с реле через coils и с входами | |||
через input registers. | |||
Для установки адреса slave можно использовать скрипт | |||
set-rd-address.sh. При этом необходимо убедиться, что к | |||
порту RS-485 было подлкючено только то устройство, | |||
у которого необходимо сменить адрес, затем выполнить | |||
команду: | |||
<pre> | |||
set-rd.address.sh /dev/ttyNSC0 0x16 | |||
</pre> | |||
Вместо 0x16 можно задать любой другой адрес | |||
в диапазоне от 0 до 247 (0xf7). | |||
Настройка типов input'ов осуществляется через | |||
holding-регистры (см. описание). Для задания конфигурации | |||
можно использовать команду <code>modbus_client</code>, | |||
или сделать setup-секцию в конфигурации драйвера. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
"name": "DRB88", | |||
"id": "drb88", | |||
"enabled": true, | |||
"slave_id": 22, | |||
"setup": [ | |||
{ | |||
"title": "Input 0 type", | |||
"address": 1, | |||
"value": 1 | |||
}, | |||
{ | |||
"title": "Input 0 module", | |||
"address": 3, | |||
"value": 3 | |||
} | |||
], | |||
"channels": [ | |||
{ | |||
"name" : "Relay 1", | |||
"reg_type" : "coil", | |||
"address" : 0, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 2", | |||
"reg_type" : "coil", | |||
"address" : 1, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 3", | |||
"reg_type" : "coil", | |||
"address" : 2, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 4", | |||
"reg_type" : "coil", | |||
"address" : 3, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 5", | |||
"reg_type" : "coil", | |||
"address" : 4, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 6", | |||
"reg_type" : "coil", | |||
"address" : 5, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 7", | |||
"reg_type" : "coil", | |||
"address" : 6, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 8", | |||
"reg_type" : "coil", | |||
"address" : 7, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Input 1", | |||
"reg_type" : "input", | |||
"address" : 0, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 2", | |||
"reg_type" : "input", | |||
"address" : 1, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 3", | |||
"reg_type" : "input", | |||
"address" : 2, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 4", | |||
"reg_type" : "input", | |||
"address" : 3, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 5", | |||
"reg_type" : "input", | |||
"address" : 4, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 6", | |||
"reg_type" : "input", | |||
"address" : 5, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 7", | |||
"reg_type" : "input", | |||
"address" : 6, | |||
"type": "switch", | |||
"on_value": 101 | |||
}, | |||
{ | |||
"name" : "Input 8", | |||
"reg_type" : "input", | |||
"address" : 7, | |||
"type": "switch", | |||
"on_value": 101 | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
====Модуль ввода-вывода ICP DAS tM-P3R3==== | |||
Описание: | |||
[http://www.icpdas.com/root/product/solutions/remote_io/rs-485/tm-series/tm-p3r3.html tM-P3R3] | |||
и | |||
[http://www.icpdas.com/root/product/solutions/datasheet/tm-series/tM-Series_DIO_User_Manual.pdf User_Manual] | |||
Модуль имеет 3 канала дискретного ввода, доступных через discrete inputs, | |||
и 3 канала релейного вывода, доступного через coils. | |||
Пример конфигурации: | |||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | |||
<pre> | |||
{ | |||
</ | "name": "tM-P3R3", | ||
"id": "tmp3r3", | |||
"enabled": true, | |||
"slave_id": 1, | |||
"channels": [ | |||
{ | |||
"name" : "Relay 0", | |||
"reg_type" : "coil", | |||
"address" : 0, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 1", | |||
"reg_type" : "coil", | |||
"address" : 1, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 2", | |||
"reg_type" : "coil", | |||
"address" : 2, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Input 0", | |||
"reg_type" : "discrete", | |||
"address" : 32 | |||
}, | |||
{ | |||
"name" : "Input 1", | |||
"reg_type" : "discrete", | |||
"address" : 33 | |||
}, | |||
{ | |||
"name" : "Input 2", | |||
"reg_type" : "discrete", | |||
"address" : 34 | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> | |||
== | ====Модуль управления освещением ICP DAS LC-103==== | ||
Описание: | |||
[http://www.icpdas.com/root/product/solutions/remote_io/rs-485/lighting_control/lc-103.html LC-103] | |||
и | |||
[http://www.icpdas-europe.com/uploads/tx_v4icpdascatalog/K128992/web/icpdas/manual-lc-103.pdf User manual] | |||
Модуль имеет 3 релейных вывода и один дискретный вход, допускающий | |||
подключение к сети переменного тока. | |||
Адрес Modbus slave задаётся при помощи физического переключателя. | |||
Пример конфигурации: | |||
== | <div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | ||
<pre> | |||
{ | |||
"name": "LC-103", | |||
"id": "lc103", | |||
"enabled": true, | |||
"slave_id": 4, | |||
"channels": [ | |||
{ | |||
"name" : "Relay 1", | |||
"reg_type" : "coil", | |||
"address" : 0, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 2", | |||
"reg_type" : "coil", | |||
"address" : 1, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Relay 3", | |||
"reg_type" : "coil", | |||
"address" : 2, | |||
"type": "switch" | |||
}, | |||
{ | |||
"name" : "Switch AC In", | |||
"reg_type" : "discrete", | |||
"address" : 0 | |||
} | |||
] | |||
} | |||
</pre> | |||
</div> |
Версия 19:19, 6 мая 2015
Внимание! В этой статье даётся упрощённое и, возможно, устаревшее описание драйвера, работающего с устройствами Modbus и Uniel и передающего сообщения в MQTT. Полное актуальное описание смотрите на https://github.com/contactless/wb-homa-drivers/#wb-homa-modbus
Краткое описание драйвера
В настоящее время поддерживается работа с устройствами протоколов Modbus RTU и Uniel, подключаемыми через RS-485.
Конфигурация драйвера задаётся в файле /etc/wb-homa-modbus.conf. Если такой файл создан, драйвер запускается при загрузке контроллера автоматически. Также драйвером можно управлять в ручном режиме из консоли:
service wb-homa-modbus stop #остановить драйвер
service wb-homa-modbus start #запустить драйвер
wb-homa-modbus -c /etc/wb-homa-modbus.conf -d #запустить драйвер в принудительном отладочном режиме
Конфигурационный файл
Для работы драйвера нужно создать файл /etc/wb-homa-modbus.conf
. Для этого:
- Зайдите в консоль устройства через Debug UART или по SSH
- Создайте файл конфигурации, скопировав файл-образец:
cp /etc/wb-homa-modbus.conf.sample /etc/wb-homa-modbus.conf #скопировать файл-образец в файл настроек
- Откройте созданный файл для редактирования:
mcedit /etc/wb-homa-modbus.conf #открыть файл в псевдографическом редакторе
- Файл имеет структуру порты (ports) -> устройства (devices).
{
"debug": false,
"ports": [
{
"path" : "/dev/ttyNSC0",
"baud_rate": 9600,
"parity": "N",
"data_bits": 8,
"stop_bits": 2,
"poll_interval": 10,
"enabled": true,
"devices" : [
{
"device_type" : "WB-MRM2",
"slave_id": 25,
"enabled": true
}
]
}
]
}
В файле есть описания физических портов контроллера, с которыми работает драйвер.
Для каждого порта указываются настройки (скорость, чётность и т.п.), а также протокол.
Для каждого порта определён также список устройств, которые подключены к этому порту. Для каждого устройства обязательно указывается его уникальный идентификатор на шине (подробнее про это можно прочитать в статье RS-485) - slave_id. Кроме этого, для устройства можно задать его id в системе MQTT, название устройства, а также описание каналов и регистров. Полное описание формата см. в подробной документации.
Для многих устройств уже существуют шаблоны, которые позволяют подключать эти устройства простым способом. Минимальное описание одного устройства, таким образом, имеет вид:
{
"slave_id": "0x06",
"device_type" : "WB-MRM2"
}
Здесь slave_id
- идентификатор устройства на шине, а device_type
- тип устройства.
Поддерживаемые типы устройств: список в документации.
Пример конфигурационного файла /etc/wb-homa-modbus.conf
:
// Configuration options
{
"debug": false,
"ports": [
{
"path" : "/dev/ttyNSC1",
"baud_rate": 9600,
"parity": "N",
"data_bits": 8,
"stop_bits": 2,
"poll_interval": 0,
"enabled": true,
"devices" : [
{
"name": "DRB88",
"id": "drb88",
"enabled": true,
"slave_id": "0x23",
"device_type" : "DRB88"
},
{
"slave_id": "0x26",
"device_type" : "MSU24"
},
{
"slave_id": "0x31",
"device_type" : "MSU34"
},
{
"slave_id": "0x04",
"device_type" : "LC-103"
},
{
"device_type" : "DDL24",
"slave_id" : "0x20"
},
{
"enabled": true,
"slave_id": "0x06",
"device_type" : "WB-MRM2"
},
{
"slave_id" : 16,
"device_type" : "WB-MRGB"
}
]
},
{
"path" : "/dev/ttyNSC0",
"type": "uniel",
"poll_interval": 10,
"enabled": true,
"devices" : [
{
"device_type" : "UCH-M141RC",
"slave_id": 1
}
]
}
]
}
Подключение устройств
В секции приведены подробные описания устройств, а также примеры конфигурационных файлов для разных вариантов использования. По-умолчанию можно пользоваться простым описанием устройств с помощью шаблонов device_type, как указано выше.
MSU34+TLP, MSU24 и MSU21 и подобные устройства
Сайт производителя - http://www.razumdom.ru/
Документация:
Устройства выдают значения с датчиков через input-регистры. Для значений температуры используются 8-битные знаковые значения без расширения знака на старшие 8 бит input-регистра, вследствие чего для значений температуры в конфигурационном файле необходимо указывать "format": "s8".
Подключаемые к устройству датчики конфигурируются
через holding-регистры (см. описание). Для конфигурации
датчиков можно использовать команду modbus_client
,
или сделать setup-секцию в конфигурации драйвера.
Для установки адреса slave можно использовать скрипт set-rd-address.sh. При этом необходимо убедиться, что к порту RS-485 было подлкючено только то устройство, у которого необходимо сменить адрес, затем выполнить команду:
set-rd.address.sh /dev/ttyNSC0 0x02
Вместо 0x02 можно задать любой другой адрес в диапазоне от 0 до 247 (0xf7).
Пример конфигурации:
Пример конфигурации MSU21 с секцией инициализации ("setup"):
Четырёхканальный (RGBW) диммер светодиодов DDL24
Сайт производителя - www.razumdom.ru
Документация: DDL24
Устройство предназначено для управления светодиодными лентами RGBW сигналами ШИМ или для управления приводами сигналами 0-10 В.
Управление осуществляется записью значений в holding-регистры.
Как и в случае с устройствами MSU*, адрес modbus slave устанавливается командой set-rd-address.sh.
set-rd-address.sh /dev/ttyNSC0 0x17 0x00
Здесь происходит установка slave-адреса в 0x17. Дополнительное значение 0x00 нужно, т.к. DDL24 использует для конфигурации адреса holding-регистр 0x00, а не 0x80, используемый скриптом set-rd-address.sh по умолчанию.
Пример конфигурации:
Исполнительный модуль релейный восьмиканальный DRB88
Сайт производителя - www.razumdom.ru
Документация: DRB88
Исполнительные модули DRB88 предназначены для создания систем автоматизации зданий. При работе по протоколу Modbus поддерживается работа с реле через coils и с входами через input registers.
Для установки адреса slave можно использовать скрипт set-rd-address.sh. При этом необходимо убедиться, что к порту RS-485 было подлкючено только то устройство, у которого необходимо сменить адрес, затем выполнить команду:
set-rd.address.sh /dev/ttyNSC0 0x16
Вместо 0x16 можно задать любой другой адрес в диапазоне от 0 до 247 (0xf7).
Настройка типов input'ов осуществляется через
holding-регистры (см. описание). Для задания конфигурации
можно использовать команду modbus_client
,
или сделать setup-секцию в конфигурации драйвера.
Пример конфигурации:
Модуль ввода-вывода ICP DAS tM-P3R3
Описание: tM-P3R3 и User_Manual
Модуль имеет 3 канала дискретного ввода, доступных через discrete inputs, и 3 канала релейного вывода, доступного через coils.
Пример конфигурации:
Модуль управления освещением ICP DAS LC-103
Описание: LC-103 и User manual
Модуль имеет 3 релейных вывода и один дискретный вход, допускающий подключение к сети переменного тока.
Адрес Modbus slave задаётся при помощи физического переключателя.
Пример конфигурации: