FC_CalcProfileExtremeValues

 

FC_CalcProfileExtremeValues - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.3.0

Versionen:

Aktuelle Version

Aufgabe

Die Funktion berechnet Minimal- und Maximalwerte (Position, Geschwindigkeit, Beschleunigung) des in einer Struktur ST_MultiCam definierten Kurvenprofils.

Beschreibung

Es ist z. B. möglich zu ermitteln, ob ein bestimmtes Kurvenprofil innerhalb eines Maschinenzyklus noch gefahren werden kann.

Die Funktion ruft die Funktion FC_ProfileCompute mehrfach (i_uiNumberOfSteps) auf und berechnet die Werte.

Die Extremwerte für M und K werden durch numerische Differentiation der Funktionswerte berechnet.

Je mehr Schritte zur Berechnung verwendet werden, desto höher ist die Genauigkeit des Ergebnisses. Allerdings steigt der Zeitbedarf mit der Anzahl der Berechnungsschritte.

Die Zykluszeitüberwachung wird von der Funktion nicht verändert.

Um die maximale Achsgeschwindigkeit der Slaveachse zu berechnen, muss das Ergebnis mit der Leitgeschwindigkeit multipliziert werden.

lrMaxAxisVel:= q_stProfileExtremeValues.lrMaxM * lrMasterVel

Um die maximale Achsbeschleunigung der Slaveachse zu berechnen, muss das Ergebnis mit dem Quadrat der Leitgeschwindigkeit multipliziert werden.

lrMaxAxisAcc:= q_stProfileExtremeValues.lrMaxK * lrMasterVel * lrMasterVel

Schnittstelle

Eingang

Datentyp

Beschreibung

i_uiNumberOfSteps

UINT

Anzahl der Iterationsschritte

i_lrXStart

LREAL

Anfang des Intervalls, in dem die Extrema berechnet werden sollen.

i_lrXEnd

LREAL

Ende des Intervalls, in dem die Extrema berechnet werden sollen.

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_sMsg

STRING[80]

Ereignisabhängige Meldung mit detaillierten Informationen zum Diagnosezustand.

q_stProfileExtremeValues

ST_ProfileExtremeValues

Ausgabe der berechneten Extremwerte

Ein-/Ausgang

Datentyp

Beschreibung

iq_stMultiCam

ST_MultiCam

Definition der Kurve, für die die Extremwerte bestimmt werden sollen.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

OK

InputParameterInvalid

BoundaryConditionInvalid

125

Die Randbedingungen sind ungültig.

InputParameterInvalid

NumberOfCamPointsRange

121

NumberOfCamPoints ist außerhalb des gültigen Bereichs.

InputParameterInvalid

NumberOfStepsRange

191

NumberOfSteps ist außerhalb des gültigen Bereichs.

InputParameterInvalid

RangeK

129

K ist außerhalb des gültigen Bereichs.

InputParameterInvalid

RangeM

130

M ist außerhalb des gültigen Bereichs.

InputParameterInvalid

UnknownCamType

126

Der Kurventyp ist nicht bestimmbar.

InputParameterInvalid

XEndRange

192

XEnd ist außerhalb des gültigen Bereichs.

InputParameterInvalid

XFactorTooSmall

122

XFactor ist zu klein.

InputParameterInvalid

XStartRange

119

XStart ist außerhalb des gültigen Bereichs.

InputParameterInvalid

YFactorTooSmall

124

YFactor ist zu klein.

UnexpectedProgramBehavior

ProfileAlreadyInUse

116

Das Profil wird bereits verwendet.

UnexpectedProgramBehavior

ProfileMemoryFull

127

Der Speicher für Tabellen aus Systemprofilen ist voll.

UnexpectedProgramBehavior

UnexpectedFeedback

1

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

BoundaryConditionInvalid

Enumerationsname:

BoundaryConditionInvalid

Enumerationswert:

125

Beschreibung:

Die Randbedingungen sind ungültig.

Problem

Ursache

Lösung

-

Bei der Definition des Bewegungsprofils in iq_stMultiCamData können die vorgegebenen Randbedingungen der Segmente nicht eingehalten werden.

Prüfen Sie die Definition des Bewegungsprofils, insbesondere die Randbedingungen der Teilsegmente.

Wählen Sie alternativ andere Profile für die Teilsegmente, um alle gewünschten Randbedingungen einhalten zu können.

NumberOfCamPointsRange

Enumerationsname:

NumberOfCamPointsRange

Enumerationswert:

121

Beschreibung:

NumberOfCamPoints ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang iq_stMultiCam.diNumberOfCamPoints wurde ein ungültiger Wert übergeben.

Dem Eingang iq_stMultiCam.diNumberOfCamPoints muss ein Wert größer als 0 und kleiner oder gleich SystemInterface.MAX_NO_OF_SEG + 1 übergeben werden.

NumberOfStepsRange

Enumerationsname:

NumberOfStepsRange

Enumerationswert:

191

Beschreibung:

NumberOfSteps ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_uiNumberOfSteps wurde ein ungültiger Wert angelegt.

Dem Eingang i_uiNumberOfSteps muss ein Wert größer oder gleich 3 und kleiner oder gleich 360 übergeben werden.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

OK

Die Extremwerte wurden erfolgreich berechnet.

ProfileAlreadyInUse

Enumerationsname:

ProfileAlreadyInUse

Enumerationswert:

116

Beschreibung:

Das Profil wird bereits verwendet.

Problem

Ursache

Lösung

-

Das Bewegungsprofil wird bereits verwendet.

Überprüfen Sie die Bewegungsdaten.

ProfileMemoryFull

Enumerationsname:

ProfileMemoryFull

Enumerationswert:

127

Beschreibung:

Der Speicher für Tabellen aus Systemprofilen ist voll.

Problem

Ursache

Lösung

-

Der Speicher für Systemprofile ist voll.

Löschen Sie nicht mehr benötigte Profile mit der Funktion SystemInterface.FC_ProfileDelete.

RangeK

Enumerationsname:

RangeK

Enumerationswert:

129

Beschreibung:

K ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang iq_stMultiCamData.astCamPoint[ ].lrK wurde ein ungültiger Wert angelegt.

Prüfen Sie die Werte für iq_stMultiCamData.astCamPoint[ ].lrK.

RangeM

Enumerationsname:

RangeM

Enumerationswert:

130

Beschreibung:

M ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang iq_stMultiCam.astCamPoint[ ].lrM wurde ein ungültiger Wert angelegt.

Prüfen Sie die Werte für iq_stMultiCamData.astCamPoint[ ].lrM.

UnexpectedFeedback

Enumerationsname:

UnexpectedFeedback

Enumerationswert:

1

Beschreibung:

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

Problem

Ursache

Lösung

-

Es ist ein Fehler in der internen Abarbeitung aufgetreten.

Bitte informieren Sie das Supportteam über diesen Fehler.

UnknownCamType

Enumerationsname:

UnknownCamType

Enumerationswert:

126

Beschreibung:

Der Kurventyp ist nicht bestimmbar.

Problem

Ursache

Lösung

-

Der Kurventyp eines Punktes iq_stMultiCamData.astCamPoint ist mit einem ungültigen Kurvenprofil belegt.

Die Kurventypen etCamType aller verwendeten Kurvenpunkte am Eingang iq_stMultiCamData.astCamPoint müssen mit einem Element der Enumeration ET_CamType belegt werden.

XEndRange

Enumerationsname:

XEndRange

Enumerationswert:

192

Beschreibung:

XEnd ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrXEnd wurde ein Wert außerhalb der Kurve angelegt.

i_lrXEnd muss innerhalb der an iq_stMultiCam beschriebenen Kurve liegen.

XFactorTooSmall

Enumerationsname:

XFactorTooSmall

Enumerationswert:

122

Beschreibung:

XFactor ist zu klein.

Problem

Ursache

Lösung

-

Zwei aufeinanderfolgende Kurvenpunkte iq_stMultiCam.astCamPoint[ ].lrX liegen weniger als 0,1 Einheiten auseinander.

Überprüfen Sie die Definition der Kurve und entfernen Sie gegebenenfalls zu kurze Kurvenprofile.

XStartRange

Enumerationsname:

XStartRange

Enumerationswert:

119

Beschreibung:

XStart ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrXStart wurde eine Zahl >= der Zahl an Eingang i_lrXEnd übergeben.

Überprüfen Sie i_lrXStart und setzen Sie den Parameter auf einen Wert unter i_lrXEnd.

Überprüfen Sie i_lrXEnd und setzen Sie den Parameter auf einen Wert über i_lrXStart.

-

Am Eingang i_lrXStart wurde eine Zahl übergeben, die kleiner ist als der Beginn der Kurve.

Überprüfen Sie i_lrXStart und übertragen Sie den Wert in den Kurvenbereich.

Überprüfen Sie die angewendete Kurve und definieren Sie sie so, dass i_lrXStart innerhalb der Kurve liegt.

YFactorTooSmall

Enumerationsname:

YFactorTooSmall

Enumerationswert:

124

Beschreibung:

YFactor ist zu klein.

Problem

Ursache

Lösung

-

Ein Kurvenprofil, das eine Bewegung der Slaveachse erfordert, soll mit identischen Start- und Endpunkten gefahren werden.

Am Eingang iq_stMultiCam.astCamPoint[i-1].etCamType wurde ein Kurvenprofil vom Typ ModiSinCom angelegt. Der Wert des Unterschieds zwischen dem Anfangspunkt iq_stMultiCam.astCamPoint[i-1].lrY und dem Endpunkt iq_stMultiCam.astCamPoint[i].lrY ist kleiner als Gc_lrZeroTolerance. Dieser Profiltyp erfordert eine Bewegung der Slavekurve.

Am Eingang iq_stMultiCam.astCamPoint[i-1].etCamType wurde ein Kurvenprofil vom Typ ModAccTrCom angelegt. Der Wert des Unterschieds zwischen dem Anfangspunkt iq_stMultiCam.astCamPoint[i-1].lrY und dem Endpunkt iq_stMultiCam.astCamPoint[i].lrY ist kleiner als Gc_lrZeroTolerance. Dieser Profiltyp erfordert eine Bewegung der Slavekurve.

Am Eingang iq_stMultiCam.astCamPoint[i-1].etCamType wurde ein Kurvenprofil vom Typ HarmoComb angelegt. Der Wert des Unterschieds zwischen dem Anfangspunkt iq_stMultiCam.astCamPoint[i-1].lrY und dem Endpunkt iq_stMultiCam.astCamPoint[i].lrY ist kleiner als Gc_lrZeroTolerance. Dieser Profiltyp erfordert eine Bewegung der Slavekurve.

Am Eingang iq_stMultiCam.astCamPoint[i-1].etCamType wurde ein Kurvenprofil vom Typ SinStraightComb angelegt. Der Wert des Unterschieds zwischen dem Anfangspunkt iq_stMultiCam.astCamPoint[i-1].lrY und dem Endpunkt iq_stMultiCam.astCamPoint[i].lrY ist kleiner als Gc_lrZeroTolerance. Dieser Profiltyp erfordert eine Bewegung der Slavekurve.