V51 Protocols English 4
V51 Protocols English 4
1. Referenced Documents
SCF_SPEC-054 FSK Physical Layer Specification Version 8.1
SCF_SPEC-081 Data Link Layer Specification Version 8.0
SCF_SPEC-127 Universal Command Specification Version 6.0
SCF_SPEC-051 Common Practice Command Specification Version 8.0
SCF_SPEC-081 Common Tables Specification Version 13.0
SCF_SPEC-307 Command Response Code Specification Version 5.0
SCF_SPEC-099 Command Summary Specification Version 8.0
5 Implemented Commands
5.1 Universal Command
0 Read Unique Identifier
1 Read Primary Variable (i.e. flow rate)
2 Read
3 Read Dynamic Variables and Loop current
6 Write polling address
7 Read loop configuration
8 Read Dynamic Variables Classifications
9 Read device Variables and status
11 Read unique identifier associated with Tag
12 Read message
13 Read Tag, descriptor and Date
14 Read Primary Variable transducer information
15 Read Device Information
16 Read Final assembly number
17 Write message
18 Write Tag, descriptor and Date
19 Write Final assembly number
20 Read Long Tag
21 Read unique identifier associated with Long Tag
22 Write Long Tag
5.2 Common Practice Command
33 Read Device Variables
42 Perform device reset
40 Enter/exit fixed current mode
43 Set Primary variable zero (to perform a Zero Setting
45 Trim Current Loop Zero (to adjustment current loop to 4mA)
46 Trim Current Loop Gain (to adjustment current loop to 20mA)
59 Write number of the response preamble
PART III
The MODBUS protocol Application
1. MODBUS default setup by the manufacturer
1.1 RS485
Baud Rate 9600 possible setting 300,600,1200,2400,4800,9600
Parity None possible setting None, Even, Odd
Address 1
1.2 IR
Baud Rate 9600 possible setting 300,600,1200,2400,4800,9600
Parity None possible setting None, Even, Odd
Address 1
All settings can be displayed on M0E, and M10
2. MOSBUS Misc about V51
2.1
2.2
2.3
2.4
3. MODBUS Table of Common Holding Register Addresses
Note 2 Correctly reading REG361 as a float number shall always be 361.00. If a 0 or 250.264 is
read by REG 361, then it means the used address is wrong.
Note3 The REGs for version and manufacturer is used to identify this MODBUS register table.
4. MODBUS Table of Monthly Totalizers Addresses
Data address Reg no Variable name format note
Blk
No
n/a 0163 1 Monthly Pointer Integer Range: 0-127
0 29953 1 Data block no Integer 0~65535
1 29954 1 State Integer
0 2 29955 1 Failure days Integer
3 29956 1 Month, Year BCD Month in low byte
4 29957 2 Working hours LONG Record for checking
6 29959 2 Failure hours LONG
8 29961 2 Month Total flow LONG Of this month
10 29963 2 Month Total energy LONG Of this month
12 29965 2 Positive flow LONG Recorded
14 29967 2 Negative flow LONG Recorded
16 29969 2 Positive energy LONG Recorded
18 29971 2 Negative energy LONG Recorded
20 29973 2 Tariff2 LONG Recorded
22 29975 2 Tariff3 LONG Recorded
24 29977 2 Max flow rate REAL4
26 29979 2 Max energy rate REAL4
28 29981 2 Max inlet temperature REAL4
30 29983 2 Max outlet temperature REAL4
2 0 29985 1 Data block no Integer
1 29986 1 State Integer
2 29987 1 Failure days Integer
3 29988 1 Month, Year BCD
4 29989 2 Working hours LONG
6 29991 2 Failure hours LONG
8 29993 2 Month Total flow LONG
10 29995 2 Month Total energy LONG
28 30013 2 Max inlet temperature REAL4
30 30015 2 Max outlet temperature REAL4
n Monthly data block n
127 0 38113 1 Data block no Integer
1 38114 1 State Integer
28 38141 2 Max inlet temperature REAL4
30 38143 2 Max outlet temperature REAL4
5. MODBUS Table of Daily Totlizers Addresses
2. Default Setting
C A CS C = A CS CI
L L C A CI CS
68h 0Bh 0Bh 68h 53h/73h FDh 52h ID1-4 M1-2 G Med CS 16h ID1-4 4 ID, M1-2=88h,11h G=1 Med=4 * E5h
68h 0Bh 0Bh 68h 53h/73h FDh 56h ID4-1 M2-1 G Med CS 16h Med=0Ch * E5h
68h 11h 11h 68h 53h/73h FDh 52h ID1-4 M1-2 G Med 0CH 78H SN1-4 CS 16h 0Ch 78h +4 * E5h
68h 06h 06h 68h 53h/73h A 51h 01h 7Ah NN CS 16h NN 1-250 E5h
68h 09h 06h 68h 53h/73h A 51h 0Ch 79h SA1-4 CS 16h SA1-4 4 E5h
68h 0Dh 0Dh 68h 53h/73h A 51h 07h 79h SA1-4 xxh,xxh,xxh,xxh CS 16h SA1-4 4 E5h
ESN 68h 09h 06h 68h 53h/73h A 51h 0Ch 79h 00h 00h 00h 00h CS 16h M-BUS ESN E5h
ESN 68h 0Dh 0Dh 68h 53h/73h A 51h 07h 79h 00h 00h 00h 00h xxh,xxh,xxh,xxh CS 16h E5h
L L C A CI CS
68h 03h 03h 68h 53h/73h A B8h CS 16h 300 E5h
68h 03h 03h 68h 53h/73h A B9h CS 16h 600 E5h
68h 03h 03h 68h 53h/73h A BAh CS 16h 1200 E5h
68h 03h 03h 68h 53h/73h A BBh CS 16h 2400 E5h
68h 03h 03h 68h 53h/73h A BCh CS 16h 4800 E5h
68h 03h 03h 68h 53h/73h A BDh CS 16h 9600 E5h
68h 03h 03h 68h 53h/73h A B7h CS 16h E5h
L L C A CI CS
68h 03h 03h 68h 53h/73h A 50h CS 16h 2 All E5h
68h 04h 04h 68h 53h/73h A 50h 00 CS 16h 2 All E5h
68h 04h 04h 68h 53h/73h A 50h 51h CS 16h QUICK READOUT E5h
68h 04h 04h 68h 53h/73h A 50h 10h CS 16h W V User Data E5h
68h 04h 04h 68h 53h/73h A 50h 20h CS 16h W,V W,V BT FTSimple Billing E5h
68h 04h 04h 68h 53h/73h A 50h 30h CS 16h W,V W,V /BTFTEnhanced Billing E5h
68h 04h 04h 68h 53h/73h A 50h 50h CS 16h WV / Instantaneous Values E5h
68h 04h 04h 68h 53h/73h A 50h 80h CS 16h E5h
68h 05h 05h 68h 53h/73h A 51h 0Fh A1h CS 16h 3 E5h
68h 05h 05h 68h 53h/73h A 51h 0Fh A0h CS 16h E5h
68h 03h 03h 68h 53h/73h A A1h CS 16h E5h
68h 03h 03h 68h 53h/73h A A0h CS 16h E5h
1 68h 04h 04h 68h 53h/73h A 51h 7Fh CS 16h 2 E5h
2 68h 06h 06h 68h 53h/73h A 51h C8h 3Fh 7Eh CS 16h 2 E5h
68h 06h 06h 68h 53h/73h A 51h 7Fh FEh 0Dh CS 16h E5h
68h 06h 06h 68h 53h/73h A 51h 08h 05h CS 16h E5h
68h 06h 06h 68h 53h/73h A 51h 48h 05h CS 16h E5h
68h L L 68h 53h/73h A 51h CS 16h L<240 E5h
68 L L 68 53/73 A 51 08 14 08 2D CS 16
L L C A CI DIF CS
1 68h 0Dh 0Dh 68h 53h/73h A 51h 2Fh 0Fh 04h 58h SSMMHHDDMMYY CS 16h E5h
2 68h 0Ah 0Ah 68h 53h/73h A 51h 04h EDh 00h DATE/TIME CS 16h ** , DATE/TIME TYPE F E5h
3 68h 09h 09h 68h 53h/73h A 51h 04h 6Dh DATE/TIME CS 16h ** , DATE/TIME TYPE F E5h
*
** TYPE F =0TYPE F M-BUS
PART V The HaiFeng ASCII protocol Application
1. The Haifeng Protocol is designed to be compatible with the one used in our previous versions of
ultrasonic flow meters. This protocol is a set of basic commands that are in ASCII format, ending with a
carriage return (CR) and line feed (LF), For most of the commands, The line feed (LF) should be better
omitted for fast responding.
The colored commands in the following table are new ones
Command Meaning Data format
DQD(cr) note 0 Request flow rate per day d.ddddddEdd(cr) note 1
DQH(cr) Request flow rate per hour d.ddddddEdd(cr)
DQM(cr) Request flow rate per minute d.ddddddEdd(cr)
DQS(cr) Request flow rate per second d.ddddddEdd(cr)
DQE(cr) Request instantaneous Caloric Value d.ddddddEdd(cr)
DV(cr) Request fluid velocity d.ddddddEdd(cr)
DI+(cr) Request positive totalizer dddddddddEd(cr)note 2
DI-(cr) Request negative totalizer dddddddddEd(cr)
DIN(cr) Request net totalizer dddddddddEd(cr)
DIE(cr) Request net thermal energy totalizer dddddddddEd(cr)
DIE+(cr) Request positive energy totalizer dddddddddEd(cr)
DIE-(cr) Request negative energy totalizer dddddddddEd(cr)
DIT(cr) Request net total flow for today dddddddddEd(cr)
DIM(cr) Return net total flow for this month dddddddddEd(cr)
DIY(cr) Request net total flow for this year dddddddddEd(cr)
DID(cr) Return the ID number/address ddddd(cr) 5 bytes long
DL(cr) Request signal strength and signal quality UP:dd.d,DN:dd.d,Q=dd(cr)
DS(cr) Request the percentage of AO output d.ddddddEdd(cr)
DC(cr) Request display number and Error Code note 3
DT(cr) Request the present date and time yy-mm-dd,hh:mm:ss uuu(cr)
Time@TDS1=(cr) Set date and time yy-mm-dd,hh:mm:ss
MKEY@(cr) note 4 Send a key value as if a key is pressed. @ is key value which can be
@ is the key value found in the KEY VALUE table
LCD(cr) Request current window content
MENUXX(cr) Go to window XX
BAUDRATExp(cr) Change baud rate to x with parity p x=2~7,9600,4800,2400,1200,600,300
p=N(none), E(even),O(odd)
BAUDRATE-A Restore baud rate for RS485
BAUDRATE-B Restore baud rate for IR
AO<>(O)<>4-20mA<>(O)< Set AO to a mA current Note 5
>digits string(cr)
RING(cr)(lf) Handshaking request from a modem ATA(CR)(lf)
CUSTOMERNUMBER= Set customer number
CUSTOMERNUMBER? Request customer number
FIRMWAREVERSION Request firmware information
ESN(cr) Request the ESN (electronic serial number) 49ddddddd(cr)(lf) note 6
of the flow meter
MBUSADD=str Set address to STR
MBUSADD? Request address number
MBUSADD2=str Set MBUS secondary address to STR
MBUSADD2? Request MBUS secondary address
System Boot Instantly by Reboot the system
13840932903
Isp-Prog &JXWANG12 Command for firmware updating
OCT<OUTPUT>=10 Quit OCT1 serial controlling mode
OCT<OUTPUT>=11 OCT1 output open
OCT<OUTPUT>=12 OCT1 output close
OCT<OUTPUT>=20 Quit OCT2 serial controlling mode
OCT<OUTPUT>=21 OCT2 output opcy en
OCT<OUTPUT>=22 OCT2 output close
SLEEP<(*)>METER<(*)>ENABLE=0 Enable sleep of the meter
SLEPP<(*)>METER<(*)>ENABLE=1 Quit sleep of the meter
AnalogInput0 Always readout 1.23456 for testing d.ddddddEdd(cr)(lf)
AnalogInput1 Return temperature at T1 input d.ddddddEdd(cr)(lf)
AnalogInput2 Return temperature at T2 input d.ddddddEdd(cr)(lf)
AnalogInput6 Request CPU temperature
AnalogInput7 Request battery voltage
AnalogInput8 Request main clock frequency coefficient
BATCH_A Request batch controller total
BATCH_V? Request batch setting
BATCH_V=(str) Set a new batch
BATCH_E0 Disable batch controller
BATCH_E1 Enable batch controller
BATCH_R0 Run Batch controller
BATCH_R1 Stop Batch controller
BATCH_T1? Request trig timer #1
BATCH_T1=DD HH:MM Set trig timer #1
BATCH_T2? Request trig timer #2
BATCH_T2=DD HH:MM Set trig timer #2
BATCH_T3? Request trig timer #3
BATCH_T3=DD HH:MM Set trig timer #3
BATCH_T4? Request trig timer #4
BATCH_T4=DD HH:MM Set trig timer #4
BATCH_T5? Request trig timer #5
BATCH_T5=DD HH:MM Set trig timer #5
TARIFF_T1? Request tariff timer #1
TARIFF_T1=MM-DD HH-MM Set tariff timer #1
TARIFF_T2? Request tariff timer #2
TARIFF_T2=MM-DD HH-MM Set tariff timer #2
TARIFF_T3? Request tariff timer #3
TARIFF_T3=MM-DD HH-MM Set tariff timer #3
DI2 Request Tariff total2
DI3 Request Tariff total3
N Prefix of an IDN-addressing-based Note 7
networking, The IDN address is byte, range
0-253
W Prefix of an IDN-addressing-based Note 7
networking, The IDN address is word,
range 0-65535
P Prefix of any commands for returns with
check-sum
& Commands connector to make a Result commands limit 253 or
compounding command in one line. less byte long.
NOTES:
0crstand for carriage return, its ASCII value is 0DH. (lf) stand for line feed, its ASCII value is 0AH.
1d stand for a digit number of 0~9, 0 is expressed as +0.000000E+00
2d stand for digit 0~9, the number before E is an integer.
3The first two bytes are menu numbers, and the rest is ErrCode whose meaning can found at the display part.
4 @ stand for key value, for example, value 30H means key 0. The command MKEYA(cr) acts just like
the a short key is pressed.
5 a stands for the output current value. The maximum value should not exceed 20.0 For example
AO<>(O)<>4-20mA<>(O)<>2.34567(cr)
6 dddddddd stands for the Electronic Serial Number
7If there are more than one devices in a network, all the basic command must be prefixed with N or
W, otherwise multiple flow meter may reply to the same request, and thus a conflict may occurs.
PART VII
The CJ-188-2004 protocol Application
The CJ-188-2004 is a Chinese National Standard for heat or energy meters
FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 01 03 1F 90 12 29 16
A0A1A2A3CS
User Telegram
FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 81 2E 1F 90 12 00 00 00 00 05
00 00 00 00 05 00 00 00 00 14 00 00 00 00 35 19 00 00 00 2C 76 30 00 68 30 00 73 02 00 32
41 11 12 09 07 20 04 00 E9 16
68 68H
20 T
51 A0
21 A1
31 A2
17 A3A0A1A2A3
00 A4
11 A5
11 A6
81 C
2E L1F 90 12 00 00 00 00 05 00 00 00 00 05 00 00 00 00 14 00 00 00 00 35 19
00 00 00 2C 76 30 00 68 30 00 73 02 00 32 41 11 12 09 07 20 04 002E
1F DI0
90 DI1
12 SER
00 00 00 00 05 kWh1
00 00 00 00 05 kWh1
00 00 00 00 14 W1
00 00 00 00 35 m/h1
19 00 00 00 2C m1
76 30 00 0030.76
68 30 00 0030.68
73 02 00 000273
32 41 11 12 09 07 20 20070912114132
04 00 23
E9 CS68 20 51 21 31 17 00 11 11 81 2E 1F 90 12 00 00 00 00 05 00 00 00 00 05 00
00 00 00 14 00 00 00 00 35 19 00 00 00 2C 76 30 00 68 30 00 73 02 00 32 41 11 12 09 07 20 04
00FFH
16 16H
CJ188
1
T=10H~29H
CTRL0=03H CTRL1= 83H
D1D0 = 810AH
3DISER
(nFE) 68 10 AA AA AA AA AA AA AA 03 03 0A 81 05 B4 16
11 FE68 10 21 00 00 13 00 11 11 83 03 0A 81 05 E4 16
13000021
2
T=10H
CTRL0=01H CTRL1= 81H
D1D0 = 901FH
5ST 42
(nFE) 68 10 AA AA AA AA AA AA AA 01 03 1F 90 12 E3 16
11 FE68 10 21 00 00 13 00 11 11 81 2A 1F 90 12 00 00 00 00 35 64 08
57 01 2C 79 65 00 00 2C 58 31 01 00 2C 74 56 34 12 2C 20 43 65 87 2C 37 36 12 20 02 16
20 00 08 B5 16
35 00 00 00 00 0000.0000
2C 01 57 08 64 15708.64
2C 00 00 65 79 65.79
2C 00 01 31 58 65.79
2C 12 34 56 74 1234.5678
2C 87 65 43 20 8765.4321
20 16 02 20 12 36 37
00 08
3
T=10H
CTRL3=24H CTRL4= 0A4H
D1D0 = 801BH
4
100
3DISER
(nFE) 68 10 AA AA AA AA AA AA AA 24 0B 1B 80 12 2B 52 9A 44 BA F5 08 46 52 16
1234.56782B 52 9A 44
8765.4321BA F5 08 46
4
T=10H-29H
CTRL3=04H CTRL4= 84H
D1D0 = 8015H
7
3DISER
(nFE) 68 10 AA AA AA AA AA AA AA 04 0A 15 80 12 56 34 12 20 02 16 20 C7 16
2016-02-20 12:34:56
5 0x0F
1-8MBUS
MBUS
T=10H~29H
CTRL0=03H CTRL1= 83H
D0D1 = 810AH
3DISER
(nFE) 68 10 F3 FF FF FF AA AA AA 03 03 0A 81 05 CS 16
XXXXXXX3
(nFE) 68 10 FF FF FF 8F AA AA AA 03 03 0A 81 05 CS 16
8XXXXXXX
6 CJ188 SER=0
T=10H
CTRL3=01H CTRL4= 81H
D1D0 = 901FH
SER 0
22DISER
(nFE) 68 10 AA AA AA AA AA AA AA 01 03 1F 90 00 D1 16
11 FE68 10 21 00 00 13 AA AA AA 81 16 1F 90 00 64 08 57 01 2C
00 00 00 00 2C 54 48 13 20 02 16 20 00 08 1B 16
13 00 00 21 21 00 00 13
AA AA AA
2C 01 57 08 64 15708.64
2C 00 00 00 00 =0
54 48 13 20 02 16 20 2016220134850
00 08
1B
7
1
Wh 02H GJ100 13H
KWh 05H W 14H
MWh 08H kW 17H
MWh100 0AH MW 1AH
J 01H L 29H
Kj 0BH m 2CH
MJ 0EH L/h 32H
GJ 11H m/h 35H
2 ST
D0 D1 D2 D3 D4 D5 D6 D7
0 0 0
0001
1 1 1
3 ST
D0 D1 D2 D3 D4 D5 D6 D7
0
0 0 0
1 1 1 1