18luck网站

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

MODBUS協議用03功能碼為什麽既能讀又能寫寄存器地址?

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

03 讀保持寄存器

40001-49999

字操作

單個(ge) 或多個(ge)

不應該是隻能讀的嗎?

在使用Modbus協議的時候,經常會(hui) 遇到諸如40001、30001,10001之類的地址,這些數字代表什麽(me) 含義(yi) 呢?這其實是Modbus協議的數據模型和地址模型。

Modbus協議的數據模型

數據模型是對從(cong) 站設備可訪問的數據進行抽象,Modbus協議的數據模型定義(yi) 了四種可訪問的數據:

數據區塊 數據類型 訪問類型
線圈(Coils) 布爾 讀/寫
離散量輸入(Discrete Input) 布爾 隻讀
輸入寄存器(Input registers) 無符號2字節整型 隻讀
保持寄存器(Holding registers) 無符號2字節整型 讀/寫

其中,離散量輸入和線圈數據類型是布爾量,因此隻支持以位(bit)的方式進行訪問,輸入寄存器和保持寄存器數據類型是無符號2字節整型,因此支持以字的方式進行訪問。當主設備訪問從(cong) 設備的這些數據模型時,離散量輸入和輸入寄存器隻支持以隻讀的方式進行訪問,而線圈和保持寄存器既可以讀也可以寫(xie) 。

地址前綴編號 編號範圍
(1~65536)
編號範圍
(1~9999)
數據區塊 數據類型 訪問類型
0 000001~065536 00001~09999 線圈(Coils) 布爾 讀/寫
1 100001~165536 10001~19999 離散量輸入
(Discrete Input)
布爾 隻讀
3 300001~365536 30001~39999 輸入寄存器(Input registers) 無符號2字節整型 隻讀
4 400001~465536 40001~49999 保持寄存器(Holding registers) 無符號2字節整型 讀/寫

數據模型中的每一種數據區塊都最多允許有65536(2^16)個(ge) 元素,Modbus定義(yi) 了每個(ge) 數據元素的地址,範圍從(cong) 0到65,535。但是每個(ge) 數據元素的編號從(cong) 1開始,範圍從(cong) 1到65,536。

需要說明的是:65536隻是協議允許的最大元素範圍,並不要求全部實現。Modbus協議允許設備根據自己的實際情況實現部分元素,甚至不要求實現模型中全部四種數據模型。譬如設備可能會(hui) 選擇不執行線圈、離散輸入或輸入寄存器,而隻使用保持寄存器150至175和200至225。這是完全可以接受的,並且通過異常來處理無效的訪問。


Modbus協議的地址模型

雖然規範將不同的數據類型定義(yi) 為(wei) 存在不同的區塊中,並為(wei) 每種類型分配一個(ge) 本地地址範圍,但這並不一定會(hui) 轉化為(wei) 用於(yu) 記錄或理解給定設備的Modbus可訪問內(nei) 存的直觀編址方案。

為(wei) 了簡化數據模型與(yu) 設備存儲(chu) 區的對應關(guan) 係,又引入了地址模型的概念,通過編號的方式對不同類型數據進行區分,也就是通過特定的編號作為(wei) 前綴加到所討論的數據地址中。如表中所示,通過0,1,3,4分別表示線圈,離散量輸入,輸入寄存器,和保持寄存器。

因此理論上,

線圈地址範圍:000001~065536
離散量輸入地址範圍:100001~165536
輸入寄存器地址範圍:300001~365536
保持寄存器地址範圍:400001~465536

由於(yu) 65536是比較大的數值,實際應用一般不需要這麽(me) 大的存儲(chu) 區,因此設備廠家普遍采用的是10000以內(nei) 的地址範圍,即:
線圈地址範圍:00001~09999
離散量輸入地址範圍:10001~19999
輸入寄存器地址範圍:30001~39999
保持寄存器地址範圍:40001~49999

有了該地址模型,我們(men) 就可以從(cong) Modbus寄存器的地址判斷要訪問的區塊的類型。譬如常見到的寄存器地址40001/400001,最前麵的4表明它是一個(ge) 保持寄存器,後麵的0001或者00001都是指第一個(ge) 保持存儲(chu) 器,並且它的地址是0。寄存器30004表明它是輸入寄存器,地址是3。寄存器10008表明它是離散量輸入,地址是7。

要注意的是,保持寄存器和輸入寄存器中的數值是2個(ge) 字節,而線圈和離散量輸入中數值大小僅(jin) 為(wei) 1bit (位)。

Tags:MODBUS,功能碼  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 相關文章列表
    梯形圖實例 儀表與西門子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功能碼詳解——小白一看就會的協議解析
    西門子plc SMART200 通過Modbus讀取溫濕度傳感器數據梯形圖實例
    實現PLC與多台變頻器的MODBUS/RTU通信   MODBUS協議報文格式
    MODBUS功能碼實例  plc與儀表通信
    西門子plc modbus地址詳解
    s7-200與計算機modbus通訊案例,西門子S7-200 Smart Modbus通信介
    Modbus通訊協議簡介
    電力儀表怎麽設置modbus ,電力-MODBUS_RTU通訊規約
    MODBUS規約報文解析
    modbus rtu六種功能碼詳細解析
    ModBus通信協議
    modbus通訊協議功能碼一覽_ModBus功能碼定義
    西門子200SMART主站輪詢MODBUS通信指令案例_梯形圖實例
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

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