時間:2018-06-04 17:45:42來源:網絡轉載
在西門子PLC的開放式以太網通信(OpenUserCommunication)中,無論是使用TCP協議還是UDP協議,首先都需要使用函數TCON來建立連接。善于思考的小伙伴們肯定會提出一個問題:UDP協議不是面向非連接的協議嗎?為什么還需要使用TCON來建立通信連接呢?今天這篇文章,我們就來回答這個問題。
我們把TCP協議和UDP協議做個對比,首先明確結論:TCP是面向連接的協議;UDP是面向非連接的協議。這里的“連接”,是指通信雙方在協議層上建立的一條專用的數據傳輸通道。
TCP協議是有真實的數據傳輸通道的,它的執行跟打電話的過程很類似。一個人要想給另一個人打電話,首先要撥號,一旦對方接起電話,兩人之間就建立了一條專用的通信信道。如果出現斷線,則需要重新撥號,再次建立連接才能繼續通話。TCP的傳輸過程也是類似的,通信的發起方必須和接收方建立連接,才能進行通信。一旦連接中斷,則需要重新請求建立連接。TCP的傳輸具有確認機制,是可靠的、安全的。當然,相對慢些。
UDP協議則不同,它不需要在兩個通信伙伴之間建立真實的通信信道,其執行過程跟寫信很類似。寄信人將收信人的名稱和地址寫到信封上,然后把信投到郵箱。至于這封信是順利到達收信人的手中還是在中途遺失了,它完全不管。UDP協議沒有確認重傳機制,不需要在通信伙伴之間建立通信連接,因此把它稱作是“面向非連接”的協議。其優點是傳輸速度較快。
好了,那么問題來了。既然UDP是面向非連接的協議,為什么在西門子PLC的開放式以太網通信(OpenUserCommunication)中,在使用UDP傳輸前,要調用TCON函數來建立“連接”?
其實,TCON函數即可用于TCP傳輸的連接,也可用于UDP傳輸的連接。用于TCP通信時,它是真實在通信伙伴之間建立連接;而用于UDP通信時,它只是用來配置通信的參數(比如,通信伙伴的IP地址和端口號)。用戶程序通過調用TCON函數把UDP的通信參數交給PLC的操作系統,之后它就不管了。操作系統負責把這些信息以UDP報文的形式發送出去。因此,在UDP通信時,TCON函數是在用戶程序和操作系統之間建立了“連接”,而不是與通信伙伴建立連接,此“連接”非彼“連接”。
下面這張圖,是博途(Portal)環境下TCON函數的方框圖:
標簽:
下一篇:越難懂的東西是不是越有動力...
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26