FC_DistanceBoxAndCylinder - General Information
Type: |
Function |
Available as of: |
V1.0.3.0 |
Versions: |
Current version |
Calculates the distance between a cuboid and a cylinder.
This calculates the distance between the cuboid i_stBox and the cylinder i_stCylinder. For this purpose, an iteration process is used.
Input |
Data type |
Description |
---|---|---|
i_stBox |
Cuboid |
|
i_stCylinder |
Cylinder |
|
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_stBox and i_stCylinder |
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 |
34 |
The definition of Box is not correct. |
|
InputParameterInvalid |
42 |
The definition of Cylinder 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: |
DefinitionBox |
Enumeration value: |
34 |
Description: |
The definition of Box is not correct. |
Issue |
Cause |
Solution |
---|---|---|
- |
At the inputs i_stBox.stSpanPoint1 and i_stBox.stBasePoint, the same point has been transferred. |
The distance between i_stBox.stSpanPoint1 and i_stBox.stBasePoint must be at least Gc_lrZeroTolerance. |
- |
At the inputs i_stBox.stSpanPoint2 and i_stBox.stBasePoint, the same point has been transferred. |
The distance between i_stBox.stSpanPoint2 and i_stBox.stBasePoint must be at least Gc_lrZeroTolerance. |
- |
At the inputs i_stBox.stSpanPoint3 and i_stBox.stBasePoint, the same point has been transferred. |
The distance between i_stBox.stSpanPoint3 and i_stBox.stBasePoint must be at least Gc_lrZeroTolerance. |
Enumeration name: |
DefinitionCylinder |
Enumeration value: |
42 |
Description: |
The definition of Cylinder is not correct. |
Issue |
Cause |
Solution |
---|---|---|
- |
At the input i_stCylinder.lrRadius, a value <= 0 has been transferred. |
The radius of the cylinder must be greater than zero. |
- |
At the inputs i_stCylinder.stAxisStart and i_stCylinder.stAxisEnd, the same point has been transferred. |
The distance between i_stCylinder.stAxisStart and i_stCylinder.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 |
---|---|---|
- |
An error occurred in the internal execution. |
Please inform the support team about this error. |