前言
隨著PN1-D25系列ProfiNet轉Modbus網(wǎng)關的上市,最近有很多客戶在使用博圖或STEP 7軟件來配置PN1-D25時,經(jīng)常反饋網(wǎng)關無法讀寫到正確的數(shù)據(jù),同時網(wǎng)關會返回錯誤,表現(xiàn)為網(wǎng)關與PLC的錯誤燈都在閃爍。技術人員在為客戶提供技術支持時發(fā)現(xiàn),大部分客戶都是因為將“寄存器的Modbus地址”當成“寄存器地址”配置到了網(wǎng)關,導致網(wǎng)關讀寫到錯誤的寄存器導致報錯。那么,如何理解寄“寄存器的Modbus地址”與“寄存器地址”,二者有什么區(qū)別?什么時侯該用哪種地址?下文將詳細介紹。
寄存器的Modbus地址分區(qū)
Modbus地址區(qū)分為的0區(qū)、1區(qū)、3區(qū)、4區(qū)。
0區(qū)、1區(qū)、 3區(qū)、4區(qū)各是一片數(shù)據(jù)區(qū),是Modbus協(xié)議規(guī)定的地址范圍,各類地址是互相對應的。0區(qū) :離散量輸出,可讀/可寫【對應PLC: DO】線圈類地址:00001~09999。使用功能碼:01、05、15。1區(qū) :離散量輸入16位,只讀【對應PLC: DI】觸點類地址:10001~19999。使用功能碼:02。3區(qū) :輸入寄存器16位,只讀【對應PLC: AI】模擬輸入地址:30001~39999。使用功能碼:04。4區(qū) :保持寄存器,可讀/可寫【對應PLC: AO(或某些參數(shù)區(qū))】模擬輸出地址:40001~49999。使用功能碼:03、06、16。
寄存器地址
要想理解Modbus地址,我們先簡單介紹一下Modbus協(xié)議報文。下面是一條讀保持寄存器(地址40001)的Modbus報文。Mdobus請求報文基本由從機地址、功能碼、寄存器地址、讀寫的寄存器數(shù)量與CRC16校驗碼組成。讀40001就對應了Modbus報文中的功能碼(0x03)與寄存器地址(0x00)。
博圖中的“Modbus_Master”指令
在博圖中使用“Modbus_Master”指令時,”DATA_ADDR”參數(shù)填寫的是寄存器的Modbus地址。這樣的好處是開發(fā)者在編寫Modbus指令時不需要關注該用什么功能碼。只需關注是需要讀或寫與讀寫數(shù)量。PLC會自動根據(jù)參數(shù)調用對應的功能碼,提高了開發(fā)人員的工作效率。同時目前各Modbus從站設備文檔基本都會提供“Modbus地址表”與“寄存器地址表”。
PN1-D25 Modbus指令參數(shù)配置

PN1-D25的Modbus模塊參數(shù)在配置時已經(jīng)劃分好了Coil-線圈-DO-0區(qū)、Discrete Input-離散輸入-DI-1區(qū)、Holding Register-保持寄存器-AO-4區(qū)、Input Register-輸入寄存器-AI-3區(qū)。在填寫起始地址(Start Address)時需要填寫寄存器地址,不能寫帶Modbus區(qū)的Modbus地址。
可以使用DATA_ADDR和MODE參數(shù)來選擇Modbus功能代碼。DATA_ADDR(從站中的Modbus起始地址):指定在Modbus從站中訪問的數(shù)據(jù)的起始地址。Modbus_Master指令使用MODE輸入,不使用功能代碼輸入。MODE和DATA_ADDR結合使用可指定在實際Modbus幀中使用的功能代碼。下表顯示了MODE參數(shù)、Modbus功能代碼和DATA_ADDR中Modbus地址范圍之間的關系。Modbus功能:

-
寄存器
+關注
關注
31文章
5390瀏覽量
121904 -
MODBUS
+關注
關注
28文章
1858瀏覽量
77761 -
網(wǎng)關
+關注
關注
9文章
4727瀏覽量
51826
發(fā)布評論請先 登錄
相關推薦
關于LABVIEW OPC與MODBUS通信寄存器地址問題 求助啊
Modbus通訊地址設定方法說明

寄存器的名稱和地址的映射詳細資料分析

STM32寄存器的簡介、地址查找,與直接操作寄存器

STM32F103系列芯片的地址和寄存器映射原理、LED輪流閃爍實現(xiàn)

STM32-寄存器地址名稱映射分析

2020.4.14 第四次 寄存器地址名稱映射

為調試寄存器 DBGDRAR 設置的值錯誤
可配置Modbus網(wǎng)關 嵌入式設備聯(lián)網(wǎng)解決方案

工控人必看!還搞不清MODBUS地址如何換算?

評論