Разрешено ли смешивание типов в ST (Structured Text)

Интересно, разрешено ли стандартом (IEC 1131-3) смешивать разные типы данных в выражении.

Пример

VAR A : BOOL;
    B : INT;

(* ... *)

IF (B AND C) THEN
  ...
END_IF

person AndersK    schedule 13.08.2013    source источник


Ответы (2)


Вы должны использовать функции явного преобразования типов при преобразовании «вниз» в типы. Преобразование «вверх» выполняется неявно.

VAR A : BOOL;
    B : INT;
(* ... *)
IF (INT_TO_BOOL(B) AND C) THEN
  ...
END_IF

Существуют все формы преобразования этих типов в виде TYPEA_TO_TYPEB().

person Owen    schedule 21.08.2013

Он не будет компилироваться. Преобразование типов необходимо, поскольку ST является строгим типом, как Pascal.

person avra    schedule 13.08.2013