Наш магазин на eBay Наш магазин на AliExpress Наш канал в telegram

Web против SCADA. Часть 1. Противостояние неизбежно, результат — предсказуем

В этом небольшом (частей в несколько) обзоре, я хочу, поделиться с Вами своим видением перспектив развития систем АСУТП, показать возможности современных web-технологий и, самое главное, поднять вопрос о том, действительно ли нам всё ещё нужно тратить огромные деньги на покупку такого, казалось бы важнейшего на сегодня, компонента АСУТП, как SCADA (а может даже и ещё что-то лишнее найдём).

Итак, для начала давайте рассмотрим, как выглядит структурная схема современной АСУТП и опишем задачи, которые решаются каждым из её компонентов.

типовая структура АСУТП

С нижним уровнем всё понятно, — полевое оборудование (датчики и исполнительные механизмы), подключенное к контроллерам через специализированные цифровые шины (profibus, fieldbus …) или просто аналоговым сигналом по двум проводам.

Средний уровень — это различные контроллеры (ПЛК), которые собирают информацию от датчиков, обрабатывают её (согласно заложенным в ПЛК алгоритмам) и выдают управляющие воздействия на исполнительных механизмы. То есть ПЛК как раз и осуществляют автоматическое управление процессами.

Ну и наконец верхний уровень. Здесь расположены сервера и операторские станции. Задача этого уровня — обеспечение взаимодействия между автоматикой (в лице управляющих контроллеров) и человеком (оператором), а так же хранение исторической информации (история тревог, тренды, история действий операторов …)

Задачи верхнего уровня как правило решаются с помощью специального программного обеспечения, именуемого SCADA. SCADA — это аббревиатура от английских слов Supervisory Control And Data Acquisition, что можно перевести как диспетчерское управление и сбор данных.

На самом деле, SCADA обычно представляет собой довольно большой и довольно дорогой пакет программ, заточенных под клиент-серверную архитектуру. То есть, в составе SCADA-системы есть серверная часть (обычно набор серверов), которая отвечает за: обмен данными с контроллерами (через OPC или драйвера), хранение исторической информации, формирование отчётов и тому подобное, и есть клиентская часть, которая отвечает за: визуализацию и доступ оператора к данным серверов, то есть отображает информацию с серверов и даёт оператору возможность через сервера управлять процессом (изменять какие-то параметры). При этом, если сервера и клиенты физически разнесены на разные машины, то в качестве линий связи между ними обычно используется Ethernet.

При этом, сразу хочу сказать, что в нормальных системах все алгоритмы управления закладываются в контроллер, а не в скаду (хотя SCADA-системы зачастую позволяют реализовать и алгоритмы ПИД-регулирования, и какие-нибудь циклограммы и прочие вещи). Любой контроллер на порядок надёжнее и стабильнее компа. SCADA ставится поверх обычной операционки, чаще всего Windows, о надёжности которой и так ходят легенды, плюс туда накатывают ещё какое-нить левое ПО — в итоге всё начинает глючить, падать и виснуть. В контроллере же обычно стоит только real-time OS, в которой крутятся ваши алгоритмы, и никакого левого ПО.

Таким образом всё управление в скаде оператором сводится к тому, чтобы по нажатию кнопки сбросить или установить в контроллере какой-нибудь один битик, изменяющий работу заложенного в контроллер алгоритма, ну, или максимум, ввести какое-то число (целое или с плавающей точкой).

Что-то я отвлёкся, вернёмся к нашей скаде. Что же в итоге получилось? Получилось, что SCADA — это такой набор дорогущих программ (каждая часть этого набора отдельно лицензируется и стоит отдельных денег), который позволяет нам получать и отправлять данные по сети Ethernet, красиво их отображать и всяко-разно обрабатывать.

И всё? Ага, и всё. Клиент-сервер, Ethernet, отображение данных, хм, где-то я всё это уже слышал. Да вот же, ё-моё — web-технологии!

Чем обычный web-сервер, скажем апач, в связке с обычным браузером, хуже SCADA-системы. Да ничем. Отдать данные пользователю через Ethernet, принять данные от пользователя через Ethernet — да пожалуйста, через http такое вполне реально (на сайте есть статья как сделать простейший http-сервер самому).

Визуализация? Да бросьте. С внедрением SVG это вообще перестало быть проблемой. Рисуйте что хотите и как хотите, — есть куча редакторов, позволяющих нарисовать что угодно и экспортировать в SVG (а можете вообще прямо в блокноте «рисовать»). При этом, в отличии от многих скад, у вас не будет никаких проблем с масштабированием (вектор — есть вектор).

Хранение данных? А мускул (MySQL) на что? Вполне себе отличная БД. Пихайте данные туда и храните сколько хотите и как хотите.

Авторизация, защита данных? Используйте https вместо обычного http, добавьте своё шифрование и передавайте по http зашифрованные данные, используйте и то, и другое и что-нибудь ещё. Ну а уж авторизация вообще на каждом форуме прикручена, тут проблем нет (проблему решают всё те же мускул и php).

Интерактив, генерация отчётов? А javascript на что? А php? На них, кстати, можно, в принципе, и алгоритмы управления реализовать. По крайней мере для какой-то бытовухи (как я уже писал, для серьёзных систем такое неприемлемо, и даже возникновение такого желания — это извращение и повод обратиться, если не к психиатру, то хотя бы к психологу).

Что там у нас осталось неохваченным? Обмен данными с контроллером? Да, вот здесь придётся либо разбираться с драйверами (что довольно проблематично для огромного количества различных железок), либо пользоваться OPC. Но прикол в том, что как раз OPC-сервера (в отличии от скад) обычно даются производителем оборудования совершенно бесплатно, остаётся только прикрутить к ним своего OPC-клиента. Конечно вменяемость технологии OPC оставляет желать лучшего (что они там все курили?), но всё же это вполне реально.

Итак, на сегодня у нас есть всё необходимое, чтобы полностью отказаться от таких дорогих, глючных и неэффективных программ, как SCADA-системы. Чего не хватает? Не знаю, может быть как раз вот этой статьи 🙂

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

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

Что ж, надеюсь в «светлом» будущем SCADA-систем я вас убедил, поэтому в следующих частях попробую перейти от слов к делу и на каком-нибудь простеньком примере реализовать изложенную выше концепцию по построению АСУТП без всяких этих, как там они назывались, ну эти, дорогие, допотопные программы, ну вот, уже забыл…

  1. Часть 1. Противостояние неизбежно, результат — предсказуем.
  2. Часть 2. Простой удалённый мониторинг через web-браузер.
  3. Часть 3. Удалённое управление через web-браузер.
  4. Часть 4. Продвинутая визуализация в web-браузере. АСУТП аквариума.

Добавить комментарий