4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容

[问答] Labview提示错误1097,调用库函数节点中的外部节点出现异常,附程序图和dll函数代码。

[复制链接]

实习生

发表于 2018-3-8 10:12:15   740 查看 9 回复 显示全部楼层 倒序浏览
分享
使用LabVIEW软件做一个数据采集程序,其中要用动态库的调用,提示“调用库函数节点调用的外部节点中出现一个异常。该异常可能引起LabVIEW内存坏块。在新位置保存工作并重启LabVIEW。”错误出现在“USB9825_ReadAD”函数这里,附上程序框图和原函数...
无标题.png





1.png 2.png








3.png 4.png
程序.rar (124.61 KB, 下载次数: 1)
已退回5积分
标签:错误 调用 库函数 节点

资深工程师

发表于 2018-3-8 11:30:11  
函数错误。
回复

点赞 举报

助理工程师

发表于 2018-3-8 12:13:22  
难道是FCFR-USB9825采集卡?
回复

点赞 举报

助理工程师

发表于 2018-3-8 12:28:39  
有没有头文件?然后,是不是先读数据再Stop AD?
回复

点赞 举报

实习生

发表于 2018-3-9 08:49:27    楼主|

具体是在哪错误了?那就是只能修改动态链接库了?
回复

点赞 举报

实习生

发表于 2018-3-9 08:49:52    楼主|
老蜗牛 发表于 2018-3-8 12:13
难道是FCFR-USB9825采集卡?

是的,就是这张卡
回复

点赞 举报

实习生

发表于 2018-3-9 08:57:29    楼主|
老蜗牛 发表于 2018-3-8 12:28
有没有头文件?然后,是不是先读数据再Stop AD?

//头文件
//AD初始化参数
#ifndef _USB9825_PARA_INIT
typedef struct _USB9825_PARA_INIT   
{
        LONG    lSelADClk;           //时钟选择
        LONG    lChCnt;              //通道选择
        LONG    ClkDeci;             //分频因子
        LONG        TriggerMode;         //触发模式
        LONG        TriggerSource;             //触发源
        LONG    TriggerDelay;        //触发延时
        LONG    TriggerLength;       //触发长度
        LONG    TriggerLevel;        //模拟触发电平
        LONG    lADFmt;              //AD输出数据格式   
} USB9825_PARA_INIT,*PUSB9825_PARA_INIT;
#endif

//时钟选择
typedef enum EmADClkSel
{
        ADCLK_INT        = 0, //板上时钟
        ADCLK_EXT        = 1  //板外时钟
} ADCLK_SEL;

//触发模式
typedef enum EmTriggerMode
{
        TRIG_MODE_CONTINUE        = 0, //连续采集
        TRIG_MODE_POST            = 1, //后触发               
        TRIG_MODE_DELAY           = 2, //延时触发
        TRIG_MODE_PRE                          = 3, //前触发,USB9825不支持               
        TRIG_MODE_MIDDLE          = 4  //中触发,USB9825不支持               
} TRIGGER_MODE;

//触发源
typedef enum EmTriggerSource
{
        TRIG_SRC_EXT_RISING      = 0,  //外正沿触发
        TRIG_SRC_EXT_FALLING     = 1,  //外负沿触发       
        TRIG_SRC_SOFT_RISING     = 2,   //软件正沿触发
        TRIG_SRC_SOFT_FALLING    = 3,   //软件负沿触发
        TRIG_SRC_CH1_RISING      = 4,   //CH1正沿触发       
        TRIG_SRC_CH1_FALLING     = 5,   //CH1负沿触发
        TRIG_SRC_CH2_RISING      = 6,   //CH2正沿触发
        TRIG_SRC_CH2_FALLING     = 7,   //CH2负沿触发
        TRIG_SRC_CH3_RISING      = 8,   //CH3正沿触发       
        TRIG_SRC_CH3_FALLING     = 9,   //CH3负沿触发
        TRIG_SRC_CH4_RISING      = 10,   //CH4正沿触发
        TRIG_SRC_CH_FALLING      = 11,   //CH4负沿触发
        TRIG_SRC_INT_RISING      = 12,   //PWM正沿触发
        TRIG_SRC_INT_FALLING     = 13    //PWM负沿触发       
} TRIGGER_SOURCE;

//AD数据输出格式
typedef enum EmADFormat
{
        ADFMT_STBIN    = 0, //直接二进制输出
        ADFMT_2SBIN    = 1  //二进制补码输出
} AD_FORMAT;

//读/写零偏
#define WRITEOFFSET 0 //写零偏
#define READOFFSET  1 //读零偏

//触发长度单位
#define   TRIG_UNIT   32

#define READ_MAX_LEN   1572864L     //最大读取长度

/***********************************************************/
#ifndef DEFINING
#define DEVAPI __declspec(dllimport)
#else
#define DEVAPI __declspec(dllexport)
#endif

#ifdef __cplusplus
extern "C" {
#endif

        //判断是否为高速USB设备
        DEVAPI BOOL FAR PASCAL USB9825_IsHighDevice(HANDLE hDevice,PUCHAR pDat);
        //根据设备号打开设备
        DEVAPI HANDLE FAR PASCAL USB9825_Link(UCHAR DeviceNO);
        //断开设备
        DEVAPI BOOL FAR PASCAL USB9825_UnLink(HANDLE hDevice);
        //初始化参数并开始采集
        DEVAPI BOOL FAR PASCAL USB9825_InitAD(HANDLE hDevice, PUSB9825_PARA_INIT para_init);
        //读取AD数据
        DEVAPI BOOL FAR PASCAL USB9825_ReadAD(HANDLE hDevice,PUSHORT pBuf, ULONG nCount);
        //结束采集
        DEVAPI BOOL FAR PASCAL USB9825_StopAD(HANDLE hDevice, UCHAR devNum);
        //设置DO
        DEVAPI BOOL FAR PASCAL USB9825_SetDO(HANDLE hDevice, LONG byDO);
        //读取DI
        DEVAPI BOOL FAR PASCAL USB9825_GetDI(HANDLE hDevice, PLONG pDI);
        //设置AD零偏
        DEVAPI BOOL FAR PASCAL USB9825_ADoffset(HANDLE hDevice, LONG lselAD,
                BOOL bWtRd,PLONG plADoffset);
        //读取硬件FIFO溢出位
        DEVAPI BOOL FAR PASCAL USB9825_GetBufOver(HANDLE hDevice, PLONG pBufOver);
        //软件触发
        DEVAPI BOOL FAR PASCAL USB9825_ExeSoftTrig(HANDLE hDevice);
        //读取设备信息
        DEVAPI BOOL FAR PASCAL USB9825_GetDevInfo(HANDLE hdl,LONG* devFifoSize,LONG* devADbit);
        //读写用户存储器
        DEVAPI BOOL FAR PASCAL USB9825_WrRdUsrMem(HANDLE hDevice, BOOL bWtRd, PLONG pMem);
        //设置PWM脉冲发生器
        DEVAPI BOOL FAR PASCAL USB9825_SetPulGen(HANDLE hDevice, ULONG lAllcnt, ULONG lHighCnt, BOOL bEnable);

#ifdef __cplusplus
}
#endif


回复

点赞 举报

实习生

发表于 2018-3-9 09:06:07    楼主|
老蜗牛 发表于 2018-3-8 12:28
有没有头文件?然后,是不是先读数据再Stop AD?

头文件补充在帖子上面了
回复

点赞 举报

助理工程师

发表于 2018-3-9 11:16:23  
ki_happy 发表于 2018-3-9 09:06
头文件补充在帖子上面了

最好上传采集卡附送光盘中的USB9825.h文档
回复

点赞 举报

助理工程师

发表于 2018-3-9 11:18:33  
ki_happy 发表于 2018-3-9 08:49
是的,就是这张卡

附件最好转成低版本的
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

方案交易

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区