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

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

    https://drive.google.com/file/d/1C2ozVcTuiKAWSx8ZBvwwz9rp4kwVpm0K/view?usp=sharing

    Вопрос знатокам. Как получить на графике разрыв при отсутствии сигнала от удаленной SCADA? Центральная SCADA получает значения через Бsстрый шлюз с удаленной SCADA. Но при отсутствии сигнала центральная SCADA выводит последнее полученное значение по каналам. Хочется получить визуальный разрыв.
    Второе, не могу получить архивные значения с удаленной базы после восстановления связи. Разрыв по идее должен заполнится.
    На Скрине разрыв получен остановкой центрального сервера.

    • Эта тема была изменена 4 месяца, 2 недели назад от Mikhail.
    #20364
    Romiros
    Участник

    Как получить на графике разрыв при отсутствии сигнала от удаленной SCADA?

    Возможно это задается параметром «Недостоверность при неактивности» в настройках принимающего сервера.

    #20365
    OlegSol
    Участник

    не работает данный параметр записи. Входной канал принимающей по быстрому шлюзу SCADA просто висит при обрывке связи на последнем переданном значении

    #20366
    Romiros
    Участник

    А тип канала Телеизмерение? По истечении заданного времени статус меняется? Возможно он просто приобретает статус 5 и продолжает рисоваться на графике. Может есть смысл использовать в этом канале формулу: Val();Stat()==5?0:Stat()

    #20367
    OlegSol
    Участник

    Да, все каналы идут в статус 5. Я по данному значению и определяю в виртуальном канале наличие связи с удаленной 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,1,5,13 и пр??

    #20368
    Romiros
    Участник

    Посмотрите в Администраторе «Справочники» -> «Типы событий»

    #20369
    OlegSol
    Участник

    Val();Stat()==5?0:Stat() не работает.
    о- это тоже значение на графике.

    Мне нужно что то подобное, помогите ))

    Val(112) ==1 ? Cnl : NULL

    112 канал встает в 0 при 30 сек обрыве связи. КАК дать в каналы на графике -NULL ??

    #20370
    Romiros
    Участник

    return Double.NaN

    Но вообще при статусе 0 должен быть прочерк. Проверьте статусы.

    #20371
    OlegSol
    Участник

    При отсутствии связи статус у каналов, которые получают данные с удаленной SCADA по Быстрому шлюзу встают в 5((

    #20372
    Romiros
    Участник

    Попробуйте эту формулу: CnlStat==5?Double.NaN:Cnl
    Если нужен будет и статус, то: CnlStat==5?Double.NaN:Cnl;CnlStat==5?0:CnlStat

    #20373
    OlegSol
    Участник

    Обе не работают.
    Каналы куда передаются данные с удаленного сервера — мертвые. У них нет никаких линий связи. Просто в них закидывается удаленно значение и все. При этом встает значение переданное и статус 1. При обрыве- остается цифра, статус меняется на 5. Все.
    Единственное, чем я мог сменить статус на ноль это
    Val();Stat()==5? SetStat(101,0):Stat()

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

    #20374
    Romiros
    Участник

    Видимо потому-что значение передается из вне, необходимо запускать дополнительный расчет после получения данных каналом. SetStat выполняется после присвоения значения и статуса тем самым заменяя его. Видимо это единственный вариант.

    #20375
    OlegSol
    Участник

    Почему о после отработки SetStat и сброса статуса на ноль, дальнейшее поступление данных с удаленного сервера не меняют значение статуса на 1

    #20376
    Romiros
    Участник

    Попробуйте так, вроде работает
    Cnl;CnlStat!=5?CnlStat:SetStat(CnlNum,0)

    #20377
    OlegSol
    Участник

    Бесполезно. Спасибо за попытки.

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