Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
настройка_modbus [2022/09/15 21:25] Sanch-KK |
настройка_modbus [2025/04/06 10:48] (текущий) Admin [Mapping значений и команд контроллера в регистры Modbus] |
||
|---|---|---|---|
| Строка 26: | Строка 26: | ||
| * " | * " | ||
| * " | * " | ||
| - | * "ir: - INPUT REGISTER | + | * "ir: - INPUT REGISTER |
| * " | * " | ||
| * " | * " | ||
| Строка 62: | Строка 62: | ||
| Отправка происходит, | Отправка происходит, | ||
| + | кроме regs допустимы irs и coils | ||
| Или вот пример для сенсора Sensair S8 | Или вот пример для сенсора Sensair S8 | ||
| Строка 85: | Строка 86: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | А вот пример подключения Modbus адаптера кондиционера Haier | ||
| + | < | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | }, | ||
| + | | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| ==== Разделы baud и serial ==== | ==== Разделы baud и serial ==== | ||
| Строка 321: | Строка 361: | ||
| " | " | ||
| </ | </ | ||
| + | В этом случае, | ||
| - | И еще один фильтр: | + | <del>И еще один фильтр: |
| ===== Запись в Modbus устройство ===== | ===== Запись в Modbus устройство ===== | ||
| Строка 409: | Строка 450: | ||
| </ | </ | ||
| + | ===== Mapping значений и команд контроллера в регистры Modbus ===== | ||
| + | Более подробно настройка преобразований описана в отдельном разделе [[использование_преобразований_map]] | ||
| + | |||
| + | Далее, разобраны примеры применения | ||
| + | Рассмотрим на примере вентустановки | ||
| + | Допустим, | ||
| + | * AUTO | ||
| + | * ON | ||
| + | * HEAT | ||
| + | * FAN_ONLY | ||
| + | Для команды OFF записываем 0 | ||
| + | |||
| + | Это реализуется строкой | ||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | наличие " | ||
| + | |||
| + | Соответственно, | ||
| + | |||
| + | В нашей вентустановке за переключение режима работы (нагрев-вентиляция-авто) отвечает отдельный регистр 43 | ||
| + | |||
| + | настроим отображение режима работы на требуемые значения данного регистра и, также, привяжем это отображение к командному топику (" | ||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | теперь при переключении режимов в регистр 43 будет записываться 3 для Авторежима, | ||
| + | |||
| + | Еще лайфхак: | ||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | В примере выше, в значения регистра будет маппироваться только команда, | ||
| + | |||
| + | первый null перед массивом соответствия команда -> значение по умолчанию, | ||
| + | Если не подобрали - пытаемся преобразовать по значению | ||
| + | |||
| + | Если не использовать " | ||
| + | |||
| + | (описание не завершено) | ||
| + | |||
| + | < | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ]] | ||
| + | } | ||
| + | </ | ||