<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 采用LabVIEW的PC機與變頻器的串口通信

采用LabVIEW的PC機與變頻器的串口通信

作者: 時(shí)間:2011-05-31 來(lái)源:網(wǎng)絡(luò ) 收藏

本文針對摩擦學(xué)試驗研究的特點(diǎn),廣泛使用的編程語(yǔ)言,開(kāi)發(fā)用于東元7200MA運行頻率的控制通訊程序。

本文引用地址:http://dyxdggzs.com/article/156233.htm

由于摩擦學(xué)試驗機和摩擦學(xué)測試的特殊性,摩擦學(xué)試驗中的調速有著(zhù)不同于一般工業(yè)變頻控制的特點(diǎn)。一方面,要求調速能夠在較大范圍內滿(mǎn)足摩擦學(xué)測試的要求,使得試驗結果具有可比性;另一方面,摩擦磨損試驗過(guò)程中,對控制有一些特殊的要求,例如需要特殊的速度、運動(dòng)的非周期性以及設備的快速啟動(dòng)和停止等。在一些疲勞試驗中,甚至要求電機進(jìn)行寸動(dòng)或者往復運動(dòng)以檢測材料的性能,有的試驗現場(chǎng)對人體的損害比較大,需要遠距離進(jìn)行控制和檢測電機的運轉情況。所以,必須利用計算機程序控制變頻器實(shí)現一些特殊控制功能。這就要求計算機與變頻器之間存在有效的通訊功能。

2 通訊系統總體設計

串行是一種常用的數據傳輸方法,占用的線(xiàn)路少、成本低,在工程方式上占有重要地位。本文以?xún)戎肦S 485通訊接口的東元7200MA變頻器為研究對象,設計基于的控制變頻器的通訊系統。圖1所示為系統總體結構框圖。

計算機通過(guò)RS 485通信口與變頻器相連,對變頻器進(jìn)行控制。RS 485串行總線(xiàn)平衡發(fā)送和差分接收的方式傳輸信號,具有傳輸距離遠(約1 219 m)、抗干擾能力強等特點(diǎn)。而且總線(xiàn)收發(fā)器具有高靈敏度,能檢測低至200 mV的電壓,故傳輸信號能在千米以外得到恢復。由于目前機普遍只配有RS 232,所以在計算機上連接一個(gè)RS 232/485轉換器,然后再與變頻器的串口相連。將各種動(dòng)作按照通訊協(xié)議編寫(xiě)成命令,發(fā)送給變頻器,就達到了通過(guò)機來(lái)控制變頻器的目的。同樣,機讀取數據也必須由變頻器根據RS 485通訊協(xié)議進(jìn)行識別和響應才能完成。

3 軟件實(shí)現方案

目前,串口通信程序的開(kāi)發(fā)在Windows操作系統下一般用VB,VC,Delphi等編寫(xiě)。當VB,VC開(kāi)發(fā)程序時(shí),操作者不得不面對非常繁瑣的API函數編程;而Delphi沒(méi)有自帶的串口通信控件,在它的幫助文檔里也沒(méi)有提及串口通信,給編程人員帶來(lái)許多不便。

是美國NI公司開(kāi)發(fā)的一種基于圖形化的編程語(yǔ)言,它內置數據采集、儀器控制、過(guò)程監控和自動(dòng)測試功能,包括VISA,GPIB,RS 232,DAQ等模塊和基本分析庫;提供強大的數據分析、處理、顯示功能的同時(shí)還保證系統靈活性;LabVIEW具有開(kāi)放的系統互連性及廣泛的硬件支撐,具有DDL和CIN接口,可以與多種設備直接連接;流程圖式的開(kāi)發(fā)環(huán)境大大簡(jiǎn)化了程序開(kāi)發(fā)的復雜程度,縮短開(kāi)發(fā)周期;界面良好、易于理解,方便調試和維護,用它來(lái)實(shí)現PC機與變頻器的串口通信是最為簡(jiǎn)捷的方法之一,已經(jīng)具有較廣大的用戶(hù)群。

設置東元7200MA系列變頻器所涉及的主要參數有端口號、波特率、數據位等,具體說(shuō)明如表1所示。

本程序采用中文版LabVIEW 8.2進(jìn)行通訊編程,在編寫(xiě)程序之前,安裝的NI VISA驅動(dòng)必須和LabVIEW程序版本匹配,避免編程出錯。從變頻器設置轉數到啟動(dòng)再到停止有一個(gè)順序和時(shí)間過(guò)程,因此本程序主要采用順序結構和層疊式結構實(shí)現。具體步驟如下:

(1)初始化串口,利用VISA Configure SerialPort.VI設置PC與變頻器通信的基本參數:端口號、波特率、奇偶校驗、數據位、停止位、緩沖區大??;

(2)利用VISA Write.VI寫(xiě)端口,根據變頻器的通訊協(xié)議把設定轉數的動(dòng)作參數變成命令符,然后把整個(gè)命令幀以ASCII碼字符串的形式發(fā)送到串口;

(3)利用Wait(ms).VI延時(shí)等待,主機發(fā)送命令到變頻器,變頻器判斷命令正確后將數據返回給主機需要一定時(shí)間,故這一步需要設置延時(shí)等待。等待時(shí)間可根據變頻器的響應時(shí)間確定,也可以通過(guò)LabVIEW的中的工具確定出程序運行時(shí)間來(lái)設置等待時(shí)間;

(4)再利用VISA Write.VI寫(xiě)端口,把啟動(dòng)的動(dòng)作參數寫(xiě)成命令幀并以字符串形式寫(xiě)入VISA Write.VI的緩沖區。

以上4步即可完成變頻器以一定的轉數轉動(dòng)。寫(xiě)命令到串口的過(guò)程在While循環(huán)里進(jìn)行,變頻器啟動(dòng)后不需要停止,可以直接連續地設置變頻器的轉數來(lái)更改電機轉動(dòng)速度,While循環(huán)內采用延時(shí)等待處理,延時(shí)500 ms;

同理,停止命令以一個(gè)層疊式順序結構和上面(2),(3)兩步命令層疊進(jìn)行,同樣先需要設定變頻器轉數為零,然后延時(shí)等待,最后把停止命令以字符串形式發(fā)給串口,完成變頻器的停止動(dòng)作;

最后,利用VISA Close.VI關(guān)閉串口;串口不再使用時(shí)需要關(guān)閉,使其處于空閑狀態(tài),便于下一次打開(kāi)串口。整個(gè)串口通信完畢后用Exit LabVIEW.VI退出此程序。程序的主要代碼框圖如圖2所示。

程序的一個(gè)很大的優(yōu)點(diǎn)在于,將變頻器速度控制與變頻器的啟??刂普系揭黄?,使得程序操作簡(jiǎn)單,更加優(yōu)化合理。程序中采用了調用子VI的方法,大大簡(jiǎn)化了流程圖的復雜程度,提高可讀性,方便查看代碼和調試程序。

由于變頻器接受的數據格式為ASCII碼字符串,所以在命令寫(xiě)入串口之前必須先進(jìn)行數據格式的轉換,這里子VI的作用就是將各種參數值轉換成ASCII碼字符串,然后寫(xiě)入串口。以變頻器的啟動(dòng)為例,根據東元變頻器的啟動(dòng)數據格式,以十六進(jìn)制形式發(fā)送01100000 0001 0200 0167 90,利用反饋節點(diǎn)將此字符串拆分成字符串數組,再轉換為數值數組,然后利用字ByteArray To String.VI模塊,將字節數組轉換成ASCII碼字符串。變頻器接受ASCII碼后經(jīng)過(guò)算法還原,然后去執行相應的操作。就可以啟動(dòng)變頻器,程序代碼框圖如圖3所示。

程序中局部變量的使用也大大簡(jiǎn)化了程序開(kāi)發(fā)的復雜程度,和Visual C++等基于文本的編程語(yǔ)言不同,LabVIEW中的各個(gè)對象之間是靠連線(xiàn)來(lái)傳遞數據的,但是在需要兩個(gè)程序之間交換數據時(shí),靠連線(xiàn)的方式是不行的;即便是在同一個(gè)程序中的對象之間交換數據,有時(shí)也會(huì )遇到麻煩。在這種情況下,就需要使用局部變量。

串口通信操作前面板如圖4所示,直接在面板上設置參數,簡(jiǎn)潔明了,易于操作。在試驗過(guò)程中可以隨意連續的更改轉數,實(shí)現無(wú)級調速。

4 結果驗證

這里主要是檢查電機的運行狀態(tài)是否與設定狀態(tài)吻合,變頻器根據PC機發(fā)送的指令控制電機,然后又將電機的當前工作狀態(tài)讀取上來(lái)。讀取變頻器的狀態(tài)指令,可利用VISA Read.VI模塊,程序具體實(shí)現方法與上述寫(xiě)入指令相同。

針對不同情況進(jìn)行錯誤處理:首先在前面板中發(fā)送指令給變頻器,然后去讀取此時(shí)變頻器運行指令,將讀取上來(lái)的數據進(jìn)行指令校驗和的驗證,做條件判斷:

(1)如果校驗正確就說(shuō)明數據指令執行成功;

(2)如果很長(cháng)時(shí)間都沒(méi)有將變頻器上的轉數讀上來(lái),或者變頻器根本就沒(méi)有動(dòng)作,出現超時(shí)錯誤,說(shuō)明變頻器通訊故障。

(3)讀取的值與設定轉數值不同,那么指令發(fā)送錯誤,將重新發(fā)送指令??梢栽谇懊姘屣@示出變頻器的電壓狀態(tài)表,方便直觀(guān)地查看電機工作狀態(tài)。

通過(guò)環(huán)一塊摩擦磨損試驗機的試驗運用證明,所開(kāi)發(fā)的變頻器控制軟件設計合理,使用方便,響應速度快,盡管電機存在慣性作用,也能在較短的時(shí)間內達到要求的速度,能夠保證當摩擦學(xué)試驗參數變化時(shí),電機仍保持很好的剛性,很好地解決了試驗過(guò)程中電機速度控制問(wèn)題。

本文的創(chuàng )新點(diǎn)在于根據摩擦學(xué)試驗機的具體試驗要求,利用LabVIEW技術(shù)實(shí)現計算機與變頻器的通信,利用串行端口來(lái)控制變頻器的運行,操作簡(jiǎn)單,響應速度快,能夠連續、動(dòng)態(tài)地改變電機轉速,為環(huán)一塊摩擦磨損試驗機的試驗系統提供了強大的技術(shù)支持。該設計方法已應用在筆者實(shí)驗室的實(shí)際工作中,獲得很好的試驗效果。同時(shí),該通信方式簡(jiǎn)單、穩定、可靠,具有很好的實(shí)時(shí)性和可移植性,可供其他串口通信系統參考。



關(guān)鍵詞: 串口 通信 變頻器 PC LabVIEW 采用

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>