PLC_2 編程通信
在 PLC_2 中調(diào)用并配置“TRCV”通信指令
1.在 PLC_2 的 OB1 中調(diào)用“TCON” 通信指令
① 在第一個 CPU 中調(diào)用發(fā)送通信指令,進(jìn)入 “Project tree” > “ PLC_2” > “Program blocks” > “OB1” 主程序中,從右側(cè)窗口 “Instructions” > “Communications” > “OPEN User Communications”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖1.所示。

圖1. 調(diào)用“TCON”通信指令
② 創(chuàng)建DB2 分配連接參數(shù),見圖2所示
圖2. 創(chuàng)建連接數(shù)據(jù)塊 DB2(Con_DB)
③ 定義 PLC_2的 連接參數(shù) “TCON”
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties”> “Configuration”>“Connection parameter”中設(shè)置,如圖3.所示。
圖3. 定義 TCON 連接參數(shù)
連接參數(shù)說明:
End point
|
:可以通過點(diǎn)擊選擇按鈕選擇伙伴 CPU :PLC_2
|
Connection type
|
:選擇通信協(xié)議為 TCP(也可以選擇 ISO on TCP 或UDP協(xié)議)
|
Connection ID
|
:連接的地址 ID 號,這個 ID 號在后面的編程里會用到
|
Connection data
|
:創(chuàng)建連接時,生成的Con_DB塊。見圖2所示
|
Active connection setup
|
:選擇通信伙伴 PLC_1作為主動連接
|
Address details
|
:定義通信伙伴方的端口號為:2000;如果選用的是 ISO on TCP 協(xié)議,則需要設(shè)定的TSAP 地址(ASCII 形式),本地 PLC_2可以設(shè)置成“PLC2”,伙伴方 PLC_1 可以設(shè)置成“PLC1”。
|
2. 在 PLC_2 中在OB1調(diào)用“TRCV”通信指令
接收從PLC_1 發(fā)送到 PLC_2的100個字節(jié)數(shù)據(jù)
① 創(chuàng)建并定義接收數(shù)據(jù)區(qū) DB 塊。
通過“Project tree”>“ PLC_2”>“Program blocks”>“Add new block” ,選擇 “Data block”創(chuàng)建 DB 塊,選擇符號尋址,點(diǎn)擊“OK”鍵,定義接收數(shù)據(jù)區(qū)為 100 個字節(jié)的數(shù)組,圖4及圖5所示。
圖4. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖5. 定義接收區(qū)為 100 個字節(jié)的數(shù)組
② 定義調(diào)用 “TRCV” 程序
圖6. TRCV 塊參數(shù)配置
參數(shù)配置:
輸入接口參數(shù):
EN_R
|
:= TRUE
|
// 準(zhǔn)備好接收數(shù)據(jù)
|
ID
|
:= 1
|
// 建立連接并一直保持連接
|
LEN
|
:= 100
|
// 接收的數(shù)據(jù)長度為 100 個字節(jié)
|
DATA
|
:= P#DB4.DBX0.0 BYTE 100
|
//接收數(shù)據(jù)區(qū),DB 塊選用的是符號尋址
|
輸出接口參數(shù):
DONE
|
:= M310.0
|
// 任務(wù)執(zhí)行完成并且沒有錯誤,該位置 1
|
BUSY
|
:= M310.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:= M310.2
|
// 通信過程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:= MW312
|
// 有錯誤發(fā)生時,會顯示錯誤信息號
|
RCVD_LEN
|
:= MW314
|
// 實(shí)際接收數(shù)據(jù)的字節(jié)數(shù)
|
3 在 PLC_2 中調(diào)用并配置“TSEND”通信指令
PLC_2 將 發(fā)送100個字節(jié)數(shù)據(jù) 到 PLC_1 中,如何創(chuàng)建發(fā)送數(shù)據(jù)塊DB3,與創(chuàng)建接收數(shù)據(jù)塊方法相同,不再詳述。在 PLC_2 中調(diào)用發(fā)送指令并配置塊參數(shù),發(fā)送指令與接收指令使用同一個連接,。如圖7.所示。
圖7. 調(diào)用TSEND 指令并配置塊接口參數(shù)
參數(shù)說明:
輸入接口參數(shù):
REQ
|
:= M0.3
|
// 使用 2Hz 的時鐘脈沖,上升沿激活發(fā)送任務(wù)
|
ID
|
:= 1
|
// 連接ID號,通過TCON創(chuàng)建的連接
|
LEN
|
:= 100
|
// 發(fā)送數(shù)據(jù)長度為 100 個字節(jié)
|
DATA
|
:= P#DB3.DBX0.0 BYTE 100
|
// 發(fā)送數(shù)據(jù)區(qū)的符號地址
|
輸出接口參數(shù):
DONE
|
:M300.0
|
// 任務(wù)執(zhí)行完成并且沒有錯誤,該位置 1
|
BUSY
|
:M300.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:M300.2
|
// 通信過程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:MW302
|
//有錯誤發(fā)生時,會顯示錯誤信息號
|
使用TCP 協(xié)議通信,除了連接參數(shù)的定義不同,通信雙方的其它組態(tài)及編程與前面的ISO on TCP 協(xié)議通信完全相同。但注意:主動連接方強(qiáng)烈建議選擇S7-300 CP卡。
S7-1200 CPU中,使用 TCP 協(xié)議與S7-300通信時,PLC_1的連接參數(shù),如圖1.所示。通信伙伴 S7-300 的連接參數(shù),如圖2.所示。
圖1.S7-1200 的TCP連接參數(shù)的配置 TCP1200_Connection.BMP
圖2. S7-300 的S7-300 CP卡創(chuàng)建TCP連接參數(shù)的配置
圖3.S7-300 的S7-300 CP卡創(chuàng)建TCP連接參數(shù)的配置,設(shè)置連接伙伴
圖3. S7-300 CP卡創(chuàng)建TCP連接參數(shù)的配置,設(shè)置連接伙伴地址及端口
特別注意(不建議使用)
如果一定要創(chuàng)建S7-1200主動連接,那么在S7-300 CP卡,創(chuàng)建連接,一定不能填寫對方IP與端口如圖4
圖4. S7-300 CP卡創(chuàng)建TCP連接參數(shù)的配置,一定不能設(shè)置對方IP與端口