FC_DoubleCrankTransformation

 

FC_DoubleCrankTransformation - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.3.0

Versionen:

Aktuelle Version

Aufgabe

Transformation einer Doppelkurbel

Beschreibung

Diese Funktion berechnet aus dem eingangsseitigen Winkel einer Doppelkurbel den ausgangs­seitigen Winkel (kinematische Transformation) und aus dem eingangsseitig eingeprägten Drehmoment das ausgangsseitig daraus resultierende Drehmoment (mechanische Transfor­mation). Die Bedeutung der beteiligten Größen kann der folgenden Abbildung entnommen werden. Die Winkel werden im mathematisch positiven Sinn (gegen den Uhrzeigersinn) ausgehend von der positiven X-Richtung gemessen. Es muss beachtet werden, dass bei manchen Doppelkurbeln auf Grund der mechanischen Gegebenheiten nicht alle eingangsseitigen Winkel angefahren werden können. Weiterhin muss berücksichtigt werden, dass es in der Regel für einen eingangsseitigen Winkel zwei zugehörige ausgangsseitige Winkel gibt, d. h. dass die Doppelkurbel-Transformation nicht eindeutig ist (siehe Parameter i_diSector). Die Auswahl des für die Anwendung sinnvollen Winkels ist Aufgabe des Anwenders.

Da es sich bei der Doppelkurbel um eine symmetrische Mechanik handelt, sind keine separaten Funktionen für Vorwärts- und Rückwärtstransformation erforderlich. Die Rückwärtstransformation erfolgt durch folgende Parameteränderung: i_lrRadius1 -> i_lrRadius2, i_lrRadius2 -> i_lrRadius1, i_lrXOffset -> - i_lrXOffset, i_lrYOffset -> - i_lrYOffset.

HINWEIS: Diese Funktion dient nur der Berechnung der Transformation der Kurbel. Eine Übertragung von Positions-Sollwerten an Achsen findet nicht statt. Ein Vorteil dieser Vorgehensweise ist, dass die Funktion problemlos mit anderen mechanischen Berechnungsbau­steinen kombiniert werden kann.

G-SE-0068638.1.gif-high.gif

 

 

Schnittstelle

Eingang

Datentyp

Beschreibung

i_lrRadius1

LREAL

Länge des eingangsseitigen Radius, Wertebereich: > 0,0

i_lrPushRod

LREAL

Länge der verbindenden Schubstange, Wertebereich: > 0,0

i_lrRadius2

LREAL

Länge des ausgangsseitigen Radius, Wertebereich: > 0,0

i_lrXOffset

LREAL

X-Offset zwischen eingangsseitigem und ausgangsseitigem Drehgelenk. Dieser Wert ist vorzeichenbehaftet.

i_lrYOffset

LREAL

Y-Offset zwischen eingangsseitigem und ausgangsseitigem Drehgelenk. Dieser Wert ist vorzeichenbehaftet.

i_diSector

DINT

Wie bereits oben erläutert ist die Doppelkurbeltransformation in der Regel nicht eindeutig, d. h . es existieren zwei ausgangsseitige Winkel, die zum eingangsseitigen Winkel i_lrAngularPosition1 gehören. Ist i_diSector = 1, so wird an q_lrAngularPosition2 die erste der beiden Lösungen ausgegeben, ist i_diSector = 2, so wird die zweite Lösung ausgegeben.

i_lrAngularPosition1

LREAL

Eingangsseitig vorgegebener Winkel

i_lrTorque1

LREAL

Eingangsseitig vorgegebenes Drehmoment

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_lrAngularPosition2

LREAL

Aus i_lrAngularPosition1 berechneter ausgangsseitiger Winkel. Wenn mehrere Lösungen existieren, legt der Parameter i_diSector fest, welche ausgegeben wird.

q_lrTorque2

LREAL

Aus i_lrTorque1 berechnetes ausgangsseitiges Drehmoment.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

OK

InputParameterInvalid

AngularPosition1Range

68

AngularPosition1 ist außerhalb des gültigen Bereichs

InputParameterInvalid

PushRodRange

64

PushRod ist außerhalb des gültigen Bereichs.

InputParameterInvalid

Radius1Range

29

Radius1 ist außerhalb des gültigen Bereichs.

InputParameterInvalid

Radius2Range

30

Radius2 ist außerhalb des gültigen Bereichs.

InputParameterInvalid

XOffsetRange

67

XOffset ist außerhalb des gültigen Bereichs.

InputParameterInvalid

YOffsetRange

174

YOffset ist außerhalb des gültigen Bereichs.

AngularPosition1Range

Enumerationsname:

AngularPosition1Range

Enumerationswert:

68

Beschreibung:

AngularPosition1 ist außerhalb des gültigen Bereichs

Problem

Ursache

Lösung

-

Die Berechnung der Ausgänge q_lrLinearPosition2 und q_lrTorque2 ist für den vorgegebenen Wert von i_lrAngularPosition1 nicht möglich.

Prüfung i_lrAngularPosition1

Überprüfen Sie alle Parameter, die in die Berechnung einfließen: i_lrRadius1, i_lrPushRod, i_lrRadius2, i_lrXOffset, i_lrYOffset, i_diSector.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

OK

Die Transformation wurde erfolgreich durchgeführt.

PushRodRange

Enumerationsname:

PushRodRange

Enumerationswert:

64

Beschreibung:

PushRod ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrPushRod wurde ein negativer Wert angelegt.

Dem Eingang i_lrPushRod muss ein Wert größer als 0 übergeben werden.

Radius1Range

Enumerationsname:

Radius1Range

Enumerationswert:

29

Beschreibung:

Radius1 ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrRadius1 wurde ein negativer Wert angelegt.

Dem Eingang i_lrRadius1 muss ein Wert größer als 0 übergeben werden.

Radius2Range

Enumerationsname:

Radius2Range

Enumerationswert:

30

Beschreibung:

Radius2 ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrRadius2 wurde ein negativer Wert angelegt.

Dem Eingang i_lrRadius2 muss ein Wert größer als 0 übergeben werden.

XOffsetRange

Enumerationsname:

XOffsetRange

Enumerationswert:

67

Beschreibung:

XOffset ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrXOffset wurde eine Zahl angelegt, deren Betrag kleiner als Gc_lrZeroTolerance ist.

i_lrXOffset darf nicht 0 sein.

YOffsetRange

Enumerationsname:

YOffsetRange

Enumerationswert:

174

Beschreibung:

YOffset ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrYOffset wurde eine Zahl angelegt, deren Betrag kleiner als Gc_lrZeroTolerance ist.

i_lrYOffset darf nicht 0 sein.