




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 基于VISA庫的驅動程序的研究本章簡介:VXI總線以其良好的測控性能成為虛擬儀器的一個重要發展方向,作為一個開放式的測控系統,虛擬儀器軟件結構(VISA)為不同廠商的VXI器件的驅動程序提供了統一的軟件基礎。本文通過對VISA庫及VXIplug &play規范的介紹來闡述儀器驅動程序的開發,并描述了VXI總線寄存器基器件任意波形發生器驅動程序的設計與實現。3.1 VISA簡介隨著VXI儀器的廣泛使用,出現了相應的的I/O控制軟件,由于不同廠商的硬件提供的I/O庫不同,儀器驅動程序不兼容,儀器之間很難集成。VXIplug&play聯盟的宗旨是通過開放的、不同廠商的VXI系統使得VXI技術
2、的最終用戶可簡便使用VXI儀器。聯盟制定了Virtual Instrument Software Architecture,即虛擬軟件結構(VISA)。VISA是一個標準的獨立于硬件設備、接口、操作系統、編程語言和網絡環境的I/O控制庫,目的是處理計算機與儀器間物理連接的通信細節。通過VISA,由不同硬件接口(如GPIB、VXI或RS232等)連接的設備可以集成到一個系統中,由一個軟件完成所有儀器設備的控制。因此,VISA是生成虛擬儀器驅動程序的軟件基礎。本文所介紹的儀器驅動程序是在LabWindows/CVI環境下開發的。LabWindows/CVI為基于C語言的應用程序開發環境(ADE)。
3、ADE通過驅動程序頭文件,獲得有關儀器驅動程序函數的必要信息。LabWindows/CVI提供了VISA庫的各類函數,用戶在開發驅動程序時可方便的調用其中的函數。3.1.1 VISA資源模板VISA模板為所有應用程序提供基本的資源控制服務,包括控制與資源或器件間的通話使用期和控制資源特性等。1 使用期控制VISA控制器件通話、查找列表和事件的使用期。當這些控制使用完畢之后,可用viClose( )釋放與之相關的系統資源。2 訪問控制應用程序可以同時打開多個與VISA資源的通話,也可以同時通過不同的通話句柄同時訪問資源。在某些情況下,訪問VISA資源的應用程序希望禁止別的應用程序訪問該資源。為此
4、,VISA定義一種鎖定機制來限制對資源的訪問。鎖定資源的操作是調用函數viLock( ),解鎖的操作是調用函數viUnLock( )。訪問控制服務 viLock(ViSession instr,ViAccessMode lockType,ViUInt32 timeout,ViKeyId requestedKey,ViKeyId accessKey);LockType表示請求鎖定的類型,它有兩個值,要么是VI_EXCLUSIVE_LOCK,表示獨占鎖定;要么是VI_SHARED_LOCK,表示共享鎖定。timeout表示超時設置,即在設定的時間內未完成操作,則返回錯誤碼。否則忽略此參數,此時ti
5、meout值取VI_NULL。 viUnLock(ViSession instr);該操作取消對指定資源的鎖定。3.1.2 VISA資源管理函數VISA資源管理器為應用程序提供基本服務,包括查找資源和打開與資源的通話。下面簡述這些服務:訪問函數和操作資源管理器允許打開與資源的通話,通話由應用程序請求而建立。在應用程序關閉通話或功能失常時系統負責釋放與通話相關的全部系統資源。 viOpenDefaultRM(ViPSession &defaultRM);該函數必須在調用任何VISA操作之前調用。第一次調用該函數使VISA系統初始化,包括初始化默認資源,同時返回與該資源的通話。對函數的再次調用返回
6、與默認資源的另一唯一通話。許多VXIplug&play儀器驅動程序要求輸入作為通話句柄的參數以便識別目標儀器。為了給開發者提供使用模型的一致性,必須定義這個參數的類型和位置,VISA要求這種函數的通話句柄定義為ViSession類型,并要求它是參數表中的第一個參數。ViPSession型數據為ViSession型數據的地址。 viOpen(ViSession defaultRm,ViRsrc rsrcName,ViAccesssMode accessMode,ViUInt32 timeout,ViPSession instr)本操作打開與指定器件的通話并返回調用此器件其它操作的通話標識符ins
7、tr。defaultRM為由viOpenDefaultRM( )返回的與VISA默認資源通話的唯一邏輯標識符。在參數表中用到兩個通話標識符defaultRM、instr,ViOpen( )是在已知的資源上操作,defaultRM為與該資源通話的標識符,相當于與此資源的通訊的通道,而實際上我們想與具體的器件通話,這就是返回的與該器件通話的標識符instr,即與該器件通訊的通道。這就象打長途電話,先撥區號,再撥你想要的用戶號碼,這樣就可進行通訊。rsrcName為器件的唯一符號名稱。該參數為一字符串,可唯一標識這一器件資源。表3-1為一些較典型器件資源的描述符。地址字符串說明VXI0:1:INST
8、RVXI接口0槽模塊上邏輯地址為1的VXI器件GPIB-VXI:9:INSTRGPIB-VXI控制系統中邏輯地址為9的VXI器件GPIB:1:0:INSTRGPIB接口0上主地址為1,副地址為0的GPIB器件ASRL1:INSTR位于端口COM1上的串行器件VXI:MEMACC對VXI接口板級寄存器的訪問GPIB-VXI1:MEMACC對1號GPIB-VXI接口板級寄存器的訪問表3-1 器件資源描述符VXI0槽為VXI儀器總線的運行提供所需要的硬件資源。它們為外部通信接口與VXI總線之間提供轉換,并提供協議。VXI0槽模塊還可以提供訪問VXI儀器的功能。在一些情況下串行器件(ASRL)的命名規
9、則會混淆,在WINDOW平臺上,ASRL1對應COM1,而在Macintosh平臺上ASRL1對應調制解調器端口。accessMode為訪問指定器件資源的模式,值為VI_EXCLUSIVE_LOCK表示通話開啟后立即獲取獨占鎖定,如果鎖定未能獲得,就關閉通話并返回錯誤碼;如果值為VI_LOAD_CONFIG,表示用外部組態應用程序設定屬性值,否則用VISA規范定義的缺省屬性值VI_NULL,可以用以上兩值的“位或”表示同時使用兩種訪問模式。若accessMode請求鎖定,timeout表示錯誤碼返回之前這一操作等待的最長時間間隔,單位為毫秒。查找此服務用于查找器件并與之建立通訊聯系。VISA資
10、源管理器查找與接口相關的所有資源,而不是對各資源分別定位和查找。執行此操作后,用戶可查找到所有可利用的接口硬件資源。3.1.3 VISA存儲器I/O服務在討論存儲器訪問時,在速度與復雜性,軟件開銷與封裝之間要折衷考慮。高級訪問的目的與低級訪問相似。兩者的區別在于高級訪問具有更大的軟件開銷,因為它要封裝用于存儲器訪問的絕大部分代碼,如窗口映射和錯誤檢驗。通常,高級訪問的速度低于低級訪問的速度,但封裝了進行訪問的所需要的操作,因此比低級訪問更安全。低級訪問服務通過降低軟件開銷提高訪問速度,但它要求進行更多的編程工作。為減少存儲器訪問的開銷量,低級訪問服務在操作中不返回任何錯誤信息。低級訪問服務允許
11、對接口上支持直接存儲器訪問的器件進行寄存器級訪問,在應用程序使用接口總線的低級服務訪問之前,應利用viMapAddress( )映射一個地址范圍,將寄存器映射到內存中,再利用viPeek( )、viPoke( )進行讀寫,這樣就可以用對內存的操作代替對模塊寄存器的操作。雖然資源可以處理對窗口的分配和操作,但在低級訪問完成時,應調用viUnmapAddress( )清除窗口。只有這樣,系統才能對窗口進行重新分配。由于一批數據的傳輸只使用了一次映射,因此大大節省了操作時間,提高了數據傳輸速度。高級訪問服務允許對接口上支持直接存儲器訪問的器件進行寄存器級訪問,編程人員可利用簡單的操作,如viIn16
12、( )、viOut16( )訪問接口總線上的存儲器。這些操作封裝了低級服務中的map/unmap和peek/poke。因此沒必要明確的把存儲器映射成一個窗口。 viIn816、32(ViSession instr,ViUInt space,ViBusAddress offset,ViUInt816、32 val); 該操作通過使用指定的地址空間方式從指定的器件偏移地址offset(以字節為單位)讀取8、16、32位無符號的整數。space表示指定的地址空間,下表列出指定的地址空間的有效入口。space取值 說明VI_A16_SPACE尋址VXI/MXI總線的A16地址空間VI_A24_SPAC
13、E尋址VXI/MXI總線的A24地址空間VI_A32_SPACE尋址VXI/MXI總線的A32地址空間表3-2 VXI器件的地址空間 viOut816、32(ViSession instr,ViUInt space,ViBusAddress offset,ViUInt816、32 val);該操作通過使用指定的地址空間方式從指定的偏移地址寫入8、16、32位無符號的整數3.2 VXI儀器驅動程序3.2.1 VXIplug&play對儀器驅動程序的要求與規范在虛擬儀器系統中,儀器驅動程序是連接儀器與用戶界面的橋梁,是測試系統設計的重要一環。在規定儀器驅動程序設計標準時,需遵守三個主要結構原則。第
14、一,儀器驅動程序以源代碼形式提供,以便用戶自己能開發和優化操作。第二,結構應是模塊式的應為函數提供多層訪問,以便用戶可使用各個驅動函數的子集。最后,不同廠商的VXIplug&play儀器驅動程序結構是相似的,因此在讀懂一個儀器驅動程序時所得到的知識可用于其它VXIplug&play儀器驅動程序中。虛擬儀器驅動程序圖3-1驅動程序的外部接口模型VXI總線即插即用系統聯盟規范要求、儀器供應商在提供以VXI為代表的虛擬儀器硬件模塊的同時,必須提供相應的儀器驅動程序、儀器軟面板及相關文檔。VXI總線即插既用規范詳細定義了儀器驅動程序的內部設計模型與外部接口模型,規定了儀器驅動程序的設計要求及與系統中其
15、它程序模塊之間的相互關系。虛擬儀器驅動程序的外部接口模型如圖3-1所示,包括函數體、子程序接口、VISA I/O接口、交互式開發者接口與應用程序開發者接口。 函數體儀器驅動程序函數體是驅動程序源代碼。可采用標準的編程語言或圖形化編程語言(G語言,例如LabVIEW和HP VEE)編寫。 I/O接口 在VXIplug&play結構中,I/O接口由標準的并能在多平臺上使用用的的獨立軟件層提供。VISA含有一控制VXI、GPIB、RS-232、以太網和其它類型儀器的接口庫。它能對所有VXI功能提供訪問,包括消息基和寄存器基編程、中斷和事件處理,并能直接訪問VXI底板。 子程序接口VXIplug&pl
16、ay儀器驅動程序使用標準化編程技術和層次化設計,因此驅動程序可通過子程序接口訪問使用其它庫的函數。子程序接口是驅動程序調用其它軟件模塊的機構,這些模塊完成驅動程序的任務。其它軟件模塊包括高級分析庫和格式化I/O庫。 編程式開發者接口編程式開發者接口是更高級軟件程序調用驅動程序的機構。最終用戶的測試系統程序是由幾個儀器驅動程序的調用組成,每個調用使用多個參數。 交互式開發者接口交互式開發者接口通常是一圖形接口,這種接口有利于軟件開發者理解儀器驅動程序函數的作用和如何使用該接口調用驅動程序中的函數。交互式開發者接口的一個例子是Windows中使用的函數面板,函數面板文件代表儀器驅動程序中的函數、函
17、數的參數名和數據類型及相關的幫助文件。函數面板文件的樹形結構VPP規范要求,儀器驅動程序應包括C源代碼(.h文件、.c文件)、動態鏈接庫文件(.dll)、函數面板(.fp文件)及其他相關文檔,例如幫助文件。在儀器驅動程序外部接口模型中定義的交互式開發者接口,實質就是函數面板文件。函數面板文件是對儀器驅動程序的結構化表達。利用函數面板文件,用戶可以交互式的理解整個儀器驅動程序操作函數的組成與使用,并利用函數面板所帶有的幫助文件,進一步的了解儀器的功能與儀器驅動程序的各個函數及各個參數的意義與作用,使儀器驅動程序的設計與使用都變得直觀與方便。根據VPP規范,函數面板文件的結構采用了樹形結構,表3-
18、3以amc2720模塊的驅動函數面板文件為例進行介紹。表中定義了函數面板文件的最小的樹結構,包含了所有函數面板必需的部分。在表中,樹結構是由幾層結點構成的,最上層根結點定義了儀器結點,表示整個函數面板文件:下一層為類結點,包括了一系列相近的儀器功能函數,如實用(Utility)類,它包括了錯誤信息函數、錯誤查詢函數、復位函數、自檢函數及版本查詢函數等子結點;再下一層為函數結點它對應著儀器驅動程序具體的函數,由相應的源代碼組成。函數面板樹結構可以根據儀器功能的需要進行擴展,類結點和函數結點的個數都可以進行擴展。一般由根結點直接生成的類結點還可以包括組態類結點、測量類結點、開關類結點、激勵源類結點
19、等,而測量類結點向下又可以分為組態類結點和讀類結點,讀類結點又可分為初始化結點和取數結點,直到分解到具體的函數為止。整個函數面板樹結構與儀器的驅動程序內部設計的模型是完全一致的。整個樹結構由儀器結點擴展為多個類結點或直接的函數結點,而類結點又擴展為多個下級類結點或函數結點,由此構成了完整的儀器驅動程序函數面板文件結構。表3-3 amc2720函數面板文件樹結構儀器結點函數 Initialize Low Level Control Load Waveform DataStatus Read Status ByteUtilityError MesssageError QueryResetRevis
20、ion QueryCloseamc2720_init (初始化函數)amc2720_loadWaveformData(載入波形數據函數)amc2720_readStatusByte(讀狀態位函數)amc2720_error_message (錯誤信息函數)amc2720_error_query (錯誤查詢函數)amc2720_reset (復位函數)amc2720_revision_query (版本查尋函數)amc2720_close (關閉函數)圖3-2驅動程序的函數面板文件VXI儀器驅動程序主要可分為如下幾類函數: 初始化函數使儀器的軟件連接初始化并完成一些必要的操作使儀器處于默認上電或
21、其它特定狀態。首先打開與默認資源的通話,返回通話句柄,再打開與器件資源的通話,返回通話句柄。 應用函數應用函數是完整的儀器驅動程序函數,當用戶需要單一的高級驅動函數接口時,這些函數可通過它們自己的程序接口被調用。 部件函數部件函數將儀器功能劃分為控制儀器功能特定區域的若干類,這些函數為應用程序開發者提供儀器功能的直接訪問的中間層,且通常將儀器的控制分解成更低級控制。 功能函數類按照儀器功能(如測量、源、路徑等)將儀器驅動函數分組。在使用最高級功能函數時,每個函數執行一個完整的操作。假定儀器沒有優先狀態,這就允許這些函數是順序獨立的。功能函數的執行可產生已完成的結果,如測量值的返回、指定的源輸出
22、或由開關控制的路徑的連接。 關閉函數結束與儀器的通話,并釋放與該通話的系統資源。與前面介紹的初始化函數相對應的是先關閉與器件資源的通話,再關閉與默認資源的通話。這樣可對系統資源重新分配。圖3-3驅動程序的函數窗口在函數面板文件中,對于每個函數結點,都對應著一個函數窗口,在每個窗口中,包括了表示函數中所含的各個輸入參數、輸出參數與返回值的圖形化控件,分別與每個參數對應。每個參數控件又分別包括控件標號、控件位置號、數據類型、默認值與控件寬度等參數信息。VPP規定了函數窗口的幾種控件類型,包括輸入類型、游標類型、布爾類型、組合類型、數值類型、輸出類型、返回值類型、全局變量類型及信息類型。其中輸入類型
23、(往往是儀器句柄值)一般放在函數窗口的左下方,而返回值類型控件一般放在函數窗口的右下方。函數面板樹形結構的最底層單位為函數結點,而圖形窗口的最基本單位為各種控件。在函數面板中,每個層次的部件都必須包括各自的幫助文檔,幫助文檔可按照函數面板文件的結點層次來劃分。圖3-4驅動程序的函數參數信息根結點幫助文檔對應于儀器結點,描述整個儀器的功能及函數面板所含的類結點與函數結點的概述;圖3-5驅動程序的函數幫助文件編輯類結點幫助文檔對應于類結點,用來描述類的功能與類中所含的函數結點概述;函數結點幫助文檔對應于函數結點,用來描述該函數的功能及應用范圍;控件幫助文檔對應于函數的輸入、輸出參數,分別描述其各自
24、的類型、默認值與注意事項;返回值幫助文檔對應于函數的返回狀態值,描述正確返回值與各種錯誤返回值代碼及其所代表的含義。函數面板文件的設計根據函數面板的樹形結構,函數面板文件的設計分兩部分進行。首先編輯函數面板樹,然后在函數結點上的函數窗口編輯器中編輯該函數的各參數的圖形控件。函數面板的設計是儀器驅動程序的一部分。它的開發與源代碼的開發是緊密連在一起的,也往往與儀器驅動程序源代碼一起由儀器模塊的設計人員來完成。儀器驅動程序的設計人員根據儀器模塊的功能設計出驅動程序的函數面板文件的樹結構,將儀器驅動程序的各個欲包括的函數按從上至下的模式進行結構性描述,源代碼則用C語言將各個函數的功能實現。當源代碼編
25、寫完成之后,再完成函數面板文件的的窗口設計,可方便的為各函數在圖形化平臺中進行測試提供圖形化接口及詳盡的幫助文檔。3.2.1 VXI儀器驅動程序的的設計實現函數面板文件的應用在儀器驅動程序外部接口模型的描述中,儀器驅動程序通過應用程序開發者接口與上層應用程序開發環境進行通信,如何在圖形化軟件開發平臺對儀器進行交互式控制,是圖形化軟件平臺開發中的一個關鍵問題。由于圖形化軟件平臺是一個應用程序的開發環境,在測試系統組成之前,無法得知系統所含有的儀器類型與個數,也就無法象構造虛擬儀器軟面板通過直接調用儀器驅動程序的動態鏈接庫DLL函數來進行控制,而是需要一個通用性的接口。分析儀器驅動程序的頭文件格式
26、,固然可以得知所有驅動函數的函數原型與數據類型,但由于頭文件的編寫格式并不完全唯一,對于數據類型的描述有時還會放在源代碼文件中,因此頭文件的信息量不大。而分析函數面板文件,一是所有符合VPP規范的虛擬儀器驅動程序都含有函數面板文件,來源是確定的;二是其文件格式是統一的,分解函數面板格式是一個完整的結構化文件;三是其不僅包含所有函數原型、所有數據類型,還包括各個層次的幫助信息,有利于用戶的使用。因此,圖形化軟件平臺通過對函數面板文件的掃描,獲取儀器驅動程序的信息,在調用相應的函數實體,從而完成對儀器的各種操作。運用LabWindows/CVI的函數面板編輯器將驅動程序的函數面板文件編輯好之后,可
27、使用編輯器的功能自動生成驅動程序的頭文件(.h文件)和源代碼文件(.c文件),若是VXI器件的驅動程序則必須確保在函數面板編輯器的菜單欄Options項的VXIplug&play Styles必需選中,頭文件包括了源代碼文件中函數的原型,此外在源代碼中有變量需要聲明或定義的及編譯環境的說明都可在頭文件中進行。生成的源代碼文件為函數的框架,函數所要實現的功能則要程序開發人員來填寫。自動生成.h文件和.c文件給程序開發人員省去了許多繁瑣的函數原型的輸入工作,也減少了人工輸入時出錯的可能性,特別是函數比較多,而函數的參數也比較多且類型復雜時更能顯示出其優越性。這樣開發人員只要集中精力進行函數體的編寫
28、就行了。下圖就是由只有一個函數的函數面板文件由函數編輯器自動生成的頭文件與源代碼文件的例子。圖3-6自動生成驅動程序的頭文件窗口圖3-6自動生成驅動程序的C文件窗口驅動程序采用動態鏈接庫文件DLL有助于節省計算機內存和實現資源共享。如果是兩個或更多的應用程序使用同一個DLL,那么該DLL的頁面只要放入RAM一次,所有的應用程序都可以共享它的各個頁面,這意味著內存的使用更加有效。多個不同的應用程序使用同一個DLL從而達到資源共享的目的。有助于解決不同的開發平臺之間的差異。采用DLL文件也有助于保護虛擬儀器生產商的利益,例如VPP聯盟雖然規定了VISA庫函數的接口規范,但卻沒有規定其函數內部的實現
29、機制,各生產商可根據VISA的接口規范開發自己的VISA庫函數,提供給最終用戶的是DLL文件,相當于一黑匣子,用戶可以調用其中的函數,卻不能改動它。將驅動程序C程序源代碼生成DLL文件首先必須創建一個頭文件,它包含想要從DLL輸出的函數原型、結構和符號。DLL的源代碼均包括該頭文件,以幫助創建DLL。如果鏈接程序發現DLL的源代碼模塊至少輸出了一個函數或變量,那么鏈接程序生成一LIB文件,這LIB文件很小,它不包含任何函數或變量,它只是列出了所有已輸出函數和變量的符號名。如果要鏈接DLL的輸出符號的任何可執行模塊,該LIB文件是必不可少的。采用Labwindows/CVI編制DLL文件操作也很
30、簡便,可由函數面板文件編輯器的菜單中option中的creatdll project 項,產生創造DLL文件的工程項目,其包含兩個文件.h和.c文件及函數面板文件.fp,這與前面介紹的由函數面板文件產生的函數源代碼框架文件實質是一樣的,編程人員將函數代碼編入各函數中去之后,經編譯之后,就可由該工程文件生成DLL文件和LIB文件,在使用VXIplug&play形式的函數面板文件產生的DLL 工程文件產生的LIB文件有四種,即BORLAND C Microsoft VC SYMANTEC WATCOM 四種C的LIB文件,這樣只要編程人員偏好某種虛擬儀器的開發平臺,就可選用自己適合的編程語言,而不
31、用當心驅動程序的兼容性問題,從而使得驅動程序達到開放性的目的。而由這四種C開發的DLL,LIB文件的驅動程序,如虛擬儀器的應用程序開發平臺采用的是Labwindows/CVI,則有一些細節需注意,因Labwindows/CVI是基于標準 C開發的,在某些細節方面和這四種C會有出入,若未注意到這些差別也會出錯。函數的許多標準返回值在頭文件Visatype.h和Vpptype.h中定義,類型為VISA庫的ViStatus類型。一般儀器驅動程序函數模型形式為:Vistatus_VI_FUNC(參數1,參數2,);為了簡約說明問題,以北京航空測控公司 amc2720任意波形發生器驅動程序的函數體為例進
32、行介紹,具體的以向器件寫入波形數據的函數來講解。這些函數體只是一些基本的結構框架。實際的函數要復雜豐富一些。儀器前綴為amc2720。初始化函數ViStatus _VI_FUNC amc2720_init (ViRsrc Resource_name, ViBoolean id_query, ViBoolean reset_instr,ViSession *instrSession)Resource_name :器件資源的標示符。“VXI0:187:INSTR”表示受VXI零槽控制、邏輯地址為187的器件資源。任意波形發生器的邏輯地址,由器件板上的撥碼開關設置,只有零槽模塊的邏輯地址可設置為0,
33、在同一機箱中,不同的器件的邏輯地址不要設置成相同,如果需要用到兩塊相同的器件,需要改變其中一器件的邏輯地址。id_query:VISA布爾型的標示查詢變量,為1表示進行查詢,可確保初始化的儀器器件是該驅動程序支持的器件;為0時表示跳過查詢。reset_instr:VISA布爾型的復位變量,為1表示進行復位,為0不進行復位操作。InstrSession:與器件進行通話的句柄的地址。函數返回值為VISA型,為0表示初始化成功,不為0表示有錯誤,具體錯誤類型可調用錯誤信息函數進行查看,也可查詢VISA手冊。讀狀態寄存器函數,狀態寄存器地址為0AViStatus CVIFUNC amc2720_rea
34、dStatusByte (ViSession instrHandle ) ViInt16 wrdy=0;ViStatus amc2720_status = VI_SUCCESS;while(1) /讀狀態寄存器 amc2720_status=viIn16 (instrHandle, VI_A16_SPACE, 0x0a, &wrdy); if(wrdy&0x200)=0x200) break; return amc2720_status; 載入波形數據函數ViStatus CVIFUNC amc2720_loadWaveformData (ViSession instrHandle, floa
35、t frequency, float amplitude ViInt16 data4096) int i,j, k; float a; ViInt16 x; ViStatus amc2720_status = VI_SUCCESS; ViInt32 M,temp; amc2720_readStatusByte (ViSession instrHandle ); /寫數據準備好 amc2720_status = viOut16 (instrHandle, VI_A16_SPACE, 0x02, 0x7f11);/清靜 for(i=0;i4096;i+) /態存儲器 amc2720_readStatusByte (ViSession
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代賬公司店慶活動方案
- 以色列營銷活動方案
- 任性自選活動方案
- 企業一團一品活動方案
- 企業人情關懷活動方案
- 企業黨組織黨日活動方案
- 企業再造活動方案
- 企業包粽子團建活動方案
- 企業咕咚活動方案
- 企業地攤活動方案
- 2025年鄭州鐵路局招聘筆試參考題庫含答案解析
- 【MOOC】政府審計學-南京審計大學 中國大學慕課MOOC答案
- 《基督教概論》課件
- 虛擬現實技術導論 習題答案或解題思路 梁曉輝
- 計算機應用技術專業調研報告(高職)
- 2024NEA水性氣硅涂膏隔熱保溫墻體構造
- 山西省太原市(2024年-2025年小學四年級語文)部編版期末考試((上下)學期)試卷及答案
- BPC10完整版本.0技術培訓V1.0
- 2024年新高考II卷高考歷史試卷(真題+答案)
- 2024年黑龍江醫療衛生事業單位招聘(藥學)備考試題庫(含答案)
- 2024年新高考1卷數學真題試卷及答案
評論
0/150
提交評論