Просмотр полной версии : Ветвление на FBD
Спорягин Кирилл
17.09.2017, 11:28
Добрый день, форумчане!
Подскажите, как можно организовать ветвление (оператор IF) на FBD?
Например, вот такая простая функция:
FUNCTION SimpleLogic : REAL
VAR_INPUT
bChoose : BOOL;
X : REAL;
Y : REAL;
END_VAR
IF bChoose THEN
SimpleLogic := X * Y;
ELSE
SimpleLogic := X + Y;
END_IF;
Добрый день, форумчане!
Подскажите, как можно организовать ветвление (оператор IF) на FBD?
Например, вот такая простая функция:
FUNCTION SimpleLogic : REAL
VAR_INPUT
bChoose : BOOL;
X : REAL;
Y : REAL;
END_VAR
IF bChoose THEN
SimpleLogic := X * Y;
ELSE
SimpleLogic := X + Y;
END_IF;
Почитайте в справке про SEL.
Спорягин Кирилл
17.09.2017, 11:50
О! Подойдет. Спасибо!
Спорягин Кирилл
17.09.2017, 12:41
Валенок, не беспокойтесь, переходить на FBD я не собираюсь.
Просто появилась специфическая задача.
Осинский Алексей
18.09.2017, 13:12
Валенок, не беспокойтесь, переходить на FBD я не собираюсь.
Просто появилась специфическая задача.
Есть еще вариант: добавить блокам вход, разрешающий работу.
33178
33179
Когда на вход EN подается TRUE - блок работает и на выходах актуальные данные,
когда FALSE -
1) выходы ФБ находятся в последнем состоянии до подачи FALSE, тело ФБ не выполняется;
2) функции не вызываются;
Т.о. Ваша программа выглядела бы так:
33180
Спорягин Кирилл
18.09.2017, 14:35
Вижу. Спасибо.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot