在LabVIEW下使用ZLGCAN接口函数库

2012-07-11 16:13:25来源: 中国传动网
1、概述

    Virtual CAN Interface (VCI) 函数库是专门为ZLGCAN 设备在PC 上使用而提供的应用程序接口。库里的函数从ControlCAN.dll 中导出,在LabVIEW7.0 中可以直接使用这些库函数而无需额外的操作。VCI 函数的使用流程如图 1.1 所示。


图 1.1 VCI 函数使用流程

2、使用VCI 函数

2.1 数据结构

    VCI 函数库中定义了一些数据结构用于数据交换,在使用VCI 函数前应该先创建这些数据结构。在LabVIEW 中创建这些结构时应该使用簇——Cluster。一个簇就是一个由若干不同的数据类型的成员组成的集合体,类似于C 语言中的结构。其成员可以是任意的数据类型,但必须都是控件或都是显示件。成员的逻辑顺序是由它们被放入簇的先后顺序决定的。

2.1.1 VCI_BOARD_INFO 结构

    VCI_BOARD_INFO 结构体包含ZLGCAN 系列接口卡的设备信息。结构体将在VCI_ReadBoardInfo 函数中被填充。

typedef struct _VCI_BOARD_INFO {
USHORT hw_Version;
USHORT fw_Version;
USHORT dr_Version;
USHORT in_Version;
USHORT irq_Num;
BYTE can_Num;
CHAR str_Serial_Num[20];
CHAR str_hw_Type[40];
USHORT Reserved[4];
} VCI_BOARD_INFO, *PVCI_BOARD_INFO;


图 2.1 VCI_BOARD_INFO 结构

2.1.2 VCI_CAN_OBJ 结构

    VCI_CAN_OBJ 结构体在VCI_Transmit 和VCI_Receive 函数中被用来传送CAN信息帧。

typedef struct _VCI_CAN_OBJ {
UINT ID;
UINT TimeStamp;
BYTE TimeFlag;
BYTE SendType;
BYTE RemoteFlag;
BYTE ExternFlag;
BYTE DataLen;
BYTE Data[8];
BYTE Reserved[3];
} VCI_CAN_OBJ, *PVCI_CAN_OBJ;


图 2.2 VCI_CAN_OBJ 结构

2.1.3 VCI_CAN_STATUS 结构

    VCI_CAN_STATUS 结构体包含CAN 控制器状态信息。结构体将在VCI_ReadCanStatus函数中被填充。

typedef struct _VCI_CAN_STATUS {
UCHAR ErrInterrupt;
UCHAR regMode;
UCHAR regStatus;
UCHAR regALCapture;
UCHAR regECCapture;
UCHAR regEWLimit;
UCHAR regRECounter;
UCHAR regTECounter;
DWORD Reserved;
} VCI_CAN_STATUS, *PVCI_CAN_STATUS;


图 2.3 VCI_CAN_STATUS 结构

2.1.4 VCI_ERR_INFO 结构

    VCI_ERR_INFO结构体用于装载VCI库运行时产生的错误信息。结构体将在VCI_ReadErrInfo函数中被填充。

typedef struct _ERR_INFO {
UINT ErrCode;
BYTE Passive_ErrData[3];
BYTE ArLost_ErrData;
} VCI_ERR_INFO, *PVCI_ERR_INFO;


图 2.4 VCI_ERR_INFO 结构

2.1.5 VCI_INIT_CONFIG 结构

    VCI_INIT_CONFIG 结构体定义了初始化CAN 的配置。结构体将在VCI_InitCan 函数中被填充。

typedef struct _INIT_CONFIG {
DWORD AccCode;
DWORD AccMask;
DWORD Reserved;
UCHAR Filter;
UCHAR Timing0;
UCHAR Timing1;
UCHAR Mode;
} VCI_INIT_CONFIG, *PVCI_INIT_CONFIG;


图 2.5 VCI_INIT_CONFIG 结构

    下面以VCI_CAN_OBJ 结构为例,在LabVIEW7.0 中创建VCI_CAN_OBJ 结构。先在Array&Cluster 控件子模板选择一个簇的空壳放到前面板上,将其命名为VCI_CAN_OBJ,然后根据需要放置的控件多少用定位工具调整簇空壳的大小;按照VCI_CAN_OBJ 结构成员的顺序,从Numeric 控件子模板中取Numeric Indicator 控件或从前面板上移动控件到簇的空壳中,并按图 2.6 将各Numeric Indicator 控件重命名。

[1] [2] [3] [4]

关键字:LabVIEW

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0711/article_5415.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved