# Modbus Register Addressing

**URL:** <https://forum.inductiveautomation.com/t/modbus-register-addressing/73366>\
**Category:** Ignition\
**Created:** [May 7, 2023, 2:56am UTC](https://forum.inductiveautomation.com/t/modbus-register-addressing/73366 "2023-05-07T02:56:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eve\_Dang](https://avatars.discourse-cdn.com/v4/letter/e/50afbb/32.png) [@Eve\_Dang](https://forum.inductiveautomation.com/u/Eve_Dang)\
**Post date:** [May 7, 2023, 2:56am UTC](https://forum.inductiveautomation.com/t/modbus-register-addressing/73366/1 "2023-05-07T02:56:07Z")

</div>

![Screen Shot 2023-05-06 at 21.42.23](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/b/ebd80b7896690b9d0ba8460b3afa35a2c48dbe43.png)  
Hello everyone. I am working on Modbus addressing for a device. According to the manual, the Device State can be read at Input Register 30214, Least Significant byte (LSB) is State. Most Significant Byte (MSB) is sub-state.  
I tried [Device]IR214.0 for MSB and [Device]IR214.15 for LSB but the output was not as I expected. Any suggestions for reading MSB and LSB? Thank you in advance.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 7, 2023, 11:57am UTC](https://forum.inductiveautomation.com/t/modbus-register-addressing/73366/2 "2023-05-07T11:57:55Z")

</div>

Have tried using zero-based addressing? Are you sure these are Input Registers instead of Holding Registers?

Can you provide a link to that user manual?

---

<div class="post-metadata">

**Author:** ![Eve\_Dang](https://avatars.discourse-cdn.com/v4/letter/e/50afbb/32.png) [@Eve\_Dang](https://forum.inductiveautomation.com/u/Eve_Dang)\
**Post date:** [May 7, 2023, 2:47pm UTC](https://forum.inductiveautomation.com/t/modbus-register-addressing/73366/3 "2023-05-07T14:47:35Z")

</div>

> **[IsoAir-Pro-E-Particle-Sensor-Operations-Manual-Rev-B.pdf](https://www.emsparticlesolutions.co.uk/wp-content/uploads/2021/05/IsoAir-Pro-E-Particle-Sensor-Operations-Manual-Rev-B.pdf)**
>
> 1993.98 KB

From the manual, I assume Device State is read at 30214 with MSB as sub state and LSB as state. Please let me know if I misunderstand the manual. Thank you in advance.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 7, 2023, 4:14pm UTC](https://forum.inductiveautomation.com/t/modbus-register-addressing/73366/4 "2023-05-07T16:14:12Z")

</div>

So, "LSB" and "MSB" are bytes, not bits. The syntax you attempted is for bits (and is opposite of what you showed). `IR214.0` yields a **boolean** for the least significant **bit** of that Input Register, and `IR214.15` yields a boolean for the most significant **bit** of that register.

For bytes, you will need to read the whole register, and apply masking and shifting in a pair of derived tags.
