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

МЕХЗАВОД|Ремонт бытовой техники и электроники cвоими руками

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » МЕХЗАВОД|Ремонт бытовой техники и электроники cвоими руками » Промышленная электроника » Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК


Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК

Сообщений 1 страница 4 из 4

1

Системы программирования на языках МЭК 61131-3

Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра "6".

Основной целью стандарта было повышение скорости и качества разработки программ для ПЛК (см. раздел "Развитие программных средств автоматизации"), а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК.

Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:

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

Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования со следующими названиями:

    структурированный текст (ST - Structured Text);
    последовательные функциональные схемы (SFC - "Sequential Function Chart");
    диаграммы функциональных блоков (FBD - Function Block Diagram);
    релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);
    список инструкций (IL - Instruction List).

Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.

В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.

Выбор одного из пяти языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.

Языки МЭК 61131-3 базируются на следующих принципах [Lewis]:

    вся программа разбивается на множество функциональных элементов - Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;
    стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения;
    имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 сек;
    для выполнение операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем ( SFC);
    стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние "включено-выключено" можно описать с помощью единой структуры "Pomp" и передавать ее внутри программы как единый элемент данных;
    стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;
    программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.

Любой ПЛК работает в циклическом режиме. Цикл начинается со сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому величина контроллерного цикла зависит от времени исполнения программы и быстродействия процессорного модуля.
9.3.1. Язык релейно-контактных схем, LD

Графический язык релейной логики впервые появился в виде электрических схем, которые состояли из контактов и обмоток электромагнитных реле (рис. 9.9). Такие схемы использовались в автоматике конвейеров для сборки автомобилей до эры микропроцессоров. Язык релейной логики был интуитивно понятен людям, слегка знакомым с электротехникой и поэтому оказался наиболее распространенным в промышленной автоматике. Обслуживающий персонал легко находил отказ в оборудовании, прослеживая путь сигнала по релейной диаграмме.

Однако язык LD проблематично использовать для реализации сложных алгоритмов, поскольку он не поддерживает подпрограммы, функции, инкапсуляцию* и другие средства структурирования программ с целью повышения качества программирования. Эти недостатки затрудняют многократное использование программных компонентов, что делает программу длинной и сложной для обслуживания.
http://sd.uploads.ru/Cf1dZ.jpg

Рис. 9.9. Пример программы на языке LD (слева) и ее эквивалент в виде электрической цепи с реле и выключателями (справа)

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

Несмотря на указанные недостатки, язык LD относится к наиболее распространенным в мире [Lewis], хотя используется для программирования только простых задач.
9.3.2. Список инструкций, IL

Язык IL напоминает ассемблер и используется для реализации функций, функциональных блоков и программ, а также шагов и переходов в языке SFC. Основным достоинством языка является простота его изучения. Наиболее часто язык IL используется в случаях, когда требуется получить оптимизированный код для реализации критических секций программы, а также для решения небольших задач с малым количеством разветвлений алгоритма.

Листинг 4. Пример программы на языке IL

http://forumupload.ru/uploads/0019/8b/c2/3/732835.png

В основе языка лежит понятие аккумулятора и переходов по меткам. Пример программы на зыке IL с комментариями приведен в листинге 4. Начинается программа с загрузки в аккумулятор значения переменной. Дальнейшие шаги программы состоят в извлечении содержимого аккумулятора и выполнении над ним ограниченного числа допустимых действий (их в языке всего 24).
9.3.3. Структурированный текст, ST

Язык ST является текстовым языком высокого уровня и очень сильно напоминает Паскаль:

Листинг 5. Пример программы на языке ST

IF Voltage>220 THEN

   Current:=Current - 10;  (*Если V>220 В, то уменьшить ток на 10*)

ELSE

   Current:=50; Speed:= ON;(*Установить ток 50А и включить мотор*)

END_IF;

Язык ST имеет много отличий от языка Паскаль и разработан специально для программирования ПЛК. Он содержит множество конструкций для присвоения значений переменным, для вызова функций и функциональных блоков, для написания выражений условных переходов, выбора операторов, для построения итерационных процессов. Этот язык предназначен в основном для выполнения сложных математических вычислений, описания сложных функций, функциональных блоков и программ.
9.3.4. Диаграммы функциональных блоков, FBD

FBD является графическим языком и наиболее удобен для программирования процессов прохождения сигналов через функциональные блоки. Язык FBD удобен для схемотехников, которые легко могут составить электрическую схему системы управления на "жесткой логике", но не имеют опыта программирования.

Функциональные блоки представляют собой фрагменты программ, написанных на IL, SFC или других языках, которые могут быть многократно использованы в разных частях программы и которым соответствует графическое изображение, принятое при разработке функциональных схем электронных устройств, см. рис. 9.10.
http://s7.uploads.ru/Wz3B6.gif

Рис. 9.10. Пример программы на языке FBD

Язык FBD может быть использован для программирования функций, функциональных блоков и программ, а также для описания шагов и переходов в языке SFC. Функциональные блоки инкапсулируют данные и методы, чем напоминают объектно-ориентированные языки программирования, но не поддерживают наследование и полиморфизм.

Типичным применением языка FBD является описание "жесткой логики" и замкнутых контуров систем управления. Язык функциональных блоков является удобным также для создания и пополнения библиотеки типовых функциональных блоков, которую можно многократно использовать при программирования задач промышленной автоматизации. К типовым блокам относятся блок таймера, ПИД-регулятора, блок секвенсора, триггера, генератора импульсов, фильтра, и т. п.
9.3.5. Функциональные блоки стандартов МЭК 61499 и МЭК 61804

Функциональные блоки являются не просто частью языка FBD, они применяются также для моделирования и проектирования систем автоматизации. Функциональные блоки могут быть использованы также для поддержания всего жизненного цикла системы, включая проектирование, изготовление, функционирование, валидацию и обслуживание. Описанию и применению функциональных блоков посвящены, помимо МЭК 61131-3, еще и стандарты МЭК 61499 и МЭК 61804.

Стандарт МЭК 61499, состоящий из четырех частей, был опубликован в 2005 г. [IEC - IEC]. Он устанавливает обобщенную архитектуру функциональных блоков и предоставляет руководство для их применения в распределенных системах промышленной автоматизации. В таких системах программное обеспечение распределено между несколькими физическими устройствами (ПЛК) и несколькими функциональными блоками (ФБ), а промышленная сеть рассматривается как составная часть системы.

Особенностью ФБ в МЭК 61499 является возможность управления событиями и большая степень обобщения функциональных блоков. Стандарт МЭК 61499 может использоваться совместно с МЭК 61131-3 как средство описания базовых типов функциональных блоков для программирования ПЛК, а внутренне описание ФБ выполняется с помощью языков МЭК 61131-3.

Одной из существенных особенностей МЭК 61499 является ориентация на системы, в которых ФБ управляются событиями, в то время как традиционные системы автоматизации строятся обычно на базе тактирования или управления по временному расписанию. Событийное управление использовано потому, что в распределенных системах оно является более общим. Любая система с тактированием может быть представлена в виде системы с событийным управлением, но обратное не всегда верно.
http://sg.uploads.ru/xP54B.gif

Рис. 9.11. Функциональный блок стандарта МЭК 61499

Архитектура функциональных блоков представляется с помощью текстового описания и графически (рис. 9.11). Функциональный блок характеризуется именем типа и именем экземпляра блока. Например, именем типа может быть "PID", а имен экземпляров может быть много: "PID1, PID 2, PID3, ...", по количеству ФБ, использованных в конкретной системе.

Каждый ФБ имеет множество входов и выходов для приема и передачи потока событий. Принятые события могут инициировать исполнение некоторых алгоритмов внутри блока, в результате чего могут вырабатываться события, которые передаются другим блокам системы.

ФБ имеет также множество входов, через которые поступает поток данных. Входящие данные отображаются во входные переменные, которые обрабатываются алгоритмами блока, после чего могут передаваться другим ФВ в виде выходящего потока данных. Блок может содержать также внутренние данные и соответствующие им внутренние переменные.

Каждый ФБ имеет свои функциональные характеристики, которые определяются комбинацией внутренних данных, состояний и алгоритмов, а также функциональными возможностями ресурсов устройства. Ресурс - это функциональный элемент, содержащийся в физическом устройстве и независимо управляющий его операциями, а также обеспечивающий различные сервисы для приложений, включая планирование и выполнение алгоритмов. Ресурс может быть создан, сконфигурирован, стартован, удален и т. д. без воздействия на другие ресурсы в устройстве. Функциями ресурса являются прием данных и событий через входные интерфейсы, обработка и выдача их через выходные интерфейсы.

Третьим стандартом, развивающим представление о функциональных блоках, является МЭК 61804 [IEC]. Он содержит спецификацию (детализацию) требований к распределенным системам управления, построенным на основе функциональных блоков. МЭК 61804 конкретизирует абстрактные определения, данные в МЭК 61499. Он добавляет в МЭК 61499 описания параметров и функций, выполняемых функциональными блоками, которые могут быть реализованы в физических устройствах.

Стандарт определяет минимальный набор ФБ, который может быть необходим для индустриальных приложений. Набор состоит из двух частей: сложные ФБ (ПИД-регулятор, селектор для схем голосования, инкрементный сумматор, таймер, интегратор) и простые (вычисление тригонометрических функций, модуля, суммирования, усреднения, блоки арифметических операций, блоки Булевых функций и т. п.).

Одним из наиболее широко применяемых спецификаций стандарта МЭК 61804 является описание языка EDDL (Electronic Device Description Language), который является дальнейшим развитием методов генерации GSD файла в сетях Profibus и разрабатывался с поддержкой организации Fieldbus Foundation.

Описанию функциональных блоков для систем автоматизации зданий посвящен стандарт ISO 16484-3 [ISO].
9.3.6. Последовательные функциональные схемы, SFC

SFC называют языком программирования, хотя по сути это не язык, а вспомогательное средство для структурирования программ. Он предназначен специально для программирования последовательности выполнения действий системой управления, когда эти действия должны быть выполнены в заданные моменты времени или при наступлении некоторых событий. В его основе лежит представление системы управления с помощью понятий состояний и переходов между ними.

Язык SFC предназначен для описания системы управления на самом верхнем уровне абстракции, например, в терминах "Старт", "Наполнение автоклава", "Выполнение этапа №1", "Выполнение этапа №2", "Выгрузка из автоклава". Язык SFC может быть использован также для программирования отдельных функциональных блоков, если алгоритм их работы естественным образом описывается с помощью понятий состояний и переходов. Например, алгоритм автоматического соединения модема с коммутируемой линией описывается состояниями "Включение", "Обнаружение тона", "Набор номер", "Идентификация сигнала" и переходами "Если длинный - то ждать 20 сек", "Если короткий - перейти в состояние "Набор Номера"" и т.д.

Рис. 9.12. Пример программы на языке SFC

На рис. 9.12 показан фрагмент программы на языке SFC. Программа состоит из шагов и условий переходов. Шаги показываются на схеме прямоугольниками, условия переходов - жирной перечеркивающей линией. Программа выполняется сверху вниз. Начальный шаг на схеме показывается в виде двойного прямоугольника. Условия переходов записываются рядом с их обозначениями. Каждый шаг программы может представлять собой реализацию сложного алгоритма, написанного на одном из МЭК-языков.
9.3.7. Программное обеспечение

Программирование ПЛК на описанных выше языках МЭК 61131-3 осуществляется с помощью специализированного программного обеспечения, которое разрабатывается производителями ПЛК или фирмами, специализирующимися на создании ПО для систем автоматизации. Наиболее известными в мире являются системы CoDeSys фирмы 3S (www3s-software.com) и ISaGRAF фирмы ICS Triplex (wwwisagraf.com).
CoDeSys
http://s9.uploads.ru/FVcTW.gif

CoDeSys (Co ntroller Development System) представляет собой комплекс программ для проектирования прикладного программного обеспечения, отладки в режиме эмуляции и загрузки программы в ПЛК. Наиболее подробно эта система описана в книге [Петров]. Основными частями системы являются среда разработки программы и среда ее исполнения (CoDeSys SP), которая находится в ПЛК.

В CoDeSys входят графические и текстовые редакторы для всех пяти языков МЭК 61131-3. Этот комплекс полностью реализует требования стандарта и дополнительно вводит ряд оригинальных расширений, самым удобным из которых является объектно-ориентированные программирование. Однако расширениями языка можно не пользоваться, чтобы сохранить требования к совместимости языков, предъявляемое к открытым системам.

В одном проекте может быть использовано несколько контроллеров разных производителей. Каждый из них может программироваться как независимое устройство или с учетом их взаимодействия в промышленной сети. Проект состоит из нескольких приложений, распределенных по нескольким контроллерам. В одном ПЛК может существовать несколько независимых приложений.

Программа, написанная на языках МЭК, компилируется системой CoDeSys в машинный код, оптимизированный для заданной аппаратной платформы. Компилятор выдает диагностические сообщения как на этапе компиляции, так и на этапе ввода операторов языка.

Машинный код, сгенерированный компилятором CoDeSys, загружается в ПЛК, после чего разработчик имеет возможность использовать широкий набор функций для быстрой и эффективной отладки приложения. Текущие значения переменных видны непосредственно в редакторах программ. Программу можно выполнять по шагам или по контроллерным циклам. Можно задавать точки останова программы, просматривать стек вызовов, подготавливать связные наборы значений переменных и загружать их одной командой.

При отсутствии реального контроллера отладку программы можно выполнять с помощью встроенного программного эмулятора.

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

После изменения программы во время отладки перекомпилируются только измененные части программы. Их можно подгружать в контроллер без остановки выполнения прикладной программы. Эта возможность системы называется "горячим обновлением" кода.

Программируемое устройство соединяется с CoDeSys через вспомогательный программный компонент – шлюз связи, который использует протокол TCP/IP. Шлюз работает на компьютере программиста или удаленно, например, через интернет или сеть Ethernet. Контроллер подключается компьютеру через любой последовательный канал или сеть. Добавив драйвер, изготовитель ПК может поддержать свой оригинальный протокол связи.

Общение ПЛК со SCADA осуществляется с помощью стандартного ОРС сервера.

Для того, чтобы ПЛК можно было программировать с помощью CoDeSys, в контроллере должна быть установлена система исполнения. Установку системы выполняет изготовитель контроллера. Изготовитель обеспечивает также поддержку всех модулей ПЛК, поэтому конечный пользователь может сосредоточиться на разработке только прикладной программы.

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

Помимо средств программирования, CoDeSys имеет встроенную систему визуализации, которая применяется для операторского управления, а также моделирования на этапе разработки. Визуализацию можно запустить на компьютере, графической панели ПЛК или встроенном в контроллер web-сервере.

Пользователь может самостоятельно расширять возможность CoDeSys путем создания библиотек программных модулей. Например, он может реализовать поддержку нестандартных интерфейсов.

Комплекс программирования CoDeSys построен по компонентной технологии Microsoft на базе автоматизации. Поэтому изготовитель ПЛК может включить в комплекс свои собственные компоненты, от конфигуратора оригинальной сети до собственного языка программирования ПЛК.

Для систем, связанных с безопасностью, CoDeSys имеет библиотеку функциональных блоков PLCopen Safety, систему исполнения для оборудования с дублированием и специализированное расширение среды программирования. При внезапном отключении питания CoDeSys автоматически сохраняет значения переменных во флеш-памяти или в ОЗУ с батарейным питанием.
ISaGRAF

Система ISaGRAF фирмы ICS Triplex (wwwisagraf.com) также состоит из среды разработки и среды исполнения. Среда исполнения может функционировать практически на любой операционной системе и любой аппаратной платформе, включая персональный компьютер. Среда разработки поддерживает все пять зыков МЭК 61131-3 и функциональные блоки МЭК 61499, имеет средства для редактирования, компиляции, документирования, управления библиотеками, архивирования, моделирования системы при отсутствии реального ПЛК и отладки с подключенным ПЛК.

Комплекс программ ISaGRAF первый на рынке использовал новый стандарт МЭК 61499 для программирования распределенных систем управления.

Связь между SCADA пакетом и контроллером, запрограммированным с помощью ISaGRAF, осуществляется с помощью стандартного ОРС сервера.

Среда исполнения создается и загружается в контроллер производителем ПЛК и является независимой от исполняемой в ней программы пользователя.

Среда разработки имеет знакомый по Windows-приложениям интерфейс с подсказками, панелями инструментов, окнами, с функциями вставки и замены и т. п. Код, полученный на выходе среды разработки, может исполняться на любой аппаратно-программной платформе без изменений, если на ней предварительно установлена среда исполнения. Среда разработки может также транслировать пользовательскую программу, написанную на МЭК-языках, в текст на языке Си.

Отредактировано dankarela (20.12.2020 14:28:19)

2

9.4. Пользовательский интерфейс, SCADA-пакеты

Большинство систем автоматизации функционирует с участием человека (оператора, диспетчера). Интерфейс между человеком и системой называют человеко-машинным интерфейсом (ЧМИ), в зарубежной литературе - HMI (Human-Machinery Interface) или MMI (Man-Machinery Interface). В частном случае, когда ЧМИ предназначен для взаимодействия человека с автоматизированным технологическим процессом, его называют SCADA-системой (Supervisory Control And Data Acquisition). Этот термин переводится буквально как "диспетчерское управление и сбор данных", но на практике его трактуют гораздо шире, а современные SCADA-пакеты включают в себя широчайший набор функциональных возможностей, далеко выходящий за рамки сбора данных и диспетчерского управления.
9.4.1. Функции SCADA

Существующие в настоящее время SCADA-пакеты выполняют множество функций, которые можно разделить на несколько групп:

    наcтройка SCADA на конкретную задачу (т. е. разработка программной части системы автоматизации);
    диспетчерское управление;
    автоматическое управление;
    хранение истории процессов;
    выполнение функций безопасности;
    выполнение общесистемных функций.

Несмотря на множество функций, выполняемых SCADA, основным ее отличительным признаком является наличие интерфейса с пользователем. При отсутствии такого интерфейса перечисленные выше функции совпадают с функциями средств программирования контроллеров, а управление является автоматическим, в противоположность диспетчерскому.

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

Иногда SCADA комплектуются средствами для программирования контроллеров, однако эта функция вызвана коммерческими соображениями и слабо связана с основным назначением SCADA.

В SCADA-пакетах используют понятие аларма и события. Событие - это изменение некоторых состояний в системе. Примерами событий могут быть включение перевалки зерна в элеваторе, завершение цикла периодического процесса обработки детали, окончание загрузки бункера, регистрация нового оператора и т. п. События не требуют срочного вмешательства оператора, а просто информируют его о состоянии системы.

В отличие от события, аларм (от английского "alarm" - "сигнал тревоги") представляет собой предупреждение о важном событии, в ответ на которое нужно срочно предпринять некоторые действия. У английского слова "аларм" имеется точный русский перевод - "сигнал тревоги" или "аварийный сигнал", однако термин "аларм" уже прочно вошел в лексикон промышленной автоматизации.

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

В связи с тем, что алармы требует принятия решения, их делят на подтвержденные и неподтвержденные. Подтвержденным называется аларм, в ответ на который оператор ввел команду подтверждения. До этого момента аларм считается неподтвержденным.

Рис. 9.13. Пример назначения интервалов аналоговым алармам

Алармы делятся на дискретные и аналоговые. Дискретные сигнализируют об изменении дискретной переменной, аналоговые алармы появляются, когда непрерывная переменная входит в заранее заданный интервал своих значений. В качестве примера на рис. 9.13 показано деление всего интервала изменения переменной на интервалы "Норма", "Внимание" (предаварийное состояние) и "Авария":
http://s8.uploads.ru/p4VyS.gif

    аларм "Внимание" возникает при << во время нарастания наблюдаемой переменной и при << во время ее уменьшения;
    аларм "Авария" возникает при < .

Каждая критическая граница на рис. имеет зону нечувствительности (мертвую зону), которая нужна для того, чтобы после снятия состояния аларма переменная не могла вернуться в него вследствие случайных выбросов в системе (шумов). Границы зон на рис. 9.13 могут изменяться с течением времени.

Аналогичные границы могут быть назначены для скорости изменения переменной (для производной функции ), которая определяется как угол наклона касательной к кривой .

Методика выдачи алармов должна быть надежной. В частности, всплывающие окна с сообщениями алармов должны быть всегда поверх остальных окон, алармы могут дублироваться звуком и светом. Поскольку алармов в системе может быть много, им назначают разные приоритеты, разные громкости и тоны звукового сигнала и т. п.
Разработка человеко-машинного интерфейса

Одной из основных функций SCADA является разработка человеко-машинного интерфейса, т.е. SCADA одновременно является и ЧМИ, и инструментом для его создания. Быстрота разработки существенно влияет на рентабельность фирмы, выполняющей работу по внедрению системы автоматизации, поэтому скорость разработки является основным показателем качества SCADA с точки зрения системного интегратора. В процесс разработки входят следующие операции:

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

SCADA как система диспетчерского управления

Как система диспетчерского управления SCADA может выполнять следующие задачи:

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

SCADA как часть системы автоматического управления

Основная часть задач автоматического управления выполняется, как правило, с помощью ПЛК, однако часть задач может возлагаться на SCADA. Кроме того, во многих небольших системах управления ПЛК могут вообще отсутствовать и тогда компьютер с установленной SCADA является единственным средством управления. SCADA обычно выполняет следующие задачи автоматического управления:

    автоматическое регулирование;
    управление последовательностью операций в системе автоматизации;
    адаптация к изменению условий протекания технологического процесса;
    автоматическая блокировка исполнительных устройств при выполнении заранее заданных условий.

Хранение истории процесса

Знание предыстории управляемого процесса позволяет улучшить будущее поведение системы, проанализировать причины возникновения опасных ситуаций или брака продукции, выявить ошибки оператора. Для создания истории система выполняет следующие операции:

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

Безопасность SCADA

Применение SCADA в системах удаленного доступа через интернет резко повысило уязвимость SCADA к действиям враждебных лиц. Пренебрежение этой проблемой может приводить, например, к отказу в работе сетей электроснабжения, жизнеобеспечения, связи, отказу морских маяков, дорожных светофоров, к заражению воды неочищенными стоками и т.п. Возможны и более тяжелые последствия с человеческими жертвами или большим экономическим ущербом. Для повышения безопасности SCADA используют следующие методы:

    разграничение доступа к системе между разными категориями пользователей (у сменного оператора, технолога, программиста и директора должны быть разные права доступа к информации и к модификации настроек системы);
    защиту информации (путем шифрования информации и обеспечения секретности протоколов связи);
    обеспечение безопасности оператора благодаря его отдалению от опасного управляемого процесса (дистанционное управление). Дистанционный контроль и дистанционное управление являются типовыми требованиями Ростехнадзора и выполняются по проводной сети, радиоканалу (через GSM- или радиомодем), через интернет и т.д.;
    специальные методы защиты от кибер-атак;
    применение межсетевых экранов.

Общесистемные функции

Поскольку SCADA обычно является единственной программой для управления системой автоматизации, на нее могут возлагаться также некоторые общесистемные функции:

    осуществление взаимодействий между несколькими SCADA, между SCADA и другими программами (MS Office, базой данных, MATLAB и т.п.);
    диагностика аппаратуры, каналов связи и программного обеспечения.

9.4.2. Свойства SCADA

Анализ свойств различных SCADA позволяет выбирать систему, оптимальную для решения поставленной задачи. Все многообразие свойств SCADA-пакетов можно разбить на следующие группы:

    инструментальные свойства;
    эксплуатационные свойства;
    свойства открытости;
    экономическая эффективность.

Инструментальные свойства

К инструментальным относятся свойства SCADA, влияющие на эффективность работы системных интеграторов:

    быстрота разработки проекта;
    легкость освоения;
    поддерживаемые средства коммуникации;
    наличие функций для сложной обработки данных;
    наличие языков МЭК 61131-3 и универсального алгоритмического языка типа Visual Basic;
    степень открытости для разработчика (поддержка COM и ActiveX для подключения программных модулей пользователя, а также OPC, ODBC, OLE DB;
    качество технической документации (полнота, ясность изложения, количество ошибок);
    наличие режима эмуляции оборудования для отладки;
    наличие внутренних графических редакторов, позволяющих отказаться от применения внешних редакторов типа CorelDraw или Photoshop; поддержка типовых графических форматов файлов;
    качество технической поддержки (время реакции на вопросы пользователей, наличие "горячей линии" технической поддержки.

SCADA используют языки программирования МЭК 61131-3, ориентированные на технологов, которые дополняются функциями, специфическими для SCADA. Большинство SCADA имеют встроенный редактор и интерпретатор языка Visual Basic фирмы Microsoft.
Эксплуатационные свойства

Качество SCADA в процессе эксплуатации оценивается конечными пользователями и характеризуется следующим набором свойств:

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

Степень открытости

Степень открытости очень сильно влияет на экономическую эффективность системы, однако это влияние носит случайный характер, поскольку зависит от степени использования свойств открытости в конкретном проекте.

Открытость для программирования пользователем SCADA обеспечивается возможностью подключения программных модулей, написанных пользователем или другими производителями. Это обычно достигается тем, что SCADA разрабатывается как контейнер для СОМ-объектов и ActiveX элементов. Совместимость с аппаратурой и базами данных других производителей достигается с помощью стандарта ОРС, применением интерфейса ODBC или OLE DB. Открытость системы программирования достигается поддержкой языков МЭК 61131-3.

Особенно интересно с точки зрения открытости применение веб-интерфейса, поскольку он обеспечивает доступ к SCADA с любого компьютера из любой точки мира, независимо от аппаратной платформы, типа канала связи, операционной системы и используемого веб-навигатора.
Экономическая эффективность

Экономическую эффективность SCADA можно определить как отношение экономического эффекта от ее внедрения к общей сумме затрат на внедрение и поддержание системы в работоспособном состоянии. На экономическую эффективность в конечном счете влияют практически все свойства SCADA, однако в первую очередь можно выделить следующие:

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

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

9.4.3. Программное обеспечение

В настоящее время наиболее распространенными отечественными универсальными SCADA являются MasterSCADA (ИнСАТ, wwwmasterscada.ru), Trace Mode (AdAstrA Research Group, Ltd, wwwadastra.ru), Круг-2000 (НПФ "КРУГ", wwwkrug2000.ru) и САРГОН (НВТ-Автоматика, nvt.msk.ru). Все системы удовлетворяют основным требованиям к SCADA, описанным выше, и успешно конкурируют с зарубежными аналогами. Ниже мы рассмотрим отличительные особенности двух наиболее известных пакетов: MasterSCADA и Trace Mode.
MasterSCADA

Система MasterSCADA фирмы ИнСАТ [Аблин] предназначена для создания полномасштабных систем автоматизации в различных отраслях промышленности. Основной ее особенностью является объектный подход, использованный на уровне описания системы при ее настройке на конкретный объект автоматизации. Например, цех, участок, технологический блок и физическое устройство при создании проекта с помощью MasterSCADA рассматриваются как отдельные объекты. Для каждого объекта создается свое описание на технологическом языке программирования. Описание включает в себя свойства объекта и документы объекта. Свойствами могут быть период опроса, способ линеаризации датчика, диапазон входных сигналов. Документами объекта являются его изображение, мнемосхема, график изменения переменных и т. п. Любой документ в системе относится к некоторому объекту. Такой подход позволяет легко размножать один раз созданные объекты, что повышает скорость настройки SCADA на задачу пользователя.

К признакам объектного подхода относится также возможность наследования всех настроек от "родительских" объектов. Это означает, что в MasterSCADA нет необходимости вводить настройки для каждого типа объектов "с нуля". Можно использовать наследование этих настроек от родительского объекта, изменив в них только те параметры, которые отличают родителя от потомка.

Созданные объекты можно копировать с целью многократного использования. При копировании объекта сохраняются все связанные с ним документы и свойства. Связи с внешними источниками и приемниками данных восстанавливаются после копирования, если в системе имеются такие источники или свободные приемники данных (физические устройства). Это позволяет пополнять библиотеку объектов вновь созданными экземплярами и использовать объекты, созданные другими разработчиками.
Trace Mode

SCADA-система Trace Mode 6 фирмы AdAstrA состоит из инструментальной системы и набора исполнительных модулей. В состав Trace Mode 6 входят также средства управления бизнес-процессами производственного предприятия.

Для увеличения скорости разработки проекта пользователя применяется оригинальная технология автопостроения. Автоматически в SCADA могут быть построены:

    источники данных ПЛК и модулей ввода-вывода по известной конфигурации;
    каналы по источникам данных;
    связи каналов из редактора аргументов;
    связи контроллер-сервер и сервер-сервер;
    SQL-запросы;
    связи с OPC-сервером;
    связь с ODBC.

Автопостроение позволяет снизить количество ошибок, допускаемых пользователем при ручном создании проекта.

В пятой версии Trace Mode инструментальная система представлена в виде отдельных компонентов, в 6-ой использована интегрированная среда разработки.

В систему Trace M ode 6 включены пять языков программирования – Techno SFC, Techno LD, Techno FBD, Techno ST, и Techno IL, которые являются расширениями соответствующих языков стандарта МЭК 61131-3.
9.5. Заключение к главе "Программное обеспечение"

Основными тенденциями развития программного обеспечения для средств автоматизации являются максимальное упрощение процесса программирования и обеспечение открытости инструментальных средств. Конечной целью является предоставление потребителю возможности построения качественной системы автоматизации в максимально короткий срок.

Долгий период неопределенности в средствах программирования ПЛК и SCADA пакетов завершился принятием общепризнанного стандарта МЭК 61131-3 и созданием на его основе инструментальных средств программирования, которые поддерживаются фирмами, специализирующимися на программном обеспечении.

Существенный вклад в открытость систем автоматизации внес стандарт OPC, обеспечивший системным интеграторам широчайший выбор аппаратного обеспечения, совместимого с любыми стандартными SCADA пакетами, а разработчикам контроллерного оборудования - расширение рынков сбыта.

3

Понимание языков программирования IEC61131-3

Сложность программного обеспечения, возможности PLC/PAC и возможность портировать программный код являются ключевыми факторами при выборе языка программирования контроллера. Около 120 лет назад Марк Твен сказал «есть несколько способов снять шкуру с кошки».  Это клише все еще актуально в мире программирования контроллеров.

Благодаря IEC (International Electrotechnical Commission, МЭК - Международная Электротехническая Комиссия) появились пять наиболее часто используемых стандартных языков программирования, которые в настоящее время используются для разработки программного обеспечения контроллеров. IEC  – это организация, которая разрабатывает и публикует международные стандарты для всех технологий, связанных с электрикой и электроникой, включая контроллеры.

Долго считавшиеся чисто европейским феноменом, языки программирования контроллеров IEC получают распространение в Соединенных Штатах. IEC разработала данные стандарты программирования, реагируя на увеличивающееся количество разработчиков систем автоматизации, возрастающую сложность приложений, и множество методов реализации функций управления.

Многие инженеры  в области АСУ ТП интересуются возможностями каждого языка программирования. В каких случаях предпочесть тот или иной язык?  Какие преимущества и недостатки каждого? В данной статье содержится краткий обзор и сравнение каждого из пяти основных языков программирования контроллеров.
Язык релейно-контактных схем (LD)

Этот язык программирования, изобретенный в США десятилетия назад, получил наиболее широкое распространение. Изначально изобретенный для замены  логических схем, выполненных на релейной технике, язык релейно-контактных схем является базовым в США на сегодняшний день, и применяется в 95% всех приложений. Визуально этот язык напоминает последовательность цепей управления, в которой все входы должны быть установлены в значение «истина» для активации одного или нескольких выходов.

Язык релейно-контактных схем получил такое широкое распространение, потому что на нем могут писать практически все программисты в любой стране.

Поскольку он напоминает знакомый всем формат электрических цепей, даже не специалист в области программирования, знакомый с электроникой может разобраться в программе для поиска ошибок в ней. На этом языке легко писать программы. Имея базовое представление о входных и выходных сигналах, можно начать писать код. Большинство других языков IEC требуют большей подготовки, например, прорисовки диаграмм всех потенциальных процессов. Наконец,  программа, реализованная в виде релейно-контактных схем, может быть организована в виде папок или подпрограмм, которые загружаются в контроллер, позволяя проводить легкую сегментацию программы.

Этот язык напоминает последовательность цепей управления, в которой все входы должны быть установлены в значение «истина» для активации одного или нескольких выходов.
http://sh.uploads.ru/nDu2I.png

Рис. 1. Этот язык напоминает последовательность цепей управления, в которой все входы должны быть установлены
в значение «истина» для активации одного или нескольких выходов.

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

На языке релейно-контактных схем затруднительно реализовывать более сложный функционал ПЛК (программируемый логический контроллер, англ.: PLC), сохраняя парадигму легкой визуализации и понимания. Такие функции как ПИД-регулирование, тригонометрия и анализ данных в приложении реализовать трудно.  Другой сложностью является то, что по мере роста объема программы, ее становится сложно читать и интерпретировать, если нет подробнейшей документации. Наконец, реализация полного процесса управления на языке релейно-контактных схем  может быть чрезвычайно трудным.

Язык функциональных блочных диаграмм (FBD)

Хотя, язык релейно-контактных схем является наиболее распространенным, обзор, выполненный журналом Control Engineering несколько месяцев назад, показал растущее применение других языков программирования. Примером является язык функциональных блочных диаграмм. Несмотря на то, что скорость его распространения несколько замедлилась за последнее время, относительно таких  языков как структурированный текст, язык функциональных блочных диаграмм является вторым по степени популярности.

В Функциональной блочной диаграмме блоки «соединены» вместе в последовательность, которую легко отслеживать. Этот язык использует такие же команды, как и релейно-контактный, но схема визуально более понятна пользователю, который не обладает специальными знаниями в релейной логике.
http://s9.uploads.ru/QktWU.png

Рис. 2. В Функциональной блочной диаграмме блоки «соединены» вместе в последовательность, которую
легко отслеживать. Этот язык использует такие же команды, как и релейно-контактный, но схема визуально
более понятна пользователю,который не обладает специальным знаниями в релейной логике.

Многими аспектами этот графический язык напоминает электрическую схему даже больше, чем релейно-контактный язык. В функциональной блочной диаграмме блоки «соединены» вместе в последовательность, которую легко отслеживать. Этот язык использует такие же команды, как и релейно-контактный, но схема визуально более понятна пользователю, который не обладает специальными знаниями в релейной логике. Основным преимуществом этого языка является легкость отслеживания программы – просто двигайтесь по пути.  Этот язык идеален для простых программ, состоящих из цифровых входов, таких как фотоэлектрические датчики, и выходов, таких как клапаны трубопроводов, и может использоваться в любых приложениях наряду с релейно-контактным языком или вместо него.

Однако, этот язык не идеален для больших программ, использующих специальные входы и выходы, а также функции. При использовании языка нужен большой объем экранного пространства, что делает программу нечитаемой при достижении определенного размера.  Также при написании программы на языке функциональных блочных диаграмм требуется предварительная подготовка в виде прописывания алгоритма перед тем, как писать код, поскольку впоследствии будет достаточно сложно внести изменения.

Язык последовательных функциональных диаграмм (SFC)

Программа, написанная на этом языке, напоминает компьютерную блок-схему, которую многие помнят из институтской программы. За начальный шагом  «начальный шаг» (точка начала диаграммы) идет последовательность шагов и переходов.  Концепция SFC проста: шаг с внутренним кодом, написанным на любом языке программирования, активен до тех пор, пока не активен переход, следующий за ним. При активировании перехода, текущий шаг отключается,  а следующий за переходом шаг становится активным.  Переход также имеет код, проверяющий, что выполнены необходимые условия, позволяющие программе перейти к следующему шагу.

В этом примере, программа на языке SFC состоит из диаграммы в виде блоков и горизонтальных линий слева и содержимое одного из блоков на языке ST справа. В программе на языке SFC, блоки называются шагами, а небольшие горизонтальные линии называются переходами. Как блоки, так и переходы включают в себя небольшие части кода.
http://s9.uploads.ru/Ox1mv.png

Рис. 3. В этом примере, программа на языке SFC состоит из диаграммы в виде блоков
и горизонтальных линий слева и содержимое одного из блоков на языке ST справа.
В программе на языке SFC, блоки называются шагами, а небольшие горизонтальные
линии называются переходами. Как блоки, так и переходы включают в себя
небольшие части кода.

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

К недостаткам языка относится то, что такой стиль программирования подходит не для всех приложений, поскольку структура, которая накладывается на программу, может ее излишне усложнить. Нужно потратить много времени на подготовку и планирование, прежде чем начать программировать,  иначе функциональная диаграмма будет запутанной, и ее будет сложно отслеживать.

Дополнительные ресурсы, требующиеся для такого программирования, приводят к замедлению процесса написания программы по сравнению с другими языками. Наконец, нужно принять во внимание невозможность конвертирования в другие языки. Например, языки IL, FBD и LD можно легко конвертировать друг в друга, позволяя воспроизводить участки кода в виде, наиболее удобном для пользователя. Язык ST также можно конвертировать в любой из этих трех языков. Но  язык SFC конвертировать нельзя. Таким образом, этот язык подходит только для пользователей, которые его хорошо знают, потому что его нельзя будет воспроизвести в другом формате, или для приложений и у которых аппаратная часть имеет достаточную скорость и объем памяти, необходимый для хранения и выполнения программ  на языке SFC.

Список инструкций (IL)

Любой человек с опытом программирования микропроцессоров или программирования на Ассемблере увидит сходство с программированием на языке IL. Этот язык состоит из строк кода, в котором одна строка содержит одну операцию. Таким образом, программа представляет собой пошаговый список операций, в который можно легко вводить последовательности простых математических функций.  К тому же, если программист использует только команды, определяемые IEC, программу, написанную на этом языке можно легко использовать на различных аппаратных платформах. Эти преимущества сделали данный язык очень популярным в Европе, что удивляет многих программистов в США, которые предпочитают более удобные графические языки.

Список инструкций состоит из многих строк кода, в котором в каждой строке содержится только одна операция.
http://s8.uploads.ru/q3cBE.png

Рис. 4. Список инструкций состоит из многих строк кода,
в котором в каждой строке содержится только одна операция.

Язык IL – это язык нижнего уровня, и как таковой работает в ПЛК быстрее графических языков. Этот язык также более компактен и потребляет меньше памяти ПЛК.  Метод построчного текстового ввода, поддерживаемый этим языком, также позволяет очень быстро вводить программу, при этом не требуется мышка или функциональные клавиши. Программы в современных системах автоматизации, написанные на этом языке, легче воспроизводить и редактировать на портативных устройствах, для чего не требуется дополнительного программного обеспечения или ноутбука.

Несмотря на преимущества данного языка, инженеры по обслуживанию его не очень любят. Возможно, это вызвано тем, что он менее нагляден, чем язык релейно-контактных схем, и поэтому труднее понять, что делает программа, и какие ошибки имеют место быть в ней. Аналогично релейно-контактной схеме по мере увеличения сложности ПЛК, в списке инструкций могут возникнуть сложности при вводе таких сложных функций, например, ПИД – регулирование. Это также относится и к сложным математическим расчетам.  Список инструкций не очень подходит для таких форм структурного программирования, как диаграмма состояний или  ступенчатая многозвенная схема, что ограничивает его полезность для реализации больших программ. Также спорным является факт, что преимущества скорости и компактности утрачивают свое значение по мере увеличения скорости работы современных ПЛК и большого объема доступной памяти.
Структурированный текст (ST)

С его петлями IF…THEN, CASE селекторами, и окончанием строк точкой с запятой, язык ST сильно напоминает языки программирования верхнего уровня, такие как  PASCAL или C. Ранее упомянутый обзор Control Engineering показывает, что из всех языков программирования  IEC61131, язык ST получает самое быстрое распространение.

Язык ST сильно напоминает языки программирования верхнего уровня, такие как PASCAL или C.
http://sg.uploads.ru/HjN7m.png

Рис. 5. Язык ST сильно напоминает языки программирования верхнего уровня, такие как PASCAL или C.

Этот язык лучше всего подходит для сложного программирования ПЛК, такого как, например, управление процессами в производстве пластмасс или химической промышленности. Тригонометрические функции, математические вычисления и анализ данных на этом языке можно реализовать легче, чем на языке релейно-контактных схемах или языке списка инструкций. Циклы выбора и указатели  (переменные, используемые для косвенной адресации) позволяют реализацию более компактных программ, чем могут быть созданы на языке релейно-контактных схем. Для написания программы на языке ST используется удобный текстовый редактор, который облегчает ввод комментариев в программу, а также позволяет использовать знаки абзацев и пробелы для выделения связанных участков кода. Это облегчает задачу структурирования комплексных программ. Текстовый, неграфический характер языка ST, похожего на язык IL, позволяет создавать программы, которые работают гораздо быстрее, чем программа созданные на языке LD. Дополнительным преимуществом языка ST является то, что он ближе других языков программирования подошел к достижению переносимости, обещанной стандартом  IEC61131. Копирование и вставка в языке ST из редактора одного программного пакета в другой часто может быть выполнено с минимальными изменениями, освобождая программиста от аппаратной платформы. Окончательным преимуществом является то, что многие студенты инженерных специальностей лучше владеют компьютерными языками, чем основами электротехники, и поэтому лучше владеют языком ST, чем LD.

Недостаток языка ST заключается в том, что для многих старых специалистов в области программирования и отладки среда языка ST является чем-то незнакомым и неудобным. В определенном смысле, код и структура необходимые, чтобы сделать поддержку этого кода удобной, снижают преимущества, связанные с компактностью программ.  В результате основной тенденцией использования языка ST является его использование так сказать «за сценой». Например,  IEC61131 позволяет программисту реализовать функции на одном языке, а затем использовать их в другом языке. Таким образом, программист, скорее всего, включит программу на языке ST внутрь команды, вызываемой  на языке LD.  Это не обязательно является недостатком, но программисту понадобится тщательно протестировать любой «скрытый» код, и удостовериться в отсутствии ошибок, поскольку у других, кто будет использовать этот код, возможно доступа к данному коду не будет.

Выбор соответствующего языка

Перед принятием решения о выборе языка программирования для вашего приложения необходимо учесть несколько факторов. Если вы знакомы с определенным языком, то пишите на том языке, который знаете. Однако, посмотрите на приведенные ниже советы:

    Легкая поддержка конечным пользователем: SFC;
    Повсеместное распространение языка: LD;
    Признание в Европе: IL или ST;
    Скорость выполнения программы ПЛК: IL или ST;
    Приложения, использующие цифровые входы / выходы и базовые процессы: LD, FBD;
    Легкость смены кода впоследствии: LD;
    Легкость использования новичками: ST;
    Легкость реализации сложных математических операций: ST;
    Приложение с повторяющимися процессами или процессами, требующими взаимоблокировки и параллельных операций: SFC.

Наконец, на выбор языка программирования может повлиять платформа ПЛК или ПКА (программируемый контроллер автоматизации, англ: PAC). Не все поставщики систем автоматизации имеют программы, полностью совместимые с  IEC61131-3. Фактически, большинство поставщиков за пределами Европы не предлагают такую функциональность, они либо имеют очень ограниченный спектр опций, например, только поддерживают только язык LD или SFC и нет никаких других языков или же тег ориентированной адресации и т.д.

Другим фактором является то, что не все ПЛК способны поддерживать различные IEC языки из-за недостатка памяти или низкой скорости процессора. Это характерно для многих микро ПЛК. Хотя многие программисты работают в рамках спецификаций заказчика, если у них есть возможность выбора аппаратной платформы, то им придется решать, какой язык или языки будут лучше всего работать для данного приложения, а потом выбирать аппаратное и программное обеспечение соответственно.

Источник: wwwboschrexroth.com
Перевод: wwwproasutp.com

4

https://forumupload.ru/uploads/0019/8b/c2/2/870439.png


Вы здесь » МЕХЗАВОД|Ремонт бытовой техники и электроники cвоими руками » Промышленная электроника » Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК


Рейтинг форумов | Создать форум бесплатно