S7-1200 CPU 與S7-300 CP TIA UDP通信
S7-1200 與 S7-300 CP 之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的通信指令是在S7-1200 CPU 側(cè)調(diào)用通信-開放式用戶通信TSEND_C,TRCV_C指令或TCON,TDISCON,TUSEND,TURCV 指令,在 S7-300 CPU 側(cè)調(diào)用 AG-SEND, AG-RECV 指令來實現(xiàn)。
此外對于伙伴是S7-400 CP也可以參考本文檔。
硬件和軟件需求及所完成的通信任務
測試軟/硬件:
① S7-1214 DC/DC/DC V4.4
② S7-315-2PN/DP V2.6
③ S7-300 CP343-1 V2.0
④ STEP7 V16
所完成的通信任務:
① S7-1200 CPU將通訊數(shù)據(jù)區(qū) DB4 塊中的 10 個字節(jié)的數(shù)據(jù)發(fā)送到 S7-300 CPU的接收數(shù)據(jù)區(qū) DB5 塊中。
② S7-300 CPU將通訊數(shù)據(jù)區(qū) DB5 塊中的 10 個字節(jié)的數(shù)據(jù)發(fā)送到 S7-1200 CPU的接收數(shù)據(jù)區(qū) DB4 塊中。
S7-1200 側(cè)硬件組態(tài)、編程和連接參數(shù)的配置
該部分內(nèi)容和 S7-1200 CPU 與S7-300 PN UDP通信-TIA不同項目->S7-1200 側(cè)硬件組態(tài)、編程和連接參數(shù)的配置 章節(jié)基本一致,請參考鏈接。
不同地方在于使用TSEND_C設置的伙伴IP地址和端口號(如對方CP343-1 的 IP:192.168.0.4,端口號:2000),如圖1所示。
圖1. 通過 TSEND_C 配置伙伴IP地址和端口號
S7-300CP 側(cè)硬件組態(tài)、編程和連接參數(shù)的配置
1.添加300CPU和CP343-1硬件并命名PLC
然后進入 “項目視圖”,在“項目樹” 下雙擊 “添加新設備”,在對話框中選擇所使用的 S7-300 CPU 添加到機架上,命名為 300CP,如圖2所示。
圖2. 添加300 CPU設備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:
在 “項目樹” > “300PN” > “設備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “時鐘存儲器” 下時鐘字節(jié)定義在 MB0,如圖3所示。
時鐘位使用 M0.5,以 1Hz 的速率自動激活發(fā)送任務。
圖3. 啟動時鐘存儲器
2.組態(tài)CP343-1并配以太網(wǎng)地址
在 “設備視圖”中點擊 CP 上代表 PROFINET 通信口的綠色小方塊,在下方會出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 IP 地址為 192.168.0.4,子網(wǎng)掩碼為255.255.255.0,如圖4所示。
圖4. 分配300CP IP 地址
3.網(wǎng)絡視圖內(nèi)組態(tài)UDP連接
①點擊設備和網(wǎng)絡,在網(wǎng)絡視圖內(nèi)在300CPU側(cè)新建UDP連接,如圖5所示。注意是在CPU上右鍵添加新連接,而不是CP上添加新連接。
圖5. 300CPU側(cè)新建UDP連接
②選擇未指定的伙伴,確認連接ID號,然后確定,如圖6所示。注意本地接口選擇CP343-1。
圖6. 新建未指定UDP連接
③添加完成后,在網(wǎng)絡視圖-連接內(nèi)可以查看新建的連接。點擊新建的UDP連接可進一步設置UDP連接參數(shù), 如圖7所示。
圖7. 查看新建的UDP連接
④連接的常規(guī)-屬性內(nèi),設置新建連接的本地ID和伙伴IP及端口,如圖8-9所示。
圖8.設置連接的本地ID
圖9.設置連接的伙伴IP及端口號
4.在 S7-300 中調(diào)用通信指令
在OB1中,從“指令”>“通信 ”>“通信處理器 ”>“SIMATIC NET CP”下,調(diào)用“AG_SEND” 、“AG_RECV ”通信指令。創(chuàng)建接收和發(fā)送數(shù)據(jù)塊 DB5,發(fā)送10字節(jié)數(shù)組,接收10字節(jié)數(shù)組, 如圖10所示。
圖10. 調(diào)用AG_SEND和AG_RECV指令
指令管腳參數(shù)說明:
CALL “AG_SEND” | // 調(diào)用 AG_SEND | |
ACT | :=%M0.5 | // 使用 1Hz 的時鐘脈沖,上升沿激活發(fā)送任務 |
ID | :=1 | // 連接號,要與連接配置中一致 |
LADDR | :=W#16#100 | // CP 的地址,要與配置中一致見圖8,塊參數(shù) |
SEND | :=“Data”.usend | // 發(fā)送數(shù)據(jù)區(qū) |
LEN | :=10 | // 發(fā)送數(shù)據(jù)的長度 |
DONE | :=%M10.1 | // 為1時,發(fā)送完成 |
ERROR | :=%M10.2 | // 為1時,有故障發(fā)生 |
STATUS | :=%MW12 | // 狀態(tài)代碼 |
CALL “ AG_RECV” | // 調(diào)用 AG_RECV | |
ID | :=1 | // 連接號,要與連接配置列表中一致, |
LADDR | :=W#16#100 | // CP 的地址,要與配置中一致見圖8,塊參數(shù) |
RECV | :=“Data”.urcv | // 接收數(shù)據(jù)區(qū) |
NDR | :=%M20.0 | // 為1時,接收到新數(shù)據(jù) |
ERROR | :=%M20.1 | // 為1時,有故障發(fā)生 |
STATUS | :=%MW22 | // 狀態(tài)代碼 |
LEN | :=%MW24 | // 接收到的實際數(shù)據(jù)長度 |
300CPU側(cè)配置和編程完成,編譯并存盤。
下載硬件組態(tài)及程序并監(jiān)控通信結(jié)果
下載兩個 CPU 中的所有硬件組態(tài)及程序,實現(xiàn) 兩個 CPU 之間數(shù)據(jù)交換,監(jiān)控結(jié)果如圖11所示。
圖11. 監(jiān)控結(jié)果