Передать значение канала другому каналу

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

Просмотр 3 сообщений - с 16 по 18 (из 18 всего)
  • Автор
    Сообщения
  • #19199
    evg
    Участник

    Не работает — это слишком растяжимо. Выдает ошибку или не то, что Вы ожидаете? Может у Вас условия совпадают и переписывают друг друга. Важен порядок каналов от меньшего к большему. Напишите подробнее, думаю совместно решим. А лучше опишите прикладную задачу, что нужно сделать.

    Ошибки нету, просто не присваивается значение канала-каналу. Даже в такой форме.

    public double _ValChance(int ValS1, int ValZ1)
    {
    double valueCh = 0;
    if(ValS1 == 0 && ValZ1 > 0)
    {
    valueCh = ValZ1;
    }
    return valueCh;
    }

    К примеру я пишу во входном канале 201: _ValChance(110, 101)
    Сохраняю, выполняю условие при котром должно присвоиться значение канала 101 каналу 201 и нечего не происходит..

    Сейчас ещё попробую переделать проэкт, в любом случае мне нужно уменьшить количество задействованных входных каналов.. Возможно будет достаточно и одной формулы, которую давал manjey73. В конце дня отпишусь. Если подскажите почему не работает эта формула, которую я написал буду благодарен. Она как бы без проблем работает с числами, к примеру если сделать так «valueCh = 1;» — она работает, значение 1 присваивается, а вот как я это сделал (valueCh = ValZ1;) попыться присвоить, текущее значение одного канала другому так не работает..

    • Этот ответ был изменен 2 года, 11 месяцев назад от evg.
    #19201
    Romiros
    Участник

    К примеру я пишу во входном канале 201: _ValChance(110, 101)

    Ошибки нету, просто не присваивается значение канала-каналу. Даже в такой форме.

    public double _ValChance(int ValS1, int ValZ1)
    {
    double valueCh = 0;
    if(ValS1 == 0 && ValZ1 > 0)
    {
    valueCh = ValZ1;
    }
    return valueCh;
    }

    Все логично. Проанализируйте код.
    if(ValS1 == 0 && ValZ1 > 0) if(110 == 0 && 101>0) — условие не выполняется

    Если Вы в функцию передаете номера каналов, то код должен быть таким:

    public double _ValChance(int ValS1, int ValZ1)
    {
    double valueCh = 0;
    if(Val(ValS1) == 0 && Val(ValZ1) > 0)
    {
    valueCh = Val(ValZ1);
    }
    return valueCh;
    }

    • Этот ответ был изменен 2 года, 11 месяцев назад от Romiros.
    #19212
    evg
    Участник

    Спасибо. Вчера тоже к этому пришёл.)

    public double _ValChance(int ValS1, int ValZ1, int ValS2, int ValZ2, int ValS3, int ValZ3)
    {
    double valueCh = 0;
    if((Val(ValS1) == 0) && (Val(ValZ1) > 0))
    {
    valueCh = Val(ValZ1);
    }
    if((Val(ValS2) == 0) && (Val(ValZ2) > 0))
    {
    valueCh = Val(ValZ2);
    }
    if((Val(ValS3) == 0) && (Val(ValZ3) > 0))
    {
    valueCh = Val(ValZ3);
    }
    return valueCh;
    }

    Так работает.
    Тему можно считать закрытой, всем спасибо!

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