USS(Universal Serial Interface,通用串行通信接口)是西門子專為驅動裝置開發的一種基於串行總線傳輸數據的通信協議。可將變頻器與PLC或PC進行通信連接,並直觀地實現對驅動器的監控。
USS是一種主從結構協議,USS總線上只允許有一個主站和最多31個從站,且每個從站擁有唯一的站地址。其工作機制是由主站發起、輪詢訪問各個從站,從站接收到主站報文且本站被主站尋址時,才會做出響應。
USS協議的波特率最高可達115.2 kbps,通信字符格式為:1個起始位,8個數據位,1個偶校驗位和1個停止位。USS通訊的刷新週期與PLC的掃描週期是不同步的,通訊時間與通訊波特率、總線上變頻器的臺數以及掃描週期有關。
使用S7-1200/1500的USS程序塊,用戶無需詳細瞭解USS協議格式,通過簡單的調用,即可完成USS通訊,實現對驅動器的控制。
下面以一臺S7-1200PLC與兩臺SINAMICS變頻器的通訊為例,完成USS通訊控制。
一. 新建項目、硬件組態
1. 打開TIA Portal v14 SP1新建項目,添加CPU 1214C AD/DC/Rly。
2. 組態硬件:添加通信模塊_點到點_CM1241 (RS422/485),模塊操作模式選擇“半雙工(RS485)兩線制模式”,編譯保存硬件組態。
二. 通訊編程
1. USS_PORT端口組態
打開OB1主程序調用USS端口組態程序:
2. USS_DRV與驅動器交換數據
添加函數快FB1, 組態“塊接口”,關聯程序塊相關管腳:
調用USS_DRV程序塊,將生成的“USS_DRV_DB”關聯到“USS_PORT端口組態”的“USS_DB”管腳:
由於程序塊中輸入管腳“SPEED_SP”與輸出管腳“SPEED”所代表的頻率值均為最大頻率(P1082)百分比,這裡我在“USS_DRV”程序塊前後做了換算:
3. 新建PLC數據類型,重命名為“USS控制參數”,添加相關控制參數:
4. 添加函數快FB2,調用兩次FB1:
再次組態“塊接口”(本屬於個人習慣,將FB1嵌套調用,所需接口直接顯示在OB1,調試更清楚一些,多此一舉,可不做。 )
5. 添加全局DB,調用PLC數據類型“USS控制參數”2次(或N次):
6. OB1調用函數快FB2,填寫管腳地址:
7. 變頻器參數設置與電氣接線
1. 參數設置:
命令源選擇P700=5(COM鏈路的USS設置)
頻率源選擇P1000=5(通過COM鏈路的USS設定)
USS控制支持OFF2、OFF3兩種停機方式,當以OFF2自由停機時,變頻器禁止輸出,電動機慣性停機;當以OFF3快速停機時,電動機以P1135設定的減速時間減速到0Hz。
2. 西門子變頻器RS485通訊端口為控制端子的29#和30#;
三. 總結
我們做了1200PLC通過USS通訊對兩臺變頻器的控制,或者說31臺的控制。似乎是很簡單也很方便。整個過程完成,我們做了USS通訊,UDT,多重背景,FB塊嵌套......等等。
那麼,有沒有一種更簡單的方法來實現對31臺變頻器的USS控制呢?通過對USS程序塊的觀察發現,是不是有一個叫做“DRIVE”的管腳?它是定義從站地址的,那我們是不是可以不做UDT,不做多重背景,只調用一次“USS_DRV”,通過上位機改變“DRIVE”的值,即改變從站地址的方式,實現PLC對多臺變頻器的監控呢???……