西門子6ES7390-1BC00-0AA0
西門子6ES7390-1BC00-0AA0
西門子6ES7390-1BC00-0AA0
![]() |
SIMATIC S7-300,異型導軌, 長度:2000 mm
|
通信的對方設備為
圖6. 連接 ID 號
注意:此處的ID號,將在編程的PUt,GET塊中填寫(16進制)
配置完網(wǎng)絡連接,編譯保存并下載。
圖7. 通訊連接狀態(tài)
指令塊編程
在 OB1 中,從“Instruction(指令)” >“Communication(通信)” >“S7 Communication(S7通信)”下,調(diào)用Get、Put通信指令,創(chuàng)建接收和發(fā)送數(shù)據(jù)塊 DB3 和 DB4,定義成 101 個字節(jié)的數(shù)組,程序調(diào)用如下圖8.所示。
圖8. 程序調(diào)用功能
功能塊管腳說明:
CALL “GET” | DB1 | //調(diào)用 GET,使用背景DB塊:DB1; |
REQ | M10.0+P沿 | //上升沿觸發(fā)或使用系統(tǒng)時鐘 ; |
ID | W#16#0001 | //連接號,要與連接配置中一致,創(chuàng)建連接時的連接號,如圖5.所示; |
NDR | M30.0 | //為1時,接收到新數(shù)據(jù); |
ERROR | M30.1 | //為1時,有故障發(fā)生; |
STATUS | MW32 | //狀態(tài)代碼; |
ADDR_1 | P#DB1.DBX0.0 BYTE 10 | //從通信伙伴數(shù)據(jù)區(qū)讀取數(shù)據(jù)的地址; |
RD_1 | P#DB3.DBX0.0 BYTE 10 | //本地接收數(shù)據(jù)地址; |
CALL “PUT” | DB2 | //調(diào)用 PUT,使用背景DB塊:DB2; |
REQ | M10.0+P沿 | //上升沿觸發(fā)或使用系統(tǒng)時鐘 ; |
ID | W#16#0001 | //連接號,要與連接配置中一致,創(chuàng)建連接時的連接號,如圖5.所示; |
DONE | M30.2 | // 為1時,發(fā)送完成; |
ERROR | M30.3 | // 為1時,有故障發(fā)生; |
STATUS | MW34 | // 狀態(tài)代碼; |
ADDR_1 | P#DB2.DBX0.0 BYTE 10 | // 發(fā)送到通信伙伴數(shù)據(jù)區(qū)的地址; |
SD_1 | P#DB4.DBX0.0 BYTE 10 | // 本地發(fā)送數(shù)據(jù)區(qū)。 |
監(jiān)控結(jié)果
通過在 S7-300 側(cè)編程進行 S7 通訊,實現(xiàn)兩個 CPU 之間數(shù)據(jù)交換,以S7-1200為例,結(jié)果如下圖。
圖9. 監(jiān)控結(jié)果
當通信的對方CPU為S7-1200或S7-1500時,有如下步驟必須設置。
1. S7-1200,S7-1500用于通信存放數(shù)據(jù)的DB塊,必須設置為“非優(yōu)化”(即默認的勾選取消掉)如圖10所示:
圖10. S7-1x00的數(shù)據(jù)塊非優(yōu)化設置
2. S7-1200CPU固件V4.0以上和S7-1500CPU,在CPU屬性--->保護--->連接機制中,
勾選“允許從遠程伙伴...”,如圖11所示,