S7 200 SMART 通訊問題—以太網(wǎng)設(shè)置_第1頁
S7 200 SMART 通訊問題—以太網(wǎng)設(shè)置_第2頁
S7 200 SMART 通訊問題—以太網(wǎng)設(shè)置_第3頁
S7 200 SMART 通訊問題—以太網(wǎng)設(shè)置_第4頁
S7 200 SMART 通訊問題—以太網(wǎng)設(shè)置_第5頁
已閱讀5頁,還剩166頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、一:TCP 協(xié)議通訊(一)S7 200 SMART之間的TCP通訊TCP是一個因特網(wǎng)核心協(xié)議。在通過以太網(wǎng)通信的主機(jī)上運(yùn)行的應(yīng)用程序之間,TCP 提供了可靠、有序并能夠進(jìn)行錯誤校驗的消息發(fā)送功能。TCP 能保證接收和發(fā)送的所有字節(jié)內(nèi)容和順序完全相同。TCP 協(xié)議在主動設(shè)備(發(fā)起連接的設(shè)備)和被動設(shè)備(接受連接的設(shè)備)之間創(chuàng)建連接。一旦連接建立,任一方均可發(fā)起數(shù)據(jù)傳送。TCP協(xié)議是一種"流"協(xié)議。這意味著消息中不存在結(jié)束標(biāo)志。所有接收到的消息均被認(rèn)為是數(shù)據(jù)流的一部分。S7 200 SMART與之間的TCP通訊可以通過兩邊調(diào)用OUC(開放式用戶通訊)指令庫中的TCP_CONNE

2、CT、TCP_SEND、TCP_RECV、DISCONNECT指令來實(shí)現(xiàn)。圖1.開放式用戶通訊庫開放式用戶通信庫需要使用 50 個字節(jié)的 V 存儲器。開放式的用戶通訊連接資源包括8個主動連接和8個被動連接。只可從主程序或中斷例程中調(diào)用庫函數(shù),但不可同時從這兩個程序中調(diào)用。所需條件:1、軟件版本:STEP 7-Micro/WIN SMART V2.22、SMART CPU固件版本:V2.23、通訊硬件:TP電纜(以太網(wǎng)電纜)所完成的通訊任務(wù):將作為客戶端的PLC(IP地址為192.168.0.101)中VB0-VB3的數(shù)據(jù)傳送到作為服務(wù)器端的PLC(IP地址為192.168.0.102)的VB2

3、000-VB2003中。S7-200 SMART 客戶端編程1、設(shè)置本機(jī)IP地址在客戶端設(shè)置IP地址為192.168.0.101圖2.設(shè)置IP地址2、建立TCP連接調(diào)用TCP_CONNECT指令建立TCP連接。設(shè)置連接伙伴地址為192.168.0.102,遠(yuǎn)端端口為2001,本地端口為5000,連接標(biāo)識ID為1。利用SM0.0使能Active,設(shè)置為主動連接。圖3.調(diào)用TCP_CONNECT指令指令的參數(shù)輸入?yún)?shù):EN :使能輸入Req:沿觸發(fā)Active :TURE=主動連接(客戶端)         

4、   FALSE=被動連接(服務(wù)器)ConnID:連接ID為連接標(biāo)識符,可能范圍為0-65534。IPaddr1 . IPaddr4 :IP 地址的四個八位字節(jié)。IPaddr1 是 IP 地址的最高有效字節(jié),IPaddr4 是 IP 地址的最低有效字節(jié)。RemPort:遠(yuǎn)程設(shè)備上的端口號。遠(yuǎn)程端口號范圍為 1 到 49151。對于被動連接,可使用零。LocPort :本地設(shè)備端口號。范圍為1-49151,但是存在一些限制。           &

5、#160;      本地端口號的規(guī)則如下:· 有效端口號范圍為 1 到 49151。· 不能使用端口號 20、21、25、80、102、135、161、162、443以及34962至34964。這些端口具有特定用途。· 建議采用的端口號范圍為 2000 到 5000。· 對于被動連接,本地端口號必須唯一(不重復(fù))。輸出參數(shù):Done:當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。Busy: 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。Error:當(dāng)連接操作完成但發(fā)生錯誤時,指令置位

6、 Error 輸出。       Status:如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。具體錯誤代碼對應(yīng)詳見手冊。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)。3、調(diào)用發(fā)送數(shù)據(jù)指令TCP_SEND調(diào)用TCP_SEND指令發(fā)送以VB0為起始,數(shù)據(jù)長度為DataLen長度的數(shù)據(jù)發(fā)送到連接ID為1指定的遠(yuǎn)程設(shè)備。利用1HZ的時鐘上升沿觸發(fā)發(fā)送請求。圖4.調(diào)用TCP_SEND指令指令的參數(shù)輸入?yún)?shù):EN :使能輸入Req:沿觸發(fā)ConnID:連接 ID (ConnID) 是此發(fā)送操作的連接

7、ID號。DataLen :DataLen 是要發(fā)送的字節(jié)數(shù)(1 到 1024)。DataPtr:DataPtr 是指向待發(fā)送數(shù)據(jù)的指針。 輸出參數(shù):Done:當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。Busy: 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。Error:當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。       Status:如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。具體錯誤代碼對應(yīng)詳見手冊。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤

8、)。4、終止通訊連接用戶可通過DISCONNECT指令終止指定ID的連接。圖5.調(diào)用DISCONNECT指令參數(shù)說明:輸入?yún)?shù):EN :使能Req:沿觸發(fā)指令。輸出參數(shù):Done:當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。Busy: 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。Error:當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。       Status:如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。具體錯誤代碼對應(yīng)詳見手冊。如果指令置位 Busy 或 Done 輸出,Status

9、為零(無錯誤)。5、分配庫存儲區(qū)開放式用戶通信庫需要使用 50 個字節(jié)的 V 存儲器,用戶需手動分配 。在指令樹的程序中,以鼠標(biāo)右鍵單擊程序塊,在彈出的快捷菜單中選擇庫存儲器。如圖所示:圖6.庫存儲器在彈出的選項卡中設(shè)置庫指令數(shù)據(jù)區(qū):圖7.分配地址S7-200 SMART 服務(wù)器端編程1、設(shè)置本機(jī)IP地址設(shè)置IP地址為192.168.0.102圖8.設(shè)置本機(jī)IP地址2、建立TCP連接調(diào)用TCP_CONNECT指令建立TCP連接。設(shè)置連接伙伴地址為192.168.0.101,遠(yuǎn)端端口為5000,本地端口為2001,連接標(biāo)識ID為1。利用SM0.0常閉點(diǎn)使能Active,設(shè)置為被動連接。圖9.調(diào)用

10、TCP_CONNECT指令3、接收數(shù)據(jù)調(diào)用TCP_RECV指令接收指定ID連接的的數(shù)據(jù)。接收的緩沖區(qū)長度為MaxLen,數(shù)據(jù)接收緩沖區(qū)以VB2000為起始。圖11.調(diào)用TCP_RECV指令監(jiān)控結(jié)果其中客戶端的VW1000是發(fā)送的數(shù)據(jù)長度,服務(wù)器端的vw1000是接收的數(shù)據(jù)長度。圖12.監(jiān)控結(jié)果例程為了更好地理解 TCP的編程,可參考下面的例程。注意:1. 該例程使用 STEP 7-Micro/WIN SMART 編寫。2.在建立連接時需先觸發(fā)服務(wù)器端的建立連接指令,再觸發(fā)客戶端。TCP客戶端程序TCP服務(wù)器端程序注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負(fù)任何責(zé)任。使用該軟

11、件的風(fēng)險完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯誤糾正和熱線支持,用戶不必為 此聯(lián)系西門子技術(shù)支持與服務(wù)部門。(二)S7-200 SMART 與調(diào)試助手之間 TCP 通信TCP協(xié)議通訊TCP 通信為面向連接的通信,需要雙方都調(diào)用指令以建立連接及交換數(shù)據(jù)。S7-200 SMART 與 TCP&UDP Debug通過 TCP 通信,在 TCP&UDP Debug建立客戶端或服務(wù)器,在 S7-200 SMART 調(diào)用 Open User Communication 庫指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) ??蛻舳?/p>

12、:主動建立連接,可以理解為主站 ; 服務(wù)器:被動建立連接,可以理解為從站。 注意:S7-200 SMART 在 CPU 硬件固件及編程軟件版本均升級到 V2.2 之后才開始支持開放式通信。編程軟件版本低于V2.2,無 Open User Communication 庫指令;硬件固件低于 V2.2,硬件不支持開放式通信協(xié)議。S7-200 SMART TCP 連接資源:8個主動連接資源,8個被動連接資源S7-200 SMART TCP 通信數(shù)據(jù)量:1024 字節(jié)硬件和軟件需求及所完成的通信任務(wù)硬件:  PC (帶以太網(wǎng)卡)(IP 地址 192.168.0.254 ;子網(wǎng)掩碼 2

13、55.255.255.0) S7-200 SMART CPU (固件版本V2.2) ( IP 地址 192.168.0.20 ;子網(wǎng)掩碼 255.255.255.0) TP 以太網(wǎng)電纜 軟件: TCP&UDP Debug  STEP 7 Micro/WIN SMART ( 軟件版本 V2.2 ) 所完成的通信任務(wù): TCP&UDP Debug 發(fā)送 10 個字節(jié)數(shù)據(jù): ->( S7- 200 SMART 側(cè) ) VB2000VB2009 TCP&UDP Debug 接收 10 個字節(jié)數(shù)據(jù): <- ( S7-200 SMART 側(cè)

14、 ) VB0VB9TCP&UDP Debug設(shè)置(客戶端設(shè)置)1. 打開TCP&UDP Debug軟件2. 右鍵“客戶端模式”-“創(chuàng)建連接”如圖1所示,創(chuàng)建連接圖1.創(chuàng)建連接 選擇連接類型:TCP 填寫S7-200 SMART的IP地址及端口號 設(shè)置PC的端口號 單擊創(chuàng)建3. 右鍵“客戶端模式”-“連接”圖2. 建立連接 藍(lán)色圓點(diǎn):未建立連接;黃色三角箭頭:正在建立連接;綠色三角箭頭:連接建立成功; 勾選“自動連接”后,點(diǎn)擊連接按鈕。TCP&UDP Debug設(shè)置(服務(wù)器設(shè)置)1. 打開TCP&UDP Debug軟件2. 右鍵“服務(wù)器模式”-

15、“創(chuàng)建服務(wù)器”圖3. 創(chuàng)建服務(wù)器 選擇PC的端口號后,點(diǎn)擊確定3. 右鍵“服務(wù)器模式”-“啟動服務(wù)器”圖4. 啟動服務(wù)器S7-200 SMART側(cè)編程1.打開STEP 7 Micro/WIN SMART>項目樹>指令樹>庫>Open User Communication ,調(diào)用TCP_CONNECT,如圖5、圖6所示。圖5. 開放式以太網(wǎng)通訊指令庫圖6. TCP連接塊表1. 引腳說明TCP_CONNECT/調(diào)用TCP_CONNECTEN:SM0.0/使能輸入Req:V6010.0/如果 Req = TRUE,CPU 啟動連接操作。如果 Req =&#

16、160;FALSE,則輸出顯示連接的當(dāng)前狀態(tài)。使用上升沿觸發(fā)Active:SM0.0閉點(diǎn)/TRUE = 主動連接 ;FALSE = 被動連接ConnID:1/ CPU 使用連接 ID (ConnID) 為其它指令標(biāo)識該連接??赡艿?ConnID 范圍為 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最高有效字節(jié),IPaddr4 是 IP 地址的最低有效字節(jié)。服務(wù)器側(cè)IP地址寫0,表示接收所有請求RemPort:0/RemPort 是遠(yuǎn)程設(shè)備上的端口號。遠(yuǎn)程端口號范圍為 1 到 49151。對于被動連接,使用零。LocPort:2000/ LocPort 是本地設(shè)備

17、上的端口號。本地端口號范圍為 1 到 49151,但存在一些限制。DONE:V6000.0/ 當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。BUSY:V6000.1/ 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。ERROR:V6000.2/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出STATUS:VB6002/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)2.調(diào)用TCP_SEND 和 TCP_RCV 指令,如圖7、圖8所示。圖7. TCP發(fā)送塊表2.引腳說明CALL TCP_S

18、END/調(diào)用TCP_SENDEN:SM0.5/使能輸入Req:SM0.5/如果 Req = TRUE,CPU 啟動發(fā)送操作。如果 Req = FALSE,則輸出顯示發(fā)送操作的當(dāng)前狀態(tài)。ConnID:1/連接 ID (ConnID) 是此發(fā)送操作所用連接的編號。使用您為 TCP_CONNECT 操作選擇的 ConnID。DataLen:10/DataLen 是要發(fā)送的字節(jié)數(shù)(1 到 1024)。DataPtr:&VB0/DataPtr 是指向待發(fā)送數(shù)據(jù)的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)。Done:V600

19、0.6/ 當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。Busy:V6000.7/ 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.0/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。Status:VB6004/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)圖8. 發(fā)TCP接收塊表3. 引腳說明CALL TCP_RECV/調(diào)用TCP_RECVEN:SM0.0/使能輸入,常1接收ConnID:1/CPU 將連接 ID (ConnID) 用于此接收操作(連接過程中

20、定義)。MaxLen:10/ MaxLen 是要接收的最大字節(jié)數(shù)(例如,DataPt 中緩沖區(qū)的大?。? 到 1024)。DataPtr:&VB2000/ DataPtr 是指向接收數(shù)據(jù)存儲位置的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)Done:V6001.1/當(dāng)接收操作完成且沒有錯誤時,指令置位 Done 輸出。當(dāng)指令置位 Done 輸出時,Length 輸出有效。Busy:V6001.2/ 當(dāng)接收操作正在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.3/ 當(dāng)接收操作完成但發(fā)生錯誤時,指令置位 Error 輸出Sta

21、tus:VB6005/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)。Length:VW6006/Length 是實(shí)際接收的字節(jié)數(shù)。3.分配庫存儲區(qū),如圖9 所示。圖9. 分配庫存儲區(qū) 注意:為保證指令庫可以正常工作,分配庫存儲區(qū)的時候,一定不能與程序中使用的其他 V 區(qū)地址重疊!通信結(jié)果以S7-200 SMART做服務(wù)器為例。將 S7-200 SMART 項目編譯,下載并觸發(fā)建立連接;在TCP&UDP Debug中點(diǎn)擊連接。通信結(jié)果如下:圖10. 測試結(jié)果(三)S7-20

22、0 SMART 與 S7-1200 之間 TCP 通信 S7-200 SMART 作為服務(wù)器TCP 協(xié)議通信TCP 通信為面向連接的通信,需要雙方都調(diào)用指令以建立連接及交換數(shù)據(jù)。S7-200 SMART 與 S7-1200 通過 TCP 通信,在 S7-1200 調(diào)用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) ,在 S7-200 SMART 調(diào)用 Open User Communication 庫指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。雙方的發(fā)送和接收指令必須成對出現(xiàn)。客戶端:主動建立連接,可以理解

23、為主站 ; 服務(wù)器:被動建立連接,可以理解為從站。 注意:S7-200 SMART 在 CPU 硬件固件及編程軟件版本均升級到 V2.2 之后才開始支持開放式通信。編程軟件版本低于V2.2,無 Open User Communication 庫指令;硬件固件低于 V2.2,硬件不支持開放式通信協(xié)議。S7-200 SMART TCP 連接資源:8個主動連接資源,8個被動連接資源S7-200 SMART TCP 通信數(shù)據(jù)量:1024 字節(jié)硬件和軟件需求及所完成的通信任務(wù)硬件:  S7-1200 CPU (IP 地址 192.168.0.100 ;子網(wǎng)掩碼 255.255.255

24、.0) S7-200 SMART CPU (固件版本V2.2) ( IP 地址 192.168.0.20 ;子網(wǎng)掩碼 255.255.255.0) PC (帶以太網(wǎng)卡) TP 以太網(wǎng)電纜 軟件: STEP7 V13 SP1 Upd 9 STEP 7 Micro/WIN SMART ( 軟件版本 V2.2 ) 所完成的通信任務(wù): S7-1200 發(fā)送 10 個字節(jié)數(shù)據(jù):( S7-1200側(cè) ) DB4.DBB0DB4.DBB9 -> ( S7- 200 SMART 側(cè) ) VB2000VB2009 S7-1200 接收 10 個字節(jié)數(shù)據(jù): ( S7-1200 側(cè) ) D

25、B4.DBB10DB4.DBB19 <- ( S7-200 SMART 側(cè) ) VB0VB9S7-1200 側(cè)硬件組態(tài)和編程 ( 客戶機(jī)側(cè)組態(tài)編程 )1. 使用 TIA V13 SP1 Upd 9 軟件 Portal 視圖中,創(chuàng)建新項目2. 添加硬件并命名PLC進(jìn)入 “項目視圖”,在“項目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機(jī)架上,命名為 PLC_1 如圖1所示圖1. 添加新設(shè)備3. 啟用時鐘位為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:在 “項目樹” > “PLC_1” > “設(shè)

26、備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時鐘存儲器” 下,將時鐘位定義在 MB0,如圖2所示。時鐘位我們使用 M0.5 ,它是頻率為 1 Hz 的脈沖,可以使用它去自動激活發(fā)送任務(wù)。圖2.啟用時鐘位4. 為 PROFINET 通信口分配以太網(wǎng)地址在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 S7-1200 CPU 的 IP 地址為 192.168.0.100 ,子網(wǎng)掩碼為255.255.255.0,如圖3 所示圖3. 分配 IP

27、地址5.在S7-1200 中調(diào)用建立連接指令,進(jìn)入 “項目樹” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令”> “通信”>“開放式用戶通信”下調(diào)用 “TCON” 指令,配置連接參數(shù),如圖4所示。圖4. 調(diào)用TCON指令并配置連接參數(shù)6.創(chuàng)建用于交換數(shù)據(jù)的全局DB塊及定義變量通過“項目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建全局 DB 塊,點(diǎn)擊“確定” 生成數(shù)據(jù)塊。如圖5所示。圖5.添加新塊通過“項目樹”>“PLC_1”>“程序塊”>點(diǎn)擊生成的 “數(shù)據(jù)塊

28、_1” ( DB4 ) ,右鍵屬性,取消勾選“優(yōu)化的塊訪問”。如圖6所示。圖6.取消勾選優(yōu)化的塊訪問雙擊生成的 “數(shù)據(jù)塊_1” ( DB4 ) ,定義數(shù)組,10 個字節(jié)用于發(fā)送,10個字節(jié)用于接收,然后編譯數(shù)據(jù)塊。結(jié)果如圖7所示。圖7. 定義交換數(shù)據(jù)區(qū)7.在OB1中調(diào)用 TSEND 和 TRCV指令塊位置及調(diào)用方法參考 TCON 指令的調(diào)用,調(diào)用結(jié)果如圖8所示。CALL TSEND, DB3/調(diào)用TSEND,使用背景DB塊:DB3REQ:M0.5/使用1Hz的時鐘脈沖,上升沿激活發(fā)送任務(wù)ID:1/連接號,要與連接配置中一致DATA:P#DB4.DBX0.0 BYTE 10/ 發(fā)送數(shù)據(jù)

29、區(qū)的數(shù)據(jù),需要注意DB塊要選用絕對尋址DONE:M20.0/ 任務(wù)執(zhí)行完成并且沒有錯誤,該位置1BUSY:M20.1/ 該位為1,代表任務(wù)未完成,不能激活新任務(wù)ERROR:M20.2/ 通信過程中有錯誤發(fā)生,該位置1STATUS:MW22/ 有錯誤發(fā)生時,會顯示錯誤信息號CALL TRCV, DB5/調(diào)用TRCV,使用背景DB塊:DB5EN_R:M1.2/準(zhǔn)備好接受數(shù)據(jù) ,常1接收ID:1/連接號,要與連接配置中一致DATA:P#DB4.DBX10.0 BYTE 10/ 接受數(shù)據(jù)區(qū)的數(shù)據(jù),需要注意DB塊要選用絕對尋址DONE:M30.0/ 任務(wù)執(zhí)行完成并且沒有錯誤,該位置1BUSY:M30.1

30、/ 該位為1,代表任務(wù)未完成,不能激活新任務(wù)ERROR:M30.2/ 通信過程中有錯誤發(fā)生,該位置1STATUS:MW32/ 有錯誤發(fā)生時,會顯示錯誤信息號RCVD_LEN:MW34/ 實(shí)際接受數(shù)據(jù)的字節(jié)數(shù)圖8. 調(diào)用發(fā)送和接收指令 接收和發(fā)送指令調(diào)用需要注意:程序塊的 ID 要與指令 TCON 中的 ID 保持一致DATA 參數(shù)的填寫方法 ( 以 TRCV 程序塊為例 ):1、直接輸入 : P#DB4.DBX10.0 BYTE 102、打開數(shù)據(jù)塊,點(diǎn)擊數(shù)據(jù)塊右上角浮動按鈕,移動數(shù)據(jù)塊與OB1并排顯示,選中數(shù)據(jù)塊變量名稱 “ TCP_RCV ” 拖拽到 TRCV 指令 DA

31、TA 參數(shù)處,該區(qū)域顯示為綠色,釋放鼠標(biāo)即可。 S7-200 SMART側(cè)編程 ( 服務(wù)器側(cè)組態(tài)編程 )1.打開STEP 7 Micro/WIN SMART>項目樹>指令樹>庫>Open User Communication ,調(diào)用TCP_CONNECT,如圖9所示。TCP_CONNECT/調(diào)用TCP_CONNECTEN:SM0.0/使能輸入Req:V6010.0/如果 Req = TRUE,CPU 啟動連接操作。如果 Req = FALSE,則輸出顯示連接的當(dāng)前狀態(tài)。使用上升沿觸發(fā)Active:SM0.0閉點(diǎn)/TRUE = 主動

32、連接 ;FALSE = 被動連接ConnID:1/ CPU 使用連接 ID (ConnID) 為其它指令標(biāo)識該連接??赡艿?ConnID 范圍為 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最高有效字節(jié),IPaddr4 是 IP 地址的最低有效字節(jié)。服務(wù)器側(cè)IP地址寫0,表示接收所有請求RemPort:0/RemPort 是遠(yuǎn)程設(shè)備上的端口號。遠(yuǎn)程端口號范圍為 1 到 49151。對于被動連接,使用零。LocPort:2000/ LocPort 是本地設(shè)備上的端口號。本地端口號范圍為 1 到 49151,但存在一些限制。DONE:V6000.0/ 當(dāng)連接操作完成

33、且沒有錯誤時,指令置位 Done 輸出。BUSY:V6000.1/ 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。ERROR:V6000.2/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出STATUS:VB6002/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)圖9. 指令位置及調(diào)用連接指令2.調(diào)用TCP_SEND 和 TCP_RCV 指令,如圖10 所示。CALL TCP_SEND/調(diào)用TCP_SENDEN:SM0.5/使能輸入Req:SM0.5/如果 Req = TRUE,C

34、PU 啟動發(fā)送操作。如果 Req = FALSE,則輸出顯示發(fā)送操作的當(dāng)前狀態(tài)。ConnID:1/連接 ID (ConnID) 是此發(fā)送操作所用連接的編號。使用您為 TCP_CONNECT 操作選擇的 ConnID。DataLen:10/DataLen 是要發(fā)送的字節(jié)數(shù)(1 到 1024)。DataPtr:&VB0/DataPtr 是指向待發(fā)送數(shù)據(jù)的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)。Done:V6000.6/ 當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。Busy:V6000.7/ 當(dāng)連接操作正

35、在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.0/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。Status:VB6004/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)CALL TCP_RECV/調(diào)用TCP_RECVEN:SM0.0/使能輸入,常1接收ConnID:1/CPU 將連接 ID (ConnID) 用于此接收操作(連接過程中定義)。MaxLen:10/ MaxLen 是要接收的最大字節(jié)數(shù)(例如,DataPt 中緩沖區(qū)的大?。? 到 1024)。DataPtr:&a

36、mp;VB2000/ DataPtr 是指向接收數(shù)據(jù)存儲位置的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)Done:V6001.1/當(dāng)接收操作完成且沒有錯誤時,指令置位 Done 輸出。當(dāng)指令置位 Done 輸出時,Length 輸出有效。Busy:V6001.2/ 當(dāng)接收操作正在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.3/ 當(dāng)接收操作完成但發(fā)生錯誤時,指令置位 Error 輸出Status:VB6005/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Stat

37、us 為零(無錯誤)。Length:VW6006/Length 是實(shí)際接收的字節(jié)數(shù)。圖10. 調(diào)用發(fā)送和接收指令3.分配庫存儲區(qū),如圖11 所示。圖11. 分配庫存儲區(qū) 注意:為保證指令庫可以正常工作,分配庫存儲區(qū)的時候,一定不能與程序中使用的其他 V 區(qū)地址重疊!通信結(jié)果將 S7-1200 和 S7-200 SMART 項目編譯,下載 ;S7-1200 側(cè)觸發(fā) TCON 指令的REQ (M10.0 置位為1),S7-200 SMART 側(cè)觸發(fā) TCP_CONNECT 指令的Req (V6010.0 置位為1 )以建立連接;通信結(jié)果如下:(四)S7-200 SMA

38、RT 與 S7-1200 之間 TCP 通信 S7-200 SMART 作為客戶端TCP 協(xié)議通信TCP 通信為面向連接的通信,需要雙方都調(diào)用指令以建立連接及交換數(shù)據(jù)。S7-200 SMART 與 S7-1200 通過 TCP 通信,在 S7-1200 調(diào)用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) ,在 S7-200 SMART 調(diào)用 Open User Communication 庫指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。雙方的發(fā)送和接收指令必須成對出現(xiàn)??蛻舳耍褐鲃咏⑦B接,可以理解為主站 ;

39、 服務(wù)器:被動建立連接,可以理解為從站。 注意:S7-200 SMART 在 CPU 硬件固件及編程軟件版本均升級到 V2.2 之后才開始支持開放式通信。編程軟件版本低于V2.2,無 Open User Communication 庫指令;硬件固件低于 V2.2,硬件不支持開放式通信協(xié)議。S7-200 SMART TCP 連接資源:8個主動連接資源,8個被動連接資源S7-200 SMART TCP 通信數(shù)據(jù)量:1024 字節(jié)硬件和軟件需求及所完成的通信任務(wù)硬件:  S7-1200 CPU (IP 地址 192.168.0.100 ;子網(wǎng)掩碼 255.255.255.0) S

40、7-200 SMART CPU (固件版本V2.2 ) ( IP 地址 192.168.0.55 ;子網(wǎng)掩碼 255.255.255.0) PC (帶以太網(wǎng)卡) TP 以太網(wǎng)電纜 軟件: STEP7 V13 SP1 Upd 9 STEP 7 Micro/WIN SMART ( 軟件版本 V2.2 ) 所完成的通信任務(wù): S7-200 SMART 發(fā)送 10 個字節(jié)數(shù)據(jù):(S7-200 SMART 側(cè) ) VB0VB9 -> ( S7-1200側(cè) ) DB4.DBB10DB4.DBB19 S7-200 SMART 接收 10 個字節(jié)數(shù)據(jù): ( S7-200 SMART

41、側(cè) ) VB2000VB2009<- ( S7-1200 側(cè) ) DB4.DBB0DB4.DBB9S7-200 SMART側(cè)編程 ( 客戶機(jī)側(cè)組態(tài)編程 )1.打開STEP 7 Micro/WIN SMART>項目樹>指令樹>庫>Open User Communication ,調(diào)用TCP_CONNECT,如圖1所示。TCP_CONNECT/調(diào)用TCP_CONNECTEN:SM0.0/使能輸入Req:V6010.0/如果 Req = TRUE,CPU 啟動連接操作。如果 Req = FALSE,則輸出顯示連接的當(dāng)前狀

42、態(tài)。使用上升沿觸發(fā)Active:SM0.0/TRUE = 主動連接 ;FALSE = 被動連接ConnID:1/ CPU 使用連接 ID (ConnID) 為其它指令標(biāo)識該連接。可能的 ConnID 范圍為 0 到 65534。IPaddr14:192.168.0.100/IPaddr1 是 IP 地址的最高有效字節(jié),IPaddr4 是 IP 地址的最低有效字節(jié)。192.168.0.100為伙伴的IP地址RemPort:2001/RemPort 是遠(yuǎn)程設(shè)備上的端口號。遠(yuǎn)程端口號范圍為 1 到 49151。LocPort:2000/ LocPort 是本地設(shè)備上的端口號。本地端口號范圍為 1 到

43、 49151,但存在一些限制。DONE:V6000.0/ 當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。BUSY:V6000.1/ 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。ERROR:V6000.2/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出STATUS:VB6002/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)圖1. 指令位置及調(diào)用連接指令2.調(diào)用TCP_SEND 和 TCP_RCV 指令,如圖2 所示。CALL TCP_SEND/調(diào)用TCP_SENDEN:

44、SM0.5/使能輸入Req:SM0.5/如果 Req = TRUE,CPU 啟動發(fā)送操作。如果 Req = FALSE,則輸出顯示發(fā)送操作的當(dāng)前狀態(tài)。ConnID:1/連接 ID (ConnID) 是此發(fā)送操作所用連接的編號。使用您為 TCP_CONNECT 操作選擇的 ConnID。DataLen:10/DataLen 是要發(fā)送的字節(jié)數(shù)(1 到 1024)。DataPtr:&VB0/DataPtr 是指向待發(fā)送數(shù)據(jù)的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)。Done:V6000.6/ 當(dāng)連接操作完成且沒有錯誤

45、時,指令置位 Done 輸出。Busy:V6000.7/ 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.0/ 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。Status:VB6004/ 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)CALL TCP_RECV/調(diào)用TCP_RECVEN:SM0.0/使能輸入,常1接收ConnID:1/CPU 將連接 ID (ConnID) 用于此接收操作(連接過程中定義)。MaxLen:10/ MaxLen 是要接收的最大字節(jié)數(shù)(例如,

46、DataPt 中緩沖區(qū)的大?。? 到 1024)。DataPtr:&VB2000/ DataPtr 是指向接收數(shù)據(jù)存儲位置的指針。這是指向 I、Q、M 或 V 存儲器的 S7-200 SMART 指針(例如,VB100)Done:V6001.1/當(dāng)接收操作完成且沒有錯誤時,指令置位 Done 輸出。當(dāng)指令置位 Done 輸出時,Length 輸出有效。Busy:V6001.2/ 當(dāng)接收操作正在進(jìn)行時,指令置位 Busy 輸出。Error:V6001.3/ 當(dāng)接收操作完成但發(fā)生錯誤時,指令置位 Error 輸出Status:VB6005/ 如果指令置位 Error 輸出,Status 輸

47、出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)。Length:VW6006/Length 是實(shí)際接收的字節(jié)數(shù)。圖2. 調(diào)用發(fā)送和接收指令3.分配庫存儲區(qū),如圖3 所示。圖3. 分配庫存儲區(qū) 注意:為保證指令庫可以正常工作,分配庫存儲區(qū)的時候,一定不能與程序中使用的其他 V 區(qū)地址重疊!S7-1200 側(cè)硬件組態(tài)和編程 ( 服務(wù)器側(cè)組態(tài)編程 )1. 使用 TIA V13 SP1 Upd 9 軟件 Portal 視圖中,創(chuàng)建新項目2. 添加硬件并命名PLC進(jìn)入 “項目視圖”,在“項目樹” 下雙擊 “添加新設(shè)備”,在

48、對話框中選擇所使用的 S7-1200 CPU 添加到機(jī)架上,命名為 PLC_1 如圖4 所示圖4. 添加新設(shè)備3. 啟用時鐘位為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:在 “項目樹” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時鐘存儲器” 下,將時鐘位定義在 MB0,如圖5所示。時鐘位我們使用 M0.5 ,它是頻率為 1 Hz 的脈沖,可以使用它去自動激活發(fā)送任務(wù)。圖5.啟用時鐘位4. 為 PROFINET 通信口分配以太網(wǎng)地址在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROF

49、INET 通信口的綠色小方塊,在下方會出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 S7-1200 CPU 的 IP 地址為 192.168.0.100 ,子網(wǎng)掩碼為255.255.255.0,如圖6 所示圖6. 分配 IP 地址5.在S7-1200 中調(diào)用建立連接指令,進(jìn)入 “項目樹” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令”> “通信”>“開放式用戶通信”下調(diào)用 “TCON” 指令,配置連接參數(shù),如圖7所示。圖7. 調(diào)用TCON指令并配置連接參數(shù)6.創(chuàng)建用于交換數(shù)據(jù)的全局DB塊及

50、定義變量通過“項目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建全局 DB 塊,點(diǎn)擊“確定” 生成數(shù)據(jù)塊。如圖8所示。圖8.添加新塊通過“項目樹”>“PLC_1”>“程序塊”>點(diǎn)擊生成的 “數(shù)據(jù)塊_1” ( DB4 ) ,右鍵屬性,取消勾選“優(yōu)化的塊訪問”。如圖9所示。圖9.取消勾選優(yōu)化的塊訪問雙擊生成的 “數(shù)據(jù)塊_1” ( DB4 ) ,定義數(shù)組,10 個字節(jié)用于發(fā)送,10個字節(jié)用于接收,然后編譯數(shù)據(jù)塊。結(jié)果如圖10所示。圖10. 定義交換數(shù)據(jù)區(qū)7.在OB1中調(diào)用 TSEND 和 TRCV指令塊位置及調(diào)用方法參考 TCON

51、指令的調(diào)用,調(diào)用結(jié)果如圖11所示。CALL TSEND, DB3/調(diào)用TSEND,使用背景DB塊:DB3REQ:M0.5/使用1Hz的時鐘脈沖,上升沿激活發(fā)送任務(wù)ID:1/連接號,要與連接配置中一致DATA:P#DB4.DBX0.0 BYTE 10/ 發(fā)送數(shù)據(jù)區(qū)的數(shù)據(jù),需要注意DB塊要選用絕對尋址DONE:M20.0/ 任務(wù)執(zhí)行完成并且沒有錯誤,該位置1BUSY:M20.1/ 該位為1,代表任務(wù)未完成,不能激活新任務(wù)ERROR:M20.2/ 通信過程中有錯誤發(fā)生,該位置1STATUS:MW22/ 有錯誤發(fā)生時,會顯示錯誤信息號CALL TRCV, DB5/調(diào)用TRCV,使用背景DB塊:DB5E

52、N_R:M1.2/準(zhǔn)備好接受數(shù)據(jù) ,常1接收ID:1/連接號,要與連接配置中一致DATA:P#DB4.DBX10.0 BYTE 10/ 接受數(shù)據(jù)區(qū)的數(shù)據(jù),需要注意DB塊要選用絕對尋址DONE:M30.0/ 任務(wù)執(zhí)行完成并且沒有錯誤,該位置1BUSY:M30.1/ 該位為1,代表任務(wù)未完成,不能激活新任務(wù)ERROR:M30.2/ 通信過程中有錯誤發(fā)生,該位置1STATUS:MW32/ 有錯誤發(fā)生時,會顯示錯誤信息號RCVD_LEN:MW34/ 實(shí)際接受數(shù)據(jù)的字節(jié)數(shù)圖11. 調(diào)用發(fā)送和接收指令 接收和發(fā)送指令調(diào)用需要注意:程序塊的 ID 要與指令 TCON 中的 ID 保持一致

53、DATA 參數(shù)的填寫方法 ( 以 TRCV 程序塊為例 ):1、直接輸入 : P#DB4.DBX10.0 BYTE 102、打開數(shù)據(jù)塊,點(diǎn)擊數(shù)據(jù)塊右上角浮動按鈕,移動數(shù)據(jù)塊與OB1并排顯示,選中數(shù)據(jù)塊變量名稱 “ TCP_RCV ” 拖拽到 TRCV 指令 DATA 參數(shù)處,該區(qū)域顯示為綠色,釋放鼠標(biāo)即可。通信結(jié)果將 S7-1200 和 S7-200 SMART 項目編譯,下載 ;S7-1200 側(cè)觸發(fā) TCON 指令的REQ (M10.0 置位為1) ,S7-200 SMART 側(cè)觸發(fā) TCP_CONNECT 指令的Req (V6010.0 置位為1 )以建立連接;通信結(jié)果如下:(五)S7-

54、200 SMART 與 S7-300 集成 PN 口之間 TCP 通信 S7-200 SMART 作為服務(wù)器TCP 協(xié)議通信TCP 通信為面向連接的通信,需要雙方都調(diào)用指令以建立連接及交換數(shù)據(jù)。S7-200 SMART 與 S7-300 通過 TCP 通信,在 S7-300 調(diào)用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) ,在 S7-200 SMART 調(diào)用 Open User Communication 庫指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。雙方的發(fā)送和接收指令必須成對出現(xiàn)??蛻舳耍褐鲃咏⑦B

55、接,可以理解為主站 ; 服務(wù)器:被動建立連接,可以理解為從站。 注意:S7-200 SMART 在 CPU 硬件固件及編程軟件版本均升級到 V2.2 之后才開始支持開放式通信。編程軟件版本低于V2.2,無 Open User Communication 庫指令;硬件固件低于 V2.2,硬件不支持開放式通信協(xié)議。S7-200 SMART TCP 連接資源:8個主動連接資源,8個被動連接資源S7-200 SMART TCP 通信數(shù)據(jù)量:1024 字節(jié)硬件和軟件需求及所完成的通信任務(wù)硬件:  S7-300 CPU (IP 地址 192.168.0.101 ;子網(wǎng)掩碼 255.25

56、5.255.0) S7-200 SMART CPU (固件版本V2.2) ( IP 地址 192.168.0.20 ;子網(wǎng)掩碼 255.255.255.0) PC (帶以太網(wǎng)卡) TP 以太網(wǎng)電纜 軟件: STEP7 V13 SP1 Upd 9 STEP 7 Micro/WIN SMART ( 軟件版本 V2.2 ) 所完成的通信任務(wù): S7-300 發(fā)送 10 個字節(jié)數(shù)據(jù):( S7-300 側(cè) ) DB5.DBB0DB5.DBB9 -> ( S7- 200 SMART 側(cè) ) VB2000VB2009 S7-300 接收 10 個字節(jié)數(shù)據(jù): ( S7-300 側(cè) ) DB5.DBB10DB5.DBB19 <- ( S7-200 SMART 側(cè) ) VB0VB9S7-300 側(cè)硬件組態(tài)和編程 ( 客戶機(jī)側(cè)組態(tài)編程 )1. 使用 TIA V13 SP1 Upd 9 軟件 Portal 視圖中,創(chuàng)建新項目2. 添加硬件并命名PLC進(jìn)入 “項目視圖”,在“項目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-300 CPU 添加到機(jī)架上,命名為 PLC_2 如圖1 所示。圖1. 添加新設(shè)備3. 啟用時鐘位為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論