Ошибка с digital output с помощью myDAQ

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

Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Добрый вечер!

Проблема:
Когда пытаюсь начать подавать что либо выползает ошибка (см. Рис. 1), которая появляется сразу после выхода из DAQmx timing. Всё пересмотрел - никак не могу понять, что ему не нравится.

Что использую:
Программное:
В качестве базы - делаю всё на примере из National Instruments (см. прилагаемый VI версии LabView 16.0).

Аппаратное обеспечение:
Взят myDAQ (см. рис) на котором соединены цифровые (DIO на рис) входы 0 и 5 (они же выходы). Соответственно, пока я пытаюсь подать что то на выход 0 (в control (lines) - это myDAQ1/port0/line0.


Не болейте!
Вложения
Digital - Continuous Output.vi
Пример National Instruments
(52.35 КБ) 88 скачиваний
Проблема
Проблема
myDAQ front panel.jpg
P1100482_x.jpg
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение Kosist »

https://www.ni.com/pdf/manuals/373060g.pdf, страница 16. myDAQ модуль имеет "software-timed DIO", а Вы пытаетесь использовать "hardware timing". Измените "DAQmx timing" функцию с "Sample Clock" на "On Demand".
Мы делили апельсин - много наших полегло...
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Kosist писал(а): 25 апр 2020, 22:37 https://www.ni.com/pdf/manuals/373060g.pdf, страница 16. myDAQ модуль имеет "software-timed DIO", а Вы пытаетесь использовать "hardware timing". Измените "DAQmx timing" функцию с "Sample Clock" на "On Demand".
Спасибо!

Переделал, теперь пытаюсь отправить и получить bool = 1. Всё в принципе работает, только считывается почему то bool = 0, хотя должно, казалось бы, работать (тот же пример - убрал лишнее, добавил считывание одной точки. Можете подсказать, в чем дело ?
Вложения
Digital - Continuous Output.vi
(27.43 КБ) 83 скачивания
Reading.JPG
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

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

dakishi писал(а): 26 апр 2020, 11:08только считывается почему то bool = 0, хотя должно, казалось бы, работать
а как у вас line 1 попадает на line5?
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а): 26 апр 2020, 13:50
dakishi писал(а): 26 апр 2020, 11:08только считывается почему то bool = 0, хотя должно, казалось бы, работать
а как у вас line 1 попадает на line5?
line 0. Она попадает через проводник, которым я их соединил.

PS. Проводник выполнял свои функции, когда я соединял AO и AI
Вложения
IMG_20200426_152819.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

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

Проверьте тестером состояние выхода. У меня подозрение, что вы считываете его ПОСЛЕ удаления задачи.
Или просто вот так
Untitled-2.png
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а): 26 апр 2020, 14:44 Проверьте тестером состояние выхода. У меня подозрение, что вы считываете его ПОСЛЕ удаления задачи.
Или просто вот так
Удаления в правильном порядке идут..
Вложения
Reading 2.JPG
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Очень странно. Переставил 0 на 1, не помогло. Переставил 0 на 2, а 5 на 3 - заработало...
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а): 26 апр 2020, 14:44 Проверьте тестером состояние выхода. У меня подозрение, что вы считываете его ПОСЛЕ удаления задачи.
Можете еще подсказать, в чем теперь дело ?

Я подаю N семплов на 1 канал (на рис. обведено голубым - всё правильно вроде).
Далее, хочу:
1) Принять в цикле по одному семплу - постоянно получаю ноль (вывод выделен красным) и dt = 0 почему то.
2) Убирал цикл и ставил принять N семплов - тоже, в том же массиве снова такой же нуль и dt = 0.
Вложения
Reading 3.JPG
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

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

Вы пробовали понять, что я пишу и что такое поток данных?
Задача записи (DO) удаляется СРАЗУ. После этого читать (DI) бесполезно, на выходе уже ничего нет. С короткими действиями такое может прокатить, а в серией импульсов однозначно не работает
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Это
Artem.spb писал(а): 26 апр 2020, 17:03 У меня подозрение, что вы считываете его ПОСЛЕ удаления задачи.
не говорит о
Artem.spb писал(а): 26 апр 2020, 17:03 Задача записи (DO) удаляется СРАЗУ.
Тем более, LabView вероятно вообще не ощущает разницы в данном случае и делает всё по своему, т.к
dakishi писал(а): 26 апр 2020, 15:32 Удаления в правильном порядке идут..
как не переставляй операции удаления - результат тот же - не работает именно на каналах 0 и 5, и работает на 2 и 3.

Даже если я выношу удаление задачи записи к концу программы (так что dataflow некуда деваться кроме как считаться, ведь удаляющий VI вызывается после удаления задачи на чтение) - из потока я не получаю оставшиеся элементы.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

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

dakishi писал(а): 26 апр 2020, 17:39Тем более, LabView вероятно вообще не ощущает разницы в данном случае и делает всё по своему, т.к
:labview: всегда делает всё по-своему в соответствии с потоком данных и "как проще".

По картинкам не всегда можно понять, что у вас происходит,
Но вот это
Снимок.PNG
намекает на то, что вы получаете то, что просите: ОДИН отсчёт.
Ну и нет никакого тайминга считывания. Выдача судя по всему происходит за 1 сек. Так что ловить там что-то в такой задаче бесполезно. Старт задачи вовсе не означает старт чтения. Оно без тактирования запускается в момент обращения.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а): 26 апр 2020, 18:20
намекает на то, что вы получаете то, что просите: ОДИН отсчёт.

Не вполне понимаю, почему не ОДИН за ДРУГИМ в цикле ?
Artem.spb писал(а): 26 апр 2020, 18:20 Ну и нет никакого тайминга считывания.
При отсутствии явного тайминга, он автоматом ставит on demand. Хотел поставить тайминг, но как выяснилось, myDAQ DIO программно синхронизируемы и они требуют on demand, как минимум, на выдачу - поэтому убрал тайминг и пока не ставлю.

Так я создаю много точек, но тоже получаю одну в ответ.
Вложения
Reading 4.JPG
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

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

dakishi писал(а): 26 апр 2020, 19:11Не вполне понимаю, почему не ОДИН за ДРУГИМ в цикле ?
а кто сказал, что нет? Индикация идёт только по одному последнему, вот его вы и получаете на экране, может, что-то и мелькает.
Ещё раз: выдача всего происходит за 1 сек. Что вы надеетесь увидеть глазами при чтении on demand и отображении одного значения?
Так я создаю много точек, но тоже получаю одну в ответ.
Как драйвер себя ведёт в данном случае я сказать не могу. Нет явно заданной частоты опроса, есть только запрос одной секунды. Возможно, частота задаётся в 1 Гц. И с учётом
они требуют on demand, как минимум, на выдачу
вообще никаких гарантий, что ваша волна выдаётся в запрошенном виде. Начните с меньших частот и проверьте тестером/осциллографом, что на выходе. Сейчас вы чините чтение, не имея достоверных данных о работе выхода.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Ошибка с digital output с помощью myDAQ

Сообщение dakishi »

Artem.spb писал(а): 26 апр 2020, 20:11 Ещё раз: выдача всего происходит за 1 сек. Что вы надеетесь увидеть глазами при чтении on demand и отображении одного значения?
Похоже, на чтение та же ошибка (он не предупреждает почему то, если не посмотреть через Probe или HighLight) - судя по коду, ему нужен тот же on demand, поэтому приходится убирать clock. (Код ошибки ниже)

Судя по всему, есть привязка DIO к своему такту, который он берет из своего встроенного генератора, и на выход я считываю по on-demand с тем же тактом при каждом обращении к Read - эту частоту можно было бы в принципе вытащить по ходу работы.
Artem.spb писал(а): 26 апр 2020, 20:11 вообще никаких гарантий, что ваша волна выдаётся в запрошенном виде. Начните с меньших частот и проверьте тестером/осциллографом, что на выходе. Сейчас вы чините чтение, не имея достоверных данных о работе выхода.
К сожалению, у меня нет дома чего либо из железок, чем можно было бы тестить - я надеялся на то, что можно так будет что то сделать.

Судя по показаниям number of samples written per channel, VI успешно записывает все поинты в канал.


Код ошибки

Код: Выделить всё

Error -200077 occurred at DAQmx Timing (Sample Clock).vi:4730001

Possible reason(s):

Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property.

Property: SampTimingType
Requested Value: Sample Clock
[b]Possible Values: On Demand[/b]

Task Name: _unnamedTask<39>
Вложения
Reading 5.JPG
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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