1 引言
計算機及通訊技術已成為工業環境中大部分解決方案的核心部分,其在系統中的比重正在迅速增加。在工業控制中,交流電機的拖動越來越多的采用變頻器完成,不僅作為一個單獨的執行機構,而是隨著不斷的智能化,同遠程計算機之間可以通過各種通訊方式結合成一個有機的整體。在實際工程實施時,變頻器的啟動、停止、方向、告警、故障指示以及故障復位等控制通常為端子排開關信號控制方式,速度控制采用模擬量給定值控制方式來完成。由于變頻器的輸出端會產生強烈的干擾信號,控制器有時會造成誤動作的情況。當控制距離遙遠時,還存在敷線工程量過大的問題。隨著現場總線的底層控制網絡的發展,變頻器生產廠家推出了具有數據通信功能的產品,采用RS-485通信接口用于系統配置和監控是一種低成本的連接方案。
2 西門子變頻器的USS控制協議
2.1 USS協議的特點
USS是西門子公司為變頻器開發的通信協議,可以支持變頻器同PC或PLC之間建立通信連接,常適合于規模較小的自動化系統。它以主從方式構成工業監控網站,在網絡內有一個主站,1~31個從站,各站點有唯一的標識碼識別。
這種結構的特點是:用單一的、完全集成的系統來解決自動化問題。所有的西門子變頻器都可以采用USS協議作為通信鏈路。數字化的信息傳遞,提高了系統的自動化水平及運行的可靠性,解決了模擬信號傳輸所引起的干擾及漂移問題。通信介質采用RS-485屏蔽雙絞線,最遠可達1000m,因此可有效地減少電纜的數量,從而可以大大減少開發和工程費用,并極大地降低客戶的啟動和維護成本;通信效率較高,可達187.5kbit/s。對于有10個調速器,每個調速器有6個過程數據需刷新的系統,PLC的典型掃描周期為幾百毫秒,采用與PROFIBUS相似的操作模式,總線結構為單位站、主從存取方式,報文結構具有參數數據與過程數據,前者用于改變調速器的參數,后者用于快速刷新調速器的過程數據,如啟動停止、速度給定、力矩給定等。具有極高的快速性和可靠性。利用西門子變頻器的主機上提供的USS接口,僅在終端機中插入一RS-485通信板,就可實現變頻器的全部遠程控制。
2.2 USS協議的通信數據格式
USS協議的通信字符格式為一位起始位、一位停止位、一位偶校驗位和八位數據位。數據報文最大長度位256個字節,包括3字節的頭部、1字節的校驗碼和主數據塊,數據塊按照字的方式組織,高字節在前。通信數據報文格式如表1所示。
表1 USS協議的通信數據報文格式
表中:STX—起始字符,為02Hex;LGE—報文長度,為n+2,3≤n≤254;ADR—從站地址碼,其中bit0~bit4表示從站地址,bit5為1表示廣播發送,bit6為1表示鏡像發送,用于網絡測試,bit7為1表示特殊報文;BCC—校驗字符,為從STX開始所有字節的異或和。
在一幀內完成過程控制數據的同時,可以通過指定參數號完成設備控制參數的讀寫。數據快由參數值域(PKW)和過程數據域(PZD)組成,二者均為變長數據,其格式如表2所示。
表2 數據快的格式
表中:PKW域—參數值域,由參數識別碼、子參數號和參數值構成,參數個數可根據設備的定義值最大可有124個字;PZD域—過程控制數據域,包括控制字/狀態字,設定值/實際值,最多16個字;PKE參數識別碼;IND用來指定某些數組型設備參數的子參數號。
對于SIEMENS的MMV/MDV變頻器,協議有所簡化:
IND固定為0;PKW為3字格式,即只有PWE1;PZD域的PZD1是控制字/狀態字,用來設置和監測變頻器的工作狀態;PZD域的PZD2設定頻率。
3 PLC控制變頻器的程序設計
PLC通訊程序采用子程序方式編制,主控程序對變頻器的控制通過調用有關子程序發送命令完成。數據接受由后臺中斷程序完成。發送命令子程序將變頻器目標速度值和命令參數加工為USS協議格式,發送出去,并設置發送標志,復位接受完成標志,并開允許接受中斷和定時中斷。
當變頻器發送響應報文時,激活后臺中斷程序接受變頻器的狀態值和當前速度值,存入接受緩沖區,并復位發送標志,設置接受完成標志。
3.1 主控程序
按照采樣時間間隔,主控程序根據發送標志和接受完成標志,檢查變頻器接受緩沖區內容,并進行相應的處理。通訊程序由通信口初始化、運行、停止、速度設定等5個子程序和一系列中斷服務子程序構成,主控程序的流程如圖1所示。
圖1 主控程序流程
3.2 通訊子程序
通訊子程序如下:
SBR0
//通訊初始化程序
MOVB 16#49,SMB30
//初始化P0為9600kb,8bit,偶校驗
MOVB 14,“P0-ST-LEN”
//設置發送緩沖區,發送字符數
MOVB 16#2,“P0-ST-STX” //STX
MOVB 12,“P0-ST-LGE” //LGE
MOVB 0,“P0-ST-ADR” //主站地址
MOVB 255,“TO”
ENI
ATCH 4,25
ATCH 6,11
RET
SBR2
//電機啟動子程序
MOVB BPADR,,“P0-ST-ADR”
//取主控緩沖區的從機地址
MOVW 16#0C7F,“P0-ST-PZD0”
//設定停止電機啟動、正轉
CALL “Send-BP”
//調用發送程序
RET
SBR 4
//設定電機速度電機運行子程序
MOVB“BPADR”,“P0-ST-ADRS”
//取主控緩沖區的從機地址
MOVW 16#0C7F,“P0-ST-PZD0”
//設定電機啟動、正轉
MOVW “BIT/SP”,“P0-ST-PZD1”
//取主控緩沖區的速度值
LDW>=“P0-ST-PZD1”,16#4000
//判斷是否超過最大速度
MOVW 16#4000,“P0-ST-PZD1”
CALL “Send-BP”
//調用發送程序
RET
SBR5
//發送程序Send-BP
MOVD &VB3500,ACO
//計算BCC
MOVB 14,AC1
//循環計算BCC,存入“P0-ST-BCCS”置位重發次數計數器
XMT “P0-ST-LEN”,0
//發送
ATCH 0,9
//發送結束中斷的中斷服務程序號
MOVB 100,“h”
//定時時間100ms
ATCH 1,10
//定時中斷處理,未接受倒數據,重發數據
RET
3.3 中斷接收子程序
中斷接收子程序由一系列服務程序組成,包括3種情況。
(1) 判斷中斷接收的起始3個字符是否為制定字符,是將接收中斷指針指向下一個中斷程序,復位定時器,同時異或計算BCC值;否則將關閉接收中斷,等待定時中斷進行錯誤處理。
(2) 對于數據塊的接收,采用計數方式控制,當計數為零時,計算的BCC值應為0,否則關閉接收中斷。
(3) 定時中斷激活時表示接收超時,重發次數值減1,如果不為0,則自動將發送緩沖區的內容重新發送;為0,置位錯誤標志。
4 結束語
在變頻拖動工程應用中,傳統的方法是采用開關量和模擬量信號對變頻器進行控制,信號容易受到干擾,出現控制上的錯誤。采用基于RS-485接口的USS通信協議對變頻器進行控制的方法,大大 減少了系統布線,可以避免現場可能的各種電磁干擾對控制設備的影響,有效地提高系統的抗干擾能力。