摘要:本文介紹了一種基于VB的計算機串口通信,實現(xiàn)上位機對臺達(dá)變頻器的通訊及對變頻器實時監(jiān)控的功能。
關(guān)鍵詞: 串行通信 變頻器 VB
一、 引言
在能源日益緊張的今天,變頻器作為交流調(diào)速的一種主要手段,以其很強的可靠性和抗干擾能力在工業(yè)生產(chǎn)中取得了越來越廣泛的應(yīng)用,其自身所帶的控制面板雖具有簡單、高效的特點,但卻過于專業(yè)化、操作不夠方便、直觀性能差以及僅能實現(xiàn)單機控制等缺點。通常使用上位機、PLC、變頻器構(gòu)成一套監(jiān)控系統(tǒng),PLC作為橋梁把變頻器與上位機聯(lián)系起來,向下控制變頻器,向上實現(xiàn)與上位機的數(shù)據(jù)交換。VFD-L型變頻器是臺達(dá)公司推出的一款新產(chǎn)品,提供了標(biāo)準(zhǔn)的工業(yè)RS-485通信接口和內(nèi)置協(xié)議,為計算機監(jiān)控管理提供了方便。本文將臺達(dá)VFD-L型變頻器直接與上位機相連,省去了PLC,降低了成本,便于實現(xiàn)分布式控制。通過VB的人機界面實現(xiàn)對變頻器的分布式網(wǎng)絡(luò)控制,應(yīng)用RS-485總線結(jié)構(gòu),可實現(xiàn)對多達(dá)32臺變頻器的控制。系統(tǒng)組成示意圖如下:
二、通信協(xié)議
VFD-L型交流馬達(dá)驅(qū)動器支持Modbus通信協(xié)議,該協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(如以太網(wǎng))和其它設(shè)備之間可以通信。
變頻器具有RS-485通信接口接線端子為“SG+”和“SG-”,定義如下:
SG+:信號正端,連接轉(zhuǎn)換接口的RS-485口引腳“3”
SG-:信號負(fù)端,連接轉(zhuǎn)換接口的RS-485口引腳“8”
對變頻器進(jìn)行串口通信時,必須預(yù)先設(shè)置好變頻器的功能參數(shù)。設(shè)置如下所示:
F2-00 d4 由RS-485通信界面輸入
F2-01 d3 由RS-485通信界面操作,鍵盤STOP鍵有效
F9-00 dn 通信地址為n,根據(jù)變頻器的站號設(shè)置n為1,2,3 ……要與上位機一致
F9-01 d1 波特率為9600位/秒
F9-04 d1 ASCII mode 7,E,1
Modbus協(xié)議有兩種傳輸模式:ASCII模式和RTU模式,用戶根據(jù)需要選擇模式,包括串口通信參數(shù),在配置每個控制器時,一個Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。本設(shè)計采用ASCII模式,在消息中的每個8Bit字節(jié)都作為兩個ASCII字符發(fā)送,這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達(dá)到1秒而不產(chǎn)生錯誤。消息幀格式如下表所示:
例如發(fā)送的字符串為:
:01 06 2000 0012 B7
:為起始位
01為變頻器站地址
06為功能碼,表示寫入字符至變頻器
2000為寫入地址
0012為命令碼,在此表示正轉(zhuǎn)啟動
B7為校驗位
結(jié)束符為回車換行
三、接口轉(zhuǎn)換
一般常用的PC機都有RS-232串行通信接口,但很少有RS-485串口(工控機除外)。為了與變頻器通信,可以添加RS-485串口模塊,但成本相對較高。為此,我們采用RS-232/ RS-485接口轉(zhuǎn)換器。
本設(shè)計中采用西門子公司的 RS-232/RS-485轉(zhuǎn)換器。一端可以直接插在計算機COM口上,另一端提供一個半雙工的RS-485接口,直接連接變頻器的接線端子。但是這種轉(zhuǎn)換器多為有源轉(zhuǎn)換電路,而變頻器的RS-485接口不提供電源,所以需要外接24V直流電源。如下圖:
這種RS-485控制對用戶是完全透明的,為RS-232串口編寫的程序可以直接用在這里,不必修改,使用非常方便。
四、通信程序開發(fā)
變頻器通信驅(qū)動軟件VB的通信控件MSCOMM,它是WINDOWS串行通信編程的ACTIVEX控件。常用的屬性為:
COMMPORT:通信端口號
INBUFFERCOUNT:輸入緩沖區(qū)
OUTBUFFERCOUNT:輸出緩沖區(qū)
PORTOPEN:端口開放和關(guān)閉
SETTINGS:設(shè)置波特率、數(shù)據(jù)位、奇偶性
編程時首先要對通信控件MSCOMM的屬性進(jìn)行初始化,為了與變頻器通信協(xié)議格式一致,要把VB通信控件MSCOMM的SETTINGS屬性設(shè)置為“9600,7,E,1”。人機界面如下圖:
根據(jù)實際需要,我們還可以增加其它監(jiān)控界面的內(nèi)容。
發(fā)送程序采用事件驅(qū)動的方式,利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件。部分程序如下:
OnComm 事件
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive ‘接收事件
News = MSComm1.Input ‘接收內(nèi)容
Case comEvSend‘發(fā)送事件
MSComm1.Output = News ‘發(fā)送內(nèi)容
End Select
End Sub
變頻器序號的選擇,把要監(jiān)控的變頻器的站號輸入到第二個文本框,范圍為1-32。
Private Sub Text2_Change()
MSComm1.CommPort = Val(Text2.Text) ‘設(shè)置變頻器站號
End Sub
要監(jiān)控某站變頻器輸出狀態(tài)時,在第二個文本框輸入被監(jiān)控的站號,要先發(fā)送一表示讀取的指令字符串,再按“接收”按鈕,輸出狀態(tài)的指令碼會顯示在第一個文本框。
Private Sub Receive_Click()
Text1.text = News ‘顯示接收頻率
End Sub
要改變變頻器頻率時,把要求頻率寫入第一個文本框并按“發(fā)送”按鈕。
Private Sub Send_Click()
News = Text1.text ‘待發(fā)送頻率
End Sub
正轉(zhuǎn)、反轉(zhuǎn)和停止發(fā)送的指令字符串分別為“:0n0620000012C7”、“:0n 0620000022C7”和“:0n0620000001D8”,n為被監(jiān)控變頻器的站號,值為1,2……32。
通信試驗:用接口轉(zhuǎn)換器連接好變頻器與上位機,按照要求設(shè)置變頻器參數(shù),啟動VB通信程序運行,在文本框輸入變頻器的站號及頻率,按“發(fā)送”,“正轉(zhuǎn)”,“反轉(zhuǎn)”及“停止”按鈕,查看變頻器控制面板的顯示和輸出狀態(tài)。選擇變頻器的站號,按“接收”按鈕,監(jiān)控變頻器的運行狀態(tài)。經(jīng)驗證,VB的界面顯示與變頻器的輸出狀態(tài)是一致的,所以本設(shè)計是可行的。
五、結(jié)束語
本文介紹了變頻器與上位機通信連接及程序的開發(fā),根據(jù)需要可以利用VB強大功能使變頻器按任意曲線輸出,實現(xiàn)對多個變頻器的分布式控制,解決了現(xiàn)場操作控制面板的不方便的問題,利用人機界面實現(xiàn)對變頻器的監(jiān)控管理。本設(shè)計可以廣泛應(yīng)用于機電一體化及自動控制的變頻調(diào)速系統(tǒng)中,通過上位機實現(xiàn)對現(xiàn)場的實時監(jiān)控。





