LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。 LabVIEW軟件是NI設(shè)計平臺的核心,也是開發(fā)測量或控制系統(tǒng)的理想選擇。 LabVIEW開發(fā)環(huán)境集成了工程師和科學(xué)家快速構(gòu)建各種應(yīng)用所需的所有工具,旨在幫助工程師和科學(xué)家解決問題、提高生產(chǎn)力和不斷創(chuàng)新。
LabVIEW-串口通信
串行接口 (Serial Interface) 是指數(shù)據(jù)按位順序地進行傳輸,發(fā)送設(shè)備和接收設(shè)備只需要一對傳輸線路即可實現(xiàn)雙向互連通信,其特點是通信線路簡單、成本低,距離遠(yuǎn),速度較慢。
根據(jù)串行信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。
串口通信的兩種最基本的方式,同步串行通信方式SPI(Serial Peripheral interface)和異步串行通信方式UART(Universal Asynchronous Receiver/Transmitter),UART包含TTL電平的串口和RS232電平的串口。其中, TTL電平是3.3V的,而RS232是負(fù)邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平。
串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議。
LabVIEW與串行設(shè)備通信前,需要安裝National Instrument公司的VISA驅(qū)動,并提供了串口通信范例。
工具/原料
LabVIEW
Visa驅(qū)動
實現(xiàn)過程
1 VISA是虛擬儀器軟件體系結(jié)構(gòu)的縮寫(即Virtual Instruments Software Architecture),實質(zhì)上是一個I/O口軟件庫及其規(guī)范的總稱。
VISA是應(yīng)用于儀器編程的標(biāo)準(zhǔn)I/0應(yīng)用程序接口,是工業(yè)界通用的儀器驅(qū)動器標(biāo)準(zhǔn)API(應(yīng)用程序接口),采用面向?qū)ο缶幊?,具有很好的兼容性、擴展性和獨立性。用戶可用一個API控制包括VXI、GPIB及串口儀器在內(nèi)的不同種類的儀器。它還支持多平臺工作、多接口控制,是一個多類型的函數(shù)庫。
2 在LabVIEW中編寫的VISA接口程序(需要提前安裝對應(yīng)labVIEW版本的VISA驅(qū)動),當(dāng)外部設(shè)備變更時,只需要更換幾個程序模塊即可使用,簡單方便而且開發(fā)效率高。
3 在LabVIEW 中利用VISA節(jié)點進行串行通信編程。為了方便用戶使用,LabVIEW將這些VISA節(jié)點單獨組成一個子模塊,共包含8個節(jié)點(程序框圖-查看-函數(shù)選板-儀器I/O-串口),分別實現(xiàn)VISA串口配置、VISA寫入、VISA讀取、VISA關(guān)閉,VISA串口字節(jié)數(shù),VISA串口中斷,VISA設(shè)置I/O緩沖區(qū)大小,VISA清空I/O緩沖區(qū)域;
4VISA串口配置:該節(jié)點主要用于串口的初始化,如圖所示。
啟用終止符(接線端):使串行設(shè)備做好識別終止符的準(zhǔn)備。 如值為TRUE(默認(rèn)),VI_ATTR_ASRL_END_IN屬性設(shè)置為識別終止符。如值為FALSE,VI_ATTR_ASRL_END_IN屬性設(shè)置為0(無)且串行設(shè)備不識別終止符。
終止符(接線端):通過調(diào)用終止讀取操作。從串行設(shè)備讀取終止符后讀取操作終止。 0xA是換行符(\n)的十六進制表示。消息字符串的終止符由回車(\r)改為0xD。
超時(接線端):指定讀/寫操作的時間,以毫秒為單位。 默認(rèn)值為10000。
VISA資源名稱(接線端):指定要打開的資源,如PC的COM1,COM2等。VISA資源名稱控件也可指定會話句柄和類。
波特率(接線端):是傳輸速率。 默認(rèn)值為9600。
數(shù)據(jù)位(接線端):是輸入數(shù)據(jù)的位數(shù)。 數(shù)據(jù)位的值介于5和8之間。默認(rèn)值為8。
奇偶(接線端):指定要傳輸或接收的每一幀使用的奇偶校驗。 該輸入支持下列值。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
停止位(接線端):指定用于表示幀結(jié)束的停止位的數(shù)量。 該輸入支持下列值。流控制設(shè)置傳輸機制使用的控制類型。 該輸入支持下列值。
VISA資源名稱輸出(接線端):是由VISA函數(shù)返回的VISA資源名稱的副本。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
5VISA寫入:使寫入緩沖區(qū)的數(shù)據(jù)寫入VISA資源名稱指定的設(shè)備或接口。
VISA資源名稱(接線端):指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
寫入緩沖區(qū)(接線端):包含要寫入設(shè)備的數(shù)據(jù)。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
VISA資源名稱輸出(接線端):是由VISA函數(shù)返回的VISA資源名稱的副本。
返回數(shù)(接線端):包含實際寫入的字節(jié)數(shù)。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
6VISA串口字節(jié)數(shù):返回指定串口的輸入緩沖區(qū)的字節(jié)數(shù)。
Number of Bytes at Serial Port屬性(接線端):可指定該會話句柄使用的串口的當(dāng)前可用字節(jié)數(shù)。
7VISA讀?。簭腣ISA資源名稱指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并使數(shù)據(jù)返回至讀取緩沖區(qū)。
VISA資源名(接線端):稱指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
字節(jié)總數(shù)(接線端):是要讀取的字節(jié)數(shù)量。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
VISA資源名稱輸出(接線端):是由VISA函數(shù)返回的VISA資源名稱的副本。
讀取緩沖區(qū)(接線端):包含從設(shè)備讀取的數(shù)據(jù)。
返回數(shù)(接線端):包含實際讀取的字節(jié)數(shù)。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
8VISA關(guān)閉:該節(jié)點主要用于關(guān)閉已打開的串口,釋放串口資源,以便串口被其他程序所調(diào)用,如圖所示。
VISA資源名稱(接線端):指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
錯誤輸入(接線端):是節(jié)點運行前發(fā)生的錯誤。在下列情況下,該輸入可作為標(biāo)準(zhǔn)錯誤輸入。 即使在節(jié)點運行前發(fā)生錯誤,節(jié)點仍正常運行。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
9VISA設(shè)置I/O緩沖區(qū)大小 :設(shè)置I/O緩沖區(qū)大小。如需設(shè)置串口緩沖區(qū)大小,須先運行VISA配置串口VI。
VISA資源名(接線端):稱指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
屏蔽(接線端):指明要設(shè)置大小的緩沖區(qū)。 (I/O接收緩沖區(qū),I/O傳輸緩沖區(qū),I/O接收和傳輸緩沖區(qū))
大小(接線端):指明I/O緩沖區(qū)的大小,以字節(jié)為單位。大小應(yīng)略大于要傳輸或接收的數(shù)據(jù)數(shù)量。如在未指定緩沖區(qū)大小的情況下調(diào)用該函數(shù),函數(shù)可設(shè)置緩沖區(qū)大小為4096字節(jié)。如未調(diào)用該函數(shù),緩沖區(qū)大小取決于VISA和操作系統(tǒng)的設(shè)置。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能
10VISA清空I/O緩沖區(qū):清空由屏蔽指定的I/O緩沖區(qū)。
VISA資源名稱(接線端):指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
屏蔽(接線端):指明要刷新的緩沖區(qū)。 該輸入支持下列值【1,清空接收緩存區(qū)域;2,向設(shè)備寫入傳輸緩存區(qū)域;3,清空接收緩沖區(qū)并放棄內(nèi)容(設(shè)備不執(zhí)行任何I/O);4,清空傳輸緩沖區(qū)域】。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
VISA資源名稱輸出(接線端):是由VISA函數(shù)返回的VISA資源名稱的副本。
錯誤輸出包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
11VISA串口中斷 VI:發(fā)送指定端口上的中斷。通過連線數(shù)據(jù)至VISA資源名稱輸入端可確定要使用的多態(tài)實例,也可手動選擇實例。
VISA資源名稱(接線端):指定要打開的資源。VISA資源名稱控件也可指定會話句柄和類。
持續(xù)時間(接線端):指定中斷的長度,以毫秒為單位。 VI運行時,該值暫時重寫VISA Serial Setting:Break Length屬性的當(dāng)前設(shè)置。此后,VI將把當(dāng)前設(shè)置返回到初始值。
錯誤輸入(接線端):表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
VISA資源名稱輸出(接線端):是由VISA函數(shù)返回的VISA資源名稱的副本。
錯誤輸出(接線端):包含錯誤信息。該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
范例
在LabVIEW 中,進行串口通信的基本步驟分為3步:
第一:串口初始化,利用Visa Configure Serial Port.vi節(jié)點設(shè)定串口的端口號、波特率、停止位、校驗位、數(shù)據(jù)位。
第二:讀寫串口,根據(jù)需要利用Visa Write節(jié)點和Visa Read節(jié)點對串口進行讀寫(寫入指令和讀取指令之間加入適當(dāng)?shù)难舆t)。
第三:關(guān)閉串口,停止所有讀寫操作。
labview與485通訊
LabVIEW下面互連接口,VISA里面就有模塊,初始化串口,寫入串口、讀取串口等,按操作流程做就可以。
LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。 LabVIEW軟件是NI設(shè)計平臺的核心,也是開發(fā)測量或控制系統(tǒng)的理想選擇
評論
查看更多