Некорректный digital out в DAQmx с помощью myDAQ
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Некорректный digital out в DAQmx с помощью myDAQ
Добрый день!
Можете сказать, что надо исправить в этой схеме ?
Проблема выглядит следующим образом:
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. Отправляю 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.
- Вложения
-
- Digital - Continuous Output (without loop).vi
- (45.18 КБ) 115 скачиваний
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
В первом случае у Вас Write и Read функции выполняются паралельно, а во втором - синхронизированно. Поэтому в первом случае Вы читаете одну точку, т.к. остальные еще незаписаны функцией Write.
А то, что Вы можете читать на одной линии то, что пишете на второй - возможно это связанно с тем, что DIO0-4 используются в качестве счетчика? https://knowledge.ni.com/KnowledgeArtic ... A0&l=cs-SK DIO0 - это source, а DIO1 - gate. Может они как-то внутри связанны, в железе я не особо "шарю"...
А то, что Вы можете читать на одной линии то, что пишете на второй - возможно это связанно с тем, что DIO0-4 используются в качестве счетчика? https://knowledge.ni.com/KnowledgeArtic ... A0&l=cs-SK DIO0 - это source, а DIO1 - gate. Может они как-то внутри связанны, в железе я не особо "шарю"...
Мы делили апельсин - много наших полегло...
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Некорректный digital out в DAQmx с помощью myDAQ
А что должно быть ?Можете сказать, что надо исправить в этой схеме ?
Оба примера работают правильно (для симулятора).
Можно убрать старт и стоп функции. В режиме On Demand они выполняются автоматом при Write, Read.
И наконец разобраться с локальной переменной Voltage Unit
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Я пытаюсь записать Digital Waveform целиком, и пока не вполне понимаю, как это сделать.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Некорректный digital out в DAQmx с помощью myDAQ
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.
На физическом устройстве это будет генерация сигнала с максимально возможной скоростью.
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.
На физическом устройстве это будет генерация сигнала с максимально возможной скоростью.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Спасибо, это я знаю. Но он так же не пишет, даже если поставить Flat sequence между Write and Read т.е. всё равно, после Write считывается ровно 1 точка.Blackman писал(а): ↑03 май 2020, 15:45 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.
На физическом устройстве это будет генерация сигнала с максимально возможной скоростью.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Можете сказать, для чего IO Gate ? Никак не могу понять. Но, в любом случае, как счётчик он "может" работать т.е. я выставляю (как я понимаю) сам, не digital input, а counter в конфигурировании виртуального канала.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Некорректный digital out в DAQmx с помощью myDAQ
Read сконфигурирована для чтения одной точки....после Write считывается ровно 1 точка
number of samples per channel specifies the number of samples to read.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Я думал, что он сначала сгенерит все нужные точки (из за flat sequence), а потом, поскольку number of samples per channel = -1, в соответствии с той же спецификацией, считает всё необходимое - я ведь не всегда знаю, сколько у меня точек. При этом, даже поставленное ожидание для write не дает read прочитать весь буффер - странно.
Вот, тем не менее, что у меня получилось, если явно задать количество семплов. Всё бы хорошо - только input не соответствует тому, что было в output. Почитал - вроде всё сделал правильно. И dt = 0 в input почему то .
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Я посмотрел как работают разные линии - оказалось, результат различается. Почему в принципе ясно, но какие две линии позволяют простой IO сделать пока не очень понятно.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
У вас нет (и не может быть) никакого строгого аппаратнтого тайминга. Пытаться в таких условиях получить строгое соответствие сигналов - напрасная трата времени.
Про IO вопрос не понял.
Про IO вопрос не понял.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Ввиду того, что меняя номера DIO in_k и DIO out_m я буду получать, соответственно, разные результаты - я так понимаю, они автоматически включаются (т.к. я получаю разные результаты с разных каналов) как, например, counter, при их использовании. Поэтому я не могу понять, как мне сделать просто запись в out DIO и считывание в in DIO моего импульсного сигнала, который я цифрую Analog to Digital.vi.
Я так понял, что DIO0 - это source в качестве out DIO. В таком случае, осталось понять, как сделать in DIO.
Но в данном случае у меня полное несоответствие сигналов - что можно с этим сделать ?
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
отчего же, я наблюдаю частичное соответствие: и там и там есть 0 и 1
Возможно, проблема объясняется этим:
Logic level
5 V compatible LVTTL input;
3.3 V LVTTLoutp
зачем они так намудрили - не знаю, дальше идёт только
VIH min 2.0 V
VIL max0.8 V
Про out не пишут, возможно, диапазоны те же, а может и нет. И если нет, то выходная 1 может не дотягивать до гарантированной входной 1, тогда АЦП может выдать что захочет.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
Полное - т.к. отсутствует какая либо корреляция между выходом и входом. На выходе эти 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 просто передавать как самый элементарный вариант, как я делал ранее - оказывается в этом случае тоже нет соответствия, я измерял какие то внутренние сигналы.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Некорректный digital out в DAQmx с помощью myDAQ
тогда только одно: чтение проверять "батарейкой", выдачу тестером. Если нет более продвинутых вариантов.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 220 Просмотры
-
Последнее сообщение Andrew Lunev
-
- 0 Ответы
- 343 Просмотры
-
Последнее сообщение maxim_MA
-
- 0 Ответы
- 702 Просмотры
-
Последнее сообщение Dima123_Dima321
-
- 13 Ответы
- 2451 Просмотры
-
Последнее сообщение rsv