Работа с ElvisII - генератор сигналов произвольной формы

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

Работа с ElvisII - генератор сигналов произвольной формы

Postby pakanpak on 30 Mar 2017, 21:01

Добрый день, форумчане!

Хотел обратиться к вам за помощью, может кто натолкнет в нужное русло или выдаст очевидный ответ, который я не вижу.
Итак, что у меня имеется и что мне нужно. Есть стенд ElvisII с ЦАП и экспрессВИ "Генератор сигналов произвольной формы". Очевидно, что он нужен для генерации сигналов нетривиальной формы. Но загвоздка в том, что генерировать очередной сигнал он должен не постоянно, а по запросу (в простейшем случае по таймеру).

Я начал осваивать язык LV совсем недавно и многих, даже самых очевидных, хитростей не знаю. Я набросал простую схемку.
Слева два цикла For формируют массив точек, из которых и будет сформирован сигнал необходимой формы. Записывается массив точек в генератор единожды. Справа цикл While для работы виртуального осциллографа, по большому счету его можно оставить пустым, а к выходным каналам ЦАП подключить реальный осциллограф.

Проблема, которую я не решил. Как организовать переменное включение/выключение генератора? В цикл while ведь он не лезет... :help:

Спасибо за ответы!
PS. Это моя первая тема на форуме. Если накосячил с оформлением или подачей информации - сильно не пинайте, буду исправляться :wink:
Attachments
AGW.jpg
pakanpak
interested
interested
 
Posts: 5
Joined: 30 Mar 2017, 20:34
LabVIEW Version: 16
Karma: 0

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby Artem.spb on 30 Mar 2017, 23:27

Лень смотреть, что внутри функций элвиса, но что знаит " В цикл while ведь он не лезет."?
Функцию в цикл и вперёд.
Artem.spb
expert
expert
 
Posts: 1182
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 212
CLD hardware I/O VIP freelance

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby pakanpak on 31 Mar 2017, 13:38

Artem.spb, не все так просто... Или просто, но я не понимаю. Вот цикл, при старте выдает ошибку
Attachments
Ошибка.png
pakanpak
interested
interested
 
Posts: 5
Joined: 30 Mar 2017, 20:34
LabVIEW Version: 16
Karma: 0

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby Andrew Lunev on 31 Mar 2017, 13:48

Все верно написано в описании ошибки и это верно не только для Элвиса, но и для всех плат ввода/вывода от NI. Если действительно хотите генератор произвольной формы сделать и чтобы менялись параметры сигнала во время генерации, то экспресс приборами пользоваться не получится, надо обычные VI использовать. Как именно использовать и в чем отличие буферов памяти на плате и в программе лучше всего почитать в учебном курсе NI "Системы сбора данных", раздел аналогового вывода.
User avatar
Andrew Lunev
leader
leader
 
Posts: 847
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby pakanpak on 31 Mar 2017, 14:17

Andrew Lunev, спасибо за развернутый ответ. Правильно я понимаю, что я не только не смогу менять параметры, но и включать/выключать этот генератор во время выполнения программы без изменения параметров?
pakanpak
interested
interested
 
Posts: 5
Joined: 30 Mar 2017, 20:34
LabVIEW Version: 16
Karma: 0

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby Andrew Lunev on 31 Mar 2017, 14:38

Скорее всего не сможете. С Элвисом я очень давно и мало работал, особенностей не помню. Но смысл в том, что вы сначала в буфер платы помещаете свой сигнал и потом запускаете задачу и генерируется сигнал на основе этих данных из платы. Гененируется сигнал по кругу, пока не остановите задачу. Экспресс прибор сложней задачу сделать не даст. То есть подгрузить новый сигнал в буфер нельзя.
Если нужно менять параметры сигнала налету без остановки задачи, то надо в реальном времени готовить новую порцию сигнала и подгружать ее в буфер, пока из буфера генерируется старый сигнал. Это делается с использованием функций более низкого уровня, чем экспресс приборы. С их помощью можно и триггеры добавить и аппаратные и программные. Или просто амплитуду сигнала в ноль вывести, чем не приостановка генерации?
Включать/выключать генерацию с экспресс приборами это запускать и останавливать задачу генерации. То есть практически перезапускать каждый раз вашу программу. Если необходима непрерывная генерация, то в моменты перезапуска будут разрывы в осциллограмме. Без использования экспресс приборов можно сделать генерацию без разрывов.
Еще можно использовать буфер не на плате Элвиса, а в памяти компьютера, про это и написано в описании ошибки. Но тут узким местом становится USB, он должен успеть перекинуть данные из оперативки в плату и нет гарантий, что форма сигнала будет такой, какой нужно. Получается аппаратное тактирование генерации в плате заменяется программным тактированием и еще под Windows. Шаг по времени будет плавать...
User avatar
Andrew Lunev
leader
leader
 
Posts: 847
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Работа с ElvisII - генератор сигналов произвольной формы

Postby pakanpak on 31 Mar 2017, 15:08

Andrew Lunev, "Если нужно менять параметры сигнала налету без остановки задачи, то надо в реальном времени готовить новую порцию сигнала и подгружать ее в буфер, пока из буфера генерируется старый сигнал. Это делается с использованием функций более низкого уровня, чем экспресс приборы. С их помощью можно и триггеры добавить и аппаратные и программные. Или просто амплитуду сигнала в ноль вывести, чем не приостановка генерации?" - не могли бы Вы посоветовать литературу или статьи на эту тему?
pakanpak
interested
interested
 
Posts: 5
Joined: 30 Mar 2017, 20:34
LabVIEW Version: 16
Karma: 0


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

Who is online

Users browsing this forum: molotok, Yandex and 6 guests

cron