Настройка Formula Node с лицевой панели

Обсуждение, связанное с разработкой ПО верхнего уровня

Настройка Formula Node с лицевой панели

Postby Freeeliffe on 22 Sep 2017, 09:01

Здравствуйте, уважаемые форумчане!
Подскажите, возможно ли конфигурировать функцию Formula Node с лицевой панели: ввести текст формулы расчета, наименования входов и выходов? Хотя бы текст формулы.
Функции Formula Parsing не подходят, так как не могут рассчитывать сразу массивы, а поэлеменный расчет больших массивов сильно тормозит цикл расчета (либо я не до разобрался).
Freeeliffe
interested
interested
 
Posts: 3
Joined: 14 Jun 2017, 11:40
LabVIEW Version: 2016
Karma: 0

Re: Настройка Formula Node с лицевой панели

Postby Artem.spb on 22 Sep 2017, 09:56

я такого не знаю, и очень удивлюсь, если это реально сделать.
Любая работа с массивами это поэлементный разбор, вопрос только в том, делается это явно, или нет.
Кстати, бродят споры, но основное мнение в том, что fn медленнее работает, чем графический код. Как так у вас наоборот получается? покажите примеры.
Artem.spb
expert
expert
 
Posts: 1721
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 269
CLD hardware I/O VIP freelance

Re: Настройка Formula Node с лицевой панели

Postby Freeeliffe on 22 Sep 2017, 11:31

На счет графического кода или FN не буду спорить. Скажу лишь, что прикидывал расчет 5 формул (понимаю, что смешно, но это ж прикидка) идентичных массивов как графическим кодом (сразу всего массива), так и FN (поэлементно), скорость работы циклов в обоих случаях (пока) не показала какого либо ощутимого замедления, по сравнению с применением Formula Parsing, которая уже при такой нагрузке дает замедления в десятые доли секунд.

Ну да не в этом суть, а в том, что мне нужна возможность построения формулы с лицевой панели и которая затем будет производить вычисления без лишних действий, пожирающих ресурсы. Если бы я мог ввести хотя бы формулу в FN, меня бы это устроило.
Полагаю, что это все же возможно: есть же функция Formula Express VI - в нее мы вводим формулу и можем выполнив Convert to SubVI получить подприбор, раскрыв который видим ту самую FN (поправьте, если не так), в которую введена наша формула с нашими же входами и выходами. Так как же из Express SubVI в нее попадает введенная формула? :think:
Freeeliffe
interested
interested
 
Posts: 3
Joined: 14 Jun 2017, 11:40
LabVIEW Version: 2016
Karma: 0

Re: Настройка Formula Node с лицевой панели

Postby IvanLis on 22 Sep 2017, 11:45

Здравствуйте, уважаемые форумчане!
Подскажите, возможно ли конфигурировать функцию Formula Node с лицевой панели: ввести текст формулы расчета, наименования входов и выходов? Хотя бы текст формулы.
Функции Formula Parsing не подходят, так как не могут рассчитывать сразу массивы, а поэлеменный расчет больших массивов сильно тормозит цикл расчета (либо я не до разобрался).

Вы бы показали, что уже сделано и чего хотите достичь.
Возможно есть пути ускорения.
Например можно использовать Parse Formula Node для вычислений.
А можно забить туда формулу, а вычисления выполнять используя Eval Parsed Formula Node изменяя значения переменных.
Каждый элемент массива обрабатывается же по одному выражению.
Знание нескольких принципов освобождает от знания многих фактов!




User avatar
IvanLis
professor
professor
 
Posts: 4862
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 787
hardware VIP bloggers teachers

Re: Настройка Formula Node с лицевой панели

Postby dadreamer on 22 Sep 2017, 19:09

Подскажите, возможно ли конфигурировать функцию Formula Node с лицевой панели: ввести текст формулы расчета, наименования входов и выходов? Хотя бы текст формулы.
Если в ран-тайме, то нельзя. Код в FN уже скомпилирован, и его не изменить. Но если очень хочется, то подобного можно достичь другими средствами. Вам надо смотреть в сторону внешних скриптовых движков, поддерживающих выполнение скриптов в ран-тайме. Например, в MathScript Node есть вот такие функции:


Executes a script, in the form of a string, at run time. This function allows you to specify a script to execute dynamically at run time; however, this function causes reduced performance and is not supported on RT targets.
А эти функции, судя по описанию, будут работать ещё медленнее.
Также в :labview: можно подключать скрипты Python, там тоже есть похожий функционал. Как быстро будет работать - не скажу, не пробовал.
Существует возможность интеграции движка C/C++ в :labview: для выполнения скриптов: .

Хотя, у меня есть сомнения, что это вообще вам нужно. В :labview: есть множество инструментов для работы с массивами. И это делается проще и нагляднее, чем через скрипты. Да, и работает быстрее. Неужели ваши формулы будут постоянно меняться? Даже если так, то не должно быть проблемой накидать код для каждой формулы и переключать его при необходимости.
User avatar
dadreamer
professor
professor
 
Posts: 3411
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

Re: Настройка Formula Node с лицевой панели

Postby Freeeliffe on 27 Sep 2017, 08:49

Спасибо большое, Друзья! IvanLis , вы мне очень помогли! :thank:
Parse Formula Node и Eval Parsed Formula Node очень быстро считает сразу целые массивы формул!
Сам я сначала по неопытности пытался использовать функции Substitude Variables и Eval Formula String предварительно приспособив их для вычисления массивов получаемых данных, в итоге получались дикие цепочки, даже страшно смотреть на них, цикл расчета просто умирал)
Спасибо большое, что направили меня на путь истинный, все получается очень красиво и экономно!)
Freeeliffe
interested
interested
 
Posts: 3
Joined: 14 Jun 2017, 11:40
LabVIEW Version: 2016
Karma: 0


Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 3 guests

cron