Запуск и остановка по триггеру

Захват, обработка и генерирование сигнала

Запуск и остановка по триггеру

Postby Darkagent on 09 Sep 2013, 09:55

Доброго времени суток.

Подскажите, пожалуйста, как сделать запуск и остановку по триггеру? Есть АЦП NI usb-6363. Есть некие датчики, регистрирующие сигнал в течении каждого оборота двигателя. С них мы записываем сигнал. На валу двигателя есть датчик положения, с которого приходит TTL синхросигнал. Необходимо по первому синхросигналу начать запись данных с датчиков и по второму (когда сделает один оборот) закончить. Очень жесткая привязка по времени. Необходимо получить данные ровно от 1 оборота (ну или чем ближе это будет к правде тем лучше). Для понимания - регистрация сигнала с частотой 1ггц, частота вращения вала - 10-50кгц.

Я пытался сделать через триггеры: запуск задачи - настройка часов - start digital edge trigger - reference digital edge trigger - цикл считывания данных, но застрял т.к. данные либо теряются в кольцевом буфере, либо триггер вообще не срабатывает.
Darkagent
interested
interested
 
Posts: 3
Joined: 09 Sep 2013, 09:30
LabVIEW Version: 2011
Karma: 0

Re: Запуск и остановка по триггеру

Postby Borjomy_1 on 09 Sep 2013, 11:02

"Для понимания - регистрация сигнала с частотой 1ггц,"
NI USB-6363
NI X Series multifunction DAQ devices for USB provide a new level of performance with NI-STC3 timing and synchronization technology, NI Signal Streaming for high ... Analog Inputs: 32 SE/16 DIFF · 2 MS/s · 16 bits
Analog Outputs: 4 · 2.86 MS/s · 16 bits
Digital I/O: 48 DIO · 1 MHz
Counter/Timers: 4 · 32 bits · 100 MHz
Measurement Type: Digital, Frequency, Quadrature encoder, Voltage

Если предположить, что сигнал с частотой не 1 ГГц, а 1 МГц, то получается в лучшем случае 100 отсчетов на оборот. А такой объем в кольцевом буфере никак не может теряться.
Borjomy_1
expert
expert
 
Posts: 1756
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Запуск и остановка по триггеру

Postby Andrew Lunev on 09 Sep 2013, 12:50

Запуск по триггеру делается элементарно, а вот про останов по триггеру первый раз слышу. Если получится реализовать такое на стандартном DAQmx, то расскажите как.
Однако, не понятно, зачем это надо.
Если хотите снять показания и потом их обработать, то совершенно не обязательно останавливать задачу в определенное время, лишние данные можно потом отрезать.
Если же хотите перезапускать задачу на каждом обороте, то это не получится делать даже с частотой 100 Гц.

Я бы вашу задачу делал на cRIO, там можно и запуск и останов сделать по сигналу с датчика оборотов.

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

Re: Запуск и остановка по триггеру

Postby Darkagent on 09 Sep 2013, 13:24

Да, действительно, я описался. Так и получается, 100 точек на оборот

Вот что тут http://www.ni.com/white-paper/4329/en пишут:
Pretriggered Acquisition on a Digital Reference Trigger
Once the trigger signal is received, a specified number of points before and after the trigger are returned to the calling application (e.g., LabVIEW, C++, etc.) by the driver.

Таким образом он выдает такую длину сигнала, которая указа в samples per channel: pretriggered samples per channel до триггера и разницу после триггера. Т.е. это не один оборот, а больше.

Программа уже есть, отлажена и работает, но для старой ацп )) Теперь необходимо в старую программу подставить новый блок сбора данных. Можно даже по образу и подобию повторить старый, но я застрял.

Вот кусок той проги.
https://www.dropbox.com/s/9fghp2j81i9if ... %D0%B9.jpg

Триггер А запускает, триггер Б останавливает.

В данной задаче не важна скорость перезапуска. Главное собрать точно с 1 оборота.
Darkagent
interested
interested
 
Posts: 3
Joined: 09 Sep 2013, 09:30
LabVIEW Version: 2011
Karma: 0

Re: Запуск и остановка по триггеру

Postby Andrew Lunev on 09 Sep 2013, 13:55

Пример вашей программы реализован на TraditionalDAQ, не знаю, на сколько его поддерживает новая плата, но он уже лет 10, как считается устаревшим. Возможно в нем и можно задать триггер на останов, в этом я не разбирался, давно это было...
Вам же скорее всего придется реализовывать программу с DAQmx, а в нем про триггер останова я не слышал. Скорее всего реализовать полный аналог не получится.
Darkagent wrote:В данной задаче не важна скорость перезапуска. Главное собрать точно с 1 оборота.

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

Re: Запуск и остановка по триггеру

Postby Darkagent on 09 Sep 2013, 14:31

Проблема решена, спасибо Andrew Lunev. Сигнал с PFI0 продублировал на аналоговый вход. Запускаю по триггеру, собираю чуть больше данных, чем нужно, обрезаю функцией Trigger and gate по продублированному синхросигналу. Благо на скорости АЦП доп. канал не сказывается.
Darkagent
interested
interested
 
Posts: 3
Joined: 09 Sep 2013, 09:30
LabVIEW Version: 2011
Karma: 0

Re: Запуск и остановка по триггеру

Postby Elena_frz on 25 Feb 2016, 11:49

Darkagent wrote:Проблема решена, спасибо Andrew Lunev. Сигнал с PFI0 продублировал на аналоговый вход. Запускаю по триггеру, собираю чуть больше данных, чем нужно, обрезаю функцией Trigger and gate по продублированному синхросигналу. Благо на скорости АЦП доп. канал не сказывается.

Доброе время суток :bye: пишу похожую программу, но пока ничего путного не выходить. не могли бы Вы мне показать ход работы на своем примере, может я что-то упускаю(
Elena_frz
beginner
beginner
 
Posts: 10
Joined: 25 Feb 2016, 11:27
LabVIEW Version: 2014
Karma: 0

Re: Запуск и остановка по триггеру

Postby Blackman on 25 Feb 2016, 20:29

How Do I Use a Digital Trigger in LabVIEW to Start and Stop Acquiring Data?
http://digital.ni.com/public.nsf/allkb/ ... FE0032CCEB
Здесь есть готовый пример.

Tips and Techniques in Data Acquisition Triggering - NI-DAQmx
http://www.ni.com/tutorial/4329/en/
C. Pretriggered Acquisition with Start and Reference Triggers
You can also set up an acquisition that uses both a start and reference (stop) trigger. In this case, a digital or analog trigger starts the acquisition instead of a software function. Once the acquisition starts, a circular buffering scheme (similar to the previous case) is implemented until the reference trigger signal is received. The data returned consists of the specified number of pretrigger and posttrigger samples relative to the reference trigger signal (Figure 9).
Blackman
leader
leader
 
Posts: 658
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 165

Re: Запуск и остановка по триггеру

Postby Elena_frz on 03 Mar 2016, 14:40

большое спасибо за помощь!
Elena_frz
beginner
beginner
 
Posts: 10
Joined: 25 Feb 2016, 11:27
LabVIEW Version: 2014
Karma: 0

Re: Запуск и остановка по триггеру

Postby Elena_frz on 03 Mar 2016, 14:48

Я видела эти статьи про триггер и только запуталась. Возможно я неправильно решаю задачу. По задаче, у меня есть 2 цифровых линии, на этих линиях необходимо поймать сигналы и измерить длительность этих сигналов. Данную задачу решила решать с помощью счетчика и триггера. Если у вас есть какие-то идеи или Вы знаете решение этой задачи, прошу поделиться со мной! я в тупике!
Elena_frz
beginner
beginner
 
Posts: 10
Joined: 25 Feb 2016, 11:27
LabVIEW Version: 2014
Karma: 0

Re: Запуск и остановка по триггеру

Postby Jakob Brontfeyn on 03 Mar 2016, 15:53

Elena_frz wrote:Я видела эти статьи про триггер и только запуталась. Возможно я неправильно решаю задачу. По задаче, у меня есть 2 цифровых линии, на этих линиях необходимо поймать сигналы и измерить длительность этих сигналов. Данную задачу решила решать с помощью счетчика и триггера. Если у вас есть какие-то идеи или Вы знаете решение этой задачи, прошу поделиться со мной! я в тупике!

smotri demo s knopkoy
Attachments
demo_s_knopkoy.vi
(28.5 KiB) Downloaded 64 times
User avatar
Jakob Brontfeyn
expert
expert
 
Posts: 1678
Joined: 28 Feb 2008, 11:01
Medals: 6
Activity (1) Gold (1) Silver (2) Black (2)
Karma: 225
VIP


Return to Обработка сигнала

Who is online

Users browsing this forum: No registered users and 3 guests

cron