MC_Phasing (FB) ¶ FUNCTION_BLOCK MC_Phasing MC_Phasing provides a constant phase shift between master and slave axis. MC_Phasing will abort any ongoing movement of the slave axis. In this respect, it differs from the function blocks MC_PhasingAbsolute and MC_PhasingRelative defined by the PLCopen for Motion Control 2.0 standard. These function blocks don’t abort an ongoing slave movement but superimpose the phase shift on top of e.g. an ongoing MC_CamIn or MC_GearIn movement. To achieve this behavior with MC_Phasing , please use an additional virtual axis as the slave axis of MC_Phasing and use this virtual slave as the master for MC_CamIn or MC_GearIn . Alternatively, MC_MoveSuperimposed can be used on the master axis of an MC_CamIn or MC_GearIn movement. Important Phase , Velocity , Acceleration and Deceleration of a phase shift are controlled by the function block. Note MC_Phasing should be called after the motion FB controlling the Master axis has been called. Otherwise, the Slave axis will lag behind the Master axis. Timing example of MC_Phasing Timing of MC_Phasing ¶ Example demonstrating the effect of MC_Phasing Demonstrating the effect of MC_Phasing ¶ InOut: Scope Name Type Initial Comment Inout Master AXIS_REF_SM3 Reference to master axis Slave AXIS_REF_SM3 Reference to slave axis Input Execute BOOL FALSE Rising edge: Starts the execution of the function block. PhaseShift LREAL 0 Phase difference between master and slave (slave - master) [u] Velocity LREAL 0 Maximum velocity for reaching phase difference [u/s] Acceleration LREAL 0 Maximum acceleration for reaching phase difference [u/s²] Deceleration LREAL 0 Maximum deceleration for reaching phase difference [u/s²] Jerk LREAL maximum jerk to reach phase difference [u/s^3] Output Done BOOL FALSE TRUE : Commanded phasing has been reached. Busy BOOL FALSE TRUE : Execution of the function block has not been finished. CommandAborted BOOL FALSE TRUE : Command has been aborted by another command. Error BOOL FALSE TRUE : Error has occurred within the function block. ErrorID SMC_ERROR 0 Error identification
SMC_CamIn_EvalCam_EvalContext (STRUCT) ¶ TYPE SMC_CamIn_EvalCam_EvalContext : STRUCT InOut: Name Type endOfProfileSlaveAxisPos LREAL SlaveOffset LREAL EndOfProfile BOOL OldEndOfProfile BOOL endOfProfileCycle SMC_CycleCounter evalCamCtx SMC_EvalCam_EvalContext moduloHandlingCtx SMC_CamIn_ModuloHandling_EvalContext dynMasterCam SMC_TG_DynState
SMC_CamIn_EvalContext (STRUCT) ¶ TYPE SMC_CamIn_EvalContext : STRUCT InOut: Name Type state UDINT rampInDistMasterOffset LREAL rampInDistSlaveOffset LREAL firstCallAfterInit BOOL evalCamEvalCtx SMC_CamIn_EvalCam_EvalContext rampInEvalCtx SMC_CamIn_RampIn_EvalContext
SMC_MoveContinuousPerformerImpl (FB) ¶ FUNCTION_BLOCK SMC_MoveContinuousPerformerImpl IMPLEMENTS SMC_IBasic_MovementPerformerImpl Properties: OwnerNumber Methods: Activate CanBlend GetStartInfoForBlendingInto GetStartVelocity OnOverrideChanged PrepareTransition StartBuffering Structure: Activate (Method) CanBlend (Method) GetStartInfoForBlendingInto (Method) GetStartVelocity (Method) OnOverrideChanged (Method) OwnerNumber (Property) PrepareTransition (Method) StartBuffering (Method)
SMC_MoveContinuousPerformerImpl.Activate (METH) ¶ METHOD Activate InOut: Scope Name Type Inout Axis AXIS_REF_SM3
SMC_MoveContinuousPerformerImpl.CanBlend (METH) ¶ METHOD CanBlend : BOOL InOut: Scope Name Type Return CanBlend BOOL
SMC_MoveContinuousPerformerImpl.GetStartInfoForBlendingInto (METH) ¶ METHOD GetStartInfoForBlendingInto InOut: Scope Name Type Inout Const Axis AXIS_REF_SM3 Input startPos LREAL offsetPosition LREAL dirCur MC_Direction velBlendingProgrammed LREAL Output startDir MC_Direction velMaxSafe LREAL
SMC_MoveContinuousPerformerImpl.GetStartVelocity (METH) ¶ METHOD GetStartVelocity : LREAL InOut: Scope Name Type Return GetStartVelocity LREAL
SMC_MoveContinuousPerformerImpl.OnOverrideChanged (METH) ¶ METHOD OnOverrideChanged : SMC_ERROR InOut: Scope Name Type Inout Axis AXIS_REF_SM3 Return OnOverrideChanged SMC_ERROR
SMC_MoveContinuousPerformerImpl.OwnerNumber (PROP) ¶ PROPERTY OwnerNumber : INT