摘 要:RS-485串行通信能夠保證快速、穩(wěn)定、遠距離地傳輸數(shù)據(jù),已經(jīng)越來越多地應用于工業(yè)控制。文中介紹了基于RS-485三墾變頻器與PC機串行通信的硬件特性、通信協(xié)議及軟件實現(xiàn)。實驗表明:該通信軟件性能穩(wěn)定、實用效果良好。
關鍵詞:串行通信; RS-485; 變頻器
[b][align=center]Implementation of Serial Communication between SANKEN
Inverter and PC Based on RS-485[/align][/b]
He Ankun Zhang Jingwu Chen Ming
Abstract:RS-485 serial communication ensure the transmission data quickly, steadily and further, which has been used to the industry control more and more.This paper introduce the hardware performance,communication protocol and software implementation of serial communication between SANKEN inverter and PC based on RS-485. Experiment display the software performance is steadily and real effect is good.
Keywords:serial communication;RS-485;inverter
1引言
目前,在我國現(xiàn)場控制總線中,RS-485使用最為普遍。RS-485 總線的共模輸出電壓在-7V 至+12V 之間,具有抑制共模干擾的能力,數(shù)據(jù)傳輸速率最大為10Mbit/s,當波特率為1200bps 時最大的傳輸距離理論上可達15 千米。RS-485網(wǎng)絡所具有的設備簡單、容易實現(xiàn)、傳輸距離遠、維護方便等優(yōu)點而被許多變頻器廠家所采用。文章分析了工業(yè)環(huán)境中串行通信選擇RS-485的原因,論述了基于RS-485 三墾變頻器與PC機串行通信的硬件特性,通信協(xié)議及軟件實現(xiàn),實驗表明該通信軟件穩(wěn)定可靠,能直觀的觀看變頻器的實際運行狀態(tài),并能比較方便的進行多組參數(shù)的設定和改寫。通過此軟件,極大的方便了工程師和客戶對變頻器的操控和掌握。
2 RS-232與RS-485的比較
常用的串行通信有兩種,一種為RS-232串行通信,一種為RS-485串行通信。由于串行通信使用方式簡便易用,工業(yè)控制領域大多都使用串行通信作為其數(shù)據(jù)交換的手段。但是工業(yè)設備的使用環(huán)境經(jīng)常比較惡劣,可能會存在噪聲或者電源諧波的干擾,RS-232在如此環(huán)境下抗干擾的能力遠不及RS-485,除此之外,RS-232只能是一對一控制,而RS-485則可以實現(xiàn)一對多控制;RS-232一般是9針公頭,而RS-485則是兩根線就可以控制。因此工業(yè)環(huán)境下的串行通信大多都采取RS-485串行通信方式。
3 三墾變頻器與PC的串行通信
3.1 軟硬件環(huán)境
硬件配置:PC(配備標準RS-232)一臺、RS-232/RS-485轉(zhuǎn)換卡一個、ISI通信卡一塊、Inverter 三臺(三墾變頻器ES-0.4KW、SPF-11KW、IPF-90KW)。
軟件包括:Windows XP操作系統(tǒng)、Microsoft Visual Basic 6.0中文版、三墾變頻器通信協(xié)議指導手冊等。
3.2 通信協(xié)議
三墾各個系列變頻器所提供的通信協(xié)議格式如下:
1、 指令格式:指令格式如圖1所示,各字段含義如表1。
2、指令的詳細解釋
圖1顯示了指令的格式,共25條指令,由操作碼(OP)決定,分別由A-Q及R、S、x、y、z、a、b、c組成。以指令C和N說明指令的詳細構(gòu)成,如表2。
表1 指令各字段含義
3、變頻器所進行的通信錯誤處理
變頻器如果從上位機接收到的指令中檢查出錯誤,將進行以下處理:
① 在奇偶錯誤、校驗和錯誤或指令代碼未定義時:
回傳的錯誤指令為指令代碼“?”。同時,DT項回傳一個字節(jié)的通信錯誤代碼。
② 在DT項的數(shù)據(jù)過長或不足,不能解釋數(shù)據(jù)內(nèi)容時:
如果接收指令的各個指令所定義的數(shù)據(jù)過長或不足、或者接收指令無法解釋時,其錯誤處理同①。
③ 超時處理:
接收開始代碼后,如果不能在150ms 以內(nèi)接收全部指令將進行超時處理,強制完成接收狀態(tài)。這時變頻器將返回通信錯誤代碼“d”。
④ 通信錯誤代碼分別為:“p”代表奇偶錯誤;“s”代表檢驗和錯誤;“u”代表未定義操作代碼;“d”代表數(shù)據(jù)過長、數(shù)據(jù)不足或者數(shù)據(jù)無法解釋。
⑤ 其它錯誤
有關接收計算機指令的錯誤,在上述情況以外,將進行超時處理,對計算機而言為“無應答”。
4、變頻器和計算機的指令發(fā)送接收方法
串行通信的基本程序是一臺計算機將指令發(fā)送給一臺變頻器,之后變頻器回傳應答給計算機。所以,變頻器在接收到了計算機發(fā)送出的指令后必須回傳應答。如果計算機在沒有得到應答時,仍連續(xù)發(fā)送多條指令則無法確保正常的工作。
由于變頻器異常或者通信線路異常,計算機可能無法接收到變頻器的應答。為了避免由于等待變頻器的應答而造成的通信程序鎖定,計算機將按照所設定的2 秒或更長以上的時間來執(zhí)行接收超時處理。
表2 指令詳細內(nèi)容舉例

3.3 串行通信的程序?qū)崿F(xiàn)
由于篇幅所限,這里僅介紹通信部分的實現(xiàn)代碼,主要包括:通信端口的定義,通信速率的設定,通信發(fā)送、通信接受、通信錯誤處理以及退出等。
主要代碼如下:
…
MSComm1.CommPort=1 ‘選擇1號通信端口
MSComm1.Settings="4800,o,8,1" ‘設定為4800bps,奇數(shù)、數(shù)據(jù)8位、停止1位
MSComm1.RThreshold=1 ‘Commm Evert 發(fā)生當接收到一個字符時
MSComm1.InputLen=0 ‘輸入緩沖數(shù)據(jù)清零?
MSComm1.PortOpen=True ‘通信端口打開?
Timer1.Interval=1000 ‘接收超時時間(ms)1秒
Tx=“*01C”? ‘設定向變頻器傳送的數(shù)據(jù)
TxLen=Len( Tx ) ‘ 得到傳送數(shù)據(jù)長度(校驗和與停止位除外)
Sum=0
For i=1 To TxLen
Sum=Sum+Asc(Mid(Tx, i, 1))
Next i
Sum=((0-Sum)And 127) Or 64
Tx=Tx+Chr(Sum)+vbCrLf ‘在傳送代碼上添加校驗和與停止位(CR+LF)
Timer1.Enabled=True ‘ 啟動接收超時檢出計數(shù)器
MSComm1.Output=Tx ‘向變頻器傳送數(shù)據(jù)
End Sub
Private Sub MSComm1_OnComm() ‘[通過Comm事件接收數(shù)據(jù)]
Dim Rx As String, RxLen As Integer,Sum As Integer
Dim Msg As String
If MSComm1.CommEvent<>comEvReceive Then Exit Sub ‘確認接收的數(shù)據(jù)是Comm事件
Do
Rx=Rx+MSComm1.Input ‘接收變頻器的數(shù)據(jù)
DoEvents
Loop Until Right(Rx,2)=(Chr(13)& Chr(10)) ‘找到停止位
Timer1.Enabled=False ‘取消超時定時器
RxLen=Len(Rx)-2 ‘接收數(shù)據(jù)字長(停止位除外)
Sum=0 ‘接收到的校驗和的計算
For i=1 To RxLen-1
Sum=Sum+Asc(Mid(Rx , i,1))
Next i
Sum=((0-Sum)And 127)Or 64
If Mid(Rx, RxLen, 1)=Chr(Sum) Then ‘校驗和的檢查
Msg=Left(Rx, RxLen) ‘ 接收數(shù)據(jù)(包括校驗和,不包括停止位)
Else
Msg=“Check Sum NG”? ‘校驗和錯誤顯示
End If
MsgBox “Received Data=” & Msg ‘顯示接收數(shù)據(jù)
MSComm1.PortOpen=False ‘[ 關閉通信端口]
End Sub
‘ 在變頻器的輸出頻率為2 0 H z 時,運行該程序,在信息框中將顯示“*01C02000@”
4 結(jié)論
文章首先對RS-232與RS-485進行了比較,然后介紹了基于RS-485三墾變頻器與上位機串行通信的實現(xiàn),實驗表明:利用VB編制的人機界面操作簡便,取得了良好的實用效果。利用RS-485協(xié)議進行串行通信,可以保證快速、穩(wěn)定遠距離地傳輸數(shù)據(jù)。在目前以及以后的工業(yè)控制和其他方面必將得到越來越多的應用。
參考文獻
[1].范逸之 陳立元.Visual basic 與RS-232串行通訊控制[M].清華大學出版社,2004-6.
[2].三菱電機株式會社.變頻器原理與引用教程[M].國防工業(yè)出版社,1998-9
[3].陽憲惠等.現(xiàn)場總線技術及其應用[M].清華大學出版社,2001-2
[4].王明衍 趙毅.一種基于RS-485接口的通信方法[J].微計算機信息.2006-2(1).P220-222
論文創(chuàng)新點:完成了三墾變頻器與PC機串行通信的設計,該通信軟件穩(wěn)定可靠,能直觀的觀看變頻器的實際運行狀態(tài),并能比較方便的進行多組參數(shù)的設定和改寫。通過此軟件,極大的方便了工程師和客戶對變頻器的操控和掌握。
作者簡介:
賀安坤:男, 1972年6月生,漢族,講師,碩士,研究方向:單片機與嵌入式系統(tǒng)開發(fā),計算機應用。Email: hak9000@sohu.com