Отсечь некорректные значения

Стартовая страница Форумы Понять, как работает ПО Отсечь некорректные значения

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

    Можно. Заведите отдельную тему для обсуждения данного вопроса.
    Некорректные значения отсекаются в помощью формулы входного канала, которая делает проверку. Также в отдельной теме можем обсудить подробнее.

    Завожу отдельную тему.

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

    Напомните, вопрос.

    #18339
    evg
    Участник

    Напомните, вопрос.

    И ещё тогда такой вопрос, у меня датчики некоторые на предприятии, адекватно не работают, значения так же запредельно зашкаливающиеся, но график на них грузится — можно ли как-то установить так чтобы, выше определенного значения Скада не фиксировала эти значения. https://ibb.co/tqSF0Xz

    Извините много работы.

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

    Формула для входного канала может быть такой:
    Cnl > 1000 ? 1000 : Cnl или
    Cnl > 1000 ? Val() : Cnl
    Допустимые границы можно определить как строковые константы.

    #18350
    evg
    Участник

    Спасибо, получилось. А можно поставить, что-та вроде «1000+» ?

    #18352
    evg
    Участник

    И можно сделать так чтобы отсекало не только завышенные, но и заниженные значения? Потому что у меня входной канал бывает прыгает от «3кк» до «-3кк».

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

    Тогда лучше вынести формулу в таблицу Формулы, чтобы сделать более сложную проверку.

    #18528
    evg
    Участник

    Тогда лучше вынести формулу в таблицу Формулы, чтобы сделать более сложную проверку.

    Сделал так. Вроде работает.
    public double _CnlCh(double i)
    {
    double valueCh = 0;
    if(i > 999)
    {
    valueCh = 999;
    }
    if(i < -999)
    {
    valueCh = -999;
    }
    return valueCh;

    }

    • Этот ответ был изменен 3 года, 1 месяц назад от evg.
    #18530
    evg
    Участник

    а нет показалось..

    #18533
    evg
    Участник

    Переделал формулу:

    public double _CnlCh(int i)
    {
    double ChangeV = Val(CnlNum);
    if(Val(i) > 999)
    {
    ChangeV = 999;
    }
    if(Val(i) < -999)
    {
    ChangeV = -999;
    }
    return ChangeV;
    }

    — Теперь вроде правильно =)

    #18534
    Romiros
    Участник

    Cnl>999?999:Cnl<-999?-999:Cnl

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