В данной статье описывается структурное разделение системы управления, использующейся на всех автоматизированных производствах. Описываются языки программирования, используемые при работе с системой, и рассматриваются наиболее часто встречающиеся программы для программирования системы управления.
Ключевые слова:автоматизированная система управления, АСУТП, уровни АСУТП, датчики, цифровой сигнал, ПЛК, контроллер, языки программирования, визуализация.
Каждое современное производство в настоящее время оборудовано автоматической системой управления, которая прослеживает, контролирует и регулирует весь технологический процесс. Данная система обеспечивает управление всеми подчиняемыми ей структурными единицами без вмешательства человека.
Так как современные технологические процессы, в целом, как объект управления, являются структированно-сложным объектом, то при управлении процессом формализованные операции выполняются автоматически и подчиняются определенной структуре АСУТП (автоматизированная система управления технологическим процессом).
Структура АСУТП разделяется на 3 уровня.
– Нижний уровень (полевой);
– Средний уровень (ПЛК);
– Верхний уровень (SCADA система).
Нижний уровень обеспечивает контроль параметров производимого продукта и осуществляет непосредственное управление им. Так же установленная система на данном уровне позволяет регулировать и контролировать: автоматический запуск и выключение; остановку технологической линии, при возникновении аварийных ситуаций; обеспечивает первичную обработку информации о производимом продукте, отслеживает нарушения и несоответствия параметров данного продукта. За данные параметры отвечают различные датчики и исполнительные механизмы, позволяющие определять параметры, использующиеся при производстве. В соответствии с параметром измерения они делятся на:
– Индуктивные датчики (Является устройством, реагирующим на металл. Принцип действия таких устройств основан на изменении амплитуды колебаний генератора при внесении в чувствительную зону выключателя металлического, магнитного, ферромагнитного или аморфного материала определенных размеров. При подаче питания на конечный выключатель в области его чувствительной поверхности образуется изменяющееся магнитное поле, наводящее во внесенном в зону материале вихревые токи, которые приводят к изменению амплитуды колебаний генератора. В результате вырабатывается аналоговый выходной сигнал, величина которого изменяется от расстояния между устройством и контролируемым предметом.);
– Оптические датчики (Используются для бесконтактного определения наличия/отсутствия контролируемой среды в контролируемом пространстве. Оптический датчик состоит из источника (излучателя) и приемника оптического излучения, которые могут располагаться в одном корпусе (моноблочные датчики) или в разных корпусах (двухблочные датчики). Источник датчика создает оптическое излучение в заданном пространстве, приемник реагирует на отраженный от объекта световой поток или на прерывание его. Датчик оптические выпускаются следующими типами: 1.Барьерные (тип Т); 2.Ретрорефлекторные (тип R); 3.Диффузионные (тип D).);
– Емкостные датчики (Применяются для обнаружения, подсчета и позиционирования различных объектов, а также для контроля уровня жидкости и сыпучих веществ в резервуарах. Электростатическое поле, находящееся между датчиком и окружающей средой, позволяет определить изменение емкостных параметров в данном поле (попадание в поле любого инородного объекта), что сопровождает подачу сигнала.);
– Магниточувствительные датчики (Устанавливаются для определения корректности работы аппаратов, участвующих в производстве продукта.);
– Датчик уровня (Контролирует уровень разных сред. Различаются на контактные и бесконтактные. При контактном бесконтактном варианте датчика, датчик устанавливают вне измеряемой среды и используют защитную диэлектрическую перегородку. При контакте со средой — датчик встраивается в резервуар, выводя чувствительный элемент в измеряемую среду.);
– Взрывозащитный датчик (Делится на индуктивный, емкостный, магниточувствительный.);
– Датчик пути и положения;
– Датчик относительной влажности температуры;
– Датчик температуры;
– Датчик скорости;
– Датчик силы;
– И т. д.
Средний уровень обрабатывает информацию, полученную на нижнем уровне. За данный процесс отвечает программируемый логический контроллер (ПЛК), представляющий собой микропроцессорную вычислительную машину, использующуюся для автоматизации производства. Основной функцией ПЛК является процесс сбора, обработки и хранения данных, полученных с нижнего уровня.
Главное преимущество ПЛК заключается в том, что он позволяет заменить огромное количество электромеханических реле; реализация его процессов происходит на программном уровне, что позволяет настраивать контроллер под любой технический или технологический процесс в режиме реального времени.
Еще одна особенность ПЛК, это его характерные особенности. Они рассчитаны на постоянную и непрерывную работу; имеют малые габариты; имеют возможность объединения с другими устройствами и корректировки работы удаленно, через интернет; для своей работы затрачивают намного меньше энергии, чем другие аналоги.
В настоящее время все ПЛК программируются на языках, принятых стандартом МЭК 61131–3[1]. Основной целью стандарта является повышение скорости и качества разрабатываемых программ для логических контроллеров, а также создание языков программирования. Все системы программирования, базирующиеся на данном стандарте, характеризуются такими показателями, как:
– Надежностью создаваемого программного обеспечения. (Обеспечивается наличием специально предназначенной средой разработки, которая содержит необходимые средства для написания, тестирования и отладки программ с помощью эмуляторов и реальных ПЛК, а также готовыми фрагментами программного кода);
– Возможностью простой модификации программы и наращивания ее функциональности;
– Переносимостью программы на разные ПЛК;
– Возможностью вторичного использования отработанных фрагментов кода;
– Простотой языка и ограничением количества его элементов.
Основные языки программирования, включенные в данный стандарт, делятся на графические языки:
– Ladder Diagram (LD) (релейно-контактные схемы, или релейные диаграммы);
– Function Block Diagram (FBD) (диаграммы функциональных блоков);
– Sequential Function Chart (SFC) (последовательные функциональные схемы);
– Continuous Flow Chart (CFC) (работа с функциональными блоками);
и текстовые языки:
– Instruction List (IL) (список инструкций);
– Structured Text (ST) (структурированный текст).
Ladder Diagram
Язык релейной логики, использующий в своей основе электрические схемы. Эти схемы использовались в автоматике конвейеров для сборки автомобилей до эры микропроцессоров.
Основной плюс данного языка в том, что программировать на нем могут люди знакомые с электротехникой, в связи с чем оказался наиболее распространённым в промышленной автоматике.
Однако данный язык тяжело использовать для сложных алгоритмов, так как он не способен поддерживать структуру подпрограмм, функции, инкапсуляции[2] и т. д. Данный недостаток делает программу линейной и сложной в обслуживании, что препятствует использованию многократных программных компонентов. Еще одним недостатком данного языка, это недопустимость выполнения сложных вычислений и её неудобство в использовании панели оператора, так, как только малая часть программы видна в диалоговом окне.
Function Block Diagram
Так как FBD является графическим языком, то в основном он используется для программирования процессов прохождения сигналов через функциональные блоки. Основная характеристика использования Function Block Diagram программирование блоков и программ, а также для описания шагов и переходов; функциональные блоки размещают в себе данные и методы, что позволяет работать с ними, как с объектно-ориентированными языками, но не имеют возможность поддерживать дальнейшее наследование и многообразие. Основной принцип работы с FBD — описание «жесткой логики» и замкнутых контуров систем управления.
Sequential Function Chart
SFC характеризуется больше как вспомогательное средство для структурирования программ, выполняющих определенную последовательность действий при указанных параметрах (заданный момент времени или наступление определенных событий). Sequential Function Chart использую при конечном (верхнем) уровне программировании СУ («Старт», «Наполнение автоклава», «Выполнение этапа № 1", «Выполнение этапа № 2", «Выгрузка из автоклава» — предназначенные термины). Также с помощью SFC возможно программирование отдельных блоков.
Continuous Flow Chart
Язык высокоуровневого визуального программирования, являющийся дальнейшим развитием языка Function Block Diagram. Предназначен для СУ с непрерывными технологическими процессами.
Основная работа с данным языком основана на выборе готовых функциональных блоков, их расположению в рабочей среде, установке соединений между входами и выходами и настройке параметров использующихся блоков. Так как CFC является дальнейшей разработкой FBD, то Continuous Flow Chart рассчитан уже на управление общей технологической единицей. В типовой библиотеке располагаются как комплексные функциональные блоки, так и стандартные блоки упрощенной системы.
Instruction List
Данный язык используется для реализации функций, функциональных блоков и программ, шагов и переходов в языке SFC. IL используют для формирования кодов, решающих малые задачи с минимальным количеством разветвлений алгоритма и реализации критических секций программы.
Structured Text
Является аналогом языка Паскаль, но в отличии от него используется исключительно для программирования ПЛК. Основное предназначение это: описание сложных функций, функциональных блоков и программ; выполнение сложных математических вычислений. Содержит в себе большое разнообразие для написания условных переходов, выбора операторов и построения итерационных[3] процессов.
Верхний уровень является конечным уровнем, на котором вся информация визуализируется, мониторится и осуществляется сбор, обработка, хранение и выдача информации по требованию оператора. Так же в системы поступают данные о параметрах технологических процессов, моментах срабатывания автоматики безопасности, информация о внешнем вмешательстве персонала в работу установки. Так же осуществляется дистанционное управление оборудование и настройка параметров системы управления. Обеспечение такого функционала создает комплекс программ, который входит в систему SCADA (Supervisory Control And Data Acquisition). В свою очередь для правильной работы системы необходимо программное обеспечение, наиболее известными в мире являются системы CoDeSys и ISaGRAF.
CoDeSys (Controller Development System) является совокупностью программ для проектирования прикладного программного обеспечения, отладки в режиме эмуляции и загрузки программы в ПЛК.
В основе данной системы включены все языки программирования, представленные выше. Он полностью оснащен под необходимые требования стандарта МЭК и включает в себя ряд дополнительных расширений, например объектно-ориентированное программирование.
После введения программы происходит компиляция в системный код, оптимизированный в заданную аппаратную платформу. Загруженный код позволяет использовать широкий набор функций для быстрой и эффективной отладки приложения. С программой можно работать как пошагово, так и по контроллерным циклам; задаются точки остановки программы, подготавливаются связные наборы значений переменных и т. д. При отсутствии реального контроллера отладку программы можно выполнять с помощью встроенного программного эмулятора.
Среда исполнения CoDeSys может функционировать в ПЛК под управлением различных операционных систем или вообще без них, в том числе на обычном персональном компьютере. Собственное ядро реального времени может устанавливать контроллерный цикл с точностью до нескольких микросекунд. Прикладная программа остается работоспособной даже при зависании ОС.
Помимо средств программирования, CoDeSys имеет встроенную систему визуализации, которая применяется для операторского управления, а также моделирования на этапе разработки. Визуализацию можно запустить на компьютере, графической панели ПЛК или встроенном в контроллер web-сервере.
Пользователь может самостоятельно расширять возможность CoDeSys путем создания библиотек программных модулей. Например, он может реализовать поддержку нестандартных интерфейсов.
Комплекс программирования CoDeSys построен по компонентной технологии Microsoft на базе автоматизации. Поэтому изготовитель ПЛК может включить в комплекс свои собственные компоненты, от конфигуратора оригинальной сети до собственного языка программирования ПЛК.
ISaGRAF состоит из сред разработки и исполнения. Среда исполнения является универсальной средой, поддерживает все языки стандарта МЭК 61131–3, имеет свои средства для редактирования, компиляции, документирования, управления библиотеками, архивирования, моделирования системы при отсутствии начального ПЛК и отладки с подключенным ПЛК.
Связь между SCADA пакетом и контроллером, запрограммированным с помощью ISaGRAF, осуществляется с помощью стандартного ОРС сервера. Среда исполнения создается и загружается в контроллер производителем ПЛК и является независимой от исполняемой в ней программы пользователя.
Среда разработки имеет знакомый по Windows-приложениям интерфейс с подсказками, панелями инструментов, окнами, с функциями вставки и замены и т. п. Код, полученный на выходе среды разработки, может исполняться на любой аппаратно-программной платформе без изменений, если на ней предварительно установлена среда исполнения.
Заключение
Основное оборудование и программное обеспечение, контролирующие весь технический процесс, располагаются на верхнем уровне. В первую очередь на данном уровне идет сбор, обработка и хранение информации, а также выдача информации оператору.
Наиболее удобной программой для работы с СУ является CoDeSys. Она так же, как и аналоги включает в себя все поддерживаемые стандартом языки программирования, но имеет вариабельность при корректировке и при составлении самой программы.
Литература:
- www.isagraf.com
- ГОСТ Р МЭК 61131–3, 2016
- Благовещенская М. М., Злобин Л. А., Информационные технологии систем управления технологическими процессами — М: Высшая школа, 2005. — 768с
- Федоров Ю. Н., Справочник инженера по АСУТП: Проектирование и разработка. Том 1 — Москва-Вологда: Инфра-Инженерия, 2018–449 с.
- Федоров Ю. Н., Справочник инженера по АСУТП: Проектирование и разработка. Том 2 — Москва-Вологда: Инфра-Инженерия, 2018–485 с.
- Рябцева Т. А., Стоякова К. Л., Ибраев Р. Р., Бесфамильная Е. М., Савина Ю. И. Автоматизация управления и технологическая сингулярность. Киборгизация как инновационное направление в науке и технике. // ООО «Издательство «Спутник+" — 2015. URL: https://elibrary.ru/item.asp?id=23437843 (дата обращения 02.02.2020)
- Стоякова К. Л., Ибраев Р. Р., Бесфамильная Е. М., Волкова Д. А. Интерпретация алгоритмов программирования для создания экспертных систем и разработок в области искусственного интеллекта. // Перспективы развития науки и образования. — 2017 URL: https://elibrary.ru/item.asp?id=30335436 (дата обращения 02.02.2020)
- Гончаров А. В., Стоякова К. Л., Ибраев Р. Р., Бесфамильная Е. М., Сартаков М. В., Жилеева А. А. Автоматизация рабочего места специалиста деканата в университетах. — 2015 URL: https://elibrary.ru/item.asp?id=25308771 (дата обращения 02.02.2020)
[1] Данный стандарт был опубликован в 1993 г. организацией International Electrotechnical Commission (международная электротехническая комиссия или МЭК. МЭК считается стандартизирующей организацией более чем в 50 странах. В дальнейшем в стандарт вносили изменения.
[2] Инкапсуляция - свойство языка программирования скрывать реализацию программного блока, предоставляя пользователю языка только его интерфейсы.
[3] Итерационным считается процесс, участвующий в организации обработки данных, при которых действия повторяются многократно.