Язык 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 (User Functional Block). Алгоритм создания UFB следующий:

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

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

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

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