Я делаю примерно так:
Owen1.jpg
Код:function_block Edit var_input inValue : real; // Входное значение параметра delta : real; // Дельта при изменении btnUp, btnDn, btnOK : bool; // Кнопки end_var var_output nPar : udint; // Номер текущего параметра outValue : real; // Выходное значение параметра bSave : bool; // Сигнал на запись в параметр end_var var rtUp, rtDn, rtOK: SYS.RTRIG; // Фиксация нажатия кнопок bMode : bool; // Переключатель параметр/значение end_var outValue := inValue; rtUp(I:=btnUp); if rtUp.Q then if bMode then outValue := outValue + delta; // Инкремент значения else nPar := nPar + 1; // Инкремент номера параметра end_if end_if rtDn(I:=btnDn); if rtDn.Q then if bMode then outValue := outValue - delta; // Декремент значения else nPar := nPar - 1; // Декремент номера параметра end_if end_if rtOK(I:=btnOK); if rtOK.Q then if bMode then bsave := true; end_if // Фиксируем значение перед сменой режима bMode := not bMode; // Меняем режим else bSave := false; end_if end_function_block


Ответить с цитированием
