Ad Widget

Collapse

Помогите с триггером

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ists
    Junior Member
    • Apr 2013
    • 15

    #1

    Помогите с триггером

    Снимаю со свитчей доступа значения уровней сигналов. Данные получаю вида 0.2983 итп.
    Хочу составить триггер на условие если значение получено меньше чем 0.0190 то должна срабытывать проблема, если получаю данные больше чем 0.0200 то состояние меняется на ОК.

    Почитав документацию у меня родилось

    ({TRIGGER.VALUE}=1&{DGS3120_Template:ddmRxpower.1. last(0)}<0.0190)|
    ({TRIGGER.VALUE}=0&{DGS3120_Template:ddmRxpower.1. last(0)}>0.0200)


    Но пишет "Некорректное выражение триггера"

    Хотя если проверять по отдельности все работает корректно, ошибок не пишет.
    Может кто подскажет как правильно написать выражение?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Пробел там перед last что делает?
    И выражение у вас не правильное. Это выражение суть условие, а не дышло, вычислите значение вашего выражения для разных значений rxpower на бумажке. Да и, trigger.value=1 это проблема, короче у вас там с выражением совсем беда.

    Comment

    • ists
      Junior Member
      • Apr 2013
      • 15

      #3
      Originally posted by Jimson
      Пробел там перед last что делает?
      И выражение у вас не правильное. Это выражение суть условие, а не дышло, вычислите значение вашего выражения для разных значений rxpower на бумажке. Да и, trigger.value=1 это проблема, короче у вас там с выражением совсем беда.
      Пробел убрал
      Я собираю данные по snmp. Получаю вида:
      iso.3.6.1.4.1.171.12.72.2.1.1.1.6.22 = STRING: "0.1604"

      Насчет trigger.value=1. Для меня это проблема если мои последние полученные данные меньше чем 0.0190. И "ОК" если они стали больше 0.0200.

      Пожалуйста не подскажите тогда пример того как правильно в таком случае составить?

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #4
        Originally posted by ists
        Пробел убрал
        И?
        Originally posted by ists
        Получаю вида: iso.3.6.1.4.1.171.12.72.2.1.1.1.6.22 = STRING: "0.1604"
        Хорошо. А к вопросу о триггере это какое имеет отношение?

        Originally posted by ists
        Пожалуйста не подскажите тогда пример того как правильно в таком случае составить?
        Вы должны вычислить значение триггера целиком. Гистерезис это не два условия где каждое из частей "задает условие переключения в противоположное состояние" - то что написано у вас. Это одно условие, если оно истинно то триггер переключится/останется в состояние ПРОБЛЕМА, если условие станет ложным то триггер будет в состоянии ОК.
        При этом trigger.value это значение выражения, т.е. 0 это ложно, а 1 это истина, отсюда следует что value=0 это "триггер находится в состоянии ОК", а value=1 это "триггер находится в состоянии ПРОБЛЕМА". Воспринимайте условие триггера как условие загорания красного табло "авария", а не как описание допустимых границ/значений.

        (trigger.value=0&item.last<0.019) | (trigger.value=1&item.last<0.02)

        Вы задали вопрос про простейший гистерезис, пример которого приведен в документации. Почему вы решили не использовать этот пример из документации?

        Comment

        Working...