M-Series® M2000
MODBUS Memory Map
MAG-AS-01087-EN-02 (August 2014)
Application Brief
M-Series® M2000 MODBUS Memory Map
Page 2 |
August 2014 |
Application Brief
CONTENTS
OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
5 |
|
Write Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
5. . . . . . |
|
Register Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
5. . . . . . |
|
Register Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.5. . . . . |
|
Register Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
6. . . . . |
|
Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
6 |
|
FNC Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
6 |
|
MEMORY MAPS BY CATEGORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
7. . . . . |
|
Product Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
7 |
|
Meter Calibration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
7 |
|
Meter Measurement Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.8. . . . . |
|
Digital Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
8 |
|
Analog |
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
8. . . . . . |
Output |
#1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.9. . . . . |
Output |
#2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.9. . . . . |
Output |
#3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.9. . . . . |
Output |
#4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
.9. . . . . |
Port A Diagnostic Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 10. . . . . . |
||
Port B Diagnostic Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 10. . . . . . |
||
Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 10. . . . . . |
||
Meter Diagnostic Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. |
11. . . . . . |
|
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
|
11 |
|
Verification Tool Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
|
11 |
|
Empty Pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
12. . . . . . |
||
Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.12. . . . . |
||
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
12 |
||
M2000 MEMORY MAP BY REGISTER ADDRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 13. . . . . . |
||
M2000 REGISTER WRITE PROPERTIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18. . . . . |
|||
TROUBLESHOOTING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
August 2014 |
Page 3 |
M-Series® M2000 MODBUS Memory Map
Page 4 |
August 2014 |
Application Brief
M-Series M2000 supports MODBUS RTU communications.. Port A (pins 5,6,7) support MODBUS RTU using RS232.. The RS485 is supported as an accessory daughterboard.. This daughterboard is supplied under badger meter p/n 67079-003..
The tables to follow identify the MODBUS registers and attributes that exist in the M-Series M2000 flow meter.. Each register has attributes that are also specified in the tables..
Write Security identifies the required security level of the register in order to be successfully written.. This attribute does not apply to the readability of the register and registers listed with ADMIN, SERVICE or USER are unprotected if the meter is not secured (that is, Admin pin is not programmed..)
•FIRMWARE – Typically, read-only registers.. This means only the flow meter firmware has the privilege to update the register..
•FACTORY – Includes registers that can only be written by the factory
•ADMIN – Registers that require admin level access
•SERVICE – Registers that require service level access
•USER – Registers that require user level access
•NONE – Register is always unprotected
All registers can be protected by enabling security on the flow meter.. Once the flow meter is secured, all registers are writeprotected unless remote privilege is granted.. All read accesses to registers are still accepted when the flow meter is secured..
Obtaining remote privilege for write operations requires a sequence of modbus actions to take place.. Remote login process is encrypted to ensure protection of the login pins..
1.Read the random value register (Address 0x012B)..
2.Perform necessary calculations (contact Badger Meter for details)..
3.Write the remote login register (Address 0x012F)..
It is advised that a support application is written to perform this process and embedded within the main application software used to access the flow meter..
When applicable, describes the parameter so it can be associated within the display menu items.. Please note, not all registers are directly modifiable via the menu manager.. Also, some registers are not accessible via the menu manager..
Register Address defines the physical address that is required to be transmitted over the MODBUS RTU serial link.. Some thirdparty applications require the use of logical addressing when communicating over MODBUS.. The logical address determines the MODBUS function code that is transmitted over the serial link..
Two logical address ranges are supported, 3xxxx and 4xxxx.. Logical address range 3xxxx issues the Read Input Register function code 0x04.. Logical address range 4xxxx issues the Read Holding Register function code 0x03.. All logical addresses start at index 1 (example, 30001 and 40001)..
For example, suppose the application requires logical addressing and is targeting to access the “Flow Rate [User Units]” register.. The physical address for this register is 0xF1 or 241d.. This register can be read from two different logical addresses (30242 or 40242).. The logical address is calculated by adding the physical address to the logical start address (30001 or 40001)..
•30001 + 241 = 30242 (Issues function code 0x04 – Read Input Register)
•40001 + 241 = 40242 (Issues function code 0x03 – Read Holding Register)
August 2014 |
Page 5 |
M-Series® M2000 MODBUS Memory Map
Register Type identifies the number of registers the parameter requires.. Each register is 16 bits.. Supported Register Types include:
|
|
Number of |
|
|
MODBUS |
Register Type |
Description |
Registers |
UCHAR16 |
Unsigned Character (16 bits) |
1 |
|
|
|
UCHAR16[x] |
Unsigned Character Array |
x |
|
|
|
UINT16 |
Unsigned Integer (16 bits) |
1 |
SINT16 |
Signed Integer (16 bits) |
1 |
|
|
|
UINT32 |
Unsigned Integer (32 bits) |
2 |
|
|
|
FLOAT32 |
Floating Point (32 bits) |
2 |
For FLOAT32 register types, these registers make use of IEEE-754 floating point standard.. For example, 1..0 is transmitted as 0x3F800000.. MODBUS serial link will transmit the most significant byte first, 0x3F, followed by 0x80, 0x00, 0x00..
The Read/Write attribute identifies if the parameter is read-only or writeable.. Parameters that are read-only are specified as such, otherwise, the parameter can be considered accessible with write commands..
FNC Support identifies the MODBUS function codes (commands) available to access the register.. Supported MODBUS function codes include:
MODBUS Function Code |
Description |
|
|
0x03 |
Read Holding Register |
|
|
0x04 |
Read Input Register |
0x06 |
Preset Single Register (Write) |
|
|
0x10 |
Preset Multiple Registers (Write Multiple) |
|
|
IIMPORTAN
Write function codes are not accepted while menu navigation is in process.
Write function codes update only the working register located in volatile memory. Any sequence of writes must be followed by a write of value 0x01 to the “Command Action Request Register”, address 0x0125. Otherwise changes will be lost if the flow meter is power cycled or reset.
For efficiency, it is possible with read function codes, 0x03 and 0x04, to read blocks of registers. This allows for the ability to read multiple registers in one transmission.
Page 6 |
August 2014 |
Application Brief
No. |
Write |
Register Name |
Register |
Register Type |
Read / |
FNC Support |
|
Security |
Address |
Write |
|||||
1 |
FIRMWARE |
Product Code |
0x0000 |
UINT16 |
Read-Only |
0x03, |
0x04 |
2 |
FIRMWARE |
Product Name |
0x0001 |
UCHAR16[8] |
Read-Only |
0x03, |
0x04 |
3 |
FIRMWARE |
Firmware Name |
0x0009 |
UCHAR16[16] |
Read-Only |
0x03, |
0x04 |
4 |
FACTORY |
Application Version |
0x0019 |
UCHAR16[10] |
— |
0x03, 0x04, |
0x06, 0x10 |
5 |
FIRMWARE |
Compile Date [MM:DD:YYYY] |
0x0023 |
UCHAR16[16] |
Read-Only |
0x03, |
0x04 |
6 |
FIRMWARE |
Compile Time [HH:MM:SS] |
0x0033 |
UCHAR16[16] |
Read-Only |
0x03, |
0x04 |
7 |
FACTORY |
PCB Serial Number |
0x0043 |
UCHAR16[5] |
— |
0x03, 0x04, 0x10 |
|
8 |
FIRMWARE |
OTP Boot Checksum |
0x0048 |
UCHAR16[3] |
Read-Only |
0x03, |
0x04 |
9 |
FIRMWARE |
Flash OS Checksum |
0x004B |
UCHAR16[3] |
Read-Only |
0x03, |
0x04 |
10 |
FIRMWARE |
Boot Version |
0x004E |
UCHAR16[5] |
Read-Only |
0x03, |
0x04 |
11 |
FIRMWARE |
OS Version |
0x0053 |
UCHAR16[4] |
Read-Only |
0x03, |
0x04 |
12 |
NONE |
Daughterboard Product Type |
0x0057 |
UINT16 |
Port B |
0x03, 0x04, |
0x06, 0x10 |
13 |
NONE |
Daughterboard Major Version |
0x0058 |
UINT16 |
Port B |
0x03, 0x04, |
0x06, 0x10 |
14 |
NONE |
Daughterboard Minor Version |
0x0059 |
UINT16 |
Port B |
0x03, 0x04, |
0x06, 0x10 |
15 |
FACTORY |
Power On Splash Line 1 |
0x005A |
UCHAR16[11] |
— |
0x03, 0x04, |
0x06, 0x10 |
16 |
FACTORY |
Power On Splash Line 2 |
0x0156 |
UCHAR16[11] |
— |
0x03, 0x04, |
0x06, 0x10 |
17 |
NONE |
Meter Tag Name |
0x0161 |
UCHAR16[17] |
— |
0x03, 0x04, |
0x06, 0x10 |
No. |
Write |
Register Name |
Register |
Register Type |
Read / |
FNC Support |
Security |
Address |
Write |
||||
18 |
ADMIN |
Detector Diameter |
0x006F |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
19 |
ADMIN |
Detector Diameter Other [mm] |
0x0070 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
20 |
ADMIN |
Detector Factor |
0x0071 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
21 |
FIRMWARE |
[FACTORY] Detector Factor |
0x0073 |
FLOAT32 |
Read-Only |
0x03, 0x04 |
22 |
ADMIN |
Detector Offset [m/s] |
0x0075 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
23 |
FIRMWARE |
[FACTORY] Detector Offset |
0x0077 |
FLOAT32 |
Read-Only |
0x03, 0x04 |
24 |
ADMIN |
Amplifier Factor |
0x0079 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
25 |
FIRMWARE |
[FACTORY] Amplifier Factor |
0x007B |
FLOAT32 |
Read-Only |
0x03, 0x04 |
26 |
ADMIN |
Detector Current [mA] |
0x007D |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
27 |
FIRMWARE |
[FACTORY] Detector Current [mA] |
0x007F |
FLOAT32 |
Read-Only |
0x03, 0x04 |
28 |
SERVICE |
Power Line Frequency [Hz] |
0x0081 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
29 |
ADMIN |
Excitation Frequency [Hz] |
0x0082 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
30 |
SERVICE |
Scale Factor [%] |
0x010B |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
August 2014 |
Page 7 |
M-Series® M2000 MODBUS Memory Map
No. |
Write |
Register Name |
Register |
Register Type |
Read / |
FNC Support |
Security |
Address |
Write |
||||
31 |
USER |
Flow Unit |
0x0083 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
32 |
USER |
Volume Unit |
0x0084 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
33 |
USER |
Unit Multiplier |
0x0085 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
34 |
USER |
Zero Scale Flow [User Units] |
0x010D |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
35 |
USER |
Full Scale Velocity [m/s] |
0x0086 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
36 |
USER |
Full Scale Flow [User Units] |
0x0090 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
37 |
USER |
Low Flow Cutoff [%] |
0x008E |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
38 |
USER |
Flow Direction |
0x0092 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
39 |
USER |
Damping Factor [s] |
0x0093 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
Digital Input |
|
|
|
|
|
No. |
Write |
Register Name |
Register |
Register Type |
Read / |
FNC Support |
|
Security |
Address |
Write |
|||||
40 |
SERVICE |
Digital Input: Input Operation |
0x0094 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
|
41 |
FIRMWARE |
Digital Input: Status |
0x0155 |
UINT16 |
Read-Only |
0x03, 0x04 |
|
Analog Output |
|
|
|
|
|||
|
|
|
|
|
|
|
|
No. |
Write |
Register Name |
Register |
Register Type |
Read / |
FNC Support |
|
Security |
Address |
Write |
|||||
42 |
SERVICE |
Analog Output Range |
0x0095 |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
|
43 |
FIRMWARE |
Analog Output Offset |
0x0096 |
FLOAT32 |
Read-Only |
0x03, 0x04 |
|
44 |
ADMIN |
Analog Output Calibration Point A [A] |
0x0126 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
|
45 |
ADMIN |
Analog Output Calibration Point B [A] |
0x0128 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
|
46 |
FIRMWARE |
[FACTORY] : Analog Output |
0x0088 |
FLOAT32 |
Read-Only |
0x03, 0x04 |
|
Calibration Point A [A] |
|||||||
|
|
|
|
|
|
||
47 |
FIRMWARE |
[FACTORY] : Analog Output |
0x008C |
FLOAT32 |
Read-Only |
0x03, 0x04 |
|
Calibration Point B [A] |
|||||||
|
|
|
|
|
|
||
48 |
FIRMWARE |
Analog Output Slope |
0x0131 |
FLOAT32 |
Read-Only |
0x03, 0x04 |
|
49 |
SERVICE |
Analog Customer Offset 4 mA [A] |
0x0133 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
|
50 |
SERVICE |
Analog Customer Offset 20 mA [A] |
0x0135 |
FLOAT32 |
— |
0x03, 0x04, 0x10 |
|
51 |
FIRMWARE |
Analog Output Current [ A ] |
0x014E |
FLOAT32 |
Read-Only |
0x03, 0x04 |
|
52 |
FIRMWARE |
Analog Output Current String [mA] |
0x0150 |
UCHAR16[4] |
Read-Only |
0x03, 0x04 |
|
53 |
SERVICE |
Alarm Mode |
0x012E |
UINT16 |
— |
0x03, 0x04, 0x06, 0x10 |
|
54 |
NONE |
Fixed Current Mode |
0x008A |
FLOAT32 |
Port B |
0x03, 0x04, 0x10 |
Page 8 |
August 2014 |