Синхронизация

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
Forward

Activity Tutorials Black
professional
professional
Сообщения: 337
Зарегистрирован: 03 мар 2008, 12:41
Награды: 3
Версия LabVIEW: 2010
Откуда: Кишинев
Контактная информация:

Синхронизация

Сообщение Forward »

Привет.
Возник следующий вопрос.
Имеется функциональный генератор, разработанный коллегами. Возникло желание поэксперементировать с ним на LabVIEW. Т. е. сделать что-то вроде простейшего низкочастотного анализатора с помощью звуковой карты. С этим все просто и прозрачно. Да и примеров на эту тему море.

Так же там имеется возможность как внутренней так и внешней синхронизации, пошел самым простым путем и организовал ее через LPT (в случае с внешней): поднимаю и опускаю один бит LPT и сразу же считываю буфер со звуковой карты. Вопрос собственно следующий: возможно ли добиться четкой синхронизации? как? ибо у меня это не получилось (пробовал уже кучу вариантов, но наблюдаю постоянные "прыжки" сигнала на несколько отсчетов).
Да и в целом какой оптимальный вариант синхронизации на LabView в таких случаях ?
Вложения
FG07_s.JPG
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Синхронизация

Сообщение Eugen Graf »

Я думаю надо использовать вместо звуковой карты и LPT, какой нибудь АЦП.

Проблема в том что при софт-синхронизации всегда появляются скачки во времени, это из за того что обычная операционная система не гарантирует точного выполнения того или иного процесса или цикла. При хард-синхронизации всё происходит в АЦП, а LabVIEW уже получает синхронизированные данные в виде буфера со значениями.

Второй вариант это использование Real Time Operation System (RTOS), в таком случае сама операционная система гарантирует точное выполнение цикла по времени. Это значит например, при получении данных в LabVIEW ты конечно должен использовать цикл, например While-Loop. Так вот операционка будет гарантировать тебе что выполнение цикла всегда занимает одно и то же время. Тогда у тебя скачков не будет.

Третий вариант это получение данных с прибора в виде пакетов, состоящих из самого значения и штампа времени к этому значению. При этом штамп времени должен генерится в самом приборе!
Аватара пользователя
Forward

Activity Tutorials Black
professional
professional
Сообщения: 337
Зарегистрирован: 03 мар 2008, 12:41
Награды: 3
Версия LabVIEW: 2010
Откуда: Кишинев
Контактная информация:

Re: Синхронизация

Сообщение Forward »

Спасибо.
Насчет варианта с контроллером или FPGA - там все железно, проблем не возникает, хотелось поэкспериметировать со звуковой картой...
Третий вариант не совсем подходит для данного случая, так как данные получаю аналоговые...

Попробую второй вариант с модулем LV real time.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Синхронизация

Сообщение Eugen Graf »

Можно ещё попробовать либо внешнюю синхронизацию с другим источником дигитального импульса, либо если имеется внутреннюю синхронизацию. А вот аналоговый сигнал можешь при этом собирать с помощью звуковой карты.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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