MC_CamIn_BkPlcMc (ab V3.0)

MC_CamIn_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein startet und überwacht eine Kurvenscheiben-Kopplung zwischen zwei Achsen. Zum Lösen der Kopplung ist ein MC_CamOut_BkPlcMc Baustein zu verwenden.

MC_CamIn_BkPlcMc (ab V3.0) 2: Eingänge

VAR_INPUT
    Execute:        BOOL;
    MasterOffset:   LREAL:=0.0;
    SlaveOffset:    LREAL:=0.0;
    MasterScaling:  LREAL:=0.0;
    SlaveScaling:   LREAL:=0.0;
    StartMode:      MC_StartMode_BkPlcMc:=MC_StartMode_Absolute;
    CamTableId:     MC_CAM_ID_BkPlcMc;
    BufferMode:     MC_BufferMode_BkPlcMc:=Aborting_BkPlcMc;    (ab/from V3.0.8)
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Eine steigende Flanke an diesem Eingang startet die Kopplung.

MasterOffset

LREAL

[mm, 1] Dieser Wert wird mit der Istposition des Masters verrechnet, bevor der sich ergebende Wert in der Master-Spalte der Tabelle gesucht wird.

SlaveOffset

LREAL

[mm, 1] Dieser Wert wird mit der Slave-Position aus der Tabelle verrechnet.

MasterScaling

LREAL

[mm, 1] Dieser Wert wird mit der Istposition des Masters verrechnet, bevor der sich ergebende Wert in der Master-Spalte der Tabelle gesucht wird.

SlaveScaling

LREAL

[mm, 1] Dieser Wert wird mit der Slave-Position aus der Tabelle verrechnet.

StartMode

MC_StartMode_BkPlcMc

Ein Wert aus MC_StartMode_BkPlcMc, der das Verhalten der Slave-Achse beim Aktivieren der Kopplung festlegt.

CamTableId

MC_CAM_ID_BkPlcMc

Hier ist eine Variable des Typs MC_CAM_ID_BkPlcMc zu übergeben, die von einem Baustein des Typs MC_CamTableSelect_BkPlcMc initialisiert wurde.

BufferMode

MC_BufferMode_BkPlcMc

reserviert. Dieser Eingang wurde vorbereitend ergänzt und sollte derzeit nicht oder mit der Konstanten Aborting_BkPlcMc belegt werden. (ab V3.0.8)

MC_CamIn_BkPlcMc (ab V3.0) 3: Ein-/Ausgänge

VAR_INOUT
    Master:         Axis_Ref_BkPlcMc;
    Slave:          Axis_Ref_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Master

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

Slave

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

MC_CamIn_BkPlcMc (ab V3.0) 4: Ausgänge

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

Name

Typ

Beschreibung

Busy

BOOL

Hier wird signalisiert, dass ein Kommando abgearbeitet wird.

InSync

BOOL

Hier wird das erstmalige erfolgreiche Aufsynchronisieren der Achsen signalisiert. Das Signal bleibt anschließend auch dann anstehen, wenn die Synchronisierung zu einem späteren Zeitpunkt zeitweise oder bleibend aussetzt.

CommandAborted

BOOL

Hier wird ein Abbruch der Kopplung signalisiert.

Error

BOOL

Hier wird das Auftreten eines Fehlers signalisiert.

ErrorID

UDINT

Hier wird eine codierte Fehlerursache bereitgestellt.

EndOfProfile

BOOL

Hier wird signalisiert, ob der Master das Ende des definierten Bereichs erreicht hat.

Verhalten des Bausteins

Auf eine steigende Flanke an Execute hin untersucht der Baustein das übergebene Achsinterface. Dabei können eine Reihe von Problemen erkannt und gemeldet werden:

Wenn diese Überprüfungen ohne Problem durchgeführt werden konnten wird die Kopplung initiiert. In Abhängigkeit von StartMode wird die Bezugsposition für Slave entweder auf den Wert 0.0 oder mit der aktuellen Istposition von Slave festgelegt. Die Achse befindet sich ab jetzt im Zustand McState_Synchronizedmotion und der Baustein beginnt mit der Berechnung und Überwachung der Kopplung.

Sollposition und Sollgeschwindigkeit von Slave werden in Abhängigkeit von Istposition und Sollgeschwindigkeit des Masters und der Tabelle berechnet.

Wenn bei aktiver Kopplung die Slaveachse erstmalig die durch die Kopplung geforderte Geschwindigkeit erreicht, wird dies am Ausgang InGear signalisiert. Da die Kopplung derzeit nur im Stillstand aktiviert werden kann ist dies unmittelbar der Fall. Sollte während aktiver Kopplung die Slaveachse aus einem beliebigen Grund den Vorgaben nicht folgen können bleibt InGear unverändert.

Tritt bei aktiver Kopplung im Bewegungsgenerator ein Fehlercode auf wird mit Error und ErrorID:=Bewegungsalgorithmus-Fehlercode reagiert.

Eine fallende Flanke an Execute beendet weder die Berechnung noch die Überwachung der Kopplung. Dies kann nur durch die Kopplung durch einen MC_CamOut_BkPlcMc Baustein oder das Auftreten eines Fehlers bewirkt werden. Erst dann werden alle anstehenden Ausgangssignale gelöscht.

MC_CamIn_BkPlcMc (ab V3.0) 5:

Dieser Baustein übernimmt zeitweise die Aufgabe der Sollwertgenerierung. Um dies zu signalisieren wird Busy nicht nur bis zum Übergang in die Synchronität TRUE, sondern bleibt bis zum Auflösen der Kopplung anstehen.

MC_CamIn_BkPlcMc (ab V3.0) 6:

Bausteinaufruf

Es ist zwingend erforderlich, diesen Baustein zyklisch aufzurufen wenn Busy auf TRUE steht. Anschließend ist der Baustein noch mindestens einmal mit Execute:=FALSE aufzurufen.