SCADA «BortX» с поддержкой языка управления в рамках ANSI /ISA-88 для ESP8266

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Признаюсь честно — очень люблю cовременные микроконтроллеры. В частности, производства китайского производителя Espressif Systems с интерфейсом Wi-Fi. Речь, естественно, идет о ESP8266 и ESP32, которые обладают большим потенциалом в образовательном контексте.

image

Конечно, у них есть свои недостатки. Но цена. Это чудо. В частности, если покупаешь условный «Witty Cloud» за три доллара, в котором даже не надо мучаться вопросами питания и программирования. Сфера применения в IoT позволяет создать собственные проекты автоматизации различными путями — классическим образом: путем написания кода и работы в IDE. Или через тот же FLProg. Однако, как всегда, есть нюансы, несколько тормозящие репрезентацию работы в рамках типового применения ESP8266 как аппаратной основы. И проблема вовсе не в сетевом подключении, осуществляемой к домашней/офисной локальной сети с выходом в Internet через роутер. Устройства работают прилежно и могут выступать их в качестве Zigbee-координаторов при определенной конфигурации. ESP8266/ESP32 могут работать как в роли точки доступа так и оконечной станции. При нормальной работе в локальной сети ESP8266 конфигурируется в режим оконечной станции. Для этого устройству необходимо задать SSID Wi-Fi сети и, в закрытых сетях, пароль доступа. Для первоначального конфигурирования этих параметров удобен режим точки доступа. В режиме точки доступа устройство видно при стандартном поиске сетей в планшетах и компьютерах. Остается подключиться к устройству, открыть HTML страничку конфигурирования и задать сетевые параметры. После чего устройство штатно подключится к локальной сети в режиме оконечной станции.

Управление и визуализация данными в реальном времени – важная задача. Однако, далеко не всегда доступен быстрый старт в этом деле. А ведь после этого необходим их анализ. Важна также роль линии времени на графике — показать частоту и равномерность измерений. История процесса нужна для анализа и диагностики. Без необходимых знаний и анализа весь потенциал данных остается недоиспользованным, что является недоработкой и вызывает необходимость в инструменте, который может придавать значение цифрам и процентам наглядность и облегчать понимание и интерпретацию данных. Это необходимо в области научного эксперимента и в производственном процессе.

Онлайн-инструменты визуализации данных являются подходящим ответом на этот вызов времени. Отдельной задачей видится объединение данных, то есть синтез информации. Масштабирование во времени, выделение участка просмотра, масштабирование по оси Y, сдвиг по оси Y – все это необходимые атрибуты инструментов визуализации, благодаря которым даже самые сложные графики и диаграммы, просмотр которых вы осуществляете в панели (dashboard), будут наглядны и понятны. Одним из вариантов онлайн-визуализации данных с поддержкой SCADA является новый проект BortX.

Полагаю, что ознакомление с ним поможет вам в проведении экспериментов в реальном масштабе времени (например — в простой реализации ваших замыслов в образовательном процессе). Для работы нужно лишь зашить скетч «Спутник» на ваш ESP8266. С его кодом вы можете ознакомиться по ссылке. Модификация на ваше усмотрение — обязательное условие работы: ввести SSID и пароль для подключения ESP к вашему маршрутизатору. Кстати, пилотный проект спутника находится по адресу.

После загрузки скетча микропроцессор выводит информацию в интернет в виде web-страницы. Регистрация не нужна, ибо каждый микропроцессор имеет уникальный номер и по этому номеру осуществляется доступ через интернет. Сам ID можно узнать, открыв окно состояния COM-порта в Arduino IDE (115кбод/с):

image

По умолчанию идет TCP-порт 6110 использует протокол управления передачей данных (TCP), который является одним из основных протоколов в сетях TCP/IP. TCP является протоколом с установлением соединения и требует квитирования для установки сквозной связи. Только после установления соединения пользовательские данные могут пересылаться в обоих направлениях. Есть возможность установки пароля на страничку и т.д. Но наиболее важным элементом данной «системы» является условная поддержка языка управления из АСУ ТП.

Язык управления BS-88 основан на стандарте ISA S-88. Пример графического аналога — SFC. Язык управления позволяет ESP принимать решения о стратегиях управления на основе текущих условий и позволяет упорядочивать управление ESP в соответствии с потребностями некоторых действий. Этот язык отличается от традиционных языков программирования. Причина в том, что язык описывает действия по управлению производственным процессом.

В соответствии с BS-88, производственный процесс состоит из операций, которые могут происходить одновременно, например, нагрева воды и приготовления компонентов раствора.
В свою очередь операции состоят из фаз, которые выполняются последовательно. Существует только два типа операторов языка управления:

1. Активные операторы.
2. Операторы перехода (с условием или без условия) (transition).

Например, операция нагрева воды:
Фаза 1: открываем водяной клапан;
когда срабатывает датчик уровня, переходим на фазу 2
Фаза 2: закрыть водяной клапан;
включить нагреватель;;
когда температура достигает 60 градусов, переход к фазе 3
Фаза 3: выключить нагреватель;
стоп;

Предположим, что водяной клапан подключен к DO, датчик уровня воды подключен к D5, нагреватель подключен к D1, а A0 — это датчик температуры.
Сценарий выглядит следующим образом:

1: $ D0 = 1; // phase1
if($D1 = 1) trans {2}; // wait_for_D5_become_ "on"
2: $ D0 = 0; // phase2
$D2 = 1;
if($А0 >= 60) trans {3}; // wait_for_tempeature
3: $D2 = 0;
stop; // end_of_script


Язык использует написание переменных, таких как принято для ардуино, но на панели переменные могут иметь другое имя, например: Uakk, Set_Ux, Set_temp. Замена имен возможна в редакторе конфигурации. Чтобы получить доступ к редактору, нажмите на значок шестеренки на панели. Есть также переменные для внутренних вычислений или $ X0- $ X9 памяти. У них нет своих полей для отображения, но их можно увидеть, когда мы установим их значения для переменной

$X9 = $ X9 + 1; // автоматическое приращение
$ S3 = $ X9; // отображаем $ X9 в поле S3 приборной панели.


Более полная инструкция по языку управления АСУ ТП размещена на сайте. В режиме конфигурации онлайн прямо с сайта можно задавать сценарии работы:

image

И задавать (менять) названия переменных пинов:

image
Источник: https://habr.com/ru/post/518916/


Интересные статьи

Интересные статьи

Один из моих читателей прислал мне следующий вопрос (вероятно, задумавшись над замечанием, сделанным мной на вебинаре по сетевым возможностям AWS): Читать д...
Привет, Хабр! Эта статья описывает страдания начинающего процесс изготовления самоходной платформы на базе МК esp8266 с micropython, управляемой через встроенный веб-сервер. КДПВ: Ин...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...
Есть простой способ реализовать переключение языка в Single-Activity приложении. Стек экранов при этом подходе не сбрасывается, пользователь остается там, где переключил язык. Когда пользовател...
Привет! Мы «Хостинг технологии» и 5 лет назад запустили VDSina — первый vds хостинг, созданный специально для разработчиков. Мы стремимся сделать его удобным, как DigitalOcean, но с русской п...