摘要:首先介紹了LabVIEW的環(huán)境及VISA串口通信函數(shù)的功能;其次引入了本文的采集對象JCZ型智能轉矩轉速傳感器,并對其性能、物理結構及串行通信特點進行了說明,利用LabVIEW的開發(fā)平臺編寫通信源程序,實時采集轉矩和轉速,并計算功率值,最后把轉矩、轉速和功率數(shù)據(jù)以動態(tài)曲線的方式在同一張圖表中顯示出來。經(jīng)過實驗驗證,該程序操作方便,采集數(shù)據(jù)準確,運行安全可靠,動態(tài)曲線顯示直觀,可真正在生產實際中使用。
LabVIEW是當今最流行的圖形化編程環(huán)境,由于其采用圖形化的編程方式,因此也被稱作G語言(graphical language)。LabVIEW是目前國際上唯一的基于數(shù)據(jù)流的編譯型開發(fā)軟件,與基于文本的編程語言不同,LabVIEW的程序由圖形語言構成,用簡單或圖標提示的方法選擇功能(圖形),并用線條把各種功能(圖形)連接起來的簡單圖形編程方式,使得不熟悉編程的工程技術人員都可以按照測試要求和任務快速“畫”出自己的程序,“畫”出儀器面板,從而大大提高了工作效率,減輕了科研和工程技術人員的工作量。由于LabVIEW軟件簡潔直觀,功能強大靈活,目前廣泛應用于自動化測量系統(tǒng)、工業(yè)過程自動化、實驗室 仿真等各個領域。
在LabVIEW中編制的程序叫做虛擬儀器程序,簡稱VI。一個VI包括前面板和框圖程序。前面板類似實際儀表面板,可以放置諸如旋鈕、按鈕和文本框等控制和顯示 元件??驁D程序是實現(xiàn)程序功能的核心部分,包括以圖標為代表的常數(shù)、函數(shù)和VI程序等,并通過連線引導數(shù)據(jù)流,編寫和調試程序都很直觀方便。
一 : LabVIEW串口通信介紹
儀器控制是LabVIEW最具競爭力的核心技術之一。在安裝了適當?shù)挠布寗映绦蛑?,LabVIEW能輕松實現(xiàn)與任何NI提供的硬件設備通信。不僅如此,通過通用的驅動程序(DAQmx)或接口,例如VISA、IVI、OPC、ActiveX、DLL等,LabVIEW幾乎能與任何廠商甚至自制的硬件通信。
LabVIEW通過VISA與串行接口儀器通信。VISA是應用于儀器編程的標準I/O應用程序接口(API),它本身并不具有儀器編程能力,而是為用戶提供了一套獨立的可方便調用的標準I/O底層函數(shù)。無論對于GPIB、串口還是其他接口,用戶只要調用這些標準函數(shù),則VISA就會根據(jù)實際接口類型自動調取相應的接口驅動程序例程,方便實現(xiàn)上層應用程序與接口總線儀器的通信。在LabVIEW里使用VISA,必須安裝NI-VISA程序包,安裝后,與串口通信相關的VISA函數(shù)位于Functions->ALL Functions->Instrument I/O->Serial子模板上,如圖1所示。
圖1 VISA串口通信函數(shù)
此模板共有8個操作函數(shù),其中,第一行的4個函數(shù)在串口通信中經(jīng)常應用。下面簡單介紹這4個常用的VISA串口函數(shù)。 1 VISA配置串口 設定波特率、數(shù)據(jù)位、停止位、奇偶校驗位、流控制、超時處理、終止符和終止符使能等參數(shù),將VISA資源名稱指定的串口按特定設置初始化。 注意:超時(TIMEOUT)和終止符兩個參數(shù)。TIMEOUT默認10秒;終止符是0X0A(),默認是使能狀態(tài)。另外,回車0X0D()也經(jīng)常作為終止符。采用二進制通信,就要特別注意終止符的情況。因為0A對應的十進制是10,0D是13,當傳輸?shù)亩M制對應的十進制剛好為10或13時,如果不禁止終止符,會導致“VISA讀取”提前結束,產生錯誤的結果。因此,經(jīng)常要把“啟動終止符”的布爾輸入設置為“F”。 2 VISA寫入 將“寫入緩沖區(qū)”的數(shù)據(jù)寫入VISA資源名稱指定的串口。 注意:MSCOMM串口通信可以選擇文本或二進制方式接收或發(fā)送數(shù)據(jù),但是,VISA通信接收或發(fā)送數(shù)據(jù)都是字符串(ASCII)。若接收或發(fā)送的字符串是“1、2、3、4”,在內存中存儲的是ASCII,因為“1”=31(十六進制)、“2”=32(十六進制)、“3”=33(十六進制)和“4”=34(十六進制),所以串口緩存接收/發(fā)送的數(shù)據(jù)實際是16進制的31、32、33、34。 3 VISA讀取 從VISA資源名稱所指定的串口中讀取指定字節(jié)的數(shù)據(jù),并將數(shù)據(jù)返回至讀取緩沖區(qū)。有時不知道串口緩存區(qū)有多少字節(jié)的數(shù)據(jù),以防字節(jié)總數(shù)設置錯誤,這時字節(jié)總數(shù)可以用屬性節(jié)點獲取,即把屬性節(jié)點輸出端子接入“VISA讀取”節(jié)點的輸入端子“字節(jié)總數(shù)”。 4 VISA關閉 關閉VISA資源名稱指定的串口會話句柄或事件對象。
二:串口通信編程實踐
JCZ型智能轉矩轉速傳感器是湖南湘儀動力測試儀器有限公司利用美國ECHELON公司的LonWorks技術在原JC型轉矩轉速傳感器基礎上設計制造的新一代產品,它的外形結構如圖2所示。JCZ型智能轉矩轉速傳感器具有高精度、高可靠性的優(yōu)點,同時,它還具有自動零點補償,自動隨環(huán)境溫度修正傳感器系數(shù)等智能化特性,在轉速很低時也能精確測量轉速。當使用LonWorks網(wǎng)絡傳輸時,通訊距離可達到2公里,還可以很方便地與計算機及其它智能傳感器或智能節(jié)點組成測控網(wǎng)絡系統(tǒng)。目前,JCZ型智能轉矩轉速傳感器在電機、風機、機車、汽車、礦山機械等許多生產部門中廣泛應用。
此主題相關圖片如下:6.jpg 圖2 JCZ型智能轉矩轉速傳感器外形結構圖
JCZ型轉矩轉速傳感器的基本原理是:通過彈性軸、兩組磁電信號發(fā)生器,把被測轉矩、轉速轉換成具有相位差的兩組交流電信號,這兩組交流電信號的頻率相同且與軸的轉速成正比,而其相位差的變化部分又與被測轉矩成正比。因此,通過分析這兩組交流電的頻率和相差信號就可以實現(xiàn)轉矩和轉速的測量。電信號處理部分是以 ECHELON公司的3150神經(jīng)元 芯片為核心組成,把電信號處理成可利用雙絞線等傳輸介質進行網(wǎng)絡傳輸?shù)木W(wǎng)絡變量,或者處理成直接可與計算機 RS-232串口通信的信號。本文 JCZ型轉矩轉速傳感器使用異步串行通信接口,其數(shù)據(jù)格式為1個起始位,8位數(shù)據(jù),無校驗位,1個停止位,波特率為4800 bps。因此,設置完串口通信參數(shù)后,通過專門配置的信號線,此傳感器的輸出信號就可以送到計算機中。
JCZ型轉矩轉速傳感器發(fā)送16進制顯示的字符串來表示各種指令代碼及數(shù)據(jù),每次發(fā)送的數(shù)據(jù)包共計21字節(jié),起始段為字符A,占1字節(jié);接下分別為轉矩和轉速,每個數(shù)據(jù)占10字節(jié),具體如下表所示:
頭“A”(1byte) | 轉矩數(shù)據(jù) (10byte) | 轉速數(shù)據(jù) (10byte) |
假如串口接收的一個數(shù)據(jù)包為41 34 31 2E 31 38 37 31 30 30 30 32 36 2E 32 33 36 30 30 30 30等21字節(jié)十六進制數(shù)。其中,頭字節(jié)41,剛好是字符A的十六進制表示;接下從34 31~30這10字節(jié),為字符顯示的字符串41.235的十六進制表示,而41.235即為實際轉矩數(shù)據(jù);從32、36~30這最后10個字節(jié)轉換為字符顯示的字符串后可得到實際的轉速值。因此,要注意把串口接收的數(shù)據(jù)包先進行字節(jié)分離,再分別轉換為字符顯示的字符串,所得到值才是實際的物理量。
通過分析JCZ型轉矩轉速傳感器的串行通信特點,結合VISA串口函數(shù)的功能,特設計圖3所示的程序代碼流程圖。
此主題相關圖片如下:7.jpg
圖3 串口通信程序流程代碼 圖4為本串口通信程序的前面板?!皠討B(tài)參數(shù)曲線顯示”圖表為Chart控件,其波形顯示模式模擬波形記錄儀、心電圖等的工作方式。轉矩、轉速、功率實時曲線在圖表上動態(tài)顯示,圖表的最右邊顯示最新采集的數(shù)據(jù),而歷史數(shù)據(jù)則連續(xù)不停地往左邊移動。圖表的正上方是三個數(shù)據(jù)輸出文本框,分別顯示當前采集的轉矩、轉速和功率物理量。當參數(shù)測試完畢后,點擊“退出程序”控件程序退出。 此主題相關圖片如下:8.jpg 圖4 串口通信程序的前面板 圖5為此程序的框圖程序,程序采用流行的主/從結構(Master/Slave)設計模式。JCZ型智能轉矩轉速傳感器在上電的情況下,默認地不斷往計算機串口發(fā)送21字節(jié)的16進制格式數(shù)據(jù)。為了完成串口的初始化、讀,分別用到串口初始化函數(shù)(VISA Configure Serial Port)和串口讀函數(shù)(VISA Read)。另外,由于得到的數(shù)據(jù)為16進制數(shù),利用“電子表格字符串至數(shù)組轉換”函數(shù),使之換算成一維標量數(shù)組,得到實際的轉矩、轉速物理量的數(shù)組表示,再由轉矩和轉速計算出相應的功率值(注:功率=扭矩X轉速XK,本文k=1/9.55,所求功率的單位是瓦特W),之后轉矩、轉速和功率數(shù)組合并并通過自動索引隧道進入for循環(huán)中,由“創(chuàng)建波形”節(jié)點創(chuàng)建波形數(shù)據(jù),最后,波形數(shù)據(jù)流入Chart圖表中動態(tài)顯示。
此主題相關圖片如下:9.jpg
圖5 框圖程序 三 結論 利用LabVIEW的VISA函數(shù)開發(fā)串口通信程序,簡單方便。本程序人機界面設計合理,操作方便,波形曲線顯示直觀。經(jīng)過實驗驗證,此程序數(shù)據(jù)采集可靠、運行效率高,可作為獲取和分析轉矩和轉速很好的測量工具。當然程序還有很多擴展的余地,比如數(shù)據(jù)存盤,實現(xiàn)遠程監(jiān)控,筆者希望以后繼續(xù)完善。 |