Языки программирования плк
Международный стандарт 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, в).
а)язык SFC
б)язык LD
в) язык 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 для расчета дискриминанта квадратного уравнения.