П.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о сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому время исполнения контроллерного цикла зависит от продолжительности операций ввода-вывода и быстродействия процессорного модуля.