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


работа с цифровыми линиями в L791

Вы не вошли.

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

Андрей
28.02.2010 21:58:58
#1

Гость

работа с цифровыми линиями в L791

В примерах работы с labview есть программы, написанные для АЦП и ЦАПа, что, конечно, облегчает понимание принципа работы имеющихся функций.
Но никаких примеров работы с цифровыми линиями я не нашел. Тогда можно хотя бы узнать, какими функциями пользоваться, в каком порядке и с какими константами.
Или если меня тыкнут в то место, где это ясно и понятно написано, то тоже буду благодарен.
Спасибо

01.03.2010 11:49:58
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: работа с цифровыми линиями в L791

в примере WLOMP_LV есть пример вызова чтения ТТЛ. Запись и прочее аналогично. В хелпе читать описание функции IoAsync

Андрей
01.03.2010 20:26:49
#3

Гость

Re: работа с цифровыми линиями в L791

Спасибо
А как все же заполнять структуру ASYNC_PAR, если необходимо изменять значения на 12 каналах от 0 до 4095 в двоичном коде?

01.03.2010 21:54:53
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: работа с цифровыми линиями в L791

в data[0] число класть. Это лучше считать не каналами, а одним портом цифровым

Андрей
01.03.2010 22:11:44
#5

Гость

Re: работа с цифровыми линиями в L791

Т.е. я задаю номер канала и "1" или "0" в data[0], а остальное делаю посредством цикла?

01.03.2010 22:45:53
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: работа с цифровыми линиями в L791

нет. 0xFFFF в data[0] выведет все 1 на цифровые линии.

Андрей
22.04.2010 22:08:48
#7

Гость

Re: работа с цифровыми линиями в L791

Спасибо. Есть у меня еще вопрос..
Если мне необходимо синхронно задать значение на цифровом порте и считать одно значение с одного канала АЦП, то как заполнять структуры?
Ну т.е. я понимаю, что можно задавать частоту переключения для цифрового порта, частоту опроса кадров для АЦП, но по поводу синхронности данных процессов есть некоторые сомнения. Так как лучше решить данную задачу?

22.04.2010 22:51:11
#8

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: работа с цифровыми линиями в L791

Андрей, к сожалению, L-791 не поддерживает синхронный вывод на цифровые линии (а только асинхронный). Синхронный периодичный процесс может быть запущен только на цифровой ввод,  ввод от АЦП, а также на вывод ЦАП.

Андрей
28.04.2010 13:48:39
#9

Гость

Re: работа с цифровыми линиями в L791

речь шла о программной синхронизации

28.04.2010 17:21:20
#10

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: работа с цифровыми линиями в L791

Вы пишете:
<<...мне необходимо синхронно задать значение на цифровом порте>>
-- В L791 не поддерживается синхронный (периодичный) вывод на цифровые линии.

<<Ну т.е. я понимаю, что можно задавать частоту переключения для цифрового порта...>>
-- Такого механизма не существует для L-791.

Андрей
29.04.2010 16:33:56
#11

Гость

Re: работа с цифровыми линиями в L791

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

Кстати говоря, если не существует синхронного вывода на цифровые линии, то какой смысл в параметре dRate, который якобы задает частоту?

29.04.2010 17:15:49
#12

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: работа с цифровыми линиями в L791

Андрей. Такую задачу предлагаю реализовать следующим образом.
1. Соединяем хотя бы одну линию выходного цифрового порта DOUT с хотя бы одной линией входного цифрового порта DIN L-791.
2. Программно настраиваем DOUT на выход.
3. Настраиваем управляющую таблицу L-791 таким образом, чтобы кадр опроса линий АЦП содержал также опрос DIN (хотя бы один раз в кадре).
4. Запускаем синхронный сбор АЦП и DIN с требуемой частотой.
5. Асинхронно управляя DOUT, имеем в синхронном  потоке данных АЦП также информацию о текущем состоянии линии DOUT с точность до времени кадра.
6. Программно (реал-тайм) на верхнем уровне отделяем требуемую информацию из потока АЦП и DIN  по условию.

Андрей
05.05.2010 19:20:47
#13

Гость

Re: работа с цифровыми линиями в L791

Это вроде как неслишком серьезно и не подходит для той платы, которую сделали для этих измерений.
Поэтому я реализовал синхронный сбор данных через очередь.
Но появился неприятный эффект. Если не ставить время задержки между кадрами, то АЦП считывает 9В, как примерно 1000. А если поставить задержку в 1мс или 0.5мс (без разницы, скорость получается одинаковая), то время сбора данных сильно увеличивается, но на выходе получаю привычные мне 6800 при 9В.
Так с чем это связано и как исправлять?

05.05.2010 20:55:59
#14

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: работа с цифровыми линиями в L791

Андрей. Попробуйте значительно подробнее описать условия эксперимента, чтобы появилась возможность Вам понять.

05.05.2010 20:56:37
#15

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: работа с цифровыми линиями в L791

...Вас понять.

Андрей
05.05.2010 23:59:36
#16

Гость

Re: работа с цифровыми линиями в L791

Хм... ну я попытаюсь))
Цель: померить характеристики изготовленного ЦАП.
Устройства: ПК, L791, текстолитовая плата, осуществляющая коммутирование нужных сигналов.
Софт: labview 8.5

Взял стандартный пример для работы с АЦП и цифровыми линиями. Несколько переделал под свои задачи. Поместил IoAsync в цикл и выдаю на выход определенную последовательность значений. Забегая вперед можно сказать, что эти значения позже попадают в очередь(Queue). Цифровой порт задает значение, которое выставляется на выходе измеряемого ЦАП.
Напряжение измеряю с помощью АЦП платы L791. Данные, которые в примере подаются на display я вывожу в файл вместе с данными о состоянии цифровых линий.
Особенность пожалуй еще в том, что из-за невозможности разобраться в нарисованных структурах и отсутствии описания к большинству из них, приходится использовать целый кадр для одного(или нескольких) измерений.
То, что я получаю в случае наличия задержки между кадрами, можно посмотреть здесь:
http://slil.ru/29088691
Здесь 2 практически идентичных сеанса измерений, хороший вариант в целом, хотя непонятно почему такая разница на больших значениях.
Левый столбец - значения на цифровом порте, правый - данные с АЦП.
Такую картину значений я получаю, если у меня стоит задержка между кадрами 1мс. Но в этом случае  измерение одного устройства может продолжаться 5-6 минут, что вообщем-то неприемлемо. Причем неясно, почему так долго и откуда берутся такие задержки, это получается явно не 1мс на кадр, и даже не 3 мс с учетом переключения цифрового порта, а гораздо больше. Около 80 мс за 1 измерение.
Самое печальное же происходит, если убрать задержку между кадрами. Могу предположить, что получаются какие-то сильно некорректные значения с АЦП, ввиду моих наблюдений. Неясно почему и как проблему решать.
Не уверен, что в этом сообщении достаточно именно той информации, которая была бы полезна для понимания ситуации, но подскажите мне, что я должен уточнить?

06.05.2010 10:49:58
#17

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

Re: работа с цифровыми линиями в L791

Каждй вызов IoAsync занимает ~20мс. Задержки LabView нужно икинуть отдельно. Если IoAsync выставили значение для своего ЦАП а потом IoAsync считали отсчет с АЦП, то все должно работать без всяких дополнительных задержек. Во всяких других вариантах возможны странности. Или вариант предложенный Александром.