Стартовая страница › Форумы › Понять, как работает ПО › Вопрос по скриптам
- В этой теме 7 ответов, 4 участника, последнее обновление 3 месяца, 2 недели назад сделано
GreatAlex.
-
АвторСообщения
-
22.01.2026 в 13:30 #41704
ddm
УчастникЗдравствуйте, был написан скрипт на C#
public string StatTest(double val)
{
string state = «»;
ulong ulVal = (ulong)val;
switch (ulVal)
{
case 0:
state = «Останов»;
break;
case 1:
state = «Работа»;
break;
case 2:
state = «Авария»;
break;
default:
state = «Неизвестно»;
break;
}
return state;
}
скрипт во вспомогательную таблицу добавлен
Как можно использовать этот скрипт для вывода текущего статуса на экран в примитив текст. Статус приходит в канал 101 в виде числа
Создавала канал типа «Расчетный» во «Входной формуле» прописывала StatTest(101) — выдало «Неиз» (по какой-то причине в текст выводится не все), хотя текущее значение канала 101 — 122.01.2026 в 14:07 #41705
manjey73Участнику вас слова длиннее 4-х символов Unicode.
Нужно сделать массив — Указать длину 3 (должно хватать).
И воспользоваться штатным скриптом SpliteUnicode(()=> Ваш_Скрипт)кажется так, если не ошибся. Ну и выбрать формат String
зачем вы приводите к ulong? лишние телодвижения
-
Ответ изменён 3 месяца, 2 недели назад пользователем
manjey73.
22.01.2026 в 14:09 #41707
manjey73Участники правильно SplitUnicode(() => StatTest(Val(101))) наверное, поищите в таблице скриптов формулу деления строк
з.ы. и тут достаточно Перечисления, а case больше к приведению к последовательности 0,1,2 и т.д если значения канала 10, 35, 50 и так далее)
22.01.2026 в 14:14 #41710
manjey73УчастникНу и вместо double val можно делать int NumCnl и внутри вашего сркипта уже доставать значение канала по номеру. Меньше писать во входной формуле 🙂
22.01.2026 в 14:36 #41711GreatAlex
Участнику вас слова длиннее 4-х символов Unicode
Поясните пожалуйста, при чем тут 4 символа?
В скрипте идет возврат типа String, а он явно длиннее 4 символов Unicode.22.01.2026 в 14:38 #41712
MikhailМодераторДобрый день!
Для этой конкретной задачи скрипты не нужны. Создайте новый формат в таблице Форматы (по аналогии с Откл-Вкл) и используйте его для канала.22.01.2026 в 15:50 #41715
manjey73УчастникПоясните пожалуйста, при чем тут 4 символа?
Когда нужно сохранять строки без использования формата Перечисления, то в канал сохраняется только 8 байт (так как данные канала это double).
Соответственно будет сохранено либо первые 4 символа Unicode, либо 8 символов ASCII.Для этого и предусмотрена возможность создать массив каналов и соответствующие скрипты, чтобы раскидать по этим каналам буквы 🙂
22.01.2026 в 16:09 #41716GreatAlex
Участникв канал сохраняется только 8 байт
ясно, спасибо
-
Ответ изменён 3 месяца, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.