Некорректный digital out в DAQmx с помощью myDAQ

Простейшие вопросы в области инженерной разработки
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Добрый день!

Можете сказать, что надо исправить в этой схеме ?

Проблема выглядит следующим образом:
1. Отправляю Waveform (на рис. справа - график и соответствующий табличный вариант) в цифровой канал. Снимаю - только первую точку, dt = 0 почему то так же.
2. Если поставить цикл над Read - получаю все точки (опять же с dt = 0) в бесконечном количестве - вывод как будто циклиться 0,1,0,1....
3. Тайминг поставить нельзя т.к. myDAQ работает с on demand (что отвечает случаю отсутствия тайминга) - что на ввод, что на вывод.
4. Поставить Write перед Start Task тоже не помогает.
5. Однако, если передавать bool, как показано на рис.2, то можно сделать так и только с каналами 1 и 0 - работает (почему не понимаю, т.к. в описании digital i/o (DIO) myDAQ эта пара не выделена как in и out. )

Использую:
Симуляцию myDAQ.
Вложения
Рис. 1
Рис. 1
Рис. 2
Рис. 2
Digital - Continuous Output (without loop).vi
(45.18 КБ) 10 скачиваний

Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1067
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2017
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Kosist »

В первом случае у Вас Write и Read функции выполняются паралельно, а во втором - синхронизированно. Поэтому в первом случае Вы читаете одну точку, т.к. остальные еще незаписаны функцией Write.
А то, что Вы можете читать на одной линии то, что пишете на второй - возможно это связанно с тем, что DIO0-4 используются в качестве счетчика? https://knowledge.ni.com/KnowledgeArtic ... A0&l=cs-SK DIO0 - это source, а DIO1 - gate. Может они как-то внутри связанны, в железе я не особо "шарю"...
Мы делили апельсин - много наших полегло...

Blackman

Activity
leader
leader
Сообщения: 917
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Репутация: 0
Версия LabVIEW: 6.1,8.5,20
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Blackman »

Можете сказать, что надо исправить в этой схеме ?
А что должно быть ?
Оба примера работают правильно (для симулятора).
Можно убрать старт и стоп функции. В режиме On Demand они выполняются автоматом при Write, Read.
И наконец разобраться с локальной переменной Voltage Unit :think:

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Blackman писал(а):
03 май 2020, 14:55
А что должно быть ?
Оба примера работают правильно (для симулятора).
Я пытаюсь записать Digital Waveform целиком, и пока не вполне понимаю, как это сделать.

Blackman

Activity
leader
leader
Сообщения: 917
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Репутация: 0
Версия LabVIEW: 6.1,8.5,20
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Blackman »

:labview: Help
If the task uses on-demand timing, this VI returns only after the device generates all samples. On-demand is the default timing type if you do not use the DAQmx Timing VI. If the task uses any timing type other than on-demand, this VI returns immediately and does not wait for the device to generate all samples. Your application must determine if the task is done to ensure that the device generated all samples.

number of samples written per channel is the actual number of samples this VI successfully wrote.

На физическом устройстве это будет генерация сигнала с максимально возможной скоростью.

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Blackman писал(а):
03 май 2020, 15:45
:labview: Help
If the task uses on-demand timing, this VI returns only after the device generates all samples. On-demand is the default timing type if you do not use the DAQmx Timing VI. If the task uses any timing type other than on-demand, this VI returns immediately and does not wait for the device to generate all samples. Your application must determine if the task is done to ensure that the device generated all samples.

number of samples written per channel is the actual number of samples this VI successfully wrote.

На физическом устройстве это будет генерация сигнала с максимально возможной скоростью.
Спасибо, это я знаю. Но он так же не пишет, даже если поставить Flat sequence между Write and Read т.е. всё равно, после Write считывается ровно 1 точка.
Вложения
Reading 8.JPG

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Kosist писал(а):
03 май 2020, 14:54
DIO0 - это source, а DIO1 - gate. Может они как-то внутри связанны, в железе я не особо "шарю"...
Можете сказать, для чего IO Gate ? Никак не могу понять. Но, в любом случае, как счётчик он "может" работать т.е. я выставляю (как я понимаю) сам, не digital input, а counter в конфигурировании виртуального канала.

Blackman

Activity
leader
leader
Сообщения: 917
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Репутация: 0
Версия LabVIEW: 6.1,8.5,20
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Blackman »

...после Write считывается ровно 1 точка
Read сконфигурирована для чтения одной точки.
number of samples per channel specifies the number of samples to read.

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Blackman писал(а):
03 май 2020, 16:18
...после Write считывается ровно 1 точка
Read сконфигурирована для чтения одной точки.
number of samples per channel specifies the number of samples to read.
Я думал, что он сначала сгенерит все нужные точки (из за flat sequence), а потом, поскольку number of samples per channel = -1, в соответствии с той же спецификацией, считает всё необходимое - я ведь не всегда знаю, сколько у меня точек. При этом, даже поставленное ожидание для write не дает read прочитать весь буффер - странно.

Вот, тем не менее, что у меня получилось, если явно задать количество семплов. Всё бы хорошо - только input не соответствует тому, что было в output. Почитал - вроде всё сделал правильно. И dt = 0 в input почему то .
Вложения
Reading 9.JPG

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Я посмотрел как работают разные линии - оказалось, результат различается. Почему в принципе ясно, но какие две линии позволяют простой IO сделать пока не очень понятно.

Artem.spb

Activity Автор
expert
expert
Сообщения: 1856
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Artem.spb »

У вас нет (и не может быть) никакого строгого аппаратнтого тайминга. Пытаться в таких условиях получить строгое соответствие сигналов - напрасная трата времени.
Про IO вопрос не понял.

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а):
05 май 2020, 00:08
Про IO вопрос не понял.
Ввиду того, что меняя номера DIO in_k и DIO out_m я буду получать, соответственно, разные результаты - я так понимаю, они автоматически включаются (т.к. я получаю разные результаты с разных каналов) как, например, counter, при их использовании. Поэтому я не могу понять, как мне сделать просто запись в out DIO и считывание в in DIO моего импульсного сигнала, который я цифрую Analog to Digital.vi.
Я так понял, что DIO0 - это source в качестве out DIO. В таком случае, осталось понять, как сделать in DIO.
Artem.spb писал(а):
05 май 2020, 00:08
У вас нет (и не может быть) никакого строгого аппаратнтого тайминга. Пытаться в таких условиях получить строгое соответствие сигналов - напрасная трата времени.
Но в данном случае у меня полное несоответствие сигналов - что можно с этим сделать ?

Artem.spb

Activity Автор
expert
expert
Сообщения: 1856
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Artem.spb »

dakishi писал(а):
05 май 2020, 11:15
Но в данном случае у меня полное несоответствие сигналов - что можно с этим сделать ?

отчего же, я наблюдаю частичное соответствие: и там и там есть 0 и 1 :D

Возможно, проблема объясняется этим:
Logic level
5 V compatible LVTTL input;
3.3 V LVTTLoutp

зачем они так намудрили - не знаю, дальше идёт только
VIH min 2.0 V
VIL max0.8 V

Про out не пишут, возможно, диапазоны те же, а может и нет. И если нет, то выходная 1 может не дотягивать до гарантированной входной 1, тогда АЦП может выдать что захочет.

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а):
05 май 2020, 13:23
отчего же, я наблюдаю частичное соответствие: и там и там есть 0 и 1 :D
Полное - т.к. отсутствует какая либо корреляция между выходом и входом. На выходе эти 0,1 держатся статически :(
Artem.spb писал(а):
05 май 2020, 13:23
Возможно, проблема объясняется этим:
Logic level
5 V compatible LVTTL input;
3.3 V LVTTLoutp

зачем они так намудрили - не знаю, дальше идёт только
VIH min 2.0 V
VIL max0.8 V

Про out не пишут, возможно, диапазоны те же, а может и нет. И если нет, то выходная 1 может не дотягивать до гарантированной входной 1, тогда АЦП может выдать что захочет.

В данном случае, к сожалению, я никак не могу влиять на логические уровни, которые он внутри кодирует сам. Проблема видимо также не в этом, т.к. я просто отключил запись в канал - считывается тоже самое - внутренние сигналы какие то. Это я уже плохо понимаю - проблема получается в блок диаграмме.

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

Artem.spb

Activity Автор
expert
expert
Сообщения: 1856
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Некорректный digital out в DAQmx с помощью myDAQ

Сообщение Artem.spb »

тогда только одно: чтение проверять "батарейкой", выдачу тестером. Если нет более продвинутых вариантов.

Ответить

Вернуться в «Для чайников»