ABB M2M / DMTME Modbus register map
Also covers M2M MODBUS, M2M ALARM, M2M I/O, DMTME-I-485
Three-phase panel multimeters (M2M with RS485, DMTME-I-485), Modbus RTU
- Official
- 88 registers
- Modbus RTU
- Revision 2 · 2026-10-17
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
- Max read
- 48 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 88 holding registers
- Groups
- 11
- Translation tables
- 1
- Revision
- 2 · 2026-10-17
- Added
- ()
- File
- maps/abb/m2m-dmtme.mbmap.json · 19 KB · history
- SHA-256
- a8705d825b99c6e3418258e6fc91e90d68c97ca93a3bb69891f36a0ea82f8e71
- Manufacturer
- abb.com
Sources and notes
- M2M/DMTME Instruments - Communication protocol · version Technical specification V2.0, 2CSG445011D0201
Source: ABB, "M2M/DMTME Instruments - Communication protocol", technical specification V2.0, 2CSG445011D0201; https://library.abb.com/d/2CSG445011D0201
- ABB M2M (MODBUS, ALARM and I/O models) and DMTME-I-485 multimeters over RS485.
- Every value is a 32-bit long (2 registers, high word first); reads and writes use FC03 and FC16. Up to 24 values (48 registers) per read.
- Registers marked M2M only read as 0 on the DMTME. Active and reactive powers are unsigned on the DMTME.
- A power factor or cos phi of 2.000 (raw 2000) means not available, e.g. with no current.
- The instrument type and firmware are only given by FC11 Report slave ID: 80 = DMTME-I-485, 57 = M2M MODBUS, 58 = M2M ALARM, 59 = M2M I/O.
- Serial settings: 8 data bits, parity even, odd or none, 2400-19200 baud (DMTME) or 4800-19200 baud (M2M). Set the address on the instrument.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 4096 | uint32 ABCD | R | V | |||
| HR | 4098 | uint32 ABCD | R | V | |||
| HR | 4100 | uint32 ABCD | R | V | |||
| HR | 4102 | uint32 ABCD | R | V | |||
| HR | 4104 | uint32 ABCD | R | V | |||
| HR | 4106 | uint32 ABCD | R | V | |||
| HR | 4108 | uint32 ABCD | R | V | |||
| HR | 4110 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4112 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4114 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4116 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4118 | int32 ABCD | R | ×0.001 | |||
| HR | 4120 | int32 ABCD | R | ×0.001 | |||
| HR | 4122 | int32 ABCD | R | ×0.001 | |||
| HR | 4124 | int32 ABCD | R | ×0.001 | |||
| HR | 4126 | int32 ABCD | R | ×0.001 | |||
| HR | 4128 | int32 ABCD | R | ×0.001 | |||
| HR | 4130 | int32 ABCD | R | ×0.001 | |||
| HR | 4132 | int32 ABCD | R | ×0.001 | |||
| HR | 4134 | uint32 ABCD | R | VA | |||
| HR | 4136 | uint32 ABCD | R | VA | |||
| HR | 4138 | uint32 ABCD | R | VA | |||
| HR | 4140 | uint32 ABCD | R | VA | |||
| HR | 4142 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4144 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4146 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4148 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4150 | int32 ABCD | R | var | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4152 | int32 ABCD | R | var | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4154 | int32 ABCD | R | var | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4156 | int32 ABCD | R | var | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4158 | uint32 ABCD | R | Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4160 | uint32 ABCD | R | Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4166 | uint32 ABCD | R | Hz | ×0.001 | ||
| HR | 4192 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4194 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4196 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4198 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4200 | uint32 ABCD | R | VA | |||
| HR | 4208 | int32 ABCD | R | W | Signed on the M2M, unsigned on the DMTME | ||
| HR | 4210 | uint32 ABCD | R | VA | M2M only | ||
| HR | 4212 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4214 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4216 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4218 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4220 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4222 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4224 | int32 ABCD | R | W | M2M only | ||
| HR | 4226 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4228 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4230 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4232 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4234 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4236 | uint32 ABCD | R | % | ×0.01 | M2M only; 0 when not defined | |
| HR | 4238 | int32 ABCD | R | W | M2M only | ||
| HR | 4240 | int32 ABCD | R | W | M2M only | ||
| HR | 4242 | int32 ABCD | R | W | M2M only | ||
| HR | 4244 | uint32 ABCD | R | VA | M2M only | ||
| HR | 4246 | uint32 ABCD | R | VA | M2M only | ||
| HR | 4248 | uint32 ABCD | R | VA | M2M only | ||
| HR | 4250 | uint32 ABCD | R | VA | M2M only | ||
| HR | 4252 | uint32 ABCD | R | W | M2M I/O only | ||
| HR | 4254 | uint32 ABCD | R | var | M2M I/O only | ||
| HR | 4256 | uint32 ABCD | R | M2M I/O only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4258 | uint32 ABCD | R | M2M I/O only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4260 | uint32 ABCD | R | A | ×0.001 | M2M only | |
| HR | 4262 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4264 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4266 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4268 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4270 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4272 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4274 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4276 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4278 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4280 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4282 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4284 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4286 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4288 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4290 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4292 | uint32 ABCD | R | M2M only; Unit printed as "Wh * 100" (varh, VAh): either 100 Wh or 0.01 Wh steps; check against the display | |||
| HR | 4512 | uint32 ABCD | RW | 1-1250 on the DMTME, 1-2000 on the M2M; on the M2M writing sets the CT to (ratio × 5 A)/5 A | |||
| HR | 4514 | uint32 ABCD | RW | 1-500 on the DMTME, 1-600 on the M2M; on the M2M writing sets the VT to (ratio × 100 V)/100 V | |||
| HR | 4516 | uint32 ABCD | RW | ||||
| HR | 4528 | uint32 ABCD | W | Write the register address followed by 55AAh | |||
| HR | 4530 | uint32 ABCD | W | Write the register address followed by 55AAh | |||
| HR | 4532 | uint32 ABCD | W | Write the register address followed by 55AAh |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).