# How to read Mod10 registers

**URL:** <https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595>\
**Category:** Ignition\
**Created:** [January 8, 2025, 3:28pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595 "2025-01-08T15:28:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mario\_Gamboa](https://avatars.discourse-cdn.com/v4/letter/m/8c91f0/32.png) [@Mario\_Gamboa](https://forum.inductiveautomation.com/u/Mario_Gamboa)\
**Post date:** [January 8, 2025, 3:28pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/1 "2025-01-08T15:28:12Z")

</div>

Hi, I'm trying to read energy registers from a CM3000 on Modbus TCP/IP, can ignition read Mod10 type registers?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/1/612d5be4390c24c256b06c092c20bd38b41a2851.png)

---

<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:** [January 8, 2025, 3:30pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/2 "2025-01-08T15:30:15Z")

</div>

Never heard of Mod10. Details? (Link to spec/manual?)

---

<div class="post-metadata">

**Author:** ![Matrix\_Engineering](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matrix_engineering/32/19781_2.png) [@Matrix\_Engineering](https://forum.inductiveautomation.com/u/Matrix_Engineering)\
**Post date:** [January 8, 2025, 3:31pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/3 "2025-01-08T15:31:14Z")

</div>

> [@Mario\_Gamboa](#):
>
> CM3000

Sounds like Schneider meter. I would try e.g. 1.HRF1700 in a manually created modbus tag.

---

<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:** [January 8, 2025, 3:45pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/4 "2025-01-08T15:45:08Z")

</div>

If float, its 64-bit, so `1.HRD1700`. Possibly also need zero-based addressing.

---

<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:** [January 8, 2025, 3:48pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/5 "2025-01-08T15:48:46Z")

</div>

If Schneider, this is probably it:

> **[How to convert Mod10 (modulo 10000) registers to decimal | Schneider Electric...](https://www.se.com/us/en/faqs/FA212766/)**
>
>  

You'll need to perform those calculations yourself. Neither IA's native driver nor my alternate driver support this data type.

(Wouldn't be difficult--perhaps I will add this to my driver.)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [January 8, 2025, 3:53pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/6 "2025-01-08T15:53:48Z")

</div>

If it's the Mod10 format Phil linked you could probably just build a UDT containing the 4 component tags and 1 calculated expression tag.

---

<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:** [January 8, 2025, 4:36pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/7 "2025-01-08T16:36:27Z")

</div>

> [@Kevin.Herron](#):
>
> build a UDT

Yes, simplest. If one ever needed to write this format, driver support would be a big help. (I'll have it in another 30 minutes or so. Nerd sniped.)

---

<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:** [January 8, 2025, 5:05pm UTC](https://forum.inductiveautomation.com/t/how-to-read-mod10-registers/100595/8 "2025-01-08T17:05:44Z")

</div>

OK. That was easy. Lightly tested beta:

For Ignition v8.1: ~~v1.1.12.250081649~~

Adds three address modifiers, "MI" for Mod10 size 2, "M" for Mod10 size 3, and "ML" for Mod10 size 4. Not yet in the user manual.

For the OP, the OPC Item Path would likely be `[device]1.HRML1700`

😉

FWIW:

```python
 Gateway/src/com/automation_pros/modbus/address/ModbusAddress.java | 8 ++++++-
 Gateway/src/com/automation_pros/modbus/address/ModbusNumericAddress.java | 4 ++++
 Gateway/src/com/automation_pros/modbus/driver/GenericModbusDriver.java | 4 ++++
 Gateway/src/com/automation_pros/modbus/handlers/Mod10Handler.java | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 136 insertions(+), 1 deletion(-)

```

Edit: The beta has been replaced with a new formal release, with this data type's OPC Item Path format now documented.

> [@Automation Professionals' Advanced Modbus Driver](https://forum.inductiveautomation.com/t/automation-professionals-advanced-modbus-driver/41312/78):
>
> Automation Professionals is pleased to announce a new production release of this module, with one more RTU bugfix and an implementation of Schneider's "Mod10" totalizer data format. For Ignition v8.1+: [v1.1.12.250132149](https://www.automation-pros.com/ignition/Advanced%20Modbus%20Driver-1.1.12.250132149-v81.modl) The Lufkin ELAM support is still a BETA.
