S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET網絡的一種優化的通信協議,主要用于S7-300/400PLC之間的通信。
經過測試發現S7-1500與S7-200 SMART PLC 之間的S7通信也是可以成功的,S7-1500側編程調用PUT/GET指令或者S7-200 SMART側編程調用PUT/GET指令都是可以的。
注意:
1.S7-200 SMART CPU 與S7-1500 之間的S7通信未經西門子官方測試,本文檔僅供客戶測試使用,使用該種通信方式所產生的任何危險需要有客戶自己承擔!
2.S7-200 SMARTPLC V2.0 版本才開始支持PUT/GET通信,V1.0版本的CPU需要升級固件后方可支持PUT/GET。
3.本文只介紹了S7-1500側調用PUT/GET指令編程方式(S7-200 SMART CPU作為服務器方,無需編程),未介紹S7-200 SMART側編程調用PUT/GET方式。
本文以采用1個CPU1518-4 PN/DP(6ES7 518-4AP00-0AB0),1個S7-200 SMART PLC為例,介紹它們之間的S7通信。
硬件:
① S7-1500 CPU
② S7-200 SMART CPU (固件V2.5)
③ PC (帶以太網卡)
④ TP以太網電纜
軟件:
① TIA STEP7 V16
② STEP 7 Micro/WIN SMART V2.5
所完成的通信任務:
① S7-1500 將通信數據區 DB3 中的200 個字節發送到 S7-200 SMART的VB 數據區。
② S7-1500 讀取 S7-200 SMART中的VB數據區存儲到S7-1500 的數據區DB4中的200個字節 。
1. 使用TIA V16 軟件新建一個項目,添加1個S7-1500站點并為其分配網絡和IP地址 ,如圖1.所示。

2. 在OB1中調用PUT/GET指令塊

3.在指令塊下方的“屬性"對話框設置“連接參數”(以PUT指令塊為例):

4.設置TSAP地址
指令塊組態完畢,打開“網絡視圖”-“連接”選項卡,可以看到TIA自動創建的連接,打開連其接屬性后,需要為新創建的連接伙伴設置TSAP,設置方法如圖4。

圖4. 設置連接伙伴方TSAP地址
1. 創建通信數據DB塊
創建S7-1500 側發送數據塊DB3(接收區數據塊DB4類似),數據塊的屬性中需要取消勾選DB塊屬性"優化的塊訪問"。
2.完善指令塊設置
發送數據塊與接收數據塊創建完成后,即可在OB1中調用PUT/GET指令,進行S7通信.(通過"PUT"指令塊,已經組態連接,如果針對同一設備需要使用GET指令,可以直接使用"PUT"指令的連接ID,例中:W#16#100)如圖6示。

|
CALL “PUT” |
, %DB1 |
//調用 PUT,使用背景DB塊:DB1 |
|
REQ |
:=%M0.0 |
//上升沿觸發程序塊的調用 |
|
ID |
:=W#16#0100 |
//連接號,要與連接配置中一致,創建連接時的連接號 |
|
DONE |
:=%M0.1 |
// 為1時,發送完成 |
|
ERROR |
:=%M0.2 |
// 為1時,有故障發生 |
|
STATUS |
:=%MW2 |
// 狀態代碼 |
|
ADDR_1 |
:=P#DB1.DBX0.0 BYTE 200 |
// 發送到通信伙伴數據區的地址,對應S7-200 SMART VB0-VB199(果要訪問S7-200 SMART的V區,該位置只能寫DB1) |
|
SD_1 |
:=P#DB3.DBX0.0 BYTE 200 |
// 本地(S7-1500)發送數據區 ,可以是任意DB塊 |
表2.GET指令參數說明
|
CALL “GET” |
, %DB2 |
//調用 GET,使用背景DB塊:DB2 |
|
REQ |
:=%M1.0 |
//上升沿觸發程序塊的調用 |
|
ID |
:=W#16#0100 |
//連接號,要與連接配置中一致,創建連接時的連接號 |
|
NDR |
:=%M1.1 |
//為1時,接收到新數據 |
|
ERROR |
:=%M1.2 |
//為1時,有故障發生 |
|
STATUS |
:=%MW6 |
//狀態代碼 |
|
ADDR_1 |
:=P#DB1.DBX200.0 BYTE 200 |
//從通信伙伴數據區讀取數據的地址,對應S7-200 SMART VB200-VB399(如果要訪問S7-200 SMART的V區,該位置只能寫DB1) |
|
RD_1 |
:=P#DB4.DBX0.0 BYTE 200 |
//本地(S7-1500)接收數據區 ,可以是任意DB塊 |
綜合以上步驟,已經完成了S7-1500 硬件和軟件部分的編程,下載只需要將程序下載到S7-1500 PLC 即可。
1.連接狀態監控
S7連接成功的建立是調用PUT/GET指令的基礎,S7連接成功建立后,方能正確執行PUT/GET指令。
2.通信數據監控
S7連接成功建立后,S7-1500 觸發PUT/GET指令,通過TIA 軟件監控表和STEP 7 Micro/WIN SMART 軟件的狀態表,可以監控數據通信是否正常。
上例中,將S7-1500的DB3里 DBB0-DBB199的200個字節傳送至S7-200 SMART 的VB0-VB199開始的200個字節。

圖8.S7-1500發送數據

圖9.S7-1500接收數據
注意:S7-200 SMART中V區對應于DB1,即在PUT指令中使用的通信伙伴數據區ADDR_1=P#DB1.DBX0.0 BYTE 200在S7-200 SMAR中對于為VB0~VB199。
S7-1500 與S7-200 SMART S7 通訊的另外一種方法是S7-200 SAMRT PLC做客服端,S7-1500做服務器。該方式需要S7-200 SMART調用PUT/GET指令,S7-1500側不需要編寫通訊程序(需要勾選“允許來自遠程對象的PUT/GET通信訪問”(參數路徑:S7-1500 CPU 屬性-防護與安全-連接機制,如圖10所示。))。 該方式比較簡單,本文檔不做介紹。

用戶在實際調試過程中,并非一次成功,通過網絡視圖在線可以監控連接狀態,但是具體的錯誤原因并不清楚,此時,根據功能塊的錯誤代碼分析錯誤原因就顯得十分有效。
如下圖所示,當通信不正常時,指令塊本身也會故障,可以通過指令塊右側的“ERROR”和“STATUS”兩個變量獲取最新的錯誤代碼。

具體錯誤代碼如下圖所示,或者用戶直接選中PUT指令塊,按下鍵盤的F1按鍵,打開TIA的幫助自行查看。

電話:13818569113
郵箱:13818569113@139.com
網址:http://www.xmzgk.com
地址:中國上海市青浦區崧盈路398號6棟