5. CONFIGURATION
IF DG_NX6000_8_AI_Voltage_Current.tGeneral.bCalibrationError = TRUE THEN
QUALITY_PB_NX6000.VALIDITY:= VALIDITY_QUESTIONABLE;
QUALITY_PB_NX6000.FLAGS.FLAG_INACCURATE:= TRUE;
ELSE
QUALITY_PB_NX6000.FLAGS.FLAG_INACCURATE:= FALSE;
END_IF
// Condition to turns on out of range indication
// (check first, because invalid validity must prevail)
IF DG_NX6000_8_AI_Voltage_Current.tDetailed.tAnalogInput_00.bOverRange =
TRUE OR
DG_NX6000_8_AI_Voltage_Current.tDetailed.tAnalogInput_00.bUnderRange =
TRUE THEN
QUALITY_PB_NX6000.VALIDITY:= VALIDITY_QUESTIONABLE;
QUALITY_PB_NX6000.FLAGS.FLAG_OUT_OF_RANGE:= TRUE;
ELSE
QUALITY_PB_NX6000.FLAGS.FLAG_OUT_OF_RANGE:= FALSE;
END_IF
// Condition to turns on general failure indication (priority)
IF (DG_NX5110.tPbusHeadA.dwModuleNotPresent AND SHL(1, 3)) > 0 OR
DG_NX5110.tPbusHeadA.tSummarized.bConfigMismatch = TRUE OR
DG_NX6000_8_AI_Voltage_Current.tGeneral.bConfigMismatch = TRUE OR
DG_NX6000_8_AI_Voltage_Current.tGeneral.bFatalError = TRUE OR
DG_NX6000_8_AI_Voltage_Current.tDetailed.tAnalogInput_00.bOpenLoop = TRUE
THEN
QUALITY_PB_NX6000.VALIDITY:= VALIDITY_INVALID;
QUALITY_PB_NX6000.FLAGS.FLAG_FAILURE:= TRUE;
// If the point have ever been updated once ...
IF NOT QUALITY_PB_NX6000.FLAGS.FLAG_RESTART AND
NOT DG_NX6000_8_AI_Voltage_Current.tDetailed.tAnalogInput_00.bOpenLoop
THEN
QUALITY_PB_NX6000.FLAGS.FLAG_OLD_DATA:= TRUE;
END_IF
ELSE
QUALITY_PB_NX6000.FLAGS.FLAG_RESTART:= FALSE;
QUALITY_PB_NX6000.FLAGS.FLAG_FAILURE:= FALSE;
QUALITY_PB_NX6000.FLAGS.FLAG_OLD_DATA:= FALSE;
END_IF
END_IF
END_IF
// In PROFIBUS communication failure with the PROFIBUS slave ...
ELSE
QUALITY_PB_NX6000.VALIDITY:= VALIDITY_INVALID;
QUALITY_PB_NX6000.FLAGS.FLAG_COMM_FAIL:= TRUE;
QUALITY_PB_NX6000.FLAGS.FLAG_FAILURE:= FALSE;
// If the point have ever been updated once ...
IF NOT QUALITY_PB_NX6000.FLAGS.FLAG_RESTART AND
NOT DG_NX6000_8_AI_Voltage_Current.tDetailed.tAnalogInput_00.bOpenLoop THEN
QUALITY_PB_NX6000.FLAGS.FLAG_OLD_DATA:= TRUE;
END_IF
END_IF
5.1.5.1.9. PROFIBUS Analog Output Quality
84