Modbus MOD10 Format to handle huge numbers

Modbus Mod10 format is an agreement on how to interpret/store large numbers.

Question: How do you handle large integer values in Modbus? Eg 100,000,000,002

Answer: Use 2 or more 16-bit registers

How?

  • Use the 1st register as the unit’s number
  • Use the 2nd register as the number of 10,000’s
  • Use the 3rd register as the number of 100,000,000 number
  • Use the 4th register as the number of 100,000,000,000 number

Both the server of the Modbus data and the Register master must agree on

  • To use the Mod10 format
  • How many registers to use

If there isn’t agreement then you could face the problem that a number is served in. For example, Mod10 using 3 registers and the master thinks only 2 are being used

Example

Slave and master agree on 2 register Mod 10

  • Register 1 = 2
  • Register 2 = 3
  • Value = 30,002

Positive / Negative numbers

Any of the registers can contain a negative number or positive number in the range -9,999 to +9,999: Note that the same formula is used whether the register is signed or unsigned

Thus, to send a negative number all of the registers being used must contain a negative number.

Implementations

  • Quickservers have built-in support for Mod10 using 2 registers only.
  • PowerLogic PM800 series meters, CM3000 series meters. CM4000 series meters have built in support for Mod10 using 4 registers.
  • Other devices – you will need to check the manuals. Most Modbus implementations do not support Mod10

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm