Использование формулы для данных SNMP

Стартовая страница Форумы Понять, как работает ПО Использование формулы для данных SNMP

Помечено: ,

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

    Нужно сделать простой дорасчёт для принимаемого значения тега в RapidSCADA.
    Принимаю значение напряжения батареи от контроллера в виде 271.0. Соответственно, для его использования в системе, вывода на схему нужно это значение умножать на 0.1, чтобы было 27,1 В.

    Изучил документацию по формулам.
    Во входной канал тега поставил галочку «Формула вкл.», в поле «Входная формула» прописал Cnl/10. Вывел значение тега на схему.
    Применил изменения, но ничего не произошло. Формула не сработала.
    Добавил в формулу прибавление: Cnl/10 + 10.
    В этом случае на схеме вместо преобразования тега отображается только то, что я прибавляю, то есть 10.

    Данные от этого контроллера принимаю по SNMP протоколу.

    Решил проверить все те же действия для тега, принимаемого от другого контроллера по протоколу Modbus. В этом случае срабатывают все действия в формуле.

    Для контроллера с протоколом SNMP создал отдельный дорасчётный канал, в который прописал Val(10615)/10+100; Stat(10615). И опять на схему выводится только 100, то есть то, что прибавляю.
    Ни само значение исходного тега, ни его деление на 10 не выводится.

    Почему не до конца работает формула для тега входного значения, принимаемого по SNMP?
    Как это можно исправить или обойти?
    Может быть, я что-то не настроил или требуется лицензия?

    #38681
    manjey73
    Участник

    Предположительно там строка, а не значение. Возможно по этому ?
    тег в SNMP может быть представлен как строковой со всеми вытекающими.

    Каких-то лицензий тут не требуется.

    • Ответ изменён 6 месяцев, 1 неделя назад пользователем manjey73.
    #38683
    manjey73
    Участник

    как вариант, если это Ascii.

    DecodeAscii(Cnl)/10 но может не сработать 🙂

    • Ответ изменён 6 месяцев, 1 неделя назад пользователем manjey73.
    #38685
    a80808
    Участник

    Там точка как десятичный разделитель.

    #38686
    manjey73
    Участник

    ну может у человека английский вариант?
    Если русский и точка, то скорее всего строка.
    Ее надо преобразовать в число правильно и потом поделить на 10.

    #38687
    a80808
    Участник

    Там еще и SNMP…

    #38688
    Vitaly_Zhidkov
    Участник

    От устройства все данные передаются как Integer. Это можно увидеть в таблице MIB и при опросе по SNMPWalk в командной строке.
    При приёме в шаблоне устройства SNMP указываю тип данных Integer, точнее Int64.
    При создании каналов в таблице также для всех для них указываю тип Integer.
    Передача данных от устройства выполняется стабильно.

    #38689
    Vitaly_Zhidkov
    Участник

    Как принтскрины здесь на форуме прикреплять?

    #38690
    Vitaly_Zhidkov
    Участник

    Выложил на файлообменник. Принтскрины по поводу типа данных.
    https://transfiles.ru/gla1i

    #38691
    Vitaly_Zhidkov
    Участник

    Использование формулы DecodeAscii(Cnl)/10 приводит к тому, что веб-интерфейс системы перестает загружаться. То есть система считает, что это ошибка.

    #38692
    Vitaly_Zhidkov
    Участник

    По возможности протестируйте у себя прием данных по SNMP и применение формул к ним. Может быть, это связано именно с типом данных?

    #38693
    manjey73
    Участник

    Если Integer то должно работать деление штатно вроде Cnl/10

    #38694
    manjey73
    Участник

    А уберите Integer, просто пусто оставьте. И в Драйвере SNMP выбрать double
    Интересно, как мы у себя протестируем?

    • Ответ изменён 6 месяцев, 1 неделя назад пользователем manjey73.
    #38696
    manjey73
    Участник

    Расход Топлива и Температура двигателя, че у вас там ?

    #38697
    a80808
    Участник

    Может там Integer на входе в драйвер, а после него? Вариант
    (double)Cnl/10 не проходит?

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