FC_DistanceBoxAndCylinder - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab: |
V1.0.3.0 |
Versionen: |
Aktuelle Version |
Berechnung des Abstands zwischen einem Quader und einem Zylinder.
Berechnet den Abstand zwischen dem Quader i_stBox und dem Zylinder i_stCylinder. Hierfür wird ein Iterationsverfahren verwendet.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_stBox |
Quader |
|
i_stCylinder |
Zylinder |
|
i_lrAccuracy |
LREAL |
Maximal zulässiger Fehler für den berechneten Abstand. Das Iterationsverfahren bricht ab, wenn der berechnete Abstand der Objekte um weniger als diesen Wert vom exakten Abstand abweicht. Je kleiner dieser Wert, desto genauer das Ergebnis und desto größer die Anzahl der erforderlichen Iterationsschritte. Wertebereich > 0,0 |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer, diagnosebezogener Ausgang. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_lrDistance |
LREAL |
Berechneter Abstand zwischen i_stBox und i_stCylinder |
q_diNumberOfIterations |
DINT |
Anzahl der Iterationsschritte, die zur Abstandsberechnung erforderlich waren. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
0 |
OK |
|
ExecutionAborted |
96 |
Die maximale Anzahl an Interationsschritten wurde überschritten. |
|
InputParameterInvalid |
118 |
Accuracy ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
34 |
Die Definition von Box ist nicht korrekt. |
|
InputParameterInvalid |
42 |
Die Definition von Cylinder ist nicht korrekt. |
|
UnexpectedProgramBehavior |
2 |
Die POU befindet sich in einem undefinierten Zustand. |
Enumerationsname: |
AccuracyRange |
Enumerationswert: |
118 |
Beschreibung: |
Accuracy ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrAccuracyGc_lrZeroTolerance wurde eine Zahl kleiner angelegt. |
Es muss ein Wert größer als null angegeben werden. |
Enumerationsname: |
DefinitionBox |
Enumerationswert: |
34 |
Beschreibung: |
Die Definition von Box ist nicht korrekt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_stBox.stSpanPoint1 und i_stBox.stBasePoint wurde der gleiche Punkt übergeben. |
Der Abstand zwischen i_stBox.stSpanPoint1 und i_stBox.stBasePoint muss mindestens Gc_lrZeroTolerance betragen. |
- |
Am Eingang i_stBox.stSpanPoint2 und i_stBox.stBasePoint wurde der gleiche Punkt übergeben. |
Der Abstand zwischen i_stBox.stSpanPoint2 und i_stBox.stBasePoint muss mindestens Gc_lrZeroTolerance betragen. |
- |
Am Eingang i_stBox.stSpanPoint3 und i_stBox.stBasePoint wurde der gleiche Punkt übergeben. |
Der Abstand zwischen i_stBox.stSpanPoint3 und i_stBox.stBasePoint muss mindestens Gc_lrZeroTolerance betragen. |
Enumerationsname: |
DefinitionCylinder |
Enumerationswert: |
42 |
Beschreibung: |
Die Definition von Cylinder ist nicht korrekt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_stCylinder.lrRadius wurde ein Wert <= 0 übergeben. |
Der Radius des Zylinders muss größer als null sein. |
- |
Am Eingang i_stCylinder.stAxisStart und i_stCylinder.stAxisEnd wurde der gleiche Punkt übergeben. |
Der Abstand zwischen i_stCylinder.stAxisStart und i_stCylinder.stAxisEnd muss mindestens Gc_lrZeroTolerance betragen. |
Enumerationsname: |
MaxNumberOfIterationsExceeded |
Enumerationswert: |
96 |
Beschreibung: |
Die maximale Anzahl an Interationsschritten wurde überschritten. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
i_lrAccuracy wurde zu klein gewählt. Das numerische Annäherungsverfahren konvergiert nicht in weniger als Gc_diMaxNumberOfIterations Iterationsschritten auf ein solch genaues Ergebnis. |
Es muss ein größerer Wert für i_lrAccuracy gewählt werden. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
OK |
Der Abstand wurde erfolgreich berechnet.
Enumerationsname: |
UnknownState |
Enumerationswert: |
2 |
Beschreibung: |
Die POU befindet sich in einem undefinierten Zustand. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Abarbeitung aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |