<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> PLC基礎(chǔ)入門(mén)教程 >> 正文

      MODBUS RTU/TCP協(xié)議及常用功能碼詳解

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/4/9

      一、簡(jiǎn)介

      ModBus是Modicon公司為其PLC通訊而開(kāi)發(fā)的一種通訊協(xié)議。如今Modicon公司已經(jīng)被施耐德收購(gòu)成為了施耐德旗下品牌。從1979年問(wèn)世至今,已經(jīng)成為工業(yè)通訊領(lǐng)域的業(yè)界標(biāo)準(zhǔn)。
      ModBus具有兩種串行傳輸模式,ASCII 和 RTU。它們定義了數(shù)據(jù)如何打包、解碼的不同方式。支持 Modbus 協(xié)議的設(shè)備一般都支持 RTU 格式。通信雙方必須同時(shí)支持上述模式中的一種。

      二、寄存器類(lèi)型

      MODBUS寄存器分類(lèi)

      寄存器種類(lèi) 讀寫(xiě)狀態(tài) 數(shù)據(jù)類(lèi)型 功能碼 PLC地址
      線圈寄存器 讀/寫(xiě) 位(bit) 01H(讀單/多個(gè)位); 05H(寫(xiě)單個(gè)位); 0FH(寫(xiě)多個(gè)位) 00001-09999
      離散輸入寄存器 只讀 位(bit) 02H (讀單/多個(gè)位) 10001-19999
      保持寄存器 讀/寫(xiě) 字(byte) 03H(讀); 06H(寫(xiě)單個(gè)字節(jié)); 0FH(寫(xiě)多個(gè)字節(jié)) 30001-39999
      輸入寄存器 只讀 字(byte) 04H (讀單/多個(gè)字) 40001-49999

      線圈寄存器:實(shí)際上可以表示一個(gè)開(kāi)關(guān)量,線圈操作位(bit)一個(gè)bit對(duì)應(yīng)一個(gè)開(kāi)關(guān)信號(hào),即(0/false,1/true),每個(gè)byte字節(jié)就能代表8個(gè)的位的開(kāi)關(guān)信號(hào),線圈寄存器支持讀和寫(xiě),Modbus的功能碼又能對(duì)線圈的單個(gè)或多個(gè)進(jìn)行一個(gè)讀取寫(xiě)入操作,其實(shí)就是在操作字節(jié)的位。實(shí)對(duì)應(yīng)上面的功能碼也就是:0x01 0x05 0x0f

      離散輸入寄存器:離散輸入寄存器就相當(dāng)于線圈寄存器的只讀模式,功能跟上面基本一致,除了不能寫(xiě)入。所以功能碼也簡(jiǎn)單就一個(gè)讀的 0x02

      保持寄存器:保持寄存器是對(duì)字節(jié)進(jìn)行的操作,每?jī)蓚(gè)字節(jié)對(duì)應(yīng)一個(gè)寄存器,支持讀取和寫(xiě)入。功能碼有對(duì)應(yīng)的三個(gè):0x03 0x06 0x10

      輸入寄存器:,這個(gè)和保持寄存器類(lèi)似,但是也是只支持讀而不能寫(xiě)。一個(gè)寄存器地址是占據(jù)兩個(gè)byte的空間,也就是16個(gè)位。對(duì)應(yīng)的功能碼也就一個(gè) 0x04

      言外之話:
      當(dāng)需要對(duì)保持寄存器操作時(shí),不同的數(shù)據(jù)類(lèi)型占據(jù)的字節(jié)長(zhǎng)度其實(shí)是不一致的,一個(gè)寄存器地址占兩個(gè)字節(jié)16位代表的只是一個(gè)單精度的數(shù)據(jù)。如C#的數(shù)據(jù)類(lèi)型占據(jù)的長(zhǎng)度如下
      C# 數(shù)據(jù)類(lèi)型和字節(jié)長(zhǎng)度 
      C# 數(shù)據(jù)類(lèi)型和字節(jié)長(zhǎng)度
      所以在讀取寫(xiě)入保持寄存器的時(shí)候不同類(lèi)型需要讀取不同長(zhǎng)度的字節(jié)才能拿到對(duì)應(yīng)類(lèi)型的值,寫(xiě)入的時(shí)候同理。如(int類(lèi)型讀取2個(gè)數(shù)量為int的時(shí)候需要乘以2,也就是讀取4個(gè)寄存器才能拿到兩個(gè)int類(lèi)型的數(shù)據(jù)

      三、MODBUS常用功能碼

      功能碼 名稱(chēng) 操作數(shù)據(jù)類(lèi)型 作用描述 PLC地址
      01H 讀線圈寄存器 位(bit) 獲得一組開(kāi)關(guān)線圈的當(dāng)前狀態(tài)(ON/OFF ) 00001-09999
      02H 讀離散輸入寄存器 位(bit) 獲得一組開(kāi)關(guān)線圈的當(dāng)前狀態(tài)(ON/OFF ) 10001-19999
      03H 讀保持寄存器 字(byte) 在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值 30001-39999
      04H 讀輸入寄存器 字(byte) 在一個(gè)或多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值 40001-49999
      05H 寫(xiě)單個(gè)線圈寄存器 位(bit) 設(shè)置一個(gè)單獨(dú)的線圈狀態(tài)(ON/OFF ) 00001-09999
      06H 寫(xiě)單個(gè)保持寄存器 字(byte) 寫(xiě)單個(gè)保持寄存器,將兩個(gè)字節(jié)寫(xiě)入到寄存器 40001-49999
      0FH 寫(xiě)多個(gè)線圈寄存器 位(bit) 寫(xiě)多個(gè)線圈寄存器,可以設(shè)置多個(gè)bit開(kāi)關(guān)狀態(tài) 00001-09999
      10H 寫(xiě)多個(gè)保持寄存器 字(byte) 寫(xiě)多個(gè)保持寄存器,將多個(gè)字節(jié)寫(xiě)入到寄存器 40001-49999

      MODBUS通訊協(xié)議格式

      讀線圈寄存器——01H

      從站發(fā)送讀取格式:

      從站地址 功能碼 起始地址高位 起始地址低位 讀取數(shù)量高位 讀取數(shù)量低位 CRC高位 CRC低位
      0x01 0x01 0x00 0x00 0x00 0x02 BD CB

      主站返回讀取格式:

      從站地址 功能碼 返回字節(jié)數(shù) data1 CRC高位 CRC低位
      0x01 0x01 0x01 0x00 51 88

      解讀:
      發(fā)送格式:
      從站地址:01
      功能碼:01
      起始地址: 00 00
      讀取數(shù)量: 00 02
      CRC校驗(yàn):BD CB
      接收格式:
      從站地址:01
      功能碼:01
      返回字節(jié)數(shù): 01
      Data數(shù)據(jù): 00(一個(gè)byte有8個(gè)bit,讀取兩個(gè)bit返回會(huì)補(bǔ)成字節(jié)用一個(gè)byte返回讀取兩個(gè)bit就行)
      CRC校驗(yàn):BD CB

      讀離散輸入狀態(tài)——02H

      從站發(fā)送讀取格式:

      從站地址 功能碼 起始地址高位 起始地址低位 讀取數(shù)量高位 讀取數(shù)量低位 CRC高位 CRC低位
      0x01 0x02 0x00 0x00 0x00 0x02 F9 CB

      主站返回讀取格式:

      從站地址 功能碼 返回字節(jié)數(shù) data1 CRC高位 CRC低位
      0x01 0x02 0x01 0x00 A1 88

      讀保持寄存器——03H

      從站發(fā)送讀取格式:

      從站地址 功能碼 起始地址高位 起始地址低位 讀取數(shù)量高位 讀取數(shù)量低位 CRC高位 CRC低位
      0x01 0x03 0x00 0x00 0x00 0x02 C4 CB

      主站返回讀取格式:

      從站地址 功能碼 返回字節(jié)數(shù) data1 data2 data3 data4 CRC高位 CRC低位
      0x01 0x03 0x04 0x00 0x0A 0x00 0x00 0A 31

      解析讀取返回:

      為啥讀取是讀取兩個(gè)地址數(shù)量會(huì)返回四個(gè)byte字節(jié)?因?yàn)樵诒3旨拇嫫骼锩鎯蓚(gè)字節(jié)才對(duì)應(yīng)一個(gè)寄存器,你讀取兩個(gè)寄存器地址數(shù)量就需要四個(gè)字節(jié)來(lái)表示。
      注意:在解析字節(jié)的時(shí)候數(shù)據(jù)的高低位順序倒序后才能表示一個(gè)數(shù)據(jù)

      讀輸入寄存器——04H

      同讀取保存寄存器一樣的格式,同上
      

      寫(xiě)單個(gè)線圈——05H

      從站地址 功能碼 起始地址高位 起始地址低位 data1 data2 CRC高位 CRC低位
      0x01 0x05 0x00 0x00 0xFF 0x00 8C 3A

      主站返回讀取格式:

      從站地址 功能碼 起始地址高位 起始地址低位 寫(xiě)入數(shù)據(jù)高位 寫(xiě)入數(shù)據(jù)低位 CRC高位 CRC低位
      0x01 0x05 0x00 0x00 0xFF 0x00 8C 3A

      解析:
      寫(xiě)入無(wú)誤的話返回同發(fā)送指令一樣;通斷標(biāo)志為FF00H表示寫(xiě)ON,0000H表示寫(xiě)OFF,

      寫(xiě)單個(gè)保持寄存器——06H

      將地址0的保存寄存器的數(shù)據(jù)設(shè)置為10(單精度)
      
      從站地址 功能碼 起始地址高位 起始地址低位 data1 data2 CRC高位 CRC低位
      0x01 0x06 0x00 0x00 0x00 0x0A 09 CD

      主站返回讀取格式:
      響應(yīng):同發(fā)送指令;

      寫(xiě)多個(gè)線圈——0FH

      從站地址 功能碼 起始地址高位 起始地址低位 寫(xiě)入數(shù)量高位 寫(xiě)入數(shù)據(jù)低位 字節(jié)長(zhǎng)度 data1 CRC高位 CRC低位
      0x01 0x0F 0x00 0x00 0x00 0x02 0x01 0x03 9E 96

      主站返回讀取格式:
      響應(yīng):

      從站地址 功能碼 起始地址高位 起始地址低位 寫(xiě)入數(shù)量高位 寫(xiě)入數(shù)據(jù)低位 CRC高位 CRC低位
      0x01 0x0F 0x00 0x00 0x00 0x02 9E 96

      返回?cái)?shù)據(jù)格式不返回Data數(shù)據(jù)

      詳情:寫(xiě)入數(shù)量為2的線圈,其中data1數(shù)據(jù)0x03代表0000 0011 將連續(xù)兩個(gè)線圈置為ON

      寫(xiě)多個(gè)保持寄存器——10H

      從站地址 功能碼 起始地址高位 起始地址低位 寫(xiě)入數(shù)量高位 寫(xiě)入數(shù)據(jù)低位 字節(jié)長(zhǎng)度 data1 data2 data3 data4 CRC高位 CRC低位
      0x01 0x10 0x00 0x00 0x00 0x02 0x04 0x0C 0x02 0x12 0x45 9C 6C

      主站返回讀取格式:
      響應(yīng):

      從站地址 功能碼 起始地址高位 起始地址低位 寫(xiě)入數(shù)量高位 寫(xiě)入數(shù)據(jù)低位 CRC高位 CRC低位
      0x01 0x10 0x00 0x00 0x00 0x02 41 CB

      返回?cái)?shù)據(jù)格式不返回Data數(shù)據(jù)

      詳情:寫(xiě)入數(shù)量為2的線圈,其中data1,data2,data3,data4數(shù)據(jù)兩個(gè)代表一個(gè)單精度數(shù)據(jù)
      0C 02表示一個(gè)3074 ,12 45代表一個(gè)4677

      MODBUS TCP通訊協(xié)議格式

      ModbusTCP的數(shù)據(jù)幀可分為兩部分:MBAP+PDU。

      | 事務(wù)處理標(biāo)識(shí)| 協(xié)議標(biāo)識(shí) | 字節(jié)長(zhǎng)度 | 單元標(biāo)識(shí)符 | 功能碼 |起始地址H | 起始地址L |數(shù)量H | 數(shù)量L

      事務(wù)處理標(biāo)識(shí) 協(xié)議標(biāo)識(shí) 字節(jié)長(zhǎng)度 單元標(biāo)識(shí)符 功能碼 起始地址H 起始地址L 數(shù)量H 數(shù)量L
      2字節(jié) 2字節(jié) 2字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

      事務(wù)處理標(biāo)識(shí): 可以理解為報(bào)文的序列號(hào),一般每次通信之后就要加1以區(qū)別不同的通信數(shù)據(jù)報(bào)文。
      協(xié)議標(biāo)識(shí)符: 00 00表示ModbusTCP協(xié)議。
      字節(jié)長(zhǎng)度: 表示接下來(lái)的數(shù)據(jù)長(zhǎng)度,單位為字節(jié)
      單元標(biāo)識(shí)符: 可以理解為設(shè)備地址。

      TCP跟RTU的協(xié)議格式其實(shí)基本上是一致的,只是TCP增加了報(bào)文頭MBAP,取消了RTU的從站地址跟CRC校驗(yàn)

      Tags:MODBUS通訊,功能碼,TCP,RTU  
      責(zé)任編輯:admin
      相關(guān)文章列表
      西門(mén)子S7-200 smart通過(guò)modbus rtu 協(xié)議采集K37A數(shù)據(jù)項(xiàng)目案例
      西門(mén)子S7-200smart 與超聲波流量計(jì)之間的MODBUS通訊
      西門(mén)子S7-200 Smart與變頻器的MODBUS變頻器通信實(shí)操
      西門(mén)子S7-200 smart非時(shí)間/計(jì)數(shù)輪詢來(lái)實(shí)現(xiàn)modbus通訊測(cè)試
      西門(mén)子S7-200smart與丹佛斯FC51通訊及變頻器參數(shù)設(shè)置
      其實(shí),Modbus通訊很簡(jiǎn)單!——手把手教你,STEP7
      西門(mén)子PLC S7-200SMART與G120的MODBUS通訊例程
      KingView組態(tài)王與S7-200 SMART通過(guò)網(wǎng)口連接 TCP通訊
      西門(mén)子S7-200PLC作為Modbus-RTU主站通過(guò)Port0和Port1結(jié)合指令庫(kù)實(shí)
      西門(mén)子S7-200與ACS510變頻器MODBUS通信完整版(梯形圖程序)
      三菱PLC的modbus通訊_三菱FX3U PLC利用RS指令實(shí)現(xiàn)Modbus RTU通信
      西門(mén)子SMART PLC MODBUS通訊控制英威騰變頻器,變頻器狀態(tài)字
      西門(mén)子PLC S7-200SMART Modbus TCP通訊的步驟和要點(diǎn)
      西門(mén)子plc通訊西門(mén)子S7-200 Smart Modbus通信詳解,MBUS_CTRL主站
      V20變頻器和西門(mén)子PLC的通訊,西門(mén)子變頻器與PLC的MODBUS通信詳細(xì)
      Modbus功能碼一覽,功能碼列表
      西門(mén)子S7-200SMART PLC Modbus讀取D800通用測(cè)力儀的數(shù)據(jù)梯形圖實(shí)
      S7-200 SMART 通訊控制 V20變頻器,MODBUS通訊控制變頻器
      Modbus功能碼04實(shí)例_20種PLC元件編號(hào)和Modbus編號(hào)地址對(duì)應(yīng)表
      影響人機(jī)界面與PLC通信速度的四個(gè)因素,關(guān)系PLC通訊速度幾個(gè)方面
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      推薦文章
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 老色鬼久久综合第一| 区三区激情福利综合中文字幕在线一区 | 伊人久久综合谁合综合久久| 亚洲heyzo专区无码综合| 伊人色综合久久天天人守人婷 | 色综合天天综合网| 亚洲国产成人久久综合一区77| 亚洲综合色成在线播放| 色综合久久久久无码专区| 色噜噜狠狠色综合成人网| 久久婷婷五月综合色国产香蕉| 色综合久久最新中文字幕| 狠狠色狠狠色综合日日不卡| 亚洲AV日韩综合一区尤物| 色噜噜狠狠色综合免费视频| 久久精品综合一区二区三区| 亚洲综合色一区二区三区| 色婷婷综合久久久久中文一区二区 | 久久亚洲高清综合| 伊人色综合九久久天天蜜桃| 久久久久高潮综合影院| 亚洲国产综合精品中文字幕| 国产精品天天影视久久综合网 | 亚洲AV日韩综合一区尤物| 亚洲综合伊人久久大杳蕉| 久久婷婷五月综合97色直播| 亚洲熟女综合一区二区三区| 综合无码一区二区三区四区五区| 久久综合久久鬼色| 久久综合五月婷婷| 97色伦图片97综合影院久久| 激情五月婷婷综合网站| 狠狠色婷婷七月色综合| 久久婷婷综合中文字幕| 久久综合精品视频| 一本久道综合色婷婷五月| 天天狠狠色综合图片区| 亚洲综合亚洲综合网成人| 免费国产综合视频在线看| 亚洲国产成人五月综合网| 国产亚洲综合一区柠檬导航|