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