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

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

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

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

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

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

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

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

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

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

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