Консультация по большому проекту

Здравствуйте.Приобрел ваш контроллер для тестирования перед внедрением на предприятии. Есть ограничения, а именно WiFi и интернет использовать нельзя, только провод и внутреняя сеть. Суть проекта подключить все энергоресурсные системы и отдельные приборы для мониторинга и управления этими системами, организация серверной,клиентской части и базы данных. Предприятие Федеральное и государственное поэтому в приоритете отечественный производитель.
Сейчас это реализованно в виде подключения отдельных приборов через преобразователи интерфейса MOXA и по Tcp сведено на сервер, а после информация выведена на web страницу с кучей вкладок с графиками и никакого управления нет. Так же есть системы контроль за которыми ведется по средствам визуального осмотра шкафов с лампочками, хотя в этих шкафах контроллеры, с которыми можно работать через ModBus, получая необходимую информацию с возможность управления параметрами например в котельной стоят контроллеры АГАВА и к ним можно подключить ModBus модуль и вывести всю информацию на рабочее мето.
Пoэтому подумал, что хорошо бы все приборы и котроллеры подключить к одному или нескольким WB. Сервер написать, который бы получал данные с WB и эти данные хранить в БД и отправлять на клиентские периложения.

И вот при начале работы появились вопросы…
Хотел подключиться к WB через встроенную точку по 192.168.42.1 и настроить статический IP, потом принести на работу и дальше подключать устройства и разбираться с ними. Настроил так.


Первое что я услышал - “зачем я поменял имя интерфейса?”(Его же можно менять?) в итоге поменял на стандартное eth0. После записи и перезагрузки контроллера так и не смог получить доступ ни к web - интерфейсу, ни Ping не прошел и SSH не откликается. На компьютере даже DNS не указан
komp
подключение через обычный коммутатор D-link.
Помогите понять в чем тут фокус?

Добрый день.
Покажите состояниия инетерфейсов контроллера по ip link
ну и ```ip address`` адреса. Также - файл /etc/network/interfaces.

Логично, ведь можно создать дополнительные, в том числе и виртуальные интерфейсы с произвольными именами. Но если конфигурируете существующий интерфейс - то обращаться к нему надо именно по его имени.

Понял. В общем можно, но лучше не трограть. Хотя в Web-интерфейсе при изменении DHCP на static все пораметры сбрасываются и все строчки и “имя интрейса” становятся красными.

Пока вам писал понял, что я не пробовал менять адресс после обновления. И в итоге все получилось. Пинг идет. Хотя файл /etc/network/interfaces без остался изменений.
interfaces (644 Байта)
Ip link end ip address.txt (3.1 КБ)
и то что сейчас в веб - интерфейсе


по 10.10.10.100 получилось подключится.

Подскажите вообще по проекту системы. На предприятии есть около
100 приборов DMK 40 для мониторинга шкафов электроэнергии.
Котельная - три контроллера АГАВА
Компрессорная - со своими расходомерами и ПЛК уравления насосами.
Локально очистные сооружения. Инсталяторы в подвале поставили шкаф управления и все никой программы для мониторинга. В ШУ стоит контроллер ZelioLogic(Докупил к нему модуль ModBus поправил прошивку и теперь можно контролировать все процессы и управлять реле с самописной программы).

Есть ли вообще смысл делать такую логику как обьединение всех проборов и контроллеров на одном или нескольких WB?
Или может к WB Только отдельные приборы, а ПЛК через преобразователи в сеть.
Дальше нужно будет менять старые и добавлять новые датчики прочечки, температуры и тд.
Или может я не правильные вопросы задаю…

Если DMK-40 такой - то судя по документации Modbus RTU есть. Надо будет написать шаблон. Агава - это ПЛК-XX?

В зависимости от плаируемой архитектуры системы и ее целей.
Если “сверху” будет какая-нибудь SCADA - то, по большему счету контроллер необязателен, вполне можно обойтись Ethernet-Modbus шлюзами, например Преобразователь интерфейсов WB-MIO-E v.2 — Wiren Board
Если контроллер планируется головным устройством - да, вполне подойдет. Можно настроить внешнюю БД типа Grafana для исторических данных и использовать как “центральный” контроллер, подкллючая при необходимости дополнительные модули.

А ПЛК как управлять? Через свои отдельные программы?
Вопросы - вполне верные и правильные. Сводить все управление в одно место - это очень здравый подход.

Сводить все управление в одном месте - подход здравый лишь и только в том случае, когда сеть была построена профессионалами и регулярно тестируется на ИБ.
В противном случае надо сразу назначать персонажа, которого будут вешать за тестикулы в случае биг-бадабума (в том числе умышленного, снаружи).

Ну и не забывать, что управление чем-либо посредством ВБ - процесс нелинейный и крайне нескучный. Если заглючит умный дом - ресет наверное выручит, а вот если котельная…

АГАВА 6432.30 https://insat.ru/upload/iblock/1dc/AGAVA6432_30_RE_v1_0.pdf
там тоже есть модуль ModBus.

До шаблонов я еще не дошел, но обязательно дойду и если не разберусь буду спрашивать.

Цель это максимальный контроль всех энергоресурсов и предупреждение аварийных ситуаций.
Так же целью является максимальная независимость от стороннего ПО.

За

Мысль у меня была такая. Есть системы которые управляются ПЛК (Котельные, очистные, компрессорная). ПЛК этих систем, при наличии возможности хотел подключать к преобразователям интерфейса MOXA NPort 5150: купить со склада MOXA.pro их сейчас установлено достаточно много по всему предприятию и мне они понравились тем, что их можно настроить в качестве TCP/IP серверов и просто передавать байты 485 интерфейс в нужной последоватьльности не привязываясь к протоколу передачи, главное знать что слать ModBus или то, что там придумали другие разработчики, как на пример в счетчике газа СПГ 741 https://www.logika-consortium.ru/wp-content/uploads/2017/02/intrfc_741.pdf . Но у нас Moxы используют как виртуальные COM-порты и от того что этих портов на одном сервере слишком много(это мое мнение) они довольно часто виснут и поэтому также рассматривается альтернативные преобразователи. Остальные приборы такие как DMK 40 и разного рода датчики (Протечки, загазованности, температуры) которые не имеют ПЛК или по какм то неведомым причинам не подключены к ПЛК я хотел подключить к WB и уже программно получать данные о всех подключенных датчиках записывать данные в Базу и реагировать на эти данные в других системах где это критично. В итоге получится много ПЛК + WB под это либо писать сервер самим, либо нанимать SCADA интеграторов.
Потом я подумал можно ли научить WB все это делать. То есть свести все ПЛК и отдельные приборы на WB и указать, как в умном доме, кому и за чем следить на какие условия реагировать(типо если колодце появилась вода, то откачать ее.) и передать на сервер сообщение типа
9:55 обнаружена протечка на водовводе 1,
10:00 обнаружена вода в колодце 1,
10:10 откачено 2 кубометра воды ну как-то так.
И например раз в 5 минут основные параметры всех систем передавать и потом программно отделять и рассылать клиентам и писать в БД. На клиентском приложении выводить гафики на основе данных в БД.

Вот это я и хотел спросить - Есть ли опыт подключения ПЛК к WB? По сути ПЛК тоже самое отдельное устройство, которое опрашивается по ModBus и тогда нужно писать шаблон, но есть ли в этом смысл.

этих программ в большинстве просто нет. Придетяся искать и добавлять модули расширения и писать программы или интегрировать в СКАДУ. В ПЛК сделаны прошивки для автоматической работы и поставлены ШУ

и установщики говорят ну вот вам шкаф - контролируйте. И получается 2 раза в день или в неделю эти шкафы осматривают и когда что-то случается быстро реагировать не получатся и потом ищут виноватых… но это уже лирика.

Что-то с наскока не нашел, умеет ли быть slave. Но даже если только мастер - можно настроить WB слейвом через Шлюз Modbus RTU/TCP — Wiren Board

Оно довольно несложно: Подключение вентустановки по modbus - #26 от пользователя BrainRoot

И есть аналог дешевле:
https://wirenboard.com/wiki/WB-MIO-E_v.2_Modbus_Interface_Converter
тоже с поддержкой Modbus over TCP

Тут несколько путей настройки оповещений. Начиная с СМС/почты Модуль уведомлений — Wiren Board
или телеграм

Выше давал ссылку на интеграцию с внешней БД. Но можно и в Zabbix отдавать данные и использовать триггеры/оповещения там.

Да, конечно, тут два пути:

  • ПЛК по отношению к контроллеру WB мастер - тогда на WB поднимать-настраивать mbgate.
  • ПЛК - Slave, тогда на WB писать шаблон.

В любом случае цель - иметь на WB в MQTT актуальные данные.

А сами проекты есть? Внутри-то ПЛК явно “аварийные” ситуации обрабатываются, но вот наружу, кроме как на индикаторную лапу могут не выводиться.

Вот опять казалось бы решил проблему со статическим IP адресом, но вот опять. Стоило мне перезагрузить WB и настройки вернулись к заводским.
Пишу по пунктам что и как делаю.
Кабель к отладочной консоли через Putty устанавливаю связи по COM порту
Включаю WB жду загрузку
после загрузки подключаюсь через стандартную точку доступа по WiFi
По 192.168.42.1 захожу в веб-интерфейс и в настройкам меняю для eth1 DHCP на статику и записываю конфигурацию
Проверяю через терминал через ip address настройки применены
проверяю пинг, цуи интрефейс и SSH - все работает.
Перезагружаю контроллер через тумблер на корпусе и после загрузки вызываю ip address и вижу стандартные параметры. Как с этим быть?
новый 3.txt (60.8 КБ)

Зачем?? Ну компьютер не принято выключать питанием.

Редактировать надо файл /mnt/data/etc/network/interfaces. Ну или копировать отредактированный /etc/network/interfaces в это расположение после редактирования

Получается если пропадет питание будет сбрасываться настройка Сети? Частая тема электрики выключили свет, через 4 часа сдох аккумулятор, питание пропало и каждый раз бежать менять настройку?

Не принято, но настройку сети он не теряет. Перезагружал я его когда подключал модули WBIO и другие. Питание на горячую крутить не камильфо вот и выключил.

Описал:

Понял, спасибо

Здравствуйте. Подскажите пожалйста я правльно понимаю, что при написании шаблона суть в том чтобы вывести все значения, нужных регистров в топики MQTT и потом с помощью правил работать с получеными данными из этих топиков и потом записывать необходимые данные в нужные регистры.
Читая описания и форум я увидел, что люди пытаются писать данные в регистры в шаблонах. Как все таки правильно организовывать работу контроллера со сторонними устройтсвами? Coil регистры переключаются если применить тип Switch в шаблоне. Хочу понять “правильную” концепцию работы.

config-C2000KDLModbus.json (1.1 КБ)
Допустим я считал информацию (Проскакивают ошибки в чтении, но это судя по форуму нужно играть с таймерами - пробую). Как допустим сделать в устройстве переключатель, чтоб при активации запись в регистр 40000 числа 24, деактивация 109
Пробовал так
{
“name”: “Guard zone1”,
“id” : “guard zone1”,
“type”: “switch”,
“reg_type”: “holding”,
“address”: 40000
“on_value”: “0x18”,
“off_value”: “0x6D”
}
не заработало.

Здравствуйте!

Вы делаете все правильно. Сейчас проверил данную конфигурацию канала в шаблоне - все работает. Я проверял с другим устройством и другим адресом регистра.

Правильно ли я понимаю, что в целом связь с устройством установлена, значения регистров читаются? Вы используете адаптер C2000-ПП для подключения к устройству “Bolid”? Проверьте, читается/записывается ли данный регистр с помощью утилиты modbus_client?

На портале есть похожие темы по устройствам Bolid, возможно эта информация будет полезна:

1 Like

нет у меня Контроллер двухпроводной линии связи С2000-КДЛ-Modbus, там Holding регистры от 40000 на каждую зону. 30000 - для зон с датчиками температуры и влажности

Это тоже заработало?

да я эти темы и штудирую.

Думаю, что я понял проблему: нет запятой после значения 40000. Попробуйте так:

{
"name": "Guard zone1",
"id" : "guard zone1",
"type": "switch",
"reg_type": "holding",
"address": 40000,
"on_value": "0x18",
"off_value": "0x6D"
}
1 Like