П.1 Структура и основные принципы МЭК 61131-3
Системы программирования на языках МЭК 61131-3
Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г., но в 1997 г. МЭК перешел на новую систему обозначений и в названии стандарта появилась цифра 6. Продвижением стандарта занимается организация PLCopen (www.plcopen.org).
Основной целью стандарта является повышение скорости и качества обработки программ для ПЛК, а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК.
Языки МЭК 61131-3 появились как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК.
Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:
-надежность создаваемого ПО. Она обеспечивается тем, что программы для ПЛК создаются с помощью специальной среды разработки, которая содержит все необходимые средства для написания, тестирования и отладки программ с помощью эмуляторов и реальных ПЛК, а также множество готовых фрагментов программного кода;
- возможность простой модификации программы и наращивания е функциональности;
- переносимость проекта с одного ПЛК на другой;
- возможность повторного использования отработанных фрагментов программы;
- простота языка и ограничение количества его элементов.
Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК:
ST(Structured Text) – структурированный текст. Похож на Паскаль, используется программистами. Подходит для задач, формулируемых в виде сложного разветвленного алгоритма.
SFC (Sequential Function Chart) – последовательные функциональные схемы;
FBD (Function Block Diagram) – диаграммы функциональных блоков. Используется специалистами по САУ и схемотехнике. Подходит для задач, связанных с последовательной обработкой и передачей сигналов.
LD ( Ladder Diagram) – релейно-контактные схемы, или релейные диаграммы. Работа с релейной логикой. Например, для задачи, описываемой как последовательность срабатываний некоторых ключей и реле.
IL (Instruction List) – список инструкций. Похож на Ассемблер. Чаще всего используется программистами.
ST, SFC и FBD являются графическими, IL и LD – текстовыми.
Выбор языка МЭК определяется не только предпочтениями пользователя, но и смыслом решаемой задачи
Принципы МЭК 61131-3
- Вся программа разбивается на множество функциональных элементов – Program Organization Unit (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов.
- Стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения.
- Имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 с;
- Для выполнения операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем (SFC).
- Стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние «включено-выключено» можно описать с помощью единой структуры «Роmp» и передавать внутри программы как единый элемент данных.
- Стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный язык.
- Программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.
Любой ПЛК работает в циклическом режиме. Цикл начинается cо сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому время исполнения контроллерного цикла зависит от продолжительности операций ввода-вывода и быстродействия процессорного модуля.