SMC3_PersistPositionLogical (FB) ¶ FUNCTION_BLOCK SMC3_PersistPositionLogical This function block serves to persist the axis position of a logical axis. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_LOGICAL_SM3 PersistentData SMC3_PersistPositionLogical_Data Input bEnable BOOL FALSE TRUE: Activares FB, else inactive. Output bPositionRestored BOOL TRUE: The position has been restored during the last start- up of the axis. bPositionStored BOOL TRUE: The position has been stored during the last call. bBusy BOOL TRUE: FB is not idle. bError BOOL FALSE TRUE: Error has occured within the function block. eErrorID SMC_ERROR SMC_NO_ERROR Error identification eRestoringDiag SMC3_PersistPositionDiag SMC3_PersistPositionDiag.SMC3_PPD_RESTORING_OK Diagnostic information about restoring
SMC3_PersistPositionSingleturn (FB) ¶ FUNCTION_BLOCK SMC3_PersistPositionSingleturn This functionblock serves to persist the axis position of an absolute encoder that has a limited range with a real axis. Strictly speaking, this function block is not only for single-turn encoders but also for multi-turn encoders where the range of the encoder is a power of two and less than 2^32. Both encoders with a range -2^k .. 2^k - 1 and a range 0 .. 2^(k+1) are supported. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 PersistentData SMC3_PersistPositionSingleturn_Data Input bEnable BOOL FALSE TRUE : Acrivates FB, else inactive. usiNumberOfAbsoluteBits USINT 16 Number of bits that are presistent (absolute encoded) [8..32]. Output bPositionRestored BOOL TRUE : The position has been restored during the last start-up of the axis. bPositionStored BOOL TRUE : The position has been stored during the last call. bBusy BOOL TRUE : FB is not idle. bError BOOL FALSE TRUE : Èrror has occured within the function bloc.k eErrorID SMC_ERROR SMC_NO_ERROR Error identification eRestoringDiag SMC3_PersistPositionDiag SMC3_PersistPositionDiag.SMC3_PPD_RESTORING_OK Diagnostic information about restoring
SMC_ChangeDynamicLimits (FB) ¶ FUNCTION_BLOCK SMC_ChangeDynamicLimits Sets the dynamic limits (maximum velocity, acceleration, jerk, torque) for an axis. May only be called if the axis is in state power_off or standstill . InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bExecute BOOL Rising edge: Changes the limits. fMaxVelocity LREAL The maximum velocity in u/s. Must be positive. fMaxAcceleration LREAL The maximum acceleration in u/s². Must be positive. fMaxDeceleration LREAL The maximum deceleration in u/s². Must be positive. fMaxJerk LREAL The maximum jerk in u/s³. Must be positive. fMaxTorque LREAL FPU.GetLRealSpecialVal(FPU.ESpecial_FP_Value.PosInf) The maximum torque or force in Nm or N. The torque limit is interpreted based on the gearbox output. Use SMC_SetAdditionalConversionFactors to take the gearbox into account. Output bDone BOOL TRUE : New limits have been set. bError BOOL TRUE : An error has occurred. bBusy BOOL TRUE : The function block is in operation. ErrorID SMC_ERROR Error identification
SMC_ChangeGearingRatio (FB) ¶ FUNCTION_BLOCK SMC_ChangeGearingRatio With help of this function block the gearing ratio and the type of the drive may be modified. After execution, the axis must be restarted by SMC3_ReinitDrive , in order to guarantee that all variables are initialized in a correct way. InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Input bExecute BOOL Rising edge: Starts the execution of the function block. dwRatioTechUnitsDenom DWORD Denominator of the conversion factor to convert drive increments into technical units. Units: [inc]. iRatioTechUnitsNum DINT Numerator of the conversion factor to convert drive increments into technical units. Units: [u]. fPositionPeriod LREAL Position period, modulo value (only for modulo axes) iMovementType SMC_MOVEMENTTYPE 0: Modulo axis, 1: Finite axis Output bDone BOOL TRUE : The gearing ratio / movement type / modulo period has been changed. bBusy BOOL TRUE : Execution of function block has not been finished yet. bError BOOL TRUE : An error has occurred within the function block. nErrorID SMC_ERROR Error identification
SMC_GetForecast (FB) ¶ FUNCTION_BLOCK SMC_GetForecast This function block returns the forecast duration of a given axis. The forecast duration can be set using SMC_SetForecast . InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Reference to the axis Input Enable BOOL TRUE : The forecast is read continuously Output Valid BOOL TRUE : The forecast has been read successfully Busy BOOL TRUE : Function block is in operation Error BOOL TRUE : Error has occurred during execution ErrorID SMC_ERROR Error identification ForecastDuration LREAL The forecast duration in seconds
SMC_SetSoftwareLimits (FB) ¶ FUNCTION_BLOCK SMC_SetSoftwareLimits Sets the position limits and the corresponding error reaction of an axis. If the axis is used in the context of coordinated motion, the corresponding axis group has to be reenabled in order to take into account the new limits for coordinated motion computations. Note The effective error deceleration is the maximum of the configured maximum deceleration of the axis, the value of SWL_Error_Deceleration , and the value derived from SWL_Error_MaxDistance and the current velocity. ( SWL_Error_MaxDistance is only taken into account if the value is positive.) InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Axis to change Input bExecute BOOL Rising edge: Rising edge: Starts the execution of the function block. Applies the Changes. SWL_Activated BOOL TRUE : Activates the position limits. SWL_Positive LREAL The positive limit switch ([u]) SWL_Negative LREAL The negative limit switch ([u]) SWL_Error_Decelerate BOOL Deprecated, the axis decelerates always if a deceleration is configured ( `SWL_Error_Deceleration , SWL_Error_MaxDistance ) or in the maximum deceleration (see SMC_ChangeDynamicLimits .fMaxDeceleration or drive configuration). SWL_Error_Deceleration LREAL The (positive) deceleration in [u/s²] SWL_Error_MaxDistance LREAL The maximum braking distance in [u], only applied if positive. Output bDone BOOL TRUE : Success bError BOOL TRUE : Error has occured within the function block. ErrorID SMC_ERROR Error identification.
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)
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].