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

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

    Для этого же канала создать канал управления и в нем так же выбрать формат Перечисление и в формулу добавить SetVal(канал, Cmd)

    В канале управления нету колонки «Формат», как выбрать формат Перечисления ?
    >скриншот<

    #25411
    manjey73
    Участник

    В 5-й версии вам надо в Справочники — Таблица «Значение Команд» добавить
    Имя — Значение
    Test_Choise — Температура; Давление; Расход
    При вызове команды вы получите 3 кнопки с подписями.

    Создать два расчетных входных канала Choise (105) и Value (106) например
    105-й канал можно будет скрыть вообще из интерфейса
    Создаете Канал управления, например 105 так же
    В ней формула SetVal(105, Cmd) тип команды Стандартный, Значение — ваш Test_Choise который вы создали

    В таблицы «Формулы» добавляете

    public double MyChoise(double choise)
    {
    double val = 0;
    if (choise == 0) val = Val(101);
    else if (choise == 1) val = Val(102);
    else if (choise == 2) val = Val(103);
    return val;
    }

    Так как мы оперируем значением нашего канала, а не его номера, то внутри указываем double choice а не int

    Ну и во Входном канале 106 куда хотим подтягивать значения датчиков пишем формулу
    MyCoise(Val(105))
    И указываем канал управления 105, в интерфейс можно добавить только 106-й канал для отображения.

    В формуле прописываем нужные нам каналы, из которых забирать значения.
    З.ы. можно повыделываться и создать универсальную формулу, которую можно будет пришпиливать к любому списку каналов при желании…

    #25412
    manjey73
    Участник

    Да, для каналов Управление тут есть разделение. Своя таблица — Значение Команд.
    Если хотите на мнемосхеме еще и отражать, что это за параметр, то для Входных каналов в Таблице Размерности надо создать точно такой же список, выбрать Формат Перечисление и созданный список в Размерностях.
    Ну и соответственно выводить еще канал 105 на мнемосхему и привязывать команду к нему…

    В общем вариации но всегда через окно кнопок…

    #25419
    fergus2022
    Участник

    Появилось окно с выбором темп. давл. расх., значение выбора канала прилетает в виртуальную переменную — вобщем заработало ! Огромное спасибо ! Далее по аналогии буду делать. Еще подскажите пожалуйста, для чего в интерфейсе можно создать файл формата .xml ?

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

    Еще вопрос, как в переменную вывести выбранное значение из test_choise ? что бы была надпись типа: Канал 1 выбрано «Температура»

    #25422
    fergus2022
    Участник

    Пытаюсь как то так:

    public double MyChoise(double perech)
    {
    double val = 0;
    string text = "";
    if (perech == 0) val = Val(101); text = "Температура";
    else if (perech == 1) val = Val(102);
    else if (perech == 2) val = Val(103);
    return val;
    return text;
    }

    И у переменной для отображения ставлю формат «Текстовый ASCII» и формулу MyChoise(textl(104)), но это не работает (

    #25423
    manjey73
    Участник

    Я же вам написал. У вас «Температура; Давление; Расход» должны быть одинаковыми в таблицах «Значение команд» и «Размерности»

    Одна таблица действует на Кнопки при отправке команды\
    Вторая таблица действует на Входной канал если выставить тип Перечисление — Фактически в канале 105 у вас значения 0, 1 и 2 но мнемосхема будет отображать надписи из таблицы Размерности.

    То есть каких-то дополнительных формул уже не требуется. Просто отобразить на мнемосхеме еще и канал 105 с перечислением

    Текст ASCII или UNICODE это другое, это отображение в виде текста 8-ми или 4-х символов из байтового массива (значение double) которое вы можете сформировать как текст.

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

    По поводу xml в Интерфейсах, он нужен для настройки смещений каналов, если у вас одна мнемосхема используется для вывода однотипных устройств.

    #25427
    fergus2022
    Участник

    Всё увидел, разобрался, отобразилось, спасибо )

    #25592
    fergus2022
    Участник

    Добрый день, возник похожий вопрос по передаче.
    Есть канал AI mode (значение 1 или 2) — нужно через скаду делать настройку (отправлять 1 или 2).
    Сделал по аналогии формулу

    public double viborM1(double viborM1)
    {
    double val = 0;
    if (viborM1 == 0) val = 1;
    else if (viborM1 == 1) val = 2;
    return val;
    }

    И значения команд 4-20Ma; 0-20Ma, размерности 4-20Ma; 0-20Ma. ViborM1 — 145 номер канала.
    Если ставлю входной канал valueM1 исп. формулу viborM1(Val(145)) и канал управления 145, то в скаде в ViborM1 вижу 4-20Ма и ValueM1 — «1» соответственно. Как тегу устройства AI mode передать выбранное значение ? (Команда 4-20Ма, значение «1») ?

    • Этот ответ был изменен 3 месяца, 2 недели назад от fergus2022.
    #25594
    manjey73
    Участник

    Не совсем ясно… В каналах управления есть формулы SetVal(канал, Cmd) вот вам Cmd и надо изменять 1 или 2 отправить.

    или речь про другое ?

    #25595
    fergus2022
    Участник

    Есть тег AI_Mode, это выбор настройки 4-20ма или 0-20 на моксе. Скада читает значение этого тега нормально. Но нужно еще, чтобы из скады можно было отправлять настройку, т.е значение. Например, при выборе в моксе 4-20ма, тег получает значение «1». При 0-20ма, соответственно значение «2».
    Хотелось бы в скаде вызывать окно команды с двумя кнопками: 4-20ма и 0-20ма, при нажатии которых тегу AI Mode на устройство посылалось значение «1» или «2».

    #25596
    manjey73
    Участник

    аааа, ну так и вызывайте. Добавьте в Таблицу Команд такую запись

    ; 4-20mA ; 0-20mA

    тут первым символом ; вы уберете 0 и кнопки будут отправлять соответственно 1 и 2

    #25604
    fergus2022
    Участник

    » тут первым символом ; вы уберете 0 и кнопки будут отправлять соответственно 1 и 2 »
    воооот, не знал как 0 убрать, спасибо!

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