Функции же можно в условия добавлять. Если я правильно понимаю, это и есть ветвление...
Вот такой код прекрасно работает и по идее выполняется только одна ветвь???
Код:
function fSel: udint; //имя функции и тип данных выхода
    var_input //объявление входных переменных
        IN1, IN2 : udint; //входная переменная с типом данных bool
        sel:bool;
    end_var
    var //объявление локальных переменных
        localVariable : real := 13.3; //локальная переменная с типом данных real и начальным значением 13.3
    end_var
   if sel then
   fSel:= function1(IN1);  
 else
    fSel:= function2(IN2);  
   end_if
 end_function
ветвь.jpg