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

Простейшие вопросы в области инженерной разработки

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

Postby Nikol on 25 Apr 2018, 18:30

Добрый день, суть задачи такова: есть фиксированная константа которая сравнивается с изменяемой регулятором(Numeric Contol) величиной, первый раз сравнивается константа и первое значение регулятора(если равны выдать лог. сигнал True), затем нужно куда то записать первое значение регулятора для последующей проверки на равенство со вторым значением регулятора, после записать куда то второе значение для проверки с третьим и так далее.
Помогите пожалуйста разобраться как это реализовать. В голове мысль что нужно использовать локальную переменную и сдвиговые регистры но как не могу понять..
Attachments
Безымянный.png
Безымянный.png (9.41 KiB) Viewed 1740 times
Untitled 1.vi
(7.64 KiB) Downloaded 25 times
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0

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

Postby Kosist on 26 Apr 2018, 09:18

Сдвиговый регистр (shift register) Вам в помощь - http://www.ni.com/getting-started/labvi ... -registers.
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 899
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 253
CLAD I/O VIP students

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

Postby Nikol on 26 Apr 2018, 12:25

Kosist wrote:Сдвиговый регистр (shift register) Вам в помощь - <!-- m --><a class="postlink" href="http://www.ni.com/getting-started/labview-basics/shift-registers">http://www.ni.com/getting-started/labvi ... -registers</a><!-- m -->.
Сдвиговый регистр (shift register) Вам в помощь

Спасибо за отклик, про сдвиговые регистры я знаю(передача данных из прошлой интерации) я не могу сообразить как Сохранить результат прошлой интерации для работы в следующей( Это из сдвигового регистра внутри цикла нужно подать на структуру Case?( например при условии что следующее значение интерации больше 0) но откуда результат прошлой интерации взять? Тоже из Shift register?
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0

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

Postby Nikol on 26 Apr 2018, 13:00

Или здесь нужно цикл в цикле организовать в одном из которых сохранялись бы данные(вопросы скорее всего глупые, ну в зависимости от того насколько я понял принцип работы сдвиговых регистров).
PS: Как я понял при создании регистра Numeric Control создаются две стрелки первая это куда подаются данные с контроля, в о вторую записывается результат операции в цикле(однако при изменении значения на контроле будет меняться и значения в регистре
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0

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

Postby MagisterLudi on 27 Apr 2018, 08:55

То, что вы подаёте на правый терминал сдвигового регистра в итерации n, выходит из левого в итерации n+1. А значит для вашей задачи необходимо на правый терминал сдвигового регистра подавать Изменяемую велечину. После этого пример из первого поста заработает за исключением первой итерации цикла, т.к. вы будите сравнивать текущее значение Изменяемой велечины с самим собой. Для того, чтобы разрешить эту проблему, я бы внёс в цикл структуру кейс по номеру итерации, в которой сравнение с константой оставил бы только для первой (нулевой) итерации.
MagisterLudi
interested
interested
 
Posts: 9
Joined: 23 Dec 2015, 14:16
LabVIEW Version: 12
Karma: 1

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

Postby Nikol on 27 Apr 2018, 20:12

MagisterLudi wrote:То, что вы подаёте на правый терминал сдвигового регистра в итерации n, выходит из левого в итерации n+1.

Огроооомное спасибо за объяснение алгоритма работы сдвиговых регистров :super: :1stplace: .
Единственный вопрос а если то же сделать в бесконечном цикле Loop While работать будет также?
И если не сложно можете сказать правильно ли я вас понял с подключением терминалов?(Картинка ниже)
Attachments
1111.png
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0

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

Postby Alex Dem on 27 Apr 2018, 20:56

Nikol, на мой взгляд, лучше будет, если Вы опишите решаемую задачу целиком, так проще понять, в чем нужна помощь.
Возможно PID регулятор сам по себе достаточен и не нужно велосипед изобретать заново?
Alex Dem
user
user
 
Posts: 73
Joined: 06 May 2015, 22:24
LabVIEW Version: 2014
Karma: 8

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

Postby Nikol on 27 Apr 2018, 21:05

Alex Dem wrote:Nikol, на мой взгляд, лучше будет, если Вы опишите решаемую задачу целиком, так проще понять, в чем нужна помощь.
Возможно PID регулятор сам по себе достаточен и не нужно велосипед изобретать заново?

Задача: На вход подается изменяющийся с течением времени сигнал, в начале цикла первое значение сигнала сравнивается с максимальным значением, после чего выдается управляющий логический сигнал T/F, далее происходит поэтапное сравнение входного сигнала с самим собой а именно следующего значения с предыдущим с выдачей логического сигнала, с последующей его записью в массив.
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0

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

Postby Artem.spb on 10 May 2018, 14:47

Странно, что никто не написал

compare.png
compare.png (14.39 KiB) Viewed 1441 times
Artem.spb
expert
expert
 
Posts: 1422
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

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

Postby Nikol on 10 May 2018, 20:37

Странно, что никто не написал

Спасибо
Nikol
beginner
beginner
 
Posts: 42
Joined: 02 Nov 2016, 16:40
LabVIEW Version: 15
Karma: 0


Return to Для чайников

Who is online

Users browsing this forum: No registered users and 7 guests

cron