# Modbus server Address assigning issue

**URL:** https://discourse.nodered.org/t/modbus-server-address-assigning-issue/101478
**Category:** General
**Tags:** modbus
**Created:** [15 July 2026 18:12 UTC](https://discourse.nodered.org/t/modbus-server-address-assigning-issue/101478 "2026-07-15T18:12:28Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![aminulhaq](https://avatars.discourse-cdn.com/v4/letter/a/f17d59/32.png) [@aminulhaq](https://discourse.nodered.org/u/aminulhaq)
#### Post date: [15 July 2026 18:12 UTC](https://discourse.nodered.org/t/modbus-server-address-assigning-issue/101478/1 "2026-07-15T18:12:28Z")

</div>

Hi i am using node-red-contrib-modbus 5.4 and use modbus server and wientek tk8071ip hmi as modbus tcp/ip the connection is happend perfectly i have set holding register at numeric display on hmi with address 4x01 to 4x09 hmi is taking data as 16 bit unsigned value the problem is that when i am sending array of two at modbus address 0 it is reaching the hmi with byt swaping but when i push on address 1 from my nodered function it landed on hmi modbus address 5 and i have checked on debug node that when i put on address 1 then it should send data on index 2 and 3 but it is sending data on index 8 and 9  
why this shifting any clue

---

<div class="post-metadata">

### Author: ![herman34](https://avatars.discourse-cdn.com/v4/letter/h/8dc957/32.png) [@herman34](https://discourse.nodered.org/u/herman34)
#### Post date: [13 August 2026 12:15 UTC](https://discourse.nodered.org/t/modbus-server-address-assigning-issue/101478/2 "2026-08-13T12:15:38Z")

</div>

I think it is an addressing/offset mismatch between Node-RED and the Weintek HMI. Modbus devices often use different conventions for 0-based vs 1-based addressing, and 4x01 on the HMI may not correspond directly to address 0 in Node-RED. So first test with a single register and map Node-RED address 0 → HMI 4x01, then address 1 → 4x02. If it jumps to 4x05, check the HMI’s register type/address mode and whether the node is applying a word/byte offset. The byte swapping is a separate issue from the address shift.
