FC_CrankForwardTransformation - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab: |
V1.0.3.0 |
Versionen: |
Aktuelle Version |
Vorwärtstransformation einer Schubkurbel
Diese Funktion berechnet aus der Linearposition einer Schubkurbel die zugehörigen möglichen Kurbelwinkel (kinematische Transformation) und aus der auf der linearen Seite gewünschten Kraft das hierfür auf der rotativen Seite erforderliche Drehmoment (mechanische Transformation). Die Bedeutung der beteiligten Größen kann der folgenden Abbildung entnommen werden. Der Kurbelwinkel wird im mathematisch positiven Sinn (gegen den Uhrzeigersinn) ausgehend von der positiven X-Richtung gemessen.
Es muss beachtet werden, dass es Kurbeln gibt, bei denen es mechanisch nicht möglich ist, alle Kurbelwinkel anzufahren. Der Funktionsbaustein gibt bei Vorgabe eines mechanisch nicht zulässigen Kurbelwinkels die Meldung q_etDiag = InputParameterInvalid und q_etDiagExt = AngularPositionRange aus.
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 Berechnungsbausteinen kombiniert werden kann.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_lrRadius |
LREAL |
Länge des Radius der Kurbel gemäß obiger Abbildung. Wertebereich > 0,0 |
i_lrPushRod |
LREAL |
Länge der Schubstange der Kurbel gemäß obiger Abbildung. Wertebereich > 0,0 |
i_lrYOffset |
LREAL |
Position der Ebene der Linearbewegung in Bezug auf die X-Achse. Achtung: Dieser Parameter ist vorzeichenbehaftet. Liegt die Ebene unterhalb der X-Achse, so muss ein negativer Wert angegeben werden. |
i_lrXOrigin |
LREAL |
Anwenderdefinierter Nullpunkt der Linearposition. Ist i_lrXOrigin = 0,0, so ist die Linearposition gleich dem Abstand von der Y-Achse (= Abstand von der Senkrechten durch den Kurbeldrehpunkt). In der Praxis möchte man jedoch häufig den Nullpunkt in eine der beiden Grenzlagen der Linearposition legen, sodass die Linearposition sich z.B. von 0,0 ... zu Xmax verschiebt. Dies kann durch Vorgabe eines geeigneten Wertes für i_lrXOrigin geschehen (siehe Abbildung oben). |
i_xCrankLeft |
BOOL |
Gibt an, in welche Richtung die Schubstange der Kurbel zeigt. TRUE: Schubstange zeigt in negative X-Richtung (in der Abbildung nach links). FALSE: Schubstange zeigt in positive X-Richtung (in der Abbildung nach rechts). |
i_lrAngularPosition |
LREAL |
Winkel der Kurbel (rotative Position). Einheit: Grad, Wertebereich: 0,0° ... 360° |
i_lrTorque |
LREAL |
Auf der rotativen Seite eingeprägtes Drehmoment. Die Einheit ist beliebig wählbar, es muss jedoch beachtet werden, dass gegebenenfalls ein Umrechnungsfaktor verwendet werden muss, um die ausgangsseitige Kraft q_lrForce in einer bestimmten Einheit zu erhalten (Beispiel: gewählte Einheit für i_lrRadius, i_lrPushRod usw.: mm, gewählte Einheit für i_lrTorque: Nm. Als Einheit für q_lrForce ergibt sich dann Nm / mm = 1000 N. |
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, diagnosebezogener Ausgang. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_lrLinearPosition |
LREAL |
Aus dem Kurbelwinkel i_lrAngularPosition berechnete Linearposition. Bemerkung: Abhängig von den Vorgaben kann die Linearposition auch negative Werte annehmen. |
q_lrForce |
LREAL |
Aus dem eingeprägten Drehmoment i_lrTorque berechnete ausgangsseitige Kraft |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
0 |
OK |
|
InputParameterInvalid |
65 |
AngularPosition ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
64 |
PushRod ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
21 |
Radius ist außerhalb des gültigen Bereichs. |
Enumerationsname: |
AngularPositionRange |
Enumerationswert: |
65 |
Beschreibung: |
AngularPosition ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Berechnung der Ausgänge q_lrLinearPosition und q_lrForce ist für den vorgegebenen Wert von i_lrAngularPosition nicht möglich. |
Überprüfen Sie i_lrAngularPosition. Überprüfen Sie alle Parameter, die in die Berechnung einfließen: i_lrRadius, i_lrPushRod, i_lrYOffset. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
OK |
Die Vorwärtstransformation wurde erfolgreich durchgeführt.
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. |
Enumerationsname: |
RadiusRange |
Enumerationswert: |
21 |
Beschreibung: |
Radius ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrRadius wurde ein negativer Wert angelegt. |
Dem Eingang i_lrRadius muss ein Wert größer als 0 übergeben werden. |