




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄1. 介紹31.1 概述31.2 I/O 接口31.3 針腳定義31.4 模擬量輸入連接51.4.1 單端通道連接51.4.2 差分輸入連接51.5 模擬量輸出連接(電壓)61.6 觸發(fā)源連接71.6.1 內(nèi)部脈沖觸發(fā)連接71.6.2 外部觸發(fā)源連接72. 研華設(shè)備驅(qū)動(dòng)應(yīng)用73. 函數(shù)參考83.1 USB系列函數(shù)支持列表83.1.1 Device 函數(shù)組83.1.2 模擬量輸入函數(shù)組83.1.3 模擬量輸出函數(shù)組83.1.4 數(shù)字量輸入/輸出函數(shù)組83.1.5 Counter 函數(shù)組84. 使用函數(shù)94.1 設(shè)備函數(shù)組94.1.1 DRV_DeviceOpen114.1.2 DRV_DeviceClose114.2 模擬量輸入函數(shù)組124.2.1 DRV_AIConfig134.2.2 DRV_AIVoltageIn144.2.3 DRV_AIBinaryIn154.2.4 DRV_AIScale164.3 模擬量輸出函數(shù)組174.3.1 DRV_AOConfig184.3.2 DRV_AOVoltageOut194.3.3 DRV_AOBinaryOut214.3.4 DRV_AOScale224.4 Counter 函數(shù)組234.4.1 DRV_CounterEventStart244.4.2 DRV_CounterEventRead254.4.3 DRV_CounterReset265. VC中使用研華設(shè)備驅(qū)動(dòng)編程指南275.1 添加必要文件295.2 編寫代碼305.3 測試程序311. 介紹1.1 概述USB-4711A系列包括即插即用數(shù)據(jù)采集模塊,因此無需再打開您的計(jì)算機(jī)機(jī)箱來安裝板卡。僅需插上模塊,便可以采集到數(shù)據(jù),簡單高效。USB-4711A是給任何帶有USB端口的計(jì)算機(jī)增加測量和控制能力的最佳途徑。它通過USB端口獲得所有所需的電源,因此無需連接外部的電源。USB-4711A在一塊卡上包含了所有的數(shù)據(jù)采集功能,如:16路AI,2路AO,8路DI,8路DO,1路32位計(jì)數(shù)器,其中A/D數(shù)據(jù)采集為12位。USB-4711A板卡如圖1.1所示。圖1.1 USB-4711A板卡1.2 I/O 接口USB-4711A 配有插入式螺絲端子接口,因此連接模塊時(shí)無需另外準(zhǔn)備端子板或電纜。1.3 針腳定義圖1.2為USB-4711A 上五個(gè)10針I(yè)/O 接口的針腳定義。兩個(gè)接地參考AGND 和DGND 的用途不同,因此應(yīng)分開使用。不要將兩者進(jìn)行連接。表1.1為I/O 接口信號(hào)的描述。圖 1.2 I/O 接口針腳定義表 1.1 I/O 接口信號(hào)描述信號(hào)名參考方向描 述AIAGND輸入模擬量輸入通道0 15。AO0/AO1AGND輸出模擬量輸出通道0/1。AGND-模擬量輸入輸出接地DIDGND輸入數(shù)字量輸入通道。DODGND輸出數(shù)字量輸出通道。DGND-數(shù)字量接地。GATEDGND輸入A/D 外部觸發(fā)門。將GATE 連接至+5 V 將禁用外部觸發(fā)信號(hào)的輸入。EXT _TRGDGND輸入A/D 外部觸發(fā)。此針腳為A/D 轉(zhuǎn)換的外部觸發(fā)信號(hào)。低- 高沿將觸發(fā)A/D轉(zhuǎn)換。EVT_INDGND輸入外部事件輸入通道。P_OUTDGND輸出脈沖輸出通道1.4 模擬量輸入連接USB-4711A支持16 路單端/8路差分輸入。每個(gè)輸入通道都可通過軟件方式進(jìn)行選擇。1.4.1 單端通道連接單端輸入配置只為每個(gè)通道提供1根信號(hào)線,且被測電壓(Vm)是以公共地為參考的線纜電壓。沒有接地端的信號(hào)源稱為“浮動(dòng)信號(hào)源”。將單端通道連接至浮動(dòng)信號(hào)源尤為簡單。在這種模式下,USB-4711A 為外部浮動(dòng)信號(hào)源提供一個(gè)參考地。圖1.3為浮動(dòng)信號(hào)源與USB-4711A的1個(gè)輸入通道的單端通道連接。圖1.3 單端輸入通道連接1.4.2 差分輸入連接差分輸入為每個(gè)通道提供兩根信號(hào)線,兩根信號(hào)線之間的電壓差是可測量的。在USB-4711A中,當(dāng)所有通道都配置為差分輸入,最多可有8個(gè)模擬通道。如果信號(hào)源的一側(cè)連接到地面,信號(hào)源作為參考地。因此,信號(hào)源的地與板卡地將形成不完全相同的電壓。地面之間的電壓差異,形成了一個(gè)共模電壓(Vcm )。為了避免共模電壓引起的接地回路噪聲的影響,您可以連接到低輸入信號(hào)地面。注:在差分輸入模式,輸入通道n應(yīng)使用通道n +1。(N =0,2,4. 14)圖1.4為 USB-4711A的1個(gè)輸入通道的差分輸入通道連接。圖1.4 差分輸入通道連接1.5 模擬量輸出連接(電壓)USB-4711A提供了2個(gè)模擬量輸出通道,即AO0和AO1。圖1.5 為USB-4711A的模擬量輸出通道連接。圖1.5 模擬量輸出通道連接1.6 觸發(fā)源連接1.6.1 內(nèi)部脈沖觸發(fā)連接USB-4711A提供了2個(gè)16-bit計(jì)數(shù)器,可以連接至1個(gè)10MHz 時(shí)鐘。計(jì)數(shù)器0負(fù)責(zé)輸入通道的事件計(jì)數(shù)。計(jì)數(shù)器1是1個(gè)16-bit定時(shí)器,用于脈沖觸發(fā)。計(jì)數(shù)器1輸出的上升沿信號(hào)(低高)將觸發(fā)USB-4711A的A/D 轉(zhuǎn)換。1.6.2 外部觸發(fā)源連接除脈沖觸發(fā)以外,USB-4711A還為A/D 轉(zhuǎn)換提供了外部觸發(fā)。將GATE信號(hào)連接至+5VDC 源時(shí),外部觸發(fā)功能即被禁用。斷開與+5VDC源的連接即可啟用外部觸發(fā)功能。2. 研華設(shè)備驅(qū)動(dòng)應(yīng)用研華Windows設(shè)備驅(qū)動(dòng)是動(dòng)態(tài)鏈接的。以下列出了開發(fā)應(yīng)用時(shí)必需的文件:3. 函數(shù)參考3.1 USB系列函數(shù)支持列表3.1.1 Device 函數(shù)組DRV_DeviceOpenDRV_DeviceCloseDRV_DeviceGetFeaturesDRV_DeviceGetPropertyDRV_DeviceSetProperty3.1.2 模擬量輸入函數(shù)組DRV_AIConfigDRV_AIGetConfigDRV_AIBinaryInDRV_AIScaleDRV_AIVoltageInDRV_AIVoltageInExpDRV_MAIConfigDRV_MAIVoltageInDRV_MAIVoltageInExpDRV_MAIBinaryIn3.1.3 模擬量輸出函數(shù)組DRV_AOConfigDRV_AOScaleDRV_AOBinaryOutDRV_AOVoltageOut3.1.4 數(shù)字量輸入/輸出函數(shù)組AdxDioGetCurrentDoPortsStateAdxDioReadDiPortsAdxDioWriteDoPortsDRV_DioReadBitDRV_DioWriteBitDRV_DioReadPortByteDRV_DioWritePortByteDRV_DioReadPortWordDRV_DioWritePortWordDRV_DioReadPortDwordDRV_DioWritePortDwordDRV_DioGetCurrentDOBitDRV_DioGetCurrentDOByteDRV_DioGetCurrentDOWord3.1.5 Counter 函數(shù)組DRV_CounterEventStartDRV_CounterEventReadDRV_CounterReset4. 使用函數(shù)函數(shù)描述函數(shù)部分包括模擬量輸入函數(shù),模擬量輸出函數(shù),數(shù)字量輸入函數(shù),數(shù)字量輸出函數(shù)等等。研華的每個(gè)函數(shù)都將以如下形式出現(xiàn):status = FUNCTION_Name (parameter 1, parameter 2,. , parameter n)(n0),每個(gè)函數(shù)都會(huì)返回一個(gè)狀態(tài),表明函數(shù)執(zhí)行成功還是失?。ū4嬖趕tatus變量中)。Status (Value)結(jié) 果UNSUCCESS (0)遇到錯(cuò)誤,函數(shù)執(zhí)行失敗SUCCESS (=0)函數(shù)執(zhí)行成功Status是一個(gè)4字節(jié)的整型變量,在DRIVER.H里被定義。4.1 設(shè)備函數(shù)組進(jìn)行所有I/O 操作時(shí),必須首先調(diào)用DRV_DeviceOpen,通過設(shè)備號(hào)(Device Number)打開設(shè)備得到設(shè)備句柄,以使用戶訪問該設(shè)備,然后調(diào)用一系列函數(shù)執(zhí)行相應(yīng)的功能。結(jié)束操作時(shí),調(diào)用DRV_DeviceClose關(guān)閉設(shè)備,釋放由DRV_DeviceOpen分配的資源,基本流程如圖4.1所示。圖4.1 設(shè)備函數(shù)組應(yīng)用流程Device Number (Type: Unsigned Long,Size: 4 bytes)指定要進(jìn)行I/O操作的設(shè)備,即要打開的設(shè)備的設(shè)備號(hào)。設(shè)備號(hào)在Advantech Device Manager中初始化設(shè)備的時(shí)候分配。比如“000:Advantech DEMO I/O=1H”,這個(gè)設(shè)備的設(shè)備號(hào)就為000,用戶可以直接在DRV_DeviceOpen函數(shù)中指定要打開的設(shè)備號(hào),也可以通過調(diào)用DRV_SelectDevice 函數(shù)打開一個(gè)對(duì)話框選擇需要的設(shè)備,從而取得相應(yīng)的設(shè)備號(hào)。DRV_DeviceOpen 和 DRV_DeviceClose 函數(shù) DRV_DeviceOpen 打開設(shè)備號(hào)(Device Number)指定的設(shè)備。在I/O操作中,其它函數(shù)執(zhí)行前必須先調(diào)用此函數(shù)。與之對(duì)應(yīng),DRV_DeviceClose 函數(shù)用來關(guān)閉設(shè)備。Driver Handle (Type: Long,Size: 4 bytes) 指向的緩存保存了設(shè)備的設(shè)置信息。函數(shù)DRV_DeviceOpen返回句柄(Driver Handle),其它進(jìn)行I/O相關(guān)操作的函數(shù)使用該句柄來指定設(shè)備。Error Code(Type: Unsigned Long,Size: 4 bytes) 驅(qū)動(dòng)函數(shù)返回錯(cuò)誤代碼(Error Code)來表明函數(shù)執(zhí)行是否成功。當(dāng)返回代碼非零時(shí),函數(shù)執(zhí)行失敗。DRV_GetErrorMessage函數(shù) DRV_GetErrorMessage函數(shù)通過錯(cuò)誤代碼獲取出錯(cuò)信息。 4.1.1 DRV_DeviceOpenLRESULT DRV_DeviceOpen (ULONG DeviceNum,LONG * DriverHandle );用途:通過指定的設(shè)備號(hào)(DeviceNum)來打開一個(gè)已經(jīng)安裝的設(shè)備,返回設(shè)備句柄DriverHandle以備后續(xù)操作。與指定設(shè)備相關(guān)的所有操作都必須使用指向該設(shè)備的句柄(DriverHandle) ,所以用戶在使用與設(shè)備所分配資源相關(guān)的任何一項(xiàng)操作,如DIO、AO、AI等之前,必須先調(diào)用此函數(shù)。參數(shù):返回值:1. SUCCESS:執(zhí)行成功。2. LoadLibraryFailed:動(dòng)態(tài)鏈接庫裝載失敗,請(qǐng)嘗試重新安裝驅(qū)動(dòng)程序。3. MemoryAllocateFailed:驅(qū)動(dòng)程序內(nèi)部內(nèi)存分配失敗。4. ConfigDataLost:從注冊(cè)表獲取設(shè)備配置信息失敗,這些信息可能已經(jīng)丟失,請(qǐng)嘗試重新安裝驅(qū)動(dòng)程序。5. GetProcAddressFailed:無法獲得驅(qū)動(dòng)程序函數(shù)地址,請(qǐng)嘗試更新驅(qū)動(dòng)程序。注意事項(xiàng):與設(shè)備所分配資源相關(guān)的任何一項(xiàng)操作,如DIO、AO、AI等,執(zhí)行完畢后,用戶必須調(diào)用DRV_DeviceClose函數(shù)來釋放由該設(shè)備通過DRV_DeviceOpen 分配的資源,為設(shè)備再次操作做好準(zhǔn)備。4.1.2 DRV_DeviceClose LRESULT DRV_DeviceClose ( LONG * DriverHandle );用途:關(guān)閉由設(shè)備句柄 DriverHandle 指向的設(shè)備,釋放為該設(shè)備分配的資源。所有與設(shè)備分配資源相關(guān)的操作,如:DIO、AO、AI等完成后需要關(guān)閉該設(shè)備,以釋放由函數(shù) DRV_DeviceOpen 為該設(shè)備分配的資源。參數(shù):返回值:1. SUCCESS:執(zhí)行成功。2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。4.2 模擬量輸入函數(shù)組軟件方式: 該組函數(shù)通過軟件命令觸發(fā)數(shù)據(jù)轉(zhuǎn)換。設(shè)備驅(qū)動(dòng)為單通道和多通道數(shù)據(jù)采集分別提供了不同的函數(shù),兩種數(shù)據(jù)采集都是一次完成??梢允褂密浖〞r(shí)器來周期性地調(diào)用這些函數(shù),對(duì)單通道或多通道周期性地進(jìn)行采樣。對(duì)于大塊數(shù)據(jù)的連續(xù)高速采樣,可以采用中斷或DMA傳輸方式。單通道采樣:DRV_AIConfig 函數(shù)為指定通道設(shè)置輸入值范圍。如果在運(yùn)行期需要改變輸入值范圍,則需要再次調(diào)用DRV_AIConfig函數(shù)。DRV_AIVoltageIn函數(shù)讀取輸入通道當(dāng)前電壓值。設(shè)備驅(qū)動(dòng)通過函數(shù)DRV_AIBinaryIn讀取輸入通道的當(dāng)前二進(jìn)制值,DRV_AIScale函數(shù)可以把它轉(zhuǎn)化成電壓值。4.2.1 DRV_AIConfigLRESULT DRV_AIConfig (LONG DriverHandle, LPT_AIConfig lpAIConfig );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,通過設(shè)置 GainCode來配置指定AI(Analog Input)通道(Channel)的電壓輸入范圍。參數(shù):在 lpAIConfig 指向的結(jié)構(gòu) PT_AIConfig 中保存的參數(shù)包括:所要設(shè)置的通道 (DasChan) 和 GainCode (DasGain)。返回值:1. SUCCESS:執(zhí)行成功。2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。3. InvalidChannel:指定的通道 (chan of lpAIConfig) 超出有效范圍。4. InvalidGain:GainCode (DasGain of lpAIConfig) 超出有效范圍。5. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。注:PT_AIConfig Typedef struct tagPT_AIConfig USHORT DasChan; USHORT DasGain; PT_AIConfig,* LPT_AIConfig;函數(shù) DRV_AIConfig使用到PT_AIConfig。成員描述:gain code列表Gain Code輸入電壓范圍410V05V12.5 V21.25 V30.625V4.2.2 DRV_AIVoltageInLRESULT DRV_AIVoltageIn (LONG DriverHandle,LPT_AIVoltageIn lpAIVoltageIn );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,讀取指定AI(Analog Input)通道的電壓值。參數(shù):此函數(shù)等同于依序調(diào)用 DRV_AIBinaryIn 與 DRV_AIScale。在 lpAIVoltageIn 指向的結(jié)構(gòu) PT_AIVoltageIn 中保存的參數(shù)包括:采樣通道 (chan)、GainCode (gain)、觸發(fā)模式 (TrigMode) 和返回電壓值 (voltage)。返回值:1. SUCCESS:執(zhí)行成功。2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。3. DataNotReady:使用外部觸發(fā)模式時(shí)(TrigMode 為 1),在特定時(shí)間內(nèi),驅(qū)動(dòng)沒有檢測到外部觸發(fā)信號(hào)。4. AIConversionFailed:使用內(nèi)部觸發(fā)模式時(shí)(TrigMode 為 0),在特定時(shí)間內(nèi),設(shè)備未準(zhǔn)備好數(shù)據(jù)。5. InvalidChannel:指定的通道 (chan of lpAIVoltageIn) 超出有效范圍。6. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。注:PT_AIVoltageIn typedef struct tagPT_AIVoltageIn USHORT chan; USHORT gain; USHORT TrigMode; FLOAT *voltage; PT_AIVoltageIn,* LPT_AIVoltageIn;函數(shù) DRV_AIVoltageIn使用到PT_AIVoltageIn 。成員描述:4.2.3 DRV_AIBinaryInLRESULT DRV_AIBinaryIn ( LONG DriverHandle, LPT_AIBinaryIn lpAIBinaryIn );用途:在設(shè)備句柄 DriverHandle 指定的設(shè)備上,讀取指定AI(Analog Input)通道的當(dāng)前二進(jìn)制值,函數(shù)DRV_AIScale 可用來將原始數(shù)據(jù)換為相應(yīng)的電壓值。參數(shù):在 lpAIBinaryIn 指向的結(jié)構(gòu) PT_AIBinaryIn 中保存的參數(shù)包括:所要設(shè)置的通道 (chan)、觸發(fā)模式 (TrigMode) 和返回的原始數(shù)據(jù) (reading)。返回值:1. SUCCESS:執(zhí)行成功。2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。3. DataNotReady:使用外部觸發(fā)模式時(shí)(TrigMode 為 1),在特定時(shí)間內(nèi),驅(qū)動(dòng)沒有檢測到外部觸發(fā)信號(hào)。4. AIConversionFailed:使用內(nèi)部觸發(fā)模式時(shí)(TrigMode 為 0),在特定時(shí)間內(nèi),驅(qū)動(dòng)檢測到數(shù)據(jù)沒有做好準(zhǔn)備。5. InvalidChannel:指定的通道 (chan of lpAIBinaryIn) 超出有效范圍。6. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。注:PT_AIBinaryIn typedef struct tagPT_AIBinaryIn USHORT chan; USHORT TrigMode; USHORT *reading; PT_AIBinaryIn,* LPT_AIBinaryIn; 函數(shù) DRV_AIBinaryIn使用到PT_AIBinaryIn。 成員描述:4.2.4 DRV_AIScaleLRESULT DRV_AIScale (LONG DriverHandle, LPT_AIScale lpAIScale );用途:把二進(jìn)制原始數(shù)據(jù)(通常得自函數(shù)DRV_AIBinaryIn)轉(zhuǎn)換為相應(yīng)的電壓值,或用戶需要的其它模擬量值。參數(shù):在 lpAIScale 指向的結(jié)構(gòu) PT_AIScale 中保存的參數(shù)包括:最大輸入模擬量值(MaxVolt)、最大計(jì)數(shù)值(MaxCount)、零點(diǎn)偏移量(offset)、輸入數(shù)字量值(reading)和返回模擬量值(voltage)。返回值:1.SUCCESS:執(zhí)行成功。2.AIScaleFailed:輸入?yún)?shù)有誤,致轉(zhuǎn)換無法進(jìn)行。注:PT_AIScale Typedef struct tagPT_AIScale USHORT reading; FLOAT MaxVolt; USHORT MaxCount; USHORT offset; FLOAT *voltage; PT_AIScale,* LPT_AIScale;函數(shù)DRV_AIScale使用到PT_AIScale。成員描述:4.3 模擬量輸出函數(shù)組該組函數(shù)實(shí)現(xiàn)模擬量輸出的功能。采樣方式分為單通道,多通道同步輸出,及DMA方式的波形輸出等。軟件方式:單通道單次轉(zhuǎn)換DRV_AOVoltageOut函數(shù)用于電壓輸出:DRV_AOVoltageOut 函數(shù)接收到一個(gè)浮點(diǎn)電壓值,并把它轉(zhuǎn)化成二進(jìn)制數(shù)寫入模擬量輸出通道來改變電壓輸出值。電壓輸出范圍取決于Advantech Device Manager 中DA參考電壓的設(shè)置。在運(yùn)行態(tài)可以調(diào)用DRV_AOConfig 函數(shù)改變電壓范圍的設(shè)置。設(shè)備驅(qū)動(dòng)也提供了二進(jìn)制數(shù)據(jù)輸出函數(shù)DRV_AOBinaryOut,函數(shù)接收到二進(jìn)制數(shù)值并把它寫入模擬量輸出通道。先通過DRV_AOScale 函數(shù)可以把想得到的模擬量輸出值轉(zhuǎn)換成二進(jìn)制數(shù),再通過函數(shù)DRV_AOBinaryOut 輸出。 4.3.1 DRV_AOConfigLRESULT DRV_AOConfig( LONG DriverHandle, LPT_AOConfig lpAOConfig );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,改變所指定AO(Analog Output)通道的輸出范圍默認(rèn)配置 (未調(diào)用本函數(shù)前,AO通道的輸出范圍默認(rèn)參考的是用戶在研華設(shè)備管理器 Advantech Device Manager 的設(shè)置數(shù)據(jù),這個(gè)數(shù)據(jù)保存在注冊(cè)表Registry中)。本函數(shù)改變的配置數(shù)據(jù)只是執(zhí)行時(shí)的暫存信息,保存在注冊(cè)表的配置數(shù)據(jù)并沒有被改變。參數(shù):在 lpAOConfig 指向的結(jié)構(gòu) (PT_AOConfig) 中保存的參數(shù)包括指定通道(chan) ,指定參考源(RefSrc) ,參考電壓上限(MaxValue)和參考電壓下限 (MinValue)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 3. InvalidChannel:指定的通道號(hào)(chan of lpAOConfig)超出有效范圍。4. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。 5. FunctionNotSupported:DriverHandle 指向的設(shè)備不支持本功能,請(qǐng)參閱相關(guān)硬件手冊(cè)。注:PT_AOConfig typedef struct tagPT_AOConfig USHORT chan; USHORT RefSrc; FLOAT MaxValue; FLOAT MinValue; PT_AOConfig,* LPT_AOConfig;函數(shù)DRV_AOConfig使用到PT_AOConfig。成員描述:4.3.2 DRV_AOVoltageOutLRESULT DRV_AOVoltageOut( LONG DriverHandle, LPT_AOVoltageOut lpAOVoltageOut );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,以設(shè)置浮點(diǎn)型的電壓值,來改變指定 AO (Analog Output) 通道的輸出狀態(tài)。參數(shù):此函數(shù)等同于依序調(diào)用 DRV_AOScale 與 DRV_AOBinaryOut。在 lpAOVoltageOut 指向的結(jié)構(gòu) PT_AOVoltageOut 中保存的參數(shù)包括:指定的AO通道(chan)和所要設(shè)置的浮點(diǎn)型電壓值(outputValue)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidChannel:指定的通道號(hào)(chan of lpAOVoltageOut)超出有效范圍。 3. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 4. InvalidAnalogOutValue:設(shè)置的輸出值 (OutputValue) 超出硬件支持的范圍,請(qǐng)參閱相關(guān)硬件手冊(cè)正確設(shè)置。 5. FunctionNotSupported:DriverHandle 指向的設(shè)備不支持本功能,請(qǐng)參閱相關(guān)硬件手冊(cè)。 6. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。注:PT_AOVoltageOut typedef struct tagPT_AOVoltageOut USHORT chan; FLOAT OutputValue; PT_AOVoltageOut,* LPT_AOVoltageOut;函數(shù)DRV_AOVoltageOut使用到PT_AOVoltageOut。成員描述:4.3.3 DRV_AOBinaryOutLRESULT DRV_AOBinaryOut( LONG DriverHandle, LPT_AOBinaryOut lpAOBinaryOut );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,以直接設(shè)置二進(jìn)制數(shù)值來改變指定AO (Analog Output)通道的輸出狀態(tài)。DRV_AOScale可用于把浮點(diǎn)型電壓或電流值的模擬量轉(zhuǎn)換為所需的二進(jìn)制數(shù)。參數(shù):在 lpAOBinaryOut 指向的結(jié)構(gòu) PT_AOBinaryOut 中保存的參數(shù)包括指定的AO通道(chan)和所要輸出的二進(jìn)制數(shù)(BinData)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 3. InvalidChannel:指定的通道號(hào)(chan of lpAOBinaryOut)超出有效范圍。 4. FunctionNotSupported:DriverHandle 指向的設(shè)備不支持本功能,請(qǐng)參閱相關(guān)硬件手冊(cè)。 5. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。注:PT_AOBinaryOut typedef struct tagPT_AOBinaryOut USHORT chan; USHORT BinData;PT_AOBinaryOut,* LPT_AOBinaryOut;函數(shù)DRV_AOBinaryOut使用到PT_AOBinaryOut。 成員描述:4.3.4 DRV_AOScaleLRESULT DRV_AOScale ( LONG DriverHandle, LPT_AOVoltageOut lpAOScale );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,根據(jù)指定通道默認(rèn)的模擬量輸出范圍設(shè)置,將輸入的浮點(diǎn)型模擬量值轉(zhuǎn)換為相應(yīng)的二進(jìn)制數(shù)據(jù)。調(diào)用 DRV_AOConfig可改變默認(rèn)的模擬量輸出范圍設(shè)置。在未調(diào)用函數(shù) DRV_AOConfig 前,該函數(shù)參考的是用戶在研華設(shè)備管理器 Advantech Device Manager 對(duì)個(gè)別板卡所作的設(shè)置數(shù)據(jù),這個(gè)數(shù)據(jù)保存在注冊(cè)表Registry中。參數(shù):在 lpAOScale 指向的結(jié)構(gòu) PT_AOScale 中保存的參數(shù)包括指定的AO通道(chan),所要轉(zhuǎn)換的模擬量值(outputValue)和轉(zhuǎn)換后相應(yīng)的二進(jìn)制數(shù)值 (BinData)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 3. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。 4. FunctionNotSupported:DriverHandle 指向的設(shè)備不支持本功能,請(qǐng)參閱相關(guān)硬件手冊(cè)。注:PT_AOScale typedef struct tagPT_AOScale USHORT chan; FLOAT OutputValue; USHORT *BinData;PT_AOScale, * LPT_AOScale;函數(shù)DRV_AOScale使用到PT_AOScale。成員描述:4.4 Counter 函數(shù)組Counter 函數(shù)組包含三種操作方式:事件計(jì)數(shù),脈沖輸出和頻率測量。中斷方式的Counter和Q Counter(PCL-833)都屬于事件計(jì)數(shù)組。事件計(jì)數(shù)函數(shù)普通Counter (Intel 8254 或 AMD 9513A)DRV_CounterEventStart啟動(dòng)counter操作。當(dāng)counter開始計(jì)數(shù)時(shí),可以反復(fù)調(diào)用DRV_CounterEventRead函數(shù)讀取計(jì)數(shù)值。操作完成后可以調(diào)用函數(shù)DRV_CounterReset停止計(jì)數(shù)。4.4.1 DRV_CounterEventStart LRESULT DRV_CounterEventStart ( LONG DriverHandle, LPT_CounterEvenStart lpCounterEventStart );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,將指定的計(jì)數(shù)器配置為事件計(jì)數(shù)并啟動(dòng)該操作。啟動(dòng)后,可調(diào)用函數(shù)DRV_CounterEventRead 讀取計(jì)數(shù)值與狀態(tài)。對(duì)于PCI1780/MIC3780/PCM3780/MIC3756,必須先使用函數(shù) DRV_CounterConfig 進(jìn)行功能配置,然后通過本函數(shù) DRV_CounterEventStart 啟動(dòng)操作;如果直接調(diào)用 DRV_CounterEventStart,則使用默認(rèn)的計(jì)數(shù)模式:PCI1780/MIC3780/PCM3780采用計(jì)數(shù)模式D;MIC3756采用無門控、DO00作為計(jì)數(shù)終止輸出的模式。參數(shù):在 lpCounterEventStart 指向的 PT_CounterEventStart 結(jié)構(gòu)中,保存的參數(shù)包括:目標(biāo)計(jì)數(shù)器通道號(hào)(counter)和門控模式(GateMode)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 3. InvalidChannel:指定的計(jì)數(shù)器通道號(hào)超出有效范圍,請(qǐng)查閱相關(guān)硬件手冊(cè)以確定計(jì)數(shù)器通道數(shù)。 4. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。 5. ResourceConflict:資源沖突,可能該計(jì)數(shù)器正在被其它應(yīng)用程序使用。注:PT_CounterEventStart typedef struct tagPT_CounterEventStart USHORT counter; USHORT GateMode; PT_CounterEventStart,* LPT_CounterEventStart;函數(shù)DRV_CounterEventStart使用到PT_CounterEventStart。成員描述:4.4.2 DRV_CounterEventRead LRESULT DRV_CounterEventRead ( LONG DriverHandle, LPT_CounterEventRead lpCounterEventRead );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,讀取指定計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值和溢出狀態(tài)標(biāo)志。此操作將不影響計(jì)數(shù)器的持續(xù)工作。參數(shù):在 lpCounterEventRead 指向的 PT_CounterEventRead 結(jié)構(gòu)中,保存的參數(shù)包括:目標(biāo)計(jì)數(shù)器通道號(hào)(counter),讀回的溢出標(biāo)志(overflow),以及讀回的當(dāng)前計(jì)數(shù)值(count)。返回值: 1. SUCCESS:執(zhí)行成功。 2. InvalidDriverHandle:設(shè)備句柄 DriverHandle 為 NULL。 3. InvalidChannel:指定的計(jì)數(shù)器通道號(hào)(counter)超出有效范圍。 4. CardTypeIDNotSupported:驅(qū)動(dòng)無法識(shí)別DriverHandle 指向的設(shè)備,請(qǐng)更新驅(qū)動(dòng)程序。 5. ResourceConflict:資源沖突,可能該計(jì)數(shù)器正在被其它應(yīng)用程序使用。注:PT_CounterEventRead typedef struct tagPT_CounterEventRead USHORT counter; USHORT *overflow; ULONG *count; PT_CounterEventRead,* LPT_CounterEventRead;函數(shù)DRV_CounterEventRead使用到PT_CounterEventRead。成員描述:4.4.3 DRV_CounterReset LRESULT DRV_CounterReset ( LONG DriverHandle, LPARAM counter );用途:在設(shè)備句柄 DriverHandle 指向的設(shè)備上,重置計(jì)數(shù)器以停止當(dāng)前的操作。本函數(shù)適用于所有與計(jì)數(shù)器相關(guān)的函數(shù)(包括:DRV_CountEventStart,DRV_CounterFreqStart,DRV_QCounterStart,DRV_CounterPulseStart,DRV_CounterPWMEnable,DRV_TimerCounterSetting 等等),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一活動(dòng)躲貓貓活動(dòng)方案
- 六一演出晚會(huì)活動(dòng)方案
- 六一禮物征集活動(dòng)方案
- 六一童心公司活動(dòng)方案
- 六一美術(shù)活動(dòng)方案
- 六一風(fēng)車活動(dòng)方案
- 醫(yī)療編制考試試題及答案
- 藥劑師考試試題及答案
- 藥劑考試試題及答案大全
- 蘭州親子植樹活動(dòng)方案
- 初三自主招生自薦信 自主招生自薦信
- 南京醫(yī)科大學(xué)自主招生面試試題綜合素質(zhì)答案技巧-南京醫(yī)學(xué)院自主招生題
- 大學(xué)啟示錄:如何讀大學(xué)(上海交通大學(xué))【超星爾雅學(xué)習(xí)通】章節(jié)答案
- 創(chuàng)業(yè)法學(xué)江西財(cái)經(jīng)大學(xué)【超星爾雅學(xué)習(xí)通】章節(jié)答案
- 2023年黃大仙救世報(bào)
- (完整版)高考必備3500詞
- GB/T 14832-2008標(biāo)準(zhǔn)彈性體材料與液壓液體的相容性試驗(yàn)
- GB/T 1185-2006光學(xué)零件表面疵病
- 濟(jì)寧市城市介紹家鄉(xiāng)旅游攻略PPT
- 熊浩演講稿全
- 北師大版五下書法《第6課戈字旁》課件
評(píng)論
0/150
提交評(píng)論