ещё раз о FeedBack node

Простейшие вопросы в области инженерной разработки
Kayfolom
assistant
assistant
Сообщения: 119
Зарегистрирован: 16 фев 2009, 12:55
Версия LabVIEW: 8.6
Контактная информация:

ещё раз о FeedBack node

Сообщение Kayfolom »

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

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

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

Спасибо.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: ещё раз о FeedBack node

Сообщение Kosist »

Вначале, нужно понимать что виайка с FGV - functional global variable (неинициализированный шифт регистр) или Feedback Node не должна быть реетрантной.
Используя одну и ту же функцию с FGV (или же Feedback Node), значение FGV будет сохраняться.
В случае классов - каждая инстанция классов, если выполняет "родительский" метод, будет разделять значение тоже. Как пример - высылаю скрин простого эксперимента.
Кстати, иногда возможен "пропуск" выполнения такой виайки с FGV - это видно по значениям.
Example.PNG
Мы делили апельсин - много наших полегло...
Kayfolom
assistant
assistant
Сообщения: 119
Зарегистрирован: 16 фев 2009, 12:55
Версия LabVIEW: 8.6
Контактная информация:

Re: ещё раз о FeedBack node

Сообщение Kayfolom »

Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?
Аватара пользователя
IvanLis

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

Re: ещё раз о FeedBack node

Сообщение IvanLis »

Kayfolom писал(а):Спасибо.
А, что такое реетрантной? и как дело у FGV обстоит с clone vi?
Реентерабельность
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

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

Имеется subVI который крутится внутри while loopa main.vi
Проблема в том что после второго+ запуска фидбэк не обнуляется, а возвращает предыдущее значение.
Методом тыка настроить не удалось, подскажите как выставить все настройки так, чтобы происходило обнуление фидбэка при перезапуске main.vi, ибо на инглиш форумах не все настройки показывают и текст по теме на ингилише довольно трудно понимаю...
Вложения
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 КБ) 6850 просмотров
img-2018-03-07-21-33-05.png
img-2018-03-07-21-33-05.png (9.39 КБ) 6850 просмотров
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: ещё раз о FeedBack node

Сообщение Blackman »

Поставьте "галку" на пункт меню Initialize On First Call. Должен измениться значок инициализации * на значок функции First Call.
Аватара пользователя
dadreamer

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

Re: ещё раз о FeedBack node

Сообщение dadreamer »

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

В саб-ВИ вот так:
2018-03-08_0-44-11.jpg
2018-03-08_0-44-11.jpg (10.64 КБ) 6842 просмотра
В мэйне вот так:
2018-03-08_0-45-11.jpg
2018-03-08_0-45-11.jpg (38.18 КБ) 6842 просмотра
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

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

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

Re: ещё раз о FeedBack node

Сообщение dadreamer »

Sevas, сделайте из вашей программы пример, на котором проблема воспроизводится. Выложите сюда. Поглядим. :wink:
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

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

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

_WDwmUOd-Zc
Аватара пользователя
dadreamer

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

Re: ещё раз о FeedBack node

Сообщение dadreamer »

Sevas писал(а):Я записал короткое видео проблемы - вряд ли поможет конечно, но может какую-то упущенную деталь заметите.
А вы всегда программу через Abort останавливаете? Эта кнопка только для отладки и критических ситуаций (когда прога зависла, например). Рекомендуется останавливать программу отдельной кнопкой. Попробуйте, может, из-за этого и Feedback не обнуляется. Также попробуйте запустить в более новом :labview: , 16 или 17 (на тот случай, если это какой-то баг). Также попробуйте заменить FN на сдвиговый регистр. В саб-ВИ это делается так - заключаете весь код в While Loop, создаёте регистр на рамке цикла, подключаете, на терминал остановки цикла заводите True. Таким образом цикл всегда будет выполняться 1 раз, но регистр будет хранить информацию подобно FN (это, кстати, широко использовалось в ранних версиях :labview: , когда FN ещё не изобрели).
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

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

Попробовал с shift register, но теперь получается что индекс вообще не увеличивается при совпадении условия. всё время 0.
Вложения
img-2018-03-08-18-09-40.png
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

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

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

Re: ещё раз о FeedBack node

Сообщение dadreamer »

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

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

Также можно попробовать сохранить проект под новым именем в новую локацию и по кусочку удалять элементы кода, упрощая, пока не останется минимум, воспроизводящий этот глюк. Потом залить сюда "на посмотреть".
Sevas
user
user
Сообщения: 89
Зарегистрирован: 23 фев 2011, 19:32
Версия LabVIEW: 13
Откуда: Sevastopol

Re: ещё раз о FeedBack node

Сообщение Sevas »

Сам удивляюсь этим чудесам.
Попробовал и такой велосипед. Прилагаю скриншоты.
Результат по прежнему неверный, не уверен, правда, что правильно подключил.
Вложения
img-2018-03-08-18-35-50.png
img-2018-03-08-18-35-43.png
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»