新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 在LabVIEW下使用ZLGCAN接口函數(shù)庫(kù)

在LabVIEW下使用ZLGCAN接口函數(shù)庫(kù)

作者: 時(shí)間:2012-07-11 來(lái)源:網(wǎng)絡(luò) 收藏
1、概述

VirtualCANInterface(VCI)函數(shù)庫(kù)是專(zhuān)門(mén)為ZLGCAN設(shè)備在PC上使用而提供的應(yīng)用程序接口。庫(kù)里的函數(shù)從ControlCAN.dll中導(dǎo)出,在7.0中可以直接使用這些庫(kù)函數(shù)而無(wú)需額外的操作。VCI函數(shù)的使用流程如圖1.1所示。


圖1.1VCI函數(shù)使用流程

2、使用VCI函數(shù)

2.1數(shù)據(jù)結(jié)構(gòu)

VCI函數(shù)庫(kù)中定義了一些數(shù)據(jù)結(jié)構(gòu)用于數(shù)據(jù)交換,在使用VCI函數(shù)前應(yīng)該先創(chuàng)建這些數(shù)據(jù)結(jié)構(gòu)。在中創(chuàng)建這些結(jié)構(gòu)時(shí)應(yīng)該使用簇——Cluster。一個(gè)簇就是一個(gè)由若干不同的數(shù)據(jù)類(lèi)型的成員組成的集合體,類(lèi)似于C語(yǔ)言中的結(jié)構(gòu)。其成員可以是任意的數(shù)據(jù)類(lèi)型,但必須都是控件或都是顯示件。成員的邏輯順序是由它們被放入簇的先后順序決定的。

2.1.1VCI_BOARD_INFO結(jié)構(gòu)

VCI_BOARD_INFO結(jié)構(gòu)體包含ZLGCAN系列接口卡的設(shè)備信息。結(jié)構(gòu)體將在VCI_ReadBoardInfo函數(shù)中被填充。

typedefstruct_VCI_BOARD_INFO{
USHORThw_Version;
USHORTfw_Version;
USHORTdr_Version;
USHORTin_Version;
USHORTirq_Num;
BYTEcan_Num;
CHARstr_Serial_Num[20];
CHARstr_hw_Type[40];
USHORTReserved[4];
}VCI_BOARD_INFO,*PVCI_BOARD_INFO;


圖2.1VCI_BOARD_INFO結(jié)構(gòu)

2.1.2VCI_CAN_OBJ結(jié)構(gòu)

VCI_CAN_OBJ結(jié)構(gòu)體在VCI_Transmit和VCI_Receive函數(shù)中被用來(lái)傳送CAN信息幀。

typedefstruct_VCI_CAN_OBJ{
UINTID;
UINTTimeStamp;
BYTETimeFlag;
BYTESendType;
BYTERemoteFlag;
BYTEExternFlag;
BYTEDataLen;
BYTEData[8];
BYTEReserved[3];
}VCI_CAN_OBJ,*PVCI_CAN_OBJ;


圖2.2VCI_CAN_OBJ結(jié)構(gòu)

2.1.3VCI_CAN_STATUS結(jié)構(gòu)

VCI_CAN_STATUS結(jié)構(gòu)體包含CAN控制器狀態(tài)信息。結(jié)構(gòu)體將在VCI_ReadCanStatus函數(shù)中被填充。

typedefstruct_VCI_CAN_STATUS{
UCHARErrInterrupt;
UCHARregMode;
UCHARregStatus;
UCHARregALCapture;
UCHARregECCapture;
UCHARregEWLimit;
UCHARregRECounter;
UCHARregTECounter;
DWORDReserved;
}VCI_CAN_STATUS,*PVCI_CAN_STATUS;


圖2.3VCI_CAN_STATUS結(jié)構(gòu)

2.1.4VCI_ERR_INFO結(jié)構(gòu)

VCI_ERR_INFO結(jié)構(gòu)體用于裝載VCI庫(kù)運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤信息。結(jié)構(gòu)體將在VCI_ReadErrInfo函數(shù)中被填充。

typedefstruct_ERR_INFO{
UINTErrCode;
BYTEPassive_ErrData[3];
BYTEArLost_ErrData;
}VCI_ERR_INFO,*PVCI_ERR_INFO;


圖2.4VCI_ERR_INFO結(jié)構(gòu)

2.1.5VCI_INIT_CONFIG結(jié)構(gòu)

VCI_INIT_CONFIG結(jié)構(gòu)體定義了初始化CAN的配置。結(jié)構(gòu)體將在VCI_InitCan函數(shù)中被填充。

typedefstruct_INIT_CONFIG{
DWORDAccCode;
DWORDAccMask;
DWORDReserved;
UCHARFilter;
UCHARTiming0;
UCHARTiming1;
UCHARMode;
}VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;


圖2.5VCI_INIT_CONFIG結(jié)構(gòu)

下面以VCI_CAN_OBJ結(jié)構(gòu)為例,在7.0中創(chuàng)建VCI_CAN_OBJ結(jié)構(gòu)。先在ArrayCluster控件子模板選擇一個(gè)簇的空殼放到前面板上,將其命名為VCI_CAN_OBJ,然后根據(jù)需要放置的控件多少用定位工具調(diào)整簇空殼的大??;按照VCI_CAN_OBJ結(jié)構(gòu)成員的順序,從Numeric控件子模板中取NumericIndicator控件或從前面板上移動(dòng)控件到簇的空殼中,并按圖2.6將各NumericIndicator控件重命名。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: LabVIEW

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉