Страница 1 из 1

1D Массив

Добавлено: 10 сен 2017, 08:17
Alexandra
Здравствуйте!
Подскажите, пожалуйста. Вот есть DAQ Assiatant, который считывает напряжение по 2м каналам. Что надо добавить в мой прибор, чтоб первые 10 значений с канала №1 записались в массив Array1, а среднее арифметическое частных от первых 10-ти значений с данными канала №2 - соответственно в Numeric indicator?

Спасибо)

Re: 1D Массив

Добавлено: 10 сен 2017, 09:07
zxc_pavel
Если значения постоянно приходят по одному, то запоминать надо, брать последние 10 и делить уже

Re: 1D Массив

Добавлено: 10 сен 2017, 11:39
Alexandra
:thank: Большое-большое спасибо!!!!

Re: 1D Массив

Добавлено: 10 сен 2017, 12:28
IvanLis
Alexandra писал(а):Здравствуйте!
Подскажите, пожалуйста. Вот есть DAQ Assiatant, который считывает напряжение по 2м каналам. Что надо добавить в мой прибор, чтоб первые 10 значений с канала №1 записались в массив Array1, а среднее арифметическое частных от первых 10-ти значений с данными канала №2 - соответственно в Numeric indicator?

Спасибо)
Можно использовать инструменты PtByPt:
Для формирования массива (FIFO) Data Queue PtByPt VI.
А из массива уже считать Mean, но можно из той же палитры взять Mean PtByPt VI.
Будет проще и нагляднее.

Re: 1D Массив

Добавлено: 10 сен 2017, 15:54
Blackman
...первые 10 значений с канала №1 записались в массив Array1, а среднее арифметическое частных от первых 10-ти значений с данными канала №2 - соответственно в Numeric indicator?

Re: 1D Массив

Добавлено: 11 сен 2017, 05:49
Alexandra
Vsem ogromnoe spasibo! :super:

Pro to, kak polzovatsya PtByPt ya ne ponyala... No ya sdelala 2 drugih varianta, kak mne tut posovetovali. Otlichno rabotayut oba, spasibo)
Vot tak poluchilos, esli interesno:
metod2.png
metod1.png

Re: 1D Массив

Добавлено: 17 сен 2017, 16:48
Alexandra
В продолжении темы еще вопрос возник. Посоветуйте, пожалуйста!
У меня в программе сначала 8 цифровых каналов перебираются, с каждого из них последовательно обрабатываются данные, на выходе получается число. А как это число обратно в перебор каналов отправить, чтобы программа остановилась на выбранном канале?
На первой картинке все работает, но число в конце не отправляется.
А на второй картинке что-то работает, но не как надо...(

Re: 1D Массив

Добавлено: 17 сен 2017, 19:50
zxc_pavel
На втором рисунке у Вас когда закончится цикл
8 цифровых каналов перебираются, с каждого из них последовательно обрабатываются данные, на выходе получается число
левая часть кода уже выполнится - индикатор считается старый. Выполняйте запись после правого кейса

Re: 1D Массив

Добавлено: 18 сен 2017, 09:12
Alexandra
zxc_pavel писал(а):Выполняйте запись после правого кейса
Это как понять? Вставить еще один перебор каналов сзади? Так что-то после нескольких запусков переполняется и перестает работать...

Re: 1D Массив

Добавлено: 18 сен 2017, 11:29
Kosist
Используйте сдвиговый регистр (shift register); и делайте расчет нужного канала внутри (а не за циклом) -> записывайте значение линии в шифт регистр, и используйте как вход для булевых значений.
Далее, число в булеан массив можно преобразовать проще немного, (функция Number to Boolean Array)...
Ну, и классика - код в студию... На пальцах показывать не очень удобно )))

Re: 1D Массив

Добавлено: 18 сен 2017, 12:13
Alexandra
:suicide: Извините, я нииичего не поняла...( Булеан массив из чего?
Вот прибор со сдвиговыми регистрами и прибор, который работает, но неправильно.

Re: 1D Массив

Добавлено: 18 сен 2017, 18:57
Blackman
... и прибор, который работает, но неправильно.
В основном все нормально. Однако после выполнения For Loop необходимо сделать очистку задачи DAQ Assist2 (терминал task out), чтобы освободить ресурсы (железо) для DAQ Assist3. Смотри вложение.
Да, в обоих задач 0 физический канал (линия 0) порта находится в самом конце списка виртуальных каналов -> он будет включаться при записи в порт значения 128

Re: 1D Массив

Добавлено: 19 сен 2017, 12:51
Alexandra
А у Вас оно работает? Мне выдает ошибку... И я не понимаю,что оно хочет сказать(

Re: 1D Массив

Добавлено: 19 сен 2017, 13:37
Blackman
Да небольшой промах). Надо уменьшить размер входного массива данных в DAQ Asisst2 и DAQ Asisst3. Сообщение в ошибке прямо указывает на это: Количество каналов в задаче 8, а размер входного массива данных 32. У меня при проверке естественно была другая ошибка DAQmx: Device not found.

Re: 1D Массив

Добавлено: 20 сен 2017, 13:15
Alexandra
Ай, спасибо! Спасибо!!!! Все работает отлично) :dance: