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


Идиот и L783

Вы не вошли.

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

trotski
18.11.2003 21:47:36
#1

Гость

Идиот и L783

Добрый вечер. Не судите строго. Вопросы глупые, почти RTFM.
Подскажите, пожалуйста, идиоту как работать с  L783. Для кафедры моего любимого института нужно написать программу регистрации данных. У меня есть небольшой опыт программирования под АЦП Руднева-Шиляева и доморощенные блоки сопряжения. Но у вас очень непонятная для меня документация и я не справляюсь.
Пишу на Delphi, так как не оказалось другого компилятора под рукой(есть еще C++Builder)
Примеры посмотрел, но не все понял. Для Delphi пример собирает
данные без синхронизации (или это не так?)
У меня есть ваш шнур с четырьмя СР50(BNC) на концах. Мне надо подавать три канала и  синхроимпульс. Какой штекер к какому каналу - ни одного намека на маркировку.
Вопросы:
1)СР50 будут работать с диф. каналами?
2)При единичном усилении и без корректировки нуля номера каналов у меня будут 0x0, 0x2, 0x4?
Тогда я могу для синхро использовать 0x8 ? Или что-то другое?
3)Уместно ли в отдельном потоке приложения ставить WaitForSingleObject(hEvent3)? Сливаться тогда будет кол-во_кадров = размер_буфера / кол-во_каналов?
Должен ли я при этом снова запускать АЦП  (InitLDevice, StartLDevice)?

4)Судя по форумам и документации я могу выставить на разных каналах разное усиления и сливать каналы с разной частотой? (кан1, кан2, кан1, кан3)
5)Самый идиотский вопрос - для чтения удобнее пользоваться знаковым WinAPI/'шным SHORT?

И еще: если у кого-нибудь есть программы для Delphi или C++Builder, просьба поделиться. 
74lab@nwgsm.ru

19.11.2003 10:17:16
#2

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

Re: Идиот и L783

1 работать то будут - главное подключить их првильно.
2 формула логического канала есть в книжке - она не допускает неоднозначностей.
3 Это непонятно - все зависит от того  что и как хотите собирать.
4 с разным усилением - да. с разной частотой - нет (можно в таблице каналов сделать двойной опрос или какой другой одного и того же канала - будет некая разночастотность)
5 ну да short/

trotski
19.11.2003 20:52:50
#3

Гость

Re: Идиот и L783

Скажите пожалуйста еще оду вещь : в хелпе сказано, что 1 надо устанавливать в параметрах синхронизации в том случае, когда предпологается, что драйвер заполнив буфер пошлет Event и прекратит работу. А в примере на си(L7xx.tst) ставиться единица и в комментариях пишется, что "будем организовывать циклический сбор." Сбор и вправду не по событию, а в потоке без ожиданий. Я что-то не так понимаю или у вас неточность?

20.11.2003 10:10:34
#4

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

Re: Идиот и L783

Опечатка в документации.

trotski
20.11.2003 23:23:22
#5

Гость

Re: Идиот и L783

Еще один глупый вопрос. Мне нужен ваш совет.
У меня три вялотекущих сигнала, все они непрерывные. Никакой синхронизации не предусмотрено (датчики донного давления). Частота оцифровки для всех трех каналов - всего 3 КГц Длительность измерений 1-3 минуты. Мне подойдет режим с Event/'ом или лучше буфер считывать? И подскажите, пожалуйста, оптимальные на ваш взгляд размеры буферов и частоты.

21.11.2003 10:04:03
#6

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

Re: Идиот и L783

Event он только дря однократного сбора в буфер. Все продолжительное только с чтением счетчика.
Как в примере Вас вполне устроит.

trotski
23.11.2003 23:23:05
#7

Гость

Re: Идиот и L783

Простите идиота. У меня одни вопросы. Все что касается инициализации платы - просто. Далее - темный лес.
Я организовал поток с AutoInit=1. У меня IrqStep=FIFO=4000, pages=20 (при Rate=4.0 и Kadr=0.25 получается, что буфера хватит на 20 секунд).
Поток :
InitStartLDevice(...);
StartLDevice(...)
Repeat

Synchronize(LCrdSync);
if Terminated then Brake;

until False;
StopLDevice(...);
В LCrdSync выводится значение Sync^, оно изменяется с шагом IrqStep до FIFO*pages, а потом снова с нуля. То есть я получил  циклическую запись в буфер? Или это моя ошибка?
Я до сих пор не могу понять, как мне сами данные взять, чтобы каждый раз при вызове LCrdSync - синхронизатора, у меня уже был готов массив data с IrqStep отсчетами АЦП.

P.S. А у Руднева-Шиляева драйвера гораздо проще организованы. Все что мне надо - организовать бесконечный сбор данных. Мне, глупому, кажется, что гораздо проще система, когда пользователю доступен лишь один буфер, а на самом деле их два и драйвер при заполнении одного просто меняет указатель текущего. Хотя я полный профан в этом деле.
Спасибо за всю ранее оказанную помощь

24.11.2003 11:06:06
#8

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

Re: Идиот и L783

Ну да - циклическое заполнение. Вы пример смотрите - там данные забираются половинками этого циклически заполняемого буфера. Пользователю доступен один буфер- просто надо смотреть в какую часть буфера идет запись и соответственно из другой данные забирать.

trotski
25.11.2003 17:06:01
#9

Гость

Re: Идиот и L783

Разобрался, наконец.