ST_WG_Weighing_Validation

Unterstruktur für die Konfigurationsstruktur ST_WG_Weighing. Gesetzte Parameter wirken sich bei den Funktionsbaustein Ausgängen bValidMeasurement, bNewResult, tLastResult, fLastWeight und fLastStd aus.

(*This configure struct helps to find the actual weight during one measuring cycle.
A measuring cycle starts when FB_WG_Weighing.fWeight exceeds fThresholdWeight and ends when it falls below fRelativeWeightLimit*FB_WG_Weighing.fLastWeight or fThresholdWeight (if fRelativeWeightLimit is not set).
The actual weight will be displayed in FB_WG_Weighing.fLastWeight (FB_WG_Weighing.fWeight with smallest FB_WG_Weighing.fStd).

Optional parameters are ignored if they are zero. None of the parameters can be less than zero.*)
TYPE ST_WG_Weighing_Validation :
STRUCT
    fThresholdWeight       : LREAL    := 50.0;   (* Minimum value for the measured weight. This condition is fulfilled if FB_WG_Weighing.fWeight is greater than or equal to fThresholdWeight. *)
    nValidationSamples     : UDINT    := 10;     (* Number of input values for which the other ST_WG_Weighing_Validation parameter conditions (fThresholdWeight, fMaxStd, fMaxWeightDeviation) must be fulfilled so that FB_WG_Weighing.bValidMeasurement=TRUE (optional, recommended). *)
    fMaxStd                : LREAL    := 5.0;    (* Upper limit for the standard deviation. This condition is fulfilled if FB_WG_Weighing.fStd is less than or equal to fMaxStd (optional, recommended). *)
    fMaxWeightDeviation    : LREAL    := 0.0;     (* Upper limit for the maximum weight deviation. This condition is fulfilled if FB_WG_Weighing.fMax - FB_WG_Weighing.fMin is less than or equal to fMaxWeightDeviation (optional, recommended). *)
    fRelativeWeightLimit   : LREAL    := 0.0;     (* fRelativeWeightLimit (> 0 and < 1) specifies that FB_WG_Weighing.bNewResult and FB_WG_Weighing.tLastResult are updated if FB_WG_Weighing.fWeight falls below the fRelativeWeightLimit * FB_WG_Weighing.fLastWeight limit value (optional). *)
END_STRUCT
END_TYPE
ST_WG_Weighing_Validation 1:

Steigt FB_WG_Weighing.fWeight über fThresholdWeight, wird so lange nach dem Gewicht mit dem kleinsten FB_WG_Weighing.fStd gesucht, bis FB_WG_Weighing.fWeight die fThresholdWeight Grenze wieder verlässt. Ist fRelativeWeightLimit gesetzt, dann endet die Messung, wenn FB_WG_Weighing.fWeight unter fThresholdWeight*fRelativeWeightLimit fällt. Das ermittelte Gewicht wird das erste Mal bei einer steigenden Flanke von FB_WG_Weighing.bValidMeasurement in FB_WG_Weighing.fLastWeight angezeigt und so lange aktualisiert, bis die Messung beendet ist. Beim Ende der Messung wird der Zeitstempel in FB_WG_Weighing.tLastResult gesetzt und für einen Zyklus FB_WG_Weighing.bNewResult auf TRUE gesetzt. Steigt FB_WG_Weighing.fWeight wieder über fThresholdWeight, dann wird FB_WG_Weighing.fLastWeight auf null gesetzt und es beginnt eine neue Messung.