Der Einsatz dieses FBs wird empfohlen, wenn hochgenaue Positionierungen durchgeführt werden müssen, bei denen ein Positionsfehler kompensiert werden soll, der von der Position einer zweiten Achse abhängt.
Beispiele hierfür sind u.A. Durchbiegungen von Horizontalachsen an Portalen oder Winkelfehler in x-y-Tischen.
WARNUNG!
Die Kombination der Kreuzkompensation mit einer Lageregelung auf einen externen Geber ist nicht zulässig. Der FB L_CT1P_CrossComp unterstützt keine Modulo-Achsen.
Bitte beachten Sie bei der Verwendung dieses sollwertkorrigierenden FBs:
In den PLCopen-Status "Standstill" wird eingetreten, sobald die unkompensierte Sollwertvorgabe den Stillstand erreicht hat. Ebenso schalten die Motion-FBs (z. B.MC_MoveAbsolute, MC_MoveVelocity, L_MC1P_AxisBasicControl) ihre Statusausgänge (x)Busy, (x)Done etc. auf Basis der unkompensierten Sollwerte.
Die Kompensation wirkt additiv auf den Sollwert und wird im Istwert wieder herausgerechnet.
Die korrigierten Sollwerte werden zu Analyse-Zwecken am FB ausgegeben. Diese müssen nicht applikativ verschaltet werden.
|
|
|
|
L_CT1P_CrossComp |
|
|
|
|
|---|---|---|---|---|---|---|---|
|
AXIS_REF |
- |
|
Axis |
xBusy |
|
- |
BOOL |
|
BOOL |
- |
|
xEnable |
xActive |
|
- |
BOOL |
|
- |
|
eExecutionIndex |
xError |
|
- |
BOOL |
|
|
AXIS_REF |
- |
|
Base |
eErrorID |
|
- |
L_IE1P_Error |
|
ARRAY[*] OF LREAL |
- |
|
alrBasePosition |
lrSetPosOut |
|
- |
LREAL |
|
ARRAY[*] OF LREAL |
- |
|
alrAxisCorrection |
lrSetVelOut |
|
- |
LREAL |
|
|
|
|
|
lrSetAccOut |
|
- |
LREAL |
|
|
|
lrSetTorqueOut |
|
- |
LREAL |
||
|
|
|
|
|
lrActCorrection |
|
- |
LREAL |
|
|
|
|
|
|
|
|
|
Eingänge
|
Name Datentyp |
Info/Einstellmöglichkeiten |
|
|---|---|---|
|
Axis AXIS_REF |
Übergabe der Achsdatenstruktur der zu korrigierenden Achse |
|
|
xEnable BOOL |
FALSE -> TRUE |
Aktivierung des FBs |
|
Die Aktivierung oder Deaktivierung (TRUE <-> FALSE) kann nur bei gesperrter Achse (Zustand "Disabled") erfolgen. |
||
|
eExecutionIndex
|
Ausführungsindex Es können max. zwei sollwertkorrigierende FBs an eine Achse angeschlossen werden. Über diesen Eingang wird die Aufrufreihenfolge festgelegt. Auswahl: L_MC1P_ExecutionIndex.First := 1, L_MC1P_ExecutionIndex.Second := 2
|
|
|
Base AXIS_REF |
Übergabe der Achsdatenstruktur der Base-Achse |
|
|
alrBasePosition ARRAY[*] OF LREAL |
Positionsvektor der AxisRef Base zur Ermittlung der Positionskorrektur |
|
|
alrAxisCorrection ARRAY[*] OF LREAL |
Korrekturwerte der AxisRef Axis an den Positionen alrBasePosition Die Anzahl der Werte in alrBasePosition und alrAxisCorrection muss identisch sein. |
|
Ausgänge
|
Name Datentyp |
Wert/Bedeutung |
|
|---|---|---|
|
xBusy BOOL |
TRUE |
Der FB wurde in den Sollwertpfad der AXIS_REF eingehängt. |
|
xActive BOOL |
TRUE |
Die Kreuzkompensation ist aktiv. |
|
xError BOOL |
TRUE |
Es ist ein Fehler aufgetreten. Details siehe eErrorID . |
|
eErrorID |
Wenn xError = TRUE: Fehlernummer zum aufgetretenen Fehler. |
|
|
lrSetPosOut LREAL |
Modifizierte Sollposition Dieser Ausgang dient zur Analyse. Das Verschalten des Ausgangs ist nicht erforderlich. |
|
|
lrSetVelOut LREAL |
Modifizierte Sollgeschwindigkeit Dieser Ausgang dient zur Diagnose. Das Verschalten des Ausgangs ist nicht erforderlich. |
|
|
lrSetAccOut LREAL |
Modifizierte Sollbeschleunigung Dieser Ausgang dient zur Diagnose. Das Verschalten des Ausgangs ist nicht erforderlich. |
|
|
lrSetTorqueOut LREAL |
Modifiziertes Sollmoment Dieser Ausgang dient zur Diagnose. Das Verschalten des Ausgangs ist nicht erforderlich. |
|
|
lrActCorrection LREAL |
Aktueller Korrekturwert Dieser Ausgang dient zur Diagnose. Das Verschalten des Ausgangs ist nicht erforderlich. |
|