摘 要:本文介紹了一種基于VB的Mscomm控件進行計算機與三菱變頻器通訊的軟件設(shè)計方法,實現(xiàn)了計算機對變頻器的通訊與監(jiān)控,包括運行控制、狀態(tài)監(jiān)測、參數(shù)設(shè)置及校驗。
關(guān)鍵詞:VB 三菱變頻器 監(jiān)控軟件
1 概述
變頻器在各種工業(yè)場合中有著廣泛的應(yīng)用,在使用變頻器時,需要合理地設(shè)置其工作參數(shù),以使整個變頻調(diào)速系統(tǒng)能夠滿足工作要求,并盡可能的在最佳狀態(tài)下運行。變頻器的參數(shù)不僅數(shù)目眾多,而且許多參數(shù)之間存在一定的關(guān)聯(lián)。在一些比較復(fù)雜的運行場合,設(shè)置參數(shù)時需要根據(jù)系統(tǒng)的工作要求以及變頻器的功能進行綜合分析,通盤考慮。三菱變頻器的參數(shù)設(shè)置可以通過變頻器附帶的操作面板進行,但是由于操作面板的結(jié)構(gòu)非常緊湊,上面只有小鍵盤和幾位LED顯示器,參數(shù)的設(shè)置和讀取不夠方便,操作非常繁瑣。
為了方便、直觀地對變頻器進行參數(shù)設(shè)置和運行狀態(tài)監(jiān)控操作,可以采用計算機通過串行口來控制變頻器(要求變頻器具有通訊接口),也可以采用PLC+人機界面的方式,PLC可以通過數(shù)字量、模擬量或通訊接口來控制變頻器。在本系統(tǒng)中,通過計算機的串行口以及接口轉(zhuǎn)換電路來控制三菱變頻器,如圖1所示,并利用Visual Basic編制系統(tǒng)的監(jiān)控軟件,從而可以方便地對變頻器的參數(shù)進行設(shè)置和校驗,并能夠直觀地控制變頻器運行和監(jiān)視變頻器的工作狀態(tài)。
[align=center]

圖1 計算機與三菱變頻器的連接[/align]
2 接口轉(zhuǎn)換設(shè)計
通用的計算機一般只具有RS-232接口,而工控設(shè)備大多采用RS-485接口。本系統(tǒng)所用的三菱FR-E500變頻器的通訊接口就是RS-485的形式,而且它采用的是較為少見的全雙工485(共有四根數(shù)據(jù)線,接收和發(fā)送分開進行),與外部連接采用的是RJ45接口,連接電纜應(yīng)采用符合EIA568標(biāo)準(zhǔn)的10BASE-T電纜。為了實現(xiàn)通用計算機與三菱變頻器的通訊,我們設(shè)計了專門的接口轉(zhuǎn)換電路,其結(jié)構(gòu)原理圖如圖2所示。
[align=center]

圖2 接口轉(zhuǎn)換電路結(jié)構(gòu)原理圖[/align]
接口轉(zhuǎn)換電路利用兩塊MAXIM接口轉(zhuǎn)換芯片(MAX202和MAX491)完成了RS232信號與RS485信號之間的轉(zhuǎn)換,其原理如圖2所示。MAX202可以實現(xiàn)RS232信號與TTL信號之間的轉(zhuǎn)換,MAX491可以實現(xiàn)全雙工RS485信號與TTL信號之間的轉(zhuǎn)換。電路中還加入了DC-DC和光電耦合器件6N137,將232側(cè)與485側(cè)的信號隔離,以提高電路的抗干擾能力。
3 通訊及監(jiān)控軟件的設(shè)計
本軟件能夠控制變頻器運行,監(jiān)視變頻器的運行狀態(tài),對變頻器的參數(shù)按照功能的分類和相互的制約關(guān)系進行設(shè)置,并在將設(shè)置好的參數(shù)下載到變頻器之前根據(jù)一些規(guī)則進行校驗。軟件的整體結(jié)構(gòu)如圖3所示。
[align=center]

圖3 通訊與監(jiān)控軟件的整體結(jié)構(gòu)[/align]
3.1 人機界面
主界面如圖4所示。在主界面中,可以直接對變頻器進行基本運行操作,并實時顯示頻率和電流的當(dāng)前值。關(guān)于系統(tǒng)通訊參數(shù)的設(shè)置和變頻器工作參數(shù)的設(shè)置主要在通訊菜單和監(jiān)控菜單中完成。
[align=center]

圖4 監(jiān)控軟件的主界面[/align]
通訊菜單用來操作計算機串口,包括打開串口、關(guān)閉串口、串口初始化、當(dāng)前串口狀態(tài)顯示這4個子菜單項。監(jiān)控菜單用來分組設(shè)置變頻器的參數(shù),包括頻率限制、加減速運行、點動運行、直流制動、報警原因顯示這5個子菜單項。
變頻器的參數(shù)不僅數(shù)目眾多,而且許多參數(shù)互相關(guān)聯(lián),設(shè)置參數(shù)時需要前后呼應(yīng)。本軟件將變頻器的參數(shù)按照功能和相互的制約關(guān)系分好類,作為子菜單列在監(jiān)控菜單項下,按下子菜單后將彈出相應(yīng)的對話框,設(shè)置與該子菜單功能有關(guān)的一系列參數(shù)。如單擊頻率限制后,會彈出如圖5所示的頻率限制參數(shù)設(shè)置對話框。
本軟件能夠根據(jù)一些規(guī)則對設(shè)置好的參數(shù)進行校驗。當(dāng)用戶設(shè)置好的參數(shù)之間互相矛盾時,軟件能夠向用戶發(fā)出警告信息;當(dāng)用戶設(shè)置的參數(shù)超出了常用的變頻器參數(shù)設(shè)置范圍時,軟件也能夠向用戶發(fā)出提示信息,要求用戶確認(rèn)。例如設(shè)定的頻率下限低于啟動頻率時,將彈出如圖6所示的對話框警告用戶。
[align=center]

圖5頻率限制設(shè)置對話框

圖6警告對話框[/align]
3.2 數(shù)據(jù)處理
要使計算機和變頻器之間能進行正確的數(shù)據(jù)交換,必須有一個數(shù)據(jù)處理的過程,來完成人機界面中的數(shù)據(jù)、指令與符合變頻器通訊協(xié)議數(shù)據(jù)格式的數(shù)據(jù)之間的轉(zhuǎn)換。數(shù)據(jù)處理包括兩個方面的內(nèi)容,一是要將人機界面上的命令或輸入數(shù)據(jù)轉(zhuǎn)換為變頻器能識別的數(shù)據(jù)格式,二是分析變頻器返回的數(shù)據(jù),將其轉(zhuǎn)換成實際值,在人機界面上顯示出來。
計算機與變頻器之間的數(shù)據(jù)通訊執(zhí)行過程如圖7所示。
[align=center]

圖7 計算機與變頻器之間的數(shù)據(jù)通訊執(zhí)行過程[/align]
圖7中的三種數(shù)據(jù)具體的數(shù)據(jù)格式如下:

[注] ENQ、ACK、NAK、STX、ETX是控制代碼,分別表示通訊請求、未發(fā)現(xiàn)數(shù)據(jù)錯誤、發(fā)現(xiàn)數(shù)據(jù)錯誤、數(shù)據(jù)開始、數(shù)據(jù)結(jié)束,它們都對應(yīng)著特定的ASCII碼。
以寫入頻率為例,按照通訊請求數(shù)據(jù)的格式定義要發(fā)送的數(shù)組,依次發(fā)送ENQ,變頻器站號,設(shè)定頻率寫入的指令代碼,要寫入的頻率值,總和校驗。其中總和校驗不包括ENQ。注意,數(shù)據(jù)在計算機和變頻器之間使用ASCII 碼傳輸。
3.3 通訊程序
三菱變頻器與PC機通訊前必須在變頻器的初始化中設(shè)定通訊規(guī)格并復(fù)位變頻器,否則通訊不能進行。需要設(shè)定的通訊規(guī)格包括變頻器站號、通訊速率、字節(jié)長、停止位長、校驗方式、等待時間等。通訊規(guī)格的設(shè)定可通過寫入相應(yīng)的參數(shù)來實現(xiàn)。
本軟件用VB中的Mscomm控件完成對計算機串行端口的操作。Mscomm控件是VB中用于串口發(fā)送和接收數(shù)據(jù)的ActiveX控件,利用它可以方便地訪問串口。Mscomm控件有許多重要的屬性,表1中列出了本文編程時用到的幾個屬性。
[align=center]表1 MsComm控件的常用屬性

[/align]
通訊程序的流程圖如圖8所示。由于本文中軟件的主界面要實時顯示頻率和電流,需要每隔一段時間向變頻器發(fā)送讀頻率和讀電流的命令,所以發(fā)送其他控制指令如正轉(zhuǎn)、停止時,應(yīng)該先停止發(fā)送讀頻率和讀電流的指令,完成后再重新發(fā)送讀電流和讀頻率的命令,這是因為同時向串口發(fā)送幾個命令會發(fā)生錯誤。讀頻率指令和讀電流指令也不能同時發(fā)送,需要交替進行。另外,要注意每向變頻器發(fā)送一個命令后,及時取走輸入緩沖區(qū)中的返回碼,以免影響下一次讀取輸入緩沖區(qū)的正確性。
[align=center]

圖8 通訊程序的流程圖[/align]
通訊程序的部分源程序如下:
?、懦跏蓟诘某绦驗椋?
MSComm1.CommPort = 2 ‘打開Com2
MSComm1.Settings = "9600,n,8,1"
‘設(shè)置波特率為9600Kbps,無奇偶校驗,8位數(shù)據(jù)位,1位停止位。
MSComm1.PortOpen = True ‘打開串口
?、茖懭?yún)?shù),如設(shè)定頻率(以30Hz為例)寫入的程序為:
Dim outfrq(10) As Byte ‘定義要發(fā)送的數(shù)組
outfrq(0) = 5 ‘發(fā)送ENQ
outfrq(1) = 48
outfrq(2) = 49 ‘發(fā)送變頻器的站號
outfrq(3) = 69
outfrq(4) = 69 ‘發(fā)送設(shè)定頻率寫入的指令代碼
outfrq(5) = 48
outfrq(6) = 66
outfrq(7) = 66
outfrq(8) = 56 ‘發(fā)送要寫入的頻率值30Hz
outfrq(9) = 68
outfrq(10) = 55 ‘發(fā)送總和校驗碼
MSComm1.Output = outfrq ‘將通訊數(shù)據(jù)發(fā)送至串口
?、亲x出參數(shù),如讀取變頻器當(dāng)前頻率的程序為
Dim outf(6) As Byte ‘定義要發(fā)送的數(shù)組
outf(0) = 5 ‘發(fā)送ENQ
outf(1) = 48
outf(2) = 49 ‘發(fā)送變頻器的站號
outf(3) = 54
outf(4) = 70 ‘發(fā)送讀頻率的指令代碼
outf(5) = 68
outf(6) = 68 ‘發(fā)送總和校驗碼
MSComm1.Output = outf ‘發(fā)送至串口
Dim inf As Variant
inf = MSComm1.Input ‘讀輸入緩沖區(qū),取出返回數(shù)據(jù)
注意:發(fā)送讀頻率的命令后,要過一段時間再從輸入緩沖區(qū)內(nèi)讀取數(shù)據(jù),否則會發(fā)生錯誤。這段時間是等待時間與數(shù)據(jù)校驗時間之和。
4 結(jié)束語
本文介紹了一種軟件設(shè)計方法,通過計算機的串行端口及接口轉(zhuǎn)換電路來控制變頻器,利用VB編制監(jiān)控軟件,可以方便、直觀地控制變頻器的運行,監(jiān)視變頻器的運行狀態(tài),設(shè)置變頻器的參數(shù)并進行校驗。在此基礎(chǔ)上,還可以總結(jié)變頻器參數(shù)設(shè)置方面的規(guī)則,根據(jù)系統(tǒng)功能的要求,自動設(shè)置變頻器的工作參數(shù),實現(xiàn)變頻器應(yīng)用的“智能化”。
參考文獻:
[1] 三菱變頻調(diào)速器FR-E500使用手冊。
[2] 呂麗民。Visual Basic5.0入門與技巧。北京:人民郵電出版社,1998。
[3] 鄔寬明。單片機外圍器件實用手冊。北京:北京航空航天大學(xué)出版社,1998。
基于VB的計算機與三菱變頻器通訊及監(jiān)控軟件的設(shè)計