Список форумов   Список форумов  

реализация линии задержки на ni pci 6351

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

реализация линии задержки на ni pci 6351

Сообщение Minzh » Вт окт 06, 2015 10:46 am

Добрый день. Требуется реализовать линию задержки на пк с установленной в нём ni pci 6351. А именно, по одному каналу, например AI1, производится непрерывное накопление, каждый отсчёт задерживается на заданное количество семплов и затем выдаётся на AO1. При этом, программа должна работать в режиме максимально приближенном к реальному времени. Вопрос, как это грамотно сделать, а именно, как реализуется ввод/вывод для таких целей и что использовать для реализции задержки? Спасибо.
Minzh
Пользователь
 
Сообщений: 16
Зарегистрирован: Вт июл 17, 2007 7:00 pm
Откуда: St. Petersburg, Russia

Re: реализация линии задержки на ni pci 6351

Сообщение Техподдержка NI » Вт окт 06, 2015 12:22 pm

Добрый день. К сожалению, нет какой либо возможности реализовать задержку на аппаратном уровне при непрерывном сборе-генерации. В любом случае Вам необходимо сначала передать данные на ПК а затем записать обратно в память устройства. Соответственно всегда будет присутствовать джиттер вносимый ОС. Тем не менее, есть возможность свести к минимуму задержки на перезапись буфера AO (http://www.ni.com/example/25370/en/).
Задержку можно реализовать достаточно просто – дополнять нулями полученный массив данных с AI. Такой подход гарантирует точную задержку на заданное число семплов.

Инженер технической поддержки, Сидельников Андрей
Техподдержка NI
Специалист LabVIEW
 
Сообщений: 158
Зарегистрирован: Ср мар 20, 2013 9:47 am

Re: реализация линии задержки на ni pci 6351

Сообщение Minzh » Пн окт 26, 2015 9:06 pm

Андрей, благодарю за совет. Всё работает, но осталась одна проблема. А именно, при многократных запусках программы значение задержки меняется. Даже если без добивания нулями сделать простую зависимость - на выходе инвертированная копия сигнала на входе, то в одной половине случаев все работает как надо, а в другой половине фаза как бы и не переворачивается. При этом сдвиг фазы между входным и выходным непрерывным синусом выдерживается достаточно чётко (наблюдал по осцилографу). Может это происходить из-за того, что с каждым запуском проходит разное время между моментом начала накопления и моментом запуска генерации? Если да, то как обычно поступают в таком случае? Спасибо.
Minzh
Пользователь
 
Сообщений: 16
Зарегистрирован: Вт июл 17, 2007 7:00 pm
Откуда: St. Petersburg, Russia

Re: реализация линии задержки на ni pci 6351

Сообщение Техподдержка NI » Ср окт 28, 2015 11:31 am

Добрый день. Необходимо запускать генерацию то триггеру. Пример: https://decibel.ni.com/content/docs/DOC-8264
Техподдержка NI
Специалист LabVIEW
 
Сообщений: 158
Зарегистрирован: Ср мар 20, 2013 9:47 am

Re: реализация линии задержки на ni pci 6351

Сообщение Minzh » Пт ноя 06, 2015 5:49 pm

Спасибо, но пример не очень подходит...

Вместо старой платы у меня теперь ni usb-6343. Прочитал, что у неё на борту 4 счётчика/таймера. И возникла мысль следующая: при запуске накопления (без триггера) одновременно по триггеру запускать таймер, который в свою очередь своим тиком запускает процесс генерации. Однако, столкнулся с двумя трудностями:
1. что использовать в качестве управляющего сигнала для запуска таймера, AIStarttrigger это правильное решение?
2. если запускать все три задачи друг за другом, т.е. генерация, таймер и накопление, то программа ругается, что выходной буфер пуст, это можно как-то "обойти"?

И ещё вопрос, я в правильном направлении мыслю?
Minzh
Пользователь
 
Сообщений: 16
Зарегистрирован: Вт июл 17, 2007 7:00 pm
Откуда: St. Petersburg, Russia

Re: реализация линии задержки на ni pci 6351

Сообщение Техподдержка NI » Пн ноя 09, 2015 1:35 pm

Добрый день. Можно попробовать реализовать и таким образом. Для запуска нужно использовать (если первым стартует сбор данных) ai/SampleClock. Подобная реализация рассматривается здесь: https://lavag.org/topic/10379-continuous-triggering/, возможно вам это поможет.
Техподдержка NI
Специалист LabVIEW
 
Сообщений: 158
Зарегистрирован: Ср мар 20, 2013 9:47 am


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron