Язык 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).
Дата добавления: 2015-01-15; просмотров: 8203;