USS通訊協(xié)議是西門子內(nèi)部的通訊協(xié)議,不對外公開,只能用來控制西門子的驅(qū)動器及控制器,利用西門子的USS協(xié)議,用西門子的S7-1200PLC控制G120變頻器,非常方便。
一、PLC組態(tài)
根據(jù)PLC設(shè)備正確組態(tài)PLC,可以直接讓博圖軟件獲取PLC的配置,快捷省事。我實驗室的PLC配置為1214DC/DC/DC、CM1241RS422/485、sm1221、sm1222、sm1234,如下圖。因為USS通訊利用了485通訊的物理鏈接,而1200PLC本身不帶485接口,要想進行USS通訊就必須添加通訊模塊或通訊板。
二、 G120參數(shù)設(shè)置
1、復(fù)位變頻器,變頻器可能被調(diào)試或修改了參數(shù),為了不受其他因素影響,每次調(diào)試最好先復(fù)位工廠設(shè)置。
2、通過宏配置G120變頻器為總線控制。
3、設(shè)置G120變頻器的其它參數(shù)。P2020=6,波特率設(shè)置為9600bps;P2021=3,地址為3;p2030=1,為USS總線協(xié)議,如果為2則是modbus總線協(xié)議。p2031=2,偶校驗。p2022=2,p2023=4,設(shè)置PZD=2、PKW=4 其它可以保持默認。
三、編寫1200PLC程序
1.USS通信接口參數(shù)功能塊的編程
USS通信接口參數(shù)功能塊的編程如下圖所示。

PORT功能塊用來處理USS網(wǎng)絡(luò)上的通信,它是S71200 CPU與變頻器的通信接口。每個CM1241 RS485模塊有且必須有一個USS_PORT功能塊。
PORT:指的是通過哪個通信模塊進行USS通信。
BAUD:指的是和變頻器進行通行的速率。變頻器的參數(shù)P2020進行設(shè)置。
USS_DB:指的是和變頻器通信時的USS數(shù)據(jù)塊。使用USS_DRV_DB數(shù)據(jù)塊。
STATUS:掃描或初始化的狀態(tài)。
2.USS_DRV功能塊的編程
USS_DRV功能塊的編程如下圖所示。

USS_DRV功能塊用來與變頻器進行交換數(shù)據(jù),從而讀取變頻器的狀態(tài)以及控制變頻器的運行。每個變頻器使用唯一的一個USS_DRV功能塊,但是同一個CM1241 RS485模塊的USS網(wǎng)絡(luò)的所有變頻器(最多16個)都使用同一個USS_DRV_DB。
USS_DRV_DB:指定變頻器進行USS通信的數(shù)據(jù)塊。
RUN:? ? ? ? 指定DB塊的變頻器啟動指令。
OFF2:? ? ? ?緊急停止,自由停車。該位為0時停車。
OFF3:? ? ? ?快速停車,帶制動停車。該位為0時停車。
F_ACK:? ? ? 變頻器故障確認。
DIR :? ? ? ?變頻器控制電機的轉(zhuǎn)向。
SPEED_SP:? ?變頻器的速度設(shè)定值。
ERROR:? ? ? 程序輸出錯誤。
RUN_EN:? ? ?變頻器運行狀態(tài)指示。
D_DIR:? ? ? 變頻器運行方向狀態(tài)指示。
INHIBIT:? ? 變頻器是否被禁止的狀態(tài)指示。
FAULT:? ? ? 變頻器故障。
SPEED:? ? ? 變頻器的反饋的實際速度值。
DRIVE:? ? ? 變頻器的USS站地址。變頻器參數(shù)P2030設(shè)置。
PZD_LEN:? ? 變頻器的循環(huán)過程字。變頻器參數(shù)P2022設(shè)置。
注意:變頻器的PKW的長度在這里是特殊需要注意的,在使用USS通信時必須是4,如果改成3或者127都將不能讀取反饋回來的過程值。
3.USS_RPM功能塊的編程
USS_RPM功能塊的編程 如下圖所示。

USS_RPM功能塊用于通過USS通信從變頻器讀取參數(shù)。
REQ:? ? ?讀取參數(shù)請求。
DRIVE:? ?變頻器的USS站地址。
PARAM:? ?變頻器的參數(shù)代碼。
INDEX:? ?變頻器的參數(shù)索引代碼
USS_DB:? 指定變頻器進行USS通信的數(shù)據(jù)塊。
DONE:? ? 讀取參數(shù)完成。
ERROR:? ?讀取參數(shù)錯誤。
STATUS:? 讀取參數(shù)狀態(tài)代碼。
VALUE:? ?所讀取的參數(shù)的值。
注意:進行讀取參數(shù)功能塊編程時,各個數(shù)據(jù)的數(shù)據(jù)類型一定要正確對應(yīng)。如果需要設(shè)置變量讀取參數(shù)時,注意該參數(shù)變量的初始值不能為0,否則容易產(chǎn)生通信錯誤。
4.USS_WPM功能塊的編程
USS_WPM功能塊的編程如下圖所示。

USS_WPM? ?功能塊用于通過USS通信設(shè)置變頻器的參數(shù)。
REQ:? ? ?讀取參數(shù)請求。
DRIVE:? ?變頻器的USS站地址。
PARAM:? ?變頻器的參數(shù)代碼。
INDEX:? ?變頻器的參數(shù)索引代碼。
EEPROM:? 把參數(shù)存儲到變頻器的EEPROM。
VALUE:? ?設(shè)置參數(shù)的值。
USS_DB:? 指定變頻器進行USS通信的數(shù)據(jù)塊。
DONE:? ? 讀取參數(shù)完成。
ERROR:? ?讀取參數(shù)錯誤狀態(tài)。
STATUS:? 讀取參數(shù)狀態(tài)代碼。
注意:對寫入?yún)?shù)功能塊編程時,各個數(shù)據(jù)的數(shù)據(jù)類型一定要正確對應(yīng)。如果需要設(shè)置變量進行寫入?yún)?shù)值時,注意該參數(shù)變量的初始值不能為0,否則容易產(chǎn)生通信錯誤。
5. S7 1200 PLC進行USS通信的調(diào)試
S7-1200 PLC 通過CM1241 RS485模塊與變頻器進行USS通信時,需要注意如下幾點:
當(dāng)同一個CM1241 RS485 模塊帶有多個(最多16個)USS變頻器時,這個時候通信的USS_DB是同一個,USS_DRV功能塊調(diào)用多次,每個USS_DRV功能塊調(diào)用時,相對應(yīng)的USS站地址與實際的變頻器要一致,而其它的控制參數(shù)也要一致。
當(dāng)同一個S7-1200 PLC 帶有多個CM1241 RS485模塊(最多3個)時,這個時候通信的USS_DB相對應(yīng)的是3個,每個CM1241 RS485模塊的USS網(wǎng)絡(luò)使用相同的USS_DB,不同的USS網(wǎng)絡(luò)使用不同的USS_DB。
當(dāng)對變頻器的參數(shù)進行讀寫操作時,注意不能同時進行USS_RPM和USS_WPM的操作,并且同一時間只能進行一個參數(shù)的讀或者寫操作,而不能進行多個參數(shù)的讀或者寫操作。