Поймать начало часа из драйвера

Стартовая страница Форумы Разработка и интеграция Поймать начало часа из драйвера

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • #20071
    manjey73
    Участник

    Собственно вопрос как поймать в коде драйвера начало часа и сохранить переменную с другим статусом, например архивным.

    1. Сессия драйвера может запуститься в любую минуту после начала часа и вариант
    nowDT.Minute == 1 как в формуле HourBeg тут не проходит
    2. Как при этом сохранить в базу переменную со статусом = 2 учитывая, что Сессия может запуститься в другое время, нежели сохранение в БД.

    То есть недостаточно текущим данным передать статус 2, нужно именно сохранить этот статус.

    #20074
    Romiros
    Участник

    Вопрос непонятен. Если вы запустите драйвер в 3 минуты, нужно сохранить эти данные на 1 минуту?

    #20076
    manjey73
    Участник

    Ну пока вроде получилось сделать установку статуса 2.. Не знаю, насколько это корректно у меня вышло.


    @Romiros
    нет. Суть в чем. Например мы первый раз стартуем драйвер, как определить из его кода необходимость чтения архивов ? какой датой или часом?
    Или например мы перезапускали линию по каким-то причинам?

    Это все в тему, как определить дату и главное необходимость чтения архивов из прибора ?

    Если у нас Коммуникатор работал без остановки и сам прибор отсутствовал на связи пару дней, а если мы ковыряли Scada ? ну например делали обновления и потеряли пару часов?

    в тему «А судьи кто?»
    з.ы. я пока не придумал как и что, вот пробую разные варианты для понимания…

    #20079
    Romiros
    Участник

    Я читаю архивы скады один раз до старта линии и определяю последнюю дату архива и последнюю дату события. Следовательно читаю из прибора на следующие после этих даты.

    #20080
    manjey73
    Участник

    До старта линии это в OnAddedToCommLine ?

    #20082
    Romiros
    Участник

    Да совершенно верно.

    #20084
    Mikhail
    Модератор

    Чтобы поймать начало часа, нужно хранить предыдущее время проверки.
    То есть Вы берёте DateTime.Now и минута, например, оказывается между 0 и 5. Вы считаете что это начало часа. Чтобы не сработать дважды по одному и тому же часу, нужно помнить, в какой час была прошлая проверка.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Вы должны авторизироваться для ответа в этой теме.