LibParams (PARAMS) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Comment Constant gc_SMC_FILE_MAXCAMEL INT 128 The maximum number of cam segments / points that can be read by SMC_ReadCam . gc_SMC_FILE_MAXCAMTAP INT 128 The maximum number of cam tappets that can be read by SMC_ReadCam .
SMC_Basic_Ranges (GVL) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Constant UDINT_RANGE LREAL EXPT(2, 32) INT_MIN INT INT#-32768 INT_MAX INT INT#32767
SMC_DriveBasic_GlobalVariables (GVL) ¶ InOut: Name Type Initial g_bSMCMotorolaByteOrder BOOL FALSE
SM_PLCOpen_GlobalVariables (GVL) ¶ InOut: Scope Name Type Initial Comment Constant MAX_NUM_TAPPETS UINT 512 SMC_SUPPORTEDRAMPTYPES DWORD 2#111 quadratic, sinsquare, trapez SMC_MAX_NUM_TRIGGERS INT 8 The maximum number of triggers supported for |TRIGGER_REF.iTriggerNumber| g_fSMC_PLCOPEN_EPS LREAL 1E-06
POUs ¶ Additional MC_AbortTrigger (FunctionBlock) MC_DigitalCamSwitch (FunctionBlock) CheckHysteresis (Action) InitSwitch (Action) MC_TouchProbe (FunctionBlock) SMC_Logical_Axis (FunctionBlock) SMC_StartupDrive (FunctionBlock) SMC_VIRTUAL_AXIS (FunctionBlock) Administrative/Configuration MC_Power (FunctionBlock) MC_Reset (FunctionBlock) MC_SetPosition (FunctionBlock) SMC3_BrakeControl (FunctionBlock) SMC3_PersistPosition (FunctionBlock) SMC3_PersistPositionLogical (FunctionBlock) SMC3_PersistPositionSingleturn (FunctionBlock) SMC_ChangeDynamicLimits (FunctionBlock) SMC_ChangeGearingRatio (FunctionBlock) SMC_GetForecast (FunctionBlock) SMC_GetTravelTime (FunctionBlock) SMC_SetAdditionalConversionFactors (FunctionBlock) SMC_SetControllerMode (FunctionBlock) SMC_SetCustomRampType (FunctionBlock) SMC_SetForecast (FunctionBlock) SMC_SetMovementType (FunctionBlock) SMC_SetRampType (FunctionBlock) SMC_SetSoftwareLimits (FunctionBlock) CAM MC_CamTableSelect (FunctionBlock) SMC_CAMBounds (FunctionBlock) SMC_CAMBounds_Pos (FunctionBlock) SMC_CamEditor (FunctionBlock) DoBeforeLeave (Action) SMC_CamRegister (FunctionBlock) SMC_GetCamSlaveSetPosition (FunctionBlock) SMC_GetTappetValue (FunctionBlock) SMC_ReadCAM (FunctionBlock) CloseFile (Action) SMC_WriteCAM (FunctionBlock) CloseFile (Action) Diagnostics FBError SMC_ClearFBError (Function) SMC_ReadFBError (FunctionBlock) MC_ReadActualPosition (FunctionBlock) MC_ReadActualTorque (FunctionBlock) MC_ReadActualVelocity (FunctionBlock) MC_ReadAxisError (FunctionBlock) MC_ReadStatus (FunctionBlock) Performance SMC_PerfStat (FunctionBlock) SMC_PerfTimerSum (Function) SMC_SeriesStat (FunctionBlock) SMC3_BrakeStatus (FunctionBlock) SMC_AxisDiagnosticLog (FunctionBlock) WriteToFile (Action) SMC_CheckAxisCommunication (FunctionBlock) SMC_CheckLimits (FunctionBlock) SMC_GetMaxSetAccDec (FunctionBlock) SMC_GetMaxSetVelocity (FunctionBlock) SMC_GetTrackingError (FunctionBlock) SMC_InPosition (FunctionBlock) SMC_MeasureDistance (FunctionBlock) SMC_ReadSetPosition (FunctionBlock) SMC_ReadSetValues (FunctionBlock) Movement Direct SMC_FollowPosition (FunctionBlock) SMC_FollowPositionVelocity (FunctionBlock) SMC_FollowSetValues (FunctionBlock) SMC_FollowVelocity (FunctionBlock) SMC_SetTorque (FunctionBlock) SMC_TrackAxis (FunctionBlock) SMC_TrackSetValues (FunctionBlock) MC_AccelerationProfile (FunctionBlock) MC_Halt (FunctionBlock) MC_HaltSuperImposed (FunctionBlock) MC_Home (FunctionBlock) MC_Jog (FunctionBlock) MC_MoveAbsolute (FunctionBlock) MC_MoveAdditive (FunctionBlock) MC_MoveRelative (FunctionBlock) MC_MoveSuperImposed (FunctionBlock) MC_MoveVelocity (FunctionBlock) MC_PositionProfile (FunctionBlock) MC_SetOverride (FunctionBlock) MC_Stop (FunctionBlock) MC_VelocityProfile (FunctionBlock) Master/Slave MC_CamIn (FunctionBlock) MC_CamOut (FunctionBlock) MC_GearIn (FunctionBlock) MC_GearInPos (FunctionBlock) MC_GearOut (FunctionBlock) MC_Phasing (FunctionBlock) SMC_BacklashCompensation (FunctionBlock) SMC_GetOverride (FunctionBlock) SMC_Homing (FunctionBlock) SMC_Inch (FunctionBlock) SMC_MoveContinuousAbsolute (FunctionBlock) SMC_MoveContinuousRelative (FunctionBlock) Parameter access MC_ReadBoolParameter (FunctionBlock) MC_ReadParameter (FunctionBlock) MC_WriteBoolParameter (FunctionBlock) MC_WriteParameter (FunctionBlock) SMC_ParameterNumber_CoE (Function) SMC_ParameterNumber_SoE (Function) internal Buffered movement SMC_CamIn_EvalCam_EvalContext (Struct) SMC_CamIn_EvalContext (Struct) SMC_CamIn_ModuloHandling_EvalContext (Struct) SMC_CamIn_RampIn_DistanceBased_EvalContext (Struct) SMC_CamIn_RampIn_EvalContext (Union) SMC_CamIn_RampIn_LimitBased_EvalContext (Struct) SMC_CamOutPerformerImpl (FunctionBlock) Activate (Method) CanBlend (Method) GetStartInfoForBlendingInto (Method) GetStartVelocity (Method) Init (Method) OnOverrideChanged (Method) OwnerNumber (Property) PrepareTransition (Method) StartBuffering (Method) SMC_CamOut_EvalContext (Struct) SMC_GearInPos_EvalContext (Struct) SMC_GearIn_EvalContext (Struct) SMC_GearIn_RampInQuad_EvalContext (Struct) SMC_GearIn_RampInTrap_EvalContext (Struct) SMC_GearIn_RampIn_EvalContext (Union) SMC_Gearing_EvalContext (Struct) SMC_MoveContinuousPerformerImpl (FunctionBlock) Activate (Method) CanBlend (Method) GetStartInfoForBlendingInto (Method) GetStartVelocity (Method) OnOverrideChanged (Method) OwnerNumber (Property) PrepareTransition (Method) StartBuffering (Method) SMC_RampIn_DistanceBased_EvalContext (Struct) Divers SMC_AxisHasJerkLimit (Function) Trajectories SMC_AxisOverrideInterruptActive (Function) SMC_BrakingDistance (Function) SMC_CalculateProfile_VA (Function) SMC_DynLimits_Set (Function) Trajectory buffer SMC_AxisTrajectoryBuffer_ResetCounter (Struct) SMC_AxisTrajectoryBuffer_ResetCounter_Eq (Function) SMC_TrajectorySample_State (Union)
MC_CamTableSelect (FB) ¶ FUNCTION_BLOCK MC_CamTableSelect This function block is designed for selecting the cam tables by setting connections to relevant tables. Note When the Done output is TRUE , the CamTableID is valid and can be passed to MC_CamIn . The CamTable is not copied. Instead, a reference to the CamTable is passed to MC_CamIn via the CamTableID . Take care that the CamTable is not modified while MC_CamIn is active. InOut: Scope Name Type Initial Comment Inout Master AXIS_REF_SM3 Reference to the master axis Slave AXIS_REF_SM3 Reference to the slave axis CamTable MC_CAM_REF Reference to the cam description Input Execute BOOL FALSE Rising edge: Starts the execution of the function block. Periodic BOOL TRUE TRUE : Periodic FALSE : Non periodic MasterAbsolute BOOL TRUE TRUE : Absolute coordinates, i.e. the zero position of the cam table domain will correspond to the zero position of the master axis. FALSE : Relative coordinates, i.e. the zero position of the cam table domain will correspond to the current position of the master axis. SlaveAbsolute BOOL TRUE TRUE : Absolute coordinates, i.e. the zero position of the cam table codomain will correspond to the zero position of the slave axis. FALSE : Relative coordinates, i.e. the zero position of the cam table codomain will correspond to the current position of the slave axis. Output Done BOOL FALSE TRUE : Preselection has been done. Busy BOOL FALSE TRUE : Execution of function block has not been finished. Error BOOL FALSE TRUE : Error has occurred within the function block. ErrorID SMC_ERROR 0 Error identification CamTableID MC_CAM_ID Identifier of the cam table be used for the function block.
SMC_CAMBounds (FB) ¶ FUNCTION_BLOCK SMC_CAMBounds This function block calculates the minimum/maximum position and an estimate of the minimum/maximum velocity and acceleration values of the slave being coupled in absolute mode to a master, which is moved according to a prescribed maximum velocity and acceleration/deceleration. This module is especially helpful when a cam disc is created and modified in online mode and the observance of the maximum values have to be checked in advance. Note: The minimum/maximum velocity and acceleration values are estimates of lower/upper bounds which do not necessarily have to be reached. InOut: Scope Name Type Initial Comment Inout CAM MC_CAM_REF Reference to cam Input bExecute BOOL Rising edge: Starts the execution of the function block. dMasterVelMax LREAL 1 Absolute maximum velocity of master dMasterAccMax LREAL 0 Absolute maximum acceleration/deceleration of master dMasterScaling LREAL 1 Scaling factor for master applied to cam dSlaveScaling LREAL 1 Scaling factor for slave applied to cam Output bDone BOOL TRUE : Calculation has been terminated. bBusy BOOL FALSE TRUE : Execution of function block has not been finished. bError BOOL TRUE : Error has occurred within the function block. nErrorID SMC_ERROR Error identification dMaxPos LREAL Maximum slave position value [u]. dMinPos LREAL Minimum slave position value [u]. dMaxVel LREAL Maximum slave velocity value [u/s]. dMinVel LREAL Minimum slave velocity value [u/s]. dMaxAccDec LREAL Maximum slave acceleration/deceleration value [u/s²] dMinAccDec LREAL Minimum slave acceleration/deceleration value [u/s²]
SMC_CAMBounds_Pos (FB) ¶ FUNCTION_BLOCK SMC_CAMBounds_Pos In opposite to SMC_CAMBounds this function block calculates only the maximum and minimum position values of the slave being coupled in absolute mode to a master which is moved according to a prescribed maximum velocity and acceleration/deceleration. This module is especially helpful when a cam disc is created and modified in online mode and the observance of the maximum values have to be checked in advance. InOut: Scope Name Type Initial Comment Inout CAM MC_CAM_REF Reference to cam Input bExecute BOOL Rising edge: Starts the execution of the function block. dMasterVelMax LREAL 1 Absolute maximum velocity of master dMasterAccMax LREAL 0 Absolute maximum acceleration/deceleration`` of master dMasterScaling LREAL 1 Scaling factor for master applied to cam dSlaveScaling LREAL 1 Scaling factor for slave applied to cam Output bDone BOOL TRUE : Calculation has been terminated bBusy BOOL FALSE TRUE : Execution of function block has not been finished yet yet. bError BOOL TRUE : Error has occurred within the function block. nErrorID SMC_ERROR Error identification dMaxPos LREAL Maximum slave position value [u]. dMinPos LREAL Minimum slave position value [u].
SMC_CamEditor (FB) ¶ FUNCTION_BLOCK SMC_CamEditor This function block is used to display cam tables in the visualization. Important This function block does not work without either a TargetVisu or a WebVisu . InOut: Scope Name Type Initial Comment Input bEnable BOOL FALSE : No modification of the cam table is possible. Output bCAMchanged BOOL TRUE : Cam has been changed in the visualization. bError BOOL FALSE TRUE : Error has occurred within the function block. nErrorID SMC_ERROR Error identification Inout cam MC_CAM_REF Structure: DoBeforeLeave (Action)
SMC_CamRegister (FB) ¶ FUNCTION_BLOCK SMC_CamRegister This function block represents a tappet control unit. Like MC_CamIn , it operates on a cam table represented as a structure of type a MC_CAM_REF . The slave movmement in the MC_CAM_REF structure is ignored, only the tappet information is evaluated. InOut: Scope Name Type Initial Comment Inout Master AXIS_REF_SM3 Reference to master axis CamTable MC_CAM_REF Description of a (possibly empty) cam containing the description of the tappets. bTappet ARRAY [1..MAX_NUM_TAPPETS] OF BOOL Tappet bits Input Enable BOOL FALSE TRUE : Starts execution of function block. MasterOffset LREAL 0 Offset to be added to master position MasterScaling LREAL 1 Scaling factor for master profile TappetHysteresis LREAL 0 Size of the hysteresis for tappets in [u]. A positive value means that the tappet cannot fire immediately after it has fired. The master position first needs to move away from the tappet by more than the value given for TappetHysteresis . For example, if the master is an encoder, the master position may oscillate by a few increments around the tappet position. Without a hysteresis, the tappet may fire all the time. DeadTimeCompensation LREAL 0 Dead time compensation in seconds. The position of the master axis to be expected will be calculated by linear extrapolation. Output Busy BOOL FALSE TRUE : Execution of function block has not been finished. Error BOOL FALSE TRUE : Error has occurred within the function block. ErrorID SMC_ERROR 0 Error identification EndOfProfile BOOL FALSE Pulsed output: Cyclic end of the cam profile.