Emerson Micro Motion Series 1000/2000 Modbus register map
Coriolis mass flow transmitters in the Micro Motion MVD family, including the Series 1000 and 2000 transmitters and the core processor, report mass flow, volume flow, density, temperature, totals and diagnostics over Modbus. This map is the manufacturer's list of mapped coils, discrete inputs, float pairs, integer registers and text registers.
- Protocol
- Modbus RTU (RS-485)
- Defaults
- The float byte order is held in holding register 521 (4-digit address as printed). The Interface Tool manual lists 2-3 0-1 as the default float byte order for MVD transmitters. The map does not list a register that sets the transmitter's own Modbus address; register 313 is the polling address the transmitter uses for an external device.
- Addresses in the manual
- 1-based register numbers (wire address is the number minus 1)
- 32 and 64-bit values
- Low word first (CD AB)
- Registers listed
- 59
- Checked against
- Micro Motion Modbus mapping assignments for Series 1000/2000 and RFT9739; rows checked against the Rev C, July 2002 copy and the MMI-20011275 Interface Tool manual
Address base. The map prints each address as a type digit followed by a four-digit number (coils 0, discrete inputs 1, float pairs 2, input registers 3, holding registers 4, text registers 5). This file records the four-digit number; the type digit is expressed through the area field. The Interface Tool manual (section 3.3.1, p. 9) says you may need to subtract 1 depending on the PLC and gives an example where printed address 42 is sent as 41 on the wire, so wire address is the printed number minus 1. Integer code tables in the map refer to registers in five-digit form such as 40042, which agrees with 42 being the volume flow unit register. Float and long values occupy two consecutive registers, listed here by the first address. The map is dated 2001 and covers the core processor, Series 1000, Series 2000 and RFT9739; rows used here are those marked for all products or for the MVD products. For example 2 in the manual (Start or stop totalizers) is address 1 on the wire.
Word order. Float pairs use configurable byte order selected in register 521. The Interface Tool manual (p. 11) names 2-3 0-1 as the default for MVD transmitters, meaning the low-order word is sent first; 0-1 2-3, 1-0 3-2 and 3-2 1-0 are also selectable. RFT9739 uses fixed 2-3 0-1. Read-only versus read-write for float rows follows the process-variable nature of each value; holding rows follow the manual's description of holding registers as read-write unless stated.
Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.
Downloads
The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.
Registers
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 2 | 1 | Start or stop totalizersStartStopTotalizers |
bool | 1 | 1 | RW | Coil (FC01) | |
| 3 | 2 | Reset totalsResetTotals |
bool | 1 | 1 | RW | Coil (FC01) | |
| 4 | 3 | Reset inventoriesResetInventories |
bool | 1 | 1 | RW | Coil (FC01) | |
| 5 | 4 | Start flowmeter zeroingFlowmeterZeroing |
bool | 1 | 1 | RW | Coil (FC01) | |
| 20 | 19 | Start transmitter self-testTransmitterTest |
bool | 1 | 1 | RW | Coil (FC01) | |
| 41 | 40 | Reboot transmitterReboot |
bool | 1 | 1 | RW | Coil (FC01) | |
| 21 | 20 | (E)EPROM checksum failureEepromChecksumFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 22 | 21 | RAM diagnostic failureRamDiagnosticFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 23 | 22 | Real-time interrupt failureRealTimeInterruptFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 24 | 23 | Sensor failureSensorFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 25 | 24 | Temperature sensor failureTempSensorFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 26 | 25 | Flowmeter zeroing failureZeroingFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 27 | 26 | Other failure occurredOtherFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 28 | 27 | Transmitter initializing or warming upInitializingWarmingUp |
bool | 1 | 1 | R | Discrete (FC02) | |
| 30 | 29 | Non-primary variable out of rangeNonPrimaryOutOfRange |
bool | 1 | 1 | R | Discrete (FC02) | |
| 33 | 32 | Watchdog timer errorWatchdogTimerError |
bool | 1 | 1 | R | Discrete (FC02) | |
| 34 | 33 | Power reset occurredPowerResetOccurred |
bool | 1 | 1 | R | Discrete (FC02) | |
| 35 | 34 | Transmitter configuration changedConfigChanged |
bool | 1 | 1 | R | Discrete (FC02) | |
| 36 | 35 | Transmitter electronics failureElectronicsFailure |
bool | 1 | 1 | R | Discrete (FC02) | |
| 37 | 36 | Event 1 statusEvent1Status |
bool | 1 | 1 | R | Discrete (FC02) | |
| 38 | 37 | Event 2 statusEvent2Status |
bool | 1 | 1 | R | Discrete (FC02) | |
| 247 | 246 | Mass flow rateMassFlowRate · Unit follows the mass flow unit code in holding register 39. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 249 | 248 | DensityDensity · Unit follows the density unit code in holding register 40. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 251 | 250 | TemperatureTemperature · Unit follows the temperature unit code in holding register 41. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 253 | 252 | Volume flow rateVolumeFlowRate · Unit follows the volume flow unit code in holding register 42. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 259 | 258 | Mass totalMassTotal |
float32 | 2 | 1 | R | Holding (FC03) | |
| 261 | 260 | Volume totalVolumeTotal |
float32 | 2 | 1 | R | Holding (FC03) | |
| 263 | 262 | Mass inventoryMassInventory |
float32 | 2 | 1 | R | Holding (FC03) | |
| 265 | 264 | Volume inventoryVolumeInventory |
float32 | 2 | 1 | R | Holding (FC03) | |
| 285 | 284 | Raw tube frequencyRawTubeFrequency |
float32 | 2 | Hz | 1 | R | Holding (FC03) |
| 287 | 286 | Left pickoff voltageLeftPickoffVoltage |
float32 | 2 | mV | 1 | R | Holding (FC03) |
| 289 | 288 | Right pickoff voltageRightPickoffVoltage |
float32 | 2 | mV | 1 | R | Holding (FC03) |
| 291 | 290 | Drive gainDriveGain · Percent for the core processor and Series 1000/2000 (volts for RFT9739). |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 1 | 0 | Status bits, register 1StatusWord1 · Bit 2 sensor failure, bit 3 temperature sensor failure, bit 4 input overrange, bit 6 transmitter not configured, bit 10 density overrange, bit 11 flowmeter zeroing failure, bit 12 electronics failure, bit 13 slug flow, bit 14 initializing or warming up, bit 15 power reset occurred. Other bits listed in the manual. |
bitfield16 | 1 | 1 | R | Input (FC04) | |
| 125 | 124 | Status bits, register 125StatusWord2 · Bit 4 density overrange, bit 5 drive gain overrange, bit 10 sensor failure, bit 11 temperature sensor failure, bit 12 input overrange, bit 14 transmitter not configured, bit 15 real-time interrupt failure. Other bits listed in the manual. |
bitfield16 | 1 | 1 | R | Input (FC04) | |
| 126 | 125 | Status bits, register 126StatusWord3 · Bit 1 power reset occurred, bit 2 initializing or warming up, bit 5 event 2 on, bit 6 event 1 on, bit 8 zeroing failure, bit 9 zero too low, bit 10 zero too high, bit 11 zero too noisy, bit 12 electronics failure, bit 13 data loss possible, bit 14 calibration in progress, bit 15 slug flow. |
bitfield16 | 1 | 1 | R | Input (FC04) | |
| 16 | 15 | Transmitter software revisionSoftwareRevision · Read-only. The map lists this register only in the input register table (3 0016) and shows the format as xxxx.x, so 141 means revision 14.1. |
uint16 | 1 | 1 | R | Input (FC04) | |
| 17 | 16 | Flow direction settingFlowDirection |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 18 | 17 | Maximum integerMaximumInteger |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 29 | 28 | Mass flow scale factorMassFlowScaleFactor |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 30 | 29 | Density scale factorDensityScaleFactor |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 31 | 30 | Temperature scale factorTemperatureScaleFactor |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 32 | 31 | Volume flow scale factorVolumeFlowScaleFactor |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 39 | 38 | Mass flow rate unit codeMassFlowUnit · Codes include 70 g/s, 73 kg/s, 75 kg/h, 78 metric tons/h, 82 lb/h, 253 special. Full code list on p. 24. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 40 | 39 | Density unit codeDensityUnit · Code list is in the manual integer code tables. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 41 | 40 | Temperature unit codeTemperatureUnit · Code list is in the manual integer code tables. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 42 | 41 | Volume flow rate unit codeVolumeFlowUnit · Codes include 16 gal/min, 17 L/min, 19 m3/h, 24 L/s, 253 special. Full code list on p. 26. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 45 | 44 | Mass total and inventory unit codeMassTotalUnit · Codes include 60 g, 61 kg, 62 metric tons, 63 lb, 253 special. Full list on p. 25. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 46 | 45 | Volume total and inventory unit codeVolumeTotalUnit · Codes include 40 US gallons, 41 L, 43 m3, 46 barrels, 253 special. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 136 | 135 | Maximum zeroing timeMaxZeroingTime |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 137 | 136 | Event 1 variable assignmentEvent1Variable |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 138 | 137 | Event 2 variable assignmentEvent2Variable |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 139 | 138 | Event 1 typeEvent1Type · 1 high, 2 low. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 140 | 139 | Event 2 typeEvent2Type · 1 high, 2 low. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 521 | 520 | Floating-point byte orderFloatByteOrder · Selects how the four bytes of a float are ordered. Per the Interface Tool manual, 2-3 0-1 is the default. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 522 | 521 | Additional delay to Modbus/HART responseResponseDelay |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 68 | 67 | Device tagDeviceTag · Text, padded with spaces on read. Write as a single multi-register write. |
string | 4 | 1 | RW | Holding (FC03) | |
| 96 | 95 | Description textDescription · Text, padded with spaces on read. Write as a single multi-register write. |
string | 8 | 1 | RW | Holding (FC03) | |
| 104 | 103 | User messageUserMessage · Text, padded with spaces on read. Write as a single multi-register write. |
string | 16 | 1 | RW | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to CD AB.
- In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
- The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.
Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.
Source and accuracy
Manufacturer document: Modbus Mapping Assignments for Micro Motion Transmitters (emersonexchange365.com)
Micro Motion Modbus mapping assignments for Series 1000/2000 and RFT9739; rows checked against the Rev C, July 2002 copy and the MMI-20011275 Interface Tool manual, p. 3-27. Read on 2026-10-24.
Also used: Micro Motion Modbus Interface Tool manual (MMI-20011275 Rev AC, November 2016) (www.emerson.com)
Also used: Rev C copy (Internet Archive) (dn721909.ca.archive.org)
Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.
Found a mistake? Report it by email with the register address and the manual page.