Как заставить цикл labview останавливаться один раз? - PullRequest
2 голосов
/ 20 марта 2019

Я новичок в LabView, и проблема заключается в следующем: я хочу останавливаться только тогда, когда значения отличаются и не останавливается после обновления. неправильный путь будет:

неправильный путь: новое значение отличается от старого

неправильный путь: новое значение равно старому

Я подчеркнул, что это неправильный путь, потому что цикл все еще останавливается даже в случае false, который не содержит структуру остановки.

Редактировать: ссылка на код: скачать здесь

Ответы [ 3 ]

2 голосов
/ 22 марта 2019

Как указала Саломе, я пересоздал ваше требование с узлами обратной связи.

Using Feedback Nodes

Дайте мне знать, если вам понадобится дополнительная помощь!

2 голосов
/ 29 марта 2019

В Labview 2018 вы также можете использовать функцию «Is Value Changed».SubVI - это просто синтаксический suger, который реализуется полиморфизмом податливых VI.Функциональность такая же, как предлагает Саломе.

Is Value Changed

2 голосов
/ 21 марта 2019

Тестирование:

Я реализовал код в моем LabVIEW, и он, кажется, работает просто отлично!Если значения b_in и b_out различны, он ожидает заданное время, если они одинаковы, он не ждет.Вы можете использовать кнопку «Highlight Execution» , чтобы протестировать ее в своем коде.

Решение:

Если вы позволите ему работать в цикле, возможно, есть состояние гонки .Локальные переменные предназначены для этой проблемы.Я бы использовал их как можно реже.Если вы запускаете case-структуру в цикле, вы должны использовать shift-registers.

В этом вопросе есть некоторые неясные моменты, на которые невозможно ответить без дополнительной информации,поэтому, пожалуйста, предоставьте редактирование для них:

  • Является ли это просто частью большего vi?
  • Можете ли вы предоставить код целого vi?
  • фрагмент кода вашего вопроса выполняется в цикле?

(я буду редактировать ответ, если будет предоставлена ​​новая информация)

Надеюсь, я мог бы помочь вам:)

...