асу тп обучение с нуля самостоятельно
Промышленное программирование, или Пара слов об АСУ ТП
Есть такая профессия — производство автоматизировать. Аббревиатура АСУ ТП означает «автоматизированная система управления технологическим процессом» — это система, состоящая из персонала и совокупности оборудования с программным обеспечением, использующихся для автоматизации функций этого самого персонала по управлению промышленными объектами: электростанциями, котельными, насосными, водоочистными сооружениями, пищевыми, химическими, металлургическими заводами, нефтегазовыми объектами и т.д. и т.п.
Фактически, каждый человек, живущий не в лесу и пользующийся благами цивилизации, использует результаты труда предприятий, на которых функционируют АСУ ТП.
Иногда на эту тему проскакивают статьи и на хабре. Обычно они не пользуются особой популярностью, но всё же я хочу написать несколько обзорных статей об АСУ ТП в надежде рассказать хабравчанам что-то интересное (а возможно, кому-то даже полезное) и привлечь на хабр больше своих коллег.
Сначала пара слов о себе. Я только начинаю свой жизненный путь в автоматизации, опыт работы без малого два года. За это время побывал на нескольких газовых месторождениях, сейчас работаю на нефтяном.
Поскольку область обширная, несмотря ни на что развивающаяся, местами противоречивая и спорная, буду стараться обобщать не в ущерб достоверности, но не могу избежать перекоса в свою область — то оборудование, софт и сферу, с которыми лично я сталкивался.
Итак, программно-технический комплекс АСУ ТП делится на три уровня: верхний (компьютеры), средний (контроллеры), нижний (полевое оборудование, датчики, исполнительные механизмы). Про нижний уровень рассказывать не буду — слишком уж это далеко от от тематики хабра, да и статья получится слишком большая.
Верхний уровень
Верхний уровень — это серверы и пользовательские ПК (у нас они называются АРМ — автоматизированное рабочее место). Сюда выводится состояние технологического процесса, и отсюда при необходимости оператором подаются команды на изменение его параметров. Для упрощения разработки создано большое количество 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.
Форум АСУТП
Клуб специалистов в области промышленной автоматизации
Начальный путь АСУ ТПшника
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 11 ноя 2018, 22:41
Начальный путь АСУ ТПшника
Сообщение Jackson » 11 ноя 2018, 22:59
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 11 ноя 2018, 23:17
Начальный путь АСУ ТПшника
Сообщение Serex » 11 ноя 2018, 23:37
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 11 ноя 2018, 23:46
Начальный путь АСУ ТПшника
Сообщение Serex » 11 ноя 2018, 23:47
Начальный путь АСУ ТПшника
Сообщение petr2off » 12 ноя 2018, 05:56
Начальный путь АСУ ТПшника
Сообщение and909 » 12 ноя 2018, 06:57
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 12 ноя 2018, 07:57
Начальный путь АСУ ТПшника
Сообщение dtv » 12 ноя 2018, 09:42
Начальный путь АСУ ТПшника
Сообщение Jackson » 12 ноя 2018, 12:00
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 12 ноя 2018, 17:27
Начальный путь АСУ ТПшника
Сообщение Никита » 12 ноя 2018, 18:39
Начальный путь АСУ ТПшника
Сообщение petr2off » 12 ноя 2018, 18:53
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 13 ноя 2018, 07:41
Отправлено спустя 7 минут 16 секунд:
так что это, проектирование изучать не стоит или конструирование? какая разница в этом?
Отправлено спустя 1 час 12 минут 37 секунд:
Начальный путь АСУ ТПшника
Сообщение petr2off » 13 ноя 2018, 09:10
Начальный путь АСУ ТПшника
Сообщение alex45 » 13 ноя 2018, 09:27
Начальный путь АСУ ТПшника
Сообщение Jackson » 13 ноя 2018, 10:24
Книги лучше мои коллеги сейчас посоветуют.
Начальный путь АСУ ТПшника
Сообщение mirage2000 » 13 ноя 2018, 17:42
Начальный путь АСУ ТПшника
Сообщение petr2off » 13 ноя 2018, 18:26
Начальный путь АСУ ТПшника
Сообщение and909 » 14 ноя 2018, 06:15
Начальный путь АСУ ТПшника
Сообщение Jackson » 14 ноя 2018, 10:07
«Дефицит вычислительных ресурсов ведёт к дисциплине мышления». (с) И это так и есть.
Асу тп обучение с нуля самостоятельно
Главный эксперт по автоматизации производства,
У меня было много ситуаций, в которых я чувствовал себя не очень уютно. Очень часто работодатель требовал от меня всё сразу, а было ясно, что предстоит много работы и часто было не очень понятно, как к ней подступиться. Это бывало и когда я был ещё неопытным специалистом, и когда я уже проработал в нише АСУТП не один год, но мне приходилось менять отрасль.
Я хотел бы дать несколько практических советов новичкам на новом месте работы: с чего начать и как не ошибиться.
Вот типичный пример. Совсем недавно у меня был разговор с одной инженерной фирмой, занимающейся АСУТП московского метрополитена. Человек, который разрабатывал проект для одной из станций, серьёзно заболел и покинул компанию, не оставив толковой документации. Было не очень понятно, закончен ли весь монтаж и осуществлена ли полноценная проверка оборудования и программного обеспечения. Как всегда, задача – сдать объект как можно быстрее. Подготовительная работа может быть сделана в офисе, но наладка производится только ночью, когда метро закрыто.
Когда новичок или даже специалист с опытом сталкивается с такой ситуацией, возникает два вопроса:
Попробую дать краткий совет и натолкнуть читателя на некоторые мысли. Начнём со второго вопроса. Есть вещи, к которым можно подготовиться заранее.
Основы ТАУ, архитектура АСУТП, языки программирования контроллеров и ряд других вещей нужно знать, хотя конкретный проект может не потребовать всех этих знаний одновременно. Курсы Файн Старт в этом плане построены так, что они дадут хорошую основу без лишней информации. Этой основы будет достаточно для быстрого погружения в конкретную задачу и конкретного обсуждения стоящих проблем с коллегами.
Глубокое понимание методов и процессов проектирования АСУТП и лучших мировых практик в этой области
Приведём простой пример. Допустим, инженер создал версию программы ПЛК и загрузил её в контроллер. Далее он проверил эту версию в реальных условиях и по результатам проверки решил что-то подправить. В результате он выпустил ещё одну новую версию, загрузив её в контроллер. Далеко не всегда бывает, что самая последняя версия – оптимальная, и может появиться необходимость вернуться к предыдущей. Естественно, эта версия должна сохраниться и быть соответствующим образом задокументирована. Правильное ведение документации и работа с версиями программного продукта – элементарные основы процесса проектирования.
Знание оборудования АСУТП
Очень часто работодатели требуют знаний оборудования конкретных вендоров, а их на рынке становится все больше. Здесь очень важно понимать сегодняшний рынок и что конкретно поставляет каждый вендор. Это позволит вам ориентироваться и, в первую очередь, изучать оборудование наиболее интересных вам поставщиков. Например, для сегмента электростанций неплохо знать оборудование компаний Siemens, Honeywell, Yokogawa. При отсутствие такой возможности я бы изучил по крайней мере оборудование первых двух поставщиков. В этом случае изучение Yokogawa не составит большого труда.
Я думаю, что наши курсы дадут вам понимание всех этих нюансов и возможность сделать грамотный выбор.
Это вещь достаточно близкая к АСУТП и в большинстве случаев необходимая. В своей работе я часто замещал инженера-электрика или работал с ним в связке. Тут важно понимать основополагающие вещи и уметь читать техническую документацию. Как правило, этого будет достаточно, хотя многое зависит от конкретной работы.
Здесь я бы не экономил время. Не только стандартные языки программирования контроллеров МЭК 61131-3, но и С/С++/C#, Microsoft SQL и многое другое. Очень часто даже от инженера-электроника требуется умение программировать. Эта тема очень обширная и требует отдельного разговора, но мой вам совет: занимайтесь программированием!
Итак, определенная подготовка, сочетающая теоретические и практические знания и навыки, безусловно, поможет вам быстрее сориентироваться в новых практических задачах, выбрать оптимальный и быстрый путь их решения.
Теперь мы готовы ответить на первый вопрос: как правильно подойти к решению поставленных задач на новом месте работы. Задачи могут быть двух видов:
В реальной жизни вам часто придётся заниматься и тем, и другим
Современные АСУ ТП
Прочитав интересную статью, мне захотелось поделиться своими знаниями и соображениями по поводу современных АСУ ТП. Описанное ниже относиться в большей степени к продукции таких фирм как Yokogawa, Siemens и Honeywell. Сразу хочу сказать, что у каждой из систем есть свои особенности, преимущества и недостатки, так что я описываю лишь общие характеристики современных АСУ ТП.
Современные автоматизированные системы управления технологическими процессами (АСУ ТП), применяемые на опасных производствах и предприятиях (химическая, нефтехимическая промышленности, ГЭС, ТЭС, АЭС и т.д.), как правило, состоят из распределенной системы управления (РСУ) и системы противоаварийной автоматической защиты (ПАЗ).
Основная задача ПАЗ — перевод производства в безопасное состояние, при возникновении каких-либо проблем в работе РСУ (выход технологических процессов за установленные границы, отказ оборудования, нештатные ситуации). Как правило, система ПАЗ получает данные от дублированных датчиков (одной из самых надежных схем считается «2оо3», когда срабатывание любых 2 из 3 датчиков, установленных на одной контрольной точке, считается необходимым условием для срабатывания защитной блокировки) и управляет резервированным оборудованием. У системы ПАЗ нет станций оператора, есть только инженерная станция, с помощью которой выполняется конфигурирование ПЛК системы ПАЗ. Со станций оператора РСУ можно видеть как работает система ПАЗ, но нельзя ей управлять. Конечное оборудование не зависит от оборудования РСУ, к примеру, если на трубопроводе заклинил клапан РСУ, то отработает отсекатель системы ПАЗ.
Особенности АСУ ТП
Выводы
Таким образом, заражение станции оператора вирусом маловероятно, но даже если это произошло, то никакой явной угрозы безопасности это не представляет. Конечно, бывают случаи, когда операторы, обходят запреты и ухитряются установить на свои станции игры и выйти в интернет, но это быстро пресекается лишением премий и другими административными методами. Если же предположить, что существует специализированный вирус, который знает особенности функционирования систем, и сможет гипотетически управлять технологическим процессом, вызывая тем самым негативные последствия, то в любом случае, при возникновении аварийной ситуации отработает система ПАЗ (которая не управляется со станций операторов) и переведет производство в безопасное состояние. Да, это будут миллионные убытки предприятию (останов производства), но в любом случае не техногенная катастрофа. Если говорить о вероятности заражения вирусом инженерной станции ПАЗ, то это, во-первых, должен быть супер интеллектуальный вирус, который сам перепрограммирует ПЛК, причем именно так, чтобы тот отказал в необходимый момент, во-вторых, инженеры ПАЗ, должны быть совершенно безголовые и рыть яму сами себе. Конечно, это не все факторы, которые делают заражением станции инженера ПАЗ маловероятным событием, могу привести еще несколько: постоянные сверки версии программ загруженных в ПЛК, постоянный контроль помещения с инженерными станциями, ну и конечно же, пароль, установленный на сам проект системы ПАЗ.
В итоге хочется сказать, что безопасности современных АСУ ТП, конечно, угрожают вирусы и прочие высокотехнологичные проблемы, такие как уход станций оператора в банальный BSOD, но они не так критичны как многие хотят это представить. Надо помнить, что за безопасностью следят системы ПАЗ, к конфигурированию которых подходят со всей осторожностью и ответственностью. Человеческий фактор всегда имеет место, но системы ПАЗ для того и создаются, чтобы свести негативное влияние данного фактора к минимуму.
С удовольствием отвечу на вопросы, если они возникнут.
UPD. Возможный сценарий атаки на SCADA систему аргументировано описал makran, которому, кстати, спасибо за инвайт.