<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    SMART PLC的TCP通信及應用
    發布時間: 2023-11-29 10:20 更新時間: 2024-12-28 09:10

    TCP通信概述:


    TCP是一個因特網核心協議。在通過以太網通信的主機上運行的應用程序之間,TCP提供了可靠、有序并能夠進行錯誤校驗的消息發送功能;并且能保證接收和發送的所有字節內容和順序完全相同。


    TCP協議在主動設備(發起連接的設備)和被動設備(接受連接的設備)之間創建連接。一旦連接建立,任一方均可發起數據傳送。TCP協議是一種"流"協議。這意味著消息中不存在結束標志。


    所有接收到的消息均被認為是數據流的一部分,S7-200 SMART之間的TCP通訊,可以通過兩邊調用OUC(開放式用戶通信)庫指令中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令來實現。


    安裝軟件后,這些指令位于軟件項目樹中指令-庫-Open User Communication文件夾中,通過開放式用戶通信庫指令,可以幫助客戶快速便捷地實現設備間的TCP通信。



    開放式用戶通信庫指令


    創建連接TCP_CONNECT指令


    圖片


  • EN:使能參數,一般使用SM0.0保證每個掃描周期都能開啟。

  • Req:請求通信參數,置位時表示啟動連接操作,主動連接一般使用沿觸發,被動連接一般使用電平觸發。

  • Active:1=主動連接(客戶端);0=被動連接(服務器)。

  • ConnID:連接標識符,可能范圍為0-65534。

  • IPAddr1-4:IP地址的從高到低四個字節。

  • RemPort:遠程設備端口號。范圍為1-49151。對于被動連接,可使用零。

  • LocPort:本地設備端口號。范圍為1-49151,但是存在一些限制,建議采用的端口號范圍為2000到5000。

  • Done:當連接操作完成且沒有錯誤時,該位置位輸出。

  • Busy:當連接操作正在進行時,該位置位輸出。

  • Error:當連接操作完成但發生錯誤時,該位置位輸出。

  • Status:如果指令置位Error輸出,Status輸出會顯示錯誤代碼;如果指令置位Busy或Done輸出,Status為零(錯誤代碼詳見系統手冊)。


  • 終止現有連接DISCONNECT指令


    圖片


  • EN:使能參數,一般使用SM0.0保證每個掃描周期都能開啟。

  • Req:請求斷開參數,置位時表示啟動斷開連接操作,一般使用沿觸發。

  • Conn_ID:CPU使用連接ID(ConnID)標識要終止的連接。

  • Done:當斷開連接操作完成且沒有錯誤時,該位置位輸出。

  • Busy:當斷開連接操作正在進行時,該位置位輸出。

  • Error:當斷開連接操作完成但發生錯誤時,該位置位輸出。

  • Status:如果指令置位Error輸出,Status輸出會顯示錯誤代碼;如果指令置位Busy或Done輸出,Status為零(錯誤代碼詳見系統手冊)。


  • 請求發送TCP_SEND指令


    圖片


  • EN:使能參數,一般使用SM0.0保證每個掃描周期都能開啟。

  • Req:請求發送參數,置位時表示啟動發送操作,一般使用沿觸發。

  • Conn_ID:是此發送操作所用連接的編號。

  • DataLen:要發送的字節數(1到1024)。

  • DataPtr:是指向待發送數據的指針,如&VB100。

  • Done:當發送操作完成且沒有錯誤時,該位置位輸出。

  • Busy:當發送操作正在進行時,該位置位輸出。

  • Error:當發送操作完成但發生錯誤時,該位置位輸出。

  • Status:如果指令置位Error輸出,Status輸出會顯示錯誤代碼;如果指令置位Busy或Done輸出,Status為零(錯誤代碼詳見系統手冊)。


  • 數據接收TCP_SECV指令


    圖片


  • EN:使能參數,一般使用SM0.0保證每個掃描周期都能開啟。

  • Conn_ID:是此接收操作所用連接的編號。

  • MaxLen:要接收的Zui大字節數(1到1024)。

  • DataPtr:是指向接收數據存儲位置的指針,如&VB100。

  • Done:當接收操作完成且沒有錯誤時,該位置位輸出。

  • Busy:當接收操作正在進行時,該位置位輸出。

  • Error:當接收操作完成但發生錯誤時,該位置位輸出。

  • Status:如果指令置位Error輸出,Status輸出會顯示錯誤代碼;如果指令置位Busy或Done輸出,Status為零(錯誤代碼詳見系統手冊)。

  • Length:實際接收的字節數。僅當指令置位Done或Error輸出時,Length才有效。Done輸出時,指令接收整條消息;Error位輸出時,則超出緩沖區大小的部分被截斷。



  • 應用實例


    通過開放式用戶通信庫指令,實現CPU之間的數據交換,其中客戶端IP地址為192.168.2.1,服務器IP地址為192.168.2.2,客戶端TSAP為“smart1”,服務器TSAP為“smart2”,ConnID設定為10,將服務器VB1000-VB1004中的數據讀取至客戶端VB100-VB104中,將客戶端中VB200-VB204的數據寫入服務器VB2000-VB2004。

    客戶端程序:


    圖片


    服務器程序:


    圖片


    執行結果:


    圖片


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595