Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

E-502 рестарт измерений и ввод-вывод

Вы не вошли.

 Поиск | Регистрация | Вход 

21.04.2022 03:48:22
#1

Участник
Здесь с 29.01.2022
Сообщений: 8

E-502 рестарт измерений и ввод-вывод

Здравствуйте.
Собираю систему на базе E-502 + LabVIEW
Задача - менять диапазоны и скорости на ходу. Соответственно, конфигурирую задачу, запускаю. всё корректно.
Потом останавливаю сбор, полностью удаляю задачу (StreamStop, Close, удалить ссылку)

Дальше создаю новую задачу на базе прежнего devrec (его не удаляю при закрытии сеанса).
Всё корректно запускается, но в буфере каналы получаются "съехавшими", т.е. первый канал идёт вовсе не первым, а в произвольной позиции.
Вопрос: как корректно перезапустить, чтобы буфер очистить?

Сейчас полностью удаляю ссылку на устройство и перед запуском снова её создаю, но это же каждый раз вызывать DevRecordList, корректно ли это?

Второй вопрос.
Нужно параллельно читать и выдавать аналоговые сигналы. Не обязательно синхронно, для простоты лучше иметь две независимые задачи.
Перед созданием каждой нужно вызвать DevRecordList, или нужно использовать один и тот же идентификатор?

21.04.2022 03:55:11
#2

Участник
Здесь с 29.01.2022
Сообщений: 8

Re: E-502 рестарт измерений и ввод-вывод

Поправка: удаление devrec тоже не помогает оказывается

21.04.2022 17:23:44
#3

Участник
Здесь с 29.01.2022
Сообщений: 8

Re: E-502 рестарт измерений и ввод-вывод

Дополнение: "уползание" было моей ошибкой - не очищал буфер приходящих данных.

Остался второй вопрос - корректно ли на основе одного и того же devrec создавать несколько задач (одна AI, вторая AO)?

21.04.2022 18:39:27
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: E-502 рестарт измерений и ввод-вывод

Добрый день. Для работы с одним устройствам нужно использовать один и тот же объект X502. Вы не можете установить два соединения с одним устройством одновременно. Если Вы сделали Open то до вызова Close Вы не можете вызывать Open на то же физическое устройство - функция вернет ошибку.
Вам нужно в любом случае выполнить общее открытие и настройку устройств, вызвать однократно StreamsStart, после чего уже прием и передача могут выполняться в двух независимых задачах, используя один и тот же объект X502. В конце также Вы должны завершить обе задачи, после чего уже вызывать общий StreamsStop и затем Close. При этом можно использовать налету StreamsEnable и StreamsDisable для разрешения отдельно потоков ввода и вывода после общего запуска, но изменять настройки модуля можно только остановив весь ввод вывод с помощью StreamsStop.

26.04.2022 01:53:12
#5

Участник
Здесь с 29.01.2022
Сообщений: 8

Re: E-502 рестарт измерений и ввод-вывод

Пытаюсь создать задачу. Что-то сломалось, никак не могу понять причину.
ChannelTable - OK
SetADCfreq (50K*6) - OK
SetOutFreq (1M) - OK
Configure - OK
StreamsEnable (пока 1) - OK
StreamsStart -> Error -132: Управляющий запрос к драйверу завершен с ошибкой

Что делаю не так? Что за ошибка -132?

26.04.2022 04:33:11
#6

Участник
Здесь с 29.01.2022
Сообщений: 8

Re: E-502 рестарт измерений и ввод-вывод

Дополнение. Ошибка, скорее всего, возникает при повторном запуске.

Полный цикл
получаю devRec (запоминаю)

(A) При старте/смене   настроек

Если streamStart (моя переменная),то
(streamsStop
close
закрыть ссылку
)   

Create
open
ChannelTable - OK
SetADCfreq (50K*6) - OK
SetOutFreq (1M) - OK
Configure - OK
StreamsEnable (пока 1) - OK
StreamsStart
streamStart = T (моя переменная) + запоминаю ссылку .NET на задачу

<измерения>. Если нужно сменить какой-то параметр (например, амплитуда на канале), то goto A
И вот где-то в этой последовательности ошибка.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск