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

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
Freeeliffe
interested
interested
Сообщения: 3
Зарегистрирован: 14 июн 2017, 11:40
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение Freeeliffe »

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

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

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

Сообщение Artem.spb »

я такого не знаю, и очень удивлюсь, если это реально сделать.
Любая работа с массивами это поэлементный разбор, вопрос только в том, делается это явно, или нет.
Кстати, бродят споры, но основное мнение в том, что fn медленнее работает, чем графический код. Как так у вас наоборот получается? покажите примеры.
Freeeliffe
interested
interested
Сообщения: 3
Зарегистрирован: 14 июн 2017, 11:40
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение Freeeliffe »

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

Ну да не в этом суть, а в том, что мне нужна возможность построения формулы с лицевой панели и которая затем будет производить вычисления без лишних действий, пожирающих ресурсы. Если бы я мог ввести хотя бы формулу в FN, меня бы это устроило.
Полагаю, что это все же возможно: есть же функция Formula Express VI - в нее мы вводим формулу и можем выполнив Convert to SubVI получить подприбор, раскрыв который видим ту самую FN (поправьте, если не так), в которую введена наша формула с нашими же входами и выходами. Так как же из Express SubVI в нее попадает введенная формула? :think:
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

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

Сообщение IvanLis »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

Freeeliffe писал(а):Подскажите, возможно ли конфигурировать функцию Formula Node с лицевой панели: ввести текст формулы расчета, наименования входов и выходов? Хотя бы текст формулы.
Если в ран-тайме, то нельзя. Код в FN уже скомпилирован, и его не изменить. Но если очень хочется, то подобного можно достичь другими средствами. Вам надо смотреть в сторону внешних скриптовых движков, поддерживающих выполнение скриптов в ран-тайме. Например, в MathScript Node есть вот такие функции:
eval (MathScript RT Module Function)
evalscript (MathScript RT Module Function)
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.
Однако, узел MS довольно тормозной, даже по сравнению с FN. А эти функции, судя по описанию, будут работать ещё медленнее.
Также в :labview: можно подключать скрипты Python, там тоже есть похожий функционал. Как быстро будет работать - не скажу, не пробовал.
Существует возможность интеграции движка C/C++ в :labview: для выполнения скриптов: Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting.

Хотя, у меня есть сомнения, что это вообще вам нужно. В :labview: есть множество инструментов для работы с массивами. И это делается проще и нагляднее, чем через скрипты. Да, и работает быстрее. Неужели ваши формулы будут постоянно меняться? Даже если так, то не должно быть проблемой накидать код для каждой формулы и переключать его при необходимости.
Freeeliffe
interested
interested
Сообщения: 3
Зарегистрирован: 14 июн 2017, 11:40
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение Freeeliffe »

Спасибо большое, Друзья! IvanLis , вы мне очень помогли! :thank:
Parse Formula Node и Eval Parsed Formula Node очень быстро считает сразу целые массивы формул!
Сам я сначала по неопытности пытался использовать функции Substitude Variables и Eval Formula String предварительно приспособив их для вычисления массивов получаемых данных, в итоге получались дикие цепочки, даже страшно смотреть на них, цикл расчета просто умирал)
Спасибо большое, что направили меня на путь истинный, все получается очень красиво и экономно!)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Лицевая панель»