Вывод звука для управления вибростендом

Обсуждение вопросов, связанных с обработкой аудио и видео информации

Вывод звука для управления вибростендом

Postby Alex Dem on 21 Jul 2015, 23:58

waves.zip
3 wave файла, необходимые для работы ВП
(1.78 MiB) Downloaded 134 times
Здравствуйте! Нужен совет, как обеспечить вывод звука во время работы цикла While loop таким образом, чтобы не тормозила работа схемы автоматической регулировки на ПИД-регуляторах .
Логика работы ВП следующая. Выбирается папка, где находятся 3 wave файла, которые затем загружаются каждый в свой канал регулирования. В готовом ВП данные о RMS будут получены с помощью USB 6009, но на этапе отладки они берутся с выходов каналов регулирования. Если не выводить сигнал на выход звуковой карты, ВП работает ка необходимо, то есть по каждому из каналов достигается заданный уровень RMS, затем выходы каналов складываются. Когда я пытаюсь вывести результат на звуковуху, сам процесс вывода работает, но "подвешивает" работу цикла While loop, ВП уже не может работать нормально, регулирование становится невозможным. Помогите справиться с этой проблемой.
Attachments
waves.png
waves.vi
(40.4 KiB) Downloaded 125 times
Alex Dem
assistant
assistant
 
Posts: 107
Joined: 06 May 2015, 22:24
LabVIEW Version: 2014, 2018
Karma: 13

Re: Вывод звука для управления вибростендом

Postby dadreamer on 22 Jul 2015, 00:52

Разделите программу на несколько параллельных циклов: цикл UI (обработка событий интерфейса), цикл обработки данных, цикл вывода звука. Синхронизировать циклы можно через очереди, уведомители и прочие инструменты.
User avatar
dadreamer
professor
professor
 
Posts: 3337
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Вывод звука для управления вибростендом

Postby Alex Dem on 22 Mar 2016, 22:06

Решил не создавать новой темы, так как вопрос по той же тематике. В готовую работающую систему управления вибростендом потребовалось добавить управление 8-ю генераторами синусоид, частоты которых качаются от минимальной до максимальной частоты в обе стороны (за 15 минут в одну сторону). Расчет опорной частоты генерации осуществил в параллельном цикле и попытался передать ее значение с помощью локальной переменной 1 раз в секунду. Но в результате получил прерывание колебаний на выходе звуковой карты как раз с частотой 1Гц, как я понимаю из-за того, что не умею пока синхронизировать должным образом процессы в параллельных циклах. Прошу помощи у уважаемых знатоков, подскажите решение. Проект срочен, а я у разбитого корыта.
Attachments
1.png
Цикл генерации и измерения
2.png
Расчет опорных частот
Alex Dem
assistant
assistant
 
Posts: 107
Joined: 06 May 2015, 22:24
LabVIEW Version: 2014, 2018
Karma: 13

Re: Вывод звука для управления вибростендом

Postby dadreamer on 23 Mar 2016, 10:56

Alex Dem, по картинкам не совсем понятна архитектура программы и то, сколько циклов у вас в main vi. На второй картинке я вижу цикл в цикле, да ещё и sequence. Подозреваю, что из-за подобной спонтанной структуры программа и не работает, как нужно.
Alex Dem wrote:не умею пока синхронизировать должным образом процессы в параллельных циклах

Как я писал выше,
dadreamer wrote:Синхронизировать циклы можно через очереди, уведомители и прочие инструменты.

В интернете полно примеров по передаче данных между параллельными циклами. Изучите, как работают механизмы синхронизации, на примере http://www.ni.com/white-paper/3023/en/ (подход "Producer - Consumer"). Посмотрите схожие темы на форуме, например http://www.labviewportal.ru/viewtopic.p ... 096#p66096 , viewtopic.php?p=68893#p68893

А также вот вам литература и примеры:
1) "LabVIEW Основы II: Разработка" : шаблон «Производитель-потребитель» + материал в главе 2 "Передача данных между несколькими циклами"
2) Питер Блюм "LabVIEW: стиль программирования", в частности глава 8 "Шаблоны" и раздел 8.3.1 "Параллельные циклы"
3) примеры в папке C:\Program Files (x86)\National Instruments\LabVIEW 2014\examples\Synchronization

Также следует подумать над архитектурой приложения. У вас есть неплохой задел, так что будет несложно доделать до "конечного автомата". Работу с GUI выносите в один цикл, получение данных с железки - в другой, логику - в третий.
User avatar
dadreamer
professor
professor
 
Posts: 3337
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet


Return to Работа с графикой и звуком

Who is online

Users browsing this forum: No registered users and 1 guest

cron