FC_CommonPointsOfCircleAndLine2D

 

FC_CommonPointsOfCircleAndLine2D - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.3.0

Versionen:

Aktuelle Version

Aufgabe

Berechnung der Schnittpunkte von Kreis und Gerade im 2-dimensionalen Raum.

Beschreibung

Berechnet die Schnittpunkte des Kreises i_stCircle und der Geraden i_stLine.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stCircle

ST_Circle2D

Kreis

i_stLine

ST_Line2D

Gerade

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_diNumberOfCommonPoints

DINT

Anzahl der gemeinsamen Punkte / möglichen Werte:

2: Es gibt zwei Schnittpunkte (die Gerade ist eine Sekante). Der Fall einer Tangenten ist hier inbegriffen (in diesem Fall gilt q_astCommonPoints[1] = q_astCommonPoints[2]).

0: Es gibt keine Schnittpunkte (die Gerade ist eine Passante).

q_astCommonPoints

ARRAY [1..2] OF ST_Vector2D

Schnittpunkte von i_stCircle und i_stLine (wenn q_diNumberOfCommonPoints = 2).

q_lrParameterLine1

LREAL

Parameter von q_astCommonPoint[1] in der Standard-Parameterdarstellung der Geraden  i_stLine (siehe ST_Line2D).

q_lrParameterLine2

LREAL

Parameter von q_astCommonPoint[2] in der Standard-Parameterdarstellung der Geraden i_stLine (siehe ST_Line2D).

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

OK

InputParameterInvalid

DefinitionLine

31

Die Definition von Line ist nicht korrekt.

InputParameterInvalid

RadiusRangeCircle

26

Der Radius des Kreises ist außerhalb des gültigen Bereichs.

DefinitionLine

Enumerationsname:

DefinitionLine

Enumerationswert:

31

Beschreibung:

Die Definition von Line ist nicht korrekt.

Problem

Ursache

Lösung

-

Am Eingang i_stLine.stPoint1 und i_stLine.stPoint2 wurde der gleiche Punkt übergeben.

Die Punkte stPoint1 und stPoint2, mit denen die Gerade i_stLine definiert wird, müssen mindestens Gc_lrZeroTolerance voneinander entfernt sein.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

OK

Die Schnittpunkte wurden erfolgreich berechnet.

RadiusRangeCircle

Enumerationsname:

RadiusRangeCircle

Enumerationswert:

26

Beschreibung:

Der Radius des Kreises ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_stCircle.lrRadius wurde eine Zahl <= 0 übergeben.

Der Kreis muss einen Radius größer null haben.