Раз пошла такая пьянка то тоже выложу свое.
Принципиальным считаю имена. Одно имя - одно поведение для портаций туды-сюды
Лишних полей не люблю
Запись без уступов терпеть не могу
Код:function_block TP //полный эквивалент Кодесис/Standart/TP с ТЕМ ЖЕ дебильным мерцанием при PT = 0 IN = TRUE var_input //описание полей - см справка Кодесис IN: bool; PT: udint; //мс end_var var_output Q : bool; ET: udint; //мс //++ к Кодесис/Standart/TP REM: udint; //мс, оставшееся время работы end_var var StartTime: time; end_var if Q then ET := time_to_udint(get_time() - StartTime); if ET >= PT then ET := PT; end_if Q := ET < PT; REM := PT - ET; elsif not IN then ET := 0; REM := PT; elsif ET = 0 then StartTime := get_time(); Q := true; end_if end_function_block




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