Сообщение от
starmos
Я не могу заставить её работать.
Сделал строго все как в описании на библиотеку:
- создал
SysTime: SysTime64;
Data_Time: SystemTimeDate;
- присвоил 0 в соответствующие поля
- вызвал блок CurTimeEx
в итоге у меня в переменных относящихся к SysTime данные меняются, а собственно время и дата по 0-м. Записать свои значения тоже не удается. Что нужно еще?
И хотелось бы отметить, что наличие видео уроков и примеров, не отменяет наличие внятной документации. Потому что отлаживаться нередко приходится на объекте и если у меня там ПЛК110, то куда мне грузить пример для ПЛК150 например? И поскольку Интернет нередко в техпомещениях не очень, то и наблюдать как автор урока бессмысленно возит мышью по экрану и пытаться на смартфоне увидеть что он там полезного делает = тоже не айс. Гораздо правильнее качнуть текстовый файл документации и спокойно разобраться.
Вот делал когда-то для установки времени ПЛК из панели СП270
Код:
PROGRAM PLC_PRG
VAR
GetTime: CurTimeEx;
TimeAndDate: SystemTimeDate;
Sys_Time: SysTime64;
END_VAR
imeAndDate.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;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);(*Текущее время*)
(*--------------------------------------------------------------*)
HMI_Y:=TimeAndDate.Year;
HMI_M:=TimeAndDate.Month;
HMI_D:=TimeAndDate.Day;
HMI_HH:=TimeAndDate.Hour;
HMI_MM:=TimeAndDate.Minute;
HMI_SS:=TimeAndDate.Second;
(*--------------------------------------------------------------*)
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
(*--------------------------------------------------------------*)
IF set_date THEN (*Если set_date - истина, то менять дату*)
TimeAndDate.Day:=D;
TimeAndDate.Month:=M;
TimeAndDate.Year:=Y;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
set_date:=FALSE;
END_IF