Как стать автором
Обновить

О создании собственной SCADA системы



Начну с того, что с недавнего времени я работаю инженером АСУ на сахарном заводе. Здесь много автоматики и разнообразного ПО, по большей части устаревшего. Одна из основных проблем — Scada-системы. Для нас они являются слишком дорогими, медленными и требовательными. Не стану перечислять конкретные недостатки и проблемы, скажу лишь, что у нас их немало. Исходя из вышеописанного и оценив возможности, мы решили, что стоит попробовать сделать собственную Scada-систему.

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

Разработка проекта была скрыта от остальных, поэтому, когда нас спрашивали о том, что мы делаем, мы отвечали что это секрет. В дальнейшем, не долго думая, мы так и назвали систему: Secret-scada. Сама скада является OPC клиентом с обменом по OPC DA версии 3.0 или ниже. В качестве OPC сервера мы используем простой и качественный KEPServerEX. Во-первых, потому что он поддерживает DA 3.0, во-вторых, имеет множество драйверов для различных контроллеров (полный список вы можете увидеть здесь), стоимостью обычно не выше 895$. На нашем объекте используются контроллеры Modicon Momentum, количество используемых тегов: 700 штук. Для наглядности приведу схему передачи данных от датчика в Scada-систему. Все просто:


Сама скада использует OpenGL, либо DirectX в качестве рендера, на усмотрение пользователя. Для этой цели используется кроссплатформенный игровой движок ZenGL. Так получилось, что я с ним хорошо знаком уже много лет и не сомневаюсь в его качестве. Все текстуры и изображения создавались с использованием 3Ds Max и Photoshop. Текстуры труб, сборников и уровней, подготовлены так, чтобы растягивание этих элементов не приводило к потере качества изображения. Пользователь также может добавлять свои изображения в формате png. Многие элементы могут связываться с тегами и меняться в зависимости от значения тега. Создание и редактирование списка аварийных сообщений, также предусмотрено в редакторе проектов. Некоторые базовые возможности демонстрируются на этом видео:

http://youtu.be/epMCQnjXrvc
* к сожалению мне не удалось снять видео так, чтобы оно не тормозило. Все действия пришлось делать медленно, чтобы все было понятно. В действительности, программа работает очень шустро даже на слабых машинах.

Скриншот из редактора проектов:
Скриншот 1

Скриншоты Scada-системы в работе:
Скриншот 1
Скриншот 2
Скриншот 3

При разработке скады, я хотел сделать её как можно менее громоздкой и простой. Думаю, что отчасти это мне удалось, по крайней мере, для текущего проекта. Система уже успешно отработала один свекловичный сезон и получила высокую оценку. Теперь мы планируем внедрить её на станции вакуум аппаратов. Здесь проект гораздо более глобальный, на ~4000 тегов, с большим количеством мнемосхем. Также есть мысли по распространению Scada-системы для широкого круга пользователей. Поэтому сейчас ведется разработка второй версии программы. Она будет сильно отличаться от текущей версии в плане возможностей и минималистичности интерфейса. Вот как выглядит сейчас новая версия Scada-системы:

Скриншот 1
Скриншот 2
Скриншот 3

В ближайших планах создание редактора трендов, добавление возможностей ведения логов и создание встроенного веб-клиента.

Хотелось бы услышать Ваше мнение по поводу программы.
Спасибо за внимание!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.