S7-1200 與 S7-1200 之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用 T-block ( TCON, TDISCON, TUSEND, TURCV) 指令來實現(xiàn)。通信方式為雙邊通信,因此 TUSEND 和 TURCV 必須成對出現(xiàn)。
硬件和軟件需求及所完成的通信任務(wù):
硬件:
① S7-1200 CPU
② PC (帶以太網(wǎng)卡)
③ TP電纜(以太網(wǎng)電纜)
軟件:STEP7 V11 or Higher(只有 STEP7 V11才有此功能)
所完成的通信任務(wù):
① 將PLC_1 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個字節(jié)的數(shù)據(jù)發(fā)送到 PLC_2 的接收數(shù)據(jù)區(qū) DB4 塊中。
② 將PLC_2 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個字節(jié)的數(shù)據(jù)發(fā)送到 PLC_1 的接收數(shù)據(jù)區(qū) DB4 塊中。
通信的編程,連接參數(shù)及通信參數(shù)的配置:
打開 STEP7 v11 軟件并新建項目 在 STEP7 v11的 “Portal View” 中選擇 “Create new project” 創(chuàng)建一個新項目
添加硬件并命名PLC 然后進(jìn)入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1,如圖1所示。同樣方法再添加通信伙伴的S7-1200 CPU ,命名為 PLC_2。
圖1. 添加新設(shè)備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:在 “Project tree” 》 “PLC_1” 》 “Device configuration” 中,選中 CPU ,然后在下面的屬性窗口中,“Properties” 》 “System and clock memory” 下,將系統(tǒng)位定義在MB1,時鐘位定義在MB0,如圖2所示。時鐘位我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個位,可以使用它去自動激活發(fā)送任務(wù)。
圖2. 系統(tǒng)位與時鐘位
3. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses” 下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0,如圖3所示。
圖3. 分配IP 地址
同樣方法,在同一個項目里添加另一個新設(shè)備S7-1200 CPU 并為其分配 IP 地址為192.168.0.2
4. 創(chuàng)建 CPU之間的邏輯網(wǎng)絡(luò)連接
在項目樹 “Project tree”》“Devices & Networks” 》“Networks view” 視圖下,創(chuàng)建兩個設(shè)備的連接。用鼠標(biāo)點中 PLC_1 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個PLC_2 上的PROFINET通信口上,松開鼠標(biāo),連接就建立起來了,如圖4所示。
圖4. 建立兩個 CPU的邏輯連接
在 PLC_1 中調(diào)用并配置“TCON”、“TUSEND”、“TURCV” 通信指令
1.在 PLC_1 的 OB1 中調(diào)用“TCON” 通信指令
① 在第一個 CPU 中調(diào)用發(fā)送通信指令,進(jìn)入 “Project tree” 》 “ PLC_1” 》 “Program blocks” 》 “OB1” 主程序中,從右側(cè)窗口 “Instructions” 》 “Communications” 》 “OPEN User Communications”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖5所示。
圖5. 調(diào)用“TCON”通信指令
② 創(chuàng)建DB2 分配連接參數(shù),見圖6所示
圖6. 創(chuàng)建連接數(shù)據(jù)塊 DB2(Con_DB)
③ 定義PLC_1的 “TCON”連接參數(shù)
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties”》 “Configuration”》“Connection parameter”中設(shè)置,如圖7所示。
圖7. 定義 TCON 連接參數(shù)(選擇UDP連接)
2.定義 PLC_1 的“TUSEND”發(fā)送通信塊接口參數(shù)
①調(diào)用 “TUSEND” 在OB1內(nèi)調(diào)用 發(fā)送100個字節(jié)數(shù)據(jù)到PLC2中 進(jìn)入 “Project tree” 》 “ PLC_1” 》 “Program blocks” 》 “OB1” 主程序中,從右側(cè)窗口 “Instructions” 》 “Communications” 》 “OPEN User Communications”下調(diào)用 “TUSEND” 指令,,如圖8所示。
圖8. 調(diào)用 TUSEND
②創(chuàng)建并定義PLC_1的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“Project tree”》“PLC_1”》“Program blocks”》“Add new block”,選擇“Data block” 創(chuàng)建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組,如圖9~10所示
圖9. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創(chuàng)建絕對尋址的 DB 塊
圖10. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
③定義UDP 連接參數(shù)數(shù)據(jù)塊
通過“Project tree”》“PLC_1”》“Program blocks”》“Add new block”,選擇“Data block” 創(chuàng)建 DB 塊,然后在右側(cè)“Type”中選擇“TADDR_Param”,如圖11所示
圖11. 創(chuàng)建UDP連接參數(shù)數(shù)據(jù)塊
創(chuàng)建完DB塊后,可以在DB塊內(nèi),設(shè)置本地PLC所要連接設(shè)備的IP地址與端口號,如圖12所示。
圖12. UDP 連接詳細(xì)參數(shù)
④ 定義 PLC_1 的“TUSEND”發(fā)送通信塊接口參數(shù),如圖13所示。
圖13. 定義 TUSEND 接口參數(shù)
3.在 PLC_1 的OB1中調(diào)用接收指令TURCV 并配置基本參數(shù)
為了實現(xiàn) PLC_1 接收來自 PLC_2 的數(shù)據(jù),則在 PLC_1 中調(diào)用接收指令TURCV 并配置基本參數(shù)。
①創(chuàng)建并定義PLC_1的接收數(shù)據(jù)區(qū) DB 塊。
通過“Project tree”》“PLC_1”》“Program blocks”》“Add new block”,選擇“Data block” 創(chuàng)建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組,如圖14~15所示
圖14. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創(chuàng)建絕對尋址的 DB 塊。
圖15. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
②調(diào)用 “TURCV” 在OB1內(nèi)調(diào)用 進(jìn)入 “Project tree” 》 “ PLC_1” 》 “Program blocks” 》 “OB1” 主程序中,從右側(cè)窗口 “Instructions” 》 “Communications” 》 “OPEN User Communications”下調(diào)用 “TRCV” 指令,配置接口參數(shù),如圖16所示。
圖16. 調(diào)用 TURCV 指令并配置接口參數(shù)
PLC_2 編程通信
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)建連接,如圖17所示。
圖17. 調(diào)用“TCON”通信指令
② 創(chuàng)建DB2 分配連接參數(shù),見圖18所示
圖18. 創(chuàng)建連接數(shù)據(jù)塊 DB2(Con_DB)
③ 定義 PLC_2的 連接參數(shù) “TCON”
PLC_2 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties”》 “Configuration”》“Connection parameter”中設(shè)置,如圖19所示
圖19. 定義 TCON 連接參數(shù)
2. 在 PLC_2 中在OB1調(diào)用“TURCV”通信指令
接收從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 塊,選擇符號尋址,點擊“OK”鍵,定義接收數(shù)據(jù)區(qū)為 100 個字節(jié)的數(shù)組,圖20~21所示。
圖20. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖21. 定義接收區(qū)為 100 個字節(jié)的數(shù)組
② 定義調(diào)用 “TURCV” 程序
圖22. TURCV 塊參數(shù)配置
3 在 PLC_2 中調(diào)用并配置“TUSEND”通信指令
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ā)送指令與接收指令使用同一個連接,如圖23所示。
圖23. 調(diào)用TSEND 指令并配置塊接口參數(shù)
下載硬件組態(tài)及程序并監(jiān)控通信結(jié)果
下載兩個 CPU 中的所有硬件組態(tài)及程序,從監(jiān)控表中可以看到,PLC_1 的 TSEND 指令發(fā)送數(shù)據(jù):“66”,“55”,“44”數(shù)據(jù),PLC_2 接收到數(shù)據(jù):“66”,“55”,“44”。而 PLC_2 發(fā)送數(shù)據(jù)“11”,“22”,“33”,PLC_1接收數(shù)據(jù)是“11”,“22”,“33””,如圖24所示。
圖24. PLC_1 及 PLC_2 的監(jiān)控表
編輯:lyn
-
UDP
+關(guān)注
關(guān)注
0文章
330瀏覽量
34479 -
S7-1200
+關(guān)注
關(guān)注
11文章
333瀏覽量
18456
原文標(biāo)題:S7-1200 和 S7-1200 之間 UDP 通信
文章出處:【微信號:xue_PLC,微信公眾號:PLC技術(shù)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
西門子S7 PLC通過深控技術(shù)無點表工業(yè)網(wǎng)關(guān)實現(xiàn)數(shù)據(jù)采集與智能決策方案
S7-1200與歐姆龍智能儀表Modbus通信案例

EtherCAT轉(zhuǎn)ProfiNet西門子1200PLC與伺服電機(jī)通訊案例全解

在S7-1200/1500中創(chuàng)建氣缸功能塊的編程指南

分布式IO模塊與S7-1200 PLC:打造高效分揀系統(tǒng)的新引擎

如何選擇適合的西門子S7-1200系列PLC型號?

基于 EtherCAT 轉(zhuǎn) ProfiNet 網(wǎng)關(guān)達(dá)成西門子 1200 PLC 與伺服電機(jī)通訊連接的應(yīng)用實例

代際躍升丨Modbus轉(zhuǎn)Profinet網(wǎng)關(guān)與伺服的智能之旅

評論