Отсутствие данных

Просмотр 15 сообщений - с 16 по 30 (из 47 всего)
  • Автор
    Сообщения
  • #20378
    Romiros
    Участник

    Странно. У меня последняя формула работает. Правда я пользуюсь генератором, но по идее RapidGate через то же API данные отправляет.

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

    Если не поступает значение по входному каналу, то его статус должен стать недостоверным через время, указанное в настройках Сервера. Проверьте, происходит ли это?

    Но при недостоверном значении разрыв на графике не появится. С помощью формулы можно заменить недостоверный статус на неопределённый.

    По поводу докачки данных после восстаовления связи, нужно смотреть логи Rapid Gate. Там довольно подробно видно состояние.

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

    Cnl; CnlStat == 5 ? 0 : CnlStat
    это если канал не дорасчётный

    • Этот ответ был изменен 2 года, 9 месяцев назад от Mikhail.
    #20383
    Mikhail
    Модератор

    Указанная формула не работает, к сожалению. Я подумаю, что можно сделать в следующей версии плагина графиков.

    #20384
    OlegSol
    Участник

    Михаил, в продолжение :
    Отсутствовала связь с удаленной SCADA всю ночь. Центральнsq сервер пишет себе последние показания по всем входным каналам. Утром при восстановлении данные с удаленного сервера Быстрый шлюз не перебрасывает. На центральном сервере висят неверные показания. Все же видимо синхронизация архивов происходит, если не центральном сервере есть неопределенные значения каналов при отсутствии связи. Не дорабатывает Быстрый шлюз))

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

    Это нужно проверять на живой системе, одновременно анализируя журналы.
    В настройках шлюза можно указать номер канала управления (по умолчанию он = 0). Тогда Вы сможете отправлять команды на принудительный запуск экспорта. Пример команды внизу страницы.

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

    Попробуйте, будет ли работать экспорт по команде.

    #20412
    OlegSol
    Участник

    Прерывание графика при отсутствии связи с удаленной SCAFA ( Быстрый шлюз):
    1.Создаем виртуальный вх.канал Х на центр.SCADA с функцией типа

    public double MyFunc2()
    {
    int alarmCnt = 0;

    for (int cnlNum = 101; cnlNum <= 110; cnlNum++)
    {
    if (Stat(cnlNum) == 5 ^ Stat(cnlNum) == 0)
    alarmCnt++;

    if (alarmCnt == 3)
    return 0; // Нет
    }

    return 1; // Есть

    }

    При отсутствии связи канал встает в 0

    2. С помощью модуля Автоматического управления, завязанным на данном канале Х, передаем в канал управления Y,0 или 1 соответственно данным вх.канала Х

    3. В канале управления Y пишем формулу
    Cnl==0? SetStat(Х,0):SetStat(Х,1)

    График вх. канала Х прерывается

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

    В чём общая задача описанного выше?

    #20416
    manjey73
    Участник

    Полагаю все в том же, при пропадании связи между RapidGate и сервером создавать аналог Invalidate Cure Data для каналов, в которые передает данные RapidGate.

    #20417
    OlegSol
    Участник

    Кстати, подскажите, как в формуле

    Cnl==0? SetStat(101,0):SetStat(101,1)

    передать значение множеству каналов

    #20418
    a80808
    Участник

    ИМХО писать внешнюю формулу где в передаваемых аргументах номера каналов, а в канале писать формулу вызова этой формулы с перечнем каналов

    #20419
    OlegSol
    Участник

    ИМХО, для просто Юзеров пример формулы о Гуру можно? для логического разбора и начала понимания языка C#.

    #20420
    manjey73
    Участник

    Вы хотите по значению одного канала изменить статусы нескольким каналам?
    При этом количество каналов неизвестно?

    #20421
    Romiros
    Участник

    Как-то наворочено слишком. Зачем модуль автоуправления? В дорасчетном канале создайте формулу проверки статуса и запускайте из нее SetStat нужным каналам.

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