Показано с 1 по 9 из 9

Тема: Не изменяется время программно через SysLibTime

  1. #1

    Question Не изменяется время программно через SysLibTime

    Добрый день.
    Использую библиотеку SysLibTime для считывания текущего времени. При выключении контроллера хочу синхронизировать текущее время с временем из скады. Пользуюсь примером овена. Запись в структуру проходит, но само время не изменяется.

    Вот код в программе, которая выполняется при выключении питания.

    Код:
    TimeAndDate.DayOfWeek :=0;
    TimeAndDate.dwHighMsec :=0;
    TimeAndDate.dwLowMSecs :=0;
    TimeAndDate.Milliseconds :=0;
    
    TimeAndDate.Year :=0;
    TimeAndDate.Month :=0;
    Sys_time.ulHigh :=0;
    Sys_time.ulLow :=0;
    
    
    TimeAndDate.Hour :=ctHour_mod;
    TimeAndDate.Minute :=ctMin_mod;
    TimeAndDate.Second :=ctSec_mod;
    
    GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
    На скриншоте видно, что время в структуру пишется, но текущее время не изменяется. В чем может быть проблема? Контроллер ПЛК100

    UPD. Решено. Для записи времени надо вначале установить не только время но и дату. После этого запись.
    Изображения Изображения
    Последний раз редактировалось Гурков Михаил; 16.01.2020 в 13:07.

  2. #2

    По умолчанию

    чтобы вычитать время нужно обнулить структуру перед вызовом блока гет тайм. если любой поле структуры не равно нулю будет производиться запись времени через этот блок. вы таким кодом постоянно пишите указанное вами время в часы ПЛК

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    а что значит при включении питания. На момент включения скада уже записала свое время в регистры?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

    По умолчанию

    Цитата Сообщение от Трофимов Артем Посмотреть сообщение
    чтобы вычитать время нужно обнулить структуру перед вызовом блока гет тайм. если любой поле структуры не равно нулю будет производиться запись времени через этот блок. вы таким кодом постоянно пишите указанное вами время в часы ПЛК
    Я пробовал с обнулением остальных регистров (как в файле примера) - результат тот же. Указанная программа выполняется единожды по падению сигнала power плк. Время я не вычитаю, а записываю

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а что значит при включении питания. На момент включения скада уже записала свое время в регистры?
    Код выполняется при ВЫключении питания

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от Гурков Михаил Посмотреть сообщение
    Код выполняется при ВЫключении питания
    ну ок, во время работы без выключения питания, время записывается?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну ок, во время работы без выключения питания, время записывается?
    нет. на скриншоте питание включено

  8. #8

  9. #9

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте задать значения для года/месяца/дня.
    Метка времени с нулевыми значениями этих разрядов вероятно считается контроллером некорректной.
    Помогло. Необходимо для записи устанавливать время и дату полностью. Только тогда происходит запись. В инструкциях это не указано.

Похожие темы

  1. МДВВ не изменяется конфигурация
    от bobpol в разделе Мх110
    Ответов: 2
    Последнее сообщение: 28.12.2017, 23:05
  2. SysLibTime выдает неправильное время.
    от Barabus в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 09.01.2016, 16:30
  3. Ответов: 2
    Последнее сообщение: 21.03.2014, 20:50
  4. Ответов: 0
    Последнее сообщение: 21.05.2012, 13:39
  5. установить время на плк через сп270
    от vlkv в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 27.04.2011, 13:46

Ваши права

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