0% found this document useful (0 votes)
64 views

RIF300 - Modbus Protocol User Manual v4.0

The document describes the Modbus communication protocol for a vortex flowmeter. It provides an overview of the protocol including serial parameters and data formats. It also describes the input and holding registers including addresses, data types and usage.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

RIF300 - Modbus Protocol User Manual v4.0

The document describes the Modbus communication protocol for a vortex flowmeter. It provides an overview of the protocol including serial parameters and data formats. It also describes the input and holding registers including addresses, data types and usage.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Modbus Protocol

Vortex / Swirl Flowmeter


Communication Protocol (ModBus)
1 Protocol Overview
Vortex / Swirl flowmeter communication protocol is the standard MODBUS-RTU mode.
 Communication interface:RS-485.
 Support standard Modbus-RTU :Support functions codes 03, 04, 06, 16.
 Register length limit:Supports max 8 registers.

1.1 Serial Communication Parameters

Parameter Ranges Default Value


Address 1--247 1
Baud rate 9600, 4800, 2400, 1200, 600 9600
Data Length 8 8
Parity None None
Stop Bits 1 1

1.2 Communication Data Format

H880BR/TBR supports data format types:


1) Float:Floating point data
The float data is 4-byte floating-point number in standard IEEE-754 format.
For example, in the case of 100.0 (hexadecimal representation: 0x42, 0xC8, 0x00, 0x00), the order
of transmission is: 0x42, 0xC8, 0x00, 0x00.
2) Unsigned short:2-byte unsigned integer
For example, in the case of 4660 (hexadecimal representation: 0x12, 0x34), the order of
transmission is: 0x12, 0x34.
3) Unsigned char:Single-byte unsigned number

1.3 Communication Interface Functions Format

1.3.1 Function 03 (Read Holding Registers)

Example: Read the upper range value (assuming the current value is 100.0), the corresponding register
starting address: 524 (0x020C in hexadecimal).
Request frame:
Address Function Code Register Address Register Numbers CRC Check
0x01 0x03 0x02,0x0C 0x00,0x02 0x05,0xB0
The correct response frame:
Address Function Code Data Length Data CRC Check
0x01 0x03 0x04 0x42,0xC8,0x00,0x00 0x6F,0xB5
Page 1
Modbus Protocol

1.3.2 Function 04(Read the Input Register)

Example: To read accumulation (assuming its current value is 100.0), the corresponding register starting
address: 1034 (0x040A in hexadecimal).
Request frame:
Address Function Code Register Address Register Numbers CRC Check
0x01 0x04 0x04,0x0A 0x00,0x02 0x50,0xF9
The correct response frame:
Address Function Code Data Length Data CRC Check
0x01 0x04 0x04 0x42,0xC8,0x00,0x00 0x6E,0x02

1.3.3 Function 16(Write Holding Registers)

Example: Set the upper range value to 100.0, the corresponding register starting address is: 524 (0x020C
in hexadecimal)
Request frame:
Address Function Code Register Address Register Data Data CRC Check
Numbers Length
0x01 0x10 0x02,0x0C 0x00,0x02 0x04 0x42,0xC8,x00,0x00 0x7F,0x1C
The correct response frame:
Address Function Code Register Address Register Numbers CRC Check
0x01 0x10 0x02,0x0C 0x00,0x02 0x80,0x73

2 Registers Description

2.1 Input Registers Table (Variables)

Register Data
Access Data
Address Parameter Name Length Description
Type Type
(Hexadecimal) (word)
0x0402 Percentage R 2 float
Register 0x021C holds the unit of
0x0404 Instantaneous Flow R 2 float
instantaneous flow
0x0408 Sensor Value R 2 float Sensor output frequency value
Register 0x021D holds the unit of total
0x040A Total Flow R 2 float
flow
Overflows Number
0x040C R 2 float
of Total
0x0414 Signal Gain R 2 float
unsigned
0x041C Signal Channel R 1
short
0x0421 Current R 2 float
0x0423 Pressure R 2 float
0x0425 Temperature R 2 float

Page 2
Modbus Protocol

0x0427 Density R 2 float


Pressure Sensor
0x0429 R 2 float
Value
Temperature Sensor
0x042B R 2 float
Value

2.2 Holding Register List(Configuration Data)

Register Data
Access Data
Address Parameter Name Length Description
Type Type
(Hexadecimal) (word)
unsigned
0x0200 Modbus Addr. R/W 1
short Value range:1 ~ 247
{ 0, "Liquid_QV Liquid Volume "},
{1, "Liquid_QM Liquid Mass"},
{2, "Gas_QV Gas Volume"},
{3, "Gas_QM Gas Mass"},
{4, "Steam_QV Steam Volume"},
unsigned
0x0201 Flow Mode R/W 1 {5,"Steam_PT Steam Pressure and
short
Temperature Compensation "},
{6,"Steam_SAT_T Saturated Vapor
(Temperature Compensation)"},
{7,"Steam_SAT_P Saturated Vapor
(Pressure Compensation)"}
{ 0x0000, "Liquid N15" },
{ 0x0001, "Liquid DN20" },
{ 0x0002, "Liquid DN25" },
{ 0x0003, "Liquid DN32" },
{ 0x0004, "Liquid DN40" },
{ 0x0005, "Liquid DN50" },
{ 0x0006, "Liquid DN65" },
{ 0x0007, "Liquid DN80" },
{ 0x0008, "Liquid DN100"},
Meter Size and Fluid unsigned { 0x0009, "Liquid DN125"},
0x0202 R/W 1
Type. short { 0x000A, "Liquid DN150"},
{ 0x000B, "Liquid DN200"},
{ 0x000C, "Liquid DN250"},
{ 0x000D, "Liquid DN300"},
{ 0x000E, "Liquid DN350"},
{ 0x000F, "Liquid DN400"},
{ 0x0010, "Liquid DN450"},
{ 0x0011, "Liquid DN500"},
{ 0x0012, "Liquid DN600"},
{ 0x0100, "Gas DN15" },

Page 3
Modbus Protocol

{ 0x0101, "Gas DN20" },


{ 0x0102, "Gas DN25" },
{ 0x0103, "Gas DN32" },
{ 0x0104, "Gas DN40" },
{ 0x0105, "Gas DN50" },
{ 0x0106, "Gas DN65" },
{ 0x0107, "Gas DN80" },
{ 0x0108, "Gas DN100"},
{ 0x0109, "Gas DN125"},
{ 0x010A, "Gas DN150"},
{ 0x010B, "Gas DN200"},
{ 0x010C, "Gas DN250"},
{ 0x010D, "Gas DN300"},
{ 0x010E, "Gas DN350"},
{ 0x010F, "Gas DN400"},
{ 0x0110, "Gas DN450"},
{ 0x0111, "Gas DN500"},
{ 0x0112, "Gas DN600"},
Maximum Signal 0~1500
0x0204 R/W 2 float
Magnification
0x0206 Minimum Frequency R 2 float
Maximum
0x0208 R 2 float
Frequency
0x020A K-Factor R/W 2 float >0
0x020C Upper Range Value R/W 2 float >0
0x020E Damping R/W 2 float 0 ~ 32.0
0x0210 High Alarm Limit R/W 2 float
0x0212 Low Alarm Limit R/W 2 float
0x0214 Gas Density(kg/ m3) R/W 2 float
Gas Pressure
0x0216 R/W 2 float
(Gauge)
Gas Temperature
0x0218 R/W 2 float
(℃)
Liquid Density (g/c
0x021A R/W 2 float
m3)
{ 188 , "Nm3/h" },
{ 189 , "Nm3/min" },
{ 190 , "Nm3/s" },
{ 29 , "m3/d" },
unsigned
0x021C Flow Unit R/W 1 { 19 , "m3/h" },
short
{ 131 , "m3/min"},
{ 28 ,"m3/s" },
{ 138, "l/h" },
{ 17, "l/min" },
Page 4
Modbus Protocol

{ 24, "l/s" },
{ 185, "Scf/h" },
{ 123, "Scf/m" },
{ 186, "Scf/s" },
{ 130, "cf/h" },
{ 15 , "cf/m" },
{ 26 , "cf/s" },
{ 136, "USG/h" },
{ 16 , "USG/m" },
{ 22 , "USG/s" },
{ 30 , "UKG/h" },
{ 18 , "UKG/m" },
{ 137, "UKG/s" },
{ 135, "bbl/d" },
{ 134, "bbl/h" },
{ 253, "special_Qv" }
{ 79, "t/d" },
{ 78, "t/h" },
{ 77, "t/min" },
{ 76, "kg/d" },
{ 75, "kg/h" },
{ 74, "kg/min"},
{ 73, "kg/s" },
{ 72, "g/h" },
{ 71, "g/min" },
{ 70, "g/s" },
{ 83, "lb/d" },
{ 82, "lb/h" },
{ 254, "special_Qm" }
{ 43, "m3" },
{ 41, "l" },
{ 172, "Nm3"},
{ 168, "Scf" },
{ 112, "cf" },
{ 40, "USGal" },
unsigned { 42, "UKgal" },
0x021D Total Flow Unit R 1
short { 46, "bbl"},
{ 61, "kg" },
{ 60, "g" },
{ 62, "ton"},
{ 63, "lb"},
{ 253, "special"},
{ 254, "special"},

Page 5
Modbus Protocol

unsigned { 0, "Three-line Display" },


0x0250 Display Mode R/W 1
short { 1, "Two-line Display" },
{ 0, "Current" },
{ 1, "Percentage" },
{ 4, "Frequency" },
The Third Line unsigned
0x021E R/W 1 { 6, "Density" },
Shows Setting short
{ 7, "Pressure" },
{ 8, "Temperature" },
{ 9, "Pressure and Temperature" },
{ 0, "0" },
unsigned { 1, "1" },
0x021F Flow Display Point R/W 1
short { 2, "2" },
{ 3, "3" },
unsigned { 0, " Write Enable " },
0x0220 Write Protection R/W 1
short { 1, "Write Disable" }
{ 0x00, "0" }:No User Trim
{ 0x02, "2" },
K-Factor User Trim unsigned
0x0221 R/W 1 { 0x03, "3" },
Points short
{ 0x04, "4" },
{ 0x05, "5" }
K-Factor User Trim:
0x0222 R/W 2 float
Frequency Value 1
K-Factor User Trim:
0x0224 R/W 2 float
Frequency Value 2
K-Factor User Trim:
0x0226 R/W 2 float
Frequency Value 3
K-Factor User Trim:
0x0228 R/W 2 float
Frequency Value 4
K-Factor User Trim:
0x022A R/W 2 float
Frequency Value 5
K-Factor User Trim:
0x022C R/W 2 float
Correction factor 1
K-Factor User Trim:
0x022E R/W 2 float
Correction factor 2
K-Factor User Trim:
0x0230 R/W 2 float
Correction factor 3
K-Factor User Trim:
0x0232 R/W 2 float
Correction factor 4
K-Factor User Trim:
0x0234 R/W 2 float
Correction factor 5
0x0236 PV Cutoff (%) R/W 2 float 0 ~ 20.0

0x023B Function Operation R/W 1 unsigned { 0x0100, "Total Flow Reset" },

Page 6
Modbus Protocol

Code short

{ 43, "m3" },
{ 172, "Nm3"}
{ 61, "kg" },
{ 62, "ton"},
unsigned { 168, "Scf" },
0x0247 Output Pulse Unit R/W 1
short { 112, "cf" },
{ 40, "USGal" },
{ 42, "UKgal" },
{ 46, "bbl"},
{ 63, "lb"},
The number of >0
0x023F output pulses per R/W 2 float
pulse unit.

{ 0x0000, "F1: Anti-vibration Mode " },


unsigned { 0x0001, "F2: Normal Mode " },
0x0244 Work Mode R/W 1
short { 0x0002, "F3: Turbine Mode },
{ 0x0003, "F4: Test Mode " },

{ 0x0000, " Pressure Manual Input,


Temperature Manual Input "},
Temperature and { 0x0001, " Pressure Manual Input,
Pressure Acquisition unsigned Temperature Auto Acquisition "},
0x0245 R/W 1
Mode Setting. short { 0x0010, " Pressure Auto Acquisition,
Temperature Manual Input "},
{ 0x0011, " Pressure Auto Acquisition,
Temperature Auto Acquisition "},
{ 0, "9600bps,8bits,1stop, No parity " },
{ 1, "4800bps,8bits,1stop, No parity " },
unsigned
0x0246 Baud Rate R/W 1 { 2, "2400bps,8bits,1stop, No parity " },
short
{ 3, "1200bps,8bits,1stop, No parity " },
{ 4, "600bps,8bits,1stop, No parity " }
According to the meter size and measuring
media, set the corresponding low limit of
the flow.
0x024A Low Flow Limit R/W 2 float The unit of ‘Low Flow Limit’ is fixed as
m3/h.
The actual measurement of the lower limit
of about 50% of ‘Low Flow Limit’.
The ‘High Flow Limit’ defaults to 10
0x024C High Flow Limit R/W 2 float times the ‘Low Flow Limit’, the actual
measurement of the upper limit of 2.5
Page 7
Modbus Protocol

times the set value.


The unit of ‘High Flow Limit’ is fixed as
m3/h.
When the actual required range ratio
exceeds 20: 1, you can manually modify
the ‘High Flow Limit’.
0~20
The reference frequency value of the
five-point correction is multiplied by the
0x024E Frequency Factor R/W 2 float Frequency Factor, and then the new
reference frequency value of the
correction point is obtained.
Normally, this value should be 1.

Pressure Sensor Low Unit:mV


0x2400 Trim: Internal ADC R/W 2 float
Measurements
Pressure Sensor Unit: :mV
0x2402 High Trim: Internal R/W 2 float
ADC Measurements
Temperature Sensor Unit: :Ohm
0x2404 Low Trim: Internal R/W 2 float
ADC Measurements
Temperature Sensor Unit: :Ohm
0x2406 High Trim: Internal R/W 2 float
ADC Measurements
Pressure Sensor Low Unit: :Kpa
0x2408 Trim: Input R/W 2 float
Calibration Value
Pressure Sensor Unit: :Kpa
0x240A High Trim: Input R/W 2 float
Calibration Value
Temperature Sensor Unit: :Ohm
Low Trim: Input
0x240C R/W 2 float
Calibration
Resistance Value
Temperature Sensor Unit: :Ohm
High Trim: Input
0x240E R/W 2 float
Calibration
Resistance Value
0x2410 Pressure Cutoff R/W 2 float Unit: :Kpa
0x2412 Pressure Bias Value R/W 2 float Unit: :Kpa

Page 8

You might also like