Язык fbd учебник – НТБ МАЛИ :: Ошибка 404

Общие сведения о языке FBD — Документация Beremiz

FBD (Function Block Diagram) – это графический язык программирования высокого уровня, обеспечивающий управление потока данных всех типов. Позволяет использовать мощные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечательно подходит для небольших приложений и удобен для реализации сложных вещей подобно ПИД регуляторам, массивам и т. д. Данный язык может использовать большую библиотеку блоков, описание которых приведено в приложении 2. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

Согласно IEC 61131­3, основными элементами языка FBD являются: переменные, функции, функциональные блоки и соединения.

Переменные бывают входные, выходные и входные/выходные. На рис. 1 показаны: входная переменная – «in_var», выходная переменная – «out_var» и входная/выходная переменная – «in_out_var».

Рис. 1 – Изображение переменной в языке FBD

Графическое изображение функции приведено на рис. 2. С левой стороны располагаются вхо­ды (IN1 и IN2), с правой стороны выходы (OUT).

Рис. 2 – Изображение функции в языке FBD

Аналогично, изображение функционального блока, приведённое на рис. 3, имеет с левой стороны вхо­ды (S1 и R), с правой стороны выход (Q1).

Рис. 3 – Изображение функционального блока в языке FBD

Соответственно, переменные соединяются с входными и выходными параметрами функций и функциональных блоков. Входные переменные могут быть соединены только с входными параметрами функции или функционального блока, выходные переменные – только с выходными параметрами функции или функционального блока, входные/выходные переменные – как входами, так и с выходами функции или функционального блока. Также выходной параметр одной функции или функционального блока может быть напрямую соединён с входным параметром другого.

Рис. 4 – Пример соединения переменных, функций и функциональных блоков

Все функциональные блоки могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом). Пример такого функционального блока приведен на рис. 5.

Рис. 5 – Изображение элементарного функционального блока с параметрами EN/ENO

Если функциональный блок вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые в функциональном блоке, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые функциональным блоком, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0. Поведение функционального блока одинаково как в случае вызова функционального блока с EN = 1, так и при вызове без параметров EN/ENO.

Для более компактного соединения входов и выходов различных функций и функциональных блоков используются элементы «Соединение», показанные на рис. 6:

Рис. 6 – Изображение соединений в языке FBD

Они бывают двух видов: входное соединение и выходное выходные соединение. Основная задача соединений – передать значение из одного выхода на другой вход без прямого соединения выхода и входа. На рис. 5.7 показан пример, в котором выходное значение OUT функции BOOL_TO_INT передаётся на вход IN2 функции ADD:

Рис. 7 – Пример использования соединения на FBD диаграмме

На рис. 8 приведена FBD диаграмма, состоящая из следующих функциональных блоков: SR0, AND, TP0.

Рис. 8 – пример FBD диаграммы

Функциональный блок SR0 представляет собой Бистабильный SR-триггер. У него имеются входы S1, R1 и выход Q1, а так же дополнительный вход EN и выход ENO, позволяющие включать и выключать выполнение SR0. Выход Q1 с помощью соединён с входом IN1 блока AND, представляющий собой «Логическое И». Вход IN2 типа BOOL соединён с литералом «BOOL#1», который всегда положительный. Выход OUT блока AND соединён с входом IN функционального блока TP0, представляющий собой повторитель импульсов. Вход PT типа TIME, соединён с литералом «T#5s», который задаёт значение 5 секунд.

Если после запуска выполнения данного функционального блока enabled равно True и переменная S1_IN тоже True, функциональный блок SR0 начинает выполняться. На выходе OUT функционального блока AND будет значение True как только Q1 у SR0 будет равен True. Следовательно, как только OUT становится True вход IN функционального блока TP0 принимает тоже True и начинается отсчёт таймера ET (см. рис. 9).

Рис. 9 – Выполнение FBD диаграммы

Пока данный таймер не достигнет значения PT выход Q у функционального блока TP0 будет равен True. При достижении таймером ET значения PT, т.е. через 5 секунд выход Q становится False (см. рис. 10).

Рис. 10 – Выполнение FBD диаграммы

Как только вход IN функционального блока TP0 становится значения FALSE, счётчик ET сбрасывается в T#0s.

sm1820.github.io

Язык функциональных блоков — fbd

Язык программирования FBD (Function Block Diagram) является составной частью стандарта IEC-61131 и так же входит в стандарт IEC-61499.

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

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

Основными объектами языка FBD являются

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

Разработка программы осуществляется с помощью графического редактора посредством формирования блок-схемы из перечисленных выше компонентов, которые объединяются друг с другом либо посредством внешних (фактических) параметров (переменные, соответствующие входам и выходам), либо непосредственно линиями связи – графическими связями.

Идеология программирования на языке FBD подразумевает, что время исполнения каждой программы должно быть вполне определенным, т.е. детерминированным. Другими словами ни одна программа не имеет права зациклиться на неопределенное время, например на ожидании какого-либо события.

FBD — программа очень напоминает функциональную схему электронного устройства. Каждый ФБ имеет фиксированное количество входных точек связи и фиксированное количество выходных точек связи.

FBD — программа описывает функцию между входными и выходными переменными. Эта функция представляется совокупностью элементарных ФБ. Тип каждой переменной должен быть тем же, что и тип соответствующего входа. Входом FBD — блока может быть константа, любая внутренняя, входная или выходная переменная.

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

РеализацияFbDвIsaGraf6

Главные элементы FBD

Функциональный блок

Функция

Элементы FBD

Переменные

Блоки

Переходы

Возвраты

Комментарии

Метки

Цепи

Вертикальная шина

Обмотки

Прямая обмотка

Инверсная обмотка

Включающая обмотка (Set) и Выключающая обмотка (Reset)

Контакты

Прямой контакт

Инверсный контакт

Импульсный контакт (Передний фронт)

Импульсный контакт (Задний фронт)

Функциональные блоки

Управление тревогами

Булевские операции

SR — триггер

RS — триггер

Определение переднего фронта

Определение заднего фронта

Блок сравнения

Счетчики

Счет вверх

Счет вниз

Счет вверх-вниз

Управление процессами

Вычисление среднего

Генератор импульсов

Гистерезис

Интегратор

Генератор сигналов

Стек чисел

Удаленные коммуникации

Таймеры

studfile.net

Язык Functional Block Diagrams (FBD)

Язык функциональных блок-схем (FBD) описывает функции преобразования входных переменных контроллера в выходные в виде сочетания элементарных функциональных блоков.

Язык функциональных блоков (Function Block Diagrams) позволяет создать программную единицу практически любой сложности на базе стандартных функциональных блоков (арифметические, тригонометрические, логические блоки, ПИД–регуляторы, мультиплексоры и т.д.). Это языковое средство использует технологию инкапсуляции алгоритмов обработки данных и законов регулирования. Все программирование состоит в соединœении готовых компонентов. В результате получается наглядная и хорошо контролируемая программная единица

Выход функционального блока должна быть соединœен со входами других блоков. Каждый функциональный блок представляет собой прямоугольник, внутри которого имеется обозначение функции, выполняемой блоком (рис. 4.2).

Рис. 4.2. Фрагмент программы на языке FBD

Формальные правила языка FBD:

1. Функциональные блоки могут располагаться произвольно в поле программы;

2. Не должна быть несоединœенных входов и выходов функционального блока;

3. Соединœение блоков может выполняться также при помощи ссылок с определœенными именами;

4. Функциональные блоки размещаются слева направо, сверху вниз;

5. На входе функционального блока должна быть константное выражение, любая внутренняя или входная переменная контроллера; выходная переменная.

6. На выходе блока должна быть любая внутренняя или выходная переменная ПЛК.

В таблице 4.4 представлен перечень базовых функциональных блоков языка FBD.

Таблица 4.4. Основные функциональные блоки языка FBD

Наименование Обозначение Описание
1. Функции двоичного типа NOT Логическое отрицание
AND Логическая конъюнкция
OR Логическая дизъюнкция
XOR Исключающее ИЛИ
SET Присвоение переменной единицы
RESET Обнуление переменной
2. Функции управления RETURN Возврат из подпрограммы
GOTO Безусловный переход
CALL Вызов подпрограммы
3. Арифметические функции ADD Сложение
SUB Вычитание
DIV Делœение
MUL Умножение
4. Функции сравнения = Равно
< > Не равно
> Больше
< Меньше
=> Больше или равно
<= Меньше или равно
5. Математические функции ABS Модуль
EXPT Экспонента
LOG Логарифм
SQRT Корень
6. Тригонометрические функции ACOS Арккосинус
ASIN Арксинус
ATAN Арктангенс
COS Косинус
SIN Синус
TAN Тангенс

В таблице 4.5 приведены примеры реализации некоторых операций на языке FBD.

Таблица 4.5. Примеры программирования на языке FBD

Выполняемая операция Изображение Описание
Обнаружение перепада сигнала In Двоичная переменная Out примет значение TRUE тогда и только тогда, когда переменная In изменит свое состояние
П-регулятор Рассогласование между текущим значением величины Val и заданием Ref помножается на коэффициент Km и используется в качестве управляющего воздействия

Язык FBD позволяет пользователю создавать собственные функциональные блоки UFB (User Functional Block). Алгоритм создания UFB следующий:

1. С использованием базовых функциональных блоков языка FBD составляется программа, реализующая функции создаваемого UFB.

2. Внешним связям UFB присваиваются имена, которые будут использоваться в графическом изображении блока как функция того или иного вывода.

3. Программа сворачивается в прямоугольную картинку.

4. Специальными командами формируется изображение UFB (его размеры, число входов и выходов, их обозначения, заголовок UFB).

Читайте также


  • — Язык архитектуры барокко XVII в.

    В этой части лекции подводится итог обзору архитектуры Италии и определяется художественный язык стиля «барокко». Многое из сказанного ниже относится не только к архитектуре, но и к другим видам искусства этого стиля. С точки зрения стилевой определенности архитектуру… [читать подробнее].


  • — Лекция Язык SQL. Групповые функции.

    Групповые функции работают с группами строк и возвращают один результат на каждую группу строк. При использовании групповых функций команда SELECT может включать предложения GROUP BY и HAVING. Команда имеет при этом следующий синтаксис: SELECT столбец|выражение, … FROM таблица, … [WHERE… [читать подробнее].


  • — КОРРЕКТИРОВКА СВОЙСТВ ПРИМИТИВОВ СРЕДСТВАМИ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

    Раздел BLOCKS Раздел TABLES Раздел HEADER Содержит установочные значения переменных, которые непосредственно связаны с рисунком. Эти переменные устанавливаются с помощью различных команд и относятся к такому виду информации, который отображается а… [читать подробнее].


  • — Смешение языков

    ГЛАВА 6 НЕБЕСНЫЕ ВРАТА Шумеры оставили человечеству длинный список «изобретений», без которых немыслима современная цивилизация. В дополнение к уже перечисленным, необходимо упомянуть еще одно дошедшее до нас «изобретение». Как и все остальные, оно было даровано… [читать подробнее].


  • — Первый язык

    ГЛАВА 1 ПЕРВЫЕ ВСТРЕЧИ Аннотация Серия: Хроники Земли – 7 Захария Ситчин Божество 12-й планеты Перевод: Юрий Я. Гольдберг Знаменитый исследователь Захария Ситчин, автор сенсационных теорий палеоконтакта, давно и плодотворно… [читать подробнее].


  • — Языковые особенности разговорного стиля

    Условия функционирования разговорной речи Разговорный стиль характеризуется особыми условиями функционирования: 1. отсутствие предварительного обдумывания высказывания, т.е. отсутствие возможности отбора языкового материала; 2. разговорное общение… [читать подробнее].


  • — Типы убеждающих выступлений. Методы убеждения и выразительные средства языка в убеждающей речи

    Любая убеждающая речь возможна при условии существования двух или нескольких точек зрения на проблему. Так, убеждать свою аудиторию в том, что бесконтрольное употребление наркотиков опасно, не имеет смысла, поскольку на этот предмет не может быть двух точек зрения,… [читать подробнее].


  • — Стили современного русского языка.

    Слово «стиль» произошло от греч. «stylos» — название палочки, которой писали на досках в Древней Греции. В лингвистической науке выделяются функциональные стили. В зависимости от тех функций языка, которые они выполняют, основными из них являются функции: общения, сообщения и… [читать подробнее].


  • — Системы языковых средств научного стиля

    Особенности научного стиля Возникновение и развитие научного стиля Лекция № 4. Научный стиль 1. Возникновение и развитие научного стиля. 2. Особенности научного стиля. 3. Система языковых средств научного стиля. 4…. [читать подробнее].


  • — Синтаксис языка экрана

    Элементы языка экрана, роль которых можно уподобить роли знаков препинания в синтаксисе: наплыв, затемнение, вытеснение (или «шторка»), двойная экспозиция, скольжение (или «смазка»), расфокусировка. Средства эти могут показаться чисто техническими; однако точный выбор… [читать подробнее].


  • referatwork.ru

    7 Язык функциональных блок схем – fbd

    Язык FBD (Function Block Diagram) – графический язык программирования высокого уровня, обеспечивающий управление потоками данных всех типов. Позволяет использовать очень мощ­ные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечателен для небольших приложений. Хорош для сложных ве­щей подобно ПИД регуляторам, массивам и т. д. Имеет большую библиотеку блоков. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

    Объекты языка FBD:

    EFB (Elementary Function Block) – элементарные функции и элементарные функциональные блоки; они находятся в библиоте­ках. Логика обработки в EFB (программа) написана на языке С и не может быть изменена в редакторе FBD. Изменять можно только параметры блоков;

    DFB (Derived Function Block) – функции и функциональные блоки пользователя; они конструируются пользователем из EFB;

    UDEFB (User Defined Elementary Function Block) – разработан­ные пользователем на языке С; они оформляются как объекты библиотек.

    Для EFB, DFB и UDEFB принято общее обозначение – FFB (Functions/Function Block). Каждый из перечисленных объектов представляет собой подпро­грамму, которая помещается в одну из библиотек, используемых при разработке программы работы ПЛК. Таким образом обеспечи­вается возможность вызова и хранения FFB в форме библиотек.

    Разработка программы для ПЛК осуществляется с помощью гра­фического редактора FBD посредством формирования блок-схемы из перечисленных выше FFB, которые объединяются друг с другом ли­бо посредством внешних (фактических) параметров FFB (перемен­ные, соответствующие входам и выходам FFB), т. е. таблично, либо непосредственно линиями связи – графическими связями. Редактиро­вание обычно выполняется с помощью мыши или клавиатуры.

    Последовательность (очередность) обработки отдельных FFB в программе (в каждой FBD-секции) определяется потоком данных внутри секции.

    Теоретически каждая секция может включать любое число FFB и, соответственно, любое число входов и выходов. Однако жела­тельно разделить сложную программу на ряд логических единиц, т. е. на различные секции.

    В дополнение к перечисленным выше объектам языка FBD ре­дактор позволяет поместить текст (комментарий) в секцию FBD. На рисунке 7.1 приведен общий вид секции FBD.

    Рисунок 7.1 – Представление секции FBD

    Элементарные функции и функциональные блоки – ЕFВ

    Элементарные функции (EF) не имеют внутренних состояний. Если входные значения одинаковы, значение выхода будет одинаковым для всех вызовов функции (например, сложение двух значений дает одинаковый результат при каждом вызове).

    Элементарная функция представляется графически как рамка со входами и одним выходом. Эти входы всегда располагаются слева от рамки, а выход справа.

    Название функции, например, тип функции, изображается в центре рамки.

    Номер выполнения функции показан справа от типа функции.

    Счетчик функции показан над рамкой. Счетчик функции это порядковый номер функции в текущей секции. Счетчики функции не могут изменяться.

    Рисунок 7.2 – Графическое изображение элементарной функции

    Графическое изображение элементарной функции приведено на рис. 7.2.

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

    Элементарные функциональные блоки (EFB) имеют внутренние состояния. Если входы имеют одинаковые значения, значение выхода может быть разным для каждого выполнения (например, в счетчике, значение выхода увеличивается на 1).

    Элементарный функциональный блок представляется графически как рамка с входами и выходами. Входы всегда располагаются слева от рамки, а выходы справа.

    Функциональные блоки могут иметь более одного выхода.

    Название функционального блока, например, тип функционального блока, изображается в центре рамки.

    Номер выполнения функционального блока показан справа от типа функционального блока. Имя экземпляра показано над рамкой. Имя экземпляра является уникальным идентификатором для функционального блока в проекте. Имя экземпляра создается автоматически и имеет следующую структуру: FBI_n

    FBI = Экземпляр Функционального Блока

    n = порядковый номер функционального блока в проекте

    Это автоматически генерируемое имя может быть изменено для наглядности. Имя экземпляра (максимум 32 символа) должно быть уникальным в пределах всего проекта и не является чувствительным к регистру. Имя экземпляра должно соответствовать общим соглашениям об именовании.

    Графическое изображение элементарного функционального блока приведено на рис. 7.3. С левой стороны располагаются вхо­ды, с правой – выходы.

    Рисунок 7.3 – Графическое изображение элементарного функционального блока

    Все FFB могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом).

    Конфигурирование (включение или выключение) параметров EN и ENO осуществляется в диалоговом окне Property (свойства) FFB, которое вызывается посредством команд Object, Property (Объекты, Свойства), или двойным нажатием левой клавиши (ЛК) мыши на изображении FFB.

    Если FFB вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые FFB, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые FFB, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0.

    Поведение FFB одинаково как в случае вызова FFB с EN = 1, так и при вызове без параметров EN/ENO.

    Производные функциональные блоки DFB

    Пользовательские (или производные) функциональные блоки DFB являются функциональными блоками, которые сконструированы пользователем из EFB-объектов в среде Concept-DFB.

    В DFB не существует различий между функцией и функцио­нальным блоком. Не принимая во внимание их внутреннюю струк­туру, к ним всегда обращаются как к функциональным блокам.

    Графическое изображение функционального блока типа DFB приведено на рисунке 7.4.

    Рисунок 7.4 – Графическое изображение функционального блока типа DFB

    Назначение DFB (DFB_ЕХАМР) представляется внутри блока, а обозначение имени экземпляра DFB (FBI_1_1) – над блоком.

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

    Автоматически созданное имя экземпляра будет всегда иметь Структуру

    FBI_n_m

    где FBI – блок DFB; n – порядковый номер секции; m – порядко­вый номер DFB-объекта в секции.

    При программировании DFB имеется различие между двумя типами переменных: внутренними переменными и входными/выходными переменными.

    Внутренними переменными являются переменные, которые используются только внутри логики DFB. Эти переменные могут быть изменены только в среде Concept-DFB. Такое изменение за­тем применяется ко всем экземплярам создаваемого DFB. Разре­шенные типы переменных: нелокализованные (неразмещенные) переменные, нелокализованные многоэлементные (структурные) переменные, константы и литералы.

    Нелокализованные переменные, нелокализованные многоэлементные переменные и константы объявляются в редакторе пере­менных (Variable Editor).

    Связь. Связи являются соединениями между FFB. Несколько связей могут быть соединены с FFB выходом. Пункты любого такого соединения отмечаются жирной точкой. Входы/выходы, которые будут соединены, должны иметь соответствующие типы данных. Связи могут быть отредактированы в режиме Выбора. Перекрывание с другими объектами разрешается. Связи не могут использоваться для конфигурации контуров, потому что не возможно ясно определить порядок обработки в секции. Контуры должны решаться с помощью фактических параметров.

    Несвязанным входам FFB назначается по умолчанию значение ”0”.

    Порядок обработки.

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

    Используйте команду меню Objects → View FFB execution order, чтобы просмотреть порядок обработки. Это выполняется с помощью отображения номера выполнения (номер в круглых скобках) после имени экземпляра или номера функции (рисунок 7.5).

    Рисунок 7.5 – Порядок обработки

    Целенаправленное реверсирование в порядке обработки двух FFB может быть произведено с командой меню Objects → Reverse FFB execution order, но только, если потоковое правило будет не нарушено (рисунок 7.6 и 7.7).

    Рисунок 7.6 – Изменение порядка обработки двух сетей, размещенных в контуре

    На рисунке 7.6 показано как обмен достигается переключением двух FFB, которые связаны через переменную обратной связи контура.

    Рисунок 7.7 – Изменение порядка обработки FFB

    На рисунке 7.7 Показано изменение порядка обработки FFB (или сетей), которые обрабатываются согласно порядку размещения.

    Операция замены позволяет создание (постепенно, в случае необходимости, если вставляются несколько FFB) другого привилегированного порядка обработки.

    FFB внутри одной секции выполняются согласно предопределенному порядку. FFB, которые используют фактические параметры на входах и которым не были распределены никакие значения, работают с начальными значениями этих фактических параметров.

    Конфигурирование контуров.

    Конфигурирование контуров исключительно через связи не позволяется (рисунок 7.8), потому что не имеется никакой опции для чистого определения потока данных (выход одного FFB является входом следующего FFB, его выход в свою очередь является входом первого).

    Рисунок 7.8 – Неразрешенный контур через связи

    Такая логика должна быть решена с помощью фактических параметров так, чтобы чистое определение потока данных было возможно (рисунки 7.9 и 7.10)

    Рисунок 7.9 – Разрешенный контур (вариант 1)

    Рисунок 7.10 – Разрешенный контур (вариант 2)

    Позволяются также контуры через несколько фактических параметров. С такими контурами, порядок обработки может управляться с обратным ходом через несколько выполнений, в случае необходимости, команды меню Objects → Reverse FFB execution order (рисунок 7.11).

    Рисунок 7.11 – Контур через фактические переменные

    Пример 7.1. Использование функциональных блоков RS и TON.

    Имеется бак, в который поступает жидкость, и насос для откачки этой жидкости. Бак имеет нижний датчик и верхний датчик уровня жидкости (датчик замыкается и переходит в состояние 1, когда контакты датчика покрыты жидкостью). Имеется реле, запускающее мотор насоса. Требуется реализовать следующий алгоритм управления насосом.

    1. При срабатывании датчика верхнего уровня жидкости через 3 секунды включается мотор.

    2. Он работает, пока уровень жидкости не уменьшился до уровня нижнего датчика, затем мотор отключается.

    Обозначения контактов и обмоток реле:

    vu – верхний датчик уровня

    nu – нижний датчик уровня

    zd – реле запуска мотора насоса

    На рисунке 7.12 приведено решение данной задачи. На рисунке 7.13 – окно редактора переменных.

    Рисунок 7.12 – Решение на языке FBD к примеру 7.1

    Рисунок 7.13 – Окно редактора переменных

    studfile.net

    Лабораторная работа №1 «Создание программы на языке fbd»

    17

    Задание: создать программу на языке FBD согласно условиям:

    1) Время перемещения в каждом направлении нужно контролировать. Перемещение влево должно прекращаться через 5 с, а перемещение вправо – через 10 с.

    2) Направление перемещения изменяется автоматически по истечении указанного времени.

    Решение: формируем блок-схемы из FFB, которые объединяются друг с посредством внешних параметров FFB (перемен­ные, соответствующие входам и выходам FFB), т. е. таблично.

    Рис. 1 – Решение на языке FBD

    Ответы на контрольные вопросы:

    1. Охарактеризуйте язык функциональных блок-схем fbd.

    Язык FBD (Function Block Diagram) – графический язык программирования высокого уровня, обеспечивающий управление потоками данных всех типов. Позволяет использовать очень мощ­ные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечателен для небольших приложений. Хорош для сложных ве­щей подобно ПИД регуляторам, массивам и т. д. Имеет большую библиотеку блоков. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

    2. Что такоеEFB,DFB,UDEFB?

    EFB (Elementary Function Block) – элементарные функции и элементарные функциональные блоки; они находятся в библиоте­ках. Логика обработки в EFB (программа) написана на языке С и не может быть изменена в редакторе FBD. Изменять можно только параметры блоков;

    DFB (Derived Function Block) – функции и функциональные блоки пользователя; они конструируются пользователем из EFB;

    UDEFB (User Defined Elementary Function Block) – разработан­ные пользователем на языке С; они оформляются как объекты библиотек.

    3.Каково назначение входовENи выходовENOфункциональных блоков?

    Все FFB могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом).

    Конфигурирование (включение или выключение) параметров EN и ENO осуществляется в диалоговом окне Property (свойства) FFB, которое вызывается посредством команд Object, Property (Объекты, Свойства), или двойным нажатием левой клавиши (ЛК) мыши на изображении FFB.

    Если FFB вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые FFB, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые FFB, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0.

    Поведение FFB одинаково как в случае вызова FFB с EN = 1, так и при вызове без параметров EN/ENO.

    4. Какую структуру имени, присваиваемого автоматически, имеет FFB?

    Для EFB, DFB и UDEFB принято общее обозначение – FFB (Functions/Function Block). Каждый из перечисленных объектов представляет собой подпро­грамму, которая помещается в одну из библиотек, используемых при разработке программы работы ПЛК. Таким образом обеспечи­вается возможность вызова и хранения FFB в форме библиотек.

    Имя экземпляра является уникальным идентификатором для функционального блока в проекте. Имя экземпляра создается автоматически и имеет следующую структуру: FBI_n

    FBI = Экземпляр Функционального Блока

    n = порядковый номер функционального блока в проекте

    Это автоматически генерируемое имя может быть изменено для наглядности. Имя экземпляра (максимум 32 символа) должно быть уникальным в пределах всего проекта и не является чувствительным к регистру. Имя экземпляра должно соответствовать общим соглашениям об именовании.

    5.Для чего служат связи?

    Связи являются соединениями между FFB. Несколько связей могут быть соединены с FFB выходом. Пункты любого такого соединения отмечаются жирной точкой. Входы/выходы, которые будут соединены, должны иметь соответствующие типы данных. Связи могут быть отредактированы в режиме Выбора. Перекрывание с другими объектами разрешается. Связи не могут использоваться для конфигурации контуров, потому что не возможно ясно определить порядок обработки в секции. Контуры должны решаться с помощью фактических параметров.

    6. Какое значение назначается по умолчанию несвязанным входамFFB?

    Несвязанным входам FFB назначается по умолчанию значение ”0”.

    studfile.net

    FLProg – альтернативная среда программирования Arduino. Описание проекта


    В предыдущем посте я рассказал о предыстории появления проекта FLProg. Сейчас я хочу поподробнее рассказать о проекте и его состоянии на сегодняшний день.
    Основной целью проекта является включение в круг пользователей плат Arduino людей незнакомых с программированием. Это возможно благодаря опыту промышленного программирования, который накапливался годами производителями промышленных контроллеров.
    Проект состоит из двух частей. Первая часть это десктоп приложение FLProg представляющее собой графическую среду программирования плат Arduino. Во вторых, это сайт FLProg.ru, с помощью которого члены сообщества пользователей программы могут пообщаться между собой, узнать последние новости проекта, скачать последнюю версию программы, ну и найти необходимую информацию по работе с приложением.

    Начнем по порядку.
    Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графических языков FBD и LAD, которые являются стандартом в области программирования промышленных контроллеров.
    Описание языка FBD

    FBD (Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков. Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.


    Описание языка LAD

    Ladder Diagram (LD, LAD, РКС) — язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Язык ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течет; ложь — если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.


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

    Вид окна программы в режиме языка FBD

    Вид окна программы в режиме языка LAD

    Схема каждой платы собирается из функциональных блоков в соответствии с логикой работы контроллера. Большинство функциональных блоков имеют возможность настройки, с помощью которой их работу можно настроить в соответствии с необходимыми в данном конкретном случае требованиями.

    Так же для каждого функционального блока есть развернутое описание, которое доступно в любой момент и помогает разобраться в его работе и настройках.

    При работе с программой пользователю нет необходимости заниматься написанием кода, контролем за использованием входов – выходов, проверкой уникальности имен и согласованностью типов данных. За всем этим следит программа. Так же она проверяет корректность проекта целиком и указывает на наличие ошибок.
    Для работы с внешними устройствами создано несколько вспомогательных инструментов. Это инструмент инициализации и настройки часов реального времени, инструменты для чтения адресов устройств на шинах OneWire и I2C а так же инструмент для чтения и сохранения кодов кнопок на ИК пульте. Все определённые данные можно сохранить в виде файла и в последующем использовать в программе.

    Список функциональных блоков существующих на сегодняшний день в языке FBD
    Базовые элементы

    [XOR]
    [AND]
    [OR]
    [Bounce]
    Специальные блоки

    [Scale]
    Тригеры

    [SR]
    [TT]
    [RS]
    [Rtrig]
    Таймеры

    [Generator]
    [Timer]
    Счетчики

    [Counter]
    [SpeedCounter]
    Математика

    [SUM(+)]
    [MUL(*)]
    [DIV(/)]
    [SUB(-)]
    Алгебра

    [SIN]
    [COS]
    [TAN]
    [ABS]
    [SQ]
    [SQRT]
    [MIN]
    [MAX]
    [POW]
    [RANDOM]
    Сравнение

    [Comparator]
    Com — Порт

    Send
    SendVariable
    ReceiveVariable
    Переключатель

    [SWITCH]
    [MUX]
    [DMS]
    Моторы

    ServoMotor
    StepMotor
    Часы реального времени

    [Alarm]
    [GetTime]
    [SetTime]
    Дисплеи

    Дисплей на чипе НD44780
    Подсветка дисплея на чипе НD44780 I2C
    Блок декодирования семи сегментного индикатора
    Строки

    Сложение строк
    Датчики

    [Ultrasonic HC-SR04]
    [DHT11, DHT21, DHT22]
    [DS18x2x]
    [IR Ressive]
    [BMP-085]
    SD карта

    Запись переменной на SD карту
    Выгрузка файла с SD карты
    Конвертация типов

    Преобразование строк
    Преобразование Float в Integer
    Микросхемы расширений

    Расширитель выводов 74HC595
    Операции с битами

    Шифратор
    Дешифратор
    Чтение бита
    Запись бита
    Разное

    Матричная клавиатура

    Список функциональных блоков существующих на сегодняшний день в языке LAD
    Базовые блоки

    Контакт
    Катушка
    Защита от дребезга
    Выделение переднего фронта
    Специальные реле

    Двустабильное реле
    Реле времени
    Генератор
    Реле сравнения
    Алгебра

    SIN
    COS
    TAN
    ABS
    MAX
    MIN
    SQ
    SQRT
    POW
    RANDOM
    Аналоговые блоки

    Масштабирование
    Математика
    Счетчик
    Аналоговый переключатель
    Переключатель много к одному
    Переключатель один ко многим
    Аналоговый вход контроллера
    Аналоговый выход контроллера
    Вход аналогового соеденителя
    Выход аналогового соединителя
    Скоростной счетчик
    ComPort

    Передача в ComPort
    Передача переменной через ComPort
    Прием переменной через ComPort
    Моторы

    Сервомотор
    Шаговый двигатель
    Часы реального времени

    Получить данные
    Будильник
    Установка времени
    Дисплеи

    Дисплей на чипе HD44780
    Блок управления подсветкой дисплея на чипе HD4480 I2C
    Блок декодирования семи сегментного индикатора
    Строки

    Сложение строк
    Датчики

    Ультразвуковой дальномер HC-SR04
    Датчик температуры и влажности DHT11 (DHT21, DHT22)
    Датчик температуры DS18x2x
    IR Ressive
    BMP-085
    SD карта

    Запись переменной на SD карту
    Выгрузка файла с SD карты
    Конвертирование типов

    Конвертация строк
    Преобразование Float в Integer
    Микросхемы расширений

    Расширитель выводов 74HC595
    Операции с битами

    Шифратор
    Дешифратор
    Чтение бита
    Запись бита
    Разное

    Матричная клавиатура.

    Список оборудования применяемого в проекте на сегодняшний день.

    В следующих публикациях я расскажу о сайте проекта и перспективах развития проекта.

    habr.com

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

    Для программирования промышленного контроллера специалисты используют 5 языков, которые поддерживаются определенным стандартом. Каждый из инженеров, работающих над программой автоматизации, выбирает тот язык, с которым ему удобно работать. Программа пишется на одном из языков программирования, которые поддерживаются стандартом МЭК61131-3 в управлении технологическим оборудованием.

    На практике чаще всего применяется графический язык программирования FBD.

    Важная FBD состоит в том, чтобы детерминировать время исполнения задач и полностью исключить возможность зацикливания при ожидании какого-либо события. Это и есть основная составляющая идеологии этого языка программирования.

    Графическую блок-схему особенно любят инженеры технологи за наглядность, поскольку визуализируется она при помощи обычных прямоугольников. Она очень схожа с электрическими схемами.

    С ее помощью можно реализовывать последовательность шагов, отображающих процедуры и условия переходов. Каждому действию соответствует конкретный шаг, который программируется специалистом. Переход от блока к блоку проводится при выполнении определенных логических условий, которые отображают данные перехода. Вся цепочка выполняется последовательно сверху вниз. Используя соответствующие метки, можно менять последовательность выполнения действий. Каждый отдельный блок предлагает определенное выражение, которое состоит из элементов и отображается в графическом виде. Результат вычисления цепи переносится на внутреннюю переменную и подается на выход к ПЛК.

    Преимущества языка FBD

    Основными преимуществами применяемого в ПЛК языка программирования:
     — простота;
     — наглядность;
     — четкая последовательность;
     — легкая структура команд;
     — надежный и быстрый код.

    Существует несколько модернизаций языка FBD, которые используются специалистами. Эти модернизации возникли в результате того, что техники перерабатывают FBD под себя.

    ПЛК Siemens

    Программируемые контроллеры, которые используются на промышленных предприятиях в нашей стране, выполнены на базеSiemens с программным обеспечением Simatik STEP 7. Это последняя версия, которая разработана под операционную систему Windows и значительно увеличивает возможности специалиста разработчика программы для автоматизированного производства. Подробно о том, как осуществляется программирование siemens simatic s7 будет интересно для того, кто намерен перейти от теории к практике. Для того, чтобы больше узнать о видео курсе нажмите здесь, и вам будет представлена полная информация о возможностях обучения. Видеокурс сегодня популярен у специалистов, которые желают освоить тонкости и нюансы программирования и отладки системы ПЛК для автоматизированного производства. Результатом станет открытие, что программирование ПЛК – это увлекательное занятие при работе с реальным оборудованием, особенно, когда есть понимание процесса и грамотный подход к каждому этапу.

    zedpost.ru

    Отправить ответ

    avatar
      Подписаться  
    Уведомление о