Проект на modbus rs485

Тема в разделе "Закажу проект", создана пользователем Patriot, 22 июн 2022.

  1. Patriot

    Patriot Нерд

    Нужен проект (скетчи) с использованием ModBus по RS485: мастер на Esp8266, slave - Arduino nano.

    Slave: это будут 7 устройств. Отличий в сектче не будет, только разве что идентификация конкретного устройства. Это 7 выключателей, на которых будет по две кнопки. Слейв должен рапортовать о нажатии: однократное, двукратное, трехкратное (промежуток между кликами задается через дефайн), удержание.

    Мастер должен опрашивать эти устройства. Полученные данные должен выводить в сериалпорт или сохранять в какую-либо структуру - не имеет значение, т.к. далее вместо этого будет добавлена отправка в mqtt.

    В общем-то всё. Кто уже работал с ModBus, для того вроде задачка простая.
     
  2. man9913

    man9913 Гик

  3. Kakmyc

    Kakmyc Нерд

  4. KindMan

    KindMan Гуру

    Если домашнее освещение, то 485 будет чуть подтормаживать. У меня дома просто выключатель без фиксации подаёт сигнал на аналоговый порт через оптопару. Вам тогда хватит одной нано на все 7 выключателей. Если, конечно, кроме кнопок ничего более там не будет. Извините за оффтоп, так, вам для размышления.
     
    Yurii нравится это.
  5. parovoZZ

    parovoZZ Гуру

    на 115200 будет тупить?
     
  6. parovoZZ

    parovoZZ Гуру

    так нельзя делать. Каждый выключатель - это мастер. А МК - слейв.
     
  7. KindMan

    KindMan Гуру

    Если, как задумал ТС, опрашивать поочередно выключатели ESPшкой, а потом ещё отправлять всё это по MQTT на исполнительные устройства, без фризов не обойдется. Не спорю, может профи и смогут всё оформить красиво, но уж точно это будет не 5К. А самое главное - нафига?
     
  8. Patriot

    Patriot Нерд

    В системе modbus, опрашиваемые устройства являются слейвами (ведомыми), так как самостоятельно они ничего не могут и не должны делать. Мастер (ведущий) - это головное устройство, которое опрашивает слейвы о статусе. Слейв может ответить, только когда ему разрешит мастер. Тут все указано: https://ru.m.wikipedia.org/wiki/Modbus
     
  9. Patriot

    Patriot Нерд

    7 устройств. У каждого может быть от 1 до 4 кнопок. Можно конечно на резистивной сборке было сделать, но там же на шине планируются и другие устройства в будущем. Сейчас свет уже управляется через mqtt, HA и Яндекс.Алиса. осталось сделать выключатели. Но прошивку уже сделал, тестовый стенд тоже. Надо будет замерить скорость работы. Но субъективно пока что это совершенно не заметно. Я уже на модбасе реализовывал кокпит самолёта. Там более 50 устройств было и всё было моментально.
     
  10. parovoZZ

    parovoZZ Гуру

    чувак, я занимаюсь очень сложной промышленной автоматикой (даже не автоматизацией) и прекрасно понимаю, о чём говорю.
    Если ты думаешь, что в сети не может быть несколько мастеров, то глубоко ошибаешься. Всё давным-давно придумано.
    И зачем здесь ModBus? Делай на ProfiBus - там гораздо больше плюшек. Ну и ничего не мешает выдумать свой протокол. Лично я бы смотрел в сторону CAN шины.
     
  11. Onkel

    Onkel Гуру

    Все так делают, все ведущие и престижные системы домашней автоматизации, вплоть до самой престижной и качественной Crestron (это системы уровня здания, Пентагон, например, оборудован Crestron) сделаны так что каждый выключатель - слейв. И работают на RS485 и ничего не подтормаживает даже в системах уровня зданий.
    https://www.crestron.com
     
  12. SergeiL

    SergeiL Оракул Модератор

    Да похоже паровоЗЗ путает определения мастер-слейв и клиент-сервер. Определения клиент-сервер определены в модбас несколько непривычно. Мастер - это клиент. А слэйвы - это серверы. Поэтому обмен всегда инициализируются одним клиентом, которому отвечают много серверов ( слейвов )
     
  13. parovoZZ

    parovoZZ Гуру

    Не надо сказок. Пентагон на Apollo Security.
    Уровень здания типа гостиницы - это KNX.
    Я ничего не путаю. Мастер в ModBus инициирует общение. На полностью загруженной шине и низкой скорости опрос всех устройств занимает весьма значительное время. А если какое-то устройство выпало из сети - это вообще труба. Абсолютно устаревшая технология. Но до сих пор используется из-за очевидной простоты. Правда, адресная емкость шины ограничивается 2-3 устройствами и в некритичных по временному лагу местах.

    Сам лично столкнулся с ситуацией, когда шлюз ModBus RTU <-> ModBus TCP сбрасывает соединение порядка 5 секунд, если на подключенной к нему шине 485 не ответил слейв. От бренда шлюза никак не зависит. Феникс контакт и моха работают одинаково.
     
  14. SergeiL

    SergeiL Оракул Модератор

    Так а что есть такого в Appollo, того что нет у других СКД?
    Стоит Apollo в одном из офисов, ничего особенного, только запредельная цена.
    Софт специфичный, порой у более дешевых систем - софт более гибкий.

    Все решается на программном уровне.
    Не проблемно.
    Я три раза, с очередностью опроса отвечающих устройств, опрашиваю отвалившееся устройство, потом ставлю его в список недоступных.
    Опрашиваю его с большим таймаутом, чтобы не тормозить шину, один раз, на 100 - 300 запросов работающих устройств. Пока не ответит.
    Ответило устройство, перевел на нормальный режим.
     
  15. parovoZZ

    parovoZZ Гуру

    С аполло работает самый лучший софт - итриум. На аполло строится ещё и автоматизация.
     
  16. SergeiL

    SergeiL Оракул Модератор

    Софт не может быть лучшим или худшим. Софт должен удовлетворять ТЗ.
    Автоматизация прикручивается к любому софту по API, если API есть по ТЗ.
     
  17. parovoZZ

    parovoZZ Гуру

    Автоматизация через софт на промке не делается. Только в железе.
    А итриум - да, это лучший софт для сферы безопасности, что я видел.