Подстановка значения в переменную

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

    Здравствуйте, подскажите как реализовать: Есть виртуальная переменная(входной канал) «Температура». На опрашиваемом устройстве есть 4-е AI входа. Нужно чтобы значение выбранного из списка AI подставлялось в переменную «Температура».

    • Эта тема была изменена 1 год, 6 месяцев назад от Mikhail.
    #25305
    Mikhail
    Модератор

    Добрый день!
    Канал должен быть дорасчётного типа. Также понадобится канал, который будет хранить выбранный номер переменной.

    Формула для выбора будет примерно такая:

    public double MyTemp(int selectCnlNum)
    {
      int n = (int)Val(selectCnlNum);
      if (n == 0)
        return Val(101);
      else if (n == 1)
        return Val(102);
      else if (n == 2)
        return Val(103);
      else
        return Val(104);
    }

    101, 102, 103, 104 — каналы, которые хранят температуры.
    selectCnlNum — канал, в которым хранится выбранное значение.

    #25310
    manjey73
    Участник

    Так нельзя вроде. Типа на лету выбирать. Как минимум надо 2 канала, чтобы в одном выставлять нужный AI, а в другой по формуле тянуть из нужного канала формулой.

    Только если формула будет вида, Если канал 1 = 1 то данные взять отсюда,
    Если канал 1 = 2 то данные взять отсюда.

    И записать ее в Таблицу формул.

    #25352
    fergus2022
    Участник

    Здравствуйте, а куда этот код записывается ? Во входных каналх — формула: ограничение по кол-ву символов..

    #25353
    manjey73
    Участник

    В таблицы «Фурмулы» и уже в канале вызываете свою формулу

    #25354
    fergus2022
    Участник

    А для выбора (допустим с помощью «переключателя» на схеме»), нужно делать команды в шаблоне устройства КП ? Т.е как присваивать значение 1 тегу, на основе которого будет отрабатывать скрипт ?
    Формулу присваивать виртуальному тегу, который хранит выбранный AI, или тегу, который будет отображать значение выбранного AI ?

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

    Можно пожалуйста подробный пример реализации выбора на «схеме». (в т.ч что куда прописывать, куда формулу присваивать и т.д.)

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

    Для наглядности скриншот того, что нужно. (в каждый канал прилетают значения, нужно указывать из писка, значение чего прилетает в конкретный канал.)
    >>скрин<<\

    #25359
    fergus2022
    Участник

    как это реализовать в Rapdi Scada ?

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

    Выпадающие списки на схемах не поддерживаются.
    Для начала добавьте в базу конфигурации:
    1. Входной канал типа дорасчётный ТИ, который будет хранить выбранное значение.
    2. Канал управления для установки входного канала.

    Если используется Rapid SCADA версии 6, то достаточно одного канала, который объединяет в себе входной канал и канал управления.
    Формула канала управления: SetVal(222, Cmd)
    Где 222 — номер канала, который нужно установить.
    Чтобы вводить команду не числом, а выбирать из списка, добавьте значения команд в соответствующую таблицу.

    #25361
    fergus2022
    Участник

    1. Создал переменную «znach», тип «Дорасчетный ТИ».
    2. В каналах управления у меня один канал.
    Мне нужно создавать команды в файле «шаблон устройства кп .xml» ?
    » Чтобы вводить команду не числом, а выбирать из списка, добавьте значения команд в соответствующую таблицу. » — вот здесь поподробнее, где эти команды создавать, куда добавлять (какую таблицу) ?

    #25362
    fergus2022
    Участник

    версия скады 5.5.2.2.

    #25363
    fergus2022
    Участник

    В канале управления создан КП «Мой канал передачи». В таблице этого КП создаю канал с номером 102, наименование «канал 1», тип команды «стандартная», номер 1, значения «выполнить», формула » SetVal(101 — номер тега со значением приходящим с устройства, которое нужно подставить в виртуальную переменную «znach», Cmd) — верно ?

    #25364
    fergus2022
    Участник

    Во входящих каналах, для виртуальной переменной 105 «Znach» (тип дорасчетный ТИ), задал канал управления, в котором формула SetVal(101, Сmd).
    На схеме переключателю задал канал управления с этой формулой, при срабатывании команды, значение с входного канала 101 «Тег1» не передается в виртуальную переменную 105 «Znach». Что делаю не так ?

    #25365
    Romiros
    Участник

    Если значение нужно установить в 105 канал, тогда SetVal(105, Сmd).

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