FC_DistanceTwoCylinders - General Information
Type: |
Function |
Available as of: |
V1.0.3.0 |
Versions: |
Current version |
Calculates the distance of two cylinders.
Calculates the distance of the cylinders i_stCylinder1 and i_stCylinder2. For this purpose, an iteration process is used.
Input |
Data type |
Description |
---|---|---|
i_stCylinder1 |
Cylinder 1 |
|
i_stCylinder2 |
Cylinder 2 |
|
i_lrAccuracy |
LREAL |
Maximum permissible error for the calculated distance. The iteration process aborts if the calculated distance of the objects deviates from the exact distance by less than this value. The lower this value is, the more exact is the result and the higher the number of the necessary iteration steps. Value range: > 0.0 |
Output |
Data type |
Description |
---|---|---|
q_etDiag |
General library-independent statement on the diagnostic. A value not equal to ET_Diag.Ok corresponds to an diagnostic message. |
|
q_etDiagExt |
POU-specific output on the diagnostic. q_etDiag = ET_Diag.Ok -> Status message q_etDiag <> ET_Diag.Ok -> Diagnostic message |
|
q_lrDistance |
LREAL |
Calculated distance between i_stCylinder1 and i_stCylinder2 |
q_diNumberOfIterations |
DINT |
Number of iteration steps which were required for the distance calculations. |
q_etDiag |
q_etDiagExt |
Enumeration value |
Description |
---|---|---|---|
OK |
0 |
Ok |
|
ExecutionAborted |
96 |
The maximum number of iteration steps has been exceeded. |
|
InputParameterInvalid |
118 |
Accuracy is outside the valid range. |
|
InputParameterInvalid |
43 |
The definition of Cylinder1 is not correct. |
|
InputParameterInvalid |
44 |
The definition of Cylinder2 is not correct. |
|
UnexpectedProgramBehavior |
2 |
The POU is in an undefined state. |
Enumeration name: |
AccuracyRange |
Enumeration value: |
118 |
Description: |
Accuracy is outside the valid range. |
Issue |
Cause |
Solution |
---|---|---|
- |
At the input i_lrAccuracy, a number smaller than Gc_lrZeroTolerance has been applied. |
A value greater than zero has to be specified. |
Enumeration name: |
DefinitionCylinder1 |
Enumeration value: |
43 |
Description: |
The definition of Cylinder1 is not correct. |
Issue |
Cause |
Solution |
---|---|---|
- |
At the input i_stCylinder1.lrRadius, a value <= 0 has been transferred. |
The radius of the cylinder must be greater than zero. |
- |
At the inputs i_stCylinder1.stAxisStart and i_stCylinder1.stAxisEnd, the same point has been transferred. |
The distance between i_stCylinder1.stAxisStart and i_stCylinder1.stAxisEnd must be at least Gc_lrZeroTolerance. |
Enumeration name: |
DefinitionCylinder2 |
Enumeration value: |
44 |
Description: |
The definition of Cylinder2 is not correct. |
Issue |
Cause |
Solution |
---|---|---|
- |
At the input i_stCylinder2.lrRadius, a value <= 0 has been transferred. |
The radius of the cylinder must be greater than zero. |
- |
At the inputs i_stCylinder2.stAxisStart and i_stCylinder2.stAxisEnd, the same point has been transferred. |
The distance between i_stCylinder2.stAxisStart and i_stCylinder2.stAxisEnd must be at least Gc_lrZeroTolerance. |
Enumeration name: |
MaxNumberOfIterationsExceeded |
Enumeration value: |
96 |
Description: |
The maximum number of iteration steps has been exceeded. |
Issue |
Cause |
Solution |
---|---|---|
- |
i_lrAccuracy has been chosen too small. The numerical approximation method converges to such a result in not less than Gc_diMaxNumberOfIterations iteration steps. |
A higher value must be chosen for i_lrAccuracy. |
Enumeration name: |
Ok |
Enumeration value: |
0 |
Description: |
Ok |
The distance has been calculated successfully.
Enumeration name: |
UnknownState |
Enumeration value: |
2 |
Description: |
The POU is in an undefined state. |
Issue |
Cause |
Solution |
---|---|---|
- |
The internal state of the POU is indeterminable. |
Please inform your Schneider Electric representative about this detected error. |