Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Передать значение канала другому каналу
- В этой теме 17 ответов, 4 участника, последнее обновление 2 года, 11 месяцев назад сделано evg.
-
АвторСообщения
-
22.04.2021 в 10:28 #19199evgУчастник
Не работает — это слишком растяжимо. Выдает ошибку или не то, что Вы ожидаете? Может у Вас условия совпадают и переписывают друг друга. Важен порядок каналов от меньшего к большему. Напишите подробнее, думаю совместно решим. А лучше опишите прикладную задачу, что нужно сделать.
Ошибки нету, просто не присваивается значение канала-каналу. Даже в такой форме.
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.
22.04.2021 в 10:56 #19201RomirosУчастникК примеру я пишу во входном канале 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.
23.04.2021 в 14:11 #19212evgУчастникСпасибо. Вчера тоже к этому пришёл.)
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;
}Так работает.
Тему можно считать закрытой, всем спасибо! -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.