Друзья, подскажите, кто знает. Меняю время с панели в ПЛК154, но тщетно, меняется только год, а все остальное возвращается к прежнему значению. Может чего не понял в работе библиотеки.
VAR
GetTime: CurTimeEx;
TimeAndDate: SystemTimeDate;
Sys_Time: SysTime64;
SETYEAR:R_TRIG;
SETMONTH:R_TRIG;
SETDAY:R_TRIG;
SETHOUR:R_TRIG;
SETMINUTE:R_TRIG;
SETSECOND:R_TRIG;
END_VAR
TimeAndDate.Day :=0;
TimeAndDate.DayOfWeek :=0;
TimeAndDate.dwHighMsec :=0;
TimeAndDate.dwLowMSecs :=0;
TimeAndDate.Milliseconds :=0;
TimeAndDate.Minute :=0;
TimeAndDate.Second :=0;
TimeAndDate.Hour :=0;
TimeAndDate.Year :=0;
TimeAndDate.Month :=0;
Sys_time.ulHigh :=0;
Sys_time.ulLow :=0;
SETYEAR(CLK:=TimeAndDate.Year<>year);
SETMONTH(CLK:=TimeAndDate.Month<>month);
SETDAY(CLK:=TimeAndDate.Day<>day);
SETHOUR(CLK:=TimeAndDate.Hour<>hour);
SETMINUTE(CLK:= TimeAndDate.Minute<>minute);
SETSECOND(CLK:=TimeAndDate.Second<>second);
IF SETYEAR.Q THEN TimeAndDate.Year:=year; year:=0; END_IF
IF SETMONTH.Q THEN TimeAndDate.Month:=month; GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate); month:=0; END_IF
IF SETDAY.Q THEN TimeAndDate.Day:=day; GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate); day:=0; END_IF
IF SETHOUR.Q THEN TimeAndDate.Hour:=hour; GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate); hour:=0; END_IF
IF SETMINUTE.Q THEN TimeAndDate.Minute:=minute; GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate); minute:=0; END_IF
IF SETSECOND.Q THEN TimeAndDate.Second:=second; GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);second:=0; END_IF
GETTIME (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);