<tbody id="q8owe"></tbody>
  • <rp id="q8owe"><acronym id="q8owe"></acronym></rp>
    <dd id="q8owe"></dd>

      <em id="q8owe"></em>

      <em id="q8owe"><acronym id="q8owe"><u id="q8owe"></u></acronym></em>
      <dd id="q8owe"></dd>
      <tbody id="q8owe"><pre id="q8owe"></pre></tbody>
    1. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> PLC基礎入門教程 >> 正文

      MODBUS-TCP協議講解,Modbus TCP相比較Modbus RTU的優勢

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/8/25

      一、Modbus TCP通信概述


      MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設備的MODBUS系列通訊協議的派生產品,顯而易見,它覆蓋了使用TCP/IP協議的“Intranet”和“Internet”環境中MODBUS報文的用途。協議的最通用用途是為諸如PLC,I/O模塊,以及連接其它簡單域總線或I/O模塊的網關服務的。


      MODBUS-TCP協議講解 

      Modbus TCP協議是在RTU協議前面添加MBAP報文頭,由于TCP是基于可靠連接的服務,RTU協議中的CRC校驗碼就不再需要,所以在Modbus TCP協議中是沒有CRC校驗碼。(使用上的主要區別)。MBAP報文頭:

       

      事務處理標識 ( 2字節 ) 協議標識( 2字節 ) 長度( 2字節 ) 單元標識符(1字節 )

       

      二. 通訊所使用的以太網參考模型


      Modbus TCP傳輸過程中使用了TCP/IP以太網參考模型的5層:

       

      第一層:物理層,提供設備物理接口,與市售介質/網絡適配器相兼容

       

      第二層:數據鏈路層,格式化信號到源/目硬件址數據幀

       

      第三層:網絡層,實現帶有32位IP址IP報文包

       

      第四層:傳輸層,實現可靠性連接、傳輸、查錯、重發、端口服務、傳輸調度

       

      第五層:應用層,Modbus協議報文

       

      三. Modbus TCP數據幀


      由于使用以太網TCP/IP數據鏈路層的校驗機制而保證了數據的完整性,MODBUS TCP 報文中不再帶有數據校驗”CHECKSUM”,原有報文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS應用協議報文頭中。

       

      由MBAP 頭和PDU 構成, MBAP= Modbus Application Protocol Header(Modbus應用協議) 頭部

       

      PDU = Protocol Data Unit (數據單元)


       

      ADU:Application Data Unit

       

      四. Modbus TCP使用的通訊資源端口號


      在Modbus服務器中按缺省協議使用Port 502 通信端口,在Modbus客戶器程序中設置任意通信端口,為避免與其他通訊協議的沖突一般建議2000開始可以使用。

       

      五. Modbus TCP使用的功能代碼


      按照使用的通途區分,共有3種類型分別為:

       

      1) 公共功能代碼:已定義好功能碼,保證其唯一性,由Modbus.org認可;

       

      2) 用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認可,但不保證代碼使用唯一性,如變為公共代碼,需交RFC認可;

       

      3) 保留功能代碼,由某些公司使用某些傳統設備代碼,不可作為公共用途。

       

      modbus的操作對象有四種:線圈、離散輸入、輸入寄存器、保持寄存器

       

      線圈:PLC的輸出位,開關量,在MODBUS中可讀可寫

      離散量:PLC的輸入位,開關量,在MODBUS中只讀

      輸入寄存器:PLC中只能從模擬量輸入端改變的寄存器,在MODBUS中只讀

      保持寄存器:PLC中用于輸出模擬量信號的寄存器,在MODBUS中可讀可寫

      根據對象的不同,modbus的功能碼有:

       

      0x01:讀線圈

      0x02:讀離散量輸入

      0x03:讀保持寄存器

       

      0x04:讀輸入寄存器

       

      0x05:寫單個線圈

      0x06:寫單個保持寄存器

      0x10:寫多個保持寄存器

      0x0F:寫多個線圈

       

      按照應用深淺,可分為3個類別:

       

      1) 類別0,客戶機/服務器最小可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。

       

      2) 類別1,可實現基本互易操作常用代碼:讀線圈(fc.1);讀開關量輸入(fc.2);讀輸入寄存器(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。

       

      3) 類別2,用于人機界面、監控系統例行操作和數據傳送功能:強制多個線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)。

       

      六. Modbus TCP通訊應用舉例


      在讀寄存器的過程中,以Modbus TCP請求報文為例,具體的數據傳輸過程如下:

       

      1) Modbus TCP客戶端實況,用Connect()命令建立目標設備TCP 502端口連接數據通信過程;

       

      2) 準備Modbus報文,包括7個字節MBAP內請求;

       

      3) 使用send()命令發送;

       

      4) 同一連接等待應答;

       

      5) 同recv()讀報文,完成一次數據交換過程;

       

      6) 當通信任務結束時,關閉TCP連接,使服務器可以為其他服務。

       

      七. Modbus TCP相比較Modbus RTU的優勢


      1) 當多個網關共同接一個后臺服務器,而一個網關下掛接多個485設備時,如果不同的網關掛接同樣地址號的485設備時那么后臺服務器無法區分是哪個485從設備,并且最多只能限制485設備個數254個,而modbus-tcp協議包含自定義報文頭4個字節和數據長度,我們可以通過報文頭標識不同的網關或者通過數據長度區分,從而增加了可拓展的485設備個數,很好的解決了問題。

       

      2) 目前Modbus TCP/IP協議主要應用領域Internet或Intranet中,而以太網傳輸距離遠、傳輸速度快,使得應用范圍廣泛傳輸距離遠、傳輸速度快,使得應用范圍廣泛。

       

      Tags:modbus-tcp,TCP協議  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      推薦文章
      最新推薦
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      亚洲欧美日产在线观看,欧美中字慕日产2,欧美亚洲日产激情四射,日产精品视频一至六区