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

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

    потому что return внутри ифов, специфика языка

    #25389
    manjey73
    Участник

    нифига себе компактность, учитывая, что при вводе команды выползает окно с кнопками перечисления 🙂

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

    вы переменную vak никак не объявили

    #25392
    a80808
    Участник

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

    #25393
    manjey73
    Участник

    public double MyTemp(int selectznach) жирным то, что возвращается в канал — значене датчиков согласно значению выбранного канала для выбора
    {
    тут объявить val
    if (Val(selectperech) == 0)
    val = Val(101);

    return val;
    }

    #25394
    fergus2022
    Участник

    с этим кодом

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

    в логе:

    2022-10-11 15:44:08 <ASUTP3><СИСТЕМА><ERR> Ошибка при компилировании исходного кода формул: 
    Строка 524, колонка 8: error CS0165: Использование локальной переменной "ret", которой не присвоено значение
    #25396
    fergus2022
    Участник

    с формулой

    public double MyTemp(int selectperech)
    {
    double val;
    if (Val(selectperech) == 0)
    val = Val(101);
    
    return val;
    }

    в логе:
    Строка 520, колонка 8: error CS0165: Использование локальной переменной "val", которой не присвоено значение

    #25398
    fergus2022
    Участник
    public double MyTemp(int selectznach) znach - сюда надо то, что приходит с датчика
    {
    double val;
    if (Val(selectperech) == 0) - perech хранит значение 0,1 или 2. 
    val = Val(101);
    
    return val;

    в логе ошибка:

     Ошибка при компилировании исходного кода формул: 
    Строка 517, колонка 9: error CS0103: Имя "selectperech" отсутствует в текущем контексте

    Я уже окончательно запутался надо сперва znach писать и в условии perech, или всё таки два раза perech ? и почему ни одна формула то не работает?

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

    ну так присвойте значение — double ret = 0;

    #25401
    manjey73
    Участник
    public double MyTemp(int selectznach)
    {
    .....
    }

    selectznach — это номер канала, в котором вы формируете 0, 1 или 2 путем перечисления выбора Температура, Давление, Расход — это надо добавить в таблицу перечислений по примерам из нее и указать в этом канале формат — Перечисления

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

    Например у вас перечисление «ВыборДатчика» = Температура; Давление; Расход
    Создаете входной канал 105 — формат Перечисление «ВыборДатчика»
    Создаете канал Управления, например тоже 105, аналогично перечисление «ВыборДатчика» тип команды Стандартный и в нем формулу SetVal(105, Cmd)
    Создаете Входной канал 106, в нем указываете формулу MyTemp(105)

    #25402
    manjey73
    Участник

    У вас должно быть ДВА канала входных дорасчетных как минимум, потому что в один должно попадать значение выбора, во второй уже значение требуемого датчика

    #25403
    fergus2022
    Участник

    ну так присвойте значение — double ret = 0;

    Сервер и коммуникатор запустились.

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

    выбора Температура, Давление, Расход — это надо добавить в таблицу перечислений по примерам из нее и указать в этом канале формат — Перечисления

    Где тут таблица перечислений ? >скриншот<

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

    В таблице входные каналы у perech нашел формат: «текст перечисления» — то что нужно ?

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

    p.s. в формулах косяк в принципе. сейчас распишу как работает…

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