Цитата Сообщение от 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