Переходы к разным фрагментам кода

Простейшие вопросы в области инженерной разработки
Ответить
LEO_NIK
user
user
Сообщения: 86
Зарегистрирован: 09 сен 2016, 20:09
Версия LabVIEW: 2013
Контактная информация:

Переходы к разным фрагментам кода

Сообщение LEO_NIK »

Здравствуйте! В ходе создания ВП (имитатор радиостанции) появился следующий вопрос. При включении прибора происходят начальные установки регуляторов и кнопок в рабочее состояние. Использую машину состояний. Есть потенциометр, который НЕ ДОЛЖЕН быть выведен в крайнее положение против часовой стрелки. Если он там (а это зависит от того, в каком положении он был до выключения при предыдущем пользовании радиостанцией), то мигает соответствующий индикатор и необходимо его повернуть на некоторый угол, чтобы сигнализатор перестал мигать. Это у меня сделано. После этой операции продолжается процесс начальных установок. После всех начальных установок начинается работа с радиостанцией и этот потенциометр участвует в работе. И если он будет скручен пользователем в то же самое крайнее положение, то опять должен замигать тот же индикатор, чтобы пользователь вновь вывел потенциометр из крайнего положения. А теперь вопрос: то, что делалось при начальной установке параметров оказывается уже не доступно (принцип последовательного выполнения программы в :labview:, условно слева направо ), по блок схеме программа далеко "справа". Вращение потенциометра на этом этапе ни к чему не приводит. Как кратковременно вернуть программу к тому фрагменту машины состояний (там и Case, и цикл был), где было выведение регулятора из нерабочего положения, а после устранения вернуться к прерванному коду далеко "справа"? И таких ситуаций, когда нужно вернуться к предыдущим элементам кода, а потом продолжить выполнение какой-то задачи не мало. С уважением, Леонид.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Переходы к разным фрагментам кода

Сообщение IvanLis »

LEO_NIK писал(а):Как кратковременно вернуть программу к тому фрагменту машины состояний (там и Case, и цикл был), где было выведение регулятора из нерабочего положения, а после устранения вернуться к прерванному коду далеко "справа"? И таких ситуаций, когда нужно вернуться к предыдущим элементам кода, а потом продолжить выполнение какой-то задачи не мало.
Сделайте переменную (если ее нет), которая определяет режим работы (Инициализация, Настройка, Работа и т.д. не знаю что у Вас там).
Отдельное состояние SM, которое инициализируется при изменении значения "регулятора".

В процессе работы, если изменяется значение "регулятора", то SM переходит в соответствующее состояние, в котором выполняется проверка режима работы. И если это "Инициализация", то выполняем следующие.... действия.

---------------------
Уже обсуждали на форуме. По моему, чем на меньшие шаги Вы разобьете SM, тем гибче можно управлять ею.
LEO_NIK
user
user
Сообщения: 86
Зарегистрирован: 09 сен 2016, 20:09
Версия LabVIEW: 2013
Контактная информация:

Re: Переходы к разным фрагментам кода

Сообщение LEO_NIK »

IvanLis писал(а): Сделайте переменную (если ее нет), которая определяет режим работы (Инициализация, Настройка, Работа и т.д. не знаю что у Вас там).
Уже обсуждали на форуме. По моему, чем на меньшие шаги Вы разобьете SM, тем гибче можно управлять ею.
Спасибо за ответ.
1. Локальные переменные контролов, индикаторов у меня уже есть. А это какая-то другая переменная? Где найти её создание. В " :labview: для всех" она есть? Или где ещё о ней прочитать?
2. По каким ключевым словам найти обсуждение на форуме этого вопроса?
Аватара пользователя
ladik

Silver
developer
developer
Сообщения: 275
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2015, 2019
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Переходы к разным фрагментам кода

Сообщение ladik »

Вот демка. Можно попробовать соорудить что-то подобное.
Вложения
Demo.vi
(12.54 КБ) 82 скачивания
Дорогу осилит идущий.
LEO_NIK
user
user
Сообщения: 86
Зарегистрирован: 09 сен 2016, 20:09
Версия LabVIEW: 2013
Контактная информация:

Re: Переходы к разным фрагментам кода

Сообщение LEO_NIK »

ladik писал(а):Вот демка
Спасибо!
Аватара пользователя
ladik

Silver
developer
developer
Сообщения: 275
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2015, 2019
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Переходы к разным фрагментам кода

Сообщение ladik »

Немного упростил. Лишний сдвиговый регистр был. Проверка производится через определённый период времени.
Вложения
Demo.vi
(12.65 КБ) 93 скачивания
Дорогу осилит идущий.
LEO_NIK
user
user
Сообщения: 86
Зарегистрирован: 09 сен 2016, 20:09
Версия LabVIEW: 2013
Контактная информация:

Re: Переходы к разным фрагментам кода

Сообщение LEO_NIK »

ОК! А можно ли сделать постоянную проверку? Или через очень короткие интервалы времени, например, через 1 сек или даже меньше? Но это, видимо, нагрузка на процессор, торможение программы? Насколько это заметно?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Переходы к разным фрагментам кода

Сообщение IvanLis »

LEO_NIK писал(а):ОК! А можно ли сделать постоянную проверку? Или через очень короткие интервалы времени, например, через 1 сек или даже меньше? Но это, видимо, нагрузка на процессор, торможение программы? Насколько это заметно?
Для генерации событий UI используйте Event Str (http://zone.ni.com/reference/en-XX/help ... n_labview/)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»