Синхронизация DAQ-устройства и VISA-COM
Синхронизация DAQ-устройства и VISA-COM
Добрый день. Есть USB-6008, опрашивается один канал через DAQmx. Есть устройство на основе COM-порта. Опрашивается один канал через VISA-COM.
Задача - в записи сигналов с двух устройств с последующими нахождением "разности фаз" сигналов (в отсчетах).
Сейчас циклы опрашиваются с одинаковой частотой. Погрешность записываемых данных - 2 цикла, видимо за счет управления кнопкой записи и остановки циклов через узел свойств.
1. Возможна ли синхронное начало записи и остановки?
2. Какие аппаратно-программные погрешности могут иметь место в определении "дельты" сигналов?
3. Какие возможны причины периодического сбоя запуска одного из устройств?
Задача - в записи сигналов с двух устройств с последующими нахождением "разности фаз" сигналов (в отсчетах).
Сейчас циклы опрашиваются с одинаковой частотой. Погрешность записываемых данных - 2 цикла, видимо за счет управления кнопкой записи и остановки циклов через узел свойств.
1. Возможна ли синхронное начало записи и остановки?
2. Какие аппаратно-программные погрешности могут иметь место в определении "дельты" сигналов?
3. Какие возможны причины периодического сбоя запуска одного из устройств?
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Синхронизация DAQ-устройства и VISA-COM
Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
Re: Синхронизация DAQ-устройства и VISA-COM
Вы имеете в виду организовать шаблон типа "производитель-потребитель" на основе очереди? Здесь еще один ньюнс просто. Частоту опроса у устройства COM поменять нет возможности - 530 Гц.Borjomy_1 писал(а):Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
А DAQ-устройство отказывается работать с такой кратностью частоты, от этого и запуски VI проходят через раз.
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Синхронизация DAQ-устройства и VISA-COM
Можно считывать две COM посылки и делать одно чтение из DAQ.
Еще один вариант... На однокристалке делается прием из COM-порта и выдача на ЦАП. А уже с ЦАПа подается на 6009-й и снимается параллельно два сигнала. Тут уж у вас ограничения будут только со стороны скорости оцифровки АЦП.
Еще один вариант... На однокристалке делается прием из COM-порта и выдача на ЦАП. А уже с ЦАПа подается на 6009-й и снимается параллельно два сигнала. Тут уж у вас ограничения будут только со стороны скорости оцифровки АЦП.
Re: Синхронизация DAQ-устройства и VISA-COM
Пока не знаю как это сделать.Borjomy_1 писал(а):Можно считывать две COM посылки и делать одно чтение из DAQ
Цикл считывания COM уже внутри себя содержит очередь с шаблоном "производитель-потребитель".
Это сделано из-за того что обработка сигнала не успевала за один цикл. И пришлось их разнести в разные.
Сейчас "потребитель" выдает 530 значений в секунду.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Синхронизация DAQ-устройства и VISA-COM
А почему? NI-6009 не справляется с такой частотой? Что-то тут неладное. Он хоть и слабенький модуль, но частоту может выдать побольше 530 Гц. Можете, пожалуйста, код показать?Kvanto писал(а):Вы имеете в виду организовать шаблон типа "производитель-потребитель" на основе очереди? Здесь еще один ньюнс просто. Частоту опроса у устройства COM поменять нет возможности - 530 Гц.Borjomy_1 писал(а):Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
А DAQ-устройство отказывается работать с такой кратностью частоты, от этого и запуски VI проходят через раз.
Мы делили апельсин - много наших полегло...
Re: Синхронизация DAQ-устройства и VISA-COM
Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Синхронизация DAQ-устройства и VISA-COM
А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Мы делили апельсин - много наших полегло...
Re: Синхронизация DAQ-устройства и VISA-COM
Сработало. Считывает конечно скачкообразно. Но работает. Не совсем понимаю операцию, получается тогда было бы логичнее выставить Sample rate = 1, Samples to read = 530. Но так тоже выдает ошибку.Kosist писал(а):А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Видно у него есть крайние ограничения на Sample rate и Samples to read.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Синхронизация DAQ-устройства и VISA-COM
http://digital.ni.com/public.nsf/allkb/ ... CA0053E4B5 - вот здесь нормальное объяснение есть.Kvanto писал(а):Сработало. Считывает конечно скачкообразно. Но работает. Не совсем понимаю операцию, получается тогда было бы логичнее выставить Sample rate = 1, Samples to read = 530. Но так тоже выдает ошибку.Kosist писал(а):А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Видно у него есть крайние ограничения на Sample rate и Samples to read.
А насчет логики - то выставлять Sample rate = 1, Samples to read = 530 нелогично. Ведь что это значит? То, что прибор будет за секунду измерять 530 точек, и каждую из них (как только ее получит), передаст в приложение.
А вот на код хотелось бы таки взглянуть - почему считывает скачкообразно? Не каждую секунду? Задержки в цикле чтения нету?
Мы делили апельсин - много наших полегло...
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Синхронизация DAQ-устройства и VISA-COM
Kosist, К сожалению, это решение
абсолютно не подходит. Оно стратегически неправильное. Дело в том, что при такой схеме два устройства работают от разных тактовых генераторов. Не говоря уже о том, что такую частоту DAQ девайс может не поддерживать. Выставить 530 то вы выставите, но какая частота будет фактически - покажет только проверка. Это первое. Второе - даже если у тактового генератора в сетке частот найдется эти 530 семплов в секунду, они никогда не совпадут частотой COM устройства. Фазы сигнала будут разбегаться и, что не менее отвратительно, количество сэмплов за реализацию будет разное. Невозможно сопоставить оба канала при обработке.А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Синхронизация DAQ-устройства и VISA-COM
Там, где запускаете чтение из DAQ - сделайте кейс с делителем. На четной операции делать чтение, а на нечетной - выдавать предыдущее значение. Это может быть самым простым. А синхронизация между приемом из COM и запуском АЦП у вас есть?Пока не знаю как это сделать.
Цикл считывания COM уже внутри себя содержит очередь с шаблоном "производитель-потребитель".
Это сделано из-за того что обработка сигнала не успевала за один цикл. И пришлось их разнести в разные.
Сейчас "потребитель" выдает 530 значений в секунду.
Re: Синхронизация DAQ-устройства и VISA-COM
Нет, такой синхронизации нет.Borjomy_1 писал(а): Там, где запускаете чтение из DAQ - сделайте кейс с делителем. На четной операции делать чтение, а на нечетной - выдавать предыдущее значение. Это может быть самым простым. А синхронизация между приемом из COM и запуском АЦП у вас есть?
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Синхронизация DAQ-устройства и VISA-COM
Тогда непонятно, относительно чего вы собираетесь считать фазу.
Re: Синхронизация DAQ-устройства и VISA-COM
Да, пока это получается технически невозможно. А есть ли теоретические варианты, программной синхронизации в LV c двухBorjomy_1 писал(а):Тогда непонятно, относительно чего вы собираетесь считать фазу.
разных устройств, не обязательно NI DAQ.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 172 Просмотры
-
Последнее сообщение Plunge
-
- 4 Ответы
- 107 Просмотры
-
Последнее сообщение Plunge
-
- 2 Ответы
- 638 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 192 Просмотры
-
Последнее сообщение Embedder74