55xGenComm1_29
39
Register
offset
Name
Min value
Max value
Scale
factor
Units Bits/
sign
35 Mains
frequency 0
70 0.1
Hz 16
36-37
Mains L1-N voltage
0
18,000
0.1
V
32
38-39
Mains L2-N voltage
0
18,000
0.1
V
32
40-41
Mains L3-N voltage
0
18,000
0.1
V
32
42-43
Mains L1-L2 voltage
0
30,000
0.1
V
32
44-45
Mains L2-L3 voltage
0
30,000
0.1
V
32
46-47
Mains L3-L1 voltage
0
30,000
0.1
V
32
48
Mains voltage phase
lag/lead
-180 +180 1
Degrees
16
S
49 Generator
phase
rotation
0 2
16
50
Mains phase rotation
0
2
16
51-255 Reserved
NOTE:- Fuel level is not available on models 550/555.
NOTE:- Generator Watts, Generator current lag/lead, mains voltage lag/lead and
generator/mains phase rotation can only be read from a 550 or 555 module fitted with the
Power measurement option. This is also sometimes referred to as “Enhanced instrumentation”.
Attempting to read these values from a “basic” instrumentation module will return an
“unimplemented” response.
Phase rotation codes
Code Meaning
0
Indeterminate - the voltage on one or more phase is
insufficient to measure the rotation
1
L1 leads L2 which leads L3
2
L3 leads L2 which leads L1
3
Phase error - two or more phase inputs are in phase
4-65534 Reserved
65535 Unimplemented
EXAMPLE : Displaying engine coolant temperature
This example details not only how to read and display an instrumentation value, in this case
Coolant Temperature, but also how to act upon the Sentinel values that report on “special cases”
within the instrumentation system. For further details of Sentinel values, see “Sentinel values for
instrumentation” in the section headed “Modbus Functions Used”.
if ( ReadPage4() == SUCCESSFUL)
{
if ( ( page4[1] >= -50 ) && ( page4[1] <=150) ) printf( “coolant temp = %3.1f degc”, page4[1]);
else
{
if ( page4[1] == 0x7ffe ) printf( “coolant temp over-range”);
else if ( page4[1] == 0x7ffd ) printf( “coolant temp under-range”);
else if ( page4[1] == 0x7ffc ) printf( “coolant temp sender open circuit”);
(ensure all sentinel values are checked for here)
}
}