Страница 2 из 4

Re: Тестирование ДВС

Добавлено: 01 ноя 2013, 16:28
Borisych
я про это помню. в схеме имитатора сигналов добавлен шум.
да и на реальном сигнале шумы очень хорошо просматриваются.

Re: Тестирование ДВС

Добавлено: 25 дек 2013, 08:42
Borisych
Добрый день интересующимся.
На сегодня результаты такие:
- использована звуковая карта - 2 канала
- скорость оцифровки - 22кГц
- собрана и опробована схема с учетом некоторых особенностей работы
- результаты измерений по точности удовлетворяют

Что хочется:
- увеличить число каналов измерения - скажем до 8

Вопрос
- как это реализовать?
- что лучше использовать - встраиваемая карта, внешний бок по USB, внешний блок по Ethernet.
Какие будут рекомендации?

Re: Тестирование ДВС

Добавлено: 10 июн 2014, 16:33
Borisych
Еще раз про звуковую карту.
Собрал вот такую схему. По идеи работать должна. Две карты. Программа как-бы обе карточки видит, но не читает поток со входа. Что не так?

сорри. забыл файл добавить. LV2009

Re: Тестирование ДВС

Добавлено: 10 июн 2014, 17:17
IvanLis
Borisych писал(а):Программа как-бы обе карточки видит, но не читает поток со входа.
А как Вы проверили, что оба SB видны программе?

У Вас не сохранены значения Device ID, они по идее разные должны быть.
Какие ошибки возникают при работе?

Re: Тестирование ДВС

Добавлено: 10 июн 2014, 17:43
Borisych
Точно так! На встроенной ЗК я устанавливая ID=0, на внешней ID=1
Если я ставлю другие значения, crf;tv 0 и 2 то LV выдает:
(Hex 0x12C0) Selected Device is Invalid
В остальных случаях LV выдает
LabVIEW: (Hex 0x12D7) You cannot perform this operation without an active task. Ensure that a task is active and try again. An input task might stop running if the input buffer overflows. Overflow occurs when the data is not read fast enough.

Re: Тестирование ДВС

Добавлено: 11 июн 2014, 07:57
IvanLis
Borisych писал(а):В остальных случаях LV выдает
LabVIEW: (Hex 0x12D7) You cannot perform this operation without an active task. Ensure that a task is active and try again. An input task might stop running if the input buffer overflows. Overflow occurs when the data is not read fast enough.
Первое, что я бы посоветовал, это разнести чтение с разных устройств по разным циклам.
Я так понимаю, что ошибка может возникать из-за различий в частотах тактовых генераторов.

Re: Тестирование ДВС

Добавлено: 11 июн 2014, 13:22
Borisych
Есть две причины:
1. Сигналы с датчиков аналоговые, поэтому на частоты тактовых генераторов никоим образом не влияют.
2. Сигналы нужны одновременно, т.к. один из них это момент впрыска с тензодатчика, а второй - датчик положения коленвала.

Проблема именно в одновременной работе Звуковых карточек. Если комп имеет ЗК со стерео входом микрофона, то проблема не возникает.
Проблема со старой ЗК, которая имеет моновход.

Re: Тестирование ДВС

Добавлено: 11 июн 2014, 15:26
IvanLis
Borisych писал(а):Есть две причины:
1. Сигналы с датчиков аналоговые, поэтому на частоты тактовых генераторов никоим образом не влияют.
2. Сигналы нужны одновременно, т.к. один из них это момент впрыска с тензодатчика, а второй - датчик положения коленвала.

Проблема именно в одновременной работе Звуковых карточек. Если комп имеет ЗК со стерео входом микрофона, то проблема не возникает.
Проблема со старой ЗК, которая имеет моновход.
У меня нет возможности проверить свои предположения, но я бы рекомендовал начать именно с этого. Т.е. разнести работу с разными устройствами по разным циклам. Если ошибка исчезнет и дело именно в рассинхронизации, то это вы никак не поправите. Нужно будет использовать иное аппаратное решение.

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

------------------------
Я имел ввиду именно рассинхронизацию SB, а не принимаемых сигналов.
Дело в том, что АЦП управляется тактовым генератором, а в Вашем случае это два АЦП и два генератора, которые гарантированно будут генерировать разные частоты.
Скажем так, что вероятность совпадения этих частот, ниже вероятности того, я лег спать дома, а проснулся на луне.
Получается, что за одно и тоже время они набирают разное количество отсчетов. А значит одно устройство должно ждать другое, пока оно не наберет необходимый объем данных.
Что произойдет дальше, я сказать не могу, т.к. не вникал в особенности реализации библиотеки NI и обработчика ошибок....

Re: Тестирование ДВС

Добавлено: 12 июн 2014, 17:08
Borisych
разнес карточки в разные циклы... Работает! Но каждая сама по себе.... вопрос - как два потока данных свести вместе?

Re: Тестирование ДВС

Добавлено: 12 июн 2014, 17:16
dadreamer
Borisych писал(а):как два потока данных свести вместе?
Посмотрите пример с очередями, может подойдёт.

Re: Тестирование ДВС

Добавлено: 13 июн 2014, 08:26
Borisych
Сорри. Пример в LV2012, а у меня LV2009.

Re: Тестирование ДВС

Добавлено: 15 июн 2014, 09:31
dadreamer
Borisych

Re: Тестирование ДВС

Добавлено: 17 июн 2014, 14:54
Borisych
сильно в софт не вникал, но первое впечатление что не то.. сигналы приходят с двух каналов одновременно с небольшой задержкой. эта задержка пересчитывается в фазу сигнала. если сигналы принимать по очереди, то ничего не получится.

Re: Тестирование ДВС

Добавлено: 17 июн 2014, 17:33
dadreamer
Borisych, а если создать две очереди: очередь самих сигналов и очередь времён их получения (записывать значения системного таймера)? Потом при обработке данных можно вычислить разницу во времени получения сигналов, взяв разность соответствующих времён.

Re: Тестирование ДВС

Добавлено: 18 июн 2014, 15:05
Borisych
А в чем разница? Приходит сигнал определенной формы в определенный момент времени. Обработка сигнала осуществляется разными фильтрами. В этом большой "Плюс" LV. Сигнал с тензодатчика далек от формы сигнала ТТЛ. Т.е. сигнал надо сначала привести к удобному виду, а уже потом записывать.