This is topic Bool не работает, только REAL in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000495.html

Posted by Ляксей (Участник № / Member № 3098) on :
 
PROGRAM
VAR_INPUT a : BOOL; END_VAR
VAR_OUTPUT b : REAL; END_VAR

if a == 1 then
b = 1;
end_if;

END_PROGRAM

Конструкция не работает. Выдает "Неверный аргумент операции". если переменной "А" задать тип "REAL", то все работает. А нужен "BOOL". Подскажите пожалуйста в чем дело?
 
Posted by Вяткин Н В (Участник № / Member № 1853) on :
 
согласно синтаксису языка между if и then
должно стоять булевское выражение и если оно истины то выполняется то, что после then.
В Вашем случае а уже булевское, поэтому конструкция должна быть такая:

PROGRAM
VAR_INPUT a : BOOL; END_VAR
VAR_OUTPUT b : REAL; END_VAR
if ( NOT a ) then
b = 1;
end_if;

END_PROGRAM

NOT появилось из за того, что по условию, если а ложь, то выполнять то, что после then
p.s. БУЛЕВСКИЕ ВЫРАЖЕНИЯ(ПЕРЕМЕННЫЕ) МОГУТ РАЗДЕЛЯТЬСЯ AND или OR, и им могут предшествовать NOT
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2