Страница 1 из 3

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

Добавлено: 03 май 2020, 14:01
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.

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

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

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

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

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

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

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

Добавлено: 03 май 2020, 15:45
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.

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

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

Добавлено: 03 май 2020, 16:04
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 точка.

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

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

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

Добавлено: 03 май 2020, 16:18
Blackman
...после Write считывается ровно 1 точка
Read сконфигурирована для чтения одной точки.
number of samples per channel specifies the number of samples to read.

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

Добавлено: 03 май 2020, 17:24
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 почему то .

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

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

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

Добавлено: 05 май 2020, 00:08
Artem.spb
У вас нет (и не может быть) никакого строгого аппаратнтого тайминга. Пытаться в таких условиях получить строгое соответствие сигналов - напрасная трата времени.
Про IO вопрос не понял.

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

Добавлено: 05 май 2020, 11:15
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 У вас нет (и не может быть) никакого строгого аппаратнтого тайминга. Пытаться в таких условиях получить строгое соответствие сигналов - напрасная трата времени.
Но в данном случае у меня полное несоответствие сигналов - что можно с этим сделать ?

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

Добавлено: 05 май 2020, 13:23
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, тогда АЦП может выдать что захочет.

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

Добавлено: 09 май 2020, 13:56
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 просто передавать как самый элементарный вариант, как я делал ранее - оказывается в этом случае тоже нет соответствия, я измерял какие то внутренние сигналы.

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

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