Цитата Сообщение от Andrey G Посмотреть сообщение
Добрый день,

Приведенный ниже код почему то возвращает 0 или 1 в зависимости от значения inputVariable
Если убрать оба exit; то возвращает как ожидается - 55 всегда
Такое ощущение что exit; неправильно работает внутри case of
может кто сталкивался?
версия 1.23.301.0

Код:
function function1: udint; 
    var_input 
        inputVariable : bool; 
    end_var
    var 
        localVariable : udint := 0; 
    end_var
    repeat

        case bool_to_udint(inputVariable) of
        0:
          localVariable := 55;
          exit;
        1:
          localVariable := 55;
          exit;          
      end_case
    until true
    end_repeat
    
    function1 := localVariable;
    
end_function
Поддержка отписала что проблема действительно в компиляторе и ее когда-нибудь починят.