西門(mén)子s7-1200 緊湊型在當(dāng)前的市場(chǎng)中有著廣泛的應(yīng)用,作為經(jīng)常與sinamics g120系列共同使用的plc,其uss通信協(xié)議的使用一直在市場(chǎng)上有著非常廣泛的應(yīng)用。本文將主要介紹如何使用uss通信協(xié)議來(lái)實(shí)現(xiàn)s7-1200與g120變頻器的通信。
1.控制系統(tǒng)原理和接線圖
下圖是本例中所使用的原理和接線圖。

圖1:控制系統(tǒng)原理和接線圖
2.硬件需求
s7-1200 plc目前有3種類(lèi)型的cpu:
1)s7-1211c cpu。
2)s7-1212c cpu。
3)s7-1214c cpu。
這三種類(lèi)型的cpu都可以使用uss通信協(xié)議通過(guò)通信模塊cm1241 rs485來(lái)實(shí)現(xiàn)s7-1200與g120變頻器的通信。
本例中使用的plc硬件為:
1)pm1207( 6ep1 332-1sh71 )
2) s7-1214c ( 6es7 214 -1be30 -0xb0 )
3) cm1241 rs485 ( 6es7 241 -1ch30 -0xb0 )
4) 模擬器 ( 6es7 274 -1xh30 -0xa0 )
本例中使用的g120變頻器硬件為:
1) sinamics g120 pm240 (6sl3244-0ba20-1ba0)
2) sinamics g120 cu240s(6sl3224-0be13-7ua0)
3) siemens motor (1la7060-4ab10)
4) 操作面板 ( xau221-001469)
5) uss 通信電纜 ( 6xv1830-0eh10)
3.軟件需求
1) 編程軟件 step7 basic v10.5 ( 6es7 822-0aa0-0ya0)
4.組態(tài)
我們通過(guò)下述的實(shí)際操作來(lái)介紹如何在step7 basic v10.5 中組態(tài)s7-1214c 和g120變頻器的uss通信。
4. 1 plc 硬件組態(tài)
首先在step7 basic v10.5中建立一個(gè)項(xiàng)目,如圖1所示。

圖2: 新建s7 1200項(xiàng)目
在硬件配置中,添加cpu1214c和通信模塊cm1241 rs485模塊,如圖2所示。

圖3: s7 1200硬件配置
在cpu的屬性中,設(shè)置以太網(wǎng)的ip地址,建立pg與plc的連接,如下圖所示。

圖4: s7 1200 ip地址的設(shè)置
4. 2 g120參數(shù)設(shè)置
變頻器的參數(shù)設(shè)置如下表所示。
| 序號(hào) | 功能 | 參數(shù) | 設(shè)定值 |
| 1 | 工廠設(shè)置復(fù)位 | p0010 | 30 |
| 2 | 工廠設(shè)置復(fù)位 | p970 | 1 |
| 3 | 快速啟動(dòng)設(shè)置 | p0010 | 1 |
| 4 | 電機(jī)額定電壓 | p0304 | 380v |
| 5 | 電機(jī)額定功率 | p0307 | 5.5kw |
| 6 | 電機(jī)額定頻率 | p0310 | 50hz |
| 7 | 電機(jī)額定轉(zhuǎn)速 | p0311 | 1350r/min |
| 8 | uss命令源 | p0700 | 5 |
| 9 | 頻率設(shè)定源 | p01000 | 5 |
| 10 | 最小電機(jī)頻率 | p1080 | 0.0hz |
| 11 | 最大電機(jī)頻率 | p1081 | 50.0hz |
| 12 | 啟動(dòng)斜坡時(shí)間 | p1120 | 10.0s |
| 13 | 延遲斜坡時(shí)間 | p1121 | 10.0s |
| 14 | 結(jié)束快速啟動(dòng)設(shè)置 | p3900 | 1 |
| 15 | 激活專(zhuān)家模式 | p0003 | 3 |
| 16 | 參考頻率 | p2000 | 50.0hz |
| 17 | uss數(shù)據(jù)傳輸速度 | p2010 | 9 |
| 18 | uss從站地址 | p2011 | 1 |
| 19 | uss pzd長(zhǎng)度 | p2012 | 2 |
| 20 | uss pkw長(zhǎng)度 | p2013 | 4 |
| 21 | 通信監(jiān)控 | p2014 | 0 |
| 22 | 在e2prom 保存數(shù)據(jù) | p0971 | 1 |
| 23 | 激活專(zhuān)家模式 | p0003 | 3 |
| 24 | 激活參數(shù)模式 | p0010 | 30 |
| 25 | 從g120中傳輸參數(shù)到bop | p0802 | 1 |
表1 :g120變頻器的參數(shù)設(shè)置
注意:表1中的17,18,19,20 這四項(xiàng)參數(shù)值的設(shè)置必須使plc的參數(shù)值與變頻器的參數(shù)值相一致。而19,20這兩個(gè)參數(shù)值必須設(shè)置成如表1中的值,否則有可能變頻器與s7-1200通信有如下問(wèn)題:可能不能讀出從變頻器反饋回來(lái)的參數(shù)值。
5.uss通信原理與編程的實(shí)現(xiàn)
5. 1 s7 1200 plc與g120 通過(guò)uss通信的基本原理
s7 1200提供了專(zhuān)用的uss庫(kù)進(jìn)行uss通信,如下圖所示:

圖5: s7 1200 專(zhuān)用的uss庫(kù)
uss_drv 功能塊是s7-1200 uss通信的主體功能塊,接受變頻器的信息和控制變頻器的指令都是通過(guò)這個(gè)功能快來(lái)完成的。必須在主 ob中調(diào)用,不能在循環(huán)中斷ob中調(diào)用。
uss_port功能塊是s7-1200與變頻器uss通信的接口,主要設(shè)置通信的接口參數(shù)??稍谥鱫b或中斷ob中調(diào)用。
uss_rpm功能塊是通過(guò)uss通信讀取變頻器的參數(shù)。必須在主 ob中調(diào)用,不能在循環(huán)中斷ob中調(diào)用。
uss_wpm功能塊是通過(guò)uss通信設(shè)置變頻器的參數(shù)。必須在主 ob中調(diào)用,不能在循環(huán)中斷ob中調(diào)用。
這些專(zhuān)用功能塊與變頻器之間的控制關(guān)系如下圖所示:

圖6: uss 通信功能塊與變頻器的控制關(guān)系
uss_drv功能塊通過(guò)uss_drv_db數(shù)據(jù)塊實(shí)現(xiàn)與uss_port功能塊的數(shù)據(jù)接收與傳送,而uss_port功能塊是s7-1200 plc cm1241 rs485模塊與變頻器之間的通信接口。uss_rpm功能塊和uss_wpm功能塊與變頻器的通信與uss_drv功能塊的通信方式是相同的。
每個(gè)s7-1200 cpu最多可帶3個(gè)通信模塊,而每個(gè)cm1241 rs485通信模塊最多支持16個(gè)變頻器。因此用戶(hù)在一個(gè)s7-1200 cpu中最多可建立3個(gè)uss網(wǎng)絡(luò),而每個(gè)uss網(wǎng)絡(luò)最多支持16個(gè)變頻器,總共最多支持48個(gè)uss變頻器。
5. 2 s7 1200 plc進(jìn)行uss通信的編程
1.uss通信接口參數(shù)功能塊的編程
uss通信接口參數(shù)功能塊的編程如下圖所示。

圖7: uss通信接口參數(shù)功能塊的編程
uss_port功能塊用來(lái)處理uss網(wǎng)絡(luò)上的通信,它是s71200 cpu與變頻器的通信借口。每個(gè)cm1241 rs485模塊有且必須有一個(gè)uss_port功能塊。
port:指的是通過(guò)哪個(gè)通信模塊進(jìn)行uss通信。
baud:指的是和變頻器進(jìn)行通行的速率。 變頻器的參數(shù)p2010種進(jìn)行設(shè)置。
uss_db:指的是和變頻器通信時(shí)的uss數(shù)據(jù)塊。每個(gè)通信模塊最多可以有16個(gè)uss數(shù)據(jù)塊,每個(gè)cpu最多可以有48個(gè)uss數(shù)據(jù)塊,具體的通信情況要和現(xiàn)場(chǎng)實(shí)際情況相聯(lián)系。每個(gè)變頻器與s7-1200進(jìn)行通信的數(shù)據(jù)塊是唯一的。
error:輸出錯(cuò)誤。
status:掃描或初始化的狀態(tài)。
s7-1200 plc與變頻器的通信是與它本身的掃描周期不同步的,在完成一次與變頻器的通信事件之前,s7-1200通常完成了多個(gè)掃描。
uss_port通信的時(shí)間間隔是s7-1200與變頻器通信所需要的時(shí)間,不同的通信波特率對(duì)應(yīng)的不同的uss_port通信間隔時(shí)間。下圖列出了不同的波特率對(duì)應(yīng)的uss_port最小通信間隔時(shí)間。

圖8:不同的波特率對(duì)應(yīng)的uss_port最小通信間隔時(shí)間
uss_port在發(fā)生通信錯(cuò)誤時(shí),通常進(jìn)行3次嘗試來(lái)完成通信事件,那么s7-1200與變頻器通信的時(shí)間就是uss_port發(fā)生通信超時(shí)的時(shí)間間隔。例如:如果通信波特率是57600,那么uss_port與變頻器通信的時(shí)間間隔應(yīng)當(dāng)大于最小的調(diào)用時(shí)間間隔,即大于36.1ms而小于109ms。s7-1200 uss 協(xié)議庫(kù)默認(rèn)的通信錯(cuò)誤超時(shí)嘗試次數(shù)是2次。
基于以上的uss_port通信時(shí)間的處理,我們建議在循環(huán)中斷ob塊中調(diào)用uss_port通信功能塊。在建立循環(huán)中斷ob塊時(shí),我們可以設(shè)置循環(huán)中斷ob塊的掃描時(shí)間,以滿(mǎn)足通信的要求。循環(huán)中斷ob塊的掃描時(shí)間的設(shè)置如下圖所示:

圖9:循環(huán)中斷ob塊的掃描時(shí)間的設(shè)置
2.uss_drv功能塊的編程
uss_drv功能塊的編程如下圖所示。

圖10: uss_drv功能塊的編程
uss_drv功能塊用來(lái)與變頻器進(jìn)行交換數(shù)據(jù),從而讀取變頻器的狀態(tài)以及控制變頻器的運(yùn)行。每個(gè)變頻器使用唯一的一個(gè)uss_drv功能塊,但是同一個(gè)cm1241 rs485模塊的uss網(wǎng)絡(luò)的所有變頻器(最多16個(gè))都使用同一個(gè)uss_drv_db。
uss_drv_db:指定變頻器進(jìn)行uss通信的數(shù)據(jù)塊。
run: 指定db塊的變頻器啟動(dòng)指令。
off2: 緊急停止,自由停車(chē)。 該位為0時(shí)停車(chē)。
off3: 快速停車(chē),帶制動(dòng)停車(chē)。 該位為0時(shí)停車(chē)。
f_ack: 變頻器故障確認(rèn)。
dir: 變頻器控制電機(jī)的轉(zhuǎn)向。
speed_sp: 變頻器的速度設(shè)定值。
error: 程序輸出錯(cuò)誤。
run_en: 變頻器運(yùn)行狀態(tài)指示。
d_dir: 變頻器運(yùn)行方向狀態(tài)指示。
inhibit: 變頻器是否被禁止的狀態(tài)指示。
fault: 變頻器故障。
speed: 變頻器的反饋的實(shí)際速度值。
drive: 變頻器的uss站地址。變頻器參數(shù)p2011設(shè)置。
pzd_len: 變頻器的循環(huán)過(guò)程字。 變頻器參數(shù)p2012設(shè)置。
注意:變頻器的pkw的長(zhǎng)度在這里是特殊需要注意的,在使用uss通信時(shí)必須是4,如果改成3或者127都將不能讀取反饋回來(lái)的過(guò)程值。
3.uss_rpm功能塊的編程
uss_rpm功能塊的編程 如下圖所示。

圖11:uss_rpm功能塊的編程
uss_rpm功能塊用于通過(guò)uss通信從變頻器讀取參數(shù)。
req: 讀取參數(shù)請(qǐng)求。
drive: 變頻器的uss站地址。
bbbbb: 變頻器的參數(shù)代碼。
index: 變頻器的參數(shù)索引代碼
uss_db: 指定變頻器進(jìn)行uss通信的數(shù)據(jù)塊。
done: 讀取參數(shù)完成。
error: 讀取參數(shù)錯(cuò)誤。
status: 讀取參數(shù)狀態(tài)代碼。
value: 所讀取的參數(shù)的值。
注意:進(jìn)行讀取參數(shù)功能塊編程時(shí),各個(gè)數(shù)據(jù)的數(shù)據(jù)類(lèi)型一定要正確對(duì)應(yīng)。如果需要設(shè)置變量讀取參數(shù)時(shí),注意該參數(shù)變量的初始值不能為0,否則容易產(chǎn)生通信錯(cuò)誤。
4.uss_wpm功能塊的編程
uss_wpm功能塊的編程如下圖所示。

圖12:uss_wpm功能塊的編程
uss_wpm 功能塊用于通過(guò)uss通信設(shè)置變頻器的參數(shù)。
req: 讀取參數(shù)請(qǐng)求。
drive: 變頻器的uss站地址。
bbbbb: 變頻器的參數(shù)代碼。
index: 變頻器的參數(shù)索引代碼。
eeprom:把參數(shù)存儲(chǔ)到變頻器的eeprom。
value: 設(shè)置參數(shù)的值。
uss_db: 指定變頻器進(jìn)行uss通信的數(shù)據(jù)塊。
done: 讀取參數(shù)完成。
error: 讀取參數(shù)錯(cuò)誤狀態(tài)。
status: 讀取參數(shù)狀態(tài)代碼。
注意:對(duì)寫(xiě)入?yún)?shù)功能塊編程時(shí),各個(gè)數(shù)據(jù)的數(shù)據(jù)類(lèi)型一定要正確對(duì)應(yīng)。如果需要設(shè)置變量進(jìn)行寫(xiě)入?yún)?shù)值時(shí),注意該參數(shù)變量的初始值不能為0,否則容易產(chǎn)生通信錯(cuò)誤。
5. 3 s7 1200 plc進(jìn)行uss通信的調(diào)試
s7-1200 plc 通過(guò)cm1241 rs485模塊與變頻器進(jìn)行uss通信時(shí),需要注意如下幾點(diǎn):
當(dāng)同一個(gè)cm1241 rs485 模塊帶有多個(gè)(最多16個(gè))uss變頻器時(shí),這個(gè)時(shí)候通信的uss_db是同一個(gè),uss_drv功能塊調(diào)用多次,每個(gè)uss_drv功能塊調(diào)用時(shí),相對(duì)應(yīng)的uss站地址與實(shí)際的變頻器要一致,而其它的控制參數(shù)也要一致。
當(dāng)同一個(gè)s7-1200 plc 帶有多個(gè)cm1241 rs485模塊(最多3個(gè))時(shí),這個(gè)時(shí)候通信的uss_db相對(duì)應(yīng)的是3個(gè),每個(gè)cm1241 rs485模塊的uss網(wǎng)絡(luò)使用相同的uss_db,不同的uss網(wǎng)絡(luò)使用不同的uss_db。
當(dāng)對(duì)變頻器的參數(shù)進(jìn)行讀寫(xiě)操作時(shí),注意不能同時(shí)進(jìn)行uss_rpm和uss_wpm的操作,并且同一時(shí)間只能進(jìn)行一個(gè)參數(shù)的讀或者寫(xiě)操作,而不能進(jìn)行多個(gè)參數(shù)的讀或者寫(xiě)操作。
在s7-1200 plc 與變頻器的uss通信的實(shí)際使用過(guò)程中,需要根據(jù)網(wǎng)絡(luò)的現(xiàn)場(chǎng)情況,對(duì)問(wèn)題進(jìn)行具體的解決。










