Данные в файл с учетом реального времени

Работа с файлами и базами данных
Аватара пользователя
Olga_1989
beginner
beginner
Сообщения: 36
Зарегистрирован: 09 ноя 2011, 06:52
Версия LabVIEW: 9.0
Откуда: Екатеринбург
Контактная информация:

Re: Данные в файл с учетом реального времени

Сообщение Olga_1989 »

Но тогда придется делать две кнопки, а мне нужно использовать только одну кнопку
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Данные в файл с учетом реального времени

Сообщение IORIK »

fig1_tmp.jpg
здравствуйте Оля, я не совсем понял ваш вопрос.

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

в вашем случае, значение логической переменной внутрь case-структуры можно передавать с помощью тунеля.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1337
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 44 раза
Контактная информация:

Re: Данные в файл с учетом реального времени

Сообщение AndreyDmitriev »

Olga_1989 писал(а):Но тогда придется делать две кнопки, а мне нужно использовать только одну кнопку
У Вас, судя по всему, не получается создать локальную переменную для кнопки, потому что LabVIEW пишет что-то вроде "Boolean latch action is incompatible with local variables". Дело тут вот в чём: по умолчанию кнопки (надо полагать, Вы использовали OK/Cancel) имеют свойство Latch when released. Это означает, что в момент отпускания кнопка получит значение TRUE, и сразу после первого чтения на блок-диаграмме (или отпускании мышки - в зависимости от того, что наступит раньше) автоматически вернётся в состояние FALSE. Таким образом, если эта кнопка используется в цикле, то значение TRUE мы получим на единственной итерации. При этом локальные переменные своим чтением также вызовут сброс кнопки в исходное состояние. Для того, чтобы избежать состояния гонки, использование локальных переменных (и Value Property Node тоже) не разрешается. Выйти из положения можно, сменив Mechanical Action, но при этом программист будет отвечать за возврат кнопок в исходное состояние (см пример v1.vi).
Другой вариант - разнести взаимодействие с интерфейсом и собственно подпрограмму в разные циклы. Классический пример - получение информации о нажатых клавишах в цикле с event структурой и передача информации во второй цикл с несложным конечным автоматом через очередь (см пример v2). Этот вариант значительно более гибкий в смысле дальнейшего расширения программы - можно просто добавлять новые команды (попробуйте, например, добавить Подпрограмму 2 в первом и втором случае и сразу почувствуете разницу.
Вложения
v2.vi
Пример посложнее
(11.03 КБ) 147 скачиваний
v1.vi
Простой пример
(6.6 КБ) 167 скачиваний
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1337
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 44 раза
Контактная информация:

Re: Данные в файл с учетом реального времени

Сообщение AndreyDmitriev »

IORIK писал(а): как я понимаю labview, в качестве переменных у нас есть только контролы и индикаторы. "локальная переменная" - это некоторый вид ссылки на переменную. Поэтому используя "локальную переменную" наш индикатор может использоваться как контрол, и наоборот.
Не совсем так. Формально ссылка - это Reference. А локальная переменная - это копия контрола или индикатора, связанная с терминалом. Мы можем читать или писать в локальную переменную и записанные данные будут отражены на передней панели (не зависимо от того, контрол это или индикатор). Вообще локальными переменными лучше не пользоваться без крайней на то необходимости, потому что каждое использование создаёт копию переменной в памяти, что может привести к медленному выполнению и неоправданному расходу памяти (если это, например большие массивы данных). Конечно, пара локальных переменных для одной-двух кнопок ни на что не повлияет, но если есть возможность обойтись без переменных, то лучше таки привыкать обходиться без них.
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Данные в файл с учетом реального времени

Сообщение IORIK »

спасибо за разъяснение
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»