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


ЦАП, LabView и L-761

Вы не вошли.

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

Сергей Т
24.01.2006 10:52:47
#1

Гость

ЦАП, LabView и L-761

Поделитесь, пожалуйста, кто-нибудь примерчиком на LabView для работы с ЦАП на L-761. В example.vi из lcomp_lv.zip, насколько я понимаю показано только как работать с АЦП. Наверное это просто, но с примером было бы быстрее. Нужна скорость вывода ~50 точек/сек.

P.S. Если кому нужен пример на LabView автоматизации старого советского Масс-Спектрометра МХ-7304 на базе L-761 и Advantech PCI-1723 пишите на zidan@ngs.ru или goldzub@mail.ru (Использовалась старая библиотека vxdapi.zip)

Сергей Т
05.04.2006 06:06:46
#2

Гость

Re: ЦАП, LabView и L-761

У меня вылазят следующие глюки примера из lcomp_lv.zip:
1. При попытке сохранить файл example.vi после его запуска LabView вылетает со словами «Insane object at FPHP+44 in "EXAMPLE.VI": {dsitem } (0x400): Panel (FPSC)»
2. Выяснилось, что причина где-то в CIN ReadPlataDescr, но удаление этой функции из vi, возвращаемые параметры которой, кстати, нигде потом не используются, приводят к тому, что FillDAQparameters возвращает ошибку. (Если затем вызвать SetParametersStream, то комп начинает перезагружаться.)
3. В IoAsync из wlcomp.dll не работает вывод на ЦАП.

Это только у меня так?
Или многоуважаемая фирма Lcard продает только железо, а с софтом типа ребята е#%&*сь как хотите:
копайтесь в исходниках,
пишите сами хэлп,
учитесь компилировать lsb файлы,
разбирайтесь с типами данных: ADC_PAR, WASYNC_PAR, ASYNC_PAR, W_DAC_PARAM_U_0, W_DAC_PARAM_U_1 и т.д.
в общем, становитесь профессиональными программистами и любите саночки возить.

05.04.2006 06:30:12
#3

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

Re: ЦАП, LabView и L-761

1 понятия не имею что за ошибка

2 надо обязательно вызывать тк она внутр. переменные инициализирует, а именно частоут кварца и тип платы для последующих расчетов.

3 вроде исправил в том что сейчас лежит на сайте...
А так в части LabView поддержка очень лимитирована....и тем более работе с LabView не обучаем....

Сергей Т
05.04.2006 08:12:53
#4

Гость

Re: ЦАП, LabView и L-761

1. Т.е. у вас example.vi после его запуска в LabView сохраняется нормально? А у меня - нет. Пробовал LabView 7.0 и 7.1.
Я проверял именно последнюю версию от 20.01.06. И я вроде бы даже понял почему IoAsync для ЦАП не работает. (Именно в wlcomp.dll. В lcomp.dll - работает.)
Жаль что "LabView поддержка очень лимитирована". 21 век на дворе. Проснитесь, ребята.

05.04.2006 08:57:36
#5

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

Re: ЦАП, LabView и L-761

почему слетает LabView это  вполне возможео глюк в нем какой....ну или моих знаний его не хватило... а IOAsync не работал потому что данные входные не копировались...

Сергей Т
05.04.2006 09:19:47
#6

Гость

Re: ЦАП, LabView и L-761

Я просто в readplatadescr.c закоментировал строчки
//   char str[255];
   *Err = ReadPlataDescr(var1, &pd);
//   CToPStr(pd.SerNum,str); PToLStr(str,*(var2->arg1));
//   CToPStr(pd.BrdName,str); PToLStr(str,*(var2->arg2));
//   str[0]=pd.Rev; str[1]=0; CToPStr(str,str); PToLStr(str,*(var2->arg3));   
//   CToPStr(pd.DspType,str); PToLStr(str,*(var2->arg4));
//   var2->arg5 = pd.Quartz;
//   var2->arg6 = pd.IsDacPresent;
Помогло.

В wlcomp.cpp в DllExport(ULONG)  IoAsync(PULONG hIfc, PWASYNC_PAR sp)  // collect all async io operations
перед Err=((IDaqLDevice*)*hIfc)->IoAsync(&t_sp);
вставил строчки
   t_sp.s_Type = sp->s_Type;
   t_sp.Mode = sp->Mode;
   t_sp.Data[0]=sp->Data[0];

Сделал CIN следующего содержания oasync.c:
/* CIN source file */
#define LABVIEW_FW

#include "extcode.h"
#include <windows.h>
#include "ioctl.h"
#include "wlcomp.h"

CIN MgErr CINRun(uInt32 *hIfc, uInt16 *arg1, uInt32 *Err);

CIN MgErr CINRun(uInt32 *hIfc, uInt16 *arg1, uInt32 *Err)
    {    /* Insert code here */
    WASYNC_PAR bp;
        bp.s_Type = L_ASYNC_DAC_OUT;
        bp.Mode = 1;
        bp.Data[0] = *arg1;

    *Err = IoAsync(hIfc,&bp);

    return noErr;
    }

Для моей задачи (автоматизация масспектрометра) этого вроде бы хватает. Но стоило мне все это разбирательство массу нервов и времени. Такое KNOW-HOW я бы продал не меньше чем за стоимость платы. Жаль только, что никто не заплатит.