А вот так можно использовать функцию в ST?
Тут применены два оператора return внутри условия if.
Код:
FUNCTION myFunc: BOOL
VAR
a, b : INT;
END_VAR
...
... Некие вычисления а и b
...
IF a > b THEN myFunc:=FALSE; RETURN; END_IF
IF a < b THEN myFunc:=FALSE; RETURN; END_IF
myFunc:=TRUE; // Если условия не сработали, то возвращает TRUE
(конец функции. Тут автоматический выход из неё)
Эта функция возвращает false, если a и b неравны.
Она возвращает true, если a и b равны.
Правильна ли такая конструкция?
Да, вполне обычное применение, на 2-х return можно и не останавливатся.