SMC_GetCamSlaveSetPosition (FB) ¶ FUNCTION_BLOCK SMC_GetCamSlaveSetPosition This function block calculates the current target position of an axis (slave) in the case the axis is coupled via a cam to the motion of another axis (Master). The slave is not moved or otherwise affected. The module can be used to determine the start position, velocity, and acceleration of a slave that is coupled to a master axis via a cam table. Due to the fact that the corresponding value is calculated within one cycle, the output Done is not necessary. Note This FB can only be called once to determine the start conditions that the slave must have in order to avoid ramping in. It cannot be used cyclically to read the current slave values. InOut: Scope Name Type Initial Comment Inout Master AXIS_REF_SM3 Reference to master axis Slave AXIS_REF_SM3 Reference to slave axis Input Enable BOOL TRUE : Starts the execution of the function block. MasterOffset LREAL Offset of master table SlaveOffset LREAL Offset of slave table MasterScaling LREAL 1 Scaling factor for master profile SlaveScaling LREAL 1 Scaling factor for slave profile CamTableID MC_CAM_ID Identifier of cam table, output of MC_CamTableSelect Output fStartPosition LREAL Slave position according to cam and current master position. fStartVelocity LREAL Slave velocity according to cam and current master position. fStartAcceleration LREAL Slave acceleration according to cam and current master position. Busy BOOL TRUE : Execution of function block has not been finished yet. Error BOOL TRUE : Error has occurred within the function block. ErrorID SMC_ERROR Error identification
SMC_GetTappetValue (FB) ¶ FUNCTION_BLOCK SMC_GetTappetValue This function block evaluates the output Tappets of function block MC_CamIn and contains the current tappet status. InOut: Scope Name Type Comment Inout Tappets SMC_TappetData Tappet signals to be evaluated by MC_GetTappetValue Input iID INT Group ID of the tappet to be evaluated. bInitValue BOOL Initial value of the tappet to be assigned at first call bSetInitValueAtReset BOOL TRUE : Sets the value of the tappet to bInitValue at a restart of the MC_CamIn` function block. FALSE : Retains the tappet value at a restart of the MC_CamIn function block. Output bTappet BOOL Tappet value
SMC_ReadCAM (FB) ¶ FUNCTION_BLOCK SMC_ReadCAM This function block is designed for loading a cam at runtime and making it available for the modules MC_CamTableSelect and MC_CamIn . The cam to be loaded has to be created within the cam editor before and saved in a “*.CAM” file (see SMC_WriteCAM ). The size of a loadable cam is limited by the library parameters LibParams.gc_SMC_FILE_MAXCAMEL (number of elements) and LibParams.gc_SMC_FILE_MAXCAMTAP (number of cam switch actions). InOut: Scope Name Type Initial Comment Input bExecute BOOL FALSE Rising edge: Starts the execution of the function block. sFileName STRING(255) Name of the file, which contains the cam description in the defined ASCII format. Output bDone BOOL FALSE TRUE : Cam has been read in. bBusy BOOL FALSE TRUE : Execution of the function block has not been finished. bError BOOL FALSE TRUE : Error has occurred within the function block. ErrorID SMC_ERROR 0 Error identification CAM MC_CAM_REF STRUCT(nElements := 0, nTappets := 0) Structure: CloseFile (Action)
SMC_WriteCAM (FB) ¶ FUNCTION_BLOCK SMC_WriteCAM This function block is designed for storing a cam table created within the Cam editor into a file at runtime. InOut: Scope Name Type Initial Comment Inout CAM MC_CAM_REF Input bExecute BOOL FALSE Rising edge: Starts the execution of the function block. sFileName STRING(255) Name of the file, which contains the cam description in the defined ASCII format. Output bDone BOOL FALSE TRUE : Cam has been written. bBusy BOOL FALSE TRUE Execution of function block has not been finished. bError BOOL FALSE TRUE : Error has occurred within the function block. ErrorID SMC_ERROR 0 Error identification Structure: 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)
SMC3_PersistPosition (FB) ¶ FUNCTION_BLOCK SMC3_PersistPosition This function block serves to persist the axis position of a multi-turn absolute encoder with real axis. This function block assumes that the multi-turn encoder has a range of 2^32. For multi-turn encoders with a smaller range, please use SMC3_PersistPositionSingleturn . InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 PersistentData SMC3_PersistPosition_Data Input bEnable BOOL FALSE TRUE : Acrivates 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_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