С чего все начиналось
Начиналось все с разработки алгоритмов для программируемого реле ПР200, и часто требовалась визуализация или ввод информации с компьютера, для этого необходимо использовать панели оператора или SCADA системы, но не всегда это удобно, да и нужно ли для простых систем. Решение было найдено быстро, и со временем я старался максимально улучшить и облегчить свою работу в этом направлении, что из этого получилось читайте далее.
Речь пойдет о сетевой плате WI-FI и ее возможностях.
![image](https://habrastorage.org/webt/z7/0j/nn/z70jnnmuwed2qwcdyhbqjhni0-w.jpeg)
Так как данная плата используется для отладки различных проектов, то интерфейс взаимодействия постоянно видоизменяется для более удобной и быстрой настройки. Первая модификация была простым преобразователем RS-485 в TCP с выводом в WEB, с готовой прошивкой известной в сообществе ESP8266. С тех пор прошло больше 2 лет, и для анализа процессов растянутых по времени потребовалось вести архивы, и так как хотелось все это совместить в одном устройстве без дополнительного оборудования, решено было встроить поддержку microSD, что позволило значительно облегчить анализ процессов с возможностью быстрого доступа к архивам. Вторая модификация платы имела слот, с возможностью извлечь microSD карточку для сохранения на компьютере записанных файлов. Мне это показалось не очень удобным, и появилась версия с возможностью скачивания файлов по WI-FI. Иногда скачивание происходит не до конца и требуется повторная операция скачивания, но учитывая что в это время оборудование остается в работе и архивирование может так же работать, думаю это не очень большая проблема. Так же опробована версия с микросхемой памяти на 16 mB вместо microSD карты. Более быстрое скачивание, но нет возможности сохранять множество файлов, запись идет последовательно до заполнения всей памяти.
Назначение и возможности интерфейсной платы
Плата предназначена для расширения возможностей доступа к внутренним переменным логики программируемого реле ПР200, и обеспечивает доступ как на чтение, так и на запись переменных.
Благодаря беспроводному интерфейсу WI-FI, обеспечивается доступ к прибору без необходимости подключения дополнительного оборудования. В первую очередь, решение ориентировано на проекты простой домашней автоматизации в местах с наличием сетей WI-FI. К таким можно отнести решения по автоматизации освещения как внутреннего, так и наружного, управление и мониторинг насосными станциями, теплицами и т. д. Благодаря наличию встроенного WEB сервера в плате, нет необходимости в покупке дополнительного оборудования для тех случаев, когда доступ в систему нужен не часто. Базовый ввод вывод осуществляется с помощью смартфона/планшета или ПК находящихся в одной сети.
Интерфейсная плата может работать в различных режимах. При подключении к роутеру с доступом в интернет позволяет удаленно наблюдать за состоянием переменных в логике ПР200, а так же производить управление алгоритмом через сетевые переменные в форматах поддерживаемым ПР200 в режиме Slave.
Связь с запрограммированным алгоритмом в приборе осуществляется через сетевые переменные, при этом интерфейсная плата может выступать в роли Master или Slave. Поддерживаются стандартные скорости и настройки сетевого интерфейса ПР200. Поддерживается обмен по протоколу Modbus TCP, для этого выделена область памяти в 100 ячеек, к которым возможен доступ как из WEB интерфейса, так и по протоколу Modbus RTU со стороны ПР200.
Выбор режима сетевой платы аналогичен выбору при работе с графическими панелями, работа в режиме Master позволяет более гибко управлять обменом переменными, для регистров, значение которых необходимо получать чаще, чем остальных, возможно задать период опроса меньше. Доступны следующие команды для протокола Modbus:
03 (0x03) Read Holding Registers Чтение.
04 (0x04) Read Input Registers Чтение
06 (0x06) Preset Single Register Запись
16 (0x10) Preset Multiple Registers Запись
Переменные, полученные из реле, доступны для записи в файл (архив), который размещается на карте micro SD, запись ведется в текстовом формате. После скачивания возможен просмотр на компьютере в простом текстовом редакторе. Значения, записанные в файл, можно вывести на исторический график. Используя опции масштабирования и выбора определенного периода на временной шкале, а так же индивидуальный показ/скрытие линий графика осуществляется анализ архивных данных.
Файлы, созданные при работе архиватора, остаются на карте microSD и могут быть скачаны на компьютер, в каждый момент времени доступна работа только с одним файлом, в него может производиться запись архивных данных, чтение информации для построения исторического графика или чтение информации для сохранения на ПК.
Для архивирования доступны переменные из адресного пространства сетевой платы, в которые необходимо записать данные полученные через Modbus RTU из ПР200 или Modbus TCP из других устройств поддерживающих протокол Modbus TCP в режиме Master.
Интерфейсная плата может быть настроена как в режиме точки доступа (Access Point), так и в режиме клиента — рабочей станции (Station), а может и в обоих режимах одновременно. Чаще всего точка доступа имеет выход в интернет и работает как мост между устройством и сетью.
Беспроводное подключение может быть защищено паролем, так же имеется возможность скрыть точку доступа.
Переменные, получаемые по интерфейсу RS485 из ПР200, можно анализировать, представив их в графическом виде, в этом режиме значения будут выводиться в реальном времени с периодом ~1 сек.
Для вывода на график доступно 10 переменных в целочисленном формате, с плавающей запятой или в побитовом представлении 16/32 бит. Количество, тип, адреса переменных и формат вывода берутся из настроек архивирования.
Для быстрой и удобной работы, решено повторить форму «родной» сетевой платы прибора.
![image](https://habrastorage.org/webt/qv/vg/4j/qvvg4jbi6kbwq0i700vlhi9ftne.jpeg)
Плата установлена в прибор.
Сетевая плата может быть установлена в первый или второй слот![image](https://habrastorage.org/r/w780q1/webt/j_/qy/pq/j_qypqdkzcf7j3a9jujeeqq5fza.jpeg)
![image](https://habrastorage.org/webt/j_/qy/pq/j_qypqdkzcf7j3a9jujeeqq5fza.jpeg)
Плата имеет два переключателя, один служит для сброса сетевой платы (не влияет на работу программы в ПР200), второй переключатель может быть запрограммирован на включение архивирования (выбирается через настройки из WEB интерфейса платы). Так же имеется 2 информационных светодиода:
1-синий кратковременно зажигается при обмене данными по интерфейсу RS-485 с ПР200
2-красный кратковременно зажигается в момент записи данных на карту micro SD, и включен постоянно если нет карты либо невозможно прочитать данные на карте.
Далее представлены основные меню при работе в различных режимах:
![image](https://habrastorage.org/webt/to/ny/-9/tony-98orqrhf1luvbjsjgunzum.png)
Основные сетевые настройки для подключения через WEB.
![image](https://habrastorage.org/webt/mh/cm/f8/mhcmf8an5ct55x2o3xaoaatw6ps.png)
Настройки подключения к сетевому интерфейсу ПР200 и настройки подключения по Modbus TCP через WI-FI
![image](https://habrastorage.org/webt/_6/xm/cz/_6xmcznmcjb3mtvepazjeqwh75c.png)
Карта внутренних регистров, общих для Web, Modbus RTU и Modbus TCP
Тестовая WEB страница для управления и мониторинга состояний входов/выходов ПР200 с подключенным модулем расширения ПРМ-1.
![image](https://habrastorage.org/r/w1560/webt/qp/td/yx/qptdyx2xpp1ttfzucdh6iprrac4.png)
![image](https://habrastorage.org/webt/nd/tu/fk/ndtufkepntezf8hbwxjdaxozxdi.png)
![image](https://habrastorage.org/webt/qp/td/yx/qptdyx2xpp1ttfzucdh6iprrac4.png)
Страницы для ввода/вывода значений из ПР200 и передачи данных на управляющие выходы прибора.![image](https://habrastorage.org/r/w1560/webt/sw/c8/yb/swc8ybmb1radp2jcf027mi_be0s.png)
![image](https://habrastorage.org/webt/sw/c8/yb/swc8ybmb1radp2jcf027mi_be0s.png)
При подключении сетевой платы к роутеру с выходом в интернет и пробросу портов возможна удаленная работа с платой через браузер.
Как это работает
Далее представлены скриншоты при работе ПР200 на реальном проекте, с архивированием данных. В ПР200 загружен проект, который считывает значения 4 аналоговых каналов, к которым подключены NTC датчики и преобразует эти значения в температуру, по второму сетевому интерфейсу, настроенному в режиме Master, ПР200 опрашивает модуль МВ110-8A к которому подключены 2 ДТС Pt1000. Таким образом, собираются данные о 4 значениях сопротивления с аналоговых входов ПР200, 4 значениях температуры, полученных при помощи макроса NTC, а также 2 значений температуры, полученных от модуля МВ110-8А по RS-485. Все 10 регистров в формате float по первому сетевому интерфейсу, настроенному в режиме Master считываются для записи в архив и WEB визуализации.
![image](https://habrastorage.org/webt/ov/kb/ue/ovkbuegmxtn4pkqkubbbkmfnxxs.png)
Меню для работы с SD картой, при выключенном архивировании отображает перечень файлов на карточке, при включенном архивировании отображает лог записи на карту.
Меню управления архивированием.![image](https://habrastorage.org/r/w1560/webt/mx/jq/7y/mxjq7y7yqfezmgaflitikmg2qrg.png)
![image](https://habrastorage.org/webt/mx/jq/7y/mxjq7y7yqfezmgaflitikmg2qrg.png)
![image](https://habrastorage.org/webt/w4/45/1j/w4451jdprj0bwuvdt6ytzfem27c.png)
Временные метки для архивирования читаются из регистров часов реального времени ПР200, в данном примере часы не синхронизированы с реальным временем.
Файл архива, скачанный по WI-FI с micro SD установленной на плате и открытый текстовым редактором. Готов для построения графиков. ![image](https://habrastorage.org/r/w1560/webt/vd/r8/zo/vdr8zoxuhegu_i0nu1cnqkepln4.png)
![image](https://habrastorage.org/webt/vd/r8/zo/vdr8zoxuhegu_i0nu1cnqkepln4.png)
Страница, открытая в браузере для построения графика из скачанного файла. ![image](https://habrastorage.org/r/w1560/webt/9z/8z/s6/9z8zs6cxqt_ogdniz-qwc6evtqq.png)
![image](https://habrastorage.org/webt/9z/8z/s6/9z8zs6cxqt_ogdniz-qwc6evtqq.png)
![image](https://habrastorage.org/webt/ml/84/2m/ml842mxpwvm1xnth6o54qhbbntq.png)
Сформированный график по данным из файла архива.
![image](https://habrastorage.org/webt/vt/of/t3/vtoft3tx0zwvwgzzz3gzituvhhk.png)
Управление видимостью графиков через легенду
![image](https://habrastorage.org/webt/gm/wz/9f/gmwz9fhbq3b8d7nqirlqsqaka2u.png)
Детализация необходимых участков на графике.
Доступ к регистрам через Modbus TCP (WI-FI)
Если возможностей WEB не достаточно для построения визуализации, то используя доступ через Modbus TCP, можно организовать связь со SCADA системами и быстро создать необходимую визуализацию из готовых блоков. Используя различные сетевые мониторы, можно отслеживать состояние внутренних регистров как сетевой платы так и встроенных регистров ПР200. Пример опроса при помощи программы Modbus Poll.
![image](https://habrastorage.org/webt/jn/vl/es/jnvlesf0u-zjwdw7ykpea0vlgn0.png)
Подключение по протоколу ModBus TCP используя программу Modbus Poll.
![image](https://habrastorage.org/webt/vj/h1/nv/vjh1nvjwlnxmo8mxpzfmdf8d6n8.png)
Чтение регистров, и представление их в различных форматах.
Выводы
После установки сетевой платы в прибор, появляются дополнительные возможности и инструменты в работе с программируемым реле ПР200. Возможны различные сценарии использования как по отдельности, так и в комбинированном режиме.
Один из примеров, запись архивных событий в ПР200, на данный момент созданы различные макросы для записи архивных событий в приборе, но они занимают много ресурсов в приборе и имеют ограниченные возможности как по выводе информации, так и по глубине архивирования, используя внешний накопитель есть возможность более гибко настраивать и вести запись нужных событий. Для облегчения анализа, добавлен режим записи регистров в битовом режиме, таким образом, в архив попадает 16 или 32 разрядное число разложенное на биты. Поддерживаются различные режимы запуска архивирования, через переключатель на плате, WEB интерфейс, ModBus регистр. Используя регистр ModBus, прибор сам определять момент записи, записав в ячейку число отличное от «0», уставка превышена, пишем в регистр «1» и логи пишутся до момента записи в регистр «0» значения, аналогично по срабатыванию входных сигналов. Отдельно можно выделить запись с определенным периодом различных данных по температуре, давлению, влажности для последующего анализа в графическом представлении. Для преобразования данных в графический вид встроена web страница в устройстве.
Второй сценарий- дистанционное управление, либо мониторинг состояния внутренних переменных, изменение режимов работы. Этот вариант можно разделить на локальный, в пределах внутренней сети, и через интернет.
Остальные варианты вспомогательные, отладка, вывод интересующих переменных на текущую визуализацию, просмотр сетевых переменных и т. д.
Интересно услышать мнение сообщества по данной теме, кто какими способами решает аналогичные задачи?