Ляксей
Forum Member / Участник форума
Участник № / Member № 3098
отправлено / posted
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". Подскажите пожалуйста в чем дело?
Сообщения / Posts 47 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Вяткин Н В
Forum Haunter / Завсегдатай форума
Участник № / Member № 1853
отправлено / posted
согласно синтаксису языка между 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
Сообщения / Posts 101 | Из / From: Россия
| IP / IP: IP адрес / IP address |