FC_DistanceBoxAndCylinder

 

FC_DistanceBoxAndCylinder - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.3.0

Versionen:

Aktuelle Version

Aufgabe

Berechnung des Abstands zwischen einem Quader und einem Zylinder.

Beschreibung

Berechnet den Abstand zwischen dem Quader i_stBox und dem Zylinder i_stCylinder. Hierfür wird ein Iterationsverfahren verwendet.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stBox

ST_Box

Quader

i_stCylinder

ST_Cylinder

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

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

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.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

OK

ExecutionAborted

MaxNumberOfIterationsExceeded

96

Die maximale Anzahl an Interationsschritten wurde überschritten.

InputParameterInvalid

AccuracyRange

118

Accuracy ist außerhalb des gültigen Bereichs.

InputParameterInvalid

DefinitionBox

34

Die Definition von Box ist nicht korrekt.

InputParameterInvalid

DefinitionCylinder

42

Die Definition von Cylinder ist nicht korrekt.

UnexpectedProgramBehavior

UnknownState

2

Die POU befindet sich in einem undefinierten Zustand.

AccuracyRange

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.

DefinitionBox

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.

DefinitionCylinder

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.

MaxNumberOfIterationsExceeded

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.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

OK

Der Abstand wurde erfolgreich berechnet.

UnknownState

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.