Как записать промежуточную переменную для дальнейшей работы

Простейшие вопросы в области инженерной разработки
Ответить
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Как записать промежуточную переменную для дальнейшей работы

Сообщение Nikol »

Добрый день, суть задачи такова: есть фиксированная константа которая сравнивается с изменяемой регулятором(Numeric Contol) величиной, первый раз сравнивается константа и первое значение регулятора(если равны выдать лог. сигнал True), затем нужно куда то записать первое значение регулятора для последующей проверки на равенство со вторым значением регулятора, после записать куда то второе значение для проверки с третьим и так далее.
Помогите пожалуйста разобраться как это реализовать. В голове мысль что нужно использовать локальную переменную и сдвиговые регистры но как не могу понять..
Вложения
Безымянный.png
Безымянный.png (9.41 КБ) 7740 просмотров
Untitled 1.vi
(7.64 КБ) 81 скачивание
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Kosist »

Сдвиговый регистр (shift register) Вам в помощь - http://www.ni.com/getting-started/labvi ... -registers.
Мы делили апельсин - много наших полегло...
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Nikol »

Kosist писал(а):Сдвиговый регистр (shift register) Вам в помощь - <!-- m --><a class="postlink" href="http://www.ni.com/getting-started/labvi ... rted/labvi ... -registers</a><!-- m -->.
Сдвиговый регистр (shift register) Вам в помощь
Спасибо за отклик, про сдвиговые регистры я знаю(передача данных из прошлой интерации) я не могу сообразить как Сохранить результат прошлой интерации для работы в следующей( Это из сдвигового регистра внутри цикла нужно подать на структуру Case?( например при условии что следующее значение интерации больше 0) но откуда результат прошлой интерации взять? Тоже из Shift register?
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Nikol »

Или здесь нужно цикл в цикле организовать в одном из которых сохранялись бы данные(вопросы скорее всего глупые, ну в зависимости от того насколько я понял принцип работы сдвиговых регистров).
PS: Как я понял при создании регистра Numeric Control создаются две стрелки первая это куда подаются данные с контроля, в о вторую записывается результат операции в цикле(однако при изменении значения на контроле будет меняться и значения в регистре
MagisterLudi
beginner
beginner
Сообщения: 11
Зарегистрирован: 23 дек 2015, 14:16
Версия LabVIEW: 12
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение MagisterLudi »

То, что вы подаёте на правый терминал сдвигового регистра в итерации n, выходит из левого в итерации n+1. А значит для вашей задачи необходимо на правый терминал сдвигового регистра подавать Изменяемую велечину. После этого пример из первого поста заработает за исключением первой итерации цикла, т.к. вы будите сравнивать текущее значение Изменяемой велечины с самим собой. Для того, чтобы разрешить эту проблему, я бы внёс в цикл структуру кейс по номеру итерации, в которой сравнение с константой оставил бы только для первой (нулевой) итерации.
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Nikol »

MagisterLudi писал(а):То, что вы подаёте на правый терминал сдвигового регистра в итерации n, выходит из левого в итерации n+1.
Огроооомное спасибо за объяснение алгоритма работы сдвиговых регистров :super: :1stplace: .
Единственный вопрос а если то же сделать в бесконечном цикле Loop While работать будет также?
И если не сложно можете сказать правильно ли я вас понял с подключением терминалов?(Картинка ниже)
Вложения
1111.png
Alex Dem
assistant
assistant
Сообщения: 119
Зарегистрирован: 06 май 2015, 22:24
Версия LabVIEW: 2014, 2018
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Alex Dem »

Nikol, на мой взгляд, лучше будет, если Вы опишите решаемую задачу целиком, так проще понять, в чем нужна помощь.
Возможно PID регулятор сам по себе достаточен и не нужно велосипед изобретать заново?
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Nikol »

Alex Dem писал(а):Nikol, на мой взгляд, лучше будет, если Вы опишите решаемую задачу целиком, так проще понять, в чем нужна помощь.
Возможно PID регулятор сам по себе достаточен и не нужно велосипед изобретать заново?
Задача: На вход подается изменяющийся с течением времени сигнал, в начале цикла первое значение сигнала сравнивается с максимальным значением, после чего выдается управляющий логический сигнал T/F, далее происходит поэтапное сравнение входного сигнала с самим собой а именно следующего значения с предыдущим с выдачей логического сигнала, с последующей его записью в массив.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3387
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Artem.spb »

Странно, что никто не написал
compare.png
compare.png (14.39 КБ) 7441 просмотр
Nikol
beginner
beginner
Сообщения: 42
Зарегистрирован: 02 ноя 2016, 16:40
Версия LabVIEW: 15
Контактная информация:

Re: Как записать промежуточную переменную для дальнейшей раб

Сообщение Nikol »

Странно, что никто не написал
Спасибо
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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