Ответы в темах
-
АвторЗаписи
-
fergus2022
УчастникВсё увидел, разобрался, отобразилось, спасибо )
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)), но это не работает (
fergus2022
УчастникЕще вопрос, как в переменную вывести выбранное значение из test_choise ? что бы была надпись типа: Канал 1 выбрано «Температура»
fergus2022
УчастникПоявилось окно с выбором темп. давл. расх., значение выбора канала прилетает в виртуальную переменную — вобщем заработало ! Огромное спасибо ! Далее по аналогии буду делать. Еще подскажите пожалуйста, для чего в интерфейсе можно создать файл формата .xml ?
-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
fergus2022
УчастникДля этого же канала создать канал управления и в нем так же выбрать формат Перечисление и в формулу добавить SetVal(канал, Cmd)
В канале управления нету колонки «Формат», как выбрать формат Перечисления ?
>скриншот<fergus2022
УчастникВ таблице входные каналы у perech нашел формат: «текст перечисления» — то что нужно ?
-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
fergus2022
Участниквыбора Температура, Давление, Расход — это надо добавить в таблицу перечислений по примерам из нее и указать в этом канале формат — Перечисления
Где тут таблица перечислений ? >скриншот<
-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
fergus2022
Участникну так присвойте значение — double ret = 0;
Сервер и коммуникатор запустились.
-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
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 ? и почему ни одна формула то не работает?
-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
fergus2022
Участникс формулой
public double MyTemp(int selectperech) { double val; if (Val(selectperech) == 0) val = Val(101); return val; }в логе:
Строка 520, колонка 8: error CS0165: Использование локальной переменной "val", которой не присвоено значение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", которой не присвоено значениеfergus2022
УчастникПри таком коде:
public double MyTemp(int selectperech) { int n = (int)Val(selectperech); if (n == 0) return Val(101); else if (n == 1) return Val(102); else if (n == 2) return Val(103); }в логе ошибка:
2022-10-11 15:12:21 <ASUTP3><СИСТЕМА><ACT> Формулы считаны из базы конфигурации 2022-10-11 15:12:21 <ASUTP3><СИСТЕМА><ERR> Ошибка при компилировании исходного кода формул: Строка 514, колонка 15: error CS0161: "Scada.Server.Engine.CalcEngine.MyTemp(int)": не все ветви кода возвращают значение Для ознакомления с исходным кодом см. файл C:\SCADA\ScadaServer\Log\CalcEngine.csЧто не так опять ?
fergus2022
УчастникВыпадающие списки были бы прикольной штукой иногда. Но тут то 3 параметра можно было и в столбик на каждом объекте сделать. Не тот случай вроде, чтобы извращаться…
нужна компактность для отображения на смартфоне
fergus2022
Участникимена переменных «perech» — для значений 0,1,2.
znach — тут должны цифры с датчика выводиться с нужного канала (0,1 или 2 что выберет оператор ).public double MyTemp(int selectznach) { if (Val(selectperech) == 0) val = Val(101); else if (Val(selectperech) == 1) val = Val(102); else if (Val(selectperech) == 2) val = Val(103); return val; }сервер и коммуникатор в ошибке при такой формуле.
public double MyTemp(int selectznach) { double val; if (Val(selectperech) == 0) val = Val(101); else if (Val(selectperech) == 1) val = Val(102); else if (Val(selectperech) == 2) val = Val(103); return val; }тоже самое всё в ошибке.
из лога:
2022-10-11 14:54:52 <ASUTP3><СИСТЕМА><ERR> Ошибка при компилировании исходного кода формул: Строка 517, колонка 11: error CS0103: Имя "selectznach" отсутствует в текущем контексте Строка 519, колонка 16: error CS0103: Имя "selectznach" отсутствует в текущем контексте Строка 521, колонка 16: error CS0103: Имя "selectznach" отсутствует в текущем контексте Для ознакомления с исходным кодом см. файл C:\SCADA\ScadaServer\Log\CalcEngine.cs 2022-10-11 14:54:52 <ASUTP3><СИСТЕМА><ERR> Нормальная работа программы невозможна-
Ответ изменён 3 года, 12 месяцев назад пользователем
fergus2022.
fergus2022
Участниккогда в справочник «формулы» добавляю
public double MyTemp(int selectCnl105) { int n = (int)Val(selectCnl105); if (n == 0) return Val(101); else if (n == 1) return Val(102); else if (n == 2) return Val(103); }то сервер и коммуникатор сваливаются в ошибку какую то. Если формулу удалить — всё в норме становится
-
Ответ изменён 3 года, 12 месяцев назад пользователем
-
АвторЗаписи