Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Подстановка значения в переменную
- В этой теме 58 ответов, 5 участников, последнее обновление 2 года, 1 месяц назад сделано fergus2022.
-
АвторСообщения
-
11.10.2022 в 13:20 #25388manjey73Участник
потому что return внутри ифов, специфика языка
11.10.2022 в 13:21 #25389manjey73Участникнифига себе компактность, учитывая, что при вводе команды выползает окно с кнопками перечисления 🙂
- Этот ответ был изменен 2 года, 1 месяц назад от manjey73.
11.10.2022 в 13:23 #25391manjey73Участниквы переменную vak никак не объявили
11.10.2022 в 13:26 #25392a80808Участник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;
}11.10.2022 в 13:29 #25393manjey73Участникpublic double MyTemp(int selectznach) жирным то, что возвращается в канал — значене датчиков согласно значению выбранного канала для выбора
{
тут объявить val
if (Val(selectperech) == 0)
val = Val(101);return val;
}11.10.2022 в 13:44 #25394fergus2022Участникс этим кодом
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", которой не присвоено значение
11.10.2022 в 13:49 #25396fergus2022Участникс формулой
public double MyTemp(int selectperech) { double val; if (Val(selectperech) == 0) val = Val(101); return val; }
в логе:
Строка 520, колонка 8: error CS0165: Использование локальной переменной "val", которой не присвоено значение
11.10.2022 в 14:10 #25398fergus2022Участник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 ? и почему ни одна формула то не работает?
- Этот ответ был изменен 2 года, 1 месяц назад от fergus2022.
11.10.2022 в 14:21 #25400manjey73Участникну так присвойте значение — double ret = 0;
11.10.2022 в 14:27 #25401manjey73Участникpublic double MyTemp(int selectznach) { ..... }
selectznach — это номер канала, в котором вы формируете 0, 1 или 2 путем перечисления выбора Температура, Давление, Расход — это надо добавить в таблицу перечислений по примерам из нее и указать в этом канале формат — Перечисления
Для этого же канала создать канал управления и в нем так же выбрать формат Перечисление и в формулу добавить SetVal(канал, Cmd)
Например у вас перечисление «ВыборДатчика» = Температура; Давление; Расход
Создаете входной канал 105 — формат Перечисление «ВыборДатчика»
Создаете канал Управления, например тоже 105, аналогично перечисление «ВыборДатчика» тип команды Стандартный и в нем формулу SetVal(105, Cmd)
Создаете Входной канал 106, в нем указываете формулу MyTemp(105)11.10.2022 в 14:29 #25402manjey73УчастникУ вас должно быть ДВА канала входных дорасчетных как минимум, потому что в один должно попадать значение выбора, во второй уже значение требуемого датчика
11.10.2022 в 14:30 #25403fergus2022Участникну так присвойте значение — double ret = 0;
Сервер и коммуникатор запустились.
- Этот ответ был изменен 2 года, 1 месяц назад от fergus2022.
11.10.2022 в 14:35 #25405fergus2022Участниквыбора Температура, Давление, Расход — это надо добавить в таблицу перечислений по примерам из нее и указать в этом канале формат — Перечисления
Где тут таблица перечислений ? >скриншот<
- Этот ответ был изменен 2 года, 1 месяц назад от fergus2022.
11.10.2022 в 14:40 #25407fergus2022УчастникВ таблице входные каналы у perech нашел формат: «текст перечисления» — то что нужно ?
- Этот ответ был изменен 2 года, 1 месяц назад от fergus2022.
11.10.2022 в 14:48 #25409manjey73Участникp.s. в формулах косяк в принципе. сейчас распишу как работает…
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.