MC_CamAdd
MC_CamAdd fügt eine Kurvenscheibe additiv zu einer Multi-Cam Kopplung hinzu. Die Kurvenscheibenkopplung wird anfangs mit MC_CamIn_V2 hergestellt.
Die Addition einer Kurvenscheibe kann alternativ auch mit MC_CamIn_V2 durchgeführt werden.
Mit dem Status-Flag Axis.Status.CamTableQueued (AXIS_REF) kann geprüft werden, ob eine Kurvenscheibe zur Addition oder Umschaltung gepuffert ist.
MC_CamAdd ist mit einem Laufzeitsystem ab Version TwinCAT 2.11 R2 einsetzbar.
Wichtig:
ActivationMode (Zeitpunkt bzw. Position ab der eine Operation durchgeführt wird)
CamOperationMode (Addieren, Umschalten oder Entfernen von überlagerten Kurvenscheiben)
Eingänge
VAR_INPUT
Execute : BOOL;
ActivationMode : MC_CamActivationMode := MC_CAMACTIVATION_INSTANTANEOUS;
ActivationPosition : LREAL;
CamTableID : MC_CAM_ID;
Scaling : ST_CamScalingData;
Options : ST_CamInOptions_V2;
END_VAR
Execute | Mit einer steigenden Flanke am Eingang Execute wird das Kommando ausgeführt. | |
ActivationMode | Mit dem ActivationMode wird der Zeitpunkt bzw. die Position festgelegt, an der die Kurvenscheibenkopplung bzw. -umschaltung stattfinden soll. | |
ActivationPosition | optionale Masterposition, an der abhängig vom ActivationMode eine Kurvenscheibe umgeschaltet wird. | |
CamTableID | ID der Kurvenscheibe mit der gekoppelt wird | |
Scaling | Optionale Skalierungs-Parameter für die Kurvenscheibe | |
Options
| Datenstruktur mit weiteren Koppel- und Umschaltoptionen: | |
InterpolationType | Interpolationstyp für Positionstabellen. Nicht notwendig für Motionfunctions. | |
CamOperationMode | Der CamOperationMode ist bei MC_CamAdd fest mit dem Modus CAMOPERATIONMODE_ADDITIVE vorbelegt. | |
ReferenceCamTableID | Optionale ID einer Kurvenscheibe, die bereits in der Kopplung aktiv ist. Diese ID wird nur bei sonst nicht eindeutigen Operationen benötigt, wie z. B. bei einer automatischen Offset-Justierung bezogen auf eine schon existierende Kurvenscheibe (Master-AutoOffset). |
Ausgänge
VAR_OUTPUT
InSync : BOOL;
Busy : BOOL;
Active : BOOL;
CommandAborted : BOOL;
Error : BOOL;
ErrorID : UDINT;
END_VAR
InSync | Wird TRUE, wenn die Kurvenscheiben-Operation erfolgreich durchgeführt wurde. Bei Operationen mit Aktivierungsposition wird InSync erst nach der tatsächlichen Aktivierung TRUE. |
Busy | Der Busy-Ausgang wird TRUE, sobald das Kommando mit Execute gestartet wird und bleibt TRUE, solange der Befehl abgearbeitet wird. Wenn Busy wieder FALSE wird, so ist der Funktionsbaustein bereit für einen neuen Auftrag. Gleichzeitig ist einer der Ausgänge InSync, CommandAborted oder Error gesetzt. |
Active | Active zeigt an, dass das Kommando ausgeführt wird. Active wird TRUE, wenn das Kommando erfolgreich abgesetzt wurde aber die Operation noch gepuffert ist. Wenn die Kurvenscheibe abhängig vom ActivationMode aktiviert wird, so wird Active FALSE und InSync wird gesetzt. |
CommandAborted | Wird TRUE, wenn das Kommando nicht vollständig ausgeführt werden konnte. Die Achse kann während des Koppelvorgangs entkoppelt worden sein (gleichzeitige Kommandoausführung). |
Error | Wird TRUE, sobald ein Fehler eintritt. |
ErrorID | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer. |
Ein/Ausgänge
VAR_IN_OUT
Master : AXIS_REF;
Slave : AXIS_REF;
END_VAR
Master | Achsdatenstruktur des Masters. |
Slave | Achsdatenstruktur des Slaves. |
Die Achsdatenstruktur vom Typ AXIS_REF adressiert eine Achse eindeutig im System. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand.