Vitaly_Zhidkov

Ответы в темах

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Автор
    Записи
  • Vitaly_Zhidkov
    Участник

    Создал канал с типом дорасчёт.
    Написал в него входную формулу StatusPCh(Val(10051)); Stat(10051).
    Создал и добавил в канал формат, как в примере с двигателем.
    Всё работает.

    Vitaly_Zhidkov
    Участник

    По приведенному примеру написал скрипт

    // Устанавливает значения для перечисления для статуса ПЧ.
    public double StatusPCh(double val)
    {
    switch ((int)val)
    {
    case 0: return 0; // Остановлен
    case 1: return 1; // Запущен
    case 2: return 2; // Значение не используется
    case 3: return 3; // Ожидание
    case 4: return 0; // Остановлен
    case 1280: return 0; // Остановлен
    case 1344: return 0; // Остановлен
    case 1347: return 4; // Вперёд
    case 1368: return 0; // Остановлен
    default: return 0;
    }
    }

    Vitaly_Zhidkov
    Участник

    Ещё один вопрос по этой же теме.

    От частотного преобразователя передаются данные по одному из регистров.
    И здесь значения, которые соответствуют положению частотного преобразователя, могут быть разными.
    1 — Запущен.
    3 — Ожидание.
    0, 4, 1280, 1344, 1368 — Остановлен.
    1347 — Вперёд.

    Как в этом случае отображать на схеме вместо числа соответствующие слова на русском языке?
    Наверное, можно создать канал с дорасчётом, где переменной на выходе будут соответствовать значения:
    0, 4, 1280, 1344, 1368 —> 0
    1 —> 1
    2 —> 2
    3 —> 3
    1347 —> 4

    И потом уже использовать этот канал с дорасчётом, как в предыдущем случае.

    Приведите, пожалуйста, пример создания дорасчёта (скрипта, формулы) для этого случая.

    Vitaly_Zhidkov
    Участник

    Применил указанный способ. Создал свой формат в таблице Форматы. Добавил в канал. Всё работает.

    Vitaly_Zhidkov
    Участник

    Поставил в настройках устройства тип Double вместо Int64. А в таблице каналов убрал в столбце «Тип данных» Integer, оставил это поле пустым. В этом случае входная формула Cnl/10 применяется.
    Спасибо за подсказку.

    Vitaly_Zhidkov
    Участник

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

    Vitaly_Zhidkov
    Участник

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

    Vitaly_Zhidkov
    Участник

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

    Vitaly_Zhidkov
    Участник

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

    Vitaly_Zhidkov
    Участник

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

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)