ещё раз о FeedBack node

Простейшие вопросы в области инженерной разработки

ещё раз о FeedBack node

Postby Kayfolom on 18 Oct 2017, 10:17

Хорошего дня.

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

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

Спасибо.
Kayfolom
assistant
assistant
 
Posts: 119
Joined: 16 Feb 2009, 12:55
LabVIEW Version: 8.6
Karma: 1

Re: ещё раз о FeedBack node

Postby Kosist on 18 Oct 2017, 21:53

Вначале, нужно понимать что виайка с FGV - functional global variable (неинициализированный шифт регистр) или Feedback Node не должна быть реетрантной.
Используя одну и ту же функцию с FGV (или же Feedback Node), значение FGV будет сохраняться.
В случае классов - каждая инстанция классов, если выполняет "родительский" метод, будет разделять значение тоже. Как пример - высылаю скрин простого эксперимента.
Кстати, иногда возможен "пропуск" выполнения такой виайки с FGV - это видно по значениям.
Example.PNG
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 871
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: ещё раз о FeedBack node

Postby Kayfolom on 23 Oct 2017, 13:35

Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?
Kayfolom
assistant
assistant
 
Posts: 119
Joined: 16 Feb 2009, 12:55
LabVIEW Version: 8.6
Karma: 1

Re: ещё раз о FeedBack node

Postby IvanLis on 23 Oct 2017, 19:43

Kayfolom wrote:Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?


Реентерабельность
User avatar
IvanLis
professor
professor
 
Posts: 4625
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: 2010
Karma: 727
hardware VIP bloggers teachers

Re: ещё раз о FeedBack node

Postby Sevas on 07 Mar 2018, 21:40

subVI.png
subVI.png (6.21 KiB) Viewed 2343 times
subVI.png
subVI.png (6.21 KiB) Viewed 2343 times
Столкнулся с известной на оф форуме ni проблемой с feedback node, но до конца не понимаю как правильно его настроить.

Имеется subVI который крутится внутри while loopa main.vi
Проблема в том что после второго+ запуска фидбэк не обнуляется, а возвращает предыдущее значение.
Методом тыка настроить не удалось, подскажите как выставить все настройки так, чтобы происходило обнуление фидбэка при перезапуске main.vi, ибо на инглиш форумах не все настройки показывают и текст по теме на ингилише довольно трудно понимаю...
Attachments
main.png
img-2018-03-07-21-33-27.png
img-2018-03-07-21-33-18.png
img-2018-03-07-21-33-18.png (10.48 KiB) Viewed 2343 times
img-2018-03-07-21-33-05.png
img-2018-03-07-21-33-05.png (9.39 KiB) Viewed 2343 times
Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Re: ещё раз о FeedBack node

Postby Blackman on 07 Mar 2018, 22:42

Поставьте "галку" на пункт меню Initialize On First Call. Должен измениться значок инициализации * на значок функции First Call.
Blackman
leader
leader
 
Posts: 782
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 224
VIP

Re: ещё раз о FeedBack node

Postby dadreamer on 07 Mar 2018, 22:46

Sevas wrote:Проблема в том что после второго+ запуска фидбэк не обнуляется, а возвращает предыдущее значение.

Ну, по идее, достаточно выставить Globally Initialize = Initialize On First Call и завести на инициализатор дефолтное значение (ноль, например). Сейчас проверил, вроде всё норм обнуляется.

В саб-ВИ вот так:
2018-03-08_0-44-11.jpg
2018-03-08_0-44-11.jpg (10.64 KiB) Viewed 2335 times

В мэйне вот так:
2018-03-08_0-45-11.jpg
2018-03-08_0-45-11.jpg (38.18 KiB) Viewed 2335 times
User avatar
dadreamer
professor
professor
 
Posts: 3115
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 788
I/O VIP vision internet

Re: ещё раз о FeedBack node

Postby Sevas on 08 Mar 2018, 11:04

Выставил Initialize On First Call (это первое с чем начал экспериментировать до того как спрашивать)
По прежнему после первого запуска значение не реинициализируется
Мне кажется я перебрад уже все комбинации настроек, которые на скриншотах, но ничего не помогает.
Возможно глюк LV? Версия 2013
Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Re: ещё раз о FeedBack node

Postby dadreamer on 08 Mar 2018, 11:08

Sevas, сделайте из вашей программы пример, на котором проблема воспроизводится. Выложите сюда. Поглядим. :wink:
User avatar
dadreamer
professor
professor
 
Posts: 3115
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 788
I/O VIP vision internet

Re: ещё раз о FeedBack node

Postby Sevas on 08 Mar 2018, 11:54

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

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

Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Re: ещё раз о FeedBack node

Postby dadreamer on 08 Mar 2018, 17:31

Sevas wrote:Я записал короткое видео проблемы - вряд ли поможет конечно, но может какую-то упущенную деталь заметите.

А вы всегда программу через Abort останавливаете? Эта кнопка только для отладки и критических ситуаций (когда прога зависла, например). Рекомендуется останавливать программу отдельной кнопкой. Попробуйте, может, из-за этого и Feedback не обнуляется. Также попробуйте запустить в более новом :labview: , 16 или 17 (на тот случай, если это какой-то баг). Также попробуйте заменить FN на сдвиговый регистр. В саб-ВИ это делается так - заключаете весь код в While Loop, создаёте регистр на рамке цикла, подключаете, на терминал остановки цикла заводите True. Таким образом цикл всегда будет выполняться 1 раз, но регистр будет хранить информацию подобно FN (это, кстати, широко использовалось в ранних версиях :labview: , когда FN ещё не изобрели).
User avatar
dadreamer
professor
professor
 
Posts: 3115
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 788
I/O VIP vision internet

Re: ещё раз о FeedBack node

Postby Sevas on 08 Mar 2018, 18:11

Остановка программы не Abortom не помогла.

Попробовал с shift register, но теперь получается что индекс вообще не увеличивается при совпадении условия. всё время 0.
Attachments
img-2018-03-08-18-09-40.png
Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Re: ещё раз о FeedBack node

Postby Sevas on 08 Mar 2018, 18:16

Хотя нет, я поспешил. забыл подключить результат к терминалу.
Но всё тоже самое, после рестарта (не abortom, а правильно по кнопке) индекс по прежнему сохраняется от предыдущего состояния, даже с шифт регистром.
Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Re: ещё раз о FeedBack node

Postby dadreamer on 08 Mar 2018, 18:21

Sevas, чудеса в решете! :help: :D

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

Также можно попробовать сохранить проект под новым именем в новую локацию и по кусочку удалять элементы кода, упрощая, пока не останется минимум, воспроизводящий этот глюк. Потом залить сюда "на посмотреть".
User avatar
dadreamer
professor
professor
 
Posts: 3115
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 788
I/O VIP vision internet

Re: ещё раз о FeedBack node

Postby Sevas on 08 Mar 2018, 18:38

Сам удивляюсь этим чудесам.
Попробовал и такой велосипед. Прилагаю скриншоты.
Результат по прежнему неверный, не уверен, правда, что правильно подключил.
Attachments
img-2018-03-08-18-35-50.png
img-2018-03-08-18-35-43.png
Sevas
user
user
 
Posts: 88
Joined: 23 Feb 2011, 19:32
Location: Sevastopol
LabVIEW Version: 13
Karma: 30

Next

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 16 guests

cron