Сумма множества каналов и расчет статуса

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

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #5926
    Romiros
    Участник

    Добрый день. Кто разобрался с формулами, подскажите как выполнить суммирование 10 каналов и рассчитать средний статус. Строки формула, длиной 100 символов не хватает.

    #5927
    manjey73
    Участник

    Наверное лучше загонять значение каждого канала в список словаря, а уже в канале, где должна вывестись сумма просто сумировать ячейки списка…

    Не знаю как будет правильнее, со словарями пока не разбирался.
    Например имеем 10 каналов Температур, нужна сумма.
    в канале температур пишем Формула(имя списка(словаря), значение)
    внутри формула будет заносить значение в ячейку с номером канала.

    Потом Формула_сумма(имя списка) ну и соответственно формула будет суммировать все ячейки нужного списка и выдавать результат.

    Как-то так.

    Можно через массивы

    • Этот ответ был изменен 6 лет, 11 месяцев назад от manjey73.
    #5929
    Romiros
    Участник

    Спасибо. Надеялся будет проще 🙂

    #5930
    manjey73
    Участник

    Мне кажется так универсальнее, так как можно суммировать любые каналы и в любых количествах.
    На каждый канал, который нужно суммировать создаете свой массив для складирования этих каналов, указав ему имя.
    в формуле суммы указываете имя какой массив считать.

    Например Summ_plus(Massa) и такая запись формулы будет у всех каналов, каждый канал будет попадать в свою ячейку массива
    а вывести сумму скажем Summa(Massa), формула посчитает сумму значений всех ячеек и выведет

    • Этот ответ был изменен 6 лет, 11 месяцев назад от manjey73.
    #5932
    Romiros
    Участник

    Спасибо за совет. Поэкспериментирую. Не хватает конечно скриптов для простоты, чтобы напрямую к каналам обращаться.

    #5940
    manjey73
    Участник

    Обращение напрямую есть, посмотрите в теме Формул, Михаил выкладывал CnlValGet и CnlValSet, возможно вместите в 100 символов

    Просто заниматься писаниной в одной строке знач1+знач2+знач3 и так далее думаю несколько муторно.

    • Этот ответ был изменен 6 лет, 11 месяцев назад от manjey73.
    #5945
    Mikhail
    Модератор

    Нужно создать формулу в таблице формул. Кстати, в C# с помощью ключевого слова params можно передавать в метод переменное количество аргументов.

    #5961
    Romiros
    Участник

    Спасибо за params.
    Как один из вариантов, если кому нужно:

    double CnlValSet(params int[] cnls)
    {
    double val = 0;
    for (int i=0; i<cnls.Length; i++)
    {
    val=val+Val(cnls[i]);
    }
    return val;
    }

    Использование Сумма каналов 101, 102, 103:
    CnlValSet(101,102,103)

    Аналогично для статуса, только среднее

    #5965
    Mikhail
    Модератор

    Более корректно будет название метода SumCnlVals, т.к. метод с префиксом Set обычно что-либо устанавливает, а метод выше только возвращает значение.

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