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

Тема: СПК207. Системное время. Функции "GetDateAndTime" и "SetDateAndTime". Ошибка 5802.

  1. #1

    По умолчанию СПК207. Системное время. Функции "GetDateAndTime" и "SetDateAndTime". Ошибка 5802.

    Имею устройство СПК207.

    Задача состоит в получении и в установке системного времени.

    Работаю с функциями "GetDateAndTime" и "SetDateAndTime".

    В ходе отладки программы выяснилось, что данные функции возвращают ошибку 5802 (этот код отсутствует в описании возможных кодов ошибок для данных функций) и не работают как должны.

    Несколько часов "танцев с бубном" ни к чему не привели. Оказалось:

    РЕШЕНИЕ ПРОБЛЕМЫ: После передергивания питания панели СПК207 все заработало идеально.

  2. #2

    По умолчанию "GetDateAndTime"

    Цитата Сообщение от Yarst Посмотреть сообщение
    Имею устройство СПК207.

    Задача состоит в получении и в установке системного времени.

    Работаю с функциями "GetDateAndTime" и "SetDateAndTime".

    В ходе отладки программы выяснилось, что данные функции возвращают ошибку 5802 (этот код отсутствует в описании возможных кодов ошибок для данных функций) и не работают как должны.

    Несколько часов "танцев с бубном" ни к чему не привели. Оказалось:

    РЕШЕНИЕ ПРОБЛЕМЫ: После передергивания питания панели СПК207 все заработало идеально.
    Я к этой функции обращаюсь несколько раз в одном проходе программы. И получается при первом обращении она выдает мне 1970 год с нулями. При повторном обращении - системное время, потом снова ноль и потом системное время, цикл может повторяться до бесконечности. У меня сложилось мнение что она слишком медленно работает и не успевает считать время. Ставил цикл while пока функция в .Basy... Панель наглухо зависает. Горит проект, помогите пожалуйста.

  3. #3

    По умолчанию

    Я к этой функции обращаюсь несколько раз в одном проходе программы.
    Так делать не стоит (если вы действительно делаете именно это).

    Ознакомьтесь с документом СПК. Системное время.

  4. #4

    По умолчанию

    Если честно мне немного непонятно, для чего переменную DT рвать на год, месяц день и т.д. и потом опять склеивать в DT??? Почему сразу нельзя её использовать?

  5. #5

    По умолчанию

    Закольцевал
    FUNCTION strDateTime : STRING
    VAR_INPUT
    END_VAR
    VAR
    SysTimeT;
    END_VAR

    GDaT(xExecute:=NOT GDaT.xDone);
    SysTime:=GDaT.dtDateAndTime;
    Sys_Time:=DELETE(DT_TO_STRING(SysTime),3,1);
    GDaT(xExecute:= FALSE);
    strDateTime:=Sys_Time;

    Но не помогло. Все равно один проход нули потом сист время...

  6. #6

    По умолчанию

    VAR
    SysTime: DT;
    END_VAR

  7. #7

  8. #8

    По умолчанию

    строку GDaT(xExecute:= FALSE); удалил, определилась положительная динамикаIMG_0523.JPGIMG_0523.JPG

  9. #9

    По умолчанию

    через три пропуска берет верное имя. Мне не понятно почему только он вместо нулей не ставит предыдущее. Попробую сравнивать с нулевым, и если равно брать старое.
    Спасибо за вектор в правильном направлении!!!

  10. #10

    По умолчанию

    Цитата Сообщение от Zeon Посмотреть сообщение
    строку GDaT(xExecute:= FALSE); удалил, определилась положительная динамикаIMG_0523.JPGIMG_0523.JPG
    Рекомендую пример 11.2.5 из документа СПК. Визуализация - он как раз соответствует вашей задаче.

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

Похожие темы

  1. Ответов: 49
    Последнее сообщение: 06.08.2015, 14:38
  2. Ответов: 20
    Последнее сообщение: 15.04.2015, 11:02
  3. Ответов: 7
    Последнее сообщение: 27.02.2013, 19:08
  4. как выбрать управление "прямое" или "обратное"
    от maxmore в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2010, 10:13

Ваши права

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