


摘要:在工業(yè)自動化控制系統(tǒng)中,常常需要進行遠程控制或數(shù)據(jù)采集等,我們常會想到用PCI控制板卡或PCI數(shù)據(jù)采集卡等,但增加這些PCI卡,勢必會增加成本。本文是利用虛擬串口軟件在PC機上創(chuàng)建兩個虛擬串口,并對這兩個串口配對,用LabVIEW設(shè)計兩個串口通信程序,輕松實現(xiàn)串口之間的數(shù)據(jù)通信和采集。
關(guān)鍵詞:LabVIEW;虛擬串口;通信
Design and implementation
of communication between PC virtual serial ports based on LabVIEW
Pan Feng
School of mechanical and electrical engineering,Shenzhen Polytechnic GuangdongShenzhen 518055
Abstract:In industrial automation control system,PCI control board cards and PCI data acquisition cards are often used to conduct remote control or acquire data.However,the more these cards are used,the more the costs increase.In this essay,two virtual serial ports are created and matched on PC and the communication and collection of data between them are achieved by the communication program designed with LabVIEW
Key words:LabVIEW;virtual serial ports;communication
LabVIEW(Laboratory Virtual instrument Engineering)是一種圖形化的編程語言,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接受,視為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通信的全部功能。
在工業(yè)自動化控制系統(tǒng)中,經(jīng)常需要進行遠程控制或數(shù)據(jù)采集,這些控制與數(shù)據(jù)采集可以通過哪些接口實現(xiàn)呢?我們常常會想到用PCI控制板卡或PCI數(shù)據(jù)采集板卡等,但要增加這些PCI卡,勢必會增加成本,基于LabVIEW下,利用虛擬串口也可以輕松實現(xiàn)上述功能,輕松實現(xiàn)串口之間的數(shù)據(jù)通信和采集。串口通信通常有兩種方式,一種是RS232通信方式,一種是RS485通信方式,前者適用于近距離通信,通常在15m范圍內(nèi),后者適用于遠距離通信,通信距離通常是在1200米范圍內(nèi)。
1 系統(tǒng)功能
設(shè)計一個PC機串口通信程序,并完成其控制系統(tǒng)的程序設(shè)計、畫面制作、系統(tǒng)接線和運行調(diào)試。
在程序的前面板上分別選擇這兩個虛擬串口com3和com4,兩個串口通信程序分別命名為A機與B機。建立好后,兩個程序運行,A機發(fā)送字符或十六進數(shù)值,B機應(yīng)該收到并顯示;B機發(fā)送字符或十六進制數(shù)值,A機應(yīng)該收到并顯示,A機和B機串口通信界面如圖1所示。
2 系統(tǒng)設(shè)計流程框圖
先配置端口、波特率、停止位、數(shù)據(jù)位、校驗位;然后在A機寫入緩沖區(qū)寫入要發(fā)送的字符,點擊A機發(fā)送按鈕;觀察B機,是否收到A機所發(fā)送過來的字符;在B機寫入緩沖區(qū)寫入要發(fā)送的字符,點擊B機發(fā)送按鈕;觀察A機,是否收到B機所發(fā)送過來的字符,根據(jù)系統(tǒng)控制要求,繪制系統(tǒng)流程如圖2所示[2]:
3 VISA配置串口
首先需要調(diào)用VISA Configure Serial Port完成串口參數(shù)的設(shè)置,包括串口資源分配、波特率、數(shù)據(jù)位、停止位、校驗位和流控等等。
如果初始化沒有問題,就可以使用這個串口進行數(shù)據(jù)收發(fā)。發(fā)送數(shù)據(jù)使用VISA Write,接收數(shù)據(jù)使用VISA Read。在接收數(shù)據(jù)之前需要使用VISA Bytes at Serial Port查詢當(dāng)前串口接收緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),如果VISA Read要讀取的字節(jié)數(shù)大于緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),VISA Read操作將一直等待,直至Timeout或者緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù)達到要求的字節(jié)數(shù)。當(dāng)然也可以分批讀取接收緩沖區(qū)或者只從中讀取一定字節(jié)的數(shù)據(jù)。
在某些特殊情況下,需要設(shè)置串口接收/發(fā)送緩沖區(qū)的大小,此時可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer則可以清空接收與發(fā)送緩沖區(qū)。在串口使用結(jié)束后,使用VISA Close結(jié)束與VISA resource name指定的串口之間的會話。
4 根據(jù)控制要求進行LabVIEW程序設(shè)計
根據(jù)控制要求進行程序設(shè)計,首先在桌面雙擊National Instruments LabVIEW 2011,進入項目瀏覽器,在項目瀏覽器窗口,建立新項目,然后在我的電腦——右鍵新建——VI,新建VI后,我們會看到兩個新的窗口,分別是前面板和程序框圖,保存VI→并左右兩欄顯示。在程序框圖里添加VISA配置。
然后創(chuàng)建While循環(huán)與條件結(jié)構(gòu):
a.程序框圖——編程——結(jié)構(gòu)——While循環(huán)
b.程序框圖——編程——結(jié)構(gòu)——條件結(jié)構(gòu)
再然后創(chuàng)建串口配置輸入控件:
a.端口:在連線端口上右鍵——創(chuàng)建——輸入控件;
b.波特率:在連線波特率端口上右鍵——創(chuàng)建——輸入控件;
c.數(shù)據(jù)位:在連線數(shù)據(jù)位端口上右鍵——創(chuàng)建——輸入控件;
d.校驗位:在連線校驗位端口上右鍵——創(chuàng)建——輸入控件;
e.停止位:在連線停止位端口上右鍵——創(chuàng)建——輸入控件;
f.錯誤輸入:在連線錯誤輸入端口上右鍵——創(chuàng)建——輸入控件;
g.條件輸入框:在連線條件輸入框上右鍵——創(chuàng)建——輸入控件;
h.While循環(huán)停止:在連線While循環(huán)停止上右鍵——創(chuàng)建——輸入控件;
最后完善和優(yōu)化LabVIEW程序,最終形成如圖3所示程序[1]。
5 系統(tǒng)調(diào)試
在A機的寫入緩沖區(qū)中,寫入要發(fā)送的字符,點擊發(fā)送,觀察B機讀取緩沖區(qū)中顯示是否與A機發(fā)送的字符一致,如是一致,則說明PC機與PC機虛擬串口通信正常,同理在B機的寫入緩沖區(qū)中,寫入要發(fā)送的字符,點擊發(fā)送,觀察A機讀取緩沖區(qū)中顯示是否與B機發(fā)送的字符一致。這樣基于LabVIEW下PC機與PC機虛擬串口通信程序的設(shè)計就完成了。點擊退出按鈕,系統(tǒng)即可退出運行。
參考文獻:
[1]黃荻.基于LabVIEW與STC單片機的溫度監(jiān)測系統(tǒng)設(shè)計[J].電子測試,2017(4):20-21
[2]湯佳明,安偉.基于LABVIEW的上位機串口通信程序設(shè)計[J].電子設(shè)計工程,2018(11):86-90
作者簡介:潘鋒(1973— ),男,安徽六安人,碩士,研究方向:電氣自動控制。