軟件使用STEP 7-MicroWIN SMART
TCP 協議通訊
TCP是一個(ge) 因特網核心協議。在通過以太網通信的主機上運行的應用程序之間,TCP 提供了可靠、有序並能夠進行錯誤校驗的消息發送功能。TCP 能保證接收和發送的所有字節內(nei) 容和順序完全相同。TCP 協議在主動設備(發起連接的設備)和被動設備(接受連接的設備)之間創建連接。一旦連接建立,任一方均可發起數據傳(chuan) 送。
TCP協議是一種"流"協議。這意味著消息中不存在結束標誌。所有接收到的消息均被認為(wei) 是數據流的一部分。
S7 200 SMART與(yu) 之間的TCP通訊可以通過兩(liang) 邊調用OUC(開放式用戶通訊)指令庫中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令來實現。
圖1.開放式用戶通訊庫
開放式用戶通信庫需要使用 50 個(ge) 字節的 V 存儲(chu) 器。
開放式的用戶通訊連接資源包括8個(ge) 主動連接和8個(ge) 被動連接。
隻可從(cong) 主程序或中斷例程中調用庫函數,但不可同時從(cong) 這兩(liang) 個(ge) 程序中調用。
所需條件:
1、軟件版本:STEP 7-Micro/WIN SMART V2.2
2、SMART CPU固件版本:V2.2
3、通訊硬件:TP電纜(以太網電纜)
所完成的通訊任務:
將作為(wei) 客戶端的PLC(IP地址為(wei) 192.168.0.101)中VB0-VB3的數據傳(chuan) 送到作為(wei) 服務器端的PLC(IP地址為(wei) 192.168.0.102)的VB2000-VB2003中。
S7-200 SMART 客戶端編程1、設置本機IP地址
在客戶端設置IP地址為(wei) 192.168.0.101
圖2.設置IP地址
2、建立TCP連接
調用TCP_CONNECT指令建立TCP連接。設置連接夥(huo) 伴地址為(wei) 192.168.0.102,遠端端口為(wei) 2001,本地端口為(wei) 5000,連接標識ID為(wei) 1。利用SM0.0使能Active,設置為(wei) 主動連接。
圖3.調用TCP_CONNECT指令
指令的參數
輸入參數:
EN :使能輸入
Req:沿觸發
Active :TURE=主動連接(客戶端)
FALSE=被動連接(服務器)
ConnID:連接ID為(wei) 連接標識符,可能範圍為(wei) 0-65534。
ipadsdr1 ... ipadsdr4 :IP 地址的四個(ge) 八位字節。ipadsdr1 是 IP 地址的最高有效字節,ipadsdr4 是 IP 地址的最低有效字節。
RemPort:遠程設備上的端口號。遠程端口號範圍為(wei) 1 到 49151。對於(yu) 被動連接,可使用零。
LocPort :本地設備端口號。範圍為(wei) 1-49151,但是存在一些限製。
本地端口號的規則如下:
- 有效端口號範圍為 1 到 49151。
- 不能使用端口號 20、21、25、80、102、135、161、162、443以及34962至34964。這些端口具有特定用途。
- 建議采用的端口號範圍為 2000 到 5000。
- 對於被動連接,本地端口號必須唯一(不重複)。
輸出參數:
Done:當連接操作完成且沒有錯誤時,指令置位 Done 輸出。
Busy: 當連接操作正在進行時,指令置位 Busy 輸出。
Error:當連接操作完成但發生錯誤時,指令置位 Error 輸出。
Status:如果指令置位 Error 輸出,Status 輸出會(hui) 顯示錯誤代碼。具體(ti) 錯誤代碼對應詳見手冊(ce) 。如果指令置位 Busy 或 Done 輸出,Status 為(wei) 零(無錯誤)。
3、調用發送數據指令TCP_SEND
調用TCP_SEND指令發送以VB0為(wei) 起始,數據長度為(wei) DataLen長度的數據發送到連接ID為(wei) 1指定的遠程設備。
利用1HZ的時鍾上升沿觸發發送請求。
圖4.調用TCP_SEND指令
指令的參數
輸入參數:
EN :使能輸入
Req:沿觸發
ConnID:連接 ID (ConnID) 是此發送操作的連接ID號。
DataLen :DataLen 是要發送的字節數(1 到 1024)。
DataPtr:DataPtr 是指向待發送數據的指針。
輸出參數:
Done:當連接操作完成且沒有錯誤時,指令置位 Done 輸出。
Busy: 當連接操作正在進行時,指令置位 Busy 輸出。
Error:當連接操作完成但發生錯誤時,指令置位 Error 輸出。
Status:如果指令置位 Error 輸出,Status 輸出會(hui) 顯示錯誤代碼。具體(ti) 錯誤代碼對應詳見手冊(ce) 。如果指令置位 Busy 或 Done 輸出,Status 為(wei) 零(無錯誤)。
4、終止通訊連接
用戶可通過DISCONNECT指令終止指定ID的連接。
圖5.調用DISCONNECT指令
參數說明:
輸入參數:
EN :使能
Req:沿觸發指令。
輸出參數:
Done:當連接操作完成且沒有錯誤時,指令置位 Done 輸出。
Busy: 當連接操作正在進行時,指令置位 Busy 輸出。
Error:當連接操作完成但發生錯誤時,指令置位 Error 輸出。
Status:如果指令置位 Error 輸出,Status 輸出會(hui) 顯示錯誤代碼。具體(ti) 錯誤代碼對應詳見手冊(ce) 。如果指令置位 Busy 或 Done 輸出,Status 為(wei) 零(無錯誤)。
5、分配庫存儲(chu) 區
開放式用戶通信庫需要使用 50 個(ge) 字節的 V 存儲(chu) 器,用戶需手動分配 。在指令樹的程序中,以鼠標右鍵單擊程序塊,在彈出的快捷菜單中選擇庫存儲(chu) 器。如圖所示:
圖6.庫存儲(chu) 器
在彈出的選項卡中設置庫指令數據區:
圖7.庫存儲(chu) 器分配地址
S7-200 SMART 服務器端編程1、設置本機IP地址
設置IP地址為(wei) 192.168.0.102
圖8.設置本機IP地址
2、建立TCP連接
調用TCP_CONNECT指令建立TCP連接。設置連接夥(huo) 伴地址為(wei) 192.168.0.101,遠端端口為(wei) 5000,本地端口為(wei) 2001,連接標識ID為(wei) 1。利用SM0.0常閉點使能Active,設置為(wei) 被動連接。
圖9.調用TCP_CONNECT指令
3、接收數據
調用TCP_RECV指令接收指定ID連接的的數據。接收的緩衝(chong) 區長度為(wei) MaxLen,數據接收緩衝(chong) 區以VB2000為(wei) 起始。
圖11.調用TCP_RECV指令
監控結果其中客戶端的VW1000是發送的數據長度,服務器端的vw1000是接收的數據長度。
圖12.監控結果
TCP例程為(wei) 了更好地理解 TCP的編程,可參考下麵的例程。
1. 該例程使用 STEP 7-Micro/WIN SMART 編寫(xie) 。
2.在建立連接時需先觸發服務器端的建立連接指令,再觸發客戶端。
TCP_Client 客戶端和TCP_Server 服務器 例程 www.fpxing.com/Article/UploadFiles/202402/2024021121420541.zip
注意:
此指令庫/程序的作者和擁有者對於(yu) 該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由於(yu) 它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為(wei) 此聯係西門子技術支持與(yu) 服務部門。