Fbd программа что это

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

Редактор в zWorkbench предназначен для визуального построения сложных разветвлённых алгоритмов на языке функциональных блоков (Function Block Diagram, далее — FBD).

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

Содержание:

  • Общий принцип работы
    • Порядок выполнения блоков
    • Описание блока
    • Редактирование свойств блока
    • Комментирование блока
    • Блоки обработки переменных
      • Свойства блока переменной
      • Блок чтения переменной
      • Блок записи переменной
      • Блок “Запись Modbus”
      • Блок И
      • Блок ИЛИ
      • Блок Исключающее ИЛИ
      • Блок Не
      • Блок Фронт
      • Блок Передний фронт
      • Блок Задний фронт
      • Блок Проверка бита
      • Блок Установка бита
      • Блок Сдвиговой регистр
      • Таймер
      • Базовый таймер
      • Упаковка времени
      • Распаковка времени
      • Блок Мультиплексор
      • Блок Демультиплексор
      • Блок RS-триггер
      • Блок D-триггер
      • Блок Счетчик
      • Блок Шифратор
      • Блок Шифратор адресный
      • Блок Дешифратор
      • Блок Дешифратор с накоплением выхода
      • Использование шифратора и дешифратора
      • Блок Запись переменных (EEPROM)
      • Блок Чтение из ПЗУ (EEPROMRead)
      • Блок Запись в ПЗУ (EEPROMWrite)
      • Блок Сравнение
      • Блок Условие
      • Блок Сложения
      • Блок Умножения
      • Блок Деление с остатком
      • Блок Минимум
      • Блок Максимум
      • Блок Преобразование данных
      • Блок Округление
      • Блок Модуль
      • Блок Линеаризация
      • Блок Интервал
      • Блок Масштабирование
      • Блок Логарифм
      • Блок Экспонента
      • Блок Синус
      • Блок Арксинус
      • Блок Косинус
      • Блок Арккосинус
      • Блок Тангенс
      • Блок Арктангенс
      • Блок ПИ-регулятор
      • Блок Стек
      • Блок Очередь
      • Индикатор
        • Таблица входов блока индикатора
        • Таблица ПЗУ
          • Шаблонный блок таблицы ПЗУ
          • Шаблонный блок журнала событий
          • Шаблонный блок расписания
          • Использования расписания
          • Создание обычной связи
          • Создание именованной связи
          • Редактирование связи
          • Аналоговые входы
          • Аналоговые выходы
          • Дискретные входы
          • Дискретные выходы
          • Универсальные входы
          • Диагностика порта
          • Принципы построения
          • Основные понятия
          • Режим подчиненного
          • Режим мастера
            • Блок Чтение (Slave)
            • Блок Чтение переменных
            • Блок Запись (Slave)
            • Блок Запись переменных
            • Работа порта в режиме мастера
            • Работа порта в режиме подчиненного
            • Режим подчиненного
            • Режим мастера
            • Работа с OPC-сервером
              • Настройка опроса переменных панели Z031
              • Настройка опроса переменных контроллера, подключенного к порту RTU панели Z031
              • Переменные ПЗУ шаблона контроллера
              • Переменные ПЗУ сетевых контроллеров
              • Щупы
              • Графическое отображение данных
              • Табличное отображение данных
              • Отладка в устройстве

              © Copyright 2020, Zentec.

              Общие сведения о языке FBD¶

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

              Основные понятия и конструкции языка¶

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

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

              image1

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

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

              image2

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

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

              image3

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

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

              image4

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

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

              image5

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

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

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

              image6

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

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

              image7

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

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

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

              image8

              Рис. 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).

              image9

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

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

              image10

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

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

              © Copyright 2018, JSC “INEUM named after I.S.Bruk”.

              Fbd программа что это

              • Saturn-PLC
              • Модули расширения

              Редактор схем FBD2

              Интегрированная среда разработки «Редактор схем FBD2» является инструментом разработки прикладных программ с использованием языка функциональных диаграмм FBD и предназначена для написания, отладки и записи программ пользователя во внутреннюю память контроллера Saturn-PLC.

              Библиотека предназначена для выполнения программ на языке функциональных диаграмм (FBD) для программируемых логических контроллеров (ПЛК). FBD – один из языков программирования, описанных в международном стандарте IEC 61131-3. Данная реализация не полностью совместима с указанным стандартом, однако большинство его требований реализовано. Подробнее о языке FBD можно прочитать на сайте Wikipedia.

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

              • Широкий набор поддерживаемых операций:
              • логические, арифметические и битовые операции;
              • операции сравнения, вычисления минимума и максимума, абсолютного значения и ограничения значения сигнала;
              • несколько разновидностей триггеров, счетчик импульсов;
              • операции интегрирования и регулирования с обратной связью.
              • Доступ ко всем входам и выходам контроллера из записанной программы
              • Возможность изменения значений уставок при помощи кнопок и экрана контроллера
              • Сохранение текущего состояния схемы при отключении питания
              • Совместная работа нескольких контроллеров, объединенных через интерфейс Ethernet
              • Поддержка чтения и установки значений точек контроллера через протокол Modbus
              • Высокое быстродействие

              При подготовке материала использовались источники:
              http://doczwb.alexeidev.ru/fbd_description.html
              https://sm1820.github.io/beremiz/iec_guide/fbd_guide.html
              https://saturn-plc.ru/index.php/fbd-2

Добавить комментарий