MC_CamInfoData
TYPE MC_CamInfoData :
STRUCT
CamTableId : MC_CAM_ID;
TableType : MC_TableType;
Periodic : BOOL;
InterpolationType : MC_InterpolationType;
NumberOfRows : UDINT; (* number of cam table entries, e. g. number of points *)
NumberOfColumns : UDINT; (* number of table columns, typically 1 or 2 *)
MasterAxisId : UDINT; (* AxisId of the master axis *)
SlaveAxisId : UDINT; (* AxisId of the slave axis *)
MasterCamStartPos : LREAL; (* Master pos. of the first cam table point (raw, unscaled cam table pos.) *)
SlaveCamStartPos : LREAL; (* Slave pos. of the first cam table point (raw, unscaled cam table pos.) *)
RawMasterPeriod : LREAL; (* raw, unscaled difference between last and first cam point *)
RawSlaveStroke : LREAL; (* raw, unscaled difference between last and first cam point *)
MasterAxisCouplingPos : LREAL; (* Master axis position when slave has been coupled *)
SlaveAxisCouplingPos : LREAL; (* Slave axis position when slave has been coupled *)
MasterAbsolute : BOOL; (* raw, unscaled distance from first to last master cam table position *)
SlaveAbsolute : BOOL; (* raw, unscaled distance from first to last slave cam table position *)
MasterOffset : LREAL; (* total master offset *)
SlaveOffset : LREAL; (* total slave offset *)
MasterScaling : LREAL; (* total master scaling factor *)
SlaveScaling : LREAL; (* total slave scaling factor *)
SumOfSlaveStrokes : LREAL; (* sum of the slave strokes up to ActualMasterAxisPos *)
SumOfSuperpositionDistance : LREAL; (* sum of additional moves through MC_MoveSuperimposed *)
ActualMasterAxisPos : LREAL; (* absolute set position of the master axis *)
ActualSlaveAxisPos : LREAL; (* absolute set position of the slave axis *)
ActualMasterCamPos : LREAL; (* raw, unscaled cam table position of the master *)
ActualSlaveCamPos : LREAL; (* raw, unscaled cam table position of the slave *)
(* mode for the scaling of cam tables *)
ScalingPending : BOOL; (* a change is currently pending *)
ScalingActivationMode : MC_CamActivationMode;
ScalingActivationPos : LREAL;
ScalingMasterScalingMode : MC_CamScalingMode;
ScalingSlaveScalingMode : MC_CamScalingMode;
(* mode for online changes of cam table data *)
CamDataQueued : BOOL; (* a change is currently pending *)
OnlineChangeActivationMode : MC_CamActivationMode;
OnlineChangeActivationPos : LREAL;
OnlineChangeMasterScalingMode: MC_CamScalingMode;
OnlineChangeSlaveScalingMode : MC_CamScalingMode;
(* mode for exchanging cam tables with MC_CamIn *)
CamTableQueued : BOOL; (* a change is currently pending *)
CamExchangeCamTableID : MC_CAM_ID;
CamExchangeActivationMode : MC_CamActivationMode;
CamExchangeActivationPos : LREAL;
CamExchangeMasterScalingMode : MC_CamScalingMode;
CamExchangeSlaveScalingMode : MC_CamScalingMode;
END_STRUCT
END_TYPE
Die Datenstruktur MC_CamInfoData enthält Daten zum aktuellen Zustand einer Kurvenscheibenkopplung. Die Daten werden mit dem Funktionsbaustein MC_CamInfo ermittelt.
Die Struktur enthält zum einen absolute Achspositionen, die sich auf das Master- oder Slave-Achskoordinatensystem beziehen. Zum anderen sind Kurvenscheibenpositionen enthalten, die sich auf das Kurvenscheibenkoordinatensystem beziehen (z. B. ActualMasterCamPos und ActualSlaveCamPos). Alle Cam-Positionen beziehen sich auf das unskalierte Kurvenscheibenkoordinatensystem und können bei Bedarf auf das skalierte Koordinatensystem umgerechnet werden. Eine Master-Cam-Position kann mit dem Master-Skalierungsfaktor MasterScaling multipliziert und eine Slave-Cam-Position mit SlaveScaling multipliziert werden.
Die Aktivierungspositionen ActivationPos werden je nach ActivationMode auf das Master-Achskoordinatensystem oder auf das Kurvenscheibenkoordinatensystem bezogen. Im letzten Fall wird eine unskalierte Kurvenscheibenposition angegeben.