Тема: Обмен битовыми (BOOL) переменными с ПР Slave https://owen.ru/forum/showthread.php?t=32194
Вид для печати
Тема: Обмен битовыми (BOOL) переменными с ПР Slave https://owen.ru/forum/showthread.php?t=32194
Коллеги. Помогите с решением вопроса об адресации счётчиков воды по интерфейсу RS-485. На канал приходится свыше 256 счётчиков (максимум на канал). Устанавливаю повторители интерфейса. Как в этом случае будет выглядеть идентификационный номер счётчика после 256?
GiPe вы и 256 не сможете указать. Если речь о Modbus то смотрите сколько там может быть максимально. 0 и 255 кажется нельзя указывать. И на адрес отводится всего один байт. Соответственно приборов больше, то вторая линия. По другому никак.
Спасибо, но выглядит страшно :) Пока не понимаю как оно работает и как использовать в моем случае... А желание простое, с ESP32 передавать команду вкл/выкл (то есть 1/0), а на ПР200 принимать ее и делать дальше по сценарию. В моем случае это вкл/выкл приточный или вытяжной вентилятор, нагрев и тд, то есть чтобы немного удаленно можно было управлять без необходимости ходить к щиту управления.
Кстати, может в этом случае сделать ПР200 мастером? Я просто не совсем понял принцип и отличия, и что лучше выбрать.
Конкретно в моем случае использую ESP32 с rs485 модулем для следующего:
1. Получать данные с датчиков подключенных к аналоговым входам ПР200.
2. Возможно получать состояния дискретных выходов или других переменных (например какой режим вклчюен - зима, лето, авто, количество ошибок, статусы и тд).
3. Возможность удаленно по сети посредствами связи с ESP32 передавать команды на ПР200, такие как вкл/выкл вентиляторы, нагрев, менять уставки.
В данном случае ПР200 может быть мастером или лучше слейвом? Данные которые получит ESP32 будут передаватся в Home Assistant и там отображатся, то есть по сути ESP32 собирает данные с ПР200 и передает некие команды обратно.
У вас уже всё работает с ПР слейвом, осталось разобраться только с битами. Целочисленные (1 регистр) вы уже можете передавать, в 1 регистре 16 бит (с 0 по 15).
То есть передав 1 регистр, вы можете упаковать в него до 16 битовых сигналов. При приёме распаковать и использовать.
По ссылке показано как собрать и разобрать биты в маску и уже Маску ( целочисленное ) передать.
А здесь, как пересчитать адрес бита, в адрес регистра
https://owen.ru/forum/showthread.php?t=37704#9
https://owen.ru/forum/showthread.php...052#post407052
Все таки что-то не то... Не могу с этим разобратся, тут скорее уже на стороне кода в ESP или не правильно адреса прописываю.
В ПР есть такое (пока для теста), адрес переменных 520 и 521, в коде ESP прописано два переключателя. В итоге ничего не происходит. На ПР в режиме онлайн отладки работает, по идее состояния (on/off) должны передаватся на ESP, но ничего нет.
Вложение 67757
Вложение 67758
Вложение 67759
---
Отмена! Разобрался, нужно было просто адрес бита указывать и все работает :)
Вложение 67761
Продолжаю играть с modbus и esp32. Как записать простую задачку. Сейчас уставку температуры можно менять с меню ПР200, как добавить к этому возможность менять уставки и на ESP? И чтобы при этом данные синхронизировались, то есть если поменял на ПР, то должны изменится и на ESP, и наоборот.