18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> PLC基礎入門教程 >> 正文

Modbus協議的數據模型和地址模型

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

在使用Modbus協議編程的時候,會(hui) 遇到諸如40001、10001之類的地址,這究竟是代表什麽(me) 意思呢?昌暉儀(yi) 表來談談Modbus協議的數據模型和地址模型,這樣大家就能理解這個(ge) 問題。

1、Modbus協議的數據模型
數據模型是對可訪問數據的一種抽象,Modbus協議的數據模型定義(yi) 了四種可訪問的數據,分別是:
◆離散量輸入(Discrete Input);
◆線圈(Coils);
◆輸入寄存器(Input registers);
◆保持寄存器(Holding registers);
其中,離散量輸入和線圈隻支持以位(bit)的方式進行訪問,輸入寄存器和保持寄存器隻支持以字(WORD)的方式進行訪問;離散量輸入和輸入寄存器隻支持以隻讀的方式進行訪問,而線圈和保持寄存器既可以讀也可以寫(xie) 。


數據模型中成員的特點如下麵的表格所示:
Modbus協議定義的數據模型


區塊               訪問長度      訪問方式    說明
離散量輸入     位(bit)         隻讀            數據由IO係統提供
線圈               位(bit)         讀/寫           可通過應用程序改寫
輸入寄存器     字(word)     隻讀            數據由IO係統提供
保持寄存器     字(word)     讀/寫           可通過應用程序改寫
既然數據模型是一種抽象,在實際使用時必須將其映射到真實的物理存儲區才能被訪問。

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

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

數據模型中的每一種數據都最多允許有65536個元素(編號1-65536),元素的地址編號從0開始,因此地址的範圍為:0-65535。需要說明的是:65536隻是協議允許的最大元素範圍,但並不要求全部實現。Modbus協議允許設備根據自己的實際情況實現部分元素,甚至不要求實現模型中全部四種數據;

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

Modbus數據模型/數據區     Modbus地址編號
線圈                                       0
離散量輸入                             1
輸入寄存器                             3
保持寄存器                             4
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 SMART存儲區
00001-00256          Q0.0-Q31.7
10001-10256          I0.0-I31.7
30001-30056          AIW0-AIW110
40001-4××××        V-V+2*(××××-1)

Modbus地址模型對於Modbus-RTU/ASCII和Modbus-TCP協議都是適用的。

好了,關於Modbus的地址模型與數據模型我們就先介紹到這裏。

相關閱讀



Tags:Modbus,Modbus協議,數據類型  
責任編輯:admin
相關文章列表
Modbus通訊簡單測試—Modscan32使用簡介
Modbus Scan32模擬軟件使用,Modscan32使用教程
PLC通訊MODBUS協議的應用及編程報文格式,三菱plc通訊
西門子PLC通信編程MODBUS通信梯形圖實例編程 modbus地址掃描
西門子plc Modbus 地址和 S7-200 存儲區地址的映射,從站地址與S
Modbus RTU 從站常見問題
Modbus RTU與Modbus TCP的區別
如何看懂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終端電阻的重要性
Modbus功能碼詳解 讀取線圈、保持寄存器
modbus協議地址和常用功能碼,modbus詳解
Modbus功能碼介紹
Modbus網關的概念/功能/作用/特點
Modbus-RTU通訊協議03功能碼詳解——小白一看就會的協議解析
學習西門子S7-200係列PLC不得不掌握的數據類型
西門子plc SMART200 通過Modbus讀取溫濕度傳感器數據梯形圖實例
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
推薦文章
最新推薦
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢