加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        淺談西門子PLC通信中的TCPIP的連接和斷開
        發布時間: 2024-04-02 15:32 更新時間: 2024-11-22 08:00
        觀看淺談西門子PLC通信中的TCPIP的連接和斷開視頻

        淺談PLC通信中的TCPIP的連接和斷開


        在PLC通信中,TCP/IP是大家普遍選擇的協議,因為它是開放的以太網協議,不僅僅在西門子內部的設備之間可以使用,也可以在與第三方的設備之間進行廣泛的通信。其中原因還包含TCP/IP是面向連接的,可靠的通信服務協議。

        對于面向連接,表示通信是需要建立連接的,那么必然會對應斷開連接,早期的300/400PLC我們會在NetPro中進行組態TCP的連接,這屬于靜態鏈接,不能通過程序斷開TCP/IP的連接。而對于新的PN CPU,例如S7-1500CPU,則可以使用T_CON和T_DISCON分別來動態的建立和斷開連接,實現靈活的TCP通信。

        使用T_CON建立連接就是TCP通信的3次握手,通過Wireshark抓包是可以看見三次握手的過程,但這是大家看到的外在表象,實際上通過T_CON是先建立了TCP的通信資源,然后通過該通信資源與對方建立三次握手的連接。下圖的wireshark中的1507,1509,以及1510是TCP的3次握手過程,在這三次握手中,通信雙方協商了Widow Size和MSS的大小,即滑動窗口和TCP的Zui大分節長度。PLC中的TCP/IP的三次握手與標準的TCP/IP協議的三次握手形式相同。

        使用T_DISCON程序功能塊是用于斷開連接的,然而與標準的TCP/IP通信的4次揮手是不同的,本質上是報文中的標志字段標志位不同,標準的TCP/IP的4次揮手字段標志位使用FIN,即Finish用來結束此連接,但是資源沒有釋放。而PLC中TCP的斷開連接,并不是真的用于斷開連接,而是釋放通信資源,真正的邏輯是因為釋放資源,所以連接斷開。所以這和標準的TCP的4次揮手完全不同,而是使用字段標志位RST,即Reset來釋放連接資源。通過Wireshark抓包來觀察斷開連接的過程。上圖中的1797,是客戶端使用T_DISCON的斷開連接的過程,客戶端通知服務器已釋放該TCP的通信資源,連接斷開。

        下圖中的2012,是服務器端使用T_DISCON的斷開連接的過程,通知客戶端已釋放該TCP的通信資源,連接斷開。2089,2197表示客戶端嘗試繼續與服務器建立連接,然而服務器通知客戶端,2198通信資源釋放,連接斷開。

        那么為什么斷開連接,PLC不能參考標準TCP的4次揮手呢?我想原因有兩點,第一點是資源釋放,有利于靈活的編程,例如,PLC A與其中一臺PLC B斷開連接,資源釋放,利用釋放的資源,與PLC C建立連接進行通信;第二點就是標準的4次揮手期間,數據仍然是可以交互的,對于工業環境來說,數據安全是有要求的,所以使用釋放資源的方式,防止連接斷開繼續有數據交互,避免不必要的編程錯誤。

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415