Как уже упоминалось, вы можете использовать локальные переменные и узлы proerty для установки значения вашего элемента управления или индикатора.Если вы пытаетесь сохранить данные, есть гораздо лучший способ.
Google "функциональный глобальный" или "глобальный стиль labview 2".Основной шаблон - использовать цикл while, жестко запрограммированный для остановки после одной итерации.Добавьте унифицированный регистр сдвига.Добавить структуру дела внутри цикла.Используйте элемент управления (логическое значение, перечисление или строку), чтобы выбрать структуру дела.Отбросьте пару управления / индикатора того же типа данных на вашем ВП.Подключите индикатор к внешнему выходу правого переключателя на внешней стороне петли.Поместите элемент управления ВНУТРИ петли в «установленный» (обычно истинный, не по умолчанию) корпус и подключите его из корпуса к входу правого переключателя.Перейдите к другому пустому (ым) корпусу (ам) и подключите внутренний выход левого переключателя через корпуса к разъему, который подключается к внутреннему входу.
Поскольку вы не подключили внешний входсдвиг влево это «регистр сдвига в унифицированном виде».В нем будут сохраняться данные последнего вызова VI.Это похоже на объявление переменной в куче в функции переменного тока и получение последнего назначенного значения, доступного вам при следующем вызове функции.
Три основных преимущества - это сохранение потока данных, безопасность потоков и производительность.Вы получаете поток данных, добавляя ошибку IO к вашему VI.Безопасность потока гарантирована, потому что выполнение VI гарантированно будет атомарным.Производительность улучшается, потому что данные LV хотят жить по проводам.Каждый раз, когда вы записываете данные в проэртивный узел элемента управления, среда выполнения LV записывает эти данные в поток пользовательского интерфейса.Я думаю, что аналогичное снижение производительности на основе потоков также для местных жителей, но я не уверен.
За первый комментарий ...
Скопировано здесь по ссылке для вашей выгоды(да, вы, мистер читатель).Проблема: я рассматриваю использование локальных или глобальных переменных;в каком потоке выполняются переменные?
Решение: Распространенным заблуждением является то, что локальные и глобальные переменные операции выполняются в потоке пользовательского интерфейса или требуют замены потока в потоке пользовательского интерфейса - это не так.Далее описывается поведение операций записи и чтения локальных и глобальных переменных:
Запись: при записи в локальную или глобальную переменную LabVIEW не переключается в поток пользовательского интерфейса сразу.Вместо этого LabVIEW записывает значение в буфер передачи, который является защищенной областью памяти.Пользовательский интерфейс обновляется в следующее запланированное время обновления.Можно обновить переменную несколько раз, прежде чем произойдет обновление одного потока или обновление пользовательского интерфейса.Это возможно, потому что переменные работают исключительно в потоке выполнения.
Чтение: при чтении из локальной или глобальной переменной операция будет выполняться в потоке, который выполняет ВП, поэтому вы можете быть уверены, что он это делаетне возникает в потоке пользовательского интерфейса, если установить для системы выполнения в свойствах VI стандарт.Существует механизм защиты потоков, который гарантирует, что ни один из авторов глобальных данных не изменяет данные, пока вы их читаете, но это делается с помощью мьютекса, а не путем перехода к потоку пользовательского интерфейса.Однако, если панель глобальных переменных открыта, то публикуется сообщение для перерисовки глобального элемента управления, и перерисовка будет происходить в потоке пользовательского интерфейса.
nekomatic является правильным.Смена потока не происходит, когда вы пишете местным жителям.