Меня интерессует такой вопрос:
что будет если использовать неинициализированный сдвиговой регистр в реинтрантном приборе и при этом использовать клоны таких приборов несколько раз в программе?
Я бы хотел разобраться с этим, потому что мне приходится такое использовать, а что именно при этом происходит, я не очень понимаю.
Может кто нибудь разъяснит? Спасибо
Реинтрантность
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Реинтрантность
Если рассуждать напрямую, то реинтрантные VI всегда работают в различных областях памяти, следовательно и значения сдвиговых регистров храняться так же, поэтому перекрытия невозможны. Если убрать реинтрантность, то неинициализированные сдвиговые регистры будут иметь общий адрес обращения в памяти. Ну и если запустить VI спустя некоторое время после предыдущих вызовов, в которой сдвиговый регистр неинициализируется даже внутри блока кода, то прочитаться может все что угодно.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Реинтрантность
А нужно ли использовать реинтрантность если надо открывать подприбор по команде кнопки лицевой
панели? Т.е. мне нужно открыть подприбор как вторым окном, провести там измерения, закрыть и далее работать в
в основном ви. Как это делается?
панели? Т.е. мне нужно открыть подприбор как вторым окном, провести там измерения, закрыть и далее работать в
в основном ви. Как это делается?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Реинтрантность
Здесь реинстрантность непричём. Дальнейшее не относится к теме, если хочешь спроси в отдельной теме.Confocal писал(а):А нужно ли использовать реинтрантность если надо открывать подприбор по команде кнопки лицевой
панели? Т.е. мне нужно открыть подприбор как вторым окном, провести там измерения, закрыть и далее работать в
в основном ви. Как это делается?
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Реинтрантность
eg, про реинтратность я спросил из-за того, что видел в examples reentrant panels.vi, но скорее это не сюда
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Реинтрантность
Согласен с Crowbar.
IMHO, Объявление прибора с неинициализированным сдвиговым регистром реинтерантным имеет
смысл для vi считающих что-то вроде скользящего среднего ... и совешенно не имеет
смысла для, например, функциональных глобальных переменных
IMHO, Объявление прибора с неинициализированным сдвиговым регистром реинтерантным имеет
смысл для vi считающих что-то вроде скользящего среднего ... и совешенно не имеет
смысла для, например, функциональных глобальных переменных
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows