Интересно, разрешено ли стандартом (IEC 1131-3) смешивать разные типы данных в выражении.
Пример
VAR A : BOOL;
B : INT;
(* ... *)
IF (B AND C) THEN
...
END_IF
Интересно, разрешено ли стандартом (IEC 1131-3) смешивать разные типы данных в выражении.
Пример
VAR A : BOOL;
B : INT;
(* ... *)
IF (B AND C) THEN
...
END_IF
Вы должны использовать функции явного преобразования типов при преобразовании «вниз» в типы. Преобразование «вверх» выполняется неявно.
VAR A : BOOL;
B : INT;
(* ... *)
IF (INT_TO_BOOL(B) AND C) THEN
...
END_IF
Существуют все формы преобразования этих типов в виде TYPEA_TO_TYPEB().
Он не будет компилироваться. Преобразование типов необходимо, поскольку ST является строгим типом, как Pascal.