PDA

Просмотр полной версии : SysLibTime



Chupakabra
08.02.2007, 17:21
Про библиотеку SysLibTime

Получение системного времени:
Возьмем конструкции «TimeAndDate» и «Sys_Time» - запишем в них нули:
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;

Затем, когда конструкции равны нулю, поставим их на вход-выход функционального блока CurTimeEx:
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
В последствии конструкция «Sys_Time» и «TimeAndDate» примут значения времени, даты и системного цикла.

Интересует какой минимальный набор элементов структуры TimeAndDate: SystemTimeDate нужно обнулять чтобы при вызове экземпляра функционального блока CurTimeEx, происходило считивание времени, а не установка нового значения времени.

Малышев Олег
08.02.2007, 18:25
Год, месяц,день, день недели,час,минут, секунду - обнулять,
миллискунды не не важно

IceFlame
05.04.2010, 17:08
Как преобразовать SystemTimeDate во что-либо другое? SystemTimeDate_TO_DT не желает преобразовывать время в DWORD (все время получается 0), а других функций я что-то и не нашел.

Филоненко Владислав
05.04.2010, 17:43
проект в студию

IceFlame
06.04.2010, 09:09
PROGRAM PLC_PRG
VAR
DTNow: SystemTimeDate;
STNow: SysTime64;
GetCurrentTime: CurTimeEx;
PackedTime: DWORD;
END_VAR


(*Обнуляем, чтобы получить тек.время*)
DTNow.Year := 0;
DTNow.Month := 0;
DTNow.Day := 0;
DTNow.Hour := 0;
DTNow.Minute := 0;
DTNow.Second := 0;
DTNow.DayOfWeek := 0;
STNow.ulHigh := 0;
STNow.ulLow := 0;
(*получаем текущее время*)
GetCurrentTime(SystemTime:=STNow , TimeDate:=DTNow );
(*Преобразуем в DWORD*)
PackedTime := SystemTimeDate_TO_DT(DTNow);
(*И в PackedTime всегда 0, хотя в DTNow - нормальное текущее время*)

Филоненко Владислав
06.04.2010, 15:09
SystemTimeDate_TO_DT - а где Вы эту функцию взяли?

IceFlame
06.04.2010, 15:29
Owen_specific_tools.lib от ПЛК63.
Или она работает только для DWORD'ов в меню конфигурации?
В общем я уже написал свою функцию для перевода SystemTimeDate в DT, тем самым решив проблему.

Филоненко Владислав
06.04.2010, 16:47
от плк63. а у вас какой плк?

IceFlame
07.04.2010, 09:17
естественно плк63.

alexx12
09.10.2018, 16:38
Понадобилось изменять системное время в ПЛК-63. Использую такую конструкцию:
TimeAndDate.Hour := chas;
TimeAndDate.Minute := mint;
TimeAndDate.Second:=33;
TimeAndDate.Month:=10;
TimeAndDate.Day:=9;
TimeAndDate.Year:=2018;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

Всё меняется кроме секунд. Как изменить секунды?

A.Simonov
11.10.2018, 14:26
Понадобилось изменять системное время в ПЛК-63. Использую такую конструкцию:
TimeAndDate.Hour := chas;
TimeAndDate.Minute := mint;
TimeAndDate.Second:=33;
TimeAndDate.Month:=10;
TimeAndDate.Day:=9;
TimeAndDate.Year:=2018;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

Всё меняется кроме секунд. Как изменить секунды?

Попробуйте этот пример.
http://kipshop.ru/Primeri/Samples_plc1xx/Samples/06_SysLibTime.zip

Если это не поможет, то высылайте Ваш проект.