Языки программирования плк

Международный стандарт IEC 1131-3 описывает синтаксис и семантику пяти специализированных языков программирования ПЛК: SFC, LD, FBD, ST и IL. Применением этих языков обеспечивается легкая переносимость реализационных решений с одной платформы на другую.

1. SFC (Sequential Function Chart) – высокоуровневый графический язык, используемый для описания алгоритма в виде набора связанных пар шагов и переходов (см. рис. 3.12, а).

2. LD (Ladder Diagram) - графический язык программирования для описания алгоритмов в виде множества релейных схем, в которых логические и вычислительные операции представлены в виде множества «шин», «контактов» и «катушек» (см. рис. 3.12, б).

3. FBD (Functional Block Diagram) - в этом графическом языке используются функциональные блоки - элементы типа "логическое И", "логическое ИЛИ", блоки сравнения, сложения и вычитания, и прочие элементы, соединенные линиями (см. рис. 3.12, в).

языки программирования плк - student2.ru

а)язык SFC

языки программирования плк - student2.ru

б)язык LD

языки программирования плк - student2.ru

в) язык FBD

Рис. 15. Графические языки программирования ПЛК

4. ST (Structured Text) - текстовый высокоуровневый язык общего назначения, по синтаксису сходный с языком Паскаль (см. рис. 8.2, а).

5. IL (Instruction List) - текстовый язык низкого уровня, похожий на язык Ассемблера (см. рис. 8.2, б)

WHILE A>=B DO A:=A-B END_WHILE; Result:=A;     а) Язык ST LD A BEGIN: GE JMPNC OUT SUB B JMP BEGIN FINISH: ST Result б) Язык IL

Рис. 16. Текстовые языки программирования ПЛК

Написание, отладка и сборка программ производится на ПЭВМ в операционной системе, имеющей развитые графические средства (например, Windows или QNX), а затем результат (подготовленный к работе программный модуль) передается на ПЛК, не имеющий ни клавиатуры, ни монитора, через один из стандартных интерфейсов, например, через RS-232. Подобная технология называется кросс-платформенной технологией (или просто «кросс-технологией»).

Вопросы и задания по лекции 5-8

1. В операционной системе реализована вытесняющая многозадачность с квантом времени длиной 1 мс и дисциплиной «EDF». Одновременно запускаются три задачи с длительностями 5, 3 и 2 мс, которым первоначально устанавливаются равные приоритеты. Нарисуйте «диаграмму Ганнта» (т.е. диаграмму, аналогичную рис. 3.4) в предположении, что время переключения контекста (время, затрачиваемое операционной системой для переключения с задачи на задачу) близко к 0.

2. Поясните ситуацию с «инверсией приоритетов». Почему задача Б будет блокировать выполнение задачи А?

3. Как вы думаете, почему применение «разгона приоритетов» нежелательно в операционных системах реального времени?

4. Придумайте пример, иллюстрирующий некорректное взаимодействие задач при использовании алгоритма с блокирующими флагами.

5. Каким должно быть первоначальное значение семафорной переменной S для предотвращения одновременного доступа к единственному ресурсу двух задач? Трех задач? К двум ресурсам?

6. Составьте программу на языке FBD для расчета дискриминанта квадратного уравнения.

Наши рекомендации