MC_ReadCamTableMasterPosition

MC_ReadCamTableMasterPosition 1:

Mit dem FunktionsbausteinMC_ReadCamTableMasterPosition kann die Masterposition für eine gegebene Slaveposition berechnet werden. Während die Slaveposition für eine gegebene Masterposition eindeutig sein muss, ist dies für den inversen Fall nicht so. Damit man nun als Ausgabe für den Funktionsbaustein eine beschränkte Anzahl von Werten für Master ausgeben kann, werden nur für eine gegebene Masterposition (MasterStartPosition) die jeweils kleinere (MasterLow) und größere Masterposition (MasterHigh) zu dem Slavewert ausgegeben.

So wird für die Kurvenscheibe vom Bild 1 für den Slavewert von 80 und einem Masterstartwert von 180 die Werte für MasterHigh von 225 und für MasterLow von 135 ausgegeben. Wenn die Kurvenscheibe zyklisch ist, werden für einen Masterstartwert von 90 neben dem MasterHigh von 135 auch der MasterLow von -135 berechnet. Im linearen Fall (nichtzyklisch) der Kurvenscheibe wird im Bild 2 nur der Wert MasterHigh als gültig dargestellt.

MC_ReadCamTableMasterPosition 2:

Bild1

Bei zyklischen Kurvenscheiben mit Hub kann die Masterposition nicht nur in einem der benachbarten Zyklen der StartMasterpos liegen, sondern bei entsprechender Slaveposition auch mehrere Zyklen weiter.

MC_ReadCamTableMasterPosition 3:

Bild2

Die Berechnung der Masterposition erfolgt mit numerischen Algorithmen, deren Genauigkeit über die Variable MasterAccuracy eingestellt werden kann.

MC_ReadCamTableMasterPosition 4: Eingänge

VAR_INPUT
   Execute             : BOOL;
   CamTableID          : MC_CAM_ID;
   SlavePosition       : LREAL; (* absolute slave axis position *)
   MasterOffset        : LREAL; (* E *)
   SlaveOffset         : LREAL; (* E *)
   MasterScaling       : LREAL := 1.0; (* E *)
   SlaveScaling        : LREAL := 1.0; (* E *)
   MasterStartPosition : LREAL; (* Master position to start the iteration from *)
   MasterAccuracy      : LREAL; (* Master iteration accuracy *)
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

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

CamTableId

MC_CAM_ID

Tabellen ID

SlavePosition

LREAL

Die Slaveposition, deren Masterposition gesucht ist.

MasterOffset

LREAL

Offset zur Masterposition der Kurvenscheibe

SlaveOffset

LREAL

Offset zur Slaveposition aus der Kurvenscheibe

MasterScaling

LREAL

Skalierung der Masterposition der Kurvenscheibe

SlaveScaling

LREAL

Skalierung der Slaveposition der Kurvenscheibe

MasterStartPosition

LREAL

Startposition des Masters

MasterAccuracy

LREAL

Genauigkeit für die Berechnung

MC_ReadCamTableMasterPosition 5: Ausgänge

VAR_OUTPUT
   Execute    : BOOL;
   Done       : BOOL;
   Busy       : BOOL;
   Active     : BOOL;
   Error      : BOOL;
   ErrorID    : UDINT;
   MasterLow  : ST_CamMasterData; (* position information of the lower bound master position *)
   MasterHigh : ST_CamMasterData; (* position information of the upper bound master position *)
END_VAR

Name

Typ

Beschreibung

Done

BOOL

Wird TRUE, wenn die Kopplung erfolgreich durchgeführt wurde und die Kurvenscheibe aktiv ist.

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

Error

BOOL

Wird TRUE, sobald ein Fehler eintritt.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.

MasterLow

ST_CamMasterData

Masterposition kleiner als die MasterStartPosition in der Datenstruktur ST_CamMasterData

MasterHigh

ST_CamMasterData

Masterposition größer als die MasterStartPosition in der Datenstruktur ST_CamMasterData