Typ: |
Methode |
Verfügbar ab: |
V1.4.1.0 |
Dieses Kapitel enthält Informationen zu folgenden Aspekten:
Auf der Grundlage der Eingänge i_stStart, i_stTarget und i_lrAbsHeight und des Werts der Eigenschaft udiNumberOfSplinePoints berechnet diese Methode eine Positionstabelle für eine Kurveninterpolation im dreidimensionalen Raum. Die Verfahrbewegung entlang dieser Positionen kann mit dem Fahrbefehl IF_RobotMotion.MoveS realisiert werden. Eine Positionstabelle wird von der Startposition bis zur Zielposition sowie von der Zielposition bis zur Startposition berechnet. Dazu werden immer zwei ellipsenförmige Halbäste berechnet: von der Startposition bis zum Scheitelpunkt (Apex) und vom Scheitelpunkt bis zur Endposition. Der Scheitelpunkt wird so berechnet, dass die Krümmung der beiden Halbäste dort gleich ist.
Vollständige Kurve von der Startposition bis zur Zielposition:
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_stStart |
Startposition in kartesischen Koordinaten Wertebereich: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY |
|
i_stTarget |
Zielposition in kartesischen Koordinaten Wertebereich: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY |
|
i_lrAbsHeight |
LREAL |
Absolute Höhe des Scheitelpunkts (des Apex) der elliptischen Kurve. Wertebereich: i_lrAbsHeight > i_stStart.lrZ UND i_lrAbsHeight > i_stTarget.lrZ |
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 Ausgang zur Diagnose. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung, die zusätzliche Informationen über den Diagnosezustand gibt. |
q_stForward |
Berechnete Kurventabelle von der Start- bis zur Endposition. |
|
q_stReverse |
Berechnete Kurventabelle von der End- bis zur Startposition. |
|
q_udiApexIndex |
UDINT |
Index des Kurvenpunkts, der den Scheitelpunkt der elliptischen Kurve darstellt. |
q_lrApexScalingFactor |
LREAL |
Skalierungsfaktor des automatisch berechneten Scheitelpunkts der elliptischen Kurve. Ein positiver Wert zeigt eine Bewegung des Scheitelpunkts in Richtung der Zielposition an, ein negativer Wert in Richtung der Startposition. |
q_lrSplineLength |
LREAL |
Resultierende Länge der linearen Verbindungen zwischen den Kurvenpunkten der elliptischen Kurve. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
Ok |
0 |
Ok |
InputParameterInvalid |
IdenticalPosition |
163 |
Die Positionen sind identisch. |
InputParameterInvalid |
NumberOfSplinePointsRange |
89 |
Die Anzahl der Kurvenpunkte ist außerhalb des Bereichs. |
InputParameterInvalid |
StartInvalid |
164 |
Die Start-Position ist ungültig. |
InputParameterInvalid |
TargetInvalid |
91 |
Das Target ist ungültig. |
Enumerationsname: |
IdenticalPosition |
Enumerationswert: |
163 |
Beschreibung: |
Die Positionen sind identisch. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Berechnung der elliptischen Kurve war nicht erfolgreich. |
Die kartesischen Komponenten X und Y der Startposition (i_stStart) und der Zielposition (i_stTarget) sind in einem Bereich von 0,001 identisch. |
Darauf achten, dass beide Werte nicht wechselseitig identisch sind. |
Enumerationsname: |
NumberOfSplinePointsRange |
Enumerationswert: |
89 |
Beschreibung: |
Die Anzahl der Kurvenpunkte ist außerhalb des Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Berechnung der elliptischen Kurve war nicht erfolgreich. |
Der bei der Eigenschaft udiNumberOfSplinePoints übergebene Wert liegt außerhalb des gültigen Bereichs. |
Darauf achten, dass udiNumberOfSplinePoints größer oder gleich 3 ist. Darauf achten, dass udiNumberOfSplinePoints kleiner oder gleich 98 ist. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
Ok |
Die Berechnung der elliptischen Kurve war erfolgreich.
Enumerationsname: |
StartInvalid |
Enumerationswert: |
164 |
Beschreibung: |
Die Start-Position ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Berechnung der elliptischen Kurve war nicht erfolgreich. |
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XY wird konfiguriert. |
Sicherstellen, dass der Eingang i_stStart.lrZ auf 0 gesetzt ist. |
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XZ wird konfiguriert. |
Sicherstellen, dass der Eingang i_stStart.lrY auf 0 gesetzt ist. |
|
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene YZ wird konfiguriert. |
Sicherstellen, dass der Eingang i_stStart.lrX auf 0 gesetzt ist. |
Enumerationsname: |
TargetInvalid |
Enumerationswert: |
91 |
Beschreibung: |
Das Target ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Berechnung der elliptischen Kurve war nicht erfolgreich. |
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XY wird konfiguriert. |
Sicherstellen, dass der Eingang i_stTarget.lrZ auf 0 gesetzt ist. |
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XZ wird konfiguriert. |
Sicherstellen, dass der Eingang i_stTarget.lrY auf 0 gesetzt ist. |
|
Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene YZ wird konfiguriert. |
Sicherstellen, dass der Eingang i_stTarget.lrX auf 0 gesetzt ist. |