<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 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      Modbus RTU與Modbus TCP的區別

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-09-08

      Modbus通信協議具有多個變種,支持串口(主要是RS-485總線),以太網多個版本,其中最著名的是Modbus RTU,Modbus ASCII和Modbus TCP三種。

      在工業現場一般都是采用Modbus RTU協議,一般而言,大家說的基于串口通信的Modbus通信協議都是指Modbus RTU通信協議。與Modbus RTU協議相比較,

      Modbus TCP協議則是在RTU協議上加一個MBAP報文頭,并且由于TCP是基于可靠連接的服務,RTU協議中的CRC校驗碼就不再需要,所以在Modbus TCP協

      議中是沒有CRC校驗碼的,所以就常用一句比較通俗的話來說:Modbus TCP協議就是Modbus RTU協議在前面加上五個0以及一個6,然后去掉兩個CRC校驗碼

      字節就OK。雖然這句話說得不是特別準確,但是也基本上把RTU與TCP之間的區別說得比較清楚了。

        Modbus的功能碼有:

      功能碼 含義 功能碼 含義
      0x01 讀線圈 0x04 讀輸入寄存器
      0x05 寫單個線圈 0x03 讀保持寄存器
      0x0F 寫多個線圈 0x06 寫單個保持寄存器
      0x02 讀離散量輸入 0x10 寫多個保持寄存器

       

       

       

       

      一、Modbus RTU

        RTU協議中的指令由地址碼(一個字節),功能碼(一個字節),起始地址(兩個字節),數據(N個字節),校驗碼(兩個字節)五個部分組成。

      數據由數據長度(兩個字節,表示的是寄存器個數,假定為M)和數據正文(M乘以2個字節)組成。

      發:01 03 01 8E 00 04 25 DE //讀(0x03),從寄存器地址01 8E 開始讀,讀4個寄存器00 04

      回:01 03 08 00 01 00 01 00 01 00 01 28 D7 // 08表示數據長度 ,00 01 00 01 00 01 00 01讀到的數據

      發:00 10 00 20 00 01 02 00 00 AC A0 // 寫(0x10),從寄存器地址 00 20開始寫,寫一個寄存器 00 01,寫入值 00 00

      回:00 10 00 20 00 01 01 D2

      二、Modbus TCP

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

      MBAP報文頭:

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

       

       

       

      事務處理標識 可以理解為報文的序列號,一般每次通信之后就要加1以區別不同的通信數據報文
      協議標識符 00 00表示ModbusTCP協議
      長度 表示接下來的數據長度,單位為字節
      單元標識符 可以理解為設備地址

       

       

       

       

      發:00 00 00 00 00 06 00 03 00 20 00 01
      回:00 00 00 00 00 05 00 03 02 00 00

      發:00 00 00 00 00 06 00 04 00 30 00 01
      回:00 00 00 00 00 05 00 04 02 00 08

      發:00 00 00 00 00 09 00 10 00 20 00 01 02 00 00

      回:00 00 00 00 00 06 00 10 00 20 00 01

      三、總結(注:16進制發送)

      1、讀指令對比(0x04)

      MBAP報文頭 地址碼 功能碼 寄存器地址 寄存器數量 CRC校驗
      Modbus RTU 01 04 00 00 00 16 71 C4
      Modbus TCP 00 00 00 00 00 06 01 04 00 00 00 16

       

       

       

      2、寫指令對比(0x10)

      MBAP報文頭 地址碼 功能碼 寄存器地址 寄存器數量 數據長度 正文 CRC校驗
      Modbus RTU 00 10 00 20 00 01 02 00 00 AC A0
      Modbus TCP 00 00 00 00 00 09 00 10 00 20 00 01 02 00 00

       

       

       

       

      Tags:Modbus,通信協議  
      責任編輯:admin
    2. 上一篇文章:
    3. 下一篇文章: 沒有了
    4. 相關文章列表
      西門子plc S7-200SMART通過MODBUS通信控制變頻器啟停如何看電流頻
      西門子plc梯形圖編程實例 西門子200smart與電流表Modbus RTU通訊
      使用西門子plc的Modbus通訊 串口調試助手與S7-200SMART PLC從站通
      Modbus 調試助手的使用(一) Modsim32使用詳解Modbus Poll
      【工具使用】Modsim32軟件使用詳解 串口調試軟件
      什么是Modbus網關?modbus網關有什么作用?
      西門子S7-200PLC ModbusTCP通訊,ModScan32使用
      Modbus協議詳解 科普Modbus通訊協議
      Modbus通訊簡單測試—Modscan32使用簡介
      Modbus Scan32模擬軟件使用,Modscan32使用教程
      Modbus協議的數據模型和地址模型
      西門子PLC通信編程MODBUS通信梯形圖實例編程 modbus地址掃描
      西門子plc Modbus 地址和 S7-200 存儲區地址的映射,從站地址與S
      Modbus RTU 從站常見問題
      如何看懂Modbus數據幀?Modbus RTU數據幀格式
      Modbus協議中寄存器40001,30001是什么意思?
      MODBUS協議用03功能碼為什么既能讀又能寫寄存器地址?
      梯形圖實例 儀表與西門子PLC Modbus通訊實例稱重儀表 指令MBUS_M
      西門子plc與modbus設備進485通信詳解(modbus多機輪詢)讀取儀表
      手把手帶你搞懂Modbus通信協議 報文格式詳解
      寄存器PLC地址與寄存器modbus協議地址 三菱FX系列西門子s7系列pl
      Modbus協議基本知識 Modbus地址范圍對應表
      Modbus-RTU協議解析
      MODBUS常用功能碼學習及實例 modbus報文格式
      Modbus如何遠距離傳輸? Modbus物聯網
      Modbus和RS485的關系是什么?
      Modbus RS485接線方法  modbus接線方法 終端電阻
      MODBUS調試工具(modscan32)使用說明-MODBUS調試工具(modscan32)如
      RS-485終端電阻怎么接?485終端電阻接法解析
      modbus通訊 RS-485終端電阻的重要性
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

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