Синхронизация DAQ-устройства и VISA-COM

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Добрый день. Есть USB-6008, опрашивается один канал через DAQmx. Есть устройство на основе COM-порта. Опрашивается один канал через VISA-COM.
Задача - в записи сигналов с двух устройств с последующими нахождением "разности фаз" сигналов (в отсчетах).
Сейчас циклы опрашиваются с одинаковой частотой. Погрешность записываемых данных - 2 цикла, видимо за счет управления кнопкой записи и остановки циклов через узел свойств.
1. Возможна ли синхронное начало записи и остановки?
2. Какие аппаратно-программные погрешности могут иметь место в определении "дельты" сигналов?
3. Какие возможны причины периодического сбоя запуска одного из устройств?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Borjomy_1 »

Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Borjomy_1 писал(а):Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
Вы имеете в виду организовать шаблон типа "производитель-потребитель" на основе очереди? Здесь еще один ньюнс просто. Частоту опроса у устройства COM поменять нет возможности - 530 Гц.
А DAQ-устройство отказывается работать с такой кратностью частоты, от этого и запуски VI проходят через раз.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Borjomy_1 »

Можно считывать две COM посылки и делать одно чтение из DAQ.

Еще один вариант... На однокристалке делается прием из COM-порта и выдача на ЦАП. А уже с ЦАПа подается на 6009-й и снимается параллельно два сигнала. Тут уж у вас ограничения будут только со стороны скорости оцифровки АЦП.
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Borjomy_1 писал(а):Можно считывать две COM посылки и делать одно чтение из DAQ
Пока не знаю как это сделать.
Цикл считывания COM уже внутри себя содержит очередь с шаблоном "производитель-потребитель".
Это сделано из-за того что обработка сигнала не успевала за один цикл. И пришлось их разнести в разные.
Сейчас "потребитель" выдает 530 значений в секунду.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kosist »

Kvanto писал(а):
Borjomy_1 писал(а):Можно только порекомендовать оформление измерений в один цикл. Считали посылку из COM порта, затем считываете однократно из 6008. Отправляете результаты в очередь и уходите на следующий цикл.
Вы имеете в виду организовать шаблон типа "производитель-потребитель" на основе очереди? Здесь еще один ньюнс просто. Частоту опроса у устройства COM поменять нет возможности - 530 Гц.
А DAQ-устройство отказывается работать с такой кратностью частоты, от этого и запуски VI проходят через раз.
А почему? NI-6009 не справляется с такой частотой? Что-то тут неладное. Он хоть и слабенький модуль, но частоту может выдать побольше 530 Гц. Можете, пожалуйста, код показать?
Мы делили апельсин - много наших полегло...
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Снимок.JPG
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kosist »

Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Снимок.JPG
А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.
Мы делили апельсин - много наших полегло...
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Kosist писал(а):
Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Снимок.JPG
А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.
Сработало. Считывает конечно скачкообразно. Но работает. Не совсем понимаю операцию, получается тогда было бы логичнее выставить Sample rate = 1, Samples to read = 530. Но так тоже выдает ошибку.
Видно у него есть крайние ограничения на Sample rate и Samples to read.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kosist »

Kvanto писал(а):
Kosist писал(а):
Kvanto писал(а):Код достаточно громоздкий. USB-6008 я тестировал в DAQ-assistant. 100, 200 Гц пожалуйста, а 530 - сбой. Ему видимо кратность не нравится.
Снимок.JPG
А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.
Сработало. Считывает конечно скачкообразно. Но работает. Не совсем понимаю операцию, получается тогда было бы логичнее выставить Sample rate = 1, Samples to read = 530. Но так тоже выдает ошибку.
Видно у него есть крайние ограничения на Sample rate и Samples to read.
http://digital.ni.com/public.nsf/allkb/ ... CA0053E4B5 - вот здесь нормальное объяснение есть.
А насчет логики - то выставлять Sample rate = 1, Samples to read = 530 нелогично. Ведь что это значит? То, что прибор будет за секунду измерять 530 точек, и каждую из них (как только ее получит), передаст в приложение.
А вот на код хотелось бы таки взглянуть - почему считывает скачкообразно? Не каждую секунду? Задержки в цикле чтения нету?
Мы делили апельсин - много наших полегло...
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Borjomy_1 »

Kosist, К сожалению, это решение
А-а, теперь понятно... Конечно, оно вылетает... Зачем крутить цикл 530 раз в секунду, если можно выставить Sample rate = 530, Samples to read = 530? На выходе тогда каждую секунду будете получать 530 точек. Попробуйте так.
абсолютно не подходит. Оно стратегически неправильное. Дело в том, что при такой схеме два устройства работают от разных тактовых генераторов. Не говоря уже о том, что такую частоту DAQ девайс может не поддерживать. Выставить 530 то вы выставите, но какая частота будет фактически - покажет только проверка. Это первое. Второе - даже если у тактового генератора в сетке частот найдется эти 530 семплов в секунду, они никогда не совпадут частотой COM устройства. Фазы сигнала будут разбегаться и, что не менее отвратительно, количество сэмплов за реализацию будет разное. Невозможно сопоставить оба канала при обработке.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Borjomy_1 »

Пока не знаю как это сделать.
Цикл считывания COM уже внутри себя содержит очередь с шаблоном "производитель-потребитель".
Это сделано из-за того что обработка сигнала не успевала за один цикл. И пришлось их разнести в разные.
Сейчас "потребитель" выдает 530 значений в секунду.
Там, где запускаете чтение из DAQ - сделайте кейс с делителем. На четной операции делать чтение, а на нечетной - выдавать предыдущее значение. Это может быть самым простым. А синхронизация между приемом из COM и запуском АЦП у вас есть?
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Borjomy_1 писал(а): Там, где запускаете чтение из DAQ - сделайте кейс с делителем. На четной операции делать чтение, а на нечетной - выдавать предыдущее значение. Это может быть самым простым. А синхронизация между приемом из COM и запуском АЦП у вас есть?
Нет, такой синхронизации нет.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Borjomy_1 »

Тогда непонятно, относительно чего вы собираетесь считать фазу.
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Синхронизация DAQ-устройства и VISA-COM

Сообщение Kvanto »

Borjomy_1 писал(а):Тогда непонятно, относительно чего вы собираетесь считать фазу.
Да, пока это получается технически невозможно. А есть ли теоретические варианты, программной синхронизации в LV c двух
разных устройств, не обязательно NI DAQ.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»