Test: различия между версиями
(Полностью удалено содержимое страницы) Метка: очистка |
|||
(не показано 48 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Draft}} | |||
Рассказать драйверу wb-mqtt-serial, который в контроллере работает с Modbus-устройствами можно двумя способами: | |||
# Добавить регистры устройства прямо в веб-интерфейсе контроллера по [[RS-485:Configuration_via_Web_Interface#without-template|инструкции]]. Этот способ удобен для быстрой проверки работы. | |||
# Создать шаблон, который описывает регистры устройства, их тип и другие параметры. Этот способ удобен для масштабирования: просто копируете шаблон на другой контроллер и в нём появляется поддержка вашего устройства. | |||
Здесь мы рассмотрим создание простого шаблона. Упрощённо шаблон устройства выглядит так: | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"device_type": "my-relay", // тип устройства — уникальный идентификатор | |||
"title": "My Relay", // отображаемое название | |||
"group": "g-relay", // группа, в которой будет отображаться шаблон. Список групп в документации | |||
"device": { | |||
"name": "MY-RELAY", // имя устройства, используется в MQTT | |||
"id": "my-relay", | |||
"groups": [ ], // группы параметров и каналов | |||
"channels": [ ], // каналы, доступно в скриптах и на вкладке Устройства | |||
"parameters": [ ], // параметры, можно менять в настройках устройства | |||
"translations": { } // переводы | |||
} | |||
} | |||
</syntaxhighlight> | |||
Полное описание смотрите в [https://github.com/wirenboard/wb-mqtt-serial документации драйвера wb-mqtt-serial]. | |||
Допустим, у нас есть одноканальное Modbus-реле, у которого таблица регистров, показанная ниже. | |||
{| border="1" class="wikitable" | |||
! Адрес || Тип || Название || Назначение | |||
|- | |||
| 0 || Discrete Input || Input 1 || Состояние входа устройства | |||
|- | |||
| 1 || Input Register || Input 1 Counter || Значение счётчика входов | |||
|- | |||
| 3 || Coil || Relay 1 || Состояние выхода и управление им | |||
|- | |||
| 10 || Holding || Input Mode || Выбор режима взаимодействия входов с выходами | |||
|- | |||
|} | |||
В таком случае шаблон будет выглядеть так: | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"device_type": "my-relay", | |||
"title": "My Relay", | |||
"group": "g-relay", | |||
"device": { | |||
"name": "MY-RELAY", | |||
"id": "my-relay", | |||
"groups": [ | |||
{ | |||
"title": "Channels", | |||
"id": "channels", | |||
"order": 0 | |||
}, | |||
{ | |||
"title": "Settings", | |||
"id": "settings", | |||
"order": 1 | |||
} | |||
], | |||
"channels": [ | |||
{ | |||
"name": "Input 1", | |||
"reg_type": "discrete", | |||
"address": 1, | |||
"type": "switch", | |||
"group": "channels" | |||
}, | |||
{ | |||
"name": "Input 1 Counter", | |||
"reg_type": "input", | |||
"address": 2, | |||
"type": "value", | |||
"group": "channels" | |||
}, | |||
{ | |||
"name": "Relay 1", | |||
"reg_type": "coil", | |||
"address": 3, | |||
"type": "switch", | |||
"group": "channels" | |||
} | |||
], | |||
"parameters": [ | |||
{ | |||
"name": "Input Mode", | |||
"reg_type": "input", | |||
"address": 10, | |||
"format": "s8", | |||
"enum": [ | |||
1, | |||
2 | |||
], | |||
"enum_titles": [ | |||
"Switch Relay", | |||
"Not used" | |||
], | |||
"default": 1 | |||
} | |||
], | |||
"translations": { | |||
"ru": { | |||
"Channels": "Каналы", | |||
"Settings": "Настройки", | |||
"Input 1": "Вход 1", | |||
"Input 1 Counter": "Вход 1 счетчик", | |||
"Relay 1": "Реле 1", | |||
"Input Mode": "Режим входа" | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight> |
Версия 16:15, 16 февраля 2023
Это черновик страницы. Последняя правка сделана 16.02.2023 пользователем A.Degtyarev. Рассказать драйверу wb-mqtt-serial, который в контроллере работает с Modbus-устройствами можно двумя способами:
- Добавить регистры устройства прямо в веб-интерфейсе контроллера по инструкции. Этот способ удобен для быстрой проверки работы.
- Создать шаблон, который описывает регистры устройства, их тип и другие параметры. Этот способ удобен для масштабирования: просто копируете шаблон на другой контроллер и в нём появляется поддержка вашего устройства.
Здесь мы рассмотрим создание простого шаблона. Упрощённо шаблон устройства выглядит так:
{
"device_type": "my-relay", // тип устройства — уникальный идентификатор
"title": "My Relay", // отображаемое название
"group": "g-relay", // группа, в которой будет отображаться шаблон. Список групп в документации
"device": {
"name": "MY-RELAY", // имя устройства, используется в MQTT
"id": "my-relay",
"groups": [ ], // группы параметров и каналов
"channels": [ ], // каналы, доступно в скриптах и на вкладке Устройства
"parameters": [ ], // параметры, можно менять в настройках устройства
"translations": { } // переводы
}
}
Полное описание смотрите в документации драйвера wb-mqtt-serial.
Допустим, у нас есть одноканальное Modbus-реле, у которого таблица регистров, показанная ниже.
Адрес | Тип | Название | Назначение |
---|---|---|---|
0 | Discrete Input | Input 1 | Состояние входа устройства |
1 | Input Register | Input 1 Counter | Значение счётчика входов |
3 | Coil | Relay 1 | Состояние выхода и управление им |
10 | Holding | Input Mode | Выбор режима взаимодействия входов с выходами |
В таком случае шаблон будет выглядеть так:
{
"device_type": "my-relay",
"title": "My Relay",
"group": "g-relay",
"device": {
"name": "MY-RELAY",
"id": "my-relay",
"groups": [
{
"title": "Channels",
"id": "channels",
"order": 0
},
{
"title": "Settings",
"id": "settings",
"order": 1
}
],
"channels": [
{
"name": "Input 1",
"reg_type": "discrete",
"address": 1,
"type": "switch",
"group": "channels"
},
{
"name": "Input 1 Counter",
"reg_type": "input",
"address": 2,
"type": "value",
"group": "channels"
},
{
"name": "Relay 1",
"reg_type": "coil",
"address": 3,
"type": "switch",
"group": "channels"
}
],
"parameters": [
{
"name": "Input Mode",
"reg_type": "input",
"address": 10,
"format": "s8",
"enum": [
1,
2
],
"enum_titles": [
"Switch Relay",
"Not used"
],
"default": 1
}
],
"translations": {
"ru": {
"Channels": "Каналы",
"Settings": "Настройки",
"Input 1": "Вход 1",
"Input 1 Counter": "Вход 1 счетчик",
"Relay 1": "Реле 1",
"Input Mode": "Режим входа"
}
}
}
}