摘 要:如何連續(xù)、動態(tài)地改變交流電機轉速為摩擦學試驗機提供廣泛的速度選擇是摩擦學測試技術中的一個重要問題。針對摩擦學試驗對速度的這種特殊要求,設計一種基于LabVIEW的變頻器控制系統(tǒng),通過PC機與變頻器的串口通信協(xié)議控制變頻器的運行。結果表明:該系統(tǒng)操作簡單,響應速度快,能夠連續(xù)、動態(tài)地改變電機轉速,為環(huán)-塊摩擦磨損試驗機的試驗系統(tǒng)提供了強大的技術支持。
關鍵詞:LabVIEW;變頻器;PC機;串口通信
中圖分類號:TP311.1 文獻標識碼:B 文章編號:1004373X(2008)1711103
Serial Communication between PC and Transducer Based on LabVIEW
MENG Hui1,LI Jian1,YUANG Chengqing2
(1.Wuhan Research Institute of Materials Protection,Wuhan,430030,China;2.Wuhan University of Technology,Wuhan,430070,China)
Abstract:Determining how to change the rotate speed of the electromotor continuously and dynamically to provide various speeds for tribology testers is important in tribology testing.A system for serial communication between the PC and the transducer is designed based on LabVIEW to meet the special demand of the tester.The result shows that the system can be operated simply and respond rapidly to control the transducer accurately to change the rotate speed of the electromotor continuously and dynamically.It can provide powerful technology service equipped to the ring block tribology tester.
Keywords:LabVIEW;transducer;personal computer;serial communication
1 引 言
近年來,隨著電力電子技術、微電子技術及大規(guī)模集成電路的發(fā)展,生產工藝的改進及功率
半導體器件價格的降低,變頻器調速越來越被工業(yè)上所采用[1]。在摩擦學測試系統(tǒng)中,用變頻器控制電機實現試驗設備的速度調節(jié)已經成為一種非常重要和有效的控制手段。
由于摩擦學試驗機和摩擦學測試的特殊性,摩擦學試驗中的變頻器調速有著不同于一般工業(yè)變頻控制的特點。一方面,要求變頻器調速能夠在較大范圍內滿足摩擦學測試的要求,使得試驗結果具有可比性;另一方面,摩擦磨損試驗過程中,對控制有一些特殊的要求,例如需要特殊的速度、運動的非周期性以及設備的快速啟動和停止等。在一些疲勞試驗中,甚至要求電機進行寸動或者往復運動以檢測材料的性能,有的試驗現場對人體的損害比較大,需要遠距離進行控制和檢測電機的運轉情況[2]。所以,必須利用計算機程序控制變頻器實現一些特殊控制功能。這就要求計算機與變頻器之間存在有效的通訊功能。
本文針對摩擦學試驗研究的特點,采用廣泛使用的LabVIEW編程語言,開發(fā)用于東元7200MA變頻器運行頻率的控制串口通訊程序。
2 通訊系統(tǒng)總體設計
串行通信是一種常用的數據傳輸方法,占用的通信線路少、成本低,在工程通信方式上占有重要地位。本文以內置RS 485通訊接口的東元7200MA變頻器為研究對象,設計基于LabVIEW的控制變頻器串口的通訊系統(tǒng)。圖1所示為系統(tǒng)總體結構框圖。
計算機通過RS 485通信口與變頻器相連,對變頻器進行控制。RS 485串行總線采用平衡發(fā)送和差分接收的方式傳輸信號,具有傳輸距離遠(約1 219 m)、抗干擾能力強等特點[3]。而且總線收發(fā)器具有高靈敏度,能檢測低至200 mV的電壓,故傳輸信號能在千米以外得到恢復[4]。由于目前PC機普遍只配有RS 232串口,所以在計算機上連接一個RS 232/485轉換器,然后再與變頻器的串口相連。將各種動作按照通訊協(xié)議編寫成命令,發(fā)送給變頻器,就達到了通過PC機來控制變頻器的目的。同樣,PC機讀取數據也必須由變頻器根據RS 485通訊協(xié)議進行識別和響應才能完成[5]。
3 軟件實現方案
目前,串口通信程序的開發(fā)在Windows操作系統(tǒng)下一般用VB,VC,Delphi等編寫。當采
用VB,VC開發(fā)程序時,操作者不得不面對非常繁瑣的API函數編程;而Delphi沒有自帶的串口通信控件,在它的幫助文檔里也沒有提及串口通信,給編程人員帶來許多不便[6]。
LabVIEW是美國NI公司開發(fā)的一種基于圖形化的編程語言,它內置數據采集、儀器控制、過程監(jiān)控和自動測試功能[7],包括VISA,GPIB,RS 232,DAQ等模塊和基本分析庫;提供強大的數據分析、處理、顯示功能的同時還保證系統(tǒng)靈活性[8];LabVIEW具有開放的系統(tǒng)互連性及廣泛的硬件支撐,具有DDL和CIN接口,可以與多種設備直接連接;流程圖式的開發(fā)環(huán)境大大簡化了程序開發(fā)的復雜程度,縮短開發(fā)周期;界面良好、易于理解,方便調試和維護,用它來實現PC機與變頻器的串口通信是最為簡捷的方法之一,已經具有較廣大的用戶群。
設置東元7200MA系列變頻器所涉及的主要參數有端口號、波特率、數據位等,具體說明如表1所示。
本程序采用中文版LabVIEW 8.2進行通訊編程,在編寫程序之前,安裝的NI VISA驅動必須和LabVIEW 程序版本匹配,避免編程出錯。從變頻器設置轉數到啟動再到停止有一個順序和時間過程,因此本程序主要采用順序結構和層疊式結構實現。具體步驟如下:
(1) 初始化串口,利用VISA Configure Serial Port.VI設置PC與變頻器通信的基本參數:端口號、波特率、奇偶校驗、數據位、停止位、緩沖區(qū)大??;
(2) 利用VISA Write.VI寫端口,根據變頻器的通訊協(xié)議把設定轉數的動作參數變成命令符,然后把整個命令幀以ASCII碼字符串的形式發(fā)送到串口;
(3) 利用Wait(ms).VI延時等待,主機發(fā)送命令到變頻器,變頻器判斷命令正確后將數據返回給主機需要一定時間,故這一步需要設置延時等待。等待時間可根據變頻器的響應時間確定,也可以通過LabVIEW的中的工具確定出程序運行時間來設置等待時間;
(4) 再利用VISA Write.VI寫端口,把啟動的動作參數寫成命令幀并以字符串形式寫入VISA Write.VI的緩沖區(qū)。
以上4步即可完成變頻器以一定的轉數轉動。寫命令到串口的過程在While循環(huán)里進行,變頻器啟動后不需要停止,可以直接連續(xù)地設置變頻器的轉數來更改電機轉動速度,While循環(huán)內采用延時等待處理,延時500 ms;
同理,停止命令以一個層疊式順序結構和上面(2),(3)兩步命令層疊進行,同樣先需要設定變頻器轉數為零,然后延時等待,最后把停止命令以字符串形式發(fā)給串口,完成變頻器的停止動作;
最后,利用VISA Close .VI關閉串口;串口不再使用時需要關閉,使其處于空閑狀態(tài),便于下一次打開串口。整個串口通信完畢后用Exit LabVIEW.VI退出此程序。程序的主要代碼框圖如圖2所示。
程序的一個很大的優(yōu)點在于,將變頻器速度控制與變頻器的啟??刂普系揭黄穑沟贸绦虿僮骱唵?,更加優(yōu)化合理。程序中采用了調用子VI的方法,大大簡化了流程圖的復雜程度,提高可讀性,方便查看代碼和調試程序。
由于變頻器接受的數據格式為ASCII碼字符串,所以在命令寫入串口之前必須先進行數據格式的轉換,這里子VI的作用就是將各種參數值轉換成ASCII碼字符串,然后寫入串口。以變頻器的啟動為例,根據東元變頻器的啟動數據格式,以十六進制形式發(fā)送0110 0000 0001 0200 0167 90,利用反饋節(jié)點將此字符串拆分成字符串數組,再轉換為數值數組,然后利用字Byte Array To String.VI模塊,將字節(jié)數組轉換成ASCII碼字符串。變頻器接受ASCII碼后經過算法還原,然后去執(zhí)行相應的操作。就可以啟動變頻器,程序代碼框圖如圖3所示。
程序中局部變量的使用也大大簡化了程序開發(fā)的復雜程度,和Visual C++等基于文本的編程語言不同,LabVIEW中的各個對象之間是靠連線來傳遞數據的,但是在需要兩個程序之間交換數據時,靠連線的方式是不行的;即便是在同一個程序中的對象之間交換數據,有時也會遇到麻煩[9]。在這種情況下,就需要使用局部變量。
串口通信操作前面板如圖4所示,直接在面板上設置參數,簡潔明了,易于操作。在試驗過程中可以隨意連續(xù)的更改轉數,實現無級調速。
4 結果驗證
這里主要是檢查電機的運行狀態(tài)是否與設定狀態(tài)吻合,變頻器根據PC機發(fā)送的指令控制電機,然后又將電機的當前工作狀態(tài)讀取上來。讀取變頻器的狀態(tài)指令,可利用VISA Read.VI模塊,程序具體實現方法與上述寫入指令相同。
針對不同情況進行錯誤處理:首先在前面板中發(fā)送指令給變頻器,然后去讀取此時變頻器運行指令,將讀取上來的數據進行指令校驗和的驗證,做條件判斷:
(1) 如果校驗正確就說明數據指令執(zhí)行成功;
(2) 如果很長時間都沒有將變頻器上的轉數讀上來,或者變頻器根本就沒有動作,出現超時錯誤,說明變頻器通訊故障。
(3) 讀取的值與設定轉數值不同,那么指令發(fā)送錯誤,將重新發(fā)送指令??梢栽谇懊姘屣@示出變頻器的電壓狀態(tài)表,方便直觀地查看電機工作狀態(tài)。
5 結 語
通過環(huán)-塊摩擦磨損試驗機的試驗運用證明,所開發(fā)的變頻器控制軟件設計合理,使用方便,響應速度快,盡管電機存在慣性作用,也能在較短的時間內達到要求的速度,能夠保證當摩擦學試驗參數變化時,電機仍保持很好的剛性,很好地解決了試驗過程中電機速度控制問題。
本文的創(chuàng)新點在于根據摩擦學試驗機的具體試驗要求,利用LabVIEW技術實現計算機與變頻器的通信,利用串行端口來控制變頻器的運行,操作簡單,響應速度快,能夠連續(xù)、動態(tài)地改變電機轉速,為環(huán)-塊摩擦磨損試驗機的試驗系統(tǒng)提供了強大的技術支持。該設計方法已應用在筆者實驗室的實際工作中,獲得很好的試驗效果。同時,該通信方式簡單、穩(wěn)定、可靠,具有很好的實時性和可移植性,可供其他串口通信系統(tǒng)參考。
參 考 文 獻
[1]胡謙.變頻器的工作原理和控制方式 [J].科技咨詢導報,2007(17):71.
[2]肖峰,李健.摩擦學測試中計算機控制變頻器的開發(fā)應用 [J].材料保護,2004,37(7):167-170.
[3]李現勇.Visual C++串口通訊與工程實踐 [M].北京:人民郵電出版社,2002.
[4]張艷兵,王忠慶,鮮浩.計算機控制技術 [M].北京:國防工業(yè)出版社,2006.
[5]任清珍,龐麗莉.基于串口的LabVIEW與PLC的通信實現 [J].儀表技術,2004(3):27-28.
[6]桂玲,吳舒辭,向誠.基于LabVIEW語言的PC機與單片機的串口通信 [J].自動化信息,2004(6):43-44.
[7]楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計 [M].北京:清華大學出版社,2004.
[8]鄧炎,王磊.LabVIEW7.1測試技術與儀器應用 [M].北京:機械工業(yè)出版社,2004.
[9]張凱,周陬,郭棟.LabVIEW虛擬儀器工程設計與開發(fā) [M].北京:國防工業(yè)出版社,2004.
作者簡介 孟 輝 女,1981年出生,現為武漢材料保護研究所碩士研究生。主要從事計算機監(jiān)測監(jiān)控系統(tǒng)方面的研究。
李 健 男,1957年出生,武漢材料保護研究所研究員,博士生導師。目前主要從事材料摩擦學研究。
袁成清 男,1976年出生,工學博士,武漢理工大學副教授。主要研究方向為機器系統(tǒng)狀態(tài)辨識與故障診斷。