что такое скада система в асу тп
Автоматизированные системы диспетчерского и технологического управления. Всё о SCADA-системах
Supervisory Control And Data Acquisition (SCADA)
SCADA-система — это инструментальная программа, обеспечивающая создание программного обеспечения для автоматизации контроля и управления технологическим процессом в режиме реального времени. Основная цель создаваемой с помощью SCADA программы — дать оператору, управляющему технологическим процессом, полную информацию об этом процессе и необходимые средства для воздействия на него.
ОСНОВНЫЕ ЗАДАЧИ SCADA-СИСТЕМЫ:
От надежности, быстродействия и эргономичности SCADA-системы зависит не только эффективность управления технологическим процессом, но и его безопасность.
КАКИЕ КОМПОНЕНТЫ SCADA НАИБОЛЕЕ ВАЖНЫ В РАБОТЕ И ПОЧЕМУ?
Специалисты отдела АСУТП промышленного предприятия по изготовлению соды утверждают, что в основном используют такие компоненты, как мониторинг и управление, архивирование технологических параметров, сообщений, подсистему формирования отчетов.
Мониторинг и управление, собственно, то, для чего и устанавливается система управления. Архивы параметров, сообщений и отчеты необходимы для оценки и анализа ведения технологического процесса, действий оператора и т.д. Также для них важен один из базовых инструментов SCADA — разграничение прав доступа к управлению по уровням (оператор, технолог, инженер АСУТП).
В связи с тенденцией к интеграции систем управления технологическими процессами и систем управления предприятием все чаще возникает необходимость использования SCADA в качестве источника данных для вышестоящих систем. Некоторые SCADA могут выступать и как сервер консолидации всех технологических данных, и как сервер генерации отчетов на базе этих данных.
Если система управления, построена на базе ПЛК одного производителя (к примеру, Siemens SIMATIC), то обмен данными между контроллерами и SCADA происходит с помощью встроенных драйверов протоколов связи. Некоторые независимые от производителей оборудования SCADA предлагают набор драйверов ко многим (но не всем) имеющимся на рынке контроллерам и интеллектуальными приборам. Наиболее универсальный способ взаимодействия — это использование драйверов, разработанных в соответствии со стандартом OPC. Такие OPC-серверы могут быть разработаны производителями контроллеров или независимыми разработчиками, а использоваться вместе с любой SCADA- системой. Для эффективной работы с OPC- серверами SCADA должна использовать их напрямую, по технологии «OPC в ядре системы», а не через промежуточные интерфейсы. Некоторые SCADA являются вертикально-интегрированными: в их состав входят системы программирования для свободно-программируемых контроллеров. В них также используются внутренние драйверы для связи с контроллером. Такие SCADA позволяют создать ПТК с использованием оборудования разных производителей.
УРОВНИ СИСТЕМ С ИСПОЛЬЗОВАНИЕМ SCADA
Системы технологической автоматизации обычно разделены на 3 уровня: нижний, средний и верхний. Выше них находится уровень управления производством в целом.
Нижний уровень — это сами датчики и исполнительные механизмы
Средний уровень — контроллеры. На среднем уровне происходит:
Верхний уровень — это и есть уровень SCADA. На этом уровне происходит:
УПРАВЛЕНИЕ ПРЕДПРИЯТИЕМ
Управление предприятием производится на двух уровнях:
MES (Manufacturing Execution Systems) — система управления производством продукции в реальном времени. Этот уровень служит для планирования производственных заданий для технологических процессов, построения сводных отчетов, глубокого анализа процесса (например, прогнозирование, построение энергетического и материально¬го баланса и др.). Для этих целей также может быть использован инструментарий SCADA.
ERP (Enterprise Resource Planning) — система автоматизированного управления административно-финансовой и административно-хозяйственной деятельностью предприятия. На этом уровне используются другие специализированные системы, например, SAP R3.
ФУНКЦИИ SCADA
■ Мнемосхемы
Мнемосхема — это графическое изображение (с помощью встроенного в SCADA графического редактора) технологической схемы с визуализацией значений датчиков, состояния исполнительных механизмов и др. параметров. Для визуализации используется не только отображение значений в виде цифр и надписей, но и изменение визуальных свойств отображаемых графических объектов. Например, в емкости изменяется уровень жидкости, а ее цвет изменяется в зависимости от температуры (динамизация). Исполнительные механизмы могут не просто показывать свое состояние каким-то графическим признаком (например, цветом), но и наглядно показывать свою работу — например, вращением лопастей насоса, движением ленты конвейера и т.п. (анимация).
■ Архивы
Получаемые от контроллеров данные SCADA складывает в архивы. Предварительно данные могут быть обработаны (отфильтрованы, усреднены, сжаты и т.п.). Часто используется не регулярная запись, а запись по изменению с использованием порога чувствительности («мертвой зоны»). Длительность хранения настраивается в SCADA индивидуально для каждого параметра и может составлять до нескольких лет.
■ Тренды
Тренд — это графическое отображение изменения параметра во времени. Тренды в SCADA- системах могут показывать изменение параметра за всю длительность его хранения в архиве. Оператору предоставляется возможность изменять масштаб, как времени, так и самого параметра. В развитых системах в тренд встроены различные инструменты анализа графика, сравнения его с уставкой или другим параметром, сглаживание или фильтрация, отметки на графике событий (например, нарушение границ) или закладок для памяти и многое другое.
■ Таблицы
Зачастую технологу удобнее просматривать архивы не в графическом виде, а в виде таблиц. Обычно эти таблицы можно не только просматривать, но и экспортировать в другие системы.
■ Графики
Обычно SCADA позволяют смотреть и зависимость одних параметров от других, тоже во времени. Хотя это функция и менее востребована технологами, чем тренды.
■ Гистограммы и диаграммы
Другим распространенным способом представления параметров являются гистрограммы (столбиковые диаграммы).
■ Сообщения
Сообщения — это текстовые строки, которые информируют оператора о событиях на объекте в той последовательности, в которой эти события происходят. Они всплывают на экране или отображаются в специально выделенной для этого зоне.
■Журналы сообщений
Журналы сообщений служат для отображения списков сообщений в том порядке, как они появлялись и были сохранены в архив. Как правило, используются разные экземпляры журналов для разных зон процесса, разных категорий сообщений, разных приоритетов.
■ Контроль прав доступа
Для того, чтобы оператор мог совершить те или иные действия, ему должны быть администратором предоставлены соответствующие права — например, право управлять исполнительным механизмом, или право изменить задание регулятору. В начале смены оператор регистрируется в системе, и она предоставляет ему выполнять только те действия, которые ему разрешены администратором.
■Журнал действий оператора
Управление технологическим процессом очень ответственная задача, поэтому все действия оператора записываются для контроля в специальный журнал, который может быть проанализирован в случае нештатных ситуаций.
■ Формирование отчета
Удобная среда разработки отчетов позволяет легко и быстро подготовить отформатированные и насыщенные информацией отчеты.
ХАРАКТЕРИСТИКИ SCADA-СИСТЕМЫ
ЗАРУБЕЖНЫЕ SCADA-СИСТЕМЫ
Наиболее популярные в России следующие зарубежные SCADA:
— WinCC (Siemens, Германия);
— InTouch (Wonderware, США);
— RSView32 (Rockwell Automation, США);
— Genesis64 (Iconics, США);
— Vijeo Citect (Schneider Electric, Франция).
ОТЕЧЕСТВЕННЫЕ SCADA-СИСТЕМЫ
Наиболее популярные отечественные модели SCADA:
В отличие от большинства западных SCADA все российские содержат встроенные средства программирования контроллеров с использованием языков стандарта МЭК61131-3, в том числе языка функциональных блоков. Причем, если сама SCADA рассчитана на работу в среде Windows на PC-совместимых компьютерах, то исполнительная система для контроллеров может работать и на Logix других платформах, например, Linux на процессоре с архитектурой ARM.
Стандарт OPC поддерживают все перечисленные системы, однако в системе «Trace Mode» упор делается на использование собственных драйверов, а MasterSCADA, хоть и поддерживает использование драйверов, но основывается на технологии «OPC в ядре системы» и предлагает отдельный инструментальный пакет для разработки OPC-серверов.
Сравнительная характеристика зарубежных и отечественных SCADA
Все современные SCADA, как отечественные, так и зарубежные, имеют полный функционал для этого класса программ, поэтому их сравнение по перечню функций в последние годы потеряло смысл. Основное преимущество российских SCADA — это их изначальная нацеленность на российский рынок (русскоязычная, а не переводная документация, техническая поддержка, уровень цен). Можно сделать вывод, что для каждого предприятия или даже применения желательно сделать сравнение нескольких SCADA, как по цене, так и по возможностям. Практически все SCADA имеют пробную версию, которая позволяет проверить ее пригодность для решаемой задачи.
По теме
Популярные товары
SCADA: в поисках идеала
По моим наблюдениям, большинство толковых специалистов АСУ, работающих со SCADA, проходят несколько стадий «эмоционального роста»: освоение какой-либо SCADA, поиск чего-то лучшего, идеи и попытки написания своего варианта, выработка философского отношения к проблеме и использование одного из существующих продуктов.
Да, бывают исключения. Например, встречаются сильно увлеченные и упорные энтузиасты, которые создают что-то работающее, но картины они не меняют совершенно.
Попробуем разобраться, почему так происходит и может ли быть выход из этого порочного круга.
Примечание: дальнейшие рассуждения будут касаться преимущественно коммерческих продуктов, но во многом справедливы и для проектов с открытым кодом, о которых будет сказано отдельно.
В первом приближении процесс работы со SCADA-системой сводится к нескольким действиям: выбор параметров обмена данными с ПЛК, разработка мнемосхем в специальном редакторе, настройка логирования событий и состояний параметров. Для обеспечения сложного поведения графических элементов мнемосхем и несложных математических расчетов используется написание скриптов или вообще предполагается, что достаточно средств простейшей анимации, настраиваемой в редакторе.
Такой подход во многом себя оправдывает — легко обучиться, можно быстро реализовать несложные проекты. По большому счету, можно даже не иметь минимальных знаний о программировании для начала работы.
Сегодня существует довольно большое количество SCADA-систем, различающихся по своим возможностям, стоимости, удобству разработки и т.д. Казалось бы, выбирай подходящий вариант и начинай творить доброе, светлое, вечное… Но тут-то и выясняется, что все не так просто.
Теперь, получив представление о трудностях, попробуем сформулировать требования к идеальной SCADA и посмотрим, можно ли решить проблему, если слегка выйти за рамки традиционной парадигмы.
Когда я впервые познакомился с Qt, то был просто поражен внутренней логичностью и богатством этой библиотеки. Как только возникает задача сделать что-нибудь, очень часто выясняется, что это уже практически реализовано в Qt и надо просто адаптировать под свои нужды.
Когда задача правильно сформулирована, остается ее просто реализовать, что я и начал делать некоторое время назад. К текущему моменту удалось реализовать минимальный джентльменский набор компонентов.
Созданный набор можно условно поделить на несколько групп.
Конечно, предстоит пройти еще немалый путь, но уже сейчас просматривается несколько возможных направлений для применения, помимо собственно всех видов классических задач промышленной автоматизации:
Как-то незаметно для меня, мое хобби превратилось во что-то большее, вызывающее интерес у других людей. Появилась мысль превратить это творчество в стартап, но пока все упирается в недостаток людей, готовых разделить со мной эту работу. Если у Вас есть желание принять участие в развитии стартапа, встать у истоков новой компании или попробовать себя в роли сооснователя, напишите мне в личку.
Чуть больше информации можно найти на странице в Facebook.
Также буду очень благодарен за конструктивную критику и новые идеи.
Промышленное программирование, или Пара слов об АСУ ТП
Есть такая профессия — производство автоматизировать. Аббревиатура АСУ ТП означает «автоматизированная система управления технологическим процессом» — это система, состоящая из персонала и совокупности оборудования с программным обеспечением, использующихся для автоматизации функций этого самого персонала по управлению промышленными объектами: электростанциями, котельными, насосными, водоочистными сооружениями, пищевыми, химическими, металлургическими заводами, нефтегазовыми объектами и т.д. и т.п.
Фактически, каждый человек, живущий не в лесу и пользующийся благами цивилизации, использует результаты труда предприятий, на которых функционируют АСУ ТП.
Иногда на эту тему проскакивают статьи и на хабре. Обычно они не пользуются особой популярностью, но всё же я хочу написать несколько обзорных статей об АСУ ТП в надежде рассказать хабравчанам что-то интересное (а возможно, кому-то даже полезное) и привлечь на хабр больше своих коллег.
Сначала пара слов о себе. Я только начинаю свой жизненный путь в автоматизации, опыт работы без малого два года. За это время побывал на нескольких газовых месторождениях, сейчас работаю на нефтяном.
Поскольку область обширная, несмотря ни на что развивающаяся, местами противоречивая и спорная, буду стараться обобщать не в ущерб достоверности, но не могу избежать перекоса в свою область — то оборудование, софт и сферу, с которыми лично я сталкивался.
Итак, программно-технический комплекс АСУ ТП делится на три уровня: верхний (компьютеры), средний (контроллеры), нижний (полевое оборудование, датчики, исполнительные механизмы). Про нижний уровень рассказывать не буду — слишком уж это далеко от от тематики хабра, да и статья получится слишком большая.
Верхний уровень
Верхний уровень — это серверы и пользовательские ПК (у нас они называются АРМ — автоматизированное рабочее место). Сюда выводится состояние технологического процесса, и отсюда при необходимости оператором подаются команды на изменение его параметров. Для упрощения разработки создано большое количество SCADA-систем (от англ. supervisory control and data acquisition — диспетчерское управление и сбор данных). Это в некотором роде расширенный аналог IDE, в котором скомпилированная «программа» и выполняется.
Системы SCADA
Вообще, если отбросить академизм, то на предприятии для всех кроме асушников скада выглядит вот так:
А если совсем не повезёт, то вот так:
Подразумеваются два режима функционирования: режим разработки и режим выполнения (runtime). Не обязательно эти режимы взаимоисключающи: можно редактировать проект на одном АРМе, инженерном, заливать его, он обновится на пользовательских. Это очень важно — изменять проект без простоев и отключений, потому что технологический процесс прерывать нельзя, и операторы всегда должны иметь возможность его контролировать. В скаде создаются графические интерфейсы, настраиваются источники данных с полевых устройств, она отвечает за взаимодействие пользователя (оператора, диспетчера, технолога) с происходящим на производстве, а также за архивирование всех нужных данных в БД.
Архивирование — одна из обязательных функций, очень важно иметь возможность «вернуться назад во времени» для разбора полётов в случае чего-то непредвиденного либо для глобального анализа при медленных, длительных процессах. Например, недавно геологи попросили меня выгрузить табличкой данные по давлению нефти на скважинах за последний год.
Периодически скада складывает все собранные данные в БД. Их потом можно посмотреть в виде графиков (называем их трендами), а при необходимости, если оговорено в ТЗ на АСУТП, реализуется выгрузка в виде отчётов в эксель или ещё как-нибудь. Архивация сделана по-разному: в MS SQL; MS Access; в ту же MS SQL, но по своему хитрому алгоритму с дополнительной архивацией; а у кого-то вообще в свою собственную бинарную БД.
Особым пунктом в скадах идёт информирование оператора: текущие сообщения и аварийные. Они тоже обязательно архивируются. В общем виде сообщения делятся на текущие и важные (аварийные). Текущие прячут подальше, но журнал аварийных всегда выводится на экране оператора. К текстовым аварийным сообщениям привязываются звуковые, чтобы кто-нибудь не проспал ЧП 🙂
Рынок SCADA
Самыми распространёнными, по-моему, считаются скады производства Invensys Wonderware, Iconics, Siemens, Indusoft, AdAstra, Emerson, Rockwell Automation.
Я лично работал с виндовыми: Invensys Wonderware InTouch и более мощной System Platform, с Iconics Genesis32 — и с (пока ещё?) малоизвестной B&R APROL под SLES (формально, это не совсем скада, а покруче — из-под апрола программируются и сами контроллеры).
По поисковым запросам, например, SCADA, HMI можно посмотреть примеры интерфейсов и мнемосхем.
Внешний вид и юзабилити по приоритету, увы, находятся на последнем месте. Причём, это касается не только рантайма, но и разработки. Для разработки в каждой скаде существуют как минимум дефолтные библиотеки символов — от кнопок и прочих контролов до графических изображений насосов, труб, задвижек, ёмкостей. Здесь-то и могли бы умные разработчики SCADA-пакетов (не путать с нами, асушниками — разработчиками проектов в этих пакетах) добиться принципиального преимущества над конкурентами, сделав продуманные библиотеки, из которых бы даже самый далёкий от дизайна и юзабилити инженер при всём нежелании делал бы гуманные интерфейсы и мнемосхемы. К сожалению, сейчас эта сфера идёт по пути экстенсивного развития, по которому развивалась IT до недавнего времени — наращивание функционала, добавление плюшек, больше, выше, сильнее, harder, better, stronger, и о пользователях пока думают мало.
Средний уровень
Средний уровень — ПЛК, программируемые логические контроллеры. Здесь всё достаточно просто, чаще всего физически ПЛК состоят из отдельных модулей. Для программирования у каждого ПЛК есть своя среда разработки, иногда она объединена со средой для создания SCADA.
Состав ПЛК
Контроллер B&R серии X20
Зачем нужен блок питания — понятно. БП сделан отдельным именно модулем, а не устройством, чтобы гарантировать совместимость с данной линейкой ПЛК. Чаще всего входное напряжение у БП 220 В переменного тока, выходное — 24 В постоянного тока.
Процессорный модуль — это голова ПЛК. Внутри у него, само собой, ЦПУ, ОЗУ и ПЗУ, сервисный порт для прошивки и, возможно, коммуникационный порт (ethernet, RS232/422/485, Profibus, etc). Иногда коммуникационный порт используется и как сервисный. Иногда на модуле есть переключатель (у Allen Bradley ещё круче — там натуральный ключ с замочной скважиной) для перевода ПЛК в различные режимы работы. Отдельной кнопки включения/выключения нет, в лучшем случае — тот переключатель, иначе, если есть питание — ПЛК запускается, а выключается и перезагружается «по-варварски» отключением питания.
Контроллер Allen Bradley серии CompactLogix
Дискретные и аналоговые модули обрабатывают соответствующие сигналы. Входные модули принимают эти сигналы с поля, выходные — формируют их.
Дискретный сигнал — это обычно напряжение цепи 24 вольта. Есть 24 — это «1», нет — «0». Бывают модули на 220В, есть модули с проверкой целостности цепи. Дискретные сигналы, приходящие с поля, могут информировать, например, о состоянии насоса включен/выключен. Управляющие дискретные сигналы могут запускать либо останавливать этот насос. Оптимизация здесь не оправдана, поэтому на запуск будет отдельная цепь, на останов — отдельная.
Модули I/O одного типа могут быть объединены: например, один модуль с 16 дискретными входами и 16 дискретными выходами.
Аналоговые входные сигналы — это приходят показания с датчиков. Здесь чаще всего используется токовая петля 4-20 мА, в соотетствие которой ставятся пределы измерения датчика. Начинается от 4 мА для диагностирования обрыва цепи (если меньше 4 мА, значит где-то что-то не в порядке с проводкой).
Рассмотрим на примере уровня жидкости в резервуаре. Стоит уровнемер, он измеряет уровень от 0 до 2 метров. Тогда: уровень 0 метров — это 4 мА, уровень 2 метра — это 20 мА. Промежуточные значения калибруются по ситуации, не всегда 1 метр соответствует 4+(20-4)/2=12 мА, может быть небольшая погрешность, уровень в 1 метр может быть какие-нибудь 12,7553 мА.
Аналоговые выходные — то же, только на управление. Не встречал чтобы использовалось, т.к. всегда существуют наводки. В измерении это допустимая погрешность, в управлении — нет. Да и неудобно это. Вместо них используется цифровая передача данных по различным протоколам через коммуникационные модули.
Температурные модули замеряют сопротивление в цепи либо термо-ЭДС. Если на них подключаются термометры сопротивления — при нагревании металла его сопротивление, по законам физики, повышается, соответственно определяется температура. Если подключается термопара (два спаянных проводника из разных металлов, при нагревании стыка возникает разность потенциалов между другими концами), замеряется напряжение.
Интерфейсные (или коммуникационные) модули предоставляют нам порты под RJ45, DB9, DB15, просто клеммники или что ещё бог производителю на душу положит. Помимо реализации непосредственно интерфейса (физического разъёма под коннектор, физического уровня модели OSI) они также реализуют протокол обмена через этот разъём.
Протоколы и интерфейсы
Протоколов напридумывали и используют кучу: ModBus (RTU, TCP, ASCII), Profibus, Profinet, CAN, HART, DF1, DH485 и т.д. Некоторые особо хитрые производители реализуют свои протоколы поверх общепринятых.
Я достаточно тесно знаком с интерфейсами RS232/485 и протоколами Modbus. RS232 это всем знакомый COM-порт, с тремя основными линиями: Tx (transmit, передача), Rx (recieve, получение) и GND (ground, земля). RS485 это асинхронный полудуплексный последовательный интерфейс по 2 проводам (совмещённые Tx/Rx+ и Tx/Rx-) или 4 проводам (отдельно Tx+, Tx-, Rx+, Rx-) с разностью потенциалов на каждой паре от 2 до 10 вольт.
А модбас это в общем-то нехитрая штука, с проверкой целостности пакета по чексумме, подтверждением доставки и корректности запроса — или ответом, почему запрос неверен. В сети модбас есть два вида устройств: master — инициирует обмен; slave — выполняет запросы мастера. Пакет от мастера расходится ко всем слейвам, которые сравнивают адрес назначения со своим, если сходится, то смотрят следующие два байта — это команда работы с регистрами памяти — чтение/запись (за исключением нескольких редко используемых служебных команд), потом байты адреса и непосредственно данных, в конце чексумма. Достаточно подробно и понятно расписано на википедии.
Программная начинка
Первое, что нужно сказать, программа в ПЛК выполняется циклически с определённой частотой. Возможности зависят от контроллера, обычно это где-то 20, 50, 250 мс, 1, 2, 3, 4, 5 с. Естественно, это не гарантирует выполнение кода именно за такой промежуток времени, нельзя большие программы пихать в цикл 20 мс, к началу следующего цикла предыдущий должен быть завершён.
Второе, это языки программирования. По идее программируются ПЛК на языках, определённых стандартом МЭК61131:
Это «по идее». Но, например, Siemens придерживается своего наименования языков, а у B&R есть возможность писать на ANSI C.
Самые используемые контроллеры, безоговорочно, у Siemens и Allen Bradley (последним, к слову, принадлежит Rockwell Automation со своей линейкой SCADA-пакетов RSView). За ними по пятам идут Schneider Electric; ОВЕН; General Electric; AutomationDirect; ICP DAS; Advantech; Mitsubishi Electric; B&R.