function fClockWeek: bool; // Недельный таймер var_input Enable: bool; // Включение таймера UT:udint; // Время текущее в формате UnixTime On_h:udint; // Время включения, часы On_m:udint; // Время включения, минуты Off_h:udint; // Время выключения, часы Off_m:udint; // Время выключения, минуты bm_WeekDay:udint; // Выбор дней недели, битовая маска (бит_№1=Пн., бит_№2=Вт... бит_№7=Вс) end_var var Son,Soff,Scur: udint; cur_d:udint; end_var //PRG Son:= On_h*3600 + On_m*60; Soff:= Off_h*3600 + Off_m*60; Scur:=UT mod 86400; cur_d:= fUT_to_wDay(UT); // Вызов функции fUT_to_wDay "Определение дня недели из времени в формате UnixTime" fClockWeek:= False; if Enable then Enable:= bm_WeekDay= 0; bm_WeekDay :=shr( bm_WeekDay, cur_d); Enable:= Enable or bm_WeekDay.0; if Enable then if Son>Soff then fClockWeek:=Scur>Son or ScurSon and Scur