1、開發背景
隨著自動化程度日益提高,對單臺變頻器的控制在許多場合已經不能滿足生產的要求,必須對多臺變頻器進行協調控制,因此變頻調速技術也逐漸朝著網絡化的方向發展。為適應這一發展方向的需要,各大公司相繼推出了帶有標準通訊接口的通用變頻器,為用戶設計滿足工業現場需求的控制系統帶來了極大的方便。但是只有極少數公司的變頻器支持標準的通信協議<例如:PROFIBUC、 CANBUS 等),實際控制系統有時會要求與不支持標準通信協議的變頻器通信,普通的PLC 也不具備與第三方產品通信的能力,造成系統集成的巨大困難。讓開發人員從底層開發通信協議是一項復雜且工作量相當大的工作,而且系統的可靠性也難以得到保證。基于上述問題,貝加萊2005系列 PCC(可編程計算機控制器)產品除了支持標準的通信協議之外, 還向用戶提供了用于與第三方產品通信的協議開發工具---幀驅動器,用戶只需要了解第三方產品的通信協議細節<包括信息幀格式的組成等>,并用幀驅動器寫出與第三方產品通信協議一樣的通信規約,就可方便地實現PCC與第三方產品之間的通信。
本文利用PCC的幀驅動器,成功地實現了PCC 對多臺變頻器的網絡控制,并且PCC 可以作為上層網絡的一個節點,以實現全廠的網絡化和自動化。Driveframe 是一個運行在PLC 里面的函數庫,系統的串行通信程序是用B&R Automation StudioTM下的Automation Basic來開發的,作為完整的任務模塊可以添加到任何其它復雜項目中,不僅能提高系統的可靠性,而且可以提高代碼的可重用性,縮短項目的開發周期,使項目開發人員能夠方便進行系統集成。為了擴大串行通信的有效傳輸距離,提高通信傳輸速率,增強抗干擾能力,采用RS-422/485 串行總線通信標準。
2、系統的總體設計
變頻器采用西門子的Micro Master變頻器,PCC采用貝加萊的B&R2003。PCC 通過RS-485網絡與多個變頻器相連接,最多可達32 臺,波特率為10Mb/s時,通信距離為15m;波特率為100Kb/s 時,通信距離可達1200m。每臺變頻器被賦予各自獨立的地址碼用以識別身份,這樣,PCC 便能通過RS-485接口,對掛在總線的所有變頻器進行控制操作。
3、利用PCC控制變頻器
3.1變頻器的串行通訊協議
西門子Micro Master 變頻器在遠程通訊時,遵循西門子的USS 通信協議。USS 通信協議由一個雙向信息表組成;接受來自遠程主機發送的控制信息,并反饋信息給主機作為已接收信息后的應答。其報文結構包含了參數數據和過程數據,前者用于改變變頻器的參數,后者用于快速刷新變頻器的過程數據,如啟動停止、速度給定、力矩給定等。USS 協議的數據報文由14 個字節組成。每個字節采用2 位16 進制數的形式,遵循UART 格式:1 個起始位,8 個數據位,1 個偶校驗位和1個停止位。變頻器接收數據的通信協議如下:

STX 為起始字符,02H;LGE為發送字節數, 對于Micro Master為0CH(12)個字節;ADR 為變頻器的地址碼,取值范圍為0~31 (bit0-4位),bit5 為1 時為廣播發送;PKE 為16 位的字,用來控制變頻器的運行參數設置。各bit 的含義如下:

對于Micro Master 變頻器,控制位為0001 時,讀變頻器的參數,控制位為0010 時,寫參數到變頻器的RAM和EEPROM,Bit11未用,置為0:IND為16 位的字,未用,置為0:VAL為16位的變頻器參數值,與PKE 一起將運行參數寫入到變頻器中;STW 為16位的字,用來控制變頻器的運行動作;HSW 為16 位的字, 用來控制變頻器的輸出頻率, 滿頻時的值為16384(4000H)對應100%的輸出頻率,最大值為32767(8000H)對應200%的輸出頻率,當取值為:32768~65535 時,表示反向的輸出頻率從0~200%變化,電機反轉;BCC 為校驗字節,是前面所有字節的異或和。
同時,變頻器也向PCC 回送數據報文,其通信協議如下:

與PCC向變頻器發送的數據報文相比,變頻器回送的數據報文只是以ZSW 代替了STW,HIW 代替了HSW,其余字節的含義是一樣的。ZSW 是16 位的狀態字,用來表示變頻器的當前運行狀態;HIW 也是16 位的字,代表變頻器的輸出頻率,其意義與HSW 是一樣的。
3.2 PCC 幀驅動器的配置
PCC 是貝加萊公司于1994 年推出的新一代硬件平臺,它是集計算機技術、通訊技術和控制技術(3C技術)于一體的新型控制裝置。PCC 的一個顯著特點是其具有強大的網絡通信能力,除了標準的網絡通信協議外,通過幀驅動器可以很容易地制作任意第三家的串行通信協議。利用幀驅動器編寫串行通信程序比傳統的通信編程方法要容易得多, 它的命令包括如下。FRM-xopen:初始化接口,為幀驅動器分配緩存,安裝相關的中斷處理程序。FRN-read:讀數據并將其放在讀緩存區。FRM-RBUF:釋放讀緩存區。FRM-GBUF:申請寫緩存區。FRM-WRITE:將數據寫入寫緩存區。FRM-ROBUF:釋放寫緩存區。FRM-CLOSE:接口通信結束。FRM-ctrl:接口控制。串口在使用前必須初始化,設置串口操作所需要的參數, 這樣在程序初始化部分需要使用FRM-xopen(enable,adr(device),adr(mode),adr(config),status,ident)函數來初始化串口。參數mode, 是用來定義接口參數的字符串地址,其字符串格式為:
"[(TYPE)],[(BAUD)],[(PARITY)],[(DATABIT)],[(STOPBIT)],[(OPTION)]"TYPE為通信接口的類型,BAUD為波特率,PARITY 為校驗類型,DATABIT為數據位個數,STOPBIT為停止位個數,OPTION 為可定義硬件握手。
3.3 程序實現
PCC的軟件可分為系統軟件和應用軟件兩大類。PCC 的操作系統是系統軟件的核心,是一個分時多任務的操作系統。一個完整的復雜項目可分成多個獨立的任務來完成,每個任務都是獨立的程序,有各自的循環時間,可以完成各種不同的功能,真正實現了軟件的模塊化設計。此外PCC 還提供了大量系統模塊和應用函數,系統模塊可以在需要的時候方便地加載至操作系統中,應用函數可以根據用戶及應用程序的需要,模塊式地添加到PCC 的軟件系統中。應用軟件是指用戶的應用程序。PCC以PC機作為在線編程開發工具,其編程語言不僅可以采用常規PLC的梯形圖(LAD)和指令表(STL),而且還可采用面向控制的結構化高級語言(例如B&R Automation Basic 、C語言)。
本系統采用B&R Automation Basic 作為編程語言,系統采用2 個任務層來完成通信功能。負責通信的任務(任務1)工作在標準任務層TC#4,掃描周期為100ms;負責循環設置各變頻器參數和頻率的任務(任務2)工作在標準任務層TC#1,掃描周期為10ms,優先級高于任務1。在運行程序之前,須將模塊"dvframe.br"下載到CC,以實現對幀驅動器的管理。
3.3.1 初始化接口
串口初始化程序必須放在程序的初始化部分,即僅在首次掃描時運行初始化程序。本例設置串口參數為:RS-485 接口,波特率9600b/s,1 個偶校驗位,8 個數據位,1 個停止位。設置
如下:(* initprogram*) myconfig.ldle=2;最大字節間隔時間;設置串口初始化參數FRM-xopen(1, "SS2.IF2", "RS485,9600,E,8,1",adr(my-config),status,ident)enable=1
3.3.2 向變頻器寫數據
串口初始化成功后,就可以通過幀驅動器的寫命令向串口寫數據,以實現對變頻器的控制和監測。程序如下:
If(status=0)and(enable=1)then:// 串口初始化成功
FRM-gbuf(enable,ident,g-stst,buffer,buflng)://獲得寫緩沖區
If(g-stat=0)then enable="0" write="1":// 允許寫操作
endif endif outbufaccessbuffer:// 獲得指向寫緩沖區的指針;向寫緩沖區寫數據,其中(ADR~HSW1)為全局變量
outbuf[0]=$02:// 起始字符
outbuf[1]=$0c://數據長度字符outbuf[2]=ADR:// 變頻器地址outbuf[3]=PKEh:// 變頻器參數
outbuf[4]=PKElotbuf[5]=$00outbuf[6]= $00outbuf[7]=VALh]:// 變頻器參數值outbuf[8] =VALloutbuf[9] =STWh:// 變頻器運行參數
outbuf[10] =STWloutbuf[11] =HSWh:// 變頻器輸出頻率
outbuf[12]=HSWl://計算效驗和
bcc=02 loop j="1" 12 do
bcc=bcc×oroutbuf[j]loopoutbuf[13] =bccoing=14:// 定義寫緩沖區的長度
if(write=1)then FRM-write(1,ident,adr(outbul),olng,w-stat) ://向串口寫數據
write=0
if(w-stat<>0)then FRM-write(1,ident,adr(outbul),olng,rostat):// 釋放寫緩沖區
endif
endif
3.3.3從變頻器讀數據
由于USS 通信協議由一個雙向信息表組成,在向變頻器寫完數據后,須通過幀驅動器的讀指令來讀取變頻器的返回報文。程序如下:
FRM-read(1,ident,r-stat,r-buf,rbuflng)://從串口讀數據
If(r-stat=0)then memcpy(adr(mybuf),r-buf,rbuflng)://保存讀緩沖區中的數據FRM-rbuf(1,ident,r-buf,rbuflng,rbstat)://釋放讀緩沖區
4 結束語
本文利用PCC的幀驅動器和Micro Master 變頻器的串行通信功能,實現了PCC對多臺變頻器的網絡控制,并能實時監測各變頻器的運行狀態,從根本上增強了系統可靠性,提高了生產效益。采用B&R Automation Basic 開發的串行通信程序,并在實踐中取得良好的運行效果。該程序具有通用性,針對不同的通信協議,只需做簡單的修改,就可以模塊式地添加到其它復雜項目中,既可提高系統的可靠性,又可縮短項目的開發周期。將該方法與新型控制理論相結合,可實現高精度的同步傳動和多電機協調控制。
參考文獻
1 齊榮,等新一代可編程計算機控制器技術[M].西北工業大學出版社,2000
2 劉計訊,現代可編程計算機控制PCC 及其應用[J].集成電路應用,2000(3):68~69