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

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

Добавлено: 30 мар 2017, 21:01
pakanpak
Добрый день, форумчане!

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

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

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

Спасибо за ответы!
PS. Это моя первая тема на форуме. Если накосячил с оформлением или подачей информации - сильно не пинайте, буду исправляться :wink:

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

Добавлено: 30 мар 2017, 23:27
Artem.spb
Лень смотреть, что внутри функций элвиса, но что знаит " В цикл while ведь он не лезет."?
Функцию в цикл и вперёд.

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

Добавлено: 31 мар 2017, 13:38
pakanpak
Artem.spb, не все так просто... Или просто, но я не понимаю. Вот цикл, при старте выдает ошибку

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

Добавлено: 31 мар 2017, 13:48
Andrew Lunev
Все верно написано в описании ошибки и это верно не только для Элвиса, но и для всех плат ввода/вывода от NI. Если действительно хотите генератор произвольной формы сделать и чтобы менялись параметры сигнала во время генерации, то экспресс приборами пользоваться не получится, надо обычные VI использовать. Как именно использовать и в чем отличие буферов памяти на плате и в программе лучше всего почитать в учебном курсе NI "Системы сбора данных", раздел аналогового вывода.

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

Добавлено: 31 мар 2017, 14:17
pakanpak
Andrew Lunev, спасибо за развернутый ответ. Правильно я понимаю, что я не только не смогу менять параметры, но и включать/выключать этот генератор во время выполнения программы без изменения параметров?

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

Добавлено: 31 мар 2017, 14:38
Andrew Lunev
Скорее всего не сможете. С Элвисом я очень давно и мало работал, особенностей не помню. Но смысл в том, что вы сначала в буфер платы помещаете свой сигнал и потом запускаете задачу и генерируется сигнал на основе этих данных из платы. Гененируется сигнал по кругу, пока не остановите задачу. Экспресс прибор сложней задачу сделать не даст. То есть подгрузить новый сигнал в буфер нельзя.
Если нужно менять параметры сигнала налету без остановки задачи, то надо в реальном времени готовить новую порцию сигнала и подгружать ее в буфер, пока из буфера генерируется старый сигнал. Это делается с использованием функций более низкого уровня, чем экспресс приборы. С их помощью можно и триггеры добавить и аппаратные и программные. Или просто амплитуду сигнала в ноль вывести, чем не приостановка генерации?
Включать/выключать генерацию с экспресс приборами это запускать и останавливать задачу генерации. То есть практически перезапускать каждый раз вашу программу. Если необходима непрерывная генерация, то в моменты перезапуска будут разрывы в осциллограмме. Без использования экспресс приборов можно сделать генерацию без разрывов.
Еще можно использовать буфер не на плате Элвиса, а в памяти компьютера, про это и написано в описании ошибки. Но тут узким местом становится USB, он должен успеть перекинуть данные из оперативки в плату и нет гарантий, что форма сигнала будет такой, какой нужно. Получается аппаратное тактирование генерации в плате заменяется программным тактированием и еще под Windows. Шаг по времени будет плавать...

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

Добавлено: 31 мар 2017, 15:08
pakanpak
Andrew Lunev, "Если нужно менять параметры сигнала налету без остановки задачи, то надо в реальном времени готовить новую порцию сигнала и подгружать ее в буфер, пока из буфера генерируется старый сигнал. Это делается с использованием функций более низкого уровня, чем экспресс приборы. С их помощью можно и триггеры добавить и аппаратные и программные. Или просто амплитуду сигнала в ноль вывести, чем не приостановка генерации?" - не могли бы Вы посоветовать литературу или статьи на эту тему?