Range Check Section 6 Program Code Issues
104 3BSE042835-600
Example of range test on AEConfig:
(* Parameter range test *)
ParError := false;
IF AEConfig < 0 or AEConfig > 4 THEN
AEConfigInt := 1;
ParError := true;
ELSE
AEConfigInt := AEConfig;
END_IF;
After this, the variable AEConfigInt is used in the code and graphics since the input
parameter AEConfig can not be modified.
When an input parameter is used in the code, the range check shall be made there. If
the parameter is used in an internal FB, the range check shall be made there as well.
In the main object the ParError should be calculated as the sum error of the ParError
of the block itself (if any) and the ParError(s) of the sub function block(s).
Example:
Test of AEConfigInt, InteractionPar.AEFilterTime and InteractionPar.AEHysteresis
have been tested as described above.
AEClass is tested in the function block Level6Alg.
Level6Alg(AEFilterTime := InteractionPar.AEFilterTime,
AEClass := AEClass,
AEHysteresis := InteractionPar.AEHysteresis,
AEConfig := AEConfigInt);
ParError := ParError or Level6Alg.ParError;
This principle may be used in all levels of function block calls.