Страница 1 из 2

ещё раз о FeedBack node

Добавлено: 18 окт 2017, 10:17
Kayfolom
Хорошего дня.

Подскажите, пожалуйста, как работает Feedback node в режиме global initialize? С локальным использованием feedback node в циклах всё вроде понятно.
А как работает глобальный feedback node?
Вопрос вот к чему: два разных модуля используют clone одной и той же функции, внутри которой есть глобальный feedback node,
начальное значение feedback node при каждом вызове клона будет глобальным ? или у каждого клона будет своё значение feedback node?

и какое будет поведение feedback node в случае, есть есть общий класс, с методом внутри которого есть feedback node в режиме global initialize. И есть два класса, наследника, которые
со своими значениями вызывают общий метод класса, у каждого будет собственное значение на входе feedback node или глобально на оба модуля?

Спасибо.

Re: ещё раз о FeedBack node

Добавлено: 18 окт 2017, 21:53
Kosist
Вначале, нужно понимать что виайка с FGV - functional global variable (неинициализированный шифт регистр) или Feedback Node не должна быть реетрантной.
Используя одну и ту же функцию с FGV (или же Feedback Node), значение FGV будет сохраняться.
В случае классов - каждая инстанция классов, если выполняет "родительский" метод, будет разделять значение тоже. Как пример - высылаю скрин простого эксперимента.
Кстати, иногда возможен "пропуск" выполнения такой виайки с FGV - это видно по значениям.
Example.PNG

Re: ещё раз о FeedBack node

Добавлено: 23 окт 2017, 13:35
Kayfolom
Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?

Re: ещё раз о FeedBack node

Добавлено: 23 окт 2017, 19:43
IvanLis
Kayfolom писал(а):Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?
Реентерабельность

Re: ещё раз о FeedBack node

Добавлено: 07 мар 2018, 21:40
Sevas
subVI.png
subVI.png (6.21 КБ) 6972 просмотра
subVI.png
subVI.png (6.21 КБ) 6972 просмотра
Столкнулся с известной на оф форуме ni проблемой с feedback node, но до конца не понимаю как правильно его настроить.

Имеется subVI который крутится внутри while loopa main.vi
Проблема в том что после второго+ запуска фидбэк не обнуляется, а возвращает предыдущее значение.
Методом тыка настроить не удалось, подскажите как выставить все настройки так, чтобы происходило обнуление фидбэка при перезапуске main.vi, ибо на инглиш форумах не все настройки показывают и текст по теме на ингилише довольно трудно понимаю...

Re: ещё раз о FeedBack node

Добавлено: 07 мар 2018, 22:42
Blackman
Поставьте "галку" на пункт меню Initialize On First Call. Должен измениться значок инициализации * на значок функции First Call.

Re: ещё раз о FeedBack node

Добавлено: 07 мар 2018, 22:46
dadreamer
Sevas писал(а):Проблема в том что после второго+ запуска фидбэк не обнуляется, а возвращает предыдущее значение.
Ну, по идее, достаточно выставить Globally Initialize = Initialize On First Call и завести на инициализатор дефолтное значение (ноль, например). Сейчас проверил, вроде всё норм обнуляется.

В саб-ВИ вот так:
2018-03-08_0-44-11.jpg
2018-03-08_0-44-11.jpg (10.64 КБ) 6964 просмотра
В мэйне вот так:
2018-03-08_0-45-11.jpg
2018-03-08_0-45-11.jpg (38.18 КБ) 6964 просмотра

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 11:04
Sevas
Выставил Initialize On First Call (это первое с чем начал экспериментировать до того как спрашивать)
По прежнему после первого запуска значение не реинициализируется
Мне кажется я перебрад уже все комбинации настроек, которые на скриншотах, но ничего не помогает.
Возможно глюк LV? Версия 2013

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 11:08
dadreamer
Sevas, сделайте из вашей программы пример, на котором проблема воспроизводится. Выложите сюда. Поглядим. :wink:

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 11:54
Sevas
Попытался сделать отдельный проект, но в нем не воспроизводится (!), я сверил все настройки со своим проблемным subVI, всё один в один.
Ничего не понимаю теперь.

Я записал короткое видео проблемы - вряд ли поможет конечно, но может какую-то упущенную деталь заметите.
Суть в том, что когда самолет подкатывается к точке, то проблемный subVI добавляет к текущему номеру точки +1 (это всё работает), и самолет должен рулить к следующей.
Но как видно, после перезапуска номер точки не обнуляется.

_WDwmUOd-Zc

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 17:31
dadreamer
Sevas писал(а):Я записал короткое видео проблемы - вряд ли поможет конечно, но может какую-то упущенную деталь заметите.
А вы всегда программу через Abort останавливаете? Эта кнопка только для отладки и критических ситуаций (когда прога зависла, например). Рекомендуется останавливать программу отдельной кнопкой. Попробуйте, может, из-за этого и Feedback не обнуляется. Также попробуйте запустить в более новом :labview: , 16 или 17 (на тот случай, если это какой-то баг). Также попробуйте заменить FN на сдвиговый регистр. В саб-ВИ это делается так - заключаете весь код в While Loop, создаёте регистр на рамке цикла, подключаете, на терминал остановки цикла заводите True. Таким образом цикл всегда будет выполняться 1 раз, но регистр будет хранить информацию подобно FN (это, кстати, широко использовалось в ранних версиях :labview: , когда FN ещё не изобрели).

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 18:11
Sevas
Остановка программы не Abortom не помогла.

Попробовал с shift register, но теперь получается что индекс вообще не увеличивается при совпадении условия. всё время 0.

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 18:16
Sevas
Хотя нет, я поспешил. забыл подключить результат к терминалу.
Но всё тоже самое, после рестарта (не abortom, а правильно по кнопке) индекс по прежнему сохраняется от предыдущего состояния, даже с шифт регистром.

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 18:21
dadreamer
Sevas, чудеса в решете! :help: :D

Есть такая функция в :labview: - First Call. Находится в палитре синхронизации. Попробуйте использовать её - если первый запуск (First Call = True), то используется начальное значение, иначе значение из регистра. Конечно, должно всё работать и без таких "велосипедов". Но у меня не так много идей. Да и потестить нечего.

Также можно попробовать сохранить проект под новым именем в новую локацию и по кусочку удалять элементы кода, упрощая, пока не останется минимум, воспроизводящий этот глюк. Потом залить сюда "на посмотреть".

Re: ещё раз о FeedBack node

Добавлено: 08 мар 2018, 18:38
Sevas
Сам удивляюсь этим чудесам.
Попробовал и такой велосипед. Прилагаю скриншоты.
Результат по прежнему неверный, не уверен, правда, что правильно подключил.