① 在第一個(gè) CPU 中調用發(fā)送通信指令,進(jìn)入 “Project tree” > “ PLC_2” > “Program blocks” > “OB1” 主程序中,從右側窗口 “Instructions” > “Communications” > “OPEN User Communications”下調用 “TCON” 指令,創(chuàng )建連接,如圖1.所示。
圖1. 調用“TCON”通信指令
② 創(chuàng )建DB2 分配連接參數,見(jiàn)圖2所示
圖2. 創(chuàng )建連接數據塊 DB2(Con_DB)
③ 定義 PLC_2的 連接參數 “TCON”
PLC_1 的 TCON 指令的連接參數需要在指令下方的屬性窗口“Properties”> “Configuration”>“Connection parameter”中設置,如圖3.所示。
圖3. 定義 TCON 連接參數
連接參數說(shuō)明:
End point | :可以通過(guò)點(diǎn)擊選擇按鈕選擇伙伴 CPU :PLC_2 |
Connection type | :選擇通信協(xié)議為 TCP(也可以選擇 ISO on TCP 或UDP協(xié)議) |
Connection ID | :連接的地址 ID 號,這個(gè) ID 號在后面的編程里會(huì )用到 |
Connection data |
:創(chuàng )建連接時(shí),生成的Con_DB塊。見(jiàn)圖2所示 |
Active connection setup | :選擇通信伙伴 PLC_1作為主動(dòng)連接 |
Address details | :定義通信伙伴方的端口號為:2000;如果選用的是 ISO on TCP 協(xié)議,則需要設定的TSAP 地址(ASCII 形式),本地 PLC_2可以設置成“PLC2”,伙伴方 PLC_1 可以設置成“PLC1”。 |
接收從PLC_1 發(fā)送到 PLC_2的100個(gè)字節數據
① 創(chuàng )建并定義接收數據區 DB 塊。
通過(guò)“Project tree”>“ PLC_2”>“Program blocks”>“Add new block” ,選擇 “Data block”創(chuàng )建 DB 塊,選擇符號尋址,點(diǎn)擊“OK”鍵,定義接收數據區為 100 個(gè)字節的數組,圖4及圖5所示。
圖4. 創(chuàng )建接收數據區 DB 塊
圖5. 定義接收區為 100 個(gè)字節的數組
② 定義調用 “TRCV” 程序
圖6. TRCV 塊參數配置
參數配置:
輸入接口參數:
EN_R
|
:= TRUE
|
// 準備好接收數據
|
ID
|
:= 1
|
// 建立連接并一直保持連接
|
LEN
|
:= 100
|
// 接收的數據長(cháng)度為 100 個(gè)字節
|
DATA
|
:= P#DB4.DBX0.0 BYTE 100
|
//接收數據區,DB 塊選用的是符號尋址
|
輸出接口參數:
DONE
|
:= M310.0
|
// 任務(wù)執行完成并且沒(méi)有錯誤,該位置 1
|
BUSY
|
:= M310.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:= M310.2
|
// 通信過(guò)程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:= MW312
|
// 有錯誤發(fā)生時(shí),會(huì )顯示錯誤信息號
|
RCVD_LEN
|
:= MW314
|
// 實(shí)際接收數據的字節數
|
PLC_2 將 發(fā)送100個(gè)字節數據 到 PLC_1 中,如何創(chuàng )建發(fā)送數據塊DB3,與創(chuàng )建接收數據塊方法相同,不再詳述。在 PLC_2 中調用發(fā)送指令并配置塊參數,發(fā)送指令與接收指令使用同一個(gè)連接,。如圖7.所示。
圖7. 調用TSEND 指令并配置塊接口參數
參數說(shuō)明:
輸入接口參數:
REQ
|
:= M0.3
|
// 使用 2Hz 的時(shí)鐘脈沖,上升沿激活發(fā)送任務(wù)
|
ID
|
:= 1
|
// 連接ID號,通過(guò)TCON創(chuàng )建的連接
|
LEN
|
:= 100
|
// 發(fā)送數據長(cháng)度為 100 個(gè)字節
|
DATA
|
:= P#DB3.DBX0.0 BYTE 100
|
// 發(fā)送數據區的符號地址
|
輸出接口參數:
DONE
|
:M300.0
|
// 任務(wù)執行完成并且沒(méi)有錯誤,該位置 1
|
BUSY
|
:M300.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:M300.2
|
// 通信過(guò)程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:MW302
|
//有錯誤發(fā)生時(shí),會(huì )顯示錯誤信息號
|
在PLC_1側的編程參見(jiàn):S7-1500之間通過(guò)程序建立TCP通信(PLC_1側)
電話(huà):13818569113
郵箱:13818569113@139.com
網(wǎng)址:http://openxml.net/
地址:上海青浦區北青公路7171號111-112室