Unsigned char low_flow:1; // flow rate was below low_flow_alarm_rate
for low_flow_alarm_time seconds while
attempting to flow.
Unsigned char excess_flow:1; // flow rate was above
excess_flow_alarm_rate.
Unsigned char quad_encoding:1; // max_quad_errors were received.
Unsigned char density_error:1; // density signal not valid or density <
alarm_low_density or density >
alarm_high_density.
Unsigned char temp_error:1; // temp signal not valid or temp <
alarm_low_temp or temp >
alarm_high_temp.
unsigned char valve_control:1; // not able to slow for stop flow rate for
valve_control_alarm_time.
Unsigned char meter_creep:1; // greater than meter_creep_alarm_vol has
been metered since flow was stopped.
Unsigned char pressure_error:1; // pressure signal not valid or pressure <
alarm_low_pressure or pressure >
alarm_high_pressure.
Unsigned char quad_encoding_a:1; // max_quad_errors were received on channel
A.
unsigned char quad_encoding_b:1; // max_quad_errors were received on channel
B.
unsigned char meter_com:1; // assigned serial (mass) meter is in comm
error.
Unsigned char unused_17:1;
unsigned char api_gravity_error:1; // API Gravity Error
unsigned char unused19-31:1;
} flags;
} meter_alarms;
Modbus:
Where: p = preset (0-11), m = meter (0-4)
Read Only Register=7191+5*p+m, Len=1, 16-Bit Integer (xxxx)
Note: Last Meter Alarm Register Used=7250
6.18 REQUEST ADDITIVE ALARMS:
MRAAppp => RAApppxxxx… (this only gives the first 16 alarm bits)
MRAA32 => RAA32xxxxxxxx… (this gives all 32 alarm bits)
Where:
ppp = The specified zero-based preset or load arm number (000-011).
Per additive(16):
xxxx = additive alarms in hexadecimal as:
union
{
unsigned int value;
struct
{