?? module1.bas
字號(hào):
Attribute VB_Name = "Module1"
Public m_cardNO As Long 'pci卡的板卡索引號(hào)
Public m_DARange As Long 'DA輸出范圍
Public m_initData(819200) As Integer '臨時(shí)緩沖區(qū)
Public m_floatData(819200) As Single '申請(qǐng)足夠大的緩沖區(qū),應(yīng)該是4096的整數(shù)倍,并且緩沖區(qū)大小至少大于4096
Public m_retCount As Long '讀到的數(shù)據(jù)個(gè)數(shù)
'錯(cuò)誤號(hào)說(shuō)明
Public Enum ZTERR '錯(cuò)誤號(hào)
ZT_SUCCESS = 0 '無(wú)錯(cuò)誤
ERR_PARAMETER1 = 1 '參數(shù)1錯(cuò)
ERR_PARAMETER2 = 2 '參數(shù)2錯(cuò)
ERR_PARAMETER3 = 3 '參數(shù)3錯(cuò)
ERR_PARAMETER4 = 4 '參數(shù)4錯(cuò)
ERR_PARAMETER5 = 5 '參數(shù)5錯(cuò)
ERR_PARAMETER6 = 6 '參數(shù)6錯(cuò)
ERR_PARAMETER7 = 7 '參數(shù)7錯(cuò)
ERR_PARAMETER8 = 8 '參數(shù)8錯(cuò)
ERR_PARAMETER9 = 9 '參數(shù)9錯(cuò)
ERR_PARAMETER10 = 10 '參數(shù)10錯(cuò)
ERR_PARAMETER11 = 11 '參數(shù)11錯(cuò)
ERR_PARAMETER12 = 12 '參數(shù)12錯(cuò)
ERR_PARAMETER13 = 13 '參數(shù)13錯(cuò)
ERR_PARAMETER14 = 14 '參數(shù)14錯(cuò)
ERR_PARAMETER15 = 15 '參數(shù)15錯(cuò)
ERR_PARAMETER16 = 16 '參數(shù)16錯(cuò)
ERR_PARAMETER17 = 17 '參數(shù)17錯(cuò)
ERR_PARAMETER18 = 18 '參數(shù)18錯(cuò)
ERR_PARAMETER19 = 19 '參數(shù)19錯(cuò)
ERR_PARAMETER20 = 20 '參數(shù)20錯(cuò)
ERR_PARAMETER_BASEADDR = 21 '針對(duì)ISA卡,板卡基地址超出范圍,應(yīng)該在0x100至0x3F0之間未被系統(tǒng)占用的地址
ERR_PARAMETER_CARDNO = 22 '針對(duì)PCI卡,板卡索引號(hào)超出范圍,這版驅(qū)動(dòng)中板卡索引號(hào)從1開(kāi)始
ERR_PARAMETER_CHMODE = 23 '通道方式參數(shù)錯(cuò)誤,通道方式超出范圍,一般只有0--3共4種方式
ERR_PARAMETER_CH = 24 '通道號(hào)參數(shù)錯(cuò)誤,通道號(hào)超出范圍
ERR_PARAMETER_CHIP = 25 '芯片號(hào)參數(shù)錯(cuò)誤,芯片號(hào)超出范圍
ERR_PARAMETER_PORT = 26 '口號(hào)參數(shù)錯(cuò)誤,口號(hào)超出范圍
ERR_PARAMETER_AI_RANGE = 27 'AD量程參數(shù)錯(cuò),此卡不支持這種AD輸入量程
ERR_PARAMETER_AI_AMP = 28 'AD增益參數(shù)錯(cuò)
ERR_PARAMETER_AI_STARTMODE = 29 'AD啟動(dòng)方式參數(shù)錯(cuò)
ERR_PARAMETER_AO_RANGE = 30 'DA量程參數(shù)錯(cuò),此卡不支持這種DA輸出量程
ERR_PARAMETER_ADFREQ = 31 'AD采集頻率(或AD分頻系數(shù))參數(shù)錯(cuò)
ERR_PARAMETER_IRQ = 32 '與中斷相關(guān)參數(shù)錯(cuò),可能是此卡不支持這種中斷方式或中斷號(hào)
ERR_PARAMETER_NULL_POINTER = 33 '空指針錯(cuò)。原因:緩沖區(qū)首地址為空或者用戶傳入的參數(shù)導(dǎo)致引用到空指針
ERR_AD_OVERTIME = 34 'AD超時(shí)。對(duì)于ISA卡,出錯(cuò)原因可能是:未插卡或IO地址與板卡上設(shè)置不匹配。當(dāng)用定時(shí)啟動(dòng)AD或外觸發(fā)啟動(dòng)AD時(shí),一般不應(yīng)檢查AD是否超時(shí)
ERR_OPEN_DEVICE = 35 '打開(kāi)設(shè)備失敗,對(duì)于PCI卡,出錯(cuò)原因可能是:未插卡或未裝驅(qū)動(dòng)
ERR_CLOSE_DEVICE = 36 '關(guān)閉設(shè)備失敗
ERR_TIMING = 37 '定時(shí)未到或外觸發(fā)脈沖未到
ERR_IOADDR_DA_OVERTIME = 38 '帶光隔DA寫(xiě)過(guò)程超時(shí)
ERR_OPEN_IRQ = 39 '打開(kāi)中斷出錯(cuò)
ERR_FUNC_CANNT_RUN = 40 '此函數(shù)不能在這臺(tái)計(jì)算機(jī)上運(yùn)行
ERR_ASYNC_FUNC_FAILED = 41 '異步函數(shù)調(diào)用失敗
ERR_FUNC_OPERATE = 42 '在當(dāng)前的卡的設(shè)置狀態(tài)下,不應(yīng)該調(diào)用此函數(shù)
ERR_EXCHANGE_DATA = 43 '與底層驅(qū)動(dòng)之間交換數(shù)據(jù)出錯(cuò)
End Enum
'與原驅(qū)動(dòng)不同,通道號(hào),芯片號(hào),口號(hào),默認(rèn)從1開(kāi)始
Public Declare Function ZT8361_GetBaseAddr Lib "pci8361.dll" (ByVal cardNO As Long) As Long '得到板卡基地址
'打開(kāi)設(shè)備,必須在調(diào)用其他函數(shù)之前調(diào)用。放在程序初始化時(shí)調(diào)用比較恰當(dāng),只調(diào)用一次
Public Declare Function ZT8361_OpenDevice Lib "pci8361.dll" (ByVal cardNO As Long) As Long '返回 0 表示打開(kāi)設(shè)備成功,非0 表示失敗
Public Declare Function ZT8361_CloseDevice Lib "pci8361.dll" (ByVal cardNO As Long) As Long '關(guān)閉設(shè)備,在用戶程序結(jié)束時(shí)調(diào)用一次
Public Declare Function ZT8361_GetLastErr Lib "pci8361.dll" () As Long '得到錯(cuò)誤號(hào)
Public Declare Sub ZT8361_ClearLastErr Lib "pci8361.dll" () '清除錯(cuò)誤號(hào),一旦產(chǎn)生錯(cuò)誤,為了使其他函數(shù)重新正常運(yùn)行,必須清除錯(cuò)誤號(hào)
'函數(shù)功能:設(shè)置板卡索引號(hào),芯片號(hào),口號(hào)和通道號(hào)從0開(kāi)始還是從1開(kāi)始
Public Declare Sub ZT8361_SetBaseNO Lib "pci8361.dll" (ByVal baseNO As Long) '設(shè)置芯片號(hào)或通道號(hào)從0開(kāi)始還是從1開(kāi)始
'函數(shù)功能:返回當(dāng)前板卡索引號(hào),芯片號(hào),口號(hào)和通道號(hào)從0開(kāi)始還是從1開(kāi)始
Public Declare Function ZT8361_GetBaseNO Lib "pci8361.dll" () As Long '返回當(dāng)前芯片號(hào)或通道號(hào)從0開(kāi)始還是從1開(kāi)始
Public Declare Function ZT8361_ReadW Lib "pci8361.dll" (ByVal cardNO As Long, ByVal nOffset As Long) As Long
Public Declare Function ZT8361_WriteW Lib "pci8361.dll" (ByVal cardNO As Long, ByVal nOffset As Long, ByVal dataWord As Long) As Long
Public Declare Function ZT8361_LoadADZeroFull Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal AIrange As Long, _
ByVal readFrom As Long, _
ByVal bForceReLoad As Long) As Long
'模入部分
Public Declare Function ZT8361_DisableAD Lib "pci8361.dll" (ByVal cardNO As Long) As Long
Public Declare Function ZT8361_EnableAD Lib "pci8361.dll" (ByVal cardNO As Long) As Long
'設(shè)置AD方式控制字,參數(shù)說(shuō)明請(qǐng)看《pci8361.h》
Public Declare Function ZT8361_AIinit Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal chMode As Long, _
ByVal chNO As Long, _
ByVal AIrange As Long, _
ByRef AIAmp As Long, _
ByVal ADstartMode As Long, _
ByVal ADfreq As Long, _
ByVal ADctrlWord As Long, _
ByVal ADoverTime As Long) As Long
Public Declare Function ZT8361_ClearHFifo Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_GetHFifoStatus Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_ClearSFifo Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_SetSFifoSize Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long, ByVal SFifoSize As Long) As Long
Public Declare Function ZT8361_GetSFifoSize Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_DisableSFifo Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_EnableSFifo Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_GetSFifoDataCount Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
Public Declare Function ZT8361_SetSFifoThreshold Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long, ByVal SFifoThreshold As Long) As Long
Public Declare Function ZT8361_GetSFifoThreshold Lib "pci8361.dll" (ByVal cardNO As Long, ByVal unitType As Long) As Long
'每次采一批數(shù),參數(shù)說(shuō)明請(qǐng)看《pci8361.h》
Public Declare Function ZT8361_ReadSFifo Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal unitType As Long, _
ByVal dataType As Long, _
ByRef pResultArr As Any, _
ByVal wantReadCount As Long) As Long
Public Declare Function ZT8361_AISFifo Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal dataType As Long, _
ByRef pFloatResultArr As Single, _
ByVal wantReadCount As Long) As Long
Public Declare Function ZT8361_OpenIRQ Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal hEventSFifo As Long, _
ByVal hEventHFifoFewData As Long, _
ByVal hEventHFifoHalf As Long, _
ByVal hEventEI As Long, _
ByVal hEventADFinish As Long) As Long
Public Declare Function ZT8361_CloseIRQ Lib "pci8361.dll" (ByVal cardNO As Long) As Long
'開(kāi)關(guān)量部分
Public Declare Function ZT8361_DIBit Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal groupNO As Long, _
ByVal chNO As Long) As Long
Public Declare Function ZT8361_DIAll Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal groupNO As Long) As Long
Public Declare Function ZT8361_DOBit Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal groupNO As Long, _
ByVal chNO As Long, _
ByVal nState As Long) As Long
Public Declare Function ZT8361_DOAll Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByVal groupNO As Long, _
ByVal nStateAll As Long) As Long
'計(jì)數(shù)器部分
Public Declare Function ZT8361_CTStart Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal chNO As Long, _
ByVal CTMode As Long, _
ByVal CTinitVal As Long) As Long
Public Declare Function ZT8361_CTRead Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal chNO As Long, _
ByVal lockBeforeRead As Long) As Long
Public Declare Function ZT8361_CTStop Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal chNO As Long, _
ByVal CTMode As Long) As Long
Public Declare Function ZT8361_InitIRQ Lib "pci8361.dll" (ByVal cardNO As Long, _
ByVal irqSource As Long) As Long
Public Declare Function ZT8361_SetAIresultTrans Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByRef pNeedTrans As Long, _
ByRef pMeasureDown As Single, _
ByRef pMeasureUp As Single, _
ByRef pEngiDown As Single, _
ByRef pEngiUp As Single, _
ByRef pReviseK As Single, _
ByRef pReviseB As Single) As Long
Public Declare Function ZT8361_GetAIresultTrans Lib "pci8361.dll" ( _
ByVal cardNO As Long, _
ByRef pNeedTrans As Long, _
ByRef pMeasureDown As Single, _
ByRef pMeasureUp As Single, _
ByRef pEngiDown As Single, _
ByRef pEngiUp As Single, _
ByRef pReviseK As Single, _
ByRef pReviseB As Single) As Long
'建議用枚舉類型指定AD量程或DA輸出范圍,可增加程序的可讀性
Public Enum AI
'AI方式
Range_initCode = 0 '原碼方式
Range_0__5000mV = 1
Range_0__10000mV = 2
'Range_1000__5000mV = 3
'Range_N2500__P2500mV = 4
Range_N5000__P5000mV = 5
Range_N10000__P10000mV = 6
Range_0__4000mV = 7
Range_N3330__P3330mV = 8
Range_0__10000uA = 9
Range_0__20000uA = 10
Range_4000__20000uA = 11
End Enum
Public Enum AO
'AO方式
Range_initCode = 0 '原碼方式
'Range_0__5000mV = 1
Range_0__10000mV = 2
'Range_1000__5000mV = 3
'Range_N2500__P2500mV = 4
'Range_N5000__P5000mV = 5
Range_N10000__P10000mV = 6
'Range_0__2500mV = 7
'Range_0__10000uA = 8
'Range_4000__20000uA = 9
End Enum
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -