Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Как использовать формулы ?
- В этой теме 86 ответов, 12 участников, последнее обновление 3 года, 2 месяца назад сделано Mikhail.
-
АвторСообщения
-
27.06.2016 в 13:59 #2429MikhailМодератор
Да, такое возможно.
У Вас получилось вызвать окно для отправки команды из табличного представления или со схемы?
Далее см. ответ здесь27.06.2016 в 14:31 #2430MaxУчастникУ меня получилось вызвать окно для отправки команды из табличного представления `public Dictionary<int, double> CnlValDict = new Dictionary<int, double>();
public double CnlValGet(int cnlNum)
{
double val;
return CnlValDict.TryGetValue(cnlNum, out val) ?
val : Val(cnlNum);
}public double CnlValSet(int cnlNum)
{
CnlValDict[cnlNum] = Cmd;
return double.NaN;
}` простите за такой тупой вопрос но куда это писать ? не совсем понял … я в формуле канала управления используйте CnlValSet, а в формуле входного канала CnlValGet и поставил галочку использовать формулу.27.06.2016 в 14:32 #2431MaxУчастника как создать CnlValDict ?
27.06.2016 в 16:38 #2432MaxУчастникПрошу прощения ) уже разобрался все работает большое спасибо ).
30.08.2016 в 09:42 #2966iKasperУчастникДобрый день.
Подскажите, никак не удается одолеть с помощью форума поставленную задачу.
Есть входящие данные, которые изменяются в течении дня, требуется получить разницу между началом и концом дня.30.08.2016 в 10:13 #2976MikhailМодераторДобрый день!
С помощью формул это довольно неудобно решается, потому что из формул можно получить данные только на текущий момент.Идея такая: нужно завести переменные, в которые будут сохранены значения в начале суток. Затем завести отдельные дорасчётные входные каналы, которые будут вычислять разность между итоговым значением и сохранённой переменной.
При перезапуске службы сервера значения переменных обнуляются. Чтобы этого избежать, нужно их сохранять и загружать из входных каналов — отдельная заморочка.
Мы планировали решить данную задачу другим способом — разработать отчёт, который будет выводить разности для выбранных каналов за заданный период. Выходные форматы отчёта: HTML и Excel. Подойдёт ли для Вас такое решение? Правда эта работа предварительно запланирована на сентябрь-октябрь.
30.08.2016 в 10:37 #2983iKasperУчастникБольшое спасибо за оперативный ответ, любое решение лучше чем никакое.
Т.е. я правильно понимаю, что завести значение с привязкой к каналу и вывести значение на опред. Дату\Время нельзя?Выходной формат HTML для отчета — это возможность в веб интерфейсе сформировать отчет или отдельная выгрузка в формате HTML как в excel?
30.08.2016 в 10:57 #2984MikhailМодераторчто завести значение с привязкой к каналу и вывести значение на опред. Дату\Время нельзя?
Вопрос я не совсем понял. Но могу сказать, что пока нет формулы для входного канала, которая возьмёт значение канала за определённую дату и время. Было бы хорошо реализовать её в SCADA-Сервере, но пока этого нет.
Выходной формат HTML для отчета — это возможность в веб интерфейсе сформировать отчет или отдельная выгрузка в формате HTML как в excel?
Скорее всего, отображение на странице, которую при желании затем можно сохранить в файл средствами браузера. Chrome к тому же позволяет сохранять страницы в PDF.
30.08.2016 в 12:11 #2987iKasperУчастникЯ имел в виду кое что другое.
Наблюдая за веб интерфейсом с таблицей, я наблюдаю как раз в час фиксируются значения переменной по каждой переменной, предполагаю, что эти значения он берет из базы скады. Т.е. где то в базе ведется запись раз в час, как меняется значение переменной, если это так, то наверно как то можно обратиться в базу и получиться значение канала (к примеру на 9 утра вчерашнего дня)
Подскажите как можно получить статус канала (не значение канала, а его состояние) ок или не ок, булева переменная (0,1)?30.08.2016 в 15:05 #2989MikhailМодераторЯ имел ввиду, что сейчас нет соответствующей формулы, которую можно ввести в базу конфигурации через Администратор и ничего не программировать. Если Вы или в Вашей компании есть программисты, то можно получить данные из архива с помощью C# или REST API.
Подскажите как можно получить статус канала
В формулах базы конфигурации Stat, если нужна булева переменная, то Stat > 0
28.09.2016 в 13:53 #3201djbond07УчастникДобрый день! Вопрос такой. Есть вх. канал типа телеизмерение. Мне нужно умножить его на 10. Обязательно ли для этого создавать дорасчётный канал и писать в нём формулу Val(x)*10? Или же можно прямо в этом канале поставить галочку «использовать формулу», и записать её туда?
28.09.2016 в 14:16 #3202MikhailМодераторДобрый день!
Я бы просто поставил галочку и написал формулу Cnl*1017.07.2018 в 10:14 #9942serg4УчастникЗдравствуйте, а как взять разницу между текущим показанием и показанием за предыдущий час?
Где-то есть описание команд с примерами?
Спасибо.- Этот ответ был изменен 5 лет, 9 месяцев назад от serg4.
17.07.2018 в 17:04 #9944MikhailМодераторДобрый день!
Существующее описание работы формулами.Самый удобный способ расчёта разницы показаний — плагин Гибкий отчёт. Пример его работы по ссылке.
17.07.2018 в 17:11 #9945MikhailМодераторС помощью формул можно решить данную задачу, создав несколько дополнительных входных каналов:
1. Канал типа Часовой ТИ, который будет хранить предыдущее значение. Например, его номер 101. Формула: Val(102); Stat(102)
2. Канал типа Часовой ТИ, который будет хранить текущее значение. Его номер будет 102, а формула: Val(100); Stat(100)
Где 100 — это канал, который содержит значение от контроооера.
3. Канал типа Часовой ТИ, который вычисляет разницу. Его номер 103 и формула: Val(102) — Val(101); Stat(102)По хорошему, нужно добавлять простые формулы для данной операции.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.