夜城直播_夜城直播app官方正版下载_夜城直播高品质美女在线视频互动社区

談?wù)凪ODBUS協(xié)議數(shù)據(jù)模型和地址模型

2020/7/27 1:32:08 人評(píng)論 次瀏覽 分類:電子技術(shù)  文章地址:http://m.prosperiteweb.com/tech/3258.html

在使用MODBUS協(xié)議編程的時(shí)候,會(huì)遇到諸如40001、10001之類的地址,這究竟是代表什么意思呢?昌暉儀表來談?wù)凪ODBUS協(xié)議的數(shù)據(jù)模型和地址模型,這樣大家就能理解這個(gè)問題。

1、MODBUS協(xié)議的數(shù)據(jù)模型

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


數(shù)據(jù)模型中成員的特點(diǎn)如下面的表格所示:

MODBUS協(xié)議定義的數(shù)據(jù)模型


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

MODBUS協(xié)議允許設(shè)備將四種數(shù)據(jù)分別映射到不同的存儲(chǔ)區(qū)塊中,各個(gè)區(qū)塊之間相互獨(dú)立,使用不同的功能碼可讀取到不同的數(shù)值,如下圖所示:
MODBUS數(shù)據(jù)模型映射到不同的存儲(chǔ)區(qū)塊
圖1 MODBUS數(shù)據(jù)模型映射到不同的存儲(chǔ)區(qū)塊

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


數(shù)據(jù)模型中的每一種數(shù)據(jù)都最多允許有65536個(gè)元素(編號(hào)1-65536),元素的地址編號(hào)從0開始,因此地址的范圍為:0-65535。需要說明的是:65536只是協(xié)議允許的最大元素范圍,但并不要求全部實(shí)現(xiàn)。MODBUS協(xié)議允許設(shè)備根據(jù)自己的實(shí)際情況實(shí)現(xiàn)部分元素,甚至不要求實(shí)現(xiàn)模型中全部四種數(shù)據(jù);


2、MODBUS協(xié)議的地址模型

為了簡化數(shù)據(jù)模型與設(shè)備存儲(chǔ)區(qū)的對(duì)應(yīng)關(guān)系,引入了一種地址模型。該模型通過編號(hào)的方式對(duì)不同類型數(shù)據(jù)進(jìn)行區(qū)分,各數(shù)據(jù)的地址編號(hào)請看下面的表格:
MODBUS地址模型

MODBUS數(shù)據(jù)模型/數(shù)據(jù)區(qū)     MODBUS地址編號(hào)
線圈                                       0
離散量輸入                             1
輸入寄存器                             3
保持寄存器                             4
MODBUS地址模型的編號(hào)從1開始。

由于每一種數(shù)據(jù)都最大支持65536個(gè)元素,因此理論上,對(duì)于線圈型數(shù)據(jù)來說,其地址范圍為000001-065536;類似的,離散量輸入,其地址范圍為100001-165536;輸入寄存器,其地址范圍為300001-365536;保持寄存器,其地址范圍為400001-465536。


由于65536是比較大的數(shù)值,實(shí)際應(yīng)用一般不需要這么大的存儲(chǔ)區(qū),因此PLC廠家普遍采用的是10000以內(nèi)的地址范圍,即:線圈地址范圍為00001-09999;離散量輸入地址范圍為10001-19999;輸入寄存器地址范圍為30001-39999;保持寄存器地址范圍為40001-49999。


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


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


MODBUS地址         S7-200 SMART存儲(chǔ)區(qū)
00001-00256          Q0.0-Q31.7
10001-10256          I0.0-I31.7
30001-30056          AIW0-AIW110
40001-4××××        V-V+2*(××××-1)

MODBUS地址模型對(duì)于MODBUS-RTU/ASCII和MODBUS-TCP協(xié)議都是適用的。

好了,關(guān)于MODBUS的地址模型與數(shù)據(jù)模型昌暉儀表就先介紹到這里。

相關(guān)閱讀

RS485和MODBUS的區(qū)別與聯(lián)系
走進(jìn)工業(yè)以太網(wǎng)協(xié)議Modbus TCP
電力系統(tǒng)串口通訊DL/T645,Modbus,DISA,101,103,104規(guī)約

共有訪客發(fā)表了評(píng)論 網(wǎng)友評(píng)論

  客戶姓名:
郵箱或QQ:
驗(yàn)證碼: 看不清楚?