Скачать презентацию Языки программирования МЭК 6 3 Выполнил Рузанов В Скачать презентацию Языки программирования МЭК 6 3 Выполнил Рузанов В

Языки МЭК дубль 3.ppt

  • Количество слайдов: 56

Языки программирования МЭК 6 3 Выполнил: Рузанов В. Языки программирования МЭК 6 3 Выполнил: Рузанов В.

Основные принципы стандарта МЭК 61131 -3 • Определяет принципы программирования ПЛК • Включает хорошо Основные принципы стандарта МЭК 61131 -3 • Определяет принципы программирования ПЛК • Включает хорошо известные и современные языки программирования • Позволяет разработчику не зависеть от производителя системы программирования • Повторное использование кода • Стандарт является международным

Что определяет стандарт МЭК 61131 -3 • Структуру проекта • Синтаксис и семантику 5 Что определяет стандарт МЭК 61131 -3 • Структуру проекта • Синтаксис и семантику 5 различных языков программирования: IL, FBD, LD, ST и SFC • Типы строительных блоков проекта (POU): функции, программы и функциональные блоки • Правила объявления и типы переменных

Языки МЭК 61131 -3 • • • Список инструкций (IL) Структурированный текст (ST) Язык Языки МЭК 61131 -3 • • • Список инструкций (IL) Структурированный текст (ST) Язык функциональных блоковых диаграмм (FBD) Язык релейных диаграмм (LD) Язык последовательных функциональных схем (SFC)

Язык IL (Instruction list) дословно – список инструкций. Каждая инструкция начинается с новой строки Язык IL (Instruction list) дословно – список инструкций. Каждая инструкция начинается с новой строки и содержит операторы, в зависимости от типа операции, один и более операндов, разделенных запятыми. Перед операндом может находиться метка, заканчивающаяся двоеточием.

Достоинства и недостатки (IL) • • Текстовый язык Все операции производятся через аккумулятор Легко Достоинства и недостатки (IL) • • Текстовый язык Все операции производятся через аккумулятор Легко читается в случае небольших программ Не поддерживает структурного программирования

Инструкция текста может включать 4 поля, разделенные пробелами или знаками табуляции: Метка: Оператор Операнд Инструкция текста может включать 4 поля, разделенные пробелами или знаками табуляции: Метка: Оператор Операнд Комментарий Метка инструкции не является обязательной, она ставится только там где нужно. Оператор присутствует обязательно. Операнд необходим почти всегда. Комментарий — необязательное поле, записывается в конце строки. Ставить комментарии между полями инструкции нельзя.

Аккумулятор IL является универсальным контейнером, способным сохранять значения переменных любого типа. В аккумулятор можно Аккумулятор IL является универсальным контейнером, способным сохранять значения переменных любого типа. В аккумулятор можно поместить значение типа BOOL, INT или REAL, транслятор не будет считать это ошибкой. Такая гибкость не означает, что аккумулятор способен одновременно содержать несколько значений разных типов.

Переход на метку Программа на IL выполняется подряд, сверху вниз. Для изменения порядка выполнения Переход на метку Программа на IL выполняется подряд, сверху вниз. Для изменения порядка выполнения и организации циклов применяется переход на метку. Переход на метку может быть безусловным JMP — выполняется всегда, независимо от чего-либо. Условный переход JMPC выполняется только при значении аккумулятора ИСТИНА. Переход можно выполнять как вверх, так и вниз.

Скобки Последовательный порядок выполнения команд IL можно изменять при помощи скобок. Открывающая скобка ставится Скобки Последовательный порядок выполнения команд IL можно изменять при помощи скобок. Открывающая скобка ставится в инструкции после операции. Закрывающая скобка ставится в отдельной строке. Инструкции, заключенные в скобки, выполняются в первую очередь. Результат вычисления инструкций в скобках помещается в дополнительный аккумулятор, после чего выполняется команда, содержащая открывающую скобку

Стандартные операторы IL с допустимыми модификаторами Стандартные операторы IL с допустимыми модификаторами

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

Структурированный текст (ST) ST - представляет собой набор инструкций высокого уровня, которые могут использоваться Структурированный текст (ST) ST - представляет собой набор инструкций высокого уровня, которые могут использоваться в условных операторах ("IF…THEN…ELSE") и в циклах (WHILE…DO).

Достоинства и недостатки (ST) • • Текстовый язык Язык высокого уровня Схож с Паскалем Достоинства и недостатки (ST) • • Текстовый язык Язык высокого уровня Схож с Паскалем Лучший язык для программирования циклов и условий (IF, WHILE, FOR, CASE)

Основой ST-программы служат выражения. Результат вычисления выражения присваивается переменной при помощи оператора ≪: =≫, Основой ST-программы служат выражения. Результат вычисления выражения присваивается переменной при помощи оператора ≪: =≫, . Каждое выражение обязательно заканчивается точкой с запятой ; . Выражение состоит из переменных констант и функций, разделенных операторами.

Выражения Выражение – это конструкция, возвращающая определенное значение после его вычисления. Выражение состоит из Выражения Выражение – это конструкция, возвращающая определенное значение после его вычисления. Выражение состоит из операторов и операндов. Операндом может быть константа, переменная, функциональный блок или другое выражение. Вычисление выражений выполняется согласно правилам приоритета. Оператор с самым высоким приоритетом выполняется первым, оператор с более низким приоритетом – вторым и т. д. , пока не будут выполнены все операторы. Операторы с одинаковым приоритетом выполняются слева направо. Приоритет операций в выражениях очень важен. В первую очередь с математической точки зрения: X : - 2 + 2 * 2; (* - 6*) X : - (2 + 2) * 2; (* = 8*)

Оператор выбора IF Оператор выбора позволяет выполнить различные группы выражений в зависимости от условий, Оператор выбора IF Оператор выбора позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями

Оператор множественного выбора CASE позволяет выполнить различные группы выражений в зависимости от значения одной Оператор множественного выбора CASE позволяет выполнить различные группы выражений в зависимости от значения одной целочисленной переменной или выражения

Циклы WHILE и REPEAT обеспечивают повторение группы выражений, пока верно условное логическое выражение. Если Циклы WHILE и REPEAT обеспечивают повторение группы выражений, пока верно условное логическое выражение. Если условное выражение всегда истинно, то цикл становится бесконечным.

Цикл FOR обеспечивает заданное количество повторений группы выражений. Цикл FOR обеспечивает заданное количество повторений группы выражений.

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

Язык релейных диаграмм(LD) Язык релейных или релейно-контактных схем (РКС) – графический язык, реализующий структуры Язык релейных диаграмм(LD) Язык релейных или релейно-контактных схем (РКС) – графический язык, реализующий структуры электрических цепей. Лучше всего LD подходит для построения логических переключателей, но достаточно легко можно создавать и сложные цепи - как в FBD.

Достоинства и недостатки • • • Графический язык Программа состоит из схем Использовался для Достоинства и недостатки • • • Графический язык Программа состоит из схем Использовался для программирования практически всех классических ПЛК Удобен для программирования логических выражений Сложно использовать для работы с аналоговыми типами данных Переключение между FBD и LD

Цепи в LD Релейная схема представляет собой две вертикальные шины питания, между ними расположены Цепи в LD Релейная схема представляет собой две вертикальные шины питания, между ними расположены горизонтальные цепи, образованные контактами и обмотками реле. Количества контактов в цепи произвольно, реле одно. Если последовательно соединенные контакты замкнуты, ток идет по цепи и реле включается.

Обозначений базовых элементов LD Обозначений базовых элементов LD

Реле с самофиксацией Помимо обычных реле, в релейных схемах часто применяются поляризованные реле. Такое Реле с самофиксацией Помимо обычных реле, в релейных схемах часто применяются поляризованные реле. Такое реле имеет две обмотки, переключающие его из одного положения в другое. Переключение производится импульсами тока. При отключении тока питания поляризованное реле остается в заданном положении, что реализует элементарную ячейку памяти. В LD такое реле реализуется при помощи двух специальных обмоток SET и RESET. Обмотки типа SET обозначаются буквой S внутри круглых скобок (S). Обмотки типа RESET обозначаются буквой R. Если соответствующая обмотке (S) переменная принимает значение ИСТИНА, то сохраняет его бесконечно. Вернуть данную переменную в ЛОЖЬ можно только обмоткой (R).

Управление порядком выполнения Порядок выполнения цепей диаграммы можно принудительно изменять, используя метки (labels) и Управление порядком выполнения Порядок выполнения цепей диаграммы можно принудительно изменять, используя метки (labels) и переходы (jumps). Метку можно ставить только в начало цепи. Имена меток подчинены правилам наименования переменных. Для наглядности можно закончить метку двоеточием. Двоеточие не образует новой метки. Так, Ml: и Ml это одно и то же.

Пример программы на LD Пример программы на LD

Язык функциональных блоковых диаграмм (FBD) FBD – это графический язык программирования. Он работает с Язык функциональных блоковых диаграмм (FBD) FBD – это графический язык программирования. Он работает с последовательностью цепей, каждая из которых содержит логическое или арифметическое выражение, вызов функционального блока, переход или инструкцию возврата.

Достоинства и недостатки (FBD) • • Графический язык Программа состоит из нескольких схем Легко Достоинства и недостатки (FBD) • • Графический язык Программа состоит из нескольких схем Легко читается Каждая схема состоит из блоков и операндов

Диаграмма FBD строится из компонентов отображаемых на схеме прямоугольниками. Входы изображаются слева от прямоугольника, Диаграмма FBD строится из компонентов отображаемых на схеме прямоугольниками. Входы изображаются слева от прямоугольника, выходы справа. Внутри прямоугольника указывается тип и наименования входов и выходов. Прямоугольники в FBD соединены линиями связи. Соединения имеют направленность слева направо. Вход блока может быть соединен с выходом блока, расположенного слева от него.

Соединительные линии Прямоугольники в FBD соединены линиями связи. Соединения имеют направленность слева направо. Вход Соединительные линии Прямоугольники в FBD соединены линиями связи. Соединения имеют направленность слева направо. Вход блока может быть соединен с выходом блока, расположенного слева от него. Помимо этого вход может быть соединен с переменной или константой. Соединение должно связывать переменные или входы и выходы одного типа. В отличие от компонента переменная изображается на диаграмме без прямоугольной рамки. Ширина соединительной линии в FBD роли не играет. Стандарт допускает использование соединительных линий разной ширины и стиля для соединений разного типа.

Соединители и обратные связи Соединители (connectors) представляют собой поименованное соединение, которое можно разорвать и Соединители и обратные связи Соединители (connectors) представляют собой поименованное соединение, которое можно разорвать и перенести в следующую цепь. Такой прием может понадобиться при ограниченной ширине окна редактора FBD. Стандарт не запрещает соединения, идущие с выхода блока на свой вход или вход ранее исполняемых блоков. Обратная связь не образует цикл, подобный FOR, просто некоторое вычисленное значение поступит на вход при следующем вызове диаграммы. Фактически это означает неявное создание переменной, которая сохраняет свое значение между вызовами диаграммы.

Метки, переходы и возврат Порядок выполнения FBD-цепей диаграммы можно принудительно изменять, используя метки и Метки, переходы и возврат Порядок выполнения FBD-цепей диаграммы можно принудительно изменять, используя метки и переходы, точно так же как и в релейных схемах. Метка ставится в начале любой цепи, являясь, по сути, названием данной цепи. Цепь может содержать только одну метку. Имена меток подчинены общим правилам наименования идентификаторов МЭК. Графический редактор автоматически нумерует цепи диаграммы. Эта нумерация применяется исключительно для документирования и не может заменять метки. Переход обязательно связан с логической переменной и выполняется, если переменная имеет значение ИСТИНА. Для создания безусловного перехода используется константа ИСТИНА, связанная с переходом.

Пример программы на языке FBD Пример программы на языке FBD

Язык последовательных функциональных схем (SFC) SFC – это графический язык, который позволяет описать хронологическую Язык последовательных функциональных схем (SFC) SFC – это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.

Достоинства и недостатки (SFC) • • • Графический язык Используется для структурирования приложений Состоит Достоинства и недостатки (SFC) • • • Графический язык Используется для структурирования приложений Состоит из шагов и переходов Действия выполняются внутри шагов Не конвертируется в другие языки

Шаги Любая SFC-схема составляется из элементов, представляющих шаги и условия переходов. Шаги показаны на Шаги Любая SFC-схема составляется из элементов, представляющих шаги и условия переходов. Шаги показаны на схеме прямоугольниками. Реальная работа шага (действия) описывается в отдельном окне системы программирования и не отражается на диаграмме. О назначении шага SFC говорит только его название или, если этого не достаточно, краткое текстовое описание (комментарий). Шаги на схеме могут быть пустыми, что не вызывает ошибки при компиляции проекта. Пустые шаги являются нормой применении программирования сверху вниз, характерного для SFC. Определить действия, соответствующие шагу, можно в любое время. Нет ничего удивительного, если пустые шаги останутся и в законченном проекте.

Переходы Ниже шага на соединительной линии присутствует горизонтальная черта, обозначающая переход. Условием перехода может Переходы Ниже шага на соединительной линии присутствует горизонтальная черта, обозначающая переход. Условием перехода может служить логическая переменная, логическое выражение, константа или прямой адрес. Переход выполняется при соблюдении двух условий: 1) переход разрешен (соответствующий ему шаг активен); 2) условие перехода имеет значение TRUE.

Начальный шаг Каждая SFC-схема начинается с шага, выделенного графически двойными вертикальными линиями или по Начальный шаг Каждая SFC-схема начинается с шага, выделенного графически двойными вертикальными линиями или по всему периметру. Это — начальный шаг. Наименование начального шага может быть произвольным (по умолчанию Init). Начальный шаг присутствует обязательно, хотя и может быть пустым.

Параллельные ветви Несколько ветвей SFC могут быть параллельными. Признаком параллельных ветвей на схеме является Параллельные ветви Несколько ветвей SFC могут быть параллельными. Признаком параллельных ветвей на схеме является двойная горизонтальная линия. Каждая параллельная ветвь начинается и заканчивается шагом. То есть условие входа в параллельность всегда одно, условие выхода тоже одно на всех. Параллельные ветви выполняются теоретически одновременно. В жизни это означает — в одном рабочем цикле, слева направо.

Альтернативные ветви Несколько ветвей SFC могут быть альтернативными ветвями. Признаком альтернативных ветвей на схеме Альтернативные ветви Несколько ветвей SFC могут быть альтернативными ветвями. Признаком альтернативных ветвей на схеме является одинарная горизонтальная линия. Каждая альтернативная ветвь начинается и заканчивается собственным условием перехода. Проверка альтернативных условий выполняется слева направо. Если верное условие найдено, то прочие альтернативы не рассматрива ются. В альтернативных ветвях всегда работает только одна из ветвей, поэтому ее окончание и будет означать переход к следующему за альтернативной группой шагу.

Переход на произвольный шаг В общем случае SFC-схема выполняется сверху вниз. Стандартом допускается создание Переход на произвольный шаг В общем случае SFC-схема выполняется сверху вниз. Стандартом допускается создание переходов на произвольный шаг. Для этого применяются соединительные линии с промежуточными стрелками или поименованные переходы. То есть переход выполняется на шаг, имя которого указано под стрелкой.

Пример задачи на языке SFC Пример задачи на языке SFC

Операторы присваивания • Используются для работы со всеми типами данных Операто р IL FBD Операторы присваивания • Используются для работы со всеми типами данных Операто р IL FBD LD ST LD / ST LD A ST X A X X : = A; LDN / ST LDN A ST X A-o X A / X X : = NOT(A); LD / S LD A S X A [S]-X A X S LD / R LD A R X A [R]-X A X R IF A THEN X : = TRUE; END_IF IF A THEN X : = FALSE; END_IF

Битовые операторы Оператор IL NOT LD A STN X AND LD A AND B Битовые операторы Оператор IL NOT LD A STN X AND LD A AND B ST X OR LD A OR B ST X XOR LD A XOR B ST X FBD A- AB- AB- NOT AND OR XOR LD -X -X A / A ST X X A X : = A AND B; X B X : = NOT(A); X : = A OR B; X X : = A XOR B; B A A / / B B

Примеры таймера TON Пример IL: CAL TONInst(IN : = Var. BOOL 1, PT : Примеры таймера TON Пример IL: CAL TONInst(IN : = Var. BOOL 1, PT : = T#5 s) LD TONInst. Q ST Var. BOOL 2 Пример ST: TONInst(IN : = Var. BOOL 1, PT: = T#5 s);

Пример FBD: Пример FBD:

Пример LD: Пример LD:

Таймеры CX-One Таймеры CX-One