隨著PN1-D25系列profinet網(wǎng)關(guān)模組產(chǎn)品上市,該profinet網(wǎng)關(guān)模組支持profinet協(xié)議轉(zhuǎn)modbus RTU協(xié)議的網(wǎng)關(guān),用于將Modbus數(shù)據(jù)映射到Profinet網(wǎng)關(guān)上。該profinet網(wǎng)關(guān)使用GSD文件進(jìn)行集成,免代碼讀取、寫入Modbus設(shè)備,可以快速設(shè)置數(shù)據(jù)并將其傳輸?shù)絇LC設(shè)備中。該Profinet網(wǎng)關(guān)提供1路RS485和1路RS422(兼容RS485)接口各支持32個命令節(jié)點(diǎn),共64個命令節(jié)點(diǎn)。所有Modbus命令以模塊形式加載,Profinet、Modbus間的內(nèi)存映射關(guān)系直觀,可在STEP 7或博途軟件中查詢??杉虞d狀態(tài)字節(jié)查詢Modbus設(shè)備的連接狀態(tài),實(shí)時監(jiān)控設(shè)備狀態(tài)。
最近有很多profinet網(wǎng)關(guān)客戶在使用博圖或STEP 7軟件來配置PN1-D25單網(wǎng)口profinet網(wǎng)關(guān)設(shè)備時,經(jīng)常反饋profinet網(wǎng)關(guān)無法讀寫到正確的數(shù)據(jù),同時profinet網(wǎng)關(guān)會返回錯誤,表現(xiàn)為profinet網(wǎng)關(guān)與PLC設(shè)備的錯誤燈都在閃爍。我們在為客戶提供profinet網(wǎng)關(guān)設(shè)備的技術(shù)支持時,大部分客戶都是因?yàn)閷ⅰ凹拇嫫鞯膍odbus地址”當(dāng)成“寄存器地址”配置到了profinet網(wǎng)關(guān),導(dǎo)致profinet網(wǎng)關(guān)讀寫到錯誤的寄存器導(dǎo)致報(bào)錯。那么如何理解profinet網(wǎng)關(guān)“寄存器的modbus地址”與“寄存器地址”,寄存器的modbus地址和寄存器地址有什么區(qū)別。在什么時侯該用那種地址?本文將做profinet網(wǎng)關(guān)的寄存器的modbus地址和寄存器地址的詳細(xì)介紹。
Modbus地址區(qū)分為的0區(qū)、1區(qū)、3區(qū)、4區(qū)
0區(qū)、1區(qū)、3區(qū)、4區(qū)各是一片數(shù)據(jù)區(qū),是Modbus協(xié)議規(guī)定的地址范圍,各類地址是互相對應(yīng)的
0區(qū) :離散量輸出,可讀/可寫【對應(yīng)PLC: DO】線圈類地址:00001~09999。使用功能碼:01、05、15
1區(qū) :離散量輸入16位,只讀【對應(yīng)PLC: DI】觸點(diǎn)類地址:10001~19999。使用功能碼:02
3區(qū) :輸入寄存器16位,只讀【對應(yīng)PLC: AI】模擬輸入地址:30001~39999。使用功能碼:04
4區(qū) :保持寄存器,可讀/可寫【對應(yīng)PLC: AO(或某些參數(shù)區(qū))】模擬輸出地址:40001~49999。使用功能碼:03、06、16
要想理解modbus地址,我們先簡單介紹一下modbus協(xié)議報(bào)文,下面是一條讀保持寄存器(地址40001)的modbus報(bào)文。Mdobus請求報(bào)文基本由從機(jī)地址、功能碼、寄存器地址、讀寫的寄存器數(shù)量與CRC16校驗(yàn)碼組成。讀40001就對應(yīng)了modubs報(bào)文中的功能碼(0x03)與寄存器地址(0x00)
Profinet網(wǎng)關(guān)在博圖中使用“Modbus_Master”指令時,”DATA_ADDR”參數(shù)填寫的是寄存器的modbus地址。這樣的好處是開發(fā)者在編寫mdobus指令是不需要關(guān)注改用什么功能碼。只需關(guān)注是需要讀或?qū)?,與讀寫數(shù)量。PLC會自動根據(jù)參數(shù)調(diào)用對應(yīng)的功能碼,方便了開發(fā)人員的效率。同時目前各modbus從站設(shè)備文檔基本都會提供“modbus地址表”與“寄存器地址表”。
PN1-D25單網(wǎng)口profinet網(wǎng)關(guān)的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結(jié)合使用可指定在實(shí)際Modbus幀中使用的功能代碼。下表顯示了 MODE 參數(shù)、Modbus功能代碼和DATA_ADDR 中Modbus地址范圍之間的關(guān)系。
MODE | DATA_ADDR (Modbus地址) | DATA_LEN(數(shù)據(jù)長度) | Modbus 功能代碼 | 運(yùn)行和數(shù)據(jù) | ||||||
0 |
| 每個請求的位數(shù) | 01 | 讀取輸出位: | ||||||
1 | 到 | 9999 | 1 | 到 | 2000/1992 1 | 0 | 到 | 9998 | ||
0 |
| 每個請求的位數(shù) | 02 | 讀取輸入位: | ||||||
10001 | 到 | 19999 | 1 | 到 | 2000/1992 1 | 0 | 到 | 9998 | ||
0 |
| 每個請求的字?jǐn)?shù) | 03 | 讀取保持寄存器: | ||||||
40001 | 到 | 49999 | 1 | 到 | 125/124 1 | 0 | 到 | 9998 | ||
400001 | 到 | 465535 | 1 | 到 | 125/124 1 | 0 | 到 | 65534 | ||
0 |
| 每個請求的字?jǐn)?shù) | 04 | 讀取輸入字: | ||||||
30001 | 到 | 39999 | 1 | 到 | 125/124 1 | 0 | 到 | 9998 | ||
1 |
| 每個請求的位數(shù) | 05 | 寫入一個輸出位: | ||||||
1 | 到 | 9999 | 1 |
|
| 0 | 到 | 9998 | ||
1 |
| 每個請求1 個字 | 06 | 寫入一個保持寄存器: | ||||||
40001 | 到 | 49999 | 1 |
|
| 0 | 到 | 9998 | ||
400001 | 到 | 465535 | 1 |
|
| 0 | 到 | 65524 | ||
1 |
| 每個請求的位數(shù) | 15 | 寫入多個輸出位: | ||||||
1 | 到 | 9999 | 2 | 到 | 1968/1960 1 | 0 | 到 | 9998 | ||
1 |
| 每個請求的字?jǐn)?shù) | 16 | 寫入多個保持寄存器: | ||||||
40001 | 到 | 49999 | 2 | 到 | 123/122 | 0 | 到 | 9998 | ||
400001 | 到 | 465534 | 2 | 到 | 123/122 1 | 0 | 到 | 65534 | ||
2 2 |
| 每個請求的位數(shù) | 15 | 寫入一個或多個輸出位: | ||||||
1 | 到 | 9999 | 1 | 到 | 1968/1960 1 | 0 | 到 | 9998 | ||
2 2 |
| 每個請求的字?jǐn)?shù) | 16 | 寫入一個或多個保持寄存器: | ||||||
40001 | 到 | 49999 | 1 | 到 | 123 | 0 | 到 | 9998 | ||
400001 | 到 | 465535 | 1 | 到 | 122 1 | 0 | 到 | 65534 | ||
11 | 此功能將忽略Modbus_Master 的 DATA_ADDR 和 DATA_LEN 操作數(shù)。 | 11 | 讀取從站通信的狀態(tài)字和事件計(jì)數(shù)器。狀態(tài)字表示“忙”(0 - 不忙,0xFFFF - 忙)。事件計(jì)數(shù)器隨著幀的每次成功處理而遞增。 | |||||||
80 |
| 每個請求1 個字 | 08 | 使用數(shù)據(jù)診斷代碼0x0000 檢查從站狀態(tài)(回送測試 - 從站返回請求的回應(yīng)) | ||||||
- |
|
| 1 |
|
| - |
|
| ||
81 |
| 每個請求1 個字 | 08 | 利用數(shù)據(jù)診斷代碼0x000A 重新設(shè)置從站事件計(jì)數(shù)器 | ||||||
- |
|
| 1 |
|
| - |
|
| ||
104 3 |
| 每個請求的字?jǐn)?shù) | 04 | 讀取輸入字 | ||||||
0 | 到 | 65535 | 1 | 到 | 125/124 1 | 0 | 到 | 65535 | ||
3到10,12到79, | - |
|
| - |
|
|
| 保留 | ||
1 在擴(kuò)展尋址中(請參見Extended_Adressing 參數(shù)),最大數(shù)據(jù)長度根據(jù)功能的數(shù)據(jù)類型而縮減 1 字節(jié)或 1 個字。 2 MODE 2 允許使用 Modbus 功能 15 和 16 寫入 1 個或多個輸出位和 1 個或多個保持寄存器。 3 以下情況適用于S7-300/400/WinAC:不支持。 |
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多Profinet網(wǎng)關(guān)產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
1、淺Profinet網(wǎng)關(guān)使用博圖配置Modbus報(bào)文
2、Profinet網(wǎng)關(guān)使用博圖配置modbus通訊參數(shù)
4、PN1-D25P系列Profinet網(wǎng)關(guān)使用博圖加載設(shè)備教程