logo
Всё по МСА доц

3.3 Язык Functional Block Diagrams (fbd)

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

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

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

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

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

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

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

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

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

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

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

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

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

Наименование

Обозначение

Описание

1. Функции двоичного типа

NOT

Логическое отрицание

AND

Логическая конъюнкция

OR

Логическая дизъюнкция

XOR

Исключающее ИЛИ

SET

Присвоение переменной единицы

RESET

Обнуление переменной

2. Функции управления

RETURN

Возврат из подпрограммы

GOTO

Безусловный переход

CALL

Вызов подпрограммы

3. Арифметические функции

ADD

Сложение

SUB

Вычитание

DIV

Деление

MUL

Умножение

4. Функции сравнения

=

Равно

< >

Не равно

>

Больше

<

Меньше

=>

Больше или равно

<=

Меньше или равно

5. Математические функции

ABS

Модуль

EXPT

Экспонента

LOG

Логарифм

SQRT

Корень

Продолжение Таблицы 3.4.

Наименование

Обозначение

Описание

6. Тригонометрические функции

ACOS

Арккосинус

ASIN

Арксинус

ATAN

Арктангенс

COS

Косинус

SIN

Синус

TAN

Тангенс

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

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

Выполняемая операция

Изображение

Описание

Обнаружение перепада сигнала In

Двоичная переменная Outпримет значениеTRUEтогда и только тогда, когда переменнаяInизменит свое состояние

П-регулятор

Рассогласование между текущим значением величины Valи заданиемRefпомножается на коэффициентKmи используется в качестве управляющего воздействия

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

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

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

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

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