FC_DistanceTwoCylinders

 

FC_DistanceTwoCylinders - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.3.0

Versionen:

Aktuelle Version

Aufgabe

Berechnung des Abstands zweier Zylinder.

Beschreibung

Berechnet den Abstand der Zyliner i_stCylinder1 und i_stCylinder2. Hierfür wird ein Iterationsverfahren verwendet.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stCylinder1

ST_Cylinder

Zylinder 1

i_stCylinder2

ST_Cylinder

Zylinder 2

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_stCylinder1 und i_stCylinder2.

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

DefinitionCylinder1

43

Die Definition von Cylinder1 ist nicht korrekt.

InputParameterInvalid

DefinitionCylinder2

44

Die Definition von Cylinder2 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_lrAccuracy wurde eine Zahl kleiner als Gc_lrZeroTolerance angelegt.

Es muss ein Wert größer als null angegeben werden.

DefinitionCylinder1

Enumerationsname:

DefinitionCylinder1

Enumerationswert:

43

Beschreibung:

Die Definition von Cylinder1 ist nicht korrekt.

Problem

Ursache

Lösung

-

Am Eingang i_stCylinder1.lrRadius wurde ein Wert <= 0 übergeben.

Der Radius des Zylinders muss größer als null sein.

-

Am Eingang i_stCylinder1.stAxisStart und i_stCylinder1.stAxisEnd wurde der gleiche Punkt übergeben.

Der Abstand zwischen i_stCylinder1.stAxisStart und i_stCylinder1.stAxisEnd muss mindestens Gc_lrZeroTolerance betragen.

DefinitionCylinder2

Enumerationsname:

DefinitionCylinder2

Enumerationswert:

44

Beschreibung:

Die Definition von Cylinder2 ist nicht korrekt.

Problem

Ursache

Lösung

-

Am Eingang i_stCylinder2.lrRadius wurde ein Wert <= 0 übergeben.

Der Radius des Zylinders muss größer als null sein.

-

Am Eingang i_stCylinder2.stAxisStart und i_stCylinder2.stAxisEnd wurde der gleiche Punkt übergeben.

Der Abstand zwischen i_stCylinder2.stAxisStart und i_stCylinder2.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

-

Der interne Zustand der POU kann nicht bestimmt werden.

Bitte informieren Sie Ihren Schneider Electric-Ansprechpartner über diesen Fehler.