NI-DAQmx Tasks
- leo_k
- junior
- Сообщения: 59
- Зарегистрирован: 15 фев 2010, 15:43
- Версия LabVIEW: 8.6
- Откуда: Москва
- Контактная информация:
NI-DAQmx Tasks
Добрый день!
Вот возникла проблема с правильным использованием «глобальных задач». Есть прибор PXI-6221. У него, помимо всего прочего, есть два ЦАП. Очень хочется сделать из этих ЦАП генератор меандра на 1..10 кГц. Можно сделать вручную: цикл, последовательность задержек и смены выходного уровня. Такой вариант плох нестабильностью частоты, да и как-то не серьезно. Сделал глобальную задачу GenDAC (см. рис. 1). В окне MAX можно проверить выполнение (“RUN”) – все хорошо. Но у меня не получается использовать задачу в проекте (рис. 2-3). Подскажите, пожалуйста, как правильно использовать.
Вот возникла проблема с правильным использованием «глобальных задач». Есть прибор PXI-6221. У него, помимо всего прочего, есть два ЦАП. Очень хочется сделать из этих ЦАП генератор меандра на 1..10 кГц. Можно сделать вручную: цикл, последовательность задержек и смены выходного уровня. Такой вариант плох нестабильностью частоты, да и как-то не серьезно. Сделал глобальную задачу GenDAC (см. рис. 1). В окне MAX можно проверить выполнение (“RUN”) – все хорошо. Но у меня не получается использовать задачу в проекте (рис. 2-3). Подскажите, пожалуйста, как правильно использовать.
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: NI-DAQmx Tasks
Проблема скорее всего в том, что ты создаешь новый канал вывода, который уже создан в task'е
- leo_k
- junior
- Сообщения: 59
- Зарегистрирован: 15 фев 2010, 15:43
- Версия LabVIEW: 8.6
- Откуда: Москва
- Контактная информация:
Re: NI-DAQmx Tasks
Возможно.. но без указания task - он не узнает, что от него хотят, а без указания физического канала - он не работает..Crowbar писал(а):Проблема скорее всего в том, что ты создаешь новый канал вывода, который уже создан в task'е
Еслм конечно я правильно понял о чем речь - о настройках создания виртуального канала в проекте.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: NI-DAQmx Tasks
Daqmx Create task создаёт _новое_ task. Ты же хочешь подключиться к существующему. Т.е. либо ты
1. заводишь "Task to copy" на Daq MX Create Task, и не заводишь канала, который уже содержится в задании. Потом не забываешь сделать Clear Task.
2. Используешь константу с именем задания, без "DAQmx Create Task.vi", не делая CrearTask в конце
Покажи, что ты имел в виду под
1. заводишь "Task to copy" на Daq MX Create Task, и не заводишь канала, который уже содержится в задании. Потом не забываешь сделать Clear Task.
2. Используешь константу с именем задания, без "DAQmx Create Task.vi", не делая CrearTask в конце
Покажи, что ты имел в виду под
без указания физического канала - он не работает..
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- leo_k
- junior
- Сообщения: 59
- Зарегистрирован: 15 фев 2010, 15:43
- Версия LabVIEW: 8.6
- Откуда: Москва
- Контактная информация:
Re: NI-DAQmx Tasks
По поводу физического канала - прикрепляю скриншот. На нем мышка как раз выбирает физический канал..mzu2006 писал(а):Daqmx Create task создаёт _новое_ task. Ты же хочешь подключиться к существующему. Т.е. либо ты
1. заводишь "Task to copy" на Daq MX Create Task, и не заводишь канала, который уже содержится в задании. Потом не забываешь сделать Clear Task.
2. Используешь константу с именем задания, без "DAQmx Create Task.vi", не делая CrearTask в конце
Покажи, что ты имел в виду подбез указания физического канала - он не работает..
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: NI-DAQmx Tasks
Так это DAQmx CreateChannel! А зачем? Просто заводи константу с заданием. В задании уже есть информация о канале.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- leo_k
- junior
- Сообщения: 59
- Зарегистрирован: 15 фев 2010, 15:43
- Версия LabVIEW: 8.6
- Откуда: Москва
- Контактная информация:
Re: NI-DAQmx Tasks
заменил блок DAQmx Create Channel на DAQmx Create Task. Ошибка пропала, но генерация на выходе не наступила. Видимо нужно формировать сигнал вручную.
Идеально было бы воспользоваться блоком DAQmx Create Channel в режиме Analog Out-> FuncGen без всяких глобальных задач. Но в этом случае опять лезет ошибка :(
Идеально было бы воспользоваться блоком DAQmx Create Channel в режиме Analog Out-> FuncGen без всяких глобальных задач. Но в этом случае опять лезет ошибка :(
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: NI-DAQmx Tasks
Ты в константе task уже имеешь настройки ЦАП. Тебе надо перед циклом поставить start task, а внутри- analog output с нужным массивом отсчетов. После цикла- stop.
- leo_k
- junior
- Сообщения: 59
- Зарегистрирован: 15 фев 2010, 15:43
- Версия LabVIEW: 8.6
- Откуда: Москва
- Контактная информация:
Re: NI-DAQmx Tasks
Проблема с Tasks не решилась быстро, поэтому я ее временно отложил из-за большого количества параллельных задач. Но вернутся к ней все равно придется в течение недели.
Сейчас у меня другая беда: другой проект работает только в тестовом прогоне (с включенной лампочкой), а вот в обычном режиме работать отказывается! Суть проблемы в неправильном закрытии DAQ-задачи. Т.к. разобраться с глобальными задачами не удалось, я использовал Create Virtual Channel без задания входной задачи, т.о. он ее сам назвал. В принципе по ходу выполнения программы этот метод работает, но вот при закрытии возникают проблемы. Чувствую, что мне не хватает каких-то теоретических знаний про системы сбора информации DAQ.
Сейчас я делаю так:
"Create Virtual Channel"->"Read" (или "Write")->"DAQmx Clear Task"
Видимо я где-то ошибся?
Сейчас у меня другая беда: другой проект работает только в тестовом прогоне (с включенной лампочкой), а вот в обычном режиме работать отказывается! Суть проблемы в неправильном закрытии DAQ-задачи. Т.к. разобраться с глобальными задачами не удалось, я использовал Create Virtual Channel без задания входной задачи, т.о. он ее сам назвал. В принципе по ходу выполнения программы этот метод работает, но вот при закрытии возникают проблемы. Чувствую, что мне не хватает каких-то теоретических знаний про системы сбора информации DAQ.
Сейчас я делаю так:
"Create Virtual Channel"->"Read" (или "Write")->"DAQmx Clear Task"
Видимо я где-то ошибся?
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: NI-DAQmx Tasks
Вместо
В своё время, когда перебирался с традиционного NI-DAQ на NI-DAQmx - "Key NI-DAQmx Concepts - Tasks - Task State Model" - этот раздел Help мне очень помог.
Попробуй "DAQmx Create Task"->"Read" (или "Write")->"DAQmx Clear Task"leo_k писал(а):Create Virtual Channel"->"Read" (или "Write")->"DAQmx Clear Task"
В своё время, когда перебирался с традиционного NI-DAQ на NI-DAQmx - "Key NI-DAQmx Concepts - Tasks - Task State Model" - этот раздел Help мне очень помог.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 219 Просмотры
-
Последнее сообщение Andrew Lunev