MC_CamIn_V2

MC_CamIn_V2 1:

MC_CamIn_V2 ist eine Weiterentwicklung des Funktionsbausteins MC_CamIn und ist in der Lage, mit mehren überlagerten Kurvenscheiben zu arbeiten (Multi-Cam). MC_CamIn_V2 stellt bei einem ersten Aufruf eine Master-Slave-Kopplung mit einer Kurvenscheibe her. Mit weiteren Aufrufen können zur Laufzeit bei gleicher Slave-Achse zusätzliche Kurvenscheiben additiv überlagert oder wieder aus dem Verbund entfernt werden. Dabei können die Regeln für die Umschaltung, insbesondere der genaue Zeitpunkt oder die Position bestimmt werden.

MC_CamIn_V2 kann nur alternativ zu MC_CamIn verwendet werden. Beide Funktionsbausteine können bei derselben Slave-Achse nicht gemeinsam genutzt werden. Für Addition, Austausch und Entfernen von Kurvenscheiben stehen alternativ die Funktionsbausteine MC_CamAdd, MC_CamExchange und MC_CamRemove zur Verfügung. Alle Operationen können aber 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.

Wichtig :

ActivationMode (Zeitpunkt bzw. Position ab, der eine Operation durchgeführt wird.)

CamOperationMode (Addieren, Umschalten oder Entfernen von überlagerten Kurvenscheiben)

ScalingMode

MC_CamIn_V2 2: 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

Name

Typ

Beschreibung

Execute

BOOL

Mit einer steigenden Flanke am Eingang Execute wird das Kommando ausgeführt.

ActivationMode

MC_CamActivationMode

Mit dem ActivationMode wird der Zeitpunkt bzw. die Position festgelegt, an der die Skalierung stattfinden soll.

ActivationPosition

LREAL

Masterposition, an der abhängig vom ActivationMode eine Kurvenscheibe skaliert wird.
Falls der ActivationMode MC_CAMACTIVATION_ATMASTERCAMPOS verwendet wird, bezieht sich die Position auf die unskalierte Kurvenscheibe. Wenn sich die Position in der Anwendung auf die skalierte Kurvenscheibe bezieht, so kann sie vor Aufruf des Funktionsbausteins durch die MasterSkalierung MasterScaling dividiert werden.

CamTableID

MC_CAM_ID

ID der Kurvenscheibe mit der gekoppelt wird.

Scaling

ST_CamScalingData

Optionale Skalierungs-Parameter für die Kurvenscheibe.

Options

ST_CamInOptions_V2

Datenstruktur mit weiteren Koppel- und Umschaltoptionen:

InterpolationType

Interpolationstyp für Positionstabellen. Nicht notwendig für Motionfunctions.

CamOperationMode

Der CamOperationMode legt fest, wie die angegebene Kurvenscheibe (CamTableID) im den Koppelverbund wirken soll. Kurvenscheiben können addiert, getauscht oder entfernt werden.

ReferenceCamTableID

Optionale ID einer Kurvenscheibe, die bereits in der Kopplung aktiv ist. Diese ID wird insbesondere bei nicht eindeutigen Operationen benötigt, wie z. B. beim Austauschen bestimmter Kurvenscheiben bei Multi-Kopplungen. Bei eindeutigen Operationen kann der Wert 0 bleiben.

MC_CamIn_V2 3: Ein-/Ausgänge

VAR_IN_OUT
   Master : AXIS_REF;
   Slave  : AXIS_REF;
END_VAR

Name

Typ

Beschreibung

Master

AXIS_REF

Achsdatenstruktur des Masters.

Slave

AXIS_REF

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.

MC_CamIn_V2 4: Ausgänge

VAR_OUTPUT
   InSync         : BOOL;
   Busy           : BOOL;
   Active         : BOOL;
   CommandAborted : BOOL;
   Error          : BOOL;
   ErrorID        : UDINT;
END_VAR

Name

Typ

Beschreibung

InSync

BOOL

Wird TRUE, wenn die Kurvenscheiben-Operation erfolgreich durchgeführt wurde. Bei Operationen mit Aktivierungsposition wird InSync erst nach der tatsächlichen Aktivierung TRUE.

Busy

BOOL

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 oder Error gesetzt.

Active

BOOL

Active zeigt an, dass das Kommando ausgeführt wird. Bei einer Kurvenscheibenumschaltung wird Active TRUE, wenn das Koppelkommando erfolgreich ausgeführt wurde aber die Kurvenscheibe noch gepuffert ist. Wenn die Kurvenscheibe abhängig vom ActivationMode aktiviert wird, so wird Active FALSE und InSync wird gesetzt.

CommandAborted

BOOL

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

BOOL

Wird TRUE, sobald ein Fehler eintritt.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.