Ошибка с digital output с помощью myDAQ
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Ошибка с digital output с помощью myDAQ
Добрый вечер!
Проблема:
Когда пытаюсь начать подавать что либо выползает ошибка (см. Рис. 1), которая появляется сразу после выхода из DAQmx timing. Всё пересмотрел - никак не могу понять, что ему не нравится.
Что использую:
Программное:
В качестве базы - делаю всё на примере из National Instruments (см. прилагаемый VI версии LabView 16.0).
Аппаратное обеспечение:
Взят myDAQ (см. рис) на котором соединены цифровые (DIO на рис) входы 0 и 5 (они же выходы). Соответственно, пока я пытаюсь подать что то на выход 0 (в control (lines) - это myDAQ1/port0/line0.
Не болейте!
Проблема:
Когда пытаюсь начать подавать что либо выползает ошибка (см. Рис. 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 скачиваний
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
https://www.ni.com/pdf/manuals/373060g.pdf, страница 16. myDAQ модуль имеет "software-timed DIO", а Вы пытаетесь использовать "hardware timing". Измените "DAQmx timing" функцию с "Sample Clock" на "On Demand".
Мы делили апельсин - много наших полегло...
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Спасибо!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 скачивания
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
line 0. Она попадает через проводник, которым я их соединил.
PS. Проводник выполнял свои функции, когда я соединял AO и AI
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Проверьте тестером состояние выхода. У меня подозрение, что вы считываете его ПОСЛЕ удаления задачи.
Или просто вот так
Или просто вот так
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Очень странно. Переставил 0 на 1, не помогло. Переставил 0 на 2, а 5 на 3 - заработало...
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Можете еще подсказать, в чем теперь дело ?
Я подаю N семплов на 1 канал (на рис. обведено голубым - всё правильно вроде).
Далее, хочу:
1) Принять в цикле по одному семплу - постоянно получаю ноль (вывод выделен красным) и dt = 0 почему то.
2) Убирал цикл и ставил принять N семплов - тоже, в том же массиве снова такой же нуль и dt = 0.
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Вы пробовали понять, что я пишу и что такое поток данных?
Задача записи (DO) удаляется СРАЗУ. После этого читать (DI) бесполезно, на выходе уже ничего нет. С короткими действиями такое может прокатить, а в серией импульсов однозначно не работает
Задача записи (DO) удаляется СРАЗУ. После этого читать (DI) бесполезно, на выходе уже ничего нет. С короткими действиями такое может прокатить, а в серией импульсов однозначно не работает
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Это
Даже если я выношу удаление задачи записи к концу программы (так что dataflow некуда деваться кроме как считаться, ведь удаляющий VI вызывается после удаления задачи на чтение) - из потока я не получаю оставшиеся элементы.
не говорит о
Тем более, LabView вероятно вообще не ощущает разницы в данном случае и делает всё по своему, т.к
как не переставляй операции удаления - результат тот же - не работает именно на каналах 0 и 5, и работает на 2 и 3.
Даже если я выношу удаление задачи записи к концу программы (так что dataflow некуда деваться кроме как считаться, ведь удаляющий VI вызывается после удаления задачи на чтение) - из потока я не получаю оставшиеся элементы.
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
всегда делает всё по-своему в соответствии с потоком данных и "как проще".
По картинкам не всегда можно понять, что у вас происходит,
Но вот это намекает на то, что вы получаете то, что просите: ОДИН отсчёт.
Ну и нет никакого тайминга считывания. Выдача судя по всему происходит за 1 сек. Так что ловить там что-то в такой задаче бесполезно. Старт задачи вовсе не означает старт чтения. Оно без тактирования запускается в момент обращения.
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Не вполне понимаю, почему не ОДИН за ДРУГИМ в цикле ?
При отсутствии явного тайминга, он автоматом ставит on demand. Хотел поставить тайминг, но как выяснилось, myDAQ DIO программно синхронизируемы и они требуют on demand, как минимум, на выдачу - поэтому убрал тайминг и пока не ставлю.
Так я создаю много точек, но тоже получаю одну в ответ.
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
а кто сказал, что нет? Индикация идёт только по одному последнему, вот его вы и получаете на экране, может, что-то и мелькает.
Ещё раз: выдача всего происходит за 1 сек. Что вы надеетесь увидеть глазами при чтении on demand и отображении одного значения?
Как драйвер себя ведёт в данном случае я сказать не могу. Нет явно заданной частоты опроса, есть только запрос одной секунды. Возможно, частота задаётся в 1 Гц. И с учётомТак я создаю много точек, но тоже получаю одну в ответ.
вообще никаких гарантий, что ваша волна выдаётся в запрошенном виде. Начните с меньших частот и проверьте тестером/осциллографом, что на выходе. Сейчас вы чините чтение, не имея достоверных данных о работе выхода.они требуют on demand, как минимум, на выдачу
-
- assistant
- Сообщения: 120
- Зарегистрирован: 05 сен 2019, 21:01
- Версия LabVIEW: 2019
- Контактная информация:
Re: Ошибка с digital output с помощью myDAQ
Похоже, на чтение та же ошибка (он не предупреждает почему то, если не посмотреть через Probe или HighLight) - судя по коду, ему нужен тот же on demand, поэтому приходится убирать clock. (Код ошибки ниже)
Судя по всему, есть привязка DIO к своему такту, который он берет из своего встроенного генератора, и на выход я считываю по on-demand с тем же тактом при каждом обращении к Read - эту частоту можно было бы в принципе вытащить по ходу работы.
К сожалению, у меня нет дома чего либо из железок, чем можно было бы тестить - я надеялся на то, что можно так будет что то сделать.
Судя по показаниям 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>
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 344 Просмотры
-
Последнее сообщение maxim_MA
-
- 0 Ответы
- 703 Просмотры
-
Последнее сообщение Dima123_Dima321
-
- 13 Ответы
- 2454 Просмотры
-
Последнее сообщение rsv
-
- 5 Ответы
- 1576 Просмотры
-
Последнее сообщение Artem.spb