<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. 電子開發網

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

      深入理解Modbus協議的數據模型和地址模型,西門子plc的通訊

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022/4/1

      在使用Modbus協議編程的時候,會遇到諸如40001、10001之類的地址,比如前面的文章《實例:S7-200 SMART通過Modbus-RTU讀取溫濕度傳感器數據》,讀取溫濕度傳感器的寄存器地址用的是40001,這究竟是代表什么意思呢?今天這篇文章,我們來談談Modbus協議的數據模型和地址模型,這樣大家就能理解這個問題。

      深入理解Modbus協議的數據模型和地址模型,西門子plc的通訊
      1、Modbus協議的數據模型

      數據模型是對可訪問數據的一種抽象,Modbus協議的數據模型定義了四種可訪問的數據,分別是:

      離散量輸入(Discrete Input);
      線圈(Coils);
      輸入寄存器(Input registers);
      保持寄存器(Holding registers);
      其中,離散量輸入和線圈只支持以位(bit)的方式進行訪問,輸入寄存器和保持寄存器只支持以字(WORD)的方式進行訪問;離散量輸入和輸入寄存器只支持以只讀的方式進行訪問,而線圈和保持寄存器既可以讀也可以寫;

      數據模型中成員的特點如下面的表格所示:

       
      既然數據模型是一種抽象,在實際使用時必須將其映射到真實的物理存儲區才能被訪問。

      Modbus協議允許設備將四種數據分別映射到不同的存儲區塊中,各個區塊之間相互獨立,使用不同的功能碼可讀取到不同的數值,如下圖所示:

      Modbus數據模型映射到不同的存儲區塊 
      圖1:Modbus數據模型映射到不同的存儲區塊

      Modbus協議也允許設備將四種數據映射到同一存儲區塊中,這樣通過不同的功能碼讀取數據可能會得到相同的數據(比如:輸入寄存器和保持寄存器為同一物理區塊),如下圖所示:

      Modbus數據模型映射到同一區塊 
      圖2:Modbus數據模型映射到同一區塊

      數據模型中的每一種數據都最多允許有65536個元素(編號1~65536),元素的地址編號從0開始,因此地址的范圍為:0~65535;

      需要說明的是:65536只是協議允許的最大元素范圍,但并不要求全部實現。Modbus協議允許設備根據自己的實際情況實現部分元素,甚至不要求實現模型中全部四種數據;

      2、Modbus協議的地址模型

      為了簡化數據模型與設備存儲區的對應關系,引入了一種地址模型。該模型通過編號的方式對不同類型數據進行區分,各數據的地址編號請看下面的表格:

      modbus地址模型 
      Modbus地址模型的編號從1開始。

      由于每一種數據都最大支持65536個元素,因此理論上,

      對于線圈型數據來說,其地址范圍為:000001~065536;

      類似的,

      離散量輸入,其地址范圍為:100001~165536;

      輸入寄存器,其地址范圍為:300001~365536;

      保持寄存器,其地址范圍為:400001~465536;

      由于65536是比較大的數值,實際應用一般不需要這么大的存儲區,因此PLC廠家普遍采用的是10000以內的地址范圍,即:

      線圈地址范圍:00001~09999;

      離散量輸入地址范圍:10001~19999;

      輸入寄存器地址范圍:30001~39999;

      保持寄存器地址范圍:40001~49999;

      有了該地址模型,我們就可以從Modbus寄存器的地址判斷要訪問的區塊的類型。比如本文開頭提到到地址40001就是保持存儲器的第一個值的地址,而10001就是離散量輸入的第一個值的地址;要注意的是,保持寄存器和輸入寄存器的每個值的大小為16bits(字),而線圈和離散量輸入每個值的大小為1bit(位);

      各PLC廠家根據PLC的實際情況,將Modbus的地址模型映射到實際的存儲區。一般來說,線圈對應過程輸出映像區(Q);離散量輸入對應過程輸入映像區(I);輸入寄存器對應模擬量輸入(AI);保持寄存器對應數據塊或V存儲區或M存儲區。以西門子S7-200 SMART為例,其Modbus地址與存儲器地址的對應關系如下表所示:

      modbus地址對應的s7-200存儲區 
      Modbus地址模型對于Modbus-RTU/ASCII和Modbus-TCP協議都是適用的。

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

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      推薦文章
      最新推薦
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 色综合色综合久久综合频道| 国产成人综合亚洲绿色| 丁香五月缴情综合网| 天天综合天天综合色在线| 国产综合精品在线| 久久狠狠一本精品综合网| 狠狠狠色丁香婷婷综合久久俺| 亚洲综合校园春色| 色综合天天综合高清网国产| 国产成人综合亚洲AV第一页 | 狠狠色伊人亚洲综合网站色| 麻豆久久婷婷五月综合国产| 综合色就爱涩涩涩综合婷婷| 狠狠色丁香婷婷久久综合五月| 狠狠激情五月综合婷婷俺| 97久久天天综合色天天综合色| 亚洲另类激情综合偷自拍图| 狠狠色丁香婷婷久久综合蜜芽| 一本色道久久88加勒比—综合 | 色天使久久综合网天天| 中文字幕亚洲综合久久| 国产精品综合久久第一页| 小说区综合区首页| 亚洲国产精品成人综合色在线 | 婷婷亚洲综合五月天小说 | 色综合久久久久久久| 91精品国产综合久| 久久精品国产亚洲综合色| 久久久久久久综合日本| 一本大道AV伊人久久综合| 丁香五月缴情综合网| 狠狠色伊人久久精品综合网| 精品第一国产综合精品蜜芽| HEYZO无码综合国产精品227| 精品国产国产综合精品 | 亚洲国产成人久久综合碰碰动漫3d| 国产成人精品综合久久久久| 国产成人综合美国十次| 日韩亚洲国产综合高清| 色婷婷六月亚洲综合香蕉| 狠狠色丁香九九婷婷综合五月|