Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: SysLibTime

  1. #1

    По умолчанию SysLibTime

    Про библиотеку 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, происходило считивание времени, а не установка нового значения времени.

  2. #2

    По умолчанию

    Год, месяц,день, день недели,час,минут, секунду - обнулять,
    миллискунды не не важно

  3. #3

    По умолчанию

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

  4. #4

  5. #5

    По умолчанию

    Код:
    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 - нормальное текущее время*)
    Вложения Вложения
    • Тип файла: zip NoTime.zip (11.7 Кб, Просмотров: 196)
    Последний раз редактировалось IceFlame; 06.04.2010 в 09:12.

  6. #6

    По умолчанию

    SystemTimeDate_TO_DT - а где Вы эту функцию взяли?

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

    от плк63. а у вас какой плк?

  9. #9

    По умолчанию

    естественно плк63.

  10. #10

    По умолчанию

    Понадобилось изменять системное время в ПЛК-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);


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

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •