Доброго времени суток. Помогите пожалуйста, в программировании чайник, хотелось бы научиться, но что то не могу понять ничего, может посоветуете что почитать или посмотреть про MODBUS RTU, MQTT и т.д.
Теперь по теме: задача такая, есть система ОПС, ОС, СКУД на Болиде, есть С2000-ПП, необходимо от WB подавать команду по MOSDBUS RTU в С2000-ПП на постановку шлейфов на охрану и блокировку дверей например: (при нажатии кнопки “Ушёл из дома” выключать весь свет и розетки и отправить команду в С2000-ПП поставть на охрану 1,2,5,10 шлейфы, заблокировать доступ в дверь 1,2,3) и соответственно наоборот (при снятии с охраны шлейфов 1,2,5,10 картой и открытии двери 1 от С2000-ПП в WB приходит команда на запуск сценария “Включить свет в коридоре, включить музыку, приготовить кофе”)
Подскажите пожалуйста, что нужно для воплощения в жизнь такой и подобных идей, если не затруднит распишите пожалуйста по пунктам, на живых примерах (практике) мне проще учиться нежели читать кучу литературы и т.п. Интересует только программная часть, с железом проблем нет, по образованию электромонтёр, про профессии инженер слаботочных систем, так что с этим всё ок!))) Буду благодарен за любую помощь.
Неужели никто не может ничего подсказать и ничем помочь?(
Понял, что для С2000-ПП нужно написать шаблон, подскажите пожалуйста хотя бы как его написать. Честно говоря есть очень интересная задумка с интеграцией всех систем управления, безопасности и жизнеобеспечения в одно целое, как это осуществить на уровне железа понимания более чем достаточно, всё упёрлось в программирование (написание шаблонов, правил и т.д.). Может у кого нибудь есть возможность показать на примере как это сделать или что то подобное. Буду благодарен за любую помощь.
У устройства находите документацию, где написаны параметры подключения RS-485 (скорость, чётность, стоп-биты) и описание его регистров Modbus и и содержимого.
Подключаете, пытаетесь хоть что-то из него прочитать через modbus_client.
Потом вручную читаете все нужные регистры, проверяете и работу.
Приветствую!) Спасибо, становиться более менее понятно. Если не затруднит, подскажите пожалуйста какие именно данные из таблицы нужно использовать, тут их очень много, а т.к. я новичок, ещё не разобрался до конца, без Вашей помощи не обойтись. Для примера возьмём функцию которая обведена красным. Если есть возможность написать шаблон с этой функцией (для наглядного примера) буду очень благодарен.
То есть если документация говорит, что вам нужно работать с регистром 44096 для “установки состояния раздела 1”, то на самом деле вам вычитать из номера регистра 40001, и работать с Регистром хранения (Holding Register) под номером 4095.
Как запустить разобрался, как я понимаю, нужно остановить mqtt и записать команду в моём случае: modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a35(адрес С2000-ПП) -t0x03 -r4095 (или это число нужно перевести во что-то?)?
Прочитать документацию на устройство, которое подключаете, там это должно быть написано.
У некоторых устройств это далеко запрятано, тогда проще загуглить. Пишут это обычно рядом со скоростью (которая обычно 9600).
Добрый день.
Возникла необходимость управлять Болидом через С-2000-ПП. В Болиде создал тестовую зону, прописал управление ей в С2000-ПП. Сейчас она в регистре 40000. Когда меняю ей значения на 24 через веб интерфейс WB, то шлейф на охрану ставится. На С2000М сообщение отображается, но в регистре 40000 возвращается значение 6144. Затем оправляю 109 в этот же регистр. Шлейф с охраны снимается, в регистр возвращается значение 27904. Получается, что в регистре оказываются значения 24 и 109 умноженные на 256.
Если меняю значения топиков через стороннюю программу, MQTT Explorer или Иридиум, то значения топиков в веб интерфейсе WB меняются, оборудование Болида не снимается и не ставится на охрану.
Разобрался. Отправлял 24 и 109 в топик /devices/S2000-PP/controls/Zone1 то есть в тот, в котором были значения умноженные на 256.
Попробовал отправить в /devices/S2000-PP/controls/Zone1/on и все заработало. Но в основной топик все равно приходят значения умноженные на 256. В принципе это не проблема. В поле Scale записал формулу для пересчета.
Если есть желание, предлагаю разобраться, почему приходит умноженное значение.
Для этого предлагаю сделать следующее: попробовать отправить, а затем прочитать значение не через веб-интерфейс, а через Утилита «modbus_client» — Wiren Board
И потом покажите вывод, пожалуйста.
Здравствуйте.
Есть программа для опроса прибора С2000-ПП, называется HUB-C2000PP. Я автор этой программы. Программа бесплатная, с открытым исходным кодом, работает в linux и предоставляет MQTT и OPC UA. Если бы разработчики WB сделали сборку этой программы для контроллера WB, то это здорово облегчило бы интеграцию. Я бы сам сделал, но для этого нужно купить контроллер WB, а у меня пока нет задач для него, будет пылиться на полке.
Есть инструкция по сборке в linux. Получившийся исполняемый файл нужно только запустить, не нужно его как-то настраивать или связывать с базой данных. Главное, чтобы были нужные зависимости (про них написано в инструкции, в основном библиотеки Qt).
Программа настраивается по сети при помощи программы-конфигуратора с графическим интерфейсом, который есть под windows.
Еще из возможностей, которые могут понравиться - отправка кадра от IP видеокамеры в Telegram, отправка в Telegram графика АЦП (например температуры/влажности) за 1…7 дней.
Добавлю, что программа учитывает очень много особенностей прибора С2000-ПП, которые не так просто реализовать простым опросом modbus штатными средствами WB. Например если в базе данных С2000-ПП много входов, а их там может быть до 512, то последовательный опрос занял бы очень много времени и сработка пришла бы с большой задержкой. Программа при запуске один раз опрашивает все входы, а потом ждет от них событий и после поступления события опрашивает конкретный вход, который указан в событии. Это сильно ускоряет время реакции. С АЦП и счетчиками импульсов тоже не все так просто.
Сборка стороннего ПО под наш контролер с целью использовать как драйвер мы не считаем правильным — это потом придётся много лет поддерживать и таскать между ревизиями софта.
Особенности мы обязательно подсмотрим и добавим в будущем в наш драйвер — это надёжный, понятный и поддерживаемый путь.
Я собрал очень компактные Docker контейнеры с программой HUB-C2000PP, по идее это должно облегчить интеграцию, т.к. не нужно устанавливать зависимости, которые в Debian тянут всю графическую подсистему linux.