IEC 61131-3

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:16, 1 июня 2016.
IEC 61131-3
Первый   появившийся 1993
Стабильная версия 3.0 / 2013

IEC 61131-3 — раздел (англ. Tier) международного стандарта IEC 61131 (также существует соответствующий европейский стандарт EN 61131), описывающий языки программирования для программируемых логических контроллеров. Третий раздел IEC 61131 описывает языки программирования и определяет два графических и два текстовых стандарта для языков программирования ПЛК.

Обзор

IEC 61131-3 - первый независимый от производителя стандартизированных язык программирования для промышленной автоматизации. Стандарт создан международной электротехнической комиссией (МЭК). МЭК была основана в 1906 году и является международно признанной стандартизирующей организацией для промышленности контроллеров в более 50 стран. Стандарт уже зарекомендовал себя в Европе и быстро набирает популярность в Северной Америке и Азии как стандарт программирования для промышленности. Принятия стандарта МЭК 61131-3 обусловлено возрастающей сложностью управления и требований к автоматизации. Время на создание, стоимость работ и обслуживание программ контроллеров имеет большое влияние на проекты контроллеров. Основной целью стандарта было повышение скорости и качества разработки программ для ПЛК, а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК. Системы программирования, основанные на МЭК 61131-3, характеризуются:

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

Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования. В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD. Выбор одного из пяти языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.

Описываемые языки программирования

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

Текстовый язык. Аппаратно-независимый низкоуровневый ассемблероподобный язык. Считается устаревшим в третьей редакции. Пример синтаксиса:

    LD Voltage (*Загрузить Voltage в аккумулятор*)
    GT 220 (*Если >220*)
    JMPCN М1 (*Перейти к метке, если ">220" не верно*)
    LD Current (*Загрузить Current в аккумулятор*)
    SUB 10 (*Вычесть из аккумулятора 10 *)
    ST Current (*Присвоить Current значен. аккумулятора*)
M1: LD 0 (*Загрузить в аккумулятор значение "0"*)
    ST Out (*Присвоить Out значение аккумулятора*)

Релейно-Контактные Схемы (LD)

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

Функциональные блоковые диаграммы (FBD)

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

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

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

Структурированный текст (ST)

Текстовый Паскалеподобный язык программирования Пример синтаксиса:

IF Voltage>220 THEN
   Current:=Current - 10;  (*Если V>220 В, то уменьшить ток на 10*)
ELSE
   Current:=50; Speed:= ON;(*Установить ток 50А и включить мотор*)
END_IF;

Типы данных

  • Битовые строки - группы значения вкл/выкл
    • BIT - 1 bit
    • BYTE - 8 bit (1 byte)
    • WORD - 16 bit (2 byte)
    • DWORD - 32 bit (4 byte)
    • LWORD - 64 bit (8 byte)
  • INTEGER - целые числа (размер байта = 8 бит)
    • SINT - signed short (1 byte)
    • INT - signed integer (2 byte)
    • DINT - double integer (4 byte)
    • LINT - long integer (8 byte)
    • U - Unsigned - префикс U перед типом делает этот тип беззнаковым целым
  • REAL - числа с плавающей точкой IEC 60559 (такие же, как в IEEE 754-2008)
    • REAL - (4 byte)
    • LREAL - (8 byte)
  • TIME - время длительности для таймеров и процессов
  • Даты и время дня
    • DATE - календарная дата
    • TIME_OF_DAY - часовое время
    • DATE_AND_TIME: дата и время
  • STRING - символьные строки выделенные одинарными кавычками. Знак "$" является маскирующим символом.
    • WSTRING - содержит многобайтовые строки
  • Arrays - множество значений, хранящихся в одной переменной
  • Sub Ranges - устанавливает пределы для значений
  • Derived - тип, полученный из одного из приведенных выше типов
    • TYPE - одиночный тип
    • STRUCT - набор нескольких переменных и типов

Переменные

Свойства переменных: RETAIN, CONSTANT, AT

  • Глобальные
  • Локальные
  • Переменные ввода-вывода
  • Внешние
  • Временные

Конфигурация

  • Ресурс - например центральное процессорное устройство
  • Задачи - может быть несколько на процессор
  • Программы - могут быть запущены один раз, по таймеру или событию

Программируемые организационные элементы (POU)

  • Функции
    • Стандартные: ADD, SQRT, SIN, COS, GT, MIN, MAX, AND, OR, etc.
    • Пользовательские
  • Функциональные блоки
    • Стандартные
    • Пользовательские - библиотеки функций могут быть предоставлены производителем или сторонними лицами
  • Программы

Конфигурации, ресурсы, задания

  • Конфигурации - вычислительные ресурсы, память для ввода-вывода, выполнение, количество задач

Изменения в третьей редакции

Новые возможности

  • Типы данных с явной структурой
  • Тип данных с именованными значениями
  • Элементарные типы данных
  • Ссылки и операции со ссылками
  • Частичный доступ к ANY_BIT
  • Массив с изменяемой длиной
  • Инициализация переменных
  • Правила конвертации данных: неявное– явное
  • Функции - правила вызова функций без результата.
  • Функции конвертации типов: числовые, побитовые и т.д.
  • Функции объединения и разделения времени и даты
  • Классы, методы, интерфейсы и т.д.
  • Объектно-ориентированные функциональные блоки (FB)
  • Пространство имен
  • Структурированный текст (ST) : операторы Continue и т.д.
  • Релейно-контактные схемы (LD) : Контакты для сравнения (типизированные и перегруженные)
  • Приложение A - формальная спецификация элементов языка

Удаления

  • Приложение - Примеры
  • Приложение - взаимодействие с IEC 61499

Устаревшее, нежелательное к использованию

  • Восьмеричные литералы
  • Использование непосредственных МЭК адресов в теле программируемых организационных элементов (POU)
  • Перегруженное усечение TRUNC
  • Список инструкций (IL)
  • Переменная "индикатор" исполняемого блока.

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

  • CoDeSys
  • CX-One
  • ISaGRAF
  • Trace mode
  • MULTIPROG
  • SIMATIC STEP 7
  • GXDeveloper
  • OpenPCS
  • MasterPLC Designer
  • Concept
  • Unity Pro
  • Visilogic (Unitronics PLC)
  • TwinCAT
  • B&R Automation Studio
  • 1Tool (Carel)
  • Cont Designer (Emicon)
  • SILworX
  • PL7
  • SCADA система "Текон"
  • Segnetics SMLogix
  • ZWorkbench (Zentec)

Ссылки