ModDiffCalculator — настройка

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Записи
  • #44672
    Andrew123
    Участник

    Настроил так:
    <?xml version=»1.0″ encoding=»utf-8″?>
    <ModDiffCalculator>
    <GeneralOptions>
    <CmdCode />
    </GeneralOptions>
    <Groups>
    <Group active=»true» name=»DiffDiff» periodType=»Custom» customPeriod=»00:01:00″ offset=»00:00:00″ delay=»0″ adjustForDst=»false» recalcDiff=»false» archiveBit=»2″>
    <Item srcCnlNum=»6650″ destCnlNum=»6651″ />
    </Group>
    </Groups>
    </ModDiffCalculator>

    В расчётном канале 6650 есть всегда число, сейчас например 27.
    Записи в логе идут(типа разность расcчитывает):
    2026-08-27 10:50:00 Расчёт разностей для группы «DiffDiff» на моменты времени 27.08.2026 07:49:00 и 27.08.2026 07:50:00
    2026-08-27 10:51:00 Расчёт разностей для группы «DiffDiff» на моменты времени 27.08.2026 07:50:00 и 27.08.2026 07:51:00

    Но в расчётном канале 6651 в отображаемой таблице DataData.tbl всегда пусто, отображается:

    По идее должен отображаться 0

    Подскажите что надо исправить?

    #44673
    Andrew123
    Участник

    Да, в расчётном канале 6650, в таблице, в колонке «текущие» есть всегда значение, сейчас например 27.

    #44674
    manjey73
    Участник

    Диф работает строго на период. Например период 1 час — Диф если не видит записи в этот час, будет считать что там ничего нет. Поэтому и ---

    Короче, например у меня разница суточная, если в 0:00 часов по каким-то причинам запись в БД не произошла (ну например у меня свет выключали), то Диф это пропустит.
    Ну не умеет он искать ближайшее к точке выключения и показывать разницу, например отображая 243,45* — типа звездочкой показать, что данные не строго в это время…

    Возможно и у вас та же ситуация? проверьте по БД утилитами

    #44675
    Andrew123
    Участник

    По идее такой ситуации в конкретном тестовом примере не должна быть,ведь в текущих данных(в колонке текущие данные всегда есть значение) — или это значение записывается в базу только в момент опроса регистров модбаса(тогда эти моменты времени могут очень долго не совпасть с временными точками типа 12.51.00 12.52.00 12.53.00 12.54.00 и так далее) — как на самом деле?

    #44676
    Andrew123
    Участник

    А где взять утилиты чтения файлов dat?

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

    Добрый день!

    А где взять утилиты чтения файлов dat?

    https://rapidscada.net/store/Module/ru/UtilityPack
    https://disk.yandex.ru/d/4_gQVl06Krslgg
    https://disk.yandex.ru/d/E5LmTNzBjj32RA

    Если по настройке модуля остались вопросы, выложите ссылки на скриншоты настроек.

    #44679
    Andrew123
    Участник

    Вопрос всё тот же:

    По идее такой ситуации в конкретном тестовом примере не должна быть, ведь в текущих данных(в колонке текущие данные всегда есть значение) — или это значение записывается в базу только в момент опроса регистров модбаса(тогда эти моменты времени могут очень долго не совпасть с временными точками типа 12.51.00 12.52.00 12.53.00 12.54.00 и так далее) — как на самом деле?

    Файл и настройки и пояснения в первом посте.

    #44680
    manjey73
    Участник

    Вот проверьте утилитой наличие записи и статус.
    Текущие вроде не важно, что показываются.

    #44681
    Andrew123
    Участник

    DatViewer выдаёт по часовому и минутному архиву:
    «Table type 3 not supported by the viewer.»

    Открывает только текущий архив current.dat — там есть данные по каналу 6650.
    По каналу 6651 стоит 0 и статус 0(Значение канала не определено).

    CsvExport.exe — тоже говорит о неподдерживаемом формате файла dat по часовому и минутному архиву.

    • Ответ изменён 14 часов, 55 минут назад пользователем Andrew123.
    • Ответ изменён 14 часов, 53 минуты назад пользователем Andrew123.
    • Ответ изменён 14 часов, 52 минуты назад пользователем Andrew123.
    #44685
    manjey73
    Участник

    Вот раз статус 0, скорее всего Диф ничего не делает.
    Измените формулу так, чтобы она после расчета еще и статус в 1 записала.
    SetData или другую посмотрите

    #44688
    Andrew123
    Участник

    Добавить функцию в поле команда в настройках дифа?

    #44690
    Andrew123
    Участник

    Данные канала 6650 есть, потому что график, вызываемый из таблицы данные показывает.
    А канал 6651 тот же вызов показывает по тем де меткам времени —.
    Когда данные в канале в течении нескольких минут изменяются, то разность должна быть не нулевая — т.е. данные должны быть. Потому где должна быть функция, которая к стати должна устанавливать только статус, потому что сами данные пишет диф.

    #44692
    manjey73
    Участник

    возможно в самом Дифе.
    Покажите скрины (выложите на рабочий файлообменник или через свою русскую почту расшарьте картинку).

    я давно с ним не игрался… Михаил возможно быстрее подскажет.

    #44693
    Andrew123
    Участник

    Картинку чего? Разве настройки дифа мало?
    канал 6650 расчётный, формула: CountPulse(6602) — галки на текущем, минутном, часовом и дневном архиве.
    канал 6651 расчётный, формулы нет, галки на текущем, минутном, часовом и дневном архиве.

    Или что? Галки на минутном и дневном мешают(тогда это ошибка в модуле)?

    • Ответ изменён 13 часов, 36 минут назад пользователем Andrew123.
    • Ответ изменён 13 часов, 36 минут назад пользователем Andrew123.
    • Ответ изменён 13 часов, 35 минут назад пользователем Andrew123.
    #44697
    Andrew123
    Участник

    А разработчик этого модуля может ответить? Ему же это лучше знать что и как!

    Да, если я в поле формула для канала 6651 вставляю SetStat(6651, 1) — то текущее значение всегда становиться равно 1.

    • Ответ изменён 13 часов, 30 минут назад пользователем Andrew123.
Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Для ответа в этой теме необходимо авторизоваться.