State Machines с использованием Labview - PullRequest
1 голос
/ 24 февраля 2012

У меня есть сложенная последовательность, которая непрерывно выполняет 2 разных теста.Давайте назовем их test1 и test2.Так что это двухэтапная последовательность в цикле while.У меня есть кнопка с надписью «Start Test1», которая переходит в цикл while и выполняет test1, test2, test1, test2 и т. Д. Я хочу добавить еще одну кнопку с надписью «Start Test2», которая сначала запускает test2, а затем test1.Таким образом, в основном изменился бы порядок моей последовательности в стеке, чтобы сначала выполнить код test2 вместо кода test1 (test2, test1, test2, test1 и т. Д.).

Существует ли простой способ сделать это?Спасибо за любую помощь!

1 Ответ

4 голосов
/ 25 февраля 2012

Прошло довольно много времени с тех пор, как я использовал LabVIEW, но здесь ... Я бы попробовал заменить Stacked Sequence структурой Case. Структура случая должна иметь случай Test1 и случай Test2; это все равно будет место внутри вашего цикла while.

Ввод в структуру дела должен быть 1, если вы хотите сначала запустить Test1 (или 2, чтобы сначала запустить Test2). После запуска Test1 он выдаст 2, передав это значение обратно на свой вход, используя регистр сдвига в цикле while (показано здесь ). Аналогично, в случае Test2 будет выдано 1, как только оно будет выполнено, и передано обратно через регистр сдвига.


Согласно комментарию Яира, мое предложение здесь представляет собой общий шаблон проектирования, известный как State Machine , который при вытягивании будет выглядеть как блок-схема вашей программы. Учебное пособие NI написано здесь , которое фактически включает в себя структуру case, вложенную в цикл while. Надеюсь, это поможет!

...