2016-04-14 3 views
-1

(screenshot of vi)LabVIEW: Обновление значения в цикле в то время как

Я в настоящее время делает VI, который непрерывно контролирует температуру с помощью термистора и с помощью платы DAQ и транзистор для включения и выключения вентилятора USB в зависимости от температура. Я хочу, чтобы vi включил вентилятор, когда температура превысит определенное значение, но не выключится, пока он не упал намного ниже начальной критической температуры. Чтобы реализовать это, я подумал об использовании цикла while и надеялся постоянно проводить сравнение в цикле, чтобы узнать, превышает ли температура значение выше. Тем не менее, отладка сказала мне, что, как только значение показания температуры входит в цикл while, оно не может получить следующее значение показания температуры. Цикл while застрял в бесконечном цикле, потому что даже провод данных подключен к контуру, цикл не может обновить значение для сравнения. Есть ли другой способ, когда я могу постоянно обновлять число или, скажем, переменную, внутри цикла while после каждой итерации? Я думал о сменном регистре, но я думаю, что это только для совокупной суммы.

Редактировать: Я загрузил скриншот vi. Скриншот имеет сложную последовательность с структурой корпуса. Первоначально это был цикл while, но когда я увидел, что это не сработало, я попробовал этот метод, который также не работал. Является ли измерение температуры внутри цикла while единственным способом?

+2

Это звучит, как вы читаете термистор температуры за пределами вашего цикла в то время, когда вы должны делать это * внутри * цикл, но это трудно сказать, не видя ваш код - можете ли вы загрузить изображение или (лучше) фрагмент VI? – nekomatic

+0

На этот вопрос нельзя ответить без картинки, чтобы показать, что вы делаете. – srm

+0

Я приложил скриншот. Спасибо – Skipher

ответ

2

Есть ли другой способ, когда я могу постоянно обновлять число, или I должен указывать переменную внутри цикла while после каждой итерации?

Сменный регистр будет работать нормально, или если вы хотите использовать что-то еще, вы можете использовать функциональный global.

1

Вы можете использовать обработчик события внутри цикла WHILE для запуска всякий раз, когда на вашей переменной (контроле) есть изменение значения. У вас может быть свой оператор сравнения внутри обработчика событий, который затем устанавливает/сбрасывает ваш выход для вентилятора.

// Примечание: Я не мог смотреть на ваш снимок экрана, так что я лечу слепой :)

Смежные вопросы