Сообщение от
capzap
Вы ни проект, даже скрин не предоставили как у Вас это всё выглядит. В доках, да и в примере на ST четко прописано, во все переменные ставим нули -> выполняем функцию -> получаем текущее время, если хотим записать: то вставляем нужное значение в необходимую переменную, выполняем функцию и измененное значение должно установить часы и дату в соответствии с изменениями
При установке значений часов нужно все поля заполнять и часы и минуты и секунды, иначе если заполнить только минуты, например, а часы и секунды оставить нулевыми, то время не установится.
Вот так
Код:
IF set_HH OR set_MM OR set_SS THEN
IF set_HH THEN (*Если set_HH - истина, то менять только часы*)
TimeAndDate.Minute:=HMI_MM; (*Оставляем текущие минуты*)
TimeAndDate.Second:=HMI_SS; (*Оставляем текущие секунды*)
TimeAndDate.Hour:=HH; (*а часы пишем новые*)
ELSIF set_MM THEN (*Если set_MM - истина, то менять только минуты*)
TimeAndDate.Minute:=MM; (*минуты пишем новые*)
TimeAndDate.Second:=HMI_SS; (*Оставляем текущие секунды*)
TimeAndDate.Hour:=HMI_HH; (*Оставляем текущие часы*)
ELSIF set_SS THEN (*Если set_SS - истина, то менять только секунды*)
TimeAndDate.Minute:=HMI_MM; (*Оставляем текущие минуты*)
TimeAndDate.Second:=SS; (*секунды пишем новые*)
TimeAndDate.Hour:=HMI_HH; (*Оставляем текущие часы*)
END_IF
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
set_HH:=set_MM:=set_SS:=FALSE;
END_IF