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